(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["chunk-libs"],{

/***/ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("function _interopRequireDefault(e) {\n  return e && e.__esModule ? e : {\n    \"default\": e\n  };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/interopRequireWildcard.js ***!
  \***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var _typeof = __webpack_require__(/*! ./typeof.js */ \"./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"];\nfunction _getRequireWildcardCache(e) {\n  if (\"function\" != typeof WeakMap) return null;\n  var r = new WeakMap(),\n    t = new WeakMap();\n  return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n    return e ? t : r;\n  })(e);\n}\nfunction _interopRequireWildcard(e, r) {\n  if (!r && e && e.__esModule) return e;\n  if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n    \"default\": e\n  };\n  var t = _getRequireWildcardCache(r);\n  if (t && t.has(e)) return t.get(e);\n  var n = {\n      __proto__: null\n    },\n    a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n  for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) {\n    var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n    i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n  }\n  return n[\"default\"] = e, t && t.set(e, n), n;\n}\nmodule.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/interopRequireWildcard.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/typeof.js":
/*!*******************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/typeof.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/typeof.js?");

/***/ }),

/***/ "./node_modules/@handsontable/pikaday/pikaday.mjs":
/*!********************************************************!*\
  !*** ./node_modules/@handsontable/pikaday/pikaday.mjs ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Pikaday; });\n/*!\n * Pikaday\n *\n * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/Pikaday/Pikaday\n */\nconst getWindow = () => window;\nconst getDocument = () => window.document;\nconst sto = (fn, delay) => window.setTimeout(fn, delay);\nconst addEvent = function(el, e, callback, capture) {\n  el.addEventListener(e, callback, !!capture);\n};\nconst removeEvent = function(el, e, callback, capture) {\n  el.removeEventListener(e, callback, !!capture);\n};\nconst trim = function(str) {\n  return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, \"\");\n};\nconst hasClass = function(el, cn) {\n  return (\" \" + el.className + \" \").indexOf(\" \" + cn + \" \") !== -1;\n};\nconst addClass = function(el, cn) {\n  if (!hasClass(el, cn)) {\n    el.className = el.className === \"\" ? cn : el.className + \" \" + cn;\n  }\n};\nconst removeClass = function(el, cn) {\n  el.className = trim((\" \" + el.className + \" \").replace(\" \" + cn + \" \", \" \"));\n};\nconst isArray = function(obj) {\n  return /Array/.test(Object.prototype.toString.call(obj));\n};\nconst isDate = function(obj) {\n  return /Date/.test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime());\n};\nconst isWeekend = function(date) {\n  let day = date.getDay();\n  return day === 0 || day === 6;\n};\nconst isLeapYear = function(year) {\n  return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n};\nconst getDaysInMonth = function(year, month) {\n  return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n};\nconst setToStartOfDay = function(date) {\n  if (isDate(date)) {\n    date.setHours(0, 0, 0, 0);\n  }\n};\nconst compareDates = function(a, b) {\n  return a.getTime() === b.getTime();\n};\nconst extend = function(to, from, overwrite) {\n  let prop, hasProp;\n  for (prop in from) {\n    hasProp = to[prop] !== void 0;\n    if (hasProp && typeof from[prop] === \"object\" && from[prop] !== null && from[prop].nodeName === void 0) {\n      if (isDate(from[prop])) {\n        if (overwrite) {\n          to[prop] = new Date(from[prop].getTime());\n        }\n      } else if (isArray(from[prop])) {\n        if (overwrite) {\n          to[prop] = from[prop].slice(0);\n        }\n      } else {\n        to[prop] = extend({}, from[prop], overwrite);\n      }\n    } else if (overwrite || !hasProp) {\n      to[prop] = from[prop];\n    }\n  }\n  return to;\n};\nconst fireEvent = function(el, eventName, data) {\n  let ev = getDocument().createEvent(\"HTMLEvents\");\n  ev.initEvent(eventName, true, false);\n  ev = extend(ev, data);\n  el.dispatchEvent(ev);\n};\nconst adjustCalendar = function(calendar) {\n  if (calendar.month < 0) {\n    calendar.year -= Math.ceil(Math.abs(calendar.month) / 12);\n    calendar.month += 12;\n  }\n  if (calendar.month > 11) {\n    calendar.year += Math.floor(Math.abs(calendar.month) / 12);\n    calendar.month -= 12;\n  }\n  return calendar;\n};\nconst defaults = {\n  // bind the picker to a form field\n  field: null,\n  // automatically show/hide the picker on `field` focus (default `true` if `field` is set)\n  bound: void 0,\n  // data-attribute on the input field with an aria assistance text (only applied when `bound` is set)\n  ariaLabel: \"Use the arrow keys to pick a date\",\n  // position of the datepicker, relative to the field (default to bottom & left)\n  // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position)\n  position: \"bottom left\",\n  // automatically fit in the viewport even if it means repositioning from the position option\n  reposition: true,\n  // the default output format for `.toString()` and `field` value\n  format: \"YYYY-MM-DD\",\n  // the toString function which gets passed a current date object and format\n  // and returns a string\n  toString: null,\n  // used to create date object from current input string\n  parse: null,\n  // the initial date to view when first opened\n  defaultDate: null,\n  // make the `defaultDate` the initial selected value\n  setDefaultDate: false,\n  // first day of week (0: Sunday, 1: Monday etc)\n  firstDay: 0,\n  // minimum number of days in the week that gets week number one\n  // default ISO 8601, week 01 is the week with the first Thursday (4)\n  firstWeekOfYearMinDays: 4,\n  // the default flag for moment's strict date parsing\n  formatStrict: false,\n  // the minimum/earliest date that can be selected\n  minDate: null,\n  // the maximum/latest date that can be selected\n  maxDate: null,\n  // number of years either side, or array of upper/lower range\n  yearRange: 10,\n  // show week numbers at head of row\n  showWeekNumber: false,\n  // Week picker mode\n  pickWholeWeek: false,\n  // used internally (don't config outside)\n  minYear: 0,\n  maxYear: 9999,\n  minMonth: void 0,\n  maxMonth: void 0,\n  startRange: null,\n  endRange: null,\n  isRTL: false,\n  // Additional text to append to the year in the calendar title\n  yearSuffix: \"\",\n  // Render the month after year in the calendar title\n  showMonthAfterYear: false,\n  // Render days of the calendar grid that fall in the next or previous month\n  showDaysInNextAndPreviousMonths: false,\n  // Allows user to select days that fall in the next or previous month\n  enableSelectionDaysInNextAndPreviousMonths: false,\n  // how many months are visible\n  numberOfMonths: 1,\n  // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`)\n  // only used for the first display or when a selected date is not visible\n  mainCalendar: \"left\",\n  // Specify a DOM element to render the calendar in\n  container: void 0,\n  // Blur field when date is selected\n  blurFieldOnSelect: true,\n  // internationalization\n  i18n: {\n    previousMonth: \"Previous Month\",\n    nextMonth: \"Next Month\",\n    months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n    weekdays: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n    weekdaysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]\n  },\n  // Theme Classname\n  theme: null,\n  // events array\n  events: [],\n  // callback function\n  onSelect: null,\n  onOpen: null,\n  onClose: null,\n  onDraw: null,\n  // Enable keyboard input\n  keyboardInput: true\n};\nconst renderDayName = function(opts, day, abbr) {\n  day += opts.firstDay;\n  while (day >= 7) {\n    day -= 7;\n  }\n  return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day];\n};\nconst renderDay = function(opts) {\n  let arr = [];\n  let ariaSelected = \"false\";\n  if (opts.isEmpty) {\n    if (opts.showDaysInNextAndPreviousMonths) {\n      arr.push(\"is-outside-current-month\");\n      if (!opts.enableSelectionDaysInNextAndPreviousMonths) {\n        arr.push(\"is-selection-disabled\");\n      }\n    } else {\n      return '<td class=\"is-empty\"></td>';\n    }\n  }\n  if (opts.isDisabled) {\n    arr.push(\"is-disabled\");\n  }\n  if (opts.isToday) {\n    arr.push(\"is-today\");\n  }\n  if (opts.isSelected) {\n    arr.push(\"is-selected\");\n    ariaSelected = \"true\";\n  }\n  if (opts.hasEvent) {\n    arr.push(\"has-event\");\n  }\n  if (opts.isInRange) {\n    arr.push(\"is-inrange\");\n  }\n  if (opts.isStartRange) {\n    arr.push(\"is-startrange\");\n  }\n  if (opts.isEndRange) {\n    arr.push(\"is-endrange\");\n  }\n  return '<td data-day=\"' + opts.day + '\" class=\"' + arr.join(\" \") + '\" aria-selected=\"' + ariaSelected + '\"><button class=\"pika-button pika-day\" type=\"button\" data-pika-year=\"' + opts.year + '\" data-pika-month=\"' + opts.month + '\" data-pika-day=\"' + opts.day + '\">' + opts.day + \"</button></td>\";\n};\nconst isoWeek = function(date, firstWeekOfYearMinDays) {\n  date.setHours(0, 0, 0, 0);\n  let yearDay = date.getDate(), weekDay = date.getDay(), dayInFirstWeek = firstWeekOfYearMinDays, dayShift = dayInFirstWeek - 1, daysPerWeek = 7, prevWeekDay = function(day) {\n    return (day + daysPerWeek - 1) % daysPerWeek;\n  };\n  date.setDate(yearDay + dayShift - prevWeekDay(weekDay));\n  let jan4th = new Date(date.getFullYear(), 0, dayInFirstWeek), msPerDay = 24 * 60 * 60 * 1e3, daysBetween = (date.getTime() - jan4th.getTime()) / msPerDay, weekNum = 1 + Math.round((daysBetween - dayShift + prevWeekDay(jan4th.getDay())) / daysPerWeek);\n  return weekNum;\n};\nconst renderWeek = function(pikaday, d, m, y, firstWeekOfYearMinDays) {\n  let date = new Date(y, m, d), week = pikaday.hasMoment ? pikaday.moment(date).isoWeek() : isoWeek(date, firstWeekOfYearMinDays);\n  return '<td class=\"pika-week\">' + week + \"</td>\";\n};\nconst renderRow = function(days, isRTL, pickWholeWeek, isRowSelected) {\n  return '<tr class=\"pika-row' + (pickWholeWeek ? \" pick-whole-week\" : \"\") + (isRowSelected ? \" is-selected\" : \"\") + '\">' + (isRTL ? days.reverse() : days).join(\"\") + \"</tr>\";\n};\nconst renderBody = function(rows) {\n  return \"<tbody>\" + rows.join(\"\") + \"</tbody>\";\n};\nconst renderHead = function(opts) {\n  let i, arr = [];\n  if (opts.showWeekNumber) {\n    arr.push(\"<th></th>\");\n  }\n  for (i = 0; i < 7; i++) {\n    arr.push('<th scope=\"col\"><abbr title=\"' + renderDayName(opts, i) + '\">' + renderDayName(opts, i, true) + \"</abbr></th>\");\n  }\n  return \"<thead><tr>\" + (opts.isRTL ? arr.reverse() : arr).join(\"\") + \"</tr></thead>\";\n};\nconst renderTitle = function(instance, c, year, month, refYear, randId) {\n  let i, j, arr, opts = instance._o, isMinYear = year === opts.minYear, isMaxYear = year === opts.maxYear, html = '<div id=\"' + randId + '\" class=\"pika-title\" role=\"heading\" aria-live=\"polite\">', monthHtml, yearHtml, prev = true, next = true;\n  for (arr = [], i = 0; i < 12; i++) {\n    arr.push('<option value=\"' + (year === refYear ? i - c : 12 + i - c) + '\"' + (i === month ? ' selected=\"selected\"' : \"\") + (isMinYear && i < opts.minMonth || isMaxYear && i > opts.maxMonth ? ' disabled=\"disabled\"' : \"\") + \">\" + opts.i18n.months[i] + \"</option>\");\n  }\n  monthHtml = '<div class=\"pika-label\">' + opts.i18n.months[month] + '<select class=\"pika-select pika-select-month\" tabindex=\"-1\">' + arr.join(\"\") + \"</select></div>\";\n  if (isArray(opts.yearRange)) {\n    i = opts.yearRange[0];\n    j = opts.yearRange[1] + 1;\n  } else {\n    i = year - opts.yearRange;\n    j = 1 + year + opts.yearRange;\n  }\n  for (arr = []; i < j && i <= opts.maxYear; i++) {\n    if (i >= opts.minYear) {\n      arr.push('<option value=\"' + i + '\"' + (i === year ? ' selected=\"selected\"' : \"\") + \">\" + i + \"</option>\");\n    }\n  }\n  yearHtml = '<div class=\"pika-label\">' + year + opts.yearSuffix + '<select class=\"pika-select pika-select-year\" tabindex=\"-1\">' + arr.join(\"\") + \"</select></div>\";\n  if (opts.showMonthAfterYear) {\n    html += yearHtml + monthHtml;\n  } else {\n    html += monthHtml + yearHtml;\n  }\n  if (isMinYear && (month === 0 || opts.minMonth >= month)) {\n    prev = false;\n  }\n  if (isMaxYear && (month === 11 || opts.maxMonth <= month)) {\n    next = false;\n  }\n  if (c === 0) {\n    html += '<button class=\"pika-prev' + (prev ? \"\" : \" is-disabled\") + '\" type=\"button\">' + opts.i18n.previousMonth + \"</button>\";\n  }\n  if (c === instance._o.numberOfMonths - 1) {\n    html += '<button class=\"pika-next' + (next ? \"\" : \" is-disabled\") + '\" type=\"button\">' + opts.i18n.nextMonth + \"</button>\";\n  }\n  return html += \"</div>\";\n};\nconst renderTable = function(opts, data, randId) {\n  return '<table cellpadding=\"0\" cellspacing=\"0\" class=\"pika-table\" role=\"grid\" aria-labelledby=\"' + randId + '\">' + renderHead(opts) + renderBody(data) + \"</table>\";\n};\nfunction Pikaday(options) {\n  let self = this, opts = self.config(options);\n  self._onMouseDown = function(e) {\n    if (!self._v) {\n      return;\n    }\n    e = e || getWindow().event;\n    let target = e.target || e.srcElement;\n    if (!target) {\n      return;\n    }\n    if (!hasClass(target, \"is-disabled\")) {\n      if (hasClass(target, \"pika-button\") && !hasClass(target, \"is-empty\") && !hasClass(target.parentNode, \"is-disabled\")) {\n        self.setDate(\n          new Date(\n            target.getAttribute(\"data-pika-year\"),\n            target.getAttribute(\"data-pika-month\"),\n            target.getAttribute(\"data-pika-day\")\n          )\n        );\n        if (opts.bound) {\n          sto(function() {\n            self.hide();\n            if (opts.blurFieldOnSelect && opts.field) {\n              opts.field.blur();\n            }\n          }, 100);\n        }\n      } else if (hasClass(target, \"pika-prev\")) {\n        self.prevMonth();\n      } else if (hasClass(target, \"pika-next\")) {\n        self.nextMonth();\n      }\n    }\n    if (!hasClass(target, \"pika-select\")) {\n      if (e.preventDefault) {\n        e.preventDefault();\n      } else {\n        e.returnValue = false;\n        return false;\n      }\n    } else {\n      self._c = true;\n    }\n  };\n  self._onChange = function(e) {\n    e = e || getWindow().event;\n    let target = e.target || e.srcElement;\n    if (!target) {\n      return;\n    }\n    if (hasClass(target, \"pika-select-month\")) {\n      self.gotoMonth(target.value);\n    } else if (hasClass(target, \"pika-select-year\")) {\n      self.gotoYear(target.value);\n    }\n  };\n  self._onKeyChange = function(e) {\n    e = e || getWindow().event;\n    if (self.isVisible()) {\n      switch (e.keyCode) {\n        case 13:\n        case 27:\n          if (opts.field) {\n            opts.field.blur();\n          }\n          break;\n        case 37:\n          self.adjustDate(\"subtract\", 1);\n          break;\n        case 38:\n          self.adjustDate(\"subtract\", 7);\n          break;\n        case 39:\n          self.adjustDate(\"add\", 1);\n          break;\n        case 40:\n          self.adjustDate(\"add\", 7);\n          break;\n        case 8:\n        case 46:\n          self.setDate(null);\n          break;\n      }\n    }\n  };\n  self._parseFieldValue = function() {\n    if (opts.parse) {\n      return opts.parse(opts.field.value, opts.format);\n    } else if (this.hasMoment) {\n      let date = this.moment(\n        opts.field.value,\n        opts.format,\n        opts.formatStrict\n      );\n      return date && date.isValid() ? date.toDate() : null;\n    } else {\n      return new Date(Date.parse(opts.field.value));\n    }\n  };\n  self._onInputChange = function(e) {\n    let date;\n    if (e.firedBy === self) {\n      return;\n    }\n    date = self._parseFieldValue();\n    if (isDate(date)) {\n      self.setDate(date);\n    }\n    if (!self._v) {\n      self.show();\n    }\n  };\n  self._onInputFocus = function() {\n    self.show();\n  };\n  self._onInputClick = function() {\n    self.show();\n  };\n  self._onInputBlur = function() {\n    let pEl = getDocument().activeElement;\n    do {\n      if (hasClass(pEl, \"pika-single\")) {\n        return;\n      }\n    } while (pEl = pEl.parentNode);\n    if (!self._c) {\n      self._b = sto(function() {\n        self.hide();\n      }, 50);\n    }\n    self._c = false;\n  };\n  self._onClick = function(e) {\n    e = e || getWindow().event;\n    let target = e.target || e.srcElement, pEl = target;\n    if (!target) {\n      return;\n    }\n    if (!hasEventListeners && hasClass(target, \"pika-select\")) {\n      if (!target.onchange) {\n        target.setAttribute(\"onchange\", \"return;\");\n        addEvent(target, \"change\", self._onChange);\n      }\n    }\n    do {\n      if (hasClass(pEl, \"pika-single\") || pEl === opts.trigger) {\n        return;\n      }\n    } while (pEl = pEl.parentNode);\n    if (self._v && target !== opts.trigger && pEl !== opts.trigger) {\n      self.hide();\n    }\n  };\n  self.el = getDocument().createElement(\"div\");\n  self.el.className = \"pika-single\" + (opts.isRTL ? \" is-rtl\" : \"\") + (opts.theme ? \" \" + opts.theme : \"\");\n  addEvent(self.el, \"mousedown\", self._onMouseDown, true);\n  addEvent(self.el, \"touchend\", self._onMouseDown, true);\n  addEvent(self.el, \"change\", self._onChange);\n  if (opts.keyboardInput) {\n    addEvent(getDocument(), \"keydown\", self._onKeyChange);\n  }\n  if (opts.field) {\n    if (opts.container) {\n      opts.container.appendChild(self.el);\n    } else if (opts.bound) {\n      getDocument().body.appendChild(self.el);\n    } else {\n      opts.field.parentNode.insertBefore(\n        self.el,\n        opts.field.nextSibling\n      );\n    }\n    addEvent(opts.field, \"change\", self._onInputChange);\n    if (!opts.defaultDate) {\n      opts.defaultDate = self._parseFieldValue();\n      opts.setDefaultDate = true;\n    }\n  }\n  let defDate = opts.defaultDate;\n  if (isDate(defDate)) {\n    if (opts.setDefaultDate) {\n      self.setDate(defDate, true);\n    } else {\n      self.gotoDate(defDate);\n    }\n  } else {\n    self.gotoDate(/* @__PURE__ */ new Date());\n  }\n  if (opts.bound) {\n    this.hide();\n    self.el.className += \" is-bound\";\n    addEvent(opts.trigger, \"click\", self._onInputClick);\n    addEvent(opts.trigger, \"focus\", self._onInputFocus);\n    addEvent(opts.trigger, \"blur\", self._onInputBlur);\n  } else {\n    this.show();\n  }\n}\nPikaday.prototype = {\n  /**\n   * configure functionality\n   */\n  config: function(options) {\n    if (!this._o) {\n      this._o = extend({}, defaults, true);\n    }\n    let opts = extend(this._o, options, true);\n    opts.isRTL = !!opts.isRTL;\n    opts.field = opts.field && opts.field.nodeName ? opts.field : null;\n    opts.theme = typeof opts.theme === \"string\" && opts.theme ? opts.theme : null;\n    opts.bound = !!(opts.bound !== void 0 ? opts.field && opts.bound : opts.field);\n    opts.trigger = opts.trigger && opts.trigger.nodeName ? opts.trigger : opts.field;\n    opts.disableWeekends = !!opts.disableWeekends;\n    opts.disableDayFn = typeof opts.disableDayFn === \"function\" ? opts.disableDayFn : null;\n    let nom = parseInt(opts.numberOfMonths, 10) || 1;\n    opts.numberOfMonths = nom > 4 ? 4 : nom;\n    if (!isDate(opts.minDate)) {\n      opts.minDate = false;\n    }\n    if (!isDate(opts.maxDate)) {\n      opts.maxDate = false;\n    }\n    if (opts.minDate && opts.maxDate && opts.maxDate < opts.minDate) {\n      opts.maxDate = opts.minDate = false;\n    }\n    if (opts.minDate) {\n      this.setMinDate(opts.minDate);\n    }\n    if (opts.maxDate) {\n      this.setMaxDate(opts.maxDate);\n    }\n    if (isArray(opts.yearRange)) {\n      let fallback = (/* @__PURE__ */ new Date()).getFullYear() - 10;\n      opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback;\n      opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback;\n    } else {\n      opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange;\n      if (opts.yearRange > 100) {\n        opts.yearRange = 100;\n      }\n    }\n    return opts;\n  },\n  /**\n   * return a formatted string of the current selection (using Moment.js if available)\n   */\n  toString: function(format) {\n    format = format || this._o.format;\n    if (!isDate(this._d)) {\n      return \"\";\n    }\n    if (this._o.toString) {\n      return this._o.toString(this._d, format);\n    }\n    if (this.hasMoment) {\n      return this.moment(this._d).format(format);\n    }\n    return this._d.toDateString();\n  },\n  /**\n   * return a Moment.js object of the current selection (if available)\n   */\n  getMoment: function() {\n    return this.hasMoment ? this.moment(this._d) : null;\n  },\n  /**\n   * set the current selection from a Moment.js object (if available)\n   */\n  setMoment: function(date, preventOnSelect) {\n    if (this.hasMoment && this.moment.isMoment(date)) {\n      this.setDate(date.toDate(), preventOnSelect);\n    }\n  },\n  /**\n   * Sets the momentjs function as dependency to parse and format the dates\n   */\n  useMoment: function(momentFunction) {\n    this.hasMoment = true;\n    this.moment = momentFunction;\n  },\n  /**\n   * return a Date object of the current selection\n   */\n  getDate: function() {\n    return isDate(this._d) ? new Date(this._d.getTime()) : null;\n  },\n  /**\n   * set the current selection\n   */\n  setDate: function(date, preventOnSelect) {\n    if (!date) {\n      this._d = null;\n      if (this._o.field) {\n        this._o.field.value = \"\";\n        fireEvent(this._o.field, \"change\", { firedBy: this });\n      }\n      return this.draw();\n    }\n    if (typeof date === \"string\") {\n      date = new Date(Date.parse(date));\n    }\n    if (!isDate(date)) {\n      return;\n    }\n    let min = this._o.minDate, max = this._o.maxDate;\n    if (isDate(min) && date < min) {\n      date = min;\n    } else if (isDate(max) && date > max) {\n      date = max;\n    }\n    this._d = new Date(date.getTime());\n    setToStartOfDay(this._d);\n    this.gotoDate(this._d);\n    if (this._o.field) {\n      this._o.field.value = this.toString();\n      fireEvent(this._o.field, \"change\", { firedBy: this });\n    }\n    if (!preventOnSelect && typeof this._o.onSelect === \"function\") {\n      this._o.onSelect.call(this, this.getDate());\n    }\n  },\n  /**\n   * clear and reset the date\n   */\n  clear: function() {\n    this.setDate(null);\n  },\n  /**\n   * change view to a specific date\n   */\n  gotoDate: function(date) {\n    let newCalendar = true;\n    if (!isDate(date)) {\n      return;\n    }\n    if (this.calendars) {\n      let firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1), lastVisibleDate = new Date(this.calendars[this.calendars.length - 1].year, this.calendars[this.calendars.length - 1].month, 1), visibleDate = date.getTime();\n      lastVisibleDate.setMonth(lastVisibleDate.getMonth() + 1);\n      lastVisibleDate.setDate(lastVisibleDate.getDate() - 1);\n      newCalendar = visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate;\n    }\n    if (newCalendar) {\n      this.calendars = [{\n        month: date.getMonth(),\n        year: date.getFullYear()\n      }];\n      if (this._o.mainCalendar === \"right\") {\n        this.calendars[0].month += 1 - this._o.numberOfMonths;\n      }\n    }\n    this.adjustCalendars();\n  },\n  adjustDate: function(sign, days) {\n    let day = this.getDate() || /* @__PURE__ */ new Date();\n    let difference = parseInt(days) * 24 * 60 * 60 * 1e3;\n    let newDay;\n    if (sign === \"add\") {\n      newDay = new Date(day.valueOf() + difference);\n    } else if (sign === \"subtract\") {\n      newDay = new Date(day.valueOf() - difference);\n    }\n    this.setDate(newDay);\n  },\n  adjustCalendars: function() {\n    this.calendars[0] = adjustCalendar(this.calendars[0]);\n    for (let c = 1; c < this._o.numberOfMonths; c++) {\n      this.calendars[c] = adjustCalendar({\n        month: this.calendars[0].month + c,\n        year: this.calendars[0].year\n      });\n    }\n    this.draw();\n  },\n  gotoToday: function() {\n    this.gotoDate(/* @__PURE__ */ new Date());\n  },\n  /**\n   * change view to a specific month (zero-index, e.g. 0: January)\n   */\n  gotoMonth: function(month) {\n    if (!isNaN(month)) {\n      this.calendars[0].month = parseInt(month, 10);\n      this.adjustCalendars();\n    }\n  },\n  nextMonth: function() {\n    this.calendars[0].month++;\n    this.adjustCalendars();\n  },\n  prevMonth: function() {\n    this.calendars[0].month--;\n    this.adjustCalendars();\n  },\n  /**\n   * change view to a specific full year (e.g. \"2012\")\n   */\n  gotoYear: function(year) {\n    if (!isNaN(year)) {\n      this.calendars[0].year = parseInt(year, 10);\n      this.adjustCalendars();\n    }\n  },\n  /**\n   * change the minDate\n   */\n  setMinDate: function(value) {\n    if (value instanceof Date) {\n      setToStartOfDay(value);\n      this._o.minDate = value;\n      this._o.minYear = value.getFullYear();\n      this._o.minMonth = value.getMonth();\n    } else {\n      this._o.minDate = defaults.minDate;\n      this._o.minYear = defaults.minYear;\n      this._o.minMonth = defaults.minMonth;\n      this._o.startRange = defaults.startRange;\n    }\n    this.draw();\n  },\n  /**\n   * change the maxDate\n   */\n  setMaxDate: function(value) {\n    if (value instanceof Date) {\n      setToStartOfDay(value);\n      this._o.maxDate = value;\n      this._o.maxYear = value.getFullYear();\n      this._o.maxMonth = value.getMonth();\n    } else {\n      this._o.maxDate = defaults.maxDate;\n      this._o.maxYear = defaults.maxYear;\n      this._o.maxMonth = defaults.maxMonth;\n      this._o.endRange = defaults.endRange;\n    }\n    this.draw();\n  },\n  setStartRange: function(value) {\n    this._o.startRange = value;\n  },\n  setEndRange: function(value) {\n    this._o.endRange = value;\n  },\n  /**\n   * refresh the HTML\n   */\n  draw: function(force) {\n    if (!this._v && !force) {\n      return;\n    }\n    let opts = this._o, minYear = opts.minYear, maxYear = opts.maxYear, minMonth = opts.minMonth, maxMonth = opts.maxMonth, html = \"\", randId;\n    if (this._y <= minYear) {\n      this._y = minYear;\n      if (!isNaN(minMonth) && this._m < minMonth) {\n        this._m = minMonth;\n      }\n    }\n    if (this._y >= maxYear) {\n      this._y = maxYear;\n      if (!isNaN(maxMonth) && this._m > maxMonth) {\n        this._m = maxMonth;\n      }\n    }\n    for (let c = 0; c < opts.numberOfMonths; c++) {\n      randId = \"pika-title-\" + Math.random().toString(36).replace(/[^a-z]+/g, \"\").substr(0, 2);\n      html += '<div class=\"pika-lendar\">' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + \"</div>\";\n    }\n    this.el.innerHTML = html;\n    if (opts.bound) {\n      if (opts.field.type !== \"hidden\") {\n        sto(function() {\n          opts.trigger.focus();\n        }, 1);\n      }\n    }\n    if (typeof this._o.onDraw === \"function\") {\n      this._o.onDraw(this);\n    }\n    if (opts.bound) {\n      opts.field.setAttribute(\"aria-label\", opts.ariaLabel);\n    }\n  },\n  adjustPosition: function() {\n    let field, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect, leftAligned, bottomAligned;\n    if (this._o.container) {\n      return;\n    }\n    this.el.style.position = \"absolute\";\n    field = this._o.trigger;\n    width = this.el.offsetWidth;\n    height = this.el.offsetHeight;\n    viewportWidth = getWindow().innerWidth || getDocument().documentElement.clientWidth;\n    viewportHeight = getWindow().innerHeight || getDocument().documentElement.clientHeight;\n    scrollTop = getDocument().body.scrollTop || getDocument().documentElement.scrollTop;\n    leftAligned = true;\n    bottomAligned = true;\n    clientRect = field.getBoundingClientRect();\n    left = clientRect.left + getWindow().pageXOffset;\n    top = clientRect.bottom + getWindow().pageYOffset;\n    if (this._o.reposition && left + width > viewportWidth || this._o.position.indexOf(\"right\") > -1 && left - width + field.offsetWidth > 0) {\n      left = left - width + field.offsetWidth;\n      leftAligned = false;\n    }\n    if (this._o.reposition && top + height > viewportHeight + scrollTop || this._o.position.indexOf(\"top\") > -1 && top - height - field.offsetHeight > 0) {\n      top = top - height - field.offsetHeight;\n      bottomAligned = false;\n    }\n    if (left < 0) {\n      left = 0;\n    }\n    if (top < 0) {\n      top = 0;\n    }\n    this.el.style.left = left + \"px\";\n    this.el.style.top = top + \"px\";\n    addClass(this.el, leftAligned ? \"left-aligned\" : \"right-aligned\");\n    addClass(this.el, bottomAligned ? \"bottom-aligned\" : \"top-aligned\");\n    removeClass(this.el, !leftAligned ? \"left-aligned\" : \"right-aligned\");\n    removeClass(this.el, !bottomAligned ? \"bottom-aligned\" : \"top-aligned\");\n  },\n  /**\n   * render HTML for a particular month\n   */\n  render: function(year, month, randId) {\n    let opts = this._o, now = /* @__PURE__ */ new Date(), days = getDaysInMonth(year, month), before = new Date(year, month, 1).getDay(), data = [], row = [];\n    setToStartOfDay(now);\n    if (opts.firstDay > 0) {\n      before -= opts.firstDay;\n      if (before < 0) {\n        before += 7;\n      }\n    }\n    let previousMonth = month === 0 ? 11 : month - 1, nextMonth = month === 11 ? 0 : month + 1, yearOfPreviousMonth = month === 0 ? year - 1 : year, yearOfNextMonth = month === 11 ? year + 1 : year, daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth);\n    let cells = days + before, after = cells;\n    while (after > 7) {\n      after -= 7;\n    }\n    cells += 7 - after;\n    let isWeekSelected = false;\n    for (let i = 0, r = 0; i < cells; i++) {\n      let day = new Date(year, month, 1 + (i - before)), isSelected = isDate(this._d) ? compareDates(day, this._d) : false, isToday = compareDates(day, now), hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false, isEmpty = i < before || i >= days + before, dayNumber = 1 + (i - before), monthNumber = month, yearNumber = year, isStartRange = opts.startRange && compareDates(opts.startRange, day), isEndRange = opts.endRange && compareDates(opts.endRange, day), isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange, isDisabled = opts.minDate && day < opts.minDate || opts.maxDate && day > opts.maxDate || opts.disableWeekends && isWeekend(day) || opts.disableDayFn && opts.disableDayFn(day);\n      if (isEmpty) {\n        if (i < before) {\n          dayNumber = daysInPreviousMonth + dayNumber;\n          monthNumber = previousMonth;\n          yearNumber = yearOfPreviousMonth;\n        } else {\n          dayNumber = dayNumber - days;\n          monthNumber = nextMonth;\n          yearNumber = yearOfNextMonth;\n        }\n      }\n      let dayConfig = {\n        day: dayNumber,\n        month: monthNumber,\n        year: yearNumber,\n        hasEvent,\n        isSelected,\n        isToday,\n        isDisabled,\n        isEmpty,\n        isStartRange,\n        isEndRange,\n        isInRange,\n        showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths,\n        enableSelectionDaysInNextAndPreviousMonths: opts.enableSelectionDaysInNextAndPreviousMonths\n      };\n      if (opts.pickWholeWeek && isSelected) {\n        isWeekSelected = true;\n      }\n      row.push(renderDay(dayConfig));\n      if (++r === 7) {\n        if (opts.showWeekNumber) {\n          row.unshift(renderWeek(this, i - before, month, year, opts.firstWeekOfYearMinDays));\n        }\n        data.push(renderRow(row, opts.isRTL, opts.pickWholeWeek, isWeekSelected));\n        row = [];\n        r = 0;\n        isWeekSelected = false;\n      }\n    }\n    return renderTable(opts, data, randId);\n  },\n  isVisible: function() {\n    return this._v;\n  },\n  show: function() {\n    if (!this.isVisible()) {\n      this._v = true;\n      this.draw();\n      removeClass(this.el, \"is-hidden\");\n      if (this._o.bound) {\n        addEvent(getDocument(), \"click\", this._onClick);\n        this.adjustPosition();\n      }\n      if (typeof this._o.onOpen === \"function\") {\n        this._o.onOpen.call(this);\n      }\n    }\n  },\n  hide: function() {\n    let v = this._v;\n    if (v !== false) {\n      if (this._o.bound) {\n        removeEvent(getDocument(), \"click\", this._onClick);\n      }\n      if (!this._o.container) {\n        this.el.style.position = \"static\";\n        this.el.style.left = \"auto\";\n        this.el.style.top = \"auto\";\n      }\n      addClass(this.el, \"is-hidden\");\n      this._v = false;\n      if (v !== void 0 && typeof this._o.onClose === \"function\") {\n        this._o.onClose.call(this);\n      }\n    }\n  },\n  /**\n   * GAME OVER\n   */\n  destroy: function() {\n    let opts = this._o;\n    this.hide();\n    removeEvent(this.el, \"mousedown\", this._onMouseDown, true);\n    removeEvent(this.el, \"touchend\", this._onMouseDown, true);\n    removeEvent(this.el, \"change\", this._onChange);\n    if (opts.keyboardInput) {\n      removeEvent(getDocument(), \"keydown\", this._onKeyChange);\n    }\n    if (opts.field) {\n      removeEvent(opts.field, \"change\", this._onInputChange);\n      if (opts.bound) {\n        removeEvent(opts.trigger, \"click\", this._onInputClick);\n        removeEvent(opts.trigger, \"focus\", this._onInputFocus);\n        removeEvent(opts.trigger, \"blur\", this._onInputBlur);\n      }\n    }\n    if (this.el.parentNode) {\n      this.el.parentNode.removeChild(this.el);\n    }\n  }\n};\n\n\n\n//# sourceURL=webpack:///./node_modules/@handsontable/pikaday/pikaday.mjs?");

/***/ }),

/***/ "./node_modules/@handsontable/vue/es/vue-handsontable.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/@handsontable/vue/es/vue-handsontable.mjs ***!
  \****************************************************************/
/*! exports provided: BaseEditorComponent, HotColumn, HotTable, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BaseEditorComponent\", function() { return __vue_component__; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HotColumn\", function() { return __vue_component__$1; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HotTable\", function() { return __vue_component__$2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return __vue_component__$2; });\n/* harmony import */ var handsontable_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! handsontable/base */ \"./node_modules/handsontable/base.mjs\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n\n\n\nfunction _assertThisInitialized(e) {\n  if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  return e;\n}\nfunction _callSuper(t, o, e) {\n  return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));\n}\nfunction _classCallCheck(a, n) {\n  if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction _defineProperties(e, r) {\n  for (var t = 0; t < r.length; t++) {\n    var o = r[t];\n    o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n  }\n}\nfunction _createClass(e, r, t) {\n  return r && _defineProperties(e.prototype, r), Object.defineProperty(e, \"prototype\", {\n    writable: !1\n  }), e;\n}\nfunction _defineProperty$1(e, r, t) {\n  return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nfunction _getPrototypeOf(t) {\n  return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n    return t.__proto__ || Object.getPrototypeOf(t);\n  }, _getPrototypeOf(t);\n}\nfunction _inherits(t, e) {\n  if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n  t.prototype = Object.create(e && e.prototype, {\n    constructor: {\n      value: t,\n      writable: !0,\n      configurable: !0\n    }\n  }), Object.defineProperty(t, \"prototype\", {\n    writable: !1\n  }), e && _setPrototypeOf(t, e);\n}\nfunction _isNativeReflectConstruct() {\n  try {\n    var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n  } catch (t) {}\n  return (_isNativeReflectConstruct = function () {\n    return !!t;\n  })();\n}\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty$1(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nfunction _possibleConstructorReturn(t, e) {\n  if (e && (\"object\" == typeof e || \"function\" == typeof e)) return e;\n  if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n  return _assertThisInitialized(t);\n}\nfunction _setPrototypeOf(t, e) {\n  return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n    return t.__proto__ = e, t;\n  }, _setPrototypeOf(t, e);\n}\nfunction _toPrimitive(t, r) {\n  if (\"object\" != typeof t || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != typeof i) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n  var i = _toPrimitive(t, \"string\");\n  return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _typeof$1(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof$1(o);\n}\n\nvar unassignedPropSymbol = Symbol('unassigned');\nvar bulkComponentContainer = null;\n/**\r\n * Message for the warning thrown if the Handsontable instance has been destroyed.\r\n */\nvar HOT_DESTROYED_WARNING = 'The Handsontable instance bound to this component was destroyed and cannot be' + ' used properly.';\n/**\r\n * Private method to ensure the table is not calling `updateSettings` after editing cells.\r\n * @private\r\n */\nfunction preventInternalEditWatch(component) {\n  if (component.hotInstance) {\n    component.hotInstance.addHook('beforeChange', function () {\n      component.__internalEdit = true;\n    });\n    component.hotInstance.addHook('beforeCreateRow', function () {\n      component.__internalEdit = true;\n    });\n    component.hotInstance.addHook('beforeCreateCol', function () {\n      component.__internalEdit = true;\n    });\n    component.hotInstance.addHook('beforeRemoveRow', function () {\n      component.__internalEdit = true;\n    });\n    component.hotInstance.addHook('beforeRemoveCol', function () {\n      component.__internalEdit = true;\n    });\n  }\n}\n/**\r\n * Generate an object containing all the available Handsontable properties and plugin hooks.\r\n *\r\n * @param {String} source Source for the factory (either 'HotTable' or 'HotColumn').\r\n * @returns {Object}\r\n */\nfunction propFactory(source) {\n  var registeredHooks = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hooks.getRegistered();\n  var propSchema = {};\n  Object.assign(propSchema, handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].DefaultSettings);\n  for (var prop in propSchema) {\n    propSchema[prop] = {\n      \"default\": unassignedPropSymbol\n    };\n  }\n  for (var i = 0; i < registeredHooks.length; i++) {\n    propSchema[registeredHooks[i]] = {\n      \"default\": unassignedPropSymbol\n    };\n  }\n  propSchema.settings = {\n    \"default\": unassignedPropSymbol\n  };\n  if (source === 'HotTable') {\n    propSchema.id = {\n      type: String,\n      \"default\": 'hot-' + Math.random().toString(36).substring(5)\n    };\n    propSchema.wrapperRendererCacheSize = {\n      type: Number,\n      \"default\": 3000\n    };\n  }\n  return propSchema;\n}\n/**\r\n * Filter out all of the unassigned props, and return only the one passed to the component.\r\n *\r\n * @param {Object} props Object containing all the possible props.\r\n * @returns {Object} Object containing only used props.\r\n */\nfunction filterPassedProps(props) {\n  var filteredProps = {};\n  var columnSettingsProp = props['settings'];\n  if (columnSettingsProp !== unassignedPropSymbol) {\n    for (var propName in columnSettingsProp) {\n      if (columnSettingsProp.hasOwnProperty(propName) && columnSettingsProp[propName] !== unassignedPropSymbol) {\n        filteredProps[propName] = columnSettingsProp[propName];\n      }\n    }\n  }\n  for (var _propName in props) {\n    if (props.hasOwnProperty(_propName) && _propName !== 'settings' && props[_propName] !== unassignedPropSymbol) {\n      filteredProps[_propName] = props[_propName];\n    }\n  }\n  return filteredProps;\n}\n/**\r\n * Prepare the settings object to be used as the settings for Handsontable, based on the props provided to the component.\r\n *\r\n * @param {HotTableProps} props The props passed to the component.\r\n * @param {Handsontable.GridSettings} currentSettings The current Handsontable settings.\r\n * @returns {Handsontable.GridSettings} An object containing the properties, ready to be used within Handsontable.\r\n */\nfunction prepareSettings(props, currentSettings) {\n  var assignedProps = filterPassedProps(props);\n  var hotSettingsInProps = props.settings ? props.settings : assignedProps;\n  var additionalHotSettingsInProps = props.settings ? assignedProps : null;\n  var newSettings = {};\n  for (var key in hotSettingsInProps) {\n    if (hotSettingsInProps.hasOwnProperty(key) && hotSettingsInProps[key] !== void 0 && (currentSettings && key !== 'data' ? !simpleEqual(currentSettings[key], hotSettingsInProps[key]) : true)) {\n      newSettings[key] = hotSettingsInProps[key];\n    }\n  }\n  for (var _key in additionalHotSettingsInProps) {\n    if (additionalHotSettingsInProps.hasOwnProperty(_key) && _key !== 'id' && _key !== 'settings' && _key !== 'wrapperRendererCacheSize' && additionalHotSettingsInProps[_key] !== void 0 && (currentSettings && _key !== 'data' ? !simpleEqual(currentSettings[_key], additionalHotSettingsInProps[_key]) : true)) {\n      newSettings[_key] = additionalHotSettingsInProps[_key];\n    }\n  }\n  return newSettings;\n}\n/**\r\n * Get the VNode element with the provided type attribute from the component slots.\r\n *\r\n * @param {Array} componentSlots Array of slots from a component.\r\n * @param {String} type Type of the child component. Either `hot-renderer` or `hot-editor`.\r\n * @returns {Object|null} The VNode of the child component (or `null` when nothing's found).\r\n */\nfunction findVNodeByType(componentSlots, type) {\n  var componentVNode = null;\n  componentSlots.every(function (slot, index) {\n    if (slot.data && slot.data.attrs && slot.data.attrs[type] !== void 0) {\n      componentVNode = slot;\n      return false;\n    }\n    return true;\n  });\n  return componentVNode;\n}\n/**\r\n * Get all `hot-column` component instances from the provided children array.\r\n *\r\n * @param {Array} children Array of children from a component.\r\n * @returns {Array} Array of `hot-column` instances.\r\n */\nfunction getHotColumnComponents(children) {\n  return children.filter(function (child) {\n    return child.$options.name === 'HotColumn';\n  });\n}\n/**\r\n * Create an instance of the Vue Component based on the provided VNode.\r\n *\r\n * @param {Object} vNode VNode element to be turned into a component instance.\r\n * @param {Object} parent Instance of the component to be marked as a parent of the newly created instance.\r\n * @param {Object} props Props to be passed to the new instance.\r\n * @param {Object} data Data to be passed to the new instance.\r\n */\nfunction createVueComponent(vNode, parent, props, data) {\n  var ownerDocument = parent.$el ? parent.$el.ownerDocument : document;\n  var settings = {\n    propsData: props,\n    parent: parent,\n    data: data\n  };\n  if (!bulkComponentContainer) {\n    bulkComponentContainer = ownerDocument.createElement('DIV');\n    bulkComponentContainer.id = 'vueHotComponents';\n    ownerDocument.body.appendChild(bulkComponentContainer);\n  }\n  var componentContainer = ownerDocument.createElement('DIV');\n  bulkComponentContainer.appendChild(componentContainer);\n  return new vNode.componentOptions.Ctor(settings).$mount(componentContainer);\n}\n/**\r\n * Compare two objects using `JSON.stringify`.\r\n * *Note: * As it's using the stringify function to compare objects, the property order in both objects is\r\n * important. It will return `false` for the same objects, if they're defined in a different order.\r\n *\r\n * @param {object} objectA First object to compare.\r\n * @param {object} objectB Second object to compare.\r\n * @returns {boolean} `true` if they're the same, `false` otherwise.\r\n */\nfunction simpleEqual(objectA, objectB) {\n  var stringifyToJSON = function stringifyToJSON(val) {\n    var circularReplacer = function () {\n      var seen = new WeakSet();\n      return function (key, value) {\n        if (_typeof$1(value) === 'object' && value !== null) {\n          if (seen.has(value)) return;\n          seen.add(value);\n        }\n        return value;\n      };\n    }();\n    return JSON.stringify(val, circularReplacer);\n  };\n  if (typeof objectA === 'function' && typeof objectB === 'function') {\n    return objectA.toString() === objectB.toString();\n  } else if (_typeof$1(objectA) !== _typeof$1(objectB)) {\n    return false;\n  } else {\n    return stringifyToJSON(objectA) === stringifyToJSON(objectB);\n  }\n}\n\nvar version=\"14.5.0\";\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar lru = {};\n\n(function (exports) {\n  (function (g, f) {\n    var e = exports ;\n    f(e);\n  })(commonjsGlobal, function (exports) {\n    var NEWER = Symbol('newer');\n    var OLDER = Symbol('older');\n    function LRUMap(limit, entries) {\n      if (typeof limit !== 'number') {\n        // called as (entries)\n        entries = limit;\n        limit = 0;\n      }\n      this.size = 0;\n      this.limit = limit;\n      this.oldest = this.newest = undefined;\n      this._keymap = new Map();\n      if (entries) {\n        this.assign(entries);\n        if (limit < 1) {\n          this.limit = this.size;\n        }\n      }\n    }\n    exports.LRUMap = LRUMap;\n    function Entry(key, value) {\n      this.key = key;\n      this.value = value;\n      this[NEWER] = undefined;\n      this[OLDER] = undefined;\n    }\n    LRUMap.prototype._markEntryAsUsed = function (entry) {\n      if (entry === this.newest) {\n        // Already the most recenlty used entry, so no need to update the list\n        return;\n      }\n      // HEAD--------------TAIL\n      //   <.older   .newer>\n      //  <--- add direction --\n      //   A  B  C  <D>  E\n      if (entry[NEWER]) {\n        if (entry === this.oldest) {\n          this.oldest = entry[NEWER];\n        }\n        entry[NEWER][OLDER] = entry[OLDER]; // C <-- E.\n      }\n      if (entry[OLDER]) {\n        entry[OLDER][NEWER] = entry[NEWER]; // C. --> E\n      }\n      entry[NEWER] = undefined; // D --x\n      entry[OLDER] = this.newest; // D. --> E\n      if (this.newest) {\n        this.newest[NEWER] = entry; // E. <-- D\n      }\n      this.newest = entry;\n    };\n    LRUMap.prototype.assign = function (entries) {\n      var entry,\n        limit = this.limit || Number.MAX_VALUE;\n      this._keymap.clear();\n      var it = entries[Symbol.iterator]();\n      for (var itv = it.next(); !itv.done; itv = it.next()) {\n        var e = new Entry(itv.value[0], itv.value[1]);\n        this._keymap.set(e.key, e);\n        if (!entry) {\n          this.oldest = e;\n        } else {\n          entry[NEWER] = e;\n          e[OLDER] = entry;\n        }\n        entry = e;\n        if (limit-- == 0) {\n          throw new Error('overflow');\n        }\n      }\n      this.newest = entry;\n      this.size = this._keymap.size;\n    };\n    LRUMap.prototype.get = function (key) {\n      // First, find our cache entry\n      var entry = this._keymap.get(key);\n      if (!entry) return; // Not cached. Sorry.\n      // As <key> was found in the cache, register it as being requested recently\n      this._markEntryAsUsed(entry);\n      return entry.value;\n    };\n    LRUMap.prototype.set = function (key, value) {\n      var entry = this._keymap.get(key);\n      if (entry) {\n        // update existing\n        entry.value = value;\n        this._markEntryAsUsed(entry);\n        return this;\n      }\n\n      // new entry\n      this._keymap.set(key, entry = new Entry(key, value));\n      if (this.newest) {\n        // link previous tail to the new tail (entry)\n        this.newest[NEWER] = entry;\n        entry[OLDER] = this.newest;\n      } else {\n        // we're first in -- yay\n        this.oldest = entry;\n      }\n\n      // add new entry to the end of the linked list -- it's now the freshest entry.\n      this.newest = entry;\n      ++this.size;\n      if (this.size > this.limit) {\n        // we hit the limit -- remove the head\n        this.shift();\n      }\n      return this;\n    };\n    LRUMap.prototype.shift = function () {\n      // todo: handle special case when limit == 1\n      var entry = this.oldest;\n      if (entry) {\n        if (this.oldest[NEWER]) {\n          // advance the list\n          this.oldest = this.oldest[NEWER];\n          this.oldest[OLDER] = undefined;\n        } else {\n          // the cache is exhausted\n          this.oldest = undefined;\n          this.newest = undefined;\n        }\n        // Remove last strong reference to <entry> and remove links from the purged\n        // entry being returned:\n        entry[NEWER] = entry[OLDER] = undefined;\n        this._keymap[\"delete\"](entry.key);\n        --this.size;\n        return [entry.key, entry.value];\n      }\n    };\n\n    // ----------------------------------------------------------------------------\n    // Following code is optional and can be removed without breaking the core\n    // functionality.\n    LRUMap.prototype.has = function (key) {\n      return this._keymap.has(key);\n    };\n  });\n})(lru);\n\nvar HotTable = {\n  name: 'HotTable',\n  props: propFactory('HotTable'),\n  watch: {\n    mergedHotSettings: function mergedHotSettings(value) {\n      if (!this.hotInstance || value === void 0) {\n        return;\n      }\n      if (value.data) {\n        if (this.hotInstance.isColumnModificationAllowed() || !this.hotInstance.isColumnModificationAllowed() && this.hotInstance.countSourceCols() === this.miscCache.currentSourceColumns) {\n          // If the dataset dimensions change, update the index mappers.\n          this.matchHotMappersSize();\n          // Data is automatically synchronized by reference.\n          delete value.data;\n        }\n      }\n      // If there are another options changed, update the HOT settings, render the table otherwise.\n      if (Object.keys(value).length) {\n        this.hotInstance.updateSettings(value);\n      } else {\n        this.hotInstance.render();\n      }\n      this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n    }\n  },\n  data: function data() {\n    var thisComponent = this;\n    var rendererCache = new lru.LRUMap(this.wrapperRendererCacheSize);\n    // Make the LRU cache destroy each removed component\n    rendererCache.shift = function () {\n      var entry = lru.LRUMap.prototype.shift.call(this);\n      entry[1].component.$destroy();\n      return entry;\n    };\n    return {\n      __internalEdit: false,\n      miscCache: {\n        currentSourceColumns: null\n      },\n      __hotInstance: null,\n      columnSettings: null,\n      rendererCache: rendererCache,\n      editorCache: new Map(),\n      get hotInstance() {\n        if (!thisComponent.__hotInstance || thisComponent.__hotInstance && !thisComponent.__hotInstance.isDestroyed) {\n          // Will return the Handsontable instance or `null` if it's not yet been created.\n          return thisComponent.__hotInstance;\n        } else {\n          console.warn(HOT_DESTROYED_WARNING);\n          return null;\n        }\n      },\n      set hotInstance(hotInstance) {\n        thisComponent.__hotInstance = hotInstance;\n      }\n    };\n  },\n  computed: {\n    mergedHotSettings: function mergedHotSettings() {\n      return prepareSettings(this.$props, this.hotInstance ? this.hotInstance.getSettings() : void 0);\n    }\n  },\n  methods: {\n    /**\r\n     * Initialize Handsontable.\r\n     */\n    hotInit: function hotInit() {\n      var globalRendererVNode = this.getGlobalRendererVNode();\n      var globalEditorVNode = this.getGlobalEditorVNode();\n      var newSettings = prepareSettings(this.$props);\n      newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;\n      if (globalEditorVNode) {\n        newSettings.editor = this.getEditorClass(globalEditorVNode, this);\n        globalEditorVNode.child.$destroy();\n      }\n      if (globalRendererVNode) {\n        newSettings.renderer = this.getRendererWrapper(globalRendererVNode, this);\n        globalRendererVNode.child.$destroy();\n      }\n      this.hotInstance = new handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Core(this.$el, newSettings);\n      this.hotInstance.init();\n      preventInternalEditWatch(this);\n      this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n    },\n    matchHotMappersSize: function matchHotMappersSize() {\n      var _this = this;\n      if (!this.hotInstance) {\n        return;\n      }\n      var data = this.hotInstance.getSourceData();\n      var rowsToRemove = [];\n      var columnsToRemove = [];\n      var indexMapperRowCount = this.hotInstance.rowIndexMapper.getNumberOfIndexes();\n      var isColumnModificationAllowed = this.hotInstance.isColumnModificationAllowed();\n      var indexMapperColumnCount = 0;\n      if (data && data.length !== indexMapperRowCount) {\n        if (data.length < indexMapperRowCount) {\n          for (var r = data.length; r < indexMapperRowCount; r++) {\n            rowsToRemove.push(r);\n          }\n        }\n      }\n      if (isColumnModificationAllowed) {\n        var _data$;\n        indexMapperColumnCount = this.hotInstance.columnIndexMapper.getNumberOfIndexes();\n        if (data && data[0] && ((_data$ = data[0]) === null || _data$ === void 0 ? void 0 : _data$.length) !== indexMapperColumnCount) {\n          if (data[0].length < indexMapperColumnCount) {\n            for (var c = data[0].length; c < indexMapperColumnCount; c++) {\n              columnsToRemove.push(c);\n            }\n          }\n        }\n      }\n      this.hotInstance.batch(function () {\n        if (rowsToRemove.length > 0) {\n          _this.hotInstance.rowIndexMapper.removeIndexes(rowsToRemove);\n        } else {\n          _this.hotInstance.rowIndexMapper.insertIndexes(indexMapperRowCount - 1, data.length - indexMapperRowCount);\n        }\n        if (isColumnModificationAllowed && data.length !== 0) {\n          if (columnsToRemove.length > 0) {\n            _this.hotInstance.columnIndexMapper.removeIndexes(columnsToRemove);\n          } else {\n            _this.hotInstance.columnIndexMapper.insertIndexes(indexMapperColumnCount - 1, data[0].length - indexMapperColumnCount);\n          }\n        }\n      });\n    },\n    getGlobalRendererVNode: function getGlobalRendererVNode() {\n      var hotTableSlots = this.$slots[\"default\"] || [];\n      return findVNodeByType(hotTableSlots, 'hot-renderer');\n    },\n    getGlobalEditorVNode: function getGlobalEditorVNode() {\n      var hotTableSlots = this.$slots[\"default\"] || [];\n      return findVNodeByType(hotTableSlots, 'hot-editor');\n    },\n    /**\r\n     * Get settings for the columns provided in the `hot-column` components.\r\n     */\n    getColumnSettings: function getColumnSettings() {\n      var hotColumns = getHotColumnComponents(this.$children);\n      var usesRendererComponent = false;\n      var columnSettings = hotColumns.map(function (elem) {\n        if (elem.usesRendererComponent) {\n          usesRendererComponent = true;\n        }\n        return _objectSpread2({}, elem.columnSettings);\n      });\n      if (usesRendererComponent && this.settings && (this.settings.autoColumnSize !== false || this.settings.autoRowSize) && (this.autoColumnSize !== false || this.autoRowSize)) {\n        console.warn('Your `hot-table` configuration includes both `hot-column` and `autoRowSize`/`autoColumnSize`, which are not compatible with each other ' + 'in this version of `@handsontable/vue`. Disable `autoRowSize` and `autoColumnSize` to prevent row and column misalignment.');\n      }\n      return columnSettings.length ? columnSettings : void 0;\n    },\n    /**\r\n     * Create the wrapper function for the provided renderer child component.\r\n     *\r\n     * @param {Object} vNode VNode of the renderer child component.\r\n     * @param {Boolean} containerComponent Instance of the component, which will be treated as a parent for the newly created renderer component.\r\n     * @returns {Function} The wrapper function used as the renderer.\r\n     */\n    getRendererWrapper: function getRendererWrapper(vNode, containerComponent) {\n      var $vm = this;\n      return function (instance, TD, row, col, prop, value, cellProperties) {\n        // Prevent caching and rendering of the GhostTable table cells\n        if (TD && !TD.getAttribute('ghost-table')) {\n          var rendererCache = $vm.rendererCache;\n          var rendererArgs = {\n            hotInstance: instance,\n            TD: TD,\n            row: row,\n            col: col,\n            prop: prop,\n            value: value,\n            cellProperties: cellProperties,\n            isRenderer: true\n          };\n          if (rendererCache && !rendererCache.has(\"\".concat(row, \"-\").concat(col))) {\n            var mountedComponent = createVueComponent(vNode, containerComponent, vNode.componentOptions.propsData, rendererArgs);\n            rendererCache.set(\"\".concat(row, \"-\").concat(col), {\n              component: mountedComponent,\n              lastUsedTD: null\n            });\n          }\n          var cachedEntry = rendererCache.get(\"\".concat(row, \"-\").concat(col));\n          var cachedComponent = cachedEntry.component;\n          var cachedTD = cachedEntry.lastUsedTD;\n          Object.assign(cachedComponent.$data, rendererArgs);\n          if (!cachedComponent.$el.parentElement || cachedTD !== TD) {\n            // Clear the previous contents of a TD\n            while (TD.firstChild) {\n              TD.removeChild(TD.firstChild);\n            }\n            TD.appendChild(cachedComponent.$el);\n            cachedEntry.lastUsedTD = TD;\n          }\n        }\n        return TD;\n      };\n    },\n    /**\r\n     * Create a fresh class to be used as an editor, based on the editor component provided.\r\n     *\r\n     * @param {Object} vNode VNode for the editor child component.\r\n     * @param {Boolean} containerComponent Instance of the component, which will be treated as a parent for the newly created editor component.\r\n     * @returns {Class} The class used as an editor in Handsontable.\r\n     */\n    getEditorClass: function getEditorClass(vNode, containerComponent) {\n      var componentKey = vNode.key ? vNode.key.toString() : null;\n      var componentName = vNode.componentOptions.Ctor.options.name;\n      var componentCacheKey = componentKey ? \"\".concat(componentName, \":\").concat(componentKey) : componentName;\n      var editorCache = this.editorCache;\n      var mountedComponent = null;\n      if (!editorCache.has(componentCacheKey)) {\n        mountedComponent = createVueComponent(vNode, containerComponent, vNode.componentOptions.propsData, {\n          isEditor: true\n        });\n        editorCache.set(componentCacheKey, mountedComponent);\n      } else {\n        mountedComponent = editorCache.get(componentCacheKey);\n      }\n      return mountedComponent.$data.hotCustomEditorClass;\n    }\n  },\n  mounted: function mounted() {\n    this.columnSettings = this.getColumnSettings();\n    return this.hotInit();\n  },\n  beforeDestroy: function beforeDestroy() {\n    if (this.hotInstance) {\n      this.hotInstance.destroy();\n    }\n  },\n  version: version\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n    // Vue.extend constructor export interop.\r\n    const options = typeof script === 'function' ? script.options : script;\r\n    // render functions\r\n    if (template && template.render) {\r\n        options.render = template.render;\r\n        options.staticRenderFns = template.staticRenderFns;\r\n        options._compiled = true;\r\n        // functional template\r\n        if (isFunctionalTemplate) {\r\n            options.functional = true;\r\n        }\r\n    }\r\n    return script;\r\n}\n\n/* script */\nvar __vue_script__$2 = HotTable;\n\n/* template */\nvar __vue_render__ = function __vue_render__() {\n  var _vm = this;\n  var _h = _vm.$createElement;\n  var _c = _vm._self._c || _h;\n  return _c('div', {\n    attrs: {\n      \"id\": _vm.id\n    }\n  }, [_vm._t(\"default\")], 2);\n};\nvar __vue_staticRenderFns__ = [];\n\n/* style */\nvar __vue_inject_styles__$2 = undefined;\n/* scoped */\nvar __vue_scope_id__$2 = undefined;\n/* functional template */\nvar __vue_is_functional_template__$2 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$2 = /*#__PURE__*/normalizeComponent({\n  render: __vue_render__,\n  staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__$2, __vue_script__$2, __vue_scope_id__$2, __vue_is_functional_template__$2);\n\nvar HotColumn = {\n  name: 'HotColumn',\n  props: propFactory('HotColumn'),\n  methods: {\n    /**\r\n     * Create the column settings based on the data provided to the `hot-column` component and it's child components.\r\n     */\n    createColumnSettings: function createColumnSettings() {\n      var hotColumnSlots = this.$slots[\"default\"] || [];\n      var rendererVNode = findVNodeByType(hotColumnSlots, 'hot-renderer');\n      var editorVNode = findVNodeByType(hotColumnSlots, 'hot-editor');\n      var assignedProps = filterPassedProps(this.$props);\n      if (rendererVNode && this.usesRendererComponent === void 0) {\n        this.usesRendererComponent = true;\n      }\n      this.columnSettings = _objectSpread2({}, assignedProps);\n      if (rendererVNode !== null) {\n        this.columnSettings.renderer = this.$parent.getRendererWrapper(rendererVNode, this);\n      } else if (assignedProps.renderer) {\n        this.columnSettings.renderer = assignedProps.renderer;\n      }\n      if (editorVNode !== null) {\n        this.columnSettings.editor = this.$parent.getEditorClass(editorVNode, this);\n      } else if (assignedProps.editor) {\n        this.columnSettings.editor = assignedProps.editor;\n      }\n    }\n  },\n  mounted: function mounted() {\n    this.createColumnSettings();\n  },\n  render: function render() {\n    return null;\n  }\n};\n\n/* script */\nvar __vue_script__$1 = HotColumn;\n\n/* template */\n\n/* style */\nvar __vue_inject_styles__$1 = undefined;\n/* scoped */\nvar __vue_scope_id__$1 = undefined;\n/* functional template */\nvar __vue_is_functional_template__$1 = undefined;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$1 = /*#__PURE__*/normalizeComponent({}, __vue_inject_styles__$1, __vue_script__$1, __vue_scope_id__$1, __vue_is_functional_template__$1);\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n    var e = new Error(message);\r\n    return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && _typeof$1(Symbol.iterator) === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return _typeof$1(obj);\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof$1(obj);\n    };\n  }\n  return _typeof(obj);\n}\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n    return arr2;\n  }\n}\nfunction _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nfunction reflectionIsSupported() {\n  return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n  forwardMetadata(to, from);\n  Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n    forwardMetadata(to.prototype, from.prototype, key);\n  });\n  Object.getOwnPropertyNames(from).forEach(function (key) {\n    forwardMetadata(to, from, key);\n  });\n}\nfunction forwardMetadata(to, from, propertyKey) {\n  var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n  metaKeys.forEach(function (metaKey) {\n    var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n    if (propertyKey) {\n      Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n    } else {\n      Reflect.defineMetadata(metaKey, metadata, to);\n    }\n  });\n}\nvar fakeArray = {\n  __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction isPrimitive(value) {\n  var type = _typeof(value);\n  return value == null || type !== 'object' && type !== 'function';\n}\nfunction collectDataFromConstructor(vm, Component) {\n  // override _init to prevent to init as Vue instance\n  var originalInit = Component.prototype._init;\n  Component.prototype._init = function () {\n    var _this = this;\n\n    // proxy to actual vm\n    var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)\n\n    if (vm.$options.props) {\n      for (var key in vm.$options.props) {\n        if (!vm.hasOwnProperty(key)) {\n          keys.push(key);\n        }\n      }\n    }\n    keys.forEach(function (key) {\n      Object.defineProperty(_this, key, {\n        get: function get() {\n          return vm[key];\n        },\n        set: function set(value) {\n          vm[key] = value;\n        },\n        configurable: true\n      });\n    });\n  }; // should be acquired class property values\n\n  var data = new Component(); // restore original _init to avoid memory leak (#209)\n\n  Component.prototype._init = originalInit; // create plain data object\n\n  var plainData = {};\n  Object.keys(data).forEach(function (key) {\n    if (data[key] !== undefined) {\n      plainData[key] = data[key];\n    }\n  });\n  return plainData;\n}\nvar $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  options.name = options.name || Component._componentTag || Component.name; // prototype props.\n\n  var proto = Component.prototype;\n  Object.getOwnPropertyNames(proto).forEach(function (key) {\n    if (key === 'constructor') {\n      return;\n    } // hooks\n\n    if ($internalHooks.indexOf(key) > -1) {\n      options[key] = proto[key];\n      return;\n    }\n    var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n    if (descriptor.value !== void 0) {\n      // methods\n      if (typeof descriptor.value === 'function') {\n        (options.methods || (options.methods = {}))[key] = descriptor.value;\n      } else {\n        // typescript decorated data\n        (options.mixins || (options.mixins = [])).push({\n          data: function data() {\n            return _defineProperty({}, key, descriptor.value);\n          }\n        });\n      }\n    } else if (descriptor.get || descriptor.set) {\n      // computed properties\n      (options.computed || (options.computed = {}))[key] = {\n        get: descriptor.get,\n        set: descriptor.set\n      };\n    }\n  });\n  (options.mixins || (options.mixins = [])).push({\n    data: function data() {\n      return collectDataFromConstructor(this, Component);\n    }\n  }); // decorate options\n\n  var decorators = Component.__decorators__;\n  if (decorators) {\n    decorators.forEach(function (fn) {\n      return fn(options);\n    });\n    delete Component.__decorators__;\n  } // find super\n\n  var superProto = Object.getPrototypeOf(Component.prototype);\n  var Super = superProto instanceof vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"] ? superProto.constructor : vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n  var Extended = Super.extend(options);\n  forwardStaticMembers(Extended, Component, Super);\n  if (reflectionIsSupported()) {\n    copyReflectionMetadata(Extended, Component);\n  }\n  return Extended;\n}\nvar shouldIgnore = {\n  prototype: true,\n  arguments: true,\n  callee: true,\n  caller: true\n};\nfunction forwardStaticMembers(Extended, Original, Super) {\n  // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n  Object.getOwnPropertyNames(Original).forEach(function (key) {\n    // Skip the properties that should not be overwritten\n    if (shouldIgnore[key]) {\n      return;\n    } // Some browsers does not allow reconfigure built-in properties\n\n    var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n    if (extendedDescriptor && !extendedDescriptor.configurable) {\n      return;\n    }\n    var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),\n    // the sub class properties may be inherited properties from the super class in TypeScript.\n    // We need to exclude such properties to prevent to overwrite\n    // the component options object which stored on the extended constructor (See #192).\n    // If the value is a referenced value (object or function),\n    // we can check equality of them and exclude it if they have the same reference.\n    // If it is a primitive value, it will be forwarded for safety.\n\n    if (!hasProto) {\n      // Only `cid` is explicitly exluded from property forwarding\n      // because we cannot detect whether it is a inherited property or not\n      // on the no `__proto__` environment even though the property is reserved.\n      if (key === 'cid') {\n        return;\n      }\n      var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n      if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n        return;\n      }\n    } // Warn if the users manually declare reserved properties\n    Object.defineProperty(Extended, key, descriptor);\n  });\n}\nfunction Component(options) {\n  if (typeof options === 'function') {\n    return componentFactory(options);\n  }\n  return function (Component) {\n    return componentFactory(Component, options);\n  };\n}\nComponent.registerHooks = function registerHooks(keys) {\n  $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\n\nvar BaseEditorComponent = /*#__PURE__*/function (_Vue) {\n  function BaseEditorComponent() {\n    var _this2;\n    _classCallCheck(this, BaseEditorComponent);\n    _this2 = _callSuper(this, BaseEditorComponent, arguments);\n    _this2.name = 'BaseEditorComponent';\n    _this2.instance = null;\n    _this2.row = null;\n    _this2.col = null;\n    _this2.prop = null;\n    _this2.TD = null;\n    _this2.originalValue = null;\n    _this2.cellProperties = null;\n    _this2.state = null;\n    _this2.hot = null;\n    return _this2;\n  }\n  _inherits(BaseEditorComponent, _Vue);\n  return _createClass(BaseEditorComponent, [{\n    key: \"mounted\",\n    value: function mounted() {\n      var _this = this;\n      this.$data.hotCustomEditorClass = function () {\n        var customEditorClass = /*#__PURE__*/function (_Handsontable$editors) {\n          function CustomEditor(hotInstance) {\n            var _this3;\n            _classCallCheck(this, CustomEditor);\n            _this3 = _callSuper(this, CustomEditor, [hotInstance]);\n            _this.$data.hotCustomEditorInstance = _this3;\n            return _this3;\n          }\n          _inherits(CustomEditor, _Handsontable$editors);\n          return _createClass(CustomEditor, [{\n            key: \"focus\",\n            value: function focus() {}\n          }, {\n            key: \"getValue\",\n            value: function getValue() {}\n          }, {\n            key: \"setValue\",\n            value: function setValue() {}\n          }, {\n            key: \"open\",\n            value: function open() {}\n          }, {\n            key: \"close\",\n            value: function close() {}\n          }]);\n        }(handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor);\n        // Fill with the rest of the BaseEditorComponent methods\n        Object.getOwnPropertyNames(handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype).forEach(function (propName) {\n          if (propName === 'constructor') {\n            return;\n          }\n          customEditorClass.prototype[propName] = function () {\n            var _this$propName;\n            for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n              args[_key] = arguments[_key];\n            }\n            return (_this$propName = _this[propName]).call.apply(_this$propName, [this].concat(args));\n          };\n        });\n        return customEditorClass;\n      }();\n    }\n    // BaseEditorComponent methods:\n  }, {\n    key: \"_fireCallbacks\",\n    value: function _fireCallbacks() {\n      var _Handsontable$editors2;\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      (_Handsontable$editors2 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype._fireCallbacks).call.apply(_Handsontable$editors2, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"beginEditing\",\n    value: function beginEditing() {\n      var _Handsontable$editors3;\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n      return (_Handsontable$editors3 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.beginEditing).call.apply(_Handsontable$editors3, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"cancelChanges\",\n    value: function cancelChanges() {\n      var _Handsontable$editors4;\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n      return (_Handsontable$editors4 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.cancelChanges).call.apply(_Handsontable$editors4, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"checkEditorSection\",\n    value: function checkEditorSection() {\n      var _Handsontable$editors5;\n      for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n        args[_key5] = arguments[_key5];\n      }\n      return (_Handsontable$editors5 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.checkEditorSection).call.apply(_Handsontable$editors5, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"close\",\n    value: function close() {\n      var _Handsontable$editors6;\n      for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n        args[_key6] = arguments[_key6];\n      }\n      return (_Handsontable$editors6 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.close).call.apply(_Handsontable$editors6, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"discardEditor\",\n    value: function discardEditor() {\n      var _Handsontable$editors7;\n      for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n        args[_key7] = arguments[_key7];\n      }\n      return (_Handsontable$editors7 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.discardEditor).call.apply(_Handsontable$editors7, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"enableFullEditMode\",\n    value: function enableFullEditMode() {\n      var _Handsontable$editors8;\n      for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n        args[_key8] = arguments[_key8];\n      }\n      return (_Handsontable$editors8 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.enableFullEditMode).call.apply(_Handsontable$editors8, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"extend\",\n    value: function extend() {\n      var _Handsontable$editors9;\n      for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n        args[_key9] = arguments[_key9];\n      }\n      return (_Handsontable$editors9 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.extend).call.apply(_Handsontable$editors9, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"finishEditing\",\n    value: function finishEditing() {\n      var _Handsontable$editors10;\n      for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n        args[_key10] = arguments[_key10];\n      }\n      return (_Handsontable$editors10 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.finishEditing).call.apply(_Handsontable$editors10, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"focus\",\n    value: function focus() {\n      var _Handsontable$editors11;\n      for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n        args[_key11] = arguments[_key11];\n      }\n      return (_Handsontable$editors11 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.focus).call.apply(_Handsontable$editors11, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"getValue\",\n    value: function getValue() {\n      var _Handsontable$editors12;\n      for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n        args[_key12] = arguments[_key12];\n      }\n      return (_Handsontable$editors12 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.getValue).call.apply(_Handsontable$editors12, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"init\",\n    value: function init() {\n      var _Handsontable$editors13;\n      for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n        args[_key13] = arguments[_key13];\n      }\n      return (_Handsontable$editors13 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.init).call.apply(_Handsontable$editors13, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"isInFullEditMode\",\n    value: function isInFullEditMode() {\n      var _Handsontable$editors14;\n      for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n        args[_key14] = arguments[_key14];\n      }\n      return (_Handsontable$editors14 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.isInFullEditMode).call.apply(_Handsontable$editors14, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"isOpened\",\n    value: function isOpened() {\n      var _Handsontable$editors15;\n      for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {\n        args[_key15] = arguments[_key15];\n      }\n      return (_Handsontable$editors15 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.isOpened).call.apply(_Handsontable$editors15, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"isWaiting\",\n    value: function isWaiting() {\n      var _Handsontable$editors16;\n      for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {\n        args[_key16] = arguments[_key16];\n      }\n      return (_Handsontable$editors16 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.isWaiting).call.apply(_Handsontable$editors16, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"open\",\n    value: function open() {\n      var _Handsontable$editors17;\n      for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {\n        args[_key17] = arguments[_key17];\n      }\n      return (_Handsontable$editors17 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.open).call.apply(_Handsontable$editors17, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"prepare\",\n    value: function prepare(row, col, prop, TD, originalValue, cellProperties) {\n      this.$data.hotInstance = cellProperties.instance;\n      this.$data.row = row;\n      this.$data.col = col;\n      this.$data.prop = prop;\n      this.$data.TD = TD;\n      this.$data.originalValue = originalValue;\n      this.$data.cellProperties = cellProperties;\n      return handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.prepare.call(this.$data.hotCustomEditorInstance, row, col, prop, TD, originalValue, cellProperties);\n    }\n  }, {\n    key: \"saveValue\",\n    value: function saveValue() {\n      var _Handsontable$editors18;\n      for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {\n        args[_key18] = arguments[_key18];\n      }\n      return (_Handsontable$editors18 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.saveValue).call.apply(_Handsontable$editors18, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"setValue\",\n    value: function setValue() {\n      var _Handsontable$editors19;\n      for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {\n        args[_key19] = arguments[_key19];\n      }\n      return (_Handsontable$editors19 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.setValue).call.apply(_Handsontable$editors19, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"addHook\",\n    value: function addHook() {\n      var _Handsontable$editors20;\n      for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {\n        args[_key20] = arguments[_key20];\n      }\n      return (_Handsontable$editors20 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.addHook).call.apply(_Handsontable$editors20, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"removeHooksByKey\",\n    value: function removeHooksByKey() {\n      var _Handsontable$editors21;\n      for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {\n        args[_key21] = arguments[_key21];\n      }\n      return (_Handsontable$editors21 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.removeHooksByKey).call.apply(_Handsontable$editors21, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"clearHooks\",\n    value: function clearHooks() {\n      var _Handsontable$editors22;\n      for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {\n        args[_key22] = arguments[_key22];\n      }\n      return (_Handsontable$editors22 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.clearHooks).call.apply(_Handsontable$editors22, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"getEditedCell\",\n    value: function getEditedCell() {\n      var _Handsontable$editors23;\n      for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {\n        args[_key23] = arguments[_key23];\n      }\n      return (_Handsontable$editors23 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.getEditedCell).call.apply(_Handsontable$editors23, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"getEditedCellRect\",\n    value: function getEditedCellRect() {\n      var _Handsontable$editors24;\n      for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {\n        args[_key24] = arguments[_key24];\n      }\n      return (_Handsontable$editors24 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.getEditedCellRect).call.apply(_Handsontable$editors24, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"getEditedCellsZIndex\",\n    value: function getEditedCellsZIndex() {\n      var _Handsontable$editors25;\n      for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {\n        args[_key25] = arguments[_key25];\n      }\n      return (_Handsontable$editors25 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.getEditedCellsZIndex).call.apply(_Handsontable$editors25, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }, {\n    key: \"getEditedCellsLayerClass\",\n    value: function getEditedCellsLayerClass() {\n      var _Handsontable$editors26;\n      for (var _len26 = arguments.length, args = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {\n        args[_key26] = arguments[_key26];\n      }\n      return (_Handsontable$editors26 = handsontable_base__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.BaseEditor.prototype.getEditedCellsLayerClass).call.apply(_Handsontable$editors26, [this.$data.hotCustomEditorInstance].concat(args));\n    }\n  }]);\n}(vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nBaseEditorComponent = __decorate([Component({})], BaseEditorComponent);\nvar script = BaseEditorComponent;\n\n/* script */\nvar __vue_script__ = script;\n\n/* template */\n\n/* style */\nvar __vue_inject_styles__ = undefined;\n/* scoped */\nvar __vue_scope_id__ = undefined;\n/* functional template */\nvar __vue_is_functional_template__ = undefined;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__);\n\n\n\n\n//# sourceURL=webpack:///./node_modules/@handsontable/vue/es/vue-handsontable.mjs?");

/***/ }),

/***/ "./node_modules/animate.css/animate.css":
/*!**********************************************!*\
  !*** ./node_modules/animate.css/animate.css ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../css-loader/dist/cjs.js??ref--6-oneOf-3-1!../postcss-loader/src??ref--6-oneOf-3-2!./animate.css */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/animate.css/animate.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5794848c\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./node_modules/animate.css/animate.css?");

/***/ }),

/***/ "./node_modules/async-validator/es/index.js":
/*!**************************************************!*\
  !*** ./node_modules/async-validator/es/index.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! babel-runtime/helpers/extends */ \"./node_modules/babel-runtime/helpers/extends.js\");\n/* harmony import */ var babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! babel-runtime/helpers/typeof */ \"./node_modules/babel-runtime/helpers/typeof.js\");\n/* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util */ \"./node_modules/async-validator/es/util.js\");\n/* harmony import */ var _validator___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./validator/ */ \"./node_modules/async-validator/es/validator/index.js\");\n/* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./messages */ \"./node_modules/async-validator/es/messages.js\");\n\n\n\n\n\n\n/**\n *  Encapsulates a validation schema.\n *\n *  @param descriptor An object declaring validation rules\n *  for this schema.\n */\nfunction Schema(descriptor) {\n  this.rules = null;\n  this._messages = _messages__WEBPACK_IMPORTED_MODULE_4__[\"messages\"];\n  this.define(descriptor);\n}\n\nSchema.prototype = {\n  messages: function messages(_messages) {\n    if (_messages) {\n      this._messages = Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"deepMerge\"])(Object(_messages__WEBPACK_IMPORTED_MODULE_4__[\"newMessages\"])(), _messages);\n    }\n    return this._messages;\n  },\n  define: function define(rules) {\n    if (!rules) {\n      throw new Error('Cannot configure a schema with no rules');\n    }\n    if ((typeof rules === 'undefined' ? 'undefined' : babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1___default()(rules)) !== 'object' || Array.isArray(rules)) {\n      throw new Error('Rules must be an object');\n    }\n    this.rules = {};\n    var z = void 0;\n    var item = void 0;\n    for (z in rules) {\n      if (rules.hasOwnProperty(z)) {\n        item = rules[z];\n        this.rules[z] = Array.isArray(item) ? item : [item];\n      }\n    }\n  },\n  validate: function validate(source_) {\n    var _this = this;\n\n    var o = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var oc = arguments[2];\n\n    var source = source_;\n    var options = o;\n    var callback = oc;\n    if (typeof options === 'function') {\n      callback = options;\n      options = {};\n    }\n    if (!this.rules || Object.keys(this.rules).length === 0) {\n      if (callback) {\n        callback();\n      }\n      return;\n    }\n    function complete(results) {\n      var i = void 0;\n      var field = void 0;\n      var errors = [];\n      var fields = {};\n\n      function add(e) {\n        if (Array.isArray(e)) {\n          errors = errors.concat.apply(errors, e);\n        } else {\n          errors.push(e);\n        }\n      }\n\n      for (i = 0; i < results.length; i++) {\n        add(results[i]);\n      }\n      if (!errors.length) {\n        errors = null;\n        fields = null;\n      } else {\n        for (i = 0; i < errors.length; i++) {\n          field = errors[i].field;\n          fields[field] = fields[field] || [];\n          fields[field].push(errors[i]);\n        }\n      }\n      callback(errors, fields);\n    }\n\n    if (options.messages) {\n      var messages = this.messages();\n      if (messages === _messages__WEBPACK_IMPORTED_MODULE_4__[\"messages\"]) {\n        messages = Object(_messages__WEBPACK_IMPORTED_MODULE_4__[\"newMessages\"])();\n      }\n      Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"deepMerge\"])(messages, options.messages);\n      options.messages = messages;\n    } else {\n      options.messages = this.messages();\n    }\n    var arr = void 0;\n    var value = void 0;\n    var series = {};\n    var keys = options.keys || Object.keys(this.rules);\n    keys.forEach(function (z) {\n      arr = _this.rules[z];\n      value = source[z];\n      arr.forEach(function (r) {\n        var rule = r;\n        if (typeof rule.transform === 'function') {\n          if (source === source_) {\n            source = babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({}, source);\n          }\n          value = source[z] = rule.transform(value);\n        }\n        if (typeof rule === 'function') {\n          rule = {\n            validator: rule\n          };\n        } else {\n          rule = babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({}, rule);\n        }\n        rule.validator = _this.getValidationMethod(rule);\n        rule.field = z;\n        rule.fullField = rule.fullField || z;\n        rule.type = _this.getType(rule);\n        if (!rule.validator) {\n          return;\n        }\n        series[z] = series[z] || [];\n        series[z].push({\n          rule: rule,\n          value: value,\n          source: source,\n          field: z\n        });\n      });\n    });\n    var errorFields = {};\n    Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"asyncMap\"])(series, options, function (data, doIt) {\n      var rule = data.rule;\n      var deep = (rule.type === 'object' || rule.type === 'array') && (babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1___default()(rule.fields) === 'object' || babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1___default()(rule.defaultField) === 'object');\n      deep = deep && (rule.required || !rule.required && data.value);\n      rule.field = data.field;\n      function addFullfield(key, schema) {\n        return babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({}, schema, {\n          fullField: rule.fullField + '.' + key\n        });\n      }\n\n      function cb() {\n        var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n        var errors = e;\n        if (!Array.isArray(errors)) {\n          errors = [errors];\n        }\n        if (errors.length) {\n          Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"warning\"])('async-validator:', errors);\n        }\n        if (errors.length && rule.message) {\n          errors = [].concat(rule.message);\n        }\n\n        errors = errors.map(Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"complementError\"])(rule));\n\n        if (options.first && errors.length) {\n          errorFields[rule.field] = 1;\n          return doIt(errors);\n        }\n        if (!deep) {\n          doIt(errors);\n        } else {\n          // if rule is required but the target object\n          // does not exist fail at the rule level and don't\n          // go deeper\n          if (rule.required && !data.value) {\n            if (rule.message) {\n              errors = [].concat(rule.message).map(Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"complementError\"])(rule));\n            } else if (options.error) {\n              errors = [options.error(rule, Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"format\"])(options.messages.required, rule.field))];\n            } else {\n              errors = [];\n            }\n            return doIt(errors);\n          }\n\n          var fieldsSchema = {};\n          if (rule.defaultField) {\n            for (var k in data.value) {\n              if (data.value.hasOwnProperty(k)) {\n                fieldsSchema[k] = rule.defaultField;\n              }\n            }\n          }\n          fieldsSchema = babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({}, fieldsSchema, data.rule.fields);\n          for (var f in fieldsSchema) {\n            if (fieldsSchema.hasOwnProperty(f)) {\n              var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]];\n              fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));\n            }\n          }\n          var schema = new Schema(fieldsSchema);\n          schema.messages(options.messages);\n          if (data.rule.options) {\n            data.rule.options.messages = options.messages;\n            data.rule.options.error = options.error;\n          }\n          schema.validate(data.value, data.rule.options || options, function (errs) {\n            doIt(errs && errs.length ? errors.concat(errs) : errs);\n          });\n        }\n      }\n\n      var res = rule.validator(rule, data.value, cb, data.source, options);\n      if (res && res.then) {\n        res.then(function () {\n          return cb();\n        }, function (e) {\n          return cb(e);\n        });\n      }\n    }, function (results) {\n      complete(results);\n    });\n  },\n  getType: function getType(rule) {\n    if (rule.type === undefined && rule.pattern instanceof RegExp) {\n      rule.type = 'pattern';\n    }\n    if (typeof rule.validator !== 'function' && rule.type && !_validator___WEBPACK_IMPORTED_MODULE_3__[\"default\"].hasOwnProperty(rule.type)) {\n      throw new Error(Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"format\"])('Unknown rule type %s', rule.type));\n    }\n    return rule.type || 'string';\n  },\n  getValidationMethod: function getValidationMethod(rule) {\n    if (typeof rule.validator === 'function') {\n      return rule.validator;\n    }\n    var keys = Object.keys(rule);\n    var messageIndex = keys.indexOf('message');\n    if (messageIndex !== -1) {\n      keys.splice(messageIndex, 1);\n    }\n    if (keys.length === 1 && keys[0] === 'required') {\n      return _validator___WEBPACK_IMPORTED_MODULE_3__[\"default\"].required;\n    }\n    return _validator___WEBPACK_IMPORTED_MODULE_3__[\"default\"][this.getType(rule)] || false;\n  }\n};\n\nSchema.register = function register(type, validator) {\n  if (typeof validator !== 'function') {\n    throw new Error('Cannot register a validator by type, validator is not a function');\n  }\n  _validator___WEBPACK_IMPORTED_MODULE_3__[\"default\"][type] = validator;\n};\n\nSchema.messages = _messages__WEBPACK_IMPORTED_MODULE_4__[\"messages\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Schema);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/index.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/messages.js":
/*!*****************************************************!*\
  !*** ./node_modules/async-validator/es/messages.js ***!
  \*****************************************************/
/*! exports provided: newMessages, messages */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"newMessages\", function() { return newMessages; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"messages\", function() { return messages; });\nfunction newMessages() {\n  return {\n    'default': 'Validation error on field %s',\n    required: '%s is required',\n    'enum': '%s must be one of %s',\n    whitespace: '%s cannot be empty',\n    date: {\n      format: '%s date %s is invalid for format %s',\n      parse: '%s date could not be parsed, %s is invalid ',\n      invalid: '%s date %s is invalid'\n    },\n    types: {\n      string: '%s is not a %s',\n      method: '%s is not a %s (function)',\n      array: '%s is not an %s',\n      object: '%s is not an %s',\n      number: '%s is not a %s',\n      date: '%s is not a %s',\n      boolean: '%s is not a %s',\n      integer: '%s is not an %s',\n      float: '%s is not a %s',\n      regexp: '%s is not a valid %s',\n      email: '%s is not a valid %s',\n      url: '%s is not a valid %s',\n      hex: '%s is not a valid %s'\n    },\n    string: {\n      len: '%s must be exactly %s characters',\n      min: '%s must be at least %s characters',\n      max: '%s cannot be longer than %s characters',\n      range: '%s must be between %s and %s characters'\n    },\n    number: {\n      len: '%s must equal %s',\n      min: '%s cannot be less than %s',\n      max: '%s cannot be greater than %s',\n      range: '%s must be between %s and %s'\n    },\n    array: {\n      len: '%s must be exactly %s in length',\n      min: '%s cannot be less than %s in length',\n      max: '%s cannot be greater than %s in length',\n      range: '%s must be between %s and %s in length'\n    },\n    pattern: {\n      mismatch: '%s value %s does not match pattern %s'\n    },\n    clone: function clone() {\n      var cloned = JSON.parse(JSON.stringify(this));\n      cloned.clone = this.clone;\n      return cloned;\n    }\n  };\n}\n\nvar messages = newMessages();\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/messages.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/rule/enum.js":
/*!******************************************************!*\
  !*** ./node_modules/async-validator/es/rule/enum.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\nvar ENUM = 'enum';\n\n/**\n *  Rule for validating a value exists in an enumerable list.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction enumerable(rule, value, source, errors, options) {\n  rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n  if (rule[ENUM].indexOf(value) === -1) {\n    errors.push(_util__WEBPACK_IMPORTED_MODULE_0__[\"format\"](options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n  }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (enumerable);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/rule/enum.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/rule/index.js":
/*!*******************************************************!*\
  !*** ./node_modules/async-validator/es/rule/index.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _required__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./required */ \"./node_modules/async-validator/es/rule/required.js\");\n/* harmony import */ var _whitespace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./whitespace */ \"./node_modules/async-validator/es/rule/whitespace.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./type */ \"./node_modules/async-validator/es/rule/type.js\");\n/* harmony import */ var _range__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./range */ \"./node_modules/async-validator/es/rule/range.js\");\n/* harmony import */ var _enum__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./enum */ \"./node_modules/async-validator/es/rule/enum.js\");\n/* harmony import */ var _pattern__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./pattern */ \"./node_modules/async-validator/es/rule/pattern.js\");\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  required: _required__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  whitespace: _whitespace__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  type: _type__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  range: _range__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n  'enum': _enum__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n  pattern: _pattern__WEBPACK_IMPORTED_MODULE_5__[\"default\"]\n});\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/rule/index.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/rule/pattern.js":
/*!*********************************************************!*\
  !*** ./node_modules/async-validator/es/rule/pattern.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\n/**\n *  Rule for validating a regular expression pattern.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction pattern(rule, value, source, errors, options) {\n  if (rule.pattern) {\n    if (rule.pattern instanceof RegExp) {\n      // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n      // flag is accidentally set to `true`, which in a validation scenario\n      // is not necessary and the result might be misleading\n      rule.pattern.lastIndex = 0;\n      if (!rule.pattern.test(value)) {\n        errors.push(_util__WEBPACK_IMPORTED_MODULE_0__[\"format\"](options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n      }\n    } else if (typeof rule.pattern === 'string') {\n      var _pattern = new RegExp(rule.pattern);\n      if (!_pattern.test(value)) {\n        errors.push(_util__WEBPACK_IMPORTED_MODULE_0__[\"format\"](options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n      }\n    }\n  }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pattern);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/rule/pattern.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/rule/range.js":
/*!*******************************************************!*\
  !*** ./node_modules/async-validator/es/rule/range.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\n/**\n *  Rule for validating minimum and maximum allowed values.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction range(rule, value, source, errors, options) {\n  var len = typeof rule.len === 'number';\n  var min = typeof rule.min === 'number';\n  var max = typeof rule.max === 'number';\n  // 正则匹配码点范围从U+010000一直到U+10FFFF的文字（补充平面Supplementary Plane）\n  var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n  var val = value;\n  var key = null;\n  var num = typeof value === 'number';\n  var str = typeof value === 'string';\n  var arr = Array.isArray(value);\n  if (num) {\n    key = 'number';\n  } else if (str) {\n    key = 'string';\n  } else if (arr) {\n    key = 'array';\n  }\n  // if the value is not of a supported type for range validation\n  // the validation rule rule should use the\n  // type property to also test for a particular type\n  if (!key) {\n    return false;\n  }\n  if (arr) {\n    val = value.length;\n  }\n  if (str) {\n    // 处理码点大于U+010000的文字length属性不准确的bug，如\"𠮷𠮷𠮷\".lenght !== 3\n    val = value.replace(spRegexp, '_').length;\n  }\n  if (len) {\n    if (val !== rule.len) {\n      errors.push(_util__WEBPACK_IMPORTED_MODULE_0__[\"format\"](options.messages[key].len, rule.fullField, rule.len));\n    }\n  } else if (min && !max && val < rule.min) {\n    errors.push(_util__WEBPACK_IMPORTED_MODULE_0__[\"format\"](options.messages[key].min, rule.fullField, rule.min));\n  } else if (max && !min && val > rule.max) {\n    errors.push(_util__WEBPACK_IMPORTED_MODULE_0__[\"format\"](options.messages[key].max, rule.fullField, rule.max));\n  } else if (min && max && (val < rule.min || val > rule.max)) {\n    errors.push(_util__WEBPACK_IMPORTED_MODULE_0__[\"format\"](options.messages[key].range, rule.fullField, rule.min, rule.max));\n  }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (range);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/rule/range.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/rule/required.js":
/*!**********************************************************!*\
  !*** ./node_modules/async-validator/es/rule/required.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\n/**\n *  Rule for validating required fields.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction required(rule, value, source, errors, options, type) {\n  if (rule.required && (!source.hasOwnProperty(rule.field) || _util__WEBPACK_IMPORTED_MODULE_0__[\"isEmptyValue\"](value, type || rule.type))) {\n    errors.push(_util__WEBPACK_IMPORTED_MODULE_0__[\"format\"](options.messages.required, rule.fullField));\n  }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (required);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/rule/required.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/rule/type.js":
/*!******************************************************!*\
  !*** ./node_modules/async-validator/es/rule/type.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! babel-runtime/helpers/typeof */ \"./node_modules/babel-runtime/helpers/typeof.js\");\n/* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n/* harmony import */ var _required__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./required */ \"./node_modules/async-validator/es/rule/required.js\");\n\n\n\n\n/* eslint max-len:0 */\n\nvar pattern = {\n  // http://emailregex.com/\n  email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n  url: new RegExp('^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-?)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-?)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$', 'i'),\n  hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\n\nvar types = {\n  integer: function integer(value) {\n    return types.number(value) && parseInt(value, 10) === value;\n  },\n  float: function float(value) {\n    return types.number(value) && !types.integer(value);\n  },\n  array: function array(value) {\n    return Array.isArray(value);\n  },\n  regexp: function regexp(value) {\n    if (value instanceof RegExp) {\n      return true;\n    }\n    try {\n      return !!new RegExp(value);\n    } catch (e) {\n      return false;\n    }\n  },\n  date: function date(value) {\n    return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function';\n  },\n  number: function number(value) {\n    if (isNaN(value)) {\n      return false;\n    }\n    return typeof value === 'number';\n  },\n  object: function object(value) {\n    return (typeof value === 'undefined' ? 'undefined' : babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(value)) === 'object' && !types.array(value);\n  },\n  method: function method(value) {\n    return typeof value === 'function';\n  },\n  email: function email(value) {\n    return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;\n  },\n  url: function url(value) {\n    return typeof value === 'string' && !!value.match(pattern.url);\n  },\n  hex: function hex(value) {\n    return typeof value === 'string' && !!value.match(pattern.hex);\n  }\n};\n\n/**\n *  Rule for validating the type of a value.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction type(rule, value, source, errors, options) {\n  if (rule.required && value === undefined) {\n    Object(_required__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(rule, value, source, errors, options);\n    return;\n  }\n  var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n  var ruleType = rule.type;\n  if (custom.indexOf(ruleType) > -1) {\n    if (!types[ruleType](value)) {\n      errors.push(_util__WEBPACK_IMPORTED_MODULE_1__[\"format\"](options.messages.types[ruleType], rule.fullField, rule.type));\n    }\n    // straight typeof check\n  } else if (ruleType && (typeof value === 'undefined' ? 'undefined' : babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(value)) !== rule.type) {\n    errors.push(_util__WEBPACK_IMPORTED_MODULE_1__[\"format\"](options.messages.types[ruleType], rule.fullField, rule.type));\n  }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (type);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/rule/type.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/rule/whitespace.js":
/*!************************************************************!*\
  !*** ./node_modules/async-validator/es/rule/whitespace.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\n/**\n *  Rule for validating whitespace.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction whitespace(rule, value, source, errors, options) {\n  if (/^\\s+$/.test(value) || value === '') {\n    errors.push(_util__WEBPACK_IMPORTED_MODULE_0__[\"format\"](options.messages.whitespace, rule.fullField));\n  }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (whitespace);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/rule/whitespace.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/util.js":
/*!*************************************************!*\
  !*** ./node_modules/async-validator/es/util.js ***!
  \*************************************************/
/*! exports provided: warning, format, isEmptyValue, isEmptyObject, asyncMap, complementError, deepMerge */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"warning\", function() { return warning; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"format\", function() { return format; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isEmptyValue\", function() { return isEmptyValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isEmptyObject\", function() { return isEmptyObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asyncMap\", function() { return asyncMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"complementError\", function() { return complementError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deepMerge\", function() { return deepMerge; });\n/* harmony import */ var babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! babel-runtime/helpers/extends */ \"./node_modules/babel-runtime/helpers/extends.js\");\n/* harmony import */ var babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! babel-runtime/helpers/typeof */ \"./node_modules/babel-runtime/helpers/typeof.js\");\n/* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar formatRegExp = /%[sdj%]/g;\n\nvar warning = function warning() {};\n\n// don't print warning message when in production env or node runtime\nif ( true && typeof window !== 'undefined' && typeof document !== 'undefined') {\n  warning = function warning(type, errors) {\n    if (typeof console !== 'undefined' && console.warn) {\n      if (errors.every(function (e) {\n        return typeof e === 'string';\n      })) {\n        console.warn(type, errors);\n      }\n    }\n  };\n}\n\nfunction format() {\n  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  var i = 1;\n  var f = args[0];\n  var len = args.length;\n  if (typeof f === 'function') {\n    return f.apply(null, args.slice(1));\n  }\n  if (typeof f === 'string') {\n    var str = String(f).replace(formatRegExp, function (x) {\n      if (x === '%%') {\n        return '%';\n      }\n      if (i >= len) {\n        return x;\n      }\n      switch (x) {\n        case '%s':\n          return String(args[i++]);\n        case '%d':\n          return Number(args[i++]);\n        case '%j':\n          try {\n            return JSON.stringify(args[i++]);\n          } catch (_) {\n            return '[Circular]';\n          }\n          break;\n        default:\n          return x;\n      }\n    });\n    for (var arg = args[i]; i < len; arg = args[++i]) {\n      str += ' ' + arg;\n    }\n    return str;\n  }\n  return f;\n}\n\nfunction isNativeStringType(type) {\n  return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'pattern';\n}\n\nfunction isEmptyValue(value, type) {\n  if (value === undefined || value === null) {\n    return true;\n  }\n  if (type === 'array' && Array.isArray(value) && !value.length) {\n    return true;\n  }\n  if (isNativeStringType(type) && typeof value === 'string' && !value) {\n    return true;\n  }\n  return false;\n}\n\nfunction isEmptyObject(obj) {\n  return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(arr, func, callback) {\n  var results = [];\n  var total = 0;\n  var arrLength = arr.length;\n\n  function count(errors) {\n    results.push.apply(results, errors);\n    total++;\n    if (total === arrLength) {\n      callback(results);\n    }\n  }\n\n  arr.forEach(function (a) {\n    func(a, count);\n  });\n}\n\nfunction asyncSerialArray(arr, func, callback) {\n  var index = 0;\n  var arrLength = arr.length;\n\n  function next(errors) {\n    if (errors && errors.length) {\n      callback(errors);\n      return;\n    }\n    var original = index;\n    index = index + 1;\n    if (original < arrLength) {\n      func(arr[original], next);\n    } else {\n      callback([]);\n    }\n  }\n\n  next([]);\n}\n\nfunction flattenObjArr(objArr) {\n  var ret = [];\n  Object.keys(objArr).forEach(function (k) {\n    ret.push.apply(ret, objArr[k]);\n  });\n  return ret;\n}\n\nfunction asyncMap(objArr, option, func, callback) {\n  if (option.first) {\n    var flattenArr = flattenObjArr(objArr);\n    return asyncSerialArray(flattenArr, func, callback);\n  }\n  var firstFields = option.firstFields || [];\n  if (firstFields === true) {\n    firstFields = Object.keys(objArr);\n  }\n  var objArrKeys = Object.keys(objArr);\n  var objArrLength = objArrKeys.length;\n  var total = 0;\n  var results = [];\n  var next = function next(errors) {\n    results.push.apply(results, errors);\n    total++;\n    if (total === objArrLength) {\n      callback(results);\n    }\n  };\n  objArrKeys.forEach(function (key) {\n    var arr = objArr[key];\n    if (firstFields.indexOf(key) !== -1) {\n      asyncSerialArray(arr, func, next);\n    } else {\n      asyncParallelArray(arr, func, next);\n    }\n  });\n}\n\nfunction complementError(rule) {\n  return function (oe) {\n    if (oe && oe.message) {\n      oe.field = oe.field || rule.fullField;\n      return oe;\n    }\n    return {\n      message: oe,\n      field: oe.field || rule.fullField\n    };\n  };\n}\n\nfunction deepMerge(target, source) {\n  if (source) {\n    for (var s in source) {\n      if (source.hasOwnProperty(s)) {\n        var value = source[s];\n        if ((typeof value === 'undefined' ? 'undefined' : babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1___default()(value)) === 'object' && babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1___default()(target[s]) === 'object') {\n          target[s] = babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({}, target[s], value);\n        } else {\n          target[s] = value;\n        }\n      }\n    }\n  }\n  return target;\n}\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/util.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/validator/array.js":
/*!************************************************************!*\
  !*** ./node_modules/async-validator/es/validator/array.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _rule___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule/ */ \"./node_modules/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\n/**\n *  Validates an array.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction array(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value, 'array') && !rule.required) {\n      return callback();\n    }\n    _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options, 'array');\n    if (!Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value, 'array')) {\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (array);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/validator/array.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/validator/boolean.js":
/*!**************************************************************!*\
  !*** ./node_modules/async-validator/es/validator/boolean.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n/* harmony import */ var _rule___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rule/ */ \"./node_modules/async-validator/es/rule/index.js\");\n\n\n\n/**\n *  Validates a boolean.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction boolean(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"isEmptyValue\"])(value) && !rule.required) {\n      return callback();\n    }\n    _rule___WEBPACK_IMPORTED_MODULE_1__[\"default\"].required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      _rule___WEBPACK_IMPORTED_MODULE_1__[\"default\"].type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (boolean);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/validator/boolean.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/validator/date.js":
/*!***********************************************************!*\
  !*** ./node_modules/async-validator/es/validator/date.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _rule___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule/ */ \"./node_modules/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\n\nfunction date(rule, value, callback, source, options) {\n  // console.log('integer rule called %j', rule);\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  // console.log('validate on %s value', value);\n  if (validate) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value) && !rule.required) {\n      return callback();\n    }\n    _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n    if (!Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value)) {\n      var dateObject = void 0;\n\n      if (typeof value === 'number') {\n        dateObject = new Date(value);\n      } else {\n        dateObject = value;\n      }\n\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, dateObject, source, errors, options);\n      if (dateObject) {\n        _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].range(rule, dateObject.getTime(), source, errors, options);\n      }\n    }\n  }\n  callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (date);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/validator/date.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/validator/enum.js":
/*!***********************************************************!*\
  !*** ./node_modules/async-validator/es/validator/enum.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _rule___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule/ */ \"./node_modules/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\nvar ENUM = 'enum';\n\n/**\n *  Validates an enumerable list.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction enumerable(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value) && !rule.required) {\n      return callback();\n    }\n    _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n    if (value) {\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"][ENUM](rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (enumerable);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/validator/enum.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/validator/float.js":
/*!************************************************************!*\
  !*** ./node_modules/async-validator/es/validator/float.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _rule___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule/ */ \"./node_modules/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\n\n/**\n *  Validates a number is a floating point number.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction floatFn(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value) && !rule.required) {\n      return callback();\n    }\n    _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (floatFn);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/validator/float.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/validator/index.js":
/*!************************************************************!*\
  !*** ./node_modules/async-validator/es/validator/index.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./string */ \"./node_modules/async-validator/es/validator/string.js\");\n/* harmony import */ var _method__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./method */ \"./node_modules/async-validator/es/validator/method.js\");\n/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./number */ \"./node_modules/async-validator/es/validator/number.js\");\n/* harmony import */ var _boolean__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./boolean */ \"./node_modules/async-validator/es/validator/boolean.js\");\n/* harmony import */ var _regexp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./regexp */ \"./node_modules/async-validator/es/validator/regexp.js\");\n/* harmony import */ var _integer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./integer */ \"./node_modules/async-validator/es/validator/integer.js\");\n/* harmony import */ var _float__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./float */ \"./node_modules/async-validator/es/validator/float.js\");\n/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./array */ \"./node_modules/async-validator/es/validator/array.js\");\n/* harmony import */ var _object__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./object */ \"./node_modules/async-validator/es/validator/object.js\");\n/* harmony import */ var _enum__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./enum */ \"./node_modules/async-validator/es/validator/enum.js\");\n/* harmony import */ var _pattern__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./pattern */ \"./node_modules/async-validator/es/validator/pattern.js\");\n/* harmony import */ var _date__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./date */ \"./node_modules/async-validator/es/validator/date.js\");\n/* harmony import */ var _required__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./required */ \"./node_modules/async-validator/es/validator/required.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./type */ \"./node_modules/async-validator/es/validator/type.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  string: _string__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  method: _method__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  number: _number__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  boolean: _boolean__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n  regexp: _regexp__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n  integer: _integer__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n  float: _float__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n  array: _array__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n  object: _object__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n  'enum': _enum__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n  pattern: _pattern__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n  date: _date__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n  url: _type__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n  hex: _type__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n  email: _type__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n  required: _required__WEBPACK_IMPORTED_MODULE_12__[\"default\"]\n});\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/validator/index.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/validator/integer.js":
/*!**************************************************************!*\
  !*** ./node_modules/async-validator/es/validator/integer.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _rule___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule/ */ \"./node_modules/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\n\n/**\n *  Validates a number is an integer.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction integer(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value) && !rule.required) {\n      return callback();\n    }\n    _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (integer);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/validator/integer.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/validator/method.js":
/*!*************************************************************!*\
  !*** ./node_modules/async-validator/es/validator/method.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _rule___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule/ */ \"./node_modules/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\n\n/**\n *  Validates a function.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction method(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value) && !rule.required) {\n      return callback();\n    }\n    _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (method);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/validator/method.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/validator/number.js":
/*!*************************************************************!*\
  !*** ./node_modules/async-validator/es/validator/number.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _rule___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule/ */ \"./node_modules/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\n\n/**\n *  Validates a number.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction number(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value) && !rule.required) {\n      return callback();\n    }\n    _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (number);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/validator/number.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/validator/object.js":
/*!*************************************************************!*\
  !*** ./node_modules/async-validator/es/validator/object.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _rule___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule/ */ \"./node_modules/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\n\n/**\n *  Validates an object.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction object(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value) && !rule.required) {\n      return callback();\n    }\n    _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (object);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/validator/object.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/validator/pattern.js":
/*!**************************************************************!*\
  !*** ./node_modules/async-validator/es/validator/pattern.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _rule___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule/ */ \"./node_modules/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\n\n/**\n *  Validates a regular expression pattern.\n *\n *  Performs validation when a rule only contains\n *  a pattern property but is not declared as a string type.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction pattern(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value, 'string') && !rule.required) {\n      return callback();\n    }\n    _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n    if (!Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value, 'string')) {\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].pattern(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pattern);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/validator/pattern.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/validator/regexp.js":
/*!*************************************************************!*\
  !*** ./node_modules/async-validator/es/validator/regexp.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _rule___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule/ */ \"./node_modules/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\n\n/**\n *  Validates the regular expression type.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction regexp(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value) && !rule.required) {\n      return callback();\n    }\n    _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options);\n    if (!Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value)) {\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (regexp);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/validator/regexp.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/validator/required.js":
/*!***************************************************************!*\
  !*** ./node_modules/async-validator/es/validator/required.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! babel-runtime/helpers/typeof */ \"./node_modules/babel-runtime/helpers/typeof.js\");\n/* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _rule___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rule/ */ \"./node_modules/async-validator/es/rule/index.js\");\n\n\n\nfunction required(rule, value, callback, source, options) {\n  var errors = [];\n  var type = Array.isArray(value) ? 'array' : typeof value === 'undefined' ? 'undefined' : babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(value);\n  _rule___WEBPACK_IMPORTED_MODULE_1__[\"default\"].required(rule, value, source, errors, options, type);\n  callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (required);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/validator/required.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/validator/string.js":
/*!*************************************************************!*\
  !*** ./node_modules/async-validator/es/validator/string.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _rule___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule/ */ \"./node_modules/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\n\n/**\n *  Performs validation for string types.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction string(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value, 'string') && !rule.required) {\n      return callback();\n    }\n    _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options, 'string');\n    if (!Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value, 'string')) {\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].range(rule, value, source, errors, options);\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].pattern(rule, value, source, errors, options);\n      if (rule.whitespace === true) {\n        _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].whitespace(rule, value, source, errors, options);\n      }\n    }\n  }\n  callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (string);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/validator/string.js?");

/***/ }),

/***/ "./node_modules/async-validator/es/validator/type.js":
/*!***********************************************************!*\
  !*** ./node_modules/async-validator/es/validator/type.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _rule___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rule/ */ \"./node_modules/async-validator/es/rule/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/async-validator/es/util.js\");\n\n\n\nfunction type(rule, value, callback, source, options) {\n  var ruleType = rule.type;\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value, ruleType) && !rule.required) {\n      return callback();\n    }\n    _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].required(rule, value, source, errors, options, ruleType);\n    if (!Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmptyValue\"])(value, ruleType)) {\n      _rule___WEBPACK_IMPORTED_MODULE_0__[\"default\"].type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (type);\n\n//# sourceURL=webpack:///./node_modules/async-validator/es/validator/type.js?");

/***/ }),

/***/ "./node_modules/axios/index.js":
/*!*************************************!*\
  !*** ./node_modules/axios/index.js ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = __webpack_require__(/*! ./lib/axios */ \"./node_modules/axios/lib/axios.js\");\n\n//# sourceURL=webpack:///./node_modules/axios/index.js?");

/***/ }),

/***/ "./node_modules/axios/lib/adapters/xhr.js":
/*!************************************************!*\
  !*** ./node_modules/axios/lib/adapters/xhr.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\nvar settle = __webpack_require__(/*! ./../core/settle */ \"./node_modules/axios/lib/core/settle.js\");\nvar buildURL = __webpack_require__(/*! ./../helpers/buildURL */ \"./node_modules/axios/lib/helpers/buildURL.js\");\nvar parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ \"./node_modules/axios/lib/helpers/parseHeaders.js\");\nvar isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ \"./node_modules/axios/lib/helpers/isURLSameOrigin.js\");\nvar createError = __webpack_require__(/*! ../core/createError */ \"./node_modules/axios/lib/core/createError.js\");\n\nmodule.exports = function xhrAdapter(config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    var requestData = config.data;\n    var requestHeaders = config.headers;\n\n    if (utils.isFormData(requestData)) {\n      delete requestHeaders['Content-Type']; // Let the browser set it\n    }\n\n    var request = new XMLHttpRequest();\n\n    // HTTP basic authentication\n    if (config.auth) {\n      var username = config.auth.username || '';\n      var password = config.auth.password || '';\n      requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n    }\n\n    request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n    // Set the request timeout in MS\n    request.timeout = config.timeout;\n\n    // Listen for ready state\n    request.onreadystatechange = function handleLoad() {\n      if (!request || request.readyState !== 4) {\n        return;\n      }\n\n      // The request errored out and we didn't get a response, this will be\n      // handled by onerror instead\n      // With one exception: request that using file: protocol, most browsers\n      // will return status as 0 even though it's a successful request\n      if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n        return;\n      }\n\n      // Prepare the response\n      var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n      var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n      var response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config: config,\n        request: request\n      };\n\n      settle(resolve, reject, response);\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(createError('Network Error', config, null, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Add xsrf header\n    // This is only done if running in a standard browser environment.\n    // Specifically not if we're in a web worker, or react-native.\n    if (utils.isStandardBrowserEnv()) {\n      var cookies = __webpack_require__(/*! ./../helpers/cookies */ \"./node_modules/axios/lib/helpers/cookies.js\");\n\n      // Add xsrf header\n      var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n          cookies.read(config.xsrfCookieName) :\n          undefined;\n\n      if (xsrfValue) {\n        requestHeaders[config.xsrfHeaderName] = xsrfValue;\n      }\n    }\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n        if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n          // Remove Content-Type if data is undefined\n          delete requestHeaders[key];\n        } else {\n          // Otherwise add header to the request\n          request.setRequestHeader(key, val);\n        }\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (config.withCredentials) {\n      request.withCredentials = true;\n    }\n\n    // Add responseType to request if needed\n    if (config.responseType) {\n      try {\n        request.responseType = config.responseType;\n      } catch (e) {\n        // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n        // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n        if (config.responseType !== 'json') {\n          throw e;\n        }\n      }\n    }\n\n    // Handle progress if needed\n    if (typeof config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', config.onDownloadProgress);\n    }\n\n    // Not all browsers support upload events\n    if (typeof config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', config.onUploadProgress);\n    }\n\n    if (config.cancelToken) {\n      // Handle cancellation\n      config.cancelToken.promise.then(function onCanceled(cancel) {\n        if (!request) {\n          return;\n        }\n\n        request.abort();\n        reject(cancel);\n        // Clean up request\n        request = null;\n      });\n    }\n\n    if (requestData === undefined) {\n      requestData = null;\n    }\n\n    // Send the request\n    request.send(requestData);\n  });\n};\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/adapters/xhr.js?");

/***/ }),

/***/ "./node_modules/axios/lib/axios.js":
/*!*****************************************!*\
  !*** ./node_modules/axios/lib/axios.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/axios/lib/utils.js\");\nvar bind = __webpack_require__(/*! ./helpers/bind */ \"./node_modules/axios/lib/helpers/bind.js\");\nvar Axios = __webpack_require__(/*! ./core/Axios */ \"./node_modules/axios/lib/core/Axios.js\");\nvar defaults = __webpack_require__(/*! ./defaults */ \"./node_modules/axios/lib/defaults.js\");\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  var context = new Axios(defaultConfig);\n  var instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context);\n\n  // Copy context to instance\n  utils.extend(instance, context);\n\n  return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n  return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = __webpack_require__(/*! ./cancel/Cancel */ \"./node_modules/axios/lib/cancel/Cancel.js\");\naxios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ \"./node_modules/axios/lib/cancel/CancelToken.js\");\naxios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ \"./node_modules/axios/lib/cancel/isCancel.js\");\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\naxios.spread = __webpack_require__(/*! ./helpers/spread */ \"./node_modules/axios/lib/helpers/spread.js\");\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/axios.js?");

/***/ }),

/***/ "./node_modules/axios/lib/cancel/Cancel.js":
/*!*************************************************!*\
  !*** ./node_modules/axios/lib/cancel/Cancel.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n  this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n  return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/cancel/Cancel.js?");

/***/ }),

/***/ "./node_modules/axios/lib/cancel/CancelToken.js":
/*!******************************************************!*\
  !*** ./node_modules/axios/lib/cancel/CancelToken.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Cancel = __webpack_require__(/*! ./Cancel */ \"./node_modules/axios/lib/cancel/Cancel.js\");\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n  if (typeof executor !== 'function') {\n    throw new TypeError('executor must be a function.');\n  }\n\n  var resolvePromise;\n  this.promise = new Promise(function promiseExecutor(resolve) {\n    resolvePromise = resolve;\n  });\n\n  var token = this;\n  executor(function cancel(message) {\n    if (token.reason) {\n      // Cancellation has already been requested\n      return;\n    }\n\n    token.reason = new Cancel(message);\n    resolvePromise(token.reason);\n  });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n  if (this.reason) {\n    throw this.reason;\n  }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n  var cancel;\n  var token = new CancelToken(function executor(c) {\n    cancel = c;\n  });\n  return {\n    token: token,\n    cancel: cancel\n  };\n};\n\nmodule.exports = CancelToken;\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/cancel/CancelToken.js?");

/***/ }),

/***/ "./node_modules/axios/lib/cancel/isCancel.js":
/*!***************************************************!*\
  !*** ./node_modules/axios/lib/cancel/isCancel.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n};\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/cancel/isCancel.js?");

/***/ }),

/***/ "./node_modules/axios/lib/core/Axios.js":
/*!**********************************************!*\
  !*** ./node_modules/axios/lib/core/Axios.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar defaults = __webpack_require__(/*! ./../defaults */ \"./node_modules/axios/lib/defaults.js\");\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\nvar InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ \"./node_modules/axios/lib/core/InterceptorManager.js\");\nvar dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ \"./node_modules/axios/lib/core/dispatchRequest.js\");\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n  this.defaults = instanceConfig;\n  this.interceptors = {\n    request: new InterceptorManager(),\n    response: new InterceptorManager()\n  };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n  /*eslint no-param-reassign:0*/\n  // Allow for axios('example/url'[, config]) a la fetch API\n  if (typeof config === 'string') {\n    config = utils.merge({\n      url: arguments[0]\n    }, arguments[1]);\n  }\n\n  config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n  config.method = config.method.toLowerCase();\n\n  // Hook up interceptors middleware\n  var chain = [dispatchRequest, undefined];\n  var promise = Promise.resolve(config);\n\n  this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n    chain.unshift(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n    chain.push(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  while (chain.length) {\n    promise = promise.then(chain.shift(), chain.shift());\n  }\n\n  return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(utils.merge(config || {}, {\n      method: method,\n      url: url\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, data, config) {\n    return this.request(utils.merge(config || {}, {\n      method: method,\n      url: url,\n      data: data\n    }));\n  };\n});\n\nmodule.exports = Axios;\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/core/Axios.js?");

/***/ }),

/***/ "./node_modules/axios/lib/core/InterceptorManager.js":
/*!***********************************************************!*\
  !*** ./node_modules/axios/lib/core/InterceptorManager.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nfunction InterceptorManager() {\n  this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n  this.handlers.push({\n    fulfilled: fulfilled,\n    rejected: rejected\n  });\n  return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n  if (this.handlers[id]) {\n    this.handlers[id] = null;\n  }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n  utils.forEach(this.handlers, function forEachHandler(h) {\n    if (h !== null) {\n      fn(h);\n    }\n  });\n};\n\nmodule.exports = InterceptorManager;\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/core/InterceptorManager.js?");

/***/ }),

/***/ "./node_modules/axios/lib/core/createError.js":
/*!****************************************************!*\
  !*** ./node_modules/axios/lib/core/createError.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar enhanceError = __webpack_require__(/*! ./enhanceError */ \"./node_modules/axios/lib/core/enhanceError.js\");\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n  var error = new Error(message);\n  return enhanceError(error, config, code, request, response);\n};\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/core/createError.js?");

/***/ }),

/***/ "./node_modules/axios/lib/core/dispatchRequest.js":
/*!********************************************************!*\
  !*** ./node_modules/axios/lib/core/dispatchRequest.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\nvar transformData = __webpack_require__(/*! ./transformData */ \"./node_modules/axios/lib/core/transformData.js\");\nvar isCancel = __webpack_require__(/*! ../cancel/isCancel */ \"./node_modules/axios/lib/cancel/isCancel.js\");\nvar defaults = __webpack_require__(/*! ../defaults */ \"./node_modules/axios/lib/defaults.js\");\nvar isAbsoluteURL = __webpack_require__(/*! ./../helpers/isAbsoluteURL */ \"./node_modules/axios/lib/helpers/isAbsoluteURL.js\");\nvar combineURLs = __webpack_require__(/*! ./../helpers/combineURLs */ \"./node_modules/axios/lib/helpers/combineURLs.js\");\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  // Support baseURL config\n  if (config.baseURL && !isAbsoluteURL(config.url)) {\n    config.url = combineURLs(config.baseURL, config.url);\n  }\n\n  // Ensure headers exist\n  config.headers = config.headers || {};\n\n  // Transform request data\n  config.data = transformData(\n    config.data,\n    config.headers,\n    config.transformRequest\n  );\n\n  // Flatten headers\n  config.headers = utils.merge(\n    config.headers.common || {},\n    config.headers[config.method] || {},\n    config.headers || {}\n  );\n\n  utils.forEach(\n    ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n    function cleanHeaderConfig(method) {\n      delete config.headers[method];\n    }\n  );\n\n  var adapter = config.adapter || defaults.adapter;\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData(\n      response.data,\n      response.headers,\n      config.transformResponse\n    );\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData(\n          reason.response.data,\n          reason.response.headers,\n          config.transformResponse\n        );\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n};\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/core/dispatchRequest.js?");

/***/ }),

/***/ "./node_modules/axios/lib/core/enhanceError.js":
/*!*****************************************************!*\
  !*** ./node_modules/axios/lib/core/enhanceError.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n  error.config = config;\n  if (code) {\n    error.code = code;\n  }\n  error.request = request;\n  error.response = response;\n  return error;\n};\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/core/enhanceError.js?");

/***/ }),

/***/ "./node_modules/axios/lib/core/settle.js":
/*!***********************************************!*\
  !*** ./node_modules/axios/lib/core/settle.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar createError = __webpack_require__(/*! ./createError */ \"./node_modules/axios/lib/core/createError.js\");\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n  var validateStatus = response.config.validateStatus;\n  // Note: status is not exposed by XDomainRequest\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(createError(\n      'Request failed with status code ' + response.status,\n      response.config,\n      null,\n      response.request,\n      response\n    ));\n  }\n};\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/core/settle.js?");

/***/ }),

/***/ "./node_modules/axios/lib/core/transformData.js":
/*!******************************************************!*\
  !*** ./node_modules/axios/lib/core/transformData.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n  /*eslint no-param-reassign:0*/\n  utils.forEach(fns, function transform(fn) {\n    data = fn(data, headers);\n  });\n\n  return data;\n};\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/core/transformData.js?");

/***/ }),

/***/ "./node_modules/axios/lib/defaults.js":
/*!********************************************!*\
  !*** ./node_modules/axios/lib/defaults.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/axios/lib/utils.js\");\nvar normalizeHeaderName = __webpack_require__(/*! ./helpers/normalizeHeaderName */ \"./node_modules/axios/lib/helpers/normalizeHeaderName.js\");\n\nvar DEFAULT_CONTENT_TYPE = {\n  'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n  if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n    headers['Content-Type'] = value;\n  }\n}\n\nfunction getDefaultAdapter() {\n  var adapter;\n  if (typeof XMLHttpRequest !== 'undefined') {\n    // For browsers use XHR adapter\n    adapter = __webpack_require__(/*! ./adapters/xhr */ \"./node_modules/axios/lib/adapters/xhr.js\");\n  } else if (typeof process !== 'undefined') {\n    // For node use HTTP adapter\n    adapter = __webpack_require__(/*! ./adapters/http */ \"./node_modules/axios/lib/adapters/xhr.js\");\n  }\n  return adapter;\n}\n\nvar defaults = {\n  adapter: getDefaultAdapter(),\n\n  transformRequest: [function transformRequest(data, headers) {\n    normalizeHeaderName(headers, 'Content-Type');\n    if (utils.isFormData(data) ||\n      utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n      return data.toString();\n    }\n    if (utils.isObject(data)) {\n      setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n      return JSON.stringify(data);\n    }\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    /*eslint no-param-reassign:0*/\n    if (typeof data === 'string') {\n      try {\n        data = JSON.parse(data);\n      } catch (e) { /* Ignore */ }\n    }\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  }\n};\n\ndefaults.headers = {\n  common: {\n    'Accept': 'application/json, text/plain, */*'\n  }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n  defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node-libs-browser/mock/process.js */ \"./node_modules/node-libs-browser/mock/process.js\")))\n\n//# sourceURL=webpack:///./node_modules/axios/lib/defaults.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/bind.js":
/*!************************************************!*\
  !*** ./node_modules/axios/lib/helpers/bind.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function bind(fn, thisArg) {\n  return function wrap() {\n    var args = new Array(arguments.length);\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n    return fn.apply(thisArg, args);\n  };\n};\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/bind.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/buildURL.js":
/*!****************************************************!*\
  !*** ./node_modules/axios/lib/helpers/buildURL.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%40/gi, '@').\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n\n  var serializedParams;\n  if (paramsSerializer) {\n    serializedParams = paramsSerializer(params);\n  } else if (utils.isURLSearchParams(params)) {\n    serializedParams = params.toString();\n  } else {\n    var parts = [];\n\n    utils.forEach(params, function serialize(val, key) {\n      if (val === null || typeof val === 'undefined') {\n        return;\n      }\n\n      if (utils.isArray(val)) {\n        key = key + '[]';\n      } else {\n        val = [val];\n      }\n\n      utils.forEach(val, function parseValue(v) {\n        if (utils.isDate(v)) {\n          v = v.toISOString();\n        } else if (utils.isObject(v)) {\n          v = JSON.stringify(v);\n        }\n        parts.push(encode(key) + '=' + encode(v));\n      });\n    });\n\n    serializedParams = parts.join('&');\n  }\n\n  if (serializedParams) {\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n};\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/buildURL.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/combineURLs.js":
/*!*******************************************************!*\
  !*** ./node_modules/axios/lib/helpers/combineURLs.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n};\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/combineURLs.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/cookies.js":
/*!***************************************************!*\
  !*** ./node_modules/axios/lib/helpers/cookies.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs support document.cookie\n  (function standardBrowserEnv() {\n    return {\n      write: function write(name, value, expires, path, domain, secure) {\n        var cookie = [];\n        cookie.push(name + '=' + encodeURIComponent(value));\n\n        if (utils.isNumber(expires)) {\n          cookie.push('expires=' + new Date(expires).toGMTString());\n        }\n\n        if (utils.isString(path)) {\n          cookie.push('path=' + path);\n        }\n\n        if (utils.isString(domain)) {\n          cookie.push('domain=' + domain);\n        }\n\n        if (secure === true) {\n          cookie.push('secure');\n        }\n\n        document.cookie = cookie.join('; ');\n      },\n\n      read: function read(name) {\n        var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n        return (match ? decodeURIComponent(match[3]) : null);\n      },\n\n      remove: function remove(name) {\n        this.write(name, '', Date.now() - 86400000);\n      }\n    };\n  })() :\n\n  // Non standard browser env (web workers, react-native) lack needed support.\n  (function nonStandardBrowserEnv() {\n    return {\n      write: function write() {},\n      read: function read() { return null; },\n      remove: function remove() {}\n    };\n  })()\n);\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/cookies.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/isAbsoluteURL.js":
/*!*********************************************************!*\
  !*** ./node_modules/axios/lib/helpers/isAbsoluteURL.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/isURLSameOrigin.js":
/*!***********************************************************!*\
  !*** ./node_modules/axios/lib/helpers/isURLSameOrigin.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs have full support of the APIs needed to test\n  // whether the request URL is of the same origin as current location.\n  (function standardBrowserEnv() {\n    var msie = /(msie|trident)/i.test(navigator.userAgent);\n    var urlParsingNode = document.createElement('a');\n    var originURL;\n\n    /**\n    * Parse a URL to discover it's components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n    function resolveURL(url) {\n      var href = url;\n\n      if (msie) {\n        // IE needs attribute set twice to normalize properties\n        urlParsingNode.setAttribute('href', href);\n        href = urlParsingNode.href;\n      }\n\n      urlParsingNode.setAttribute('href', href);\n\n      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n      return {\n        href: urlParsingNode.href,\n        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n        host: urlParsingNode.host,\n        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n        hostname: urlParsingNode.hostname,\n        port: urlParsingNode.port,\n        pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n                  urlParsingNode.pathname :\n                  '/' + urlParsingNode.pathname\n      };\n    }\n\n    originURL = resolveURL(window.location.href);\n\n    /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n    return function isURLSameOrigin(requestURL) {\n      var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n      return (parsed.protocol === originURL.protocol &&\n            parsed.host === originURL.host);\n    };\n  })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n  (function nonStandardBrowserEnv() {\n    return function isURLSameOrigin() {\n      return true;\n    };\n  })()\n);\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/normalizeHeaderName.js":
/*!***************************************************************!*\
  !*** ./node_modules/axios/lib/helpers/normalizeHeaderName.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/axios/lib/utils.js\");\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n  utils.forEach(headers, function processHeader(value, name) {\n    if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n      headers[normalizedName] = value;\n      delete headers[name];\n    }\n  });\n};\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/parseHeaders.js":
/*!********************************************************!*\
  !*** ./node_modules/axios/lib/helpers/parseHeaders.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n  var parsed = {};\n  var key;\n  var val;\n  var i;\n\n  if (!headers) { return parsed; }\n\n  utils.forEach(headers.split('\\n'), function parser(line) {\n    i = line.indexOf(':');\n    key = utils.trim(line.substr(0, i)).toLowerCase();\n    val = utils.trim(line.substr(i + 1));\n\n    if (key) {\n      if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n        return;\n      }\n      if (key === 'set-cookie') {\n        parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n      } else {\n        parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n      }\n    }\n  });\n\n  return parsed;\n};\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/parseHeaders.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/spread.js":
/*!**************************************************!*\
  !*** ./node_modules/axios/lib/helpers/spread.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n};\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/spread.js?");

/***/ }),

/***/ "./node_modules/axios/lib/utils.js":
/*!*****************************************!*\
  !*** ./node_modules/axios/lib/utils.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar bind = __webpack_require__(/*! ./helpers/bind */ \"./node_modules/axios/lib/helpers/bind.js\");\nvar isBuffer = __webpack_require__(/*! is-buffer */ \"./node_modules/is-buffer/index.js\");\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n  return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n  return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n  return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  var result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n  return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n  return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n  return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n  return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n  return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n  return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n  return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n  return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n  return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n  return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n  return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n  if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n    return false;\n  }\n  return (\n    typeof window !== 'undefined' &&\n    typeof document !== 'undefined'\n  );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (var i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    for (var key in obj) {\n      if (Object.prototype.hasOwnProperty.call(obj, key)) {\n        fn.call(null, obj[key], key, obj);\n      }\n    }\n  }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  var result = {};\n  function assignValue(val, key) {\n    if (typeof result[key] === 'object' && typeof val === 'object') {\n      result[key] = merge(result[key], val);\n    } else {\n      result[key] = val;\n    }\n  }\n\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n  forEach(b, function assignValue(val, key) {\n    if (thisArg && typeof val === 'function') {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  });\n  return a;\n}\n\nmodule.exports = {\n  isArray: isArray,\n  isArrayBuffer: isArrayBuffer,\n  isBuffer: isBuffer,\n  isFormData: isFormData,\n  isArrayBufferView: isArrayBufferView,\n  isString: isString,\n  isNumber: isNumber,\n  isObject: isObject,\n  isUndefined: isUndefined,\n  isDate: isDate,\n  isFile: isFile,\n  isBlob: isBlob,\n  isFunction: isFunction,\n  isStream: isStream,\n  isURLSearchParams: isURLSearchParams,\n  isStandardBrowserEnv: isStandardBrowserEnv,\n  forEach: forEach,\n  merge: merge,\n  extend: extend,\n  trim: trim\n};\n\n\n//# sourceURL=webpack:///./node_modules/axios/lib/utils.js?");

/***/ }),

/***/ "./node_modules/babel-helper-vue-jsx-merge-props/index.js":
/*!****************************************************************!*\
  !*** ./node_modules/babel-helper-vue-jsx-merge-props/index.js ***!
  \****************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var nestRE = /^(attrs|props|on|nativeOn|class|style|hook)$/\n\nmodule.exports = function mergeJSXProps (objs) {\n  return objs.reduce(function (a, b) {\n    var aa, bb, key, nestedKey, temp\n    for (key in b) {\n      aa = a[key]\n      bb = b[key]\n      if (aa && nestRE.test(key)) {\n        // normalize class\n        if (key === 'class') {\n          if (typeof aa === 'string') {\n            temp = aa\n            a[key] = aa = {}\n            aa[temp] = true\n          }\n          if (typeof bb === 'string') {\n            temp = bb\n            b[key] = bb = {}\n            bb[temp] = true\n          }\n        }\n        if (key === 'on' || key === 'nativeOn' || key === 'hook') {\n          // merge functions\n          for (nestedKey in bb) {\n            aa[nestedKey] = mergeFn(aa[nestedKey], bb[nestedKey])\n          }\n        } else if (Array.isArray(aa)) {\n          a[key] = aa.concat(bb)\n        } else if (Array.isArray(bb)) {\n          a[key] = [aa].concat(bb)\n        } else {\n          for (nestedKey in bb) {\n            aa[nestedKey] = bb[nestedKey]\n          }\n        }\n      } else {\n        a[key] = b[key]\n      }\n    }\n    return a\n  }, {})\n}\n\nfunction mergeFn (a, b) {\n  return function () {\n    a && a.apply(this, arguments)\n    b && b.apply(this, arguments)\n  }\n}\n\n\n//# sourceURL=webpack:///./node_modules/babel-helper-vue-jsx-merge-props/index.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/core-js/object/assign.js":
/*!*************************************************************!*\
  !*** ./node_modules/babel-runtime/core-js/object/assign.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = { \"default\": __webpack_require__(/*! core-js/library/fn/object/assign */ \"./node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js\"), __esModule: true };\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/core-js/object/assign.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/core-js/symbol.js":
/*!******************************************************!*\
  !*** ./node_modules/babel-runtime/core-js/symbol.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = { \"default\": __webpack_require__(/*! core-js/library/fn/symbol */ \"./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js\"), __esModule: true };\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/core-js/symbol.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/core-js/symbol/iterator.js":
/*!***************************************************************!*\
  !*** ./node_modules/babel-runtime/core-js/symbol/iterator.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = { \"default\": __webpack_require__(/*! core-js/library/fn/symbol/iterator */ \"./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js\"), __esModule: true };\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/core-js/symbol/iterator.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/helpers/extends.js":
/*!*******************************************************!*\
  !*** ./node_modules/babel-runtime/helpers/extends.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nexports.__esModule = true;\n\nvar _assign = __webpack_require__(/*! ../core-js/object/assign */ \"./node_modules/babel-runtime/core-js/object/assign.js\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/helpers/extends.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/helpers/typeof.js":
/*!******************************************************!*\
  !*** ./node_modules/babel-runtime/helpers/typeof.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nexports.__esModule = true;\n\nvar _iterator = __webpack_require__(/*! ../core-js/symbol/iterator */ \"./node_modules/babel-runtime/core-js/symbol/iterator.js\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = __webpack_require__(/*! ../core-js/symbol */ \"./node_modules/babel-runtime/core-js/symbol.js\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n  return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n  return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/helpers/typeof.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js ***!
  \*************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("__webpack_require__(/*! ../../modules/es6.object.assign */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js\");\nmodule.exports = __webpack_require__(/*! ../../modules/_core */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js\").Object.assign;\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js":
/*!************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js ***!
  \************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("__webpack_require__(/*! ../../modules/es6.symbol */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js\");\n__webpack_require__(/*! ../../modules/es6.object.to-string */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.to-string.js\");\n__webpack_require__(/*! ../../modules/es7.symbol.async-iterator */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js\");\n__webpack_require__(/*! ../../modules/es7.symbol.observable */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js\");\nmodule.exports = __webpack_require__(/*! ../../modules/_core */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js\").Symbol;\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js ***!
  \***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("__webpack_require__(/*! ../../modules/es6.string.iterator */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js\");\n__webpack_require__(/*! ../../modules/web.dom.iterable */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js\");\nmodule.exports = __webpack_require__(/*! ../../modules/_wks-ext */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js\").f('iterator');\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js ***!
  \****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = function (it) {\n  if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n  return it;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js":
/*!************************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js ***!
  \************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = function () { /* empty */ };\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js ***!
  \***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js\");\nmodule.exports = function (it) {\n  if (!isObject(it)) throw TypeError(it + ' is not an object!');\n  return it;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js":
/*!********************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js ***!
  \********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// false -> Array#indexOf\n// true  -> Array#includes\nvar toIObject = __webpack_require__(/*! ./_to-iobject */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js\");\nvar toLength = __webpack_require__(/*! ./_to-length */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js\");\nvar toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js\");\nmodule.exports = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n      if (O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js ***!
  \*********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js ***!
  \**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js ***!
  \*********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// optional / simple context binding\nvar aFunction = __webpack_require__(/*! ./_a-function */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js\");\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js ***!
  \*************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on  \" + it);\n  return it;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js":
/*!*****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js ***!
  \*****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(/*! ./_fails */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js\")(function () {\n  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js ***!
  \****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js\");\nvar document = __webpack_require__(/*! ./_global */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n  return is ? document.createElement(it) : {};\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js":
/*!*******************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js ***!
  \*******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("// IE 8- don't enum bug keys\nmodule.exports = (\n  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js ***!
  \***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(/*! ./_object-keys */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js\");\nvar gOPS = __webpack_require__(/*! ./_object-gops */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js\");\nvar pIE = __webpack_require__(/*! ./_object-pie */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js\");\nmodule.exports = function (it) {\n  var result = getKeys(it);\n  var getSymbols = gOPS.f;\n  if (getSymbols) {\n    var symbols = getSymbols(it);\n    var isEnum = pIE.f;\n    var i = 0;\n    var key;\n    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n  } return result;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js":
/*!************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js ***!
  \************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var global = __webpack_require__(/*! ./_global */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js\");\nvar core = __webpack_require__(/*! ./_core */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js\");\nvar ctx = __webpack_require__(/*! ./_ctx */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js\");\nvar hide = __webpack_require__(/*! ./_hide */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js\");\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n  var IS_FORCED = type & $export.F;\n  var IS_GLOBAL = type & $export.G;\n  var IS_STATIC = type & $export.S;\n  var IS_PROTO = type & $export.P;\n  var IS_BIND = type & $export.B;\n  var IS_WRAP = type & $export.W;\n  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n  var expProto = exports[PROTOTYPE];\n  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n  var key, own, out;\n  if (IS_GLOBAL) source = name;\n  for (key in source) {\n    // contains in native\n    own = !IS_FORCED && target && target[key] !== undefined;\n    if (own && has(exports, key)) continue;\n    // export native or passed\n    out = own ? target[key] : source[key];\n    // prevent global pollution for namespaces\n    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n    // bind timers to global for call from export context\n    : IS_BIND && own ? ctx(out, global)\n    // wrap global constructors for prevent change them in library\n    : IS_WRAP && target[key] == out ? (function (C) {\n      var F = function (a, b, c) {\n        if (this instanceof C) {\n          switch (arguments.length) {\n            case 0: return new C();\n            case 1: return new C(a);\n            case 2: return new C(a, b);\n          } return new C(a, b, c);\n        } return C.apply(this, arguments);\n      };\n      F[PROTOTYPE] = C[PROTOTYPE];\n      return F;\n    // make static versions for prototype methods\n    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n    if (IS_PROTO) {\n      (exports.virtual || (exports.virtual = {}))[key] = out;\n      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n    }\n  }\n};\n// type bitmap\n$export.F = 1;   // forced\n$export.G = 2;   // global\n$export.S = 4;   // static\n$export.P = 8;   // proto\n$export.B = 16;  // bind\n$export.W = 32;  // wrap\n$export.U = 64;  // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js":
/*!***********************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js ***!
  \***********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (e) {\n    return true;\n  }\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js":
/*!************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js ***!
  \************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n  ? window : typeof self != 'undefined' && self.Math == Math ? self\n  // eslint-disable-next-line no-new-func\n  : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js ***!
  \*********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js ***!
  \**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var dP = __webpack_require__(/*! ./_object-dp */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js\");\nvar createDesc = __webpack_require__(/*! ./_property-desc */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js\");\nmodule.exports = __webpack_require__(/*! ./_descriptors */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js\") ? function (object, key, value) {\n  return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js ***!
  \**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var document = __webpack_require__(/*! ./_global */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js\").document;\nmodule.exports = document && document.documentElement;\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js":
/*!********************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js ***!
  \********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = !__webpack_require__(/*! ./_descriptors */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js\") && !__webpack_require__(/*! ./_fails */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js\")(function () {\n  return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js ***!
  \*************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(/*! ./_cof */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n  return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js":
/*!**************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js ***!
  \**************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(/*! ./_cof */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js\");\nmodule.exports = Array.isArray || function isArray(arg) {\n  return cof(arg) == 'Array';\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js ***!
  \***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js":
/*!*****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js ***!
  \*****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar create = __webpack_require__(/*! ./_object-create */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js\");\nvar descriptor = __webpack_require__(/*! ./_property-desc */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js\");\nvar setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(/*! ./_hide */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js\")(IteratorPrototype, __webpack_require__(/*! ./_wks */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n  setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js":
/*!*****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js ***!
  \*****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar LIBRARY = __webpack_require__(/*! ./_library */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js\");\nvar $export = __webpack_require__(/*! ./_export */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js\");\nvar redefine = __webpack_require__(/*! ./_redefine */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js\");\nvar hide = __webpack_require__(/*! ./_hide */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js\");\nvar Iterators = __webpack_require__(/*! ./_iterators */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js\");\nvar $iterCreate = __webpack_require__(/*! ./_iter-create */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js\");\nvar setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js\");\nvar getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js\");\nvar ITERATOR = __webpack_require__(/*! ./_wks */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n  $iterCreate(Constructor, NAME, next);\n  var getMethod = function (kind) {\n    if (!BUGGY && kind in proto) return proto[kind];\n    switch (kind) {\n      case KEYS: return function keys() { return new Constructor(this, kind); };\n      case VALUES: return function values() { return new Constructor(this, kind); };\n    } return function entries() { return new Constructor(this, kind); };\n  };\n  var TAG = NAME + ' Iterator';\n  var DEF_VALUES = DEFAULT == VALUES;\n  var VALUES_BUG = false;\n  var proto = Base.prototype;\n  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n  var $default = $native || getMethod(DEFAULT);\n  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n  var methods, key, IteratorPrototype;\n  // Fix native\n  if ($anyNative) {\n    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n      // Set @@toStringTag to native iterators\n      setToStringTag(IteratorPrototype, TAG, true);\n      // fix for some old engines\n      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n    }\n  }\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEF_VALUES && $native && $native.name !== VALUES) {\n    VALUES_BUG = true;\n    $default = function values() { return $native.call(this); };\n  }\n  // Define iterator\n  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n    hide(proto, ITERATOR, $default);\n  }\n  // Plug for library\n  Iterators[NAME] = $default;\n  Iterators[TAG] = returnThis;\n  if (DEFAULT) {\n    methods = {\n      values: DEF_VALUES ? $default : getMethod(VALUES),\n      keys: IS_SET ? $default : getMethod(KEYS),\n      entries: $entries\n    };\n    if (FORCED) for (key in methods) {\n      if (!(key in proto)) redefine(proto, key, methods[key]);\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n  }\n  return methods;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js ***!
  \***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = function (done, value) {\n  return { value: value, done: !!done };\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js ***!
  \***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = {};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js ***!
  \*************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = true;\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js ***!
  \**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var META = __webpack_require__(/*! ./_uid */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js\")('meta');\nvar isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js\");\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js\");\nvar setDesc = __webpack_require__(/*! ./_object-dp */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js\").f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n  return true;\n};\nvar FREEZE = !__webpack_require__(/*! ./_fails */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js\")(function () {\n  return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n  setDesc(it, META, { value: {\n    i: 'O' + ++id, // object ID\n    w: {}          // weak collections IDs\n  } });\n};\nvar fastKey = function (it, create) {\n  // return primitive with prefix\n  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMeta(it);\n  // return object ID\n  } return it[META].i;\n};\nvar getWeak = function (it, create) {\n  if (!has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMeta(it);\n  // return hash weak collections IDs\n  } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n  return it;\n};\nvar meta = module.exports = {\n  KEY: META,\n  NEED: false,\n  fastKey: fastKey,\n  getWeak: getWeak,\n  onFreeze: onFreeze\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js":
/*!*******************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js ***!
  \*******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js\");\nvar getKeys = __webpack_require__(/*! ./_object-keys */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js\");\nvar gOPS = __webpack_require__(/*! ./_object-gops */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js\");\nvar pIE = __webpack_require__(/*! ./_object-pie */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js\");\nvar toObject = __webpack_require__(/*! ./_to-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js\");\nvar IObject = __webpack_require__(/*! ./_iobject */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(/*! ./_fails */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js\")(function () {\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line no-undef\n  var S = Symbol();\n  var K = 'abcdefghijklmnopqrst';\n  A[S] = 7;\n  K.split('').forEach(function (k) { B[k] = k; });\n  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n  var T = toObject(target);\n  var aLen = arguments.length;\n  var index = 1;\n  var getSymbols = gOPS.f;\n  var isEnum = pIE.f;\n  while (aLen > index) {\n    var S = IObject(arguments[index++]);\n    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n    }\n  } return T;\n} : $assign;\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js":
/*!*******************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js ***!
  \*******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js\");\nvar dPs = __webpack_require__(/*! ./_object-dps */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js\");\nvar enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js\");\nvar IE_PROTO = __webpack_require__(/*! ./_shared-key */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = __webpack_require__(/*! ./_dom-create */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js\")('iframe');\n  var i = enumBugKeys.length;\n  var lt = '<';\n  var gt = '>';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  __webpack_require__(/*! ./_html */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js\").appendChild(iframe);\n  iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n  // createDict = iframe.contentWindow.Object;\n  // html.removeChild(iframe);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n  iframeDocument.close();\n  createDict = iframeDocument.F;\n  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n  return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty();\n    Empty[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = createDict();\n  return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js ***!
  \***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js\");\nvar IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js\");\nvar toPrimitive = __webpack_require__(/*! ./_to-primitive */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(/*! ./_descriptors */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return dP(O, P, Attributes);\n  } catch (e) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js ***!
  \****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var dP = __webpack_require__(/*! ./_object-dp */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js\");\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js\");\nvar getKeys = __webpack_require__(/*! ./_object-keys */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js\");\n\nmodule.exports = __webpack_require__(/*! ./_descriptors */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js\") ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = getKeys(Properties);\n  var length = keys.length;\n  var i = 0;\n  var P;\n  while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n  return O;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js":
/*!*****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js ***!
  \*****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var pIE = __webpack_require__(/*! ./_object-pie */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js\");\nvar createDesc = __webpack_require__(/*! ./_property-desc */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js\");\nvar toIObject = __webpack_require__(/*! ./_to-iobject */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js\");\nvar toPrimitive = __webpack_require__(/*! ./_to-primitive */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js\");\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js\");\nvar IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js\");\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = __webpack_require__(/*! ./_descriptors */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js\") ? gOPD : function getOwnPropertyDescriptor(O, P) {\n  O = toIObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return gOPD(O, P);\n  } catch (e) { /* empty */ }\n  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js":
/*!*********************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js ***!
  \*********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = __webpack_require__(/*! ./_to-iobject */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js\");\nvar gOPN = __webpack_require__(/*! ./_object-gopn */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js\").f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return gOPN(it);\n  } catch (e) {\n    return windowNames.slice();\n  }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js":
/*!*****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js ***!
  \*****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = __webpack_require__(/*! ./_object-keys-internal */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js\");\nvar hiddenKeys = __webpack_require__(/*! ./_enum-bug-keys */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js\").concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return $keys(O, hiddenKeys);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js":
/*!*****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js ***!
  \*****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("exports.f = Object.getOwnPropertySymbols;\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js ***!
  \****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js\");\nvar toObject = __webpack_require__(/*! ./_to-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js\");\nvar IE_PROTO = __webpack_require__(/*! ./_shared-key */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js":
/*!**************************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js ***!
  \**************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var has = __webpack_require__(/*! ./_has */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js\");\nvar toIObject = __webpack_require__(/*! ./_to-iobject */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js\");\nvar arrayIndexOf = __webpack_require__(/*! ./_array-includes */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js\")(false);\nvar IE_PROTO = __webpack_require__(/*! ./_shared-key */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n  var O = toIObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~arrayIndexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js":
/*!*****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js ***!
  \*****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(/*! ./_object-keys-internal */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js\");\nvar enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js\");\n\nmodule.exports = Object.keys || function keys(O) {\n  return $keys(O, enumBugKeys);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js ***!
  \****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("exports.f = {}.propertyIsEnumerable;\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js":
/*!*******************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js ***!
  \*******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js":
/*!**************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js ***!
  \**************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = __webpack_require__(/*! ./_hide */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js\");\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js":
/*!***********************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js ***!
  \***********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var def = __webpack_require__(/*! ./_object-dp */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js\").f;\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js\");\nvar TAG = __webpack_require__(/*! ./_wks */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js ***!
  \****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var shared = __webpack_require__(/*! ./_shared */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js\")('keys');\nvar uid = __webpack_require__(/*! ./_uid */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js\");\nmodule.exports = function (key) {\n  return shared[key] || (shared[key] = uid(key));\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js":
/*!************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js ***!
  \************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var core = __webpack_require__(/*! ./_core */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js\");\nvar global = __webpack_require__(/*! ./_global */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: core.version,\n  mode: __webpack_require__(/*! ./_library */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js\") ? 'pure' : 'global',\n  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js ***!
  \***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var toInteger = __webpack_require__(/*! ./_to-integer */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js\");\nvar defined = __webpack_require__(/*! ./_defined */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js\");\n// true  -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n  return function (that, pos) {\n    var s = String(defined(that));\n    var i = toInteger(pos);\n    var l = s.length;\n    var a, b;\n    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n    a = s.charCodeAt(i);\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n      ? TO_STRING ? s.charAt(i) : a\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js":
/*!***********************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js ***!
  \***********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var toInteger = __webpack_require__(/*! ./_to-integer */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n  index = toInteger(index);\n  return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js ***!
  \****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js ***!
  \****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(/*! ./_iobject */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js\");\nvar defined = __webpack_require__(/*! ./_defined */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js\");\nmodule.exports = function (it) {\n  return IObject(defined(it));\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js ***!
  \***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// 7.1.15 ToLength\nvar toInteger = __webpack_require__(/*! ./_to-integer */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js\");\nvar min = Math.min;\nmodule.exports = function (it) {\n  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js ***!
  \***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(/*! ./_defined */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js\");\nmodule.exports = function (it) {\n  return Object(defined(it));\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js":
/*!******************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js ***!
  \******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n  if (!isObject(it)) return it;\n  var fn, val;\n  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js ***!
  \*********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js ***!
  \****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var global = __webpack_require__(/*! ./_global */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js\");\nvar core = __webpack_require__(/*! ./_core */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js\");\nvar LIBRARY = __webpack_require__(/*! ./_library */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js\");\nvar wksExt = __webpack_require__(/*! ./_wks-ext */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js\");\nvar defineProperty = __webpack_require__(/*! ./_object-dp */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js\").f;\nmodule.exports = function (name) {\n  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js ***!
  \*************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("exports.f = __webpack_require__(/*! ./_wks */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js\");\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js ***!
  \*********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var store = __webpack_require__(/*! ./_shared */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js\")('wks');\nvar uid = __webpack_require__(/*! ./_uid */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js\");\nvar Symbol = __webpack_require__(/*! ./_global */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n  return store[name] || (store[name] =\n    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js":
/*!***********************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js ***!
  \***********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js\");\nvar step = __webpack_require__(/*! ./_iter-step */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js\");\nvar Iterators = __webpack_require__(/*! ./_iterators */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js\");\nvar toIObject = __webpack_require__(/*! ./_to-iobject */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(/*! ./_iter-define */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js\")(Array, 'Array', function (iterated, kind) {\n  this._t = toIObject(iterated); // target\n  this._i = 0;                   // next index\n  this._k = kind;                // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var kind = this._k;\n  var index = this._i++;\n  if (!O || index >= O.length) {\n    this._t = undefined;\n    return step(1);\n  }\n  if (kind == 'keys') return step(0, index);\n  if (kind == 'values') return step(0, O[index]);\n  return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js":
/*!**********************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js ***!
  \**********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(/*! ./_export */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(/*! ./_object-assign */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js\") });\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.to-string.js":
/*!*************************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.to-string.js ***!
  \*************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.to-string.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js":
/*!************************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js ***!
  \************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $at = __webpack_require__(/*! ./_string-at */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js\")(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(/*! ./_iter-define */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js\")(String, 'String', function (iterated) {\n  this._t = String(iterated); // target\n  this._i = 0;                // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var index = this._i;\n  var point;\n  if (index >= O.length) return { value: undefined, done: true };\n  point = $at(O, index);\n  this._i += point.length;\n  return { value: point, done: false };\n});\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js ***!
  \***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(/*! ./_global */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js\");\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js\");\nvar DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js\");\nvar $export = __webpack_require__(/*! ./_export */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js\");\nvar redefine = __webpack_require__(/*! ./_redefine */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js\");\nvar META = __webpack_require__(/*! ./_meta */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js\").KEY;\nvar $fails = __webpack_require__(/*! ./_fails */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js\");\nvar shared = __webpack_require__(/*! ./_shared */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js\");\nvar setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js\");\nvar uid = __webpack_require__(/*! ./_uid */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js\");\nvar wks = __webpack_require__(/*! ./_wks */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js\");\nvar wksExt = __webpack_require__(/*! ./_wks-ext */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js\");\nvar wksDefine = __webpack_require__(/*! ./_wks-define */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js\");\nvar enumKeys = __webpack_require__(/*! ./_enum-keys */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js\");\nvar isArray = __webpack_require__(/*! ./_is-array */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js\");\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js\");\nvar isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js\");\nvar toObject = __webpack_require__(/*! ./_to-object */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js\");\nvar toIObject = __webpack_require__(/*! ./_to-iobject */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js\");\nvar toPrimitive = __webpack_require__(/*! ./_to-primitive */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js\");\nvar createDesc = __webpack_require__(/*! ./_property-desc */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js\");\nvar _create = __webpack_require__(/*! ./_object-create */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js\");\nvar gOPNExt = __webpack_require__(/*! ./_object-gopn-ext */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js\");\nvar $GOPD = __webpack_require__(/*! ./_object-gopd */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js\");\nvar $GOPS = __webpack_require__(/*! ./_object-gops */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js\");\nvar $DP = __webpack_require__(/*! ./_object-dp */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js\");\nvar $keys = __webpack_require__(/*! ./_object-keys */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js\");\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n  return _create(dP({}, 'a', {\n    get: function () { return dP(this, 'a', { value: 7 }).a; }\n  })).a != 7;\n}) ? function (it, key, D) {\n  var protoDesc = gOPD(ObjectProto, key);\n  if (protoDesc) delete ObjectProto[key];\n  dP(it, key, D);\n  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n  sym._k = tag;\n  return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n  anObject(it);\n  key = toPrimitive(key, true);\n  anObject(D);\n  if (has(AllSymbols, key)) {\n    if (!D.enumerable) {\n      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n      it[HIDDEN][key] = true;\n    } else {\n      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n      D = _create(D, { enumerable: createDesc(0, false) });\n    } return setSymbolDesc(it, key, D);\n  } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n  anObject(it);\n  var keys = enumKeys(P = toIObject(P));\n  var i = 0;\n  var l = keys.length;\n  var key;\n  while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n  return it;\n};\nvar $create = function create(it, P) {\n  return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n  var E = isEnum.call(this, key = toPrimitive(key, true));\n  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n  it = toIObject(it);\n  key = toPrimitive(key, true);\n  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n  var D = gOPD(it, key);\n  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n  return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n  var names = gOPN(toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n  } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n  var IS_OP = it === ObjectProto;\n  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n  } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n  $Symbol = function Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n    var $set = function (value) {\n      if (this === ObjectProto) $set.call(OPSymbols, value);\n      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDesc(this, tag, createDesc(1, value));\n    };\n    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n    return wrap(tag);\n  };\n  redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n    return this._k;\n  });\n\n  $GOPD.f = $getOwnPropertyDescriptor;\n  $DP.f = $defineProperty;\n  __webpack_require__(/*! ./_object-gopn */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js\").f = gOPNExt.f = $getOwnPropertyNames;\n  __webpack_require__(/*! ./_object-pie */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js\").f = $propertyIsEnumerable;\n  $GOPS.f = $getOwnPropertySymbols;\n\n  if (DESCRIPTORS && !__webpack_require__(/*! ./_library */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js\")) {\n    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n  }\n\n  wksExt.f = function (name) {\n    return wrap(wks(name));\n  };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n  // 19.4.2.1 Symbol.for(key)\n  'for': function (key) {\n    return has(SymbolRegistry, key += '')\n      ? SymbolRegistry[key]\n      : SymbolRegistry[key] = $Symbol(key);\n  },\n  // 19.4.2.5 Symbol.keyFor(sym)\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n  },\n  useSetter: function () { setter = true; },\n  useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n  // 19.1.2.2 Object.create(O [, Properties])\n  create: $create,\n  // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n  defineProperty: $defineProperty,\n  // 19.1.2.3 Object.defineProperties(O, Properties)\n  defineProperties: $defineProperties,\n  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n  // 19.1.2.7 Object.getOwnPropertyNames(O)\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // 19.1.2.8 Object.getOwnPropertySymbols(O)\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n  getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n    return $GOPS.f(toObject(it));\n  }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n  var S = $Symbol();\n  // MS Edge converts symbol values to JSON as {}\n  // WebKit converts symbol values to JSON as null\n  // V8 throws on boxed symbols\n  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n  stringify: function stringify(it) {\n    var args = [it];\n    var i = 1;\n    var replacer, $replacer;\n    while (arguments.length > i) args.push(arguments[i++]);\n    $replacer = replacer = args[1];\n    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n    if (!isArray(replacer)) replacer = function (key, value) {\n      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n      if (!isSymbol(value)) return value;\n    };\n    args[1] = replacer;\n    return _stringify.apply($JSON, args);\n  }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(/*! ./_hide */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js\")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js":
/*!******************************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js ***!
  \******************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("__webpack_require__(/*! ./_wks-define */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js\")('asyncIterator');\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js":
/*!**************************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js ***!
  \**************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("__webpack_require__(/*! ./_wks-define */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js\")('observable');\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js":
/*!*********************************************************************************************!*\
  !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js ***!
  \*********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("__webpack_require__(/*! ./es6.array.iterator */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js\");\nvar global = __webpack_require__(/*! ./_global */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js\");\nvar hide = __webpack_require__(/*! ./_hide */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js\");\nvar Iterators = __webpack_require__(/*! ./_iterators */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js\");\nvar TO_STRING_TAG = __webpack_require__(/*! ./_wks */ \"./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js\")('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n  'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n  'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n  'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n  'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n  var NAME = DOMIterables[i];\n  var Collection = global[NAME];\n  var proto = Collection && Collection.prototype;\n  if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n  Iterators[NAME] = Iterators.Array;\n}\n\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js?");

/***/ }),

/***/ "./node_modules/base64-js/index.js":
/*!*****************************************!*\
  !*** ./node_modules/base64-js/index.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  var i\n  for (i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n\n\n//# sourceURL=webpack:///./node_modules/base64-js/index.js?");

/***/ }),

/***/ "./node_modules/call-bind/callBound.js":
/*!*********************************************!*\
  !*** ./node_modules/call-bind/callBound.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar GetIntrinsic = __webpack_require__(/*! get-intrinsic */ \"./node_modules/get-intrinsic/index.js\");\n\nvar callBind = __webpack_require__(/*! ./ */ \"./node_modules/call-bind/index.js\");\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n\n\n//# sourceURL=webpack:///./node_modules/call-bind/callBound.js?");

/***/ }),

/***/ "./node_modules/call-bind/index.js":
/*!*****************************************!*\
  !*** ./node_modules/call-bind/index.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar bind = __webpack_require__(/*! function-bind */ \"./node_modules/function-bind/index.js\");\nvar GetIntrinsic = __webpack_require__(/*! get-intrinsic */ \"./node_modules/get-intrinsic/index.js\");\nvar setFunctionLength = __webpack_require__(/*! set-function-length */ \"./node_modules/set-function-length/index.js\");\n\nvar $TypeError = __webpack_require__(/*! es-errors/type */ \"./node_modules/es-errors/type.js\");\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = __webpack_require__(/*! es-define-property */ \"./node_modules/es-define-property/index.js\");\nvar $max = GetIntrinsic('%Math.max%');\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n\n\n//# sourceURL=webpack:///./node_modules/call-bind/index.js?");

/***/ }),

/***/ "./node_modules/clipboard/dist/clipboard.min.js":
/*!******************************************************!*\
  !*** ./node_modules/clipboard/dist/clipboard.min.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */\n!function(t,e){ true?module.exports=e():undefined}(this,function(){return n={686:function(t,e,n){\"use strict\";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c(\"cut\"),t};function o(t,e){var n,o,t=(n=t,o=\"rtl\"===document.documentElement.getAttribute(\"dir\"),(t=document.createElement(\"textarea\")).style.fontSize=\"12pt\",t.style.border=\"0\",t.style.padding=\"0\",t.style.margin=\"0\",t.style.position=\"absolute\",t.style[o?\"right\":\"left\"]=\"-9999px\",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top=\"\".concat(o,\"px\"),t.setAttribute(\"readonly\",\"\"),t.value=n,t);return e.container.appendChild(t),e=r()(t),c(\"copy\"),t.remove(),e}var f=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body},n=\"\";return\"string\"==typeof t?n=o(t,e):t instanceof HTMLInputElement&&![\"text\",\"search\",\"url\",\"tel\",\"password\"].includes(null==t?void 0:t.type)?n=o(t.value,e):(n=r()(t),c(\"copy\")),n};function l(t){return(l=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var s=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=t.action,n=void 0===e?\"copy\":e,o=t.container,e=t.target,t=t.text;if(\"copy\"!==n&&\"cut\"!==n)throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');if(void 0!==e){if(!e||\"object\"!==l(e)||1!==e.nodeType)throw new Error('Invalid \"target\" value, use a valid Element');if(\"copy\"===n&&e.hasAttribute(\"disabled\"))throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');if(\"cut\"===n&&(e.hasAttribute(\"readonly\")||e.hasAttribute(\"disabled\")))throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes')}return t?f(t,{container:o}):e?\"cut\"===n?a(e):f(e,{container:o}):void 0};function p(t){return(p=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function d(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,\"value\"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function y(t,e){return(y=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var o=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=v(n);return t=o?(t=v(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments),e=this,!(t=t)||\"object\"!==p(t)&&\"function\"!=typeof t?function(t){if(void 0!==t)return t;throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}(e):t}}function v(t){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function m(t,e){t=\"data-clipboard-\".concat(t);if(e.hasAttribute(t))return e.getAttribute(t)}var b=function(){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&y(t,e)}(r,i());var t,e,n,o=h(r);function r(t,e){var n;return function(t){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this),(n=o.call(this)).resolveOptions(e),n.listenClick(t),n}return t=r,n=[{key:\"copy\",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body};return f(t,e)}},{key:\"cut\",value:function(t){return a(t)}},{key:\"isSupported\",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[\"copy\",\"cut\"],t=\"string\"==typeof t?[t]:t,e=!!document.queryCommandSupported;return t.forEach(function(t){e=e&&!!document.queryCommandSupported(t)}),e}}],(e=[{key:\"resolveOptions\",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action=\"function\"==typeof t.action?t.action:this.defaultAction,this.target=\"function\"==typeof t.target?t.target:this.defaultTarget,this.text=\"function\"==typeof t.text?t.text:this.defaultText,this.container=\"object\"===p(t.container)?t.container:document.body}},{key:\"listenClick\",value:function(t){var e=this;this.listener=u()(t,\"click\",function(t){return e.onClick(t)})}},{key:\"onClick\",value:function(t){var e=t.delegateTarget||t.currentTarget,n=this.action(e)||\"copy\",t=s({action:n,container:this.container,target:this.target(e),text:this.text(e)});this.emit(t?\"success\":\"error\",{action:n,text:t,trigger:e,clearSelection:function(){e&&e.focus(),window.getSelection().removeAllRanges()}})}},{key:\"defaultAction\",value:function(t){return m(\"action\",t)}},{key:\"defaultTarget\",value:function(t){t=m(\"target\",t);if(t)return document.querySelector(t)}},{key:\"defaultText\",value:function(t){return m(\"text\",t)}},{key:\"destroy\",value:function(){this.listener.destroy()}}])&&d(t.prototype,e),n&&d(t,n),r}()},828:function(t){var e;\"undefined\"==typeof Element||Element.prototype.matches||((e=Element.prototype).matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector),t.exports=function(t,e){for(;t&&9!==t.nodeType;){if(\"function\"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}},438:function(t,e,n){var u=n(828);function i(t,e,n,o,r){var i=function(e,n,t,o){return function(t){t.delegateTarget=u(t.target,n),t.delegateTarget&&o.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,r),{destroy:function(){t.removeEventListener(n,i,r)}}}t.exports=function(t,e,n,o,r){return\"function\"==typeof t.addEventListener?i.apply(null,arguments):\"function\"==typeof n?i.bind(null,document).apply(null,arguments):(\"string\"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,o,r)}))}},879:function(t,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&(\"[object NodeList]\"===e||\"[object HTMLCollection]\"===e)&&\"length\"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return\"string\"==typeof t||t instanceof String},n.fn=function(t){return\"[object Function]\"===Object.prototype.toString.call(t)}},370:function(t,e,n){var f=n(879),l=n(438);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error(\"Missing required arguments\");if(!f.string(e))throw new TypeError(\"Second argument must be a String\");if(!f.fn(n))throw new TypeError(\"Third argument must be a Function\");if(f.node(t))return c=e,a=n,(u=t).addEventListener(c,a),{destroy:function(){u.removeEventListener(c,a)}};if(f.nodeList(t))return o=t,r=e,i=n,Array.prototype.forEach.call(o,function(t){t.addEventListener(r,i)}),{destroy:function(){Array.prototype.forEach.call(o,function(t){t.removeEventListener(r,i)})}};if(f.string(t))return t=t,e=e,n=n,l(document.body,t,e,n);throw new TypeError(\"First argument must be a String, HTMLElement, HTMLCollection, or NodeList\");var o,r,i,u,c,a}},817:function(t){t.exports=function(t){var e,n=\"SELECT\"===t.nodeName?(t.focus(),t.value):\"INPUT\"===t.nodeName||\"TEXTAREA\"===t.nodeName?((e=t.hasAttribute(\"readonly\"))||t.setAttribute(\"readonly\",\"\"),t.select(),t.setSelectionRange(0,t.value.length),e||t.removeAttribute(\"readonly\"),t.value):(t.hasAttribute(\"contenteditable\")&&t.focus(),n=window.getSelection(),(e=document.createRange()).selectNodeContents(t),n.removeAllRanges(),n.addRange(e),n.toString());return n}},279:function(t){function e(){}e.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,u=o.length;i<u;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=e,t.exports.TinyEmitter=e}},r={},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,{a:e}),e},o.d=function(t,e){for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o(686).default;function o(t){if(r[t])return r[t].exports;var e=r[t]={exports:{}};return n[t](e,e.exports,o),e.exports}var n,r});\n\n//# sourceURL=webpack:///./node_modules/clipboard/dist/clipboard.min.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/a-callable.js":
/*!******************************************************!*\
  !*** ./node_modules/core-js/internals/a-callable.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\nvar tryToString = __webpack_require__(/*! ../internals/try-to-string */ \"./node_modules/core-js/internals/try-to-string.js\");\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n  if (isCallable(argument)) return argument;\n  throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/a-callable.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/a-possible-prototype.js":
/*!****************************************************************!*\
  !*** ./node_modules/core-js/internals/a-possible-prototype.js ***!
  \****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar isPossiblePrototype = __webpack_require__(/*! ../internals/is-possible-prototype */ \"./node_modules/core-js/internals/is-possible-prototype.js\");\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (isPossiblePrototype(argument)) return argument;\n  throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/a-possible-prototype.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/a-set.js":
/*!*************************************************!*\
  !*** ./node_modules/core-js/internals/a-set.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar has = __webpack_require__(/*! ../internals/set-helpers */ \"./node_modules/core-js/internals/set-helpers.js\").has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n  has(it);\n  return it;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/a-set.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/add-to-unscopables.js":
/*!**************************************************************!*\
  !*** ./node_modules/core-js/internals/add-to-unscopables.js ***!
  \**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar create = __webpack_require__(/*! ../internals/object-create */ \"./node_modules/core-js/internals/object-create.js\");\nvar defineProperty = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\").f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n  defineProperty(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/add-to-unscopables.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/an-object.js":
/*!*****************************************************!*\
  !*** ./node_modules/core-js/internals/an-object.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n  if (isObject(argument)) return argument;\n  throw new $TypeError($String(argument) + ' is not an object');\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/an-object.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/array-buffer-byte-length.js":
/*!********************************************************************!*\
  !*** ./node_modules/core-js/internals/array-buffer-byte-length.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar uncurryThisAccessor = __webpack_require__(/*! ../internals/function-uncurry-this-accessor */ \"./node_modules/core-js/internals/function-uncurry-this-accessor.js\");\nvar classof = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar TypeError = globalThis.TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = ArrayBuffer && uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n  if (classof(O) !== 'ArrayBuffer') throw new TypeError('ArrayBuffer expected');\n  return O.byteLength;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/array-buffer-byte-length.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/array-buffer-is-detached.js":
/*!********************************************************************!*\
  !*** ./node_modules/core-js/internals/array-buffer-is-detached.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this-clause */ \"./node_modules/core-js/internals/function-uncurry-this-clause.js\");\nvar arrayBufferByteLength = __webpack_require__(/*! ../internals/array-buffer-byte-length */ \"./node_modules/core-js/internals/array-buffer-byte-length.js\");\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer && ArrayBuffer.prototype;\nvar slice = ArrayBufferPrototype && uncurryThis(ArrayBufferPrototype.slice);\n\nmodule.exports = function (O) {\n  if (arrayBufferByteLength(O) !== 0) return false;\n  if (!slice) return false;\n  try {\n    slice(O, 0, 0);\n    return false;\n  } catch (error) {\n    return true;\n  }\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/array-buffer-is-detached.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/array-buffer-not-detached.js":
/*!*********************************************************************!*\
  !*** ./node_modules/core-js/internals/array-buffer-not-detached.js ***!
  \*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar isDetached = __webpack_require__(/*! ../internals/array-buffer-is-detached */ \"./node_modules/core-js/internals/array-buffer-is-detached.js\");\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n  if (isDetached(it)) throw new $TypeError('ArrayBuffer is detached');\n  return it;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/array-buffer-not-detached.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/array-buffer-transfer.js":
/*!*****************************************************************!*\
  !*** ./node_modules/core-js/internals/array-buffer-transfer.js ***!
  \*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar uncurryThisAccessor = __webpack_require__(/*! ../internals/function-uncurry-this-accessor */ \"./node_modules/core-js/internals/function-uncurry-this-accessor.js\");\nvar toIndex = __webpack_require__(/*! ../internals/to-index */ \"./node_modules/core-js/internals/to-index.js\");\nvar notDetached = __webpack_require__(/*! ../internals/array-buffer-not-detached */ \"./node_modules/core-js/internals/array-buffer-not-detached.js\");\nvar arrayBufferByteLength = __webpack_require__(/*! ../internals/array-buffer-byte-length */ \"./node_modules/core-js/internals/array-buffer-byte-length.js\");\nvar detachTransferable = __webpack_require__(/*! ../internals/detach-transferable */ \"./node_modules/core-js/internals/detach-transferable.js\");\nvar PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(/*! ../internals/structured-clone-proper-transfer */ \"./node_modules/core-js/internals/structured-clone-proper-transfer.js\");\n\nvar structuredClone = globalThis.structuredClone;\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar DataView = globalThis.DataView;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {\n  var byteLength = arrayBufferByteLength(arrayBuffer);\n  var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);\n  var fixedLength = !isResizable || !isResizable(arrayBuffer);\n  var newBuffer;\n  notDetached(arrayBuffer);\n  if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n    arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n    if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;\n  }\n  if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {\n    newBuffer = slice(arrayBuffer, 0, newByteLength);\n  } else {\n    var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined;\n    newBuffer = new ArrayBuffer(newByteLength, options);\n    var a = new DataView(arrayBuffer);\n    var b = new DataView(newBuffer);\n    var copyLength = min(newByteLength, byteLength);\n    for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));\n  }\n  if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);\n  return newBuffer;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/array-buffer-transfer.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/array-includes.js":
/*!**********************************************************!*\
  !*** ./node_modules/core-js/internals/array-includes.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ \"./node_modules/core-js/internals/to-absolute-index.js\");\nvar lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ \"./node_modules/core-js/internals/length-of-array-like.js\");\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = lengthOfArrayLike(O);\n    if (length === 0) return !IS_INCLUDES && -1;\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (IS_INCLUDES && el !== el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (value !== value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/array-includes.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/array-set-length.js":
/*!************************************************************!*\
  !*** ./node_modules/core-js/internals/array-set-length.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar isArray = __webpack_require__(/*! ../internals/is-array */ \"./node_modules/core-js/internals/is-array.js\");\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n  // makes no sense without proper strict mode support\n  if (this !== undefined) return true;\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).length = 1;\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n  if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n    throw new $TypeError('Cannot set read only .length');\n  } return O.length = length;\n} : function (O, length) {\n  return O.length = length;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/array-set-length.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/array-slice.js":
/*!*******************************************************!*\
  !*** ./node_modules/core-js/internals/array-slice.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\n\nmodule.exports = uncurryThis([].slice);\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/array-slice.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/classof-raw.js":
/*!*******************************************************!*\
  !*** ./node_modules/core-js/internals/classof-raw.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n  return stringSlice(toString(it), 8, -1);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/classof-raw.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/classof.js":
/*!***************************************************!*\
  !*** ./node_modules/core-js/internals/classof.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ \"./node_modules/core-js/internals/to-string-tag-support.js\");\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\nvar classofRaw = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/classof.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/copy-constructor-properties.js":
/*!***********************************************************************!*\
  !*** ./node_modules/core-js/internals/copy-constructor-properties.js ***!
  \***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar hasOwn = __webpack_require__(/*! ../internals/has-own-property */ \"./node_modules/core-js/internals/has-own-property.js\");\nvar ownKeys = __webpack_require__(/*! ../internals/own-keys */ \"./node_modules/core-js/internals/own-keys.js\");\nvar getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ \"./node_modules/core-js/internals/object-get-own-property-descriptor.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\n\nmodule.exports = function (target, source, exceptions) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n      defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n    }\n  }\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/copy-constructor-properties.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/create-non-enumerable-property.js":
/*!**************************************************************************!*\
  !*** ./node_modules/core-js/internals/create-non-enumerable-property.js ***!
  \**************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\nvar createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ \"./node_modules/core-js/internals/create-property-descriptor.js\");\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/create-property-descriptor.js":
/*!**********************************************************************!*\
  !*** ./node_modules/core-js/internals/create-property-descriptor.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/create-property-descriptor.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/create-property.js":
/*!***********************************************************!*\
  !*** ./node_modules/core-js/internals/create-property.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\nvar createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ \"./node_modules/core-js/internals/create-property-descriptor.js\");\n\nmodule.exports = function (object, key, value) {\n  if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n  else object[key] = value;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/create-property.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/define-built-in-accessor.js":
/*!********************************************************************!*\
  !*** ./node_modules/core-js/internals/define-built-in-accessor.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar makeBuiltIn = __webpack_require__(/*! ../internals/make-built-in */ \"./node_modules/core-js/internals/make-built-in.js\");\nvar defineProperty = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\n\nmodule.exports = function (target, name, descriptor) {\n  if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n  if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n  return defineProperty.f(target, name, descriptor);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/define-built-in-accessor.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/define-built-in.js":
/*!***********************************************************!*\
  !*** ./node_modules/core-js/internals/define-built-in.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\nvar makeBuiltIn = __webpack_require__(/*! ../internals/make-built-in */ \"./node_modules/core-js/internals/make-built-in.js\");\nvar defineGlobalProperty = __webpack_require__(/*! ../internals/define-global-property */ \"./node_modules/core-js/internals/define-global-property.js\");\n\nmodule.exports = function (O, key, value, options) {\n  if (!options) options = {};\n  var simple = options.enumerable;\n  var name = options.name !== undefined ? options.name : key;\n  if (isCallable(value)) makeBuiltIn(value, name, options);\n  if (options.global) {\n    if (simple) O[key] = value;\n    else defineGlobalProperty(key, value);\n  } else {\n    try {\n      if (!options.unsafe) delete O[key];\n      else if (O[key]) simple = true;\n    } catch (error) { /* empty */ }\n    if (simple) O[key] = value;\n    else definePropertyModule.f(O, key, {\n      value: value,\n      enumerable: false,\n      configurable: !options.nonConfigurable,\n      writable: !options.nonWritable\n    });\n  } return O;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/define-built-in.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/define-global-property.js":
/*!******************************************************************!*\
  !*** ./node_modules/core-js/internals/define-global-property.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n  try {\n    defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n  } catch (error) {\n    globalThis[key] = value;\n  } return value;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/define-global-property.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/delete-property-or-throw.js":
/*!********************************************************************!*\
  !*** ./node_modules/core-js/internals/delete-property-or-throw.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar tryToString = __webpack_require__(/*! ../internals/try-to-string */ \"./node_modules/core-js/internals/try-to-string.js\");\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n  if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/delete-property-or-throw.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/descriptors.js":
/*!*******************************************************!*\
  !*** ./node_modules/core-js/internals/descriptors.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/descriptors.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/detach-transferable.js":
/*!***************************************************************!*\
  !*** ./node_modules/core-js/internals/detach-transferable.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar getBuiltInNodeModule = __webpack_require__(/*! ../internals/get-built-in-node-module */ \"./node_modules/core-js/internals/get-built-in-node-module.js\");\nvar PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(/*! ../internals/structured-clone-proper-transfer */ \"./node_modules/core-js/internals/structured-clone-proper-transfer.js\");\n\nvar structuredClone = globalThis.structuredClone;\nvar $ArrayBuffer = globalThis.ArrayBuffer;\nvar $MessageChannel = globalThis.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n  detach = function (transferable) {\n    structuredClone(transferable, { transfer: [transferable] });\n  };\n} else if ($ArrayBuffer) try {\n  if (!$MessageChannel) {\n    WorkerThreads = getBuiltInNodeModule('worker_threads');\n    if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n  }\n\n  if ($MessageChannel) {\n    channel = new $MessageChannel();\n    buffer = new $ArrayBuffer(2);\n\n    $detach = function (transferable) {\n      channel.port1.postMessage(null, [transferable]);\n    };\n\n    if (buffer.byteLength === 2) {\n      $detach(buffer);\n      if (buffer.byteLength === 0) detach = $detach;\n    }\n  }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/detach-transferable.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/document-create-element.js":
/*!*******************************************************************!*\
  !*** ./node_modules/core-js/internals/document-create-element.js ***!
  \*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/document-create-element.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/does-not-exceed-safe-integer.js":
/*!************************************************************************!*\
  !*** ./node_modules/core-js/internals/does-not-exceed-safe-integer.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n  if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n  return it;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/does-not-exceed-safe-integer.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/enum-bug-keys.js":
/*!*********************************************************!*\
  !*** ./node_modules/core-js/internals/enum-bug-keys.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/enum-bug-keys.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/environment-is-ios.js":
/*!**************************************************************!*\
  !*** ./node_modules/core-js/internals/environment-is-ios.js ***!
  \**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar userAgent = __webpack_require__(/*! ../internals/environment-user-agent */ \"./node_modules/core-js/internals/environment-user-agent.js\");\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/environment-is-ios.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/environment-is-node.js":
/*!***************************************************************!*\
  !*** ./node_modules/core-js/internals/environment-is-node.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar ENVIRONMENT = __webpack_require__(/*! ../internals/environment */ \"./node_modules/core-js/internals/environment.js\");\n\nmodule.exports = ENVIRONMENT === 'NODE';\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/environment-is-node.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/environment-user-agent.js":
/*!******************************************************************!*\
  !*** ./node_modules/core-js/internals/environment-user-agent.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/environment-user-agent.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/environment-v8-version.js":
/*!******************************************************************!*\
  !*** ./node_modules/core-js/internals/environment-v8-version.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar userAgent = __webpack_require__(/*! ../internals/environment-user-agent */ \"./node_modules/core-js/internals/environment-user-agent.js\");\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n  // but their correct versions are not interesting for us\n  version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = +match[1];\n  }\n}\n\nmodule.exports = version;\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/environment-v8-version.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/environment.js":
/*!*******************************************************!*\
  !*** ./node_modules/core-js/internals/environment.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n/* global Bun, Deno -- detection */\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar userAgent = __webpack_require__(/*! ../internals/environment-user-agent */ \"./node_modules/core-js/internals/environment-user-agent.js\");\nvar classof = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\n\nvar userAgentStartsWith = function (string) {\n  return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n  if (userAgentStartsWith('Bun/')) return 'BUN';\n  if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n  if (userAgentStartsWith('Deno/')) return 'DENO';\n  if (userAgentStartsWith('Node.js/')) return 'NODE';\n  if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n  if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n  if (classof(globalThis.process) === 'process') return 'NODE';\n  if (globalThis.window && globalThis.document) return 'BROWSER';\n  return 'REST';\n})();\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/environment.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/error-stack-clear.js":
/*!*************************************************************!*\
  !*** ./node_modules/core-js/internals/error-stack-clear.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n  if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n    while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n  } return stack;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/error-stack-clear.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/error-stack-install.js":
/*!***************************************************************!*\
  !*** ./node_modules/core-js/internals/error-stack-install.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar clearErrorStack = __webpack_require__(/*! ../internals/error-stack-clear */ \"./node_modules/core-js/internals/error-stack-clear.js\");\nvar ERROR_STACK_INSTALLABLE = __webpack_require__(/*! ../internals/error-stack-installable */ \"./node_modules/core-js/internals/error-stack-installable.js\");\n\n// non-standard V8\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n  if (ERROR_STACK_INSTALLABLE) {\n    if (captureStackTrace) captureStackTrace(error, C);\n    else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n  }\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/error-stack-install.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/error-stack-installable.js":
/*!*******************************************************************!*\
  !*** ./node_modules/core-js/internals/error-stack-installable.js ***!
  \*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ \"./node_modules/core-js/internals/create-property-descriptor.js\");\n\nmodule.exports = !fails(function () {\n  var error = new Error('a');\n  if (!('stack' in error)) return true;\n  // eslint-disable-next-line es/no-object-defineproperty -- safe\n  Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n  return error.stack !== 7;\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/error-stack-installable.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/export.js":
/*!**************************************************!*\
  !*** ./node_modules/core-js/internals/export.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ \"./node_modules/core-js/internals/object-get-own-property-descriptor.js\").f;\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar defineBuiltIn = __webpack_require__(/*! ../internals/define-built-in */ \"./node_modules/core-js/internals/define-built-in.js\");\nvar defineGlobalProperty = __webpack_require__(/*! ../internals/define-global-property */ \"./node_modules/core-js/internals/define-global-property.js\");\nvar copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ \"./node_modules/core-js/internals/copy-constructor-properties.js\");\nvar isForced = __webpack_require__(/*! ../internals/is-forced */ \"./node_modules/core-js/internals/is-forced.js\");\n\n/*\n  options.target         - name of the target object\n  options.global         - target is the global object\n  options.stat           - export as static methods of target\n  options.proto          - export as prototype methods of target\n  options.real           - real prototype method for the `pure` version\n  options.forced         - export even if the native feature is available\n  options.bind           - bind methods to the target, required for the `pure` version\n  options.wrap           - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe         - use the simple assignment of property instead of delete + defineProperty\n  options.sham           - add a flag to not completely full polyfills\n  options.enumerable     - export as enumerable property\n  options.dontCallGetSet - prevent calling a getter on target\n  options.name           - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = globalThis;\n  } else if (STATIC) {\n    target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n  } else {\n    target = globalThis[TARGET] && globalThis[TARGET].prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.dontCallGetSet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty == typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    defineBuiltIn(target, key, sourceProperty, options);\n  }\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/export.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/fails.js":
/*!*************************************************!*\
  !*** ./node_modules/core-js/internals/fails.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/fails.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/function-apply.js":
/*!**********************************************************!*\
  !*** ./node_modules/core-js/internals/function-apply.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar NATIVE_BIND = __webpack_require__(/*! ../internals/function-bind-native */ \"./node_modules/core-js/internals/function-bind-native.js\");\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n  return call.apply(apply, arguments);\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/function-apply.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/function-bind-context.js":
/*!*****************************************************************!*\
  !*** ./node_modules/core-js/internals/function-bind-context.js ***!
  \*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this-clause */ \"./node_modules/core-js/internals/function-uncurry-this-clause.js\");\nvar aCallable = __webpack_require__(/*! ../internals/a-callable */ \"./node_modules/core-js/internals/a-callable.js\");\nvar NATIVE_BIND = __webpack_require__(/*! ../internals/function-bind-native */ \"./node_modules/core-js/internals/function-bind-native.js\");\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n  aCallable(fn);\n  return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/function-bind-context.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/function-bind-native.js":
/*!****************************************************************!*\
  !*** ./node_modules/core-js/internals/function-bind-native.js ***!
  \****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-function-prototype-bind -- safe\n  var test = (function () { /* empty */ }).bind();\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/function-bind-native.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/function-call.js":
/*!*********************************************************!*\
  !*** ./node_modules/core-js/internals/function-call.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar NATIVE_BIND = __webpack_require__(/*! ../internals/function-bind-native */ \"./node_modules/core-js/internals/function-bind-native.js\");\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n  return call.apply(call, arguments);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/function-call.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/function-name.js":
/*!*********************************************************!*\
  !*** ./node_modules/core-js/internals/function-name.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar hasOwn = __webpack_require__(/*! ../internals/has-own-property */ \"./node_modules/core-js/internals/has-own-property.js\");\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n  EXISTS: EXISTS,\n  PROPER: PROPER,\n  CONFIGURABLE: CONFIGURABLE\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/function-name.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/function-uncurry-this-accessor.js":
/*!**************************************************************************!*\
  !*** ./node_modules/core-js/internals/function-uncurry-this-accessor.js ***!
  \**************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar aCallable = __webpack_require__(/*! ../internals/a-callable */ \"./node_modules/core-js/internals/a-callable.js\");\n\nmodule.exports = function (object, key, method) {\n  try {\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n  } catch (error) { /* empty */ }\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/function-uncurry-this-accessor.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/function-uncurry-this-clause.js":
/*!************************************************************************!*\
  !*** ./node_modules/core-js/internals/function-uncurry-this-clause.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar classofRaw = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\n\nmodule.exports = function (fn) {\n  // Nashorn bug:\n  //   https://github.com/zloirock/core-js/issues/1128\n  //   https://github.com/zloirock/core-js/issues/1130\n  if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/function-uncurry-this-clause.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/function-uncurry-this.js":
/*!*****************************************************************!*\
  !*** ./node_modules/core-js/internals/function-uncurry-this.js ***!
  \*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar NATIVE_BIND = __webpack_require__(/*! ../internals/function-bind-native */ \"./node_modules/core-js/internals/function-bind-native.js\");\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n  return function () {\n    return call.apply(fn, arguments);\n  };\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/function-uncurry-this.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/get-built-in-node-module.js":
/*!********************************************************************!*\
  !*** ./node_modules/core-js/internals/get-built-in-node-module.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar IS_NODE = __webpack_require__(/*! ../internals/environment-is-node */ \"./node_modules/core-js/internals/environment-is-node.js\");\n\nmodule.exports = function (name) {\n  if (IS_NODE) {\n    try {\n      return globalThis.process.getBuiltinModule(name);\n    } catch (error) { /* empty */ }\n    try {\n      // eslint-disable-next-line no-new-func -- safe\n      return Function('return require(\"' + name + '\")')();\n    } catch (error) { /* empty */ }\n  }\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/get-built-in-node-module.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/get-built-in.js":
/*!********************************************************!*\
  !*** ./node_modules/core-js/internals/get-built-in.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\n\nvar aFunction = function (argument) {\n  return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/get-built-in.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/get-iterator-direct.js":
/*!***************************************************************!*\
  !*** ./node_modules/core-js/internals/get-iterator-direct.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect\nmodule.exports = function (obj) {\n  return {\n    iterator: obj,\n    next: obj.next,\n    done: false\n  };\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/get-iterator-direct.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/get-iterator-method.js":
/*!***************************************************************!*\
  !*** ./node_modules/core-js/internals/get-iterator-method.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar classof = __webpack_require__(/*! ../internals/classof */ \"./node_modules/core-js/internals/classof.js\");\nvar getMethod = __webpack_require__(/*! ../internals/get-method */ \"./node_modules/core-js/internals/get-method.js\");\nvar isNullOrUndefined = __webpack_require__(/*! ../internals/is-null-or-undefined */ \"./node_modules/core-js/internals/is-null-or-undefined.js\");\nvar Iterators = __webpack_require__(/*! ../internals/iterators */ \"./node_modules/core-js/internals/iterators.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n    || getMethod(it, '@@iterator')\n    || Iterators[classof(it)];\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/get-iterator-method.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/get-iterator.js":
/*!********************************************************!*\
  !*** ./node_modules/core-js/internals/get-iterator.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar call = __webpack_require__(/*! ../internals/function-call */ \"./node_modules/core-js/internals/function-call.js\");\nvar aCallable = __webpack_require__(/*! ../internals/a-callable */ \"./node_modules/core-js/internals/a-callable.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar tryToString = __webpack_require__(/*! ../internals/try-to-string */ \"./node_modules/core-js/internals/try-to-string.js\");\nvar getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ \"./node_modules/core-js/internals/get-iterator-method.js\");\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n  var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n  if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n  throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/get-iterator.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/get-json-replacer-function.js":
/*!**********************************************************************!*\
  !*** ./node_modules/core-js/internals/get-json-replacer-function.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar isArray = __webpack_require__(/*! ../internals/is-array */ \"./node_modules/core-js/internals/is-array.js\");\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\nvar classof = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\nvar toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n  if (isCallable(replacer)) return replacer;\n  if (!isArray(replacer)) return;\n  var rawLength = replacer.length;\n  var keys = [];\n  for (var i = 0; i < rawLength; i++) {\n    var element = replacer[i];\n    if (typeof element == 'string') push(keys, element);\n    else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n  }\n  var keysLength = keys.length;\n  var root = true;\n  return function (key, value) {\n    if (root) {\n      root = false;\n      return value;\n    }\n    if (isArray(this)) return value;\n    for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n  };\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/get-json-replacer-function.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/get-method.js":
/*!******************************************************!*\
  !*** ./node_modules/core-js/internals/get-method.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar aCallable = __webpack_require__(/*! ../internals/a-callable */ \"./node_modules/core-js/internals/a-callable.js\");\nvar isNullOrUndefined = __webpack_require__(/*! ../internals/is-null-or-undefined */ \"./node_modules/core-js/internals/is-null-or-undefined.js\");\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n  var func = V[P];\n  return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/get-method.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/get-set-record.js":
/*!**********************************************************!*\
  !*** ./node_modules/core-js/internals/get-set-record.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar aCallable = __webpack_require__(/*! ../internals/a-callable */ \"./node_modules/core-js/internals/a-callable.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar call = __webpack_require__(/*! ../internals/function-call */ \"./node_modules/core-js/internals/function-call.js\");\nvar toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ \"./node_modules/core-js/internals/to-integer-or-infinity.js\");\nvar getIteratorDirect = __webpack_require__(/*! ../internals/get-iterator-direct */ \"./node_modules/core-js/internals/get-iterator-direct.js\");\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n  this.set = set;\n  this.size = max(intSize, 0);\n  this.has = aCallable(set.has);\n  this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n  getIterator: function () {\n    return getIteratorDirect(anObject(call(this.keys, this.set)));\n  },\n  includes: function (it) {\n    return call(this.has, this.set, it);\n  }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n  anObject(obj);\n  var numSize = +obj.size;\n  // NOTE: If size is undefined, then numSize will be NaN\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n  var intSize = toIntegerOrInfinity(numSize);\n  if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n  return new SetRecord(obj, intSize);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/get-set-record.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/get-substitution.js":
/*!************************************************************!*\
  !*** ./node_modules/core-js/internals/get-substitution.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n  var tailPos = position + matched.length;\n  var m = captures.length;\n  var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n  if (namedCaptures !== undefined) {\n    namedCaptures = toObject(namedCaptures);\n    symbols = SUBSTITUTION_SYMBOLS;\n  }\n  return replace(replacement, symbols, function (match, ch) {\n    var capture;\n    switch (charAt(ch, 0)) {\n      case '$': return '$';\n      case '&': return matched;\n      case '`': return stringSlice(str, 0, position);\n      case \"'\": return stringSlice(str, tailPos);\n      case '<':\n        capture = namedCaptures[stringSlice(ch, 1, -1)];\n        break;\n      default: // \\d\\d?\n        var n = +ch;\n        if (n === 0) return match;\n        if (n > m) {\n          var f = floor(n / 10);\n          if (f === 0) return match;\n          if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n          return match;\n        }\n        capture = captures[n - 1];\n    }\n    return capture === undefined ? '' : capture;\n  });\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/get-substitution.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/global-this.js":
/*!*******************************************************!*\
  !*** ./node_modules/core-js/internals/global-this.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(global) {\nvar check = function (it) {\n  return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line es/no-global-this -- safe\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  // eslint-disable-next-line no-restricted-globals -- safe\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  check(typeof this == 'object' && this) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || Function('return this')();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/global-this.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/has-own-property.js":
/*!************************************************************!*\
  !*** ./node_modules/core-js/internals/has-own-property.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n  return hasOwnProperty(toObject(it), key);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/has-own-property.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/hidden-keys.js":
/*!*******************************************************!*\
  !*** ./node_modules/core-js/internals/hidden-keys.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nmodule.exports = {};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/hidden-keys.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/html.js":
/*!************************************************!*\
  !*** ./node_modules/core-js/internals/html.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/html.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/ie8-dom-define.js":
/*!**********************************************************!*\
  !*** ./node_modules/core-js/internals/ie8-dom-define.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar createElement = __webpack_require__(/*! ../internals/document-create-element */ \"./node_modules/core-js/internals/document-create-element.js\");\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a !== 7;\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/ie8-dom-define.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/indexed-object.js":
/*!**********************************************************!*\
  !*** ./node_modules/core-js/internals/indexed-object.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar classof = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/indexed-object.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/inherit-if-required.js":
/*!***************************************************************!*\
  !*** ./node_modules/core-js/internals/inherit-if-required.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ \"./node_modules/core-js/internals/object-set-prototype-of.js\");\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    isCallable(NewTarget = dummy.constructor) &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/inherit-if-required.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/inspect-source.js":
/*!**********************************************************!*\
  !*** ./node_modules/core-js/internals/inspect-source.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\nvar store = __webpack_require__(/*! ../internals/shared-store */ \"./node_modules/core-js/internals/shared-store.js\");\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n  store.inspectSource = function (it) {\n    return functionToString(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/inspect-source.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/install-error-cause.js":
/*!***************************************************************!*\
  !*** ./node_modules/core-js/internals/install-error-cause.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n  if (isObject(options) && 'cause' in options) {\n    createNonEnumerableProperty(O, 'cause', options.cause);\n  }\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/install-error-cause.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/internal-state.js":
/*!**********************************************************!*\
  !*** ./node_modules/core-js/internals/internal-state.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/weak-map-basic-detection */ \"./node_modules/core-js/internals/weak-map-basic-detection.js\");\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar hasOwn = __webpack_require__(/*! ../internals/has-own-property */ \"./node_modules/core-js/internals/has-own-property.js\");\nvar shared = __webpack_require__(/*! ../internals/shared-store */ \"./node_modules/core-js/internals/shared-store.js\");\nvar sharedKey = __webpack_require__(/*! ../internals/shared-key */ \"./node_modules/core-js/internals/shared-key.js\");\nvar hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ \"./node_modules/core-js/internals/hidden-keys.js\");\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n  var store = shared.state || (shared.state = new WeakMap());\n  /* eslint-disable no-self-assign -- prototype methods protection */\n  store.get = store.get;\n  store.has = store.has;\n  store.set = store.set;\n  /* eslint-enable no-self-assign -- prototype methods protection */\n  set = function (it, metadata) {\n    if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    store.set(it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return store.get(it) || {};\n  };\n  has = function (it) {\n    return store.has(it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return hasOwn(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return hasOwn(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/internal-state.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/is-array-iterator-method.js":
/*!********************************************************************!*\
  !*** ./node_modules/core-js/internals/is-array-iterator-method.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar Iterators = __webpack_require__(/*! ../internals/iterators */ \"./node_modules/core-js/internals/iterators.js\");\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/is-array-iterator-method.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/is-array.js":
/*!****************************************************!*\
  !*** ./node_modules/core-js/internals/is-array.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar classof = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n  return classof(argument) === 'Array';\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/is-array.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/is-callable.js":
/*!*******************************************************!*\
  !*** ./node_modules/core-js/internals/is-callable.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n  return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n  return typeof argument == 'function';\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/is-callable.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/is-forced.js":
/*!*****************************************************!*\
  !*** ./node_modules/core-js/internals/is-forced.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value === POLYFILL ? true\n    : value === NATIVE ? false\n    : isCallable(detection) ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/is-forced.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/is-null-or-undefined.js":
/*!****************************************************************!*\
  !*** ./node_modules/core-js/internals/is-null-or-undefined.js ***!
  \****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n  return it === null || it === undefined;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/is-null-or-undefined.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/is-object.js":
/*!*****************************************************!*\
  !*** ./node_modules/core-js/internals/is-object.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\n\nmodule.exports = function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/is-object.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/is-possible-prototype.js":
/*!*****************************************************************!*\
  !*** ./node_modules/core-js/internals/is-possible-prototype.js ***!
  \*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\n\nmodule.exports = function (argument) {\n  return isObject(argument) || argument === null;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/is-possible-prototype.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/is-pure.js":
/*!***************************************************!*\
  !*** ./node_modules/core-js/internals/is-pure.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nmodule.exports = false;\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/is-pure.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/is-regexp.js":
/*!*****************************************************!*\
  !*** ./node_modules/core-js/internals/is-regexp.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar classof = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/is-regexp.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/is-symbol.js":
/*!*****************************************************!*\
  !*** ./node_modules/core-js/internals/is-symbol.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\nvar isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ \"./node_modules/core-js/internals/object-is-prototype-of.js\");\nvar USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ \"./node_modules/core-js/internals/use-symbol-as-uid.js\");\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  var $Symbol = getBuiltIn('Symbol');\n  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/is-symbol.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/iterate-simple.js":
/*!**********************************************************!*\
  !*** ./node_modules/core-js/internals/iterate-simple.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar call = __webpack_require__(/*! ../internals/function-call */ \"./node_modules/core-js/internals/function-call.js\");\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n  var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n  var next = record.next;\n  var step, result;\n  while (!(step = call(next, iterator)).done) {\n    result = fn(step.value);\n    if (result !== undefined) return result;\n  }\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/iterate-simple.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/iterate.js":
/*!***************************************************!*\
  !*** ./node_modules/core-js/internals/iterate.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar bind = __webpack_require__(/*! ../internals/function-bind-context */ \"./node_modules/core-js/internals/function-bind-context.js\");\nvar call = __webpack_require__(/*! ../internals/function-call */ \"./node_modules/core-js/internals/function-call.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar tryToString = __webpack_require__(/*! ../internals/try-to-string */ \"./node_modules/core-js/internals/try-to-string.js\");\nvar isArrayIteratorMethod = __webpack_require__(/*! ../internals/is-array-iterator-method */ \"./node_modules/core-js/internals/is-array-iterator-method.js\");\nvar lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ \"./node_modules/core-js/internals/length-of-array-like.js\");\nvar isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ \"./node_modules/core-js/internals/object-is-prototype-of.js\");\nvar getIterator = __webpack_require__(/*! ../internals/get-iterator */ \"./node_modules/core-js/internals/get-iterator.js\");\nvar getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ \"./node_modules/core-js/internals/get-iterator-method.js\");\nvar iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ \"./node_modules/core-js/internals/iterator-close.js\");\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n  this.stopped = stopped;\n  this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n  var that = options && options.that;\n  var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n  var IS_RECORD = !!(options && options.IS_RECORD);\n  var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n  var INTERRUPTED = !!(options && options.INTERRUPTED);\n  var fn = bind(unboundFunction, that);\n  var iterator, iterFn, index, length, result, next, step;\n\n  var stop = function (condition) {\n    if (iterator) iteratorClose(iterator, 'normal', condition);\n    return new Result(true, condition);\n  };\n\n  var callFn = function (value) {\n    if (AS_ENTRIES) {\n      anObject(value);\n      return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n    } return INTERRUPTED ? fn(value, stop) : fn(value);\n  };\n\n  if (IS_RECORD) {\n    iterator = iterable.iterator;\n  } else if (IS_ITERATOR) {\n    iterator = iterable;\n  } else {\n    iterFn = getIteratorMethod(iterable);\n    if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n    // optimisation for array iterators\n    if (isArrayIteratorMethod(iterFn)) {\n      for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n        result = callFn(iterable[index]);\n        if (result && isPrototypeOf(ResultPrototype, result)) return result;\n      } return new Result(false);\n    }\n    iterator = getIterator(iterable, iterFn);\n  }\n\n  next = IS_RECORD ? iterable.next : iterator.next;\n  while (!(step = call(next, iterator)).done) {\n    try {\n      result = callFn(step.value);\n    } catch (error) {\n      iteratorClose(iterator, 'throw', error);\n    }\n    if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n  } return new Result(false);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/iterate.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/iterator-close.js":
/*!**********************************************************!*\
  !*** ./node_modules/core-js/internals/iterator-close.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar call = __webpack_require__(/*! ../internals/function-call */ \"./node_modules/core-js/internals/function-call.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar getMethod = __webpack_require__(/*! ../internals/get-method */ \"./node_modules/core-js/internals/get-method.js\");\n\nmodule.exports = function (iterator, kind, value) {\n  var innerResult, innerError;\n  anObject(iterator);\n  try {\n    innerResult = getMethod(iterator, 'return');\n    if (!innerResult) {\n      if (kind === 'throw') throw value;\n      return value;\n    }\n    innerResult = call(innerResult, iterator);\n  } catch (error) {\n    innerError = true;\n    innerResult = error;\n  }\n  if (kind === 'throw') throw value;\n  if (innerError) throw innerResult;\n  anObject(innerResult);\n  return value;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/iterator-close.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/iterators.js":
/*!*****************************************************!*\
  !*** ./node_modules/core-js/internals/iterators.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nmodule.exports = {};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/iterators.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/length-of-array-like.js":
/*!****************************************************************!*\
  !*** ./node_modules/core-js/internals/length-of-array-like.js ***!
  \****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar toLength = __webpack_require__(/*! ../internals/to-length */ \"./node_modules/core-js/internals/to-length.js\");\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n  return toLength(obj.length);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/length-of-array-like.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/make-built-in.js":
/*!*********************************************************!*\
  !*** ./node_modules/core-js/internals/make-built-in.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\nvar hasOwn = __webpack_require__(/*! ../internals/has-own-property */ \"./node_modules/core-js/internals/has-own-property.js\");\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar CONFIGURABLE_FUNCTION_NAME = __webpack_require__(/*! ../internals/function-name */ \"./node_modules/core-js/internals/function-name.js\").CONFIGURABLE;\nvar inspectSource = __webpack_require__(/*! ../internals/inspect-source */ \"./node_modules/core-js/internals/inspect-source.js\");\nvar InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ \"./node_modules/core-js/internals/internal-state.js\");\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n  return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n  if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n    name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n  }\n  if (options && options.getter) name = 'get ' + name;\n  if (options && options.setter) name = 'set ' + name;\n  if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n    if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n    else value.name = name;\n  }\n  if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n    defineProperty(value, 'length', { value: options.arity });\n  }\n  try {\n    if (options && hasOwn(options, 'constructor') && options.constructor) {\n      if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n    // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n    } else if (value.prototype) value.prototype = undefined;\n  } catch (error) { /* empty */ }\n  var state = enforceInternalState(value);\n  if (!hasOwn(state, 'source')) {\n    state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n  } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n  return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/make-built-in.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/math-trunc.js":
/*!******************************************************!*\
  !*** ./node_modules/core-js/internals/math-trunc.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n  var n = +x;\n  return (n > 0 ? floor : ceil)(n);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/math-trunc.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/normalize-string-argument.js":
/*!*********************************************************************!*\
  !*** ./node_modules/core-js/internals/normalize-string-argument.js ***!
  \*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\n\nmodule.exports = function (argument, $default) {\n  return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/normalize-string-argument.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/object-create.js":
/*!*********************************************************!*\
  !*** ./node_modules/core-js/internals/object-create.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar definePropertiesModule = __webpack_require__(/*! ../internals/object-define-properties */ \"./node_modules/core-js/internals/object-define-properties.js\");\nvar enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ \"./node_modules/core-js/internals/enum-bug-keys.js\");\nvar hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ \"./node_modules/core-js/internals/hidden-keys.js\");\nvar html = __webpack_require__(/*! ../internals/html */ \"./node_modules/core-js/internals/html.js\");\nvar documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ \"./node_modules/core-js/internals/document-create-element.js\");\nvar sharedKey = __webpack_require__(/*! ../internals/shared-key */ \"./node_modules/core-js/internals/shared-key.js\");\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n  activeXDocument = null;\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    activeXDocument = new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = typeof document != 'undefined'\n    ? document.domain && activeXDocument\n      ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n      : NullProtoObjectViaIFrame()\n    : NullProtoObjectViaActiveX(activeXDocument); // WSH\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/object-create.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/object-define-properties.js":
/*!********************************************************************!*\
  !*** ./node_modules/core-js/internals/object-define-properties.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(/*! ../internals/v8-prototype-define-bug */ \"./node_modules/core-js/internals/v8-prototype-define-bug.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar objectKeys = __webpack_require__(/*! ../internals/object-keys */ \"./node_modules/core-js/internals/object-keys.js\");\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var props = toIndexedObject(Properties);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n  return O;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/object-define-properties.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/object-define-property.js":
/*!******************************************************************!*\
  !*** ./node_modules/core-js/internals/object-define-property.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ \"./node_modules/core-js/internals/ie8-dom-define.js\");\nvar V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(/*! ../internals/v8-prototype-define-bug */ \"./node_modules/core-js/internals/v8-prototype-define-bug.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ \"./node_modules/core-js/internals/to-property-key.js\");\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n    var current = $getOwnPropertyDescriptor(O, P);\n    if (current && current[WRITABLE]) {\n      O[P] = Attributes.value;\n      Attributes = {\n        configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n        enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n        writable: false\n      };\n    }\n  } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return $defineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/object-define-property.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/object-get-own-property-descriptor.js":
/*!******************************************************************************!*\
  !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***!
  \******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar call = __webpack_require__(/*! ../internals/function-call */ \"./node_modules/core-js/internals/function-call.js\");\nvar propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ \"./node_modules/core-js/internals/object-property-is-enumerable.js\");\nvar createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ \"./node_modules/core-js/internals/create-property-descriptor.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ \"./node_modules/core-js/internals/to-property-key.js\");\nvar hasOwn = __webpack_require__(/*! ../internals/has-own-property */ \"./node_modules/core-js/internals/has-own-property.js\");\nvar IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ \"./node_modules/core-js/internals/ie8-dom-define.js\");\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPropertyKey(P);\n  if (IE8_DOM_DEFINE) try {\n    return $getOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/object-get-own-property-names.js":
/*!*************************************************************************!*\
  !*** ./node_modules/core-js/internals/object-get-own-property-names.js ***!
  \*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ \"./node_modules/core-js/internals/object-keys-internal.js\");\nvar enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ \"./node_modules/core-js/internals/enum-bug-keys.js\");\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/object-get-own-property-names.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/object-get-own-property-symbols.js":
/*!***************************************************************************!*\
  !*** ./node_modules/core-js/internals/object-get-own-property-symbols.js ***!
  \***************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/object-is-prototype-of.js":
/*!******************************************************************!*\
  !*** ./node_modules/core-js/internals/object-is-prototype-of.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/object-is-prototype-of.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/object-keys-internal.js":
/*!****************************************************************!*\
  !*** ./node_modules/core-js/internals/object-keys-internal.js ***!
  \****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar hasOwn = __webpack_require__(/*! ../internals/has-own-property */ \"./node_modules/core-js/internals/has-own-property.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar indexOf = __webpack_require__(/*! ../internals/array-includes */ \"./node_modules/core-js/internals/array-includes.js\").indexOf;\nvar hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ \"./node_modules/core-js/internals/hidden-keys.js\");\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (hasOwn(O, key = names[i++])) {\n    ~indexOf(result, key) || push(result, key);\n  }\n  return result;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/object-keys-internal.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/object-keys.js":
/*!*******************************************************!*\
  !*** ./node_modules/core-js/internals/object-keys.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ \"./node_modules/core-js/internals/object-keys-internal.js\");\nvar enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ \"./node_modules/core-js/internals/enum-bug-keys.js\");\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/object-keys.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/object-property-is-enumerable.js":
/*!*************************************************************************!*\
  !*** ./node_modules/core-js/internals/object-property-is-enumerable.js ***!
  \*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/object-set-prototype-of.js":
/*!*******************************************************************!*\
  !*** ./node_modules/core-js/internals/object-set-prototype-of.js ***!
  \*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = __webpack_require__(/*! ../internals/function-uncurry-this-accessor */ \"./node_modules/core-js/internals/function-uncurry-this-accessor.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");\nvar aPossiblePrototype = __webpack_require__(/*! ../internals/a-possible-prototype */ \"./node_modules/core-js/internals/a-possible-prototype.js\");\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n    setter(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    requireObjectCoercible(O);\n    aPossiblePrototype(proto);\n    if (!isObject(O)) return O;\n    if (CORRECT_SETTER) setter(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/object-set-prototype-of.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/ordinary-to-primitive.js":
/*!*****************************************************************!*\
  !*** ./node_modules/core-js/internals/ordinary-to-primitive.js ***!
  \*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar call = __webpack_require__(/*! ../internals/function-call */ \"./node_modules/core-js/internals/function-call.js\");\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n  var fn, val;\n  if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n  if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  throw new $TypeError(\"Can't convert object to primitive value\");\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/ordinary-to-primitive.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/own-keys.js":
/*!****************************************************!*\
  !*** ./node_modules/core-js/internals/own-keys.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ \"./node_modules/core-js/internals/object-get-own-property-names.js\");\nvar getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ \"./node_modules/core-js/internals/object-get-own-property-symbols.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/own-keys.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/proxy-accessor.js":
/*!**********************************************************!*\
  !*** ./node_modules/core-js/internals/proxy-accessor.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar defineProperty = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\").f;\n\nmodule.exports = function (Target, Source, key) {\n  key in Target || defineProperty(Target, key, {\n    configurable: true,\n    get: function () { return Source[key]; },\n    set: function (it) { Source[key] = it; }\n  });\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/proxy-accessor.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/regexp-flags.js":
/*!********************************************************!*\
  !*** ./node_modules/core-js/internals/regexp-flags.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.hasIndices) result += 'd';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.dotAll) result += 's';\n  if (that.unicode) result += 'u';\n  if (that.unicodeSets) result += 'v';\n  if (that.sticky) result += 'y';\n  return result;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/regexp-flags.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/regexp-get-flags.js":
/*!************************************************************!*\
  !*** ./node_modules/core-js/internals/regexp-get-flags.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar call = __webpack_require__(/*! ../internals/function-call */ \"./node_modules/core-js/internals/function-call.js\");\nvar hasOwn = __webpack_require__(/*! ../internals/has-own-property */ \"./node_modules/core-js/internals/has-own-property.js\");\nvar isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ \"./node_modules/core-js/internals/object-is-prototype-of.js\");\nvar regExpFlags = __webpack_require__(/*! ../internals/regexp-flags */ \"./node_modules/core-js/internals/regexp-flags.js\");\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n  var flags = R.flags;\n  return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n    ? call(regExpFlags, R) : flags;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/regexp-get-flags.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/require-object-coercible.js":
/*!********************************************************************!*\
  !*** ./node_modules/core-js/internals/require-object-coercible.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar isNullOrUndefined = __webpack_require__(/*! ../internals/is-null-or-undefined */ \"./node_modules/core-js/internals/is-null-or-undefined.js\");\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n  return it;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/require-object-coercible.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/schedulers-fix.js":
/*!**********************************************************!*\
  !*** ./node_modules/core-js/internals/schedulers-fix.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar apply = __webpack_require__(/*! ../internals/function-apply */ \"./node_modules/core-js/internals/function-apply.js\");\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\nvar ENVIRONMENT = __webpack_require__(/*! ../internals/environment */ \"./node_modules/core-js/internals/environment.js\");\nvar USER_AGENT = __webpack_require__(/*! ../internals/environment-user-agent */ \"./node_modules/core-js/internals/environment-user-agent.js\");\nvar arraySlice = __webpack_require__(/*! ../internals/array-slice */ \"./node_modules/core-js/internals/array-slice.js\");\nvar validateArgumentsLength = __webpack_require__(/*! ../internals/validate-arguments-length */ \"./node_modules/core-js/internals/validate-arguments-length.js\");\n\nvar Function = globalThis.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENVIRONMENT === 'BUN' && (function () {\n  var version = globalThis.Bun.version.split('.');\n  return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');\n})();\n\n// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n// https://github.com/oven-sh/bun/issues/1633\nmodule.exports = function (scheduler, hasTimeArg) {\n  var firstParamIndex = hasTimeArg ? 2 : 1;\n  return WRAP ? function (handler, timeout /* , ...arguments */) {\n    var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;\n    var fn = isCallable(handler) ? handler : Function(handler);\n    var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];\n    var callback = boundArgs ? function () {\n      apply(fn, this, params);\n    } : fn;\n    return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);\n  } : scheduler;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/schedulers-fix.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/set-clone.js":
/*!*****************************************************!*\
  !*** ./node_modules/core-js/internals/set-clone.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar SetHelpers = __webpack_require__(/*! ../internals/set-helpers */ \"./node_modules/core-js/internals/set-helpers.js\");\nvar iterate = __webpack_require__(/*! ../internals/set-iterate */ \"./node_modules/core-js/internals/set-iterate.js\");\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n  var result = new Set();\n  iterate(set, function (it) {\n    add(result, it);\n  });\n  return result;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/set-clone.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/set-difference.js":
/*!**********************************************************!*\
  !*** ./node_modules/core-js/internals/set-difference.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar aSet = __webpack_require__(/*! ../internals/a-set */ \"./node_modules/core-js/internals/a-set.js\");\nvar SetHelpers = __webpack_require__(/*! ../internals/set-helpers */ \"./node_modules/core-js/internals/set-helpers.js\");\nvar clone = __webpack_require__(/*! ../internals/set-clone */ \"./node_modules/core-js/internals/set-clone.js\");\nvar size = __webpack_require__(/*! ../internals/set-size */ \"./node_modules/core-js/internals/set-size.js\");\nvar getSetRecord = __webpack_require__(/*! ../internals/get-set-record */ \"./node_modules/core-js/internals/get-set-record.js\");\nvar iterateSet = __webpack_require__(/*! ../internals/set-iterate */ \"./node_modules/core-js/internals/set-iterate.js\");\nvar iterateSimple = __webpack_require__(/*! ../internals/iterate-simple */ \"./node_modules/core-js/internals/iterate-simple.js\");\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function difference(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  var result = clone(O);\n  if (size(O) <= otherRec.size) iterateSet(O, function (e) {\n    if (otherRec.includes(e)) remove(result, e);\n  });\n  else iterateSimple(otherRec.getIterator(), function (e) {\n    if (has(O, e)) remove(result, e);\n  });\n  return result;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/set-difference.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/set-helpers.js":
/*!*******************************************************!*\
  !*** ./node_modules/core-js/internals/set-helpers.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n  // eslint-disable-next-line es/no-set -- safe\n  Set: Set,\n  add: uncurryThis(SetPrototype.add),\n  has: uncurryThis(SetPrototype.has),\n  remove: uncurryThis(SetPrototype['delete']),\n  proto: SetPrototype\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/set-helpers.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/set-intersection.js":
/*!************************************************************!*\
  !*** ./node_modules/core-js/internals/set-intersection.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar aSet = __webpack_require__(/*! ../internals/a-set */ \"./node_modules/core-js/internals/a-set.js\");\nvar SetHelpers = __webpack_require__(/*! ../internals/set-helpers */ \"./node_modules/core-js/internals/set-helpers.js\");\nvar size = __webpack_require__(/*! ../internals/set-size */ \"./node_modules/core-js/internals/set-size.js\");\nvar getSetRecord = __webpack_require__(/*! ../internals/get-set-record */ \"./node_modules/core-js/internals/get-set-record.js\");\nvar iterateSet = __webpack_require__(/*! ../internals/set-iterate */ \"./node_modules/core-js/internals/set-iterate.js\");\nvar iterateSimple = __webpack_require__(/*! ../internals/iterate-simple */ \"./node_modules/core-js/internals/iterate-simple.js\");\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function intersection(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  var result = new Set();\n\n  if (size(O) > otherRec.size) {\n    iterateSimple(otherRec.getIterator(), function (e) {\n      if (has(O, e)) add(result, e);\n    });\n  } else {\n    iterateSet(O, function (e) {\n      if (otherRec.includes(e)) add(result, e);\n    });\n  }\n\n  return result;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/set-intersection.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/set-is-disjoint-from.js":
/*!****************************************************************!*\
  !*** ./node_modules/core-js/internals/set-is-disjoint-from.js ***!
  \****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar aSet = __webpack_require__(/*! ../internals/a-set */ \"./node_modules/core-js/internals/a-set.js\");\nvar has = __webpack_require__(/*! ../internals/set-helpers */ \"./node_modules/core-js/internals/set-helpers.js\").has;\nvar size = __webpack_require__(/*! ../internals/set-size */ \"./node_modules/core-js/internals/set-size.js\");\nvar getSetRecord = __webpack_require__(/*! ../internals/get-set-record */ \"./node_modules/core-js/internals/get-set-record.js\");\nvar iterateSet = __webpack_require__(/*! ../internals/set-iterate */ \"./node_modules/core-js/internals/set-iterate.js\");\nvar iterateSimple = __webpack_require__(/*! ../internals/iterate-simple */ \"./node_modules/core-js/internals/iterate-simple.js\");\nvar iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ \"./node_modules/core-js/internals/iterator-close.js\");\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom\nmodule.exports = function isDisjointFrom(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n    if (otherRec.includes(e)) return false;\n  }, true) !== false;\n  var iterator = otherRec.getIterator();\n  return iterateSimple(iterator, function (e) {\n    if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n  }) !== false;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/set-is-disjoint-from.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/set-is-subset-of.js":
/*!************************************************************!*\
  !*** ./node_modules/core-js/internals/set-is-subset-of.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar aSet = __webpack_require__(/*! ../internals/a-set */ \"./node_modules/core-js/internals/a-set.js\");\nvar size = __webpack_require__(/*! ../internals/set-size */ \"./node_modules/core-js/internals/set-size.js\");\nvar iterate = __webpack_require__(/*! ../internals/set-iterate */ \"./node_modules/core-js/internals/set-iterate.js\");\nvar getSetRecord = __webpack_require__(/*! ../internals/get-set-record */ \"./node_modules/core-js/internals/get-set-record.js\");\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf\nmodule.exports = function isSubsetOf(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) > otherRec.size) return false;\n  return iterate(O, function (e) {\n    if (!otherRec.includes(e)) return false;\n  }, true) !== false;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/set-is-subset-of.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/set-is-superset-of.js":
/*!**************************************************************!*\
  !*** ./node_modules/core-js/internals/set-is-superset-of.js ***!
  \**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar aSet = __webpack_require__(/*! ../internals/a-set */ \"./node_modules/core-js/internals/a-set.js\");\nvar has = __webpack_require__(/*! ../internals/set-helpers */ \"./node_modules/core-js/internals/set-helpers.js\").has;\nvar size = __webpack_require__(/*! ../internals/set-size */ \"./node_modules/core-js/internals/set-size.js\");\nvar getSetRecord = __webpack_require__(/*! ../internals/get-set-record */ \"./node_modules/core-js/internals/get-set-record.js\");\nvar iterateSimple = __webpack_require__(/*! ../internals/iterate-simple */ \"./node_modules/core-js/internals/iterate-simple.js\");\nvar iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ \"./node_modules/core-js/internals/iterator-close.js\");\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf\nmodule.exports = function isSupersetOf(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) < otherRec.size) return false;\n  var iterator = otherRec.getIterator();\n  return iterateSimple(iterator, function (e) {\n    if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n  }) !== false;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/set-is-superset-of.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/set-iterate.js":
/*!*******************************************************!*\
  !*** ./node_modules/core-js/internals/set-iterate.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar iterateSimple = __webpack_require__(/*! ../internals/iterate-simple */ \"./node_modules/core-js/internals/iterate-simple.js\");\nvar SetHelpers = __webpack_require__(/*! ../internals/set-helpers */ \"./node_modules/core-js/internals/set-helpers.js\");\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n  return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/set-iterate.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/set-method-accept-set-like.js":
/*!**********************************************************************!*\
  !*** ./node_modules/core-js/internals/set-method-accept-set-like.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\n\nvar createSetLike = function (size) {\n  return {\n    size: size,\n    has: function () {\n      return false;\n    },\n    keys: function () {\n      return {\n        next: function () {\n          return { done: true };\n        }\n      };\n    }\n  };\n};\n\nmodule.exports = function (name) {\n  var Set = getBuiltIn('Set');\n  try {\n    new Set()[name](createSetLike(0));\n    try {\n      // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it\n      // https://github.com/tc39/proposal-set-methods/pull/88\n      new Set()[name](createSetLike(-1));\n      return false;\n    } catch (error2) {\n      return true;\n    }\n  } catch (error) {\n    return false;\n  }\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/set-method-accept-set-like.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/set-size.js":
/*!****************************************************!*\
  !*** ./node_modules/core-js/internals/set-size.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThisAccessor = __webpack_require__(/*! ../internals/function-uncurry-this-accessor */ \"./node_modules/core-js/internals/function-uncurry-this-accessor.js\");\nvar SetHelpers = __webpack_require__(/*! ../internals/set-helpers */ \"./node_modules/core-js/internals/set-helpers.js\");\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n  return set.size;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/set-size.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/set-symmetric-difference.js":
/*!********************************************************************!*\
  !*** ./node_modules/core-js/internals/set-symmetric-difference.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar aSet = __webpack_require__(/*! ../internals/a-set */ \"./node_modules/core-js/internals/a-set.js\");\nvar SetHelpers = __webpack_require__(/*! ../internals/set-helpers */ \"./node_modules/core-js/internals/set-helpers.js\");\nvar clone = __webpack_require__(/*! ../internals/set-clone */ \"./node_modules/core-js/internals/set-clone.js\");\nvar getSetRecord = __webpack_require__(/*! ../internals/get-set-record */ \"./node_modules/core-js/internals/get-set-record.js\");\nvar iterateSimple = __webpack_require__(/*! ../internals/iterate-simple */ \"./node_modules/core-js/internals/iterate-simple.js\");\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function symmetricDifference(other) {\n  var O = aSet(this);\n  var keysIter = getSetRecord(other).getIterator();\n  var result = clone(O);\n  iterateSimple(keysIter, function (e) {\n    if (has(O, e)) remove(result, e);\n    else add(result, e);\n  });\n  return result;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/set-symmetric-difference.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/set-union.js":
/*!*****************************************************!*\
  !*** ./node_modules/core-js/internals/set-union.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar aSet = __webpack_require__(/*! ../internals/a-set */ \"./node_modules/core-js/internals/a-set.js\");\nvar add = __webpack_require__(/*! ../internals/set-helpers */ \"./node_modules/core-js/internals/set-helpers.js\").add;\nvar clone = __webpack_require__(/*! ../internals/set-clone */ \"./node_modules/core-js/internals/set-clone.js\");\nvar getSetRecord = __webpack_require__(/*! ../internals/get-set-record */ \"./node_modules/core-js/internals/get-set-record.js\");\nvar iterateSimple = __webpack_require__(/*! ../internals/iterate-simple */ \"./node_modules/core-js/internals/iterate-simple.js\");\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function union(other) {\n  var O = aSet(this);\n  var keysIter = getSetRecord(other).getIterator();\n  var result = clone(O);\n  iterateSimple(keysIter, function (it) {\n    add(result, it);\n  });\n  return result;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/set-union.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/shared-key.js":
/*!******************************************************!*\
  !*** ./node_modules/core-js/internals/shared-key.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar shared = __webpack_require__(/*! ../internals/shared */ \"./node_modules/core-js/internals/shared.js\");\nvar uid = __webpack_require__(/*! ../internals/uid */ \"./node_modules/core-js/internals/uid.js\");\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/shared-key.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/shared-store.js":
/*!********************************************************!*\
  !*** ./node_modules/core-js/internals/shared-store.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar IS_PURE = __webpack_require__(/*! ../internals/is-pure */ \"./node_modules/core-js/internals/is-pure.js\");\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar defineGlobalProperty = __webpack_require__(/*! ../internals/define-global-property */ \"./node_modules/core-js/internals/define-global-property.js\");\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n  version: '3.38.1',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n  license: 'https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE',\n  source: 'https://github.com/zloirock/core-js'\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/shared-store.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/shared.js":
/*!**************************************************!*\
  !*** ./node_modules/core-js/internals/shared.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar store = __webpack_require__(/*! ../internals/shared-store */ \"./node_modules/core-js/internals/shared-store.js\");\n\nmodule.exports = function (key, value) {\n  return store[key] || (store[key] = value || {});\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/shared.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/structured-clone-proper-transfer.js":
/*!****************************************************************************!*\
  !*** ./node_modules/core-js/internals/structured-clone-proper-transfer.js ***!
  \****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar V8 = __webpack_require__(/*! ../internals/environment-v8-version */ \"./node_modules/core-js/internals/environment-v8-version.js\");\nvar ENVIRONMENT = __webpack_require__(/*! ../internals/environment */ \"./node_modules/core-js/internals/environment.js\");\n\nvar structuredClone = globalThis.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n  // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n  if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false;\n  var buffer = new ArrayBuffer(8);\n  var clone = structuredClone(buffer, { transfer: [buffer] });\n  return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/structured-clone-proper-transfer.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/symbol-constructor-detection.js":
/*!************************************************************************!*\
  !*** ./node_modules/core-js/internals/symbol-constructor-detection.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = __webpack_require__(/*! ../internals/environment-v8-version */ \"./node_modules/core-js/internals/environment-v8-version.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  var symbol = Symbol('symbol detection');\n  // Chrome 38 Symbol has incorrect toString conversion\n  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n  // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n  // of course, fail.\n  return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n    !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/symbol-constructor-detection.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/task.js":
/*!************************************************!*\
  !*** ./node_modules/core-js/internals/task.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar apply = __webpack_require__(/*! ../internals/function-apply */ \"./node_modules/core-js/internals/function-apply.js\");\nvar bind = __webpack_require__(/*! ../internals/function-bind-context */ \"./node_modules/core-js/internals/function-bind-context.js\");\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\nvar hasOwn = __webpack_require__(/*! ../internals/has-own-property */ \"./node_modules/core-js/internals/has-own-property.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar html = __webpack_require__(/*! ../internals/html */ \"./node_modules/core-js/internals/html.js\");\nvar arraySlice = __webpack_require__(/*! ../internals/array-slice */ \"./node_modules/core-js/internals/array-slice.js\");\nvar createElement = __webpack_require__(/*! ../internals/document-create-element */ \"./node_modules/core-js/internals/document-create-element.js\");\nvar validateArgumentsLength = __webpack_require__(/*! ../internals/validate-arguments-length */ \"./node_modules/core-js/internals/validate-arguments-length.js\");\nvar IS_IOS = __webpack_require__(/*! ../internals/environment-is-ios */ \"./node_modules/core-js/internals/environment-is-ios.js\");\nvar IS_NODE = __webpack_require__(/*! ../internals/environment-is-node */ \"./node_modules/core-js/internals/environment-is-node.js\");\n\nvar set = globalThis.setImmediate;\nvar clear = globalThis.clearImmediate;\nvar process = globalThis.process;\nvar Dispatch = globalThis.Dispatch;\nvar Function = globalThis.Function;\nvar MessageChannel = globalThis.MessageChannel;\nvar String = globalThis.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n  // Deno throws a ReferenceError on `location` access without `--location` flag\n  $location = globalThis.location;\n});\n\nvar run = function (id) {\n  if (hasOwn(queue, id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\n\nvar runner = function (id) {\n  return function () {\n    run(id);\n  };\n};\n\nvar eventListener = function (event) {\n  run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n  // old engines have not location.origin\n  globalThis.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n  set = function setImmediate(handler) {\n    validateArgumentsLength(arguments.length, 1);\n    var fn = isCallable(handler) ? handler : Function(handler);\n    var args = arraySlice(arguments, 1);\n    queue[++counter] = function () {\n      apply(fn, undefined, args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clear = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (IS_NODE) {\n    defer = function (id) {\n      process.nextTick(runner(id));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(runner(id));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  // except iOS - https://github.com/zloirock/core-js/issues/624\n  } else if (MessageChannel && !IS_IOS) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = eventListener;\n    defer = bind(port.postMessage, port);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (\n    globalThis.addEventListener &&\n    isCallable(globalThis.postMessage) &&\n    !globalThis.importScripts &&\n    $location && $location.protocol !== 'file:' &&\n    !fails(globalPostMessageDefer)\n  ) {\n    defer = globalPostMessageDefer;\n    globalThis.addEventListener('message', eventListener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in createElement('script')) {\n    defer = function (id) {\n      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(runner(id), 0);\n    };\n  }\n}\n\nmodule.exports = {\n  set: set,\n  clear: clear\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/task.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/to-absolute-index.js":
/*!*************************************************************!*\
  !*** ./node_modules/core-js/internals/to-absolute-index.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ \"./node_modules/core-js/internals/to-integer-or-infinity.js\");\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toIntegerOrInfinity(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/to-absolute-index.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/to-index.js":
/*!****************************************************!*\
  !*** ./node_modules/core-js/internals/to-index.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ \"./node_modules/core-js/internals/to-integer-or-infinity.js\");\nvar toLength = __webpack_require__(/*! ../internals/to-length */ \"./node_modules/core-js/internals/to-length.js\");\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n  if (it === undefined) return 0;\n  var number = toIntegerOrInfinity(it);\n  var length = toLength(number);\n  if (number !== length) throw new $RangeError('Wrong length or index');\n  return length;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/to-index.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/to-indexed-object.js":
/*!*************************************************************!*\
  !*** ./node_modules/core-js/internals/to-indexed-object.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ \"./node_modules/core-js/internals/indexed-object.js\");\nvar requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/to-indexed-object.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/to-integer-or-infinity.js":
/*!******************************************************************!*\
  !*** ./node_modules/core-js/internals/to-integer-or-infinity.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar trunc = __webpack_require__(/*! ../internals/math-trunc */ \"./node_modules/core-js/internals/math-trunc.js\");\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n  var number = +argument;\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return number !== number || number === 0 ? 0 : trunc(number);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/to-integer-or-infinity.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/to-length.js":
/*!*****************************************************!*\
  !*** ./node_modules/core-js/internals/to-length.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ \"./node_modules/core-js/internals/to-integer-or-infinity.js\");\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  var len = toIntegerOrInfinity(argument);\n  return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/to-length.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/to-object.js":
/*!*****************************************************!*\
  !*** ./node_modules/core-js/internals/to-object.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return $Object(requireObjectCoercible(argument));\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/to-object.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/to-primitive.js":
/*!********************************************************!*\
  !*** ./node_modules/core-js/internals/to-primitive.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar call = __webpack_require__(/*! ../internals/function-call */ \"./node_modules/core-js/internals/function-call.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar isSymbol = __webpack_require__(/*! ../internals/is-symbol */ \"./node_modules/core-js/internals/is-symbol.js\");\nvar getMethod = __webpack_require__(/*! ../internals/get-method */ \"./node_modules/core-js/internals/get-method.js\");\nvar ordinaryToPrimitive = __webpack_require__(/*! ../internals/ordinary-to-primitive */ \"./node_modules/core-js/internals/ordinary-to-primitive.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n  if (!isObject(input) || isSymbol(input)) return input;\n  var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n  var result;\n  if (exoticToPrim) {\n    if (pref === undefined) pref = 'default';\n    result = call(exoticToPrim, input, pref);\n    if (!isObject(result) || isSymbol(result)) return result;\n    throw new $TypeError(\"Can't convert object to primitive value\");\n  }\n  if (pref === undefined) pref = 'number';\n  return ordinaryToPrimitive(input, pref);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/to-primitive.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/to-property-key.js":
/*!***********************************************************!*\
  !*** ./node_modules/core-js/internals/to-property-key.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ \"./node_modules/core-js/internals/to-primitive.js\");\nvar isSymbol = __webpack_require__(/*! ../internals/is-symbol */ \"./node_modules/core-js/internals/is-symbol.js\");\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n  var key = toPrimitive(argument, 'string');\n  return isSymbol(key) ? key : key + '';\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/to-property-key.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/to-string-tag-support.js":
/*!*****************************************************************!*\
  !*** ./node_modules/core-js/internals/to-string-tag-support.js ***!
  \*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/to-string-tag-support.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/to-string.js":
/*!*****************************************************!*\
  !*** ./node_modules/core-js/internals/to-string.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar classof = __webpack_require__(/*! ../internals/classof */ \"./node_modules/core-js/internals/classof.js\");\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n  if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n  return $String(argument);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/to-string.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/try-to-string.js":
/*!*********************************************************!*\
  !*** ./node_modules/core-js/internals/try-to-string.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $String = String;\n\nmodule.exports = function (argument) {\n  try {\n    return $String(argument);\n  } catch (error) {\n    return 'Object';\n  }\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/try-to-string.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/uid.js":
/*!***********************************************!*\
  !*** ./node_modules/core-js/internals/uid.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/uid.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/use-symbol-as-uid.js":
/*!*************************************************************!*\
  !*** ./node_modules/core-js/internals/use-symbol-as-uid.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = __webpack_require__(/*! ../internals/symbol-constructor-detection */ \"./node_modules/core-js/internals/symbol-constructor-detection.js\");\n\nmodule.exports = NATIVE_SYMBOL\n  && !Symbol.sham\n  && typeof Symbol.iterator == 'symbol';\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/v8-prototype-define-bug.js":
/*!*******************************************************************!*\
  !*** ./node_modules/core-js/internals/v8-prototype-define-bug.js ***!
  \*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n    value: 42,\n    writable: false\n  }).prototype !== 42;\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/v8-prototype-define-bug.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/validate-arguments-length.js":
/*!*********************************************************************!*\
  !*** ./node_modules/core-js/internals/validate-arguments-length.js ***!
  \*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n  if (passed < required) throw new $TypeError('Not enough arguments');\n  return passed;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/validate-arguments-length.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/weak-map-basic-detection.js":
/*!********************************************************************!*\
  !*** ./node_modules/core-js/internals/weak-map-basic-detection.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/weak-map-basic-detection.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/well-known-symbol.js":
/*!*************************************************************!*\
  !*** ./node_modules/core-js/internals/well-known-symbol.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar shared = __webpack_require__(/*! ../internals/shared */ \"./node_modules/core-js/internals/shared.js\");\nvar hasOwn = __webpack_require__(/*! ../internals/has-own-property */ \"./node_modules/core-js/internals/has-own-property.js\");\nvar uid = __webpack_require__(/*! ../internals/uid */ \"./node_modules/core-js/internals/uid.js\");\nvar NATIVE_SYMBOL = __webpack_require__(/*! ../internals/symbol-constructor-detection */ \"./node_modules/core-js/internals/symbol-constructor-detection.js\");\nvar USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ \"./node_modules/core-js/internals/use-symbol-as-uid.js\");\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!hasOwn(WellKnownSymbolsStore, name)) {\n    WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n      ? Symbol[name]\n      : createWellKnownSymbol('Symbol.' + name);\n  } return WellKnownSymbolsStore[name];\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/well-known-symbol.js?");

/***/ }),

/***/ "./node_modules/core-js/internals/wrap-error-constructor-with-cause.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/core-js/internals/wrap-error-constructor-with-cause.js ***!
  \*****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\nvar hasOwn = __webpack_require__(/*! ../internals/has-own-property */ \"./node_modules/core-js/internals/has-own-property.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ \"./node_modules/core-js/internals/object-is-prototype-of.js\");\nvar setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ \"./node_modules/core-js/internals/object-set-prototype-of.js\");\nvar copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ \"./node_modules/core-js/internals/copy-constructor-properties.js\");\nvar proxyAccessor = __webpack_require__(/*! ../internals/proxy-accessor */ \"./node_modules/core-js/internals/proxy-accessor.js\");\nvar inheritIfRequired = __webpack_require__(/*! ../internals/inherit-if-required */ \"./node_modules/core-js/internals/inherit-if-required.js\");\nvar normalizeStringArgument = __webpack_require__(/*! ../internals/normalize-string-argument */ \"./node_modules/core-js/internals/normalize-string-argument.js\");\nvar installErrorCause = __webpack_require__(/*! ../internals/install-error-cause */ \"./node_modules/core-js/internals/install-error-cause.js\");\nvar installErrorStack = __webpack_require__(/*! ../internals/error-stack-install */ \"./node_modules/core-js/internals/error-stack-install.js\");\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar IS_PURE = __webpack_require__(/*! ../internals/is-pure */ \"./node_modules/core-js/internals/is-pure.js\");\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n  var STACK_TRACE_LIMIT = 'stackTraceLimit';\n  var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n  var path = FULL_NAME.split('.');\n  var ERROR_NAME = path[path.length - 1];\n  var OriginalError = getBuiltIn.apply(null, path);\n\n  if (!OriginalError) return;\n\n  var OriginalErrorPrototype = OriginalError.prototype;\n\n  // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n  if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n  if (!FORCED) return OriginalError;\n\n  var BaseError = getBuiltIn('Error');\n\n  var WrappedError = wrapper(function (a, b) {\n    var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n    var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n    if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n    installErrorStack(result, WrappedError, result.stack, 2);\n    if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n    if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n    return result;\n  });\n\n  WrappedError.prototype = OriginalErrorPrototype;\n\n  if (ERROR_NAME !== 'Error') {\n    if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n    else copyConstructorProperties(WrappedError, BaseError, { name: true });\n  } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n    proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n    proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n  }\n\n  copyConstructorProperties(WrappedError, OriginalError);\n\n  if (!IS_PURE) try {\n    // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n    if (OriginalErrorPrototype.name !== ERROR_NAME) {\n      createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n    }\n    OriginalErrorPrototype.constructor = WrappedError;\n  } catch (error) { /* empty */ }\n\n  return WrappedError;\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/internals/wrap-error-constructor-with-cause.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.array-buffer.detached.js":
/*!******************************************************************!*\
  !*** ./node_modules/core-js/modules/es.array-buffer.detached.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar defineBuiltInAccessor = __webpack_require__(/*! ../internals/define-built-in-accessor */ \"./node_modules/core-js/internals/define-built-in-accessor.js\");\nvar isDetached = __webpack_require__(/*! ../internals/array-buffer-is-detached */ \"./node_modules/core-js/internals/array-buffer-is-detached.js\");\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n  defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n    configurable: true,\n    get: function detached() {\n      return isDetached(this);\n    }\n  });\n}\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.array-buffer.detached.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js ***!
  \**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar $transfer = __webpack_require__(/*! ../internals/array-buffer-transfer */ \"./node_modules/core-js/internals/array-buffer-transfer.js\");\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n  transferToFixedLength: function transferToFixedLength() {\n    return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n  }\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.array-buffer.transfer.js":
/*!******************************************************************!*\
  !*** ./node_modules/core-js/modules/es.array-buffer.transfer.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar $transfer = __webpack_require__(/*! ../internals/array-buffer-transfer */ \"./node_modules/core-js/internals/array-buffer-transfer.js\");\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n  transfer: function transfer() {\n    return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n  }\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.array-buffer.transfer.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.array.at.js":
/*!*****************************************************!*\
  !*** ./node_modules/core-js/modules/es.array.at.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\nvar lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ \"./node_modules/core-js/internals/length-of-array-like.js\");\nvar toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ \"./node_modules/core-js/internals/to-integer-or-infinity.js\");\nvar addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ \"./node_modules/core-js/internals/add-to-unscopables.js\");\n\n// `Array.prototype.at` method\n// https://tc39.es/ecma262/#sec-array.prototype.at\n$({ target: 'Array', proto: true }, {\n  at: function at(index) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var relativeIndex = toIntegerOrInfinity(index);\n    var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n    return (k < 0 || k >= len) ? undefined : O[k];\n  }\n});\n\naddToUnscopables('at');\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.array.at.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.array.push.js":
/*!*******************************************************!*\
  !*** ./node_modules/core-js/modules/es.array.push.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\nvar lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ \"./node_modules/core-js/internals/length-of-array-like.js\");\nvar setArrayLength = __webpack_require__(/*! ../internals/array-set-length */ \"./node_modules/core-js/internals/array-set-length.js\");\nvar doesNotExceedSafeInteger = __webpack_require__(/*! ../internals/does-not-exceed-safe-integer */ \"./node_modules/core-js/internals/does-not-exceed-safe-integer.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n  return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).push();\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  push: function push(item) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var argCount = arguments.length;\n    doesNotExceedSafeInteger(len + argCount);\n    for (var i = 0; i < argCount; i++) {\n      O[len] = arguments[i];\n      len++;\n    }\n    setArrayLength(O, len);\n    return len;\n  }\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.array.push.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.array.unscopables.flat-map.js":
/*!***********************************************************************!*\
  !*** ./node_modules/core-js/modules/es.array.unscopables.flat-map.js ***!
  \***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ \"./node_modules/core-js/internals/add-to-unscopables.js\");\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.array.unscopables.flat-map.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.array.unscopables.flat.js":
/*!*******************************************************************!*\
  !*** ./node_modules/core-js/modules/es.array.unscopables.flat.js ***!
  \*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ \"./node_modules/core-js/internals/add-to-unscopables.js\");\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.array.unscopables.flat.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.array.unshift.js":
/*!**********************************************************!*\
  !*** ./node_modules/core-js/modules/es.array.unshift.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\nvar lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ \"./node_modules/core-js/internals/length-of-array-like.js\");\nvar setArrayLength = __webpack_require__(/*! ../internals/array-set-length */ \"./node_modules/core-js/internals/array-set-length.js\");\nvar deletePropertyOrThrow = __webpack_require__(/*! ../internals/delete-property-or-throw */ \"./node_modules/core-js/internals/delete-property-or-throw.js\");\nvar doesNotExceedSafeInteger = __webpack_require__(/*! ../internals/does-not-exceed-safe-integer */ \"./node_modules/core-js/internals/does-not-exceed-safe-integer.js\");\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar properErrorOnNonWritableLength = function () {\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).unshift();\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n};\n\nvar FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  unshift: function unshift(item) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var argCount = arguments.length;\n    if (argCount) {\n      doesNotExceedSafeInteger(len + argCount);\n      var k = len;\n      while (k--) {\n        var to = k + argCount;\n        if (k in O) O[to] = O[k];\n        else deletePropertyOrThrow(O, to);\n      }\n      for (var j = 0; j < argCount; j++) {\n        O[j] = arguments[j];\n      }\n    } return setArrayLength(O, len + argCount);\n  }\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.array.unshift.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.error.cause.js":
/*!********************************************************!*\
  !*** ./node_modules/core-js/modules/es.error.cause.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar apply = __webpack_require__(/*! ../internals/function-apply */ \"./node_modules/core-js/internals/function-apply.js\");\nvar wrapErrorConstructorWithCause = __webpack_require__(/*! ../internals/wrap-error-constructor-with-cause */ \"./node_modules/core-js/internals/wrap-error-constructor-with-cause.js\");\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = globalThis[WEB_ASSEMBLY];\n\n// eslint-disable-next-line es/no-error-cause -- feature detection\nvar FORCED = new Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  var O = {};\n  O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n  $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  if (WebAssembly && WebAssembly[ERROR_NAME]) {\n    var O = {};\n    O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n    $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n  }\n};\n\n// https://tc39.es/ecma262/#sec-nativeerror\nexportGlobalErrorCauseWrapper('Error', function (init) {\n  return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n  return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n  return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n  return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n  return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n  return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n  return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n  return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n  return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n  return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.error.cause.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.json.stringify.js":
/*!***********************************************************!*\
  !*** ./node_modules/core-js/modules/es.json.stringify.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\nvar apply = __webpack_require__(/*! ../internals/function-apply */ \"./node_modules/core-js/internals/function-apply.js\");\nvar call = __webpack_require__(/*! ../internals/function-call */ \"./node_modules/core-js/internals/function-call.js\");\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\nvar isSymbol = __webpack_require__(/*! ../internals/is-symbol */ \"./node_modules/core-js/internals/is-symbol.js\");\nvar arraySlice = __webpack_require__(/*! ../internals/array-slice */ \"./node_modules/core-js/internals/array-slice.js\");\nvar getReplacerFunction = __webpack_require__(/*! ../internals/get-json-replacer-function */ \"./node_modules/core-js/internals/get-json-replacer-function.js\");\nvar NATIVE_SYMBOL = __webpack_require__(/*! ../internals/symbol-constructor-detection */ \"./node_modules/core-js/internals/symbol-constructor-detection.js\");\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n  var symbol = getBuiltIn('Symbol')('stringify detection');\n  // MS Edge converts symbol values to JSON as {}\n  return $stringify([symbol]) !== '[null]'\n    // WebKit converts symbol values to JSON as null\n    || $stringify({ a: symbol }) !== '{}'\n    // V8 throws on boxed symbols\n    || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n  return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n    || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n  var args = arraySlice(arguments);\n  var $replacer = getReplacerFunction(replacer);\n  if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n  args[1] = function (key, value) {\n    // some old implementations (like WebKit) could pass numbers as keys\n    if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n    if (!isSymbol(value)) return value;\n  };\n  return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n  var prev = charAt(string, offset - 1);\n  var next = charAt(string, offset + 1);\n  if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n    return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n  } return match;\n};\n\nif ($stringify) {\n  // `JSON.stringify` method\n  // https://tc39.es/ecma262/#sec-json.stringify\n  $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n    // eslint-disable-next-line no-unused-vars -- required for `.length`\n    stringify: function stringify(it, replacer, space) {\n      var args = arraySlice(arguments);\n      var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n      return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n    }\n  });\n}\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.json.stringify.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.object.from-entries.js":
/*!****************************************************************!*\
  !*** ./node_modules/core-js/modules/es.object.from-entries.js ***!
  \****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar iterate = __webpack_require__(/*! ../internals/iterate */ \"./node_modules/core-js/internals/iterate.js\");\nvar createProperty = __webpack_require__(/*! ../internals/create-property */ \"./node_modules/core-js/internals/create-property.js\");\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n  fromEntries: function fromEntries(iterable) {\n    var obj = {};\n    iterate(iterable, function (k, v) {\n      createProperty(obj, k, v);\n    }, { AS_ENTRIES: true });\n    return obj;\n  }\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.object.from-entries.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.set.difference.v2.js":
/*!**************************************************************!*\
  !*** ./node_modules/core-js/modules/es.set.difference.v2.js ***!
  \**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar difference = __webpack_require__(/*! ../internals/set-difference */ \"./node_modules/core-js/internals/set-difference.js\");\nvar setMethodAcceptSetLike = __webpack_require__(/*! ../internals/set-method-accept-set-like */ \"./node_modules/core-js/internals/set-method-accept-set-like.js\");\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, {\n  difference: difference\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.set.difference.v2.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.set.intersection.v2.js":
/*!****************************************************************!*\
  !*** ./node_modules/core-js/modules/es.set.intersection.v2.js ***!
  \****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar intersection = __webpack_require__(/*! ../internals/set-intersection */ \"./node_modules/core-js/internals/set-intersection.js\");\nvar setMethodAcceptSetLike = __webpack_require__(/*! ../internals/set-method-accept-set-like */ \"./node_modules/core-js/internals/set-method-accept-set-like.js\");\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () {\n  // eslint-disable-next-line es/no-array-from, es/no-set -- testing\n  return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n  intersection: intersection\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.set.intersection.v2.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js":
/*!********************************************************************!*\
  !*** ./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar isDisjointFrom = __webpack_require__(/*! ../internals/set-is-disjoint-from */ \"./node_modules/core-js/internals/set-is-disjoint-from.js\");\nvar setMethodAcceptSetLike = __webpack_require__(/*! ../internals/set-method-accept-set-like */ \"./node_modules/core-js/internals/set-method-accept-set-like.js\");\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, {\n  isDisjointFrom: isDisjointFrom\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.set.is-subset-of.v2.js":
/*!****************************************************************!*\
  !*** ./node_modules/core-js/modules/es.set.is-subset-of.v2.js ***!
  \****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar isSubsetOf = __webpack_require__(/*! ../internals/set-is-subset-of */ \"./node_modules/core-js/internals/set-is-subset-of.js\");\nvar setMethodAcceptSetLike = __webpack_require__(/*! ../internals/set-method-accept-set-like */ \"./node_modules/core-js/internals/set-method-accept-set-like.js\");\n\n// `Set.prototype.isSubsetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, {\n  isSubsetOf: isSubsetOf\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.set.is-subset-of.v2.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.set.is-superset-of.v2.js":
/*!******************************************************************!*\
  !*** ./node_modules/core-js/modules/es.set.is-superset-of.v2.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar isSupersetOf = __webpack_require__(/*! ../internals/set-is-superset-of */ \"./node_modules/core-js/internals/set-is-superset-of.js\");\nvar setMethodAcceptSetLike = __webpack_require__(/*! ../internals/set-method-accept-set-like */ \"./node_modules/core-js/internals/set-method-accept-set-like.js\");\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, {\n  isSupersetOf: isSupersetOf\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.set.is-superset-of.v2.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.set.symmetric-difference.v2.js":
/*!************************************************************************!*\
  !*** ./node_modules/core-js/modules/es.set.symmetric-difference.v2.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar symmetricDifference = __webpack_require__(/*! ../internals/set-symmetric-difference */ \"./node_modules/core-js/internals/set-symmetric-difference.js\");\nvar setMethodAcceptSetLike = __webpack_require__(/*! ../internals/set-method-accept-set-like */ \"./node_modules/core-js/internals/set-method-accept-set-like.js\");\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {\n  symmetricDifference: symmetricDifference\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.set.symmetric-difference.v2.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.set.union.v2.js":
/*!*********************************************************!*\
  !*** ./node_modules/core-js/modules/es.set.union.v2.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar union = __webpack_require__(/*! ../internals/set-union */ \"./node_modules/core-js/internals/set-union.js\");\nvar setMethodAcceptSetLike = __webpack_require__(/*! ../internals/set-method-accept-set-like */ \"./node_modules/core-js/internals/set-method-accept-set-like.js\");\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {\n  union: union\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.set.union.v2.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.string.at-alternative.js":
/*!******************************************************************!*\
  !*** ./node_modules/core-js/modules/es.string.at-alternative.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");\nvar toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ \"./node_modules/core-js/internals/to-integer-or-infinity.js\");\nvar toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\nvar charAt = uncurryThis(''.charAt);\n\nvar FORCED = fails(function () {\n  // eslint-disable-next-line es/no-string-prototype-at -- safe\n  return '𠮷'.at(-2) !== '\\uD842';\n});\n\n// `String.prototype.at` method\n// https://tc39.es/ecma262/#sec-string.prototype.at\n$({ target: 'String', proto: true, forced: FORCED }, {\n  at: function at(index) {\n    var S = toString(requireObjectCoercible(this));\n    var len = S.length;\n    var relativeIndex = toIntegerOrInfinity(index);\n    var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n    return (k < 0 || k >= len) ? undefined : charAt(S, k);\n  }\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.string.at-alternative.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/es.string.replace-all.js":
/*!***************************************************************!*\
  !*** ./node_modules/core-js/modules/es.string.replace-all.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar call = __webpack_require__(/*! ../internals/function-call */ \"./node_modules/core-js/internals/function-call.js\");\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/core-js/internals/is-callable.js\");\nvar isNullOrUndefined = __webpack_require__(/*! ../internals/is-null-or-undefined */ \"./node_modules/core-js/internals/is-null-or-undefined.js\");\nvar isRegExp = __webpack_require__(/*! ../internals/is-regexp */ \"./node_modules/core-js/internals/is-regexp.js\");\nvar toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\nvar getMethod = __webpack_require__(/*! ../internals/get-method */ \"./node_modules/core-js/internals/get-method.js\");\nvar getRegExpFlags = __webpack_require__(/*! ../internals/regexp-get-flags */ \"./node_modules/core-js/internals/regexp-get-flags.js\");\nvar getSubstitution = __webpack_require__(/*! ../internals/get-substitution */ \"./node_modules/core-js/internals/get-substitution.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar IS_PURE = __webpack_require__(/*! ../internals/is-pure */ \"./node_modules/core-js/internals/is-pure.js\");\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n  replaceAll: function replaceAll(searchValue, replaceValue) {\n    var O = requireObjectCoercible(this);\n    var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, position, replacement;\n    var endOfLastMatch = 0;\n    var result = '';\n    if (!isNullOrUndefined(searchValue)) {\n      IS_REG_EXP = isRegExp(searchValue);\n      if (IS_REG_EXP) {\n        flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n        if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes');\n      }\n      replacer = getMethod(searchValue, REPLACE);\n      if (replacer) return call(replacer, searchValue, O, replaceValue);\n      if (IS_PURE && IS_REG_EXP) return replace(toString(O), searchValue, replaceValue);\n    }\n    string = toString(O);\n    searchString = toString(searchValue);\n    functionalReplace = isCallable(replaceValue);\n    if (!functionalReplace) replaceValue = toString(replaceValue);\n    searchLength = searchString.length;\n    advanceBy = max(1, searchLength);\n    position = indexOf(string, searchString);\n    while (position !== -1) {\n      replacement = functionalReplace\n        ? toString(replaceValue(searchString, position, string))\n        : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n      result += stringSlice(string, endOfLastMatch, position) + replacement;\n      endOfLastMatch = position + searchLength;\n      position = position + advanceBy > string.length ? -1 : indexOf(string, searchString, position + advanceBy);\n    }\n    if (endOfLastMatch < string.length) {\n      result += stringSlice(string, endOfLastMatch);\n    }\n    return result;\n  }\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/es.string.replace-all.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/esnext.set.difference.v2.js":
/*!******************************************************************!*\
  !*** ./node_modules/core-js/modules/esnext.set.difference.v2.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// TODO: Remove from `core-js@4`\n__webpack_require__(/*! ../modules/es.set.difference.v2 */ \"./node_modules/core-js/modules/es.set.difference.v2.js\");\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/esnext.set.difference.v2.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/esnext.set.intersection.v2.js":
/*!********************************************************************!*\
  !*** ./node_modules/core-js/modules/esnext.set.intersection.v2.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// TODO: Remove from `core-js@4`\n__webpack_require__(/*! ../modules/es.set.intersection.v2 */ \"./node_modules/core-js/modules/es.set.intersection.v2.js\");\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/esnext.set.intersection.v2.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js":
/*!************************************************************************!*\
  !*** ./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// TODO: Remove from `core-js@4`\n__webpack_require__(/*! ../modules/es.set.is-disjoint-from.v2 */ \"./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js\");\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js":
/*!********************************************************************!*\
  !*** ./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// TODO: Remove from `core-js@4`\n__webpack_require__(/*! ../modules/es.set.is-subset-of.v2 */ \"./node_modules/core-js/modules/es.set.is-subset-of.v2.js\");\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js":
/*!**********************************************************************!*\
  !*** ./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// TODO: Remove from `core-js@4`\n__webpack_require__(/*! ../modules/es.set.is-superset-of.v2 */ \"./node_modules/core-js/modules/es.set.is-superset-of.v2.js\");\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js":
/*!****************************************************************************!*\
  !*** ./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js ***!
  \****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// TODO: Remove from `core-js@4`\n__webpack_require__(/*! ../modules/es.set.symmetric-difference.v2 */ \"./node_modules/core-js/modules/es.set.symmetric-difference.v2.js\");\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/esnext.set.union.v2.js":
/*!*************************************************************!*\
  !*** ./node_modules/core-js/modules/esnext.set.union.v2.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// TODO: Remove from `core-js@4`\n__webpack_require__(/*! ../modules/es.set.union.v2 */ \"./node_modules/core-js/modules/es.set.union.v2.js\");\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/esnext.set.union.v2.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/web.clear-immediate.js":
/*!*************************************************************!*\
  !*** ./node_modules/core-js/modules/web.clear-immediate.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar clearImmediate = __webpack_require__(/*! ../internals/task */ \"./node_modules/core-js/internals/task.js\").clear;\n\n// `clearImmediate` method\n// http://w3c.github.io/setImmediate/#si-clearImmediate\n$({ global: true, bind: true, enumerable: true, forced: globalThis.clearImmediate !== clearImmediate }, {\n  clearImmediate: clearImmediate\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/web.clear-immediate.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/web.immediate.js":
/*!*******************************************************!*\
  !*** ./node_modules/core-js/modules/web.immediate.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\n__webpack_require__(/*! ../modules/web.clear-immediate */ \"./node_modules/core-js/modules/web.clear-immediate.js\");\n__webpack_require__(/*! ../modules/web.set-immediate */ \"./node_modules/core-js/modules/web.set-immediate.js\");\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/web.immediate.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/web.set-immediate.js":
/*!***********************************************************!*\
  !*** ./node_modules/core-js/modules/web.set-immediate.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \"./node_modules/core-js/internals/global-this.js\");\nvar setTask = __webpack_require__(/*! ../internals/task */ \"./node_modules/core-js/internals/task.js\").set;\nvar schedulersFix = __webpack_require__(/*! ../internals/schedulers-fix */ \"./node_modules/core-js/internals/schedulers-fix.js\");\n\n// https://github.com/oven-sh/bun/issues/1633\nvar setImmediate = globalThis.setImmediate ? schedulersFix(setTask, false) : setTask;\n\n// `setImmediate` method\n// http://w3c.github.io/setImmediate/#si-setImmediate\n$({ global: true, bind: true, enumerable: true, forced: globalThis.setImmediate !== setImmediate }, {\n  setImmediate: setImmediate\n});\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/web.set-immediate.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/web.url-search-params.delete.js":
/*!**********************************************************************!*\
  !*** ./node_modules/core-js/modules/web.url-search-params.delete.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar defineBuiltIn = __webpack_require__(/*! ../internals/define-built-in */ \"./node_modules/core-js/internals/define-built-in.js\");\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\nvar validateArgumentsLength = __webpack_require__(/*! ../internals/validate-arguments-length */ \"./node_modules/core-js/internals/validate-arguments-length.js\");\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n  defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n    var length = arguments.length;\n    var $value = length < 2 ? undefined : arguments[1];\n    if (length && $value === undefined) return $delete(this, name);\n    var entries = [];\n    forEach(this, function (v, k) { // also validates `this`\n      push(entries, { key: k, value: v });\n    });\n    validateArgumentsLength(length, 1);\n    var key = toString(name);\n    var value = toString($value);\n    var index = 0;\n    var dindex = 0;\n    var found = false;\n    var entriesLength = entries.length;\n    var entry;\n    while (index < entriesLength) {\n      entry = entries[index++];\n      if (found || entry.key === key) {\n        found = true;\n        $delete(this, entry.key);\n      } else dindex++;\n    }\n    while (dindex < entriesLength) {\n      entry = entries[dindex++];\n      if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n    }\n  }, { enumerable: true, unsafe: true });\n}\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/web.url-search-params.delete.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/web.url-search-params.has.js":
/*!*******************************************************************!*\
  !*** ./node_modules/core-js/modules/web.url-search-params.has.js ***!
  \*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar defineBuiltIn = __webpack_require__(/*! ../internals/define-built-in */ \"./node_modules/core-js/internals/define-built-in.js\");\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\nvar validateArgumentsLength = __webpack_require__(/*! ../internals/validate-arguments-length */ \"./node_modules/core-js/internals/validate-arguments-length.js\");\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n  defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n    var length = arguments.length;\n    var $value = length < 2 ? undefined : arguments[1];\n    if (length && $value === undefined) return $has(this, name);\n    var values = getAll(this, name); // also validates `this`\n    validateArgumentsLength(length, 1);\n    var value = toString($value);\n    var index = 0;\n    while (index < values.length) {\n      if (values[index++] === value) return true;\n    } return false;\n  }, { enumerable: true, unsafe: true });\n}\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/web.url-search-params.has.js?");

/***/ }),

/***/ "./node_modules/core-js/modules/web.url-search-params.size.js":
/*!********************************************************************!*\
  !*** ./node_modules/core-js/modules/web.url-search-params.size.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/core-js/internals/function-uncurry-this.js\");\nvar defineBuiltInAccessor = __webpack_require__(/*! ../internals/define-built-in-accessor */ \"./node_modules/core-js/internals/define-built-in-accessor.js\");\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n  defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n    get: function size() {\n      var count = 0;\n      forEach(this, function () { count++; });\n      return count;\n    },\n    configurable: true,\n    enumerable: true\n  });\n}\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/web.url-search-params.size.js?");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/animate.css/animate.css":
/*!**********************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-3-1!./node_modules/postcss-loader/src??ref--6-oneOf-3-2!./node_modules/animate.css/animate.css ***!
  \**********************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"@charset \\\"UTF-8\\\";/*!\\n * animate.css - https://animate.style/\\n * Version - 4.1.1\\n * Licensed under the MIT license - http://opensource.org/licenses/MIT\\n *\\n * Copyright (c) 2020 Animate.css\\n */\\n:root {\\n  --animate-duration: 1s;\\n  --animate-delay: 1s;\\n  --animate-repeat: 1;\\n}\\n.animate__animated {\\n  -webkit-animation-duration: 1s;\\n  animation-duration: 1s;\\n  -webkit-animation-duration: var(--animate-duration);\\n  animation-duration: var(--animate-duration);\\n  -webkit-animation-fill-mode: both;\\n  animation-fill-mode: both;\\n}\\n.animate__animated.animate__infinite {\\n  -webkit-animation-iteration-count: infinite;\\n  animation-iteration-count: infinite;\\n}\\n.animate__animated.animate__repeat-1 {\\n  -webkit-animation-iteration-count: 1;\\n  animation-iteration-count: 1;\\n  -webkit-animation-iteration-count: var(--animate-repeat);\\n  animation-iteration-count: var(--animate-repeat);\\n}\\n.animate__animated.animate__repeat-2 {\\n  -webkit-animation-iteration-count: calc(1 * 2);\\n  animation-iteration-count: calc(1 * 2);\\n  -webkit-animation-iteration-count: calc(var(--animate-repeat) * 2);\\n  animation-iteration-count: calc(var(--animate-repeat) * 2);\\n}\\n.animate__animated.animate__repeat-3 {\\n  -webkit-animation-iteration-count: calc(1 * 3);\\n  animation-iteration-count: calc(1 * 3);\\n  -webkit-animation-iteration-count: calc(var(--animate-repeat) * 3);\\n  animation-iteration-count: calc(var(--animate-repeat) * 3);\\n}\\n.animate__animated.animate__delay-1s {\\n  -webkit-animation-delay: 1s;\\n  animation-delay: 1s;\\n  -webkit-animation-delay: var(--animate-delay);\\n  animation-delay: var(--animate-delay);\\n}\\n.animate__animated.animate__delay-2s {\\n  -webkit-animation-delay: calc(1s * 2);\\n  animation-delay: calc(1s * 2);\\n  -webkit-animation-delay: calc(var(--animate-delay) * 2);\\n  animation-delay: calc(var(--animate-delay) * 2);\\n}\\n.animate__animated.animate__delay-3s {\\n  -webkit-animation-delay: calc(1s * 3);\\n  animation-delay: calc(1s * 3);\\n  -webkit-animation-delay: calc(var(--animate-delay) * 3);\\n  animation-delay: calc(var(--animate-delay) * 3);\\n}\\n.animate__animated.animate__delay-4s {\\n  -webkit-animation-delay: calc(1s * 4);\\n  animation-delay: calc(1s * 4);\\n  -webkit-animation-delay: calc(var(--animate-delay) * 4);\\n  animation-delay: calc(var(--animate-delay) * 4);\\n}\\n.animate__animated.animate__delay-5s {\\n  -webkit-animation-delay: calc(1s * 5);\\n  animation-delay: calc(1s * 5);\\n  -webkit-animation-delay: calc(var(--animate-delay) * 5);\\n  animation-delay: calc(var(--animate-delay) * 5);\\n}\\n.animate__animated.animate__faster {\\n  -webkit-animation-duration: calc(1s / 2);\\n  animation-duration: calc(1s / 2);\\n  -webkit-animation-duration: calc(var(--animate-duration) / 2);\\n  animation-duration: calc(var(--animate-duration) / 2);\\n}\\n.animate__animated.animate__fast {\\n  -webkit-animation-duration: calc(1s * 0.8);\\n  animation-duration: calc(1s * 0.8);\\n  -webkit-animation-duration: calc(var(--animate-duration) * 0.8);\\n  animation-duration: calc(var(--animate-duration) * 0.8);\\n}\\n.animate__animated.animate__slow {\\n  -webkit-animation-duration: calc(1s * 2);\\n  animation-duration: calc(1s * 2);\\n  -webkit-animation-duration: calc(var(--animate-duration) * 2);\\n  animation-duration: calc(var(--animate-duration) * 2);\\n}\\n.animate__animated.animate__slower {\\n  -webkit-animation-duration: calc(1s * 3);\\n  animation-duration: calc(1s * 3);\\n  -webkit-animation-duration: calc(var(--animate-duration) * 3);\\n  animation-duration: calc(var(--animate-duration) * 3);\\n}\\n@media print, (prefers-reduced-motion: reduce) {\\n  .animate__animated {\\n    -webkit-animation-duration: 1ms !important;\\n    animation-duration: 1ms !important;\\n    -webkit-transition-duration: 1ms !important;\\n    transition-duration: 1ms !important;\\n    -webkit-animation-iteration-count: 1 !important;\\n    animation-iteration-count: 1 !important;\\n  }\\n\\n  .animate__animated[class*='Out'] {\\n    opacity: 0;\\n  }\\n}\\n/* Attention seekers  */\\n@-webkit-keyframes bounce {\\n  from,\\n  20%,\\n  53%,\\n  to {\\n    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  40%,\\n  43% {\\n    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n    -webkit-transform: translate3d(0, -30px, 0) scaleY(1.1);\\n    transform: translate3d(0, -30px, 0) scaleY(1.1);\\n  }\\n\\n  70% {\\n    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n    -webkit-transform: translate3d(0, -15px, 0) scaleY(1.05);\\n    transform: translate3d(0, -15px, 0) scaleY(1.05);\\n  }\\n\\n  80% {\\n    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    -webkit-transform: translate3d(0, 0, 0) scaleY(0.95);\\n    transform: translate3d(0, 0, 0) scaleY(0.95);\\n  }\\n\\n  90% {\\n    -webkit-transform: translate3d(0, -4px, 0) scaleY(1.02);\\n    transform: translate3d(0, -4px, 0) scaleY(1.02);\\n  }\\n}\\n@keyframes bounce {\\n  from,\\n  20%,\\n  53%,\\n  to {\\n    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  40%,\\n  43% {\\n    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n    -webkit-transform: translate3d(0, -30px, 0) scaleY(1.1);\\n    transform: translate3d(0, -30px, 0) scaleY(1.1);\\n  }\\n\\n  70% {\\n    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n    -webkit-transform: translate3d(0, -15px, 0) scaleY(1.05);\\n    transform: translate3d(0, -15px, 0) scaleY(1.05);\\n  }\\n\\n  80% {\\n    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    -webkit-transform: translate3d(0, 0, 0) scaleY(0.95);\\n    transform: translate3d(0, 0, 0) scaleY(0.95);\\n  }\\n\\n  90% {\\n    -webkit-transform: translate3d(0, -4px, 0) scaleY(1.02);\\n    transform: translate3d(0, -4px, 0) scaleY(1.02);\\n  }\\n}\\n.animate__bounce {\\n  -webkit-animation-name: bounce;\\n  animation-name: bounce;\\n  -webkit-transform-origin: center bottom;\\n  transform-origin: center bottom;\\n}\\n@-webkit-keyframes flash {\\n  from,\\n  50%,\\n  to {\\n    opacity: 1;\\n  }\\n\\n  25%,\\n  75% {\\n    opacity: 0;\\n  }\\n}\\n@keyframes flash {\\n  from,\\n  50%,\\n  to {\\n    opacity: 1;\\n  }\\n\\n  25%,\\n  75% {\\n    opacity: 0;\\n  }\\n}\\n.animate__flash {\\n  -webkit-animation-name: flash;\\n  animation-name: flash;\\n}\\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\\n@-webkit-keyframes pulse {\\n  from {\\n    -webkit-transform: scale3d(1, 1, 1);\\n    transform: scale3d(1, 1, 1);\\n  }\\n\\n  50% {\\n    -webkit-transform: scale3d(1.05, 1.05, 1.05);\\n    transform: scale3d(1.05, 1.05, 1.05);\\n  }\\n\\n  to {\\n    -webkit-transform: scale3d(1, 1, 1);\\n    transform: scale3d(1, 1, 1);\\n  }\\n}\\n@keyframes pulse {\\n  from {\\n    -webkit-transform: scale3d(1, 1, 1);\\n    transform: scale3d(1, 1, 1);\\n  }\\n\\n  50% {\\n    -webkit-transform: scale3d(1.05, 1.05, 1.05);\\n    transform: scale3d(1.05, 1.05, 1.05);\\n  }\\n\\n  to {\\n    -webkit-transform: scale3d(1, 1, 1);\\n    transform: scale3d(1, 1, 1);\\n  }\\n}\\n.animate__pulse {\\n  -webkit-animation-name: pulse;\\n  animation-name: pulse;\\n  -webkit-animation-timing-function: ease-in-out;\\n  animation-timing-function: ease-in-out;\\n}\\n@-webkit-keyframes rubberBand {\\n  from {\\n    -webkit-transform: scale3d(1, 1, 1);\\n    transform: scale3d(1, 1, 1);\\n  }\\n\\n  30% {\\n    -webkit-transform: scale3d(1.25, 0.75, 1);\\n    transform: scale3d(1.25, 0.75, 1);\\n  }\\n\\n  40% {\\n    -webkit-transform: scale3d(0.75, 1.25, 1);\\n    transform: scale3d(0.75, 1.25, 1);\\n  }\\n\\n  50% {\\n    -webkit-transform: scale3d(1.15, 0.85, 1);\\n    transform: scale3d(1.15, 0.85, 1);\\n  }\\n\\n  65% {\\n    -webkit-transform: scale3d(0.95, 1.05, 1);\\n    transform: scale3d(0.95, 1.05, 1);\\n  }\\n\\n  75% {\\n    -webkit-transform: scale3d(1.05, 0.95, 1);\\n    transform: scale3d(1.05, 0.95, 1);\\n  }\\n\\n  to {\\n    -webkit-transform: scale3d(1, 1, 1);\\n    transform: scale3d(1, 1, 1);\\n  }\\n}\\n@keyframes rubberBand {\\n  from {\\n    -webkit-transform: scale3d(1, 1, 1);\\n    transform: scale3d(1, 1, 1);\\n  }\\n\\n  30% {\\n    -webkit-transform: scale3d(1.25, 0.75, 1);\\n    transform: scale3d(1.25, 0.75, 1);\\n  }\\n\\n  40% {\\n    -webkit-transform: scale3d(0.75, 1.25, 1);\\n    transform: scale3d(0.75, 1.25, 1);\\n  }\\n\\n  50% {\\n    -webkit-transform: scale3d(1.15, 0.85, 1);\\n    transform: scale3d(1.15, 0.85, 1);\\n  }\\n\\n  65% {\\n    -webkit-transform: scale3d(0.95, 1.05, 1);\\n    transform: scale3d(0.95, 1.05, 1);\\n  }\\n\\n  75% {\\n    -webkit-transform: scale3d(1.05, 0.95, 1);\\n    transform: scale3d(1.05, 0.95, 1);\\n  }\\n\\n  to {\\n    -webkit-transform: scale3d(1, 1, 1);\\n    transform: scale3d(1, 1, 1);\\n  }\\n}\\n.animate__rubberBand {\\n  -webkit-animation-name: rubberBand;\\n  animation-name: rubberBand;\\n}\\n@-webkit-keyframes shakeX {\\n  from,\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  10%,\\n  30%,\\n  50%,\\n  70%,\\n  90% {\\n    -webkit-transform: translate3d(-10px, 0, 0);\\n    transform: translate3d(-10px, 0, 0);\\n  }\\n\\n  20%,\\n  40%,\\n  60%,\\n  80% {\\n    -webkit-transform: translate3d(10px, 0, 0);\\n    transform: translate3d(10px, 0, 0);\\n  }\\n}\\n@keyframes shakeX {\\n  from,\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  10%,\\n  30%,\\n  50%,\\n  70%,\\n  90% {\\n    -webkit-transform: translate3d(-10px, 0, 0);\\n    transform: translate3d(-10px, 0, 0);\\n  }\\n\\n  20%,\\n  40%,\\n  60%,\\n  80% {\\n    -webkit-transform: translate3d(10px, 0, 0);\\n    transform: translate3d(10px, 0, 0);\\n  }\\n}\\n.animate__shakeX {\\n  -webkit-animation-name: shakeX;\\n  animation-name: shakeX;\\n}\\n@-webkit-keyframes shakeY {\\n  from,\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  10%,\\n  30%,\\n  50%,\\n  70%,\\n  90% {\\n    -webkit-transform: translate3d(0, -10px, 0);\\n    transform: translate3d(0, -10px, 0);\\n  }\\n\\n  20%,\\n  40%,\\n  60%,\\n  80% {\\n    -webkit-transform: translate3d(0, 10px, 0);\\n    transform: translate3d(0, 10px, 0);\\n  }\\n}\\n@keyframes shakeY {\\n  from,\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  10%,\\n  30%,\\n  50%,\\n  70%,\\n  90% {\\n    -webkit-transform: translate3d(0, -10px, 0);\\n    transform: translate3d(0, -10px, 0);\\n  }\\n\\n  20%,\\n  40%,\\n  60%,\\n  80% {\\n    -webkit-transform: translate3d(0, 10px, 0);\\n    transform: translate3d(0, 10px, 0);\\n  }\\n}\\n.animate__shakeY {\\n  -webkit-animation-name: shakeY;\\n  animation-name: shakeY;\\n}\\n@-webkit-keyframes headShake {\\n  0% {\\n    -webkit-transform: translateX(0);\\n    transform: translateX(0);\\n  }\\n\\n  6.5% {\\n    -webkit-transform: translateX(-6px) rotateY(-9deg);\\n    transform: translateX(-6px) rotateY(-9deg);\\n  }\\n\\n  18.5% {\\n    -webkit-transform: translateX(5px) rotateY(7deg);\\n    transform: translateX(5px) rotateY(7deg);\\n  }\\n\\n  31.5% {\\n    -webkit-transform: translateX(-3px) rotateY(-5deg);\\n    transform: translateX(-3px) rotateY(-5deg);\\n  }\\n\\n  43.5% {\\n    -webkit-transform: translateX(2px) rotateY(3deg);\\n    transform: translateX(2px) rotateY(3deg);\\n  }\\n\\n  50% {\\n    -webkit-transform: translateX(0);\\n    transform: translateX(0);\\n  }\\n}\\n@keyframes headShake {\\n  0% {\\n    -webkit-transform: translateX(0);\\n    transform: translateX(0);\\n  }\\n\\n  6.5% {\\n    -webkit-transform: translateX(-6px) rotateY(-9deg);\\n    transform: translateX(-6px) rotateY(-9deg);\\n  }\\n\\n  18.5% {\\n    -webkit-transform: translateX(5px) rotateY(7deg);\\n    transform: translateX(5px) rotateY(7deg);\\n  }\\n\\n  31.5% {\\n    -webkit-transform: translateX(-3px) rotateY(-5deg);\\n    transform: translateX(-3px) rotateY(-5deg);\\n  }\\n\\n  43.5% {\\n    -webkit-transform: translateX(2px) rotateY(3deg);\\n    transform: translateX(2px) rotateY(3deg);\\n  }\\n\\n  50% {\\n    -webkit-transform: translateX(0);\\n    transform: translateX(0);\\n  }\\n}\\n.animate__headShake {\\n  -webkit-animation-timing-function: ease-in-out;\\n  animation-timing-function: ease-in-out;\\n  -webkit-animation-name: headShake;\\n  animation-name: headShake;\\n}\\n@-webkit-keyframes swing {\\n  20% {\\n    -webkit-transform: rotate3d(0, 0, 1, 15deg);\\n    transform: rotate3d(0, 0, 1, 15deg);\\n  }\\n\\n  40% {\\n    -webkit-transform: rotate3d(0, 0, 1, -10deg);\\n    transform: rotate3d(0, 0, 1, -10deg);\\n  }\\n\\n  60% {\\n    -webkit-transform: rotate3d(0, 0, 1, 5deg);\\n    transform: rotate3d(0, 0, 1, 5deg);\\n  }\\n\\n  80% {\\n    -webkit-transform: rotate3d(0, 0, 1, -5deg);\\n    transform: rotate3d(0, 0, 1, -5deg);\\n  }\\n\\n  to {\\n    -webkit-transform: rotate3d(0, 0, 1, 0deg);\\n    transform: rotate3d(0, 0, 1, 0deg);\\n  }\\n}\\n@keyframes swing {\\n  20% {\\n    -webkit-transform: rotate3d(0, 0, 1, 15deg);\\n    transform: rotate3d(0, 0, 1, 15deg);\\n  }\\n\\n  40% {\\n    -webkit-transform: rotate3d(0, 0, 1, -10deg);\\n    transform: rotate3d(0, 0, 1, -10deg);\\n  }\\n\\n  60% {\\n    -webkit-transform: rotate3d(0, 0, 1, 5deg);\\n    transform: rotate3d(0, 0, 1, 5deg);\\n  }\\n\\n  80% {\\n    -webkit-transform: rotate3d(0, 0, 1, -5deg);\\n    transform: rotate3d(0, 0, 1, -5deg);\\n  }\\n\\n  to {\\n    -webkit-transform: rotate3d(0, 0, 1, 0deg);\\n    transform: rotate3d(0, 0, 1, 0deg);\\n  }\\n}\\n.animate__swing {\\n  -webkit-transform-origin: top center;\\n  transform-origin: top center;\\n  -webkit-animation-name: swing;\\n  animation-name: swing;\\n}\\n@-webkit-keyframes tada {\\n  from {\\n    -webkit-transform: scale3d(1, 1, 1);\\n    transform: scale3d(1, 1, 1);\\n  }\\n\\n  10%,\\n  20% {\\n    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\\n    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\\n  }\\n\\n  30%,\\n  50%,\\n  70%,\\n  90% {\\n    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\\n    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\\n  }\\n\\n  40%,\\n  60%,\\n  80% {\\n    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\\n    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\\n  }\\n\\n  to {\\n    -webkit-transform: scale3d(1, 1, 1);\\n    transform: scale3d(1, 1, 1);\\n  }\\n}\\n@keyframes tada {\\n  from {\\n    -webkit-transform: scale3d(1, 1, 1);\\n    transform: scale3d(1, 1, 1);\\n  }\\n\\n  10%,\\n  20% {\\n    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\\n    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\\n  }\\n\\n  30%,\\n  50%,\\n  70%,\\n  90% {\\n    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\\n    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\\n  }\\n\\n  40%,\\n  60%,\\n  80% {\\n    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\\n    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\\n  }\\n\\n  to {\\n    -webkit-transform: scale3d(1, 1, 1);\\n    transform: scale3d(1, 1, 1);\\n  }\\n}\\n.animate__tada {\\n  -webkit-animation-name: tada;\\n  animation-name: tada;\\n}\\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\\n@-webkit-keyframes wobble {\\n  from {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  15% {\\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\\n  }\\n\\n  30% {\\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\\n  }\\n\\n  45% {\\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\\n  }\\n\\n  60% {\\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\\n  }\\n\\n  75% {\\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes wobble {\\n  from {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  15% {\\n    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\\n    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\\n  }\\n\\n  30% {\\n    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\\n    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\\n  }\\n\\n  45% {\\n    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\\n    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\\n  }\\n\\n  60% {\\n    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\\n    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\\n  }\\n\\n  75% {\\n    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\\n    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__wobble {\\n  -webkit-animation-name: wobble;\\n  animation-name: wobble;\\n}\\n@-webkit-keyframes jello {\\n  from,\\n  11.1%,\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  22.2% {\\n    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);\\n    transform: skewX(-12.5deg) skewY(-12.5deg);\\n  }\\n\\n  33.3% {\\n    -webkit-transform: skewX(6.25deg) skewY(6.25deg);\\n    transform: skewX(6.25deg) skewY(6.25deg);\\n  }\\n\\n  44.4% {\\n    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);\\n    transform: skewX(-3.125deg) skewY(-3.125deg);\\n  }\\n\\n  55.5% {\\n    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);\\n    transform: skewX(1.5625deg) skewY(1.5625deg);\\n  }\\n\\n  66.6% {\\n    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);\\n    transform: skewX(-0.78125deg) skewY(-0.78125deg);\\n  }\\n\\n  77.7% {\\n    -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);\\n    transform: skewX(0.390625deg) skewY(0.390625deg);\\n  }\\n\\n  88.8% {\\n    -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\\n    transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\\n  }\\n}\\n@keyframes jello {\\n  from,\\n  11.1%,\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  22.2% {\\n    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);\\n    transform: skewX(-12.5deg) skewY(-12.5deg);\\n  }\\n\\n  33.3% {\\n    -webkit-transform: skewX(6.25deg) skewY(6.25deg);\\n    transform: skewX(6.25deg) skewY(6.25deg);\\n  }\\n\\n  44.4% {\\n    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);\\n    transform: skewX(-3.125deg) skewY(-3.125deg);\\n  }\\n\\n  55.5% {\\n    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);\\n    transform: skewX(1.5625deg) skewY(1.5625deg);\\n  }\\n\\n  66.6% {\\n    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);\\n    transform: skewX(-0.78125deg) skewY(-0.78125deg);\\n  }\\n\\n  77.7% {\\n    -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);\\n    transform: skewX(0.390625deg) skewY(0.390625deg);\\n  }\\n\\n  88.8% {\\n    -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\\n    transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\\n  }\\n}\\n.animate__jello {\\n  -webkit-animation-name: jello;\\n  animation-name: jello;\\n  -webkit-transform-origin: center;\\n  transform-origin: center;\\n}\\n@-webkit-keyframes heartBeat {\\n  0% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n  }\\n\\n  14% {\\n    -webkit-transform: scale(1.3);\\n    transform: scale(1.3);\\n  }\\n\\n  28% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n  }\\n\\n  42% {\\n    -webkit-transform: scale(1.3);\\n    transform: scale(1.3);\\n  }\\n\\n  70% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n  }\\n}\\n@keyframes heartBeat {\\n  0% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n  }\\n\\n  14% {\\n    -webkit-transform: scale(1.3);\\n    transform: scale(1.3);\\n  }\\n\\n  28% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n  }\\n\\n  42% {\\n    -webkit-transform: scale(1.3);\\n    transform: scale(1.3);\\n  }\\n\\n  70% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n  }\\n}\\n.animate__heartBeat {\\n  -webkit-animation-name: heartBeat;\\n  animation-name: heartBeat;\\n  -webkit-animation-duration: calc(1s * 1.3);\\n  animation-duration: calc(1s * 1.3);\\n  -webkit-animation-duration: calc(var(--animate-duration) * 1.3);\\n  animation-duration: calc(var(--animate-duration) * 1.3);\\n  -webkit-animation-timing-function: ease-in-out;\\n  animation-timing-function: ease-in-out;\\n}\\n/* Back entrances */\\n@-webkit-keyframes backInDown {\\n  0% {\\n    -webkit-transform: translateY(-1200px) scale(0.7);\\n    transform: translateY(-1200px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  80% {\\n    -webkit-transform: translateY(0px) scale(0.7);\\n    transform: translateY(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n}\\n@keyframes backInDown {\\n  0% {\\n    -webkit-transform: translateY(-1200px) scale(0.7);\\n    transform: translateY(-1200px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  80% {\\n    -webkit-transform: translateY(0px) scale(0.7);\\n    transform: translateY(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n}\\n.animate__backInDown {\\n  -webkit-animation-name: backInDown;\\n  animation-name: backInDown;\\n}\\n@-webkit-keyframes backInLeft {\\n  0% {\\n    -webkit-transform: translateX(-2000px) scale(0.7);\\n    transform: translateX(-2000px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  80% {\\n    -webkit-transform: translateX(0px) scale(0.7);\\n    transform: translateX(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n}\\n@keyframes backInLeft {\\n  0% {\\n    -webkit-transform: translateX(-2000px) scale(0.7);\\n    transform: translateX(-2000px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  80% {\\n    -webkit-transform: translateX(0px) scale(0.7);\\n    transform: translateX(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n}\\n.animate__backInLeft {\\n  -webkit-animation-name: backInLeft;\\n  animation-name: backInLeft;\\n}\\n@-webkit-keyframes backInRight {\\n  0% {\\n    -webkit-transform: translateX(2000px) scale(0.7);\\n    transform: translateX(2000px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  80% {\\n    -webkit-transform: translateX(0px) scale(0.7);\\n    transform: translateX(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n}\\n@keyframes backInRight {\\n  0% {\\n    -webkit-transform: translateX(2000px) scale(0.7);\\n    transform: translateX(2000px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  80% {\\n    -webkit-transform: translateX(0px) scale(0.7);\\n    transform: translateX(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n}\\n.animate__backInRight {\\n  -webkit-animation-name: backInRight;\\n  animation-name: backInRight;\\n}\\n@-webkit-keyframes backInUp {\\n  0% {\\n    -webkit-transform: translateY(1200px) scale(0.7);\\n    transform: translateY(1200px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  80% {\\n    -webkit-transform: translateY(0px) scale(0.7);\\n    transform: translateY(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n}\\n@keyframes backInUp {\\n  0% {\\n    -webkit-transform: translateY(1200px) scale(0.7);\\n    transform: translateY(1200px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  80% {\\n    -webkit-transform: translateY(0px) scale(0.7);\\n    transform: translateY(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n}\\n.animate__backInUp {\\n  -webkit-animation-name: backInUp;\\n  animation-name: backInUp;\\n}\\n/* Back exits */\\n@-webkit-keyframes backOutDown {\\n  0% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n\\n  20% {\\n    -webkit-transform: translateY(0px) scale(0.7);\\n    transform: translateY(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: translateY(700px) scale(0.7);\\n    transform: translateY(700px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n}\\n@keyframes backOutDown {\\n  0% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n\\n  20% {\\n    -webkit-transform: translateY(0px) scale(0.7);\\n    transform: translateY(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: translateY(700px) scale(0.7);\\n    transform: translateY(700px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n}\\n.animate__backOutDown {\\n  -webkit-animation-name: backOutDown;\\n  animation-name: backOutDown;\\n}\\n@-webkit-keyframes backOutLeft {\\n  0% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n\\n  20% {\\n    -webkit-transform: translateX(0px) scale(0.7);\\n    transform: translateX(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: translateX(-2000px) scale(0.7);\\n    transform: translateX(-2000px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n}\\n@keyframes backOutLeft {\\n  0% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n\\n  20% {\\n    -webkit-transform: translateX(0px) scale(0.7);\\n    transform: translateX(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: translateX(-2000px) scale(0.7);\\n    transform: translateX(-2000px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n}\\n.animate__backOutLeft {\\n  -webkit-animation-name: backOutLeft;\\n  animation-name: backOutLeft;\\n}\\n@-webkit-keyframes backOutRight {\\n  0% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n\\n  20% {\\n    -webkit-transform: translateX(0px) scale(0.7);\\n    transform: translateX(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: translateX(2000px) scale(0.7);\\n    transform: translateX(2000px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n}\\n@keyframes backOutRight {\\n  0% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n\\n  20% {\\n    -webkit-transform: translateX(0px) scale(0.7);\\n    transform: translateX(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: translateX(2000px) scale(0.7);\\n    transform: translateX(2000px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n}\\n.animate__backOutRight {\\n  -webkit-animation-name: backOutRight;\\n  animation-name: backOutRight;\\n}\\n@-webkit-keyframes backOutUp {\\n  0% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n\\n  20% {\\n    -webkit-transform: translateY(0px) scale(0.7);\\n    transform: translateY(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: translateY(-700px) scale(0.7);\\n    transform: translateY(-700px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n}\\n@keyframes backOutUp {\\n  0% {\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n    opacity: 1;\\n  }\\n\\n  20% {\\n    -webkit-transform: translateY(0px) scale(0.7);\\n    transform: translateY(0px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n\\n  100% {\\n    -webkit-transform: translateY(-700px) scale(0.7);\\n    transform: translateY(-700px) scale(0.7);\\n    opacity: 0.7;\\n  }\\n}\\n.animate__backOutUp {\\n  -webkit-animation-name: backOutUp;\\n  animation-name: backOutUp;\\n}\\n/* Bouncing entrances  */\\n@-webkit-keyframes bounceIn {\\n  from,\\n  20%,\\n  40%,\\n  60%,\\n  80%,\\n  to {\\n    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n  }\\n\\n  0% {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.3, 0.3, 0.3);\\n    transform: scale3d(0.3, 0.3, 0.3);\\n  }\\n\\n  20% {\\n    -webkit-transform: scale3d(1.1, 1.1, 1.1);\\n    transform: scale3d(1.1, 1.1, 1.1);\\n  }\\n\\n  40% {\\n    -webkit-transform: scale3d(0.9, 0.9, 0.9);\\n    transform: scale3d(0.9, 0.9, 0.9);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(1.03, 1.03, 1.03);\\n    transform: scale3d(1.03, 1.03, 1.03);\\n  }\\n\\n  80% {\\n    -webkit-transform: scale3d(0.97, 0.97, 0.97);\\n    transform: scale3d(0.97, 0.97, 0.97);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: scale3d(1, 1, 1);\\n    transform: scale3d(1, 1, 1);\\n  }\\n}\\n@keyframes bounceIn {\\n  from,\\n  20%,\\n  40%,\\n  60%,\\n  80%,\\n  to {\\n    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n  }\\n\\n  0% {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.3, 0.3, 0.3);\\n    transform: scale3d(0.3, 0.3, 0.3);\\n  }\\n\\n  20% {\\n    -webkit-transform: scale3d(1.1, 1.1, 1.1);\\n    transform: scale3d(1.1, 1.1, 1.1);\\n  }\\n\\n  40% {\\n    -webkit-transform: scale3d(0.9, 0.9, 0.9);\\n    transform: scale3d(0.9, 0.9, 0.9);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(1.03, 1.03, 1.03);\\n    transform: scale3d(1.03, 1.03, 1.03);\\n  }\\n\\n  80% {\\n    -webkit-transform: scale3d(0.97, 0.97, 0.97);\\n    transform: scale3d(0.97, 0.97, 0.97);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: scale3d(1, 1, 1);\\n    transform: scale3d(1, 1, 1);\\n  }\\n}\\n.animate__bounceIn {\\n  -webkit-animation-duration: calc(1s * 0.75);\\n  animation-duration: calc(1s * 0.75);\\n  -webkit-animation-duration: calc(var(--animate-duration) * 0.75);\\n  animation-duration: calc(var(--animate-duration) * 0.75);\\n  -webkit-animation-name: bounceIn;\\n  animation-name: bounceIn;\\n}\\n@-webkit-keyframes bounceInDown {\\n  from,\\n  60%,\\n  75%,\\n  90%,\\n  to {\\n    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n  }\\n\\n  0% {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, -3000px, 0) scaleY(3);\\n    transform: translate3d(0, -3000px, 0) scaleY(3);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 25px, 0) scaleY(0.9);\\n    transform: translate3d(0, 25px, 0) scaleY(0.9);\\n  }\\n\\n  75% {\\n    -webkit-transform: translate3d(0, -10px, 0) scaleY(0.95);\\n    transform: translate3d(0, -10px, 0) scaleY(0.95);\\n  }\\n\\n  90% {\\n    -webkit-transform: translate3d(0, 5px, 0) scaleY(0.985);\\n    transform: translate3d(0, 5px, 0) scaleY(0.985);\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes bounceInDown {\\n  from,\\n  60%,\\n  75%,\\n  90%,\\n  to {\\n    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n  }\\n\\n  0% {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, -3000px, 0) scaleY(3);\\n    transform: translate3d(0, -3000px, 0) scaleY(3);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 25px, 0) scaleY(0.9);\\n    transform: translate3d(0, 25px, 0) scaleY(0.9);\\n  }\\n\\n  75% {\\n    -webkit-transform: translate3d(0, -10px, 0) scaleY(0.95);\\n    transform: translate3d(0, -10px, 0) scaleY(0.95);\\n  }\\n\\n  90% {\\n    -webkit-transform: translate3d(0, 5px, 0) scaleY(0.985);\\n    transform: translate3d(0, 5px, 0) scaleY(0.985);\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__bounceInDown {\\n  -webkit-animation-name: bounceInDown;\\n  animation-name: bounceInDown;\\n}\\n@-webkit-keyframes bounceInLeft {\\n  from,\\n  60%,\\n  75%,\\n  90%,\\n  to {\\n    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n  }\\n\\n  0% {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-3000px, 0, 0) scaleX(3);\\n    transform: translate3d(-3000px, 0, 0) scaleX(3);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(25px, 0, 0) scaleX(1);\\n    transform: translate3d(25px, 0, 0) scaleX(1);\\n  }\\n\\n  75% {\\n    -webkit-transform: translate3d(-10px, 0, 0) scaleX(0.98);\\n    transform: translate3d(-10px, 0, 0) scaleX(0.98);\\n  }\\n\\n  90% {\\n    -webkit-transform: translate3d(5px, 0, 0) scaleX(0.995);\\n    transform: translate3d(5px, 0, 0) scaleX(0.995);\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes bounceInLeft {\\n  from,\\n  60%,\\n  75%,\\n  90%,\\n  to {\\n    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n  }\\n\\n  0% {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-3000px, 0, 0) scaleX(3);\\n    transform: translate3d(-3000px, 0, 0) scaleX(3);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(25px, 0, 0) scaleX(1);\\n    transform: translate3d(25px, 0, 0) scaleX(1);\\n  }\\n\\n  75% {\\n    -webkit-transform: translate3d(-10px, 0, 0) scaleX(0.98);\\n    transform: translate3d(-10px, 0, 0) scaleX(0.98);\\n  }\\n\\n  90% {\\n    -webkit-transform: translate3d(5px, 0, 0) scaleX(0.995);\\n    transform: translate3d(5px, 0, 0) scaleX(0.995);\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__bounceInLeft {\\n  -webkit-animation-name: bounceInLeft;\\n  animation-name: bounceInLeft;\\n}\\n@-webkit-keyframes bounceInRight {\\n  from,\\n  60%,\\n  75%,\\n  90%,\\n  to {\\n    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n  }\\n\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(3000px, 0, 0) scaleX(3);\\n    transform: translate3d(3000px, 0, 0) scaleX(3);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(-25px, 0, 0) scaleX(1);\\n    transform: translate3d(-25px, 0, 0) scaleX(1);\\n  }\\n\\n  75% {\\n    -webkit-transform: translate3d(10px, 0, 0) scaleX(0.98);\\n    transform: translate3d(10px, 0, 0) scaleX(0.98);\\n  }\\n\\n  90% {\\n    -webkit-transform: translate3d(-5px, 0, 0) scaleX(0.995);\\n    transform: translate3d(-5px, 0, 0) scaleX(0.995);\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes bounceInRight {\\n  from,\\n  60%,\\n  75%,\\n  90%,\\n  to {\\n    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n  }\\n\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(3000px, 0, 0) scaleX(3);\\n    transform: translate3d(3000px, 0, 0) scaleX(3);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(-25px, 0, 0) scaleX(1);\\n    transform: translate3d(-25px, 0, 0) scaleX(1);\\n  }\\n\\n  75% {\\n    -webkit-transform: translate3d(10px, 0, 0) scaleX(0.98);\\n    transform: translate3d(10px, 0, 0) scaleX(0.98);\\n  }\\n\\n  90% {\\n    -webkit-transform: translate3d(-5px, 0, 0) scaleX(0.995);\\n    transform: translate3d(-5px, 0, 0) scaleX(0.995);\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__bounceInRight {\\n  -webkit-animation-name: bounceInRight;\\n  animation-name: bounceInRight;\\n}\\n@-webkit-keyframes bounceInUp {\\n  from,\\n  60%,\\n  75%,\\n  90%,\\n  to {\\n    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n  }\\n\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, 3000px, 0) scaleY(5);\\n    transform: translate3d(0, 3000px, 0) scaleY(5);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);\\n    transform: translate3d(0, -20px, 0) scaleY(0.9);\\n  }\\n\\n  75% {\\n    -webkit-transform: translate3d(0, 10px, 0) scaleY(0.95);\\n    transform: translate3d(0, 10px, 0) scaleY(0.95);\\n  }\\n\\n  90% {\\n    -webkit-transform: translate3d(0, -5px, 0) scaleY(0.985);\\n    transform: translate3d(0, -5px, 0) scaleY(0.985);\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes bounceInUp {\\n  from,\\n  60%,\\n  75%,\\n  90%,\\n  to {\\n    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n  }\\n\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, 3000px, 0) scaleY(5);\\n    transform: translate3d(0, 3000px, 0) scaleY(5);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);\\n    transform: translate3d(0, -20px, 0) scaleY(0.9);\\n  }\\n\\n  75% {\\n    -webkit-transform: translate3d(0, 10px, 0) scaleY(0.95);\\n    transform: translate3d(0, 10px, 0) scaleY(0.95);\\n  }\\n\\n  90% {\\n    -webkit-transform: translate3d(0, -5px, 0) scaleY(0.985);\\n    transform: translate3d(0, -5px, 0) scaleY(0.985);\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__bounceInUp {\\n  -webkit-animation-name: bounceInUp;\\n  animation-name: bounceInUp;\\n}\\n/* Bouncing exits  */\\n@-webkit-keyframes bounceOut {\\n  20% {\\n    -webkit-transform: scale3d(0.9, 0.9, 0.9);\\n    transform: scale3d(0.9, 0.9, 0.9);\\n  }\\n\\n  50%,\\n  55% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(1.1, 1.1, 1.1);\\n    transform: scale3d(1.1, 1.1, 1.1);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.3, 0.3, 0.3);\\n    transform: scale3d(0.3, 0.3, 0.3);\\n  }\\n}\\n@keyframes bounceOut {\\n  20% {\\n    -webkit-transform: scale3d(0.9, 0.9, 0.9);\\n    transform: scale3d(0.9, 0.9, 0.9);\\n  }\\n\\n  50%,\\n  55% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(1.1, 1.1, 1.1);\\n    transform: scale3d(1.1, 1.1, 1.1);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.3, 0.3, 0.3);\\n    transform: scale3d(0.3, 0.3, 0.3);\\n  }\\n}\\n.animate__bounceOut {\\n  -webkit-animation-duration: calc(1s * 0.75);\\n  animation-duration: calc(1s * 0.75);\\n  -webkit-animation-duration: calc(var(--animate-duration) * 0.75);\\n  animation-duration: calc(var(--animate-duration) * 0.75);\\n  -webkit-animation-name: bounceOut;\\n  animation-name: bounceOut;\\n}\\n@-webkit-keyframes bounceOutDown {\\n  20% {\\n    -webkit-transform: translate3d(0, 10px, 0) scaleY(0.985);\\n    transform: translate3d(0, 10px, 0) scaleY(0.985);\\n  }\\n\\n  40%,\\n  45% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);\\n    transform: translate3d(0, -20px, 0) scaleY(0.9);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, 2000px, 0) scaleY(3);\\n    transform: translate3d(0, 2000px, 0) scaleY(3);\\n  }\\n}\\n@keyframes bounceOutDown {\\n  20% {\\n    -webkit-transform: translate3d(0, 10px, 0) scaleY(0.985);\\n    transform: translate3d(0, 10px, 0) scaleY(0.985);\\n  }\\n\\n  40%,\\n  45% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);\\n    transform: translate3d(0, -20px, 0) scaleY(0.9);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, 2000px, 0) scaleY(3);\\n    transform: translate3d(0, 2000px, 0) scaleY(3);\\n  }\\n}\\n.animate__bounceOutDown {\\n  -webkit-animation-name: bounceOutDown;\\n  animation-name: bounceOutDown;\\n}\\n@-webkit-keyframes bounceOutLeft {\\n  20% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(20px, 0, 0) scaleX(0.9);\\n    transform: translate3d(20px, 0, 0) scaleX(0.9);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-2000px, 0, 0) scaleX(2);\\n    transform: translate3d(-2000px, 0, 0) scaleX(2);\\n  }\\n}\\n@keyframes bounceOutLeft {\\n  20% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(20px, 0, 0) scaleX(0.9);\\n    transform: translate3d(20px, 0, 0) scaleX(0.9);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-2000px, 0, 0) scaleX(2);\\n    transform: translate3d(-2000px, 0, 0) scaleX(2);\\n  }\\n}\\n.animate__bounceOutLeft {\\n  -webkit-animation-name: bounceOutLeft;\\n  animation-name: bounceOutLeft;\\n}\\n@-webkit-keyframes bounceOutRight {\\n  20% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(-20px, 0, 0) scaleX(0.9);\\n    transform: translate3d(-20px, 0, 0) scaleX(0.9);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(2000px, 0, 0) scaleX(2);\\n    transform: translate3d(2000px, 0, 0) scaleX(2);\\n  }\\n}\\n@keyframes bounceOutRight {\\n  20% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(-20px, 0, 0) scaleX(0.9);\\n    transform: translate3d(-20px, 0, 0) scaleX(0.9);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(2000px, 0, 0) scaleX(2);\\n    transform: translate3d(2000px, 0, 0) scaleX(2);\\n  }\\n}\\n.animate__bounceOutRight {\\n  -webkit-animation-name: bounceOutRight;\\n  animation-name: bounceOutRight;\\n}\\n@-webkit-keyframes bounceOutUp {\\n  20% {\\n    -webkit-transform: translate3d(0, -10px, 0) scaleY(0.985);\\n    transform: translate3d(0, -10px, 0) scaleY(0.985);\\n  }\\n\\n  40%,\\n  45% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 20px, 0) scaleY(0.9);\\n    transform: translate3d(0, 20px, 0) scaleY(0.9);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, -2000px, 0) scaleY(3);\\n    transform: translate3d(0, -2000px, 0) scaleY(3);\\n  }\\n}\\n@keyframes bounceOutUp {\\n  20% {\\n    -webkit-transform: translate3d(0, -10px, 0) scaleY(0.985);\\n    transform: translate3d(0, -10px, 0) scaleY(0.985);\\n  }\\n\\n  40%,\\n  45% {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 20px, 0) scaleY(0.9);\\n    transform: translate3d(0, 20px, 0) scaleY(0.9);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, -2000px, 0) scaleY(3);\\n    transform: translate3d(0, -2000px, 0) scaleY(3);\\n  }\\n}\\n.animate__bounceOutUp {\\n  -webkit-animation-name: bounceOutUp;\\n  animation-name: bounceOutUp;\\n}\\n/* Fading entrances  */\\n@-webkit-keyframes fadeIn {\\n  from {\\n    opacity: 0;\\n  }\\n\\n  to {\\n    opacity: 1;\\n  }\\n}\\n@keyframes fadeIn {\\n  from {\\n    opacity: 0;\\n  }\\n\\n  to {\\n    opacity: 1;\\n  }\\n}\\n.animate__fadeIn {\\n  -webkit-animation-name: fadeIn;\\n  animation-name: fadeIn;\\n}\\n@-webkit-keyframes fadeInDown {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, -100%, 0);\\n    transform: translate3d(0, -100%, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes fadeInDown {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, -100%, 0);\\n    transform: translate3d(0, -100%, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__fadeInDown {\\n  -webkit-animation-name: fadeInDown;\\n  animation-name: fadeInDown;\\n}\\n@-webkit-keyframes fadeInDownBig {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, -2000px, 0);\\n    transform: translate3d(0, -2000px, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes fadeInDownBig {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, -2000px, 0);\\n    transform: translate3d(0, -2000px, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__fadeInDownBig {\\n  -webkit-animation-name: fadeInDownBig;\\n  animation-name: fadeInDownBig;\\n}\\n@-webkit-keyframes fadeInLeft {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-100%, 0, 0);\\n    transform: translate3d(-100%, 0, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes fadeInLeft {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-100%, 0, 0);\\n    transform: translate3d(-100%, 0, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__fadeInLeft {\\n  -webkit-animation-name: fadeInLeft;\\n  animation-name: fadeInLeft;\\n}\\n@-webkit-keyframes fadeInLeftBig {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-2000px, 0, 0);\\n    transform: translate3d(-2000px, 0, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes fadeInLeftBig {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-2000px, 0, 0);\\n    transform: translate3d(-2000px, 0, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__fadeInLeftBig {\\n  -webkit-animation-name: fadeInLeftBig;\\n  animation-name: fadeInLeftBig;\\n}\\n@-webkit-keyframes fadeInRight {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(100%, 0, 0);\\n    transform: translate3d(100%, 0, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes fadeInRight {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(100%, 0, 0);\\n    transform: translate3d(100%, 0, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__fadeInRight {\\n  -webkit-animation-name: fadeInRight;\\n  animation-name: fadeInRight;\\n}\\n@-webkit-keyframes fadeInRightBig {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(2000px, 0, 0);\\n    transform: translate3d(2000px, 0, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes fadeInRightBig {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(2000px, 0, 0);\\n    transform: translate3d(2000px, 0, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__fadeInRightBig {\\n  -webkit-animation-name: fadeInRightBig;\\n  animation-name: fadeInRightBig;\\n}\\n@-webkit-keyframes fadeInUp {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes fadeInUp {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__fadeInUp {\\n  -webkit-animation-name: fadeInUp;\\n  animation-name: fadeInUp;\\n}\\n@-webkit-keyframes fadeInUpBig {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, 2000px, 0);\\n    transform: translate3d(0, 2000px, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes fadeInUpBig {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, 2000px, 0);\\n    transform: translate3d(0, 2000px, 0);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__fadeInUpBig {\\n  -webkit-animation-name: fadeInUpBig;\\n  animation-name: fadeInUpBig;\\n}\\n@-webkit-keyframes fadeInTopLeft {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-100%, -100%, 0);\\n    transform: translate3d(-100%, -100%, 0);\\n  }\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes fadeInTopLeft {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-100%, -100%, 0);\\n    transform: translate3d(-100%, -100%, 0);\\n  }\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__fadeInTopLeft {\\n  -webkit-animation-name: fadeInTopLeft;\\n  animation-name: fadeInTopLeft;\\n}\\n@-webkit-keyframes fadeInTopRight {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(100%, -100%, 0);\\n    transform: translate3d(100%, -100%, 0);\\n  }\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes fadeInTopRight {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(100%, -100%, 0);\\n    transform: translate3d(100%, -100%, 0);\\n  }\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__fadeInTopRight {\\n  -webkit-animation-name: fadeInTopRight;\\n  animation-name: fadeInTopRight;\\n}\\n@-webkit-keyframes fadeInBottomLeft {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-100%, 100%, 0);\\n    transform: translate3d(-100%, 100%, 0);\\n  }\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes fadeInBottomLeft {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-100%, 100%, 0);\\n    transform: translate3d(-100%, 100%, 0);\\n  }\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__fadeInBottomLeft {\\n  -webkit-animation-name: fadeInBottomLeft;\\n  animation-name: fadeInBottomLeft;\\n}\\n@-webkit-keyframes fadeInBottomRight {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(100%, 100%, 0);\\n    transform: translate3d(100%, 100%, 0);\\n  }\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes fadeInBottomRight {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(100%, 100%, 0);\\n    transform: translate3d(100%, 100%, 0);\\n  }\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__fadeInBottomRight {\\n  -webkit-animation-name: fadeInBottomRight;\\n  animation-name: fadeInBottomRight;\\n}\\n/* Fading exits */\\n@-webkit-keyframes fadeOut {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n  }\\n}\\n@keyframes fadeOut {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n  }\\n}\\n.animate__fadeOut {\\n  -webkit-animation-name: fadeOut;\\n  animation-name: fadeOut;\\n}\\n@-webkit-keyframes fadeOutDown {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n  }\\n}\\n@keyframes fadeOutDown {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n  }\\n}\\n.animate__fadeOutDown {\\n  -webkit-animation-name: fadeOutDown;\\n  animation-name: fadeOutDown;\\n}\\n@-webkit-keyframes fadeOutDownBig {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, 2000px, 0);\\n    transform: translate3d(0, 2000px, 0);\\n  }\\n}\\n@keyframes fadeOutDownBig {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, 2000px, 0);\\n    transform: translate3d(0, 2000px, 0);\\n  }\\n}\\n.animate__fadeOutDownBig {\\n  -webkit-animation-name: fadeOutDownBig;\\n  animation-name: fadeOutDownBig;\\n}\\n@-webkit-keyframes fadeOutLeft {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-100%, 0, 0);\\n    transform: translate3d(-100%, 0, 0);\\n  }\\n}\\n@keyframes fadeOutLeft {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-100%, 0, 0);\\n    transform: translate3d(-100%, 0, 0);\\n  }\\n}\\n.animate__fadeOutLeft {\\n  -webkit-animation-name: fadeOutLeft;\\n  animation-name: fadeOutLeft;\\n}\\n@-webkit-keyframes fadeOutLeftBig {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-2000px, 0, 0);\\n    transform: translate3d(-2000px, 0, 0);\\n  }\\n}\\n@keyframes fadeOutLeftBig {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-2000px, 0, 0);\\n    transform: translate3d(-2000px, 0, 0);\\n  }\\n}\\n.animate__fadeOutLeftBig {\\n  -webkit-animation-name: fadeOutLeftBig;\\n  animation-name: fadeOutLeftBig;\\n}\\n@-webkit-keyframes fadeOutRight {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(100%, 0, 0);\\n    transform: translate3d(100%, 0, 0);\\n  }\\n}\\n@keyframes fadeOutRight {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(100%, 0, 0);\\n    transform: translate3d(100%, 0, 0);\\n  }\\n}\\n.animate__fadeOutRight {\\n  -webkit-animation-name: fadeOutRight;\\n  animation-name: fadeOutRight;\\n}\\n@-webkit-keyframes fadeOutRightBig {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(2000px, 0, 0);\\n    transform: translate3d(2000px, 0, 0);\\n  }\\n}\\n@keyframes fadeOutRightBig {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(2000px, 0, 0);\\n    transform: translate3d(2000px, 0, 0);\\n  }\\n}\\n.animate__fadeOutRightBig {\\n  -webkit-animation-name: fadeOutRightBig;\\n  animation-name: fadeOutRightBig;\\n}\\n@-webkit-keyframes fadeOutUp {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, -100%, 0);\\n    transform: translate3d(0, -100%, 0);\\n  }\\n}\\n@keyframes fadeOutUp {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, -100%, 0);\\n    transform: translate3d(0, -100%, 0);\\n  }\\n}\\n.animate__fadeOutUp {\\n  -webkit-animation-name: fadeOutUp;\\n  animation-name: fadeOutUp;\\n}\\n@-webkit-keyframes fadeOutUpBig {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, -2000px, 0);\\n    transform: translate3d(0, -2000px, 0);\\n  }\\n}\\n@keyframes fadeOutUpBig {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(0, -2000px, 0);\\n    transform: translate3d(0, -2000px, 0);\\n  }\\n}\\n.animate__fadeOutUpBig {\\n  -webkit-animation-name: fadeOutUpBig;\\n  animation-name: fadeOutUpBig;\\n}\\n@-webkit-keyframes fadeOutTopLeft {\\n  from {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-100%, -100%, 0);\\n    transform: translate3d(-100%, -100%, 0);\\n  }\\n}\\n@keyframes fadeOutTopLeft {\\n  from {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-100%, -100%, 0);\\n    transform: translate3d(-100%, -100%, 0);\\n  }\\n}\\n.animate__fadeOutTopLeft {\\n  -webkit-animation-name: fadeOutTopLeft;\\n  animation-name: fadeOutTopLeft;\\n}\\n@-webkit-keyframes fadeOutTopRight {\\n  from {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(100%, -100%, 0);\\n    transform: translate3d(100%, -100%, 0);\\n  }\\n}\\n@keyframes fadeOutTopRight {\\n  from {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(100%, -100%, 0);\\n    transform: translate3d(100%, -100%, 0);\\n  }\\n}\\n.animate__fadeOutTopRight {\\n  -webkit-animation-name: fadeOutTopRight;\\n  animation-name: fadeOutTopRight;\\n}\\n@-webkit-keyframes fadeOutBottomRight {\\n  from {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(100%, 100%, 0);\\n    transform: translate3d(100%, 100%, 0);\\n  }\\n}\\n@keyframes fadeOutBottomRight {\\n  from {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(100%, 100%, 0);\\n    transform: translate3d(100%, 100%, 0);\\n  }\\n}\\n.animate__fadeOutBottomRight {\\n  -webkit-animation-name: fadeOutBottomRight;\\n  animation-name: fadeOutBottomRight;\\n}\\n@-webkit-keyframes fadeOutBottomLeft {\\n  from {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-100%, 100%, 0);\\n    transform: translate3d(-100%, 100%, 0);\\n  }\\n}\\n@keyframes fadeOutBottomLeft {\\n  from {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-100%, 100%, 0);\\n    transform: translate3d(-100%, 100%, 0);\\n  }\\n}\\n.animate__fadeOutBottomLeft {\\n  -webkit-animation-name: fadeOutBottomLeft;\\n  animation-name: fadeOutBottomLeft;\\n}\\n/* Flippers */\\n@-webkit-keyframes flip {\\n  from {\\n    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\\n    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\\n    -webkit-animation-timing-function: ease-out;\\n    animation-timing-function: ease-out;\\n  }\\n\\n  40% {\\n    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\\n      rotate3d(0, 1, 0, -190deg);\\n    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\\n      rotate3d(0, 1, 0, -190deg);\\n    -webkit-animation-timing-function: ease-out;\\n    animation-timing-function: ease-out;\\n  }\\n\\n  50% {\\n    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\\n      rotate3d(0, 1, 0, -170deg);\\n    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\\n      rotate3d(0, 1, 0, -170deg);\\n    -webkit-animation-timing-function: ease-in;\\n    animation-timing-function: ease-in;\\n  }\\n\\n  80% {\\n    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\\n      rotate3d(0, 1, 0, 0deg);\\n    transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\\n      rotate3d(0, 1, 0, 0deg);\\n    -webkit-animation-timing-function: ease-in;\\n    animation-timing-function: ease-in;\\n  }\\n\\n  to {\\n    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\\n    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\\n    -webkit-animation-timing-function: ease-in;\\n    animation-timing-function: ease-in;\\n  }\\n}\\n@keyframes flip {\\n  from {\\n    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\\n    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\\n    -webkit-animation-timing-function: ease-out;\\n    animation-timing-function: ease-out;\\n  }\\n\\n  40% {\\n    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\\n      rotate3d(0, 1, 0, -190deg);\\n    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\\n      rotate3d(0, 1, 0, -190deg);\\n    -webkit-animation-timing-function: ease-out;\\n    animation-timing-function: ease-out;\\n  }\\n\\n  50% {\\n    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\\n      rotate3d(0, 1, 0, -170deg);\\n    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\\n      rotate3d(0, 1, 0, -170deg);\\n    -webkit-animation-timing-function: ease-in;\\n    animation-timing-function: ease-in;\\n  }\\n\\n  80% {\\n    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\\n      rotate3d(0, 1, 0, 0deg);\\n    transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\\n      rotate3d(0, 1, 0, 0deg);\\n    -webkit-animation-timing-function: ease-in;\\n    animation-timing-function: ease-in;\\n  }\\n\\n  to {\\n    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\\n    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\\n    -webkit-animation-timing-function: ease-in;\\n    animation-timing-function: ease-in;\\n  }\\n}\\n.animate__animated.animate__flip {\\n  -webkit-backface-visibility: visible;\\n  backface-visibility: visible;\\n  -webkit-animation-name: flip;\\n  animation-name: flip;\\n}\\n@-webkit-keyframes flipInX {\\n  from {\\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\\n    -webkit-animation-timing-function: ease-in;\\n    animation-timing-function: ease-in;\\n    opacity: 0;\\n  }\\n\\n  40% {\\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\\n    -webkit-animation-timing-function: ease-in;\\n    animation-timing-function: ease-in;\\n  }\\n\\n  60% {\\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\\n    opacity: 1;\\n  }\\n\\n  80% {\\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\\n  }\\n\\n  to {\\n    -webkit-transform: perspective(400px);\\n    transform: perspective(400px);\\n  }\\n}\\n@keyframes flipInX {\\n  from {\\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\\n    -webkit-animation-timing-function: ease-in;\\n    animation-timing-function: ease-in;\\n    opacity: 0;\\n  }\\n\\n  40% {\\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\\n    -webkit-animation-timing-function: ease-in;\\n    animation-timing-function: ease-in;\\n  }\\n\\n  60% {\\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\\n    opacity: 1;\\n  }\\n\\n  80% {\\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\\n  }\\n\\n  to {\\n    -webkit-transform: perspective(400px);\\n    transform: perspective(400px);\\n  }\\n}\\n.animate__flipInX {\\n  -webkit-backface-visibility: visible !important;\\n  backface-visibility: visible !important;\\n  -webkit-animation-name: flipInX;\\n  animation-name: flipInX;\\n}\\n@-webkit-keyframes flipInY {\\n  from {\\n    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\\n    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\\n    -webkit-animation-timing-function: ease-in;\\n    animation-timing-function: ease-in;\\n    opacity: 0;\\n  }\\n\\n  40% {\\n    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\\n    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\\n    -webkit-animation-timing-function: ease-in;\\n    animation-timing-function: ease-in;\\n  }\\n\\n  60% {\\n    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\\n    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\\n    opacity: 1;\\n  }\\n\\n  80% {\\n    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\\n    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\\n  }\\n\\n  to {\\n    -webkit-transform: perspective(400px);\\n    transform: perspective(400px);\\n  }\\n}\\n@keyframes flipInY {\\n  from {\\n    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\\n    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\\n    -webkit-animation-timing-function: ease-in;\\n    animation-timing-function: ease-in;\\n    opacity: 0;\\n  }\\n\\n  40% {\\n    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\\n    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\\n    -webkit-animation-timing-function: ease-in;\\n    animation-timing-function: ease-in;\\n  }\\n\\n  60% {\\n    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\\n    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\\n    opacity: 1;\\n  }\\n\\n  80% {\\n    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\\n    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\\n  }\\n\\n  to {\\n    -webkit-transform: perspective(400px);\\n    transform: perspective(400px);\\n  }\\n}\\n.animate__flipInY {\\n  -webkit-backface-visibility: visible !important;\\n  backface-visibility: visible !important;\\n  -webkit-animation-name: flipInY;\\n  animation-name: flipInY;\\n}\\n@-webkit-keyframes flipOutX {\\n  from {\\n    -webkit-transform: perspective(400px);\\n    transform: perspective(400px);\\n  }\\n\\n  30% {\\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\\n    opacity: 0;\\n  }\\n}\\n@keyframes flipOutX {\\n  from {\\n    -webkit-transform: perspective(400px);\\n    transform: perspective(400px);\\n  }\\n\\n  30% {\\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\\n    opacity: 0;\\n  }\\n}\\n.animate__flipOutX {\\n  -webkit-animation-duration: calc(1s * 0.75);\\n  animation-duration: calc(1s * 0.75);\\n  -webkit-animation-duration: calc(var(--animate-duration) * 0.75);\\n  animation-duration: calc(var(--animate-duration) * 0.75);\\n  -webkit-animation-name: flipOutX;\\n  animation-name: flipOutX;\\n  -webkit-backface-visibility: visible !important;\\n  backface-visibility: visible !important;\\n}\\n@-webkit-keyframes flipOutY {\\n  from {\\n    -webkit-transform: perspective(400px);\\n    transform: perspective(400px);\\n  }\\n\\n  30% {\\n    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\\n    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\\n    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\\n    opacity: 0;\\n  }\\n}\\n@keyframes flipOutY {\\n  from {\\n    -webkit-transform: perspective(400px);\\n    transform: perspective(400px);\\n  }\\n\\n  30% {\\n    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\\n    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\\n    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\\n    opacity: 0;\\n  }\\n}\\n.animate__flipOutY {\\n  -webkit-animation-duration: calc(1s * 0.75);\\n  animation-duration: calc(1s * 0.75);\\n  -webkit-animation-duration: calc(var(--animate-duration) * 0.75);\\n  animation-duration: calc(var(--animate-duration) * 0.75);\\n  -webkit-backface-visibility: visible !important;\\n  backface-visibility: visible !important;\\n  -webkit-animation-name: flipOutY;\\n  animation-name: flipOutY;\\n}\\n/* Lightspeed */\\n@-webkit-keyframes lightSpeedInRight {\\n  from {\\n    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);\\n    transform: translate3d(100%, 0, 0) skewX(-30deg);\\n    opacity: 0;\\n  }\\n\\n  60% {\\n    -webkit-transform: skewX(20deg);\\n    transform: skewX(20deg);\\n    opacity: 1;\\n  }\\n\\n  80% {\\n    -webkit-transform: skewX(-5deg);\\n    transform: skewX(-5deg);\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes lightSpeedInRight {\\n  from {\\n    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);\\n    transform: translate3d(100%, 0, 0) skewX(-30deg);\\n    opacity: 0;\\n  }\\n\\n  60% {\\n    -webkit-transform: skewX(20deg);\\n    transform: skewX(20deg);\\n    opacity: 1;\\n  }\\n\\n  80% {\\n    -webkit-transform: skewX(-5deg);\\n    transform: skewX(-5deg);\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__lightSpeedInRight {\\n  -webkit-animation-name: lightSpeedInRight;\\n  animation-name: lightSpeedInRight;\\n  -webkit-animation-timing-function: ease-out;\\n  animation-timing-function: ease-out;\\n}\\n@-webkit-keyframes lightSpeedInLeft {\\n  from {\\n    -webkit-transform: translate3d(-100%, 0, 0) skewX(30deg);\\n    transform: translate3d(-100%, 0, 0) skewX(30deg);\\n    opacity: 0;\\n  }\\n\\n  60% {\\n    -webkit-transform: skewX(-20deg);\\n    transform: skewX(-20deg);\\n    opacity: 1;\\n  }\\n\\n  80% {\\n    -webkit-transform: skewX(5deg);\\n    transform: skewX(5deg);\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes lightSpeedInLeft {\\n  from {\\n    -webkit-transform: translate3d(-100%, 0, 0) skewX(30deg);\\n    transform: translate3d(-100%, 0, 0) skewX(30deg);\\n    opacity: 0;\\n  }\\n\\n  60% {\\n    -webkit-transform: skewX(-20deg);\\n    transform: skewX(-20deg);\\n    opacity: 1;\\n  }\\n\\n  80% {\\n    -webkit-transform: skewX(5deg);\\n    transform: skewX(5deg);\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__lightSpeedInLeft {\\n  -webkit-animation-name: lightSpeedInLeft;\\n  animation-name: lightSpeedInLeft;\\n  -webkit-animation-timing-function: ease-out;\\n  animation-timing-function: ease-out;\\n}\\n@-webkit-keyframes lightSpeedOutRight {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);\\n    transform: translate3d(100%, 0, 0) skewX(30deg);\\n    opacity: 0;\\n  }\\n}\\n@keyframes lightSpeedOutRight {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);\\n    transform: translate3d(100%, 0, 0) skewX(30deg);\\n    opacity: 0;\\n  }\\n}\\n.animate__lightSpeedOutRight {\\n  -webkit-animation-name: lightSpeedOutRight;\\n  animation-name: lightSpeedOutRight;\\n  -webkit-animation-timing-function: ease-in;\\n  animation-timing-function: ease-in;\\n}\\n@-webkit-keyframes lightSpeedOutLeft {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(-100%, 0, 0) skewX(-30deg);\\n    transform: translate3d(-100%, 0, 0) skewX(-30deg);\\n    opacity: 0;\\n  }\\n}\\n@keyframes lightSpeedOutLeft {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(-100%, 0, 0) skewX(-30deg);\\n    transform: translate3d(-100%, 0, 0) skewX(-30deg);\\n    opacity: 0;\\n  }\\n}\\n.animate__lightSpeedOutLeft {\\n  -webkit-animation-name: lightSpeedOutLeft;\\n  animation-name: lightSpeedOutLeft;\\n  -webkit-animation-timing-function: ease-in;\\n  animation-timing-function: ease-in;\\n}\\n/* Rotating entrances */\\n@-webkit-keyframes rotateIn {\\n  from {\\n    -webkit-transform: rotate3d(0, 0, 1, -200deg);\\n    transform: rotate3d(0, 0, 1, -200deg);\\n    opacity: 0;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n    opacity: 1;\\n  }\\n}\\n@keyframes rotateIn {\\n  from {\\n    -webkit-transform: rotate3d(0, 0, 1, -200deg);\\n    transform: rotate3d(0, 0, 1, -200deg);\\n    opacity: 0;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n    opacity: 1;\\n  }\\n}\\n.animate__rotateIn {\\n  -webkit-animation-name: rotateIn;\\n  animation-name: rotateIn;\\n  -webkit-transform-origin: center;\\n  transform-origin: center;\\n}\\n@-webkit-keyframes rotateInDownLeft {\\n  from {\\n    -webkit-transform: rotate3d(0, 0, 1, -45deg);\\n    transform: rotate3d(0, 0, 1, -45deg);\\n    opacity: 0;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n    opacity: 1;\\n  }\\n}\\n@keyframes rotateInDownLeft {\\n  from {\\n    -webkit-transform: rotate3d(0, 0, 1, -45deg);\\n    transform: rotate3d(0, 0, 1, -45deg);\\n    opacity: 0;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n    opacity: 1;\\n  }\\n}\\n.animate__rotateInDownLeft {\\n  -webkit-animation-name: rotateInDownLeft;\\n  animation-name: rotateInDownLeft;\\n  -webkit-transform-origin: left bottom;\\n  transform-origin: left bottom;\\n}\\n@-webkit-keyframes rotateInDownRight {\\n  from {\\n    -webkit-transform: rotate3d(0, 0, 1, 45deg);\\n    transform: rotate3d(0, 0, 1, 45deg);\\n    opacity: 0;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n    opacity: 1;\\n  }\\n}\\n@keyframes rotateInDownRight {\\n  from {\\n    -webkit-transform: rotate3d(0, 0, 1, 45deg);\\n    transform: rotate3d(0, 0, 1, 45deg);\\n    opacity: 0;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n    opacity: 1;\\n  }\\n}\\n.animate__rotateInDownRight {\\n  -webkit-animation-name: rotateInDownRight;\\n  animation-name: rotateInDownRight;\\n  -webkit-transform-origin: right bottom;\\n  transform-origin: right bottom;\\n}\\n@-webkit-keyframes rotateInUpLeft {\\n  from {\\n    -webkit-transform: rotate3d(0, 0, 1, 45deg);\\n    transform: rotate3d(0, 0, 1, 45deg);\\n    opacity: 0;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n    opacity: 1;\\n  }\\n}\\n@keyframes rotateInUpLeft {\\n  from {\\n    -webkit-transform: rotate3d(0, 0, 1, 45deg);\\n    transform: rotate3d(0, 0, 1, 45deg);\\n    opacity: 0;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n    opacity: 1;\\n  }\\n}\\n.animate__rotateInUpLeft {\\n  -webkit-animation-name: rotateInUpLeft;\\n  animation-name: rotateInUpLeft;\\n  -webkit-transform-origin: left bottom;\\n  transform-origin: left bottom;\\n}\\n@-webkit-keyframes rotateInUpRight {\\n  from {\\n    -webkit-transform: rotate3d(0, 0, 1, -90deg);\\n    transform: rotate3d(0, 0, 1, -90deg);\\n    opacity: 0;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n    opacity: 1;\\n  }\\n}\\n@keyframes rotateInUpRight {\\n  from {\\n    -webkit-transform: rotate3d(0, 0, 1, -90deg);\\n    transform: rotate3d(0, 0, 1, -90deg);\\n    opacity: 0;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n    opacity: 1;\\n  }\\n}\\n.animate__rotateInUpRight {\\n  -webkit-animation-name: rotateInUpRight;\\n  animation-name: rotateInUpRight;\\n  -webkit-transform-origin: right bottom;\\n  transform-origin: right bottom;\\n}\\n/* Rotating exits */\\n@-webkit-keyframes rotateOut {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: rotate3d(0, 0, 1, 200deg);\\n    transform: rotate3d(0, 0, 1, 200deg);\\n    opacity: 0;\\n  }\\n}\\n@keyframes rotateOut {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: rotate3d(0, 0, 1, 200deg);\\n    transform: rotate3d(0, 0, 1, 200deg);\\n    opacity: 0;\\n  }\\n}\\n.animate__rotateOut {\\n  -webkit-animation-name: rotateOut;\\n  animation-name: rotateOut;\\n  -webkit-transform-origin: center;\\n  transform-origin: center;\\n}\\n@-webkit-keyframes rotateOutDownLeft {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: rotate3d(0, 0, 1, 45deg);\\n    transform: rotate3d(0, 0, 1, 45deg);\\n    opacity: 0;\\n  }\\n}\\n@keyframes rotateOutDownLeft {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: rotate3d(0, 0, 1, 45deg);\\n    transform: rotate3d(0, 0, 1, 45deg);\\n    opacity: 0;\\n  }\\n}\\n.animate__rotateOutDownLeft {\\n  -webkit-animation-name: rotateOutDownLeft;\\n  animation-name: rotateOutDownLeft;\\n  -webkit-transform-origin: left bottom;\\n  transform-origin: left bottom;\\n}\\n@-webkit-keyframes rotateOutDownRight {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: rotate3d(0, 0, 1, -45deg);\\n    transform: rotate3d(0, 0, 1, -45deg);\\n    opacity: 0;\\n  }\\n}\\n@keyframes rotateOutDownRight {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: rotate3d(0, 0, 1, -45deg);\\n    transform: rotate3d(0, 0, 1, -45deg);\\n    opacity: 0;\\n  }\\n}\\n.animate__rotateOutDownRight {\\n  -webkit-animation-name: rotateOutDownRight;\\n  animation-name: rotateOutDownRight;\\n  -webkit-transform-origin: right bottom;\\n  transform-origin: right bottom;\\n}\\n@-webkit-keyframes rotateOutUpLeft {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: rotate3d(0, 0, 1, -45deg);\\n    transform: rotate3d(0, 0, 1, -45deg);\\n    opacity: 0;\\n  }\\n}\\n@keyframes rotateOutUpLeft {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: rotate3d(0, 0, 1, -45deg);\\n    transform: rotate3d(0, 0, 1, -45deg);\\n    opacity: 0;\\n  }\\n}\\n.animate__rotateOutUpLeft {\\n  -webkit-animation-name: rotateOutUpLeft;\\n  animation-name: rotateOutUpLeft;\\n  -webkit-transform-origin: left bottom;\\n  transform-origin: left bottom;\\n}\\n@-webkit-keyframes rotateOutUpRight {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: rotate3d(0, 0, 1, 90deg);\\n    transform: rotate3d(0, 0, 1, 90deg);\\n    opacity: 0;\\n  }\\n}\\n@keyframes rotateOutUpRight {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: rotate3d(0, 0, 1, 90deg);\\n    transform: rotate3d(0, 0, 1, 90deg);\\n    opacity: 0;\\n  }\\n}\\n.animate__rotateOutUpRight {\\n  -webkit-animation-name: rotateOutUpRight;\\n  animation-name: rotateOutUpRight;\\n  -webkit-transform-origin: right bottom;\\n  transform-origin: right bottom;\\n}\\n/* Specials */\\n@-webkit-keyframes hinge {\\n  0% {\\n    -webkit-animation-timing-function: ease-in-out;\\n    animation-timing-function: ease-in-out;\\n  }\\n\\n  20%,\\n  60% {\\n    -webkit-transform: rotate3d(0, 0, 1, 80deg);\\n    transform: rotate3d(0, 0, 1, 80deg);\\n    -webkit-animation-timing-function: ease-in-out;\\n    animation-timing-function: ease-in-out;\\n  }\\n\\n  40%,\\n  80% {\\n    -webkit-transform: rotate3d(0, 0, 1, 60deg);\\n    transform: rotate3d(0, 0, 1, 60deg);\\n    -webkit-animation-timing-function: ease-in-out;\\n    animation-timing-function: ease-in-out;\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 700px, 0);\\n    transform: translate3d(0, 700px, 0);\\n    opacity: 0;\\n  }\\n}\\n@keyframes hinge {\\n  0% {\\n    -webkit-animation-timing-function: ease-in-out;\\n    animation-timing-function: ease-in-out;\\n  }\\n\\n  20%,\\n  60% {\\n    -webkit-transform: rotate3d(0, 0, 1, 80deg);\\n    transform: rotate3d(0, 0, 1, 80deg);\\n    -webkit-animation-timing-function: ease-in-out;\\n    animation-timing-function: ease-in-out;\\n  }\\n\\n  40%,\\n  80% {\\n    -webkit-transform: rotate3d(0, 0, 1, 60deg);\\n    transform: rotate3d(0, 0, 1, 60deg);\\n    -webkit-animation-timing-function: ease-in-out;\\n    animation-timing-function: ease-in-out;\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 700px, 0);\\n    transform: translate3d(0, 700px, 0);\\n    opacity: 0;\\n  }\\n}\\n.animate__hinge {\\n  -webkit-animation-duration: calc(1s * 2);\\n  animation-duration: calc(1s * 2);\\n  -webkit-animation-duration: calc(var(--animate-duration) * 2);\\n  animation-duration: calc(var(--animate-duration) * 2);\\n  -webkit-animation-name: hinge;\\n  animation-name: hinge;\\n  -webkit-transform-origin: top left;\\n  transform-origin: top left;\\n}\\n@-webkit-keyframes jackInTheBox {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: scale(0.1) rotate(30deg);\\n    transform: scale(0.1) rotate(30deg);\\n    -webkit-transform-origin: center bottom;\\n    transform-origin: center bottom;\\n  }\\n\\n  50% {\\n    -webkit-transform: rotate(-10deg);\\n    transform: rotate(-10deg);\\n  }\\n\\n  70% {\\n    -webkit-transform: rotate(3deg);\\n    transform: rotate(3deg);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n  }\\n}\\n@keyframes jackInTheBox {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: scale(0.1) rotate(30deg);\\n    transform: scale(0.1) rotate(30deg);\\n    -webkit-transform-origin: center bottom;\\n    transform-origin: center bottom;\\n  }\\n\\n  50% {\\n    -webkit-transform: rotate(-10deg);\\n    transform: rotate(-10deg);\\n  }\\n\\n  70% {\\n    -webkit-transform: rotate(3deg);\\n    transform: rotate(3deg);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: scale(1);\\n    transform: scale(1);\\n  }\\n}\\n.animate__jackInTheBox {\\n  -webkit-animation-name: jackInTheBox;\\n  animation-name: jackInTheBox;\\n}\\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\\n@-webkit-keyframes rollIn {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\\n    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes rollIn {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\\n    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\\n  }\\n\\n  to {\\n    opacity: 1;\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__rollIn {\\n  -webkit-animation-name: rollIn;\\n  animation-name: rollIn;\\n}\\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\\n@-webkit-keyframes rollOut {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\\n    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\\n  }\\n}\\n@keyframes rollOut {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\\n    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\\n  }\\n}\\n.animate__rollOut {\\n  -webkit-animation-name: rollOut;\\n  animation-name: rollOut;\\n}\\n/* Zooming entrances */\\n@-webkit-keyframes zoomIn {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.3, 0.3, 0.3);\\n    transform: scale3d(0.3, 0.3, 0.3);\\n  }\\n\\n  50% {\\n    opacity: 1;\\n  }\\n}\\n@keyframes zoomIn {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.3, 0.3, 0.3);\\n    transform: scale3d(0.3, 0.3, 0.3);\\n  }\\n\\n  50% {\\n    opacity: 1;\\n  }\\n}\\n.animate__zoomIn {\\n  -webkit-animation-name: zoomIn;\\n  animation-name: zoomIn;\\n}\\n@-webkit-keyframes zoomInDown {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n  }\\n}\\n@keyframes zoomInDown {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n  }\\n}\\n.animate__zoomInDown {\\n  -webkit-animation-name: zoomInDown;\\n  animation-name: zoomInDown;\\n}\\n@-webkit-keyframes zoomInLeft {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n  }\\n}\\n@keyframes zoomInLeft {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n  }\\n}\\n.animate__zoomInLeft {\\n  -webkit-animation-name: zoomInLeft;\\n  animation-name: zoomInLeft;\\n}\\n@-webkit-keyframes zoomInRight {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n  }\\n}\\n@keyframes zoomInRight {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n  }\\n}\\n.animate__zoomInRight {\\n  -webkit-animation-name: zoomInRight;\\n  animation-name: zoomInRight;\\n}\\n@-webkit-keyframes zoomInUp {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n  }\\n}\\n@keyframes zoomInUp {\\n  from {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n  }\\n\\n  60% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n  }\\n}\\n.animate__zoomInUp {\\n  -webkit-animation-name: zoomInUp;\\n  animation-name: zoomInUp;\\n}\\n/* Zooming exits */\\n@-webkit-keyframes zoomOut {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  50% {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.3, 0.3, 0.3);\\n    transform: scale3d(0.3, 0.3, 0.3);\\n  }\\n\\n  to {\\n    opacity: 0;\\n  }\\n}\\n@keyframes zoomOut {\\n  from {\\n    opacity: 1;\\n  }\\n\\n  50% {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.3, 0.3, 0.3);\\n    transform: scale3d(0.3, 0.3, 0.3);\\n  }\\n\\n  to {\\n    opacity: 0;\\n  }\\n}\\n.animate__zoomOut {\\n  -webkit-animation-name: zoomOut;\\n  animation-name: zoomOut;\\n}\\n@-webkit-keyframes zoomOutDown {\\n  40% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n  }\\n}\\n@keyframes zoomOutDown {\\n  40% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n  }\\n}\\n.animate__zoomOutDown {\\n  -webkit-animation-name: zoomOutDown;\\n  animation-name: zoomOutDown;\\n  -webkit-transform-origin: center bottom;\\n  transform-origin: center bottom;\\n}\\n@-webkit-keyframes zoomOutLeft {\\n  40% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);\\n    transform: scale(0.1) translate3d(-2000px, 0, 0);\\n  }\\n}\\n@keyframes zoomOutLeft {\\n  40% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);\\n    transform: scale(0.1) translate3d(-2000px, 0, 0);\\n  }\\n}\\n.animate__zoomOutLeft {\\n  -webkit-animation-name: zoomOutLeft;\\n  animation-name: zoomOutLeft;\\n  -webkit-transform-origin: left center;\\n  transform-origin: left center;\\n}\\n@-webkit-keyframes zoomOutRight {\\n  40% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);\\n    transform: scale(0.1) translate3d(2000px, 0, 0);\\n  }\\n}\\n@keyframes zoomOutRight {\\n  40% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);\\n    transform: scale(0.1) translate3d(2000px, 0, 0);\\n  }\\n}\\n.animate__zoomOutRight {\\n  -webkit-animation-name: zoomOutRight;\\n  animation-name: zoomOutRight;\\n  -webkit-transform-origin: right center;\\n  transform-origin: right center;\\n}\\n@-webkit-keyframes zoomOutUp {\\n  40% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n  }\\n}\\n@keyframes zoomOutUp {\\n  40% {\\n    opacity: 1;\\n    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\\n    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\\n  }\\n\\n  to {\\n    opacity: 0;\\n    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\\n    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\\n  }\\n}\\n.animate__zoomOutUp {\\n  -webkit-animation-name: zoomOutUp;\\n  animation-name: zoomOutUp;\\n  -webkit-transform-origin: center bottom;\\n  transform-origin: center bottom;\\n}\\n/* Sliding entrances */\\n@-webkit-keyframes slideInDown {\\n  from {\\n    -webkit-transform: translate3d(0, -100%, 0);\\n    transform: translate3d(0, -100%, 0);\\n    visibility: visible;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes slideInDown {\\n  from {\\n    -webkit-transform: translate3d(0, -100%, 0);\\n    transform: translate3d(0, -100%, 0);\\n    visibility: visible;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__slideInDown {\\n  -webkit-animation-name: slideInDown;\\n  animation-name: slideInDown;\\n}\\n@-webkit-keyframes slideInLeft {\\n  from {\\n    -webkit-transform: translate3d(-100%, 0, 0);\\n    transform: translate3d(-100%, 0, 0);\\n    visibility: visible;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes slideInLeft {\\n  from {\\n    -webkit-transform: translate3d(-100%, 0, 0);\\n    transform: translate3d(-100%, 0, 0);\\n    visibility: visible;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__slideInLeft {\\n  -webkit-animation-name: slideInLeft;\\n  animation-name: slideInLeft;\\n}\\n@-webkit-keyframes slideInRight {\\n  from {\\n    -webkit-transform: translate3d(100%, 0, 0);\\n    transform: translate3d(100%, 0, 0);\\n    visibility: visible;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes slideInRight {\\n  from {\\n    -webkit-transform: translate3d(100%, 0, 0);\\n    transform: translate3d(100%, 0, 0);\\n    visibility: visible;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__slideInRight {\\n  -webkit-animation-name: slideInRight;\\n  animation-name: slideInRight;\\n}\\n@-webkit-keyframes slideInUp {\\n  from {\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n    visibility: visible;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n@keyframes slideInUp {\\n  from {\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n    visibility: visible;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n.animate__slideInUp {\\n  -webkit-animation-name: slideInUp;\\n  animation-name: slideInUp;\\n}\\n/* Sliding exits */\\n@-webkit-keyframes slideOutDown {\\n  from {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  to {\\n    visibility: hidden;\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n  }\\n}\\n@keyframes slideOutDown {\\n  from {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  to {\\n    visibility: hidden;\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n  }\\n}\\n.animate__slideOutDown {\\n  -webkit-animation-name: slideOutDown;\\n  animation-name: slideOutDown;\\n}\\n@-webkit-keyframes slideOutLeft {\\n  from {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  to {\\n    visibility: hidden;\\n    -webkit-transform: translate3d(-100%, 0, 0);\\n    transform: translate3d(-100%, 0, 0);\\n  }\\n}\\n@keyframes slideOutLeft {\\n  from {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  to {\\n    visibility: hidden;\\n    -webkit-transform: translate3d(-100%, 0, 0);\\n    transform: translate3d(-100%, 0, 0);\\n  }\\n}\\n.animate__slideOutLeft {\\n  -webkit-animation-name: slideOutLeft;\\n  animation-name: slideOutLeft;\\n}\\n@-webkit-keyframes slideOutRight {\\n  from {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  to {\\n    visibility: hidden;\\n    -webkit-transform: translate3d(100%, 0, 0);\\n    transform: translate3d(100%, 0, 0);\\n  }\\n}\\n@keyframes slideOutRight {\\n  from {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  to {\\n    visibility: hidden;\\n    -webkit-transform: translate3d(100%, 0, 0);\\n    transform: translate3d(100%, 0, 0);\\n  }\\n}\\n.animate__slideOutRight {\\n  -webkit-animation-name: slideOutRight;\\n  animation-name: slideOutRight;\\n}\\n@-webkit-keyframes slideOutUp {\\n  from {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  to {\\n    visibility: hidden;\\n    -webkit-transform: translate3d(0, -100%, 0);\\n    transform: translate3d(0, -100%, 0);\\n  }\\n}\\n@keyframes slideOutUp {\\n  from {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  to {\\n    visibility: hidden;\\n    -webkit-transform: translate3d(0, -100%, 0);\\n    transform: translate3d(0, -100%, 0);\\n  }\\n}\\n.animate__slideOutUp {\\n  -webkit-animation-name: slideOutUp;\\n  animation-name: slideOutUp;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./node_modules/animate.css/animate.css?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-3-1!./node_modules/postcss-loader/src??ref--6-oneOf-3-2");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/handsontable/dist/handsontable.full.min.css":
/*!******************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-3-1!./node_modules/postcss-loader/src??ref--6-oneOf-3-2!./node_modules/handsontable/dist/handsontable.full.min.css ***!
  \******************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"/*!\\n * Copyright (c) HANDSONCODE sp. z o. o.\\n *\\n * HANDSONTABLE is a software distributed by HANDSONCODE sp. z o. o., a Polish corporation based in\\n * Gdynia, Poland, at Aleja Zwyciestwa 96-98, registered by the District Court in Gdansk under number\\n * 538651, EU tax ID number: PL5862294002, share capital: PLN 62,800.00.\\n *\\n * This software is protected by applicable copyright laws, including international treaties, and dual-\\n * licensed - depending on whether your use for commercial purposes, meaning intended for or\\n * resulting in commercial advantage or monetary compensation, or not.\\n *\\n * If your use is strictly personal or solely for evaluation purposes, meaning for the purposes of testing\\n * the suitability, performance, and usefulness of this software outside the production environment,\\n * you agree to be bound by the terms included in the \\\"handsontable-non-commercial-license.pdf\\\" file.\\n *\\n * Your use of this software for commercial purposes is subject to the terms included in an applicable\\n * license agreement.\\n *\\n * In any case, you must not make any such use of this software as to develop software which may be\\n * considered competitive with this software.\\n *\\n * UNLESS EXPRESSLY AGREED OTHERWISE, HANDSONCODE PROVIDES THIS SOFTWARE ON AN \\\"AS IS\\\"\\n * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, AND IN NO EVENT AND UNDER NO\\n * LEGAL THEORY, SHALL HANDSONCODE BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT,\\n * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM\\n * USE OR INABILITY TO USE THIS SOFTWARE.\\n *\\n * Version: 14.5.0\\n * Release date: 30/07/2024 (built at 30/07/2024 11:22:38)\\n */.handsontable .table td,.handsontable .table th{border-top:none}.handsontable tr{background:#fff}.handsontable td{background-color:inherit}.handsontable .table caption+thead tr:first-child td,.handsontable .table caption+thead tr:first-child th,.handsontable .table colgroup+thead tr:first-child td,.handsontable .table colgroup+thead tr:first-child th,.handsontable .table thead:first-child tr:first-child td,.handsontable .table thead:first-child tr:first-child th{border-top:1px solid #ccc}.handsontable .table-bordered{border:0;border-collapse:separate}.handsontable .table-bordered td,.handsontable .table-bordered th{border-left:none}.handsontable .table-bordered td:first-child,.handsontable .table-bordered th:first-child{border-left:1px solid #ccc}.handsontable .table>tbody>tr>td,.handsontable .table>tbody>tr>th,.handsontable .table>tfoot>tr>td,.handsontable .table>tfoot>tr>th,.handsontable .table>thead>tr>td,.handsontable .table>thead>tr>th{line-height:21px;padding:0}.col-lg-1.handsontable,.col-lg-10.handsontable,.col-lg-11.handsontable,.col-lg-12.handsontable,.col-lg-2.handsontable,.col-lg-3.handsontable,.col-lg-4.handsontable,.col-lg-5.handsontable,.col-lg-6.handsontable,.col-lg-7.handsontable,.col-lg-8.handsontable,.col-lg-9.handsontable,.col-md-1.handsontable,.col-md-10.handsontable,.col-md-11.handsontable,.col-md-12.handsontable,.col-md-2.handsontable,.col-md-3.handsontable,.col-md-4.handsontable,.col-md-5.handsontable,.col-md-6.handsontable,.col-md-7.handsontable,.col-md-8.handsontable,.col-md-9.handsontable .col-sm-1.handsontable,.col-sm-10.handsontable,.col-sm-11.handsontable,.col-sm-12.handsontable,.col-sm-2.handsontable,.col-sm-3.handsontable,.col-sm-4.handsontable,.col-sm-5.handsontable,.col-sm-6.handsontable,.col-sm-7.handsontable,.col-sm-8.handsontable,.col-sm-9.handsontable .col-xs-1.handsontable,.col-xs-10.handsontable,.col-xs-11.handsontable,.col-xs-12.handsontable,.col-xs-2.handsontable,.col-xs-3.handsontable,.col-xs-4.handsontable,.col-xs-5.handsontable,.col-xs-6.handsontable,.col-xs-7.handsontable,.col-xs-8.handsontable,.col-xs-9.handsontable{padding-left:0;padding-right:0}.handsontable .table-striped>tbody>tr:nth-of-type(2n){background-color:#fff}.handsontable{position:relative}.handsontable .hide{display:none}.handsontable .relative{position:relative}.handsontable .wtHider{width:0}.handsontable .wtSpreader{height:auto;position:relative;width:0}.handsontable div,.handsontable input,.handsontable table,.handsontable tbody,.handsontable td,.handsontable textarea,.handsontable th,.handsontable thead{box-sizing:content-box;-webkit-box-sizing:content-box;-moz-box-sizing:content-box}.handsontable input,.handsontable textarea{min-height:auto}.handsontable table.htCore{border-collapse:separate;border-spacing:0;border-width:0;cursor:default;margin:0;max-height:none;max-width:none;outline-width:0;table-layout:fixed;width:0}.handsontable col,.handsontable col.rowHeader{width:50px}.handsontable td,.handsontable th{background-color:#fff;border-bottom:1px solid #ccc;border-left-width:0;border-right:1px solid #ccc;border-top-width:0;empty-cells:show;height:22px;line-height:21px;outline:none;outline-width:0;overflow:hidden;padding:0 4px;vertical-align:top;white-space:pre-wrap}[dir=rtl].handsontable td,[dir=rtl].handsontable th{border-left:1px solid #ccc;border-right-width:0}.handsontable th:last-child{border-bottom:1px solid #ccc;border-left:none;border-right:1px solid #ccc}[dir=rtl].handsontable th:last-child{border-left:1px solid #ccc;border-right:none}.handsontable td:first-of-type,.handsontable th:first-child{border-left:1px solid #ccc}[dir=rtl].handsontable td:first-of-type,[dir=rtl].handsontable th:first-child{border-right:1px solid #ccc}.handsontable .ht_clone_top th:nth-child(2){border-left-width:0;border-right:1px solid #ccc}[dir=rtl].handsontable .ht_clone_top th:nth-child(2){border-left:1px solid #ccc;border-right-width:0}.handsontable.htRowHeaders thead tr th:nth-child(2){border-left:1px solid #ccc}[dir=rtl].handsontable.htRowHeaders thead tr th:nth-child(2){border-right:1px solid #ccc}.handsontable tr:first-child td,.handsontable tr:first-child th{border-top:1px solid #ccc}.ht_master:not(.innerBorderInlineStart):not(.emptyColumns) tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.htGhostTable) tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top):not(.htGhostTable) thead tr th:first-child{border-left:1px solid #ccc;border-right-width:0}[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.htGhostTable) tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top):not(.htGhostTable) thead tr th:first-child{border-left-width:0;border-right:1px solid #ccc}.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr:last-child th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr:last-child th{border-bottom-width:0}.handsontable th{background-color:#f0f0f0;color:#222;font-weight:400;text-align:center;white-space:nowrap}.handsontable thead th{padding:0}.handsontable th.active{background-color:#ccc}.handsontable thead th .relative{padding:2px 4px}.handsontable span.colHeader{display:inline-block;line-height:1.1}.handsontable .wtBorder{font-size:0;position:absolute}.handsontable .wtBorder.hidden{display:none!important}.handsontable .wtBorder.current{z-index:10}.handsontable .wtBorder.area{z-index:8}.handsontable .wtBorder.fill{z-index:6}.handsontable .wtBorder.corner{cursor:crosshair;font-size:0}.ht_clone_master{z-index:100}.ht_clone_inline_start{z-index:120}.ht_clone_bottom{z-index:130}.ht_clone_bottom_inline_start_corner{z-index:150}.ht_clone_top{z-index:160}.ht_clone_top_inline_start_corner{z-index:180}.handsontable col.hidden{width:0!important}.handsontable tr.hidden,.handsontable tr.hidden td,.handsontable tr.hidden th{display:none}.ht_clone_bottom,.ht_clone_inline_start,.ht_clone_top,.ht_master{overflow:hidden}.ht_master .wtHolder{overflow:auto}.handsontable .ht_clone_inline_start table.htCore>thead,.handsontable .ht_master table.htCore>tbody>tr>th,.handsontable .ht_master table.htCore>thead{visibility:hidden}.ht_clone_bottom .wtHolder,.ht_clone_inline_start .wtHolder,.ht_clone_top .wtHolder{overflow:hidden}.handsontable{color:#373737;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Arial,sans-serif;font-size:13px;font-weight:400;-ms-touch-action:manipulation;touch-action:manipulation}.handsontable a{color:#104acc}.handsontable.htAutoSize{left:-99000px;position:absolute;top:-99000px;visibility:hidden}.handsontable td.htInvalid{background-color:#ffbeba!important}.handsontable td.htNoWrap{white-space:nowrap}.handsontable td.invisibleSelection,.handsontable th.invisibleSelection{outline:none}.handsontable td.invisibleSelection::-moz-selection,.handsontable th.invisibleSelection::-moz-selection{background:hsla(0,0%,100%,0)}.handsontable td.invisibleSelection::selection,.handsontable th.invisibleSelection::selection{background:hsla(0,0%,100%,0)}.hot-display-license-info{color:#373737;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Arial,sans-serif;font-size:10px;font-weight:400;padding:5px 0 3px;text-align:left}.hot-display-license-info a{color:#104acc;font-size:10px}.handsontable .htFocusCatcher{border:0;height:0;margin:0;opacity:0;padding:0;position:absolute;width:0;z-index:-1}.handsontable .manualColumnResizer{cursor:col-resize;height:25px;position:absolute;top:0;width:5px;z-index:210}.handsontable .manualRowResizer{cursor:row-resize;height:5px;left:0;position:absolute;width:50px;z-index:210}.handsontable .manualColumnResizer.active,.handsontable .manualColumnResizer:hover,.handsontable .manualRowResizer.active,.handsontable .manualRowResizer:hover{background-color:#34a9db}.handsontable .manualColumnResizerGuide{background-color:#34a9db;border-left:none;border-right:1px dashed #777;display:none;margin-left:5px;margin-right:unset;position:absolute;right:unset;top:0;width:0}[dir=rtl].handsontable .manualColumnResizerGuide{border-left:1px dashed #777;border-right:none;left:unset;margin-left:unset;margin-right:5px}.handsontable .manualRowResizerGuide{background-color:#34a9db;border-bottom:1px dashed #777;bottom:0;display:none;height:0;left:0;margin-top:5px;position:absolute}.handsontable .manualColumnResizerGuide.active,.handsontable .manualRowResizerGuide.active{display:block;z-index:209}.handsontable td.area,.handsontable td.area-1,.handsontable td.area-2,.handsontable td.area-3,.handsontable td.area-4,.handsontable td.area-5,.handsontable td.area-6,.handsontable td.area-7{position:relative}.handsontable td.area-1:before,.handsontable td.area-2:before,.handsontable td.area-3:before,.handsontable td.area-4:before,.handsontable td.area-5:before,.handsontable td.area-6:before,.handsontable td.area-7:before,.handsontable td.area:before{background:#005eff;bottom:0;bottom:-100%\\\\9;content:\\\"\\\";left:0;position:absolute;right:0;top:0}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.handsontable td.area-1:before,.handsontable td.area-2:before,.handsontable td.area-3:before,.handsontable td.area-4:before,.handsontable td.area-5:before,.handsontable td.area-6:before,.handsontable td.area-7:before,.handsontable td.area:before{bottom:-100%}}.handsontable td.area:before{opacity:.1}.handsontable td.area-1:before{opacity:.2}.handsontable td.area-2:before{opacity:.27}.handsontable td.area-3:before{opacity:.35}.handsontable td.area-4:before{opacity:.41}.handsontable td.area-5:before{opacity:.47}.handsontable td.area-6:before{opacity:.54}.handsontable td.area-7:before{opacity:.58}.handsontable tbody th.current,.handsontable thead th.current{-webkit-box-shadow:inset 0 0 0 2px #4b89ff;box-shadow:inset 0 0 0 2px #4b89ff}.handsontable tbody th.ht__highlight,.handsontable thead th.ht__highlight{background-color:#dcdcdc}.handsontable tbody th.ht__active_highlight,.handsontable thead th.ht__active_highlight{background-color:#8eb0e7;color:#000}.handsontableInput{background-color:#fff;border:none;border-radius:0;-webkit-box-shadow:inset 0 0 0 2px #5292f7;box-shadow:inset 0 0 0 2px #5292f7;color:#000;display:block;font-family:inherit;font-size:inherit;line-height:21px;margin:0;outline-width:0;padding:1px 5px 0;resize:none}.handsontableInput:focus{outline:none}.handsontableInputHolder{left:0;position:absolute;top:0}.htSelectEditor{-webkit-appearance:menulist-button!important;position:absolute;width:auto}.htSelectEditor:focus{outline:none}.handsontable .htDimmed{color:#777}.handsontable .htSubmenu{position:relative}.handsontable .htSubmenu :after{color:#777;content:\\\"▶\\\";font-size:9px;position:absolute;right:5px}[dir=rtl].handsontable .htSubmenu :after{content:\\\"\\\"}[dir=rtl].handsontable .htSubmenu :before{color:#777;content:\\\"◀\\\";font-size:9px;left:5px;position:absolute}.handsontable .htLeft{text-align:left}.handsontable .htCenter{text-align:center}.handsontable .htRight{text-align:right}.handsontable .htJustify{text-align:justify}.handsontable .htTop{vertical-align:top}.handsontable .htMiddle{vertical-align:middle}.handsontable .htBottom{vertical-align:bottom}.handsontable .htPlaceholder{color:#999}.handsontable.listbox{margin:0}.handsontable.listbox .ht_master table{background:#fff;border:1px solid #ccc;border-collapse:separate}.handsontable.listbox td,.handsontable.listbox th,.handsontable.listbox tr:first-child td,.handsontable.listbox tr:first-child th,.handsontable.listbox tr:last-child th{border-color:transparent!important}.handsontable.listbox td,.handsontable.listbox th{text-overflow:ellipsis;white-space:nowrap}.handsontable.listbox td.htDimmed{color:inherit;cursor:default;font-style:inherit}.handsontable.listbox .wtBorder{visibility:hidden}.handsontable.listbox tr td.current,.handsontable.listbox tr:hover td{background:#eee}.ht_editor_hidden{z-index:-1}.ht_editor_visible{z-index:200}.handsontable td.htSearchResult{background:#fcedd9;color:#583707}.handsontable.mobile,.handsontable.mobile .wtHolder{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-overflow-scrolling:touch}.handsontable.mobile .handsontableInput:focus{-webkit-appearance:none;-webkit-box-shadow:inset 0 0 0 2px #5292f7;box-shadow:inset 0 0 0 2px #5292f7}.handsontable .bottomSelectionHandle,.handsontable .bottomSelectionHandle-HitArea,.handsontable .topSelectionHandle,.handsontable .topSelectionHandle-HitArea{left:-10000px;right:unset;top:-10000px;z-index:9999}[dir=rtl].handsontable .bottomSelectionHandle,[dir=rtl].handsontable .bottomSelectionHandle-HitArea,[dir=rtl].handsontable .topSelectionHandle,[dir=rtl].handsontable .topSelectionHandle-HitArea{left:unset;right:-10000px}.handsontable.hide-tween{-webkit-animation:opacity-hide .3s;animation:opacity-hide .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}.handsontable.show-tween{-webkit-animation:opacity-show .3s;animation:opacity-show .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}\\n/*!\\n * Pikaday\\n * Copyright © 2014 David Bushell | BSD & MIT license | https://dbushell.com/\\n */.pika-single{background:#fff;border:1px solid;border-color:#ccc #ccc #bbb;color:#333;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;position:relative;z-index:9999}.pika-single:after,.pika-single:before{content:\\\" \\\";display:table}.pika-single:after{clear:both}.pika-single.is-hidden{display:none}.pika-single.is-bound{-webkit-box-shadow:0 5px 15px -5px rgba(0,0,0,.5);box-shadow:0 5px 15px -5px rgba(0,0,0,.5);position:absolute}.pika-lendar{float:left;margin:8px;width:240px}.pika-title{position:relative;text-align:center}.pika-label{background-color:#fff;display:inline-block;font-size:14px;font-weight:700;line-height:20px;margin:0;overflow:hidden;padding:5px 3px;position:relative;z-index:9999}.pika-title select{cursor:pointer;left:0;margin:0;opacity:0;position:absolute;top:5px;z-index:9998}.pika-next,.pika-prev{background-color:transparent;background-position:50%;background-repeat:no-repeat;background-size:75% 75%;border:0;cursor:pointer;display:block;height:30px;opacity:.5;outline:none;overflow:hidden;padding:0;position:relative;text-indent:20px;white-space:nowrap;width:20px}.pika-next:hover,.pika-prev:hover{opacity:1}.is-rtl .pika-next,.pika-prev{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==);float:left}.is-rtl .pika-prev,.pika-next{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=);float:right}.pika-next.is-disabled,.pika-prev.is-disabled{cursor:default;opacity:.2}.pika-select{display:inline-block}.pika-table{border:0;border-collapse:collapse;border-spacing:0;width:100%}.pika-table td,.pika-table th{padding:0;width:14.2857142857%}.pika-table th{color:#999;font-weight:700;line-height:25px}.pika-button,.pika-table th{font-size:12px;text-align:center}.pika-button{background:#f5f5f5;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-box-sizing:border-box;color:#666;cursor:pointer;display:block;height:auto;line-height:15px;margin:0;outline:none;padding:5px;width:100%}.pika-week{color:#999;font-size:11px}.is-today .pika-button{color:#3af;font-weight:700}.has-event .pika-button,.is-selected .pika-button{background:#3af;border-radius:3px;-webkit-box-shadow:inset 0 1px 3px #178fe5;box-shadow:inset 0 1px 3px #178fe5;color:#fff;font-weight:700}.has-event .pika-button{background:#005da9;-webkit-box-shadow:inset 0 1px 3px #0076c9;box-shadow:inset 0 1px 3px #0076c9}.is-disabled .pika-button,.is-inrange .pika-button{background:#d5e9f7}.is-startrange .pika-button{background:#6cb31d;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;color:#fff}.is-endrange .pika-button{background:#3af;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;color:#fff}.is-disabled .pika-button{color:#999;cursor:default;opacity:.3;pointer-events:none}.is-outside-current-month .pika-button{color:#999;opacity:.3}.is-selection-disabled{cursor:default;pointer-events:none}.pika-button:hover,.pika-row.pick-whole-week:hover .pika-button{background:#ff8000;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;color:#fff}.pika-table abbr{border-bottom:none;cursor:help}.handsontable .htAutocompleteArrow{color:#bbb;cursor:default;float:right;font-size:10px;text-align:center;width:16px}[dir=rtl].handsontable .htAutocompleteArrow{float:left}.handsontable td.htInvalid .htAutocompleteArrow{color:#555}.handsontable td.htInvalid .htAutocompleteArrow:hover{color:#1a1a1a}.handsontable td .htAutocompleteArrow:hover{color:#777}.handsontable td.area .htAutocompleteArrow{color:#d3d3d3}.handsontable .htCheckboxRendererInput{display:inline-block}.handsontable .htCheckboxRendererInput.noValue{opacity:.5}.handsontable .htCheckboxRendererLabel{cursor:pointer;display:inline-block;font-size:inherit;vertical-align:middle}.handsontable .htCheckboxRendererLabel.fullWidth{width:100%}.handsontable .collapsibleIndicator{background:#eee;border:1px solid #a6a6a6;border-radius:10px;-webkit-box-shadow:0 0 0 6px #eee;box-shadow:0 0 0 3px #eee;color:#222;cursor:pointer;font-size:10px;height:10px;left:unset;line-height:8px;position:absolute;right:5px;text-align:center;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:10px}[dir=rtl].handsontable .collapsibleIndicator{left:5px;right:unset}.handsontable[dir=ltr] thead th:has(.collapsibleIndicator) div.htRight span.colHeader{margin-right:20px}.handsontable[dir=rtl] thead th:has(.collapsibleIndicator) div.htLeft span.colHeader{margin-left:20px}.handsontable .columnSorting{position:relative}.handsontable[dir=ltr] div.htRight span[class*=ascending],.handsontable[dir=ltr] div.htRight span[class*=descending]{margin-left:-10px;margin-right:10px}.handsontable[dir=rtl] div.htLeft span[class*=ascending],.handsontable[dir=rtl] div.htLeft span[class*=descending]{margin-left:10px;margin-right:-10px}.handsontable[dir=ltr] div.htRight span[class*=ascending]:only-child,.handsontable[dir=ltr] div.htRight span[class*=descending]:only-child{margin-left:-15px;margin-right:15px}.handsontable[dir=rtl] div.htLeft span[class*=ascending]:only-child,.handsontable[dir=rtl] div.htLeft span[class*=descending]:only-child{margin-left:15px;margin-right:-15px}.handsontable .columnSorting.sortAction:hover{cursor:pointer;text-decoration:underline}.handsontable span.colHeader.columnSorting:before{background-position-x:right;background-repeat:no-repeat;background-size:contain;content:\\\"\\\";height:10px;left:unset;margin-top:-6px;padding-left:8px;padding-right:0;position:absolute;right:-9px;top:50%;width:5px}[dir=rtl].handsontable span.colHeader.columnSorting:before{background-position-x:left;left:-9px;padding-left:0;padding-right:8px;right:unset}.handsontable span.colHeader.columnSorting.ascending:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFNJREFUeAHtzjkSgCAUBNHPgsoy97+ulGXRqJE5L+xkxoYt2UdsLb5bqFINz+aLuuLn5rIu2RkO3fZpWENimNgiw6iBYRTPMLJjGFxQZ1hxxb/xBI1qC8k39CdKAAAAAElFTkSuQmCC)}.handsontable span.colHeader.columnSorting.descending:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFJJREFUeAHtzjkSgCAQRNFmQYUZ7n9dKUvru0TmvPAn3br0QfgdZ5xx6x+rQn23GqTYnq1FDcnuzZIO2WmedVqIRVxgGKEyjNgYRjKGkZ1hFIZ3I70LyM0VtU8AAAAASUVORK5CYII=)}.htGhostTable .htCore span.colHeader.columnSorting:not(.indicatorDisabled):before{content:\\\"*\\\";display:inline-block;padding-right:20px;position:relative}.handsontable .htCommentCell{position:relative}.handsontable .htCommentCell:after{border-left:6px solid transparent;border-right:none;border-top:6px solid #000;content:\\\"\\\";left:unset;position:absolute;right:0;top:0}[dir=rtl].handsontable .htCommentCell:after{border-left:none;border-right:6px solid transparent;left:0;right:unset}.htCommentsContainer .htComments{display:none;position:absolute;z-index:1059}.htCommentsContainer .htCommentTextArea{-webkit-appearance:none;background-color:#fff;border:none;border-left:3px solid #ccc;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.118),0 1px 2px rgba(0,0,0,.239);box-shadow:0 1px 3px rgba(0,0,0,.118),0 1px 2px rgba(0,0,0,.239);-webkit-box-sizing:border-box;box-sizing:border-box;font-size:12px;height:90px;outline:0!important;padding:5px;width:215px}[dir=rtl].htCommentsContainer .htCommentTextArea{border-left:none;border-right:3px solid #ccc}.htCommentsContainer .htCommentTextArea:focus{border-left:3px solid #5292f7;border-right:none;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.118),0 1px 2px rgba(0,0,0,.239),inset 0 0 0 1px #5292f7;box-shadow:0 1px 3px rgba(0,0,0,.118),0 1px 2px rgba(0,0,0,.239),inset 0 0 0 1px #5292f7}[dir=rtl].htCommentsContainer .htCommentTextArea:focus{border-left:none;border-right:3px solid #5292f7}\\n/*!\\n * Handsontable ContextMenu\\n */.htContextMenu:not(.htGhostTable){display:none;position:absolute;z-index:1060}.htContextMenu .ht_clone_bottom,.htContextMenu .ht_clone_bottom_inline_start_corner,.htContextMenu .ht_clone_inline_start,.htContextMenu .ht_clone_top,.htContextMenu .ht_clone_top_inline_start_corner{display:none}.htContextMenu .ht_master table.htCore{border-color:#ccc;border-style:solid;border-width:1px 2px 2px 1px}[dir=rtl].htContextMenu .ht_master table.htCore{border-left-width:2px;border-right-width:1px}.htContextMenu.handsontable:focus{outline:none}.htContextMenu .wtBorder{visibility:hidden}.htContextMenu table tbody tr td{background:#fff;border-width:0;cursor:pointer;overflow:hidden;padding:4px 6px 0;text-overflow:ellipsis;white-space:nowrap}.htContextMenu table tbody tr td:first-child{border-width:0}[dir=rtl].htContextMenu table tbody tr td:first-child{border-left-width:0;border-right-width:0}.htContextMenu table tbody tr td.htDimmed{color:#323232;font-style:normal}.htContextMenu table tbody tr td.current{background:#f3f3f3}.htContextMenu table tbody tr td.htSeparator{border-top:1px solid #e6e6e6;cursor:default;height:0;padding:0}.htContextMenu table tbody tr td.htDisabled{color:#999;cursor:default}.htContextMenu table tbody tr td.htDisabled:hover{background:#fff;color:#999;cursor:default}.htContextMenu table tbody tr.htHidden{display:none}.htContextMenu table tbody tr td .htItemWrapper{margin-left:10px;margin-right:6px}[dir=rtl].htContextMenu table tbody tr td .htItemWrapper{margin-left:6px;margin-right:10px}.htContextMenu table tbody tr td div span.selected{left:4px;margin-top:-2px;position:absolute;right:0}[dir=rtl].htContextMenu table tbody tr td div span.selected{left:0;right:4px}.htContextMenu .ht_master .wtHolder{overflow:hidden}textarea.HandsontableCopyPaste{opacity:0;outline:0 none!important;overflow:hidden;position:fixed!important;right:100%!important;top:0!important}\\n/*!\\n * Handsontable DropdownMenu\\n */.handsontable .changeType{background:#eee;border:1px solid #bbb;border-radius:2px;color:#bbb;float:right;font-size:9px;line-height:9px;margin:3px 1px 0 5px;padding:2px}[dir=rtl].handsontable .changeType{float:left}.handsontable[dir=rtl] .changeType{margin:3px 5px 0 1px}.handsontable .changeType:before{content:\\\"▼ \\\"}.handsontable .changeType:hover{border:1px solid #777;color:#777;cursor:pointer}.htDropdownMenu:not(.htGhostTable){display:none;position:absolute;z-index:1060}.htDropdownMenu .ht_clone_bottom,.htDropdownMenu .ht_clone_bottom_inline_start_corner,.htDropdownMenu .ht_clone_inline_start,.htDropdownMenu .ht_clone_top,.htDropdownMenu .ht_clone_top_inline_start_corner{display:none}.htDropdownMenu table.htCore{border-color:#ccc;border-style:solid;border-width:1px 2px 2px 1px}[dir=rtl].htDropdownMenu table.htCore{border-left-width:2px;border-right-width:1px}.htDropdownMenu.handsontable:focus{outline:none}.htDropdownMenu .wtBorder{visibility:hidden}.htDropdownMenu table tbody tr td{background:#fff;border-width:0;cursor:pointer;overflow:hidden;padding:4px 6px 0;text-overflow:ellipsis;white-space:nowrap}.htDropdownMenu table tbody tr td:first-child{border-width:0}[dir=rtl].htDropdownMenu table tbody tr td:first-child{border-left-width:0;border-right-width:0}.htDropdownMenu table tbody tr td.htDimmed{color:#323232;font-style:normal}.htDropdownMenu table tbody tr td.current{background:#e9e9e9}.htDropdownMenu table tbody tr td.htSeparator{border-top:1px solid #e6e6e6;cursor:default;height:0;padding:0}.htDropdownMenu table tbody tr td.htDisabled{color:#999}.htDropdownMenu table tbody tr td.htDisabled:hover{background:#fff;color:#999;cursor:default}.htDropdownMenu:not(.htGhostTable) table tbody tr.htHidden{display:none}.htDropdownMenu table tbody tr td .htItemWrapper,[dir=rtl].htDropdownMenu table tbody tr td .htItemWrapper{margin-left:10px;margin-right:10px}.htDropdownMenu table tbody tr td div span.selected{left:4px;margin-top:-2px;position:absolute;right:0}[dir=rtl].htDropdownMenu table tbody tr td div span.selected{left:0;right:4px}.htDropdownMenu .ht_master .wtHolder{overflow:hidden}\\n/*!\\n * Handsontable Filters\\n */.htFiltersConditionsMenu:not(.htGhostTable){display:none;position:absolute;z-index:1070}.htFiltersConditionsMenu .ht_clone_bottom,.htFiltersConditionsMenu .ht_clone_bottom_inline_start_corner,.htFiltersConditionsMenu .ht_clone_inline_start,.htFiltersConditionsMenu .ht_clone_top,.htFiltersConditionsMenu .ht_clone_top_inline_start_corner{display:none}.htFiltersConditionsMenu table.htCore{border-color:#bbb;border-style:solid;border-width:1px 2px 2px 1px}.htFiltersConditionsMenu .wtBorder{visibility:hidden}.htFiltersConditionsMenu table tbody tr td{background:#fff;border-width:0;cursor:pointer;overflow:hidden;padding:4px 6px 0;text-overflow:ellipsis;white-space:nowrap}.htFiltersConditionsMenu table tbody tr td:first-child{border-width:0}[dir=rtl].htFiltersConditionsMenu table tbody tr td:first-child{border-left-width:0;border-right-width:0}.htFiltersConditionsMenu table tbody tr td.htDimmed{color:#323232;font-style:normal}.htFiltersConditionsMenu table tbody tr td.current{background:#e9e9e9}.htFiltersConditionsMenu table tbody tr td.htSeparator{border-top:1px solid #e6e6e6;height:0;padding:0}.htFiltersConditionsMenu table tbody tr td.htDisabled{color:#999}.htFiltersConditionsMenu table tbody tr td.htDisabled:hover{background:#fff;color:#999;cursor:default}.htFiltersConditionsMenu table tbody tr td .htItemWrapper{margin-left:10px;margin-right:10px}.htFiltersConditionsMenu table tbody tr td div span.selected{left:4px;margin-top:-2px;position:absolute}.htFiltersConditionsMenu .ht_master .wtHolder{overflow:hidden}.handsontable .htMenuFiltering{border-bottom:1px dotted #ccc;height:135px;overflow:hidden}.handsontable .ht_master table td.htCustomMenuRenderer{background-color:#fff;cursor:auto}.handsontable .htFiltersMenuLabel{font-size:.75em}.handsontable .htFiltersMenuActionBar{padding-bottom:3px;padding-top:10px;text-align:center}.handsontable .htFiltersMenuCondition.border{border-bottom:1px dotted #ccc!important}.handsontable .htFiltersMenuCondition .htUIInput{padding:0 0 5px}.handsontable .htFiltersMenuValue{border-bottom:1px dotted #ccc!important}.handsontable .htFiltersMenuValue .htUIMultipleSelectSearch{padding:0}.handsontable .htFiltersMenuCondition .htUIInput input,.handsontable .htFiltersMenuValue .htUIMultipleSelectSearch input{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:inherit;font-size:.75em;padding:4px;width:100%}.htUIMultipleSelect .ht_master .wtHolder{overflow-y:scroll}.handsontable .htFiltersActive .changeType{background-color:#d2e0d9;border:1px solid #509272;color:#18804e}.handsontable .htUISelectAll{margin-left:0;margin-right:10px}[dir=rtl].handsontable .htUISelectAll{margin-left:10px;margin-right:0}.handsontable .htUIClearAll,.handsontable .htUISelectAll{display:inline-block}.handsontable .htUIClearAll a,.handsontable .htUISelectAll a{font-size:.75em}.handsontable .htUISelectionControls{text-align:right}[dir=rtl].handsontable .htUISelectionControls{text-align:left}.handsontable .htCheckboxRendererInput{height:1em;margin:0 5px 0 0;vertical-align:middle}[dir=rtl].handsontable .htCheckboxRendererInput{margin-left:5px;margin-right:0}.handsontable .htUIInput{padding:3px 0 7px;position:relative;text-align:center}.handsontable .htUIInput input{border:1px solid #d2d1d1;border-radius:2px}.handsontable .htUIInputIcon{position:absolute}.handsontable .htUIInput.htUIButton{cursor:pointer;display:inline-block}.handsontable .htUIInput.htUIButton input{background-color:#eee;color:#000;cursor:pointer;font-family:inherit;font-size:.75em;font-weight:700;height:19px;min-width:64px}.handsontable .htUIInput.htUIButton input:hover{border-color:#b9b9b9}.handsontable .htUIInput.htUIButtonOK{margin-left:0;margin-right:10px}[dir=rtl].handsontable .htUIInput.htUIButtonOK{margin-left:10px;margin-right:0}.handsontable .htUIInput.htUIButtonOK input{background-color:#0f9d58;border-color:#18804e;color:#fff}.handsontable .htUIInput.htUIButtonOK input:focus-visible{background-color:#92dd8d;border-color:#7cb878;color:#000}.handsontable .htUIInput.htUIButtonOK input:hover{border-color:#1a6f46}.handsontable .htUISelect{cursor:pointer;margin-bottom:7px;position:relative}.handsontable .htUISelectCaption{background-color:#e8e8e8;border:1px solid #d2d1d1;border-radius:2px;font-family:inherit;font-size:.75em;font-weight:700;overflow:hidden;padding:3px 20px 3px 10px;text-overflow:ellipsis;white-space:nowrap}.handsontable .htUISelectCaption:hover{background-color:#e8e8e8;border:1px solid #b9b9b9}.handsontable .htUISelectDropdown:after{content:\\\"▲\\\";font-size:7px;position:absolute;right:10px;top:0}.handsontable .htUISelectDropdown:before{content:\\\"▼\\\";font-size:7px;position:absolute;right:10px;top:8px}.handsontable .htUIMultipleSelect .handsontable .htCore{border:none}.handsontable .htUIMultipleSelect .handsontable .htCore td:hover{background-color:#f5f5f5}.handsontable .htUIMultipleSelectSearch input{border:1px solid #d2d1d1;border-radius:2px;padding:3px}.handsontable .htUIRadio{display:inline-block;height:100%;margin-left:0;margin-right:5px}[dir=rtl].handsontable .htUIRadio{margin-left:5px;margin-right:0}.handsontable .htUIRadio:last-child{margin-right:0}.handsontable .htUIRadio>input[type=radio]{margin-left:0;margin-right:.5ex}[dir=rtl].handsontable .htUIRadio>input[type=radio]{margin-left:.5ex;margin-right:0}.handsontable .htUIRadio label{vertical-align:middle}.handsontable .htFiltersMenuOperators{padding-bottom:5px}.handsontable th.beforeHiddenColumn{position:relative}.handsontable th.afterHiddenColumn:before,.handsontable th.beforeHiddenColumn:after{color:#bbb;font-size:5pt;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.handsontable th.afterHiddenColumn{position:relative}.handsontable[dir=ltr] th.afterHiddenColumn div.htLeft{margin-left:10px}.handsontable[dir=ltr] th.beforeHiddenColumn div.htRight,.handsontable[dir=rtl] th.afterHiddenColumn div.htRight{margin-right:10px}.handsontable[dir=rtl] th.beforeHiddenColumn div.htLeft{margin-left:10px}.handsontable th.beforeHiddenColumn:after{content:\\\"◀\\\";right:1px}[dir=rtl].handsontable th.beforeHiddenColumn:after{content:\\\"▶\\\";left:1px;right:auto}.handsontable th.afterHiddenColumn:before{content:\\\"▶\\\";left:1px}[dir=rtl].handsontable th.afterHiddenColumn:before{content:\\\"◀\\\";left:auto;right:1px}\\n/*!\\n * Handsontable HiddenRows\\n */.handsontable th.afterHiddenRow:after,.handsontable th.beforeHiddenRow:before{color:#bbb;font-size:6pt;left:2px;line-height:6pt;position:absolute}.handsontable th.afterHiddenRow,.handsontable th.beforeHiddenRow{position:relative}.handsontable th.beforeHiddenRow:before{bottom:2px;content:\\\"▲\\\"}.handsontable th.afterHiddenRow:after{content:\\\"▼\\\";top:2px}.handsontable.ht__selection--rows tbody th.afterHiddenRow.ht__highlight:after,.handsontable.ht__selection--rows tbody th.beforeHiddenRow.ht__highlight:before{color:#eee}.handsontable td.afterHiddenRow.firstVisibleRow,.handsontable th.afterHiddenRow.firstVisibleRow{border-top:1px solid #ccc}.htRowHeaders .ht_master.innerBorderInlineStart~.ht_clone_inline_start td:first-of-type,.htRowHeaders .ht_master.innerBorderInlineStart~.ht_clone_top_inline_start_corner th:nth-child(2){border-left:0}.handsontable.ht__manualColumnMove.after-selection--columns thead th.ht__highlight{cursor:move;cursor:-webkit-grab;cursor:grab}.handsontable.ht__manualColumnMove.on-moving--columns *,.handsontable.ht__manualColumnMove.on-moving--columns thead th.ht__highlight{cursor:move;cursor:-webkit-grabbing;cursor:grabbing}.handsontable.ht__manualColumnMove.on-moving--columns .manualColumnResizer{display:none}.handsontable .ht__manualColumnMove--backlight,.handsontable .ht__manualColumnMove--guideline{display:none;height:100%;position:absolute}.handsontable .ht__manualColumnMove--guideline{background:#757575;-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:-1px;margin-inline-start:-1px;top:0;width:2px;z-index:205}.handsontable .ht__manualColumnMove--backlight{background:#343434;background:rgba(52,52,52,.25);display:none;pointer-events:none;z-index:205}.handsontable.on-moving--columns .ht__manualColumnMove--backlight,.handsontable.on-moving--columns.show-ui .ht__manualColumnMove--guideline{display:block}.handsontable .wtHider{position:relative}.handsontable.ht__manualRowMove.after-selection--rows tbody th.ht__highlight{cursor:move;cursor:-webkit-grab;cursor:grab}.handsontable.ht__manualRowMove.on-moving--rows *,.handsontable.ht__manualRowMove.on-moving--rows tbody th.ht__highlight{cursor:move;cursor:-webkit-grabbing;cursor:grabbing}.handsontable.ht__manualRowMove.on-moving--rows .manualRowResizer{display:none}.handsontable .ht__manualRowMove--backlight,.handsontable .ht__manualRowMove--guideline{display:none;position:absolute;width:100%}.handsontable .ht__manualRowMove--guideline{background:#757575;height:2px;left:0;margin-top:-1px;z-index:205}.handsontable .ht__manualRowMove--backlight{background:#343434;background:rgba(52,52,52,.25);display:none;pointer-events:none;z-index:205}.handsontable.on-moving--rows .ht__manualRowMove--backlight,.handsontable.on-moving--rows.show-ui .ht__manualRowMove--guideline{display:block}.handsontable tbody td[rowspan][class*=area][class*=highlight]:not([class*=fullySelectedMergedCell]):before{opacity:0}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-0]:before,.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-multiple]:before{opacity:.1}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-1]:before{opacity:.2}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-2]:before{opacity:.27}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-3]:before{opacity:.35}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-4]:before{opacity:.41}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-5]:before{opacity:.47}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-6]:before{opacity:.54}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-7]:before{opacity:.58}.handsontable[dir=ltr] div.htRight span[class*=sort-]{margin-left:-15px;margin-right:15px}.handsontable[dir=rtl] div.htLeft span[class*=sort-]{margin-left:15px;margin-right:-15px}.handsontable[dir=ltr] div.htRight span[class*=sort-]:only-child{margin-left:-20px;margin-right:20px}.handsontable[dir=rtl] div.htLeft span[class*=sort-]:only-child{margin-left:20px;margin-right:-20px}.handsontable span.colHeader.columnSorting:after{font-size:8px;height:8px;left:unset;line-height:1.1;margin-top:-2px;padding-left:5px;padding-right:unset;position:absolute;right:-15px;text-decoration:underline;top:50%}[dir=rtl].handsontable span.colHeader.columnSorting:after{left:-15px;padding-left:unset;padding-right:5px;right:unset}.handsontable span.colHeader.columnSorting:after{text-decoration:none}.handsontable span.colHeader.columnSorting[class*=\\\" sort-\\\"]:after,.handsontable span.colHeader.columnSorting[class^=sort-]:after{content:\\\"+\\\"}.handsontable span.colHeader.columnSorting.sort-1:after{content:\\\"1\\\"}.handsontable span.colHeader.columnSorting.sort-2:after{content:\\\"2\\\"}.handsontable span.colHeader.columnSorting.sort-3:after{content:\\\"3\\\"}.handsontable span.colHeader.columnSorting.sort-4:after{content:\\\"4\\\"}.handsontable span.colHeader.columnSorting.sort-5:after{content:\\\"5\\\"}.handsontable span.colHeader.columnSorting.sort-6:after{content:\\\"6\\\"}.handsontable span.colHeader.columnSorting.sort-7:after{content:\\\"7\\\"}.htGhostTable th div button.changeType+span.colHeader.columnSorting:not(.indicatorDisabled){padding-right:5px}.handsontable thead th.hiddenHeader:not(:first-of-type){display:none}.handsontable th.ht_nestingLevels{padding-left:7px;text-align:left}[dir=rtl].handsontable th.ht_nestingLevels{padding-right:7px;text-align:right}.handsontable th div.ht_nestingLevels{display:inline-block;left:11px;position:absolute;right:unset}[dir=rtl].handsontable th div.ht_nestingLevels{left:unset;right:11px}.handsontable.innerBorderInlineStart th div.ht_nestingLevels,.handsontable.innerBorderInlineStart~.handsontable th div.ht_nestingLevels{left:unset;right:10px}[dir=rtl].handsontable.innerBorderInlineStart th div.ht_nestingLevels,[dir=rtl].handsontable.innerBorderInlineStart~.handsontable th div.ht_nestingLevels{left:10px;right:unset}.handsontable th span.ht_nestingLevel{display:inline-block}.handsontable th span.ht_nestingLevel_empty{display:inline-block;float:left;height:1px;width:10px}[dir=rtl].handsontable th span.ht_nestingLevel_empty{float:right}.handsontable th span.ht_nestingLevel:after{bottom:3px;content:\\\"┐\\\";display:inline-block;font-size:9px;position:relative}.handsontable th div.ht_nestingButton{cursor:pointer;display:inline-block;left:unset;position:absolute;right:-2px}[dir=rtl].handsontable th div.ht_nestingButton{left:-2px;right:unset}.handsontable th div.ht_nestingButton.ht_nestingExpand:after{content:\\\"+\\\"}.handsontable th div.ht_nestingButton.ht_nestingCollapse:after{content:\\\"-\\\"}.handsontable.innerBorderInlineStart th div.ht_nestingButton,.handsontable.innerBorderInlineStart~.handsontable th div.ht_nestingButton{left:unset;right:0}[dir=rtl].handsontable.innerBorderInlineStart th div.ht_nestingButton,[dir=rtl].handsontable.innerBorderInlineStart~.handsontable th div.ht_nestingButton{left:0;right:unset}\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/dist/handsontable.full.min.css?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-3-1!./node_modules/postcss-loader/src??ref--6-oneOf-3-2");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/normalize.css/normalize.css":
/*!**************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-3-1!./node_modules/postcss-loader/src??ref--6-oneOf-3-2!./node_modules/normalize.css/normalize.css ***!
  \**************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */\\n\\n/* Document\\n   ========================================================================== */\\n\\n/**\\n * 1. Correct the line height in all browsers.\\n * 2. Prevent adjustments of font size after orientation changes in\\n *    IE on Windows Phone and in iOS.\\n */\\n\\nhtml {\\n  line-height: 1.15; /* 1 */\\n  -ms-text-size-adjust: 100%; /* 2 */\\n  -webkit-text-size-adjust: 100%; /* 2 */\\n}\\n\\n/* Sections\\n   ========================================================================== */\\n\\n/**\\n * Remove the margin in all browsers (opinionated).\\n */\\n\\nbody {\\n  margin: 0;\\n}\\n\\n/**\\n * Add the correct display in IE 9-.\\n */\\n\\narticle,\\naside,\\nfooter,\\nheader,\\nnav,\\nsection {\\n  display: block;\\n}\\n\\n/**\\n * Correct the font size and margin on `h1` elements within `section` and\\n * `article` contexts in Chrome, Firefox, and Safari.\\n */\\n\\nh1 {\\n  font-size: 2em;\\n  margin: 0.67em 0;\\n}\\n\\n/* Grouping content\\n   ========================================================================== */\\n\\n/**\\n * Add the correct display in IE 9-.\\n * 1. Add the correct display in IE.\\n */\\n\\nfigcaption,\\nfigure,\\nmain { /* 1 */\\n  display: block;\\n}\\n\\n/**\\n * Add the correct margin in IE 8.\\n */\\n\\nfigure {\\n  margin: 1em 40px;\\n}\\n\\n/**\\n * 1. Add the correct box sizing in Firefox.\\n * 2. Show the overflow in Edge and IE.\\n */\\n\\nhr {\\n  -webkit-box-sizing: content-box;\\n          box-sizing: content-box; /* 1 */\\n  height: 0; /* 1 */\\n  overflow: visible; /* 2 */\\n}\\n\\n/**\\n * 1. Correct the inheritance and scaling of font size in all browsers.\\n * 2. Correct the odd `em` font sizing in all browsers.\\n */\\n\\npre {\\n  font-family: monospace, monospace; /* 1 */\\n  font-size: 1em; /* 2 */\\n}\\n\\n/* Text-level semantics\\n   ========================================================================== */\\n\\n/**\\n * 1. Remove the gray background on active links in IE 10.\\n * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.\\n */\\n\\na {\\n  background-color: transparent; /* 1 */\\n  -webkit-text-decoration-skip: objects; /* 2 */\\n}\\n\\n/**\\n * 1. Remove the bottom border in Chrome 57- and Firefox 39-.\\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\\n */\\n\\nabbr[title] {\\n  border-bottom: none; /* 1 */\\n  text-decoration: underline; /* 2 */\\n  -webkit-text-decoration: underline dotted;\\n          text-decoration: underline dotted; /* 2 */\\n}\\n\\n/**\\n * Prevent the duplicate application of `bolder` by the next rule in Safari 6.\\n */\\n\\nb,\\nstrong {\\n  font-weight: inherit;\\n}\\n\\n/**\\n * Add the correct font weight in Chrome, Edge, and Safari.\\n */\\n\\nb,\\nstrong {\\n  font-weight: bolder;\\n}\\n\\n/**\\n * 1. Correct the inheritance and scaling of font size in all browsers.\\n * 2. Correct the odd `em` font sizing in all browsers.\\n */\\n\\ncode,\\nkbd,\\nsamp {\\n  font-family: monospace, monospace; /* 1 */\\n  font-size: 1em; /* 2 */\\n}\\n\\n/**\\n * Add the correct font style in Android 4.3-.\\n */\\n\\ndfn {\\n  font-style: italic;\\n}\\n\\n/**\\n * Add the correct background and color in IE 9-.\\n */\\n\\nmark {\\n  background-color: #ff0;\\n  color: #000;\\n}\\n\\n/**\\n * Add the correct font size in all browsers.\\n */\\n\\nsmall {\\n  font-size: 80%;\\n}\\n\\n/**\\n * Prevent `sub` and `sup` elements from affecting the line height in\\n * all browsers.\\n */\\n\\nsub,\\nsup {\\n  font-size: 75%;\\n  line-height: 0;\\n  position: relative;\\n  vertical-align: baseline;\\n}\\n\\nsub {\\n  bottom: -0.25em;\\n}\\n\\nsup {\\n  top: -0.5em;\\n}\\n\\n/* Embedded content\\n   ========================================================================== */\\n\\n/**\\n * Add the correct display in IE 9-.\\n */\\n\\naudio,\\nvideo {\\n  display: inline-block;\\n}\\n\\n/**\\n * Add the correct display in iOS 4-7.\\n */\\n\\naudio:not([controls]) {\\n  display: none;\\n  height: 0;\\n}\\n\\n/**\\n * Remove the border on images inside links in IE 10-.\\n */\\n\\nimg {\\n  border-style: none;\\n}\\n\\n/**\\n * Hide the overflow in IE.\\n */\\n\\nsvg:not(:root) {\\n  overflow: hidden;\\n}\\n\\n/* Forms\\n   ========================================================================== */\\n\\n/**\\n * 1. Change the font styles in all browsers (opinionated).\\n * 2. Remove the margin in Firefox and Safari.\\n */\\n\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n  font-family: sans-serif; /* 1 */\\n  font-size: 100%; /* 1 */\\n  line-height: 1.15; /* 1 */\\n  margin: 0; /* 2 */\\n}\\n\\n/**\\n * Show the overflow in IE.\\n * 1. Show the overflow in Edge.\\n */\\n\\nbutton,\\ninput { /* 1 */\\n  overflow: visible;\\n}\\n\\n/**\\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\\n * 1. Remove the inheritance of text transform in Firefox.\\n */\\n\\nbutton,\\nselect { /* 1 */\\n  text-transform: none;\\n}\\n\\n/**\\n * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\\n *    controls in Android 4.\\n * 2. Correct the inability to style clickable types in iOS and Safari.\\n */\\n\\nbutton,\\nhtml [type=\\\"button\\\"], /* 1 */\\n[type=\\\"reset\\\"],\\n[type=\\\"submit\\\"] {\\n  -webkit-appearance: button; /* 2 */\\n}\\n\\n/**\\n * Remove the inner border and padding in Firefox.\\n */\\n\\nbutton::-moz-focus-inner,\\n[type=\\\"button\\\"]::-moz-focus-inner,\\n[type=\\\"reset\\\"]::-moz-focus-inner,\\n[type=\\\"submit\\\"]::-moz-focus-inner {\\n  border-style: none;\\n  padding: 0;\\n}\\n\\n/**\\n * Restore the focus styles unset by the previous rule.\\n */\\n\\nbutton:-moz-focusring,\\n[type=\\\"button\\\"]:-moz-focusring,\\n[type=\\\"reset\\\"]:-moz-focusring,\\n[type=\\\"submit\\\"]:-moz-focusring {\\n  outline: 1px dotted ButtonText;\\n}\\n\\n/**\\n * Correct the padding in Firefox.\\n */\\n\\nfieldset {\\n  padding: 0.35em 0.75em 0.625em;\\n}\\n\\n/**\\n * 1. Correct the text wrapping in Edge and IE.\\n * 2. Correct the color inheritance from `fieldset` elements in IE.\\n * 3. Remove the padding so developers are not caught out when they zero out\\n *    `fieldset` elements in all browsers.\\n */\\n\\nlegend {\\n  -webkit-box-sizing: border-box;\\n          box-sizing: border-box; /* 1 */\\n  color: inherit; /* 2 */\\n  display: table; /* 1 */\\n  max-width: 100%; /* 1 */\\n  padding: 0; /* 3 */\\n  white-space: normal; /* 1 */\\n}\\n\\n/**\\n * 1. Add the correct display in IE 9-.\\n * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.\\n */\\n\\nprogress {\\n  display: inline-block; /* 1 */\\n  vertical-align: baseline; /* 2 */\\n}\\n\\n/**\\n * Remove the default vertical scrollbar in IE.\\n */\\n\\ntextarea {\\n  overflow: auto;\\n}\\n\\n/**\\n * 1. Add the correct box sizing in IE 10-.\\n * 2. Remove the padding in IE 10-.\\n */\\n\\n[type=\\\"checkbox\\\"],\\n[type=\\\"radio\\\"] {\\n  -webkit-box-sizing: border-box;\\n          box-sizing: border-box; /* 1 */\\n  padding: 0; /* 2 */\\n}\\n\\n/**\\n * Correct the cursor style of increment and decrement buttons in Chrome.\\n */\\n\\n[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n  height: auto;\\n}\\n\\n/**\\n * 1. Correct the odd appearance in Chrome and Safari.\\n * 2. Correct the outline style in Safari.\\n */\\n\\n[type=\\\"search\\\"] {\\n  -webkit-appearance: textfield; /* 1 */\\n  outline-offset: -2px; /* 2 */\\n}\\n\\n/**\\n * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\\n */\\n\\n[type=\\\"search\\\"]::-webkit-search-cancel-button,\\n[type=\\\"search\\\"]::-webkit-search-decoration {\\n  -webkit-appearance: none;\\n}\\n\\n/**\\n * 1. Correct the inability to style clickable types in iOS and Safari.\\n * 2. Change font properties to `inherit` in Safari.\\n */\\n\\n::-webkit-file-upload-button {\\n  -webkit-appearance: button; /* 1 */\\n  font: inherit; /* 2 */\\n}\\n\\n/* Interactive\\n   ========================================================================== */\\n\\n/*\\n * Add the correct display in IE 9-.\\n * 1. Add the correct display in Edge, IE, and Firefox.\\n */\\n\\ndetails, /* 1 */\\nmenu {\\n  display: block;\\n}\\n\\n/*\\n * Add the correct display in all browsers.\\n */\\n\\nsummary {\\n  display: list-item;\\n}\\n\\n/* Scripting\\n   ========================================================================== */\\n\\n/**\\n * Add the correct display in IE 9-.\\n */\\n\\ncanvas {\\n  display: inline-block;\\n}\\n\\n/**\\n * Add the correct display in IE.\\n */\\n\\ntemplate {\\n  display: none;\\n}\\n\\n/* Hidden\\n   ========================================================================== */\\n\\n/**\\n * Add the correct display in IE 10-.\\n */\\n\\n[hidden] {\\n  display: none;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./node_modules/normalize.css/normalize.css?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-3-1!./node_modules/postcss-loader/src??ref--6-oneOf-3-2");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/nprogress/nprogress.css":
/*!**********************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-3-1!./node_modules/postcss-loader/src??ref--6-oneOf-3-2!./node_modules/nprogress/nprogress.css ***!
  \**********************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"/* Make clicks pass-through */\\n#nprogress {\\n  pointer-events: none;\\n}\\n\\n#nprogress .bar {\\n  background: #29d;\\n\\n  position: fixed;\\n  z-index: 1031;\\n  top: 0;\\n  left: 0;\\n\\n  width: 100%;\\n  height: 2px;\\n}\\n\\n/* Fancy blur effect */\\n#nprogress .peg {\\n  display: block;\\n  position: absolute;\\n  right: 0px;\\n  width: 100px;\\n  height: 100%;\\n  -webkit-box-shadow: 0 0 10px #29d, 0 0 5px #29d;\\n          box-shadow: 0 0 10px #29d, 0 0 5px #29d;\\n  opacity: 1.0;\\n\\n  -webkit-transform: rotate(3deg) translate(0px, -4px);\\n          transform: rotate(3deg) translate(0px, -4px);\\n}\\n\\n/* Remove these to get rid of the spinner */\\n#nprogress .spinner {\\n  display: block;\\n  position: fixed;\\n  z-index: 1031;\\n  top: 15px;\\n  right: 15px;\\n}\\n\\n#nprogress .spinner-icon {\\n  width: 18px;\\n  height: 18px;\\n  -webkit-box-sizing: border-box;\\n          box-sizing: border-box;\\n\\n  border: solid 2px transparent;\\n  border-top-color: #29d;\\n  border-left-color: #29d;\\n  border-radius: 50%;\\n\\n  -webkit-animation: nprogress-spinner 400ms linear infinite;\\n          animation: nprogress-spinner 400ms linear infinite;\\n}\\n\\n.nprogress-custom-parent {\\n  overflow: hidden;\\n  position: relative;\\n}\\n\\n.nprogress-custom-parent #nprogress .spinner,\\n.nprogress-custom-parent #nprogress .bar {\\n  position: absolute;\\n}\\n\\n@-webkit-keyframes nprogress-spinner {\\n  0%   { -webkit-transform: rotate(0deg); }\\n  100% { -webkit-transform: rotate(360deg); }\\n}\\n@keyframes nprogress-spinner {\\n  0%   { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\\n  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\\n}\\n\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./node_modules/nprogress/nprogress.css?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-3-1!./node_modules/postcss-loader/src??ref--6-oneOf-3-2");

/***/ }),

/***/ "./node_modules/css-loader/dist/runtime/api.js":
/*!*****************************************************!*\
  !*** ./node_modules/css-loader/dist/runtime/api.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n  var list = []; // return the list of modules as css string\n\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = cssWithMappingToString(item, useSourceMap);\n\n      if (item[2]) {\n        return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n      }\n\n      return content;\n    }).join('');\n  }; // import a list of modules into the list\n  // eslint-disable-next-line func-names\n\n\n  list.i = function (modules, mediaQuery, dedupe) {\n    if (typeof modules === 'string') {\n      // eslint-disable-next-line no-param-reassign\n      modules = [[null, modules, '']];\n    }\n\n    var alreadyImportedModules = {};\n\n    if (dedupe) {\n      for (var i = 0; i < this.length; i++) {\n        // eslint-disable-next-line prefer-destructuring\n        var id = this[i][0];\n\n        if (id != null) {\n          alreadyImportedModules[id] = true;\n        }\n      }\n    }\n\n    for (var _i = 0; _i < modules.length; _i++) {\n      var item = [].concat(modules[_i]);\n\n      if (dedupe && alreadyImportedModules[item[0]]) {\n        // eslint-disable-next-line no-continue\n        continue;\n      }\n\n      if (mediaQuery) {\n        if (!item[2]) {\n          item[2] = mediaQuery;\n        } else {\n          item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n        }\n      }\n\n      list.push(item);\n    }\n  };\n\n  return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n  var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n  var cssMapping = item[3];\n\n  if (!cssMapping) {\n    return content;\n  }\n\n  if (useSourceMap && typeof btoa === 'function') {\n    var sourceMapping = toComment(cssMapping);\n    var sourceURLs = cssMapping.sources.map(function (source) {\n      return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n    });\n    return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n  }\n\n  return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n  // eslint-disable-next-line no-undef\n  var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n  var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n  return \"/*# \".concat(data, \" */\");\n}\n\n//# sourceURL=webpack:///./node_modules/css-loader/dist/runtime/api.js?");

/***/ }),

/***/ "./node_modules/css-loader/dist/runtime/getUrl.js":
/*!********************************************************!*\
  !*** ./node_modules/css-loader/dist/runtime/getUrl.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function (url, options) {\n  if (!options) {\n    // eslint-disable-next-line no-param-reassign\n    options = {};\n  } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n  url = url && url.__esModule ? url.default : url;\n\n  if (typeof url !== 'string') {\n    return url;\n  } // If url is already wrapped in quotes, remove them\n\n\n  if (/^['\"].*['\"]$/.test(url)) {\n    // eslint-disable-next-line no-param-reassign\n    url = url.slice(1, -1);\n  }\n\n  if (options.hash) {\n    // eslint-disable-next-line no-param-reassign\n    url += options.hash;\n  } // Should url be wrapped?\n  // See https://drafts.csswg.org/css-values-3/#urls\n\n\n  if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n    return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n'), \"\\\"\");\n  }\n\n  return url;\n};\n\n//# sourceURL=webpack:///./node_modules/css-loader/dist/runtime/getUrl.js?");

/***/ }),

/***/ "./node_modules/define-data-property/index.js":
/*!****************************************************!*\
  !*** ./node_modules/define-data-property/index.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar $defineProperty = __webpack_require__(/*! es-define-property */ \"./node_modules/es-define-property/index.js\");\n\nvar $SyntaxError = __webpack_require__(/*! es-errors/syntax */ \"./node_modules/es-errors/syntax.js\");\nvar $TypeError = __webpack_require__(/*! es-errors/type */ \"./node_modules/es-errors/type.js\");\n\nvar gopd = __webpack_require__(/*! gopd */ \"./node_modules/gopd/index.js\");\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor<unknown>} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n\n\n//# sourceURL=webpack:///./node_modules/define-data-property/index.js?");

/***/ }),

/***/ "./node_modules/docx-preview/dist/docx-preview.mjs":
/*!*********************************************************!*\
  !*** ./node_modules/docx-preview/dist/docx-preview.mjs ***!
  \*********************************************************/
/*! no exports provided */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n\n\nvar _interopRequireDefault = require(\"E:/\\u8DE8\\u5883\\u901A/trade-platform-c-front-end/node_modules/@babel/runtime/helpers/interopRequireDefault.js\").default;\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.defaultOptions = void 0;\nexports.praseAsync = praseAsync;\nexports.renderAsync = renderAsync;\nexports.renderDocument = renderDocument;\nrequire(\"core-js/modules/es.error.cause.js\");\nrequire(\"core-js/modules/es.array.push.js\");\nrequire(\"core-js/modules/es.promise.all-settled.js\");\nrequire(\"core-js/modules/web.url-search-params.delete.js\");\nrequire(\"core-js/modules/web.url-search-params.has.js\");\nrequire(\"core-js/modules/web.url-search-params.size.js\");\nvar _jszip = _interopRequireDefault(require(\"jszip\"));\nvar RelationshipTypes;\n(function (RelationshipTypes) {\n  RelationshipTypes[\"OfficeDocument\"] = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\";\n  RelationshipTypes[\"FontTable\"] = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable\";\n  RelationshipTypes[\"Image\"] = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";\n  RelationshipTypes[\"Numbering\"] = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering\";\n  RelationshipTypes[\"Styles\"] = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";\n  RelationshipTypes[\"StylesWithEffects\"] = \"http://schemas.microsoft.com/office/2007/relationships/stylesWithEffects\";\n  RelationshipTypes[\"Theme\"] = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";\n  RelationshipTypes[\"Settings\"] = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings\";\n  RelationshipTypes[\"WebSettings\"] = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings\";\n  RelationshipTypes[\"Hyperlink\"] = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\";\n  RelationshipTypes[\"Footnotes\"] = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes\";\n  RelationshipTypes[\"Endnotes\"] = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes\";\n  RelationshipTypes[\"Footer\"] = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer\";\n  RelationshipTypes[\"Header\"] = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/header\";\n  RelationshipTypes[\"ExtendedProperties\"] = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\";\n  RelationshipTypes[\"CoreProperties\"] = \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\";\n  RelationshipTypes[\"CustomProperties\"] = \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/custom-properties\";\n})(RelationshipTypes || (RelationshipTypes = {}));\nfunction parseRelationships(root, xml) {\n  return xml.elements(root).map(e => ({\n    id: xml.attr(e, \"Id\"),\n    type: xml.attr(e, \"Type\"),\n    target: xml.attr(e, \"Target\"),\n    targetMode: xml.attr(e, \"TargetMode\")\n  }));\n}\nconst ns$1 = {\n  wordml: \"http://schemas.openxmlformats.org/wordprocessingml/2006/main\",\n  drawingml: \"http://schemas.openxmlformats.org/drawingml/2006/main\",\n  picture: \"http://schemas.openxmlformats.org/drawingml/2006/picture\",\n  compatibility: \"http://schemas.openxmlformats.org/markup-compatibility/2006\",\n  math: \"http://schemas.openxmlformats.org/officeDocument/2006/math\"\n};\nconst LengthUsage = {\n  Dxa: {\n    mul: 0.05,\n    unit: \"pt\"\n  },\n  Emu: {\n    mul: 1 / 12700,\n    unit: \"pt\"\n  },\n  FontSize: {\n    mul: 0.5,\n    unit: \"pt\"\n  },\n  Border: {\n    mul: 0.125,\n    unit: \"pt\"\n  },\n  Point: {\n    mul: 1,\n    unit: \"pt\"\n  },\n  Percent: {\n    mul: 0.02,\n    unit: \"%\"\n  },\n  LineHeight: {\n    mul: 1 / 240,\n    unit: \"\"\n  },\n  VmlEmu: {\n    mul: 1 / 12700,\n    unit: \"\"\n  }\n};\nfunction convertLength(val, usage = LengthUsage.Dxa) {\n  if (val == null || /.+(p[xt]|[%])$/.test(val)) {\n    return val;\n  }\n  return `${(parseInt(val) * usage.mul).toFixed(2)}${usage.unit}`;\n}\nfunction convertBoolean(v, defaultValue = false) {\n  switch (v) {\n    case \"1\":\n      return true;\n    case \"0\":\n      return false;\n    case \"on\":\n      return true;\n    case \"off\":\n      return false;\n    case \"true\":\n      return true;\n    case \"false\":\n      return false;\n    default:\n      return defaultValue;\n  }\n}\nfunction parseCommonProperty(elem, props, xml) {\n  if (elem.namespaceURI != ns$1.wordml) return false;\n  switch (elem.localName) {\n    case \"color\":\n      props.color = xml.attr(elem, \"val\");\n      break;\n    case \"sz\":\n      props.fontSize = xml.lengthAttr(elem, \"val\", LengthUsage.FontSize);\n      break;\n    default:\n      return false;\n  }\n  return true;\n}\nfunction parseXmlString(xmlString, trimXmlDeclaration = false) {\n  if (trimXmlDeclaration) xmlString = xmlString.replace(/<[?].*[?]>/, \"\");\n  xmlString = removeUTF8BOM(xmlString);\n  const result = new DOMParser().parseFromString(xmlString, \"application/xml\");\n  const errorText = hasXmlParserError(result);\n  if (errorText) throw new Error(errorText);\n  return result;\n}\nfunction hasXmlParserError(doc) {\n  var _doc$getElementsByTag;\n  return (_doc$getElementsByTag = doc.getElementsByTagName(\"parsererror\")[0]) === null || _doc$getElementsByTag === void 0 ? void 0 : _doc$getElementsByTag.textContent;\n}\nfunction removeUTF8BOM(data) {\n  return data.charCodeAt(0) === 0xFEFF ? data.substring(1) : data;\n}\nfunction serializeXmlString(elem) {\n  return new XMLSerializer().serializeToString(elem);\n}\nclass XmlParser {\n  elements(elem, localName = null) {\n    const result = [];\n    for (let i = 0, l = elem.childNodes.length; i < l; i++) {\n      let c = elem.childNodes.item(i);\n      if (c.nodeType == 1 && (localName == null || c.localName == localName)) result.push(c);\n    }\n    return result;\n  }\n  element(elem, localName) {\n    for (let i = 0, l = elem.childNodes.length; i < l; i++) {\n      let c = elem.childNodes.item(i);\n      if (c.nodeType == 1 && c.localName == localName) return c;\n    }\n    return null;\n  }\n  elementAttr(elem, localName, attrLocalName) {\n    var el = this.element(elem, localName);\n    return el ? this.attr(el, attrLocalName) : undefined;\n  }\n  attrs(elem) {\n    return Array.from(elem.attributes);\n  }\n  attr(elem, localName) {\n    for (let i = 0, l = elem.attributes.length; i < l; i++) {\n      let a = elem.attributes.item(i);\n      if (a.localName == localName) return a.value;\n    }\n    return null;\n  }\n  intAttr(node, attrName, defaultValue = null) {\n    var val = this.attr(node, attrName);\n    return val ? parseInt(val) : defaultValue;\n  }\n  hexAttr(node, attrName, defaultValue = null) {\n    var val = this.attr(node, attrName);\n    return val ? parseInt(val, 16) : defaultValue;\n  }\n  floatAttr(node, attrName, defaultValue = null) {\n    var val = this.attr(node, attrName);\n    return val ? parseFloat(val) : defaultValue;\n  }\n  boolAttr(node, attrName, defaultValue = null) {\n    return convertBoolean(this.attr(node, attrName), defaultValue);\n  }\n  lengthAttr(node, attrName, usage = LengthUsage.Dxa) {\n    return convertLength(this.attr(node, attrName), usage);\n  }\n}\nconst globalXmlParser = new XmlParser();\nclass Part {\n  constructor(_package, path) {\n    this._package = _package;\n    this.path = path;\n  }\n  async load() {\n    this.rels = await this._package.loadRelationships(this.path);\n    const xmlText = await this._package.load(this.path);\n    const xmlDoc = this._package.parseXmlDocument(xmlText);\n    if (this._package.options.keepOrigin) {\n      this._xmlDocument = xmlDoc;\n    }\n    this.parseXml(xmlDoc.firstElementChild);\n  }\n  save() {\n    this._package.update(this.path, serializeXmlString(this._xmlDocument));\n  }\n  parseXml(root) {}\n}\nconst embedFontTypeMap = {\n  embedRegular: 'regular',\n  embedBold: 'bold',\n  embedItalic: 'italic',\n  embedBoldItalic: 'boldItalic'\n};\nfunction parseFonts(root, xml) {\n  return xml.elements(root).map(el => parseFont(el, xml));\n}\nfunction parseFont(elem, xml) {\n  let result = {\n    name: xml.attr(elem, \"name\"),\n    embedFontRefs: []\n  };\n  for (let el of xml.elements(elem)) {\n    switch (el.localName) {\n      case \"family\":\n        result.family = xml.attr(el, \"val\");\n        break;\n      case \"altName\":\n        result.altName = xml.attr(el, \"val\");\n        break;\n      case \"embedRegular\":\n      case \"embedBold\":\n      case \"embedItalic\":\n      case \"embedBoldItalic\":\n        result.embedFontRefs.push(parseEmbedFontRef(el, xml));\n        break;\n    }\n  }\n  return result;\n}\nfunction parseEmbedFontRef(elem, xml) {\n  return {\n    id: xml.attr(elem, \"id\"),\n    key: xml.attr(elem, \"fontKey\"),\n    type: embedFontTypeMap[elem.localName]\n  };\n}\nclass FontTablePart extends Part {\n  parseXml(root) {\n    this.fonts = parseFonts(root, this._package.xmlParser);\n  }\n}\nfunction escapeClassName(className) {\n  return className === null || className === void 0 ? void 0 : className.replace(/[ .]+/g, '-').replace(/[&]+/g, 'and').toLowerCase();\n}\nfunction splitPath(path) {\n  let si = path.lastIndexOf('/') + 1;\n  let folder = si == 0 ? \"\" : path.substring(0, si);\n  let fileName = si == 0 ? path : path.substring(si);\n  return [folder, fileName];\n}\nfunction resolvePath(path, base) {\n  try {\n    const prefix = \"http://docx/\";\n    const url = new URL(path, prefix + base).toString();\n    return url.substring(prefix.length);\n  } catch {\n    return `${base}${path}`;\n  }\n}\nfunction keyBy(array, by) {\n  return array.reduce((a, x) => {\n    a[by(x)] = x;\n    return a;\n  }, {});\n}\nfunction blobToBase64(blob) {\n  return new Promise((resolve, reject) => {\n    const reader = new FileReader();\n    reader.onloadend = () => resolve(reader.result);\n    reader.onerror = () => reject();\n    reader.readAsDataURL(blob);\n  });\n}\nfunction isObject(item) {\n  return item && typeof item === 'object' && !Array.isArray(item);\n}\nfunction isString(item) {\n  return typeof item === 'string' || item instanceof String;\n}\nfunction mergeDeep(target, ...sources) {\n  if (!sources.length) return target;\n  const source = sources.shift();\n  if (isObject(target) && isObject(source)) {\n    for (const key in source) {\n      if (isObject(source[key])) {\n        var _target$key;\n        const val = (_target$key = target[key]) !== null && _target$key !== void 0 ? _target$key : target[key] = {};\n        mergeDeep(val, source[key]);\n      } else {\n        target[key] = source[key];\n      }\n    }\n  }\n  return mergeDeep(target, ...sources);\n}\nfunction asArray(val) {\n  return Array.isArray(val) ? val : [val];\n}\nclass OpenXmlPackage {\n  constructor(_zip, options) {\n    this._zip = _zip;\n    this.options = options;\n    this.xmlParser = new XmlParser();\n  }\n  get(path) {\n    return this._zip.files[normalizePath(path)];\n  }\n  update(path, content) {\n    this._zip.file(path, content);\n  }\n  static async load(input, options) {\n    const zip = await _jszip.default.loadAsync(input);\n    return new OpenXmlPackage(zip, options);\n  }\n  save(type = \"blob\") {\n    return this._zip.generateAsync({\n      type\n    });\n  }\n  load(path, type = \"string\") {\n    var _this$get$async, _this$get;\n    return (_this$get$async = (_this$get = this.get(path)) === null || _this$get === void 0 ? void 0 : _this$get.async(type)) !== null && _this$get$async !== void 0 ? _this$get$async : Promise.resolve(null);\n  }\n  async loadRelationships(path = null) {\n    let relsPath = `_rels/.rels`;\n    if (path != null) {\n      const [f, fn] = splitPath(path);\n      relsPath = `${f}_rels/${fn}.rels`;\n    }\n    const txt = await this.load(relsPath);\n    return txt ? parseRelationships(this.parseXmlDocument(txt).firstElementChild, this.xmlParser) : null;\n  }\n  parseXmlDocument(txt) {\n    return parseXmlString(txt, this.options.trimXmlDeclaration);\n  }\n}\nfunction normalizePath(path) {\n  return path.startsWith('/') ? path.substr(1) : path;\n}\nclass DocumentPart extends Part {\n  constructor(pkg, path, parser) {\n    super(pkg, path);\n    this._documentParser = parser;\n  }\n  parseXml(root) {\n    this.body = this._documentParser.parseDocumentFile(root);\n  }\n}\nfunction parseBorder(elem, xml) {\n  return {\n    type: xml.attr(elem, \"val\"),\n    color: xml.attr(elem, \"color\"),\n    size: xml.lengthAttr(elem, \"sz\", LengthUsage.Border),\n    offset: xml.lengthAttr(elem, \"space\", LengthUsage.Point),\n    frame: xml.boolAttr(elem, 'frame'),\n    shadow: xml.boolAttr(elem, 'shadow')\n  };\n}\nfunction parseBorders(elem, xml) {\n  var result = {};\n  for (let e of xml.elements(elem)) {\n    switch (e.localName) {\n      case \"left\":\n        result.left = parseBorder(e, xml);\n        break;\n      case \"top\":\n        result.top = parseBorder(e, xml);\n        break;\n      case \"right\":\n        result.right = parseBorder(e, xml);\n        break;\n      case \"bottom\":\n        result.bottom = parseBorder(e, xml);\n        break;\n    }\n  }\n  return result;\n}\nvar SectionType;\n(function (SectionType) {\n  SectionType[\"Continuous\"] = \"continuous\";\n  SectionType[\"NextPage\"] = \"nextPage\";\n  SectionType[\"NextColumn\"] = \"nextColumn\";\n  SectionType[\"EvenPage\"] = \"evenPage\";\n  SectionType[\"OddPage\"] = \"oddPage\";\n})(SectionType || (SectionType = {}));\nfunction parseSectionProperties(elem, xml = globalXmlParser) {\n  var _section$headerRefs, _section$footerRefs;\n  var section = {};\n  for (let e of xml.elements(elem)) {\n    switch (e.localName) {\n      case \"pgSz\":\n        section.pageSize = {\n          width: xml.lengthAttr(e, \"w\"),\n          height: xml.lengthAttr(e, \"h\"),\n          orientation: xml.attr(e, \"orient\")\n        };\n        break;\n      case \"type\":\n        section.type = xml.attr(e, \"val\");\n        break;\n      case \"pgMar\":\n        section.pageMargins = {\n          left: xml.lengthAttr(e, \"left\"),\n          right: xml.lengthAttr(e, \"right\"),\n          top: xml.lengthAttr(e, \"top\"),\n          bottom: xml.lengthAttr(e, \"bottom\"),\n          header: xml.lengthAttr(e, \"header\"),\n          footer: xml.lengthAttr(e, \"footer\"),\n          gutter: xml.lengthAttr(e, \"gutter\")\n        };\n        break;\n      case \"cols\":\n        section.columns = parseColumns(e, xml);\n        break;\n      case \"headerReference\":\n        ((_section$headerRefs = section.headerRefs) !== null && _section$headerRefs !== void 0 ? _section$headerRefs : section.headerRefs = []).push(parseFooterHeaderReference(e, xml));\n        break;\n      case \"footerReference\":\n        ((_section$footerRefs = section.footerRefs) !== null && _section$footerRefs !== void 0 ? _section$footerRefs : section.footerRefs = []).push(parseFooterHeaderReference(e, xml));\n        break;\n      case \"titlePg\":\n        section.titlePage = xml.boolAttr(e, \"val\", true);\n        break;\n      case \"pgBorders\":\n        section.pageBorders = parseBorders(e, xml);\n        break;\n      case \"pgNumType\":\n        section.pageNumber = parsePageNumber(e, xml);\n        break;\n    }\n  }\n  return section;\n}\nfunction parseColumns(elem, xml) {\n  return {\n    numberOfColumns: xml.intAttr(elem, \"num\"),\n    space: xml.lengthAttr(elem, \"space\"),\n    separator: xml.boolAttr(elem, \"sep\"),\n    equalWidth: xml.boolAttr(elem, \"equalWidth\", true),\n    columns: xml.elements(elem, \"col\").map(e => ({\n      width: xml.lengthAttr(e, \"w\"),\n      space: xml.lengthAttr(e, \"space\")\n    }))\n  };\n}\nfunction parsePageNumber(elem, xml) {\n  return {\n    chapSep: xml.attr(elem, \"chapSep\"),\n    chapStyle: xml.attr(elem, \"chapStyle\"),\n    format: xml.attr(elem, \"fmt\"),\n    start: xml.intAttr(elem, \"start\")\n  };\n}\nfunction parseFooterHeaderReference(elem, xml) {\n  return {\n    id: xml.attr(elem, \"id\"),\n    type: xml.attr(elem, \"type\")\n  };\n}\nfunction parseLineSpacing(elem, xml) {\n  return {\n    before: xml.lengthAttr(elem, \"before\"),\n    after: xml.lengthAttr(elem, \"after\"),\n    line: xml.intAttr(elem, \"line\"),\n    lineRule: xml.attr(elem, \"lineRule\")\n  };\n}\nfunction parseRunProperties(elem, xml) {\n  let result = {};\n  for (let el of xml.elements(elem)) {\n    parseRunProperty(el, result, xml);\n  }\n  return result;\n}\nfunction parseRunProperty(elem, props, xml) {\n  if (parseCommonProperty(elem, props, xml)) return true;\n  return false;\n}\nfunction parseParagraphProperties(elem, xml) {\n  let result = {};\n  for (let el of xml.elements(elem)) {\n    parseParagraphProperty(el, result, xml);\n  }\n  return result;\n}\nfunction parseParagraphProperty(elem, props, xml) {\n  if (elem.namespaceURI != ns$1.wordml) return false;\n  if (parseCommonProperty(elem, props, xml)) return true;\n  switch (elem.localName) {\n    case \"tabs\":\n      props.tabs = parseTabs(elem, xml);\n      break;\n    case \"sectPr\":\n      props.sectionProps = parseSectionProperties(elem, xml);\n      break;\n    case \"numPr\":\n      props.numbering = parseNumbering$1(elem, xml);\n      break;\n    case \"spacing\":\n      props.lineSpacing = parseLineSpacing(elem, xml);\n      return false;\n    case \"textAlignment\":\n      props.textAlignment = xml.attr(elem, \"val\");\n      return false;\n    case \"keepLines\":\n      props.keepLines = xml.boolAttr(elem, \"val\", true);\n      break;\n    case \"keepNext\":\n      props.keepNext = xml.boolAttr(elem, \"val\", true);\n      break;\n    case \"pageBreakBefore\":\n      props.pageBreakBefore = xml.boolAttr(elem, \"val\", true);\n      break;\n    case \"outlineLvl\":\n      props.outlineLevel = xml.intAttr(elem, \"val\");\n      break;\n    case \"pStyle\":\n      props.styleName = xml.attr(elem, \"val\");\n      break;\n    case \"rPr\":\n      props.runProps = parseRunProperties(elem, xml);\n      break;\n    default:\n      return false;\n  }\n  return true;\n}\nfunction parseTabs(elem, xml) {\n  return xml.elements(elem, \"tab\").map(e => ({\n    position: xml.lengthAttr(e, \"pos\"),\n    leader: xml.attr(e, \"leader\"),\n    style: xml.attr(e, \"val\")\n  }));\n}\nfunction parseNumbering$1(elem, xml) {\n  var result = {};\n  for (let e of xml.elements(elem)) {\n    switch (e.localName) {\n      case \"numId\":\n        result.id = xml.attr(e, \"val\");\n        break;\n      case \"ilvl\":\n        result.level = xml.intAttr(e, \"val\");\n        break;\n    }\n  }\n  return result;\n}\nfunction parseNumberingPart(elem, xml) {\n  let result = {\n    numberings: [],\n    abstractNumberings: [],\n    bulletPictures: []\n  };\n  for (let e of xml.elements(elem)) {\n    switch (e.localName) {\n      case \"num\":\n        result.numberings.push(parseNumbering(e, xml));\n        break;\n      case \"abstractNum\":\n        result.abstractNumberings.push(parseAbstractNumbering(e, xml));\n        break;\n      case \"numPicBullet\":\n        result.bulletPictures.push(parseNumberingBulletPicture(e, xml));\n        break;\n    }\n  }\n  return result;\n}\nfunction parseNumbering(elem, xml) {\n  let result = {\n    id: xml.attr(elem, 'numId'),\n    overrides: []\n  };\n  for (let e of xml.elements(elem)) {\n    switch (e.localName) {\n      case \"abstractNumId\":\n        result.abstractId = xml.attr(e, \"val\");\n        break;\n      case \"lvlOverride\":\n        result.overrides.push(parseNumberingLevelOverrride(e, xml));\n        break;\n    }\n  }\n  return result;\n}\nfunction parseAbstractNumbering(elem, xml) {\n  let result = {\n    id: xml.attr(elem, 'abstractNumId'),\n    levels: []\n  };\n  for (let e of xml.elements(elem)) {\n    switch (e.localName) {\n      case \"name\":\n        result.name = xml.attr(e, \"val\");\n        break;\n      case \"multiLevelType\":\n        result.multiLevelType = xml.attr(e, \"val\");\n        break;\n      case \"numStyleLink\":\n        result.numberingStyleLink = xml.attr(e, \"val\");\n        break;\n      case \"styleLink\":\n        result.styleLink = xml.attr(e, \"val\");\n        break;\n      case \"lvl\":\n        result.levels.push(parseNumberingLevel(e, xml));\n        break;\n    }\n  }\n  return result;\n}\nfunction parseNumberingLevel(elem, xml) {\n  let result = {\n    level: xml.intAttr(elem, 'ilvl')\n  };\n  for (let e of xml.elements(elem)) {\n    switch (e.localName) {\n      case \"start\":\n        result.start = xml.attr(e, \"val\");\n        break;\n      case \"lvlRestart\":\n        result.restart = xml.intAttr(e, \"val\");\n        break;\n      case \"numFmt\":\n        result.format = xml.attr(e, \"val\");\n        break;\n      case \"lvlText\":\n        result.text = xml.attr(e, \"val\");\n        break;\n      case \"lvlJc\":\n        result.justification = xml.attr(e, \"val\");\n        break;\n      case \"lvlPicBulletId\":\n        result.bulletPictureId = xml.attr(e, \"val\");\n        break;\n      case \"pStyle\":\n        result.paragraphStyle = xml.attr(e, \"val\");\n        break;\n      case \"pPr\":\n        result.paragraphProps = parseParagraphProperties(e, xml);\n        break;\n      case \"rPr\":\n        result.runProps = parseRunProperties(e, xml);\n        break;\n    }\n  }\n  return result;\n}\nfunction parseNumberingLevelOverrride(elem, xml) {\n  let result = {\n    level: xml.intAttr(elem, 'ilvl')\n  };\n  for (let e of xml.elements(elem)) {\n    switch (e.localName) {\n      case \"startOverride\":\n        result.start = xml.intAttr(e, \"val\");\n        break;\n      case \"lvl\":\n        result.numberingLevel = parseNumberingLevel(e, xml);\n        break;\n    }\n  }\n  return result;\n}\nfunction parseNumberingBulletPicture(elem, xml) {\n  var pict = xml.element(elem, \"pict\");\n  var shape = pict && xml.element(pict, \"shape\");\n  var imagedata = shape && xml.element(shape, \"imagedata\");\n  return imagedata ? {\n    id: xml.attr(elem, \"numPicBulletId\"),\n    referenceId: xml.attr(imagedata, \"id\"),\n    style: xml.attr(shape, \"style\")\n  } : null;\n}\nclass NumberingPart extends Part {\n  constructor(pkg, path, parser) {\n    super(pkg, path);\n    this._documentParser = parser;\n  }\n  parseXml(root) {\n    Object.assign(this, parseNumberingPart(root, this._package.xmlParser));\n    this.domNumberings = this._documentParser.parseNumberingFile(root);\n  }\n}\nclass StylesPart extends Part {\n  constructor(pkg, path, parser) {\n    super(pkg, path);\n    this._documentParser = parser;\n  }\n  parseXml(root) {\n    this.styles = this._documentParser.parseStylesFile(root);\n  }\n}\nvar DomType;\n(function (DomType) {\n  DomType[\"Document\"] = \"document\";\n  DomType[\"Paragraph\"] = \"paragraph\";\n  DomType[\"Run\"] = \"run\";\n  DomType[\"Break\"] = \"break\";\n  DomType[\"NoBreakHyphen\"] = \"noBreakHyphen\";\n  DomType[\"Table\"] = \"table\";\n  DomType[\"Row\"] = \"row\";\n  DomType[\"Cell\"] = \"cell\";\n  DomType[\"Hyperlink\"] = \"hyperlink\";\n  DomType[\"Drawing\"] = \"drawing\";\n  DomType[\"Image\"] = \"image\";\n  DomType[\"Text\"] = \"text\";\n  DomType[\"Tab\"] = \"tab\";\n  DomType[\"Symbol\"] = \"symbol\";\n  DomType[\"BookmarkStart\"] = \"bookmarkStart\";\n  DomType[\"BookmarkEnd\"] = \"bookmarkEnd\";\n  DomType[\"Footer\"] = \"footer\";\n  DomType[\"Header\"] = \"header\";\n  DomType[\"FootnoteReference\"] = \"footnoteReference\";\n  DomType[\"EndnoteReference\"] = \"endnoteReference\";\n  DomType[\"Footnote\"] = \"footnote\";\n  DomType[\"Endnote\"] = \"endnote\";\n  DomType[\"SimpleField\"] = \"simpleField\";\n  DomType[\"ComplexField\"] = \"complexField\";\n  DomType[\"Instruction\"] = \"instruction\";\n  DomType[\"VmlPicture\"] = \"vmlPicture\";\n  DomType[\"MmlMath\"] = \"mmlMath\";\n  DomType[\"MmlMathParagraph\"] = \"mmlMathParagraph\";\n  DomType[\"MmlFraction\"] = \"mmlFraction\";\n  DomType[\"MmlFunction\"] = \"mmlFunction\";\n  DomType[\"MmlFunctionName\"] = \"mmlFunctionName\";\n  DomType[\"MmlNumerator\"] = \"mmlNumerator\";\n  DomType[\"MmlDenominator\"] = \"mmlDenominator\";\n  DomType[\"MmlRadical\"] = \"mmlRadical\";\n  DomType[\"MmlBase\"] = \"mmlBase\";\n  DomType[\"MmlDegree\"] = \"mmlDegree\";\n  DomType[\"MmlSuperscript\"] = \"mmlSuperscript\";\n  DomType[\"MmlSubscript\"] = \"mmlSubscript\";\n  DomType[\"MmlPreSubSuper\"] = \"mmlPreSubSuper\";\n  DomType[\"MmlSubArgument\"] = \"mmlSubArgument\";\n  DomType[\"MmlSuperArgument\"] = \"mmlSuperArgument\";\n  DomType[\"MmlNary\"] = \"mmlNary\";\n  DomType[\"MmlDelimiter\"] = \"mmlDelimiter\";\n  DomType[\"MmlRun\"] = \"mmlRun\";\n  DomType[\"MmlEquationArray\"] = \"mmlEquationArray\";\n  DomType[\"MmlLimit\"] = \"mmlLimit\";\n  DomType[\"MmlLimitLower\"] = \"mmlLimitLower\";\n  DomType[\"MmlMatrix\"] = \"mmlMatrix\";\n  DomType[\"MmlMatrixRow\"] = \"mmlMatrixRow\";\n  DomType[\"MmlBox\"] = \"mmlBox\";\n  DomType[\"MmlBar\"] = \"mmlBar\";\n  DomType[\"MmlGroupChar\"] = \"mmlGroupChar\";\n  DomType[\"VmlElement\"] = \"vmlElement\";\n  DomType[\"Inserted\"] = \"inserted\";\n  DomType[\"Deleted\"] = \"deleted\";\n  DomType[\"DeletedText\"] = \"deletedText\";\n})(DomType || (DomType = {}));\nclass OpenXmlElementBase {\n  constructor() {\n    this.children = [];\n    this.cssStyle = {};\n  }\n}\nclass WmlHeader extends OpenXmlElementBase {\n  constructor() {\n    super(...arguments);\n    this.type = DomType.Header;\n  }\n}\nclass WmlFooter extends OpenXmlElementBase {\n  constructor() {\n    super(...arguments);\n    this.type = DomType.Footer;\n  }\n}\nclass BaseHeaderFooterPart extends Part {\n  constructor(pkg, path, parser) {\n    super(pkg, path);\n    this._documentParser = parser;\n  }\n  parseXml(root) {\n    this.rootElement = this.createRootElement();\n    this.rootElement.children = this._documentParser.parseBodyElements(root);\n  }\n}\nclass HeaderPart extends BaseHeaderFooterPart {\n  createRootElement() {\n    return new WmlHeader();\n  }\n}\nclass FooterPart extends BaseHeaderFooterPart {\n  createRootElement() {\n    return new WmlFooter();\n  }\n}\nfunction parseExtendedProps(root, xmlParser) {\n  const result = {};\n  for (let el of xmlParser.elements(root)) {\n    switch (el.localName) {\n      case \"Template\":\n        result.template = el.textContent;\n        break;\n      case \"Pages\":\n        result.pages = safeParseToInt(el.textContent);\n        break;\n      case \"Words\":\n        result.words = safeParseToInt(el.textContent);\n        break;\n      case \"Characters\":\n        result.characters = safeParseToInt(el.textContent);\n        break;\n      case \"Application\":\n        result.application = el.textContent;\n        break;\n      case \"Lines\":\n        result.lines = safeParseToInt(el.textContent);\n        break;\n      case \"Paragraphs\":\n        result.paragraphs = safeParseToInt(el.textContent);\n        break;\n      case \"Company\":\n        result.company = el.textContent;\n        break;\n      case \"AppVersion\":\n        result.appVersion = el.textContent;\n        break;\n    }\n  }\n  return result;\n}\nfunction safeParseToInt(value) {\n  if (typeof value === 'undefined') return;\n  return parseInt(value);\n}\nclass ExtendedPropsPart extends Part {\n  parseXml(root) {\n    this.props = parseExtendedProps(root, this._package.xmlParser);\n  }\n}\nfunction parseCoreProps(root, xmlParser) {\n  const result = {};\n  for (let el of xmlParser.elements(root)) {\n    switch (el.localName) {\n      case \"title\":\n        result.title = el.textContent;\n        break;\n      case \"description\":\n        result.description = el.textContent;\n        break;\n      case \"subject\":\n        result.subject = el.textContent;\n        break;\n      case \"creator\":\n        result.creator = el.textContent;\n        break;\n      case \"keywords\":\n        result.keywords = el.textContent;\n        break;\n      case \"language\":\n        result.language = el.textContent;\n        break;\n      case \"lastModifiedBy\":\n        result.lastModifiedBy = el.textContent;\n        break;\n      case \"revision\":\n        el.textContent && (result.revision = parseInt(el.textContent));\n        break;\n    }\n  }\n  return result;\n}\nclass CorePropsPart extends Part {\n  parseXml(root) {\n    this.props = parseCoreProps(root, this._package.xmlParser);\n  }\n}\nclass DmlTheme {}\nfunction parseTheme(elem, xml) {\n  var result = new DmlTheme();\n  var themeElements = xml.element(elem, \"themeElements\");\n  for (let el of xml.elements(themeElements)) {\n    switch (el.localName) {\n      case \"clrScheme\":\n        result.colorScheme = parseColorScheme(el, xml);\n        break;\n      case \"fontScheme\":\n        result.fontScheme = parseFontScheme(el, xml);\n        break;\n    }\n  }\n  return result;\n}\nfunction parseColorScheme(elem, xml) {\n  var result = {\n    name: xml.attr(elem, \"name\"),\n    colors: {}\n  };\n  for (let el of xml.elements(elem)) {\n    var srgbClr = xml.element(el, \"srgbClr\");\n    var sysClr = xml.element(el, \"sysClr\");\n    if (srgbClr) {\n      result.colors[el.localName] = xml.attr(srgbClr, \"val\");\n    } else if (sysClr) {\n      result.colors[el.localName] = xml.attr(sysClr, \"lastClr\");\n    }\n  }\n  return result;\n}\nfunction parseFontScheme(elem, xml) {\n  var result = {\n    name: xml.attr(elem, \"name\")\n  };\n  for (let el of xml.elements(elem)) {\n    switch (el.localName) {\n      case \"majorFont\":\n        result.majorFont = parseFontInfo(el, xml);\n        break;\n      case \"minorFont\":\n        result.minorFont = parseFontInfo(el, xml);\n        break;\n    }\n  }\n  return result;\n}\nfunction parseFontInfo(elem, xml) {\n  return {\n    latinTypeface: xml.elementAttr(elem, \"latin\", \"typeface\"),\n    eaTypeface: xml.elementAttr(elem, \"ea\", \"typeface\"),\n    csTypeface: xml.elementAttr(elem, \"cs\", \"typeface\")\n  };\n}\nclass ThemePart extends Part {\n  constructor(pkg, path) {\n    super(pkg, path);\n  }\n  parseXml(root) {\n    this.theme = parseTheme(root, this._package.xmlParser);\n  }\n}\nclass WmlBaseNote {}\nclass WmlFootnote extends WmlBaseNote {\n  constructor() {\n    super(...arguments);\n    this.type = DomType.Footnote;\n  }\n}\nclass WmlEndnote extends WmlBaseNote {\n  constructor() {\n    super(...arguments);\n    this.type = DomType.Endnote;\n  }\n}\nclass BaseNotePart extends Part {\n  constructor(pkg, path, parser) {\n    super(pkg, path);\n    this._documentParser = parser;\n  }\n}\nclass FootnotesPart extends BaseNotePart {\n  constructor(pkg, path, parser) {\n    super(pkg, path, parser);\n  }\n  parseXml(root) {\n    this.notes = this._documentParser.parseNotes(root, \"footnote\", WmlFootnote);\n  }\n}\nclass EndnotesPart extends BaseNotePart {\n  constructor(pkg, path, parser) {\n    super(pkg, path, parser);\n  }\n  parseXml(root) {\n    this.notes = this._documentParser.parseNotes(root, \"endnote\", WmlEndnote);\n  }\n}\nfunction parseSettings(elem, xml) {\n  var result = {};\n  for (let el of xml.elements(elem)) {\n    switch (el.localName) {\n      case \"defaultTabStop\":\n        result.defaultTabStop = xml.lengthAttr(el, \"val\");\n        break;\n      case \"footnotePr\":\n        result.footnoteProps = parseNoteProperties(el, xml);\n        break;\n      case \"endnotePr\":\n        result.endnoteProps = parseNoteProperties(el, xml);\n        break;\n      case \"autoHyphenation\":\n        result.autoHyphenation = xml.boolAttr(el, \"val\");\n        break;\n    }\n  }\n  return result;\n}\nfunction parseNoteProperties(elem, xml) {\n  var result = {\n    defaultNoteIds: []\n  };\n  for (let el of xml.elements(elem)) {\n    switch (el.localName) {\n      case \"numFmt\":\n        result.nummeringFormat = xml.attr(el, \"val\");\n        break;\n      case \"footnote\":\n      case \"endnote\":\n        result.defaultNoteIds.push(xml.attr(el, \"id\"));\n        break;\n    }\n  }\n  return result;\n}\nclass SettingsPart extends Part {\n  constructor(pkg, path) {\n    super(pkg, path);\n  }\n  parseXml(root) {\n    this.settings = parseSettings(root, this._package.xmlParser);\n  }\n}\nfunction parseCustomProps(root, xml) {\n  return xml.elements(root, \"property\").map(e => {\n    const firstChild = e.firstChild;\n    return {\n      formatId: xml.attr(e, \"fmtid\"),\n      name: xml.attr(e, \"name\"),\n      type: firstChild.nodeName,\n      value: firstChild.textContent\n    };\n  });\n}\nclass CustomPropsPart extends Part {\n  parseXml(root) {\n    this.props = parseCustomProps(root, this._package.xmlParser);\n  }\n}\nconst topLevelRels = [{\n  type: RelationshipTypes.OfficeDocument,\n  target: \"word/document.xml\"\n}, {\n  type: RelationshipTypes.ExtendedProperties,\n  target: \"docProps/app.xml\"\n}, {\n  type: RelationshipTypes.CoreProperties,\n  target: \"docProps/core.xml\"\n}, {\n  type: RelationshipTypes.CustomProperties,\n  target: \"docProps/custom.xml\"\n}];\nclass WordDocument {\n  constructor() {\n    this.parts = [];\n    this.partsMap = {};\n  }\n  static async load(blob, parser, options) {\n    var d = new WordDocument();\n    d._options = options;\n    d._parser = parser;\n    d._package = await OpenXmlPackage.load(blob, options);\n    d.rels = await d._package.loadRelationships();\n    await Promise.all(topLevelRels.map(rel => {\n      var _d$rels$find;\n      const r = (_d$rels$find = d.rels.find(x => x.type === rel.type)) !== null && _d$rels$find !== void 0 ? _d$rels$find : rel;\n      return d.loadRelationshipPart(r.target, r.type);\n    }));\n    return d;\n  }\n  save(type = \"blob\") {\n    return this._package.save(type);\n  }\n  async loadRelationshipPart(path, type) {\n    var _part$rels;\n    if (this.partsMap[path]) return this.partsMap[path];\n    if (!this._package.get(path)) return null;\n    let part = null;\n    switch (type) {\n      case RelationshipTypes.OfficeDocument:\n        this.documentPart = part = new DocumentPart(this._package, path, this._parser);\n        break;\n      case RelationshipTypes.FontTable:\n        this.fontTablePart = part = new FontTablePart(this._package, path);\n        break;\n      case RelationshipTypes.Numbering:\n        this.numberingPart = part = new NumberingPart(this._package, path, this._parser);\n        break;\n      case RelationshipTypes.Styles:\n        this.stylesPart = part = new StylesPart(this._package, path, this._parser);\n        break;\n      case RelationshipTypes.Theme:\n        this.themePart = part = new ThemePart(this._package, path);\n        break;\n      case RelationshipTypes.Footnotes:\n        this.footnotesPart = part = new FootnotesPart(this._package, path, this._parser);\n        break;\n      case RelationshipTypes.Endnotes:\n        this.endnotesPart = part = new EndnotesPart(this._package, path, this._parser);\n        break;\n      case RelationshipTypes.Footer:\n        part = new FooterPart(this._package, path, this._parser);\n        break;\n      case RelationshipTypes.Header:\n        part = new HeaderPart(this._package, path, this._parser);\n        break;\n      case RelationshipTypes.CoreProperties:\n        this.corePropsPart = part = new CorePropsPart(this._package, path);\n        break;\n      case RelationshipTypes.ExtendedProperties:\n        this.extendedPropsPart = part = new ExtendedPropsPart(this._package, path);\n        break;\n      case RelationshipTypes.CustomProperties:\n        part = new CustomPropsPart(this._package, path);\n        break;\n      case RelationshipTypes.Settings:\n        this.settingsPart = part = new SettingsPart(this._package, path);\n        break;\n    }\n    if (part == null) return Promise.resolve(null);\n    this.partsMap[path] = part;\n    this.parts.push(part);\n    await part.load();\n    if (((_part$rels = part.rels) === null || _part$rels === void 0 ? void 0 : _part$rels.length) > 0) {\n      const [folder] = splitPath(part.path);\n      await Promise.all(part.rels.map(rel => this.loadRelationshipPart(resolvePath(rel.target, folder), rel.type)));\n    }\n    return part;\n  }\n  async loadDocumentImage(id, part) {\n    const x = await this.loadResource(part !== null && part !== void 0 ? part : this.documentPart, id, \"blob\");\n    return this.blobToURL(x);\n  }\n  async loadNumberingImage(id) {\n    const x = await this.loadResource(this.numberingPart, id, \"blob\");\n    return this.blobToURL(x);\n  }\n  async loadFont(id, key) {\n    const x = await this.loadResource(this.fontTablePart, id, \"uint8array\");\n    return x ? this.blobToURL(new Blob([deobfuscate(x, key)])) : x;\n  }\n  blobToURL(blob) {\n    if (!blob) return null;\n    if (this._options.useBase64URL) {\n      return blobToBase64(blob);\n    }\n    return URL.createObjectURL(blob);\n  }\n  findPartByRelId(id, basePart = null) {\n    var _basePart$rels;\n    var rel = ((_basePart$rels = basePart.rels) !== null && _basePart$rels !== void 0 ? _basePart$rels : this.rels).find(r => r.id == id);\n    const folder = basePart ? splitPath(basePart.path)[0] : '';\n    return rel ? this.partsMap[resolvePath(rel.target, folder)] : null;\n  }\n  getPathById(part, id) {\n    const rel = part.rels.find(x => x.id == id);\n    const [folder] = splitPath(part.path);\n    return rel ? resolvePath(rel.target, folder) : null;\n  }\n  loadResource(part, id, outputType) {\n    const path = this.getPathById(part, id);\n    return path ? this._package.load(path, outputType) : Promise.resolve(null);\n  }\n}\nfunction deobfuscate(data, guidKey) {\n  const len = 16;\n  const trimmed = guidKey.replace(/{|}|-/g, \"\");\n  const numbers = new Array(len);\n  for (let i = 0; i < len; i++) numbers[len - i - 1] = parseInt(trimmed.substr(i * 2, 2), 16);\n  for (let i = 0; i < 32; i++) data[i] = data[i] ^ numbers[i % len];\n  return data;\n}\nfunction parseBookmarkStart(elem, xml) {\n  return {\n    type: DomType.BookmarkStart,\n    id: xml.attr(elem, \"id\"),\n    name: xml.attr(elem, \"name\"),\n    colFirst: xml.intAttr(elem, \"colFirst\"),\n    colLast: xml.intAttr(elem, \"colLast\")\n  };\n}\nfunction parseBookmarkEnd(elem, xml) {\n  return {\n    type: DomType.BookmarkEnd,\n    id: xml.attr(elem, \"id\")\n  };\n}\nclass VmlElement extends OpenXmlElementBase {\n  constructor() {\n    super(...arguments);\n    this.type = DomType.VmlElement;\n    this.attrs = {};\n  }\n}\nfunction parseVmlElement(elem, parser) {\n  var result = new VmlElement();\n  switch (elem.localName) {\n    case \"rect\":\n      result.tagName = \"rect\";\n      Object.assign(result.attrs, {\n        width: '100%',\n        height: '100%'\n      });\n      break;\n    case \"oval\":\n      result.tagName = \"ellipse\";\n      Object.assign(result.attrs, {\n        cx: \"50%\",\n        cy: \"50%\",\n        rx: \"50%\",\n        ry: \"50%\"\n      });\n      break;\n    case \"line\":\n      result.tagName = \"line\";\n      break;\n    case \"shape\":\n      result.tagName = \"g\";\n      break;\n    case \"textbox\":\n      result.tagName = \"foreignObject\";\n      Object.assign(result.attrs, {\n        width: '100%',\n        height: '100%'\n      });\n      break;\n    default:\n      return null;\n  }\n  for (const at of globalXmlParser.attrs(elem)) {\n    switch (at.localName) {\n      case \"style\":\n        result.cssStyleText = at.value;\n        break;\n      case \"fillcolor\":\n        result.attrs.fill = at.value;\n        break;\n      case \"from\":\n        const [x1, y1] = parsePoint(at.value);\n        Object.assign(result.attrs, {\n          x1,\n          y1\n        });\n        break;\n      case \"to\":\n        const [x2, y2] = parsePoint(at.value);\n        Object.assign(result.attrs, {\n          x2,\n          y2\n        });\n        break;\n    }\n  }\n  for (const el of globalXmlParser.elements(elem)) {\n    switch (el.localName) {\n      case \"stroke\":\n        Object.assign(result.attrs, parseStroke(el));\n        break;\n      case \"fill\":\n        Object.assign(result.attrs, parseFill());\n        break;\n      case \"imagedata\":\n        result.tagName = \"image\";\n        Object.assign(result.attrs, {\n          width: '100%',\n          height: '100%'\n        });\n        result.imageHref = {\n          id: globalXmlParser.attr(el, \"id\"),\n          title: globalXmlParser.attr(el, \"title\")\n        };\n        break;\n      case \"txbxContent\":\n        result.children.push(...parser.parseBodyElements(el));\n        break;\n      default:\n        const child = parseVmlElement(el, parser);\n        child && result.children.push(child);\n        break;\n    }\n  }\n  return result;\n}\nfunction parseStroke(el) {\n  var _globalXmlParser$leng;\n  return {\n    'stroke': globalXmlParser.attr(el, \"color\"),\n    'stroke-width': (_globalXmlParser$leng = globalXmlParser.lengthAttr(el, \"weight\", LengthUsage.Emu)) !== null && _globalXmlParser$leng !== void 0 ? _globalXmlParser$leng : '1px'\n  };\n}\nfunction parseFill(el) {\n  return {};\n}\nfunction parsePoint(val) {\n  return val.split(\",\");\n}\nvar autos = {\n  shd: \"inherit\",\n  color: \"black\",\n  borderColor: \"black\",\n  highlight: \"transparent\"\n};\nconst supportedNamespaceURIs = [];\nconst mmlTagMap = {\n  \"oMath\": DomType.MmlMath,\n  \"oMathPara\": DomType.MmlMathParagraph,\n  \"f\": DomType.MmlFraction,\n  \"func\": DomType.MmlFunction,\n  \"fName\": DomType.MmlFunctionName,\n  \"num\": DomType.MmlNumerator,\n  \"den\": DomType.MmlDenominator,\n  \"rad\": DomType.MmlRadical,\n  \"deg\": DomType.MmlDegree,\n  \"e\": DomType.MmlBase,\n  \"sSup\": DomType.MmlSuperscript,\n  \"sSub\": DomType.MmlSubscript,\n  \"sPre\": DomType.MmlPreSubSuper,\n  \"sup\": DomType.MmlSuperArgument,\n  \"sub\": DomType.MmlSubArgument,\n  \"d\": DomType.MmlDelimiter,\n  \"nary\": DomType.MmlNary,\n  \"eqArr\": DomType.MmlEquationArray,\n  \"lim\": DomType.MmlLimit,\n  \"limLow\": DomType.MmlLimitLower,\n  \"m\": DomType.MmlMatrix,\n  \"mr\": DomType.MmlMatrixRow,\n  \"box\": DomType.MmlBox,\n  \"bar\": DomType.MmlBar,\n  \"groupChr\": DomType.MmlGroupChar\n};\nclass DocumentParser {\n  constructor(options) {\n    this.options = {\n      ignoreWidth: false,\n      debug: false,\n      ...options\n    };\n  }\n  parseNotes(xmlDoc, elemName, elemClass) {\n    var result = [];\n    for (let el of globalXmlParser.elements(xmlDoc, elemName)) {\n      const node = new elemClass();\n      node.id = globalXmlParser.attr(el, \"id\");\n      node.noteType = globalXmlParser.attr(el, \"type\");\n      node.children = this.parseBodyElements(el);\n      result.push(node);\n    }\n    return result;\n  }\n  parseDocumentFile(xmlDoc) {\n    var xbody = globalXmlParser.element(xmlDoc, \"body\");\n    var background = globalXmlParser.element(xmlDoc, \"background\");\n    var sectPr = globalXmlParser.element(xbody, \"sectPr\");\n    return {\n      type: DomType.Document,\n      children: this.parseBodyElements(xbody),\n      props: sectPr ? parseSectionProperties(sectPr, globalXmlParser) : {},\n      cssStyle: background ? this.parseBackground(background) : {}\n    };\n  }\n  parseBackground(elem) {\n    var result = {};\n    var color = xmlUtil.colorAttr(elem, \"color\");\n    if (color) {\n      result[\"background-color\"] = color;\n    }\n    return result;\n  }\n  parseBodyElements(element) {\n    var children = [];\n    for (let elem of globalXmlParser.elements(element)) {\n      switch (elem.localName) {\n        case \"p\":\n          children.push(this.parseParagraph(elem));\n          break;\n        case \"tbl\":\n          children.push(this.parseTable(elem));\n          break;\n        case \"sdt\":\n          children.push(...this.parseSdt(elem, e => this.parseBodyElements(e)));\n          break;\n      }\n    }\n    return children;\n  }\n  parseStylesFile(xstyles) {\n    var result = [];\n    xmlUtil.foreach(xstyles, n => {\n      switch (n.localName) {\n        case \"style\":\n          result.push(this.parseStyle(n));\n          break;\n        case \"docDefaults\":\n          result.push(this.parseDefaultStyles(n));\n          break;\n      }\n    });\n    return result;\n  }\n  parseDefaultStyles(node) {\n    var result = {\n      id: null,\n      name: null,\n      target: null,\n      basedOn: null,\n      styles: []\n    };\n    xmlUtil.foreach(node, c => {\n      switch (c.localName) {\n        case \"rPrDefault\":\n          var rPr = globalXmlParser.element(c, \"rPr\");\n          if (rPr) result.styles.push({\n            target: \"span\",\n            values: this.parseDefaultProperties(rPr, {})\n          });\n          break;\n        case \"pPrDefault\":\n          var pPr = globalXmlParser.element(c, \"pPr\");\n          if (pPr) result.styles.push({\n            target: \"p\",\n            values: this.parseDefaultProperties(pPr, {})\n          });\n          break;\n      }\n    });\n    return result;\n  }\n  parseStyle(node) {\n    var result = {\n      id: globalXmlParser.attr(node, \"styleId\"),\n      isDefault: globalXmlParser.boolAttr(node, \"default\"),\n      name: null,\n      target: null,\n      basedOn: null,\n      styles: [],\n      linked: null\n    };\n    switch (globalXmlParser.attr(node, \"type\")) {\n      case \"paragraph\":\n        result.target = \"p\";\n        break;\n      case \"table\":\n        result.target = \"table\";\n        break;\n      case \"character\":\n        result.target = \"span\";\n        break;\n    }\n    xmlUtil.foreach(node, n => {\n      switch (n.localName) {\n        case \"basedOn\":\n          result.basedOn = globalXmlParser.attr(n, \"val\");\n          break;\n        case \"name\":\n          result.name = globalXmlParser.attr(n, \"val\");\n          break;\n        case \"link\":\n          result.linked = globalXmlParser.attr(n, \"val\");\n          break;\n        case \"next\":\n          result.next = globalXmlParser.attr(n, \"val\");\n          break;\n        case \"aliases\":\n          result.aliases = globalXmlParser.attr(n, \"val\").split(\",\");\n          break;\n        case \"pPr\":\n          result.styles.push({\n            target: \"p\",\n            values: this.parseDefaultProperties(n, {})\n          });\n          result.paragraphProps = parseParagraphProperties(n, globalXmlParser);\n          break;\n        case \"rPr\":\n          result.styles.push({\n            target: \"span\",\n            values: this.parseDefaultProperties(n, {})\n          });\n          result.runProps = parseRunProperties(n, globalXmlParser);\n          break;\n        case \"tblPr\":\n        case \"tcPr\":\n          result.styles.push({\n            target: \"td\",\n            values: this.parseDefaultProperties(n, {})\n          });\n          break;\n        case \"tblStylePr\":\n          for (let s of this.parseTableStyle(n)) result.styles.push(s);\n          break;\n        case \"rsid\":\n        case \"qFormat\":\n        case \"hidden\":\n        case \"semiHidden\":\n        case \"unhideWhenUsed\":\n        case \"autoRedefine\":\n        case \"uiPriority\":\n          break;\n        default:\n          this.options.debug && console.warn(`DOCX: Unknown style element: ${n.localName}`);\n      }\n    });\n    return result;\n  }\n  parseTableStyle(node) {\n    var result = [];\n    var type = globalXmlParser.attr(node, \"type\");\n    var selector = \"\";\n    var modificator = \"\";\n    switch (type) {\n      case \"firstRow\":\n        modificator = \".first-row\";\n        selector = \"tr.first-row td\";\n        break;\n      case \"lastRow\":\n        modificator = \".last-row\";\n        selector = \"tr.last-row td\";\n        break;\n      case \"firstCol\":\n        modificator = \".first-col\";\n        selector = \"td.first-col\";\n        break;\n      case \"lastCol\":\n        modificator = \".last-col\";\n        selector = \"td.last-col\";\n        break;\n      case \"band1Vert\":\n        modificator = \":not(.no-vband)\";\n        selector = \"td.odd-col\";\n        break;\n      case \"band2Vert\":\n        modificator = \":not(.no-vband)\";\n        selector = \"td.even-col\";\n        break;\n      case \"band1Horz\":\n        modificator = \":not(.no-hband)\";\n        selector = \"tr.odd-row\";\n        break;\n      case \"band2Horz\":\n        modificator = \":not(.no-hband)\";\n        selector = \"tr.even-row\";\n        break;\n      default:\n        return [];\n    }\n    xmlUtil.foreach(node, n => {\n      switch (n.localName) {\n        case \"pPr\":\n          result.push({\n            target: `${selector} p`,\n            mod: modificator,\n            values: this.parseDefaultProperties(n, {})\n          });\n          break;\n        case \"rPr\":\n          result.push({\n            target: `${selector} span`,\n            mod: modificator,\n            values: this.parseDefaultProperties(n, {})\n          });\n          break;\n        case \"tblPr\":\n        case \"tcPr\":\n          result.push({\n            target: selector,\n            mod: modificator,\n            values: this.parseDefaultProperties(n, {})\n          });\n          break;\n      }\n    });\n    return result;\n  }\n  parseNumberingFile(xnums) {\n    var result = [];\n    var mapping = {};\n    var bullets = [];\n    xmlUtil.foreach(xnums, n => {\n      switch (n.localName) {\n        case \"abstractNum\":\n          this.parseAbstractNumbering(n, bullets).forEach(x => result.push(x));\n          break;\n        case \"numPicBullet\":\n          bullets.push(this.parseNumberingPicBullet(n));\n          break;\n        case \"num\":\n          var numId = globalXmlParser.attr(n, \"numId\");\n          var abstractNumId = globalXmlParser.elementAttr(n, \"abstractNumId\", \"val\");\n          mapping[abstractNumId] = numId;\n          break;\n      }\n    });\n    result.forEach(x => x.id = mapping[x.id]);\n    return result;\n  }\n  parseNumberingPicBullet(elem) {\n    var pict = globalXmlParser.element(elem, \"pict\");\n    var shape = pict && globalXmlParser.element(pict, \"shape\");\n    var imagedata = shape && globalXmlParser.element(shape, \"imagedata\");\n    return imagedata ? {\n      id: globalXmlParser.intAttr(elem, \"numPicBulletId\"),\n      src: globalXmlParser.attr(imagedata, \"id\"),\n      style: globalXmlParser.attr(shape, \"style\")\n    } : null;\n  }\n  parseAbstractNumbering(node, bullets) {\n    var result = [];\n    var id = globalXmlParser.attr(node, \"abstractNumId\");\n    xmlUtil.foreach(node, n => {\n      switch (n.localName) {\n        case \"lvl\":\n          result.push(this.parseNumberingLevel(id, n, bullets));\n          break;\n      }\n    });\n    return result;\n  }\n  parseNumberingLevel(id, node, bullets) {\n    var result = {\n      id: id,\n      level: globalXmlParser.intAttr(node, \"ilvl\"),\n      start: 1,\n      pStyleName: undefined,\n      pStyle: {},\n      rStyle: {},\n      suff: \"tab\"\n    };\n    xmlUtil.foreach(node, n => {\n      switch (n.localName) {\n        case \"start\":\n          result.start = globalXmlParser.intAttr(n, \"val\");\n          break;\n        case \"pPr\":\n          this.parseDefaultProperties(n, result.pStyle);\n          break;\n        case \"rPr\":\n          this.parseDefaultProperties(n, result.rStyle);\n          break;\n        case \"lvlPicBulletId\":\n          var id = globalXmlParser.intAttr(n, \"val\");\n          result.bullet = bullets.find(x => x.id == id);\n          break;\n        case \"lvlText\":\n          result.levelText = globalXmlParser.attr(n, \"val\");\n          break;\n        case \"pStyle\":\n          result.pStyleName = globalXmlParser.attr(n, \"val\");\n          break;\n        case \"numFmt\":\n          result.format = globalXmlParser.attr(n, \"val\");\n          break;\n        case \"suff\":\n          result.suff = globalXmlParser.attr(n, \"val\");\n          break;\n      }\n    });\n    return result;\n  }\n  parseSdt(node, parser) {\n    const sdtContent = globalXmlParser.element(node, \"sdtContent\");\n    return sdtContent ? parser(sdtContent) : [];\n  }\n  parseInserted(node, parentParser) {\n    var _parentParser$childre, _parentParser;\n    return {\n      type: DomType.Inserted,\n      children: (_parentParser$childre = (_parentParser = parentParser(node)) === null || _parentParser === void 0 ? void 0 : _parentParser.children) !== null && _parentParser$childre !== void 0 ? _parentParser$childre : []\n    };\n  }\n  parseDeleted(node, parentParser) {\n    var _parentParser$childre2, _parentParser2;\n    return {\n      type: DomType.Deleted,\n      children: (_parentParser$childre2 = (_parentParser2 = parentParser(node)) === null || _parentParser2 === void 0 ? void 0 : _parentParser2.children) !== null && _parentParser$childre2 !== void 0 ? _parentParser$childre2 : []\n    };\n  }\n  parseParagraph(node) {\n    var result = {\n      type: DomType.Paragraph,\n      children: []\n    };\n    for (let el of globalXmlParser.elements(node)) {\n      switch (el.localName) {\n        case \"pPr\":\n          this.parseParagraphProperties(el, result);\n          break;\n        case \"r\":\n          result.children.push(this.parseRun(el, result));\n          break;\n        case \"hyperlink\":\n          result.children.push(this.parseHyperlink(el, result));\n          break;\n        case \"bookmarkStart\":\n          result.children.push(parseBookmarkStart(el, globalXmlParser));\n          break;\n        case \"bookmarkEnd\":\n          result.children.push(parseBookmarkEnd(el, globalXmlParser));\n          break;\n        case \"oMath\":\n        case \"oMathPara\":\n          result.children.push(this.parseMathElement(el));\n          break;\n        case \"sdt\":\n          result.children.push(...this.parseSdt(el, e => this.parseParagraph(e).children));\n          break;\n        case \"ins\":\n          result.children.push(this.parseInserted(el, e => this.parseParagraph(e)));\n          break;\n        case \"del\":\n          result.children.push(this.parseDeleted(el, e => this.parseParagraph(e)));\n          break;\n      }\n    }\n    return result;\n  }\n  parseParagraphProperties(elem, paragraph) {\n    this.parseDefaultProperties(elem, paragraph.cssStyle = {}, null, c => {\n      if (parseParagraphProperty(c, paragraph, globalXmlParser)) return true;\n      switch (c.localName) {\n        case \"pStyle\":\n          paragraph.styleName = globalXmlParser.attr(c, \"val\");\n          break;\n        case \"cnfStyle\":\n          paragraph.className = values.classNameOfCnfStyle(c);\n          break;\n        case \"framePr\":\n          this.parseFrame(c, paragraph);\n          break;\n        case \"rPr\":\n          break;\n        default:\n          return false;\n      }\n      return true;\n    });\n  }\n  parseFrame(node, paragraph) {\n    var dropCap = globalXmlParser.attr(node, \"dropCap\");\n    if (dropCap == \"drop\") paragraph.cssStyle[\"float\"] = \"left\";\n  }\n  parseHyperlink(node, parent) {\n    var result = {\n      type: DomType.Hyperlink,\n      parent: parent,\n      children: []\n    };\n    var anchor = globalXmlParser.attr(node, \"anchor\");\n    var relId = globalXmlParser.attr(node, \"id\");\n    if (anchor) result.href = \"#\" + anchor;\n    if (relId) result.id = relId;\n    xmlUtil.foreach(node, c => {\n      switch (c.localName) {\n        case \"r\":\n          result.children.push(this.parseRun(c, result));\n          break;\n      }\n    });\n    return result;\n  }\n  parseRun(node, parent) {\n    var result = {\n      type: DomType.Run,\n      parent: parent,\n      children: []\n    };\n    xmlUtil.foreach(node, c => {\n      c = this.checkAlternateContent(c);\n      switch (c.localName) {\n        case \"t\":\n          result.children.push({\n            type: DomType.Text,\n            text: c.textContent\n          });\n          break;\n        case \"delText\":\n          result.children.push({\n            type: DomType.DeletedText,\n            text: c.textContent\n          });\n          break;\n        case \"fldSimple\":\n          result.children.push({\n            type: DomType.SimpleField,\n            instruction: globalXmlParser.attr(c, \"instr\"),\n            lock: globalXmlParser.boolAttr(c, \"lock\", false),\n            dirty: globalXmlParser.boolAttr(c, \"dirty\", false)\n          });\n          break;\n        case \"instrText\":\n          result.fieldRun = true;\n          result.children.push({\n            type: DomType.Instruction,\n            text: c.textContent\n          });\n          break;\n        case \"fldChar\":\n          result.fieldRun = true;\n          result.children.push({\n            type: DomType.ComplexField,\n            charType: globalXmlParser.attr(c, \"fldCharType\"),\n            lock: globalXmlParser.boolAttr(c, \"lock\", false),\n            dirty: globalXmlParser.boolAttr(c, \"dirty\", false)\n          });\n          break;\n        case \"noBreakHyphen\":\n          result.children.push({\n            type: DomType.NoBreakHyphen\n          });\n          break;\n        case \"br\":\n          result.children.push({\n            type: DomType.Break,\n            break: globalXmlParser.attr(c, \"type\") || \"textWrapping\"\n          });\n          break;\n        case \"lastRenderedPageBreak\":\n          result.children.push({\n            type: DomType.Break,\n            break: \"lastRenderedPageBreak\"\n          });\n          break;\n        case \"sym\":\n          result.children.push({\n            type: DomType.Symbol,\n            font: globalXmlParser.attr(c, \"font\"),\n            char: globalXmlParser.attr(c, \"char\")\n          });\n          break;\n        case \"tab\":\n          result.children.push({\n            type: DomType.Tab\n          });\n          break;\n        case \"footnoteReference\":\n          result.children.push({\n            type: DomType.FootnoteReference,\n            id: globalXmlParser.attr(c, \"id\")\n          });\n          break;\n        case \"endnoteReference\":\n          result.children.push({\n            type: DomType.EndnoteReference,\n            id: globalXmlParser.attr(c, \"id\")\n          });\n          break;\n        case \"drawing\":\n          let d = this.parseDrawing(c);\n          if (d) result.children = [d];\n          break;\n        case \"pict\":\n          result.children.push(this.parseVmlPicture(c));\n          break;\n        case \"rPr\":\n          this.parseRunProperties(c, result);\n          break;\n      }\n    });\n    return result;\n  }\n  parseMathElement(elem) {\n    const propsTag = `${elem.localName}Pr`;\n    const result = {\n      type: mmlTagMap[elem.localName],\n      children: []\n    };\n    for (const el of globalXmlParser.elements(elem)) {\n      const childType = mmlTagMap[el.localName];\n      if (childType) {\n        result.children.push(this.parseMathElement(el));\n      } else if (el.localName == \"r\") {\n        var run = this.parseRun(el);\n        run.type = DomType.MmlRun;\n        result.children.push(run);\n      } else if (el.localName == propsTag) {\n        result.props = this.parseMathProperies(el);\n      }\n    }\n    return result;\n  }\n  parseMathProperies(elem) {\n    const result = {};\n    for (const el of globalXmlParser.elements(elem)) {\n      switch (el.localName) {\n        case \"chr\":\n          result.char = globalXmlParser.attr(el, \"val\");\n          break;\n        case \"vertJc\":\n          result.verticalJustification = globalXmlParser.attr(el, \"val\");\n          break;\n        case \"pos\":\n          result.position = globalXmlParser.attr(el, \"val\");\n          break;\n        case \"degHide\":\n          result.hideDegree = globalXmlParser.boolAttr(el, \"val\");\n          break;\n        case \"begChr\":\n          result.beginChar = globalXmlParser.attr(el, \"val\");\n          break;\n        case \"endChr\":\n          result.endChar = globalXmlParser.attr(el, \"val\");\n          break;\n      }\n    }\n    return result;\n  }\n  parseRunProperties(elem, run) {\n    this.parseDefaultProperties(elem, run.cssStyle = {}, null, c => {\n      switch (c.localName) {\n        case \"rStyle\":\n          run.styleName = globalXmlParser.attr(c, \"val\");\n          break;\n        case \"vertAlign\":\n          run.verticalAlign = values.valueOfVertAlign(c, true);\n          break;\n        default:\n          return false;\n      }\n      return true;\n    });\n  }\n  parseVmlPicture(elem) {\n    const result = {\n      type: DomType.VmlPicture,\n      children: []\n    };\n    for (const el of globalXmlParser.elements(elem)) {\n      const child = parseVmlElement(el, this);\n      child && result.children.push(child);\n    }\n    return result;\n  }\n  checkAlternateContent(elem) {\n    var _globalXmlParser$elem;\n    if (elem.localName != 'AlternateContent') return elem;\n    var choice = globalXmlParser.element(elem, \"Choice\");\n    if (choice) {\n      var requires = globalXmlParser.attr(choice, \"Requires\");\n      var namespaceURI = elem.lookupNamespaceURI(requires);\n      if (supportedNamespaceURIs.includes(namespaceURI)) return choice.firstElementChild;\n    }\n    return (_globalXmlParser$elem = globalXmlParser.element(elem, \"Fallback\")) === null || _globalXmlParser$elem === void 0 ? void 0 : _globalXmlParser$elem.firstElementChild;\n  }\n  parseDrawing(node) {\n    for (var n of globalXmlParser.elements(node)) {\n      switch (n.localName) {\n        case \"inline\":\n        case \"anchor\":\n          return this.parseDrawingWrapper(n);\n      }\n    }\n  }\n  parseDrawingWrapper(node) {\n    var result = {\n      type: DomType.Drawing,\n      children: [],\n      cssStyle: {}\n    };\n    var isAnchor = node.localName == \"anchor\";\n    let wrapType = null;\n    let simplePos = globalXmlParser.boolAttr(node, \"simplePos\");\n    let posX = {\n      relative: \"page\",\n      align: \"left\",\n      offset: \"0\"\n    };\n    let posY = {\n      relative: \"page\",\n      align: \"top\",\n      offset: \"0\"\n    };\n    for (var n of globalXmlParser.elements(node)) {\n      switch (n.localName) {\n        case \"simplePos\":\n          if (simplePos) {\n            posX.offset = globalXmlParser.lengthAttr(n, \"x\", LengthUsage.Emu);\n            posY.offset = globalXmlParser.lengthAttr(n, \"y\", LengthUsage.Emu);\n          }\n          break;\n        case \"extent\":\n          result.cssStyle[\"width\"] = globalXmlParser.lengthAttr(n, \"cx\", LengthUsage.Emu);\n          result.cssStyle[\"height\"] = globalXmlParser.lengthAttr(n, \"cy\", LengthUsage.Emu);\n          break;\n        case \"positionH\":\n        case \"positionV\":\n          if (!simplePos) {\n            var _globalXmlParser$attr;\n            let pos = n.localName == \"positionH\" ? posX : posY;\n            var alignNode = globalXmlParser.element(n, \"align\");\n            var offsetNode = globalXmlParser.element(n, \"posOffset\");\n            pos.relative = (_globalXmlParser$attr = globalXmlParser.attr(n, \"relativeFrom\")) !== null && _globalXmlParser$attr !== void 0 ? _globalXmlParser$attr : pos.relative;\n            if (alignNode) pos.align = alignNode.textContent;\n            if (offsetNode) pos.offset = xmlUtil.sizeValue(offsetNode, LengthUsage.Emu);\n          }\n          break;\n        case \"wrapTopAndBottom\":\n          wrapType = \"wrapTopAndBottom\";\n          break;\n        case \"wrapNone\":\n          wrapType = \"wrapNone\";\n          break;\n        case \"graphic\":\n          var g = this.parseGraphic(n);\n          if (g) result.children.push(g);\n          break;\n      }\n    }\n    if (wrapType == \"wrapTopAndBottom\") {\n      result.cssStyle['display'] = 'block';\n      if (posX.align) {\n        result.cssStyle['text-align'] = posX.align;\n        result.cssStyle['width'] = \"100%\";\n      }\n    } else if (wrapType == \"wrapNone\") {\n      result.cssStyle['display'] = 'block';\n      result.cssStyle['position'] = 'relative';\n      result.cssStyle[\"width\"] = \"0px\";\n      result.cssStyle[\"height\"] = \"0px\";\n      if (posX.offset) result.cssStyle[\"left\"] = posX.offset;\n      if (posY.offset) result.cssStyle[\"top\"] = posY.offset;\n    } else if (isAnchor && (posX.align == 'left' || posX.align == 'right')) {\n      result.cssStyle[\"float\"] = posX.align;\n    }\n    return result;\n  }\n  parseGraphic(elem) {\n    var graphicData = globalXmlParser.element(elem, \"graphicData\");\n    for (let n of globalXmlParser.elements(graphicData)) {\n      switch (n.localName) {\n        case \"pic\":\n          return this.parsePicture(n);\n      }\n    }\n    return null;\n  }\n  parsePicture(elem) {\n    var result = {\n      type: DomType.Image,\n      src: \"\",\n      cssStyle: {}\n    };\n    var blipFill = globalXmlParser.element(elem, \"blipFill\");\n    var blip = globalXmlParser.element(blipFill, \"blip\");\n    result.src = globalXmlParser.attr(blip, \"embed\");\n    var spPr = globalXmlParser.element(elem, \"spPr\");\n    var xfrm = globalXmlParser.element(spPr, \"xfrm\");\n    result.cssStyle[\"position\"] = \"relative\";\n    for (var n of globalXmlParser.elements(xfrm)) {\n      switch (n.localName) {\n        case \"ext\":\n          result.cssStyle[\"width\"] = globalXmlParser.lengthAttr(n, \"cx\", LengthUsage.Emu);\n          result.cssStyle[\"height\"] = globalXmlParser.lengthAttr(n, \"cy\", LengthUsage.Emu);\n          break;\n        case \"off\":\n          result.cssStyle[\"left\"] = globalXmlParser.lengthAttr(n, \"x\", LengthUsage.Emu);\n          result.cssStyle[\"top\"] = globalXmlParser.lengthAttr(n, \"y\", LengthUsage.Emu);\n          break;\n      }\n    }\n    return result;\n  }\n  parseTable(node) {\n    var result = {\n      type: DomType.Table,\n      children: []\n    };\n    xmlUtil.foreach(node, c => {\n      switch (c.localName) {\n        case \"tr\":\n          result.children.push(this.parseTableRow(c));\n          break;\n        case \"tblGrid\":\n          result.columns = this.parseTableColumns(c);\n          break;\n        case \"tblPr\":\n          this.parseTableProperties(c, result);\n          break;\n      }\n    });\n    return result;\n  }\n  parseTableColumns(node) {\n    var result = [];\n    xmlUtil.foreach(node, n => {\n      switch (n.localName) {\n        case \"gridCol\":\n          result.push({\n            width: globalXmlParser.lengthAttr(n, \"w\")\n          });\n          break;\n      }\n    });\n    return result;\n  }\n  parseTableProperties(elem, table) {\n    table.cssStyle = {};\n    table.cellStyle = {};\n    this.parseDefaultProperties(elem, table.cssStyle, table.cellStyle, c => {\n      switch (c.localName) {\n        case \"tblStyle\":\n          table.styleName = globalXmlParser.attr(c, \"val\");\n          break;\n        case \"tblLook\":\n          table.className = values.classNameOftblLook(c);\n          break;\n        case \"tblpPr\":\n          this.parseTablePosition(c, table);\n          break;\n        case \"tblStyleColBandSize\":\n          table.colBandSize = globalXmlParser.intAttr(c, \"val\");\n          break;\n        case \"tblStyleRowBandSize\":\n          table.rowBandSize = globalXmlParser.intAttr(c, \"val\");\n          break;\n        default:\n          return false;\n      }\n      return true;\n    });\n    switch (table.cssStyle[\"text-align\"]) {\n      case \"center\":\n        delete table.cssStyle[\"text-align\"];\n        table.cssStyle[\"margin-left\"] = \"auto\";\n        table.cssStyle[\"margin-right\"] = \"auto\";\n        break;\n      case \"right\":\n        delete table.cssStyle[\"text-align\"];\n        table.cssStyle[\"margin-left\"] = \"auto\";\n        break;\n    }\n  }\n  parseTablePosition(node, table) {\n    var topFromText = globalXmlParser.lengthAttr(node, \"topFromText\");\n    var bottomFromText = globalXmlParser.lengthAttr(node, \"bottomFromText\");\n    var rightFromText = globalXmlParser.lengthAttr(node, \"rightFromText\");\n    var leftFromText = globalXmlParser.lengthAttr(node, \"leftFromText\");\n    table.cssStyle[\"float\"] = 'left';\n    table.cssStyle[\"margin-bottom\"] = values.addSize(table.cssStyle[\"margin-bottom\"], bottomFromText);\n    table.cssStyle[\"margin-left\"] = values.addSize(table.cssStyle[\"margin-left\"], leftFromText);\n    table.cssStyle[\"margin-right\"] = values.addSize(table.cssStyle[\"margin-right\"], rightFromText);\n    table.cssStyle[\"margin-top\"] = values.addSize(table.cssStyle[\"margin-top\"], topFromText);\n  }\n  parseTableRow(node) {\n    var result = {\n      type: DomType.Row,\n      children: []\n    };\n    xmlUtil.foreach(node, c => {\n      switch (c.localName) {\n        case \"tc\":\n          result.children.push(this.parseTableCell(c));\n          break;\n        case \"trPr\":\n          this.parseTableRowProperties(c, result);\n          break;\n      }\n    });\n    return result;\n  }\n  parseTableRowProperties(elem, row) {\n    row.cssStyle = this.parseDefaultProperties(elem, {}, null, c => {\n      switch (c.localName) {\n        case \"cnfStyle\":\n          row.className = values.classNameOfCnfStyle(c);\n          break;\n        case \"tblHeader\":\n          row.isHeader = globalXmlParser.boolAttr(c, \"val\");\n          break;\n        default:\n          return false;\n      }\n      return true;\n    });\n  }\n  parseTableCell(node) {\n    var result = {\n      type: DomType.Cell,\n      children: []\n    };\n    xmlUtil.foreach(node, c => {\n      switch (c.localName) {\n        case \"tbl\":\n          result.children.push(this.parseTable(c));\n          break;\n        case \"p\":\n          result.children.push(this.parseParagraph(c));\n          break;\n        case \"tcPr\":\n          this.parseTableCellProperties(c, result);\n          break;\n      }\n    });\n    return result;\n  }\n  parseTableCellProperties(elem, cell) {\n    cell.cssStyle = this.parseDefaultProperties(elem, {}, null, c => {\n      var _globalXmlParser$attr2;\n      switch (c.localName) {\n        case \"gridSpan\":\n          cell.span = globalXmlParser.intAttr(c, \"val\", null);\n          break;\n        case \"vMerge\":\n          cell.verticalMerge = (_globalXmlParser$attr2 = globalXmlParser.attr(c, \"val\")) !== null && _globalXmlParser$attr2 !== void 0 ? _globalXmlParser$attr2 : \"continue\";\n          break;\n        case \"cnfStyle\":\n          cell.className = values.classNameOfCnfStyle(c);\n          break;\n        default:\n          return false;\n      }\n      return true;\n    });\n  }\n  parseDefaultProperties(elem, style = null, childStyle = null, handler = null) {\n    style = style || {};\n    xmlUtil.foreach(elem, c => {\n      if (handler !== null && handler !== void 0 && handler(c)) return;\n      switch (c.localName) {\n        case \"jc\":\n          style[\"text-align\"] = values.valueOfJc(c);\n          break;\n        case \"textAlignment\":\n          style[\"vertical-align\"] = values.valueOfTextAlignment(c);\n          break;\n        case \"color\":\n          style[\"color\"] = xmlUtil.colorAttr(c, \"val\", null, autos.color);\n          break;\n        case \"sz\":\n          style[\"font-size\"] = style[\"min-height\"] = globalXmlParser.lengthAttr(c, \"val\", LengthUsage.FontSize);\n          break;\n        case \"shd\":\n          style[\"background-color\"] = xmlUtil.colorAttr(c, \"fill\", null, autos.shd);\n          break;\n        case \"highlight\":\n          style[\"background-color\"] = xmlUtil.colorAttr(c, \"val\", null, autos.highlight);\n          break;\n        case \"vertAlign\":\n          break;\n        case \"position\":\n          style.verticalAlign = globalXmlParser.lengthAttr(c, \"val\", LengthUsage.FontSize);\n          break;\n        case \"tcW\":\n          if (this.options.ignoreWidth) break;\n        case \"tblW\":\n          style[\"width\"] = values.valueOfSize(c, \"w\");\n          break;\n        case \"trHeight\":\n          this.parseTrHeight(c, style);\n          break;\n        case \"strike\":\n          style[\"text-decoration\"] = globalXmlParser.boolAttr(c, \"val\", true) ? \"line-through\" : \"none\";\n          break;\n        case \"b\":\n          style[\"font-weight\"] = globalXmlParser.boolAttr(c, \"val\", true) ? \"bold\" : \"normal\";\n          break;\n        case \"i\":\n          style[\"font-style\"] = globalXmlParser.boolAttr(c, \"val\", true) ? \"italic\" : \"normal\";\n          break;\n        case \"caps\":\n          style[\"text-transform\"] = globalXmlParser.boolAttr(c, \"val\", true) ? \"uppercase\" : \"none\";\n          break;\n        case \"smallCaps\":\n          style[\"font-variant\"] = globalXmlParser.boolAttr(c, \"val\", true) ? \"small-caps\" : \"none\";\n          break;\n        case \"u\":\n          this.parseUnderline(c, style);\n          break;\n        case \"ind\":\n        case \"tblInd\":\n          this.parseIndentation(c, style);\n          break;\n        case \"rFonts\":\n          this.parseFont(c, style);\n          break;\n        case \"tblBorders\":\n          this.parseBorderProperties(c, childStyle || style);\n          break;\n        case \"tblCellSpacing\":\n          style[\"border-spacing\"] = values.valueOfMargin(c);\n          style[\"border-collapse\"] = \"separate\";\n          break;\n        case \"pBdr\":\n          this.parseBorderProperties(c, style);\n          break;\n        case \"bdr\":\n          style[\"border\"] = values.valueOfBorder(c);\n          break;\n        case \"tcBorders\":\n          this.parseBorderProperties(c, style);\n          break;\n        case \"vanish\":\n          if (globalXmlParser.boolAttr(c, \"val\", true)) style[\"display\"] = \"none\";\n          break;\n        case \"kern\":\n          break;\n        case \"noWrap\":\n          break;\n        case \"tblCellMar\":\n        case \"tcMar\":\n          this.parseMarginProperties(c, childStyle || style);\n          break;\n        case \"tblLayout\":\n          style[\"table-layout\"] = values.valueOfTblLayout(c);\n          break;\n        case \"vAlign\":\n          style[\"vertical-align\"] = values.valueOfTextAlignment(c);\n          break;\n        case \"spacing\":\n          if (elem.localName == \"pPr\") this.parseSpacing(c, style);\n          break;\n        case \"wordWrap\":\n          if (globalXmlParser.boolAttr(c, \"val\")) style[\"overflow-wrap\"] = \"break-word\";\n          break;\n        case \"suppressAutoHyphens\":\n          style[\"hyphens\"] = globalXmlParser.boolAttr(c, \"val\", true) ? \"none\" : \"auto\";\n          break;\n        case \"lang\":\n          style[\"$lang\"] = globalXmlParser.attr(c, \"val\");\n          break;\n        case \"bCs\":\n        case \"iCs\":\n        case \"szCs\":\n        case \"tabs\":\n        case \"outlineLvl\":\n        case \"contextualSpacing\":\n        case \"tblStyleColBandSize\":\n        case \"tblStyleRowBandSize\":\n        case \"webHidden\":\n        case \"pageBreakBefore\":\n        case \"suppressLineNumbers\":\n        case \"keepLines\":\n        case \"keepNext\":\n        case \"widowControl\":\n        case \"bidi\":\n        case \"rtl\":\n        case \"noProof\":\n          break;\n        default:\n          if (this.options.debug) console.warn(`DOCX: Unknown document element: ${elem.localName}.${c.localName}`);\n          break;\n      }\n    });\n    return style;\n  }\n  parseUnderline(node, style) {\n    var val = globalXmlParser.attr(node, \"val\");\n    if (val == null) return;\n    switch (val) {\n      case \"dash\":\n      case \"dashDotDotHeavy\":\n      case \"dashDotHeavy\":\n      case \"dashedHeavy\":\n      case \"dashLong\":\n      case \"dashLongHeavy\":\n      case \"dotDash\":\n      case \"dotDotDash\":\n        style[\"text-decoration\"] = \"underline dashed\";\n        break;\n      case \"dotted\":\n      case \"dottedHeavy\":\n        style[\"text-decoration\"] = \"underline dotted\";\n        break;\n      case \"double\":\n        style[\"text-decoration\"] = \"underline double\";\n        break;\n      case \"single\":\n      case \"thick\":\n        style[\"text-decoration\"] = \"underline\";\n        break;\n      case \"wave\":\n      case \"wavyDouble\":\n      case \"wavyHeavy\":\n        style[\"text-decoration\"] = \"underline wavy\";\n        break;\n      case \"words\":\n        style[\"text-decoration\"] = \"underline\";\n        break;\n      case \"none\":\n        style[\"text-decoration\"] = \"none\";\n        break;\n    }\n    var col = xmlUtil.colorAttr(node, \"color\");\n    if (col) style[\"text-decoration-color\"] = col;\n  }\n  parseFont(node, style) {\n    var ascii = globalXmlParser.attr(node, \"ascii\");\n    var asciiTheme = values.themeValue(node, \"asciiTheme\");\n    var fonts = [ascii, asciiTheme].filter(x => x).join(', ');\n    if (fonts.length > 0) style[\"font-family\"] = fonts;\n  }\n  parseIndentation(node, style) {\n    var firstLine = globalXmlParser.lengthAttr(node, \"firstLine\");\n    var hanging = globalXmlParser.lengthAttr(node, \"hanging\");\n    var left = globalXmlParser.lengthAttr(node, \"left\");\n    var start = globalXmlParser.lengthAttr(node, \"start\");\n    var right = globalXmlParser.lengthAttr(node, \"right\");\n    var end = globalXmlParser.lengthAttr(node, \"end\");\n    if (firstLine) style[\"text-indent\"] = firstLine;\n    if (hanging) style[\"text-indent\"] = `-${hanging}`;\n    if (left || start) style[\"margin-left\"] = left || start;\n    if (right || end) style[\"margin-right\"] = right || end;\n  }\n  parseSpacing(node, style) {\n    var before = globalXmlParser.lengthAttr(node, \"before\");\n    var after = globalXmlParser.lengthAttr(node, \"after\");\n    var line = globalXmlParser.intAttr(node, \"line\", null);\n    var lineRule = globalXmlParser.attr(node, \"lineRule\");\n    if (before) style[\"margin-top\"] = before;\n    if (after) style[\"margin-bottom\"] = after;\n    if (line !== null) {\n      switch (lineRule) {\n        case \"auto\":\n          style[\"line-height\"] = `${(line / 240).toFixed(2)}`;\n          break;\n        case \"atLeast\":\n          style[\"line-height\"] = `calc(100% + ${line / 20}pt)`;\n          break;\n        default:\n          style[\"line-height\"] = style[\"min-height\"] = `${line / 20}pt`;\n          break;\n      }\n    }\n  }\n  parseMarginProperties(node, output) {\n    xmlUtil.foreach(node, c => {\n      switch (c.localName) {\n        case \"left\":\n          output[\"padding-left\"] = values.valueOfMargin(c);\n          break;\n        case \"right\":\n          output[\"padding-right\"] = values.valueOfMargin(c);\n          break;\n        case \"top\":\n          output[\"padding-top\"] = values.valueOfMargin(c);\n          break;\n        case \"bottom\":\n          output[\"padding-bottom\"] = values.valueOfMargin(c);\n          break;\n      }\n    });\n  }\n  parseTrHeight(node, output) {\n    switch (globalXmlParser.attr(node, \"hRule\")) {\n      case \"exact\":\n        output[\"height\"] = globalXmlParser.lengthAttr(node, \"val\");\n        break;\n      case \"atLeast\":\n      default:\n        output[\"height\"] = globalXmlParser.lengthAttr(node, \"val\");\n        break;\n    }\n  }\n  parseBorderProperties(node, output) {\n    xmlUtil.foreach(node, c => {\n      switch (c.localName) {\n        case \"start\":\n        case \"left\":\n          output[\"border-left\"] = values.valueOfBorder(c);\n          break;\n        case \"end\":\n        case \"right\":\n          output[\"border-right\"] = values.valueOfBorder(c);\n          break;\n        case \"top\":\n          output[\"border-top\"] = values.valueOfBorder(c);\n          break;\n        case \"bottom\":\n          output[\"border-bottom\"] = values.valueOfBorder(c);\n          break;\n      }\n    });\n  }\n}\nconst knownColors = ['black', 'blue', 'cyan', 'darkBlue', 'darkCyan', 'darkGray', 'darkGreen', 'darkMagenta', 'darkRed', 'darkYellow', 'green', 'lightGray', 'magenta', 'none', 'red', 'white', 'yellow'];\nclass xmlUtil {\n  static foreach(node, cb) {\n    for (var i = 0; i < node.childNodes.length; i++) {\n      let n = node.childNodes[i];\n      if (n.nodeType == Node.ELEMENT_NODE) cb(n);\n    }\n  }\n  static colorAttr(node, attrName, defValue = null, autoColor = 'black') {\n    var v = globalXmlParser.attr(node, attrName);\n    if (v) {\n      if (v == \"auto\") {\n        return autoColor;\n      } else if (knownColors.includes(v)) {\n        return v;\n      }\n      return `#${v}`;\n    }\n    var themeColor = globalXmlParser.attr(node, \"themeColor\");\n    return themeColor ? `var(--docx-${themeColor}-color)` : defValue;\n  }\n  static sizeValue(node, type = LengthUsage.Dxa) {\n    return convertLength(node.textContent, type);\n  }\n}\nclass values {\n  static themeValue(c, attr) {\n    var val = globalXmlParser.attr(c, attr);\n    return val ? `var(--docx-${val}-font)` : null;\n  }\n  static valueOfSize(c, attr) {\n    var type = LengthUsage.Dxa;\n    switch (globalXmlParser.attr(c, \"type\")) {\n      case \"dxa\":\n        break;\n      case \"pct\":\n        type = LengthUsage.Percent;\n        break;\n      case \"auto\":\n        return \"auto\";\n    }\n    return globalXmlParser.lengthAttr(c, attr, type);\n  }\n  static valueOfMargin(c) {\n    return globalXmlParser.lengthAttr(c, \"w\");\n  }\n  static valueOfBorder(c) {\n    var type = globalXmlParser.attr(c, \"val\");\n    if (type == \"nil\") return \"none\";\n    var color = xmlUtil.colorAttr(c, \"color\");\n    var size = globalXmlParser.lengthAttr(c, \"sz\", LengthUsage.Border);\n    return `${size} solid ${color == \"auto\" ? autos.borderColor : color}`;\n  }\n  static valueOfTblLayout(c) {\n    var type = globalXmlParser.attr(c, \"val\");\n    return type == \"fixed\" ? \"fixed\" : \"auto\";\n  }\n  static classNameOfCnfStyle(c) {\n    const val = globalXmlParser.attr(c, \"val\");\n    const classes = ['first-row', 'last-row', 'first-col', 'last-col', 'odd-col', 'even-col', 'odd-row', 'even-row', 'ne-cell', 'nw-cell', 'se-cell', 'sw-cell'];\n    return classes.filter((_, i) => val[i] == '1').join(' ');\n  }\n  static valueOfJc(c) {\n    var type = globalXmlParser.attr(c, \"val\");\n    switch (type) {\n      case \"start\":\n      case \"left\":\n        return \"left\";\n      case \"center\":\n        return \"center\";\n      case \"end\":\n      case \"right\":\n        return \"right\";\n      case \"both\":\n        return \"justify\";\n    }\n    return type;\n  }\n  static valueOfVertAlign(c, asTagName = false) {\n    var type = globalXmlParser.attr(c, \"val\");\n    switch (type) {\n      case \"subscript\":\n        return \"sub\";\n      case \"superscript\":\n        return asTagName ? \"sup\" : \"super\";\n    }\n    return asTagName ? null : type;\n  }\n  static valueOfTextAlignment(c) {\n    var type = globalXmlParser.attr(c, \"val\");\n    switch (type) {\n      case \"auto\":\n      case \"baseline\":\n        return \"baseline\";\n      case \"top\":\n        return \"top\";\n      case \"center\":\n        return \"middle\";\n      case \"bottom\":\n        return \"bottom\";\n    }\n    return type;\n  }\n  static addSize(a, b) {\n    if (a == null) return b;\n    if (b == null) return a;\n    return `calc(${a} + ${b})`;\n  }\n  static classNameOftblLook(c) {\n    const val = globalXmlParser.hexAttr(c, \"val\", 0);\n    let className = \"\";\n    if (globalXmlParser.boolAttr(c, \"firstRow\") || val & 0x0020) className += \" first-row\";\n    if (globalXmlParser.boolAttr(c, \"lastRow\") || val & 0x0040) className += \" last-row\";\n    if (globalXmlParser.boolAttr(c, \"firstColumn\") || val & 0x0080) className += \" first-col\";\n    if (globalXmlParser.boolAttr(c, \"lastColumn\") || val & 0x0100) className += \" last-col\";\n    if (globalXmlParser.boolAttr(c, \"noHBand\") || val & 0x0200) className += \" no-hband\";\n    if (globalXmlParser.boolAttr(c, \"noVBand\") || val & 0x0400) className += \" no-vband\";\n    return className.trim();\n  }\n}\nconst defaultTab = {\n  pos: 0,\n  leader: \"none\",\n  style: \"left\"\n};\nconst maxTabs = 50;\nfunction computePixelToPoint(container = document.body) {\n  const temp = document.createElement(\"div\");\n  temp.style.width = '100pt';\n  container.appendChild(temp);\n  const result = 100 / temp.offsetWidth;\n  container.removeChild(temp);\n  return result;\n}\nfunction updateTabStop(elem, tabs, defaultTabSize, pixelToPoint = 72 / 96) {\n  const p = elem.closest(\"p\");\n  const ebb = elem.getBoundingClientRect();\n  const pbb = p.getBoundingClientRect();\n  const pcs = getComputedStyle(p);\n  const tabStops = (tabs === null || tabs === void 0 ? void 0 : tabs.length) > 0 ? tabs.map(t => ({\n    pos: lengthToPoint(t.position),\n    leader: t.leader,\n    style: t.style\n  })).sort((a, b) => a.pos - b.pos) : [defaultTab];\n  const lastTab = tabStops[tabStops.length - 1];\n  const pWidthPt = pbb.width * pixelToPoint;\n  const size = lengthToPoint(defaultTabSize);\n  let pos = lastTab.pos + size;\n  if (pos < pWidthPt) {\n    for (; pos < pWidthPt && tabStops.length < maxTabs; pos += size) {\n      tabStops.push({\n        ...defaultTab,\n        pos: pos\n      });\n    }\n  }\n  const marginLeft = parseFloat(pcs.marginLeft);\n  const pOffset = pbb.left + marginLeft;\n  const left = (ebb.left - pOffset) * pixelToPoint;\n  const tab = tabStops.find(t => t.style != \"clear\" && t.pos > left);\n  if (tab == null) return;\n  let width = 1;\n  if (tab.style == \"right\" || tab.style == \"center\") {\n    const tabStops = Array.from(p.querySelectorAll(`.${elem.className}`));\n    const nextIdx = tabStops.indexOf(elem) + 1;\n    const range = document.createRange();\n    range.setStart(elem, 1);\n    if (nextIdx < tabStops.length) {\n      range.setEndBefore(tabStops[nextIdx]);\n    } else {\n      range.setEndAfter(p);\n    }\n    const mul = tab.style == \"center\" ? 0.5 : 1;\n    const nextBB = range.getBoundingClientRect();\n    const offset = nextBB.left + mul * nextBB.width - (pbb.left - marginLeft);\n    width = tab.pos - offset * pixelToPoint;\n  } else {\n    width = tab.pos - left;\n  }\n  elem.innerHTML = \"&nbsp;\";\n  elem.style.textDecoration = \"inherit\";\n  elem.style.wordSpacing = `${width.toFixed(0)}pt`;\n  switch (tab.leader) {\n    case \"dot\":\n    case \"middleDot\":\n      elem.style.textDecoration = \"underline\";\n      elem.style.textDecorationStyle = \"dotted\";\n      break;\n    case \"hyphen\":\n    case \"heavy\":\n    case \"underscore\":\n      elem.style.textDecoration = \"underline\";\n      break;\n  }\n}\nfunction lengthToPoint(length) {\n  return parseFloat(length);\n}\nconst ns = {\n  svg: \"http://www.w3.org/2000/svg\",\n  mathML: \"http://www.w3.org/1998/Math/MathML\"\n};\nclass HtmlRenderer {\n  constructor(htmlDocument) {\n    this.htmlDocument = htmlDocument;\n    this.className = \"docx\";\n    this.styleMap = {};\n    this.currentPart = null;\n    this.tableVerticalMerges = [];\n    this.currentVerticalMerge = null;\n    this.tableCellPositions = [];\n    this.currentCellPosition = null;\n    this.footnoteMap = {};\n    this.endnoteMap = {};\n    this.currentEndnoteIds = [];\n    this.usedHederFooterParts = [];\n    this.currentTabs = [];\n    this.tabsTimeout = 0;\n    this.tasks = [];\n    this.createElement = createElement;\n  }\n  render(document, bodyContainer, styleContainer = null, options) {\n    this.document = document;\n    this.options = options;\n    this.className = options.className;\n    this.rootSelector = options.inWrapper ? `.${this.className}-wrapper` : ':root';\n    this.styleMap = null;\n    this.tasks = [];\n    styleContainer = styleContainer || bodyContainer;\n    removeAllElements(styleContainer);\n    removeAllElements(bodyContainer);\n    appendComment(styleContainer, \"docxjs library predefined styles\");\n    styleContainer.appendChild(this.renderDefaultStyle());\n    if (document.themePart) {\n      appendComment(styleContainer, \"docxjs document theme values\");\n      this.renderTheme(document.themePart, styleContainer);\n    }\n    if (document.stylesPart != null) {\n      this.styleMap = this.processStyles(document.stylesPart.styles);\n      appendComment(styleContainer, \"docxjs document styles\");\n      styleContainer.appendChild(this.renderStyles(document.stylesPart.styles));\n    }\n    if (document.numberingPart) {\n      this.prodessNumberings(document.numberingPart.domNumberings);\n      appendComment(styleContainer, \"docxjs document numbering styles\");\n      styleContainer.appendChild(this.renderNumbering(document.numberingPart.domNumberings, styleContainer));\n    }\n    if (document.footnotesPart) {\n      this.footnoteMap = keyBy(document.footnotesPart.notes, x => x.id);\n    }\n    if (document.endnotesPart) {\n      this.endnoteMap = keyBy(document.endnotesPart.notes, x => x.id);\n    }\n    if (document.settingsPart) {\n      var _document$settingsPar;\n      this.defaultTabSize = (_document$settingsPar = document.settingsPart.settings) === null || _document$settingsPar === void 0 ? void 0 : _document$settingsPar.defaultTabStop;\n    }\n    if (!options.ignoreFonts && document.fontTablePart) this.renderFontTable(document.fontTablePart, styleContainer);\n    var sectionElements = this.renderSections(document.documentPart.body);\n    if (this.options.inWrapper) {\n      bodyContainer.appendChild(this.renderWrapper(sectionElements));\n    } else {\n      appendChildren(bodyContainer, sectionElements);\n    }\n    this.refreshTabStops();\n  }\n  renderTheme(themePart, styleContainer) {\n    var _themePart$theme, _themePart$theme2;\n    const variables = {};\n    const fontScheme = (_themePart$theme = themePart.theme) === null || _themePart$theme === void 0 ? void 0 : _themePart$theme.fontScheme;\n    if (fontScheme) {\n      if (fontScheme.majorFont) {\n        variables['--docx-majorHAnsi-font'] = fontScheme.majorFont.latinTypeface;\n      }\n      if (fontScheme.minorFont) {\n        variables['--docx-minorHAnsi-font'] = fontScheme.minorFont.latinTypeface;\n      }\n    }\n    const colorScheme = (_themePart$theme2 = themePart.theme) === null || _themePart$theme2 === void 0 ? void 0 : _themePart$theme2.colorScheme;\n    if (colorScheme) {\n      for (let [k, v] of Object.entries(colorScheme.colors)) {\n        variables[`--docx-${k}-color`] = `#${v}`;\n      }\n    }\n    const cssText = this.styleToString(`.${this.className}`, variables);\n    styleContainer.appendChild(createStyleElement(cssText));\n  }\n  renderFontTable(fontsPart, styleContainer) {\n    for (let f of fontsPart.fonts) {\n      for (let ref of f.embedFontRefs) {\n        this.tasks.push(this.document.loadFont(ref.id, ref.key).then(fontData => {\n          const cssValues = {\n            'font-family': f.name,\n            'src': `url(${fontData})`\n          };\n          if (ref.type == \"bold\" || ref.type == \"boldItalic\") {\n            cssValues['font-weight'] = 'bold';\n          }\n          if (ref.type == \"italic\" || ref.type == \"boldItalic\") {\n            cssValues['font-style'] = 'italic';\n          }\n          appendComment(styleContainer, `docxjs ${f.name} font`);\n          const cssText = this.styleToString(\"@font-face\", cssValues);\n          styleContainer.appendChild(createStyleElement(cssText));\n          this.refreshTabStops();\n        }));\n      }\n    }\n  }\n  processStyleName(className) {\n    return className ? `${this.className}_${escapeClassName(className)}` : this.className;\n  }\n  processStyles(styles) {\n    const stylesMap = keyBy(styles.filter(x => x.id != null), x => x.id);\n    for (const style of styles.filter(x => x.basedOn)) {\n      var baseStyle = stylesMap[style.basedOn];\n      if (baseStyle) {\n        style.paragraphProps = mergeDeep(style.paragraphProps, baseStyle.paragraphProps);\n        style.runProps = mergeDeep(style.runProps, baseStyle.runProps);\n        for (const baseValues of baseStyle.styles) {\n          const styleValues = style.styles.find(x => x.target == baseValues.target);\n          if (styleValues) {\n            this.copyStyleProperties(baseValues.values, styleValues.values);\n          } else {\n            style.styles.push({\n              ...baseValues,\n              values: {\n                ...baseValues.values\n              }\n            });\n          }\n        }\n      } else if (this.options.debug) console.warn(`Can't find base style ${style.basedOn}`);\n    }\n    for (let style of styles) {\n      style.cssName = this.processStyleName(style.id);\n    }\n    return stylesMap;\n  }\n  prodessNumberings(numberings) {\n    for (let num of numberings.filter(n => n.pStyleName)) {\n      var _style$paragraphProps;\n      const style = this.findStyle(num.pStyleName);\n      if (style !== null && style !== void 0 && (_style$paragraphProps = style.paragraphProps) !== null && _style$paragraphProps !== void 0 && _style$paragraphProps.numbering) {\n        style.paragraphProps.numbering.level = num.level;\n      }\n    }\n  }\n  processElement(element) {\n    if (element.children) {\n      for (var e of element.children) {\n        e.parent = element;\n        if (e.type == DomType.Table) {\n          this.processTable(e);\n        } else {\n          this.processElement(e);\n        }\n      }\n    }\n  }\n  processTable(table) {\n    for (var r of table.children) {\n      for (var c of r.children) {\n        c.cssStyle = this.copyStyleProperties(table.cellStyle, c.cssStyle, [\"border-left\", \"border-right\", \"border-top\", \"border-bottom\", \"padding-left\", \"padding-right\", \"padding-top\", \"padding-bottom\"]);\n        this.processElement(c);\n      }\n    }\n  }\n  copyStyleProperties(input, output, attrs = null) {\n    if (!input) return output;\n    if (output == null) output = {};\n    if (attrs == null) attrs = Object.getOwnPropertyNames(input);\n    for (var key of attrs) {\n      if (input.hasOwnProperty(key) && !output.hasOwnProperty(key)) output[key] = input[key];\n    }\n    return output;\n  }\n  createSection(className, props) {\n    var elem = this.createElement(\"section\", {\n      className\n    });\n    if (props) {\n      if (props.pageMargins) {\n        elem.style.paddingLeft = props.pageMargins.left;\n        elem.style.paddingRight = props.pageMargins.right;\n        elem.style.paddingTop = props.pageMargins.top;\n        elem.style.paddingBottom = props.pageMargins.bottom;\n      }\n      if (props.pageSize) {\n        if (!this.options.ignoreWidth) elem.style.width = props.pageSize.width;\n        if (!this.options.ignoreHeight) elem.style.minHeight = props.pageSize.height;\n      }\n      if (props.columns && props.columns.numberOfColumns) {\n        elem.style.columnCount = `${props.columns.numberOfColumns}`;\n        elem.style.columnGap = props.columns.space;\n        if (props.columns.separator) {\n          elem.style.columnRule = \"1px solid black\";\n        }\n      }\n    }\n    return elem;\n  }\n  renderSections(document) {\n    const result = [];\n    this.processElement(document);\n    const sections = this.splitBySection(document.children);\n    let prevProps = null;\n    for (let i = 0, l = sections.length; i < l; i++) {\n      this.currentFootnoteIds = [];\n      const section = sections[i];\n      const props = section.sectProps || document.props;\n      const sectionElement = this.createSection(this.className, props);\n      this.renderStyleValues(document.cssStyle, sectionElement);\n      this.options.renderHeaders && this.renderHeaderFooter(props.headerRefs, props, result.length, prevProps != props, sectionElement);\n      var contentElement = this.createElement(\"article\");\n      this.renderElements(section.elements, contentElement);\n      sectionElement.appendChild(contentElement);\n      if (this.options.renderFootnotes) {\n        this.renderNotes(this.currentFootnoteIds, this.footnoteMap, sectionElement);\n      }\n      if (this.options.renderEndnotes && i == l - 1) {\n        this.renderNotes(this.currentEndnoteIds, this.endnoteMap, sectionElement);\n      }\n      this.options.renderFooters && this.renderHeaderFooter(props.footerRefs, props, result.length, prevProps != props, sectionElement);\n      result.push(sectionElement);\n      prevProps = props;\n    }\n    return result;\n  }\n  renderHeaderFooter(refs, props, page, firstOfSection, into) {\n    var _ref, _ref2;\n    if (!refs) return;\n    var ref = (_ref = (_ref2 = props.titlePage && firstOfSection ? refs.find(x => x.type == \"first\") : null) !== null && _ref2 !== void 0 ? _ref2 : page % 2 == 1 ? refs.find(x => x.type == \"even\") : null) !== null && _ref !== void 0 ? _ref : refs.find(x => x.type == \"default\");\n    var part = ref && this.document.findPartByRelId(ref.id, this.document.documentPart);\n    if (part) {\n      this.currentPart = part;\n      if (!this.usedHederFooterParts.includes(part.path)) {\n        this.processElement(part.rootElement);\n        this.usedHederFooterParts.push(part.path);\n      }\n      const [el] = this.renderElements([part.rootElement], into);\n      if (props !== null && props !== void 0 && props.pageMargins) {\n        if (part.rootElement.type === DomType.Header) {\n          el.style.marginTop = `calc(${props.pageMargins.header} - ${props.pageMargins.top})`;\n          el.style.minHeight = `calc(${props.pageMargins.top} - ${props.pageMargins.header})`;\n        } else if (part.rootElement.type === DomType.Footer) {\n          el.style.marginBottom = `calc(${props.pageMargins.footer} - ${props.pageMargins.bottom})`;\n          el.style.minHeight = `calc(${props.pageMargins.bottom} - ${props.pageMargins.footer})`;\n        }\n      }\n      this.currentPart = null;\n    }\n  }\n  isPageBreakElement(elem) {\n    if (elem.type != DomType.Break) return false;\n    if (elem.break == \"lastRenderedPageBreak\") return !this.options.ignoreLastRenderedPageBreak;\n    return elem.break == \"page\";\n  }\n  splitBySection(elements) {\n    var current = {\n      sectProps: null,\n      elements: []\n    };\n    var result = [current];\n    for (let elem of elements) {\n      if (elem.type == DomType.Paragraph) {\n        var _s$paragraphProps;\n        const s = this.findStyle(elem.styleName);\n        if (s !== null && s !== void 0 && (_s$paragraphProps = s.paragraphProps) !== null && _s$paragraphProps !== void 0 && _s$paragraphProps.pageBreakBefore) {\n          current.sectProps = sectProps;\n          current = {\n            sectProps: null,\n            elements: []\n          };\n          result.push(current);\n        }\n      }\n      current.elements.push(elem);\n      if (elem.type == DomType.Paragraph) {\n        const p = elem;\n        var sectProps = p.sectionProps;\n        var pBreakIndex = -1;\n        var rBreakIndex = -1;\n        if (this.options.breakPages && p.children) {\n          pBreakIndex = p.children.findIndex(r => {\n            var _r$children$findIndex, _r$children;\n            rBreakIndex = (_r$children$findIndex = (_r$children = r.children) === null || _r$children === void 0 ? void 0 : _r$children.findIndex(this.isPageBreakElement.bind(this))) !== null && _r$children$findIndex !== void 0 ? _r$children$findIndex : -1;\n            return rBreakIndex != -1;\n          });\n        }\n        if (sectProps || pBreakIndex != -1) {\n          current.sectProps = sectProps;\n          current = {\n            sectProps: null,\n            elements: []\n          };\n          result.push(current);\n        }\n        if (pBreakIndex != -1) {\n          let breakRun = p.children[pBreakIndex];\n          let splitRun = rBreakIndex < breakRun.children.length - 1;\n          if (pBreakIndex < p.children.length - 1 || splitRun) {\n            var children = elem.children;\n            var newParagraph = {\n              ...elem,\n              children: children.slice(pBreakIndex)\n            };\n            elem.children = children.slice(0, pBreakIndex);\n            current.elements.push(newParagraph);\n            if (splitRun) {\n              let runChildren = breakRun.children;\n              let newRun = {\n                ...breakRun,\n                children: runChildren.slice(0, rBreakIndex)\n              };\n              elem.children.push(newRun);\n              breakRun.children = runChildren.slice(rBreakIndex);\n            }\n          }\n        }\n      }\n    }\n    let currentSectProps = null;\n    for (let i = result.length - 1; i >= 0; i--) {\n      if (result[i].sectProps == null) {\n        result[i].sectProps = currentSectProps;\n      } else {\n        currentSectProps = result[i].sectProps;\n      }\n    }\n    return result;\n  }\n  renderWrapper(children) {\n    return this.createElement(\"div\", {\n      className: `${this.className}-wrapper`\n    }, children);\n  }\n  renderDefaultStyle() {\n    var c = this.className;\n    var styleText = `\n.${c}-wrapper { background: gray; padding: 30px; padding-bottom: 0px; display: flex; flex-flow: column; align-items: center; } \n.${c}-wrapper>section.${c} { background: white; box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); margin-bottom: 30px; }\n.${c} { color: black; hyphens: auto; text-underline-position: from-font; }\nsection.${c} { box-sizing: border-box; display: flex; flex-flow: column nowrap; position: relative; overflow: hidden; }\nsection.${c}>article { margin-bottom: auto; z-index: 1; }\nsection.${c}>footer { z-index: 1; }\n.${c} table { border-collapse: collapse; }\n.${c} table td, .${c} table th { vertical-align: top; }\n.${c} p { margin: 0pt; min-height: 1em; }\n.${c} span { white-space: pre-wrap; overflow-wrap: break-word; }\n.${c} a { color: inherit; text-decoration: inherit; }\n`;\n    return createStyleElement(styleText);\n  }\n  renderNumbering(numberings, styleContainer) {\n    var styleText = \"\";\n    var resetCounters = [];\n    for (var num of numberings) {\n      var selector = `p.${this.numberingClass(num.id, num.level)}`;\n      var listStyleType = \"none\";\n      if (num.bullet) {\n        let valiable = `--${this.className}-${num.bullet.src}`.toLowerCase();\n        styleText += this.styleToString(`${selector}:before`, {\n          \"content\": \"' '\",\n          \"display\": \"inline-block\",\n          \"background\": `var(${valiable})`\n        }, num.bullet.style);\n        this.tasks.push(this.document.loadNumberingImage(num.bullet.src).then(data => {\n          var text = `${this.rootSelector} { ${valiable}: url(${data}) }`;\n          styleContainer.appendChild(createStyleElement(text));\n        }));\n      } else if (num.levelText) {\n        let counter = this.numberingCounter(num.id, num.level);\n        const counterReset = counter + \" \" + (num.start - 1);\n        if (num.level > 0) {\n          styleText += this.styleToString(`p.${this.numberingClass(num.id, num.level - 1)}`, {\n            \"counter-reset\": counterReset\n          });\n        }\n        resetCounters.push(counterReset);\n        styleText += this.styleToString(`${selector}:before`, {\n          \"content\": this.levelTextToContent(num.levelText, num.suff, num.id, this.numFormatToCssValue(num.format)),\n          \"counter-increment\": counter,\n          ...num.rStyle\n        });\n      } else {\n        listStyleType = this.numFormatToCssValue(num.format);\n      }\n      styleText += this.styleToString(selector, {\n        \"display\": \"list-item\",\n        \"list-style-position\": \"inside\",\n        \"list-style-type\": listStyleType,\n        ...num.pStyle\n      });\n    }\n    if (resetCounters.length > 0) {\n      styleText += this.styleToString(this.rootSelector, {\n        \"counter-reset\": resetCounters.join(\" \")\n      });\n    }\n    return createStyleElement(styleText);\n  }\n  renderStyles(styles) {\n    var styleText = \"\";\n    const stylesMap = this.styleMap;\n    const defautStyles = keyBy(styles.filter(s => s.isDefault), s => s.target);\n    for (const style of styles) {\n      var subStyles = style.styles;\n      if (style.linked) {\n        var linkedStyle = style.linked && stylesMap[style.linked];\n        if (linkedStyle) subStyles = subStyles.concat(linkedStyle.styles);else if (this.options.debug) console.warn(`Can't find linked style ${style.linked}`);\n      }\n      for (const subStyle of subStyles) {\n        var _style$target;\n        var selector = `${(_style$target = style.target) !== null && _style$target !== void 0 ? _style$target : ''}.${style.cssName}`;\n        if (style.target != subStyle.target) selector += ` ${subStyle.target}`;\n        if (defautStyles[style.target] == style) selector = `.${this.className} ${style.target}, ` + selector;\n        styleText += this.styleToString(selector, subStyle.values);\n      }\n    }\n    return createStyleElement(styleText);\n  }\n  renderNotes(noteIds, notesMap, into) {\n    var notes = noteIds.map(id => notesMap[id]).filter(x => x);\n    if (notes.length > 0) {\n      var result = this.createElement(\"ol\", null, this.renderElements(notes));\n      into.appendChild(result);\n    }\n  }\n  renderElement(elem) {\n    switch (elem.type) {\n      case DomType.Paragraph:\n        return this.renderParagraph(elem);\n      case DomType.BookmarkStart:\n        return this.renderBookmarkStart(elem);\n      case DomType.BookmarkEnd:\n        return null;\n      case DomType.Run:\n        return this.renderRun(elem);\n      case DomType.Table:\n        return this.renderTable(elem);\n      case DomType.Row:\n        return this.renderTableRow(elem);\n      case DomType.Cell:\n        return this.renderTableCell(elem);\n      case DomType.Hyperlink:\n        return this.renderHyperlink(elem);\n      case DomType.Drawing:\n        return this.renderDrawing(elem);\n      case DomType.Image:\n        return this.renderImage(elem);\n      case DomType.Text:\n        return this.renderText(elem);\n      case DomType.Text:\n        return this.renderText(elem);\n      case DomType.DeletedText:\n        return this.renderDeletedText(elem);\n      case DomType.Tab:\n        return this.renderTab(elem);\n      case DomType.Symbol:\n        return this.renderSymbol(elem);\n      case DomType.Break:\n        return this.renderBreak(elem);\n      case DomType.Footer:\n        return this.renderContainer(elem, \"footer\");\n      case DomType.Header:\n        return this.renderContainer(elem, \"header\");\n      case DomType.Footnote:\n      case DomType.Endnote:\n        return this.renderContainer(elem, \"li\");\n      case DomType.FootnoteReference:\n        return this.renderFootnoteReference(elem);\n      case DomType.EndnoteReference:\n        return this.renderEndnoteReference(elem);\n      case DomType.NoBreakHyphen:\n        return this.createElement(\"wbr\");\n      case DomType.VmlPicture:\n        return this.renderVmlPicture(elem);\n      case DomType.VmlElement:\n        return this.renderVmlElement(elem);\n      case DomType.MmlMath:\n        return this.renderContainerNS(elem, ns.mathML, \"math\", {\n          xmlns: ns.mathML\n        });\n      case DomType.MmlMathParagraph:\n        return this.renderContainer(elem, \"span\");\n      case DomType.MmlFraction:\n        return this.renderContainerNS(elem, ns.mathML, \"mfrac\");\n      case DomType.MmlBase:\n        return this.renderContainerNS(elem, ns.mathML, elem.parent.type == DomType.MmlMatrixRow ? \"mtd\" : \"mrow\");\n      case DomType.MmlNumerator:\n      case DomType.MmlDenominator:\n      case DomType.MmlFunction:\n      case DomType.MmlLimit:\n      case DomType.MmlBox:\n        return this.renderContainerNS(elem, ns.mathML, \"mrow\");\n      case DomType.MmlGroupChar:\n        return this.renderMmlGroupChar(elem);\n      case DomType.MmlLimitLower:\n        return this.renderContainerNS(elem, ns.mathML, \"munder\");\n      case DomType.MmlMatrix:\n        return this.renderContainerNS(elem, ns.mathML, \"mtable\");\n      case DomType.MmlMatrixRow:\n        return this.renderContainerNS(elem, ns.mathML, \"mtr\");\n      case DomType.MmlRadical:\n        return this.renderMmlRadical(elem);\n      case DomType.MmlSuperscript:\n        return this.renderContainerNS(elem, ns.mathML, \"msup\");\n      case DomType.MmlSubscript:\n        return this.renderContainerNS(elem, ns.mathML, \"msub\");\n      case DomType.MmlDegree:\n      case DomType.MmlSuperArgument:\n      case DomType.MmlSubArgument:\n        return this.renderContainerNS(elem, ns.mathML, \"mn\");\n      case DomType.MmlFunctionName:\n        return this.renderContainerNS(elem, ns.mathML, \"ms\");\n      case DomType.MmlDelimiter:\n        return this.renderMmlDelimiter(elem);\n      case DomType.MmlRun:\n        return this.renderMmlRun(elem);\n      case DomType.MmlNary:\n        return this.renderMmlNary(elem);\n      case DomType.MmlPreSubSuper:\n        return this.renderMmlPreSubSuper(elem);\n      case DomType.MmlBar:\n        return this.renderMmlBar(elem);\n      case DomType.MmlEquationArray:\n        return this.renderMllList(elem);\n      case DomType.Inserted:\n        return this.renderInserted(elem);\n      case DomType.Deleted:\n        return this.renderDeleted(elem);\n    }\n    return null;\n  }\n  renderChildren(elem, into) {\n    return this.renderElements(elem.children, into);\n  }\n  renderElements(elems, into) {\n    if (elems == null) return null;\n    var result = elems.flatMap(e => this.renderElement(e)).filter(e => e != null);\n    if (into) appendChildren(into, result);\n    return result;\n  }\n  renderContainer(elem, tagName, props) {\n    return this.createElement(tagName, props, this.renderChildren(elem));\n  }\n  renderContainerNS(elem, ns, tagName, props) {\n    return createElementNS(ns, tagName, props, this.renderChildren(elem));\n  }\n  renderParagraph(elem) {\n    var _elem$tabs, _style$paragraphProps2, _elem$numbering, _style$paragraphProps3;\n    var result = this.createElement(\"p\");\n    const style = this.findStyle(elem.styleName);\n    (_elem$tabs = elem.tabs) !== null && _elem$tabs !== void 0 ? _elem$tabs : elem.tabs = style === null || style === void 0 || (_style$paragraphProps2 = style.paragraphProps) === null || _style$paragraphProps2 === void 0 ? void 0 : _style$paragraphProps2.tabs;\n    this.renderClass(elem, result);\n    this.renderChildren(elem, result);\n    this.renderStyleValues(elem.cssStyle, result);\n    this.renderCommonProperties(result.style, elem);\n    const numbering = (_elem$numbering = elem.numbering) !== null && _elem$numbering !== void 0 ? _elem$numbering : style === null || style === void 0 || (_style$paragraphProps3 = style.paragraphProps) === null || _style$paragraphProps3 === void 0 ? void 0 : _style$paragraphProps3.numbering;\n    if (numbering) {\n      result.classList.add(this.numberingClass(numbering.id, numbering.level));\n    }\n    return result;\n  }\n  renderRunProperties(style, props) {\n    this.renderCommonProperties(style, props);\n  }\n  renderCommonProperties(style, props) {\n    if (props == null) return;\n    if (props.color) {\n      style[\"color\"] = props.color;\n    }\n    if (props.fontSize) {\n      style[\"font-size\"] = props.fontSize;\n    }\n  }\n  renderHyperlink(elem) {\n    var result = this.createElement(\"a\");\n    this.renderChildren(elem, result);\n    this.renderStyleValues(elem.cssStyle, result);\n    if (elem.href) {\n      result.href = elem.href;\n    } else if (elem.id) {\n      const rel = this.document.documentPart.rels.find(it => it.id == elem.id && it.targetMode === \"External\");\n      result.href = rel === null || rel === void 0 ? void 0 : rel.target;\n    }\n    return result;\n  }\n  renderDrawing(elem) {\n    var result = this.createElement(\"div\");\n    result.style.display = \"inline-block\";\n    result.style.position = \"relative\";\n    result.style.textIndent = \"0px\";\n    this.renderChildren(elem, result);\n    this.renderStyleValues(elem.cssStyle, result);\n    return result;\n  }\n  renderImage(elem) {\n    let result = this.createElement(\"img\");\n    this.renderStyleValues(elem.cssStyle, result);\n    if (this.document) {\n      this.tasks.push(this.document.loadDocumentImage(elem.src, this.currentPart).then(x => {\n        result.src = x;\n      }));\n    }\n    return result;\n  }\n  renderText(elem) {\n    return this.htmlDocument.createTextNode(elem.text);\n  }\n  renderDeletedText(elem) {\n    return this.options.renderEndnotes ? this.htmlDocument.createTextNode(elem.text) : null;\n  }\n  renderBreak(elem) {\n    if (elem.break == \"textWrapping\") {\n      return this.createElement(\"br\");\n    }\n    return null;\n  }\n  renderInserted(elem) {\n    if (this.options.renderChanges) return this.renderContainer(elem, \"ins\");\n    return this.renderChildren(elem);\n  }\n  renderDeleted(elem) {\n    if (this.options.renderChanges) return this.renderContainer(elem, \"del\");\n    return null;\n  }\n  renderSymbol(elem) {\n    var span = this.createElement(\"span\");\n    span.style.fontFamily = elem.font;\n    span.innerHTML = `&#x${elem.char};`;\n    return span;\n  }\n  renderFootnoteReference(elem) {\n    var result = this.createElement(\"sup\");\n    this.currentFootnoteIds.push(elem.id);\n    result.textContent = `${this.currentFootnoteIds.length}`;\n    return result;\n  }\n  renderEndnoteReference(elem) {\n    var result = this.createElement(\"sup\");\n    this.currentEndnoteIds.push(elem.id);\n    result.textContent = `${this.currentEndnoteIds.length}`;\n    return result;\n  }\n  renderTab(elem) {\n    var tabSpan = this.createElement(\"span\");\n    tabSpan.innerHTML = \"&emsp;\";\n    if (this.options.experimental) {\n      var _findParent;\n      tabSpan.className = this.tabStopClass();\n      var stops = (_findParent = findParent(elem, DomType.Paragraph)) === null || _findParent === void 0 ? void 0 : _findParent.tabs;\n      this.currentTabs.push({\n        stops,\n        span: tabSpan\n      });\n    }\n    return tabSpan;\n  }\n  renderBookmarkStart(elem) {\n    var result = this.createElement(\"span\");\n    result.id = elem.name;\n    return result;\n  }\n  renderRun(elem) {\n    if (elem.fieldRun) return null;\n    const result = this.createElement(\"span\");\n    if (elem.id) result.id = elem.id;\n    this.renderClass(elem, result);\n    this.renderStyleValues(elem.cssStyle, result);\n    if (elem.verticalAlign) {\n      const wrapper = this.createElement(elem.verticalAlign);\n      this.renderChildren(elem, wrapper);\n      result.appendChild(wrapper);\n    } else {\n      this.renderChildren(elem, result);\n    }\n    return result;\n  }\n  renderTable(elem) {\n    let result = this.createElement(\"table\");\n    this.tableCellPositions.push(this.currentCellPosition);\n    this.tableVerticalMerges.push(this.currentVerticalMerge);\n    this.currentVerticalMerge = {};\n    this.currentCellPosition = {\n      col: 0,\n      row: 0\n    };\n    if (elem.columns) result.appendChild(this.renderTableColumns(elem.columns));\n    this.renderClass(elem, result);\n    this.renderChildren(elem, result);\n    this.renderStyleValues(elem.cssStyle, result);\n    this.currentVerticalMerge = this.tableVerticalMerges.pop();\n    this.currentCellPosition = this.tableCellPositions.pop();\n    return result;\n  }\n  renderTableColumns(columns) {\n    let result = this.createElement(\"colgroup\");\n    for (let col of columns) {\n      let colElem = this.createElement(\"col\");\n      if (col.width) colElem.style.width = col.width;\n      result.appendChild(colElem);\n    }\n    return result;\n  }\n  renderTableRow(elem) {\n    let result = this.createElement(\"tr\");\n    this.currentCellPosition.col = 0;\n    this.renderClass(elem, result);\n    this.renderChildren(elem, result);\n    this.renderStyleValues(elem.cssStyle, result);\n    this.currentCellPosition.row++;\n    return result;\n  }\n  renderTableCell(elem) {\n    let result = this.createElement(\"td\");\n    const key = this.currentCellPosition.col;\n    if (elem.verticalMerge) {\n      if (elem.verticalMerge == \"restart\") {\n        this.currentVerticalMerge[key] = result;\n        result.rowSpan = 1;\n      } else if (this.currentVerticalMerge[key]) {\n        this.currentVerticalMerge[key].rowSpan += 1;\n        result.style.display = \"none\";\n      }\n    } else {\n      this.currentVerticalMerge[key] = null;\n    }\n    this.renderClass(elem, result);\n    this.renderChildren(elem, result);\n    this.renderStyleValues(elem.cssStyle, result);\n    if (elem.span) result.colSpan = elem.span;\n    this.currentCellPosition.col += result.colSpan;\n    return result;\n  }\n  renderVmlPicture(elem) {\n    var result = createElement(\"div\");\n    this.renderChildren(elem, result);\n    return result;\n  }\n  renderVmlElement(elem) {\n    var _elem$imageHref;\n    var container = createSvgElement(\"svg\");\n    container.setAttribute(\"style\", elem.cssStyleText);\n    const result = this.renderVmlChildElement(elem);\n    if ((_elem$imageHref = elem.imageHref) !== null && _elem$imageHref !== void 0 && _elem$imageHref.id) {\n      var _this$document;\n      this.tasks.push((_this$document = this.document) === null || _this$document === void 0 ? void 0 : _this$document.loadDocumentImage(elem.imageHref.id, this.currentPart).then(x => result.setAttribute(\"href\", x)));\n    }\n    container.appendChild(result);\n    requestAnimationFrame(() => {\n      const bb = container.firstElementChild.getBBox();\n      container.setAttribute(\"width\", `${Math.ceil(bb.x + bb.width)}`);\n      container.setAttribute(\"height\", `${Math.ceil(bb.y + bb.height)}`);\n    });\n    return container;\n  }\n  renderVmlChildElement(elem) {\n    const result = createSvgElement(elem.tagName);\n    Object.entries(elem.attrs).forEach(([k, v]) => result.setAttribute(k, v));\n    for (let child of elem.children) {\n      if (child.type == DomType.VmlElement) {\n        result.appendChild(this.renderVmlChildElement(child));\n      } else {\n        result.appendChild(...asArray(this.renderElement(child)));\n      }\n    }\n    return result;\n  }\n  renderMmlRadical(elem) {\n    var _elem$props;\n    const base = elem.children.find(el => el.type == DomType.MmlBase);\n    if ((_elem$props = elem.props) !== null && _elem$props !== void 0 && _elem$props.hideDegree) {\n      return createElementNS(ns.mathML, \"msqrt\", null, this.renderElements([base]));\n    }\n    const degree = elem.children.find(el => el.type == DomType.MmlDegree);\n    return createElementNS(ns.mathML, \"mroot\", null, this.renderElements([base, degree]));\n  }\n  renderMmlDelimiter(elem) {\n    var _elem$props$beginChar, _elem$props$endChar;\n    const children = [];\n    children.push(createElementNS(ns.mathML, \"mo\", null, [(_elem$props$beginChar = elem.props.beginChar) !== null && _elem$props$beginChar !== void 0 ? _elem$props$beginChar : '(']));\n    children.push(...this.renderElements(elem.children));\n    children.push(createElementNS(ns.mathML, \"mo\", null, [(_elem$props$endChar = elem.props.endChar) !== null && _elem$props$endChar !== void 0 ? _elem$props$endChar : ')']));\n    return createElementNS(ns.mathML, \"mrow\", null, children);\n  }\n  renderMmlNary(elem) {\n    var _elem$props$char, _elem$props2;\n    const children = [];\n    const grouped = keyBy(elem.children, x => x.type);\n    const sup = grouped[DomType.MmlSuperArgument];\n    const sub = grouped[DomType.MmlSubArgument];\n    const supElem = sup ? createElementNS(ns.mathML, \"mo\", null, asArray(this.renderElement(sup))) : null;\n    const subElem = sub ? createElementNS(ns.mathML, \"mo\", null, asArray(this.renderElement(sub))) : null;\n    const charElem = createElementNS(ns.mathML, \"mo\", null, [(_elem$props$char = (_elem$props2 = elem.props) === null || _elem$props2 === void 0 ? void 0 : _elem$props2.char) !== null && _elem$props$char !== void 0 ? _elem$props$char : '\\u222B']);\n    if (supElem || subElem) {\n      children.push(createElementNS(ns.mathML, \"munderover\", null, [charElem, subElem, supElem]));\n    } else if (supElem) {\n      children.push(createElementNS(ns.mathML, \"mover\", null, [charElem, supElem]));\n    } else if (subElem) {\n      children.push(createElementNS(ns.mathML, \"munder\", null, [charElem, subElem]));\n    } else {\n      children.push(charElem);\n    }\n    children.push(...this.renderElements(grouped[DomType.MmlBase].children));\n    return createElementNS(ns.mathML, \"mrow\", null, children);\n  }\n  renderMmlPreSubSuper(elem) {\n    const children = [];\n    const grouped = keyBy(elem.children, x => x.type);\n    const sup = grouped[DomType.MmlSuperArgument];\n    const sub = grouped[DomType.MmlSubArgument];\n    const supElem = sup ? createElementNS(ns.mathML, \"mo\", null, asArray(this.renderElement(sup))) : null;\n    const subElem = sub ? createElementNS(ns.mathML, \"mo\", null, asArray(this.renderElement(sub))) : null;\n    const stubElem = createElementNS(ns.mathML, \"mo\", null);\n    children.push(createElementNS(ns.mathML, \"msubsup\", null, [stubElem, subElem, supElem]));\n    children.push(...this.renderElements(grouped[DomType.MmlBase].children));\n    return createElementNS(ns.mathML, \"mrow\", null, children);\n  }\n  renderMmlGroupChar(elem) {\n    const tagName = elem.props.verticalJustification === \"bot\" ? \"mover\" : \"munder\";\n    const result = this.renderContainerNS(elem, ns.mathML, tagName);\n    if (elem.props.char) {\n      result.appendChild(createElementNS(ns.mathML, \"mo\", null, [elem.props.char]));\n    }\n    return result;\n  }\n  renderMmlBar(elem) {\n    const result = this.renderContainerNS(elem, ns.mathML, \"mrow\");\n    switch (elem.props.position) {\n      case \"top\":\n        result.style.textDecoration = \"overline\";\n        break;\n      case \"bottom\":\n        result.style.textDecoration = \"underline\";\n        break;\n    }\n    return result;\n  }\n  renderMmlRun(elem) {\n    const result = createElementNS(ns.mathML, \"ms\");\n    this.renderClass(elem, result);\n    this.renderStyleValues(elem.cssStyle, result);\n    this.renderChildren(elem, result);\n    return result;\n  }\n  renderMllList(elem) {\n    const result = createElementNS(ns.mathML, \"mtable\");\n    this.renderClass(elem, result);\n    this.renderStyleValues(elem.cssStyle, result);\n    this.renderChildren(elem);\n    for (let child of this.renderChildren(elem)) {\n      result.appendChild(createElementNS(ns.mathML, \"mtr\", null, [createElementNS(ns.mathML, \"mtd\", null, [child])]));\n    }\n    return result;\n  }\n  renderStyleValues(style, ouput) {\n    for (let k in style) {\n      if (k.startsWith(\"$\")) {\n        ouput.setAttribute(k.slice(1), style[k]);\n      } else {\n        ouput.style[k] = style[k];\n      }\n    }\n  }\n  renderClass(input, ouput) {\n    if (input.className) ouput.className = input.className;\n    if (input.styleName) ouput.classList.add(this.processStyleName(input.styleName));\n  }\n  findStyle(styleName) {\n    var _this$styleMap;\n    return styleName && ((_this$styleMap = this.styleMap) === null || _this$styleMap === void 0 ? void 0 : _this$styleMap[styleName]);\n  }\n  numberingClass(id, lvl) {\n    return `${this.className}-num-${id}-${lvl}`;\n  }\n  tabStopClass() {\n    return `${this.className}-tab-stop`;\n  }\n  styleToString(selectors, values, cssText = null) {\n    let result = `${selectors} {\\r\\n`;\n    for (const key in values) {\n      if (key.startsWith('$')) continue;\n      result += `  ${key}: ${values[key]};\\r\\n`;\n    }\n    if (cssText) result += cssText;\n    return result + \"}\\r\\n\";\n  }\n  numberingCounter(id, lvl) {\n    return `${this.className}-num-${id}-${lvl}`;\n  }\n  levelTextToContent(text, suff, id, numformat) {\n    var _suffMap$suff;\n    const suffMap = {\n      \"tab\": \"\\\\9\",\n      \"space\": \"\\\\a0\"\n    };\n    var result = text.replace(/%\\d*/g, s => {\n      let lvl = parseInt(s.substring(1), 10) - 1;\n      return `\"counter(${this.numberingCounter(id, lvl)}, ${numformat})\"`;\n    });\n    return `\"${result}${(_suffMap$suff = suffMap[suff]) !== null && _suffMap$suff !== void 0 ? _suffMap$suff : \"\"}\"`;\n  }\n  numFormatToCssValue(format) {\n    var _mapping$format;\n    var mapping = {\n      none: \"none\",\n      bullet: \"disc\",\n      decimal: \"decimal\",\n      lowerLetter: \"lower-alpha\",\n      upperLetter: \"upper-alpha\",\n      lowerRoman: \"lower-roman\",\n      upperRoman: \"upper-roman\",\n      decimalZero: \"decimal-leading-zero\",\n      aiueo: \"katakana\",\n      aiueoFullWidth: \"katakana\",\n      chineseCounting: \"simp-chinese-informal\",\n      chineseCountingThousand: \"simp-chinese-informal\",\n      chineseLegalSimplified: \"simp-chinese-formal\",\n      chosung: \"hangul-consonant\",\n      ideographDigital: \"cjk-ideographic\",\n      ideographTraditional: \"cjk-heavenly-stem\",\n      ideographLegalTraditional: \"trad-chinese-formal\",\n      ideographZodiac: \"cjk-earthly-branch\",\n      iroha: \"katakana-iroha\",\n      irohaFullWidth: \"katakana-iroha\",\n      japaneseCounting: \"japanese-informal\",\n      japaneseDigitalTenThousand: \"cjk-decimal\",\n      japaneseLegal: \"japanese-formal\",\n      thaiNumbers: \"thai\",\n      koreanCounting: \"korean-hangul-formal\",\n      koreanDigital: \"korean-hangul-formal\",\n      koreanDigital2: \"korean-hanja-informal\",\n      hebrew1: \"hebrew\",\n      hebrew2: \"hebrew\",\n      hindiNumbers: \"devanagari\",\n      ganada: \"hangul\",\n      taiwaneseCounting: \"cjk-ideographic\",\n      taiwaneseCountingThousand: \"cjk-ideographic\",\n      taiwaneseDigital: \"cjk-decimal\"\n    };\n    return (_mapping$format = mapping[format]) !== null && _mapping$format !== void 0 ? _mapping$format : format;\n  }\n  refreshTabStops() {\n    if (!this.options.experimental) return;\n    clearTimeout(this.tabsTimeout);\n    this.tabsTimeout = setTimeout(() => {\n      const pixelToPoint = computePixelToPoint();\n      for (let tab of this.currentTabs) {\n        updateTabStop(tab.span, tab.stops, this.defaultTabSize, pixelToPoint);\n      }\n    }, 500);\n  }\n}\nfunction createElement(tagName, props, children) {\n  return createElementNS(undefined, tagName, props, children);\n}\nfunction createSvgElement(tagName, props, children) {\n  return createElementNS(ns.svg, tagName, props, children);\n}\nfunction createElementNS(ns, tagName, props, children) {\n  var result = ns ? document.createElementNS(ns, tagName) : document.createElement(tagName);\n  Object.assign(result, props);\n  children && appendChildren(result, children);\n  return result;\n}\nfunction removeAllElements(elem) {\n  elem.innerHTML = '';\n}\nfunction appendChildren(elem, children) {\n  children.forEach(c => elem.appendChild(isString(c) ? document.createTextNode(c) : c));\n}\nfunction createStyleElement(cssText) {\n  return createElement(\"style\", {\n    innerHTML: cssText\n  });\n}\nfunction appendComment(elem, comment) {\n  elem.appendChild(document.createComment(comment));\n}\nfunction findParent(elem, type) {\n  var parent = elem.parent;\n  while (parent != null && parent.type != type) parent = parent.parent;\n  return parent;\n}\nconst defaultOptions = exports.defaultOptions = {\n  ignoreHeight: false,\n  ignoreWidth: false,\n  ignoreFonts: false,\n  breakPages: true,\n  debug: false,\n  experimental: false,\n  className: \"docx\",\n  inWrapper: true,\n  trimXmlDeclaration: true,\n  ignoreLastRenderedPageBreak: true,\n  renderHeaders: true,\n  renderFooters: true,\n  renderFootnotes: true,\n  renderEndnotes: true,\n  useBase64URL: false,\n  renderChanges: false\n};\nfunction praseAsync(data, userOptions) {\n  const ops = {\n    ...defaultOptions,\n    ...userOptions\n  };\n  return WordDocument.load(data, new DocumentParser(ops), ops);\n}\nasync function renderDocument(document, bodyContainer, styleContainer, userOptions) {\n  const ops = {\n    ...defaultOptions,\n    ...userOptions\n  };\n  const renderer = new HtmlRenderer(window.document);\n  renderer.render(document, bodyContainer, styleContainer, ops);\n  return Promise.allSettled(renderer.tasks.filter(x => x));\n}\nasync function renderAsync(data, bodyContainer, styleContainer, userOptions) {\n  const doc = await praseAsync(data, userOptions);\n  await renderDocument(doc, bodyContainer, styleContainer, userOptions);\n  return doc;\n}\n\n//# sourceURL=webpack:///./node_modules/docx-preview/dist/docx-preview.mjs?");

/***/ }),

/***/ "./node_modules/dommatrix/dist/dommatrix.js":
/*!**************************************************!*\
  !*** ./node_modules/dommatrix/dist/dommatrix.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/*!\n* DOMMatrix v1.0.3 (https://thednp.github.io/dommatrix/)\n* Copyright 2022 © thednp\n* Licensed under MIT (https://github.com/thednp/DOMMatrix/blob/master/LICENSE)\n*/\n(function (global, factory) {\n   true ? module.exports = factory() :\n  undefined;\n})(this, (function () { 'use strict';\n\n  // DOMMatrix Static methods\n  // * `fromArray` is a more simple implementation, should also accept Float[32/64]Array;\n  // * `fromMatrix` load values from another CSSMatrix/DOMMatrix instance or JSON object;\n  // * `fromString` parses and loads values from any valid CSS transform string (TransformList).\n\n  /**\n   * Creates a new mutable `CSSMatrix` instance given an array of 16/6 floating point values.\n   * This static method invalidates arrays that contain non-number elements.\n   *\n   * If the array has six values, the result is a 2D matrix; if the array has 16 values,\n   * the result is a 3D matrix. Otherwise, a TypeError exception is thrown.\n   *\n   * @param {CSSM.matrix | CSSM.matrix3d} array an `Array` to feed values from.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function fromArray(array) {\n    var m = new CSSMatrix();\n    var a = Array.from(array);\n\n    if (!a.every(function (n) { return !Number.isNaN(n); })) {\n      throw TypeError((\"CSSMatrix: \\\"\" + array + \"\\\" must only have numbers.\"));\n    }\n    if (a.length === 16) {\n      var m11 = a[0];\n      var m12 = a[1];\n      var m13 = a[2];\n      var m14 = a[3];\n      var m21 = a[4];\n      var m22 = a[5];\n      var m23 = a[6];\n      var m24 = a[7];\n      var m31 = a[8];\n      var m32 = a[9];\n      var m33 = a[10];\n      var m34 = a[11];\n      var m41 = a[12];\n      var m42 = a[13];\n      var m43 = a[14];\n      var m44 = a[15];\n\n      m.m11 = m11;\n      m.a = m11;\n\n      m.m21 = m21;\n      m.c = m21;\n\n      m.m31 = m31;\n\n      m.m41 = m41;\n      m.e = m41;\n\n      m.m12 = m12;\n      m.b = m12;\n\n      m.m22 = m22;\n      m.d = m22;\n\n      m.m32 = m32;\n\n      m.m42 = m42;\n      m.f = m42;\n\n      m.m13 = m13;\n      m.m23 = m23;\n      m.m33 = m33;\n      m.m43 = m43;\n      m.m14 = m14;\n      m.m24 = m24;\n      m.m34 = m34;\n      m.m44 = m44;\n    } else if (a.length === 6) {\n      var M11 = a[0];\n      var M12 = a[1];\n      var M21 = a[2];\n      var M22 = a[3];\n      var M41 = a[4];\n      var M42 = a[5];\n\n      m.m11 = M11;\n      m.a = M11;\n\n      m.m12 = M12;\n      m.b = M12;\n\n      m.m21 = M21;\n      m.c = M21;\n\n      m.m22 = M22;\n      m.d = M22;\n\n      m.m41 = M41;\n      m.e = M41;\n\n      m.m42 = M42;\n      m.f = M42;\n    } else {\n      throw new TypeError('CSSMatrix: expecting an Array of 6/16 values.');\n    }\n    return m;\n  }\n\n  /**\n   * Creates a new mutable `CSSMatrix` instance given an existing matrix or a\n   * `DOMMatrix` instance which provides the values for its properties.\n   *\n   * @param {CSSMatrix | DOMMatrix | CSSM.JSONMatrix} m the source matrix to feed values from.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function fromMatrix(m) {\n    var keys = Object.keys(new CSSMatrix());\n    if (typeof m === 'object' && keys.every(function (k) { return k in m; })) {\n      return fromArray(\n        [m.m11, m.m12, m.m13, m.m14,\n          m.m21, m.m22, m.m23, m.m24,\n          m.m31, m.m32, m.m33, m.m34,\n          m.m41, m.m42, m.m43, m.m44]\n      );\n    }\n    throw TypeError((\"CSSMatrix: \\\"\" + (JSON.stringify(m)) + \"\\\" is not a DOMMatrix / CSSMatrix / JSON compatible object.\"));\n  }\n\n  /**\n   * Creates a new mutable `CSSMatrix` given any valid CSS transform string,\n   * or what we call `TransformList`:\n   *\n   * * `matrix(a, b, c, d, e, f)` - valid matrix() transform function\n   * * `matrix3d(m11, m12, m13, ...m44)` - valid matrix3d() transform function\n   * * `translate(tx, ty) rotateX(alpha)` - any valid transform function(s)\n   *\n   * @copyright thednp © 2021\n   *\n   * @param {string} source valid CSS transform string syntax.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function fromString(source) {\n    if (typeof source !== 'string') {\n      throw TypeError((\"CSSMatrix: \\\"\" + source + \"\\\" is not a string.\"));\n    }\n    var str = String(source).replace(/\\s/g, '');\n    var m = new CSSMatrix();\n    var invalidStringError = \"CSSMatrix: invalid transform string \\\"\" + source + \"\\\"\";\n\n    // const px = ['perspective'];\n    // const length = ['translate', 'translate3d', 'translateX', 'translateY', 'translateZ'];\n    // const deg = ['rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'skew', 'skewX', 'skewY'];\n    // const abs = ['scale', 'scale3d', 'matrix', 'matrix3d'];\n    // const transformFunctions = px.concat(length, deg, abs);\n\n    str.split(')').filter(function (f) { return f; }).forEach(function (tf) {\n      var ref = tf.split('(');\n      var prop = ref[0];\n      var value = ref[1];\n\n      // invalidate empty string\n      if (!value) { throw TypeError(invalidStringError); }\n\n      var components = value.split(',')\n        .map(function (n) { return (n.includes('rad') ? parseFloat(n) * (180 / Math.PI) : parseFloat(n)); });\n\n      var x = components[0];\n      var y = components[1];\n      var z = components[2];\n      var a = components[3];\n      var xyz = [x, y, z];\n      var xyza = [x, y, z, a];\n\n      // single number value expected\n      if (prop === 'perspective' && x && [y, z].every(function (n) { return n === undefined; })) {\n        m.m34 = -1 / x;\n      // 6/16 number values expected\n      } else if (prop.includes('matrix') && [6, 16].includes(components.length)\n        && components.every(function (n) { return !Number.isNaN(+n); })) {\n        var values = components.map(function (n) { return (Math.abs(n) < 1e-6 ? 0 : n); });\n        // @ts-ignore -- conditions should suffice\n        m = m.multiply(fromArray(values));\n      // 3 values expected\n      } else if (prop === 'translate3d' && xyz.every(function (n) { return !Number.isNaN(+n); })) {\n        m = m.translate(x, y, z);\n      // single/double number value(s) expected\n      } else if (prop === 'translate' && x && z === undefined) {\n        m = m.translate(x, y || 0, 0);\n      // all 4 values expected\n      } else if (prop === 'rotate3d' && xyza.every(function (n) { return !Number.isNaN(+n); }) && a) {\n        m = m.rotateAxisAngle(x, y, z, a);\n      // single value expected\n      } else if (prop === 'rotate' && x && [y, z].every(function (n) { return n === undefined; })) {\n        m = m.rotate(0, 0, x);\n      // 3 values expected\n      } else if (prop === 'scale3d' && xyz.every(function (n) { return !Number.isNaN(+n); }) && xyz.some(function (n) { return n !== 1; })) {\n        m = m.scale(x, y, z);\n      // single value expected\n      } else if (prop === 'scale' && !Number.isNaN(x) && x !== 1 && z === undefined) {\n        var nosy = Number.isNaN(+y);\n        var sy = nosy ? x : y;\n        m = m.scale(x, sy, 1);\n      // single/double value expected\n      } else if (prop === 'skew' && (x || (!Number.isNaN(x) && y)) && z === undefined) {\n        m = m.skew(x, y || 0);\n      } else if (/[XYZ]/.test(prop) && x && [y, z].every(function (n) { return n === undefined; }) // a single value expected\n        && ['translate', 'rotate', 'scale', 'skew'].some(function (p) { return prop.includes(p); })) {\n        if (['skewX', 'skewY'].includes(prop)) {\n          // @ts-ignore unfortunately\n          m = m[prop](x);\n        } else {\n          var fn = prop.replace(/[XYZ]/, '');\n          var axis = prop.replace(fn, '');\n          var idx = ['X', 'Y', 'Z'].indexOf(axis);\n          var def = fn === 'scale' ? 1 : 0;\n          var axeValues = [\n            idx === 0 ? x : def,\n            idx === 1 ? x : def,\n            idx === 2 ? x : def];\n          // @ts-ignore unfortunately\n          m = m[fn].apply(m, axeValues);\n        }\n      } else {\n        throw TypeError(invalidStringError);\n      }\n    });\n\n    return m;\n  }\n\n  /**\n   * Returns an *Array* containing elements which comprise the matrix.\n   * The method can return either the 16 elements or the 6 elements\n   * depending on the value of the `is2D` parameter.\n   *\n   * @param {CSSMatrix | DOMMatrix | CSSM.JSONMatrix} m the source matrix to feed values from.\n   * @param {boolean=} is2D *Array* representation of the matrix\n   * @return {CSSM.matrix | CSSM.matrix3d} an *Array* representation of the matrix\n   */\n  function toArray(m, is2D) {\n    if (is2D) {\n      return [m.a, m.b, m.c, m.d, m.e, m.f];\n    }\n    return [m.m11, m.m12, m.m13, m.m14,\n      m.m21, m.m22, m.m23, m.m24,\n      m.m31, m.m32, m.m33, m.m34,\n      m.m41, m.m42, m.m43, m.m44];\n  }\n\n  // Transform Functions\n  // https://www.w3.org/TR/css-transforms-1/#transform-functions\n\n  /**\n   * Creates a new `CSSMatrix` for the translation matrix and returns it.\n   * This method is equivalent to the CSS `translate3d()` function.\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translate3d\n   *\n   * @param {number} x the `x-axis` position.\n   * @param {number} y the `y-axis` position.\n   * @param {number} z the `z-axis` position.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function Translate(x, y, z) {\n    var m = new CSSMatrix();\n    m.m41 = x;\n    m.e = x;\n    m.m42 = y;\n    m.f = y;\n    m.m43 = z;\n    return m;\n  }\n\n  /**\n   * Creates a new `CSSMatrix` for the rotation matrix and returns it.\n   *\n   * http://en.wikipedia.org/wiki/Rotation_matrix\n   *\n   * @param {number} rx the `x-axis` rotation.\n   * @param {number} ry the `y-axis` rotation.\n   * @param {number} rz the `z-axis` rotation.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function Rotate(rx, ry, rz) {\n    var m = new CSSMatrix();\n    var degToRad = Math.PI / 180;\n    var radX = rx * degToRad;\n    var radY = ry * degToRad;\n    var radZ = rz * degToRad;\n\n    // minus sin() because of right-handed system\n    var cosx = Math.cos(radX);\n    var sinx = -Math.sin(radX);\n    var cosy = Math.cos(radY);\n    var siny = -Math.sin(radY);\n    var cosz = Math.cos(radZ);\n    var sinz = -Math.sin(radZ);\n\n    var m11 = cosy * cosz;\n    var m12 = -cosy * sinz;\n\n    m.m11 = m11;\n    m.a = m11;\n\n    m.m12 = m12;\n    m.b = m12;\n\n    m.m13 = siny;\n\n    var m21 = sinx * siny * cosz + cosx * sinz;\n    m.m21 = m21;\n    m.c = m21;\n\n    var m22 = cosx * cosz - sinx * siny * sinz;\n    m.m22 = m22;\n    m.d = m22;\n\n    m.m23 = -sinx * cosy;\n\n    m.m31 = sinx * sinz - cosx * siny * cosz;\n    m.m32 = sinx * cosz + cosx * siny * sinz;\n    m.m33 = cosx * cosy;\n\n    return m;\n  }\n\n  /**\n   * Creates a new `CSSMatrix` for the rotation matrix and returns it.\n   * This method is equivalent to the CSS `rotate3d()` function.\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate3d\n   *\n   * @param {number} x the `x-axis` vector length.\n   * @param {number} y the `y-axis` vector length.\n   * @param {number} z the `z-axis` vector length.\n   * @param {number} alpha the value in degrees of the rotation.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function RotateAxisAngle(x, y, z, alpha) {\n    var m = new CSSMatrix();\n    var length = Math.sqrt(x * x + y * y + z * z);\n\n    if (length === 0) {\n      // bad vector length, return identity\n      return m;\n    }\n\n    var X = x / length;\n    var Y = y / length;\n    var Z = z / length;\n\n    var angle = alpha * (Math.PI / 360);\n    var sinA = Math.sin(angle);\n    var cosA = Math.cos(angle);\n    var sinA2 = sinA * sinA;\n    var x2 = X * X;\n    var y2 = Y * Y;\n    var z2 = Z * Z;\n\n    var m11 = 1 - 2 * (y2 + z2) * sinA2;\n    m.m11 = m11;\n    m.a = m11;\n\n    var m12 = 2 * (X * Y * sinA2 + Z * sinA * cosA);\n    m.m12 = m12;\n    m.b = m12;\n\n    m.m13 = 2 * (X * Z * sinA2 - Y * sinA * cosA);\n\n    var m21 = 2 * (Y * X * sinA2 - Z * sinA * cosA);\n    m.m21 = m21;\n    m.c = m21;\n\n    var m22 = 1 - 2 * (z2 + x2) * sinA2;\n    m.m22 = m22;\n    m.d = m22;\n\n    m.m23 = 2 * (Y * Z * sinA2 + X * sinA * cosA);\n    m.m31 = 2 * (Z * X * sinA2 + Y * sinA * cosA);\n    m.m32 = 2 * (Z * Y * sinA2 - X * sinA * cosA);\n    m.m33 = 1 - 2 * (x2 + y2) * sinA2;\n\n    return m;\n  }\n\n  /**\n   * Creates a new `CSSMatrix` for the scale matrix and returns it.\n   * This method is equivalent to the CSS `scale3d()` function, except it doesn't\n   * accept {x, y, z} transform origin parameters.\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scale3d\n   *\n   * @param {number} x the `x-axis` scale.\n   * @param {number} y the `y-axis` scale.\n   * @param {number} z the `z-axis` scale.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function Scale(x, y, z) {\n    var m = new CSSMatrix();\n    m.m11 = x;\n    m.a = x;\n\n    m.m22 = y;\n    m.d = y;\n\n    m.m33 = z;\n    return m;\n  }\n\n  /**\n   * Creates a new `CSSMatrix` for the shear of both the `x-axis` and`y-axis`\n   * matrix and returns it. This method is equivalent to the CSS `skew()` function.\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skew\n   *\n   * @param {number} angleX the X-angle in degrees.\n   * @param {number} angleY the Y-angle in degrees.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function Skew(angleX, angleY) {\n    var m = new CSSMatrix();\n    if (angleX) {\n      var radX = (angleX * Math.PI) / 180;\n      var tX = Math.tan(radX);\n      m.m21 = tX;\n      m.c = tX;\n    }\n    if (angleY) {\n      var radY = (angleY * Math.PI) / 180;\n      var tY = Math.tan(radY);\n      m.m12 = tY;\n      m.b = tY;\n    }\n    return m;\n  }\n\n  /**\n   * Creates a new `CSSMatrix` for the shear of the `x-axis` rotation matrix and\n   * returns it. This method is equivalent to the CSS `skewX()` function.\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skewX\n   *\n   * @param {number} angle the angle in degrees.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function SkewX(angle) {\n    return Skew(angle, 0);\n  }\n\n  /**\n   * Creates a new `CSSMatrix` for the shear of the `y-axis` rotation matrix and\n   * returns it. This method is equivalent to the CSS `skewY()` function.\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skewY\n   *\n   * @param {number} angle the angle in degrees.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function SkewY(angle) {\n    return Skew(0, angle);\n  }\n\n  /**\n   * Creates a new `CSSMatrix` resulted from the multiplication of two matrixes\n   * and returns it. Both matrixes are not changed.\n   *\n   * @param {CSSMatrix | DOMMatrix | CSSM.JSONMatrix} m1 the first matrix.\n   * @param {CSSMatrix | DOMMatrix | CSSM.JSONMatrix} m2 the second matrix.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function Multiply(m1, m2) {\n    var m11 = m2.m11 * m1.m11 + m2.m12 * m1.m21 + m2.m13 * m1.m31 + m2.m14 * m1.m41;\n    var m12 = m2.m11 * m1.m12 + m2.m12 * m1.m22 + m2.m13 * m1.m32 + m2.m14 * m1.m42;\n    var m13 = m2.m11 * m1.m13 + m2.m12 * m1.m23 + m2.m13 * m1.m33 + m2.m14 * m1.m43;\n    var m14 = m2.m11 * m1.m14 + m2.m12 * m1.m24 + m2.m13 * m1.m34 + m2.m14 * m1.m44;\n\n    var m21 = m2.m21 * m1.m11 + m2.m22 * m1.m21 + m2.m23 * m1.m31 + m2.m24 * m1.m41;\n    var m22 = m2.m21 * m1.m12 + m2.m22 * m1.m22 + m2.m23 * m1.m32 + m2.m24 * m1.m42;\n    var m23 = m2.m21 * m1.m13 + m2.m22 * m1.m23 + m2.m23 * m1.m33 + m2.m24 * m1.m43;\n    var m24 = m2.m21 * m1.m14 + m2.m22 * m1.m24 + m2.m23 * m1.m34 + m2.m24 * m1.m44;\n\n    var m31 = m2.m31 * m1.m11 + m2.m32 * m1.m21 + m2.m33 * m1.m31 + m2.m34 * m1.m41;\n    var m32 = m2.m31 * m1.m12 + m2.m32 * m1.m22 + m2.m33 * m1.m32 + m2.m34 * m1.m42;\n    var m33 = m2.m31 * m1.m13 + m2.m32 * m1.m23 + m2.m33 * m1.m33 + m2.m34 * m1.m43;\n    var m34 = m2.m31 * m1.m14 + m2.m32 * m1.m24 + m2.m33 * m1.m34 + m2.m34 * m1.m44;\n\n    var m41 = m2.m41 * m1.m11 + m2.m42 * m1.m21 + m2.m43 * m1.m31 + m2.m44 * m1.m41;\n    var m42 = m2.m41 * m1.m12 + m2.m42 * m1.m22 + m2.m43 * m1.m32 + m2.m44 * m1.m42;\n    var m43 = m2.m41 * m1.m13 + m2.m42 * m1.m23 + m2.m43 * m1.m33 + m2.m44 * m1.m43;\n    var m44 = m2.m41 * m1.m14 + m2.m42 * m1.m24 + m2.m43 * m1.m34 + m2.m44 * m1.m44;\n\n    return fromArray(\n      [m11, m12, m13, m14,\n        m21, m22, m23, m24,\n        m31, m32, m33, m34,\n        m41, m42, m43, m44]\n    );\n  }\n\n  /**\n   * Creates and returns a new `DOMMatrix` compatible instance\n   * with equivalent instance.\n   * @class CSSMatrix\n   *\n   * @author thednp <https://github.com/thednp/DOMMatrix/>\n   * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix\n   */\n\n  var CSSMatrix = function CSSMatrix() {\n    var args = [], len = arguments.length;\n    while ( len-- ) args[ len ] = arguments[ len ];\n\n    var m = this;\n    // array 6\n    m.a = 1; m.b = 0;\n    m.c = 0; m.d = 1;\n    m.e = 0; m.f = 0;\n    // array 16\n    m.m11 = 1; m.m12 = 0; m.m13 = 0; m.m14 = 0;\n    m.m21 = 0; m.m22 = 1; m.m23 = 0; m.m24 = 0;\n    m.m31 = 0; m.m32 = 0; m.m33 = 1; m.m34 = 0;\n    m.m41 = 0; m.m42 = 0; m.m43 = 0; m.m44 = 1;\n\n    if (args.length) {\n      var ARGS = [16, 6].some(function (l) { return l === args.length; }) ? args : args[0];\n\n      return m.setMatrixValue(ARGS);\n    }\n    return m;\n  };\n\n  var prototypeAccessors = { isIdentity: { configurable: true },is2D: { configurable: true } };\n\n  /**\n   * A `Boolean` whose value is `true` if the matrix is the identity matrix. The identity\n   * matrix is one in which every value is 0 except those on the main diagonal from top-left\n   * to bottom-right corner (in other words, where the offsets in each direction are equal).\n   *\n   * @return {boolean} the current property value\n   */\n  prototypeAccessors.isIdentity.get = function () {\n    var m = this;\n    return (m.m11 === 1 && m.m12 === 0 && m.m13 === 0 && m.m14 === 0\n            && m.m21 === 0 && m.m22 === 1 && m.m23 === 0 && m.m24 === 0\n            && m.m31 === 0 && m.m32 === 0 && m.m33 === 1 && m.m34 === 0\n            && m.m41 === 0 && m.m42 === 0 && m.m43 === 0 && m.m44 === 1);\n  };\n\n  /**\n   * A `Boolean` flag whose value is `true` if the matrix was initialized as a 2D matrix\n   * and `false` if the matrix is 3D.\n   *\n   * @return {boolean} the current property value\n   */\n  prototypeAccessors.is2D.get = function () {\n    var m = this;\n    return (m.m31 === 0 && m.m32 === 0 && m.m33 === 1 && m.m34 === 0 && m.m43 === 0 && m.m44 === 1);\n  };\n\n  /**\n   * The `setMatrixValue` method replaces the existing matrix with one computed\n   * in the browser. EG: `matrix(1,0.25,-0.25,1,0,0)`\n   *\n   * The method accepts any *Array* values, the result of\n   * `DOMMatrix` instance method `toFloat64Array()` / `toFloat32Array()` calls\n   *or `CSSMatrix` instance method `toArray()`.\n   *\n   * This method expects valid *matrix()* / *matrix3d()* string values, as well\n   * as other transform functions like *translateX(10px)*.\n   *\n   * @param {string | CSSM.matrix | CSSM.matrix3d | CSSMatrix | DOMMatrix | CSSM.JSONMatrix} source\n   * @return {CSSMatrix} the matrix instance\n   */\n  CSSMatrix.prototype.setMatrixValue = function setMatrixValue (source) {\n    var m = this;\n\n    // CSS transform string source - TransformList first\n    if (typeof source === 'string' && source.length && source !== 'none') {\n      return fromString(source);\n    }\n    // [Arguments list | Array] come second\n    if ([Array, Float64Array, Float32Array].some(function (a) { return source instanceof a; })) {\n      // @ts-ignore\n      return fromArray(source);\n    }\n    // new CSSMatrix(CSSMatrix | DOMMatrix | JSON) last\n    if ([CSSMatrix, DOMMatrix, Object].some(function (a) { return source instanceof a; })) {\n      // @ts-ignore\n      return fromMatrix(source);\n    }\n\n    return m;\n  };\n\n  /**\n   * Returns a *Float32Array* containing elements which comprise the matrix.\n   * The method can return either the 16 elements or the 6 elements\n   * depending on the value of the `is2D` parameter.\n   *\n   * @param {boolean=} is2D *Array* representation of the matrix\n   * @return {Float32Array} an *Array* representation of the matrix\n   */\n  CSSMatrix.prototype.toFloat32Array = function toFloat32Array (is2D) {\n    return Float32Array.from(toArray(this, is2D));\n  };\n\n  /**\n   * Returns a *Float64Array* containing elements which comprise the matrix.\n   * The method can return either the 16 elements or the 6 elements\n   * depending on the value of the `is2D` parameter.\n   *\n   * @param {boolean=} is2D *Array* representation of the matrix\n   * @return {Float64Array} an *Array* representation of the matrix\n   */\n  CSSMatrix.prototype.toFloat64Array = function toFloat64Array (is2D) {\n    return Float64Array.from(toArray(this, is2D));\n  };\n\n  /**\n   * Creates and returns a string representation of the matrix in `CSS` matrix syntax,\n   * using the appropriate `CSS` matrix notation.\n   *\n   * matrix3d *matrix3d(m11, m12, m13, m14, m21, ...)*\n   * matrix *matrix(a, b, c, d, e, f)*\n   *\n   * @return {string} a string representation of the matrix\n   */\n  CSSMatrix.prototype.toString = function toString () {\n    var m = this;\n    var is2D = m.is2D;\n    var values = m.toFloat64Array(is2D).join(', ');\n    var type = is2D ? 'matrix' : 'matrix3d';\n    return (type + \"(\" + values + \")\");\n  };\n\n  /**\n   * Returns a JSON representation of the `CSSMatrix` instance, a standard *Object*\n   * that includes `{a,b,c,d,e,f}` and `{m11,m12,m13,..m44}` properties as well\n   * as the `is2D` & `isIdentity` properties.\n   *\n   * The result can also be used as a second parameter for the `fromMatrix` static method\n   * to load values into another matrix instance.\n   *\n   * @return {CSSM.JSONMatrix} an *Object* with all matrix values.\n   */\n  CSSMatrix.prototype.toJSON = function toJSON () {\n    var m = this;\n    var is2D = m.is2D;\n      var isIdentity = m.isIdentity;\n    return Object.assign({}, m, {is2D: is2D, isIdentity: isIdentity});\n  };\n\n  /**\n   * The Multiply method returns a new CSSMatrix which is the result of this\n   * matrix multiplied by the passed matrix, with the passed matrix to the right.\n   * This matrix is not modified.\n   *\n   * @param {CSSMatrix | DOMMatrix | CSSM.JSONMatrix} m2 CSSMatrix\n   * @return {CSSMatrix} The resulted matrix.\n   */\n  CSSMatrix.prototype.multiply = function multiply (m2) {\n    return Multiply(this, m2);\n  };\n\n  /**\n   * The translate method returns a new matrix which is this matrix post\n   * multiplied by a translation matrix containing the passed values. If the z\n   * component is undefined, a 0 value is used in its place. This matrix is not\n   * modified.\n   *\n   * @param {number} x X component of the translation value.\n   * @param {number=} y Y component of the translation value.\n   * @param {number=} z Z component of the translation value.\n   * @return {CSSMatrix} The resulted matrix\n   */\n  CSSMatrix.prototype.translate = function translate (x, y, z) {\n    var X = x;\n    var Y = y;\n    var Z = z;\n    if (Y === undefined) { Y = 0; }\n    if (Z === undefined) { Z = 0; }\n    return Multiply(this, Translate(X, Y, Z));\n  };\n\n  /**\n   * The scale method returns a new matrix which is this matrix post multiplied by\n   * a scale matrix containing the passed values. If the z component is undefined,\n   * a 1 value is used in its place. If the y component is undefined, the x\n   * component value is used in its place. This matrix is not modified.\n   *\n   * @param {number} x The X component of the scale value.\n   * @param {number=} y The Y component of the scale value.\n   * @param {number=} z The Z component of the scale value.\n   * @return {CSSMatrix} The resulted matrix\n   */\n  CSSMatrix.prototype.scale = function scale (x, y, z) {\n    var X = x;\n    var Y = y;\n    var Z = z;\n    if (Y === undefined) { Y = x; }\n    if (Z === undefined) { Z = 1; } // Z must be 1 if undefined\n\n    return Multiply(this, Scale(X, Y, Z));\n  };\n\n  /**\n   * The rotate method returns a new matrix which is this matrix post multiplied\n   * by each of 3 rotation matrices about the major axes, first X, then Y, then Z.\n   * If the y and z components are undefined, the x value is used to rotate the\n   * object about the z axis, as though the vector (0,0,x) were passed. All\n   * rotation values are in degrees. This matrix is not modified.\n   *\n   * @param {number} rx The X component of the rotation, or Z if Y and Z are null.\n   * @param {number=} ry The (optional) Y component of the rotation value.\n   * @param {number=} rz The (optional) Z component of the rotation value.\n   * @return {CSSMatrix} The resulted matrix\n   */\n  CSSMatrix.prototype.rotate = function rotate (rx, ry, rz) {\n    var RX = rx;\n    var RY = ry || 0;\n    var RZ = rz || 0;\n\n    if (typeof rx === 'number' && ry === undefined && rz === undefined) {\n      RZ = RX; RX = 0; RY = 0;\n    }\n\n    return Multiply(this, Rotate(RX, RY, RZ));\n  };\n\n  /**\n   * The rotateAxisAngle method returns a new matrix which is this matrix post\n   * multiplied by a rotation matrix with the given axis and `angle`. The right-hand\n   * rule is used to determine the direction of rotation. All rotation values are\n   * in degrees. This matrix is not modified.\n   *\n   * @param {number} x The X component of the axis vector.\n   * @param {number} y The Y component of the axis vector.\n   * @param {number} z The Z component of the axis vector.\n   * @param {number} angle The angle of rotation about the axis vector, in degrees.\n   * @return {CSSMatrix} The resulted matrix\n   */\n  CSSMatrix.prototype.rotateAxisAngle = function rotateAxisAngle (x, y, z, angle) {\n    if ([x, y, z, angle].some(function (n) { return Number.isNaN(+n); })) {\n      throw new TypeError('CSSMatrix: expecting 4 values');\n    }\n    return Multiply(this, RotateAxisAngle(x, y, z, angle));\n  };\n\n  /**\n   * Specifies a skew transformation along the `x-axis` by the given angle.\n   * This matrix is not modified.\n   *\n   * @param {number} angle The angle amount in degrees to skew.\n   * @return {CSSMatrix} The resulted matrix\n   */\n  CSSMatrix.prototype.skewX = function skewX (angle) {\n    return Multiply(this, SkewX(angle));\n  };\n\n  /**\n   * Specifies a skew transformation along the `y-axis` by the given angle.\n   * This matrix is not modified.\n   *\n   * @param {number} angle The angle amount in degrees to skew.\n   * @return {CSSMatrix} The resulted matrix\n   */\n  CSSMatrix.prototype.skewY = function skewY (angle) {\n    return Multiply(this, SkewY(angle));\n  };\n\n  /**\n   * Specifies a skew transformation along both the `x-axis` and `y-axis`.\n   * This matrix is not modified.\n   *\n   * @param {number} angleX The X-angle amount in degrees to skew.\n   * @param {number} angleY The angle amount in degrees to skew.\n   * @return {CSSMatrix} The resulted matrix\n   */\n  CSSMatrix.prototype.skew = function skew (angleX, angleY) {\n    return Multiply(this, Skew(angleX, angleY));\n  };\n\n  /**\n   * Transforms a specified vector using the matrix, returning a new\n   * {x,y,z,w} Tuple *Object* comprising the transformed vector.\n   * Neither the matrix nor the original vector are altered.\n   *\n   * The method is equivalent with `transformPoint()` method\n   * of the `DOMMatrix` constructor.\n   *\n   * @param {CSSM.PointTuple | DOMPoint} t Tuple with `{x,y,z,w}` components\n   * @return {CSSM.PointTuple | DOMPoint} the resulting Tuple\n   */\n  CSSMatrix.prototype.transformPoint = function transformPoint (t) {\n    var m = this;\n\n    var x = m.m11 * t.x + m.m21 * t.y + m.m31 * t.z + m.m41 * t.w;\n    var y = m.m12 * t.x + m.m22 * t.y + m.m32 * t.z + m.m42 * t.w;\n    var z = m.m13 * t.x + m.m23 * t.y + m.m33 * t.z + m.m43 * t.w;\n    var w = m.m14 * t.x + m.m24 * t.y + m.m34 * t.z + m.m44 * t.w;\n\n    return t instanceof DOMPoint\n      ? new DOMPoint(x, y, z, w)\n      : {\n        x: x, y: y, z: z, w: w,\n      };\n  };\n\n  Object.defineProperties( CSSMatrix.prototype, prototypeAccessors );\n\n  // Add Transform Functions to CSSMatrix object\n  // without creating a TypeScript namespace.\n  Object.assign(CSSMatrix, {\n    Translate: Translate,\n    Rotate: Rotate,\n    RotateAxisAngle: RotateAxisAngle,\n    Scale: Scale,\n    SkewX: SkewX,\n    SkewY: SkewY,\n    Skew: Skew,\n    Multiply: Multiply,\n    fromArray: fromArray,\n    fromMatrix: fromMatrix,\n    fromString: fromString,\n    toArray: toArray,\n  });\n\n  var version = \"1.0.3\";\n\n  /**\n   * A global namespace for library version.\n   * @type {string}\n   */\n  var Version = version;\n\n  /** @typedef {import('../types/index')} */\n\n  Object.assign(CSSMatrix, { Version: Version });\n\n  return CSSMatrix;\n\n}));\n\n\n//# sourceURL=webpack:///./node_modules/dommatrix/dist/dommatrix.js?");

/***/ }),

/***/ "./node_modules/dompurify/dist/purify.js":
/*!***********************************************!*\
  !*** ./node_modules/dompurify/dist/purify.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/*! @license DOMPurify 2.5.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.5.6/LICENSE */\n\n(function (global, factory) {\n   true ? module.exports = factory() :\n  undefined;\n})(this, (function () { 'use strict';\n\n  function _typeof(obj) {\n    \"@babel/helpers - typeof\";\n\n    return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n      return typeof obj;\n    } : function (obj) {\n      return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    }, _typeof(obj);\n  }\n  function _setPrototypeOf(o, p) {\n    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n      o.__proto__ = p;\n      return o;\n    };\n    return _setPrototypeOf(o, p);\n  }\n  function _isNativeReflectConstruct() {\n    if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n    if (Reflect.construct.sham) return false;\n    if (typeof Proxy === \"function\") return true;\n    try {\n      Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n      return true;\n    } catch (e) {\n      return false;\n    }\n  }\n  function _construct(Parent, args, Class) {\n    if (_isNativeReflectConstruct()) {\n      _construct = Reflect.construct;\n    } else {\n      _construct = function _construct(Parent, args, Class) {\n        var a = [null];\n        a.push.apply(a, args);\n        var Constructor = Function.bind.apply(Parent, a);\n        var instance = new Constructor();\n        if (Class) _setPrototypeOf(instance, Class.prototype);\n        return instance;\n      };\n    }\n    return _construct.apply(null, arguments);\n  }\n  function _toConsumableArray(arr) {\n    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n  }\n  function _arrayWithoutHoles(arr) {\n    if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n  }\n  function _iterableToArray(iter) {\n    if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n  }\n  function _unsupportedIterableToArray(o, minLen) {\n    if (!o) return;\n    if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === \"Object\" && o.constructor) n = o.constructor.name;\n    if (n === \"Map\" || n === \"Set\") return Array.from(o);\n    if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n  }\n  function _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length) len = arr.length;\n    for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n    return arr2;\n  }\n  function _nonIterableSpread() {\n    throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n\n  var hasOwnProperty = Object.hasOwnProperty,\n    setPrototypeOf = Object.setPrototypeOf,\n    isFrozen = Object.isFrozen,\n    getPrototypeOf = Object.getPrototypeOf,\n    getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n  var freeze = Object.freeze,\n    seal = Object.seal,\n    create = Object.create; // eslint-disable-line import/no-mutable-exports\n  var _ref = typeof Reflect !== 'undefined' && Reflect,\n    apply = _ref.apply,\n    construct = _ref.construct;\n  if (!apply) {\n    apply = function apply(fun, thisValue, args) {\n      return fun.apply(thisValue, args);\n    };\n  }\n  if (!freeze) {\n    freeze = function freeze(x) {\n      return x;\n    };\n  }\n  if (!seal) {\n    seal = function seal(x) {\n      return x;\n    };\n  }\n  if (!construct) {\n    construct = function construct(Func, args) {\n      return _construct(Func, _toConsumableArray(args));\n    };\n  }\n  var arrayForEach = unapply(Array.prototype.forEach);\n  var arrayPop = unapply(Array.prototype.pop);\n  var arrayPush = unapply(Array.prototype.push);\n  var stringToLowerCase = unapply(String.prototype.toLowerCase);\n  var stringToString = unapply(String.prototype.toString);\n  var stringMatch = unapply(String.prototype.match);\n  var stringReplace = unapply(String.prototype.replace);\n  var stringIndexOf = unapply(String.prototype.indexOf);\n  var stringTrim = unapply(String.prototype.trim);\n  var regExpTest = unapply(RegExp.prototype.test);\n  var typeErrorCreate = unconstruct(TypeError);\n  function unapply(func) {\n    return function (thisArg) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n      return apply(func, thisArg, args);\n    };\n  }\n  function unconstruct(func) {\n    return function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return construct(func, args);\n    };\n  }\n\n  /* Add properties to a lookup table */\n  function addToSet(set, array, transformCaseFunc) {\n    var _transformCaseFunc;\n    transformCaseFunc = (_transformCaseFunc = transformCaseFunc) !== null && _transformCaseFunc !== void 0 ? _transformCaseFunc : stringToLowerCase;\n    if (setPrototypeOf) {\n      // Make 'in' and truthy checks like Boolean(set.constructor)\n      // independent of any properties defined on Object.prototype.\n      // Prevent prototype setters from intercepting set as a this value.\n      setPrototypeOf(set, null);\n    }\n    var l = array.length;\n    while (l--) {\n      var element = array[l];\n      if (typeof element === 'string') {\n        var lcElement = transformCaseFunc(element);\n        if (lcElement !== element) {\n          // Config presets (e.g. tags.js, attrs.js) are immutable.\n          if (!isFrozen(array)) {\n            array[l] = lcElement;\n          }\n          element = lcElement;\n        }\n      }\n      set[element] = true;\n    }\n    return set;\n  }\n\n  /* Shallow clone an object */\n  function clone(object) {\n    var newObject = create(null);\n    var property;\n    for (property in object) {\n      if (apply(hasOwnProperty, object, [property]) === true) {\n        newObject[property] = object[property];\n      }\n    }\n    return newObject;\n  }\n\n  /* IE10 doesn't support __lookupGetter__ so lets'\n   * simulate it. It also automatically checks\n   * if the prop is function or getter and behaves\n   * accordingly. */\n  function lookupGetter(object, prop) {\n    while (object !== null) {\n      var desc = getOwnPropertyDescriptor(object, prop);\n      if (desc) {\n        if (desc.get) {\n          return unapply(desc.get);\n        }\n        if (typeof desc.value === 'function') {\n          return unapply(desc.value);\n        }\n      }\n      object = getPrototypeOf(object);\n    }\n    function fallbackValue(element) {\n      console.warn('fallback value for', element);\n      return null;\n    }\n    return fallbackValue;\n  }\n\n  var html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n  // SVG\n  var svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n  var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n  // List of SVG elements that are disallowed by default.\n  // We still need to know them so that we can do namespace\n  // checks properly in case one wants to add them to\n  // allow-list.\n  var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n  var mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\n  // Similarly to SVG, we want to know all MathML elements,\n  // even those that we disallow by default.\n  var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n  var text = freeze(['#text']);\n\n  var html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\n  var svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n  var mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n  var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n  // eslint-disable-next-line unicorn/better-regex\n  var MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n  var ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n  var TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\n  var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n  var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n  var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n  );\n  var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n  var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n  );\n  var DOCTYPE_NAME = seal(/^html$/i);\n  var CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n  var getGlobal = function getGlobal() {\n    return typeof window === 'undefined' ? null : window;\n  };\n\n  /**\n   * Creates a no-op policy for internal use only.\n   * Don't export this function outside this module!\n   * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n   * @param {Document} document The document object (to determine policy name suffix)\n   * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n   * are not supported).\n   */\n  var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n    if (_typeof(trustedTypes) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n      return null;\n    }\n\n    // Allow the callers to control the unique policy name\n    // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n    // Policy creation with duplicate names throws in Trusted Types.\n    var suffix = null;\n    var ATTR_NAME = 'data-tt-policy-suffix';\n    if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n      suffix = document.currentScript.getAttribute(ATTR_NAME);\n    }\n    var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n    try {\n      return trustedTypes.createPolicy(policyName, {\n        createHTML: function createHTML(html) {\n          return html;\n        },\n        createScriptURL: function createScriptURL(scriptUrl) {\n          return scriptUrl;\n        }\n      });\n    } catch (_) {\n      // Policy creation failed (most likely another DOMPurify script has\n      // already run). Skip creating the policy, as this will only cause errors\n      // if TT are enforced.\n      console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n      return null;\n    }\n  };\n  function createDOMPurify() {\n    var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n    var DOMPurify = function DOMPurify(root) {\n      return createDOMPurify(root);\n    };\n\n    /**\n     * Version label, exposed for easier checks\n     * if DOMPurify is up to date or not\n     */\n    DOMPurify.version = '2.5.6';\n\n    /**\n     * Array of elements that DOMPurify removed during sanitation.\n     * Empty if nothing was removed.\n     */\n    DOMPurify.removed = [];\n    if (!window || !window.document || window.document.nodeType !== 9) {\n      // Not running in a browser, provide a factory function\n      // so that you can pass your own Window\n      DOMPurify.isSupported = false;\n      return DOMPurify;\n    }\n    var originalDocument = window.document;\n    var document = window.document;\n    var DocumentFragment = window.DocumentFragment,\n      HTMLTemplateElement = window.HTMLTemplateElement,\n      Node = window.Node,\n      Element = window.Element,\n      NodeFilter = window.NodeFilter,\n      _window$NamedNodeMap = window.NamedNodeMap,\n      NamedNodeMap = _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n      HTMLFormElement = window.HTMLFormElement,\n      DOMParser = window.DOMParser,\n      trustedTypes = window.trustedTypes;\n    var ElementPrototype = Element.prototype;\n    var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n    var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n    var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n    var getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n    // As per issue #47, the web-components registry is inherited by a\n    // new document created via createHTMLDocument. As per the spec\n    // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n    // a new empty registry is used when creating a template contents owner\n    // document, so we use that as our parent document to ensure nothing\n    // is inherited.\n    if (typeof HTMLTemplateElement === 'function') {\n      var template = document.createElement('template');\n      if (template.content && template.content.ownerDocument) {\n        document = template.content.ownerDocument;\n      }\n    }\n    var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n    var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n    var _document = document,\n      implementation = _document.implementation,\n      createNodeIterator = _document.createNodeIterator,\n      createDocumentFragment = _document.createDocumentFragment,\n      getElementsByTagName = _document.getElementsByTagName;\n    var importNode = originalDocument.importNode;\n    var documentMode = {};\n    try {\n      documentMode = clone(document).documentMode ? document.documentMode : {};\n    } catch (_) {}\n    var hooks = {};\n\n    /**\n     * Expose whether this browser supports running the full DOMPurify.\n     */\n    DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined && documentMode !== 9;\n    var MUSTACHE_EXPR$1 = MUSTACHE_EXPR,\n      ERB_EXPR$1 = ERB_EXPR,\n      TMPLIT_EXPR$1 = TMPLIT_EXPR,\n      DATA_ATTR$1 = DATA_ATTR,\n      ARIA_ATTR$1 = ARIA_ATTR,\n      IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA,\n      ATTR_WHITESPACE$1 = ATTR_WHITESPACE,\n      CUSTOM_ELEMENT$1 = CUSTOM_ELEMENT;\n    var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;\n\n    /**\n     * We consider the elements and attributes below to be safe. Ideally\n     * don't add any new ones but feel free to remove unwanted ones.\n     */\n\n    /* allowed element names */\n    var ALLOWED_TAGS = null;\n    var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));\n\n    /* Allowed attribute names */\n    var ALLOWED_ATTR = null;\n    var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));\n\n    /*\n     * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n     * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n     * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n     * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n     */\n    var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n      tagNameCheck: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: null\n      },\n      attributeNameCheck: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: null\n      },\n      allowCustomizedBuiltInElements: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: false\n      }\n    }));\n\n    /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n    var FORBID_TAGS = null;\n\n    /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n    var FORBID_ATTR = null;\n\n    /* Decide if ARIA attributes are okay */\n    var ALLOW_ARIA_ATTR = true;\n\n    /* Decide if custom data attributes are okay */\n    var ALLOW_DATA_ATTR = true;\n\n    /* Decide if unknown protocols are okay */\n    var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n    /* Decide if self-closing tags in attributes are allowed.\n     * Usually removed due to a mXSS issue in jQuery 3.0 */\n    var ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n    /* Output should be safe for common template engines.\n     * This means, DOMPurify removes data attributes, mustaches and ERB\n     */\n    var SAFE_FOR_TEMPLATES = false;\n\n    /* Output should be safe even for XML used within HTML and alike.\n     * This means, DOMPurify removes comments when containing risky content.\n     */\n    var SAFE_FOR_XML = true;\n\n    /* Decide if document with <html>... should be returned */\n    var WHOLE_DOCUMENT = false;\n\n    /* Track whether config is already set on this instance of DOMPurify. */\n    var SET_CONFIG = false;\n\n    /* Decide if all elements (e.g. style, script) must be children of\n     * document.body. By default, browsers might move them to document.head */\n    var FORCE_BODY = false;\n\n    /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n     * string (or a TrustedHTML object if Trusted Types are supported).\n     * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n     */\n    var RETURN_DOM = false;\n\n    /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n     * string  (or a TrustedHTML object if Trusted Types are supported) */\n    var RETURN_DOM_FRAGMENT = false;\n\n    /* Try to return a Trusted Type object instead of a string, return a string in\n     * case Trusted Types are not supported  */\n    var RETURN_TRUSTED_TYPE = false;\n\n    /* Output should be free from DOM clobbering attacks?\n     * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n     */\n    var SANITIZE_DOM = true;\n\n    /* Achieve full DOM Clobbering protection by isolating the namespace of named\n     * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n     *\n     * HTML/DOM spec rules that enable DOM Clobbering:\n     *   - Named Access on Window (§7.3.3)\n     *   - DOM Tree Accessors (§3.1.5)\n     *   - Form Element Parent-Child Relations (§4.10.3)\n     *   - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n     *   - HTMLCollection (§4.2.10.2)\n     *\n     * Namespace isolation is implemented by prefixing `id` and `name` attributes\n     * with a constant string, i.e., `user-content-`\n     */\n    var SANITIZE_NAMED_PROPS = false;\n    var SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n    /* Keep element content when removing element? */\n    var KEEP_CONTENT = true;\n\n    /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n     * of importing it into a new Document and returning a sanitized copy */\n    var IN_PLACE = false;\n\n    /* Allow usage of profiles like html, svg and mathMl */\n    var USE_PROFILES = {};\n\n    /* Tags to ignore content of when KEEP_CONTENT is true */\n    var FORBID_CONTENTS = null;\n    var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n    /* Tags that are safe for data: URIs */\n    var DATA_URI_TAGS = null;\n    var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n    /* Attributes safe for values like \"javascript:\" */\n    var URI_SAFE_ATTRIBUTES = null;\n    var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n    var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n    var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n    var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n    /* Document namespace */\n    var NAMESPACE = HTML_NAMESPACE;\n    var IS_EMPTY_INPUT = false;\n\n    /* Allowed XHTML+XML namespaces */\n    var ALLOWED_NAMESPACES = null;\n    var DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n\n    /* Parsing of strict XHTML documents */\n    var PARSER_MEDIA_TYPE;\n    var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n    var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n    var transformCaseFunc;\n\n    /* Keep a reference to config to pass to hooks */\n    var CONFIG = null;\n\n    /* Ideally, do not touch anything below this line */\n    /* ______________________________________________ */\n\n    var formElement = document.createElement('form');\n    var isRegexOrFunction = function isRegexOrFunction(testValue) {\n      return testValue instanceof RegExp || testValue instanceof Function;\n    };\n\n    /**\n     * _parseConfig\n     *\n     * @param  {Object} cfg optional config literal\n     */\n    // eslint-disable-next-line complexity\n    var _parseConfig = function _parseConfig(cfg) {\n      if (CONFIG && CONFIG === cfg) {\n        return;\n      }\n\n      /* Shield configuration object from tampering */\n      if (!cfg || _typeof(cfg) !== 'object') {\n        cfg = {};\n      }\n\n      /* Shield configuration object from prototype pollution */\n      cfg = clone(cfg);\n      PARSER_MEDIA_TYPE =\n      // eslint-disable-next-line unicorn/prefer-includes\n      SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;\n\n      // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n      transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n\n      /* Set configuration parameters */\n      ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n      ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n      ALLOWED_NAMESPACES = 'ALLOWED_NAMESPACES' in cfg ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n      URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n      // eslint-disable-line indent\n      cfg.ADD_URI_SAFE_ATTR,\n      // eslint-disable-line indent\n      transformCaseFunc // eslint-disable-line indent\n      ) // eslint-disable-line indent\n      : DEFAULT_URI_SAFE_ATTRIBUTES;\n      DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS),\n      // eslint-disable-line indent\n      cfg.ADD_DATA_URI_TAGS,\n      // eslint-disable-line indent\n      transformCaseFunc // eslint-disable-line indent\n      ) // eslint-disable-line indent\n      : DEFAULT_DATA_URI_TAGS;\n      FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n      FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n      FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n      USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n      ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n      ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n      ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n      ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n      SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n      SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n      WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n      RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n      RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n      RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n      FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n      SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n      SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n      KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n      IN_PLACE = cfg.IN_PLACE || false; // Default false\n      IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;\n      NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n      CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n      if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n        CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n      }\n      if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n        CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n      }\n      if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n        CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n      }\n      if (SAFE_FOR_TEMPLATES) {\n        ALLOW_DATA_ATTR = false;\n      }\n      if (RETURN_DOM_FRAGMENT) {\n        RETURN_DOM = true;\n      }\n\n      /* Parse profile info */\n      if (USE_PROFILES) {\n        ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));\n        ALLOWED_ATTR = [];\n        if (USE_PROFILES.html === true) {\n          addToSet(ALLOWED_TAGS, html$1);\n          addToSet(ALLOWED_ATTR, html);\n        }\n        if (USE_PROFILES.svg === true) {\n          addToSet(ALLOWED_TAGS, svg$1);\n          addToSet(ALLOWED_ATTR, svg);\n          addToSet(ALLOWED_ATTR, xml);\n        }\n        if (USE_PROFILES.svgFilters === true) {\n          addToSet(ALLOWED_TAGS, svgFilters);\n          addToSet(ALLOWED_ATTR, svg);\n          addToSet(ALLOWED_ATTR, xml);\n        }\n        if (USE_PROFILES.mathMl === true) {\n          addToSet(ALLOWED_TAGS, mathMl$1);\n          addToSet(ALLOWED_ATTR, mathMl);\n          addToSet(ALLOWED_ATTR, xml);\n        }\n      }\n\n      /* Merge configuration parameters */\n      if (cfg.ADD_TAGS) {\n        if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n          ALLOWED_TAGS = clone(ALLOWED_TAGS);\n        }\n        addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n      }\n      if (cfg.ADD_ATTR) {\n        if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n          ALLOWED_ATTR = clone(ALLOWED_ATTR);\n        }\n        addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n      }\n      if (cfg.ADD_URI_SAFE_ATTR) {\n        addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n      }\n      if (cfg.FORBID_CONTENTS) {\n        if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n          FORBID_CONTENTS = clone(FORBID_CONTENTS);\n        }\n        addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n      }\n\n      /* Add #text in case KEEP_CONTENT is set to true */\n      if (KEEP_CONTENT) {\n        ALLOWED_TAGS['#text'] = true;\n      }\n\n      /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n      if (WHOLE_DOCUMENT) {\n        addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n      }\n\n      /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n      if (ALLOWED_TAGS.table) {\n        addToSet(ALLOWED_TAGS, ['tbody']);\n        delete FORBID_TAGS.tbody;\n      }\n\n      // Prevent further manipulation of configuration.\n      // Not available in IE8, Safari 5, etc.\n      if (freeze) {\n        freeze(cfg);\n      }\n      CONFIG = cfg;\n    };\n    var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n    var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'annotation-xml']);\n\n    // Certain elements are allowed in both SVG and HTML\n    // namespace. We need to specify them explicitly\n    // so that they don't get erroneously deleted from\n    // HTML namespace.\n    var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n    /* Keep track of all possible SVG and MathML tags\n     * so that we can perform the namespace checks\n     * correctly. */\n    var ALL_SVG_TAGS = addToSet({}, svg$1);\n    addToSet(ALL_SVG_TAGS, svgFilters);\n    addToSet(ALL_SVG_TAGS, svgDisallowed);\n    var ALL_MATHML_TAGS = addToSet({}, mathMl$1);\n    addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n\n    /**\n     *\n     *\n     * @param  {Element} element a DOM element whose namespace is being checked\n     * @returns {boolean} Return false if the element has a\n     *  namespace that a spec-compliant parser would never\n     *  return. Return true otherwise.\n     */\n    var _checkValidNamespace = function _checkValidNamespace(element) {\n      var parent = getParentNode(element);\n\n      // In JSDOM, if we're inside shadow DOM, then parentNode\n      // can be null. We just simulate parent in this case.\n      if (!parent || !parent.tagName) {\n        parent = {\n          namespaceURI: NAMESPACE,\n          tagName: 'template'\n        };\n      }\n      var tagName = stringToLowerCase(element.tagName);\n      var parentTagName = stringToLowerCase(parent.tagName);\n      if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n        return false;\n      }\n      if (element.namespaceURI === SVG_NAMESPACE) {\n        // The only way to switch from HTML namespace to SVG\n        // is via <svg>. If it happens via any other tag, then\n        // it should be killed.\n        if (parent.namespaceURI === HTML_NAMESPACE) {\n          return tagName === 'svg';\n        }\n\n        // The only way to switch from MathML to SVG is via`\n        // svg if parent is either <annotation-xml> or MathML\n        // text integration points.\n        if (parent.namespaceURI === MATHML_NAMESPACE) {\n          return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n        }\n\n        // We only allow elements that are defined in SVG\n        // spec. All others are disallowed in SVG namespace.\n        return Boolean(ALL_SVG_TAGS[tagName]);\n      }\n      if (element.namespaceURI === MATHML_NAMESPACE) {\n        // The only way to switch from HTML namespace to MathML\n        // is via <math>. If it happens via any other tag, then\n        // it should be killed.\n        if (parent.namespaceURI === HTML_NAMESPACE) {\n          return tagName === 'math';\n        }\n\n        // The only way to switch from SVG to MathML is via\n        // <math> and HTML integration points\n        if (parent.namespaceURI === SVG_NAMESPACE) {\n          return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n        }\n\n        // We only allow elements that are defined in MathML\n        // spec. All others are disallowed in MathML namespace.\n        return Boolean(ALL_MATHML_TAGS[tagName]);\n      }\n      if (element.namespaceURI === HTML_NAMESPACE) {\n        // The only way to switch from SVG to HTML is via\n        // HTML integration points, and from MathML to HTML\n        // is via MathML text integration points\n        if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n          return false;\n        }\n        if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n          return false;\n        }\n\n        // We disallow tags that are specific for MathML\n        // or SVG and should never appear in HTML namespace\n        return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n      }\n\n      // For XHTML and XML documents that support custom namespaces\n      if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n        return true;\n      }\n\n      // The code should never reach this place (this means\n      // that the element somehow got namespace that is not\n      // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n      // Return false just in case.\n      return false;\n    };\n\n    /**\n     * _forceRemove\n     *\n     * @param  {Node} node a DOM node\n     */\n    var _forceRemove = function _forceRemove(node) {\n      arrayPush(DOMPurify.removed, {\n        element: node\n      });\n      try {\n        // eslint-disable-next-line unicorn/prefer-dom-node-remove\n        node.parentNode.removeChild(node);\n      } catch (_) {\n        try {\n          node.outerHTML = emptyHTML;\n        } catch (_) {\n          node.remove();\n        }\n      }\n    };\n\n    /**\n     * _removeAttribute\n     *\n     * @param  {String} name an Attribute name\n     * @param  {Node} node a DOM node\n     */\n    var _removeAttribute = function _removeAttribute(name, node) {\n      try {\n        arrayPush(DOMPurify.removed, {\n          attribute: node.getAttributeNode(name),\n          from: node\n        });\n      } catch (_) {\n        arrayPush(DOMPurify.removed, {\n          attribute: null,\n          from: node\n        });\n      }\n      node.removeAttribute(name);\n\n      // We void attribute values for unremovable \"is\"\" attributes\n      if (name === 'is' && !ALLOWED_ATTR[name]) {\n        if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n          try {\n            _forceRemove(node);\n          } catch (_) {}\n        } else {\n          try {\n            node.setAttribute(name, '');\n          } catch (_) {}\n        }\n      }\n    };\n\n    /**\n     * _initDocument\n     *\n     * @param  {String} dirty a string of dirty markup\n     * @return {Document} a DOM, filled with the dirty markup\n     */\n    var _initDocument = function _initDocument(dirty) {\n      /* Create a HTML document */\n      var doc;\n      var leadingWhitespace;\n      if (FORCE_BODY) {\n        dirty = '<remove></remove>' + dirty;\n      } else {\n        /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n        var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n        leadingWhitespace = matches && matches[0];\n      }\n      if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n        // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n        dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n      }\n      var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n      /*\n       * Use the DOMParser API by default, fallback later if needs be\n       * DOMParser not work for svg when has multiple root element.\n       */\n      if (NAMESPACE === HTML_NAMESPACE) {\n        try {\n          doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n        } catch (_) {}\n      }\n\n      /* Use createHTMLDocument in case DOMParser is not available */\n      if (!doc || !doc.documentElement) {\n        doc = implementation.createDocument(NAMESPACE, 'template', null);\n        try {\n          doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n        } catch (_) {\n          // Syntax error if dirtyPayload is invalid xml\n        }\n      }\n      var body = doc.body || doc.documentElement;\n      if (dirty && leadingWhitespace) {\n        body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n      }\n\n      /* Work on whole document or just its body */\n      if (NAMESPACE === HTML_NAMESPACE) {\n        return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n      }\n      return WHOLE_DOCUMENT ? doc.documentElement : body;\n    };\n\n    /**\n     * _createIterator\n     *\n     * @param  {Document} root document/fragment to create iterator for\n     * @return {Iterator} iterator instance\n     */\n    var _createIterator = function _createIterator(root) {\n      return createNodeIterator.call(root.ownerDocument || root, root,\n      // eslint-disable-next-line no-bitwise\n      NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null, false);\n    };\n\n    /**\n     * _isClobbered\n     *\n     * @param  {Node} elm element to check for clobbering attacks\n     * @return {Boolean} true if clobbered, false if safe\n     */\n    var _isClobbered = function _isClobbered(elm) {\n      return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n    };\n\n    /**\n     * _isNode\n     *\n     * @param  {Node} obj object to check whether it's a DOM node\n     * @return {Boolean} true is object is a DOM node\n     */\n    var _isNode = function _isNode(object) {\n      return _typeof(Node) === 'object' ? object instanceof Node : object && _typeof(object) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n    };\n\n    /**\n     * _executeHook\n     * Execute user configurable hooks\n     *\n     * @param  {String} entryPoint  Name of the hook's entry point\n     * @param  {Node} currentNode node to work on with the hook\n     * @param  {Object} data additional hook parameters\n     */\n    var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n      if (!hooks[entryPoint]) {\n        return;\n      }\n      arrayForEach(hooks[entryPoint], function (hook) {\n        hook.call(DOMPurify, currentNode, data, CONFIG);\n      });\n    };\n\n    /**\n     * _sanitizeElements\n     *\n     * @protect nodeName\n     * @protect textContent\n     * @protect removeChild\n     *\n     * @param   {Node} currentNode to check for permission to exist\n     * @return  {Boolean} true if node was killed, false if left alive\n     */\n    var _sanitizeElements = function _sanitizeElements(currentNode) {\n      var content;\n\n      /* Execute a hook if present */\n      _executeHook('beforeSanitizeElements', currentNode, null);\n\n      /* Check if element is clobbered or can clobber */\n      if (_isClobbered(currentNode)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Check if tagname contains Unicode */\n      if (regExpTest(/[\\u0080-\\uFFFF]/, currentNode.nodeName)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Now let's check the element's type and name */\n      var tagName = transformCaseFunc(currentNode.nodeName);\n\n      /* Execute a hook if present */\n      _executeHook('uponSanitizeElement', currentNode, {\n        tagName: tagName,\n        allowedTags: ALLOWED_TAGS\n      });\n\n      /* Detect mXSS attempts abusing namespace confusion */\n      if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Mitigate a problem with templates inside select */\n      if (tagName === 'select' && regExpTest(/<template/i, currentNode.innerHTML)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Remove any ocurrence of processing instructions */\n      if (currentNode.nodeType === 7) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Remove any kind of possibly harmful comments */\n      if (SAFE_FOR_XML && currentNode.nodeType === 8 && regExpTest(/<[/\\w]/g, currentNode.data)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Remove element if anything forbids its presence */\n      if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n        /* Check if we have a custom element to handle */\n        if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {\n          if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;\n          if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;\n        }\n\n        /* Keep content except for bad-listed elements */\n        if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n          var parentNode = getParentNode(currentNode) || currentNode.parentNode;\n          var childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n          if (childNodes && parentNode) {\n            var childCount = childNodes.length;\n            for (var i = childCount - 1; i >= 0; --i) {\n              var childClone = cloneNode(childNodes[i], true);\n              childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n              parentNode.insertBefore(childClone, getNextSibling(currentNode));\n            }\n          }\n        }\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Check whether element has a valid namespace */\n      if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Make sure that older browsers don't get fallback-tag mXSS */\n      if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Sanitize element content to be template-safe */\n      if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n        /* Get the element's text content */\n        content = currentNode.textContent;\n        content = stringReplace(content, MUSTACHE_EXPR$1, ' ');\n        content = stringReplace(content, ERB_EXPR$1, ' ');\n        content = stringReplace(content, TMPLIT_EXPR$1, ' ');\n        if (currentNode.textContent !== content) {\n          arrayPush(DOMPurify.removed, {\n            element: currentNode.cloneNode()\n          });\n          currentNode.textContent = content;\n        }\n      }\n\n      /* Execute a hook if present */\n      _executeHook('afterSanitizeElements', currentNode, null);\n      return false;\n    };\n\n    /**\n     * _isValidAttribute\n     *\n     * @param  {string} lcTag Lowercase tag name of containing element.\n     * @param  {string} lcName Lowercase attribute name.\n     * @param  {string} value Attribute value.\n     * @return {Boolean} Returns true if `value` is valid, otherwise false.\n     */\n    // eslint-disable-next-line complexity\n    var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n      /* Make sure attribute cannot clobber */\n      if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n        return false;\n      }\n\n      /* Allow valid data-* attributes: At least one character after \"-\"\n          (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n          XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n          We don't need to check the value; it's always URI safe. */\n      if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n        if (\n        // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n        // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n        // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n        _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n        // Alternative, second condition checks if it's an `is`-attribute, AND\n        // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n        lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n          return false;\n        }\n        /* Check value is safe. First, is attr inert? If so, is safe */\n      } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if (value) {\n        return false;\n      } else ;\n      return true;\n    };\n\n    /**\n     * _basicCustomElementCheck\n     * checks if at least one dash is included in tagName, and it's not the first char\n     * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n     * @param {string} tagName name of the tag of the node to sanitize\n     */\n    var _basicCustomElementTest = function _basicCustomElementTest(tagName) {\n      return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT$1);\n    };\n\n    /**\n     * _sanitizeAttributes\n     *\n     * @protect attributes\n     * @protect nodeName\n     * @protect removeAttribute\n     * @protect setAttribute\n     *\n     * @param  {Node} currentNode to sanitize\n     */\n    var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n      var attr;\n      var value;\n      var lcName;\n      var l;\n      /* Execute a hook if present */\n      _executeHook('beforeSanitizeAttributes', currentNode, null);\n      var attributes = currentNode.attributes;\n\n      /* Check if we have attributes; if not we might have a text node */\n      if (!attributes) {\n        return;\n      }\n      var hookEvent = {\n        attrName: '',\n        attrValue: '',\n        keepAttr: true,\n        allowedAttributes: ALLOWED_ATTR\n      };\n      l = attributes.length;\n\n      /* Go backwards over all attributes; safely remove bad ones */\n      while (l--) {\n        attr = attributes[l];\n        var _attr = attr,\n          name = _attr.name,\n          namespaceURI = _attr.namespaceURI;\n        value = name === 'value' ? attr.value : stringTrim(attr.value);\n        lcName = transformCaseFunc(name);\n\n        /* Execute a hook if present */\n        hookEvent.attrName = lcName;\n        hookEvent.attrValue = value;\n        hookEvent.keepAttr = true;\n        hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n        _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n        value = hookEvent.attrValue;\n\n        /* Work around a security issue with comments inside attributes */\n        if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n          _removeAttribute(name, currentNode);\n          continue;\n        }\n\n        /* Did the hooks approve of the attribute? */\n        if (hookEvent.forceKeepAttr) {\n          continue;\n        }\n\n        /* Remove attribute */\n        _removeAttribute(name, currentNode);\n\n        /* Did the hooks approve of the attribute? */\n        if (!hookEvent.keepAttr) {\n          continue;\n        }\n\n        /* Work around a security issue in jQuery 3.0 */\n        if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n          _removeAttribute(name, currentNode);\n          continue;\n        }\n\n        /* Sanitize attribute content to be template-safe */\n        if (SAFE_FOR_TEMPLATES) {\n          value = stringReplace(value, MUSTACHE_EXPR$1, ' ');\n          value = stringReplace(value, ERB_EXPR$1, ' ');\n          value = stringReplace(value, TMPLIT_EXPR$1, ' ');\n        }\n\n        /* Is `value` valid for this attribute? */\n        var lcTag = transformCaseFunc(currentNode.nodeName);\n        if (!_isValidAttribute(lcTag, lcName, value)) {\n          continue;\n        }\n\n        /* Full DOM Clobbering protection via namespace isolation,\n         * Prefix id and name attributes with `user-content-`\n         */\n        if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n          // Remove the attribute with this value\n          _removeAttribute(name, currentNode);\n\n          // Prefix the value and later re-create the attribute with the sanitized value\n          value = SANITIZE_NAMED_PROPS_PREFIX + value;\n        }\n\n        /* Handle attributes that require Trusted Types */\n        if (trustedTypesPolicy && _typeof(trustedTypes) === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n          if (namespaceURI) ; else {\n            switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n              case 'TrustedHTML':\n                {\n                  value = trustedTypesPolicy.createHTML(value);\n                  break;\n                }\n              case 'TrustedScriptURL':\n                {\n                  value = trustedTypesPolicy.createScriptURL(value);\n                  break;\n                }\n            }\n          }\n        }\n\n        /* Handle invalid data-* attribute set by try-catching it */\n        try {\n          if (namespaceURI) {\n            currentNode.setAttributeNS(namespaceURI, name, value);\n          } else {\n            /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n            currentNode.setAttribute(name, value);\n          }\n          if (_isClobbered(currentNode)) {\n            _forceRemove(currentNode);\n          } else {\n            arrayPop(DOMPurify.removed);\n          }\n        } catch (_) {}\n      }\n\n      /* Execute a hook if present */\n      _executeHook('afterSanitizeAttributes', currentNode, null);\n    };\n\n    /**\n     * _sanitizeShadowDOM\n     *\n     * @param  {DocumentFragment} fragment to iterate over recursively\n     */\n    var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n      var shadowNode;\n      var shadowIterator = _createIterator(fragment);\n\n      /* Execute a hook if present */\n      _executeHook('beforeSanitizeShadowDOM', fragment, null);\n      while (shadowNode = shadowIterator.nextNode()) {\n        /* Execute a hook if present */\n        _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n        /* Sanitize tags and elements */\n        if (_sanitizeElements(shadowNode)) {\n          continue;\n        }\n\n        /* Deep shadow DOM detected */\n        if (shadowNode.content instanceof DocumentFragment) {\n          _sanitizeShadowDOM(shadowNode.content);\n        }\n\n        /* Check attributes, sanitize if necessary */\n        _sanitizeAttributes(shadowNode);\n      }\n\n      /* Execute a hook if present */\n      _executeHook('afterSanitizeShadowDOM', fragment, null);\n    };\n\n    /**\n     * Sanitize\n     * Public method providing core sanitation functionality\n     *\n     * @param {String|Node} dirty string or DOM node\n     * @param {Object} configuration object\n     */\n    // eslint-disable-next-line complexity\n    DOMPurify.sanitize = function (dirty) {\n      var cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var body;\n      var importedNode;\n      var currentNode;\n      var oldNode;\n      var returnNode;\n      /* Make sure we have a string to sanitize.\n        DO NOT return early, as this will return the wrong type if\n        the user has requested a DOM object rather than a string */\n      IS_EMPTY_INPUT = !dirty;\n      if (IS_EMPTY_INPUT) {\n        dirty = '<!-->';\n      }\n\n      /* Stringify, in case dirty is an object */\n      if (typeof dirty !== 'string' && !_isNode(dirty)) {\n        if (typeof dirty.toString === 'function') {\n          dirty = dirty.toString();\n          if (typeof dirty !== 'string') {\n            throw typeErrorCreate('dirty is not a string, aborting');\n          }\n        } else {\n          throw typeErrorCreate('toString is not a function');\n        }\n      }\n\n      /* Check we can run. Otherwise fall back or ignore */\n      if (!DOMPurify.isSupported) {\n        if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n          if (typeof dirty === 'string') {\n            return window.toStaticHTML(dirty);\n          }\n          if (_isNode(dirty)) {\n            return window.toStaticHTML(dirty.outerHTML);\n          }\n        }\n        return dirty;\n      }\n\n      /* Assign config vars */\n      if (!SET_CONFIG) {\n        _parseConfig(cfg);\n      }\n\n      /* Clean up removed elements */\n      DOMPurify.removed = [];\n\n      /* Check if dirty is correctly typed for IN_PLACE */\n      if (typeof dirty === 'string') {\n        IN_PLACE = false;\n      }\n      if (IN_PLACE) {\n        /* Do some early pre-sanitization to avoid unsafe root nodes */\n        if (dirty.nodeName) {\n          var tagName = transformCaseFunc(dirty.nodeName);\n          if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n            throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n          }\n        }\n      } else if (dirty instanceof Node) {\n        /* If dirty is a DOM element, append to an empty document to avoid\n           elements being stripped by the parser */\n        body = _initDocument('<!---->');\n        importedNode = body.ownerDocument.importNode(dirty, true);\n        if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n          /* Node is already a body, use as is */\n          body = importedNode;\n        } else if (importedNode.nodeName === 'HTML') {\n          body = importedNode;\n        } else {\n          // eslint-disable-next-line unicorn/prefer-dom-node-append\n          body.appendChild(importedNode);\n        }\n      } else {\n        /* Exit directly if we have nothing to do */\n        if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n        // eslint-disable-next-line unicorn/prefer-includes\n        dirty.indexOf('<') === -1) {\n          return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n        }\n\n        /* Initialize the document to work on */\n        body = _initDocument(dirty);\n\n        /* Check we have a DOM node from the data */\n        if (!body) {\n          return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n        }\n      }\n\n      /* Remove first element node (ours) if FORCE_BODY is set */\n      if (body && FORCE_BODY) {\n        _forceRemove(body.firstChild);\n      }\n\n      /* Get node iterator */\n      var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n      /* Now start iterating over the created document */\n      while (currentNode = nodeIterator.nextNode()) {\n        /* Fix IE's strange behavior with manipulated textNodes #89 */\n        if (currentNode.nodeType === 3 && currentNode === oldNode) {\n          continue;\n        }\n\n        /* Sanitize tags and elements */\n        if (_sanitizeElements(currentNode)) {\n          continue;\n        }\n\n        /* Shadow DOM detected, sanitize it */\n        if (currentNode.content instanceof DocumentFragment) {\n          _sanitizeShadowDOM(currentNode.content);\n        }\n\n        /* Check attributes, sanitize if necessary */\n        _sanitizeAttributes(currentNode);\n        oldNode = currentNode;\n      }\n      oldNode = null;\n\n      /* If we sanitized `dirty` in-place, return it. */\n      if (IN_PLACE) {\n        return dirty;\n      }\n\n      /* Return sanitized string or DOM */\n      if (RETURN_DOM) {\n        if (RETURN_DOM_FRAGMENT) {\n          returnNode = createDocumentFragment.call(body.ownerDocument);\n          while (body.firstChild) {\n            // eslint-disable-next-line unicorn/prefer-dom-node-append\n            returnNode.appendChild(body.firstChild);\n          }\n        } else {\n          returnNode = body;\n        }\n        if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmod) {\n          /*\n            AdoptNode() is not used because internal state is not reset\n            (e.g. the past names map of a HTMLFormElement), this is safe\n            in theory but we would rather not risk another attack vector.\n            The state that is cloned by importNode() is explicitly defined\n            by the specs.\n          */\n          returnNode = importNode.call(originalDocument, returnNode, true);\n        }\n        return returnNode;\n      }\n      var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n      /* Serialize doctype if allowed */\n      if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n        serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n      }\n\n      /* Sanitize final string template-safe */\n      if (SAFE_FOR_TEMPLATES) {\n        serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$1, ' ');\n        serializedHTML = stringReplace(serializedHTML, ERB_EXPR$1, ' ');\n        serializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR$1, ' ');\n      }\n      return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n    };\n\n    /**\n     * Public method to set the configuration once\n     * setConfig\n     *\n     * @param {Object} cfg configuration object\n     */\n    DOMPurify.setConfig = function (cfg) {\n      _parseConfig(cfg);\n      SET_CONFIG = true;\n    };\n\n    /**\n     * Public method to remove the configuration\n     * clearConfig\n     *\n     */\n    DOMPurify.clearConfig = function () {\n      CONFIG = null;\n      SET_CONFIG = false;\n    };\n\n    /**\n     * Public method to check if an attribute value is valid.\n     * Uses last set config, if any. Otherwise, uses config defaults.\n     * isValidAttribute\n     *\n     * @param  {string} tag Tag name of containing element.\n     * @param  {string} attr Attribute name.\n     * @param  {string} value Attribute value.\n     * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n     */\n    DOMPurify.isValidAttribute = function (tag, attr, value) {\n      /* Initialize shared config vars if necessary. */\n      if (!CONFIG) {\n        _parseConfig({});\n      }\n      var lcTag = transformCaseFunc(tag);\n      var lcName = transformCaseFunc(attr);\n      return _isValidAttribute(lcTag, lcName, value);\n    };\n\n    /**\n     * AddHook\n     * Public method to add DOMPurify hooks\n     *\n     * @param {String} entryPoint entry point for the hook to add\n     * @param {Function} hookFunction function to execute\n     */\n    DOMPurify.addHook = function (entryPoint, hookFunction) {\n      if (typeof hookFunction !== 'function') {\n        return;\n      }\n      hooks[entryPoint] = hooks[entryPoint] || [];\n      arrayPush(hooks[entryPoint], hookFunction);\n    };\n\n    /**\n     * RemoveHook\n     * Public method to remove a DOMPurify hook at a given entryPoint\n     * (pops it from the stack of hooks if more are present)\n     *\n     * @param {String} entryPoint entry point for the hook to remove\n     * @return {Function} removed(popped) hook\n     */\n    DOMPurify.removeHook = function (entryPoint) {\n      if (hooks[entryPoint]) {\n        return arrayPop(hooks[entryPoint]);\n      }\n    };\n\n    /**\n     * RemoveHooks\n     * Public method to remove all DOMPurify hooks at a given entryPoint\n     *\n     * @param  {String} entryPoint entry point for the hooks to remove\n     */\n    DOMPurify.removeHooks = function (entryPoint) {\n      if (hooks[entryPoint]) {\n        hooks[entryPoint] = [];\n      }\n    };\n\n    /**\n     * RemoveAllHooks\n     * Public method to remove all DOMPurify hooks\n     *\n     */\n    DOMPurify.removeAllHooks = function () {\n      hooks = {};\n    };\n    return DOMPurify;\n  }\n  var purify = createDOMPurify();\n\n  return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n\n\n//# sourceURL=webpack:///./node_modules/dompurify/dist/purify.js?");

/***/ }),

/***/ "./node_modules/es-define-property/index.js":
/*!**************************************************!*\
  !*** ./node_modules/es-define-property/index.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar GetIntrinsic = __webpack_require__(/*! get-intrinsic */ \"./node_modules/get-intrinsic/index.js\");\n\n/** @type {import('.')} */\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true) || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n\n\n//# sourceURL=webpack:///./node_modules/es-define-property/index.js?");

/***/ }),

/***/ "./node_modules/es-errors/eval.js":
/*!****************************************!*\
  !*** ./node_modules/es-errors/eval.js ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n\n\n//# sourceURL=webpack:///./node_modules/es-errors/eval.js?");

/***/ }),

/***/ "./node_modules/es-errors/index.js":
/*!*****************************************!*\
  !*** ./node_modules/es-errors/index.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/** @type {import('.')} */\nmodule.exports = Error;\n\n\n//# sourceURL=webpack:///./node_modules/es-errors/index.js?");

/***/ }),

/***/ "./node_modules/es-errors/range.js":
/*!*****************************************!*\
  !*** ./node_modules/es-errors/range.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n\n\n//# sourceURL=webpack:///./node_modules/es-errors/range.js?");

/***/ }),

/***/ "./node_modules/es-errors/ref.js":
/*!***************************************!*\
  !*** ./node_modules/es-errors/ref.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n\n\n//# sourceURL=webpack:///./node_modules/es-errors/ref.js?");

/***/ }),

/***/ "./node_modules/es-errors/syntax.js":
/*!******************************************!*\
  !*** ./node_modules/es-errors/syntax.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n\n\n//# sourceURL=webpack:///./node_modules/es-errors/syntax.js?");

/***/ }),

/***/ "./node_modules/es-errors/type.js":
/*!****************************************!*\
  !*** ./node_modules/es-errors/type.js ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n\n\n//# sourceURL=webpack:///./node_modules/es-errors/type.js?");

/***/ }),

/***/ "./node_modules/es-errors/uri.js":
/*!***************************************!*\
  !*** ./node_modules/es-errors/uri.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n\n\n//# sourceURL=webpack:///./node_modules/es-errors/uri.js?");

/***/ }),

/***/ "./node_modules/exceljs/dist/exceljs.min.js":
/*!**************************************************!*\
  !*** ./node_modules/exceljs/dist/exceljs.min.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(global) {var require;var require;/*! ExcelJS 19-10-2023 */\n\n!function(e){if(true)module.exports=e();else {}}((function(){return function e(t,r,n){function i(o,a){if(!r[o]){if(!t[o]){var l=\"function\"==typeof require&&require;if(!a&&l)return require(o,!0);if(s)return s(o,!0);var c=new Error(\"Cannot find module '\"+o+\"'\");throw c.code=\"MODULE_NOT_FOUND\",c}var u=r[o]={exports:{}};t[o][0].call(u.exports,(function(e){return i(t[o][1][e]||e)}),u,u.exports,e,t,r,n)}return r[o].exports}for(var s=\"function\"==typeof require&&require,o=0;o<n.length;o++)i(n[o]);return i}({1:[function(e,t,r){\"use strict\";const n=e(\"fs\"),i=e(\"fast-csv\"),s=e(\"dayjs/plugin/customParseFormat\"),o=e(\"dayjs/plugin/utc\"),a=e(\"dayjs\").extend(s).extend(o),l=e(\"../utils/stream-buf\"),{fs:{exists:c}}=e(\"../utils/utils\"),u={true:!0,false:!1,\"#N/A\":{error:\"#N/A\"},\"#REF!\":{error:\"#REF!\"},\"#NAME?\":{error:\"#NAME?\"},\"#DIV/0!\":{error:\"#DIV/0!\"},\"#NULL!\":{error:\"#NULL!\"},\"#VALUE!\":{error:\"#VALUE!\"},\"#NUM!\":{error:\"#NUM!\"}};t.exports=class{constructor(e){this.workbook=e,this.worksheet=null}async readFile(e,t){if(t=t||{},!await c(e))throw new Error(\"File not found: \"+e);const r=n.createReadStream(e),i=await this.read(r,t);return r.close(),i}read(e,t){return t=t||{},new Promise((r,n)=>{const s=this.workbook.addWorksheet(t.sheetName),o=t.dateFormats||[\"YYYY-MM-DD[T]HH:mm:ssZ\",\"YYYY-MM-DD[T]HH:mm:ss\",\"MM-DD-YYYY\",\"YYYY-MM-DD\"],l=t.map||function(e){if(\"\"===e)return null;const t=Number(e);if(!Number.isNaN(t)&&t!==1/0)return t;const r=o.reduce((t,r)=>{if(t)return t;const n=a(e,r,!0);return n.isValid()?n:null},null);if(r)return new Date(r.valueOf());const n=u[e];return void 0!==n?n:e},c=i.parse(t.parserOptions).on(\"data\",e=>{s.addRow(e.map(l))}).on(\"end\",()=>{c.emit(\"worksheet\",s)});c.on(\"worksheet\",r).on(\"error\",n),e.pipe(c)})}createInputStream(){throw new Error(\"`CSV#createInputStream` is deprecated. You should use `CSV#read` instead. This method will be removed in version 5.0. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md\")}write(e,t){return new Promise((r,n)=>{t=t||{};const s=this.workbook.getWorksheet(t.sheetName||t.sheetId),o=i.format(t.formatterOptions);e.on(\"finish\",()=>{r()}),o.on(\"error\",n),o.pipe(e);const{dateFormat:l,dateUTC:c}=t,u=t.map||(e=>{if(e){if(e.text||e.hyperlink)return e.hyperlink||e.text||\"\";if(e.formula||e.result)return e.result||\"\";if(e instanceof Date)return l?c?a.utc(e).format(l):a(e).format(l):c?a.utc(e).format():a(e).format();if(e.error)return e.error;if(\"object\"==typeof e)return JSON.stringify(e)}return e}),h=void 0===t.includeEmptyRows||t.includeEmptyRows;let f=1;s&&s.eachRow((e,t)=>{if(h)for(;f++<t-1;)o.write([]);const{values:r}=e;r.shift(),o.write(r.map(u)),f=t}),o.end()})}writeFile(e,t){const r={encoding:(t=t||{}).encoding||\"utf8\"},i=n.createWriteStream(e,r);return this.write(i,t)}async writeBuffer(e){const t=new l;return await this.write(t,e),t.read()}}},{\"../utils/stream-buf\":24,\"../utils/utils\":27,dayjs:391,\"dayjs/plugin/customParseFormat\":392,\"dayjs/plugin/utc\":393,\"fast-csv\":424,fs:216}],2:[function(e,t,r){\"use strict\";const n=e(\"../utils/col-cache\");class i{constructor(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(this.worksheet=e,t)if(\"string\"==typeof t){const e=n.decodeAddress(t);this.nativeCol=e.col+r,this.nativeColOff=0,this.nativeRow=e.row+r,this.nativeRowOff=0}else void 0!==t.nativeCol?(this.nativeCol=t.nativeCol||0,this.nativeColOff=t.nativeColOff||0,this.nativeRow=t.nativeRow||0,this.nativeRowOff=t.nativeRowOff||0):void 0!==t.col?(this.col=t.col+r,this.row=t.row+r):(this.nativeCol=0,this.nativeColOff=0,this.nativeRow=0,this.nativeRowOff=0);else this.nativeCol=0,this.nativeColOff=0,this.nativeRow=0,this.nativeRowOff=0}static asInstance(e){return e instanceof i||null==e?e:new i(e)}get col(){return this.nativeCol+Math.min(this.colWidth-1,this.nativeColOff)/this.colWidth}set col(e){this.nativeCol=Math.floor(e),this.nativeColOff=Math.floor((e-this.nativeCol)*this.colWidth)}get row(){return this.nativeRow+Math.min(this.rowHeight-1,this.nativeRowOff)/this.rowHeight}set row(e){this.nativeRow=Math.floor(e),this.nativeRowOff=Math.floor((e-this.nativeRow)*this.rowHeight)}get colWidth(){return this.worksheet&&this.worksheet.getColumn(this.nativeCol+1)&&this.worksheet.getColumn(this.nativeCol+1).isCustomWidth?Math.floor(1e4*this.worksheet.getColumn(this.nativeCol+1).width):64e4}get rowHeight(){return this.worksheet&&this.worksheet.getRow(this.nativeRow+1)&&this.worksheet.getRow(this.nativeRow+1).height?Math.floor(1e4*this.worksheet.getRow(this.nativeRow+1).height):18e4}get model(){return{nativeCol:this.nativeCol,nativeColOff:this.nativeColOff,nativeRow:this.nativeRow,nativeRowOff:this.nativeRowOff}}set model(e){this.nativeCol=e.nativeCol,this.nativeColOff=e.nativeColOff,this.nativeRow=e.nativeRow,this.nativeRowOff=e.nativeRowOff}}t.exports=i},{\"../utils/col-cache\":19}],3:[function(e,t,r){\"use strict\";const n=e(\"../utils/col-cache\"),i=e(\"../utils/under-dash\"),s=e(\"./enums\"),{slideFormula:o}=e(\"../utils/shared-formula\"),a=e(\"./note\");class l{constructor(e,t,r){if(!e||!t)throw new Error(\"A Cell needs a Row\");this._row=e,this._column=t,n.validateAddress(r),this._address=r,this._value=c.create(l.Types.Null,this),this.style=this._mergeStyle(e.style,t.style,{}),this._mergeCount=0}get worksheet(){return this._row.worksheet}get workbook(){return this._row.worksheet.workbook}destroy(){delete this.style,delete this._value,delete this._row,delete this._column,delete this._address}get numFmt(){return this.style.numFmt}set numFmt(e){this.style.numFmt=e}get font(){return this.style.font}set font(e){this.style.font=e}get alignment(){return this.style.alignment}set alignment(e){this.style.alignment=e}get border(){return this.style.border}set border(e){this.style.border=e}get fill(){return this.style.fill}set fill(e){this.style.fill=e}get protection(){return this.style.protection}set protection(e){this.style.protection=e}_mergeStyle(e,t,r){const n=e&&e.numFmt||t&&t.numFmt;n&&(r.numFmt=n);const i=e&&e.font||t&&t.font;i&&(r.font=i);const s=e&&e.alignment||t&&t.alignment;s&&(r.alignment=s);const o=e&&e.border||t&&t.border;o&&(r.border=o);const a=e&&e.fill||t&&t.fill;a&&(r.fill=a);const l=e&&e.protection||t&&t.protection;return l&&(r.protection=l),r}get address(){return this._address}get row(){return this._row.number}get col(){return this._column.number}get $col$row(){return`$${this._column.letter}$${this.row}`}get type(){return this._value.type}get effectiveType(){return this._value.effectiveType}toCsvString(){return this._value.toCsvString()}addMergeRef(){this._mergeCount++}releaseMergeRef(){this._mergeCount--}get isMerged(){return this._mergeCount>0||this.type===l.Types.Merge}merge(e,t){this._value.release(),this._value=c.create(l.Types.Merge,this,e),t||(this.style=e.style)}unmerge(){this.type===l.Types.Merge&&(this._value.release(),this._value=c.create(l.Types.Null,this),this.style=this._mergeStyle(this._row.style,this._column.style,{}))}isMergedTo(e){return this._value.type===l.Types.Merge&&this._value.isMergedTo(e)}get master(){return this.type===l.Types.Merge?this._value.master:this}get isHyperlink(){return this._value.type===l.Types.Hyperlink}get hyperlink(){return this._value.hyperlink}get value(){return this._value.value}set value(e){this.type!==l.Types.Merge?(this._value.release(),this._value=c.create(c.getType(e),this,e)):this._value.master.value=e}get note(){return this._comment&&this._comment.note}set note(e){this._comment=new a(e)}get text(){return this._value.toString()}get html(){return i.escapeHtml(this.text)}toString(){return this.text}_upgradeToHyperlink(e){this.type===l.Types.String&&(this._value=c.create(l.Types.Hyperlink,this,{text:this._value.value,hyperlink:e}))}get formula(){return this._value.formula}get result(){return this._value.result}get formulaType(){return this._value.formulaType}get fullAddress(){const{worksheet:e}=this._row;return{sheetName:e.name,address:this.address,row:this.row,col:this.col}}get name(){return this.names[0]}set name(e){this.names=[e]}get names(){return this.workbook.definedNames.getNamesEx(this.fullAddress)}set names(e){const{definedNames:t}=this.workbook;t.removeAllNames(this.fullAddress),e.forEach(e=>{t.addEx(this.fullAddress,e)})}addName(e){this.workbook.definedNames.addEx(this.fullAddress,e)}removeName(e){this.workbook.definedNames.removeEx(this.fullAddress,e)}removeAllNames(){this.workbook.definedNames.removeAllNames(this.fullAddress)}get _dataValidations(){return this.worksheet.dataValidations}get dataValidation(){return this._dataValidations.find(this.address)}set dataValidation(e){this._dataValidations.add(this.address,e)}get model(){const{model:e}=this._value;return e.style=this.style,this._comment&&(e.comment=this._comment.model),e}set model(e){if(this._value.release(),this._value=c.create(e.type,this),this._value.model=e,e.comment)switch(e.comment.type){case\"note\":this._comment=a.fromModel(e.comment)}e.style?this.style=e.style:this.style={}}}l.Types=s.ValueType;const c={getType:e=>null==e?l.Types.Null:e instanceof String||\"string\"==typeof e?l.Types.String:\"number\"==typeof e?l.Types.Number:\"boolean\"==typeof e?l.Types.Boolean:e instanceof Date?l.Types.Date:e.text&&e.hyperlink?l.Types.Hyperlink:e.formula||e.sharedFormula?l.Types.Formula:e.richText?l.Types.RichText:e.sharedString?l.Types.SharedString:e.error?l.Types.Error:l.Types.JSON,types:[{t:l.Types.Null,f:class{constructor(e){this.model={address:e.address,type:l.Types.Null}}get value(){return null}set value(e){}get type(){return l.Types.Null}get effectiveType(){return l.Types.Null}get address(){return this.model.address}set address(e){this.model.address=e}toCsvString(){return\"\"}release(){}toString(){return\"\"}}},{t:l.Types.Number,f:class{constructor(e,t){this.model={address:e.address,type:l.Types.Number,value:t}}get value(){return this.model.value}set value(e){this.model.value=e}get type(){return l.Types.Number}get effectiveType(){return l.Types.Number}get address(){return this.model.address}set address(e){this.model.address=e}toCsvString(){return this.model.value.toString()}release(){}toString(){return this.model.value.toString()}}},{t:l.Types.String,f:class{constructor(e,t){this.model={address:e.address,type:l.Types.String,value:t}}get value(){return this.model.value}set value(e){this.model.value=e}get type(){return l.Types.String}get effectiveType(){return l.Types.String}get address(){return this.model.address}set address(e){this.model.address=e}toCsvString(){return`\"${this.model.value.replace(/\"/g,'\"\"')}\"`}release(){}toString(){return this.model.value}}},{t:l.Types.Date,f:class{constructor(e,t){this.model={address:e.address,type:l.Types.Date,value:t}}get value(){return this.model.value}set value(e){this.model.value=e}get type(){return l.Types.Date}get effectiveType(){return l.Types.Date}get address(){return this.model.address}set address(e){this.model.address=e}toCsvString(){return this.model.value.toISOString()}release(){}toString(){return this.model.value.toString()}}},{t:l.Types.Hyperlink,f:class{constructor(e,t){this.model={address:e.address,type:l.Types.Hyperlink,text:t?t.text:void 0,hyperlink:t?t.hyperlink:void 0},t&&t.tooltip&&(this.model.tooltip=t.tooltip)}get value(){const e={text:this.model.text,hyperlink:this.model.hyperlink};return this.model.tooltip&&(e.tooltip=this.model.tooltip),e}set value(e){this.model={text:e.text,hyperlink:e.hyperlink},e.tooltip&&(this.model.tooltip=e.tooltip)}get text(){return this.model.text}set text(e){this.model.text=e}get hyperlink(){return this.model.hyperlink}set hyperlink(e){this.model.hyperlink=e}get type(){return l.Types.Hyperlink}get effectiveType(){return l.Types.Hyperlink}get address(){return this.model.address}set address(e){this.model.address=e}toCsvString(){return this.model.hyperlink}release(){}toString(){return this.model.text}}},{t:l.Types.Formula,f:class{constructor(e,t){this.cell=e,this.model={address:e.address,type:l.Types.Formula,shareType:t?t.shareType:void 0,ref:t?t.ref:void 0,formula:t?t.formula:void 0,sharedFormula:t?t.sharedFormula:void 0,result:t?t.result:void 0}}_copyModel(e){const t={},r=r=>{const n=e[r];n&&(t[r]=n)};return r(\"formula\"),r(\"result\"),r(\"ref\"),r(\"shareType\"),r(\"sharedFormula\"),t}get value(){return this._copyModel(this.model)}set value(e){this.model=this._copyModel(e)}validate(e){switch(c.getType(e)){case l.Types.Null:case l.Types.String:case l.Types.Number:case l.Types.Date:break;case l.Types.Hyperlink:case l.Types.Formula:default:throw new Error(\"Cannot process that type of result value\")}}get dependencies(){return{ranges:this.formula.match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}:[A-Z]{1,3}\\d{1,4}/g),cells:this.formula.replace(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}:[A-Z]{1,3}\\d{1,4}/g,\"\").match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}/g)}}get formula(){return this.model.formula||this._getTranslatedFormula()}set formula(e){this.model.formula=e}get formulaType(){return this.model.formula?s.FormulaType.Master:this.model.sharedFormula?s.FormulaType.Shared:s.FormulaType.None}get result(){return this.model.result}set result(e){this.model.result=e}get type(){return l.Types.Formula}get effectiveType(){const e=this.model.result;return null==e?s.ValueType.Null:e instanceof String||\"string\"==typeof e?s.ValueType.String:\"number\"==typeof e?s.ValueType.Number:e instanceof Date?s.ValueType.Date:e.text&&e.hyperlink?s.ValueType.Hyperlink:e.formula?s.ValueType.Formula:s.ValueType.Null}get address(){return this.model.address}set address(e){this.model.address=e}_getTranslatedFormula(){if(!this._translatedFormula&&this.model.sharedFormula){const{worksheet:e}=this.cell,t=e.findCell(this.model.sharedFormula);this._translatedFormula=t&&o(t.formula,t.address,this.model.address)}return this._translatedFormula}toCsvString(){return\"\"+(this.model.result||\"\")}release(){}toString(){return this.model.result?this.model.result.toString():\"\"}}},{t:l.Types.Merge,f:class{constructor(e,t){this.model={address:e.address,type:l.Types.Merge,master:t?t.address:void 0},this._master=t,t&&t.addMergeRef()}get value(){return this._master.value}set value(e){e instanceof l?(this._master&&this._master.releaseMergeRef(),e.addMergeRef(),this._master=e):this._master.value=e}isMergedTo(e){return e===this._master}get master(){return this._master}get type(){return l.Types.Merge}get effectiveType(){return this._master.effectiveType}get address(){return this.model.address}set address(e){this.model.address=e}toCsvString(){return\"\"}release(){this._master.releaseMergeRef()}toString(){return this.value.toString()}}},{t:l.Types.JSON,f:class{constructor(e,t){this.model={address:e.address,type:l.Types.String,value:JSON.stringify(t),rawValue:t}}get value(){return this.model.rawValue}set value(e){this.model.rawValue=e,this.model.value=JSON.stringify(e)}get type(){return l.Types.String}get effectiveType(){return l.Types.String}get address(){return this.model.address}set address(e){this.model.address=e}toCsvString(){return this.model.value}release(){}toString(){return this.model.value}}},{t:l.Types.SharedString,f:class{constructor(e,t){this.model={address:e.address,type:l.Types.SharedString,value:t}}get value(){return this.model.value}set value(e){this.model.value=e}get type(){return l.Types.SharedString}get effectiveType(){return l.Types.SharedString}get address(){return this.model.address}set address(e){this.model.address=e}toCsvString(){return this.model.value.toString()}release(){}toString(){return this.model.value.toString()}}},{t:l.Types.RichText,f:class{constructor(e,t){this.model={address:e.address,type:l.Types.String,value:t}}get value(){return this.model.value}set value(e){this.model.value=e}toString(){return this.model.value.richText.map(e=>e.text).join(\"\")}get type(){return l.Types.RichText}get effectiveType(){return l.Types.RichText}get address(){return this.model.address}set address(e){this.model.address=e}toCsvString(){return`\"${this.text.replace(/\"/g,'\"\"')}\"`}release(){}}},{t:l.Types.Boolean,f:class{constructor(e,t){this.model={address:e.address,type:l.Types.Boolean,value:t}}get value(){return this.model.value}set value(e){this.model.value=e}get type(){return l.Types.Boolean}get effectiveType(){return l.Types.Boolean}get address(){return this.model.address}set address(e){this.model.address=e}toCsvString(){return this.model.value?1:0}release(){}toString(){return this.model.value.toString()}}},{t:l.Types.Error,f:class{constructor(e,t){this.model={address:e.address,type:l.Types.Error,value:t}}get value(){return this.model.value}set value(e){this.model.value=e}get type(){return l.Types.Error}get effectiveType(){return l.Types.Error}get address(){return this.model.address}set address(e){this.model.address=e}toCsvString(){return this.toString()}release(){}toString(){return this.model.value.error.toString()}}}].reduce((e,t)=>(e[t.t]=t.f,e),[]),create(e,t,r){const n=this.types[e];if(!n)throw new Error(\"Could not create Value of type \"+e);return new n(t,r)}};t.exports=l},{\"../utils/col-cache\":19,\"../utils/shared-formula\":23,\"../utils/under-dash\":26,\"./enums\":7,\"./note\":9}],4:[function(e,t,r){\"use strict\";const n=e(\"../utils/under-dash\"),i=e(\"./enums\"),s=e(\"../utils/col-cache\");class o{constructor(e,t,r){this._worksheet=e,this._number=t,!1!==r&&(this.defn=r)}get number(){return this._number}get worksheet(){return this._worksheet}get letter(){return s.n2l(this._number)}get isCustomWidth(){return void 0!==this.width&&9!==this.width}get defn(){return{header:this._header,key:this.key,width:this.width,style:this.style,hidden:this.hidden,outlineLevel:this.outlineLevel}}set defn(e){e?(this.key=e.key,this.width=void 0!==e.width?e.width:9,this.outlineLevel=e.outlineLevel,e.style?this.style=e.style:this.style={},this.header=e.header,this._hidden=!!e.hidden):(delete this._header,delete this._key,delete this.width,this.style={},this.outlineLevel=0)}get headers(){return this._header&&this._header instanceof Array?this._header:[this._header]}get header(){return this._header}set header(e){void 0!==e?(this._header=e,this.headers.forEach((e,t)=>{this._worksheet.getCell(t+1,this.number).value=e})):this._header=void 0}get key(){return this._key}set key(e){(this._key&&this._worksheet.getColumnKey(this._key))===this&&this._worksheet.deleteColumnKey(this._key),this._key=e,e&&this._worksheet.setColumnKey(this._key,this)}get hidden(){return!!this._hidden}set hidden(e){this._hidden=e}get outlineLevel(){return this._outlineLevel||0}set outlineLevel(e){this._outlineLevel=e}get collapsed(){return!!(this._outlineLevel&&this._outlineLevel>=this._worksheet.properties.outlineLevelCol)}toString(){return JSON.stringify({key:this.key,width:this.width,headers:this.headers.length?this.headers:void 0})}equivalentTo(e){return this.width===e.width&&this.hidden===e.hidden&&this.outlineLevel===e.outlineLevel&&n.isEqual(this.style,e.style)}get isDefault(){if(this.isCustomWidth)return!1;if(this.hidden)return!1;if(this.outlineLevel)return!1;const e=this.style;return!e||!(e.font||e.numFmt||e.alignment||e.border||e.fill||e.protection)}get headerCount(){return this.headers.length}eachCell(e,t){const r=this.number;t||(t=e,e=null),this._worksheet.eachRow(e,(e,n)=>{t(e.getCell(r),n)})}get values(){const e=[];return this.eachCell((t,r)=>{t&&t.type!==i.ValueType.Null&&(e[r]=t.value)}),e}set values(e){if(!e)return;const t=this.number;let r=0;e.hasOwnProperty(\"0\")&&(r=1),e.forEach((e,n)=>{this._worksheet.getCell(n+r,t).value=e})}_applyStyle(e,t){return this.style[e]=t,this.eachCell(r=>{r[e]=t}),t}get numFmt(){return this.style.numFmt}set numFmt(e){this._applyStyle(\"numFmt\",e)}get font(){return this.style.font}set font(e){this._applyStyle(\"font\",e)}get alignment(){return this.style.alignment}set alignment(e){this._applyStyle(\"alignment\",e)}get protection(){return this.style.protection}set protection(e){this._applyStyle(\"protection\",e)}get border(){return this.style.border}set border(e){this._applyStyle(\"border\",e)}get fill(){return this.style.fill}set fill(e){this._applyStyle(\"fill\",e)}static toModel(e){const t=[];let r=null;return e&&e.forEach((e,n)=>{e.isDefault?r&&(r=null):r&&e.equivalentTo(r)?r.max=n+1:(r={min:n+1,max:n+1,width:void 0!==e.width?e.width:9,style:e.style,isCustomWidth:e.isCustomWidth,hidden:e.hidden,outlineLevel:e.outlineLevel,collapsed:e.collapsed},t.push(r))}),t.length?t:void 0}static fromModel(e,t){const r=[];let n=1,i=0;for(t=(t=t||[]).sort((function(e,t){return e.min-t.min}));i<t.length;){const s=t[i++];for(;n<s.min;)r.push(new o(e,n++));for(;n<=s.max;)r.push(new o(e,n++,s))}return r.length?r:null}}t.exports=o},{\"../utils/col-cache\":19,\"../utils/under-dash\":26,\"./enums\":7}],5:[function(e,t,r){\"use strict\";t.exports=class{constructor(e){this.model=e||{}}add(e,t){return this.model[e]=t}find(e){return this.model[e]}remove(e){this.model[e]=void 0}}},{}],6:[function(e,t,r){\"use strict\";const n=e(\"../utils/under-dash\"),i=e(\"../utils/col-cache\"),s=e(\"../utils/cell-matrix\"),o=e(\"./range\"),a=/[$](\\w+)[$](\\d+)(:[$](\\w+)[$](\\d+))?/;t.exports=class{constructor(){this.matrixMap={}}getMatrix(e){return this.matrixMap[e]||(this.matrixMap[e]=new s)}add(e,t){const r=i.decodeEx(e);this.addEx(r,t)}addEx(e,t){const r=this.getMatrix(t);if(e.top)for(let t=e.left;t<=e.right;t++)for(let n=e.top;n<=e.bottom;n++){const s={sheetName:e.sheetName,address:i.n2l(t)+n,row:n,col:t};r.addCellEx(s)}else r.addCellEx(e)}remove(e,t){const r=i.decodeEx(e);this.removeEx(r,t)}removeEx(e,t){this.getMatrix(t).removeCellEx(e)}removeAllNames(e){n.each(this.matrixMap,t=>{t.removeCellEx(e)})}forEach(e){n.each(this.matrixMap,(t,r)=>{t.forEach(t=>{e(r,t)})})}getNames(e){return this.getNamesEx(i.decodeEx(e))}getNamesEx(e){return n.map(this.matrixMap,(t,r)=>t.findCellEx(e)&&r).filter(Boolean)}_explore(e,t){t.mark=!1;const{sheetName:r}=t,n=new o(t.row,t.col,t.row,t.col,r);let i,s;function a(i,s){const o=e.findCellAt(r,i,t.col);return!(!o||!o.mark)&&(n[s]=i,o.mark=!1,!0)}for(s=t.row-1;a(s,\"top\");s--);for(s=t.row+1;a(s,\"bottom\");s++);function l(t,i){const o=[];for(s=n.top;s<=n.bottom;s++){const n=e.findCellAt(r,s,t);if(!n||!n.mark)return!1;o.push(n)}n[i]=t;for(let e=0;e<o.length;e++)o[e].mark=!1;return!0}for(i=t.col-1;l(i,\"left\");i--);for(i=t.col+1;l(i,\"right\");i++);return n}getRanges(e,t){if(!(t=t||this.matrixMap[e]))return{name:e,ranges:[]};t.forEach(e=>{e.mark=!0});return{name:e,ranges:t.map(e=>e.mark&&this._explore(t,e)).filter(Boolean).map(e=>e.$shortRange)}}normaliseMatrix(e,t){e.forEachInSheet(t,(e,t,r)=>{e&&(e.row===t&&e.col===r||(e.row=t,e.col=r,e.address=i.n2l(r)+t))})}spliceRows(e,t,r,i){n.each(this.matrixMap,n=>{n.spliceRows(e,t,r,i),this.normaliseMatrix(n,e)})}spliceColumns(e,t,r,i){n.each(this.matrixMap,n=>{n.spliceColumns(e,t,r,i),this.normaliseMatrix(n,e)})}get model(){return n.map(this.matrixMap,(e,t)=>this.getRanges(t,e)).filter(e=>e.ranges.length)}set model(e){const t=this.matrixMap={};e.forEach(e=>{const r=t[e.name]=new s;e.ranges.forEach(e=>{a.test(e.split(\"!\").pop()||\"\")&&r.addCell(e)})})}}},{\"../utils/cell-matrix\":18,\"../utils/col-cache\":19,\"../utils/under-dash\":26,\"./range\":10}],7:[function(e,t,r){\"use strict\";t.exports={ValueType:{Null:0,Merge:1,Number:2,String:3,Date:4,Hyperlink:5,Formula:6,SharedString:7,RichText:8,Boolean:9,Error:10},FormulaType:{None:0,Master:1,Shared:2},RelationshipType:{None:0,OfficeDocument:1,Worksheet:2,CalcChain:3,SharedStrings:4,Styles:5,Theme:6,Hyperlink:7},DocumentType:{Xlsx:1},ReadingOrder:{LeftToRight:1,RightToLeft:2},ErrorValue:{NotApplicable:\"#N/A\",Ref:\"#REF!\",Name:\"#NAME?\",DivZero:\"#DIV/0!\",Null:\"#NULL!\",Value:\"#VALUE!\",Num:\"#NUM!\"}}},{}],8:[function(e,t,r){\"use strict\";const n=e(\"../utils/col-cache\"),i=e(\"./anchor\");t.exports=class{constructor(e,t){this.worksheet=e,this.model=t}get model(){switch(this.type){case\"background\":return{type:this.type,imageId:this.imageId};case\"image\":return{type:this.type,imageId:this.imageId,hyperlinks:this.range.hyperlinks,range:{tl:this.range.tl.model,br:this.range.br&&this.range.br.model,ext:this.range.ext,editAs:this.range.editAs}};default:throw new Error(\"Invalid Image Type\")}}set model(e){let{type:t,imageId:r,range:s,hyperlinks:o}=e;if(this.type=t,this.imageId=r,\"image\"===t)if(\"string\"==typeof s){const e=n.decode(s);this.range={tl:new i(this.worksheet,{col:e.left,row:e.top},-1),br:new i(this.worksheet,{col:e.right,row:e.bottom},0),editAs:\"oneCell\"}}else this.range={tl:new i(this.worksheet,s.tl,0),br:s.br&&new i(this.worksheet,s.br,0),ext:s.ext,editAs:s.editAs,hyperlinks:o||s.hyperlinks}}}},{\"../utils/col-cache\":19,\"./anchor\":2}],9:[function(e,t,r){\"use strict\";const n=e(\"../utils/under-dash\");class i{constructor(e){this.note=e}get model(){let e=null;switch(typeof this.note){case\"string\":e={type:\"note\",note:{texts:[{text:this.note}]}};break;default:e={type:\"note\",note:this.note}}return n.deepMerge({},i.DEFAULT_CONFIGS,e)}set model(e){const{note:t}=e,{texts:r}=t;1===r.length&&1===Object.keys(r[0]).length?this.note=r[0].text:this.note=t}static fromModel(e){const t=new i;return t.model=e,t}}i.DEFAULT_CONFIGS={note:{margins:{insetmode:\"auto\",inset:[.13,.13,.25,.25]},protection:{locked:\"True\",lockText:\"True\"},editAs:\"absolute\"}},t.exports=i},{\"../utils/under-dash\":26}],10:[function(e,t,r){\"use strict\";const n=e(\"../utils/col-cache\");class i{constructor(){this.decode(arguments)}setTLBR(e,t,r,i,s){if(arguments.length<4){const i=n.decodeAddress(e),o=n.decodeAddress(t);this.model={top:Math.min(i.row,o.row),left:Math.min(i.col,o.col),bottom:Math.max(i.row,o.row),right:Math.max(i.col,o.col),sheetName:r},this.setTLBR(i.row,i.col,o.row,o.col,s)}else this.model={top:Math.min(e,r),left:Math.min(t,i),bottom:Math.max(e,r),right:Math.max(t,i),sheetName:s}}decode(e){switch(e.length){case 5:this.setTLBR(e[0],e[1],e[2],e[3],e[4]);break;case 4:this.setTLBR(e[0],e[1],e[2],e[3]);break;case 3:this.setTLBR(e[0],e[1],e[2]);break;case 2:this.setTLBR(e[0],e[1]);break;case 1:{const t=e[0];if(t instanceof i)this.model={top:t.model.top,left:t.model.left,bottom:t.model.bottom,right:t.model.right,sheetName:t.sheetName};else if(t instanceof Array)this.decode(t);else if(t.top&&t.left&&t.bottom&&t.right)this.model={top:t.top,left:t.left,bottom:t.bottom,right:t.right,sheetName:t.sheetName};else{const e=n.decodeEx(t);e.top?this.model={top:e.top,left:e.left,bottom:e.bottom,right:e.right,sheetName:e.sheetName}:this.model={top:e.row,left:e.col,bottom:e.row,right:e.col,sheetName:e.sheetName}}break}case 0:this.model={top:0,left:0,bottom:0,right:0};break;default:throw new Error(\"Invalid number of arguments to _getDimensions() - \"+e.length)}}get top(){return this.model.top||1}set top(e){this.model.top=e}get left(){return this.model.left||1}set left(e){this.model.left=e}get bottom(){return this.model.bottom||1}set bottom(e){this.model.bottom=e}get right(){return this.model.right||1}set right(e){this.model.right=e}get sheetName(){return this.model.sheetName}set sheetName(e){this.model.sheetName=e}get _serialisedSheetName(){const{sheetName:e}=this.model;return e?/^[a-zA-Z0-9]*$/.test(e)?e+\"!\":`'${e}'!`:\"\"}expand(e,t,r,n){(!this.model.top||e<this.top)&&(this.top=e),(!this.model.left||t<this.left)&&(this.left=t),(!this.model.bottom||r>this.bottom)&&(this.bottom=r),(!this.model.right||n>this.right)&&(this.right=n)}expandRow(e){if(e){const{dimensions:t,number:r}=e;t&&this.expand(r,t.min,r,t.max)}}expandToAddress(e){const t=n.decodeEx(e);this.expand(t.row,t.col,t.row,t.col)}get tl(){return n.n2l(this.left)+this.top}get $t$l(){return`$${n.n2l(this.left)}$${this.top}`}get br(){return n.n2l(this.right)+this.bottom}get $b$r(){return`$${n.n2l(this.right)}$${this.bottom}`}get range(){return`${this._serialisedSheetName+this.tl}:${this.br}`}get $range(){return`${this._serialisedSheetName+this.$t$l}:${this.$b$r}`}get shortRange(){return this.count>1?this.range:this._serialisedSheetName+this.tl}get $shortRange(){return this.count>1?this.$range:this._serialisedSheetName+this.$t$l}get count(){return(1+this.bottom-this.top)*(1+this.right-this.left)}toString(){return this.range}intersects(e){return(!e.sheetName||!this.sheetName||e.sheetName===this.sheetName)&&(!(e.bottom<this.top)&&(!(e.top>this.bottom)&&(!(e.right<this.left)&&!(e.left>this.right))))}contains(e){const t=n.decodeEx(e);return this.containsEx(t)}containsEx(e){return(!e.sheetName||!this.sheetName||e.sheetName===this.sheetName)&&(e.row>=this.top&&e.row<=this.bottom&&e.col>=this.left&&e.col<=this.right)}forEachAddress(e){for(let t=this.left;t<=this.right;t++)for(let r=this.top;r<=this.bottom;r++)e(n.encodeAddress(r,t),r,t)}}t.exports=i},{\"../utils/col-cache\":19}],11:[function(e,t,r){\"use strict\";const n=e(\"../utils/under-dash\"),i=e(\"./enums\"),s=e(\"../utils/col-cache\"),o=e(\"./cell\");t.exports=class{constructor(e,t){this._worksheet=e,this._number=t,this._cells=[],this.style={},this.outlineLevel=0}get number(){return this._number}get worksheet(){return this._worksheet}commit(){this._worksheet._commitRow(this)}destroy(){delete this._worksheet,delete this._cells,delete this.style}findCell(e){return this._cells[e-1]}getCellEx(e){let t=this._cells[e.col-1];if(!t){const r=this._worksheet.getColumn(e.col);t=new o(this,r,e.address),this._cells[e.col-1]=t}return t}getCell(e){if(\"string\"==typeof e){const t=this._worksheet.getColumnKey(e);e=t?t.number:s.l2n(e)}return this._cells[e-1]||this.getCellEx({address:s.encodeAddress(this._number,e),row:this._number,col:e})}splice(e,t){const r=e+t;for(var n=arguments.length,i=new Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];const o=i.length-t,a=this._cells.length;let l,c,u;if(o<0)for(l=e+i.length;l<=a;l++)u=this._cells[l-1],c=this._cells[l-o-1],c?(u=this.getCell(l),u.value=c.value,u.style=c.style,u._comment=c._comment):u&&(u.value=null,u.style={},u._comment=void 0);else if(o>0)for(l=a;l>=r;l--)c=this._cells[l-1],c?(u=this.getCell(l+o),u.value=c.value,u.style=c.style,u._comment=c._comment):this._cells[l+o-1]=void 0;for(l=0;l<i.length;l++)u=this.getCell(e+l),u.value=i[l],u.style={},u._comment=void 0}eachCell(e,t){if(t||(t=e,e=null),e&&e.includeEmpty){const e=this._cells.length;for(let r=1;r<=e;r++)t(this.getCell(r),r)}else this._cells.forEach((e,r)=>{e&&e.type!==i.ValueType.Null&&t(e,r+1)})}addPageBreak(e,t){const r=this._worksheet,n=Math.max(0,e-1)||0,i=Math.max(0,t-1)||16838,s={id:this._number,max:i,man:1};n&&(s.min=n),r.rowBreaks.push(s)}get values(){const e=[];return this._cells.forEach(t=>{t&&t.type!==i.ValueType.Null&&(e[t.col]=t.value)}),e}set values(e){if(this._cells=[],e)if(e instanceof Array){let t=0;e.hasOwnProperty(\"0\")&&(t=1),e.forEach((e,r)=>{void 0!==e&&(this.getCellEx({address:s.encodeAddress(this._number,r+t),row:this._number,col:r+t}).value=e)})}else this._worksheet.eachColumnKey((t,r)=>{void 0!==e[r]&&(this.getCellEx({address:s.encodeAddress(this._number,t.number),row:this._number,col:t.number}).value=e[r])});else;}get hasValues(){return n.some(this._cells,e=>e&&e.type!==i.ValueType.Null)}get cellCount(){return this._cells.length}get actualCellCount(){let e=0;return this.eachCell(()=>{e++}),e}get dimensions(){let e=0,t=0;return this._cells.forEach(r=>{r&&r.type!==i.ValueType.Null&&((!e||e>r.col)&&(e=r.col),t<r.col&&(t=r.col))}),e>0?{min:e,max:t}:null}_applyStyle(e,t){return this.style[e]=t,this._cells.forEach(r=>{r&&(r[e]=t)}),t}get numFmt(){return this.style.numFmt}set numFmt(e){this._applyStyle(\"numFmt\",e)}get font(){return this.style.font}set font(e){this._applyStyle(\"font\",e)}get alignment(){return this.style.alignment}set alignment(e){this._applyStyle(\"alignment\",e)}get protection(){return this.style.protection}set protection(e){this._applyStyle(\"protection\",e)}get border(){return this.style.border}set border(e){this._applyStyle(\"border\",e)}get fill(){return this.style.fill}set fill(e){this._applyStyle(\"fill\",e)}get hidden(){return!!this._hidden}set hidden(e){this._hidden=e}get outlineLevel(){return this._outlineLevel||0}set outlineLevel(e){this._outlineLevel=e}get collapsed(){return!!(this._outlineLevel&&this._outlineLevel>=this._worksheet.properties.outlineLevelRow)}get model(){const e=[];let t=0,r=0;return this._cells.forEach(n=>{if(n){const i=n.model;i&&((!t||t>n.col)&&(t=n.col),r<n.col&&(r=n.col),e.push(i))}}),this.height||e.length?{cells:e,number:this.number,min:t,max:r,height:this.height,style:this.style,hidden:this.hidden,outlineLevel:this.outlineLevel,collapsed:this.collapsed}:null}set model(e){if(e.number!==this._number)throw new Error(\"Invalid row number in model\");let t;this._cells=[],e.cells.forEach(e=>{switch(e.type){case o.Types.Merge:break;default:{let r;if(e.address)r=s.decodeAddress(e.address);else if(t){const{row:e}=t,n=t.col+1;r={row:e,col:n,address:s.encodeAddress(e,n),$col$row:`$${s.n2l(n)}$${e}`}}t=r;this.getCellEx(r).model=e;break}}}),e.height?this.height=e.height:delete this.height,this.hidden=e.hidden,this.outlineLevel=e.outlineLevel||0,this.style=e.style&&JSON.parse(JSON.stringify(e.style))||{}}}},{\"../utils/col-cache\":19,\"../utils/under-dash\":26,\"./cell\":3,\"./enums\":7}],12:[function(e,t,r){\"use strict\";const n=e(\"../utils/col-cache\");class i{constructor(e,t,r){this.table=e,this.column=t,this.index=r}_set(e,t){this.table.cacheState(),this.column[e]=t}get name(){return this.column.name}set name(e){this._set(\"name\",e)}get filterButton(){return this.column.filterButton}set filterButton(e){this.column.filterButton=e}get style(){return this.column.style}set style(e){this.column.style=e}get totalsRowLabel(){return this.column.totalsRowLabel}set totalsRowLabel(e){this._set(\"totalsRowLabel\",e)}get totalsRowFunction(){return this.column.totalsRowFunction}set totalsRowFunction(e){this._set(\"totalsRowFunction\",e)}get totalsRowResult(){return this.column.totalsRowResult}set totalsRowResult(e){this._set(\"totalsRowResult\",e)}get totalsRowFormula(){return this.column.totalsRowFormula}set totalsRowFormula(e){this._set(\"totalsRowFormula\",e)}}t.exports=class{constructor(e,t){this.worksheet=e,t&&(this.table=t,this.validate(),this.store())}getFormula(e){switch(e.totalsRowFunction){case\"none\":return null;case\"average\":return`SUBTOTAL(101,${this.table.name}[${e.name}])`;case\"countNums\":return`SUBTOTAL(102,${this.table.name}[${e.name}])`;case\"count\":return`SUBTOTAL(103,${this.table.name}[${e.name}])`;case\"max\":return`SUBTOTAL(104,${this.table.name}[${e.name}])`;case\"min\":return`SUBTOTAL(105,${this.table.name}[${e.name}])`;case\"stdDev\":return`SUBTOTAL(106,${this.table.name}[${e.name}])`;case\"var\":return`SUBTOTAL(107,${this.table.name}[${e.name}])`;case\"sum\":return`SUBTOTAL(109,${this.table.name}[${e.name}])`;case\"custom\":return e.totalsRowFormula;default:throw new Error(\"Invalid Totals Row Function: \"+e.totalsRowFunction)}}get width(){return this.table.columns.length}get height(){return this.table.rows.length}get filterHeight(){return this.height+(this.table.headerRow?1:0)}get tableHeight(){return this.filterHeight+(this.table.totalsRow?1:0)}validate(){const{table:e}=this,t=(e,t,r)=>{void 0===e[t]&&(e[t]=r)};t(e,\"headerRow\",!0),t(e,\"totalsRow\",!1),t(e,\"style\",{}),t(e.style,\"theme\",\"TableStyleMedium2\"),t(e.style,\"showFirstColumn\",!1),t(e.style,\"showLastColumn\",!1),t(e.style,\"showRowStripes\",!1),t(e.style,\"showColumnStripes\",!1);const r=(e,t)=>{if(!e)throw new Error(t)};r(e.ref,\"Table must have ref\"),r(e.columns,\"Table must have column definitions\"),r(e.rows,\"Table must have row definitions\"),e.tl=n.decodeAddress(e.ref);const{row:i,col:s}=e.tl;r(i>0,\"Table must be on valid row\"),r(s>0,\"Table must be on valid col\");const{width:o,filterHeight:a,tableHeight:l}=this;e.autoFilterRef=n.encode(i,s,i+a-1,s+o-1),e.tableRef=n.encode(i,s,i+l-1,s+o-1),e.columns.forEach((e,n)=>{r(e.name,`Column ${n} must have a name`),0===n?t(e,\"totalsRowLabel\",\"Total\"):(t(e,\"totalsRowFunction\",\"none\"),e.totalsRowFormula=this.getFormula(e))})}store(){const e=(e,t)=>{t&&Object.keys(t).forEach(r=>{e[r]=t[r]})},{worksheet:t,table:r}=this,{row:n,col:i}=r.tl;let s=0;if(r.headerRow){const o=t.getRow(n+s++);r.columns.forEach((t,r)=>{const{style:n,name:s}=t,a=o.getCell(i+r);a.value=s,e(a,n)})}if(r.rows.forEach(o=>{const a=t.getRow(n+s++);o.forEach((t,n)=>{const s=a.getCell(i+n);s.value=t,e(s,r.columns[n].style)})}),r.totalsRow){const o=t.getRow(n+s++);r.columns.forEach((t,r)=>{const n=o.getCell(i+r);if(0===r)n.value=t.totalsRowLabel;else{const e=this.getFormula(t);n.value=e?{formula:t.totalsRowFormula,result:t.totalsRowResult}:null}e(n,t.style)})}}load(e){const{table:t}=this,{row:r,col:n}=t.tl;let i=0;if(t.headerRow){const s=e.getRow(r+i++);t.columns.forEach((e,t)=>{s.getCell(n+t).value=e.name})}if(t.rows.forEach(t=>{const s=e.getRow(r+i++);t.forEach((e,t)=>{s.getCell(n+t).value=e})}),t.totalsRow){const s=e.getRow(r+i++);t.columns.forEach((e,t)=>{const r=s.getCell(n+t);if(0===t)r.value=e.totalsRowLabel;else{this.getFormula(e)&&(r.value={formula:e.totalsRowFormula,result:e.totalsRowResult})}})}}get model(){return this.table}set model(e){this.table=e}cacheState(){this._cache||(this._cache={ref:this.ref,width:this.width,tableHeight:this.tableHeight})}commit(){if(!this._cache)return;this.validate();const e=n.decodeAddress(this._cache.ref);if(this.ref!==this._cache.ref)for(let t=0;t<this._cache.tableHeight;t++){const r=this.worksheet.getRow(e.row+t);for(let t=0;t<this._cache.width;t++){r.getCell(e.col+t).value=null}}else{for(let t=this.tableHeight;t<this._cache.tableHeight;t++){const r=this.worksheet.getRow(e.row+t);for(let t=0;t<this._cache.width;t++){r.getCell(e.col+t).value=null}}for(let t=0;t<this.tableHeight;t++){const r=this.worksheet.getRow(e.row+t);for(let t=this.width;t<this._cache.width;t++){r.getCell(e.col+t).value=null}}}this.store()}addRow(e,t){this.cacheState(),void 0===t?this.table.rows.push(e):this.table.rows.splice(t,0,e)}removeRows(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.cacheState(),this.table.rows.splice(e,t)}getColumn(e){const t=this.table.columns[e];return new i(this,t,e)}addColumn(e,t,r){this.cacheState(),void 0===r?(this.table.columns.push(e),this.table.rows.forEach((e,r)=>{e.push(t[r])})):(this.table.columns.splice(r,0,e),this.table.rows.forEach((e,n)=>{e.splice(r,0,t[n])}))}removeColumns(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.cacheState(),this.table.columns.splice(e,t),this.table.rows.forEach(r=>{r.splice(e,t)})}_assign(e,t,r){this.cacheState(),e[t]=r}get ref(){return this.table.ref}set ref(e){this._assign(this.table,\"ref\",e)}get name(){return this.table.name}set name(e){this.table.name=e}get displayName(){return this.table.displyName||this.table.name}set displayNamename(e){this.table.displayName=e}get headerRow(){return this.table.headerRow}set headerRow(e){this._assign(this.table,\"headerRow\",e)}get totalsRow(){return this.table.totalsRow}set totalsRow(e){this._assign(this.table,\"totalsRow\",e)}get theme(){return this.table.style.name}set theme(e){this.table.style.name=e}get showFirstColumn(){return this.table.style.showFirstColumn}set showFirstColumn(e){this.table.style.showFirstColumn=e}get showLastColumn(){return this.table.style.showLastColumn}set showLastColumn(e){this.table.style.showLastColumn=e}get showRowStripes(){return this.table.style.showRowStripes}set showRowStripes(e){this.table.style.showRowStripes=e}get showColumnStripes(){return this.table.style.showColumnStripes}set showColumnStripes(e){this.table.style.showColumnStripes=e}}},{\"../utils/col-cache\":19}],13:[function(e,t,r){\"use strict\";const n=e(\"./worksheet\"),i=e(\"./defined-names\"),s=e(\"../xlsx/xlsx\"),o=e(\"../csv/csv\");t.exports=class{constructor(){this.category=\"\",this.company=\"\",this.created=new Date,this.description=\"\",this.keywords=\"\",this.manager=\"\",this.modified=this.created,this.properties={},this.calcProperties={},this._worksheets=[],this.subject=\"\",this.title=\"\",this.views=[],this.media=[],this._definedNames=new i}get xlsx(){return this._xlsx||(this._xlsx=new s(this)),this._xlsx}get csv(){return this._csv||(this._csv=new o(this)),this._csv}get nextId(){for(let e=1;e<this._worksheets.length;e++)if(!this._worksheets[e])return e;return this._worksheets.length||1}addWorksheet(e,t){const r=this.nextId;t&&(\"string\"==typeof t?(console.trace('tabColor argument is now deprecated. Please use workbook.addWorksheet(name, {properties: { tabColor: { argb: \"rbg value\" } }'),t={properties:{tabColor:{argb:t}}}):(t.argb||t.theme||t.indexed)&&(console.trace(\"tabColor argument is now deprecated. Please use workbook.addWorksheet(name, {properties: { tabColor: { ... } }\"),t={properties:{tabColor:t}}));const i=this._worksheets.reduce((e,t)=>(t&&t.orderNo)>e?t.orderNo:e,0),s=Object.assign({},t,{id:r,name:e,orderNo:i+1,workbook:this}),o=new n(s);return this._worksheets[r]=o,o}removeWorksheetEx(e){delete this._worksheets[e.id]}removeWorksheet(e){const t=this.getWorksheet(e);t&&t.destroy()}getWorksheet(e){return void 0===e?this._worksheets.find(Boolean):\"number\"==typeof e?this._worksheets[e]:\"string\"==typeof e?this._worksheets.find(t=>t&&t.name===e):void 0}get worksheets(){return this._worksheets.slice(1).sort((e,t)=>e.orderNo-t.orderNo).filter(Boolean)}eachSheet(e){this.worksheets.forEach(t=>{e(t,t.id)})}get definedNames(){return this._definedNames}clearThemes(){this._themes=void 0}addImage(e){const t=this.media.length;return this.media.push(Object.assign({},e,{type:\"image\"})),t}getImage(e){return this.media[e]}get model(){return{creator:this.creator||\"Unknown\",lastModifiedBy:this.lastModifiedBy||\"Unknown\",lastPrinted:this.lastPrinted,created:this.created,modified:this.modified,properties:this.properties,worksheets:this.worksheets.map(e=>e.model),sheets:this.worksheets.map(e=>e.model).filter(Boolean),definedNames:this._definedNames.model,views:this.views,company:this.company,manager:this.manager,title:this.title,subject:this.subject,keywords:this.keywords,category:this.category,description:this.description,language:this.language,revision:this.revision,contentStatus:this.contentStatus,themes:this._themes,media:this.media,calcProperties:this.calcProperties}}set model(e){this.creator=e.creator,this.lastModifiedBy=e.lastModifiedBy,this.lastPrinted=e.lastPrinted,this.created=e.created,this.modified=e.modified,this.company=e.company,this.manager=e.manager,this.title=e.title,this.subject=e.subject,this.keywords=e.keywords,this.category=e.category,this.description=e.description,this.language=e.language,this.revision=e.revision,this.contentStatus=e.contentStatus,this.properties=e.properties,this.calcProperties=e.calcProperties,this._worksheets=[],e.worksheets.forEach(t=>{const{id:r,name:i,state:s}=t,o=e.sheets&&e.sheets.findIndex(e=>e.id===r);(this._worksheets[r]=new n({id:r,name:i,orderNo:o,state:s,workbook:this})).model=t}),this._definedNames.model=e.definedNames,this.views=e.views,this._themes=e.themes,this.media=e.media||[]}}},{\"../csv/csv\":1,\"../xlsx/xlsx\":144,\"./defined-names\":6,\"./worksheet\":14}],14:[function(e,t,r){\"use strict\";const n=e(\"../utils/under-dash\"),i=e(\"../utils/col-cache\"),s=e(\"./range\"),o=e(\"./row\"),a=e(\"./column\"),l=e(\"./enums\"),c=e(\"./image\"),u=e(\"./table\"),h=e(\"./data-validations\"),f=e(\"../utils/encryptor\"),{copyStyle:d}=e(\"../utils/copy-style\");t.exports=class{constructor(e){e=e||{},this._workbook=e.workbook,this.id=e.id,this.orderNo=e.orderNo,this.name=e.name,this.state=e.state||\"visible\",this._rows=[],this._columns=null,this._keys={},this._merges={},this.rowBreaks=[],this.properties=Object.assign({},{defaultRowHeight:15,dyDescent:55,outlineLevelCol:0,outlineLevelRow:0},e.properties),this.pageSetup=Object.assign({},{margins:{left:.7,right:.7,top:.75,bottom:.75,header:.3,footer:.3},orientation:\"portrait\",horizontalDpi:4294967295,verticalDpi:4294967295,fitToPage:!(!e.pageSetup||!e.pageSetup.fitToWidth&&!e.pageSetup.fitToHeight||e.pageSetup.scale),pageOrder:\"downThenOver\",blackAndWhite:!1,draft:!1,cellComments:\"None\",errors:\"displayed\",scale:100,fitToWidth:1,fitToHeight:1,paperSize:void 0,showRowColHeaders:!1,showGridLines:!1,firstPageNumber:void 0,horizontalCentered:!1,verticalCentered:!1,rowBreaks:null,colBreaks:null},e.pageSetup),this.headerFooter=Object.assign({},{differentFirst:!1,differentOddEven:!1,oddHeader:null,oddFooter:null,evenHeader:null,evenFooter:null,firstHeader:null,firstFooter:null},e.headerFooter),this.dataValidations=new h,this.views=e.views||[],this.autoFilter=e.autoFilter||null,this._media=[],this.sheetProtection=null,this.tables={},this.conditionalFormattings=[]}get name(){return this._name}set name(e){if(void 0===e&&(e=\"sheet\"+this.id),this._name!==e){if(\"string\"!=typeof e)throw new Error(\"The name has to be a string.\");if(\"\"===e)throw new Error(\"The name can't be empty.\");if(\"History\"===e)throw new Error('The name \"History\" is protected. Please use a different name.');if(/[*?:/\\\\[\\]]/.test(e))throw new Error(`Worksheet name ${e} cannot include any of the following characters: * ? : \\\\ / [ ]`);if(/(^')|('$)/.test(e))throw new Error(\"The first or last character of worksheet name cannot be a single quotation mark: \"+e);if(e&&e.length>31&&(console.warn(`Worksheet name ${e} exceeds 31 chars. This will be truncated`),e=e.substring(0,31)),this._workbook._worksheets.find(t=>t&&t.name.toLowerCase()===e.toLowerCase()))throw new Error(\"Worksheet name already exists: \"+e);this._name=e}}get workbook(){return this._workbook}destroy(){this._workbook.removeWorksheetEx(this)}get dimensions(){const e=new s;return this._rows.forEach(t=>{if(t){const r=t.dimensions;r&&e.expand(t.number,r.min,t.number,r.max)}}),e}get columns(){return this._columns}set columns(e){this._headerRowCount=e.reduce((e,t)=>{const r=(t.header?1:t.headers&&t.headers.length)||0;return Math.max(e,r)},0);let t=1;const r=this._columns=[];e.forEach(e=>{const n=new a(this,t++,!1);r.push(n),n.defn=e})}getColumnKey(e){return this._keys[e]}setColumnKey(e,t){this._keys[e]=t}deleteColumnKey(e){delete this._keys[e]}eachColumnKey(e){n.each(this._keys,e)}getColumn(e){if(\"string\"==typeof e){const t=this._keys[e];if(t)return t;e=i.l2n(e)}if(this._columns||(this._columns=[]),e>this._columns.length){let t=this._columns.length+1;for(;t<=e;)this._columns.push(new a(this,t++))}return this._columns[e-1]}spliceColumns(e,t){const r=this._rows.length;for(var n=arguments.length,i=new Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];if(i.length>0)for(let n=0;n<r;n++){const r=[e,t];i.forEach(e=>{r.push(e[n]||null)});const s=this.getRow(n+1);s.splice.apply(s,r)}else this._rows.forEach(r=>{r&&r.splice(e,t)});const o=i.length-t,a=e+t,l=this._columns.length;if(o<0)for(let t=e+i.length;t<=l;t++)this.getColumn(t).defn=this.getColumn(t-o).defn;else if(o>0)for(let e=l;e>=a;e--)this.getColumn(e+o).defn=this.getColumn(e).defn;for(let t=e;t<e+i.length;t++)this.getColumn(t).defn=null;this.workbook.definedNames.spliceColumns(this.name,e,t,i.length)}get lastColumn(){return this.getColumn(this.columnCount)}get columnCount(){let e=0;return this.eachRow(t=>{e=Math.max(e,t.cellCount)}),e}get actualColumnCount(){const e=[];let t=0;return this.eachRow(r=>{r.eachCell(r=>{let{col:n}=r;e[n]||(e[n]=!0,t++)})}),t}_commitRow(){}get _lastRowNumber(){const e=this._rows;let t=e.length;for(;t>0&&void 0===e[t-1];)t--;return t}get _nextRow(){return this._lastRowNumber+1}get lastRow(){if(this._rows.length)return this._rows[this._rows.length-1]}findRow(e){return this._rows[e-1]}findRows(e,t){return this._rows.slice(e-1,e-1+t)}get rowCount(){return this._lastRowNumber}get actualRowCount(){let e=0;return this.eachRow(()=>{e++}),e}getRow(e){let t=this._rows[e-1];return t||(t=this._rows[e-1]=new o(this,e)),t}getRows(e,t){if(t<1)return;const r=[];for(let n=e;n<e+t;n++)r.push(this.getRow(n));return r}addRow(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"n\";const r=this._nextRow,n=this.getRow(r);return n.values=e,this._setStyleOption(r,\"i\"===t[0]?t:\"n\"),n}addRows(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"n\";const r=[];return e.forEach(e=>{r.push(this.addRow(e,t))}),r}insertRow(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"n\";return this.spliceRows(e,0,t),this._setStyleOption(e,r),this.getRow(e)}insertRows(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"n\";if(this.spliceRows(e,0,...t),\"n\"!==r)for(let n=0;n<t.length;n++)\"o\"===r[0]&&void 0!==this.findRow(t.length+e+n)?this._copyStyle(t.length+e+n,e+n,\"+\"===r[1]):\"i\"===r[0]&&void 0!==this.findRow(e-1)&&this._copyStyle(e-1,e+n,\"+\"===r[1]);return this.getRows(e,t.length)}_setStyleOption(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"n\";\"o\"===t[0]&&void 0!==this.findRow(e+1)?this._copyStyle(e+1,e,\"+\"===t[1]):\"i\"===t[0]&&void 0!==this.findRow(e-1)&&this._copyStyle(e-1,e,\"+\"===t[1])}_copyStyle(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const n=this.getRow(e),i=this.getRow(t);i.style=d(n.style),n.eachCell({includeEmpty:r},(e,t)=>{i.getCell(t).style=d(e.style)}),i.height=n.height}duplicateRow(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const n=this._rows[e-1],i=new Array(t).fill(n.values);this.spliceRows(e+1,r?0:t,...i);for(let r=0;r<t;r++){const t=this._rows[e+r];t.style=n.style,t.height=n.height,n.eachCell({includeEmpty:!0},(e,r)=>{t.getCell(r).style=e.style})}}spliceRows(e,t){const r=e+t;for(var n=arguments.length,i=new Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];const o=i.length,a=o-t,l=this._rows.length;let c,u;if(a<0)for(e===l&&(this._rows[l-1]=void 0),c=r;c<=l;c++)if(u=this._rows[c-1],u){const e=this.getRow(c+a);e.values=u.values,e.style=u.style,e.height=u.height,u.eachCell({includeEmpty:!0},(t,r)=>{e.getCell(r).style=t.style}),this._rows[c-1]=void 0}else this._rows[c+a-1]=void 0;else if(a>0)for(c=l;c>=r;c--)if(u=this._rows[c-1],u){const e=this.getRow(c+a);e.values=u.values,e.style=u.style,e.height=u.height,u.eachCell({includeEmpty:!0},(t,r)=>{if(e.getCell(r).style=t.style,\"MergeValue\"===t._value.constructor.name){const e=this.getRow(t._row._number+o).getCell(r),n=t._value._master,i=this.getRow(n._row._number+o).getCell(n._column._number);e.merge(i)}})}else this._rows[c+a-1]=void 0;for(c=0;c<o;c++){const t=this.getRow(e+c);t.style={},t.values=i[c]}this.workbook.definedNames.spliceRows(this.name,e,t,o)}eachRow(e,t){if(t||(t=e,e=void 0),e&&e.includeEmpty){const e=this._rows.length;for(let r=1;r<=e;r++)t(this.getRow(r),r)}else this._rows.forEach(e=>{e&&e.hasValues&&t(e,e.number)})}getSheetValues(){const e=[];return this._rows.forEach(t=>{t&&(e[t.number]=t.values)}),e}findCell(e,t){const r=i.getAddress(e,t),n=this._rows[r.row-1];return n?n.findCell(r.col):void 0}getCell(e,t){const r=i.getAddress(e,t);return this.getRow(r.row).getCellEx(r)}mergeCells(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];const n=new s(t);this._mergeCellsInternal(n)}mergeCellsWithoutStyle(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];const n=new s(t);this._mergeCellsInternal(n,!0)}_mergeCellsInternal(e,t){n.each(this._merges,t=>{if(t.intersects(e))throw new Error(\"Cannot merge already merged cells\")});const r=this.getCell(e.top,e.left);for(let n=e.top;n<=e.bottom;n++)for(let i=e.left;i<=e.right;i++)(n>e.top||i>e.left)&&this.getCell(n,i).merge(r,t);this._merges[r.address]=e}_unMergeMaster(e){const t=this._merges[e.address];if(t){for(let e=t.top;e<=t.bottom;e++)for(let r=t.left;r<=t.right;r++)this.getCell(e,r).unmerge();delete this._merges[e.address]}}get hasMerges(){return n.some(this._merges,Boolean)}unMergeCells(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];const n=new s(t);for(let e=n.top;e<=n.bottom;e++)for(let t=n.left;t<=n.right;t++){const r=this.findCell(e,t);r&&(r.type===l.ValueType.Merge?this._unMergeMaster(r.master):this._merges[r.address]&&this._unMergeMaster(r))}}fillFormula(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"shared\";const s=i.decode(e),{top:o,left:a,bottom:l,right:c}=s,u=c-a+1,h=i.encodeAddress(o,a),f=\"shared\"===n;let d;d=\"function\"==typeof r?r:Array.isArray(r)?Array.isArray(r[0])?(e,t)=>r[e-o][t-a]:(e,t)=>r[(e-o)*u+(t-a)]:()=>{};let p=!0;for(let r=o;r<=l;r++)for(let i=a;i<=c;i++)p?(this.getCell(r,i).value={shareType:n,formula:t,ref:e,result:d(r,i)},p=!1):this.getCell(r,i).value=f?{sharedFormula:h,result:d(r,i)}:d(r,i)}addImage(e,t){const r={type:\"image\",imageId:e,range:t};this._media.push(new c(this,r))}getImages(){return this._media.filter(e=>\"image\"===e.type)}addBackgroundImage(e){const t={type:\"background\",imageId:e};this._media.push(new c(this,t))}getBackgroundImageId(){const e=this._media.find(e=>\"background\"===e.type);return e&&e.imageId}protect(e,t){return new Promise(r=>{this.sheetProtection={sheet:!0},t&&\"spinCount\"in t&&(t.spinCount=Number.isFinite(t.spinCount)?Math.round(Math.max(0,t.spinCount)):1e5),e&&(this.sheetProtection.algorithmName=\"SHA-512\",this.sheetProtection.saltValue=f.randomBytes(16).toString(\"base64\"),this.sheetProtection.spinCount=t&&\"spinCount\"in t?t.spinCount:1e5,this.sheetProtection.hashValue=f.convertPasswordToHash(e,\"SHA512\",this.sheetProtection.saltValue,this.sheetProtection.spinCount)),t&&(this.sheetProtection=Object.assign(this.sheetProtection,t),!e&&\"spinCount\"in t&&delete this.sheetProtection.spinCount),r()})}unprotect(){this.sheetProtection=null}addTable(e){const t=new u(this,e);return this.tables[e.name]=t,t}getTable(e){return this.tables[e]}removeTable(e){delete this.tables[e]}getTables(){return Object.values(this.tables)}addConditionalFormatting(e){this.conditionalFormattings.push(e)}removeConditionalFormatting(e){\"number\"==typeof e?this.conditionalFormattings.splice(e,1):this.conditionalFormattings=e instanceof Function?this.conditionalFormattings.filter(e):[]}get tabColor(){return console.trace(\"worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor\"),this.properties.tabColor}set tabColor(e){console.trace(\"worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor\"),this.properties.tabColor=e}get model(){const e={id:this.id,name:this.name,dataValidations:this.dataValidations.model,properties:this.properties,state:this.state,pageSetup:this.pageSetup,headerFooter:this.headerFooter,rowBreaks:this.rowBreaks,views:this.views,autoFilter:this.autoFilter,media:this._media.map(e=>e.model),sheetProtection:this.sheetProtection,tables:Object.values(this.tables).map(e=>e.model),conditionalFormattings:this.conditionalFormattings};e.cols=a.toModel(this.columns);const t=e.rows=[],r=e.dimensions=new s;return this._rows.forEach(e=>{const n=e&&e.model;n&&(r.expand(n.number,n.min,n.number,n.max),t.push(n))}),e.merges=[],n.each(this._merges,t=>{e.merges.push(t.range)}),e}_parseRows(e){this._rows=[],e.rows.forEach(e=>{const t=new o(this,e.number);this._rows[t.number-1]=t,t.model=e})}_parseMergeCells(e){n.each(e.mergeCells,e=>{this.mergeCellsWithoutStyle(e)})}set model(e){this.name=e.name,this._columns=a.fromModel(this,e.cols),this._parseRows(e),this._parseMergeCells(e),this.dataValidations=new h(e.dataValidations),this.properties=e.properties,this.pageSetup=e.pageSetup,this.headerFooter=e.headerFooter,this.views=e.views,this.autoFilter=e.autoFilter,this._media=e.media.map(e=>new c(this,e)),this.sheetProtection=e.sheetProtection,this.tables=e.tables.reduce((e,t)=>{const r=new u;return r.model=t,e[t.name]=r,e},{}),this.conditionalFormattings=e.conditionalFormattings}}},{\"../utils/col-cache\":19,\"../utils/copy-style\":20,\"../utils/encryptor\":21,\"../utils/under-dash\":26,\"./column\":4,\"./data-validations\":5,\"./enums\":7,\"./image\":8,\"./range\":10,\"./row\":11,\"./table\":12}],15:[function(e,t,r){\"use strict\";e(\"core-js/modules/es.promise\"),e(\"core-js/modules/es.promise.finally\"),e(\"core-js/modules/es.object.assign\"),e(\"core-js/modules/es.object.keys\"),e(\"core-js/modules/es.object.values\"),e(\"core-js/modules/es.symbol\"),e(\"core-js/modules/es.symbol.async-iterator\"),e(\"core-js/modules/es.array.iterator\"),e(\"core-js/modules/es.array.includes\"),e(\"core-js/modules/es.array.find-index\"),e(\"core-js/modules/es.array.find\"),e(\"core-js/modules/es.string.from-code-point\"),e(\"core-js/modules/es.string.includes\"),e(\"core-js/modules/es.number.is-nan\"),e(\"regenerator-runtime/runtime\");const n={Workbook:e(\"./doc/workbook\")},i=e(\"./doc/enums\");Object.keys(i).forEach(e=>{n[e]=i[e]}),t.exports=n},{\"./doc/enums\":7,\"./doc/workbook\":13,\"core-js/modules/es.array.find\":359,\"core-js/modules/es.array.find-index\":358,\"core-js/modules/es.array.includes\":360,\"core-js/modules/es.array.iterator\":361,\"core-js/modules/es.number.is-nan\":363,\"core-js/modules/es.object.assign\":364,\"core-js/modules/es.object.keys\":366,\"core-js/modules/es.object.values\":367,\"core-js/modules/es.promise\":372,\"core-js/modules/es.promise.finally\":371,\"core-js/modules/es.string.from-code-point\":376,\"core-js/modules/es.string.includes\":377,\"core-js/modules/es.symbol\":381,\"core-js/modules/es.symbol.async-iterator\":378,\"regenerator-runtime/runtime\":492}],16:[function(e,t,r){\"use strict\";const n=\"undefined\"==typeof TextDecoder?null:new TextDecoder(\"utf-8\");r.bufferToString=function(e){return\"string\"==typeof e?e:n?n.decode(e):e.toString()}},{}],17:[function(e,t,r){\"use strict\";const n=\"undefined\"==typeof TextEncoder?null:new TextEncoder(\"utf-8\"),{Buffer:i}=e(\"buffer\");r.stringToBuffer=function(e){return\"string\"!=typeof e?e:n?i.from(n.encode(e).buffer):i.from(e)}},{buffer:220}],18:[function(e,t,r){\"use strict\";const n=e(\"./under-dash\"),i=e(\"./col-cache\");t.exports=class{constructor(e){this.template=e,this.sheets={}}addCell(e){this.addCellEx(i.decodeEx(e))}getCell(e){return this.findCellEx(i.decodeEx(e),!0)}findCell(e){return this.findCellEx(i.decodeEx(e),!1)}findCellAt(e,t,r){const n=this.sheets[e],i=n&&n[t];return i&&i[r]}addCellEx(e){if(e.top)for(let t=e.top;t<=e.bottom;t++)for(let r=e.left;r<=e.right;r++)this.getCellAt(e.sheetName,t,r);else this.findCellEx(e,!0)}getCellEx(e){return this.findCellEx(e,!0)}findCellEx(e,t){const r=this.findSheet(e,t),n=this.findSheetRow(r,e,t);return this.findRowCell(n,e,t)}getCellAt(e,t,r){const n=this.sheets[e]||(this.sheets[e]=[]),s=n[t]||(n[t]=[]);return s[r]||(s[r]={sheetName:e,address:i.n2l(r)+t,row:t,col:r})}removeCellEx(e){const t=this.findSheet(e);if(!t)return;const r=this.findSheetRow(t,e);r&&delete r[e.col]}forEachInSheet(e,t){const r=this.sheets[e];r&&r.forEach((e,r)=>{e&&e.forEach((e,n)=>{e&&t(e,r,n)})})}forEach(e){n.each(this.sheets,(t,r)=>{this.forEachInSheet(r,e)})}map(e){const t=[];return this.forEach(r=>{t.push(e(r))}),t}findSheet(e,t){const r=e.sheetName;return this.sheets[r]?this.sheets[r]:t?this.sheets[r]=[]:void 0}findSheetRow(e,t,r){const{row:n}=t;return e&&e[n]?e[n]:r?e[n]=[]:void 0}findRowCell(e,t,r){const{col:n}=t;return e&&e[n]?e[n]:r?e[n]=this.template?Object.assign(t,JSON.parse(JSON.stringify(this.template))):t:void 0}spliceRows(e,t,r,n){const i=this.sheets[e];if(i){const e=[];for(let t=0;t<n;t++)e.push([]);i.splice(t,r,...e)}}spliceColumns(e,t,r,i){const s=this.sheets[e];if(s){const e=[];for(let t=0;t<i;t++)e.push(null);n.each(s,n=>{n.splice(t,r,...e)})}}}},{\"./col-cache\":19,\"./under-dash\":26}],19:[function(e,t,r){\"use strict\";const n=/^[A-Z]+\\d+$/,i={_dictionary:[\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\"],_l2nFill:0,_l2n:{},_n2l:[],_level:e=>e<=26?1:e<=676?2:3,_fill(e){let t,r,n,i,s,o=1;if(e>=4)throw new Error(\"Out of bounds. Excel supports columns from 1 to 16384\");if(this._l2nFill<1&&e>=1){for(;o<=26;)t=this._dictionary[o-1],this._n2l[o]=t,this._l2n[t]=o,o++;this._l2nFill=1}if(this._l2nFill<2&&e>=2){for(o=27;o<=702;)r=o-27,n=r%26,i=Math.floor(r/26),t=this._dictionary[i]+this._dictionary[n],this._n2l[o]=t,this._l2n[t]=o,o++;this._l2nFill=2}if(this._l2nFill<3&&e>=3){for(o=703;o<=16384;)r=o-703,n=r%26,i=Math.floor(r/26)%26,s=Math.floor(r/676),t=this._dictionary[s]+this._dictionary[i]+this._dictionary[n],this._n2l[o]=t,this._l2n[t]=o,o++;this._l2nFill=3}},l2n(e){if(this._l2n[e]||this._fill(e.length),!this._l2n[e])throw new Error(\"Out of bounds. Invalid column letter: \"+e);return this._l2n[e]},n2l(e){if(e<1||e>16384)throw new Error(e+\" is out of bounds. Excel supports columns from 1 to 16384\");return this._n2l[e]||this._fill(this._level(e)),this._n2l[e]},_hash:{},validateAddress(e){if(!n.test(e))throw new Error(\"Invalid Address: \"+e);return!0},decodeAddress(e){const t=e.length<5&&this._hash[e];if(t)return t;let r=!1,n=\"\",i=0,s=!1,o=\"\",a=0;for(let t,l=0;l<e.length;l++)if(t=e.charCodeAt(l),!s&&t>=65&&t<=90)r=!0,n+=e[l],i=26*i+t-64;else if(t>=48&&t<=57)s=!0,o+=e[l],a=10*a+t-48;else if(s&&r&&36!==t)break;if(r){if(i>16384)throw new Error(\"Out of bounds. Invalid column letter: \"+n)}else i=void 0;s||(a=void 0);const l={address:e=n+o,col:i,row:a,$col$row:`$${n}$${o}`};return i<=100&&a<=100&&(this._hash[e]=l,this._hash[l.$col$row]=l),l},getAddress(e,t){if(t){const r=this.n2l(t)+e;return this.decodeAddress(r)}return this.decodeAddress(e)},decode(e){const t=e.split(\":\");if(2===t.length){const e=this.decodeAddress(t[0]),r=this.decodeAddress(t[1]),n={top:Math.min(e.row,r.row),left:Math.min(e.col,r.col),bottom:Math.max(e.row,r.row),right:Math.max(e.col,r.col)};return n.tl=this.n2l(n.left)+n.top,n.br=this.n2l(n.right)+n.bottom,n.dimensions=`${n.tl}:${n.br}`,n}return this.decodeAddress(e)},decodeEx(e){const t=e.match(/(?:(?:(?:'((?:[^']|'')*)')|([^'^ !]*))!)?(.*)/),r=t[1]||t[2],n=t[3],i=n.split(\":\");if(i.length>1){let e=this.decodeAddress(i[0]),t=this.decodeAddress(i[1]);const n=Math.min(e.row,t.row),s=Math.min(e.col,t.col),o=Math.max(e.row,t.row),a=Math.max(e.col,t.col);return e=this.n2l(s)+n,t=this.n2l(a)+o,{top:n,left:s,bottom:o,right:a,sheetName:r,tl:{address:e,col:s,row:n,$col$row:`$${this.n2l(s)}$${n}`,sheetName:r},br:{address:t,col:a,row:o,$col$row:`$${this.n2l(a)}$${o}`,sheetName:r},dimensions:`${e}:${t}`}}if(n.startsWith(\"#\"))return r?{sheetName:r,error:n}:{error:n};const s=this.decodeAddress(n);return r?{sheetName:r,...s}:s},encodeAddress:(e,t)=>i.n2l(t)+e,encode(){switch(arguments.length){case 2:return i.encodeAddress(arguments[0],arguments[1]);case 4:return`${i.encodeAddress(arguments[0],arguments[1])}:${i.encodeAddress(arguments[2],arguments[3])}`;default:throw new Error(\"Can only encode with 2 or 4 arguments\")}},inRange(e,t){const[r,n,,i,s]=e,[o,a]=t;return o>=r&&o<=i&&a>=n&&a<=s}};t.exports=i},{}],20:[function(e,t,r){\"use strict\";const n=(e,t)=>({...e,...t.reduce((t,r)=>(e[r]&&(t[r]={...e[r]}),t),{})}),i=function(e,t,r){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];e[r]&&(t[r]=n(e[r],i))};r.copyStyle=e=>{if(!e)return e;if(t=e,0===Object.keys(t).length)return{};var t;const r={...e};return i(e,r,\"font\",[\"color\"]),i(e,r,\"alignment\"),i(e,r,\"protection\"),e.border&&(i(e,r,\"border\"),i(e.border,r.border,\"top\",[\"color\"]),i(e.border,r.border,\"left\",[\"color\"]),i(e.border,r.border,\"bottom\",[\"color\"]),i(e.border,r.border,\"right\",[\"color\"]),i(e.border,r.border,\"diagonal\",[\"color\"])),e.fill&&(i(e,r,\"fill\",[\"fgColor\",\"bgColor\",\"center\"]),e.fill.stops&&(r.fill.stops=e.fill.stops.map(e=>n(e,[\"color\"])))),r}},{}],21:[function(e,t,r){(function(r){(function(){\"use strict\";const n=e(\"crypto\"),i={hash(e){const t=n.createHash(e);for(var i=arguments.length,s=new Array(i>1?i-1:0),o=1;o<i;o++)s[o-1]=arguments[o];return t.update(r.concat(s)),t.digest()},convertPasswordToHash(e,t,i,s){t=t.toLowerCase();if(n.getHashes().indexOf(t)<0)throw new Error(`Hash algorithm '${t}' not supported!`);const o=r.from(e,\"utf16le\");let a=this.hash(t,r.from(i,\"base64\"),o);for(let e=0;e<s;e++){const n=r.alloc(4);n.writeUInt32LE(e,0),a=this.hash(t,a,n)}return a.toString(\"base64\")},randomBytes:e=>n.randomBytes(e)};t.exports=i}).call(this)}).call(this,e(\"buffer\").Buffer)},{buffer:220,crypto:390}],22:[function(e,t,r){\"use strict\";const{SaxesParser:n}=e(\"saxes\"),{PassThrough:i}=e(\"readable-stream\"),{bufferToString:s}=e(\"./browser-buffer-decode\");t.exports=async function*(e){e.pipe&&!e[Symbol.asyncIterator]&&(e=e.pipe(new i));const t=new n;let r;t.on(\"error\",e=>{r=e});let o=[];t.on(\"opentag\",e=>o.push({eventType:\"opentag\",value:e})),t.on(\"text\",e=>o.push({eventType:\"text\",value:e})),t.on(\"closetag\",e=>o.push({eventType:\"closetag\",value:e}));for await(const n of e){if(t.write(s(n)),r)throw r;yield o,o=[]}}},{\"./browser-buffer-decode\":16,\"readable-stream\":491,saxes:496}],23:[function(e,t,r){\"use strict\";const n=e(\"./col-cache\"),i=/(([a-z_\\-0-9]*)!)?([a-z0-9_$]{2,})([(])?/gi,s=/^([$])?([a-z]+)([$])?([1-9][0-9]*)$/i;t.exports={slideFormula:function(e,t,r){const o=n.decode(t),a=n.decode(r);return e.replace(i,(e,t,r,i,l)=>{if(l)return e;const c=s.exec(i);if(c){const r=c[1],i=c[2].toUpperCase(),s=c[3],l=c[4];if(i.length>3||3===i.length&&i>\"XFD\")return e;let u=n.l2n(i),h=parseInt(l,10);r||(u+=a.col-o.col),s||(h+=a.row-o.row);return(t||\"\")+(r||\"\")+n.n2l(u)+(s||\"\")+h}return e})}}},{\"./col-cache\":19}],24:[function(e,t,r){(function(r,n){(function(){\"use strict\";const i=e(\"readable-stream\"),s=e(\"./utils\"),o=e(\"./string-buf\");class a{constructor(e,t){this._data=e,this._encoding=t}get length(){return this.toBuffer().length}copy(e,t,r,n){return this.toBuffer().copy(e,t,r,n)}toBuffer(){return this._buffer||(this._buffer=n.from(this._data,this._encoding)),this._buffer}}class l{constructor(e){this._data=e}get length(){return this._data.length}copy(e,t,r,n){return this._data._buf.copy(e,t,r,n)}toBuffer(){return this._data.toBuffer()}}class c{constructor(e){this._data=e}get length(){return this._data.length}copy(e,t,r,n){this._data.copy(e,t,r,n)}toBuffer(){return this._data}}class u{constructor(e){this.size=e,this.buffer=n.alloc(e),this.iRead=0,this.iWrite=0}toBuffer(){if(0===this.iRead&&this.iWrite===this.size)return this.buffer;const e=n.alloc(this.iWrite-this.iRead);return this.buffer.copy(e,0,this.iRead,this.iWrite),e}get length(){return this.iWrite-this.iRead}get eod(){return this.iRead===this.iWrite}get full(){return this.iWrite===this.size}read(e){let t;return 0===e?null:void 0===e||e>=this.length?(t=this.toBuffer(),this.iRead=this.iWrite,t):(t=n.alloc(e),this.buffer.copy(t,0,this.iRead,e),this.iRead+=e,t)}write(e,t,r){const n=Math.min(r,this.size-this.iWrite);return e.copy(this.buffer,this.iWrite,t,t+n),this.iWrite+=n,n}}const h=function(e){e=e||{},this.bufSize=e.bufSize||1048576,this.buffers=[],this.batch=e.batch||!1,this.corked=!1,this.inPos=0,this.outPos=0,this.pipes=[],this.paused=!1,this.encoding=null};s.inherits(h,i.Duplex,{toBuffer(){switch(this.buffers.length){case 0:return null;case 1:return this.buffers[0].toBuffer();default:return n.concat(this.buffers.map(e=>e.toBuffer()))}},_getWritableBuffer(){if(this.buffers.length){const e=this.buffers[this.buffers.length-1];if(!e.full)return e}const e=new u(this.bufSize);return this.buffers.push(e),e},async _pipe(e){await Promise.all(this.pipes.map((function(t){return new Promise(r=>{t.write(e.toBuffer(),()=>{r()})})})))},_writeToBuffers(e){let t=0;const r=e.length;for(;t<r;){t+=this._getWritableBuffer().write(e,t,r-t)}},async write(e,t,i){let u;if(t instanceof Function&&(i=t,t=\"utf8\"),i=i||s.nop,e instanceof o)u=new l(e);else if(e instanceof n)u=new c(e);else{if(!(\"string\"==typeof e||e instanceof String||e instanceof ArrayBuffer))throw new Error(\"Chunk must be one of type String, Buffer or StringBuf.\");u=new a(e,t)}if(this.pipes.length)if(this.batch)for(this._writeToBuffers(u);!this.corked&&this.buffers.length>1;)this._pipe(this.buffers.shift());else this.corked?(this._writeToBuffers(u),r.nextTick(i)):(await this._pipe(u),i());else this.paused||this.emit(\"data\",u.toBuffer()),this._writeToBuffers(u),this.emit(\"readable\");return!0},cork(){this.corked=!0},_flush(){if(this.pipes.length)for(;this.buffers.length;)this._pipe(this.buffers.shift())},uncork(){this.corked=!1,this._flush()},end(e,t,r){const n=e=>{e?r(e):(this._flush(),this.pipes.forEach(e=>{e.end()}),this.emit(\"finish\"))};e?this.write(e,t,n):n()},read(e){let t;if(e){for(t=[];e&&this.buffers.length&&!this.buffers[0].eod;){const r=this.buffers[0],n=r.read(e);e-=n.length,t.push(n),r.eod&&r.full&&this.buffers.shift()}return n.concat(t)}return t=this.buffers.map(e=>e.toBuffer()).filter(Boolean),this.buffers=[],n.concat(t)},setEncoding(e){this.encoding=e},pause(){this.paused=!0},resume(){this.paused=!1},isPaused(){return!!this.paused},pipe(e){this.pipes.push(e),!this.paused&&this.buffers.length&&this.end()},unpipe(e){this.pipes=this.pipes.filter(t=>t!==e)},unshift(){throw new Error(\"Not Implemented\")},wrap(){throw new Error(\"Not Implemented\")}}),t.exports=h}).call(this)}).call(this,e(\"_process\"),e(\"buffer\").Buffer)},{\"./string-buf\":25,\"./utils\":27,_process:467,buffer:220,\"readable-stream\":491}],25:[function(e,t,r){(function(e){(function(){\"use strict\";t.exports=class{constructor(t){this._buf=e.alloc(t&&t.size||16384),this._encoding=t&&t.encoding||\"utf8\",this._inPos=0,this._buffer=void 0}get length(){return this._inPos}get capacity(){return this._buf.length}get buffer(){return this._buf}toBuffer(){return this._buffer||(this._buffer=e.alloc(this.length),this._buf.copy(this._buffer,0,0,this.length)),this._buffer}reset(e){e=e||0,this._buffer=void 0,this._inPos=e}_grow(t){let r=2*this._buf.length;for(;r<t;)r*=2;const n=e.alloc(r);this._buf.copy(n,0),this._buf=n}addText(e){this._buffer=void 0;let t=this._inPos+this._buf.write(e,this._inPos,this._encoding);for(;t>=this._buf.length-4;)this._grow(this._inPos+e.length),t=this._inPos+this._buf.write(e,this._inPos,this._encoding);this._inPos=t}addStringBuf(e){e.length&&(this._buffer=void 0,this.length+e.length>this.capacity&&this._grow(this.length+e.length),e._buf.copy(this._buf,this._inPos,0,e.length),this._inPos+=e.length)}}}).call(this)}).call(this,e(\"buffer\").Buffer)},{buffer:220}],26:[function(e,t,r){\"use strict\";const{toString:n}=Object.prototype,i=/[\"&<>]/,s={each:function(e,t){e&&(Array.isArray(e)?e.forEach(t):Object.keys(e).forEach(r=>{t(e[r],r)}))},some:function(e,t){return!!e&&(Array.isArray(e)?e.some(t):Object.keys(e).some(r=>t(e[r],r)))},every:function(e,t){return!e||(Array.isArray(e)?e.every(t):Object.keys(e).every(r=>t(e[r],r)))},map:function(e,t){return e?Array.isArray(e)?e.map(t):Object.keys(e).map(r=>t(e[r],r)):[]},keyBy:(e,t)=>e.reduce((e,r)=>(e[r[t]]=r,e),{}),isEqual:function(e,t){const r=typeof e,n=typeof t,i=Array.isArray(e),o=Array.isArray(t);let a;if(r!==n)return!1;switch(typeof e){case\"object\":if(i||o)return!(!i||!o)&&(e.length===t.length&&e.every((e,r)=>{const n=t[r];return s.isEqual(e,n)}));if(null===e||null===t)return e===t;if(a=Object.keys(e),Object.keys(t).length!==a.length)return!1;for(const e of a)if(!t.hasOwnProperty(e))return!1;return s.every(e,(e,r)=>{const n=t[r];return s.isEqual(e,n)});default:return e===t}},escapeHtml(e){const t=i.exec(e);if(!t)return e;let r=\"\",n=\"\",s=0,o=t.index;for(;o<e.length;o++){switch(e.charAt(o)){case'\"':n=\"&quot;\";break;case\"&\":n=\"&amp;\";break;case\"'\":n=\"&apos;\";break;case\"<\":n=\"&lt;\";break;case\">\":n=\"&gt;\";break;default:continue}s!==o&&(r+=e.substring(s,o)),s=o+1,r+=n}return s!==o?r+e.substring(s,o):r},strcmp:(e,t)=>e<t?-1:e>t?1:0,isUndefined:e=>\"[object Undefined]\"===n.call(e),isObject:e=>\"[object Object]\"===n.call(e),deepMerge(){const e=arguments[0]||{},{length:t}=arguments;let r,n,i;function o(t,o){r=e[o],i=Array.isArray(t),s.isObject(t)||i?(i?(i=!1,n=r&&Array.isArray(r)?r:[]):n=r&&s.isObject(r)?r:{},e[o]=s.deepMerge(n,t)):s.isUndefined(t)||(e[o]=t)}for(let e=0;e<t;e++)s.each(arguments[e],o);return e}};t.exports=s},{}],27:[function(e,t,r){(function(r,n){(function(){\"use strict\";const i=e(\"fs\"),s=/[<>&'\"\\x7F\\x00-\\x08\\x0B-\\x0C\\x0E-\\x1F]/,o={nop(){},promiseImmediate:e=>new Promise(t=>{r.setImmediate?n(()=>{t(e)}):setTimeout(()=>{t(e)},1)}),inherits:function(e,t,r,n){e.super_=t,n||(n=r,r=null),r&&Object.keys(r).forEach(t=>{Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))});const i={constructor:{value:e,enumerable:!1,writable:!1,configurable:!0}};n&&Object.keys(n).forEach(e=>{i[e]=Object.getOwnPropertyDescriptor(n,e)}),e.prototype=Object.create(t.prototype,i)},dateToExcel:(e,t)=>25569+e.getTime()/864e5-(t?1462:0),excelToDate(e,t){const r=Math.round(24*(e-25569+(t?1462:0))*3600*1e3);return new Date(r)},parsePath(e){const t=e.lastIndexOf(\"/\");return{path:e.substring(0,t),name:e.substring(t+1)}},getRelsPath(e){const t=o.parsePath(e);return`${t.path}/_rels/${t.name}.rels`},xmlEncode(e){const t=s.exec(e);if(!t)return e;let r=\"\",n=\"\",i=0,o=t.index;for(;o<e.length;o++){const t=e.charCodeAt(o);switch(t){case 34:n=\"&quot;\";break;case 38:n=\"&amp;\";break;case 39:n=\"&apos;\";break;case 60:n=\"&lt;\";break;case 62:n=\"&gt;\";break;case 127:n=\"\";break;default:if(t<=31&&(t<=8||t>=11&&13!==t)){n=\"\";break}continue}i!==o&&(r+=e.substring(i,o)),i=o+1,n&&(r+=n)}return i!==o?r+e.substring(i,o):r},xmlDecode:e=>e.replace(/&([a-z]*);/g,e=>{switch(e){case\"&lt;\":return\"<\";case\"&gt;\":return\">\";case\"&amp;\":return\"&\";case\"&apos;\":return\"'\";case\"&quot;\":return'\"';default:return e}}),validInt(e){const t=parseInt(e,10);return Number.isNaN(t)?0:t},isDateFmt(e){if(!e)return!1;return null!==(e=(e=e.replace(/\\[[^\\]]*]/g,\"\")).replace(/\"[^\"]*\"/g,\"\")).match(/[ymdhMsb]+/)},fs:{exists:e=>new Promise(t=>{i.access(e,i.constants.F_OK,e=>{t(!e)})})},toIsoDateString:e=>e.toIsoString().subsstr(0,10),parseBoolean:e=>!0===e||\"true\"===e||1===e||\"1\"===e};t.exports=o}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},e(\"timers\").setImmediate)},{fs:216,timers:523}],28:[function(e,t,r){\"use strict\";const n=e(\"./under-dash\"),i=e(\"./utils\");function s(e,t,r){e.push(` ${t}=\"${i.xmlEncode(r.toString())}\"`)}function o(e,t){if(t){const r=[];n.each(t,(e,t)=>{void 0!==e&&s(r,t,e)}),e.push(r.join(\"\"))}}class a{constructor(){this._xml=[],this._stack=[],this._rollbacks=[]}get tos(){return this._stack.length?this._stack[this._stack.length-1]:void 0}get cursor(){return this._xml.length}openXml(e){const t=this._xml;t.push(\"<?xml\"),o(t,e),t.push(\"?>\\n\")}openNode(e,t){const r=this.tos,n=this._xml;r&&this.open&&n.push(\">\"),this._stack.push(e),n.push(\"<\"),n.push(e),o(n,t),this.leaf=!0,this.open=!0}addAttribute(e,t){if(!this.open)throw new Error(\"Cannot write attributes to node if it is not open\");void 0!==t&&s(this._xml,e,t)}addAttributes(e){if(!this.open)throw new Error(\"Cannot write attributes to node if it is not open\");o(this._xml,e)}writeText(e){const t=this._xml;this.open&&(t.push(\">\"),this.open=!1),this.leaf=!1,t.push(i.xmlEncode(e.toString()))}writeXml(e){this.open&&(this._xml.push(\">\"),this.open=!1),this.leaf=!1,this._xml.push(e)}closeNode(){const e=this._stack.pop(),t=this._xml;this.leaf?t.push(\"/>\"):(t.push(\"</\"),t.push(e),t.push(\">\")),this.open=!1,this.leaf=!1}leafNode(e,t,r){this.openNode(e,t),void 0!==r&&this.writeText(r),this.closeNode()}closeAll(){for(;this._stack.length;)this.closeNode()}addRollback(){return this._rollbacks.push({xml:this._xml.length,stack:this._stack.length,leaf:this.leaf,open:this.open}),this.cursor}commit(){this._rollbacks.pop()}rollback(){const e=this._rollbacks.pop();this._xml.length>e.xml&&this._xml.splice(e.xml,this._xml.length-e.xml),this._stack.length>e.stack&&this._stack.splice(e.stack,this._stack.length-e.stack),this.leaf=e.leaf,this.open=e.open}get xml(){return this.closeAll(),this._xml.join(\"\")}}a.StdDocAttributes={version:\"1.0\",encoding:\"UTF-8\",standalone:\"yes\"},t.exports=a},{\"./under-dash\":26,\"./utils\":27}],29:[function(e,t,r){(function(r){(function(){\"use strict\";const n=e(\"events\"),i=e(\"jszip\"),s=e(\"./stream-buf\"),{stringToBuffer:o}=e(\"./browser-buffer-encode\");class a extends n.EventEmitter{constructor(e){super(),this.options=Object.assign({type:\"nodebuffer\",compression:\"DEFLATE\"},e),this.zip=new i,this.stream=new s}append(e,t){t.hasOwnProperty(\"base64\")&&t.base64?this.zip.file(t.name,e,{base64:!0}):(r.browser&&\"string\"==typeof e&&(e=o(e)),this.zip.file(t.name,e))}async finalize(){const e=await this.zip.generateAsync(this.options);this.stream.end(e),this.emit(\"finish\")}read(e){return this.stream.read(e)}setEncoding(e){return this.stream.setEncoding(e)}pause(){return this.stream.pause()}resume(){return this.stream.resume()}isPaused(){return this.stream.isPaused()}pipe(e,t){return this.stream.pipe(e,t)}unpipe(e){return this.stream.unpipe(e)}unshift(e){return this.stream.unshift(e)}wrap(e){return this.stream.wrap(e)}}t.exports={ZipWriter:a}}).call(this)}).call(this,e(\"_process\"))},{\"./browser-buffer-encode\":17,\"./stream-buf\":24,_process:467,events:422,jszip:441}],30:[function(e,t,r){\"use strict\";t.exports={0:{f:\"General\"},1:{f:\"0\"},2:{f:\"0.00\"},3:{f:\"#,##0\"},4:{f:\"#,##0.00\"},9:{f:\"0%\"},10:{f:\"0.00%\"},11:{f:\"0.00E+00\"},12:{f:\"# ?/?\"},13:{f:\"# ??/??\"},14:{f:\"mm-dd-yy\"},15:{f:\"d-mmm-yy\"},16:{f:\"d-mmm\"},17:{f:\"mmm-yy\"},18:{f:\"h:mm AM/PM\"},19:{f:\"h:mm:ss AM/PM\"},20:{f:\"h:mm\"},21:{f:\"h:mm:ss\"},22:{f:'m/d/yy \"h\":mm'},27:{\"zh-tw\":\"[$-404]e/m/d\",\"zh-cn\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ja-jp\":\"[$-411]ge.m.d\",\"ko-kr\":'yyyy\"\\u5e74\" mm\"\\u6708\" dd\"\\u65e5\"'},28:{\"zh-tw\":'[$-404]e\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"zh-cn\":'m\"\\u6708\"d\"\\u65e5\"',\"ja-jp\":'[$-411]ggge\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"mm-dd\"},29:{\"zh-tw\":'[$-404]e\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"zh-cn\":'m\"\\u6708\"d\"\\u65e5\"',\"ja-jp\":'[$-411]ggge\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"mm-dd\"},30:{\"zh-tw\":\"m/d/yy \",\"zh-cn\":\"m-d-yy\",\"ja-jp\":\"m/d/yy\",\"ko-kr\":\"mm-dd-yy\"},31:{\"zh-tw\":'yyyy\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"zh-cn\":'yyyy\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"ja-jp\":'yyyy\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":'yyyy\"\\ub144\" mm\"\\uc6d4\" dd\"\\uc77c\"'},32:{\"zh-tw\":'hh\"\\u6642\"mm\"\\u5206\"',\"zh-cn\":'h\"\\u65f6\"mm\"\\u5206\"',\"ja-jp\":'h\"\\u6642\"mm\"\\u5206\"',\"ko-kr\":'h\"\\uc2dc\" mm\"\\ubd84\"'},33:{\"zh-tw\":'hh\"\\u6642\"mm\"\\u5206\"ss\"\\u79d2\"',\"zh-cn\":'h\"\\u65f6\"mm\"\\u5206\"ss\"\\u79d2\"',\"ja-jp\":'h\"\\u6642\"mm\"\\u5206\"ss\"\\u79d2\"',\"ko-kr\":'h\"\\uc2dc\" mm\"\\ubd84\" ss\"\\ucd08\"'},34:{\"zh-tw\":'\\u4e0a\\u5348/\\u4e0b\\u5348 hh\"\\u6642\"mm\"\\u5206\"',\"zh-cn\":'\\u4e0a\\u5348/\\u4e0b\\u5348 h\"\\u65f6\"mm\"\\u5206\"',\"ja-jp\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ko-kr\":\"yyyy-mm-dd\"},35:{\"zh-tw\":'\\u4e0a\\u5348/\\u4e0b\\u5348 hh\"\\u6642\"mm\"\\u5206\"ss\"\\u79d2\"',\"zh-cn\":'\\u4e0a\\u5348/\\u4e0b\\u5348 h\"\\u65f6\"mm\"\\u5206\"ss\"\\u79d2\"',\"ja-jp\":'m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"yyyy-mm-dd\"},36:{\"zh-tw\":\"[$-404]e/m/d\",\"zh-cn\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ja-jp\":\"[$-411]ge.m.d\",\"ko-kr\":'yyyy\"\\u5e74\" mm\"\\u6708\" dd\"\\u65e5\"'},37:{f:\"#,##0 ;(#,##0)\"},38:{f:\"#,##0 ;[Red](#,##0)\"},39:{f:\"#,##0.00 ;(#,##0.00)\"},40:{f:\"#,##0.00 ;[Red](#,##0.00)\"},45:{f:\"mm:ss\"},46:{f:\"[h]:mm:ss\"},47:{f:\"mmss.0\"},48:{f:\"##0.0E+0\"},49:{f:\"@\"},50:{\"zh-tw\":\"[$-404]e/m/d\",\"zh-cn\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ja-jp\":\"[$-411]ge.m.d\",\"ko-kr\":'yyyy\"\\u5e74\" mm\"\\u6708\" dd\"\\u65e5\"'},51:{\"zh-tw\":'[$-404]e\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"zh-cn\":'m\"\\u6708\"d\"\\u65e5\"',\"ja-jp\":'[$-411]ggge\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"mm-dd\"},52:{\"zh-tw\":'\\u4e0a\\u5348/\\u4e0b\\u5348 hh\"\\u6642\"mm\"\\u5206\"',\"zh-cn\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ja-jp\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ko-kr\":\"yyyy-mm-dd\"},53:{\"zh-tw\":'\\u4e0a\\u5348/\\u4e0b\\u5348 hh\"\\u6642\"mm\"\\u5206\"ss\"\\u79d2\"',\"zh-cn\":'m\"\\u6708\"d\"\\u65e5\"',\"ja-jp\":'m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"yyyy-mm-dd\"},54:{\"zh-tw\":'[$-404]e\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"zh-cn\":'m\"\\u6708\"d\"\\u65e5\"',\"ja-jp\":'[$-411]ggge\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"mm-dd\"},55:{\"zh-tw\":'\\u4e0a\\u5348/\\u4e0b\\u5348 hh\"\\u6642\"mm\"\\u5206\"',\"zh-cn\":'\\u4e0a\\u5348/\\u4e0b\\u5348 h\"\\u65f6\"mm\"\\u5206\"',\"ja-jp\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ko-kr\":\"yyyy-mm-dd\"},56:{\"zh-tw\":'\\u4e0a\\u5348/\\u4e0b\\u5348 hh\"\\u6642\"mm\"\\u5206\"ss\"\\u79d2\"',\"zh-cn\":'\\u4e0a\\u5348/\\u4e0b\\u5348 h\"\\u65f6\"mm\"\\u5206\"ss\"\\u79d2\"',\"ja-jp\":'m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"yyyy-mm-dd\"},57:{\"zh-tw\":\"[$-404]e/m/d\",\"zh-cn\":'yyyy\"\\u5e74\"m\"\\u6708\"',\"ja-jp\":\"[$-411]ge.m.d\",\"ko-kr\":'yyyy\"\\u5e74\" mm\"\\u6708\" dd\"\\u65e5\"'},58:{\"zh-tw\":'[$-404]e\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"zh-cn\":'m\"\\u6708\"d\"\\u65e5\"',\"ja-jp\":'[$-411]ggge\"\\u5e74\"m\"\\u6708\"d\"\\u65e5\"',\"ko-kr\":\"mm-dd\"},59:{\"th-th\":\"t0\"},60:{\"th-th\":\"t0.00\"},61:{\"th-th\":\"t#,##0\"},62:{\"th-th\":\"t#,##0.00\"},67:{\"th-th\":\"t0%\"},68:{\"th-th\":\"t0.00%\"},69:{\"th-th\":\"t# ?/?\"},70:{\"th-th\":\"t# ??/??\"},81:{\"th-th\":\"d/m/bb\"}}},{}],31:[function(e,t,r){\"use strict\";t.exports={OfficeDocument:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",Worksheet:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",CalcChain:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/calcChain\",SharedStrings:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",Styles:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",Theme:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",Hyperlink:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",Image:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",CoreProperties:\"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",ExtenderProperties:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\",Comments:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",VmlDrawing:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",Table:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/table\"}},{}],32:[function(e,t,r){\"use strict\";const n=e(\"../../utils/parse-sax\"),i=e(\"../../utils/xml-stream\");class s{prepare(){}render(){}parseOpen(e){}parseText(e){}parseClose(e){}reconcile(e,t){}reset(){this.model=null,this.map&&Object.values(this.map).forEach(e=>{e instanceof s?e.reset():e.xform&&e.xform.reset()})}mergeModel(e){this.model=Object.assign(this.model||{},e)}async parse(e){for await(const t of e)for(const{eventType:e,value:r}of t)if(\"opentag\"===e)this.parseOpen(r);else if(\"text\"===e)this.parseText(r);else if(\"closetag\"===e&&!this.parseClose(r.name))return this.model;return this.model}async parseStream(e){return this.parse(n(e))}get xml(){return this.toXml(this.model)}toXml(e){const t=new i;return this.render(t,e),t.xml}static toAttribute(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(void 0===e){if(r)return t}else if(r||e!==t)return e.toString()}static toStringAttribute(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return s.toAttribute(e,t,r)}static toStringValue(e,t){return void 0===e?t:e}static toBoolAttribute(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(void 0===e){if(r)return t}else if(r||e!==t)return e?\"1\":\"0\"}static toBoolValue(e,t){return void 0===e?t:\"1\"===e}static toIntAttribute(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return s.toAttribute(e,t,r)}static toIntValue(e,t){return void 0===e?t:parseInt(e,10)}static toFloatAttribute(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return s.toAttribute(e,t,r)}static toFloatValue(e,t){return void 0===e?t:parseFloat(e)}}t.exports=s},{\"../../utils/parse-sax\":22,\"../../utils/xml-stream\":28}],33:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"../../../utils/col-cache\");function s(e){try{return i.decodeEx(e),!0}catch(e){return!1}}function o(e){const t=[];let r=!1,n=\"\";return e.split(\",\").forEach(e=>{if(!e)return;const i=(e.match(/'/g)||[]).length;if(!i)return void(r?n+=e+\",\":s(e)&&t.push(e));const o=i%2==0;!r&&o&&s(e)?t.push(e):r&&!o?(r=!1,s(n+e)&&t.push(n+e),n=\"\"):(r=!0,n+=e+\",\")}),t}t.exports=class extends n{render(e,t){e.openNode(\"definedName\",{name:t.name,localSheetId:t.localSheetId}),e.writeText(t.ranges.join(\",\")),e.closeNode()}parseOpen(e){switch(e.name){case\"definedName\":return this._parsedName=e.attributes.name,this._parsedLocalSheetId=e.attributes.localSheetId,this._parsedText=[],!0;default:return!1}}parseText(e){this._parsedText.push(e)}parseClose(){return this.model={name:this._parsedName,ranges:o(this._parsedText.join(\"\"))},void 0!==this._parsedLocalSheetId&&(this.model.localSheetId=parseInt(this._parsedLocalSheetId,10)),!1}}},{\"../../../utils/col-cache\":19,\"../base-xform\":32}],34:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/utils\"),i=e(\"../base-xform\");t.exports=class extends i{render(e,t){e.leafNode(\"sheet\",{sheetId:t.id,name:t.name,state:t.state,\"r:id\":t.rId})}parseOpen(e){return\"sheet\"===e.name&&(this.model={name:n.xmlDecode(e.attributes.name),id:parseInt(e.attributes.sheetId,10),state:e.attributes.state,rId:e.attributes[\"r:id\"]},!0)}parseText(){}parseClose(){return!1}}},{\"../../../utils/utils\":27,\"../base-xform\":32}],35:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{render(e,t){e.leafNode(\"calcPr\",{calcId:171027,fullCalcOnLoad:t.fullCalcOnLoad?1:void 0})}parseOpen(e){return\"calcPr\"===e.name&&(this.model={},!0)}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],36:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{render(e,t){e.leafNode(\"workbookPr\",{date1904:t.date1904?1:void 0,defaultThemeVersion:164011,filterPrivacy:1})}parseOpen(e){return\"workbookPr\"===e.name&&(this.model={date1904:\"1\"===e.attributes.date1904},!0)}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],37:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{render(e,t){const r={xWindow:t.x||0,yWindow:t.y||0,windowWidth:t.width||12e3,windowHeight:t.height||24e3,firstSheet:t.firstSheet,activeTab:t.activeTab};t.visibility&&\"visible\"!==t.visibility&&(r.visibility=t.visibility),e.leafNode(\"workbookView\",r)}parseOpen(e){if(\"workbookView\"===e.name){const t=this.model={},r=function(e,r,n){const i=void 0!==r?t[e]=r:n;void 0!==i&&(t[e]=i)},n=function(e,r,n){const i=void 0!==r?t[e]=parseInt(r,10):n;void 0!==i&&(t[e]=i)};return n(\"x\",e.attributes.xWindow,0),n(\"y\",e.attributes.yWindow,0),n(\"width\",e.attributes.windowWidth,25e3),n(\"height\",e.attributes.windowHeight,1e4),r(\"visibility\",e.attributes.visibility,\"visible\"),n(\"activeTab\",e.attributes.activeTab,void 0),n(\"firstSheet\",e.attributes.firstSheet,void 0),!0}return!1}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],38:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/under-dash\"),i=e(\"../../../utils/col-cache\"),s=e(\"../../../utils/xml-stream\"),o=e(\"../base-xform\"),a=e(\"../static-xform\"),l=e(\"../list-xform\"),c=e(\"./defined-name-xform\"),u=e(\"./sheet-xform\"),h=e(\"./workbook-view-xform\"),f=e(\"./workbook-properties-xform\"),d=e(\"./workbook-calc-properties-xform\");class p extends o{constructor(){super(),this.map={fileVersion:p.STATIC_XFORMS.fileVersion,workbookPr:new f,bookViews:new l({tag:\"bookViews\",count:!1,childXform:new h}),sheets:new l({tag:\"sheets\",count:!1,childXform:new u}),definedNames:new l({tag:\"definedNames\",count:!1,childXform:new c}),calcPr:new d}}prepare(e){e.sheets=e.worksheets;const t=[];let r=0;e.sheets.forEach(e=>{if(e.pageSetup&&e.pageSetup.printArea&&e.pageSetup.printArea.split(\"&&\").forEach(n=>{const i=n.split(\":\"),s={name:\"_xlnm.Print_Area\",ranges:[`'${e.name}'!$${i[0]}:$${i[1]}`],localSheetId:r};t.push(s)}),e.pageSetup&&(e.pageSetup.printTitlesRow||e.pageSetup.printTitlesColumn)){const n=[];if(e.pageSetup.printTitlesColumn){const t=e.pageSetup.printTitlesColumn.split(\":\");n.push(`'${e.name}'!$${t[0]}:$${t[1]}`)}if(e.pageSetup.printTitlesRow){const t=e.pageSetup.printTitlesRow.split(\":\");n.push(`'${e.name}'!$${t[0]}:$${t[1]}`)}const i={name:\"_xlnm.Print_Titles\",ranges:n,localSheetId:r};t.push(i)}r++}),t.length&&(e.definedNames=e.definedNames.concat(t)),(e.media||[]).forEach((e,t)=>{e.name=e.type+(t+1)})}render(e,t){e.openXml(s.StdDocAttributes),e.openNode(\"workbook\",p.WORKBOOK_ATTRIBUTES),this.map.fileVersion.render(e),this.map.workbookPr.render(e,t.properties),this.map.bookViews.render(e,t.views),this.map.sheets.render(e,t.sheets),this.map.definedNames.render(e,t.definedNames),this.map.calcPr.render(e,t.calcProperties),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"workbook\":return!0;default:return this.parser=this.map[e.name],this.parser&&this.parser.parseOpen(e),!0}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case\"workbook\":return this.model={sheets:this.map.sheets.model,properties:this.map.workbookPr.model||{},views:this.map.bookViews.model,calcProperties:{}},this.map.definedNames.model&&(this.model.definedNames=this.map.definedNames.model),!1;default:return!0}}reconcile(e){const t=(e.workbookRels||[]).reduce((e,t)=>(e[t.Id]=t,e),{}),r=[];let s,o=0;(e.sheets||[]).forEach(n=>{const i=t[n.rId];i&&(s=e.worksheetHash[\"xl/\"+i.Target.replace(/^(\\s|\\/xl\\/)+/,\"\")],s&&(s.name=n.name,s.id=n.id,s.state=n.state,r[o++]=s))});const a=[];n.each(e.definedNames,e=>{if(\"_xlnm.Print_Area\"===e.name){if(s=r[e.localSheetId],s){s.pageSetup||(s.pageSetup={});const t=i.decodeEx(e.ranges[0]);s.pageSetup.printArea=s.pageSetup.printArea?`${s.pageSetup.printArea}&&${t.dimensions}`:t.dimensions}}else if(\"_xlnm.Print_Titles\"===e.name){if(s=r[e.localSheetId],s){s.pageSetup||(s.pageSetup={});const t=e.ranges.join(\",\"),r=/\\$/g,n=/\\$\\d+:\\$\\d+/,i=t.match(n);if(i&&i.length){const e=i[0];s.pageSetup.printTitlesRow=e.replace(r,\"\")}const o=/\\$[A-Z]+:\\$[A-Z]+/,a=t.match(o);if(a&&a.length){const e=a[0];s.pageSetup.printTitlesColumn=e.replace(r,\"\")}}}else a.push(e)}),e.definedNames=a,e.media.forEach((e,t)=>{e.index=t})}}p.WORKBOOK_ATTRIBUTES={xmlns:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\",\"xmlns:r\":\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\",\"xmlns:mc\":\"http://schemas.openxmlformats.org/markup-compatibility/2006\",\"mc:Ignorable\":\"x15\",\"xmlns:x15\":\"http://schemas.microsoft.com/office/spreadsheetml/2010/11/main\"},p.STATIC_XFORMS={fileVersion:new a({tag:\"fileVersion\",$:{appName:\"xl\",lastEdited:5,lowestEdited:5,rupBuild:9303}})},t.exports=p},{\"../../../utils/col-cache\":19,\"../../../utils/under-dash\":26,\"../../../utils/xml-stream\":28,\"../base-xform\":32,\"../list-xform\":71,\"../static-xform\":120,\"./defined-name-xform\":33,\"./sheet-xform\":34,\"./workbook-calc-properties-xform\":35,\"./workbook-properties-xform\":36,\"./workbook-view-xform\":37}],39:[function(e,t,r){\"use strict\";const n=e(\"../strings/rich-text-xform\"),i=e(\"../../../utils/utils\"),s=e(\"../base-xform\"),o=t.exports=function(e){this.model=e};i.inherits(o,s,{get tag(){return\"r\"},get richTextXform(){return this._richTextXform||(this._richTextXform=new n),this._richTextXform},render(e,t){t=t||this.model,e.openNode(\"comment\",{ref:t.ref,authorId:0}),e.openNode(\"text\"),t&&t.note&&t.note.texts&&t.note.texts.forEach(t=>{this.richTextXform.render(e,t)}),e.closeNode(),e.closeNode()},parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"comment\":return this.model={type:\"note\",note:{texts:[]},...e.attributes},!0;case\"r\":return this.parser=this.richTextXform,this.parser.parseOpen(e),!0;default:return!1}},parseText(e){this.parser&&this.parser.parseText(e)},parseClose(e){switch(e){case\"comment\":return!1;case\"r\":return this.model.note.texts.push(this.parser.model),this.parser=void 0,!0;default:return this.parser&&this.parser.parseClose(e),!0}}})},{\"../../../utils/utils\":27,\"../base-xform\":32,\"../strings/rich-text-xform\":122}],40:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/xml-stream\"),i=e(\"../../../utils/utils\"),s=e(\"../base-xform\"),o=e(\"./comment-xform\"),a=t.exports=function(){this.map={comment:new o}};i.inherits(a,s,{COMMENTS_ATTRIBUTES:{xmlns:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\"}},{render(e,t){t=t||this.model,e.openXml(n.StdDocAttributes),e.openNode(\"comments\",a.COMMENTS_ATTRIBUTES),e.openNode(\"authors\"),e.leafNode(\"author\",null,\"Author\"),e.closeNode(),e.openNode(\"commentList\"),t.comments.forEach(t=>{this.map.comment.render(e,t)}),e.closeNode(),e.closeNode()},parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"commentList\":return this.model={comments:[]},!0;case\"comment\":return this.parser=this.map.comment,this.parser.parseOpen(e),!0;default:return!1}},parseText(e){this.parser&&this.parser.parseText(e)},parseClose(e){switch(e){case\"commentList\":return!1;case\"comment\":return this.model.comments.push(this.parser.model),this.parser=void 0,!0;default:return this.parser&&this.parser.parseClose(e),!0}}})},{\"../../../utils/utils\":27,\"../../../utils/xml-stream\":28,\"../base-xform\":32,\"./comment-xform\":39}],41:[function(e,t,r){\"use strict\";const n=e(\"../../base-xform\");t.exports=class extends n{constructor(e){super(),this._model=e}get tag(){return this._model&&this._model.tag}render(e,t,r){(t===r[2]||\"x:SizeWithCells\"===this.tag&&t===r[1])&&e.leafNode(this.tag)}parseOpen(e){switch(e.name){case this.tag:return this.model={},this.model[this.tag]=!0,!0;default:return!1}}parseText(){}parseClose(){return!1}}},{\"../../base-xform\":32}],42:[function(e,t,r){\"use strict\";const n=e(\"../../base-xform\");t.exports=class extends n{constructor(e){super(),this._model=e}get tag(){return this._model&&this._model.tag}render(e,t){e.leafNode(this.tag,null,t)}parseOpen(e){switch(e.name){case this.tag:return this.text=\"\",!0;default:return!1}}parseText(e){this.text=e}parseClose(){return!1}}},{\"../../base-xform\":32}],43:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"x:Anchor\"}getAnchorRect(e){const t=Math.floor(e.left),r=Math.floor(68*(e.left-t)),n=Math.floor(e.top),i=Math.floor(18*(e.top-n)),s=Math.floor(e.right),o=Math.floor(68*(e.right-s)),a=Math.floor(e.bottom);return[t,r,n,i,s,o,a,Math.floor(18*(e.bottom-a))]}getDefaultRect(e){const t=e.col,r=Math.max(e.row-2,0);return[t,6,r,14,t+2,2,r+4,16]}render(e,t){const r=t.anchor?this.getAnchorRect(t.anchor):this.getDefaultRect(t.refAddress);e.leafNode(\"x:Anchor\",null,r.join(\", \"))}parseOpen(e){switch(e.name){case this.tag:return this.text=\"\",!0;default:return!1}}parseText(e){this.text=e}parseClose(){return!1}}},{\"../base-xform\":32}],44:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"./vml-anchor-xform\"),s=e(\"./style/vml-protection-xform\"),o=e(\"./style/vml-position-xform\"),a=[\"twoCells\",\"oneCells\",\"absolute\"];t.exports=class extends n{constructor(){super(),this.map={\"x:Anchor\":new i,\"x:Locked\":new s({tag:\"x:Locked\"}),\"x:LockText\":new s({tag:\"x:LockText\"}),\"x:SizeWithCells\":new o({tag:\"x:SizeWithCells\"}),\"x:MoveWithCells\":new o({tag:\"x:MoveWithCells\"})}}get tag(){return\"x:ClientData\"}render(e,t){const{protection:r,editAs:n}=t.note;e.openNode(this.tag,{ObjectType:\"Note\"}),this.map[\"x:MoveWithCells\"].render(e,n,a),this.map[\"x:SizeWithCells\"].render(e,n,a),this.map[\"x:Anchor\"].render(e,t),this.map[\"x:Locked\"].render(e,r.locked),e.leafNode(\"x:AutoFill\",null,\"False\"),this.map[\"x:LockText\"].render(e,r.lockText),e.leafNode(\"x:Row\",null,t.refAddress.row-1),e.leafNode(\"x:Column\",null,t.refAddress.col-1),e.closeNode()}parseOpen(e){switch(e.name){case this.tag:this.reset(),this.model={anchor:[],protection:{},editAs:\"\"};break;default:this.parser=this.map[e.name],this.parser&&this.parser.parseOpen(e)}return!0}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case this.tag:return this.normalizeModel(),!1;default:return!0}}normalizeModel(){const e=Object.assign({},this.map[\"x:MoveWithCells\"].model,this.map[\"x:SizeWithCells\"].model),t=Object.keys(e).length;this.model.editAs=a[t],this.model.anchor=this.map[\"x:Anchor\"].text,this.model.protection.locked=this.map[\"x:Locked\"].text,this.model.protection.lockText=this.map[\"x:LockText\"].text}}},{\"../base-xform\":32,\"./style/vml-position-xform\":41,\"./style/vml-protection-xform\":42,\"./vml-anchor-xform\":43}],45:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/xml-stream\"),i=e(\"../base-xform\"),s=e(\"./vml-shape-xform\");class o extends i{constructor(){super(),this.map={\"v:shape\":new s}}get tag(){return\"xml\"}render(e,t){e.openXml(n.StdDocAttributes),e.openNode(this.tag,o.DRAWING_ATTRIBUTES),e.openNode(\"o:shapelayout\",{\"v:ext\":\"edit\"}),e.leafNode(\"o:idmap\",{\"v:ext\":\"edit\",data:1}),e.closeNode(),e.openNode(\"v:shapetype\",{id:\"_x0000_t202\",coordsize:\"21600,21600\",\"o:spt\":202,path:\"m,l,21600r21600,l21600,xe\"}),e.leafNode(\"v:stroke\",{joinstyle:\"miter\"}),e.leafNode(\"v:path\",{gradientshapeok:\"t\",\"o:connecttype\":\"rect\"}),e.closeNode(),t.comments.forEach((t,r)=>{this.map[\"v:shape\"].render(e,t,r)}),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case this.tag:this.reset(),this.model={comments:[]};break;default:this.parser=this.map[e.name],this.parser&&this.parser.parseOpen(e)}return!0}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.model.comments.push(this.parser.model),this.parser=void 0),!0;switch(e){case this.tag:return!1;default:return!0}}reconcile(e,t){e.anchors.forEach(e=>{e.br?this.map[\"xdr:twoCellAnchor\"].reconcile(e,t):this.map[\"xdr:oneCellAnchor\"].reconcile(e,t)})}}o.DRAWING_ATTRIBUTES={\"xmlns:v\":\"urn:schemas-microsoft-com:vml\",\"xmlns:o\":\"urn:schemas-microsoft-com:office:office\",\"xmlns:x\":\"urn:schemas-microsoft-com:office:excel\"},t.exports=o},{\"../../../utils/xml-stream\":28,\"../base-xform\":32,\"./vml-shape-xform\":46}],46:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"./vml-textbox-xform\"),s=e(\"./vml-client-data-xform\");class o extends n{constructor(){super(),this.map={\"v:textbox\":new i,\"x:ClientData\":new s}}get tag(){return\"v:shape\"}render(e,t,r){e.openNode(\"v:shape\",o.V_SHAPE_ATTRIBUTES(t,r)),e.leafNode(\"v:fill\",{color2:\"infoBackground [80]\"}),e.leafNode(\"v:shadow\",{color:\"none [81]\",obscured:\"t\"}),e.leafNode(\"v:path\",{\"o:connecttype\":\"none\"}),this.map[\"v:textbox\"].render(e,t),this.map[\"x:ClientData\"].render(e,t),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case this.tag:this.reset(),this.model={margins:{insetmode:e.attributes[\"o:insetmode\"]},anchor:\"\",editAs:\"\",protection:{}};break;default:this.parser=this.map[e.name],this.parser&&this.parser.parseOpen(e)}return!0}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case this.tag:return this.model.margins.inset=this.map[\"v:textbox\"].model&&this.map[\"v:textbox\"].model.inset,this.model.protection=this.map[\"x:ClientData\"].model&&this.map[\"x:ClientData\"].model.protection,this.model.anchor=this.map[\"x:ClientData\"].model&&this.map[\"x:ClientData\"].model.anchor,this.model.editAs=this.map[\"x:ClientData\"].model&&this.map[\"x:ClientData\"].model.editAs,!1;default:return!0}}}o.V_SHAPE_ATTRIBUTES=(e,t)=>({id:\"_x0000_s\"+(1025+t),type:\"#_x0000_t202\",style:\"position:absolute; margin-left:105.3pt;margin-top:10.5pt;width:97.8pt;height:59.1pt;z-index:1;visibility:hidden\",fillcolor:\"infoBackground [80]\",strokecolor:\"none [81]\",\"o:insetmode\":e.note.margins&&e.note.margins.insetmode}),t.exports=o},{\"../base-xform\":32,\"./vml-client-data-xform\":44,\"./vml-textbox-xform\":47}],47:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"v:textbox\"}conversionUnit(e,t,r){return`${parseFloat(e)*t.toFixed(2)}${r}`}reverseConversionUnit(e){return(e||\"\").split(\",\").map(e=>Number(parseFloat(this.conversionUnit(parseFloat(e),.1,\"\")).toFixed(2)))}render(e,t){const r={style:\"mso-direction-alt:auto\"};if(t&&t.note){let{inset:e}=t.note&&t.note.margins;Array.isArray(e)&&(e=e.map(e=>this.conversionUnit(e,10,\"mm\")).join(\",\")),e&&(r.inset=e)}e.openNode(\"v:textbox\",r),e.leafNode(\"div\",{style:\"text-align:left\"}),e.closeNode()}parseOpen(e){switch(e.name){case this.tag:return this.model={inset:this.reverseConversionUnit(e.attributes.inset)},!0;default:return!0}}parseText(){}parseClose(e){switch(e){case this.tag:return!1;default:return!0}}}},{\"../base-xform\":32}],48:[function(e,t,r){\"use strict\";const n=e(\"./base-xform\");t.exports=class extends n{createNewModel(e){return{}}parseOpen(e){return this.parser=this.parser||this.map[e.name],this.parser?(this.parser.parseOpen(e),!0):e.name===this.tag&&(this.model=this.createNewModel(e),!0)}parseText(e){this.parser&&this.parser.parseText(e)}onParserClose(e,t){this.model[e]=t.model}parseClose(e){return this.parser?(this.parser.parseClose(e)||(this.onParserClose(e,this.parser),this.parser=void 0),!0):e!==this.tag}}},{\"./base-xform\":32}],49:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{render(e,t){e.openNode(\"HeadingPairs\"),e.openNode(\"vt:vector\",{size:2,baseType:\"variant\"}),e.openNode(\"vt:variant\"),e.leafNode(\"vt:lpstr\",void 0,\"Worksheets\"),e.closeNode(),e.openNode(\"vt:variant\"),e.leafNode(\"vt:i4\",void 0,t.length),e.closeNode(),e.closeNode(),e.closeNode()}parseOpen(e){return\"HeadingPairs\"===e.name}parseText(){}parseClose(e){return\"HeadingPairs\"!==e}}},{\"../base-xform\":32}],50:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{render(e,t){e.openNode(\"TitlesOfParts\"),e.openNode(\"vt:vector\",{size:t.length,baseType:\"lpstr\"}),t.forEach(t=>{e.leafNode(\"vt:lpstr\",void 0,t.name)}),e.closeNode(),e.closeNode()}parseOpen(e){return\"TitlesOfParts\"===e.name}parseText(){}parseClose(e){return\"TitlesOfParts\"!==e}}},{\"../base-xform\":32}],51:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/xml-stream\"),i=e(\"../base-xform\"),s=e(\"../simple/string-xform\"),o=e(\"./app-heading-pairs-xform\"),a=e(\"./app-titles-of-parts-xform\");class l extends i{constructor(){super(),this.map={Company:new s({tag:\"Company\"}),Manager:new s({tag:\"Manager\"}),HeadingPairs:new o,TitleOfParts:new a}}render(e,t){e.openXml(n.StdDocAttributes),e.openNode(\"Properties\",l.PROPERTY_ATTRIBUTES),e.leafNode(\"Application\",void 0,\"Microsoft Excel\"),e.leafNode(\"DocSecurity\",void 0,\"0\"),e.leafNode(\"ScaleCrop\",void 0,\"false\"),this.map.HeadingPairs.render(e,t.worksheets),this.map.TitleOfParts.render(e,t.worksheets),this.map.Company.render(e,t.company||\"\"),this.map.Manager.render(e,t.manager),e.leafNode(\"LinksUpToDate\",void 0,\"false\"),e.leafNode(\"SharedDoc\",void 0,\"false\"),e.leafNode(\"HyperlinksChanged\",void 0,\"false\"),e.leafNode(\"AppVersion\",void 0,\"16.0300\"),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"Properties\":return!0;default:return this.parser=this.map[e.name],!!this.parser&&(this.parser.parseOpen(e),!0)}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case\"Properties\":return this.model={worksheets:this.map.TitleOfParts.model,company:this.map.Company.model,manager:this.map.Manager.model},!1;default:return!0}}}l.DateFormat=function(e){return e.toISOString().replace(/[.]\\d{3,6}/,\"\")},l.DateAttrs={\"xsi:type\":\"dcterms:W3CDTF\"},l.PROPERTY_ATTRIBUTES={xmlns:\"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\"xmlns:vt\":\"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes\"},t.exports=l},{\"../../../utils/xml-stream\":28,\"../base-xform\":32,\"../simple/string-xform\":119,\"./app-heading-pairs-xform\":49,\"./app-titles-of-parts-xform\":50}],52:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/xml-stream\"),i=e(\"../base-xform\");class s extends i{render(e,t){e.openXml(n.StdDocAttributes),e.openNode(\"Types\",s.PROPERTY_ATTRIBUTES);const r={};(t.media||[]).forEach(t=>{if(\"image\"===t.type){const n=t.extension;r[n]||(r[n]=!0,e.leafNode(\"Default\",{Extension:n,ContentType:\"image/\"+n}))}}),e.leafNode(\"Default\",{Extension:\"rels\",ContentType:\"application/vnd.openxmlformats-package.relationships+xml\"}),e.leafNode(\"Default\",{Extension:\"xml\",ContentType:\"application/xml\"}),e.leafNode(\"Override\",{PartName:\"/xl/workbook.xml\",ContentType:\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\"}),t.worksheets.forEach(t=>{const r=`/xl/worksheets/sheet${t.id}.xml`;e.leafNode(\"Override\",{PartName:r,ContentType:\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\"})}),e.leafNode(\"Override\",{PartName:\"/xl/theme/theme1.xml\",ContentType:\"application/vnd.openxmlformats-officedocument.theme+xml\"}),e.leafNode(\"Override\",{PartName:\"/xl/styles.xml\",ContentType:\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\"});t.sharedStrings&&t.sharedStrings.count&&e.leafNode(\"Override\",{PartName:\"/xl/sharedStrings.xml\",ContentType:\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\"}),t.tables&&t.tables.forEach(t=>{e.leafNode(\"Override\",{PartName:\"/xl/tables/\"+t.target,ContentType:\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\"})}),t.drawings&&t.drawings.forEach(t=>{e.leafNode(\"Override\",{PartName:`/xl/drawings/${t.name}.xml`,ContentType:\"application/vnd.openxmlformats-officedocument.drawing+xml\"})}),t.commentRefs&&(e.leafNode(\"Default\",{Extension:\"vml\",ContentType:\"application/vnd.openxmlformats-officedocument.vmlDrawing\"}),t.commentRefs.forEach(t=>{let{commentName:r}=t;e.leafNode(\"Override\",{PartName:`/xl/${r}.xml`,ContentType:\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\"})})),e.leafNode(\"Override\",{PartName:\"/docProps/core.xml\",ContentType:\"application/vnd.openxmlformats-package.core-properties+xml\"}),e.leafNode(\"Override\",{PartName:\"/docProps/app.xml\",ContentType:\"application/vnd.openxmlformats-officedocument.extended-properties+xml\"}),e.closeNode()}parseOpen(){return!1}parseText(){}parseClose(){return!1}}s.PROPERTY_ATTRIBUTES={xmlns:\"http://schemas.openxmlformats.org/package/2006/content-types\"},t.exports=s},{\"../../../utils/xml-stream\":28,\"../base-xform\":32}],53:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/xml-stream\"),i=e(\"../base-xform\"),s=e(\"../simple/date-xform\"),o=e(\"../simple/string-xform\"),a=e(\"../simple/integer-xform\");class l extends i{constructor(){super(),this.map={\"dc:creator\":new o({tag:\"dc:creator\"}),\"dc:title\":new o({tag:\"dc:title\"}),\"dc:subject\":new o({tag:\"dc:subject\"}),\"dc:description\":new o({tag:\"dc:description\"}),\"dc:identifier\":new o({tag:\"dc:identifier\"}),\"dc:language\":new o({tag:\"dc:language\"}),\"cp:keywords\":new o({tag:\"cp:keywords\"}),\"cp:category\":new o({tag:\"cp:category\"}),\"cp:lastModifiedBy\":new o({tag:\"cp:lastModifiedBy\"}),\"cp:lastPrinted\":new s({tag:\"cp:lastPrinted\",format:l.DateFormat}),\"cp:revision\":new a({tag:\"cp:revision\"}),\"cp:version\":new o({tag:\"cp:version\"}),\"cp:contentStatus\":new o({tag:\"cp:contentStatus\"}),\"cp:contentType\":new o({tag:\"cp:contentType\"}),\"dcterms:created\":new s({tag:\"dcterms:created\",attrs:l.DateAttrs,format:l.DateFormat}),\"dcterms:modified\":new s({tag:\"dcterms:modified\",attrs:l.DateAttrs,format:l.DateFormat})}}render(e,t){e.openXml(n.StdDocAttributes),e.openNode(\"cp:coreProperties\",l.CORE_PROPERTY_ATTRIBUTES),this.map[\"dc:creator\"].render(e,t.creator),this.map[\"dc:title\"].render(e,t.title),this.map[\"dc:subject\"].render(e,t.subject),this.map[\"dc:description\"].render(e,t.description),this.map[\"dc:identifier\"].render(e,t.identifier),this.map[\"dc:language\"].render(e,t.language),this.map[\"cp:keywords\"].render(e,t.keywords),this.map[\"cp:category\"].render(e,t.category),this.map[\"cp:lastModifiedBy\"].render(e,t.lastModifiedBy),this.map[\"cp:lastPrinted\"].render(e,t.lastPrinted),this.map[\"cp:revision\"].render(e,t.revision),this.map[\"cp:version\"].render(e,t.version),this.map[\"cp:contentStatus\"].render(e,t.contentStatus),this.map[\"cp:contentType\"].render(e,t.contentType),this.map[\"dcterms:created\"].render(e,t.created),this.map[\"dcterms:modified\"].render(e,t.modified),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"cp:coreProperties\":case\"coreProperties\":return!0;default:if(this.parser=this.map[e.name],this.parser)return this.parser.parseOpen(e),!0;throw new Error(\"Unexpected xml node in parseOpen: \"+JSON.stringify(e))}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case\"cp:coreProperties\":case\"coreProperties\":return this.model={creator:this.map[\"dc:creator\"].model,title:this.map[\"dc:title\"].model,subject:this.map[\"dc:subject\"].model,description:this.map[\"dc:description\"].model,identifier:this.map[\"dc:identifier\"].model,language:this.map[\"dc:language\"].model,keywords:this.map[\"cp:keywords\"].model,category:this.map[\"cp:category\"].model,lastModifiedBy:this.map[\"cp:lastModifiedBy\"].model,lastPrinted:this.map[\"cp:lastPrinted\"].model,revision:this.map[\"cp:revision\"].model,contentStatus:this.map[\"cp:contentStatus\"].model,contentType:this.map[\"cp:contentType\"].model,created:this.map[\"dcterms:created\"].model,modified:this.map[\"dcterms:modified\"].model},!1;default:throw new Error(\"Unexpected xml node in parseClose: \"+e)}}}l.DateFormat=function(e){return e.toISOString().replace(/[.]\\d{3}/,\"\")},l.DateAttrs={\"xsi:type\":\"dcterms:W3CDTF\"},l.CORE_PROPERTY_ATTRIBUTES={\"xmlns:cp\":\"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\",\"xmlns:dc\":\"http://purl.org/dc/elements/1.1/\",\"xmlns:dcterms\":\"http://purl.org/dc/terms/\",\"xmlns:dcmitype\":\"http://purl.org/dc/dcmitype/\",\"xmlns:xsi\":\"http://www.w3.org/2001/XMLSchema-instance\"},t.exports=l},{\"../../../utils/xml-stream\":28,\"../base-xform\":32,\"../simple/date-xform\":117,\"../simple/integer-xform\":118,\"../simple/string-xform\":119}],54:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{render(e,t){e.leafNode(\"Relationship\",t)}parseOpen(e){switch(e.name){case\"Relationship\":return this.model=e.attributes,!0;default:return!1}}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],55:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/xml-stream\"),i=e(\"../base-xform\"),s=e(\"./relationship-xform\");class o extends i{constructor(){super(),this.map={Relationship:new s}}render(e,t){t=t||this._values,e.openXml(n.StdDocAttributes),e.openNode(\"Relationships\",o.RELATIONSHIPS_ATTRIBUTES),t.forEach(t=>{this.map.Relationship.render(e,t)}),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"Relationships\":return this.model=[],!0;default:if(this.parser=this.map[e.name],this.parser)return this.parser.parseOpen(e),!0;throw new Error(\"Unexpected xml node in parseOpen: \"+JSON.stringify(e))}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.model.push(this.parser.model),this.parser=void 0),!0;switch(e){case\"Relationships\":return!1;default:throw new Error(\"Unexpected xml node in parseClose: \"+e)}}}o.RELATIONSHIPS_ATTRIBUTES={xmlns:\"http://schemas.openxmlformats.org/package/2006/relationships\"},t.exports=o},{\"../../../utils/xml-stream\":28,\"../base-xform\":32,\"./relationship-xform\":54}],56:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case this.tag:this.reset(),this.model={range:{editAs:e.attributes.editAs||\"oneCell\"}};break;default:this.parser=this.map[e.name],this.parser&&this.parser.parseOpen(e)}return!0}parseText(e){this.parser&&this.parser.parseText(e)}reconcilePicture(e,t){if(e&&e.rId){const r=t.rels[e.rId].Target.match(/.*\\/media\\/(.+[.][a-zA-Z]{3,4})/);if(r){const e=r[1],n=t.mediaIndex[e];return t.media[n]}}}}},{\"../base-xform\":32}],57:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"./blip-xform\");t.exports=class extends n{constructor(){super(),this.map={\"a:blip\":new i}}get tag(){return\"xdr:blipFill\"}render(e,t){e.openNode(this.tag),this.map[\"a:blip\"].render(e,t),e.openNode(\"a:stretch\"),e.leafNode(\"a:fillRect\"),e.closeNode(),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case this.tag:this.reset();break;default:this.parser=this.map[e.name],this.parser&&this.parser.parseOpen(e)}return!0}parseText(){}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case this.tag:return this.model=this.map[\"a:blip\"].model,!1;default:return!0}}}},{\"../base-xform\":32,\"./blip-xform\":58}],58:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"a:blip\"}render(e,t){e.leafNode(this.tag,{\"xmlns:r\":\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\",\"r:embed\":t.rId,cstate:\"print\"})}parseOpen(e){switch(e.name){case this.tag:return this.model={rId:e.attributes[\"r:embed\"]},!0;default:return!0}}parseText(){}parseClose(e){switch(e){case this.tag:return!1;default:return!0}}}},{\"../base-xform\":32}],59:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"xdr:cNvPicPr\"}render(e){e.openNode(this.tag),e.leafNode(\"a:picLocks\",{noChangeAspect:\"1\"}),e.closeNode()}parseOpen(e){switch(e.name){case this.tag:default:return!0}}parseText(){}parseClose(e){switch(e){case this.tag:return!1;default:return!0}}}},{\"../base-xform\":32}],60:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"./hlink-click-xform\"),s=e(\"./ext-lst-xform\");t.exports=class extends n{constructor(){super(),this.map={\"a:hlinkClick\":new i,\"a:extLst\":new s}}get tag(){return\"xdr:cNvPr\"}render(e,t){e.openNode(this.tag,{id:t.index,name:\"Picture \"+t.index}),this.map[\"a:hlinkClick\"].render(e,t),this.map[\"a:extLst\"].render(e,t),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case this.tag:this.reset();break;default:this.parser=this.map[e.name],this.parser&&this.parser.parseOpen(e)}return!0}parseText(){}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case this.tag:return this.model=this.map[\"a:hlinkClick\"].model,!1;default:return!0}}}},{\"../base-xform\":32,\"./ext-lst-xform\":63,\"./hlink-click-xform\":65}],61:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"../simple/integer-xform\");t.exports=class extends n{constructor(e){super(),this.tag=e.tag,this.map={\"xdr:col\":new i({tag:\"xdr:col\",zero:!0}),\"xdr:colOff\":new i({tag:\"xdr:colOff\",zero:!0}),\"xdr:row\":new i({tag:\"xdr:row\",zero:!0}),\"xdr:rowOff\":new i({tag:\"xdr:rowOff\",zero:!0})}}render(e,t){e.openNode(this.tag),this.map[\"xdr:col\"].render(e,t.nativeCol),this.map[\"xdr:colOff\"].render(e,t.nativeColOff),this.map[\"xdr:row\"].render(e,t.nativeRow),this.map[\"xdr:rowOff\"].render(e,t.nativeRowOff),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case this.tag:this.reset();break;default:this.parser=this.map[e.name],this.parser&&this.parser.parseOpen(e)}return!0}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case this.tag:return this.model={nativeCol:this.map[\"xdr:col\"].model,nativeColOff:this.map[\"xdr:colOff\"].model,nativeRow:this.map[\"xdr:row\"].model,nativeRowOff:this.map[\"xdr:rowOff\"].model},!1;default:return!0}}}},{\"../base-xform\":32,\"../simple/integer-xform\":118}],62:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/col-cache\"),i=e(\"../../../utils/xml-stream\"),s=e(\"../base-xform\"),o=e(\"./two-cell-anchor-xform\"),a=e(\"./one-cell-anchor-xform\");class l extends s{constructor(){super(),this.map={\"xdr:twoCellAnchor\":new o,\"xdr:oneCellAnchor\":new a}}prepare(e){e.anchors.forEach((e,t)=>{e.anchorType=function(e){return(\"string\"==typeof e.range?n.decode(e.range):e.range).br?\"xdr:twoCellAnchor\":\"xdr:oneCellAnchor\"}(e);this.map[e.anchorType].prepare(e,{index:t})})}get tag(){return\"xdr:wsDr\"}render(e,t){e.openXml(i.StdDocAttributes),e.openNode(this.tag,l.DRAWING_ATTRIBUTES),t.anchors.forEach(t=>{this.map[t.anchorType].render(e,t)}),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case this.tag:this.reset(),this.model={anchors:[]};break;default:this.parser=this.map[e.name],this.parser&&this.parser.parseOpen(e)}return!0}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.model.anchors.push(this.parser.model),this.parser=void 0),!0;switch(e){case this.tag:return!1;default:return!0}}reconcile(e,t){e.anchors.forEach(e=>{e.br?this.map[\"xdr:twoCellAnchor\"].reconcile(e,t):this.map[\"xdr:oneCellAnchor\"].reconcile(e,t)})}}l.DRAWING_ATTRIBUTES={\"xmlns:xdr\":\"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing\",\"xmlns:a\":\"http://schemas.openxmlformats.org/drawingml/2006/main\"},t.exports=l},{\"../../../utils/col-cache\":19,\"../../../utils/xml-stream\":28,\"../base-xform\":32,\"./one-cell-anchor-xform\":67,\"./two-cell-anchor-xform\":70}],63:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"a:extLst\"}render(e){e.openNode(this.tag),e.openNode(\"a:ext\",{uri:\"{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}\"}),e.leafNode(\"a16:creationId\",{\"xmlns:a16\":\"http://schemas.microsoft.com/office/drawing/2014/main\",id:\"{00000000-0008-0000-0000-000002000000}\"}),e.closeNode(),e.closeNode()}parseOpen(e){switch(e.name){case this.tag:default:return!0}}parseText(){}parseClose(e){switch(e){case this.tag:return!1;default:return!0}}}},{\"../base-xform\":32}],64:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{constructor(e){super(),this.tag=e.tag,this.map={}}render(e,t){e.openNode(this.tag);const r=Math.floor(9525*t.width),n=Math.floor(9525*t.height);e.addAttribute(\"cx\",r),e.addAttribute(\"cy\",n),e.closeNode()}parseOpen(e){return e.name===this.tag&&(this.model={width:parseInt(e.attributes.cx||\"0\",10)/9525,height:parseInt(e.attributes.cy||\"0\",10)/9525},!0)}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],65:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"a:hlinkClick\"}render(e,t){t.hyperlinks&&t.hyperlinks.rId&&e.leafNode(this.tag,{\"xmlns:r\":\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\",\"r:id\":t.hyperlinks.rId,tooltip:t.hyperlinks.tooltip})}parseOpen(e){switch(e.name){case this.tag:return this.model={hyperlinks:{rId:e.attributes[\"r:id\"],tooltip:e.attributes.tooltip}},!0;default:return!0}}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],66:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"./c-nv-pr-xform\"),s=e(\"./c-nv-pic-pr-xform\");t.exports=class extends n{constructor(){super(),this.map={\"xdr:cNvPr\":new i,\"xdr:cNvPicPr\":new s}}get tag(){return\"xdr:nvPicPr\"}render(e,t){e.openNode(this.tag),this.map[\"xdr:cNvPr\"].render(e,t),this.map[\"xdr:cNvPicPr\"].render(e,t),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case this.tag:this.reset();break;default:this.parser=this.map[e.name],this.parser&&this.parser.parseOpen(e)}return!0}parseText(){}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case this.tag:return this.model=this.map[\"xdr:cNvPr\"].model,!1;default:return!0}}}},{\"../base-xform\":32,\"./c-nv-pic-pr-xform\":59,\"./c-nv-pr-xform\":60}],67:[function(e,t,r){\"use strict\";const n=e(\"./base-cell-anchor-xform\"),i=e(\"../static-xform\"),s=e(\"./cell-position-xform\"),o=e(\"./ext-xform\"),a=e(\"./pic-xform\");t.exports=class extends n{constructor(){super(),this.map={\"xdr:from\":new s({tag:\"xdr:from\"}),\"xdr:ext\":new o({tag:\"xdr:ext\"}),\"xdr:pic\":new a,\"xdr:clientData\":new i({tag:\"xdr:clientData\"})}}get tag(){return\"xdr:oneCellAnchor\"}prepare(e,t){this.map[\"xdr:pic\"].prepare(e.picture,t)}render(e,t){e.openNode(this.tag,{editAs:t.range.editAs||\"oneCell\"}),this.map[\"xdr:from\"].render(e,t.range.tl),this.map[\"xdr:ext\"].render(e,t.range.ext),this.map[\"xdr:pic\"].render(e,t.picture),this.map[\"xdr:clientData\"].render(e,{}),e.closeNode()}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case this.tag:return this.model.range.tl=this.map[\"xdr:from\"].model,this.model.range.ext=this.map[\"xdr:ext\"].model,this.model.picture=this.map[\"xdr:pic\"].model,!1;default:return!0}}reconcile(e,t){e.medium=this.reconcilePicture(e.picture,t)}}},{\"../static-xform\":120,\"./base-cell-anchor-xform\":56,\"./cell-position-xform\":61,\"./ext-xform\":64,\"./pic-xform\":68}],68:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"../static-xform\"),s=e(\"./blip-fill-xform\"),o=e(\"./nv-pic-pr-xform\"),a=e(\"./sp-pr\");t.exports=class extends n{constructor(){super(),this.map={\"xdr:nvPicPr\":new o,\"xdr:blipFill\":new s,\"xdr:spPr\":new i(a)}}get tag(){return\"xdr:pic\"}prepare(e,t){e.index=t.index+1}render(e,t){e.openNode(this.tag),this.map[\"xdr:nvPicPr\"].render(e,t),this.map[\"xdr:blipFill\"].render(e,t),this.map[\"xdr:spPr\"].render(e,t),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case this.tag:this.reset();break;default:this.parser=this.map[e.name],this.parser&&this.parser.parseOpen(e)}return!0}parseText(){}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.mergeModel(this.parser.model),this.parser=void 0),!0;switch(e){case this.tag:return!1;default:return!0}}}},{\"../base-xform\":32,\"../static-xform\":120,\"./blip-fill-xform\":57,\"./nv-pic-pr-xform\":66,\"./sp-pr\":69}],69:[function(e,t,r){\"use strict\";t.exports={tag:\"xdr:spPr\",c:[{tag:\"a:xfrm\",c:[{tag:\"a:off\",$:{x:\"0\",y:\"0\"}},{tag:\"a:ext\",$:{cx:\"0\",cy:\"0\"}}]},{tag:\"a:prstGeom\",$:{prst:\"rect\"},c:[{tag:\"a:avLst\"}]}]}},{}],70:[function(e,t,r){\"use strict\";const n=e(\"./base-cell-anchor-xform\"),i=e(\"../static-xform\"),s=e(\"./cell-position-xform\"),o=e(\"./pic-xform\");t.exports=class extends n{constructor(){super(),this.map={\"xdr:from\":new s({tag:\"xdr:from\"}),\"xdr:to\":new s({tag:\"xdr:to\"}),\"xdr:pic\":new o,\"xdr:clientData\":new i({tag:\"xdr:clientData\"})}}get tag(){return\"xdr:twoCellAnchor\"}prepare(e,t){this.map[\"xdr:pic\"].prepare(e.picture,t)}render(e,t){e.openNode(this.tag,{editAs:t.range.editAs||\"oneCell\"}),this.map[\"xdr:from\"].render(e,t.range.tl),this.map[\"xdr:to\"].render(e,t.range.br),this.map[\"xdr:pic\"].render(e,t.picture),this.map[\"xdr:clientData\"].render(e,{}),e.closeNode()}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case this.tag:return this.model.range.tl=this.map[\"xdr:from\"].model,this.model.range.br=this.map[\"xdr:to\"].model,this.model.picture=this.map[\"xdr:pic\"].model,!1;default:return!0}}reconcile(e,t){e.medium=this.reconcilePicture(e.picture,t)}}},{\"../static-xform\":120,\"./base-cell-anchor-xform\":56,\"./cell-position-xform\":61,\"./pic-xform\":68}],71:[function(e,t,r){\"use strict\";const n=e(\"./base-xform\");t.exports=class extends n{constructor(e){super(),this.tag=e.tag,this.always=!!e.always,this.count=e.count,this.empty=e.empty,this.$count=e.$count||\"count\",this.$=e.$,this.childXform=e.childXform,this.maxItems=e.maxItems}prepare(e,t){const{childXform:r}=this;e&&e.forEach((e,n)=>{t.index=n,r.prepare(e,t)})}render(e,t){if(this.always||t&&t.length){e.openNode(this.tag,this.$),this.count&&e.addAttribute(this.$count,t&&t.length||0);const{childXform:r}=this;(t||[]).forEach((t,n)=>{r.render(e,t,n)}),e.closeNode()}else this.empty&&e.leafNode(this.tag)}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case this.tag:return this.model=[],!0;default:return!!this.childXform.parseOpen(e)&&(this.parser=this.childXform,!0)}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser){if(!this.parser.parseClose(e)&&(this.model.push(this.parser.model),this.parser=void 0,this.maxItems&&this.model.length>this.maxItems))throw new Error(`Max ${this.childXform.tag} count (${this.maxItems}) exceeded`);return!0}return!1}reconcile(e,t){if(e){const{childXform:r}=this;e.forEach(e=>{r.reconcile(e,t)})}}}},{\"./base-xform\":32}],72:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/col-cache\"),i=e(\"../base-xform\");t.exports=class extends i{get tag(){return\"autoFilter\"}render(e,t){if(t)if(\"string\"==typeof t)e.leafNode(\"autoFilter\",{ref:t});else{const r=function(e){return\"string\"==typeof e?e:n.getAddress(e.row,e.column).address},i=r(t.from),s=r(t.to);i&&s&&e.leafNode(\"autoFilter\",{ref:`${i}:${s}`})}}parseOpen(e){\"autoFilter\"===e.name&&(this.model=e.attributes.ref)}}},{\"../../../utils/col-cache\":19,\"../base-xform\":32}],73:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/utils\"),i=e(\"../base-xform\"),s=e(\"../../../doc/range\"),o=e(\"../../../doc/enums\"),a=e(\"../strings/rich-text-xform\");function l(e){if(null==e)return o.ValueType.Null;if(e instanceof String||\"string\"==typeof e)return o.ValueType.String;if(\"number\"==typeof e)return o.ValueType.Number;if(\"boolean\"==typeof e)return o.ValueType.Boolean;if(e instanceof Date)return o.ValueType.Date;if(e.text&&e.hyperlink)return o.ValueType.Hyperlink;if(e.formula)return o.ValueType.Formula;if(e.error)return o.ValueType.Error;throw new Error(\"I could not understand type of value\")}t.exports=class extends i{constructor(){super(),this.richTextXForm=new a}get tag(){return\"c\"}prepare(e,t){const r=t.styles.addStyleModel(e.style||{},function(e){switch(e.type){case o.ValueType.Formula:return l(e.result);default:return e.type}}(e));switch(r&&(e.styleId=r),e.comment&&t.comments.push({...e.comment,ref:e.address}),e.type){case o.ValueType.String:case o.ValueType.RichText:t.sharedStrings&&(e.ssId=t.sharedStrings.add(e.value));break;case o.ValueType.Date:t.date1904&&(e.date1904=!0);break;case o.ValueType.Hyperlink:t.sharedStrings&&void 0!==e.text&&null!==e.text&&(e.ssId=t.sharedStrings.add(e.text)),t.hyperlinks.push({address:e.address,target:e.hyperlink,tooltip:e.tooltip});break;case o.ValueType.Merge:t.merges.add(e);break;case o.ValueType.Formula:if(t.date1904&&(e.date1904=!0),\"shared\"===e.shareType&&(e.si=t.siFormulae++),e.formula)t.formulae[e.address]=e;else if(e.sharedFormula){const r=t.formulae[e.sharedFormula];if(!r)throw new Error(\"Shared Formula master must exist above and or left of clone for cell \"+e.address);void 0===r.si?(r.shareType=\"shared\",r.si=t.siFormulae++,r.range=new s(r.address,e.address)):r.range&&r.range.expandToAddress(e.address),e.si=r.si}}}renderFormula(e,t){let r=null;switch(t.shareType){case\"shared\":r={t:\"shared\",ref:t.ref||t.range.range,si:t.si};break;case\"array\":r={t:\"array\",ref:t.ref};break;default:void 0!==t.si&&(r={t:\"shared\",si:t.si})}switch(l(t.result)){case o.ValueType.Null:e.leafNode(\"f\",r,t.formula);break;case o.ValueType.String:e.addAttribute(\"t\",\"str\"),e.leafNode(\"f\",r,t.formula),e.leafNode(\"v\",null,t.result);break;case o.ValueType.Number:e.leafNode(\"f\",r,t.formula),e.leafNode(\"v\",null,t.result);break;case o.ValueType.Boolean:e.addAttribute(\"t\",\"b\"),e.leafNode(\"f\",r,t.formula),e.leafNode(\"v\",null,t.result?1:0);break;case o.ValueType.Error:e.addAttribute(\"t\",\"e\"),e.leafNode(\"f\",r,t.formula),e.leafNode(\"v\",null,t.result.error);break;case o.ValueType.Date:e.leafNode(\"f\",r,t.formula),e.leafNode(\"v\",null,n.dateToExcel(t.result,t.date1904));break;default:throw new Error(\"I could not understand type of value\")}}render(e,t){if(t.type!==o.ValueType.Null||t.styleId){switch(e.openNode(\"c\"),e.addAttribute(\"r\",t.address),t.styleId&&e.addAttribute(\"s\",t.styleId),t.type){case o.ValueType.Null:break;case o.ValueType.Number:e.leafNode(\"v\",null,t.value);break;case o.ValueType.Boolean:e.addAttribute(\"t\",\"b\"),e.leafNode(\"v\",null,t.value?\"1\":\"0\");break;case o.ValueType.Error:e.addAttribute(\"t\",\"e\"),e.leafNode(\"v\",null,t.value.error);break;case o.ValueType.String:case o.ValueType.RichText:void 0!==t.ssId?(e.addAttribute(\"t\",\"s\"),e.leafNode(\"v\",null,t.ssId)):t.value&&t.value.richText?(e.addAttribute(\"t\",\"inlineStr\"),e.openNode(\"is\"),t.value.richText.forEach(t=>{this.richTextXForm.render(e,t)}),e.closeNode(\"is\")):(e.addAttribute(\"t\",\"str\"),e.leafNode(\"v\",null,t.value));break;case o.ValueType.Date:e.leafNode(\"v\",null,n.dateToExcel(t.value,t.date1904));break;case o.ValueType.Hyperlink:void 0!==t.ssId?(e.addAttribute(\"t\",\"s\"),e.leafNode(\"v\",null,t.ssId)):(e.addAttribute(\"t\",\"str\"),e.leafNode(\"v\",null,t.text));break;case o.ValueType.Formula:this.renderFormula(e,t);break;case o.ValueType.Merge:}e.closeNode()}}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"c\":return this.model={address:e.attributes.r},this.t=e.attributes.t,e.attributes.s&&(this.model.styleId=parseInt(e.attributes.s,10)),!0;case\"f\":return this.currentNode=\"f\",this.model.si=e.attributes.si,this.model.shareType=e.attributes.t,this.model.ref=e.attributes.ref,!0;case\"v\":return this.currentNode=\"v\",!0;case\"t\":return this.currentNode=\"t\",!0;case\"r\":return this.parser=this.richTextXForm,this.parser.parseOpen(e),!0;default:return!1}}parseText(e){if(this.parser)this.parser.parseText(e);else switch(this.currentNode){case\"f\":this.model.formula=this.model.formula?this.model.formula+e:e;break;case\"v\":case\"t\":this.model.value&&this.model.value.richText?this.model.value.richText.text=this.model.value.richText.text?this.model.value.richText.text+e:e:this.model.value=this.model.value?this.model.value+e:e}}parseClose(e){switch(e){case\"c\":{const{model:e}=this;if(e.formula||e.shareType)e.type=o.ValueType.Formula,e.value&&(\"str\"===this.t?e.result=n.xmlDecode(e.value):\"b\"===this.t?e.result=0!==parseInt(e.value,10):\"e\"===this.t?e.result={error:e.value}:e.result=parseFloat(e.value),e.value=void 0);else if(void 0!==e.value)switch(this.t){case\"s\":e.type=o.ValueType.String,e.value=parseInt(e.value,10);break;case\"str\":e.type=o.ValueType.String,e.value=n.xmlDecode(e.value);break;case\"inlineStr\":e.type=o.ValueType.String;break;case\"b\":e.type=o.ValueType.Boolean,e.value=0!==parseInt(e.value,10);break;case\"e\":e.type=o.ValueType.Error,e.value={error:e.value};break;default:e.type=o.ValueType.Number,e.value=parseFloat(e.value)}else e.styleId?e.type=o.ValueType.Null:e.type=o.ValueType.Merge;return!1}case\"f\":case\"v\":case\"is\":return this.currentNode=void 0,!0;case\"t\":return this.parser?(this.parser.parseClose(e),!0):(this.currentNode=void 0,!0);case\"r\":return this.model.value=this.model.value||{},this.model.value.richText=this.model.value.richText||[],this.model.value.richText.push(this.parser.model),this.parser=void 0,this.currentNode=void 0,!0;default:return!!this.parser&&(this.parser.parseClose(e),!0)}}reconcile(e,t){const r=e.styleId&&t.styles&&t.styles.getStyleModel(e.styleId);switch(r&&(e.style=r),void 0!==e.styleId&&(e.styleId=void 0),e.type){case o.ValueType.String:\"number\"==typeof e.value&&t.sharedStrings&&(e.value=t.sharedStrings.getString(e.value)),e.value.richText&&(e.type=o.ValueType.RichText);break;case o.ValueType.Number:r&&n.isDateFmt(r.numFmt)&&(e.type=o.ValueType.Date,e.value=n.excelToDate(e.value,t.date1904));break;case o.ValueType.Formula:void 0!==e.result&&r&&n.isDateFmt(r.numFmt)&&(e.result=n.excelToDate(e.result,t.date1904)),\"shared\"===e.shareType&&(e.ref?t.formulae[e.si]=e.address:(e.sharedFormula=t.formulae[e.si],delete e.shareType),delete e.si)}const i=t.hyperlinkMap[e.address];i&&(e.type===o.ValueType.Formula?(e.text=e.result,e.result=void 0):(e.text=e.value,e.value=void 0),e.type=o.ValueType.Hyperlink,e.hyperlink=i);const s=t.commentsMap&&t.commentsMap[e.address];s&&(e.comment=s)}}},{\"../../../doc/enums\":7,\"../../../doc/range\":10,\"../../../utils/utils\":27,\"../base-xform\":32,\"../strings/rich-text-xform\":122}],74:[function(e,t,r){\"use strict\";const n=e(\"../../base-xform\");t.exports=class extends n{get tag(){return\"x14:cfIcon\"}render(e,t){e.leafNode(this.tag,{iconSet:t.iconSet,iconId:t.iconId})}parseOpen(e){let{attributes:t}=e;this.model={iconSet:t.iconSet,iconId:n.toIntValue(t.iconId)}}parseClose(e){return e!==this.tag}}},{\"../../base-xform\":32}],75:[function(e,t,r){\"use strict\";const{v4:n}=e(\"uuid\"),i=e(\"../../base-xform\"),s=e(\"../../composite-xform\"),o=e(\"./databar-ext-xform\"),a=e(\"./icon-set-ext-xform\"),l={\"3Triangles\":!0,\"3Stars\":!0,\"5Boxes\":!0};class c extends s{constructor(){super(),this.map={\"x14:dataBar\":this.databarXform=new o,\"x14:iconSet\":this.iconSetXform=new a}}get tag(){return\"x14:cfRule\"}static isExt(e){return\"dataBar\"===e.type?o.isExt(e):!(\"iconSet\"!==e.type||!e.custom&&!l[e.iconSet])}prepare(e){c.isExt(e)&&(e.x14Id=`{${n()}}`.toUpperCase())}render(e,t){if(c.isExt(t))switch(t.type){case\"dataBar\":this.renderDataBar(e,t);break;case\"iconSet\":this.renderIconSet(e,t)}}renderDataBar(e,t){e.openNode(this.tag,{type:\"dataBar\",id:t.x14Id}),this.databarXform.render(e,t),e.closeNode()}renderIconSet(e,t){e.openNode(this.tag,{type:\"iconSet\",priority:t.priority,id:t.x14Id||`{${n()}}`}),this.iconSetXform.render(e,t),e.closeNode()}createNewModel(e){let{attributes:t}=e;return{type:t.type,x14Id:t.id,priority:i.toIntValue(t.priority)}}onParserClose(e,t){Object.assign(this.model,t.model)}}t.exports=c},{\"../../base-xform\":32,\"../../composite-xform\":48,\"./databar-ext-xform\":79,\"./icon-set-ext-xform\":81,uuid:528}],76:[function(e,t,r){\"use strict\";const n=e(\"../../composite-xform\"),i=e(\"./f-ext-xform\");t.exports=class extends n{constructor(){super(),this.map={\"xm:f\":this.fExtXform=new i}}get tag(){return\"x14:cfvo\"}render(e,t){e.openNode(this.tag,{type:t.type}),void 0!==t.value&&this.fExtXform.render(e,t.value),e.closeNode()}createNewModel(e){return{type:e.attributes.type}}onParserClose(e,t){switch(e){case\"xm:f\":this.model.value=t.model?parseFloat(t.model):0}}}},{\"../../composite-xform\":48,\"./f-ext-xform\":80}],77:[function(e,t,r){\"use strict\";const n=e(\"../../composite-xform\"),i=e(\"./sqref-ext-xform\"),s=e(\"./cf-rule-ext-xform\");t.exports=class extends n{constructor(){super(),this.map={\"xm:sqref\":this.sqRef=new i,\"x14:cfRule\":this.cfRule=new s}}get tag(){return\"x14:conditionalFormatting\"}prepare(e,t){e.rules.forEach(e=>{this.cfRule.prepare(e,t)})}render(e,t){t.rules.some(s.isExt)&&(e.openNode(this.tag,{\"xmlns:xm\":\"http://schemas.microsoft.com/office/excel/2006/main\"}),t.rules.filter(s.isExt).forEach(t=>this.cfRule.render(e,t)),this.sqRef.render(e,t.ref),e.closeNode())}createNewModel(){return{rules:[]}}onParserClose(e,t){switch(e){case\"xm:sqref\":this.model.ref=t.model;break;case\"x14:cfRule\":this.model.rules.push(t.model)}}}},{\"../../composite-xform\":48,\"./cf-rule-ext-xform\":75,\"./sqref-ext-xform\":82}],78:[function(e,t,r){\"use strict\";const n=e(\"../../composite-xform\"),i=e(\"./cf-rule-ext-xform\"),s=e(\"./conditional-formatting-ext-xform\");t.exports=class extends n{constructor(){super(),this.map={\"x14:conditionalFormatting\":this.cfXform=new s}}get tag(){return\"x14:conditionalFormattings\"}hasContent(e){return void 0===e.hasExtContent&&(e.hasExtContent=e.some(e=>e.rules.some(i.isExt))),e.hasExtContent}prepare(e,t){e.forEach(e=>{this.cfXform.prepare(e,t)})}render(e,t){this.hasContent(t)&&(e.openNode(this.tag),t.forEach(t=>this.cfXform.render(e,t)),e.closeNode())}createNewModel(){return[]}onParserClose(e,t){this.model.push(t.model)}}},{\"../../composite-xform\":48,\"./cf-rule-ext-xform\":75,\"./conditional-formatting-ext-xform\":77}],79:[function(e,t,r){\"use strict\";const n=e(\"../../base-xform\"),i=e(\"../../composite-xform\"),s=e(\"../../style/color-xform\"),o=e(\"./cfvo-ext-xform\");t.exports=class extends i{constructor(){super(),this.map={\"x14:cfvo\":this.cfvoXform=new o,\"x14:borderColor\":this.borderColorXform=new s(\"x14:borderColor\"),\"x14:negativeBorderColor\":this.negativeBorderColorXform=new s(\"x14:negativeBorderColor\"),\"x14:negativeFillColor\":this.negativeFillColorXform=new s(\"x14:negativeFillColor\"),\"x14:axisColor\":this.axisColorXform=new s(\"x14:axisColor\")}}static isExt(e){return!e.gradient}get tag(){return\"x14:dataBar\"}render(e,t){e.openNode(this.tag,{minLength:n.toIntAttribute(t.minLength,0,!0),maxLength:n.toIntAttribute(t.maxLength,100,!0),border:n.toBoolAttribute(t.border,!1),gradient:n.toBoolAttribute(t.gradient,!0),negativeBarColorSameAsPositive:n.toBoolAttribute(t.negativeBarColorSameAsPositive,!0),negativeBarBorderColorSameAsPositive:n.toBoolAttribute(t.negativeBarBorderColorSameAsPositive,!0),axisPosition:n.toAttribute(t.axisPosition,\"auto\"),direction:n.toAttribute(t.direction,\"leftToRight\")}),t.cfvo.forEach(t=>{this.cfvoXform.render(e,t)}),this.borderColorXform.render(e,t.borderColor),this.negativeBorderColorXform.render(e,t.negativeBorderColor),this.negativeFillColorXform.render(e,t.negativeFillColor),this.axisColorXform.render(e,t.axisColor),e.closeNode()}createNewModel(e){let{attributes:t}=e;return{cfvo:[],minLength:n.toIntValue(t.minLength,0),maxLength:n.toIntValue(t.maxLength,100),border:n.toBoolValue(t.border,!1),gradient:n.toBoolValue(t.gradient,!0),negativeBarColorSameAsPositive:n.toBoolValue(t.negativeBarColorSameAsPositive,!0),negativeBarBorderColorSameAsPositive:n.toBoolValue(t.negativeBarBorderColorSameAsPositive,!0),axisPosition:n.toStringValue(t.axisPosition,\"auto\"),direction:n.toStringValue(t.direction,\"leftToRight\")}}onParserClose(e,t){const[,r]=e.split(\":\");switch(r){case\"cfvo\":this.model.cfvo.push(t.model);break;default:this.model[r]=t.model}}}},{\"../../base-xform\":32,\"../../composite-xform\":48,\"../../style/color-xform\":128,\"./cfvo-ext-xform\":76}],80:[function(e,t,r){\"use strict\";const n=e(\"../../base-xform\");t.exports=class extends n{get tag(){return\"xm:f\"}render(e,t){e.leafNode(this.tag,null,t)}parseOpen(){this.model=\"\"}parseText(e){this.model+=e}parseClose(e){return e!==this.tag}}},{\"../../base-xform\":32}],81:[function(e,t,r){\"use strict\";const n=e(\"../../base-xform\"),i=e(\"../../composite-xform\"),s=e(\"./cfvo-ext-xform\"),o=e(\"./cf-icon-ext-xform\");t.exports=class extends i{constructor(){super(),this.map={\"x14:cfvo\":this.cfvoXform=new s,\"x14:cfIcon\":this.cfIconXform=new o}}get tag(){return\"x14:iconSet\"}render(e,t){e.openNode(this.tag,{iconSet:n.toStringAttribute(t.iconSet),reverse:n.toBoolAttribute(t.reverse,!1),showValue:n.toBoolAttribute(t.showValue,!0),custom:n.toBoolAttribute(t.icons,!1)}),t.cfvo.forEach(t=>{this.cfvoXform.render(e,t)}),t.icons&&t.icons.forEach((t,r)=>{t.iconId=r,this.cfIconXform.render(e,t)}),e.closeNode()}createNewModel(e){let{attributes:t}=e;return{cfvo:[],iconSet:n.toStringValue(t.iconSet,\"3TrafficLights\"),reverse:n.toBoolValue(t.reverse,!1),showValue:n.toBoolValue(t.showValue,!0)}}onParserClose(e,t){const[,r]=e.split(\":\");switch(r){case\"cfvo\":this.model.cfvo.push(t.model);break;case\"cfIcon\":this.model.icons||(this.model.icons=[]),this.model.icons.push(t.model);break;default:this.model[r]=t.model}}}},{\"../../base-xform\":32,\"../../composite-xform\":48,\"./cf-icon-ext-xform\":74,\"./cfvo-ext-xform\":76}],82:[function(e,t,r){\"use strict\";const n=e(\"../../base-xform\");t.exports=class extends n{get tag(){return\"xm:sqref\"}render(e,t){e.leafNode(this.tag,null,t)}parseOpen(){this.model=\"\"}parseText(e){this.model+=e}parseClose(e){return e!==this.tag}}},{\"../../base-xform\":32}],83:[function(e,t,r){\"use strict\";const n=e(\"../../base-xform\"),i=e(\"../../composite-xform\"),s=e(\"../../../../doc/range\"),o=e(\"./databar-xform\"),a=e(\"./ext-lst-ref-xform\"),l=e(\"./formula-xform\"),c=e(\"./color-scale-xform\"),u=e(\"./icon-set-xform\"),h={\"3Triangles\":!0,\"3Stars\":!0,\"5Boxes\":!0},f=e=>{const{type:t,operator:r}=e;switch(t){case\"containsText\":case\"containsBlanks\":case\"notContainsBlanks\":case\"containsErrors\":case\"notContainsErrors\":return{type:\"containsText\",operator:t};default:return{type:t,operator:r}}};class d extends i{constructor(){super(),this.map={dataBar:this.databarXform=new o,extLst:this.extLstRefXform=new a,formula:this.formulaXform=new l,colorScale:this.colorScaleXform=new c,iconSet:this.iconSetXform=new u}}get tag(){return\"cfRule\"}static isPrimitive(e){return\"iconSet\"!==e.type||!e.custom&&!h[e.iconSet]}render(e,t){switch(t.type){case\"expression\":this.renderExpression(e,t);break;case\"cellIs\":this.renderCellIs(e,t);break;case\"top10\":this.renderTop10(e,t);break;case\"aboveAverage\":this.renderAboveAverage(e,t);break;case\"dataBar\":this.renderDataBar(e,t);break;case\"colorScale\":this.renderColorScale(e,t);break;case\"iconSet\":this.renderIconSet(e,t);break;case\"containsText\":this.renderText(e,t);break;case\"timePeriod\":this.renderTimePeriod(e,t)}}renderExpression(e,t){e.openNode(this.tag,{type:\"expression\",dxfId:t.dxfId,priority:t.priority}),this.formulaXform.render(e,t.formulae[0]),e.closeNode()}renderCellIs(e,t){e.openNode(this.tag,{type:\"cellIs\",dxfId:t.dxfId,priority:t.priority,operator:t.operator}),t.formulae.forEach(t=>{this.formulaXform.render(e,t)}),e.closeNode()}renderTop10(e,t){e.leafNode(this.tag,{type:\"top10\",dxfId:t.dxfId,priority:t.priority,percent:n.toBoolAttribute(t.percent,!1),bottom:n.toBoolAttribute(t.bottom,!1),rank:n.toIntValue(t.rank,10,!0)})}renderAboveAverage(e,t){e.leafNode(this.tag,{type:\"aboveAverage\",dxfId:t.dxfId,priority:t.priority,aboveAverage:n.toBoolAttribute(t.aboveAverage,!0)})}renderDataBar(e,t){e.openNode(this.tag,{type:\"dataBar\",priority:t.priority}),this.databarXform.render(e,t),this.extLstRefXform.render(e,t),e.closeNode()}renderColorScale(e,t){e.openNode(this.tag,{type:\"colorScale\",priority:t.priority}),this.colorScaleXform.render(e,t),e.closeNode()}renderIconSet(e,t){d.isPrimitive(t)&&(e.openNode(this.tag,{type:\"iconSet\",priority:t.priority}),this.iconSetXform.render(e,t),e.closeNode())}renderText(e,t){e.openNode(this.tag,{type:t.operator,dxfId:t.dxfId,priority:t.priority,operator:n.toStringAttribute(t.operator,\"containsText\")});const r=(e=>{if(e.formulae&&e.formulae[0])return e.formulae[0];const t=new s(e.ref),{tl:r}=t;switch(e.operator){case\"containsText\":return`NOT(ISERROR(SEARCH(\"${e.text}\",${r})))`;case\"containsBlanks\":return`LEN(TRIM(${r}))=0`;case\"notContainsBlanks\":return`LEN(TRIM(${r}))>0`;case\"containsErrors\":return`ISERROR(${r})`;case\"notContainsErrors\":return`NOT(ISERROR(${r}))`;default:return}})(t);r&&this.formulaXform.render(e,r),e.closeNode()}renderTimePeriod(e,t){e.openNode(this.tag,{type:\"timePeriod\",dxfId:t.dxfId,priority:t.priority,timePeriod:t.timePeriod});const r=(e=>{if(e.formulae&&e.formulae[0])return e.formulae[0];const t=new s(e.ref),{tl:r}=t;switch(e.timePeriod){case\"thisWeek\":return`AND(TODAY()-ROUNDDOWN(${r},0)<=WEEKDAY(TODAY())-1,ROUNDDOWN(${r},0)-TODAY()<=7-WEEKDAY(TODAY()))`;case\"lastWeek\":return`AND(TODAY()-ROUNDDOWN(${r},0)>=(WEEKDAY(TODAY())),TODAY()-ROUNDDOWN(${r},0)<(WEEKDAY(TODAY())+7))`;case\"nextWeek\":return`AND(ROUNDDOWN(${r},0)-TODAY()>(7-WEEKDAY(TODAY())),ROUNDDOWN(${r},0)-TODAY()<(15-WEEKDAY(TODAY())))`;case\"yesterday\":return`FLOOR(${r},1)=TODAY()-1`;case\"today\":return`FLOOR(${r},1)=TODAY()`;case\"tomorrow\":return`FLOOR(${r},1)=TODAY()+1`;case\"last7Days\":return`AND(TODAY()-FLOOR(${r},1)<=6,FLOOR(${r},1)<=TODAY())`;case\"lastMonth\":return`AND(MONTH(${r})=MONTH(EDATE(TODAY(),0-1)),YEAR(${r})=YEAR(EDATE(TODAY(),0-1)))`;case\"thisMonth\":return`AND(MONTH(${r})=MONTH(TODAY()),YEAR(${r})=YEAR(TODAY()))`;case\"nextMonth\":return`AND(MONTH(${r})=MONTH(EDATE(TODAY(),0+1)),YEAR(${r})=YEAR(EDATE(TODAY(),0+1)))`;default:return}})(t);r&&this.formulaXform.render(e,r),e.closeNode()}createNewModel(e){let{attributes:t}=e;return{...f(t),dxfId:n.toIntValue(t.dxfId),priority:n.toIntValue(t.priority),timePeriod:t.timePeriod,percent:n.toBoolValue(t.percent),bottom:n.toBoolValue(t.bottom),rank:n.toIntValue(t.rank),aboveAverage:n.toBoolValue(t.aboveAverage)}}onParserClose(e,t){switch(e){case\"dataBar\":case\"extLst\":case\"colorScale\":case\"iconSet\":Object.assign(this.model,t.model);break;case\"formula\":this.model.formulae=this.model.formulae||[],this.model.formulae.push(t.model)}}}t.exports=d},{\"../../../../doc/range\":10,\"../../base-xform\":32,\"../../composite-xform\":48,\"./color-scale-xform\":85,\"./databar-xform\":88,\"./ext-lst-ref-xform\":89,\"./formula-xform\":90,\"./icon-set-xform\":91}],84:[function(e,t,r){\"use strict\";const n=e(\"../../base-xform\");t.exports=class extends n{get tag(){return\"cfvo\"}render(e,t){e.leafNode(this.tag,{type:t.type,val:t.value})}parseOpen(e){this.model={type:e.attributes.type,value:n.toFloatValue(e.attributes.val)}}parseClose(e){return e!==this.tag}}},{\"../../base-xform\":32}],85:[function(e,t,r){\"use strict\";const n=e(\"../../composite-xform\"),i=e(\"../../style/color-xform\"),s=e(\"./cfvo-xform\");t.exports=class extends n{constructor(){super(),this.map={cfvo:this.cfvoXform=new s,color:this.colorXform=new i}}get tag(){return\"colorScale\"}render(e,t){e.openNode(this.tag),t.cfvo.forEach(t=>{this.cfvoXform.render(e,t)}),t.color.forEach(t=>{this.colorXform.render(e,t)}),e.closeNode()}createNewModel(e){return{cfvo:[],color:[]}}onParserClose(e,t){this.model[e].push(t.model)}}},{\"../../composite-xform\":48,\"../../style/color-xform\":128,\"./cfvo-xform\":84}],86:[function(e,t,r){\"use strict\";const n=e(\"../../composite-xform\"),i=e(\"./cf-rule-xform\");t.exports=class extends n{constructor(){super(),this.map={cfRule:new i}}get tag(){return\"conditionalFormatting\"}render(e,t){t.rules.some(i.isPrimitive)&&(e.openNode(this.tag,{sqref:t.ref}),t.rules.forEach(r=>{i.isPrimitive(r)&&(r.ref=t.ref,this.map.cfRule.render(e,r))}),e.closeNode())}createNewModel(e){let{attributes:t}=e;return{ref:t.sqref,rules:[]}}onParserClose(e,t){this.model.rules.push(t.model)}}},{\"../../composite-xform\":48,\"./cf-rule-xform\":83}],87:[function(e,t,r){\"use strict\";const n=e(\"../../base-xform\"),i=e(\"./conditional-formatting-xform\");t.exports=class extends n{constructor(){super(),this.cfXform=new i}get tag(){return\"conditionalFormatting\"}reset(){this.model=[]}prepare(e,t){let r=e.reduce((e,t)=>Math.max(e,...t.rules.map(e=>e.priority||0)),1);e.forEach(e=>{e.rules.forEach(e=>{e.priority||(e.priority=r++),e.style&&(e.dxfId=t.styles.addDxfStyle(e.style))})})}render(e,t){t.forEach(t=>{this.cfXform.render(e,t)})}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"conditionalFormatting\":return this.parser=this.cfXform,this.parser.parseOpen(e),!0;default:return!1}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){return!!this.parser&&(!!this.parser.parseClose(e)||(this.model.push(this.parser.model),this.parser=void 0,!1))}reconcile(e,t){e.forEach(e=>{e.rules.forEach(e=>{void 0!==e.dxfId&&(e.style=t.styles.getDxfStyle(e.dxfId),delete e.dxfId)})})}}},{\"../../base-xform\":32,\"./conditional-formatting-xform\":86}],88:[function(e,t,r){\"use strict\";const n=e(\"../../composite-xform\"),i=e(\"../../style/color-xform\"),s=e(\"./cfvo-xform\");t.exports=class extends n{constructor(){super(),this.map={cfvo:this.cfvoXform=new s,color:this.colorXform=new i}}get tag(){return\"dataBar\"}render(e,t){e.openNode(this.tag),t.cfvo.forEach(t=>{this.cfvoXform.render(e,t)}),this.colorXform.render(e,t.color),e.closeNode()}createNewModel(){return{cfvo:[]}}onParserClose(e,t){switch(e){case\"cfvo\":this.model.cfvo.push(t.model);break;case\"color\":this.model.color=t.model}}}},{\"../../composite-xform\":48,\"../../style/color-xform\":128,\"./cfvo-xform\":84}],89:[function(e,t,r){\"use strict\";const n=e(\"../../base-xform\"),i=e(\"../../composite-xform\");class s extends n{get tag(){return\"x14:id\"}render(e,t){e.leafNode(this.tag,null,t)}parseOpen(){this.model=\"\"}parseText(e){this.model+=e}parseClose(e){return e!==this.tag}}class o extends i{constructor(){super(),this.map={\"x14:id\":this.idXform=new s}}get tag(){return\"ext\"}render(e,t){e.openNode(this.tag,{uri:\"{B025F937-C7B1-47D3-B67F-A62EFF666E3E}\",\"xmlns:x14\":\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main\"}),this.idXform.render(e,t.x14Id),e.closeNode()}createNewModel(){return{}}onParserClose(e,t){this.model.x14Id=t.model}}t.exports=class extends i{constructor(){super(),this.map={ext:new o}}get tag(){return\"extLst\"}render(e,t){e.openNode(this.tag),this.map.ext.render(e,t),e.closeNode()}createNewModel(){return{}}onParserClose(e,t){Object.assign(this.model,t.model)}}},{\"../../base-xform\":32,\"../../composite-xform\":48}],90:[function(e,t,r){\"use strict\";const n=e(\"../../base-xform\");t.exports=class extends n{get tag(){return\"formula\"}render(e,t){e.leafNode(this.tag,null,t)}parseOpen(){this.model=\"\"}parseText(e){this.model+=e}parseClose(e){return e!==this.tag}}},{\"../../base-xform\":32}],91:[function(e,t,r){\"use strict\";const n=e(\"../../base-xform\"),i=e(\"../../composite-xform\"),s=e(\"./cfvo-xform\");t.exports=class extends i{constructor(){super(),this.map={cfvo:this.cfvoXform=new s}}get tag(){return\"iconSet\"}render(e,t){e.openNode(this.tag,{iconSet:n.toStringAttribute(t.iconSet,\"3TrafficLights\"),reverse:n.toBoolAttribute(t.reverse,!1),showValue:n.toBoolAttribute(t.showValue,!0)}),t.cfvo.forEach(t=>{this.cfvoXform.render(e,t)}),e.closeNode()}createNewModel(e){let{attributes:t}=e;return{iconSet:n.toStringValue(t.iconSet,\"3TrafficLights\"),reverse:n.toBoolValue(t.reverse),showValue:n.toBoolValue(t.showValue),cfvo:[]}}onParserClose(e,t){this.model[e].push(t.model)}}},{\"../../base-xform\":32,\"../../composite-xform\":48,\"./cfvo-xform\":84}],92:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/utils\"),i=e(\"../base-xform\");t.exports=class extends i{get tag(){return\"col\"}prepare(e,t){const r=t.styles.addStyleModel(e.style||{});r&&(e.styleId=r)}render(e,t){e.openNode(\"col\"),e.addAttribute(\"min\",t.min),e.addAttribute(\"max\",t.max),t.width&&e.addAttribute(\"width\",t.width),t.styleId&&e.addAttribute(\"style\",t.styleId),t.hidden&&e.addAttribute(\"hidden\",\"1\"),t.bestFit&&e.addAttribute(\"bestFit\",\"1\"),t.outlineLevel&&e.addAttribute(\"outlineLevel\",t.outlineLevel),t.collapsed&&e.addAttribute(\"collapsed\",\"1\"),e.addAttribute(\"customWidth\",\"1\"),e.closeNode()}parseOpen(e){if(\"col\"===e.name){const t=this.model={min:parseInt(e.attributes.min||\"0\",10),max:parseInt(e.attributes.max||\"0\",10),width:void 0===e.attributes.width?void 0:parseFloat(e.attributes.width||\"0\")};return e.attributes.style&&(t.styleId=parseInt(e.attributes.style,10)),n.parseBoolean(e.attributes.hidden)&&(t.hidden=!0),n.parseBoolean(e.attributes.bestFit)&&(t.bestFit=!0),e.attributes.outlineLevel&&(t.outlineLevel=parseInt(e.attributes.outlineLevel,10)),n.parseBoolean(e.attributes.collapsed)&&(t.collapsed=!0),!0}return!1}parseText(){}parseClose(){return!1}reconcile(e,t){e.styleId&&(e.style=t.styles.getStyleModel(e.styleId))}}},{\"../../../utils/utils\":27,\"../base-xform\":32}],93:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/under-dash\"),i=e(\"../../../utils/utils\"),s=e(\"../../../utils/col-cache\"),o=e(\"../base-xform\"),a=e(\"../../../doc/range\");function l(e,t,r,n){const i=t[r];void 0!==i?e[r]=i:void 0!==n&&(e[r]=n)}function c(e,t,r,n){const s=t[r];void 0!==s?e[r]=i.parseBoolean(s):void 0!==n&&(e[r]=n)}t.exports=class extends o{get tag(){return\"dataValidations\"}render(e,t){const r=function(e){const t=n.map(e,(e,t)=>({address:t,dataValidation:e,marked:!1})).sort((e,t)=>n.strcmp(e.address,t.address)),r=n.keyBy(t,\"address\"),i=(t,r,i)=>{for(let o=0;o<r;o++){const r=s.encodeAddress(t.row+o,i);if(!e[r]||!n.isEqual(e[t.address],e[r]))return!1}return!0};return t.map(t=>{if(!t.marked){const o=s.decodeEx(t.address);if(o.dimensions)return r[o.dimensions].marked=!0,{...t.dataValidation,sqref:t.address};let a=1,l=s.encodeAddress(o.row+a,o.col);for(;e[l]&&n.isEqual(t.dataValidation,e[l]);)a++,l=s.encodeAddress(o.row+a,o.col);let c=1;for(;i(o,a,o.col+c);)c++;for(let e=0;e<a;e++)for(let t=0;t<c;t++)l=s.encodeAddress(o.row+e,o.col+t),r[l].marked=!0;if(a>1||c>1){const e=o.row+(a-1),r=o.col+(c-1);return{...t.dataValidation,sqref:`${t.address}:${s.encodeAddress(e,r)}`}}return{...t.dataValidation,sqref:t.address}}return null}).filter(Boolean)}(t);r.length&&(e.openNode(\"dataValidations\",{count:r.length}),r.forEach(t=>{e.openNode(\"dataValidation\"),\"any\"!==t.type&&(e.addAttribute(\"type\",t.type),t.operator&&\"list\"!==t.type&&\"between\"!==t.operator&&e.addAttribute(\"operator\",t.operator),t.allowBlank&&e.addAttribute(\"allowBlank\",\"1\")),t.showInputMessage&&e.addAttribute(\"showInputMessage\",\"1\"),t.promptTitle&&e.addAttribute(\"promptTitle\",t.promptTitle),t.prompt&&e.addAttribute(\"prompt\",t.prompt),t.showErrorMessage&&e.addAttribute(\"showErrorMessage\",\"1\"),t.errorStyle&&e.addAttribute(\"errorStyle\",t.errorStyle),t.errorTitle&&e.addAttribute(\"errorTitle\",t.errorTitle),t.error&&e.addAttribute(\"error\",t.error),e.addAttribute(\"sqref\",t.sqref),(t.formulae||[]).forEach((r,n)=>{e.openNode(\"formula\"+(n+1)),\"date\"===t.type?e.writeText(i.dateToExcel(new Date(r))):e.writeText(r),e.closeNode()}),e.closeNode()}),e.closeNode())}parseOpen(e){switch(e.name){case\"dataValidations\":return this.model={},!0;case\"dataValidation\":{this._address=e.attributes.sqref;const t={type:e.attributes.type||\"any\",formulae:[]};switch(e.attributes.type&&c(t,e.attributes,\"allowBlank\"),c(t,e.attributes,\"showInputMessage\"),c(t,e.attributes,\"showErrorMessage\"),t.type){case\"any\":case\"list\":case\"custom\":break;default:l(t,e.attributes,\"operator\",\"between\")}return l(t,e.attributes,\"promptTitle\"),l(t,e.attributes,\"prompt\"),l(t,e.attributes,\"errorStyle\"),l(t,e.attributes,\"errorTitle\"),l(t,e.attributes,\"error\"),this._dataValidation=t,!0}case\"formula1\":case\"formula2\":return this._formula=[],!0;default:return!1}}parseText(e){this._formula&&this._formula.push(e)}parseClose(e){switch(e){case\"dataValidations\":return!1;case\"dataValidation\":this._dataValidation.formulae&&this._dataValidation.formulae.length||(delete this._dataValidation.formulae,delete this._dataValidation.operator);return(this._address.split(/\\s+/g)||[]).forEach(e=>{if(e.includes(\":\")){new a(e).forEachAddress(e=>{this.model[e]=this._dataValidation})}else this.model[e]=this._dataValidation}),!0;case\"formula1\":case\"formula2\":{let e=this._formula.join(\"\");switch(this._dataValidation.type){case\"whole\":case\"textLength\":e=parseInt(e,10);break;case\"decimal\":e=parseFloat(e);break;case\"date\":e=i.excelToDate(parseFloat(e))}return this._dataValidation.formulae.push(e),this._formula=void 0,!0}default:return!0}}}},{\"../../../doc/range\":10,\"../../../utils/col-cache\":19,\"../../../utils/under-dash\":26,\"../../../utils/utils\":27,\"../base-xform\":32}],94:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"dimension\"}render(e,t){t&&e.leafNode(\"dimension\",{ref:t})}parseOpen(e){return\"dimension\"===e.name&&(this.model=e.attributes.ref,!0)}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],95:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"drawing\"}render(e,t){t&&e.leafNode(this.tag,{\"r:id\":t.rId})}parseOpen(e){switch(e.name){case this.tag:return this.model={rId:e.attributes[\"r:id\"]},!0;default:return!1}}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],96:[function(e,t,r){\"use strict\";const n=e(\"../composite-xform\"),i=e(\"./cf-ext/conditional-formattings-ext-xform\");class s extends n{constructor(){super(),this.map={\"x14:conditionalFormattings\":this.conditionalFormattings=new i}}get tag(){return\"ext\"}hasContent(e){return this.conditionalFormattings.hasContent(e.conditionalFormattings)}prepare(e,t){this.conditionalFormattings.prepare(e.conditionalFormattings,t)}render(e,t){e.openNode(\"ext\",{uri:\"{78C0D931-6437-407d-A8EE-F0AAD7539E65}\",\"xmlns:x14\":\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main\"}),this.conditionalFormattings.render(e,t.conditionalFormattings),e.closeNode()}createNewModel(){return{}}onParserClose(e,t){this.model[e]=t.model}}t.exports=class extends n{constructor(){super(),this.map={ext:this.ext=new s}}get tag(){return\"extLst\"}prepare(e,t){this.ext.prepare(e,t)}hasContent(e){return this.ext.hasContent(e)}render(e,t){this.hasContent(t)&&(e.openNode(\"extLst\"),this.ext.render(e,t),e.closeNode())}createNewModel(){return{}}onParserClose(e,t){Object.assign(this.model,t.model)}}},{\"../composite-xform\":48,\"./cf-ext/conditional-formattings-ext-xform\":78}],97:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"headerFooter\"}render(e,t){if(t){e.addRollback();let r=!1;e.openNode(\"headerFooter\"),t.differentFirst&&(e.addAttribute(\"differentFirst\",\"1\"),r=!0),t.differentOddEven&&(e.addAttribute(\"differentOddEven\",\"1\"),r=!0),t.oddHeader&&\"string\"==typeof t.oddHeader&&(e.leafNode(\"oddHeader\",null,t.oddHeader),r=!0),t.oddFooter&&\"string\"==typeof t.oddFooter&&(e.leafNode(\"oddFooter\",null,t.oddFooter),r=!0),t.evenHeader&&\"string\"==typeof t.evenHeader&&(e.leafNode(\"evenHeader\",null,t.evenHeader),r=!0),t.evenFooter&&\"string\"==typeof t.evenFooter&&(e.leafNode(\"evenFooter\",null,t.evenFooter),r=!0),t.firstHeader&&\"string\"==typeof t.firstHeader&&(e.leafNode(\"firstHeader\",null,t.firstHeader),r=!0),t.firstFooter&&\"string\"==typeof t.firstFooter&&(e.leafNode(\"firstFooter\",null,t.firstFooter),r=!0),r?(e.closeNode(),e.commit()):e.rollback()}}parseOpen(e){switch(e.name){case\"headerFooter\":return this.model={},e.attributes.differentFirst&&(this.model.differentFirst=1===parseInt(e.attributes.differentFirst,0)),e.attributes.differentOddEven&&(this.model.differentOddEven=1===parseInt(e.attributes.differentOddEven,0)),!0;case\"oddHeader\":return this.currentNode=\"oddHeader\",!0;case\"oddFooter\":return this.currentNode=\"oddFooter\",!0;case\"evenHeader\":return this.currentNode=\"evenHeader\",!0;case\"evenFooter\":return this.currentNode=\"evenFooter\",!0;case\"firstHeader\":return this.currentNode=\"firstHeader\",!0;case\"firstFooter\":return this.currentNode=\"firstFooter\",!0;default:return!1}}parseText(e){switch(this.currentNode){case\"oddHeader\":this.model.oddHeader=e;break;case\"oddFooter\":this.model.oddFooter=e;break;case\"evenHeader\":this.model.evenHeader=e;break;case\"evenFooter\":this.model.evenFooter=e;break;case\"firstHeader\":this.model.firstHeader=e;break;case\"firstFooter\":this.model.firstFooter=e}}parseClose(){switch(this.currentNode){case\"oddHeader\":case\"oddFooter\":case\"evenHeader\":case\"evenFooter\":case\"firstHeader\":case\"firstFooter\":return this.currentNode=void 0,!0;default:return!1}}}},{\"../base-xform\":32}],98:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"hyperlink\"}render(e,t){this.isInternalLink(t)?e.leafNode(\"hyperlink\",{ref:t.address,\"r:id\":t.rId,tooltip:t.tooltip,location:t.target}):e.leafNode(\"hyperlink\",{ref:t.address,\"r:id\":t.rId,tooltip:t.tooltip})}parseOpen(e){return\"hyperlink\"===e.name&&(this.model={address:e.attributes.ref,rId:e.attributes[\"r:id\"],tooltip:e.attributes.tooltip},e.attributes.location&&(this.model.target=e.attributes.location),!0)}parseText(){}parseClose(){return!1}isInternalLink(e){return e.target&&/^[^!]+![a-zA-Z]+[\\d]+$/.test(e.target)}}},{\"../base-xform\":32}],99:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"mergeCell\"}render(e,t){e.leafNode(\"mergeCell\",{ref:t})}parseOpen(e){return\"mergeCell\"===e.name&&(this.model=e.attributes.ref,!0)}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],100:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/under-dash\"),i=e(\"../../../doc/range\"),s=e(\"../../../utils/col-cache\"),o=e(\"../../../doc/enums\");t.exports=class{constructor(){this.merges={}}add(e){if(this.merges[e.master])this.merges[e.master].expandToAddress(e.address);else{const t=`${e.master}:${e.address}`;this.merges[e.master]=new i(t)}}get mergeCells(){return n.map(this.merges,e=>e.range)}reconcile(e,t){n.each(e,e=>{const r=s.decode(e);for(let e=r.top;e<=r.bottom;e++){const n=t[e-1];for(let t=r.left;t<=r.right;t++){const i=n.cells[t-1];i?i.type===o.ValueType.Merge&&(i.master=r.tl):n.cells[t]={type:o.ValueType.Null,address:s.encodeAddress(e,t)}}}})}getMasterAddress(e){const t=this.hash[e];return t&&t.tl}}},{\"../../../doc/enums\":7,\"../../../doc/range\":10,\"../../../utils/col-cache\":19,\"../../../utils/under-dash\":26}],101:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e=>void 0!==e;t.exports=class extends n{get tag(){return\"outlinePr\"}render(e,t){return!(!t||!i(t.summaryBelow)&&!i(t.summaryRight))&&(e.leafNode(this.tag,{summaryBelow:i(t.summaryBelow)?Number(t.summaryBelow):void 0,summaryRight:i(t.summaryRight)?Number(t.summaryRight):void 0}),!0)}parseOpen(e){return e.name===this.tag&&(this.model={summaryBelow:i(e.attributes.summaryBelow)?Boolean(Number(e.attributes.summaryBelow)):void 0,summaryRight:i(e.attributes.summaryRight)?Boolean(Number(e.attributes.summaryRight)):void 0},!0)}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],102:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"brk\"}render(e,t){e.leafNode(\"brk\",t)}parseOpen(e){return\"brk\"===e.name&&(this.model=e.attributes.ref,!0)}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],103:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/under-dash\"),i=e(\"../base-xform\");t.exports=class extends i{get tag(){return\"pageMargins\"}render(e,t){if(t){const r={left:t.left,right:t.right,top:t.top,bottom:t.bottom,header:t.header,footer:t.footer};n.some(r,e=>void 0!==e)&&e.leafNode(this.tag,r)}}parseOpen(e){switch(e.name){case this.tag:return this.model={left:parseFloat(e.attributes.left||.7),right:parseFloat(e.attributes.right||.7),top:parseFloat(e.attributes.top||.75),bottom:parseFloat(e.attributes.bottom||.75),header:parseFloat(e.attributes.header||.3),footer:parseFloat(e.attributes.footer||.3)},!0;default:return!1}}parseText(){}parseClose(){return!1}}},{\"../../../utils/under-dash\":26,\"../base-xform\":32}],104:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"pageSetUpPr\"}render(e,t){return!(!t||!t.fitToPage)&&(e.leafNode(this.tag,{fitToPage:t.fitToPage?\"1\":void 0}),!0)}parseOpen(e){return e.name===this.tag&&(this.model={fitToPage:\"1\"===e.attributes.fitToPage},!0)}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],105:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/under-dash\"),i=e(\"../base-xform\");function s(e){return e?\"1\":void 0}function o(e){switch(e){case\"overThenDown\":return e;default:return}}function a(e){switch(e){case\"atEnd\":case\"asDisplyed\":return e;default:return}}function l(e){switch(e){case\"dash\":case\"blank\":case\"NA\":return e;default:return}}t.exports=class extends i{get tag(){return\"pageSetup\"}render(e,t){if(t){const r={paperSize:t.paperSize,orientation:t.orientation,horizontalDpi:t.horizontalDpi,verticalDpi:t.verticalDpi,pageOrder:o(t.pageOrder),blackAndWhite:s(t.blackAndWhite),draft:s(t.draft),cellComments:a(t.cellComments),errors:l(t.errors),scale:t.scale,fitToWidth:t.fitToWidth,fitToHeight:t.fitToHeight,firstPageNumber:t.firstPageNumber,useFirstPageNumber:s(t.firstPageNumber),usePrinterDefaults:s(t.usePrinterDefaults),copies:t.copies};n.some(r,e=>void 0!==e)&&e.leafNode(this.tag,r)}}parseOpen(e){switch(e.name){case this.tag:return this.model={paperSize:(t=e.attributes.paperSize,void 0!==t?parseInt(t,10):void 0),orientation:e.attributes.orientation||\"portrait\",horizontalDpi:parseInt(e.attributes.horizontalDpi||\"4294967295\",10),verticalDpi:parseInt(e.attributes.verticalDpi||\"4294967295\",10),pageOrder:e.attributes.pageOrder||\"downThenOver\",blackAndWhite:\"1\"===e.attributes.blackAndWhite,draft:\"1\"===e.attributes.draft,cellComments:e.attributes.cellComments||\"None\",errors:e.attributes.errors||\"displayed\",scale:parseInt(e.attributes.scale||\"100\",10),fitToWidth:parseInt(e.attributes.fitToWidth||\"1\",10),fitToHeight:parseInt(e.attributes.fitToHeight||\"1\",10),firstPageNumber:parseInt(e.attributes.firstPageNumber||\"1\",10),useFirstPageNumber:\"1\"===e.attributes.useFirstPageNumber,usePrinterDefaults:\"1\"===e.attributes.usePrinterDefaults,copies:parseInt(e.attributes.copies||\"1\",10)},!0;default:return!1}var t}parseText(){}parseClose(){return!1}}},{\"../../../utils/under-dash\":26,\"../base-xform\":32}],106:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"picture\"}render(e,t){t&&e.leafNode(this.tag,{\"r:id\":t.rId})}parseOpen(e){switch(e.name){case this.tag:return this.model={rId:e.attributes[\"r:id\"]},!0;default:return!1}}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],107:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/under-dash\"),i=e(\"../base-xform\");function s(e){return e?\"1\":void 0}t.exports=class extends i{get tag(){return\"printOptions\"}render(e,t){if(t){const r={headings:s(t.showRowColHeaders),gridLines:s(t.showGridLines),horizontalCentered:s(t.horizontalCentered),verticalCentered:s(t.verticalCentered)};n.some(r,e=>void 0!==e)&&e.leafNode(this.tag,r)}}parseOpen(e){switch(e.name){case this.tag:return this.model={showRowColHeaders:\"1\"===e.attributes.headings,showGridLines:\"1\"===e.attributes.gridLines,horizontalCentered:\"1\"===e.attributes.horizontalCentered,verticalCentered:\"1\"===e.attributes.verticalCentered},!0;default:return!1}}parseText(){}parseClose(){return!1}}},{\"../../../utils/under-dash\":26,\"../base-xform\":32}],108:[function(e,t,r){\"use strict\";const n=e(\"./page-breaks-xform\"),i=e(\"../list-xform\");t.exports=class extends i{constructor(){super({tag:\"rowBreaks\",count:!0,childXform:new n})}render(e,t){if(t&&t.length){e.openNode(this.tag,this.$),this.count&&(e.addAttribute(this.$count,t.length),e.addAttribute(\"manualBreakCount\",t.length));const{childXform:r}=this;t.forEach(t=>{r.render(e,t)}),e.closeNode()}else this.empty&&e.leafNode(this.tag)}}},{\"../list-xform\":71,\"./page-breaks-xform\":102}],109:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"../../../utils/utils\"),s=e(\"./cell-xform\");t.exports=class extends n{constructor(e){super(),this.maxItems=e&&e.maxItems,this.map={c:new s}}get tag(){return\"row\"}prepare(e,t){const r=t.styles.addStyleModel(e.style);r&&(e.styleId=r);const n=this.map.c;e.cells.forEach(e=>{n.prepare(e,t)})}render(e,t,r){e.openNode(\"row\"),e.addAttribute(\"r\",t.number),t.height&&(e.addAttribute(\"ht\",t.height),e.addAttribute(\"customHeight\",\"1\")),t.hidden&&e.addAttribute(\"hidden\",\"1\"),t.min>0&&t.max>0&&t.min<=t.max&&e.addAttribute(\"spans\",`${t.min}:${t.max}`),t.styleId&&(e.addAttribute(\"s\",t.styleId),e.addAttribute(\"customFormat\",\"1\")),e.addAttribute(\"x14ac:dyDescent\",\"0.25\"),t.outlineLevel&&e.addAttribute(\"outlineLevel\",t.outlineLevel),t.collapsed&&e.addAttribute(\"collapsed\",\"1\");const n=this.map.c;t.cells.forEach(t=>{n.render(e,t,r)}),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;if(\"row\"===e.name){this.numRowsSeen+=1;const t=e.attributes.spans?e.attributes.spans.split(\":\").map(e=>parseInt(e,10)):[void 0,void 0],r=this.model={number:parseInt(e.attributes.r,10),min:t[0],max:t[1],cells:[]};return e.attributes.s&&(r.styleId=parseInt(e.attributes.s,10)),i.parseBoolean(e.attributes.hidden)&&(r.hidden=!0),i.parseBoolean(e.attributes.bestFit)&&(r.bestFit=!0),e.attributes.ht&&(r.height=parseFloat(e.attributes.ht)),e.attributes.outlineLevel&&(r.outlineLevel=parseInt(e.attributes.outlineLevel,10)),i.parseBoolean(e.attributes.collapsed)&&(r.collapsed=!0),!0}return this.parser=this.map[e.name],!!this.parser&&(this.parser.parseOpen(e),!0)}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser){if(!this.parser.parseClose(e)){if(this.model.cells.push(this.parser.model),this.maxItems&&this.model.cells.length>this.maxItems)throw new Error(`Max column count (${this.maxItems}) exceeded`);this.parser=void 0}return!0}return!1}reconcile(e,t){e.style=e.styleId?t.styles.getStyleModel(e.styleId):{},void 0!==e.styleId&&(e.styleId=void 0);const r=this.map.c;e.cells.forEach(e=>{r.reconcile(e,t)})}}},{\"../../../utils/utils\":27,\"../base-xform\":32,\"./cell-xform\":73}],110:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/under-dash\"),i=e(\"../base-xform\");t.exports=class extends i{get tag(){return\"sheetFormatPr\"}render(e,t){if(t){const r={defaultRowHeight:t.defaultRowHeight,outlineLevelRow:t.outlineLevelRow,outlineLevelCol:t.outlineLevelCol,\"x14ac:dyDescent\":t.dyDescent};t.defaultColWidth&&(r.defaultColWidth=t.defaultColWidth),t.defaultRowHeight&&15===t.defaultRowHeight||(r.customHeight=\"1\"),n.some(r,e=>void 0!==e)&&e.leafNode(\"sheetFormatPr\",r)}}parseOpen(e){return\"sheetFormatPr\"===e.name&&(this.model={defaultRowHeight:parseFloat(e.attributes.defaultRowHeight||\"0\"),dyDescent:parseFloat(e.attributes[\"x14ac:dyDescent\"]||\"0\"),outlineLevelRow:parseInt(e.attributes.outlineLevelRow||\"0\",10),outlineLevelCol:parseInt(e.attributes.outlineLevelCol||\"0\",10)},e.attributes.defaultColWidth&&(this.model.defaultColWidth=parseFloat(e.attributes.defaultColWidth)),!0)}parseText(){}parseClose(){return!1}}},{\"../../../utils/under-dash\":26,\"../base-xform\":32}],111:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"../style/color-xform\"),s=e(\"./page-setup-properties-xform\"),o=e(\"./outline-properties-xform\");t.exports=class extends n{constructor(){super(),this.map={tabColor:new i(\"tabColor\"),pageSetUpPr:new s,outlinePr:new o}}get tag(){return\"sheetPr\"}render(e,t){if(t){e.addRollback(),e.openNode(\"sheetPr\");let r=!1;r=this.map.tabColor.render(e,t.tabColor)||r,r=this.map.pageSetUpPr.render(e,t.pageSetup)||r,r=this.map.outlinePr.render(e,t.outlineProperties)||r,r?(e.closeNode(),e.commit()):e.rollback()}}parseOpen(e){return this.parser?(this.parser.parseOpen(e),!0):e.name===this.tag?(this.reset(),!0):!!this.map[e.name]&&(this.parser=this.map[e.name],this.parser.parseOpen(e),!0)}parseText(e){return!!this.parser&&(this.parser.parseText(e),!0)}parseClose(e){return this.parser?(this.parser.parseClose(e)||(this.parser=void 0),!0):(this.map.tabColor.model||this.map.pageSetUpPr.model||this.map.outlinePr.model?(this.model={},this.map.tabColor.model&&(this.model.tabColor=this.map.tabColor.model),this.map.pageSetUpPr.model&&(this.model.pageSetup=this.map.pageSetUpPr.model),this.map.outlinePr.model&&(this.model.outlineProperties=this.map.outlinePr.model)):this.model=null,!1)}}},{\"../base-xform\":32,\"../style/color-xform\":128,\"./outline-properties-xform\":101,\"./page-setup-properties-xform\":104}],112:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/under-dash\"),i=e(\"../base-xform\");function s(e,t){return e?t:void 0}function o(e,t){return e===t||void 0}t.exports=class extends i{get tag(){return\"sheetProtection\"}render(e,t){if(t){const r={sheet:s(t.sheet,\"1\"),selectLockedCells:!1===t.selectLockedCells?\"1\":void 0,selectUnlockedCells:!1===t.selectUnlockedCells?\"1\":void 0,formatCells:s(t.formatCells,\"0\"),formatColumns:s(t.formatColumns,\"0\"),formatRows:s(t.formatRows,\"0\"),insertColumns:s(t.insertColumns,\"0\"),insertRows:s(t.insertRows,\"0\"),insertHyperlinks:s(t.insertHyperlinks,\"0\"),deleteColumns:s(t.deleteColumns,\"0\"),deleteRows:s(t.deleteRows,\"0\"),sort:s(t.sort,\"0\"),autoFilter:s(t.autoFilter,\"0\"),pivotTables:s(t.pivotTables,\"0\")};t.sheet&&(r.algorithmName=t.algorithmName,r.hashValue=t.hashValue,r.saltValue=t.saltValue,r.spinCount=t.spinCount,r.objects=s(!1===t.objects,\"1\"),r.scenarios=s(!1===t.scenarios,\"1\")),n.some(r,e=>void 0!==e)&&e.leafNode(this.tag,r)}}parseOpen(e){switch(e.name){case this.tag:return this.model={sheet:o(e.attributes.sheet,\"1\"),objects:\"1\"!==e.attributes.objects&&void 0,scenarios:\"1\"!==e.attributes.scenarios&&void 0,selectLockedCells:\"1\"!==e.attributes.selectLockedCells&&void 0,selectUnlockedCells:\"1\"!==e.attributes.selectUnlockedCells&&void 0,formatCells:o(e.attributes.formatCells,\"0\"),formatColumns:o(e.attributes.formatColumns,\"0\"),formatRows:o(e.attributes.formatRows,\"0\"),insertColumns:o(e.attributes.insertColumns,\"0\"),insertRows:o(e.attributes.insertRows,\"0\"),insertHyperlinks:o(e.attributes.insertHyperlinks,\"0\"),deleteColumns:o(e.attributes.deleteColumns,\"0\"),deleteRows:o(e.attributes.deleteRows,\"0\"),sort:o(e.attributes.sort,\"0\"),autoFilter:o(e.attributes.autoFilter,\"0\"),pivotTables:o(e.attributes.pivotTables,\"0\")},e.attributes.algorithmName&&(this.model.algorithmName=e.attributes.algorithmName,this.model.hashValue=e.attributes.hashValue,this.model.saltValue=e.attributes.saltValue,this.model.spinCount=parseInt(e.attributes.spinCount,10)),!0;default:return!1}}parseText(){}parseClose(){return!1}}},{\"../../../utils/under-dash\":26,\"../base-xform\":32}],113:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/col-cache\"),i=e(\"../base-xform\"),s={frozen:\"frozen\",frozenSplit:\"frozen\",split:\"split\"};t.exports=class extends i{get tag(){return\"sheetView\"}prepare(e){switch(e.state){case\"frozen\":case\"split\":break;default:e.state=\"normal\"}}render(e,t){e.openNode(\"sheetView\",{workbookViewId:t.workbookViewId||0});const r=function(t,r,n){n&&e.addAttribute(t,r)};let i,s,o,a;switch(r(\"rightToLeft\",\"1\",!0===t.rightToLeft),r(\"tabSelected\",\"1\",t.tabSelected),r(\"showRuler\",\"0\",!1===t.showRuler),r(\"showRowColHeaders\",\"0\",!1===t.showRowColHeaders),r(\"showGridLines\",\"0\",!1===t.showGridLines),r(\"zoomScale\",t.zoomScale,t.zoomScale),r(\"zoomScaleNormal\",t.zoomScaleNormal,t.zoomScaleNormal),r(\"view\",t.style,t.style),t.state){case\"frozen\":s=t.xSplit||0,o=t.ySplit||0,i=t.topLeftCell||n.getAddress(o+1,s+1).address,a=(t.xSplit&&t.ySplit?\"bottomRight\":t.xSplit&&\"topRight\")||\"bottomLeft\",e.leafNode(\"pane\",{xSplit:t.xSplit||void 0,ySplit:t.ySplit||void 0,topLeftCell:i,activePane:a,state:\"frozen\"}),e.leafNode(\"selection\",{pane:a,activeCell:t.activeCell,sqref:t.activeCell});break;case\"split\":\"topLeft\"===t.activePane&&(t.activePane=void 0),e.leafNode(\"pane\",{xSplit:t.xSplit||void 0,ySplit:t.ySplit||void 0,topLeftCell:t.topLeftCell,activePane:t.activePane}),e.leafNode(\"selection\",{pane:t.activePane,activeCell:t.activeCell,sqref:t.activeCell});break;case\"normal\":t.activeCell&&e.leafNode(\"selection\",{activeCell:t.activeCell,sqref:t.activeCell})}e.closeNode()}parseOpen(e){switch(e.name){case\"sheetView\":return this.sheetView={workbookViewId:parseInt(e.attributes.workbookViewId,10),rightToLeft:\"1\"===e.attributes.rightToLeft,tabSelected:\"1\"===e.attributes.tabSelected,showRuler:!(\"0\"===e.attributes.showRuler),showRowColHeaders:!(\"0\"===e.attributes.showRowColHeaders),showGridLines:!(\"0\"===e.attributes.showGridLines),zoomScale:parseInt(e.attributes.zoomScale||\"100\",10),zoomScaleNormal:parseInt(e.attributes.zoomScaleNormal||\"100\",10),style:e.attributes.view},this.pane=void 0,this.selections={},!0;case\"pane\":return this.pane={xSplit:parseInt(e.attributes.xSplit||\"0\",10),ySplit:parseInt(e.attributes.ySplit||\"0\",10),topLeftCell:e.attributes.topLeftCell,activePane:e.attributes.activePane||\"topLeft\",state:e.attributes.state},!0;case\"selection\":{const t=e.attributes.pane||\"topLeft\";return this.selections[t]={pane:t,activeCell:e.attributes.activeCell},!0}default:return!1}}parseText(){}parseClose(e){let t,r;switch(e){case\"sheetView\":return this.sheetView&&this.pane?(t=this.model={workbookViewId:this.sheetView.workbookViewId,rightToLeft:this.sheetView.rightToLeft,state:s[this.pane.state]||\"split\",xSplit:this.pane.xSplit,ySplit:this.pane.ySplit,topLeftCell:this.pane.topLeftCell,showRuler:this.sheetView.showRuler,showRowColHeaders:this.sheetView.showRowColHeaders,showGridLines:this.sheetView.showGridLines,zoomScale:this.sheetView.zoomScale,zoomScaleNormal:this.sheetView.zoomScaleNormal},\"split\"===this.model.state&&(t.activePane=this.pane.activePane),r=this.selections[this.pane.activePane],r&&r.activeCell&&(t.activeCell=r.activeCell),this.sheetView.style&&(t.style=this.sheetView.style)):(t=this.model={workbookViewId:this.sheetView.workbookViewId,rightToLeft:this.sheetView.rightToLeft,state:\"normal\",showRuler:this.sheetView.showRuler,showRowColHeaders:this.sheetView.showRowColHeaders,showGridLines:this.sheetView.showGridLines,zoomScale:this.sheetView.zoomScale,zoomScaleNormal:this.sheetView.zoomScaleNormal},r=this.selections.topLeft,r&&r.activeCell&&(t.activeCell=r.activeCell),this.sheetView.style&&(t.style=this.sheetView.style)),!1;default:return!0}}reconcile(){}}},{\"../../../utils/col-cache\":19,\"../base-xform\":32}],114:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"tablePart\"}render(e,t){t&&e.leafNode(this.tag,{\"r:id\":t.rId})}parseOpen(e){switch(e.name){case this.tag:return this.model={rId:e.attributes[\"r:id\"]},!0;default:return!1}}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],115:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/under-dash\"),i=e(\"../../../utils/col-cache\"),s=e(\"../../../utils/xml-stream\"),o=e(\"../../rel-type\"),a=e(\"./merges\"),l=e(\"../base-xform\"),c=e(\"../list-xform\"),u=e(\"./row-xform\"),h=e(\"./col-xform\"),f=e(\"./dimension-xform\"),d=e(\"./hyperlink-xform\"),p=e(\"./merge-cell-xform\"),m=e(\"./data-validations-xform\"),b=e(\"./sheet-properties-xform\"),g=e(\"./sheet-format-properties-xform\"),y=e(\"./sheet-view-xform\"),v=e(\"./sheet-protection-xform\"),w=e(\"./page-margins-xform\"),_=e(\"./page-setup-xform\"),x=e(\"./print-options-xform\"),k=e(\"./auto-filter-xform\"),S=e(\"./picture-xform\"),M=e(\"./drawing-xform\"),C=e(\"./table-part-xform\"),T=e(\"./row-breaks-xform\"),E=e(\"./header-footer-xform\"),A=e(\"./cf/conditional-formattings-xform\"),R=e(\"./ext-lst-xform\"),O=(e,t)=>{if(!t||!t.length)return e;if(!e||!e.length)return t;const r={},n={};return e.forEach(e=>{r[e.ref]=e,e.rules.forEach(e=>{const{x14Id:t}=e;t&&(n[t]=e)})}),t.forEach(t=>{t.rules.forEach(i=>{const s=n[i.x14Id];s?((e,t)=>{Object.keys(t).forEach(r=>{const n=e[r],i=t[r];void 0===n&&void 0!==i&&(e[r]=i)})})(s,i):r[t.ref]?r[t.ref].rules.push(i):e.push({ref:t.ref,rules:[i]})})}),e};class j extends l{constructor(e){super();const{maxRows:t,maxCols:r,ignoreNodes:n}=e||{};this.ignoreNodes=n||[],this.map={sheetPr:new b,dimension:new f,sheetViews:new c({tag:\"sheetViews\",count:!1,childXform:new y}),sheetFormatPr:new g,cols:new c({tag:\"cols\",count:!1,childXform:new h}),sheetData:new c({tag:\"sheetData\",count:!1,empty:!0,childXform:new u({maxItems:r}),maxItems:t}),autoFilter:new k,mergeCells:new c({tag:\"mergeCells\",count:!0,childXform:new p}),rowBreaks:new T,hyperlinks:new c({tag:\"hyperlinks\",count:!1,childXform:new d}),pageMargins:new w,dataValidations:new m,pageSetup:new _,headerFooter:new E,printOptions:new x,picture:new S,drawing:new M,sheetProtection:new v,tableParts:new c({tag:\"tableParts\",count:!0,childXform:new C}),conditionalFormatting:new A,extLst:new R}}prepare(e,t){t.merges=new a,e.hyperlinks=t.hyperlinks=[],e.comments=t.comments=[],t.formulae={},t.siFormulae=0,this.map.cols.prepare(e.cols,t),this.map.sheetData.prepare(e.rows,t),this.map.conditionalFormatting.prepare(e.conditionalFormattings,t),e.mergeCells=t.merges.mergeCells;const r=e.rels=[];function n(e){return\"rId\"+(e.length+1)}if(e.hyperlinks.forEach(e=>{const t=n(r);e.rId=t,r.push({Id:t,Type:o.Hyperlink,Target:e.target,TargetMode:\"External\"})}),e.comments.length>0){const s={Id:n(r),Type:o.Comments,Target:`../comments${e.id}.xml`};r.push(s);const a={Id:n(r),Type:o.VmlDrawing,Target:`../drawings/vmlDrawing${e.id}.vml`};r.push(a),e.comments.forEach(e=>{e.refAddress=i.decodeAddress(e.ref)}),t.commentRefs.push({commentName:\"comments\"+e.id,vmlDrawing:\"vmlDrawing\"+e.id})}const s=[];let l;e.media.forEach(i=>{if(\"background\"===i.type){const s=n(r);l=t.media[i.imageId],r.push({Id:s,Type:o.Image,Target:`../media/${l.name}.${l.extension}`}),e.background={rId:s},e.image=t.media[i.imageId]}else if(\"image\"===i.type){let{drawing:a}=e;l=t.media[i.imageId],a||(a=e.drawing={rId:n(r),name:\"drawing\"+ ++t.drawingsCount,anchors:[],rels:[]},t.drawings.push(a),r.push({Id:a.rId,Type:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",Target:`../drawings/${a.name}.xml`}));let c=this.preImageId===i.imageId?s[i.imageId]:s[a.rels.length];c||(c=n(a.rels),s[a.rels.length]=c,a.rels.push({Id:c,Type:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",Target:`../media/${l.name}.${l.extension}`}));const u={picture:{rId:c},range:i.range};if(i.hyperlinks&&i.hyperlinks.hyperlink){const e=n(a.rels);s[a.rels.length]=e,u.picture.hyperlinks={tooltip:i.hyperlinks.tooltip,rId:e},a.rels.push({Id:e,Type:o.Hyperlink,Target:i.hyperlinks.hyperlink,TargetMode:\"External\"})}this.preImageId=i.imageId,a.anchors.push(u)}}),e.tables.forEach(e=>{const i=n(r);e.rId=i,r.push({Id:i,Type:o.Table,Target:\"../tables/\"+e.target}),e.columns.forEach(e=>{const{style:r}=e;r&&(e.dxfId=t.styles.addDxfStyle(r))})}),this.map.extLst.prepare(e,t)}render(e,t){e.openXml(s.StdDocAttributes),e.openNode(\"worksheet\",j.WORKSHEET_ATTRIBUTES);const r=t.properties?{defaultRowHeight:t.properties.defaultRowHeight,dyDescent:t.properties.dyDescent,outlineLevelCol:t.properties.outlineLevelCol,outlineLevelRow:t.properties.outlineLevelRow}:void 0;t.properties&&t.properties.defaultColWidth&&(r.defaultColWidth=t.properties.defaultColWidth);const n={outlineProperties:t.properties&&t.properties.outlineProperties,tabColor:t.properties&&t.properties.tabColor,pageSetup:t.pageSetup&&t.pageSetup.fitToPage?{fitToPage:t.pageSetup.fitToPage}:void 0},i=t.pageSetup&&t.pageSetup.margins,a={showRowColHeaders:t.pageSetup&&t.pageSetup.showRowColHeaders,showGridLines:t.pageSetup&&t.pageSetup.showGridLines,horizontalCentered:t.pageSetup&&t.pageSetup.horizontalCentered,verticalCentered:t.pageSetup&&t.pageSetup.verticalCentered},l=t.sheetProtection;this.map.sheetPr.render(e,n),this.map.dimension.render(e,t.dimensions),this.map.sheetViews.render(e,t.views),this.map.sheetFormatPr.render(e,r),this.map.cols.render(e,t.cols),this.map.sheetData.render(e,t.rows),this.map.sheetProtection.render(e,l),this.map.autoFilter.render(e,t.autoFilter),this.map.mergeCells.render(e,t.mergeCells),this.map.conditionalFormatting.render(e,t.conditionalFormattings),this.map.dataValidations.render(e,t.dataValidations),this.map.hyperlinks.render(e,t.hyperlinks),this.map.printOptions.render(e,a),this.map.pageMargins.render(e,i),this.map.pageSetup.render(e,t.pageSetup),this.map.headerFooter.render(e,t.headerFooter),this.map.rowBreaks.render(e,t.rowBreaks),this.map.drawing.render(e,t.drawing),this.map.picture.render(e,t.background),this.map.tableParts.render(e,t.tables),this.map.extLst.render(e,t),t.rels&&t.rels.forEach(t=>{t.Type===o.VmlDrawing&&e.leafNode(\"legacyDrawing\",{\"r:id\":t.Id})}),e.closeNode()}parseOpen(e){return this.parser?(this.parser.parseOpen(e),!0):\"worksheet\"===e.name?(n.each(this.map,e=>{e.reset()}),!0):(this.map[e.name]&&!this.ignoreNodes.includes(e.name)&&(this.parser=this.map[e.name],this.parser.parseOpen(e)),!0)}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case\"worksheet\":{const e=this.map.sheetFormatPr.model||{};this.map.sheetPr.model&&this.map.sheetPr.model.tabColor&&(e.tabColor=this.map.sheetPr.model.tabColor),this.map.sheetPr.model&&this.map.sheetPr.model.outlineProperties&&(e.outlineProperties=this.map.sheetPr.model.outlineProperties);const t={fitToPage:this.map.sheetPr.model&&this.map.sheetPr.model.pageSetup&&this.map.sheetPr.model.pageSetup.fitToPage||!1,margins:this.map.pageMargins.model},r=Object.assign(t,this.map.pageSetup.model,this.map.printOptions.model),n=O(this.map.conditionalFormatting.model,this.map.extLst.model&&this.map.extLst.model[\"x14:conditionalFormattings\"]);return this.model={dimensions:this.map.dimension.model,cols:this.map.cols.model,rows:this.map.sheetData.model,mergeCells:this.map.mergeCells.model,hyperlinks:this.map.hyperlinks.model,dataValidations:this.map.dataValidations.model,properties:e,views:this.map.sheetViews.model,pageSetup:r,headerFooter:this.map.headerFooter.model,background:this.map.picture.model,drawing:this.map.drawing.model,tables:this.map.tableParts.model,conditionalFormattings:n},this.map.autoFilter.model&&(this.model.autoFilter=this.map.autoFilter.model),this.map.sheetProtection.model&&(this.model.sheetProtection=this.map.sheetProtection.model),!1}default:return!0}}reconcile(e,t){const r=(e.relationships||[]).reduce((r,n)=>{if(r[n.Id]=n,n.Type===o.Comments&&(e.comments=t.comments[n.Target].comments),n.Type===o.VmlDrawing&&e.comments&&e.comments.length){const r=t.vmlDrawings[n.Target].comments;e.comments.forEach((e,t)=>{e.note=Object.assign({},e.note,r[t])})}return r},{});if(t.commentsMap=(e.comments||[]).reduce((e,t)=>(t.ref&&(e[t.ref]=t),e),{}),t.hyperlinkMap=(e.hyperlinks||[]).reduce((e,t)=>(t.rId&&(e[t.address]=r[t.rId].Target),e),{}),t.formulae={},e.rows=e.rows&&e.rows.filter(Boolean)||[],e.rows.forEach(e=>{e.cells=e.cells&&e.cells.filter(Boolean)||[]}),this.map.cols.reconcile(e.cols,t),this.map.sheetData.reconcile(e.rows,t),this.map.conditionalFormatting.reconcile(e.conditionalFormattings,t),e.media=[],e.drawing){const n=r[e.drawing.rId].Target.match(/\\/drawings\\/([a-zA-Z0-9]+)[.][a-zA-Z]{3,4}$/);if(n){const r=n[1];t.drawings[r].anchors.forEach(t=>{if(t.medium){const r={type:\"image\",imageId:t.medium.index,range:t.range,hyperlinks:t.picture.hyperlinks};e.media.push(r)}})}}const n=e.background&&r[e.background.rId];if(n){const r=n.Target.split(\"/media/\")[1],i=t.mediaIndex&&t.mediaIndex[r];void 0!==i&&e.media.push({type:\"background\",imageId:i})}e.tables=(e.tables||[]).map(e=>{const n=r[e.rId];return t.tables[n.Target]}),delete e.relationships,delete e.hyperlinks,delete e.comments}}j.WORKSHEET_ATTRIBUTES={xmlns:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\",\"xmlns:r\":\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\",\"xmlns:mc\":\"http://schemas.openxmlformats.org/markup-compatibility/2006\",\"mc:Ignorable\":\"x14ac\",\"xmlns:x14ac\":\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\"},t.exports=j},{\"../../../utils/col-cache\":19,\"../../../utils/under-dash\":26,\"../../../utils/xml-stream\":28,\"../../rel-type\":31,\"../base-xform\":32,\"../list-xform\":71,\"./auto-filter-xform\":72,\"./cf/conditional-formattings-xform\":87,\"./col-xform\":92,\"./data-validations-xform\":93,\"./dimension-xform\":94,\"./drawing-xform\":95,\"./ext-lst-xform\":96,\"./header-footer-xform\":97,\"./hyperlink-xform\":98,\"./merge-cell-xform\":99,\"./merges\":100,\"./page-margins-xform\":103,\"./page-setup-xform\":105,\"./picture-xform\":106,\"./print-options-xform\":107,\"./row-breaks-xform\":108,\"./row-xform\":109,\"./sheet-format-properties-xform\":110,\"./sheet-properties-xform\":111,\"./sheet-protection-xform\":112,\"./sheet-view-xform\":113,\"./table-part-xform\":114}],116:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{constructor(e){super(),this.tag=e.tag,this.attr=e.attr}render(e,t){t&&(e.openNode(this.tag),e.closeNode())}parseOpen(e){e.name===this.tag&&(this.model=!0)}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],117:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{constructor(e){super(),this.tag=e.tag,this.attr=e.attr,this.attrs=e.attrs,this._format=e.format||function(e){try{return Number.isNaN(e.getTime())?\"\":e.toISOString()}catch(e){return\"\"}},this._parse=e.parse||function(e){return new Date(e)}}render(e,t){t&&(e.openNode(this.tag),this.attrs&&e.addAttributes(this.attrs),this.attr?e.addAttribute(this.attr,this._format(t)):e.writeText(this._format(t)),e.closeNode())}parseOpen(e){e.name===this.tag&&(this.attr?this.model=this._parse(e.attributes[this.attr]):this.text=[])}parseText(e){this.attr||this.text.push(e)}parseClose(){return this.attr||(this.model=this._parse(this.text.join(\"\"))),!1}}},{\"../base-xform\":32}],118:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{constructor(e){super(),this.tag=e.tag,this.attr=e.attr,this.attrs=e.attrs,this.zero=e.zero}render(e,t){(t||this.zero)&&(e.openNode(this.tag),this.attrs&&e.addAttributes(this.attrs),this.attr?e.addAttribute(this.attr,t):e.writeText(t),e.closeNode())}parseOpen(e){return e.name===this.tag&&(this.attr?this.model=parseInt(e.attributes[this.attr],10):this.text=[],!0)}parseText(e){this.attr||this.text.push(e)}parseClose(){return this.attr||(this.model=parseInt(this.text.join(\"\")||0,10)),!1}}},{\"../base-xform\":32}],119:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{constructor(e){super(),this.tag=e.tag,this.attr=e.attr,this.attrs=e.attrs}render(e,t){void 0!==t&&(e.openNode(this.tag),this.attrs&&e.addAttributes(this.attrs),this.attr?e.addAttribute(this.attr,t):e.writeText(t),e.closeNode())}parseOpen(e){e.name===this.tag&&(this.attr?this.model=e.attributes[this.attr]:this.text=[])}parseText(e){this.attr||this.text.push(e)}parseClose(){return this.attr||(this.model=this.text.join(\"\")),!1}}},{\"../base-xform\":32}],120:[function(e,t,r){\"use strict\";const n=e(\"./base-xform\"),i=e(\"../../utils/xml-stream\");t.exports=class extends n{constructor(e){super(),this._model=e}render(e){if(!this._xml){const e=new i;!function e(t,r){t.openNode(r.tag,r.$),r.c&&r.c.forEach(r=>{e(t,r)}),r.t&&t.writeText(r.t),t.closeNode()}(e,this._model),this._xml=e.xml}e.writeXml(this._xml)}parseOpen(){return!0}parseText(){}parseClose(e){switch(e){case this._model.tag:return!1;default:return!0}}}},{\"../../utils/xml-stream\":28,\"./base-xform\":32}],121:[function(e,t,r){\"use strict\";const n=e(\"./text-xform\"),i=e(\"./rich-text-xform\"),s=e(\"../base-xform\");t.exports=class extends s{constructor(){super(),this.map={r:new i,t:new n}}get tag(){return\"rPh\"}render(e,t){if(e.openNode(this.tag,{sb:t.sb||0,eb:t.eb||0}),t&&t.hasOwnProperty(\"richText\")&&t.richText){const{r:r}=this.map;t.richText.forEach(t=>{r.render(e,t)})}else t&&this.map.t.render(e,t.text);e.closeNode()}parseOpen(e){const{name:t}=e;return this.parser?(this.parser.parseOpen(e),!0):t===this.tag?(this.model={sb:parseInt(e.attributes.sb,10),eb:parseInt(e.attributes.eb,10)},!0):(this.parser=this.map[t],!!this.parser&&(this.parser.parseOpen(e),!0))}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser){if(!this.parser.parseClose(e)){switch(e){case\"r\":{let e=this.model.richText;e||(e=this.model.richText=[]),e.push(this.parser.model);break}case\"t\":this.model.text=this.parser.model}this.parser=void 0}return!0}switch(e){case this.tag:return!1;default:return!0}}}},{\"../base-xform\":32,\"./rich-text-xform\":122,\"./text-xform\":125}],122:[function(e,t,r){\"use strict\";const n=e(\"./text-xform\"),i=e(\"../style/font-xform\"),s=e(\"../base-xform\");class o extends s{constructor(e){super(),this.model=e}get tag(){return\"r\"}get textXform(){return this._textXform||(this._textXform=new n)}get fontXform(){return this._fontXform||(this._fontXform=new i(o.FONT_OPTIONS))}render(e,t){t=t||this.model,e.openNode(\"r\"),t.font&&this.fontXform.render(e,t.font),this.textXform.render(e,t.text),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"r\":return this.model={},!0;case\"t\":return this.parser=this.textXform,this.parser.parseOpen(e),!0;case\"rPr\":return this.parser=this.fontXform,this.parser.parseOpen(e),!0;default:return!1}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){switch(e){case\"r\":return!1;case\"t\":return this.model.text=this.parser.model,this.parser=void 0,!0;case\"rPr\":return this.model.font=this.parser.model,this.parser=void 0,!0;default:return this.parser&&this.parser.parseClose(e),!0}}}o.FONT_OPTIONS={tagName:\"rPr\",fontNameTag:\"rFont\"},t.exports=o},{\"../base-xform\":32,\"../style/font-xform\":131,\"./text-xform\":125}],123:[function(e,t,r){\"use strict\";const n=e(\"./text-xform\"),i=e(\"./rich-text-xform\"),s=e(\"./phonetic-text-xform\"),o=e(\"../base-xform\");t.exports=class extends o{constructor(e){super(),this.model=e,this.map={r:new i,t:new n,rPh:new s}}get tag(){return\"si\"}render(e,t){e.openNode(this.tag),t&&t.hasOwnProperty(\"richText\")&&t.richText?t.richText.length?t.richText.forEach(t=>{this.map.r.render(e,t)}):this.map.t.render(e,\"\"):null!=t&&this.map.t.render(e,t),e.closeNode()}parseOpen(e){const{name:t}=e;return this.parser?(this.parser.parseOpen(e),!0):t===this.tag?(this.model={},!0):(this.parser=this.map[t],!!this.parser&&(this.parser.parseOpen(e),!0))}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser){if(!this.parser.parseClose(e)){switch(e){case\"r\":{let e=this.model.richText;e||(e=this.model.richText=[]),e.push(this.parser.model);break}case\"t\":this.model=this.parser.model}this.parser=void 0}return!0}switch(e){case this.tag:return!1;default:return!0}}}},{\"../base-xform\":32,\"./phonetic-text-xform\":121,\"./rich-text-xform\":122,\"./text-xform\":125}],124:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/xml-stream\"),i=e(\"../base-xform\"),s=e(\"./shared-string-xform\");t.exports=class extends i{constructor(e){super(),this.model=e||{values:[],count:0},this.hash=Object.create(null),this.rich=Object.create(null)}get sharedStringXform(){return this._sharedStringXform||(this._sharedStringXform=new s)}get values(){return this.model.values}get uniqueCount(){return this.model.values.length}get count(){return this.model.count}getString(e){return this.model.values[e]}add(e){return e.richText?this.addRichText(e):this.addText(e)}addText(e){let t=this.hash[e];return void 0===t&&(t=this.hash[e]=this.model.values.length,this.model.values.push(e)),this.model.count++,t}addRichText(e){const t=this.sharedStringXform.toXml(e);let r=this.rich[t];return void 0===r&&(r=this.rich[t]=this.model.values.length,this.model.values.push(e)),this.model.count++,r}render(e,t){t=t||this._values,e.openXml(n.StdDocAttributes),e.openNode(\"sst\",{xmlns:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\",count:t.count,uniqueCount:t.values.length});const r=this.sharedStringXform;t.values.forEach(t=>{r.render(e,t)}),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"sst\":return!0;case\"si\":return this.parser=this.sharedStringXform,this.parser.parseOpen(e),!0;default:throw new Error(\"Unexpected xml node in parseOpen: \"+JSON.stringify(e))}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.model.values.push(this.parser.model),this.model.count++,this.parser=void 0),!0;switch(e){case\"sst\":return!1;default:throw new Error(\"Unexpected xml node in parseClose: \"+e)}}}},{\"../../../utils/xml-stream\":28,\"../base-xform\":32,\"./shared-string-xform\":123}],125:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"t\"}render(e,t){e.openNode(\"t\"),/^\\s|\\n|\\s$/.test(t)&&e.addAttribute(\"xml:space\",\"preserve\"),e.writeText(t),e.closeNode()}get model(){return this._text.join(\"\").replace(/_x([0-9A-F]{4})_/g,(e,t)=>String.fromCharCode(parseInt(t,16)))}parseOpen(e){switch(e.name){case\"t\":return this._text=[],!0;default:return!1}}parseText(e){this._text.push(e)}parseClose(){return!1}}},{\"../base-xform\":32}],126:[function(e,t,r){\"use strict\";const n=e(\"../../../doc/enums\"),i=e(\"../../../utils/utils\"),s=e(\"../base-xform\"),o={horizontalValues:[\"left\",\"center\",\"right\",\"fill\",\"centerContinuous\",\"distributed\",\"justify\"].reduce((e,t)=>(e[t]=!0,e),{}),horizontal(e){return this.horizontalValues[e]?e:void 0},verticalValues:[\"top\",\"middle\",\"bottom\",\"distributed\",\"justify\"].reduce((e,t)=>(e[t]=!0,e),{}),vertical(e){return\"middle\"===e?\"center\":this.verticalValues[e]?e:void 0},wrapText:e=>!!e||void 0,shrinkToFit:e=>!!e||void 0,textRotation(e){switch(e){case\"vertical\":return e;default:return(e=i.validInt(e))>=-90&&e<=90?e:void 0}},indent:e=>(e=i.validInt(e),Math.max(0,e)),readingOrder(e){switch(e){case\"ltr\":return n.ReadingOrder.LeftToRight;case\"rtl\":return n.ReadingOrder.RightToLeft;default:return}}},a={toXml(e){if(e=o.textRotation(e)){if(\"vertical\"===e)return 255;const t=Math.round(e);if(t>=0&&t<=90)return t;if(t<0&&t>=-90)return 90-t}},toModel(e){const t=i.validInt(e);if(void 0!==t){if(255===t)return\"vertical\";if(t>=0&&t<=90)return t;if(t>90&&t<=180)return 90-t}}};t.exports=class extends s{get tag(){return\"alignment\"}render(e,t){e.addRollback(),e.openNode(\"alignment\");let r=!1;function n(t,n){n&&(e.addAttribute(t,n),r=!0)}n(\"horizontal\",o.horizontal(t.horizontal)),n(\"vertical\",o.vertical(t.vertical)),n(\"wrapText\",!!o.wrapText(t.wrapText)&&\"1\"),n(\"shrinkToFit\",!!o.shrinkToFit(t.shrinkToFit)&&\"1\"),n(\"indent\",o.indent(t.indent)),n(\"textRotation\",a.toXml(t.textRotation)),n(\"readingOrder\",o.readingOrder(t.readingOrder)),e.closeNode(),r?e.commit():e.rollback()}parseOpen(e){const t={};let r=!1;function n(e,n,i){e&&(t[n]=i,r=!0)}n(e.attributes.horizontal,\"horizontal\",e.attributes.horizontal),n(e.attributes.vertical,\"vertical\",\"center\"===e.attributes.vertical?\"middle\":e.attributes.vertical),n(e.attributes.wrapText,\"wrapText\",i.parseBoolean(e.attributes.wrapText)),n(e.attributes.shrinkToFit,\"shrinkToFit\",i.parseBoolean(e.attributes.shrinkToFit)),n(e.attributes.indent,\"indent\",parseInt(e.attributes.indent,10)),n(e.attributes.textRotation,\"textRotation\",a.toModel(e.attributes.textRotation)),n(e.attributes.readingOrder,\"readingOrder\",\"2\"===e.attributes.readingOrder?\"rtl\":\"ltr\"),this.model=r?t:null}parseText(){}parseClose(){return!1}}},{\"../../../doc/enums\":7,\"../../../utils/utils\":27,\"../base-xform\":32}],127:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"../../../utils/utils\"),s=e(\"./color-xform\");class o extends n{constructor(e){super(),this.name=e,this.map={color:new s}}get tag(){return this.name}render(e,t,r){const n=t&&t.color||r||this.defaultColor;e.openNode(this.name),t&&t.style&&(e.addAttribute(\"style\",t.style),n&&this.map.color.render(e,n)),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case this.name:{const{style:t}=e.attributes;return this.model=t?{style:t}:void 0,!0}case\"color\":return this.parser=this.map.color,this.parser.parseOpen(e),!0;default:return!1}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){return this.parser?(this.parser.parseClose(e)||(this.parser=void 0),!0):(e===this.name&&this.map.color.model&&(this.model||(this.model={}),this.model.color=this.map.color.model),!1)}validStyle(e){return o.validStyleValues[e]}}o.validStyleValues=[\"thin\",\"dashed\",\"dotted\",\"dashDot\",\"hair\",\"dashDotDot\",\"slantDashDot\",\"mediumDashed\",\"mediumDashDotDot\",\"mediumDashDot\",\"medium\",\"double\",\"thick\"].reduce((e,t)=>(e[t]=!0,e),{});t.exports=class extends n{constructor(){super(),this.map={top:new o(\"top\"),left:new o(\"left\"),bottom:new o(\"bottom\"),right:new o(\"right\"),diagonal:new o(\"diagonal\")}}render(e,t){const{color:r}=t;function n(n,i){n&&!n.color&&t.color&&(n={...n,color:t.color}),i.render(e,n,r)}e.openNode(\"border\"),t.diagonal&&t.diagonal.style&&(t.diagonal.up&&e.addAttribute(\"diagonalUp\",\"1\"),t.diagonal.down&&e.addAttribute(\"diagonalDown\",\"1\")),n(t.left,this.map.left),n(t.right,this.map.right),n(t.top,this.map.top),n(t.bottom,this.map.bottom),n(t.diagonal,this.map.diagonal),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"border\":return this.reset(),this.diagonalUp=i.parseBoolean(e.attributes.diagonalUp),this.diagonalDown=i.parseBoolean(e.attributes.diagonalDown),!0;default:return this.parser=this.map[e.name],!!this.parser&&(this.parser.parseOpen(e),!0)}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;if(\"border\"===e){const e=this.model={},t=function(t,r,n){r&&(n&&Object.assign(r,n),e[t]=r)};t(\"left\",this.map.left.model),t(\"right\",this.map.right.model),t(\"top\",this.map.top.model),t(\"bottom\",this.map.bottom.model),t(\"diagonal\",this.map.diagonal.model,{up:this.diagonalUp,down:this.diagonalDown})}return!1}}},{\"../../../utils/utils\":27,\"../base-xform\":32,\"./color-xform\":128}],128:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{constructor(e){super(),this.name=e||\"color\"}get tag(){return this.name}render(e,t){return!!t&&(e.openNode(this.name),t.argb?e.addAttribute(\"rgb\",t.argb):void 0!==t.theme?(e.addAttribute(\"theme\",t.theme),void 0!==t.tint&&e.addAttribute(\"tint\",t.tint)):void 0!==t.indexed?e.addAttribute(\"indexed\",t.indexed):e.addAttribute(\"auto\",\"1\"),e.closeNode(),!0)}parseOpen(e){return e.name===this.name&&(e.attributes.rgb?this.model={argb:e.attributes.rgb}:e.attributes.theme?(this.model={theme:parseInt(e.attributes.theme,10)},e.attributes.tint&&(this.model.tint=parseFloat(e.attributes.tint))):e.attributes.indexed?this.model={indexed:parseInt(e.attributes.indexed,10)}:this.model=void 0,!0)}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],129:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"./alignment-xform\"),s=e(\"./border-xform\"),o=e(\"./fill-xform\"),a=e(\"./font-xform\"),l=e(\"./numfmt-xform\"),c=e(\"./protection-xform\");t.exports=class extends n{constructor(){super(),this.map={alignment:new i,border:new s,fill:new o,font:new a,numFmt:new l,protection:new c}}get tag(){return\"dxf\"}render(e,t){if(e.openNode(this.tag),t.font&&this.map.font.render(e,t.font),t.numFmt&&t.numFmtId){const r={id:t.numFmtId,formatCode:t.numFmt};this.map.numFmt.render(e,r)}t.fill&&this.map.fill.render(e,t.fill),t.alignment&&this.map.alignment.render(e,t.alignment),t.border&&this.map.border.render(e,t.border),t.protection&&this.map.protection.render(e,t.protection),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case this.tag:return this.reset(),!0;default:return this.parser=this.map[e.name],this.parser&&this.parser.parseOpen(e),!0}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){return this.parser?(this.parser.parseClose(e)||(this.parser=void 0),!0):e!==this.tag||(this.model={alignment:this.map.alignment.model,border:this.map.border.model,fill:this.map.fill.model,font:this.map.font.model,numFmt:this.map.numFmt.model,protection:this.map.protection.model},!1)}}},{\"../base-xform\":32,\"./alignment-xform\":126,\"./border-xform\":127,\"./fill-xform\":130,\"./font-xform\":131,\"./numfmt-xform\":132,\"./protection-xform\":133}],130:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"./color-xform\");class s extends n{constructor(){super(),this.map={color:new i}}get tag(){return\"stop\"}render(e,t){e.openNode(\"stop\"),e.addAttribute(\"position\",t.position),this.map.color.render(e,t.color),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"stop\":return this.model={position:parseFloat(e.attributes.position)},!0;case\"color\":return this.parser=this.map.color,this.parser.parseOpen(e),!0;default:return!1}}parseText(){}parseClose(e){return!!this.parser&&(this.parser.parseClose(e)||(this.model.color=this.parser.model,this.parser=void 0),!0)}}class o extends n{constructor(){super(),this.map={fgColor:new i(\"fgColor\"),bgColor:new i(\"bgColor\")}}get name(){return\"pattern\"}get tag(){return\"patternFill\"}render(e,t){e.openNode(\"patternFill\"),e.addAttribute(\"patternType\",t.pattern),t.fgColor&&this.map.fgColor.render(e,t.fgColor),t.bgColor&&this.map.bgColor.render(e,t.bgColor),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"patternFill\":return this.model={type:\"pattern\",pattern:e.attributes.patternType},!0;default:return this.parser=this.map[e.name],!!this.parser&&(this.parser.parseOpen(e),!0)}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){return!!this.parser&&(this.parser.parseClose(e)||(this.parser.model&&(this.model[e]=this.parser.model),this.parser=void 0),!0)}}class a extends n{constructor(){super(),this.map={stop:new s}}get name(){return\"gradient\"}get tag(){return\"gradientFill\"}render(e,t){switch(e.openNode(\"gradientFill\"),t.gradient){case\"angle\":e.addAttribute(\"degree\",t.degree);break;case\"path\":e.addAttribute(\"type\",\"path\"),t.center.left&&(e.addAttribute(\"left\",t.center.left),void 0===t.center.right&&e.addAttribute(\"right\",t.center.left)),t.center.right&&e.addAttribute(\"right\",t.center.right),t.center.top&&(e.addAttribute(\"top\",t.center.top),void 0===t.center.bottom&&e.addAttribute(\"bottom\",t.center.top)),t.center.bottom&&e.addAttribute(\"bottom\",t.center.bottom)}const r=this.map.stop;t.stops.forEach(t=>{r.render(e,t)}),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"gradientFill\":{const t=this.model={stops:[]};return e.attributes.degree?(t.gradient=\"angle\",t.degree=parseInt(e.attributes.degree,10)):\"path\"===e.attributes.type&&(t.gradient=\"path\",t.center={left:e.attributes.left?parseFloat(e.attributes.left):0,top:e.attributes.top?parseFloat(e.attributes.top):0},e.attributes.right!==e.attributes.left&&(t.center.right=e.attributes.right?parseFloat(e.attributes.right):0),e.attributes.bottom!==e.attributes.top&&(t.center.bottom=e.attributes.bottom?parseFloat(e.attributes.bottom):0)),!0}case\"stop\":return this.parser=this.map.stop,this.parser.parseOpen(e),!0;default:return!1}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){return!!this.parser&&(this.parser.parseClose(e)||(this.model.stops.push(this.parser.model),this.parser=void 0),!0)}}class l extends n{constructor(){super(),this.map={patternFill:new o,gradientFill:new a}}get tag(){return\"fill\"}render(e,t){switch(e.addRollback(),e.openNode(\"fill\"),t.type){case\"pattern\":this.map.patternFill.render(e,t);break;case\"gradient\":this.map.gradientFill.render(e,t);break;default:return void e.rollback()}e.closeNode(),e.commit()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"fill\":return this.model={},!0;default:return this.parser=this.map[e.name],!!this.parser&&(this.parser.parseOpen(e),!0)}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){return!!this.parser&&(this.parser.parseClose(e)||(this.model=this.parser.model,this.model.type=this.parser.name,this.parser=void 0),!0)}validStyle(e){return l.validPatternValues[e]}}l.validPatternValues=[\"none\",\"solid\",\"darkVertical\",\"darkGray\",\"mediumGray\",\"lightGray\",\"gray125\",\"gray0625\",\"darkHorizontal\",\"darkVertical\",\"darkDown\",\"darkUp\",\"darkGrid\",\"darkTrellis\",\"lightHorizontal\",\"lightVertical\",\"lightDown\",\"lightUp\",\"lightGrid\",\"lightTrellis\",\"lightGrid\"].reduce((e,t)=>(e[t]=!0,e),{}),l.StopXform=s,l.PatternFillXform=o,l.GradientFillXform=a,t.exports=l},{\"../base-xform\":32,\"./color-xform\":128}],131:[function(e,t,r){\"use strict\";const n=e(\"./color-xform\"),i=e(\"../simple/boolean-xform\"),s=e(\"../simple/integer-xform\"),o=e(\"../simple/string-xform\"),a=e(\"./underline-xform\"),l=e(\"../../../utils/under-dash\"),c=e(\"../base-xform\");class u extends c{constructor(e){super(),this.options=e||u.OPTIONS,this.map={b:{prop:\"bold\",xform:new i({tag:\"b\",attr:\"val\"})},i:{prop:\"italic\",xform:new i({tag:\"i\",attr:\"val\"})},u:{prop:\"underline\",xform:new a},charset:{prop:\"charset\",xform:new s({tag:\"charset\",attr:\"val\"})},color:{prop:\"color\",xform:new n},condense:{prop:\"condense\",xform:new i({tag:\"condense\",attr:\"val\"})},extend:{prop:\"extend\",xform:new i({tag:\"extend\",attr:\"val\"})},family:{prop:\"family\",xform:new s({tag:\"family\",attr:\"val\"})},outline:{prop:\"outline\",xform:new i({tag:\"outline\",attr:\"val\"})},vertAlign:{prop:\"vertAlign\",xform:new o({tag:\"vertAlign\",attr:\"val\"})},scheme:{prop:\"scheme\",xform:new o({tag:\"scheme\",attr:\"val\"})},shadow:{prop:\"shadow\",xform:new i({tag:\"shadow\",attr:\"val\"})},strike:{prop:\"strike\",xform:new i({tag:\"strike\",attr:\"val\"})},sz:{prop:\"size\",xform:new s({tag:\"sz\",attr:\"val\"})}},this.map[this.options.fontNameTag]={prop:\"name\",xform:new o({tag:this.options.fontNameTag,attr:\"val\"})}}get tag(){return this.options.tagName}render(e,t){const{map:r}=this;e.openNode(this.options.tagName),l.each(this.map,(n,i)=>{r[i].xform.render(e,t[n.prop])}),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;if(this.map[e.name])return this.parser=this.map[e.name].xform,this.parser.parseOpen(e);switch(e.name){case this.options.tagName:return this.model={},!0;default:return!1}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser&&!this.parser.parseClose(e)){const t=this.map[e];return this.parser.model&&(this.model[t.prop]=this.parser.model),this.parser=void 0,!0}switch(e){case this.options.tagName:return!1;default:return!0}}}u.OPTIONS={tagName:\"font\",fontNameTag:\"name\"},t.exports=u},{\"../../../utils/under-dash\":26,\"../base-xform\":32,\"../simple/boolean-xform\":116,\"../simple/integer-xform\":118,\"../simple/string-xform\":119,\"./color-xform\":128,\"./underline-xform\":136}],132:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/under-dash\"),i=e(\"../../defaultnumformats\"),s=e(\"../base-xform\");const o=function(){const e={};return n.each(i,(t,r)=>{t.f&&(e[t.f]=parseInt(r,10))}),e}();class a extends s{constructor(e,t){super(),this.id=e,this.formatCode=t}get tag(){return\"numFmt\"}render(e,t){e.leafNode(\"numFmt\",{numFmtId:t.id,formatCode:t.formatCode})}parseOpen(e){switch(e.name){case\"numFmt\":return this.model={id:parseInt(e.attributes.numFmtId,10),formatCode:e.attributes.formatCode.replace(/[\\\\](.)/g,\"$1\")},!0;default:return!1}}parseText(){}parseClose(){return!1}}a.getDefaultFmtId=function(e){return o[e]},a.getDefaultFmtCode=function(e){return i[e]&&i[e].f},t.exports=a},{\"../../../utils/under-dash\":26,\"../../defaultnumformats\":30,\"../base-xform\":32}],133:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i={boolean:(e,t)=>void 0===e?t:e};t.exports=class extends n{get tag(){return\"protection\"}render(e,t){e.addRollback(),e.openNode(\"protection\");let r=!1;function n(t,n){void 0!==n&&(e.addAttribute(t,n),r=!0)}n(\"locked\",i.boolean(t.locked,!0)?void 0:\"0\"),n(\"hidden\",i.boolean(t.hidden,!1)?\"1\":void 0),e.closeNode(),r?e.commit():e.rollback()}parseOpen(e){const t={locked:!(\"0\"===e.attributes.locked),hidden:\"1\"===e.attributes.hidden},r=!t.locked||t.hidden;this.model=r?t:null}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],134:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"./alignment-xform\"),s=e(\"./protection-xform\");t.exports=class extends n{constructor(e){super(),this.xfId=!(!e||!e.xfId),this.map={alignment:new i,protection:new s}}get tag(){return\"xf\"}render(e,t){e.openNode(\"xf\",{numFmtId:t.numFmtId||0,fontId:t.fontId||0,fillId:t.fillId||0,borderId:t.borderId||0}),this.xfId&&e.addAttribute(\"xfId\",t.xfId||0),t.numFmtId&&e.addAttribute(\"applyNumberFormat\",\"1\"),t.fontId&&e.addAttribute(\"applyFont\",\"1\"),t.fillId&&e.addAttribute(\"applyFill\",\"1\"),t.borderId&&e.addAttribute(\"applyBorder\",\"1\"),t.alignment&&e.addAttribute(\"applyAlignment\",\"1\"),t.protection&&e.addAttribute(\"applyProtection\",\"1\"),t.alignment&&this.map.alignment.render(e,t.alignment),t.protection&&this.map.protection.render(e,t.protection),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"xf\":return this.model={numFmtId:parseInt(e.attributes.numFmtId,10),fontId:parseInt(e.attributes.fontId,10),fillId:parseInt(e.attributes.fillId,10),borderId:parseInt(e.attributes.borderId,10)},this.xfId&&(this.model.xfId=parseInt(e.attributes.xfId,10)),!0;case\"alignment\":return this.parser=this.map.alignment,this.parser.parseOpen(e),!0;case\"protection\":return this.parser=this.map.protection,this.parser.parseOpen(e),!0;default:return!1}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){return this.parser?(this.parser.parseClose(e)||(this.map.protection===this.parser?this.model.protection=this.parser.model:this.model.alignment=this.parser.model,this.parser=void 0),!0):\"xf\"!==e}}},{\"../base-xform\":32,\"./alignment-xform\":126,\"./protection-xform\":133}],135:[function(e,t,r){\"use strict\";const n=e(\"../../../doc/enums\"),i=e(\"../../../utils/xml-stream\"),s=e(\"../base-xform\"),o=e(\"../static-xform\"),a=e(\"../list-xform\"),l=e(\"./font-xform\"),c=e(\"./fill-xform\"),u=e(\"./border-xform\"),h=e(\"./numfmt-xform\"),f=e(\"./style-xform\"),d=e(\"./dxf-xform\");class p extends s{constructor(e){super(),this.map={numFmts:new a({tag:\"numFmts\",count:!0,childXform:new h}),fonts:new a({tag:\"fonts\",count:!0,childXform:new l,$:{\"x14ac:knownFonts\":1}}),fills:new a({tag:\"fills\",count:!0,childXform:new c}),borders:new a({tag:\"borders\",count:!0,childXform:new u}),cellStyleXfs:new a({tag:\"cellStyleXfs\",count:!0,childXform:new f}),cellXfs:new a({tag:\"cellXfs\",count:!0,childXform:new f({xfId:!0})}),dxfs:new a({tag:\"dxfs\",always:!0,count:!0,childXform:new d}),numFmt:new h,font:new l,fill:new c,border:new u,style:new f({xfId:!0}),cellStyles:p.STATIC_XFORMS.cellStyles,tableStyles:p.STATIC_XFORMS.tableStyles,extLst:p.STATIC_XFORMS.extLst},e&&this.init()}initIndex(){this.index={style:{},numFmt:{},numFmtNextId:164,font:{},border:{},fill:{}}}init(){this.model={styles:[],numFmts:[],fonts:[],borders:[],fills:[],dxfs:[]},this.initIndex(),this._addBorder({}),this._addStyle({numFmtId:0,fontId:0,fillId:0,borderId:0,xfId:0}),this._addFill({type:\"pattern\",pattern:\"none\"}),this._addFill({type:\"pattern\",pattern:\"gray125\"}),this.weakMap=new WeakMap}render(e,t){t=t||this.model,e.openXml(i.StdDocAttributes),e.openNode(\"styleSheet\",p.STYLESHEET_ATTRIBUTES),this.index?(t.numFmts&&t.numFmts.length&&(e.openNode(\"numFmts\",{count:t.numFmts.length}),t.numFmts.forEach(t=>{e.writeXml(t)}),e.closeNode()),t.fonts.length||this._addFont({size:11,color:{theme:1},name:\"Calibri\",family:2,scheme:\"minor\"}),e.openNode(\"fonts\",{count:t.fonts.length,\"x14ac:knownFonts\":1}),t.fonts.forEach(t=>{e.writeXml(t)}),e.closeNode(),e.openNode(\"fills\",{count:t.fills.length}),t.fills.forEach(t=>{e.writeXml(t)}),e.closeNode(),e.openNode(\"borders\",{count:t.borders.length}),t.borders.forEach(t=>{e.writeXml(t)}),e.closeNode(),this.map.cellStyleXfs.render(e,[{numFmtId:0,fontId:0,fillId:0,borderId:0,xfId:0}]),e.openNode(\"cellXfs\",{count:t.styles.length}),t.styles.forEach(t=>{e.writeXml(t)}),e.closeNode()):(this.map.numFmts.render(e,t.numFmts),this.map.fonts.render(e,t.fonts),this.map.fills.render(e,t.fills),this.map.borders.render(e,t.borders),this.map.cellStyleXfs.render(e,[{numFmtId:0,fontId:0,fillId:0,borderId:0,xfId:0}]),this.map.cellXfs.render(e,t.styles)),p.STATIC_XFORMS.cellStyles.render(e),this.map.dxfs.render(e,t.dxfs),p.STATIC_XFORMS.tableStyles.render(e),p.STATIC_XFORMS.extLst.render(e),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case\"styleSheet\":return this.initIndex(),!0;default:return this.parser=this.map[e.name],this.parser&&this.parser.parseOpen(e),!0}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case\"styleSheet\":{this.model={};const e=(e,t)=>{t.model&&t.model.length&&(this.model[e]=t.model)};if(e(\"numFmts\",this.map.numFmts),e(\"fonts\",this.map.fonts),e(\"fills\",this.map.fills),e(\"borders\",this.map.borders),e(\"styles\",this.map.cellXfs),e(\"dxfs\",this.map.dxfs),this.index={model:[],numFmt:[]},this.model.numFmts){const e=this.index.numFmt;this.model.numFmts.forEach(t=>{e[t.id]=t.formatCode})}return!1}default:return!0}}addStyleModel(e,t){if(!e)return 0;if(this.model.fonts.length||this._addFont({size:11,color:{theme:1},name:\"Calibri\",family:2,scheme:\"minor\"}),this.weakMap&&this.weakMap.has(e))return this.weakMap.get(e);const r={};if(t=t||n.ValueType.Number,e.numFmt)r.numFmtId=this._addNumFmtStr(e.numFmt);else switch(t){case n.ValueType.Number:r.numFmtId=this._addNumFmtStr(\"General\");break;case n.ValueType.Date:r.numFmtId=this._addNumFmtStr(\"mm-dd-yy\")}e.font&&(r.fontId=this._addFont(e.font)),e.border&&(r.borderId=this._addBorder(e.border)),e.fill&&(r.fillId=this._addFill(e.fill)),e.alignment&&(r.alignment=e.alignment),e.protection&&(r.protection=e.protection);const i=this._addStyle(r);return this.weakMap&&this.weakMap.set(e,i),i}getStyleModel(e){const t=this.model.styles[e];if(!t)return null;let r=this.index.model[e];if(r)return r;if(r=this.index.model[e]={},t.numFmtId){const e=this.index.numFmt[t.numFmtId]||h.getDefaultFmtCode(t.numFmtId);e&&(r.numFmt=e)}function n(e,t,n){if(n||0===n){const i=t[n];i&&(r[e]=i)}}return n(\"font\",this.model.fonts,t.fontId),n(\"border\",this.model.borders,t.borderId),n(\"fill\",this.model.fills,t.fillId),t.alignment&&(r.alignment=t.alignment),t.protection&&(r.protection=t.protection),r}addDxfStyle(e){return e.numFmt&&(e.numFmtId=this._addNumFmtStr(e.numFmt)),this.model.dxfs.push(e),this.model.dxfs.length-1}getDxfStyle(e){return this.model.dxfs[e]}_addStyle(e){const t=this.map.style.toXml(e);let r=this.index.style[t];return void 0===r&&(r=this.index.style[t]=this.model.styles.length,this.model.styles.push(t)),r}_addNumFmtStr(e){let t=h.getDefaultFmtId(e);if(void 0!==t)return t;if(t=this.index.numFmt[e],void 0!==t)return t;t=this.index.numFmt[e]=164+this.model.numFmts.length;const r=this.map.numFmt.toXml({id:t,formatCode:e});return this.model.numFmts.push(r),t}_addFont(e){const t=this.map.font.toXml(e);let r=this.index.font[t];return void 0===r&&(r=this.index.font[t]=this.model.fonts.length,this.model.fonts.push(t)),r}_addBorder(e){const t=this.map.border.toXml(e);let r=this.index.border[t];return void 0===r&&(r=this.index.border[t]=this.model.borders.length,this.model.borders.push(t)),r}_addFill(e){const t=this.map.fill.toXml(e);let r=this.index.fill[t];return void 0===r&&(r=this.index.fill[t]=this.model.fills.length,this.model.fills.push(t)),r}}p.STYLESHEET_ATTRIBUTES={xmlns:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\",\"xmlns:mc\":\"http://schemas.openxmlformats.org/markup-compatibility/2006\",\"mc:Ignorable\":\"x14ac x16r2\",\"xmlns:x14ac\":\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\",\"xmlns:x16r2\":\"http://schemas.microsoft.com/office/spreadsheetml/2015/02/main\"},p.STATIC_XFORMS={cellStyles:new o({tag:\"cellStyles\",$:{count:1},c:[{tag:\"cellStyle\",$:{name:\"Normal\",xfId:0,builtinId:0}}]}),dxfs:new o({tag:\"dxfs\",$:{count:0}}),tableStyles:new o({tag:\"tableStyles\",$:{count:0,defaultTableStyle:\"TableStyleMedium2\",defaultPivotStyle:\"PivotStyleLight16\"}}),extLst:new o({tag:\"extLst\",c:[{tag:\"ext\",$:{uri:\"{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}\",\"xmlns:x14\":\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main\"},c:[{tag:\"x14:slicerStyles\",$:{defaultSlicerStyle:\"SlicerStyleLight1\"}}]},{tag:\"ext\",$:{uri:\"{9260A510-F301-46a8-8635-F512D64BE5F5}\",\"xmlns:x15\":\"http://schemas.microsoft.com/office/spreadsheetml/2010/11/main\"},c:[{tag:\"x15:timelineStyles\",$:{defaultTimelineStyle:\"TimeSlicerStyleLight1\"}}]}]})};p.Mock=class extends p{constructor(){super(),this.model={styles:[{numFmtId:0,fontId:0,fillId:0,borderId:0,xfId:0}],numFmts:[],fonts:[{size:11,color:{theme:1},name:\"Calibri\",family:2,scheme:\"minor\"}],borders:[{}],fills:[{type:\"pattern\",pattern:\"none\"},{type:\"pattern\",pattern:\"gray125\"}]}}parseStream(e){return e.autodrain(),Promise.resolve()}addStyleModel(e,t){switch(t){case n.ValueType.Date:return this.dateStyleId;default:return 0}}get dateStyleId(){if(!this._dateStyleId){const e={numFmtId:h.getDefaultFmtId(\"mm-dd-yy\")};this._dateStyleId=this.model.styles.length,this.model.styles.push(e)}return this._dateStyleId}getStyleModel(){return{}}},t.exports=p},{\"../../../doc/enums\":7,\"../../../utils/xml-stream\":28,\"../base-xform\":32,\"../list-xform\":71,\"../static-xform\":120,\"./border-xform\":127,\"./dxf-xform\":129,\"./fill-xform\":130,\"./font-xform\":131,\"./numfmt-xform\":132,\"./style-xform\":134}],136:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");class i extends n{constructor(e){super(),this.model=e}get tag(){return\"u\"}render(e,t){if(!0===(t=t||this.model))e.leafNode(\"u\");else{const r=i.Attributes[t];r&&e.leafNode(\"u\",r)}}parseOpen(e){\"u\"===e.name&&(this.model=e.attributes.val||!0)}parseText(){}parseClose(){return!1}}i.Attributes={single:{},double:{val:\"double\"},singleAccounting:{val:\"singleAccounting\"},doubleAccounting:{val:\"doubleAccounting\"}},t.exports=i},{\"../base-xform\":32}],137:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"./filter-column-xform\");t.exports=class extends n{constructor(){super(),this.map={filterColumn:new i}}get tag(){return\"autoFilter\"}prepare(e){e.columns.forEach((e,t)=>{this.map.filterColumn.prepare(e,{index:t})})}render(e,t){return e.openNode(this.tag,{ref:t.autoFilterRef}),t.columns.forEach(t=>{this.map.filterColumn.render(e,t)}),e.closeNode(),!0}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;switch(e.name){case this.tag:return this.model={autoFilterRef:e.attributes.ref,columns:[]},!0;default:if(this.parser=this.map[e.name],this.parser)return this.parseOpen(e),!0;throw new Error(\"Unexpected xml node in parseOpen: \"+JSON.stringify(e))}}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.model.columns.push(this.parser.model),this.parser=void 0),!0;switch(e){case this.tag:return!1;default:throw new Error(\"Unexpected xml node in parseClose: \"+e)}}}},{\"../base-xform\":32,\"./filter-column-xform\":139}],138:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"customFilter\"}render(e,t){e.leafNode(this.tag,{val:t.val,operator:t.operator})}parseOpen(e){return e.name===this.tag&&(this.model={val:e.attributes.val,operator:e.attributes.operator},!0)}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],139:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\"),i=e(\"../list-xform\"),s=e(\"./custom-filter-xform\"),o=e(\"./filter-xform\");t.exports=class extends n{constructor(){super(),this.map={customFilters:new i({tag:\"customFilters\",count:!1,empty:!0,childXform:new s}),filters:new i({tag:\"filters\",count:!1,empty:!0,childXform:new o})}}get tag(){return\"filterColumn\"}prepare(e,t){e.colId=t.index.toString()}render(e,t){return t.customFilters?(e.openNode(this.tag,{colId:t.colId,hiddenButton:t.filterButton?\"0\":\"1\"}),this.map.customFilters.render(e,t.customFilters),e.closeNode(),!0):(e.leafNode(this.tag,{colId:t.colId,hiddenButton:t.filterButton?\"0\":\"1\"}),!0)}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;const{attributes:t}=e;switch(e.name){case this.tag:return this.model={filterButton:\"0\"===t.hiddenButton},!0;default:if(this.parser=this.map[e.name],this.parser)return this.parseOpen(e),!0;throw new Error(\"Unexpected xml node in parseOpen: \"+JSON.stringify(e))}}parseText(){}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case this.tag:return this.model.customFilters=this.map.customFilters.model,!1;default:return!0}}}},{\"../base-xform\":32,\"../list-xform\":71,\"./custom-filter-xform\":138,\"./filter-xform\":140}],140:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"filter\"}render(e,t){e.leafNode(this.tag,{val:t.val})}parseOpen(e){return e.name===this.tag&&(this.model={val:e.attributes.val},!0)}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],141:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"tableColumn\"}prepare(e,t){e.id=t.index+1}render(e,t){return e.leafNode(this.tag,{id:t.id.toString(),name:t.name,totalsRowLabel:t.totalsRowLabel,totalsRowFunction:t.totalsRowFunction,dxfId:t.dxfId}),!0}parseOpen(e){if(e.name===this.tag){const{attributes:t}=e;return this.model={name:t.name,totalsRowLabel:t.totalsRowLabel,totalsRowFunction:t.totalsRowFunction,dxfId:t.dxfId},!0}return!1}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],142:[function(e,t,r){\"use strict\";const n=e(\"../base-xform\");t.exports=class extends n{get tag(){return\"tableStyleInfo\"}render(e,t){return e.leafNode(this.tag,{name:t.theme?t.theme:void 0,showFirstColumn:t.showFirstColumn?\"1\":\"0\",showLastColumn:t.showLastColumn?\"1\":\"0\",showRowStripes:t.showRowStripes?\"1\":\"0\",showColumnStripes:t.showColumnStripes?\"1\":\"0\"}),!0}parseOpen(e){if(e.name===this.tag){const{attributes:t}=e;return this.model={theme:t.name?t.name:null,showFirstColumn:\"1\"===t.showFirstColumn,showLastColumn:\"1\"===t.showLastColumn,showRowStripes:\"1\"===t.showRowStripes,showColumnStripes:\"1\"===t.showColumnStripes},!0}return!1}parseText(){}parseClose(){return!1}}},{\"../base-xform\":32}],143:[function(e,t,r){\"use strict\";const n=e(\"../../../utils/xml-stream\"),i=e(\"../base-xform\"),s=e(\"../list-xform\"),o=e(\"./auto-filter-xform\"),a=e(\"./table-column-xform\"),l=e(\"./table-style-info-xform\");class c extends i{constructor(){super(),this.map={autoFilter:new o,tableColumns:new s({tag:\"tableColumns\",count:!0,empty:!0,childXform:new a}),tableStyleInfo:new l}}prepare(e,t){this.map.autoFilter.prepare(e),this.map.tableColumns.prepare(e.columns,t)}get tag(){return\"table\"}render(e,t){e.openXml(n.StdDocAttributes),e.openNode(this.tag,{...c.TABLE_ATTRIBUTES,id:t.id,name:t.name,displayName:t.displayName||t.name,ref:t.tableRef,totalsRowCount:t.totalsRow?\"1\":void 0,totalsRowShown:t.totalsRow?void 0:\"1\",headerRowCount:t.headerRow?\"1\":\"0\"}),this.map.autoFilter.render(e,t),this.map.tableColumns.render(e,t.columns),this.map.tableStyleInfo.render(e,t.style),e.closeNode()}parseOpen(e){if(this.parser)return this.parser.parseOpen(e),!0;const{name:t,attributes:r}=e;switch(t){case this.tag:this.reset(),this.model={name:r.name,displayName:r.displayName||r.name,tableRef:r.ref,totalsRow:\"1\"===r.totalsRowCount,headerRow:\"1\"===r.headerRowCount};break;default:this.parser=this.map[e.name],this.parser&&this.parser.parseOpen(e)}return!0}parseText(e){this.parser&&this.parser.parseText(e)}parseClose(e){if(this.parser)return this.parser.parseClose(e)||(this.parser=void 0),!0;switch(e){case this.tag:return this.model.columns=this.map.tableColumns.model,this.map.autoFilter.model&&(this.model.autoFilterRef=this.map.autoFilter.model.autoFilterRef,this.map.autoFilter.model.columns.forEach((e,t)=>{this.model.columns[t].filterButton=e.filterButton})),this.model.style=this.map.tableStyleInfo.model,!1;default:return!0}}reconcile(e,t){e.columns.forEach(e=>{void 0!==e.dxfId&&(e.style=t.styles.getDxfStyle(e.dxfId))})}}c.TABLE_ATTRIBUTES={xmlns:\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\",\"xmlns:mc\":\"http://schemas.openxmlformats.org/markup-compatibility/2006\",\"mc:Ignorable\":\"xr xr3\",\"xmlns:xr\":\"http://schemas.microsoft.com/office/spreadsheetml/2014/revision\",\"xmlns:xr3\":\"http://schemas.microsoft.com/office/spreadsheetml/2016/revision3\"},t.exports=c},{\"../../../utils/xml-stream\":28,\"../base-xform\":32,\"../list-xform\":71,\"./auto-filter-xform\":137,\"./table-column-xform\":141,\"./table-style-info-xform\":142}],144:[function(e,t,r){(function(r,n){(function(){\"use strict\";const i=e(\"fs\"),s=e(\"jszip\"),{PassThrough:o}=e(\"readable-stream\"),a=e(\"../utils/zip-stream\"),l=e(\"../utils/stream-buf\"),c=e(\"../utils/utils\"),u=e(\"../utils/xml-stream\"),{bufferToString:h}=e(\"../utils/browser-buffer-decode\"),f=e(\"./xform/style/styles-xform\"),d=e(\"./xform/core/core-xform\"),p=e(\"./xform/strings/shared-strings-xform\"),m=e(\"./xform/core/relationships-xform\"),b=e(\"./xform/core/content-types-xform\"),g=e(\"./xform/core/app-xform\"),y=e(\"./xform/book/workbook-xform\"),v=e(\"./xform/sheet/worksheet-xform\"),w=e(\"./xform/drawing/drawing-xform\"),_=e(\"./xform/table/table-xform\"),x=e(\"./xform/comment/comments-xform\"),k=e(\"./xform/comment/vml-notes-xform\"),S=e(\"./xml/theme1\");class M{constructor(e){this.workbook=e}async readFile(e,t){if(!await c.fs.exists(e))throw new Error(\"File not found: \"+e);const r=i.createReadStream(e);try{const e=await this.read(r,t);return r.close(),e}catch(e){throw r.close(),e}}parseRels(e){return(new m).parseStream(e)}parseWorkbook(e){return(new y).parseStream(e)}parseSharedStrings(e){return(new p).parseStream(e)}reconcile(e,t){const r=new y,n=new v(t),i=new w,s=new _;r.reconcile(e);const o={media:e.media,mediaIndex:e.mediaIndex};Object.keys(e.drawings).forEach(t=>{const r=e.drawings[t],n=e.drawingRels[t];n&&(o.rels=n.reduce((e,t)=>(e[t.Id]=t,e),{}),(r.anchors||[]).forEach(e=>{const t=e.picture&&e.picture.hyperlinks;t&&o.rels[t.rId]&&(t.hyperlink=o.rels[t.rId].Target,delete t.rId)}),i.reconcile(r,o))});const a={styles:e.styles};Object.values(e.tables).forEach(e=>{s.reconcile(e,a)});const l={styles:e.styles,sharedStrings:e.sharedStrings,media:e.media,mediaIndex:e.mediaIndex,date1904:e.properties&&e.properties.date1904,drawings:e.drawings,comments:e.comments,tables:e.tables,vmlDrawings:e.vmlDrawings};e.worksheets.forEach(t=>{t.relationships=e.worksheetRels[t.sheetNo],n.reconcile(t,l)}),delete e.worksheetHash,delete e.worksheetRels,delete e.globalRels,delete e.sharedStrings,delete e.workbookRels,delete e.sheetDefs,delete e.styles,delete e.mediaIndex,delete e.drawings,delete e.drawingRels,delete e.vmlDrawings}async _processWorksheetEntry(e,t,r,n,i){const s=new v(n),o=await s.parseStream(e);o.sheetNo=r,t.worksheetHash[i]=o,t.worksheets.push(o)}async _processCommentEntry(e,t,r){const n=new x,i=await n.parseStream(e);t.comments[`../${r}.xml`]=i}async _processTableEntry(e,t,r){const n=new _,i=await n.parseStream(e);t.tables[`../tables/${r}.xml`]=i}async _processWorksheetRelsEntry(e,t,r){const n=new m,i=await n.parseStream(e);t.worksheetRels[r]=i}async _processMediaEntry(e,t,r){const n=r.lastIndexOf(\".\");if(n>=1){const i=r.substr(n+1),s=r.substr(0,n);await new Promise((n,o)=>{const a=new l;a.on(\"finish\",()=>{t.mediaIndex[r]=t.media.length,t.mediaIndex[s]=t.media.length;const e={type:\"image\",name:s,extension:i,buffer:a.toBuffer()};t.media.push(e),n()}),e.on(\"error\",e=>{o(e)}),e.pipe(a)})}}async _processDrawingEntry(e,t,r){const n=new w,i=await n.parseStream(e);t.drawings[r]=i}async _processDrawingRelsEntry(e,t,r){const n=new m,i=await n.parseStream(e);t.drawingRels[r]=i}async _processVmlDrawingEntry(e,t,r){const n=new k,i=await n.parseStream(e);t.vmlDrawings[`../drawings/${r}.vml`]=i}async _processThemeEntry(e,t,r){await new Promise((n,i)=>{const s=new l;e.on(\"error\",i),s.on(\"error\",i),s.on(\"finish\",()=>{t.themes[r]=s.read().toString(),n()}),e.pipe(s)})}createInputStream(){throw new Error(\"`XLSX#createInputStream` is deprecated. You should use `XLSX#read` instead. This method will be removed in version 5.0. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md\")}async read(e,t){!e[Symbol.asyncIterator]&&e.pipe&&(e=e.pipe(new o));const r=[];for await(const t of e)r.push(t);return this.load(n.concat(r),t)}async load(e,t){let i;i=t&&t.base64?n.from(e.toString(),\"base64\"):e;const a={worksheets:[],worksheetHash:{},worksheetRels:[],themes:{},media:[],mediaIndex:{},drawings:{},drawingRels:{},comments:{},tables:{},vmlDrawings:{}},l=await s.loadAsync(i);for(const e of Object.values(l.files))if(!e.dir){let n,i=e.name;if(\"/\"===i[0]&&(i=i.substr(1)),i.match(/xl\\/media\\//)||i.match(/xl\\/theme\\/([a-zA-Z0-9]+)[.]xml/))n=new o,n.write(await e.async(\"nodebuffer\"));else{let t;n=new o({writableObjectMode:!0,readableObjectMode:!0}),t=r.browser?h(await e.async(\"nodebuffer\")):await e.async(\"string\");const i=16384;for(let e=0;e<t.length;e+=i)n.write(t.substring(e,e+i))}switch(n.end(),i){case\"_rels/.rels\":a.globalRels=await this.parseRels(n);break;case\"xl/workbook.xml\":{const e=await this.parseWorkbook(n);a.sheets=e.sheets,a.definedNames=e.definedNames,a.views=e.views,a.properties=e.properties,a.calcProperties=e.calcProperties;break}case\"xl/_rels/workbook.xml.rels\":a.workbookRels=await this.parseRels(n);break;case\"xl/sharedStrings.xml\":a.sharedStrings=new p,await a.sharedStrings.parseStream(n);break;case\"xl/styles.xml\":a.styles=new f,await a.styles.parseStream(n);break;case\"docProps/app.xml\":{const e=new g,t=await e.parseStream(n);a.company=t.company,a.manager=t.manager;break}case\"docProps/core.xml\":{const e=new d,t=await e.parseStream(n);Object.assign(a,t);break}default:{let e=i.match(/xl\\/worksheets\\/sheet(\\d+)[.]xml/);if(e){await this._processWorksheetEntry(n,a,e[1],t,i);break}if(e=i.match(/xl\\/worksheets\\/_rels\\/sheet(\\d+)[.]xml.rels/),e){await this._processWorksheetRelsEntry(n,a,e[1]);break}if(e=i.match(/xl\\/theme\\/([a-zA-Z0-9]+)[.]xml/),e){await this._processThemeEntry(n,a,e[1]);break}if(e=i.match(/xl\\/media\\/([a-zA-Z0-9]+[.][a-zA-Z0-9]{3,4})$/),e){await this._processMediaEntry(n,a,e[1]);break}if(e=i.match(/xl\\/drawings\\/([a-zA-Z0-9]+)[.]xml/),e){await this._processDrawingEntry(n,a,e[1]);break}if(e=i.match(/xl\\/(comments\\d+)[.]xml/),e){await this._processCommentEntry(n,a,e[1]);break}if(e=i.match(/xl\\/tables\\/(table\\d+)[.]xml/),e){await this._processTableEntry(n,a,e[1]);break}if(e=i.match(/xl\\/drawings\\/_rels\\/([a-zA-Z0-9]+)[.]xml[.]rels/),e){await this._processDrawingRelsEntry(n,a,e[1]);break}if(e=i.match(/xl\\/drawings\\/(vmlDrawing\\d+)[.]vml/),e){await this._processVmlDrawingEntry(n,a,e[1]);break}}}}return this.reconcile(a,t),this.workbook.model=a,this.workbook}async addMedia(e,t){await Promise.all(t.media.map(async t=>{if(\"image\"===t.type){const r=`xl/media/${t.name}.${t.extension}`;if(t.filename){const n=await function(e,t){return new Promise((r,n)=>{i.readFile(e,t,(e,t)=>{e?n(e):r(t)})})}(t.filename);return e.append(n,{name:r})}if(t.buffer)return e.append(t.buffer,{name:r});if(t.base64){const n=t.base64,i=n.substring(n.indexOf(\",\")+1);return e.append(i,{name:r,base64:!0})}}throw new Error(\"Unsupported media\")}))}addDrawings(e,t){const r=new w,n=new m;t.worksheets.forEach(t=>{const{drawing:i}=t;if(i){r.prepare(i,{});let t=r.toXml(i);e.append(t,{name:`xl/drawings/${i.name}.xml`}),t=n.toXml(i.rels),e.append(t,{name:`xl/drawings/_rels/${i.name}.xml.rels`})}})}addTables(e,t){const r=new _;t.worksheets.forEach(t=>{const{tables:n}=t;n.forEach(t=>{r.prepare(t,{});const n=r.toXml(t);e.append(n,{name:\"xl/tables/\"+t.target})})})}async addContentTypes(e,t){const r=(new b).toXml(t);e.append(r,{name:\"[Content_Types].xml\"})}async addApp(e,t){const r=(new g).toXml(t);e.append(r,{name:\"docProps/app.xml\"})}async addCore(e,t){const r=new d;e.append(r.toXml(t),{name:\"docProps/core.xml\"})}async addThemes(e,t){const r=t.themes||{theme1:S};Object.keys(r).forEach(t=>{const n=r[t],i=`xl/theme/${t}.xml`;e.append(n,{name:i})})}async addOfficeRels(e){const t=(new m).toXml([{Id:\"rId1\",Type:M.RelType.OfficeDocument,Target:\"xl/workbook.xml\"},{Id:\"rId2\",Type:M.RelType.CoreProperties,Target:\"docProps/core.xml\"},{Id:\"rId3\",Type:M.RelType.ExtenderProperties,Target:\"docProps/app.xml\"}]);e.append(t,{name:\"_rels/.rels\"})}async addWorkbookRels(e,t){let r=1;const n=[{Id:\"rId\"+r++,Type:M.RelType.Styles,Target:\"styles.xml\"},{Id:\"rId\"+r++,Type:M.RelType.Theme,Target:\"theme/theme1.xml\"}];t.sharedStrings.count&&n.push({Id:\"rId\"+r++,Type:M.RelType.SharedStrings,Target:\"sharedStrings.xml\"}),t.worksheets.forEach(e=>{e.rId=\"rId\"+r++,n.push({Id:e.rId,Type:M.RelType.Worksheet,Target:`worksheets/sheet${e.id}.xml`})});const i=(new m).toXml(n);e.append(i,{name:\"xl/_rels/workbook.xml.rels\"})}async addSharedStrings(e,t){t.sharedStrings&&t.sharedStrings.count&&e.append(t.sharedStrings.xml,{name:\"xl/sharedStrings.xml\"})}async addStyles(e,t){const{xml:r}=t.styles;r&&e.append(r,{name:\"xl/styles.xml\"})}async addWorkbook(e,t){const r=new y;e.append(r.toXml(t),{name:\"xl/workbook.xml\"})}async addWorksheets(e,t){const r=new v,n=new m,i=new x,s=new k;t.worksheets.forEach(t=>{let o=new u;r.render(o,t),e.append(o.xml,{name:`xl/worksheets/sheet${t.id}.xml`}),t.rels&&t.rels.length&&(o=new u,n.render(o,t.rels),e.append(o.xml,{name:`xl/worksheets/_rels/sheet${t.id}.xml.rels`})),t.comments.length>0&&(o=new u,i.render(o,t),e.append(o.xml,{name:`xl/comments${t.id}.xml`}),o=new u,s.render(o,t),e.append(o.xml,{name:`xl/drawings/vmlDrawing${t.id}.vml`}))})}_finalize(e){return new Promise((t,r)=>{e.on(\"finish\",()=>{t(this)}),e.on(\"error\",r),e.finalize()})}prepareModel(e,t){e.creator=e.creator||\"ExcelJS\",e.lastModifiedBy=e.lastModifiedBy||\"ExcelJS\",e.created=e.created||new Date,e.modified=e.modified||new Date,e.useSharedStrings=void 0===t.useSharedStrings||t.useSharedStrings,e.useStyles=void 0===t.useStyles||t.useStyles,e.sharedStrings=new p,e.styles=e.useStyles?new f(!0):new f.Mock;const r=new y,n=new v;r.prepare(e);const i={sharedStrings:e.sharedStrings,styles:e.styles,date1904:e.properties.date1904,drawingsCount:0,media:e.media};i.drawings=e.drawings=[],i.commentRefs=e.commentRefs=[];let s=0;e.tables=[],e.worksheets.forEach(t=>{t.tables.forEach(t=>{s++,t.target=`table${s}.xml`,t.id=s,e.tables.push(t)}),n.prepare(t,i)})}async write(e,t){t=t||{};const{model:r}=this.workbook,n=new a.ZipWriter(t.zip);return n.pipe(e),this.prepareModel(r,t),await this.addContentTypes(n,r),await this.addOfficeRels(n,r),await this.addWorkbookRels(n,r),await this.addWorksheets(n,r),await this.addSharedStrings(n,r),await this.addDrawings(n,r),await this.addTables(n,r),await Promise.all([this.addThemes(n,r),this.addStyles(n,r)]),await this.addMedia(n,r),await Promise.all([this.addApp(n,r),this.addCore(n,r)]),await this.addWorkbook(n,r),this._finalize(n)}writeFile(e,t){const r=i.createWriteStream(e);return new Promise((e,n)=>{r.on(\"finish\",()=>{e()}),r.on(\"error\",e=>{n(e)}),this.write(r,t).then(()=>{r.end()}).catch(e=>{n(e)})})}async writeBuffer(e){const t=new l;return await this.write(t,e),t.read()}}M.RelType=e(\"./rel-type\"),t.exports=M}).call(this)}).call(this,e(\"_process\"),e(\"buffer\").Buffer)},{\"../utils/browser-buffer-decode\":16,\"../utils/stream-buf\":24,\"../utils/utils\":27,\"../utils/xml-stream\":28,\"../utils/zip-stream\":29,\"./rel-type\":31,\"./xform/book/workbook-xform\":38,\"./xform/comment/comments-xform\":40,\"./xform/comment/vml-notes-xform\":45,\"./xform/core/app-xform\":51,\"./xform/core/content-types-xform\":52,\"./xform/core/core-xform\":53,\"./xform/core/relationships-xform\":55,\"./xform/drawing/drawing-xform\":62,\"./xform/sheet/worksheet-xform\":115,\"./xform/strings/shared-strings-xform\":124,\"./xform/style/styles-xform\":135,\"./xform/table/table-xform\":143,\"./xml/theme1\":145,_process:467,buffer:220,fs:216,jszip:441,\"readable-stream\":491}],145:[function(e,t,r){\"use strict\";t.exports='<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\n<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\"> <a:themeElements> <a:clrScheme name=\"Office\"> <a:dk1> <a:sysClr val=\"windowText\" lastClr=\"000000\"/> </a:dk1> <a:lt1> <a:sysClr val=\"window\" lastClr=\"FFFFFF\"/> </a:lt1> <a:dk2> <a:srgbClr val=\"1F497D\"/> </a:dk2> <a:lt2> <a:srgbClr val=\"EEECE1\"/> </a:lt2> <a:accent1> <a:srgbClr val=\"4F81BD\"/> </a:accent1> <a:accent2> <a:srgbClr val=\"C0504D\"/> </a:accent2> <a:accent3> <a:srgbClr val=\"9BBB59\"/> </a:accent3> <a:accent4> <a:srgbClr val=\"8064A2\"/> </a:accent4> <a:accent5> <a:srgbClr val=\"4BACC6\"/> </a:accent5> <a:accent6> <a:srgbClr val=\"F79646\"/> </a:accent6> <a:hlink> <a:srgbClr val=\"0000FF\"/> </a:hlink> <a:folHlink> <a:srgbClr val=\"800080\"/> </a:folHlink> </a:clrScheme> <a:fontScheme name=\"Office\"> <a:majorFont> <a:latin typeface=\"Cambria\"/> <a:ea typeface=\"\"/> <a:cs typeface=\"\"/> <a:font script=\"Jpan\" typeface=\"\\uff2d\\uff33 \\uff30\\u30b4\\u30b7\\u30c3\\u30af\"/> <a:font script=\"Hang\" typeface=\"\\ub9d1\\uc740 \\uace0\\ub515\"/> <a:font script=\"Hans\" typeface=\"\\u5b8b\\u4f53\"/> <a:font script=\"Hant\" typeface=\"\\u65b0\\u7d30\\u660e\\u9ad4\"/> <a:font script=\"Arab\" typeface=\"Times New Roman\"/> <a:font script=\"Hebr\" typeface=\"Times New Roman\"/> <a:font script=\"Thai\" typeface=\"Tahoma\"/> <a:font script=\"Ethi\" typeface=\"Nyala\"/> <a:font script=\"Beng\" typeface=\"Vrinda\"/> <a:font script=\"Gujr\" typeface=\"Shruti\"/> <a:font script=\"Khmr\" typeface=\"MoolBoran\"/> <a:font script=\"Knda\" typeface=\"Tunga\"/> <a:font script=\"Guru\" typeface=\"Raavi\"/> <a:font script=\"Cans\" typeface=\"Euphemia\"/> <a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/> <a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/> <a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/> <a:font script=\"Thaa\" typeface=\"MV Boli\"/> <a:font script=\"Deva\" typeface=\"Mangal\"/> <a:font script=\"Telu\" typeface=\"Gautami\"/> <a:font script=\"Taml\" typeface=\"Latha\"/> <a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/> <a:font script=\"Orya\" typeface=\"Kalinga\"/> <a:font script=\"Mlym\" typeface=\"Kartika\"/> <a:font script=\"Laoo\" typeface=\"DokChampa\"/> <a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/> <a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/> <a:font script=\"Viet\" typeface=\"Times New Roman\"/> <a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/> <a:font script=\"Geor\" typeface=\"Sylfaen\"/> </a:majorFont> <a:minorFont> <a:latin typeface=\"Calibri\"/> <a:ea typeface=\"\"/> <a:cs typeface=\"\"/> <a:font script=\"Jpan\" typeface=\"\\uff2d\\uff33 \\uff30\\u30b4\\u30b7\\u30c3\\u30af\"/> <a:font script=\"Hang\" typeface=\"\\ub9d1\\uc740 \\uace0\\ub515\"/> <a:font script=\"Hans\" typeface=\"\\u5b8b\\u4f53\"/> <a:font script=\"Hant\" typeface=\"\\u65b0\\u7d30\\u660e\\u9ad4\"/> <a:font script=\"Arab\" typeface=\"Arial\"/> <a:font script=\"Hebr\" typeface=\"Arial\"/> <a:font script=\"Thai\" typeface=\"Tahoma\"/> <a:font script=\"Ethi\" typeface=\"Nyala\"/> <a:font script=\"Beng\" typeface=\"Vrinda\"/> <a:font script=\"Gujr\" typeface=\"Shruti\"/> <a:font script=\"Khmr\" typeface=\"DaunPenh\"/> <a:font script=\"Knda\" typeface=\"Tunga\"/> <a:font script=\"Guru\" typeface=\"Raavi\"/> <a:font script=\"Cans\" typeface=\"Euphemia\"/> <a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/> <a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/> <a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/> <a:font script=\"Thaa\" typeface=\"MV Boli\"/> <a:font script=\"Deva\" typeface=\"Mangal\"/> <a:font script=\"Telu\" typeface=\"Gautami\"/> <a:font script=\"Taml\" typeface=\"Latha\"/> <a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/> <a:font script=\"Orya\" typeface=\"Kalinga\"/> <a:font script=\"Mlym\" typeface=\"Kartika\"/> <a:font script=\"Laoo\" typeface=\"DokChampa\"/> <a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/> <a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/> <a:font script=\"Viet\" typeface=\"Arial\"/> <a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/> <a:font script=\"Geor\" typeface=\"Sylfaen\"/> </a:minorFont> </a:fontScheme> <a:fmtScheme name=\"Office\"> <a:fillStyleLst> <a:solidFill> <a:schemeClr val=\"phClr\"/> </a:solidFill> <a:gradFill rotWithShape=\"1\"> <a:gsLst> <a:gs pos=\"0\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"50000\"/> <a:satMod val=\"300000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"35000\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"37000\"/> <a:satMod val=\"300000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"100000\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"15000\"/> <a:satMod val=\"350000\"/> </a:schemeClr> </a:gs> </a:gsLst> <a:lin ang=\"16200000\" scaled=\"1\"/> </a:gradFill> <a:gradFill rotWithShape=\"1\"> <a:gsLst> <a:gs pos=\"0\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"100000\"/> <a:shade val=\"100000\"/> <a:satMod val=\"130000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"100000\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"50000\"/> <a:shade val=\"100000\"/> <a:satMod val=\"350000\"/> </a:schemeClr> </a:gs> </a:gsLst> <a:lin ang=\"16200000\" scaled=\"0\"/> </a:gradFill> </a:fillStyleLst> <a:lnStyleLst> <a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"> <a:solidFill> <a:schemeClr val=\"phClr\"> <a:shade val=\"95000\"/> <a:satMod val=\"105000\"/> </a:schemeClr> </a:solidFill> <a:prstDash val=\"solid\"/> </a:ln> <a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"> <a:solidFill> <a:schemeClr val=\"phClr\"/> </a:solidFill> <a:prstDash val=\"solid\"/> </a:ln> <a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"> <a:solidFill> <a:schemeClr val=\"phClr\"/> </a:solidFill> <a:prstDash val=\"solid\"/> </a:ln> </a:lnStyleLst> <a:effectStyleLst> <a:effectStyle> <a:effectLst> <a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"> <a:srgbClr val=\"000000\"> <a:alpha val=\"38000\"/> </a:srgbClr> </a:outerShdw> </a:effectLst> </a:effectStyle> <a:effectStyle> <a:effectLst> <a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"> <a:srgbClr val=\"000000\"> <a:alpha val=\"35000\"/> </a:srgbClr> </a:outerShdw> </a:effectLst> </a:effectStyle> <a:effectStyle> <a:effectLst> <a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"> <a:srgbClr val=\"000000\"> <a:alpha val=\"35000\"/> </a:srgbClr> </a:outerShdw> </a:effectLst> <a:scene3d> <a:camera prst=\"orthographicFront\"> <a:rot lat=\"0\" lon=\"0\" rev=\"0\"/> </a:camera> <a:lightRig rig=\"threePt\" dir=\"t\"> <a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/> </a:lightRig> </a:scene3d> <a:sp3d> <a:bevelT w=\"63500\" h=\"25400\"/> </a:sp3d> </a:effectStyle> </a:effectStyleLst> <a:bgFillStyleLst> <a:solidFill> <a:schemeClr val=\"phClr\"/> </a:solidFill> <a:gradFill rotWithShape=\"1\"> <a:gsLst> <a:gs pos=\"0\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"40000\"/> <a:satMod val=\"350000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"40000\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"45000\"/> <a:shade val=\"99000\"/> <a:satMod val=\"350000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"100000\"> <a:schemeClr val=\"phClr\"> <a:shade val=\"20000\"/> <a:satMod val=\"255000\"/> </a:schemeClr> </a:gs> </a:gsLst> <a:path path=\"circle\"> <a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/> </a:path> </a:gradFill> <a:gradFill rotWithShape=\"1\"> <a:gsLst> <a:gs pos=\"0\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"80000\"/> <a:satMod val=\"300000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"100000\"> <a:schemeClr val=\"phClr\"> <a:shade val=\"30000\"/> <a:satMod val=\"200000\"/> </a:schemeClr> </a:gs> </a:gsLst> <a:path path=\"circle\"> <a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/> </a:path> </a:gradFill> </a:bgFillStyleLst> </a:fmtScheme> </a:themeElements> <a:objectDefaults> <a:spDef> <a:spPr/> <a:bodyPr/> <a:lstStyle/> <a:style> <a:lnRef idx=\"1\"> <a:schemeClr val=\"accent1\"/> </a:lnRef> <a:fillRef idx=\"3\"> <a:schemeClr val=\"accent1\"/> </a:fillRef> <a:effectRef idx=\"2\"> <a:schemeClr val=\"accent1\"/> </a:effectRef> <a:fontRef idx=\"minor\"> <a:schemeClr val=\"lt1\"/> </a:fontRef> </a:style> </a:spDef> <a:lnDef> <a:spPr/> <a:bodyPr/> <a:lstStyle/> <a:style> <a:lnRef idx=\"2\"> <a:schemeClr val=\"accent1\"/> </a:lnRef> <a:fillRef idx=\"0\"> <a:schemeClr val=\"accent1\"/> </a:fillRef> <a:effectRef idx=\"1\"> <a:schemeClr val=\"accent1\"/> </a:effectRef> <a:fontRef idx=\"minor\"> <a:schemeClr val=\"tx1\"/> </a:fontRef> </a:style> </a:lnDef> </a:objectDefaults> <a:extraClrSchemeLst/> </a:theme>'},{}],146:[function(e,t,r){(function(t){(function(){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.CsvFormatterStream=void 0;const n=e(\"stream\"),i=e(\"./formatter\");class s extends n.Transform{constructor(e){super({writableObjectMode:e.objectMode}),this.hasWrittenBOM=!1,this.formatterOptions=e,this.rowFormatter=new i.RowFormatter(e),this.hasWrittenBOM=!e.writeBOM}transform(e){return this.rowFormatter.rowTransform=e,this}_transform(e,r,n){let i=!1;try{this.hasWrittenBOM||(this.push(this.formatterOptions.BOM),this.hasWrittenBOM=!0),this.rowFormatter.format(e,(e,r)=>e?(i=!0,n(e)):(r&&r.forEach(e=>{this.push(t.from(e,\"utf8\"))}),i=!0,n()))}catch(e){if(i)throw e;n(e)}}_flush(e){this.rowFormatter.finish((r,n)=>r?e(r):(n&&n.forEach(e=>{this.push(t.from(e,\"utf8\"))}),e()))}}r.CsvFormatterStream=s}).call(this)}).call(this,e(\"buffer\").Buffer)},{\"./formatter\":150,buffer:220,stream:505}],147:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.FormatterOptions=void 0;r.FormatterOptions=class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};var t;this.objectMode=!0,this.delimiter=\",\",this.rowDelimiter=\"\\n\",this.quote='\"',this.escape=this.quote,this.quoteColumns=!1,this.quoteHeaders=this.quoteColumns,this.headers=null,this.includeEndRowDelimiter=!1,this.writeBOM=!1,this.BOM=\"\\ufeff\",this.alwaysWriteHeaders=!1,Object.assign(this,e||{}),void 0===(null==e?void 0:e.quoteHeaders)&&(this.quoteHeaders=this.quoteColumns),!0===(null==e?void 0:e.quote)?this.quote='\"':!1===(null==e?void 0:e.quote)&&(this.quote=\"\"),\"string\"!=typeof(null==e?void 0:e.escape)&&(this.escape=this.quote),this.shouldWriteHeaders=!!this.headers&&(null===(t=e.writeHeaders)||void 0===t||t),this.headers=Array.isArray(this.headers)?this.headers:null,this.escapedQuote=`${this.escape}${this.quote}`}}},{}],148:[function(e,t,r){\"use strict\";var n=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,\"__esModule\",{value:!0}),r.FieldFormatter=void 0;const i=n(e(\"lodash.isboolean\")),s=n(e(\"lodash.isnil\")),o=n(e(\"lodash.escaperegexp\"));r.FieldFormatter=class{constructor(e){this._headers=null,this.formatterOptions=e,null!==e.headers&&(this.headers=e.headers),this.REPLACE_REGEXP=new RegExp(e.quote,\"g\");const t=`[${e.delimiter}${o.default(e.rowDelimiter)}|\\r|\\n]`;this.ESCAPE_REGEXP=new RegExp(t)}set headers(e){this._headers=e}shouldQuote(e,t){const r=t?this.formatterOptions.quoteHeaders:this.formatterOptions.quoteColumns;return i.default(r)?r:Array.isArray(r)?r[e]:null!==this._headers&&r[this._headers[e]]}format(e,t,r){const n=(\"\"+(s.default(e)?\"\":e)).replace(/\\0/g,\"\"),{formatterOptions:i}=this;if(\"\"!==i.quote){if(-1!==n.indexOf(i.quote))return this.quoteField(n.replace(this.REPLACE_REGEXP,i.escapedQuote))}return-1!==n.search(this.ESCAPE_REGEXP)||this.shouldQuote(t,r)?this.quoteField(n):n}quoteField(e){const{quote:t}=this.formatterOptions;return`${t}${e}${t}`}}},{\"lodash.escaperegexp\":442,\"lodash.isboolean\":444,\"lodash.isnil\":447}],149:[function(e,t,r){\"use strict\";var n=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,\"__esModule\",{value:!0}),r.RowFormatter=void 0;const i=n(e(\"lodash.isfunction\")),s=n(e(\"lodash.isequal\")),o=e(\"./FieldFormatter\"),a=e(\"../types\");class l{constructor(e){this.rowCount=0,this.formatterOptions=e,this.fieldFormatter=new o.FieldFormatter(e),this.headers=e.headers,this.shouldWriteHeaders=e.shouldWriteHeaders,this.hasWrittenHeaders=!1,null!==this.headers&&(this.fieldFormatter.headers=this.headers),e.transform&&(this.rowTransform=e.transform)}static isRowHashArray(e){return!!Array.isArray(e)&&(Array.isArray(e[0])&&2===e[0].length)}static isRowArray(e){return Array.isArray(e)&&!this.isRowHashArray(e)}static gatherHeaders(e){return l.isRowHashArray(e)?e.map(e=>e[0]):Array.isArray(e)?e:Object.keys(e)}static createTransform(e){return a.isSyncTransform(e)?(t,r)=>{let n=null;try{n=e(t)}catch(e){return r(e)}return r(null,n)}:(t,r)=>{e(t,r)}}set rowTransform(e){if(!i.default(e))throw new TypeError(\"The transform should be a function\");this._rowTransform=l.createTransform(e)}format(e,t){this.callTransformer(e,(r,n)=>{if(r)return t(r);if(!e)return t(null);const i=[];if(n){const{shouldFormatColumns:e,headers:t}=this.checkHeaders(n);if(this.shouldWriteHeaders&&t&&!this.hasWrittenHeaders&&(i.push(this.formatColumns(t,!0)),this.hasWrittenHeaders=!0),e){const e=this.gatherColumns(n);i.push(this.formatColumns(e,!1))}}return t(null,i)})}finish(e){const t=[];if(this.formatterOptions.alwaysWriteHeaders&&0===this.rowCount){if(!this.headers)return e(new Error(\"`alwaysWriteHeaders` option is set to true but `headers` option not provided.\"));t.push(this.formatColumns(this.headers,!0))}return this.formatterOptions.includeEndRowDelimiter&&t.push(this.formatterOptions.rowDelimiter),e(null,t)}checkHeaders(e){if(this.headers)return{shouldFormatColumns:!0,headers:this.headers};const t=l.gatherHeaders(e);return this.headers=t,this.fieldFormatter.headers=t,this.shouldWriteHeaders?{shouldFormatColumns:!s.default(t,e),headers:t}:{shouldFormatColumns:!0,headers:null}}gatherColumns(e){if(null===this.headers)throw new Error(\"Headers is currently null\");return Array.isArray(e)?l.isRowHashArray(e)?this.headers.map((t,r)=>{const n=e[r];return n?n[1]:\"\"}):l.isRowArray(e)&&!this.shouldWriteHeaders?e:this.headers.map((t,r)=>e[r]):this.headers.map(t=>e[t])}callTransformer(e,t){return this._rowTransform?this._rowTransform(e,t):t(null,e)}formatColumns(e,t){const r=e.map((e,r)=>this.fieldFormatter.format(e,r,t)).join(this.formatterOptions.delimiter),{rowCount:n}=this;return this.rowCount+=1,n?[this.formatterOptions.rowDelimiter,r].join(\"\"):r}}r.RowFormatter=l},{\"../types\":152,\"./FieldFormatter\":148,\"lodash.isequal\":445,\"lodash.isfunction\":446}],150:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.FieldFormatter=r.RowFormatter=void 0;var n=e(\"./RowFormatter\");Object.defineProperty(r,\"RowFormatter\",{enumerable:!0,get:function(){return n.RowFormatter}});var i=e(\"./FieldFormatter\");Object.defineProperty(r,\"FieldFormatter\",{enumerable:!0,get:function(){return i.FieldFormatter}})},{\"./FieldFormatter\":148,\"./RowFormatter\":149}],151:[function(e,t,r){(function(t){(function(){\"use strict\";var n=Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]},i=Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}:function(e,t){e.default=t},s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)\"default\"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},o=function(e,t){for(var r in e)\"default\"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(r,\"__esModule\",{value:!0}),r.writeToPath=r.writeToString=r.writeToBuffer=r.writeToStream=r.write=r.format=r.FormatterOptions=r.CsvFormatterStream=void 0;const a=e(\"util\"),l=e(\"stream\"),c=s(e(\"fs\")),u=e(\"./FormatterOptions\"),h=e(\"./CsvFormatterStream\");o(e(\"./types\"),r);var f=e(\"./CsvFormatterStream\");Object.defineProperty(r,\"CsvFormatterStream\",{enumerable:!0,get:function(){return f.CsvFormatterStream}});var d=e(\"./FormatterOptions\");Object.defineProperty(r,\"FormatterOptions\",{enumerable:!0,get:function(){return d.FormatterOptions}}),r.format=e=>new h.CsvFormatterStream(new u.FormatterOptions(e)),r.write=(e,t)=>{const n=r.format(t),i=a.promisify((e,t)=>{n.write(e,void 0,t)});return e.reduce((e,t)=>e.then(()=>i(t)),Promise.resolve()).then(()=>n.end()).catch(e=>{n.emit(\"error\",e)}),n},r.writeToStream=(e,t,n)=>r.write(t,n).pipe(e),r.writeToBuffer=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=[],s=new l.Writable({write(e,t,r){i.push(e),r()}});return new Promise((o,a)=>{s.on(\"error\",a).on(\"finish\",()=>o(t.concat(i))),r.write(e,n).pipe(s)})},r.writeToString=(e,t)=>r.writeToBuffer(e,t).then(e=>e.toString()),r.writeToPath=(e,t,n)=>{const i=c.createWriteStream(e,{encoding:\"utf8\"});return r.write(t,n).pipe(i)}}).call(this)}).call(this,e(\"buffer\").Buffer)},{\"./CsvFormatterStream\":146,\"./FormatterOptions\":147,\"./types\":152,buffer:220,fs:216,stream:505,util:527}],152:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.isSyncTransform=void 0,r.isSyncTransform=e=>1===e.length},{}],153:[function(e,t,r){(function(t){(function(){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.CsvParserStream=void 0;const n=e(\"string_decoder\"),i=e(\"stream\"),s=e(\"./transforms\"),o=e(\"./parser\");class a extends i.Transform{constructor(e){super({objectMode:e.objectMode}),this.lines=\"\",this.rowCount=0,this.parsedRowCount=0,this.parsedLineCount=0,this.endEmitted=!1,this.headersEmitted=!1,this.parserOptions=e,this.parser=new o.Parser(e),this.headerTransformer=new s.HeaderTransformer(e),this.decoder=new n.StringDecoder(e.encoding),this.rowTransformerValidator=new s.RowTransformerValidator}get hasHitRowLimit(){return this.parserOptions.limitRows&&this.rowCount>=this.parserOptions.maxRows}get shouldEmitRows(){return this.parsedRowCount>this.parserOptions.skipRows}get shouldSkipLine(){return this.parsedLineCount<=this.parserOptions.skipLines}transform(e){return this.rowTransformerValidator.rowTransform=e,this}validate(e){return this.rowTransformerValidator.rowValidator=e,this}emit(e){if(\"end\"===e)return this.endEmitted||(this.endEmitted=!0,super.emit(\"end\",this.rowCount)),!1;for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return super.emit(e,...r)}_transform(e,t,r){if(this.hasHitRowLimit)return r();const n=a.wrapDoneCallback(r);try{const{lines:t}=this,r=t+this.decoder.write(e),i=this.parse(r,!0);return this.processRows(i,n)}catch(e){return n(e)}}_flush(e){const t=a.wrapDoneCallback(e);if(this.hasHitRowLimit)return t();try{const e=this.lines+this.decoder.end(),r=this.parse(e,!1);return this.processRows(r,t)}catch(e){return t(e)}}parse(e,t){if(!e)return[];const{line:r,rows:n}=this.parser.parse(e,t);return this.lines=r,n}processRows(e,r){const n=e.length,i=s=>{const o=e=>e?r(e):s%100!=0?i(s+1):void t(()=>i(s+1));if(this.checkAndEmitHeaders(),s>=n||this.hasHitRowLimit)return r();if(this.parsedLineCount+=1,this.shouldSkipLine)return o();const a=e[s];this.rowCount+=1,this.parsedRowCount+=1;const l=this.rowCount;return this.transformRow(a,(e,t)=>{if(e)return this.rowCount-=1,o(e);if(!t)return o(new Error(\"expected transform result\"));if(t.isValid){if(t.row)return this.pushRow(t.row,o)}else this.emit(\"data-invalid\",t.row,l,t.reason);return o()})};i(0)}transformRow(e,t){try{this.headerTransformer.transform(e,(r,n)=>r?t(r):n?n.isValid?n.row?this.shouldEmitRows?this.rowTransformerValidator.transformAndValidate(n.row,t):this.skipRow(t):(this.rowCount-=1,this.parsedRowCount-=1,t(null,{row:null,isValid:!0})):this.shouldEmitRows?t(null,{isValid:!1,row:e}):this.skipRow(t):t(new Error(\"Expected result from header transform\")))}catch(e){t(e)}}checkAndEmitHeaders(){!this.headersEmitted&&this.headerTransformer.headers&&(this.headersEmitted=!0,this.emit(\"headers\",this.headerTransformer.headers))}skipRow(e){return this.rowCount-=1,e(null,{row:null,isValid:!0})}pushRow(e,t){try{this.parserOptions.objectMode?this.push(e):this.push(JSON.stringify(e)),t()}catch(e){t(e)}}static wrapDoneCallback(e){let t=!1;return function(r){if(r){if(t)throw r;return t=!0,void e(r)}for(var n=arguments.length,i=new Array(n>1?n-1:0),s=1;s<n;s++)i[s-1]=arguments[s];e(...i)}}}r.CsvParserStream=a}).call(this)}).call(this,e(\"timers\").setImmediate)},{\"./parser\":165,\"./transforms\":168,stream:505,string_decoder:218,timers:523}],154:[function(e,t,r){\"use strict\";var n=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,\"__esModule\",{value:!0}),r.ParserOptions=void 0;const i=n(e(\"lodash.escaperegexp\")),s=n(e(\"lodash.isnil\"));r.ParserOptions=class{constructor(e){var t;if(this.objectMode=!0,this.delimiter=\",\",this.ignoreEmpty=!1,this.quote='\"',this.escape=null,this.escapeChar=this.quote,this.comment=null,this.supportsComments=!1,this.ltrim=!1,this.rtrim=!1,this.trim=!1,this.headers=null,this.renameHeaders=!1,this.strictColumnHandling=!1,this.discardUnmappedColumns=!1,this.carriageReturn=\"\\r\",this.encoding=\"utf8\",this.limitRows=!1,this.maxRows=0,this.skipLines=0,this.skipRows=0,Object.assign(this,e||{}),this.delimiter.length>1)throw new Error(\"delimiter option must be one character long\");this.escapedDelimiter=i.default(this.delimiter),this.escapeChar=null!==(t=this.escape)&&void 0!==t?t:this.quote,this.supportsComments=!s.default(this.comment),this.NEXT_TOKEN_REGEXP=new RegExp(`([^\\\\s]|\\\\r\\\\n|\\\\n|\\\\r|${this.escapedDelimiter})`),this.maxRows>0&&(this.limitRows=!0)}}},{\"lodash.escaperegexp\":442,\"lodash.isnil\":447}],155:[function(e,t,r){\"use strict\";var n=Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]},i=Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}:function(e,t){e.default=t},s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)\"default\"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},o=function(e,t){for(var r in e)\"default\"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(r,\"__esModule\",{value:!0}),r.parseString=r.parseFile=r.parseStream=r.parse=r.ParserOptions=r.CsvParserStream=void 0;const a=s(e(\"fs\")),l=e(\"stream\"),c=e(\"./ParserOptions\"),u=e(\"./CsvParserStream\");o(e(\"./types\"),r);var h=e(\"./CsvParserStream\");Object.defineProperty(r,\"CsvParserStream\",{enumerable:!0,get:function(){return h.CsvParserStream}});var f=e(\"./ParserOptions\");Object.defineProperty(r,\"ParserOptions\",{enumerable:!0,get:function(){return f.ParserOptions}}),r.parse=e=>new u.CsvParserStream(new c.ParserOptions(e)),r.parseStream=(e,t)=>e.pipe(new u.CsvParserStream(new c.ParserOptions(t))),r.parseFile=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return a.createReadStream(e).pipe(new u.CsvParserStream(new c.ParserOptions(t)))},r.parseString=(e,t)=>{const r=new l.Readable;return r.push(e),r.push(null),r.pipe(new u.CsvParserStream(new c.ParserOptions(t)))}},{\"./CsvParserStream\":153,\"./ParserOptions\":154,\"./types\":169,fs:216,stream:505}],156:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.Parser=void 0;const n=e(\"./Scanner\"),i=e(\"./RowParser\"),s=e(\"./Token\");class o{constructor(e){this.parserOptions=e,this.rowParser=new i.RowParser(this.parserOptions)}static removeBOM(e){return e&&65279===e.charCodeAt(0)?e.slice(1):e}parse(e,t){const r=new n.Scanner({line:o.removeBOM(e),parserOptions:this.parserOptions,hasMoreData:t});return this.parserOptions.supportsComments?this.parseWithComments(r):this.parseWithoutComments(r)}parseWithoutComments(e){const t=[];let r=!0;for(;r;)r=this.parseRow(e,t);return{line:e.line,rows:t}}parseWithComments(e){const{parserOptions:t}=this,r=[];for(let n=e.nextCharacterToken;null!==n;n=e.nextCharacterToken)if(s.Token.isTokenComment(n,t)){if(null===e.advancePastLine())return{line:e.lineFromCursor,rows:r};if(!e.hasMoreCharacters)return{line:e.lineFromCursor,rows:r};e.truncateToCursor()}else if(!this.parseRow(e,r))break;return{line:e.line,rows:r}}parseRow(e,t){if(!e.nextNonSpaceToken)return!1;const r=this.rowParser.parse(e);return null!==r&&(this.parserOptions.ignoreEmpty&&i.RowParser.isEmptyRow(r)||t.push(r),!0)}}r.Parser=o},{\"./RowParser\":157,\"./Scanner\":158,\"./Token\":159}],157:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.RowParser=void 0;const n=e(\"./column\"),i=e(\"./Token\");r.RowParser=class{constructor(e){this.parserOptions=e,this.columnParser=new n.ColumnParser(e)}static isEmptyRow(e){return\"\"===e.join(\"\").replace(/\\s+/g,\"\")}parse(e){const{parserOptions:t}=this,{hasMoreData:r}=e,n=e,s=[];let o=this.getStartToken(n,s);for(;o;){if(i.Token.isTokenRowDelimiter(o))return n.advancePastToken(o),!n.hasMoreCharacters&&i.Token.isTokenCarriageReturn(o,t)&&r?null:(n.truncateToCursor(),s);if(!this.shouldSkipColumnParse(n,o,s)){const e=this.columnParser.parse(n);if(null===e)return null;s.push(e)}o=n.nextNonSpaceToken}return r?null:(n.truncateToCursor(),s)}getStartToken(e,t){const r=e.nextNonSpaceToken;return null!==r&&i.Token.isTokenDelimiter(r,this.parserOptions)?(t.push(\"\"),e.nextNonSpaceToken):r}shouldSkipColumnParse(e,t,r){const{parserOptions:n}=this;if(i.Token.isTokenDelimiter(t,n)){e.advancePastToken(t);const s=e.nextCharacterToken;if(!e.hasMoreCharacters||null!==s&&i.Token.isTokenRowDelimiter(s))return r.push(\"\"),!0;if(null!==s&&i.Token.isTokenDelimiter(s,n))return r.push(\"\"),!0}return!1}}},{\"./Token\":159,\"./column\":164}],158:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.Scanner=void 0;const n=e(\"./Token\"),i=/((?:\\r\\n)|\\n|\\r)/;r.Scanner=class{constructor(e){this.cursor=0,this.line=e.line,this.lineLength=this.line.length,this.parserOptions=e.parserOptions,this.hasMoreData=e.hasMoreData,this.cursor=e.cursor||0}get hasMoreCharacters(){return this.lineLength>this.cursor}get nextNonSpaceToken(){const{lineFromCursor:e}=this,t=this.parserOptions.NEXT_TOKEN_REGEXP;if(-1===e.search(t))return null;const r=t.exec(e);if(null==r)return null;const i=r[1],s=this.cursor+(r.index||0);return new n.Token({token:i,startCursor:s,endCursor:s+i.length-1})}get nextCharacterToken(){const{cursor:e,lineLength:t}=this;return t<=e?null:new n.Token({token:this.line[e],startCursor:e,endCursor:e})}get lineFromCursor(){return this.line.substr(this.cursor)}advancePastLine(){const e=i.exec(this.lineFromCursor);return e?(this.cursor+=(e.index||0)+e[0].length,this):this.hasMoreData?null:(this.cursor=this.lineLength,this)}advanceTo(e){return this.cursor=e,this}advanceToToken(e){return this.cursor=e.startCursor,this}advancePastToken(e){return this.cursor=e.endCursor+1,this}truncateToCursor(){return this.line=this.lineFromCursor,this.lineLength=this.line.length,this.cursor=0,this}}},{\"./Token\":159}],159:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.Token=void 0;r.Token=class{constructor(e){this.token=e.token,this.startCursor=e.startCursor,this.endCursor=e.endCursor}static isTokenRowDelimiter(e){const t=e.token;return\"\\r\"===t||\"\\n\"===t||\"\\r\\n\"===t}static isTokenCarriageReturn(e,t){return e.token===t.carriageReturn}static isTokenComment(e,t){return t.supportsComments&&!!e&&e.token===t.comment}static isTokenEscapeCharacter(e,t){return e.token===t.escapeChar}static isTokenQuote(e,t){return e.token===t.quote}static isTokenDelimiter(e,t){return e.token===t.delimiter}}},{}],160:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.ColumnFormatter=void 0;r.ColumnFormatter=class{constructor(e){e.trim?this.format=e=>e.trim():e.ltrim?this.format=e=>e.trimLeft():e.rtrim?this.format=e=>e.trimRight():this.format=e=>e}}},{}],161:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.ColumnParser=void 0;const n=e(\"./NonQuotedColumnParser\"),i=e(\"./QuotedColumnParser\"),s=e(\"../Token\");r.ColumnParser=class{constructor(e){this.parserOptions=e,this.quotedColumnParser=new i.QuotedColumnParser(e),this.nonQuotedColumnParser=new n.NonQuotedColumnParser(e)}parse(e){const{nextNonSpaceToken:t}=e;return null!==t&&s.Token.isTokenQuote(t,this.parserOptions)?(e.advanceToToken(t),this.quotedColumnParser.parse(e)):this.nonQuotedColumnParser.parse(e)}}},{\"../Token\":159,\"./NonQuotedColumnParser\":162,\"./QuotedColumnParser\":163}],162:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.NonQuotedColumnParser=void 0;const n=e(\"./ColumnFormatter\"),i=e(\"../Token\");r.NonQuotedColumnParser=class{constructor(e){this.parserOptions=e,this.columnFormatter=new n.ColumnFormatter(e)}parse(e){if(!e.hasMoreCharacters)return null;const{parserOptions:t}=this,r=[];let n=e.nextCharacterToken;for(;n&&(!i.Token.isTokenDelimiter(n,t)&&!i.Token.isTokenRowDelimiter(n));n=e.nextCharacterToken)r.push(n.token),e.advancePastToken(n);return this.columnFormatter.format(r.join(\"\"))}}},{\"../Token\":159,\"./ColumnFormatter\":160}],163:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.QuotedColumnParser=void 0;const n=e(\"./ColumnFormatter\"),i=e(\"../Token\");r.QuotedColumnParser=class{constructor(e){this.parserOptions=e,this.columnFormatter=new n.ColumnFormatter(e)}parse(e){if(!e.hasMoreCharacters)return null;const t=e.cursor,{foundClosingQuote:r,col:n}=this.gatherDataBetweenQuotes(e);if(!r){if(e.advanceTo(t),!e.hasMoreData)throw new Error(`Parse Error: missing closing: '${this.parserOptions.quote||\"\"}' in line: at '${e.lineFromCursor.replace(/[\\r\\n]/g,\"\\\\n'\")}'`);return null}return this.checkForMalformedColumn(e),n}gatherDataBetweenQuotes(e){const{parserOptions:t}=this;let r=!1,n=!1;const s=[];let o=e.nextCharacterToken;for(;!n&&null!==o;o=e.nextCharacterToken){const a=i.Token.isTokenQuote(o,t);if(!r&&a)r=!0;else if(r)if(i.Token.isTokenEscapeCharacter(o,t)){e.advancePastToken(o);const r=e.nextCharacterToken;null!==r&&(i.Token.isTokenQuote(r,t)||i.Token.isTokenEscapeCharacter(r,t))?(s.push(r.token),o=r):a?n=!0:s.push(o.token)}else a?n=!0:s.push(o.token);e.advancePastToken(o)}return{col:this.columnFormatter.format(s.join(\"\")),foundClosingQuote:n}}checkForMalformedColumn(e){const{parserOptions:t}=this,{nextNonSpaceToken:r}=e;if(r){const n=i.Token.isTokenDelimiter(r,t),s=i.Token.isTokenRowDelimiter(r);if(!n&&!s){const n=e.lineFromCursor.substr(0,10).replace(/[\\r\\n]/g,\"\\\\n'\");throw new Error(`Parse Error: expected: '${t.escapedDelimiter}' OR new line got: '${r.token}'. at '${n}`)}e.advanceToToken(r)}else e.hasMoreData||e.advancePastLine()}}},{\"../Token\":159,\"./ColumnFormatter\":160}],164:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.ColumnFormatter=r.QuotedColumnParser=r.NonQuotedColumnParser=r.ColumnParser=void 0;var n=e(\"./ColumnParser\");Object.defineProperty(r,\"ColumnParser\",{enumerable:!0,get:function(){return n.ColumnParser}});var i=e(\"./NonQuotedColumnParser\");Object.defineProperty(r,\"NonQuotedColumnParser\",{enumerable:!0,get:function(){return i.NonQuotedColumnParser}});var s=e(\"./QuotedColumnParser\");Object.defineProperty(r,\"QuotedColumnParser\",{enumerable:!0,get:function(){return s.QuotedColumnParser}});var o=e(\"./ColumnFormatter\");Object.defineProperty(r,\"ColumnFormatter\",{enumerable:!0,get:function(){return o.ColumnFormatter}})},{\"./ColumnFormatter\":160,\"./ColumnParser\":161,\"./NonQuotedColumnParser\":162,\"./QuotedColumnParser\":163}],165:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.QuotedColumnParser=r.NonQuotedColumnParser=r.ColumnParser=r.Token=r.Scanner=r.RowParser=r.Parser=void 0;var n=e(\"./Parser\");Object.defineProperty(r,\"Parser\",{enumerable:!0,get:function(){return n.Parser}});var i=e(\"./RowParser\");Object.defineProperty(r,\"RowParser\",{enumerable:!0,get:function(){return i.RowParser}});var s=e(\"./Scanner\");Object.defineProperty(r,\"Scanner\",{enumerable:!0,get:function(){return s.Scanner}});var o=e(\"./Token\");Object.defineProperty(r,\"Token\",{enumerable:!0,get:function(){return o.Token}});var a=e(\"./column\");Object.defineProperty(r,\"ColumnParser\",{enumerable:!0,get:function(){return a.ColumnParser}}),Object.defineProperty(r,\"NonQuotedColumnParser\",{enumerable:!0,get:function(){return a.NonQuotedColumnParser}}),Object.defineProperty(r,\"QuotedColumnParser\",{enumerable:!0,get:function(){return a.QuotedColumnParser}})},{\"./Parser\":156,\"./RowParser\":157,\"./Scanner\":158,\"./Token\":159,\"./column\":164}],166:[function(e,t,r){\"use strict\";var n=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,\"__esModule\",{value:!0}),r.HeaderTransformer=void 0;const i=n(e(\"lodash.isundefined\")),s=n(e(\"lodash.isfunction\")),o=n(e(\"lodash.uniq\")),a=n(e(\"lodash.groupby\"));r.HeaderTransformer=class{constructor(e){this.headers=null,this.receivedHeaders=!1,this.shouldUseFirstRow=!1,this.processedFirstRow=!1,this.headersLength=0,this.parserOptions=e,!0===e.headers?this.shouldUseFirstRow=!0:Array.isArray(e.headers)?this.setHeaders(e.headers):s.default(e.headers)&&(this.headersTransform=e.headers)}transform(e,t){return this.shouldMapRow(e)?t(null,this.processRow(e)):t(null,{row:null,isValid:!0})}shouldMapRow(e){const{parserOptions:t}=this;if(!this.headersTransform&&t.renameHeaders&&!this.processedFirstRow){if(!this.receivedHeaders)throw new Error(\"Error renaming headers: new headers must be provided in an array\");return this.processedFirstRow=!0,!1}if(!this.receivedHeaders&&Array.isArray(e)){if(this.headersTransform)this.setHeaders(this.headersTransform(e));else{if(!this.shouldUseFirstRow)return!0;this.setHeaders(e)}return!1}return!0}processRow(e){if(!this.headers)return{row:e,isValid:!0};const{parserOptions:t}=this;if(!t.discardUnmappedColumns&&e.length>this.headersLength){if(!t.strictColumnHandling)throw new Error(`Unexpected Error: column header mismatch expected: ${this.headersLength} columns got: ${e.length}`);return{row:e,isValid:!1,reason:`Column header mismatch expected: ${this.headersLength} columns got: ${e.length}`}}return t.strictColumnHandling&&e.length<this.headersLength?{row:e,isValid:!1,reason:`Column header mismatch expected: ${this.headersLength} columns got: ${e.length}`}:{row:this.mapHeaders(e),isValid:!0}}mapHeaders(e){const t={},{headers:r,headersLength:n}=this;for(let s=0;s<n;s+=1){const n=r[s];if(!i.default(n)){const r=e[s];i.default(r)?t[n]=\"\":t[n]=r}}return t}setHeaders(e){var t;const r=e.filter(e=>!!e);if(o.default(r).length!==r.length){const e=a.default(r),t=Object.keys(e).filter(t=>e[t].length>1);throw new Error(\"Duplicate headers found \"+JSON.stringify(t))}this.headers=e,this.receivedHeaders=!0,this.headersLength=(null===(t=this.headers)||void 0===t?void 0:t.length)||0}}},{\"lodash.groupby\":443,\"lodash.isfunction\":446,\"lodash.isundefined\":448,\"lodash.uniq\":449}],167:[function(e,t,r){\"use strict\";var n=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,\"__esModule\",{value:!0}),r.RowTransformerValidator=void 0;const i=n(e(\"lodash.isfunction\")),s=e(\"../types\");class o{constructor(){this._rowTransform=null,this._rowValidator=null}static createTransform(e){return s.isSyncTransform(e)?(t,r)=>{let n=null;try{n=e(t)}catch(e){return r(e)}return r(null,n)}:e}static createValidator(e){return s.isSyncValidate(e)?(t,r)=>{r(null,{row:t,isValid:e(t)})}:(t,r)=>{e(t,(e,n,i)=>e?r(e):r(null,n?{row:t,isValid:n,reason:i}:{row:t,isValid:!1,reason:i}))}}set rowTransform(e){if(!i.default(e))throw new TypeError(\"The transform should be a function\");this._rowTransform=o.createTransform(e)}set rowValidator(e){if(!i.default(e))throw new TypeError(\"The validate should be a function\");this._rowValidator=o.createValidator(e)}transformAndValidate(e,t){return this.callTransformer(e,(e,r)=>e?t(e):r?this.callValidator(r,(e,n)=>e?t(e):n&&!n.isValid?t(null,{row:r,isValid:!1,reason:n.reason}):t(null,{row:r,isValid:!0})):t(null,{row:null,isValid:!0}))}callTransformer(e,t){return this._rowTransform?this._rowTransform(e,t):t(null,e)}callValidator(e,t){return this._rowValidator?this._rowValidator(e,t):t(null,{row:e,isValid:!0})}}r.RowTransformerValidator=o},{\"../types\":169,\"lodash.isfunction\":446}],168:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.HeaderTransformer=r.RowTransformerValidator=void 0;var n=e(\"./RowTransformerValidator\");Object.defineProperty(r,\"RowTransformerValidator\",{enumerable:!0,get:function(){return n.RowTransformerValidator}});var i=e(\"./HeaderTransformer\");Object.defineProperty(r,\"HeaderTransformer\",{enumerable:!0,get:function(){return i.HeaderTransformer}})},{\"./HeaderTransformer\":166,\"./RowTransformerValidator\":167}],169:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.isSyncValidate=r.isSyncTransform=void 0,r.isSyncTransform=e=>1===e.length,r.isSyncValidate=e=>1===e.length},{}],170:[function(e,t,r){\"use strict\";const n=r;n.bignum=e(\"bn.js\"),n.define=e(\"./asn1/api\").define,n.base=e(\"./asn1/base\"),n.constants=e(\"./asn1/constants\"),n.decoders=e(\"./asn1/decoders\"),n.encoders=e(\"./asn1/encoders\")},{\"./asn1/api\":171,\"./asn1/base\":173,\"./asn1/constants\":177,\"./asn1/decoders\":179,\"./asn1/encoders\":182,\"bn.js\":184}],171:[function(e,t,r){\"use strict\";const n=e(\"./encoders\"),i=e(\"./decoders\"),s=e(\"inherits\");function o(e,t){this.name=e,this.body=t,this.decoders={},this.encoders={}}r.define=function(e,t){return new o(e,t)},o.prototype._createNamed=function(e){const t=this.name;function r(e){this._initNamed(e,t)}return s(r,e),r.prototype._initNamed=function(t,r){e.call(this,t,r)},new r(this)},o.prototype._getDecoder=function(e){return e=e||\"der\",this.decoders.hasOwnProperty(e)||(this.decoders[e]=this._createNamed(i[e])),this.decoders[e]},o.prototype.decode=function(e,t,r){return this._getDecoder(t).decode(e,r)},o.prototype._getEncoder=function(e){return e=e||\"der\",this.encoders.hasOwnProperty(e)||(this.encoders[e]=this._createNamed(n[e])),this.encoders[e]},o.prototype.encode=function(e,t,r){return this._getEncoder(t).encode(e,r)}},{\"./decoders\":179,\"./encoders\":182,inherits:440}],172:[function(e,t,r){\"use strict\";const n=e(\"inherits\"),i=e(\"../base/reporter\").Reporter,s=e(\"safer-buffer\").Buffer;function o(e,t){i.call(this,t),s.isBuffer(e)?(this.base=e,this.offset=0,this.length=e.length):this.error(\"Input not Buffer\")}function a(e,t){if(Array.isArray(e))this.length=0,this.value=e.map((function(e){return a.isEncoderBuffer(e)||(e=new a(e,t)),this.length+=e.length,e}),this);else if(\"number\"==typeof e){if(!(0<=e&&e<=255))return t.error(\"non-byte EncoderBuffer value\");this.value=e,this.length=1}else if(\"string\"==typeof e)this.value=e,this.length=s.byteLength(e);else{if(!s.isBuffer(e))return t.error(\"Unsupported type: \"+typeof e);this.value=e,this.length=e.length}}n(o,i),r.DecoderBuffer=o,o.isDecoderBuffer=function(e){if(e instanceof o)return!0;return\"object\"==typeof e&&s.isBuffer(e.base)&&\"DecoderBuffer\"===e.constructor.name&&\"number\"==typeof e.offset&&\"number\"==typeof e.length&&\"function\"==typeof e.save&&\"function\"==typeof e.restore&&\"function\"==typeof e.isEmpty&&\"function\"==typeof e.readUInt8&&\"function\"==typeof e.skip&&\"function\"==typeof e.raw},o.prototype.save=function(){return{offset:this.offset,reporter:i.prototype.save.call(this)}},o.prototype.restore=function(e){const t=new o(this.base);return t.offset=e.offset,t.length=this.offset,this.offset=e.offset,i.prototype.restore.call(this,e.reporter),t},o.prototype.isEmpty=function(){return this.offset===this.length},o.prototype.readUInt8=function(e){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(e||\"DecoderBuffer overrun\")},o.prototype.skip=function(e,t){if(!(this.offset+e<=this.length))return this.error(t||\"DecoderBuffer overrun\");const r=new o(this.base);return r._reporterState=this._reporterState,r.offset=this.offset,r.length=this.offset+e,this.offset+=e,r},o.prototype.raw=function(e){return this.base.slice(e?e.offset:this.offset,this.length)},r.EncoderBuffer=a,a.isEncoderBuffer=function(e){if(e instanceof a)return!0;return\"object\"==typeof e&&\"EncoderBuffer\"===e.constructor.name&&\"number\"==typeof e.length&&\"function\"==typeof e.join},a.prototype.join=function(e,t){return e||(e=s.alloc(this.length)),t||(t=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(r){r.join(e,t),t+=r.length})):(\"number\"==typeof this.value?e[t]=this.value:\"string\"==typeof this.value?e.write(this.value,t):s.isBuffer(this.value)&&this.value.copy(e,t),t+=this.length)),e}},{\"../base/reporter\":175,inherits:440,\"safer-buffer\":495}],173:[function(e,t,r){\"use strict\";const n=r;n.Reporter=e(\"./reporter\").Reporter,n.DecoderBuffer=e(\"./buffer\").DecoderBuffer,n.EncoderBuffer=e(\"./buffer\").EncoderBuffer,n.Node=e(\"./node\")},{\"./buffer\":172,\"./node\":174,\"./reporter\":175}],174:[function(e,t,r){\"use strict\";const n=e(\"../base/reporter\").Reporter,i=e(\"../base/buffer\").EncoderBuffer,s=e(\"../base/buffer\").DecoderBuffer,o=e(\"minimalistic-assert\"),a=[\"seq\",\"seqof\",\"set\",\"setof\",\"objid\",\"bool\",\"gentime\",\"utctime\",\"null_\",\"enum\",\"int\",\"objDesc\",\"bitstr\",\"bmpstr\",\"charstr\",\"genstr\",\"graphstr\",\"ia5str\",\"iso646str\",\"numstr\",\"octstr\",\"printstr\",\"t61str\",\"unistr\",\"utf8str\",\"videostr\"],l=[\"key\",\"obj\",\"use\",\"optional\",\"explicit\",\"implicit\",\"def\",\"choice\",\"any\",\"contains\"].concat(a);function c(e,t,r){const n={};this._baseState=n,n.name=r,n.enc=e,n.parent=t||null,n.children=null,n.tag=null,n.args=null,n.reverseArgs=null,n.choice=null,n.optional=!1,n.any=!1,n.obj=!1,n.use=null,n.useDecoder=null,n.key=null,n.default=null,n.explicit=null,n.implicit=null,n.contains=null,n.parent||(n.children=[],this._wrap())}t.exports=c;const u=[\"enc\",\"parent\",\"children\",\"tag\",\"args\",\"reverseArgs\",\"choice\",\"optional\",\"any\",\"obj\",\"use\",\"alteredUse\",\"key\",\"default\",\"explicit\",\"implicit\",\"contains\"];c.prototype.clone=function(){const e=this._baseState,t={};u.forEach((function(r){t[r]=e[r]}));const r=new this.constructor(t.parent);return r._baseState=t,r},c.prototype._wrap=function(){const e=this._baseState;l.forEach((function(t){this[t]=function(){const r=new this.constructor(this);return e.children.push(r),r[t].apply(r,arguments)}}),this)},c.prototype._init=function(e){const t=this._baseState;o(null===t.parent),e.call(this),t.children=t.children.filter((function(e){return e._baseState.parent===this}),this),o.equal(t.children.length,1,\"Root node can have only one child\")},c.prototype._useArgs=function(e){const t=this._baseState,r=e.filter((function(e){return e instanceof this.constructor}),this);e=e.filter((function(e){return!(e instanceof this.constructor)}),this),0!==r.length&&(o(null===t.children),t.children=r,r.forEach((function(e){e._baseState.parent=this}),this)),0!==e.length&&(o(null===t.args),t.args=e,t.reverseArgs=e.map((function(e){if(\"object\"!=typeof e||e.constructor!==Object)return e;const t={};return Object.keys(e).forEach((function(r){r==(0|r)&&(r|=0);const n=e[r];t[n]=r})),t})))},[\"_peekTag\",\"_decodeTag\",\"_use\",\"_decodeStr\",\"_decodeObjid\",\"_decodeTime\",\"_decodeNull\",\"_decodeInt\",\"_decodeBool\",\"_decodeList\",\"_encodeComposite\",\"_encodeStr\",\"_encodeObjid\",\"_encodeTime\",\"_encodeNull\",\"_encodeInt\",\"_encodeBool\"].forEach((function(e){c.prototype[e]=function(){const t=this._baseState;throw new Error(e+\" not implemented for encoding: \"+t.enc)}})),a.forEach((function(e){c.prototype[e]=function(){const t=this._baseState,r=Array.prototype.slice.call(arguments);return o(null===t.tag),t.tag=e,this._useArgs(r),this}})),c.prototype.use=function(e){o(e);const t=this._baseState;return o(null===t.use),t.use=e,this},c.prototype.optional=function(){return this._baseState.optional=!0,this},c.prototype.def=function(e){const t=this._baseState;return o(null===t.default),t.default=e,t.optional=!0,this},c.prototype.explicit=function(e){const t=this._baseState;return o(null===t.explicit&&null===t.implicit),t.explicit=e,this},c.prototype.implicit=function(e){const t=this._baseState;return o(null===t.explicit&&null===t.implicit),t.implicit=e,this},c.prototype.obj=function(){const e=this._baseState,t=Array.prototype.slice.call(arguments);return e.obj=!0,0!==t.length&&this._useArgs(t),this},c.prototype.key=function(e){const t=this._baseState;return o(null===t.key),t.key=e,this},c.prototype.any=function(){return this._baseState.any=!0,this},c.prototype.choice=function(e){const t=this._baseState;return o(null===t.choice),t.choice=e,this._useArgs(Object.keys(e).map((function(t){return e[t]}))),this},c.prototype.contains=function(e){const t=this._baseState;return o(null===t.use),t.contains=e,this},c.prototype._decode=function(e,t){const r=this._baseState;if(null===r.parent)return e.wrapResult(r.children[0]._decode(e,t));let n,i=r.default,o=!0,a=null;if(null!==r.key&&(a=e.enterKey(r.key)),r.optional){let n=null;if(null!==r.explicit?n=r.explicit:null!==r.implicit?n=r.implicit:null!==r.tag&&(n=r.tag),null!==n||r.any){if(o=this._peekTag(e,n,r.any),e.isError(o))return o}else{const n=e.save();try{null===r.choice?this._decodeGeneric(r.tag,e,t):this._decodeChoice(e,t),o=!0}catch(e){o=!1}e.restore(n)}}if(r.obj&&o&&(n=e.enterObject()),o){if(null!==r.explicit){const t=this._decodeTag(e,r.explicit);if(e.isError(t))return t;e=t}const n=e.offset;if(null===r.use&&null===r.choice){let t;r.any&&(t=e.save());const n=this._decodeTag(e,null!==r.implicit?r.implicit:r.tag,r.any);if(e.isError(n))return n;r.any?i=e.raw(t):e=n}if(t&&t.track&&null!==r.tag&&t.track(e.path(),n,e.length,\"tagged\"),t&&t.track&&null!==r.tag&&t.track(e.path(),e.offset,e.length,\"content\"),r.any||(i=null===r.choice?this._decodeGeneric(r.tag,e,t):this._decodeChoice(e,t)),e.isError(i))return i;if(r.any||null!==r.choice||null===r.children||r.children.forEach((function(r){r._decode(e,t)})),r.contains&&(\"octstr\"===r.tag||\"bitstr\"===r.tag)){const n=new s(i);i=this._getUse(r.contains,e._reporterState.obj)._decode(n,t)}}return r.obj&&o&&(i=e.leaveObject(n)),null===r.key||null===i&&!0!==o?null!==a&&e.exitKey(a):e.leaveKey(a,r.key,i),i},c.prototype._decodeGeneric=function(e,t,r){const n=this._baseState;return\"seq\"===e||\"set\"===e?null:\"seqof\"===e||\"setof\"===e?this._decodeList(t,e,n.args[0],r):/str$/.test(e)?this._decodeStr(t,e,r):\"objid\"===e&&n.args?this._decodeObjid(t,n.args[0],n.args[1],r):\"objid\"===e?this._decodeObjid(t,null,null,r):\"gentime\"===e||\"utctime\"===e?this._decodeTime(t,e,r):\"null_\"===e?this._decodeNull(t,r):\"bool\"===e?this._decodeBool(t,r):\"objDesc\"===e?this._decodeStr(t,e,r):\"int\"===e||\"enum\"===e?this._decodeInt(t,n.args&&n.args[0],r):null!==n.use?this._getUse(n.use,t._reporterState.obj)._decode(t,r):t.error(\"unknown tag: \"+e)},c.prototype._getUse=function(e,t){const r=this._baseState;return r.useDecoder=this._use(e,t),o(null===r.useDecoder._baseState.parent),r.useDecoder=r.useDecoder._baseState.children[0],r.implicit!==r.useDecoder._baseState.implicit&&(r.useDecoder=r.useDecoder.clone(),r.useDecoder._baseState.implicit=r.implicit),r.useDecoder},c.prototype._decodeChoice=function(e,t){const r=this._baseState;let n=null,i=!1;return Object.keys(r.choice).some((function(s){const o=e.save(),a=r.choice[s];try{const r=a._decode(e,t);if(e.isError(r))return!1;n={type:s,value:r},i=!0}catch(t){return e.restore(o),!1}return!0}),this),i?n:e.error(\"Choice not matched\")},c.prototype._createEncoderBuffer=function(e){return new i(e,this.reporter)},c.prototype._encode=function(e,t,r){const n=this._baseState;if(null!==n.default&&n.default===e)return;const i=this._encodeValue(e,t,r);return void 0===i||this._skipDefault(i,t,r)?void 0:i},c.prototype._encodeValue=function(e,t,r){const i=this._baseState;if(null===i.parent)return i.children[0]._encode(e,t||new n);let s=null;if(this.reporter=t,i.optional&&void 0===e){if(null===i.default)return;e=i.default}let o=null,a=!1;if(i.any)s=this._createEncoderBuffer(e);else if(i.choice)s=this._encodeChoice(e,t);else if(i.contains)o=this._getUse(i.contains,r)._encode(e,t),a=!0;else if(i.children)o=i.children.map((function(r){if(\"null_\"===r._baseState.tag)return r._encode(null,t,e);if(null===r._baseState.key)return t.error(\"Child should have a key\");const n=t.enterKey(r._baseState.key);if(\"object\"!=typeof e)return t.error(\"Child expected, but input is not object\");const i=r._encode(e[r._baseState.key],t,e);return t.leaveKey(n),i}),this).filter((function(e){return e})),o=this._createEncoderBuffer(o);else if(\"seqof\"===i.tag||\"setof\"===i.tag){if(!i.args||1!==i.args.length)return t.error(\"Too many args for : \"+i.tag);if(!Array.isArray(e))return t.error(\"seqof/setof, but data is not Array\");const r=this.clone();r._baseState.implicit=null,o=this._createEncoderBuffer(e.map((function(r){const n=this._baseState;return this._getUse(n.args[0],e)._encode(r,t)}),r))}else null!==i.use?s=this._getUse(i.use,r)._encode(e,t):(o=this._encodePrimitive(i.tag,e),a=!0);if(!i.any&&null===i.choice){const e=null!==i.implicit?i.implicit:i.tag,r=null===i.implicit?\"universal\":\"context\";null===e?null===i.use&&t.error(\"Tag could be omitted only for .use()\"):null===i.use&&(s=this._encodeComposite(e,a,r,o))}return null!==i.explicit&&(s=this._encodeComposite(i.explicit,!1,\"context\",s)),s},c.prototype._encodeChoice=function(e,t){const r=this._baseState,n=r.choice[e.type];return n||o(!1,e.type+\" not found in \"+JSON.stringify(Object.keys(r.choice))),n._encode(e.value,t)},c.prototype._encodePrimitive=function(e,t){const r=this._baseState;if(/str$/.test(e))return this._encodeStr(t,e);if(\"objid\"===e&&r.args)return this._encodeObjid(t,r.reverseArgs[0],r.args[1]);if(\"objid\"===e)return this._encodeObjid(t,null,null);if(\"gentime\"===e||\"utctime\"===e)return this._encodeTime(t,e);if(\"null_\"===e)return this._encodeNull();if(\"int\"===e||\"enum\"===e)return this._encodeInt(t,r.args&&r.reverseArgs[0]);if(\"bool\"===e)return this._encodeBool(t);if(\"objDesc\"===e)return this._encodeStr(t,e);throw new Error(\"Unsupported tag: \"+e)},c.prototype._isNumstr=function(e){return/^[0-9 ]*$/.test(e)},c.prototype._isPrintstr=function(e){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(e)}},{\"../base/buffer\":172,\"../base/reporter\":175,\"minimalistic-assert\":453}],175:[function(e,t,r){\"use strict\";const n=e(\"inherits\");function i(e){this._reporterState={obj:null,path:[],options:e||{},errors:[]}}function s(e,t){this.path=e,this.rethrow(t)}r.Reporter=i,i.prototype.isError=function(e){return e instanceof s},i.prototype.save=function(){const e=this._reporterState;return{obj:e.obj,pathLen:e.path.length}},i.prototype.restore=function(e){const t=this._reporterState;t.obj=e.obj,t.path=t.path.slice(0,e.pathLen)},i.prototype.enterKey=function(e){return this._reporterState.path.push(e)},i.prototype.exitKey=function(e){const t=this._reporterState;t.path=t.path.slice(0,e-1)},i.prototype.leaveKey=function(e,t,r){const n=this._reporterState;this.exitKey(e),null!==n.obj&&(n.obj[t]=r)},i.prototype.path=function(){return this._reporterState.path.join(\"/\")},i.prototype.enterObject=function(){const e=this._reporterState,t=e.obj;return e.obj={},t},i.prototype.leaveObject=function(e){const t=this._reporterState,r=t.obj;return t.obj=e,r},i.prototype.error=function(e){let t;const r=this._reporterState,n=e instanceof s;if(t=n?e:new s(r.path.map((function(e){return\"[\"+JSON.stringify(e)+\"]\"})).join(\"\"),e.message||e,e.stack),!r.options.partial)throw t;return n||r.errors.push(t),t},i.prototype.wrapResult=function(e){const t=this._reporterState;return t.options.partial?{result:this.isError(e)?null:e,errors:t.errors}:e},n(s,Error),s.prototype.rethrow=function(e){if(this.message=e+\" at: \"+(this.path||\"(shallow)\"),Error.captureStackTrace&&Error.captureStackTrace(this,s),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},{inherits:440}],176:[function(e,t,r){\"use strict\";function n(e){const t={};return Object.keys(e).forEach((function(r){(0|r)==r&&(r|=0);const n=e[r];t[n]=r})),t}r.tagClass={0:\"universal\",1:\"application\",2:\"context\",3:\"private\"},r.tagClassByName=n(r.tagClass),r.tag={0:\"end\",1:\"bool\",2:\"int\",3:\"bitstr\",4:\"octstr\",5:\"null_\",6:\"objid\",7:\"objDesc\",8:\"external\",9:\"real\",10:\"enum\",11:\"embed\",12:\"utf8str\",13:\"relativeOid\",16:\"seq\",17:\"set\",18:\"numstr\",19:\"printstr\",20:\"t61str\",21:\"videostr\",22:\"ia5str\",23:\"utctime\",24:\"gentime\",25:\"graphstr\",26:\"iso646str\",27:\"genstr\",28:\"unistr\",29:\"charstr\",30:\"bmpstr\"},r.tagByName=n(r.tag)},{}],177:[function(e,t,r){\"use strict\";const n=r;n._reverse=function(e){const t={};return Object.keys(e).forEach((function(r){(0|r)==r&&(r|=0);const n=e[r];t[n]=r})),t},n.der=e(\"./der\")},{\"./der\":176}],178:[function(e,t,r){\"use strict\";const n=e(\"inherits\"),i=e(\"bn.js\"),s=e(\"../base/buffer\").DecoderBuffer,o=e(\"../base/node\"),a=e(\"../constants/der\");function l(e){this.enc=\"der\",this.name=e.name,this.entity=e,this.tree=new c,this.tree._init(e.body)}function c(e){o.call(this,\"der\",e)}function u(e,t){let r=e.readUInt8(t);if(e.isError(r))return r;const n=a.tagClass[r>>6],i=0==(32&r);if(31==(31&r)){let n=r;for(r=0;128==(128&n);){if(n=e.readUInt8(t),e.isError(n))return n;r<<=7,r|=127&n}}else r&=31;return{cls:n,primitive:i,tag:r,tagStr:a.tag[r]}}function h(e,t,r){let n=e.readUInt8(r);if(e.isError(n))return n;if(!t&&128===n)return null;if(0==(128&n))return n;const i=127&n;if(i>4)return e.error(\"length octect is too long\");n=0;for(let t=0;t<i;t++){n<<=8;const t=e.readUInt8(r);if(e.isError(t))return t;n|=t}return n}t.exports=l,l.prototype.decode=function(e,t){return s.isDecoderBuffer(e)||(e=new s(e,t)),this.tree._decode(e,t)},n(c,o),c.prototype._peekTag=function(e,t,r){if(e.isEmpty())return!1;const n=e.save(),i=u(e,'Failed to peek tag: \"'+t+'\"');return e.isError(i)?i:(e.restore(n),i.tag===t||i.tagStr===t||i.tagStr+\"of\"===t||r)},c.prototype._decodeTag=function(e,t,r){const n=u(e,'Failed to decode tag of \"'+t+'\"');if(e.isError(n))return n;let i=h(e,n.primitive,'Failed to get length of \"'+t+'\"');if(e.isError(i))return i;if(!r&&n.tag!==t&&n.tagStr!==t&&n.tagStr+\"of\"!==t)return e.error('Failed to match tag: \"'+t+'\"');if(n.primitive||null!==i)return e.skip(i,'Failed to match body of: \"'+t+'\"');const s=e.save(),o=this._skipUntilEnd(e,'Failed to skip indefinite length body: \"'+this.tag+'\"');return e.isError(o)?o:(i=e.offset-s.offset,e.restore(s),e.skip(i,'Failed to match body of: \"'+t+'\"'))},c.prototype._skipUntilEnd=function(e,t){for(;;){const r=u(e,t);if(e.isError(r))return r;const n=h(e,r.primitive,t);if(e.isError(n))return n;let i;if(i=r.primitive||null!==n?e.skip(n):this._skipUntilEnd(e,t),e.isError(i))return i;if(\"end\"===r.tagStr)break}},c.prototype._decodeList=function(e,t,r,n){const i=[];for(;!e.isEmpty();){const t=this._peekTag(e,\"end\");if(e.isError(t))return t;const s=r.decode(e,\"der\",n);if(e.isError(s)&&t)break;i.push(s)}return i},c.prototype._decodeStr=function(e,t){if(\"bitstr\"===t){const t=e.readUInt8();return e.isError(t)?t:{unused:t,data:e.raw()}}if(\"bmpstr\"===t){const t=e.raw();if(t.length%2==1)return e.error(\"Decoding of string type: bmpstr length mismatch\");let r=\"\";for(let e=0;e<t.length/2;e++)r+=String.fromCharCode(t.readUInt16BE(2*e));return r}if(\"numstr\"===t){const t=e.raw().toString(\"ascii\");return this._isNumstr(t)?t:e.error(\"Decoding of string type: numstr unsupported characters\")}if(\"octstr\"===t)return e.raw();if(\"objDesc\"===t)return e.raw();if(\"printstr\"===t){const t=e.raw().toString(\"ascii\");return this._isPrintstr(t)?t:e.error(\"Decoding of string type: printstr unsupported characters\")}return/str$/.test(t)?e.raw().toString():e.error(\"Decoding of string type: \"+t+\" unsupported\")},c.prototype._decodeObjid=function(e,t,r){let n;const i=[];let s=0,o=0;for(;!e.isEmpty();)o=e.readUInt8(),s<<=7,s|=127&o,0==(128&o)&&(i.push(s),s=0);128&o&&i.push(s);const a=i[0]/40|0,l=i[0]%40;if(n=r?i:[a,l].concat(i.slice(1)),t){let e=t[n.join(\" \")];void 0===e&&(e=t[n.join(\".\")]),void 0!==e&&(n=e)}return n},c.prototype._decodeTime=function(e,t){const r=e.raw().toString();let n,i,s,o,a,l;if(\"gentime\"===t)n=0|r.slice(0,4),i=0|r.slice(4,6),s=0|r.slice(6,8),o=0|r.slice(8,10),a=0|r.slice(10,12),l=0|r.slice(12,14);else{if(\"utctime\"!==t)return e.error(\"Decoding \"+t+\" time is not supported yet\");n=0|r.slice(0,2),i=0|r.slice(2,4),s=0|r.slice(4,6),o=0|r.slice(6,8),a=0|r.slice(8,10),l=0|r.slice(10,12),n=n<70?2e3+n:1900+n}return Date.UTC(n,i-1,s,o,a,l,0)},c.prototype._decodeNull=function(){return null},c.prototype._decodeBool=function(e){const t=e.readUInt8();return e.isError(t)?t:0!==t},c.prototype._decodeInt=function(e,t){const r=e.raw();let n=new i(r);return t&&(n=t[n.toString(10)]||n),n},c.prototype._use=function(e,t){return\"function\"==typeof e&&(e=e(t)),e._getDecoder(\"der\").tree}},{\"../base/buffer\":172,\"../base/node\":174,\"../constants/der\":176,\"bn.js\":184,inherits:440}],179:[function(e,t,r){\"use strict\";const n=r;n.der=e(\"./der\"),n.pem=e(\"./pem\")},{\"./der\":178,\"./pem\":180}],180:[function(e,t,r){\"use strict\";const n=e(\"inherits\"),i=e(\"safer-buffer\").Buffer,s=e(\"./der\");function o(e){s.call(this,e),this.enc=\"pem\"}n(o,s),t.exports=o,o.prototype.decode=function(e,t){const r=e.toString().split(/[\\r\\n]+/g),n=t.label.toUpperCase(),o=/^-----(BEGIN|END) ([^-]+)-----$/;let a=-1,l=-1;for(let e=0;e<r.length;e++){const t=r[e].match(o);if(null!==t&&t[2]===n){if(-1!==a){if(\"END\"!==t[1])break;l=e;break}if(\"BEGIN\"!==t[1])break;a=e}}if(-1===a||-1===l)throw new Error(\"PEM section not found for: \"+n);const c=r.slice(a+1,l).join(\"\");c.replace(/[^a-z0-9+/=]+/gi,\"\");const u=i.from(c,\"base64\");return s.prototype.decode.call(this,u,t)}},{\"./der\":178,inherits:440,\"safer-buffer\":495}],181:[function(e,t,r){\"use strict\";const n=e(\"inherits\"),i=e(\"safer-buffer\").Buffer,s=e(\"../base/node\"),o=e(\"../constants/der\");function a(e){this.enc=\"der\",this.name=e.name,this.entity=e,this.tree=new l,this.tree._init(e.body)}function l(e){s.call(this,\"der\",e)}function c(e){return e<10?\"0\"+e:e}t.exports=a,a.prototype.encode=function(e,t){return this.tree._encode(e,t).join()},n(l,s),l.prototype._encodeComposite=function(e,t,r,n){const s=function(e,t,r,n){let i;\"seqof\"===e?e=\"seq\":\"setof\"===e&&(e=\"set\");if(o.tagByName.hasOwnProperty(e))i=o.tagByName[e];else{if(\"number\"!=typeof e||(0|e)!==e)return n.error(\"Unknown tag: \"+e);i=e}if(i>=31)return n.error(\"Multi-octet tag encoding unsupported\");t||(i|=32);return i|=o.tagClassByName[r||\"universal\"]<<6,i}(e,t,r,this.reporter);if(n.length<128){const e=i.alloc(2);return e[0]=s,e[1]=n.length,this._createEncoderBuffer([e,n])}let a=1;for(let e=n.length;e>=256;e>>=8)a++;const l=i.alloc(2+a);l[0]=s,l[1]=128|a;for(let e=1+a,t=n.length;t>0;e--,t>>=8)l[e]=255&t;return this._createEncoderBuffer([l,n])},l.prototype._encodeStr=function(e,t){if(\"bitstr\"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if(\"bmpstr\"===t){const t=i.alloc(2*e.length);for(let r=0;r<e.length;r++)t.writeUInt16BE(e.charCodeAt(r),2*r);return this._createEncoderBuffer(t)}return\"numstr\"===t?this._isNumstr(e)?this._createEncoderBuffer(e):this.reporter.error(\"Encoding of string type: numstr supports only digits and space\"):\"printstr\"===t?this._isPrintstr(e)?this._createEncoderBuffer(e):this.reporter.error(\"Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark\"):/str$/.test(t)||\"objDesc\"===t?this._createEncoderBuffer(e):this.reporter.error(\"Encoding of string type: \"+t+\" unsupported\")},l.prototype._encodeObjid=function(e,t,r){if(\"string\"==typeof e){if(!t)return this.reporter.error(\"string objid given, but no values map found\");if(!t.hasOwnProperty(e))return this.reporter.error(\"objid not found in values map\");e=t[e].split(/[\\s.]+/g);for(let t=0;t<e.length;t++)e[t]|=0}else if(Array.isArray(e)){e=e.slice();for(let t=0;t<e.length;t++)e[t]|=0}if(!Array.isArray(e))return this.reporter.error(\"objid() should be either array or string, got: \"+JSON.stringify(e));if(!r){if(e[1]>=40)return this.reporter.error(\"Second objid identifier OOB\");e.splice(0,2,40*e[0]+e[1])}let n=0;for(let t=0;t<e.length;t++){let r=e[t];for(n++;r>=128;r>>=7)n++}const s=i.alloc(n);let o=s.length-1;for(let t=e.length-1;t>=0;t--){let r=e[t];for(s[o--]=127&r;(r>>=7)>0;)s[o--]=128|127&r}return this._createEncoderBuffer(s)},l.prototype._encodeTime=function(e,t){let r;const n=new Date(e);return\"gentime\"===t?r=[c(n.getUTCFullYear()),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),\"Z\"].join(\"\"):\"utctime\"===t?r=[c(n.getUTCFullYear()%100),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),\"Z\"].join(\"\"):this.reporter.error(\"Encoding \"+t+\" time is not supported yet\"),this._encodeStr(r,\"octstr\")},l.prototype._encodeNull=function(){return this._createEncoderBuffer(\"\")},l.prototype._encodeInt=function(e,t){if(\"string\"==typeof e){if(!t)return this.reporter.error(\"String int or enum given, but no values map\");if(!t.hasOwnProperty(e))return this.reporter.error(\"Values map doesn't contain: \"+JSON.stringify(e));e=t[e]}if(\"number\"!=typeof e&&!i.isBuffer(e)){const t=e.toArray();!e.sign&&128&t[0]&&t.unshift(0),e=i.from(t)}if(i.isBuffer(e)){let t=e.length;0===e.length&&t++;const r=i.alloc(t);return e.copy(r),0===e.length&&(r[0]=0),this._createEncoderBuffer(r)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);let r=1;for(let t=e;t>=256;t>>=8)r++;const n=new Array(r);for(let t=n.length-1;t>=0;t--)n[t]=255&e,e>>=8;return 128&n[0]&&n.unshift(0),this._createEncoderBuffer(i.from(n))},l.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},l.prototype._use=function(e,t){return\"function\"==typeof e&&(e=e(t)),e._getEncoder(\"der\").tree},l.prototype._skipDefault=function(e,t,r){const n=this._baseState;let i;if(null===n.default)return!1;const s=e.join();if(void 0===n.defaultBuffer&&(n.defaultBuffer=this._encodeValue(n.default,t,r).join()),s.length!==n.defaultBuffer.length)return!1;for(i=0;i<s.length;i++)if(s[i]!==n.defaultBuffer[i])return!1;return!0}},{\"../base/node\":174,\"../constants/der\":176,inherits:440,\"safer-buffer\":495}],182:[function(e,t,r){\"use strict\";const n=r;n.der=e(\"./der\"),n.pem=e(\"./pem\")},{\"./der\":181,\"./pem\":183}],183:[function(e,t,r){\"use strict\";const n=e(\"inherits\"),i=e(\"./der\");function s(e){i.call(this,e),this.enc=\"pem\"}n(s,i),t.exports=s,s.prototype.encode=function(e,t){const r=i.prototype.encode.call(this,e).toString(\"base64\"),n=[\"-----BEGIN \"+t.label+\"-----\"];for(let e=0;e<r.length;e+=64)n.push(r.slice(e,e+64));return n.push(\"-----END \"+t.label+\"-----\"),n.join(\"\\n\")}},{\"./der\":181,inherits:440}],184:[function(e,t,r){\"use strict\";!function(t,r){function n(e,t){if(!e)throw new Error(t||\"Assertion failed\")}function i(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function s(e,t,r){if(s.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&(\"le\"!==t&&\"be\"!==t||(r=t,t=10),this._init(e||0,t||10,r||\"be\"))}var o;\"object\"==typeof t?t.exports=s:(void 0).BN=s,s.BN=s,s.wordSize=26;try{o=\"undefined\"!=typeof window&&void 0!==window.Buffer?window.Buffer:e(\"buffer\").Buffer}catch(e){}function a(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function l(e,t,r){var n=a(e,r);return r-1>=t&&(n|=a(e,r-1)<<4),n}function c(e,t,r,n){for(var i=0,s=Math.min(e.length,r),o=t;o<s;o++){var a=e.charCodeAt(o)-48;i*=n,i+=a>=49?a-49+10:a>=17?a-17+10:a}return i}s.isBN=function(e){return e instanceof s||null!==e&&\"object\"==typeof e&&e.constructor.wordSize===s.wordSize&&Array.isArray(e.words)},s.max=function(e,t){return e.cmp(t)>0?e:t},s.min=function(e,t){return e.cmp(t)<0?e:t},s.prototype._init=function(e,t,r){if(\"number\"==typeof e)return this._initNumber(e,t,r);if(\"object\"==typeof e)return this._initArray(e,t,r);\"hex\"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;\"-\"===(e=e.toString().replace(/\\s+/g,\"\"))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,r):(this._parseBase(e,t,i),\"le\"===r&&this._initArray(this.toArray(),t,r)))},s.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),\"le\"===r&&this._initArray(this.toArray(),t,r)},s.prototype._initArray=function(e,t,r){if(n(\"number\"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var s,o,a=0;if(\"be\"===r)for(i=e.length-1,s=0;i>=0;i-=3)o=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[s]|=o<<a&67108863,this.words[s+1]=o>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if(\"le\"===r)for(i=0,s=0;i<e.length;i+=3)o=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[s]|=o<<a&67108863,this.words[s+1]=o>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this.strip()},s.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,s=0,o=0;if(\"be\"===r)for(n=e.length-1;n>=t;n-=2)i=l(e,t,n)<<s,this.words[o]|=67108863&i,s>=18?(s-=18,o+=1,this.words[o]|=i>>>26):s+=8;else for(n=(e.length-t)%2==0?t+1:t;n<e.length;n+=2)i=l(e,t,n)<<s,this.words[o]|=67108863&i,s>=18?(s-=18,o+=1,this.words[o]|=i>>>26):s+=8;this.strip()},s.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var s=e.length-r,o=s%n,a=Math.min(s,s-o)+r,l=0,u=r;u<a;u+=n)l=c(e,u,u+n,t),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==o){var h=1;for(l=c(e,u,e.length,t),u=0;u<o;u++)h*=t;this.imuln(h),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this.strip()},s.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},s.prototype.clone=function(){var e=new s(null);return this.copy(e),e},s.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},s.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?\"<BN-R: \":\"<BN: \")+this.toString(16)+\">\"};var u=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function d(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],s=0|t.words[0],o=i*s,a=67108863&o,l=o/67108864|0;r.words[0]=a;for(var c=1;c<n;c++){for(var u=l>>>26,h=67108863&l,f=Math.min(c,t.length-1),d=Math.max(0,c-e.length+1);d<=f;d++){var p=c-d|0;u+=(o=(i=0|e.words[p])*(s=0|t.words[d])+h)/67108864|0,h=67108863&o}r.words[c]=0|h,l=0|u}return 0!==l?r.words[c]=0|l:r.length--,r.strip()}s.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||\"hex\"===e){r=\"\";for(var i=0,s=0,o=0;o<this.length;o++){var a=this.words[o],l=(16777215&(a<<i|s)).toString(16);r=0!==(s=a>>>24-i&16777215)||o!==this.length-1?u[6-l.length]+l+r:l+r,(i+=2)>=26&&(i-=26,o--)}for(0!==s&&(r=s.toString(16)+r);r.length%t!=0;)r=\"0\"+r;return 0!==this.negative&&(r=\"-\"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=h[e],d=f[e];r=\"\";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(d).toString(e);r=(p=p.idivn(d)).isZero()?m+r:u[c-m.length]+m+r}for(this.isZero()&&(r=\"0\"+r);r.length%t!=0;)r=\"0\"+r;return 0!==this.negative&&(r=\"-\"+r),r}n(!1,\"Base should be between 2 and 36\")},s.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,\"Number can only safely store up to 53 bits\"),0!==this.negative?-e:e},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(e,t){return n(void 0!==o),this.toArrayLike(o,e,t)},s.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},s.prototype.toArrayLike=function(e,t,r){var i=this.byteLength(),s=r||Math.max(1,i);n(i<=s,\"byte array longer than desired length\"),n(s>0,\"Requested array length <= 0\"),this.strip();var o,a,l=\"le\"===t,c=new e(s),u=this.clone();if(l){for(a=0;!u.isZero();a++)o=u.andln(255),u.iushrn(8),c[a]=o;for(;a<s;a++)c[a]=0}else{for(a=0;a<s-i;a++)c[a]=0;for(a=0;!u.isZero();a++)o=u.andln(255),u.iushrn(8),c[s-a-1]=o}return c},Math.clz32?s.prototype._countBits=function(e){return 32-Math.clz32(e)}:s.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},s.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},s.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},s.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},s.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},s.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},s.prototype.isNeg=function(){return 0!==this.negative},s.prototype.neg=function(){return this.clone().ineg()},s.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},s.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this.strip()},s.prototype.ior=function(e){return n(0==(this.negative|e.negative)),this.iuor(e)},s.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},s.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},s.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this.strip()},s.prototype.iand=function(e){return n(0==(this.negative|e.negative)),this.iuand(e)},s.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},s.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},s.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;n<r.length;n++)this.words[n]=t.words[n]^r.words[n];if(this!==t)for(;n<t.length;n++)this.words[n]=t.words[n];return this.length=t.length,this.strip()},s.prototype.ixor=function(e){return n(0==(this.negative|e.negative)),this.iuxor(e)},s.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},s.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},s.prototype.inotn=function(e){n(\"number\"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},s.prototype.notn=function(e){return this.clone().inotn(e)},s.prototype.setn=function(e,t){n(\"number\"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<i:this.words[r]&~(1<<i),this.strip()},s.prototype.iadd=function(e){var t,r,n;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,n=e):(r=e,n=this);for(var i=0,s=0;s<n.length;s++)t=(0|r.words[s])+(0|n.words[s])+i,this.words[s]=67108863&t,i=t>>>26;for(;0!==i&&s<r.length;s++)t=(0|r.words[s])+i,this.words[s]=67108863&t,i=t>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this},s.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},s.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var s=0,o=0;o<n.length;o++)s=(t=(0|r.words[o])-(0|n.words[o])+s)>>26,this.words[o]=67108863&t;for(;0!==s&&o<r.length;o++)s=(t=(0|r.words[o])+s)>>26,this.words[o]=67108863&t;if(0===s&&o<r.length&&r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this.length=Math.max(this.length,o),r!==this&&(this.negative=1),this.strip()},s.prototype.sub=function(e){return this.clone().isub(e)};var p=function(e,t,r){var n,i,s,o=e.words,a=t.words,l=r.words,c=0,u=0|o[0],h=8191&u,f=u>>>13,d=0|o[1],p=8191&d,m=d>>>13,b=0|o[2],g=8191&b,y=b>>>13,v=0|o[3],w=8191&v,_=v>>>13,x=0|o[4],k=8191&x,S=x>>>13,M=0|o[5],C=8191&M,T=M>>>13,E=0|o[6],A=8191&E,R=E>>>13,O=0|o[7],j=8191&O,I=O>>>13,N=0|o[8],P=8191&N,B=N>>>13,D=0|o[9],F=8191&D,L=D>>>13,z=0|a[0],U=8191&z,$=z>>>13,H=0|a[1],V=8191&H,q=H>>>13,W=0|a[2],X=8191&W,K=W>>>13,Y=0|a[3],Z=8191&Y,G=Y>>>13,J=0|a[4],Q=8191&J,ee=J>>>13,te=0|a[5],re=8191&te,ne=te>>>13,ie=0|a[6],se=8191&ie,oe=ie>>>13,ae=0|a[7],le=8191&ae,ce=ae>>>13,ue=0|a[8],he=8191&ue,fe=ue>>>13,de=0|a[9],pe=8191&de,me=de>>>13;r.negative=e.negative^t.negative,r.length=19;var be=(c+(n=Math.imul(h,U))|0)+((8191&(i=(i=Math.imul(h,$))+Math.imul(f,U)|0))<<13)|0;c=((s=Math.imul(f,$))+(i>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(p,U),i=(i=Math.imul(p,$))+Math.imul(m,U)|0,s=Math.imul(m,$);var ge=(c+(n=n+Math.imul(h,V)|0)|0)+((8191&(i=(i=i+Math.imul(h,q)|0)+Math.imul(f,V)|0))<<13)|0;c=((s=s+Math.imul(f,q)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,U),i=(i=Math.imul(g,$))+Math.imul(y,U)|0,s=Math.imul(y,$),n=n+Math.imul(p,V)|0,i=(i=i+Math.imul(p,q)|0)+Math.imul(m,V)|0,s=s+Math.imul(m,q)|0;var ye=(c+(n=n+Math.imul(h,X)|0)|0)+((8191&(i=(i=i+Math.imul(h,K)|0)+Math.imul(f,X)|0))<<13)|0;c=((s=s+Math.imul(f,K)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(w,U),i=(i=Math.imul(w,$))+Math.imul(_,U)|0,s=Math.imul(_,$),n=n+Math.imul(g,V)|0,i=(i=i+Math.imul(g,q)|0)+Math.imul(y,V)|0,s=s+Math.imul(y,q)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,K)|0)+Math.imul(m,X)|0,s=s+Math.imul(m,K)|0;var ve=(c+(n=n+Math.imul(h,Z)|0)|0)+((8191&(i=(i=i+Math.imul(h,G)|0)+Math.imul(f,Z)|0))<<13)|0;c=((s=s+Math.imul(f,G)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(k,U),i=(i=Math.imul(k,$))+Math.imul(S,U)|0,s=Math.imul(S,$),n=n+Math.imul(w,V)|0,i=(i=i+Math.imul(w,q)|0)+Math.imul(_,V)|0,s=s+Math.imul(_,q)|0,n=n+Math.imul(g,X)|0,i=(i=i+Math.imul(g,K)|0)+Math.imul(y,X)|0,s=s+Math.imul(y,K)|0,n=n+Math.imul(p,Z)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(m,Z)|0,s=s+Math.imul(m,G)|0;var we=(c+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(f,Q)|0))<<13)|0;c=((s=s+Math.imul(f,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(C,U),i=(i=Math.imul(C,$))+Math.imul(T,U)|0,s=Math.imul(T,$),n=n+Math.imul(k,V)|0,i=(i=i+Math.imul(k,q)|0)+Math.imul(S,V)|0,s=s+Math.imul(S,q)|0,n=n+Math.imul(w,X)|0,i=(i=i+Math.imul(w,K)|0)+Math.imul(_,X)|0,s=s+Math.imul(_,K)|0,n=n+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,G)|0)+Math.imul(y,Z)|0,s=s+Math.imul(y,G)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(m,Q)|0,s=s+Math.imul(m,ee)|0;var _e=(c+(n=n+Math.imul(h,re)|0)|0)+((8191&(i=(i=i+Math.imul(h,ne)|0)+Math.imul(f,re)|0))<<13)|0;c=((s=s+Math.imul(f,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(A,U),i=(i=Math.imul(A,$))+Math.imul(R,U)|0,s=Math.imul(R,$),n=n+Math.imul(C,V)|0,i=(i=i+Math.imul(C,q)|0)+Math.imul(T,V)|0,s=s+Math.imul(T,q)|0,n=n+Math.imul(k,X)|0,i=(i=i+Math.imul(k,K)|0)+Math.imul(S,X)|0,s=s+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(_,Z)|0,s=s+Math.imul(_,G)|0,n=n+Math.imul(g,Q)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(y,Q)|0,s=s+Math.imul(y,ee)|0,n=n+Math.imul(p,re)|0,i=(i=i+Math.imul(p,ne)|0)+Math.imul(m,re)|0,s=s+Math.imul(m,ne)|0;var xe=(c+(n=n+Math.imul(h,se)|0)|0)+((8191&(i=(i=i+Math.imul(h,oe)|0)+Math.imul(f,se)|0))<<13)|0;c=((s=s+Math.imul(f,oe)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(j,U),i=(i=Math.imul(j,$))+Math.imul(I,U)|0,s=Math.imul(I,$),n=n+Math.imul(A,V)|0,i=(i=i+Math.imul(A,q)|0)+Math.imul(R,V)|0,s=s+Math.imul(R,q)|0,n=n+Math.imul(C,X)|0,i=(i=i+Math.imul(C,K)|0)+Math.imul(T,X)|0,s=s+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=(i=i+Math.imul(k,G)|0)+Math.imul(S,Z)|0,s=s+Math.imul(S,G)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,s=s+Math.imul(_,ee)|0,n=n+Math.imul(g,re)|0,i=(i=i+Math.imul(g,ne)|0)+Math.imul(y,re)|0,s=s+Math.imul(y,ne)|0,n=n+Math.imul(p,se)|0,i=(i=i+Math.imul(p,oe)|0)+Math.imul(m,se)|0,s=s+Math.imul(m,oe)|0;var ke=(c+(n=n+Math.imul(h,le)|0)|0)+((8191&(i=(i=i+Math.imul(h,ce)|0)+Math.imul(f,le)|0))<<13)|0;c=((s=s+Math.imul(f,ce)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(P,U),i=(i=Math.imul(P,$))+Math.imul(B,U)|0,s=Math.imul(B,$),n=n+Math.imul(j,V)|0,i=(i=i+Math.imul(j,q)|0)+Math.imul(I,V)|0,s=s+Math.imul(I,q)|0,n=n+Math.imul(A,X)|0,i=(i=i+Math.imul(A,K)|0)+Math.imul(R,X)|0,s=s+Math.imul(R,K)|0,n=n+Math.imul(C,Z)|0,i=(i=i+Math.imul(C,G)|0)+Math.imul(T,Z)|0,s=s+Math.imul(T,G)|0,n=n+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(S,Q)|0,s=s+Math.imul(S,ee)|0,n=n+Math.imul(w,re)|0,i=(i=i+Math.imul(w,ne)|0)+Math.imul(_,re)|0,s=s+Math.imul(_,ne)|0,n=n+Math.imul(g,se)|0,i=(i=i+Math.imul(g,oe)|0)+Math.imul(y,se)|0,s=s+Math.imul(y,oe)|0,n=n+Math.imul(p,le)|0,i=(i=i+Math.imul(p,ce)|0)+Math.imul(m,le)|0,s=s+Math.imul(m,ce)|0;var Se=(c+(n=n+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,fe)|0)+Math.imul(f,he)|0))<<13)|0;c=((s=s+Math.imul(f,fe)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(F,U),i=(i=Math.imul(F,$))+Math.imul(L,U)|0,s=Math.imul(L,$),n=n+Math.imul(P,V)|0,i=(i=i+Math.imul(P,q)|0)+Math.imul(B,V)|0,s=s+Math.imul(B,q)|0,n=n+Math.imul(j,X)|0,i=(i=i+Math.imul(j,K)|0)+Math.imul(I,X)|0,s=s+Math.imul(I,K)|0,n=n+Math.imul(A,Z)|0,i=(i=i+Math.imul(A,G)|0)+Math.imul(R,Z)|0,s=s+Math.imul(R,G)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,ee)|0)+Math.imul(T,Q)|0,s=s+Math.imul(T,ee)|0,n=n+Math.imul(k,re)|0,i=(i=i+Math.imul(k,ne)|0)+Math.imul(S,re)|0,s=s+Math.imul(S,ne)|0,n=n+Math.imul(w,se)|0,i=(i=i+Math.imul(w,oe)|0)+Math.imul(_,se)|0,s=s+Math.imul(_,oe)|0,n=n+Math.imul(g,le)|0,i=(i=i+Math.imul(g,ce)|0)+Math.imul(y,le)|0,s=s+Math.imul(y,ce)|0,n=n+Math.imul(p,he)|0,i=(i=i+Math.imul(p,fe)|0)+Math.imul(m,he)|0,s=s+Math.imul(m,fe)|0;var Me=(c+(n=n+Math.imul(h,pe)|0)|0)+((8191&(i=(i=i+Math.imul(h,me)|0)+Math.imul(f,pe)|0))<<13)|0;c=((s=s+Math.imul(f,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(F,V),i=(i=Math.imul(F,q))+Math.imul(L,V)|0,s=Math.imul(L,q),n=n+Math.imul(P,X)|0,i=(i=i+Math.imul(P,K)|0)+Math.imul(B,X)|0,s=s+Math.imul(B,K)|0,n=n+Math.imul(j,Z)|0,i=(i=i+Math.imul(j,G)|0)+Math.imul(I,Z)|0,s=s+Math.imul(I,G)|0,n=n+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(R,Q)|0,s=s+Math.imul(R,ee)|0,n=n+Math.imul(C,re)|0,i=(i=i+Math.imul(C,ne)|0)+Math.imul(T,re)|0,s=s+Math.imul(T,ne)|0,n=n+Math.imul(k,se)|0,i=(i=i+Math.imul(k,oe)|0)+Math.imul(S,se)|0,s=s+Math.imul(S,oe)|0,n=n+Math.imul(w,le)|0,i=(i=i+Math.imul(w,ce)|0)+Math.imul(_,le)|0,s=s+Math.imul(_,ce)|0,n=n+Math.imul(g,he)|0,i=(i=i+Math.imul(g,fe)|0)+Math.imul(y,he)|0,s=s+Math.imul(y,fe)|0;var Ce=(c+(n=n+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;c=((s=s+Math.imul(m,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(F,X),i=(i=Math.imul(F,K))+Math.imul(L,X)|0,s=Math.imul(L,K),n=n+Math.imul(P,Z)|0,i=(i=i+Math.imul(P,G)|0)+Math.imul(B,Z)|0,s=s+Math.imul(B,G)|0,n=n+Math.imul(j,Q)|0,i=(i=i+Math.imul(j,ee)|0)+Math.imul(I,Q)|0,s=s+Math.imul(I,ee)|0,n=n+Math.imul(A,re)|0,i=(i=i+Math.imul(A,ne)|0)+Math.imul(R,re)|0,s=s+Math.imul(R,ne)|0,n=n+Math.imul(C,se)|0,i=(i=i+Math.imul(C,oe)|0)+Math.imul(T,se)|0,s=s+Math.imul(T,oe)|0,n=n+Math.imul(k,le)|0,i=(i=i+Math.imul(k,ce)|0)+Math.imul(S,le)|0,s=s+Math.imul(S,ce)|0,n=n+Math.imul(w,he)|0,i=(i=i+Math.imul(w,fe)|0)+Math.imul(_,he)|0,s=s+Math.imul(_,fe)|0;var Te=(c+(n=n+Math.imul(g,pe)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(y,pe)|0))<<13)|0;c=((s=s+Math.imul(y,me)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(F,Z),i=(i=Math.imul(F,G))+Math.imul(L,Z)|0,s=Math.imul(L,G),n=n+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(B,Q)|0,s=s+Math.imul(B,ee)|0,n=n+Math.imul(j,re)|0,i=(i=i+Math.imul(j,ne)|0)+Math.imul(I,re)|0,s=s+Math.imul(I,ne)|0,n=n+Math.imul(A,se)|0,i=(i=i+Math.imul(A,oe)|0)+Math.imul(R,se)|0,s=s+Math.imul(R,oe)|0,n=n+Math.imul(C,le)|0,i=(i=i+Math.imul(C,ce)|0)+Math.imul(T,le)|0,s=s+Math.imul(T,ce)|0,n=n+Math.imul(k,he)|0,i=(i=i+Math.imul(k,fe)|0)+Math.imul(S,he)|0,s=s+Math.imul(S,fe)|0;var Ee=(c+(n=n+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,me)|0)+Math.imul(_,pe)|0))<<13)|0;c=((s=s+Math.imul(_,me)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(F,Q),i=(i=Math.imul(F,ee))+Math.imul(L,Q)|0,s=Math.imul(L,ee),n=n+Math.imul(P,re)|0,i=(i=i+Math.imul(P,ne)|0)+Math.imul(B,re)|0,s=s+Math.imul(B,ne)|0,n=n+Math.imul(j,se)|0,i=(i=i+Math.imul(j,oe)|0)+Math.imul(I,se)|0,s=s+Math.imul(I,oe)|0,n=n+Math.imul(A,le)|0,i=(i=i+Math.imul(A,ce)|0)+Math.imul(R,le)|0,s=s+Math.imul(R,ce)|0,n=n+Math.imul(C,he)|0,i=(i=i+Math.imul(C,fe)|0)+Math.imul(T,he)|0,s=s+Math.imul(T,fe)|0;var Ae=(c+(n=n+Math.imul(k,pe)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(S,pe)|0))<<13)|0;c=((s=s+Math.imul(S,me)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(F,re),i=(i=Math.imul(F,ne))+Math.imul(L,re)|0,s=Math.imul(L,ne),n=n+Math.imul(P,se)|0,i=(i=i+Math.imul(P,oe)|0)+Math.imul(B,se)|0,s=s+Math.imul(B,oe)|0,n=n+Math.imul(j,le)|0,i=(i=i+Math.imul(j,ce)|0)+Math.imul(I,le)|0,s=s+Math.imul(I,ce)|0,n=n+Math.imul(A,he)|0,i=(i=i+Math.imul(A,fe)|0)+Math.imul(R,he)|0,s=s+Math.imul(R,fe)|0;var Re=(c+(n=n+Math.imul(C,pe)|0)|0)+((8191&(i=(i=i+Math.imul(C,me)|0)+Math.imul(T,pe)|0))<<13)|0;c=((s=s+Math.imul(T,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(F,se),i=(i=Math.imul(F,oe))+Math.imul(L,se)|0,s=Math.imul(L,oe),n=n+Math.imul(P,le)|0,i=(i=i+Math.imul(P,ce)|0)+Math.imul(B,le)|0,s=s+Math.imul(B,ce)|0,n=n+Math.imul(j,he)|0,i=(i=i+Math.imul(j,fe)|0)+Math.imul(I,he)|0,s=s+Math.imul(I,fe)|0;var Oe=(c+(n=n+Math.imul(A,pe)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(R,pe)|0))<<13)|0;c=((s=s+Math.imul(R,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(F,le),i=(i=Math.imul(F,ce))+Math.imul(L,le)|0,s=Math.imul(L,ce),n=n+Math.imul(P,he)|0,i=(i=i+Math.imul(P,fe)|0)+Math.imul(B,he)|0,s=s+Math.imul(B,fe)|0;var je=(c+(n=n+Math.imul(j,pe)|0)|0)+((8191&(i=(i=i+Math.imul(j,me)|0)+Math.imul(I,pe)|0))<<13)|0;c=((s=s+Math.imul(I,me)|0)+(i>>>13)|0)+(je>>>26)|0,je&=67108863,n=Math.imul(F,he),i=(i=Math.imul(F,fe))+Math.imul(L,he)|0,s=Math.imul(L,fe);var Ie=(c+(n=n+Math.imul(P,pe)|0)|0)+((8191&(i=(i=i+Math.imul(P,me)|0)+Math.imul(B,pe)|0))<<13)|0;c=((s=s+Math.imul(B,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863;var Ne=(c+(n=Math.imul(F,pe))|0)+((8191&(i=(i=Math.imul(F,me))+Math.imul(L,pe)|0))<<13)|0;return c=((s=Math.imul(L,me))+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,l[0]=be,l[1]=ge,l[2]=ye,l[3]=ve,l[4]=we,l[5]=_e,l[6]=xe,l[7]=ke,l[8]=Se,l[9]=Me,l[10]=Ce,l[11]=Te,l[12]=Ee,l[13]=Ae,l[14]=Re,l[15]=Oe,l[16]=je,l[17]=Ie,l[18]=Ne,0!==c&&(l[19]=c,r.length++),r};function m(e,t,r){return(new b).mulp(e,t,r)}function b(e,t){this.x=e,this.y=t}Math.imul||(p=d),s.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?p(this,e,t):r<63?d(this,e,t):r<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,s=0;s<r.length-1;s++){var o=i;i=0;for(var a=67108863&n,l=Math.min(s,t.length-1),c=Math.max(0,s-e.length+1);c<=l;c++){var u=s-c,h=(0|e.words[u])*(0|t.words[c]),f=67108863&h;a=67108863&(f=f+a|0),i+=(o=(o=o+(h/67108864|0)|0)+(f>>>26)|0)>>>26,o&=67108863}r.words[s]=a,n=o,o=i}return 0!==n?r.words[s]=n:r.length--,r.strip()}(this,e,t):m(this,e,t)},b.prototype.makeRBT=function(e){for(var t=new Array(e),r=s.prototype._countBits(e)-1,n=0;n<e;n++)t[n]=this.revBin(n,r,e);return t},b.prototype.revBin=function(e,t,r){if(0===e||e===r-1)return e;for(var n=0,i=0;i<t;i++)n|=(1&e)<<t-i-1,e>>=1;return n},b.prototype.permute=function(e,t,r,n,i,s){for(var o=0;o<s;o++)n[o]=t[e[o]],i[o]=r[e[o]]},b.prototype.transform=function(e,t,r,n,i,s){this.permute(s,e,t,r,n,i);for(var o=1;o<i;o<<=1)for(var a=o<<1,l=Math.cos(2*Math.PI/a),c=Math.sin(2*Math.PI/a),u=0;u<i;u+=a)for(var h=l,f=c,d=0;d<o;d++){var p=r[u+d],m=n[u+d],b=r[u+d+o],g=n[u+d+o],y=h*b-f*g;g=h*g+f*b,b=y,r[u+d]=p+b,n[u+d]=m+g,r[u+d+o]=p-b,n[u+d+o]=m-g,d!==a&&(y=l*h-c*f,f=l*f+c*h,h=y)}},b.prototype.guessLen13b=function(e,t){var r=1|Math.max(t,e),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},b.prototype.conjugate=function(e,t,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=e[n];e[n]=e[r-n-1],e[r-n-1]=i,i=t[n],t[n]=-t[r-n-1],t[r-n-1]=-i}},b.prototype.normalize13b=function(e,t){for(var r=0,n=0;n<t/2;n++){var i=8192*Math.round(e[2*n+1]/t)+Math.round(e[2*n]/t)+r;e[n]=67108863&i,r=i<67108864?0:i/67108864|0}return e},b.prototype.convert13b=function(e,t,r,i){for(var s=0,o=0;o<t;o++)s+=0|e[o],r[2*o]=8191&s,s>>>=13,r[2*o+1]=8191&s,s>>>=13;for(o=2*t;o<i;++o)r[o]=0;n(0===s),n(0==(-8192&s))},b.prototype.stub=function(e){for(var t=new Array(e),r=0;r<e;r++)t[r]=0;return t},b.prototype.mulp=function(e,t,r){var n=2*this.guessLen13b(e.length,t.length),i=this.makeRBT(n),s=this.stub(n),o=new Array(n),a=new Array(n),l=new Array(n),c=new Array(n),u=new Array(n),h=new Array(n),f=r.words;f.length=n,this.convert13b(e.words,e.length,o,n),this.convert13b(t.words,t.length,c,n),this.transform(o,s,a,l,n,i),this.transform(c,s,u,h,n,i);for(var d=0;d<n;d++){var p=a[d]*u[d]-l[d]*h[d];l[d]=a[d]*h[d]+l[d]*u[d],a[d]=p}return this.conjugate(a,l,n),this.transform(a,l,f,s,n,i),this.conjugate(f,s,n),this.normalize13b(f,n),r.negative=e.negative^t.negative,r.length=e.length+t.length,r.strip()},s.prototype.mul=function(e){var t=new s(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},s.prototype.mulf=function(e){var t=new s(null);return t.words=new Array(this.length+e.length),m(this,e,t)},s.prototype.imul=function(e){return this.clone().mulTo(e,this)},s.prototype.imuln=function(e){n(\"number\"==typeof e),n(e<67108864);for(var t=0,r=0;r<this.length;r++){var i=(0|this.words[r])*e,s=(67108863&i)+(67108863&t);t>>=26,t+=i/67108864|0,t+=s>>>26,this.words[r]=67108863&s}return 0!==t&&(this.words[r]=t,this.length++),this},s.prototype.muln=function(e){return this.clone().imuln(e)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++){var n=r/26|0,i=r%26;t[r]=(e.words[n]&1<<i)>>>i}return t}(e);if(0===t.length)return new s(1);for(var r=this,n=0;n<t.length&&0===t[n];n++,r=r.sqr());if(++n<t.length)for(var i=r.sqr();n<t.length;n++,i=i.sqr())0!==t[n]&&(r=r.mul(i));return r},s.prototype.iushln=function(e){n(\"number\"==typeof e&&e>=0);var t,r=e%26,i=(e-r)/26,s=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t<this.length;t++){var a=this.words[t]&s,l=(0|this.words[t])-a<<r;this.words[t]=l|o,o=a>>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this.strip()},s.prototype.ishln=function(e){return n(0===this.negative),this.iushln(e)},s.prototype.iushrn=function(e,t,r){var i;n(\"number\"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var s=e%26,o=Math.min((e-s)/26,this.length),a=67108863^67108863>>>s<<s,l=r;if(i-=o,i=Math.max(0,i),l){for(var c=0;c<o;c++)l.words[c]=this.words[c];l.length=o}if(0===o);else if(this.length>o)for(this.length-=o,c=0;c<this.length;c++)this.words[c]=this.words[c+o];else this.words[0]=0,this.length=1;var u=0;for(c=this.length-1;c>=0&&(0!==u||c>=i);c--){var h=0|this.words[c];this.words[c]=u<<26-s|h>>>s,u=h&a}return l&&0!==u&&(l.words[l.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},s.prototype.shln=function(e){return this.clone().ishln(e)},s.prototype.ushln=function(e){return this.clone().iushln(e)},s.prototype.shrn=function(e){return this.clone().ishrn(e)},s.prototype.ushrn=function(e){return this.clone().iushrn(e)},s.prototype.testn=function(e){n(\"number\"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,i=1<<t;return!(this.length<=r)&&!!(this.words[r]&i)},s.prototype.imaskn=function(e){n(\"number\"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,\"imaskn works only with positive numbers\"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this.strip()},s.prototype.maskn=function(e){return this.clone().imaskn(e)},s.prototype.iaddn=function(e){return n(\"number\"==typeof e),n(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},s.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},s.prototype.isubn=function(e){if(n(\"number\"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this.strip()},s.prototype.addn=function(e){return this.clone().iaddn(e)},s.prototype.subn=function(e){return this.clone().isubn(e)},s.prototype.iabs=function(){return this.negative=0,this},s.prototype.abs=function(){return this.clone().iabs()},s.prototype._ishlnsubmul=function(e,t,r){var i,s,o=e.length+r;this._expand(o);var a=0;for(i=0;i<e.length;i++){s=(0|this.words[i+r])+a;var l=(0|e.words[i])*t;a=((s-=67108863&l)>>26)-(l/67108864|0),this.words[i+r]=67108863&s}for(;i<this.length-r;i++)a=(s=(0|this.words[i+r])+a)>>26,this.words[i+r]=67108863&s;if(0===a)return this.strip();for(n(-1===a),a=0,i=0;i<this.length;i++)a=(s=-(0|this.words[i])+a)>>26,this.words[i]=67108863&s;return this.negative=1,this.strip()},s.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var a,l=n.length-i.length;if(\"mod\"!==t){(a=new s(null)).length=l+1,a.words=new Array(a.length);for(var c=0;c<a.length;c++)a.words[c]=0}var u=n.clone()._ishlnsubmul(i,1,l);0===u.negative&&(n=u,a&&(a.words[l]=1));for(var h=l-1;h>=0;h--){var f=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(f=Math.min(f/o|0,67108863),n._ishlnsubmul(i,f,h);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);a&&(a.words[h]=f)}return a&&a.strip(),n.strip(),\"div\"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},s.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),\"mod\"!==t&&(i=a.div.neg()),\"div\"!==t&&(o=a.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:i,mod:o}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),\"mod\"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),\"div\"!==t&&(o=a.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:a.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new s(0),mod:this}:1===e.length?\"div\"===t?{div:this.divn(e.words[0]),mod:null}:\"mod\"===t?{div:null,mod:new s(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new s(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,o,a},s.prototype.div=function(e){return this.divmod(e,\"div\",!1).div},s.prototype.mod=function(e){return this.divmod(e,\"mod\",!1).mod},s.prototype.umod=function(e){return this.divmod(e,\"mod\",!0).mod},s.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),i=e.andln(1),s=r.cmp(n);return s<0||1===i&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},s.prototype.modn=function(e){n(e<=67108863);for(var t=(1<<26)%e,r=0,i=this.length-1;i>=0;i--)r=(t*r+(0|this.words[i]))%e;return r},s.prototype.idivn=function(e){n(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*t;this.words[r]=i/e|0,t=i%e}return this.strip()},s.prototype.divn=function(e){return this.clone().idivn(e)},s.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new s(1),o=new s(0),a=new s(0),l=new s(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var u=r.clone(),h=t.clone();!t.isZero();){for(var f=0,d=1;0==(t.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(u),o.isub(h)),i.iushrn(1),o.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(a.isOdd()||l.isOdd())&&(a.iadd(u),l.isub(h)),a.iushrn(1),l.iushrn(1);t.cmp(r)>=0?(t.isub(r),i.isub(a),o.isub(l)):(r.isub(t),a.isub(i),l.isub(o))}return{a:a,b:l,gcd:r.iushln(c)}},s.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,o=new s(1),a=new s(0),l=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,u=1;0==(t.words[0]&u)&&c<26;++c,u<<=1);if(c>0)for(t.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var h=0,f=1;0==(r.words[0]&f)&&h<26;++h,f<<=1);if(h>0)for(r.iushrn(h);h-- >0;)a.isOdd()&&a.iadd(l),a.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(a)):(r.isub(t),a.isub(o))}return(i=0===t.cmpn(1)?o:a).cmpn(0)<0&&i.iadd(e),i},s.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=t.cmp(r);if(i<0){var s=t;t=r,r=s}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},s.prototype.invm=function(e){return this.egcd(e).a.umod(e)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(e){return this.words[0]&e},s.prototype.bincn=function(e){n(\"number\"==typeof e);var t=e%26,r=(e-t)/26,i=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var s=i,o=r;0!==s&&o<this.length;o++){var a=0|this.words[o];s=(a+=s)>>>26,a&=67108863,this.words[o]=a}return 0!==s&&(this.words[o]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,\"Number is too big\");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},s.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},s.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){n<i?t=-1:n>i&&(t=1);break}}return t},s.prototype.gtn=function(e){return 1===this.cmpn(e)},s.prototype.gt=function(e){return 1===this.cmp(e)},s.prototype.gten=function(e){return this.cmpn(e)>=0},s.prototype.gte=function(e){return this.cmp(e)>=0},s.prototype.ltn=function(e){return-1===this.cmpn(e)},s.prototype.lt=function(e){return-1===this.cmp(e)},s.prototype.lten=function(e){return this.cmpn(e)<=0},s.prototype.lte=function(e){return this.cmp(e)<=0},s.prototype.eqn=function(e){return 0===this.cmpn(e)},s.prototype.eq=function(e){return 0===this.cmp(e)},s.red=function(e){return new k(e)},s.prototype.toRed=function(e){return n(!this.red,\"Already a number in reduction context\"),n(0===this.negative,\"red works only with positives\"),e.convertTo(this)._forceRed(e)},s.prototype.fromRed=function(){return n(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},s.prototype._forceRed=function(e){return this.red=e,this},s.prototype.forceRed=function(e){return n(!this.red,\"Already a number in reduction context\"),this._forceRed(e)},s.prototype.redAdd=function(e){return n(this.red,\"redAdd works only with red numbers\"),this.red.add(this,e)},s.prototype.redIAdd=function(e){return n(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,e)},s.prototype.redSub=function(e){return n(this.red,\"redSub works only with red numbers\"),this.red.sub(this,e)},s.prototype.redISub=function(e){return n(this.red,\"redISub works only with red numbers\"),this.red.isub(this,e)},s.prototype.redShl=function(e){return n(this.red,\"redShl works only with red numbers\"),this.red.shl(this,e)},s.prototype.redMul=function(e){return n(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,e),this.red.mul(this,e)},s.prototype.redIMul=function(e){return n(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,e),this.red.imul(this,e)},s.prototype.redSqr=function(){return n(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return n(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return n(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return n(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return n(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(e){return n(this.red&&!e.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,e)};var g={k256:null,p224:null,p192:null,p25519:null};function y(e,t){this.name=e,this.p=new s(t,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){y.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}function w(){y.call(this,\"p224\",\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\")}function _(){y.call(this,\"p192\",\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\")}function x(){y.call(this,\"25519\",\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\")}function k(e){if(\"string\"==typeof e){var t=s._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),\"modulus must be greater than 1\"),this.m=e,this.prime=null}function S(e){k.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var e=new s(null);return e.words=new Array(Math.ceil(this.n/13)),e},y.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(e,t){e.iushrn(this.n,0,t)},y.prototype.imulK=function(e){return e.imul(this.k)},i(v,y),v.prototype.split=function(e,t){for(var r=Math.min(e.length,9),n=0;n<r;n++)t.words[n]=e.words[n];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var i=e.words[9];for(t.words[t.length++]=4194303&i,n=10;n<e.length;n++){var s=0|e.words[n];e.words[n-10]=(4194303&s)<<4|i>>>22,i=s}i>>>=22,e.words[n-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},v.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var n=0|e.words[r];t+=977*n,e.words[r]=67108863&t,t=64*n+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},i(w,y),i(_,y),i(x,y),x.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var n=19*(0|e.words[r])+t,i=67108863&n;n>>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},s._prime=function(e){if(g[e])return g[e];var t;if(\"k256\"===e)t=new v;else if(\"p224\"===e)t=new w;else if(\"p192\"===e)t=new _;else{if(\"p25519\"!==e)throw new Error(\"Unknown prime \"+e);t=new x}return g[e]=t,t},k.prototype._verify1=function(e){n(0===e.negative,\"red works only with positives\"),n(e.red,\"red works only with red numbers\")},k.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),\"red works only with positives\"),n(e.red&&e.red===t.red,\"red works only with red numbers\")},k.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},k.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},k.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},k.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},k.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},k.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},k.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},k.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},k.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},k.prototype.isqr=function(e){return this.imul(e,e.clone())},k.prototype.sqr=function(e){return this.mul(e,e)},k.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new s(1)).iushrn(2);return this.pow(e,r)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);n(!i.isZero());var a=new s(1).toRed(this),l=a.redNeg(),c=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new s(2*u*u).toRed(this);0!==this.pow(u,c).cmp(l);)u.redIAdd(l);for(var h=this.pow(u,i),f=this.pow(e,i.addn(1).iushrn(1)),d=this.pow(e,i),p=o;0!==d.cmp(a);){for(var m=d,b=0;0!==m.cmp(a);b++)m=m.redSqr();n(b<p);var g=this.pow(h,new s(1).iushln(p-b-1));f=f.redMul(g),h=g.redSqr(),d=d.redMul(h),p=b}return f},k.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},k.prototype.pow=function(e,t){if(t.isZero())return new s(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new s(1).toRed(this),r[1]=e;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],e);var i=r[0],o=0,a=0,l=t.bitLength()%26;for(0===l&&(l=26),n=t.length-1;n>=0;n--){for(var c=t.words[n],u=l-1;u>=0;u--){var h=c>>u&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==o?(o<<=1,o|=h,(4===++a||0===n&&0===u)&&(i=this.mul(i,r[o]),a=0,o=0)):a=0}l=26}return i},k.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},k.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},s.mont=function(e){return new S(e)},i(S,k),S.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},S.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},S.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},S.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new s(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===t||t)},{buffer:188}],185:[function(e,t,r){\"use strict\";r.byteLength=function(e){var t=c(e),r=t[0],n=t[1];return 3*(r+n)/4-n},r.toByteArray=function(e){var t,r,n=c(e),o=n[0],a=n[1],l=new s(function(e,t,r){return 3*(t+r)/4-r}(0,o,a)),u=0,h=a>0?o-4:o;for(r=0;r<h;r+=4)t=i[e.charCodeAt(r)]<<18|i[e.charCodeAt(r+1)]<<12|i[e.charCodeAt(r+2)]<<6|i[e.charCodeAt(r+3)],l[u++]=t>>16&255,l[u++]=t>>8&255,l[u++]=255&t;2===a&&(t=i[e.charCodeAt(r)]<<2|i[e.charCodeAt(r+1)]>>4,l[u++]=255&t);1===a&&(t=i[e.charCodeAt(r)]<<10|i[e.charCodeAt(r+1)]<<4|i[e.charCodeAt(r+2)]>>2,l[u++]=t>>8&255,l[u++]=255&t);return l},r.fromByteArray=function(e){for(var t,r=e.length,i=r%3,s=[],o=0,a=r-i;o<a;o+=16383)s.push(u(e,o,o+16383>a?a:o+16383));1===i?(t=e[r-1],s.push(n[t>>2]+n[t<<4&63]+\"==\")):2===i&&(t=(e[r-2]<<8)+e[r-1],s.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+\"=\"));return s.join(\"\")};for(var n=[],i=[],s=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",a=0,l=o.length;a<l;++a)n[a]=o[a],i[o.charCodeAt(a)]=a;function c(e){var t=e.length;if(t%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=e.indexOf(\"=\");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function u(e,t,r){for(var i,s,o=[],a=t;a<r;a+=3)i=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),o.push(n[(s=i)>>18&63]+n[s>>12&63]+n[s>>6&63]+n[63&s]);return o.join(\"\")}i[\"-\".charCodeAt(0)]=62,i[\"_\".charCodeAt(0)]=63},{}],186:[function(e,t,r){\"use strict\";!function(t,r){function n(e,t){if(!e)throw new Error(t||\"Assertion failed\")}function i(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function s(e,t,r){if(s.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&(\"le\"!==t&&\"be\"!==t||(r=t,t=10),this._init(e||0,t||10,r||\"be\"))}var o;\"object\"==typeof t?t.exports=s:(void 0).BN=s,s.BN=s,s.wordSize=26;try{o=\"undefined\"!=typeof window&&void 0!==window.Buffer?window.Buffer:e(\"buffer\").Buffer}catch(e){}function a(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void n(!1,\"Invalid character in \"+e)}function l(e,t,r){var n=a(e,r);return r-1>=t&&(n|=a(e,r-1)<<4),n}function c(e,t,r,i){for(var s=0,o=0,a=Math.min(e.length,r),l=t;l<a;l++){var c=e.charCodeAt(l)-48;s*=i,o=c>=49?c-49+10:c>=17?c-17+10:c,n(c>=0&&o<i,\"Invalid character\"),s+=o}return s}function u(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(s.isBN=function(e){return e instanceof s||null!==e&&\"object\"==typeof e&&e.constructor.wordSize===s.wordSize&&Array.isArray(e.words)},s.max=function(e,t){return e.cmp(t)>0?e:t},s.min=function(e,t){return e.cmp(t)<0?e:t},s.prototype._init=function(e,t,r){if(\"number\"==typeof e)return this._initNumber(e,t,r);if(\"object\"==typeof e)return this._initArray(e,t,r);\"hex\"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;\"-\"===(e=e.toString().replace(/\\s+/g,\"\"))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,r):(this._parseBase(e,t,i),\"le\"===r&&this._initArray(this.toArray(),t,r)))},s.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),\"le\"===r&&this._initArray(this.toArray(),t,r)},s.prototype._initArray=function(e,t,r){if(n(\"number\"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var s,o,a=0;if(\"be\"===r)for(i=e.length-1,s=0;i>=0;i-=3)o=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[s]|=o<<a&67108863,this.words[s+1]=o>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if(\"le\"===r)for(i=0,s=0;i<e.length;i+=3)o=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[s]|=o<<a&67108863,this.words[s+1]=o>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this._strip()},s.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,s=0,o=0;if(\"be\"===r)for(n=e.length-1;n>=t;n-=2)i=l(e,t,n)<<s,this.words[o]|=67108863&i,s>=18?(s-=18,o+=1,this.words[o]|=i>>>26):s+=8;else for(n=(e.length-t)%2==0?t+1:t;n<e.length;n+=2)i=l(e,t,n)<<s,this.words[o]|=67108863&i,s>=18?(s-=18,o+=1,this.words[o]|=i>>>26):s+=8;this._strip()},s.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var s=e.length-r,o=s%n,a=Math.min(s,s-o)+r,l=0,u=r;u<a;u+=n)l=c(e,u,u+n,t),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==o){var h=1;for(l=c(e,u,e.length,t),u=0;u<o;u++)h*=t;this.imuln(h),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this._strip()},s.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},s.prototype._move=function(e){u(e,this)},s.prototype.clone=function(){var e=new s(null);return this.copy(e),e},s.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},s.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},\"undefined\"!=typeof Symbol&&\"function\"==typeof Symbol.for)try{s.prototype[Symbol.for(\"nodejs.util.inspect.custom\")]=h}catch(e){s.prototype.inspect=h}else s.prototype.inspect=h;function h(){return(this.red?\"<BN-R: \":\"<BN: \")+this.toString(16)+\">\"}var f=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];s.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||\"hex\"===e){r=\"\";for(var i=0,s=0,o=0;o<this.length;o++){var a=this.words[o],l=(16777215&(a<<i|s)).toString(16);s=a>>>24-i&16777215,(i+=2)>=26&&(i-=26,o--),r=0!==s||o!==this.length-1?f[6-l.length]+l+r:l+r}for(0!==s&&(r=s.toString(16)+r);r.length%t!=0;)r=\"0\"+r;return 0!==this.negative&&(r=\"-\"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=d[e],u=p[e];r=\"\";var h=this.clone();for(h.negative=0;!h.isZero();){var m=h.modrn(u).toString(e);r=(h=h.idivn(u)).isZero()?m+r:f[c-m.length]+m+r}for(this.isZero()&&(r=\"0\"+r);r.length%t!=0;)r=\"0\"+r;return 0!==this.negative&&(r=\"-\"+r),r}n(!1,\"Base should be between 2 and 36\")},s.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,\"Number can only safely store up to 53 bits\"),0!==this.negative?-e:e},s.prototype.toJSON=function(){return this.toString(16,2)},o&&(s.prototype.toBuffer=function(e,t){return this.toArrayLike(o,e,t)}),s.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function m(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],s=0|t.words[0],o=i*s,a=67108863&o,l=o/67108864|0;r.words[0]=a;for(var c=1;c<n;c++){for(var u=l>>>26,h=67108863&l,f=Math.min(c,t.length-1),d=Math.max(0,c-e.length+1);d<=f;d++){var p=c-d|0;u+=(o=(i=0|e.words[p])*(s=0|t.words[d])+h)/67108864|0,h=67108863&o}r.words[c]=0|h,l=0|u}return 0!==l?r.words[c]=0|l:r.length--,r._strip()}s.prototype.toArrayLike=function(e,t,r){this._strip();var i=this.byteLength(),s=r||Math.max(1,i);n(i<=s,\"byte array longer than desired length\"),n(s>0,\"Requested array length <= 0\");var o=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,s);return this[\"_toArrayLike\"+(\"le\"===t?\"LE\":\"BE\")](o,i),o},s.prototype._toArrayLikeLE=function(e,t){for(var r=0,n=0,i=0,s=0;i<this.length;i++){var o=this.words[i]<<s|n;e[r++]=255&o,r<e.length&&(e[r++]=o>>8&255),r<e.length&&(e[r++]=o>>16&255),6===s?(r<e.length&&(e[r++]=o>>24&255),n=0,s=0):(n=o>>>24,s+=2)}if(r<e.length)for(e[r++]=n;r<e.length;)e[r++]=0},s.prototype._toArrayLikeBE=function(e,t){for(var r=e.length-1,n=0,i=0,s=0;i<this.length;i++){var o=this.words[i]<<s|n;e[r--]=255&o,r>=0&&(e[r--]=o>>8&255),r>=0&&(e[r--]=o>>16&255),6===s?(r>=0&&(e[r--]=o>>24&255),n=0,s=0):(n=o>>>24,s+=2)}if(r>=0)for(e[r--]=n;r>=0;)e[r--]=0},Math.clz32?s.prototype._countBits=function(e){return 32-Math.clz32(e)}:s.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},s.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},s.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},s.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},s.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},s.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},s.prototype.isNeg=function(){return 0!==this.negative},s.prototype.neg=function(){return this.clone().ineg()},s.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},s.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},s.prototype.ior=function(e){return n(0==(this.negative|e.negative)),this.iuor(e)},s.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},s.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},s.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},s.prototype.iand=function(e){return n(0==(this.negative|e.negative)),this.iuand(e)},s.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},s.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},s.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;n<r.length;n++)this.words[n]=t.words[n]^r.words[n];if(this!==t)for(;n<t.length;n++)this.words[n]=t.words[n];return this.length=t.length,this._strip()},s.prototype.ixor=function(e){return n(0==(this.negative|e.negative)),this.iuxor(e)},s.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},s.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},s.prototype.inotn=function(e){n(\"number\"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},s.prototype.notn=function(e){return this.clone().inotn(e)},s.prototype.setn=function(e,t){n(\"number\"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<i:this.words[r]&~(1<<i),this._strip()},s.prototype.iadd=function(e){var t,r,n;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,n=e):(r=e,n=this);for(var i=0,s=0;s<n.length;s++)t=(0|r.words[s])+(0|n.words[s])+i,this.words[s]=67108863&t,i=t>>>26;for(;0!==i&&s<r.length;s++)t=(0|r.words[s])+i,this.words[s]=67108863&t,i=t>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this},s.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},s.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var s=0,o=0;o<n.length;o++)s=(t=(0|r.words[o])-(0|n.words[o])+s)>>26,this.words[o]=67108863&t;for(;0!==s&&o<r.length;o++)s=(t=(0|r.words[o])+s)>>26,this.words[o]=67108863&t;if(0===s&&o<r.length&&r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this.length=Math.max(this.length,o),r!==this&&(this.negative=1),this._strip()},s.prototype.sub=function(e){return this.clone().isub(e)};var b=function(e,t,r){var n,i,s,o=e.words,a=t.words,l=r.words,c=0,u=0|o[0],h=8191&u,f=u>>>13,d=0|o[1],p=8191&d,m=d>>>13,b=0|o[2],g=8191&b,y=b>>>13,v=0|o[3],w=8191&v,_=v>>>13,x=0|o[4],k=8191&x,S=x>>>13,M=0|o[5],C=8191&M,T=M>>>13,E=0|o[6],A=8191&E,R=E>>>13,O=0|o[7],j=8191&O,I=O>>>13,N=0|o[8],P=8191&N,B=N>>>13,D=0|o[9],F=8191&D,L=D>>>13,z=0|a[0],U=8191&z,$=z>>>13,H=0|a[1],V=8191&H,q=H>>>13,W=0|a[2],X=8191&W,K=W>>>13,Y=0|a[3],Z=8191&Y,G=Y>>>13,J=0|a[4],Q=8191&J,ee=J>>>13,te=0|a[5],re=8191&te,ne=te>>>13,ie=0|a[6],se=8191&ie,oe=ie>>>13,ae=0|a[7],le=8191&ae,ce=ae>>>13,ue=0|a[8],he=8191&ue,fe=ue>>>13,de=0|a[9],pe=8191&de,me=de>>>13;r.negative=e.negative^t.negative,r.length=19;var be=(c+(n=Math.imul(h,U))|0)+((8191&(i=(i=Math.imul(h,$))+Math.imul(f,U)|0))<<13)|0;c=((s=Math.imul(f,$))+(i>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(p,U),i=(i=Math.imul(p,$))+Math.imul(m,U)|0,s=Math.imul(m,$);var ge=(c+(n=n+Math.imul(h,V)|0)|0)+((8191&(i=(i=i+Math.imul(h,q)|0)+Math.imul(f,V)|0))<<13)|0;c=((s=s+Math.imul(f,q)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,U),i=(i=Math.imul(g,$))+Math.imul(y,U)|0,s=Math.imul(y,$),n=n+Math.imul(p,V)|0,i=(i=i+Math.imul(p,q)|0)+Math.imul(m,V)|0,s=s+Math.imul(m,q)|0;var ye=(c+(n=n+Math.imul(h,X)|0)|0)+((8191&(i=(i=i+Math.imul(h,K)|0)+Math.imul(f,X)|0))<<13)|0;c=((s=s+Math.imul(f,K)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(w,U),i=(i=Math.imul(w,$))+Math.imul(_,U)|0,s=Math.imul(_,$),n=n+Math.imul(g,V)|0,i=(i=i+Math.imul(g,q)|0)+Math.imul(y,V)|0,s=s+Math.imul(y,q)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,K)|0)+Math.imul(m,X)|0,s=s+Math.imul(m,K)|0;var ve=(c+(n=n+Math.imul(h,Z)|0)|0)+((8191&(i=(i=i+Math.imul(h,G)|0)+Math.imul(f,Z)|0))<<13)|0;c=((s=s+Math.imul(f,G)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(k,U),i=(i=Math.imul(k,$))+Math.imul(S,U)|0,s=Math.imul(S,$),n=n+Math.imul(w,V)|0,i=(i=i+Math.imul(w,q)|0)+Math.imul(_,V)|0,s=s+Math.imul(_,q)|0,n=n+Math.imul(g,X)|0,i=(i=i+Math.imul(g,K)|0)+Math.imul(y,X)|0,s=s+Math.imul(y,K)|0,n=n+Math.imul(p,Z)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(m,Z)|0,s=s+Math.imul(m,G)|0;var we=(c+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(f,Q)|0))<<13)|0;c=((s=s+Math.imul(f,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(C,U),i=(i=Math.imul(C,$))+Math.imul(T,U)|0,s=Math.imul(T,$),n=n+Math.imul(k,V)|0,i=(i=i+Math.imul(k,q)|0)+Math.imul(S,V)|0,s=s+Math.imul(S,q)|0,n=n+Math.imul(w,X)|0,i=(i=i+Math.imul(w,K)|0)+Math.imul(_,X)|0,s=s+Math.imul(_,K)|0,n=n+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,G)|0)+Math.imul(y,Z)|0,s=s+Math.imul(y,G)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(m,Q)|0,s=s+Math.imul(m,ee)|0;var _e=(c+(n=n+Math.imul(h,re)|0)|0)+((8191&(i=(i=i+Math.imul(h,ne)|0)+Math.imul(f,re)|0))<<13)|0;c=((s=s+Math.imul(f,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(A,U),i=(i=Math.imul(A,$))+Math.imul(R,U)|0,s=Math.imul(R,$),n=n+Math.imul(C,V)|0,i=(i=i+Math.imul(C,q)|0)+Math.imul(T,V)|0,s=s+Math.imul(T,q)|0,n=n+Math.imul(k,X)|0,i=(i=i+Math.imul(k,K)|0)+Math.imul(S,X)|0,s=s+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(_,Z)|0,s=s+Math.imul(_,G)|0,n=n+Math.imul(g,Q)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(y,Q)|0,s=s+Math.imul(y,ee)|0,n=n+Math.imul(p,re)|0,i=(i=i+Math.imul(p,ne)|0)+Math.imul(m,re)|0,s=s+Math.imul(m,ne)|0;var xe=(c+(n=n+Math.imul(h,se)|0)|0)+((8191&(i=(i=i+Math.imul(h,oe)|0)+Math.imul(f,se)|0))<<13)|0;c=((s=s+Math.imul(f,oe)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(j,U),i=(i=Math.imul(j,$))+Math.imul(I,U)|0,s=Math.imul(I,$),n=n+Math.imul(A,V)|0,i=(i=i+Math.imul(A,q)|0)+Math.imul(R,V)|0,s=s+Math.imul(R,q)|0,n=n+Math.imul(C,X)|0,i=(i=i+Math.imul(C,K)|0)+Math.imul(T,X)|0,s=s+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=(i=i+Math.imul(k,G)|0)+Math.imul(S,Z)|0,s=s+Math.imul(S,G)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,s=s+Math.imul(_,ee)|0,n=n+Math.imul(g,re)|0,i=(i=i+Math.imul(g,ne)|0)+Math.imul(y,re)|0,s=s+Math.imul(y,ne)|0,n=n+Math.imul(p,se)|0,i=(i=i+Math.imul(p,oe)|0)+Math.imul(m,se)|0,s=s+Math.imul(m,oe)|0;var ke=(c+(n=n+Math.imul(h,le)|0)|0)+((8191&(i=(i=i+Math.imul(h,ce)|0)+Math.imul(f,le)|0))<<13)|0;c=((s=s+Math.imul(f,ce)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(P,U),i=(i=Math.imul(P,$))+Math.imul(B,U)|0,s=Math.imul(B,$),n=n+Math.imul(j,V)|0,i=(i=i+Math.imul(j,q)|0)+Math.imul(I,V)|0,s=s+Math.imul(I,q)|0,n=n+Math.imul(A,X)|0,i=(i=i+Math.imul(A,K)|0)+Math.imul(R,X)|0,s=s+Math.imul(R,K)|0,n=n+Math.imul(C,Z)|0,i=(i=i+Math.imul(C,G)|0)+Math.imul(T,Z)|0,s=s+Math.imul(T,G)|0,n=n+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(S,Q)|0,s=s+Math.imul(S,ee)|0,n=n+Math.imul(w,re)|0,i=(i=i+Math.imul(w,ne)|0)+Math.imul(_,re)|0,s=s+Math.imul(_,ne)|0,n=n+Math.imul(g,se)|0,i=(i=i+Math.imul(g,oe)|0)+Math.imul(y,se)|0,s=s+Math.imul(y,oe)|0,n=n+Math.imul(p,le)|0,i=(i=i+Math.imul(p,ce)|0)+Math.imul(m,le)|0,s=s+Math.imul(m,ce)|0;var Se=(c+(n=n+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,fe)|0)+Math.imul(f,he)|0))<<13)|0;c=((s=s+Math.imul(f,fe)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(F,U),i=(i=Math.imul(F,$))+Math.imul(L,U)|0,s=Math.imul(L,$),n=n+Math.imul(P,V)|0,i=(i=i+Math.imul(P,q)|0)+Math.imul(B,V)|0,s=s+Math.imul(B,q)|0,n=n+Math.imul(j,X)|0,i=(i=i+Math.imul(j,K)|0)+Math.imul(I,X)|0,s=s+Math.imul(I,K)|0,n=n+Math.imul(A,Z)|0,i=(i=i+Math.imul(A,G)|0)+Math.imul(R,Z)|0,s=s+Math.imul(R,G)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,ee)|0)+Math.imul(T,Q)|0,s=s+Math.imul(T,ee)|0,n=n+Math.imul(k,re)|0,i=(i=i+Math.imul(k,ne)|0)+Math.imul(S,re)|0,s=s+Math.imul(S,ne)|0,n=n+Math.imul(w,se)|0,i=(i=i+Math.imul(w,oe)|0)+Math.imul(_,se)|0,s=s+Math.imul(_,oe)|0,n=n+Math.imul(g,le)|0,i=(i=i+Math.imul(g,ce)|0)+Math.imul(y,le)|0,s=s+Math.imul(y,ce)|0,n=n+Math.imul(p,he)|0,i=(i=i+Math.imul(p,fe)|0)+Math.imul(m,he)|0,s=s+Math.imul(m,fe)|0;var Me=(c+(n=n+Math.imul(h,pe)|0)|0)+((8191&(i=(i=i+Math.imul(h,me)|0)+Math.imul(f,pe)|0))<<13)|0;c=((s=s+Math.imul(f,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(F,V),i=(i=Math.imul(F,q))+Math.imul(L,V)|0,s=Math.imul(L,q),n=n+Math.imul(P,X)|0,i=(i=i+Math.imul(P,K)|0)+Math.imul(B,X)|0,s=s+Math.imul(B,K)|0,n=n+Math.imul(j,Z)|0,i=(i=i+Math.imul(j,G)|0)+Math.imul(I,Z)|0,s=s+Math.imul(I,G)|0,n=n+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(R,Q)|0,s=s+Math.imul(R,ee)|0,n=n+Math.imul(C,re)|0,i=(i=i+Math.imul(C,ne)|0)+Math.imul(T,re)|0,s=s+Math.imul(T,ne)|0,n=n+Math.imul(k,se)|0,i=(i=i+Math.imul(k,oe)|0)+Math.imul(S,se)|0,s=s+Math.imul(S,oe)|0,n=n+Math.imul(w,le)|0,i=(i=i+Math.imul(w,ce)|0)+Math.imul(_,le)|0,s=s+Math.imul(_,ce)|0,n=n+Math.imul(g,he)|0,i=(i=i+Math.imul(g,fe)|0)+Math.imul(y,he)|0,s=s+Math.imul(y,fe)|0;var Ce=(c+(n=n+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;c=((s=s+Math.imul(m,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(F,X),i=(i=Math.imul(F,K))+Math.imul(L,X)|0,s=Math.imul(L,K),n=n+Math.imul(P,Z)|0,i=(i=i+Math.imul(P,G)|0)+Math.imul(B,Z)|0,s=s+Math.imul(B,G)|0,n=n+Math.imul(j,Q)|0,i=(i=i+Math.imul(j,ee)|0)+Math.imul(I,Q)|0,s=s+Math.imul(I,ee)|0,n=n+Math.imul(A,re)|0,i=(i=i+Math.imul(A,ne)|0)+Math.imul(R,re)|0,s=s+Math.imul(R,ne)|0,n=n+Math.imul(C,se)|0,i=(i=i+Math.imul(C,oe)|0)+Math.imul(T,se)|0,s=s+Math.imul(T,oe)|0,n=n+Math.imul(k,le)|0,i=(i=i+Math.imul(k,ce)|0)+Math.imul(S,le)|0,s=s+Math.imul(S,ce)|0,n=n+Math.imul(w,he)|0,i=(i=i+Math.imul(w,fe)|0)+Math.imul(_,he)|0,s=s+Math.imul(_,fe)|0;var Te=(c+(n=n+Math.imul(g,pe)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(y,pe)|0))<<13)|0;c=((s=s+Math.imul(y,me)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(F,Z),i=(i=Math.imul(F,G))+Math.imul(L,Z)|0,s=Math.imul(L,G),n=n+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(B,Q)|0,s=s+Math.imul(B,ee)|0,n=n+Math.imul(j,re)|0,i=(i=i+Math.imul(j,ne)|0)+Math.imul(I,re)|0,s=s+Math.imul(I,ne)|0,n=n+Math.imul(A,se)|0,i=(i=i+Math.imul(A,oe)|0)+Math.imul(R,se)|0,s=s+Math.imul(R,oe)|0,n=n+Math.imul(C,le)|0,i=(i=i+Math.imul(C,ce)|0)+Math.imul(T,le)|0,s=s+Math.imul(T,ce)|0,n=n+Math.imul(k,he)|0,i=(i=i+Math.imul(k,fe)|0)+Math.imul(S,he)|0,s=s+Math.imul(S,fe)|0;var Ee=(c+(n=n+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,me)|0)+Math.imul(_,pe)|0))<<13)|0;c=((s=s+Math.imul(_,me)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(F,Q),i=(i=Math.imul(F,ee))+Math.imul(L,Q)|0,s=Math.imul(L,ee),n=n+Math.imul(P,re)|0,i=(i=i+Math.imul(P,ne)|0)+Math.imul(B,re)|0,s=s+Math.imul(B,ne)|0,n=n+Math.imul(j,se)|0,i=(i=i+Math.imul(j,oe)|0)+Math.imul(I,se)|0,s=s+Math.imul(I,oe)|0,n=n+Math.imul(A,le)|0,i=(i=i+Math.imul(A,ce)|0)+Math.imul(R,le)|0,s=s+Math.imul(R,ce)|0,n=n+Math.imul(C,he)|0,i=(i=i+Math.imul(C,fe)|0)+Math.imul(T,he)|0,s=s+Math.imul(T,fe)|0;var Ae=(c+(n=n+Math.imul(k,pe)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(S,pe)|0))<<13)|0;c=((s=s+Math.imul(S,me)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(F,re),i=(i=Math.imul(F,ne))+Math.imul(L,re)|0,s=Math.imul(L,ne),n=n+Math.imul(P,se)|0,i=(i=i+Math.imul(P,oe)|0)+Math.imul(B,se)|0,s=s+Math.imul(B,oe)|0,n=n+Math.imul(j,le)|0,i=(i=i+Math.imul(j,ce)|0)+Math.imul(I,le)|0,s=s+Math.imul(I,ce)|0,n=n+Math.imul(A,he)|0,i=(i=i+Math.imul(A,fe)|0)+Math.imul(R,he)|0,s=s+Math.imul(R,fe)|0;var Re=(c+(n=n+Math.imul(C,pe)|0)|0)+((8191&(i=(i=i+Math.imul(C,me)|0)+Math.imul(T,pe)|0))<<13)|0;c=((s=s+Math.imul(T,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(F,se),i=(i=Math.imul(F,oe))+Math.imul(L,se)|0,s=Math.imul(L,oe),n=n+Math.imul(P,le)|0,i=(i=i+Math.imul(P,ce)|0)+Math.imul(B,le)|0,s=s+Math.imul(B,ce)|0,n=n+Math.imul(j,he)|0,i=(i=i+Math.imul(j,fe)|0)+Math.imul(I,he)|0,s=s+Math.imul(I,fe)|0;var Oe=(c+(n=n+Math.imul(A,pe)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(R,pe)|0))<<13)|0;c=((s=s+Math.imul(R,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(F,le),i=(i=Math.imul(F,ce))+Math.imul(L,le)|0,s=Math.imul(L,ce),n=n+Math.imul(P,he)|0,i=(i=i+Math.imul(P,fe)|0)+Math.imul(B,he)|0,s=s+Math.imul(B,fe)|0;var je=(c+(n=n+Math.imul(j,pe)|0)|0)+((8191&(i=(i=i+Math.imul(j,me)|0)+Math.imul(I,pe)|0))<<13)|0;c=((s=s+Math.imul(I,me)|0)+(i>>>13)|0)+(je>>>26)|0,je&=67108863,n=Math.imul(F,he),i=(i=Math.imul(F,fe))+Math.imul(L,he)|0,s=Math.imul(L,fe);var Ie=(c+(n=n+Math.imul(P,pe)|0)|0)+((8191&(i=(i=i+Math.imul(P,me)|0)+Math.imul(B,pe)|0))<<13)|0;c=((s=s+Math.imul(B,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863;var Ne=(c+(n=Math.imul(F,pe))|0)+((8191&(i=(i=Math.imul(F,me))+Math.imul(L,pe)|0))<<13)|0;return c=((s=Math.imul(L,me))+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,l[0]=be,l[1]=ge,l[2]=ye,l[3]=ve,l[4]=we,l[5]=_e,l[6]=xe,l[7]=ke,l[8]=Se,l[9]=Me,l[10]=Ce,l[11]=Te,l[12]=Ee,l[13]=Ae,l[14]=Re,l[15]=Oe,l[16]=je,l[17]=Ie,l[18]=Ne,0!==c&&(l[19]=c,r.length++),r};function g(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,s=0;s<r.length-1;s++){var o=i;i=0;for(var a=67108863&n,l=Math.min(s,t.length-1),c=Math.max(0,s-e.length+1);c<=l;c++){var u=s-c,h=(0|e.words[u])*(0|t.words[c]),f=67108863&h;a=67108863&(f=f+a|0),i+=(o=(o=o+(h/67108864|0)|0)+(f>>>26)|0)>>>26,o&=67108863}r.words[s]=a,n=o,o=i}return 0!==n?r.words[s]=n:r.length--,r._strip()}function y(e,t,r){return g(e,t,r)}function v(e,t){this.x=e,this.y=t}Math.imul||(b=m),s.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?b(this,e,t):r<63?m(this,e,t):r<1024?g(this,e,t):y(this,e,t)},v.prototype.makeRBT=function(e){for(var t=new Array(e),r=s.prototype._countBits(e)-1,n=0;n<e;n++)t[n]=this.revBin(n,r,e);return t},v.prototype.revBin=function(e,t,r){if(0===e||e===r-1)return e;for(var n=0,i=0;i<t;i++)n|=(1&e)<<t-i-1,e>>=1;return n},v.prototype.permute=function(e,t,r,n,i,s){for(var o=0;o<s;o++)n[o]=t[e[o]],i[o]=r[e[o]]},v.prototype.transform=function(e,t,r,n,i,s){this.permute(s,e,t,r,n,i);for(var o=1;o<i;o<<=1)for(var a=o<<1,l=Math.cos(2*Math.PI/a),c=Math.sin(2*Math.PI/a),u=0;u<i;u+=a)for(var h=l,f=c,d=0;d<o;d++){var p=r[u+d],m=n[u+d],b=r[u+d+o],g=n[u+d+o],y=h*b-f*g;g=h*g+f*b,b=y,r[u+d]=p+b,n[u+d]=m+g,r[u+d+o]=p-b,n[u+d+o]=m-g,d!==a&&(y=l*h-c*f,f=l*f+c*h,h=y)}},v.prototype.guessLen13b=function(e,t){var r=1|Math.max(t,e),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},v.prototype.conjugate=function(e,t,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=e[n];e[n]=e[r-n-1],e[r-n-1]=i,i=t[n],t[n]=-t[r-n-1],t[r-n-1]=-i}},v.prototype.normalize13b=function(e,t){for(var r=0,n=0;n<t/2;n++){var i=8192*Math.round(e[2*n+1]/t)+Math.round(e[2*n]/t)+r;e[n]=67108863&i,r=i<67108864?0:i/67108864|0}return e},v.prototype.convert13b=function(e,t,r,i){for(var s=0,o=0;o<t;o++)s+=0|e[o],r[2*o]=8191&s,s>>>=13,r[2*o+1]=8191&s,s>>>=13;for(o=2*t;o<i;++o)r[o]=0;n(0===s),n(0==(-8192&s))},v.prototype.stub=function(e){for(var t=new Array(e),r=0;r<e;r++)t[r]=0;return t},v.prototype.mulp=function(e,t,r){var n=2*this.guessLen13b(e.length,t.length),i=this.makeRBT(n),s=this.stub(n),o=new Array(n),a=new Array(n),l=new Array(n),c=new Array(n),u=new Array(n),h=new Array(n),f=r.words;f.length=n,this.convert13b(e.words,e.length,o,n),this.convert13b(t.words,t.length,c,n),this.transform(o,s,a,l,n,i),this.transform(c,s,u,h,n,i);for(var d=0;d<n;d++){var p=a[d]*u[d]-l[d]*h[d];l[d]=a[d]*h[d]+l[d]*u[d],a[d]=p}return this.conjugate(a,l,n),this.transform(a,l,f,s,n,i),this.conjugate(f,s,n),this.normalize13b(f,n),r.negative=e.negative^t.negative,r.length=e.length+t.length,r._strip()},s.prototype.mul=function(e){var t=new s(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},s.prototype.mulf=function(e){var t=new s(null);return t.words=new Array(this.length+e.length),y(this,e,t)},s.prototype.imul=function(e){return this.clone().mulTo(e,this)},s.prototype.imuln=function(e){var t=e<0;t&&(e=-e),n(\"number\"==typeof e),n(e<67108864);for(var r=0,i=0;i<this.length;i++){var s=(0|this.words[i])*e,o=(67108863&s)+(67108863&r);r>>=26,r+=s/67108864|0,r+=o>>>26,this.words[i]=67108863&o}return 0!==r&&(this.words[i]=r,this.length++),t?this.ineg():this},s.prototype.muln=function(e){return this.clone().imuln(e)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++){var n=r/26|0,i=r%26;t[r]=e.words[n]>>>i&1}return t}(e);if(0===t.length)return new s(1);for(var r=this,n=0;n<t.length&&0===t[n];n++,r=r.sqr());if(++n<t.length)for(var i=r.sqr();n<t.length;n++,i=i.sqr())0!==t[n]&&(r=r.mul(i));return r},s.prototype.iushln=function(e){n(\"number\"==typeof e&&e>=0);var t,r=e%26,i=(e-r)/26,s=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t<this.length;t++){var a=this.words[t]&s,l=(0|this.words[t])-a<<r;this.words[t]=l|o,o=a>>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},s.prototype.ishln=function(e){return n(0===this.negative),this.iushln(e)},s.prototype.iushrn=function(e,t,r){var i;n(\"number\"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var s=e%26,o=Math.min((e-s)/26,this.length),a=67108863^67108863>>>s<<s,l=r;if(i-=o,i=Math.max(0,i),l){for(var c=0;c<o;c++)l.words[c]=this.words[c];l.length=o}if(0===o);else if(this.length>o)for(this.length-=o,c=0;c<this.length;c++)this.words[c]=this.words[c+o];else this.words[0]=0,this.length=1;var u=0;for(c=this.length-1;c>=0&&(0!==u||c>=i);c--){var h=0|this.words[c];this.words[c]=u<<26-s|h>>>s,u=h&a}return l&&0!==u&&(l.words[l.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},s.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},s.prototype.shln=function(e){return this.clone().ishln(e)},s.prototype.ushln=function(e){return this.clone().iushln(e)},s.prototype.shrn=function(e){return this.clone().ishrn(e)},s.prototype.ushrn=function(e){return this.clone().iushrn(e)},s.prototype.testn=function(e){n(\"number\"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,i=1<<t;return!(this.length<=r)&&!!(this.words[r]&i)},s.prototype.imaskn=function(e){n(\"number\"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,\"imaskn works only with positive numbers\"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this._strip()},s.prototype.maskn=function(e){return this.clone().imaskn(e)},s.prototype.iaddn=function(e){return n(\"number\"==typeof e),n(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},s.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},s.prototype.isubn=function(e){if(n(\"number\"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},s.prototype.addn=function(e){return this.clone().iaddn(e)},s.prototype.subn=function(e){return this.clone().isubn(e)},s.prototype.iabs=function(){return this.negative=0,this},s.prototype.abs=function(){return this.clone().iabs()},s.prototype._ishlnsubmul=function(e,t,r){var i,s,o=e.length+r;this._expand(o);var a=0;for(i=0;i<e.length;i++){s=(0|this.words[i+r])+a;var l=(0|e.words[i])*t;a=((s-=67108863&l)>>26)-(l/67108864|0),this.words[i+r]=67108863&s}for(;i<this.length-r;i++)a=(s=(0|this.words[i+r])+a)>>26,this.words[i+r]=67108863&s;if(0===a)return this._strip();for(n(-1===a),a=0,i=0;i<this.length;i++)a=(s=-(0|this.words[i])+a)>>26,this.words[i]=67108863&s;return this.negative=1,this._strip()},s.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var a,l=n.length-i.length;if(\"mod\"!==t){(a=new s(null)).length=l+1,a.words=new Array(a.length);for(var c=0;c<a.length;c++)a.words[c]=0}var u=n.clone()._ishlnsubmul(i,1,l);0===u.negative&&(n=u,a&&(a.words[l]=1));for(var h=l-1;h>=0;h--){var f=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(f=Math.min(f/o|0,67108863),n._ishlnsubmul(i,f,h);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);a&&(a.words[h]=f)}return a&&a._strip(),n._strip(),\"div\"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},s.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),\"mod\"!==t&&(i=a.div.neg()),\"div\"!==t&&(o=a.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:i,mod:o}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),\"mod\"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),\"div\"!==t&&(o=a.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:a.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new s(0),mod:this}:1===e.length?\"div\"===t?{div:this.divn(e.words[0]),mod:null}:\"mod\"===t?{div:null,mod:new s(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new s(this.modrn(e.words[0]))}:this._wordDiv(e,t);var i,o,a},s.prototype.div=function(e){return this.divmod(e,\"div\",!1).div},s.prototype.mod=function(e){return this.divmod(e,\"mod\",!1).mod},s.prototype.umod=function(e){return this.divmod(e,\"mod\",!0).mod},s.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),i=e.andln(1),s=r.cmp(n);return s<0||1===i&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},s.prototype.modrn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=(1<<26)%e,i=0,s=this.length-1;s>=0;s--)i=(r*i+(0|this.words[s]))%e;return t?-i:i},s.prototype.modn=function(e){return this.modrn(e)},s.prototype.idivn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var s=(0|this.words[i])+67108864*r;this.words[i]=s/e|0,r=s%e}return this._strip(),t?this.ineg():this},s.prototype.divn=function(e){return this.clone().idivn(e)},s.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new s(1),o=new s(0),a=new s(0),l=new s(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var u=r.clone(),h=t.clone();!t.isZero();){for(var f=0,d=1;0==(t.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(u),o.isub(h)),i.iushrn(1),o.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(a.isOdd()||l.isOdd())&&(a.iadd(u),l.isub(h)),a.iushrn(1),l.iushrn(1);t.cmp(r)>=0?(t.isub(r),i.isub(a),o.isub(l)):(r.isub(t),a.isub(i),l.isub(o))}return{a:a,b:l,gcd:r.iushln(c)}},s.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,o=new s(1),a=new s(0),l=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,u=1;0==(t.words[0]&u)&&c<26;++c,u<<=1);if(c>0)for(t.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var h=0,f=1;0==(r.words[0]&f)&&h<26;++h,f<<=1);if(h>0)for(r.iushrn(h);h-- >0;)a.isOdd()&&a.iadd(l),a.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(a)):(r.isub(t),a.isub(o))}return(i=0===t.cmpn(1)?o:a).cmpn(0)<0&&i.iadd(e),i},s.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=t.cmp(r);if(i<0){var s=t;t=r,r=s}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},s.prototype.invm=function(e){return this.egcd(e).a.umod(e)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(e){return this.words[0]&e},s.prototype.bincn=function(e){n(\"number\"==typeof e);var t=e%26,r=(e-t)/26,i=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var s=i,o=r;0!==s&&o<this.length;o++){var a=0|this.words[o];s=(a+=s)>>>26,a&=67108863,this.words[o]=a}return 0!==s&&(this.words[o]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,\"Number is too big\");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},s.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},s.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){n<i?t=-1:n>i&&(t=1);break}}return t},s.prototype.gtn=function(e){return 1===this.cmpn(e)},s.prototype.gt=function(e){return 1===this.cmp(e)},s.prototype.gten=function(e){return this.cmpn(e)>=0},s.prototype.gte=function(e){return this.cmp(e)>=0},s.prototype.ltn=function(e){return-1===this.cmpn(e)},s.prototype.lt=function(e){return-1===this.cmp(e)},s.prototype.lten=function(e){return this.cmpn(e)<=0},s.prototype.lte=function(e){return this.cmp(e)<=0},s.prototype.eqn=function(e){return 0===this.cmpn(e)},s.prototype.eq=function(e){return 0===this.cmp(e)},s.red=function(e){return new C(e)},s.prototype.toRed=function(e){return n(!this.red,\"Already a number in reduction context\"),n(0===this.negative,\"red works only with positives\"),e.convertTo(this)._forceRed(e)},s.prototype.fromRed=function(){return n(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},s.prototype._forceRed=function(e){return this.red=e,this},s.prototype.forceRed=function(e){return n(!this.red,\"Already a number in reduction context\"),this._forceRed(e)},s.prototype.redAdd=function(e){return n(this.red,\"redAdd works only with red numbers\"),this.red.add(this,e)},s.prototype.redIAdd=function(e){return n(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,e)},s.prototype.redSub=function(e){return n(this.red,\"redSub works only with red numbers\"),this.red.sub(this,e)},s.prototype.redISub=function(e){return n(this.red,\"redISub works only with red numbers\"),this.red.isub(this,e)},s.prototype.redShl=function(e){return n(this.red,\"redShl works only with red numbers\"),this.red.shl(this,e)},s.prototype.redMul=function(e){return n(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,e),this.red.mul(this,e)},s.prototype.redIMul=function(e){return n(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,e),this.red.imul(this,e)},s.prototype.redSqr=function(){return n(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return n(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return n(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return n(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return n(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(e){return n(this.red&&!e.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,e)};var w={k256:null,p224:null,p192:null,p25519:null};function _(e,t){this.name=e,this.p=new s(t,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function x(){_.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}function k(){_.call(this,\"p224\",\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\")}function S(){_.call(this,\"p192\",\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\")}function M(){_.call(this,\"25519\",\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\")}function C(e){if(\"string\"==typeof e){var t=s._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),\"modulus must be greater than 1\"),this.m=e,this.prime=null}function T(e){C.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}_.prototype._tmp=function(){var e=new s(null);return e.words=new Array(Math.ceil(this.n/13)),e},_.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},_.prototype.split=function(e,t){e.iushrn(this.n,0,t)},_.prototype.imulK=function(e){return e.imul(this.k)},i(x,_),x.prototype.split=function(e,t){for(var r=Math.min(e.length,9),n=0;n<r;n++)t.words[n]=e.words[n];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var i=e.words[9];for(t.words[t.length++]=4194303&i,n=10;n<e.length;n++){var s=0|e.words[n];e.words[n-10]=(4194303&s)<<4|i>>>22,i=s}i>>>=22,e.words[n-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},x.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var n=0|e.words[r];t+=977*n,e.words[r]=67108863&t,t=64*n+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},i(k,_),i(S,_),i(M,_),M.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var n=19*(0|e.words[r])+t,i=67108863&n;n>>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},s._prime=function(e){if(w[e])return w[e];var t;if(\"k256\"===e)t=new x;else if(\"p224\"===e)t=new k;else if(\"p192\"===e)t=new S;else{if(\"p25519\"!==e)throw new Error(\"Unknown prime \"+e);t=new M}return w[e]=t,t},C.prototype._verify1=function(e){n(0===e.negative,\"red works only with positives\"),n(e.red,\"red works only with red numbers\")},C.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),\"red works only with positives\"),n(e.red&&e.red===t.red,\"red works only with red numbers\")},C.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(u(e,e.umod(this.m)._forceRed(this)),e)},C.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},C.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},C.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},C.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},C.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},C.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},C.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},C.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},C.prototype.isqr=function(e){return this.imul(e,e.clone())},C.prototype.sqr=function(e){return this.mul(e,e)},C.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new s(1)).iushrn(2);return this.pow(e,r)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);n(!i.isZero());var a=new s(1).toRed(this),l=a.redNeg(),c=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new s(2*u*u).toRed(this);0!==this.pow(u,c).cmp(l);)u.redIAdd(l);for(var h=this.pow(u,i),f=this.pow(e,i.addn(1).iushrn(1)),d=this.pow(e,i),p=o;0!==d.cmp(a);){for(var m=d,b=0;0!==m.cmp(a);b++)m=m.redSqr();n(b<p);var g=this.pow(h,new s(1).iushln(p-b-1));f=f.redMul(g),h=g.redSqr(),d=d.redMul(h),p=b}return f},C.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},C.prototype.pow=function(e,t){if(t.isZero())return new s(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new s(1).toRed(this),r[1]=e;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],e);var i=r[0],o=0,a=0,l=t.bitLength()%26;for(0===l&&(l=26),n=t.length-1;n>=0;n--){for(var c=t.words[n],u=l-1;u>=0;u--){var h=c>>u&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==o?(o<<=1,o|=h,(4===++a||0===n&&0===u)&&(i=this.mul(i,r[o]),a=0,o=0)):a=0}l=26}return i},C.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},C.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},s.mont=function(e){return new T(e)},i(T,C),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new s(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===t||t)},{buffer:188}],187:[function(e,t,r){\"use strict\";var n;function i(e){this.rand=e}if(t.exports=function(e){return n||(n=new i(null)),n.generate(e)},t.exports.Rand=i,i.prototype.generate=function(e){return this._rand(e)},i.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),r=0;r<t.length;r++)t[r]=this.rand.getByte();return t},\"object\"==typeof self)self.crypto&&self.crypto.getRandomValues?i.prototype._rand=function(e){var t=new Uint8Array(e);return self.crypto.getRandomValues(t),t}:self.msCrypto&&self.msCrypto.getRandomValues?i.prototype._rand=function(e){var t=new Uint8Array(e);return self.msCrypto.getRandomValues(t),t}:\"object\"==typeof window&&(i.prototype._rand=function(){throw new Error(\"Not implemented yet\")});else try{var s=e(\"crypto\");if(\"function\"!=typeof s.randomBytes)throw new Error(\"Not supported\");i.prototype._rand=function(e){return s.randomBytes(e)}}catch(e){}},{crypto:188}],188:[function(e,t,r){},{}],189:[function(e,t,r){\"use strict\";var n=e(\"safe-buffer\").Buffer;function i(e){n.isBuffer(e)||(e=n.from(e));for(var t=e.length/4|0,r=new Array(t),i=0;i<t;i++)r[i]=e.readUInt32BE(4*i);return r}function s(e){for(;0<e.length;e++)e[0]=0}function o(e,t,r,n,i){for(var s,o,a,l,c=r[0],u=r[1],h=r[2],f=r[3],d=e[0]^t[0],p=e[1]^t[1],m=e[2]^t[2],b=e[3]^t[3],g=4,y=1;y<i;y++)s=c[d>>>24]^u[p>>>16&255]^h[m>>>8&255]^f[255&b]^t[g++],o=c[p>>>24]^u[m>>>16&255]^h[b>>>8&255]^f[255&d]^t[g++],a=c[m>>>24]^u[b>>>16&255]^h[d>>>8&255]^f[255&p]^t[g++],l=c[b>>>24]^u[d>>>16&255]^h[p>>>8&255]^f[255&m]^t[g++],d=s,p=o,m=a,b=l;return s=(n[d>>>24]<<24|n[p>>>16&255]<<16|n[m>>>8&255]<<8|n[255&b])^t[g++],o=(n[p>>>24]<<24|n[m>>>16&255]<<16|n[b>>>8&255]<<8|n[255&d])^t[g++],a=(n[m>>>24]<<24|n[b>>>16&255]<<16|n[d>>>8&255]<<8|n[255&p])^t[g++],l=(n[b>>>24]<<24|n[d>>>16&255]<<16|n[p>>>8&255]<<8|n[255&m])^t[g++],[s>>>=0,o>>>=0,a>>>=0,l>>>=0]}var a=[0,1,2,4,8,16,32,64,128,27,54],l=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var r=[],n=[],i=[[],[],[],[]],s=[[],[],[],[]],o=0,a=0,l=0;l<256;++l){var c=a^a<<1^a<<2^a<<3^a<<4;c=c>>>8^255&c^99,r[o]=c,n[c]=o;var u=e[o],h=e[u],f=e[h],d=257*e[c]^16843008*c;i[0][o]=d<<24|d>>>8,i[1][o]=d<<16|d>>>16,i[2][o]=d<<8|d>>>24,i[3][o]=d,d=16843009*f^65537*h^257*u^16843008*o,s[0][c]=d<<24|d>>>8,s[1][c]=d<<16|d>>>16,s[2][c]=d<<8|d>>>24,s[3][c]=d,0===o?o=a=1:(o=u^e[e[e[f^u]]],a^=e[e[a]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:i,INV_SUB_MIX:s}}();function c(e){this._key=i(e),this._reset()}c.blockSize=16,c.keySize=32,c.prototype.blockSize=c.blockSize,c.prototype.keySize=c.keySize,c.prototype._reset=function(){for(var e=this._key,t=e.length,r=t+6,n=4*(r+1),i=[],s=0;s<t;s++)i[s]=e[s];for(s=t;s<n;s++){var o=i[s-1];s%t==0?(o=o<<8|o>>>24,o=l.SBOX[o>>>24]<<24|l.SBOX[o>>>16&255]<<16|l.SBOX[o>>>8&255]<<8|l.SBOX[255&o],o^=a[s/t|0]<<24):t>6&&s%t==4&&(o=l.SBOX[o>>>24]<<24|l.SBOX[o>>>16&255]<<16|l.SBOX[o>>>8&255]<<8|l.SBOX[255&o]),i[s]=i[s-t]^o}for(var c=[],u=0;u<n;u++){var h=n-u,f=i[h-(u%4?0:4)];c[u]=u<4||h<=4?f:l.INV_SUB_MIX[0][l.SBOX[f>>>24]]^l.INV_SUB_MIX[1][l.SBOX[f>>>16&255]]^l.INV_SUB_MIX[2][l.SBOX[f>>>8&255]]^l.INV_SUB_MIX[3][l.SBOX[255&f]]}this._nRounds=r,this._keySchedule=i,this._invKeySchedule=c},c.prototype.encryptBlockRaw=function(e){return o(e=i(e),this._keySchedule,l.SUB_MIX,l.SBOX,this._nRounds)},c.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),r=n.allocUnsafe(16);return r.writeUInt32BE(t[0],0),r.writeUInt32BE(t[1],4),r.writeUInt32BE(t[2],8),r.writeUInt32BE(t[3],12),r},c.prototype.decryptBlock=function(e){var t=(e=i(e))[1];e[1]=e[3],e[3]=t;var r=o(e,this._invKeySchedule,l.INV_SUB_MIX,l.INV_SBOX,this._nRounds),s=n.allocUnsafe(16);return s.writeUInt32BE(r[0],0),s.writeUInt32BE(r[3],4),s.writeUInt32BE(r[2],8),s.writeUInt32BE(r[1],12),s},c.prototype.scrub=function(){s(this._keySchedule),s(this._invKeySchedule),s(this._key)},t.exports.AES=c},{\"safe-buffer\":494}],190:[function(e,t,r){\"use strict\";var n=e(\"./aes\"),i=e(\"safe-buffer\").Buffer,s=e(\"cipher-base\"),o=e(\"inherits\"),a=e(\"./ghash\"),l=e(\"buffer-xor\"),c=e(\"./incr32\");function u(e,t,r,o){s.call(this);var l=i.alloc(4,0);this._cipher=new n.AES(t);var u=this._cipher.encryptBlock(l);this._ghash=new a(u),r=function(e,t,r){if(12===t.length)return e._finID=i.concat([t,i.from([0,0,0,1])]),i.concat([t,i.from([0,0,0,2])]);var n=new a(r),s=t.length,o=s%16;n.update(t),o&&(o=16-o,n.update(i.alloc(o,0))),n.update(i.alloc(8,0));var l=8*s,u=i.alloc(8);u.writeUIntBE(l,0,8),n.update(u),e._finID=n.state;var h=i.from(e._finID);return c(h),h}(this,r,u),this._prev=i.from(r),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=o,this._alen=0,this._len=0,this._mode=e,this._authTag=null,this._called=!1}o(u,s),u.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;t<16&&(t=i.alloc(t,0),this._ghash.update(t))}this._called=!0;var r=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(r),this._len+=e.length,r},u.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error(\"Unsupported state or unable to authenticate data\");var e=l(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(e,t){var r=0;e.length!==t.length&&r++;for(var n=Math.min(e.length,t.length),i=0;i<n;++i)r+=e[i]^t[i];return r}(e,this._authTag))throw new Error(\"Unsupported state or unable to authenticate data\");this._authTag=e,this._cipher.scrub()},u.prototype.getAuthTag=function(){if(this._decrypt||!i.isBuffer(this._authTag))throw new Error(\"Attempting to get auth tag in unsupported state\");return this._authTag},u.prototype.setAuthTag=function(e){if(!this._decrypt)throw new Error(\"Attempting to set auth tag in unsupported state\");this._authTag=e},u.prototype.setAAD=function(e){if(this._called)throw new Error(\"Attempting to set AAD in unsupported state\");this._ghash.update(e),this._alen+=e.length},t.exports=u},{\"./aes\":189,\"./ghash\":194,\"./incr32\":195,\"buffer-xor\":219,\"cipher-base\":221,inherits:440,\"safe-buffer\":494}],191:[function(e,t,r){\"use strict\";var n=e(\"./encrypter\"),i=e(\"./decrypter\"),s=e(\"./modes/list.json\");r.createCipher=r.Cipher=n.createCipher,r.createCipheriv=r.Cipheriv=n.createCipheriv,r.createDecipher=r.Decipher=i.createDecipher,r.createDecipheriv=r.Decipheriv=i.createDecipheriv,r.listCiphers=r.getCiphers=function(){return Object.keys(s)}},{\"./decrypter\":192,\"./encrypter\":193,\"./modes/list.json\":203}],192:[function(e,t,r){\"use strict\";var n=e(\"./authCipher\"),i=e(\"safe-buffer\").Buffer,s=e(\"./modes\"),o=e(\"./streamCipher\"),a=e(\"cipher-base\"),l=e(\"./aes\"),c=e(\"evp_bytestokey\");function u(e,t,r){a.call(this),this._cache=new h,this._last=void 0,this._cipher=new l.AES(t),this._prev=i.from(r),this._mode=e,this._autopadding=!0}function h(){this.cache=i.allocUnsafe(0)}function f(e,t,r){var a=s[e.toLowerCase()];if(!a)throw new TypeError(\"invalid suite type\");if(\"string\"==typeof r&&(r=i.from(r)),\"GCM\"!==a.mode&&r.length!==a.iv)throw new TypeError(\"invalid iv length \"+r.length);if(\"string\"==typeof t&&(t=i.from(t)),t.length!==a.key/8)throw new TypeError(\"invalid key length \"+t.length);return\"stream\"===a.type?new o(a.module,t,r,!0):\"auth\"===a.type?new n(a.module,t,r,!0):new u(a.module,t,r)}e(\"inherits\")(u,a),u.prototype._update=function(e){var t,r;this._cache.add(e);for(var n=[];t=this._cache.get(this._autopadding);)r=this._mode.decrypt(this,t),n.push(r);return i.concat(n)},u.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return function(e){var t=e[15];if(t<1||t>16)throw new Error(\"unable to decrypt data\");var r=-1;for(;++r<t;)if(e[r+(16-t)]!==t)throw new Error(\"unable to decrypt data\");if(16===t)return;return e.slice(0,16-t)}(this._mode.decrypt(this,e));if(e)throw new Error(\"data not multiple of block length\")},u.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},h.prototype.add=function(e){this.cache=i.concat([this.cache,e])},h.prototype.get=function(e){var t;if(e){if(this.cache.length>16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},h.prototype.flush=function(){if(this.cache.length)return this.cache},r.createDecipher=function(e,t){var r=s[e.toLowerCase()];if(!r)throw new TypeError(\"invalid suite type\");var n=c(t,!1,r.key,r.iv);return f(e,n.key,n.iv)},r.createDecipheriv=f},{\"./aes\":189,\"./authCipher\":190,\"./modes\":202,\"./streamCipher\":205,\"cipher-base\":221,evp_bytestokey:423,inherits:440,\"safe-buffer\":494}],193:[function(e,t,r){\"use strict\";var n=e(\"./modes\"),i=e(\"./authCipher\"),s=e(\"safe-buffer\").Buffer,o=e(\"./streamCipher\"),a=e(\"cipher-base\"),l=e(\"./aes\"),c=e(\"evp_bytestokey\");function u(e,t,r){a.call(this),this._cache=new f,this._cipher=new l.AES(t),this._prev=s.from(r),this._mode=e,this._autopadding=!0}e(\"inherits\")(u,a),u.prototype._update=function(e){var t,r;this._cache.add(e);for(var n=[];t=this._cache.get();)r=this._mode.encrypt(this,t),n.push(r);return s.concat(n)};var h=s.alloc(16,16);function f(){this.cache=s.allocUnsafe(0)}function d(e,t,r){var a=n[e.toLowerCase()];if(!a)throw new TypeError(\"invalid suite type\");if(\"string\"==typeof t&&(t=s.from(t)),t.length!==a.key/8)throw new TypeError(\"invalid key length \"+t.length);if(\"string\"==typeof r&&(r=s.from(r)),\"GCM\"!==a.mode&&r.length!==a.iv)throw new TypeError(\"invalid iv length \"+r.length);return\"stream\"===a.type?new o(a.module,t,r):\"auth\"===a.type?new i(a.module,t,r):new u(a.module,t,r)}u.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(h))throw this._cipher.scrub(),new Error(\"data not multiple of block length\")},u.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},f.prototype.add=function(e){this.cache=s.concat([this.cache,e])},f.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},f.prototype.flush=function(){for(var e=16-this.cache.length,t=s.allocUnsafe(e),r=-1;++r<e;)t.writeUInt8(e,r);return s.concat([this.cache,t])},r.createCipheriv=d,r.createCipher=function(e,t){var r=n[e.toLowerCase()];if(!r)throw new TypeError(\"invalid suite type\");var i=c(t,!1,r.key,r.iv);return d(e,i.key,i.iv)}},{\"./aes\":189,\"./authCipher\":190,\"./modes\":202,\"./streamCipher\":205,\"cipher-base\":221,evp_bytestokey:423,inherits:440,\"safe-buffer\":494}],194:[function(e,t,r){\"use strict\";var n=e(\"safe-buffer\").Buffer,i=n.alloc(16,0);function s(e){var t=n.allocUnsafe(16);return t.writeUInt32BE(e[0]>>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function o(e){this.h=e,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}o.prototype.ghash=function(e){for(var t=-1;++t<e.length;)this.state[t]^=e[t];this._multiply()},o.prototype._multiply=function(){for(var e,t,r,n=[(e=this.h).readUInt32BE(0),e.readUInt32BE(4),e.readUInt32BE(8),e.readUInt32BE(12)],i=[0,0,0,0],o=-1;++o<128;){for(0!=(this.state[~~(o/8)]&1<<7-o%8)&&(i[0]^=n[0],i[1]^=n[1],i[2]^=n[2],i[3]^=n[3]),r=0!=(1&n[3]),t=3;t>0;t--)n[t]=n[t]>>>1|(1&n[t-1])<<31;n[0]=n[0]>>>1,r&&(n[0]=n[0]^225<<24)}this.state=s(i)},o.prototype.update=function(e){var t;for(this.cache=n.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},o.prototype.final=function(e,t){return this.cache.length&&this.ghash(n.concat([this.cache,i],16)),this.ghash(s([0,e,0,t])),this.state},t.exports=o},{\"safe-buffer\":494}],195:[function(e,t,r){\"use strict\";t.exports=function(e){for(var t,r=e.length;r--;){if(255!==(t=e.readUInt8(r))){t++,e.writeUInt8(t,r);break}e.writeUInt8(0,r)}}},{}],196:[function(e,t,r){\"use strict\";var n=e(\"buffer-xor\");r.encrypt=function(e,t){var r=n(t,e._prev);return e._prev=e._cipher.encryptBlock(r),e._prev},r.decrypt=function(e,t){var r=e._prev;e._prev=t;var i=e._cipher.decryptBlock(t);return n(i,r)}},{\"buffer-xor\":219}],197:[function(e,t,r){\"use strict\";var n=e(\"safe-buffer\").Buffer,i=e(\"buffer-xor\");function s(e,t,r){var s=t.length,o=i(t,e._cache);return e._cache=e._cache.slice(s),e._prev=n.concat([e._prev,r?t:o]),o}r.encrypt=function(e,t,r){for(var i,o=n.allocUnsafe(0);t.length;){if(0===e._cache.length&&(e._cache=e._cipher.encryptBlock(e._prev),e._prev=n.allocUnsafe(0)),!(e._cache.length<=t.length)){o=n.concat([o,s(e,t,r)]);break}i=e._cache.length,o=n.concat([o,s(e,t.slice(0,i),r)]),t=t.slice(i)}return o}},{\"buffer-xor\":219,\"safe-buffer\":494}],198:[function(e,t,r){\"use strict\";var n=e(\"safe-buffer\").Buffer;function i(e,t,r){for(var n,i,o=-1,a=0;++o<8;)n=t&1<<7-o?128:0,a+=(128&(i=e._cipher.encryptBlock(e._prev)[0]^n))>>o%8,e._prev=s(e._prev,r?n:i);return a}function s(e,t){var r=e.length,i=-1,s=n.allocUnsafe(e.length);for(e=n.concat([e,n.from([t])]);++i<r;)s[i]=e[i]<<1|e[i+1]>>7;return s}r.encrypt=function(e,t,r){for(var s=t.length,o=n.allocUnsafe(s),a=-1;++a<s;)o[a]=i(e,t[a],r);return o}},{\"safe-buffer\":494}],199:[function(e,t,r){\"use strict\";var n=e(\"safe-buffer\").Buffer;function i(e,t,r){var i=e._cipher.encryptBlock(e._prev)[0]^t;return e._prev=n.concat([e._prev.slice(1),n.from([r?t:i])]),i}r.encrypt=function(e,t,r){for(var s=t.length,o=n.allocUnsafe(s),a=-1;++a<s;)o[a]=i(e,t[a],r);return o}},{\"safe-buffer\":494}],200:[function(e,t,r){\"use strict\";var n=e(\"buffer-xor\"),i=e(\"safe-buffer\").Buffer,s=e(\"../incr32\");function o(e){var t=e._cipher.encryptBlockRaw(e._prev);return s(e._prev),t}r.encrypt=function(e,t){var r=Math.ceil(t.length/16),s=e._cache.length;e._cache=i.concat([e._cache,i.allocUnsafe(16*r)]);for(var a=0;a<r;a++){var l=o(e),c=s+16*a;e._cache.writeUInt32BE(l[0],c+0),e._cache.writeUInt32BE(l[1],c+4),e._cache.writeUInt32BE(l[2],c+8),e._cache.writeUInt32BE(l[3],c+12)}var u=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),n(t,u)}},{\"../incr32\":195,\"buffer-xor\":219,\"safe-buffer\":494}],201:[function(e,t,r){\"use strict\";r.encrypt=function(e,t){return e._cipher.encryptBlock(t)},r.decrypt=function(e,t){return e._cipher.decryptBlock(t)}},{}],202:[function(e,t,r){\"use strict\";var n={ECB:e(\"./ecb\"),CBC:e(\"./cbc\"),CFB:e(\"./cfb\"),CFB8:e(\"./cfb8\"),CFB1:e(\"./cfb1\"),OFB:e(\"./ofb\"),CTR:e(\"./ctr\"),GCM:e(\"./ctr\")},i=e(\"./list.json\");for(var s in i)i[s].module=n[i[s].mode];t.exports=i},{\"./cbc\":196,\"./cfb\":197,\"./cfb1\":198,\"./cfb8\":199,\"./ctr\":200,\"./ecb\":201,\"./list.json\":203,\"./ofb\":204}],203:[function(e,t,r){t.exports={\"aes-128-ecb\":{cipher:\"AES\",key:128,iv:0,mode:\"ECB\",type:\"block\"},\"aes-192-ecb\":{cipher:\"AES\",key:192,iv:0,mode:\"ECB\",type:\"block\"},\"aes-256-ecb\":{cipher:\"AES\",key:256,iv:0,mode:\"ECB\",type:\"block\"},\"aes-128-cbc\":{cipher:\"AES\",key:128,iv:16,mode:\"CBC\",type:\"block\"},\"aes-192-cbc\":{cipher:\"AES\",key:192,iv:16,mode:\"CBC\",type:\"block\"},\"aes-256-cbc\":{cipher:\"AES\",key:256,iv:16,mode:\"CBC\",type:\"block\"},aes128:{cipher:\"AES\",key:128,iv:16,mode:\"CBC\",type:\"block\"},aes192:{cipher:\"AES\",key:192,iv:16,mode:\"CBC\",type:\"block\"},aes256:{cipher:\"AES\",key:256,iv:16,mode:\"CBC\",type:\"block\"},\"aes-128-cfb\":{cipher:\"AES\",key:128,iv:16,mode:\"CFB\",type:\"stream\"},\"aes-192-cfb\":{cipher:\"AES\",key:192,iv:16,mode:\"CFB\",type:\"stream\"},\"aes-256-cfb\":{cipher:\"AES\",key:256,iv:16,mode:\"CFB\",type:\"stream\"},\"aes-128-cfb8\":{cipher:\"AES\",key:128,iv:16,mode:\"CFB8\",type:\"stream\"},\"aes-192-cfb8\":{cipher:\"AES\",key:192,iv:16,mode:\"CFB8\",type:\"stream\"},\"aes-256-cfb8\":{cipher:\"AES\",key:256,iv:16,mode:\"CFB8\",type:\"stream\"},\"aes-128-cfb1\":{cipher:\"AES\",key:128,iv:16,mode:\"CFB1\",type:\"stream\"},\"aes-192-cfb1\":{cipher:\"AES\",key:192,iv:16,mode:\"CFB1\",type:\"stream\"},\"aes-256-cfb1\":{cipher:\"AES\",key:256,iv:16,mode:\"CFB1\",type:\"stream\"},\"aes-128-ofb\":{cipher:\"AES\",key:128,iv:16,mode:\"OFB\",type:\"stream\"},\"aes-192-ofb\":{cipher:\"AES\",key:192,iv:16,mode:\"OFB\",type:\"stream\"},\"aes-256-ofb\":{cipher:\"AES\",key:256,iv:16,mode:\"OFB\",type:\"stream\"},\"aes-128-ctr\":{cipher:\"AES\",key:128,iv:16,mode:\"CTR\",type:\"stream\"},\"aes-192-ctr\":{cipher:\"AES\",key:192,iv:16,mode:\"CTR\",type:\"stream\"},\"aes-256-ctr\":{cipher:\"AES\",key:256,iv:16,mode:\"CTR\",type:\"stream\"},\"aes-128-gcm\":{cipher:\"AES\",key:128,iv:12,mode:\"GCM\",type:\"auth\"},\"aes-192-gcm\":{cipher:\"AES\",key:192,iv:12,mode:\"GCM\",type:\"auth\"},\"aes-256-gcm\":{cipher:\"AES\",key:256,iv:12,mode:\"GCM\",type:\"auth\"}}},{}],204:[function(e,t,r){(function(t){(function(){\"use strict\";var n=e(\"buffer-xor\");function i(e){return e._prev=e._cipher.encryptBlock(e._prev),e._prev}r.encrypt=function(e,r){for(;e._cache.length<r.length;)e._cache=t.concat([e._cache,i(e)]);var s=e._cache.slice(0,r.length);return e._cache=e._cache.slice(r.length),n(r,s)}}).call(this)}).call(this,e(\"buffer\").Buffer)},{buffer:220,\"buffer-xor\":219}],205:[function(e,t,r){\"use strict\";var n=e(\"./aes\"),i=e(\"safe-buffer\").Buffer,s=e(\"cipher-base\");function o(e,t,r,o){s.call(this),this._cipher=new n.AES(t),this._prev=i.from(r),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=o,this._mode=e}e(\"inherits\")(o,s),o.prototype._update=function(e){return this._mode.encrypt(this,e,this._decrypt)},o.prototype._final=function(){this._cipher.scrub()},t.exports=o},{\"./aes\":189,\"cipher-base\":221,inherits:440,\"safe-buffer\":494}],206:[function(e,t,r){\"use strict\";var n=e(\"browserify-des\"),i=e(\"browserify-aes/browser\"),s=e(\"browserify-aes/modes\"),o=e(\"browserify-des/modes\"),a=e(\"evp_bytestokey\");function l(e,t,r){if(e=e.toLowerCase(),s[e])return i.createCipheriv(e,t,r);if(o[e])return new n({key:t,iv:r,mode:e});throw new TypeError(\"invalid suite type\")}function c(e,t,r){if(e=e.toLowerCase(),s[e])return i.createDecipheriv(e,t,r);if(o[e])return new n({key:t,iv:r,mode:e,decrypt:!0});throw new TypeError(\"invalid suite type\")}r.createCipher=r.Cipher=function(e,t){var r,n;if(e=e.toLowerCase(),s[e])r=s[e].key,n=s[e].iv;else{if(!o[e])throw new TypeError(\"invalid suite type\");r=8*o[e].key,n=o[e].iv}var i=a(t,!1,r,n);return l(e,i.key,i.iv)},r.createCipheriv=r.Cipheriv=l,r.createDecipher=r.Decipher=function(e,t){var r,n;if(e=e.toLowerCase(),s[e])r=s[e].key,n=s[e].iv;else{if(!o[e])throw new TypeError(\"invalid suite type\");r=8*o[e].key,n=o[e].iv}var i=a(t,!1,r,n);return c(e,i.key,i.iv)},r.createDecipheriv=r.Decipheriv=c,r.listCiphers=r.getCiphers=function(){return Object.keys(o).concat(i.getCiphers())}},{\"browserify-aes/browser\":191,\"browserify-aes/modes\":202,\"browserify-des\":207,\"browserify-des/modes\":208,evp_bytestokey:423}],207:[function(e,t,r){\"use strict\";var n=e(\"cipher-base\"),i=e(\"des.js\"),s=e(\"inherits\"),o=e(\"safe-buffer\").Buffer,a={\"des-ede3-cbc\":i.CBC.instantiate(i.EDE),\"des-ede3\":i.EDE,\"des-ede-cbc\":i.CBC.instantiate(i.EDE),\"des-ede\":i.EDE,\"des-cbc\":i.CBC.instantiate(i.DES),\"des-ecb\":i.DES};function l(e){n.call(this);var t,r=e.mode.toLowerCase(),i=a[r];t=e.decrypt?\"decrypt\":\"encrypt\";var s=e.key;o.isBuffer(s)||(s=o.from(s)),\"des-ede\"!==r&&\"des-ede-cbc\"!==r||(s=o.concat([s,s.slice(0,8)]));var l=e.iv;o.isBuffer(l)||(l=o.from(l)),this._des=i.create({key:s,iv:l,type:t})}a.des=a[\"des-cbc\"],a.des3=a[\"des-ede3-cbc\"],t.exports=l,s(l,n),l.prototype._update=function(e){return o.from(this._des.update(e))},l.prototype._final=function(){return o.from(this._des.final())}},{\"cipher-base\":221,\"des.js\":394,inherits:440,\"safe-buffer\":494}],208:[function(e,t,r){\"use strict\";r[\"des-ecb\"]={key:8,iv:0},r[\"des-cbc\"]=r.des={key:8,iv:8},r[\"des-ede3-cbc\"]=r.des3={key:24,iv:8},r[\"des-ede3\"]={key:24,iv:0},r[\"des-ede-cbc\"]={key:16,iv:8},r[\"des-ede\"]={key:16,iv:0}},{}],209:[function(e,t,r){(function(r){(function(){\"use strict\";var n=e(\"bn.js\"),i=e(\"randombytes\");function s(e){var t,r=e.modulus.byteLength();do{t=new n(i(r))}while(t.cmp(e.modulus)>=0||!t.umod(e.prime1)||!t.umod(e.prime2));return t}function o(e,t){var i=function(e){var t=s(e);return{blinder:t.toRed(n.mont(e.modulus)).redPow(new n(e.publicExponent)).fromRed(),unblinder:t.invm(e.modulus)}}(t),o=t.modulus.byteLength(),a=new n(e).mul(i.blinder).umod(t.modulus),l=a.toRed(n.mont(t.prime1)),c=a.toRed(n.mont(t.prime2)),u=t.coefficient,h=t.prime1,f=t.prime2,d=l.redPow(t.exponent1).fromRed(),p=c.redPow(t.exponent2).fromRed(),m=d.isub(p).imul(u).umod(h).imul(f);return p.iadd(m).imul(i.unblinder).umod(t.modulus).toArrayLike(r,\"be\",o)}o.getr=s,t.exports=o}).call(this)}).call(this,e(\"buffer\").Buffer)},{\"bn.js\":186,buffer:220,randombytes:475}],210:[function(e,t,r){\"use strict\";t.exports=e(\"./browser/algorithms.json\")},{\"./browser/algorithms.json\":211}],211:[function(e,t,r){t.exports={sha224WithRSAEncryption:{sign:\"rsa\",hash:\"sha224\",id:\"302d300d06096086480165030402040500041c\"},\"RSA-SHA224\":{sign:\"ecdsa/rsa\",hash:\"sha224\",id:\"302d300d06096086480165030402040500041c\"},sha256WithRSAEncryption:{sign:\"rsa\",hash:\"sha256\",id:\"3031300d060960864801650304020105000420\"},\"RSA-SHA256\":{sign:\"ecdsa/rsa\",hash:\"sha256\",id:\"3031300d060960864801650304020105000420\"},sha384WithRSAEncryption:{sign:\"rsa\",hash:\"sha384\",id:\"3041300d060960864801650304020205000430\"},\"RSA-SHA384\":{sign:\"ecdsa/rsa\",hash:\"sha384\",id:\"3041300d060960864801650304020205000430\"},sha512WithRSAEncryption:{sign:\"rsa\",hash:\"sha512\",id:\"3051300d060960864801650304020305000440\"},\"RSA-SHA512\":{sign:\"ecdsa/rsa\",hash:\"sha512\",id:\"3051300d060960864801650304020305000440\"},\"RSA-SHA1\":{sign:\"rsa\",hash:\"sha1\",id:\"3021300906052b0e03021a05000414\"},\"ecdsa-with-SHA1\":{sign:\"ecdsa\",hash:\"sha1\",id:\"\"},sha256:{sign:\"ecdsa\",hash:\"sha256\",id:\"\"},sha224:{sign:\"ecdsa\",hash:\"sha224\",id:\"\"},sha384:{sign:\"ecdsa\",hash:\"sha384\",id:\"\"},sha512:{sign:\"ecdsa\",hash:\"sha512\",id:\"\"},\"DSA-SHA\":{sign:\"dsa\",hash:\"sha1\",id:\"\"},\"DSA-SHA1\":{sign:\"dsa\",hash:\"sha1\",id:\"\"},DSA:{sign:\"dsa\",hash:\"sha1\",id:\"\"},\"DSA-WITH-SHA224\":{sign:\"dsa\",hash:\"sha224\",id:\"\"},\"DSA-SHA224\":{sign:\"dsa\",hash:\"sha224\",id:\"\"},\"DSA-WITH-SHA256\":{sign:\"dsa\",hash:\"sha256\",id:\"\"},\"DSA-SHA256\":{sign:\"dsa\",hash:\"sha256\",id:\"\"},\"DSA-WITH-SHA384\":{sign:\"dsa\",hash:\"sha384\",id:\"\"},\"DSA-SHA384\":{sign:\"dsa\",hash:\"sha384\",id:\"\"},\"DSA-WITH-SHA512\":{sign:\"dsa\",hash:\"sha512\",id:\"\"},\"DSA-SHA512\":{sign:\"dsa\",hash:\"sha512\",id:\"\"},\"DSA-RIPEMD160\":{sign:\"dsa\",hash:\"rmd160\",id:\"\"},ripemd160WithRSA:{sign:\"rsa\",hash:\"rmd160\",id:\"3021300906052b2403020105000414\"},\"RSA-RIPEMD160\":{sign:\"rsa\",hash:\"rmd160\",id:\"3021300906052b2403020105000414\"},md5WithRSAEncryption:{sign:\"rsa\",hash:\"md5\",id:\"3020300c06082a864886f70d020505000410\"},\"RSA-MD5\":{sign:\"rsa\",hash:\"md5\",id:\"3020300c06082a864886f70d020505000410\"}}},{}],212:[function(e,t,r){t.exports={\"1.3.132.0.10\":\"secp256k1\",\"1.3.132.0.33\":\"p224\",\"1.2.840.10045.3.1.1\":\"p192\",\"1.2.840.10045.3.1.7\":\"p256\",\"1.3.132.0.34\":\"p384\",\"1.3.132.0.35\":\"p521\"}},{}],213:[function(e,t,r){\"use strict\";var n=e(\"safe-buffer\").Buffer,i=e(\"create-hash\"),s=e(\"readable-stream\"),o=e(\"inherits\"),a=e(\"./sign\"),l=e(\"./verify\"),c=e(\"./algorithms.json\");function u(e){s.Writable.call(this);var t=c[e];if(!t)throw new Error(\"Unknown message digest\");this._hashType=t.hash,this._hash=i(t.hash),this._tag=t.id,this._signType=t.sign}function h(e){s.Writable.call(this);var t=c[e];if(!t)throw new Error(\"Unknown message digest\");this._hash=i(t.hash),this._tag=t.id,this._signType=t.sign}function f(e){return new u(e)}function d(e){return new h(e)}Object.keys(c).forEach((function(e){c[e].id=n.from(c[e].id,\"hex\"),c[e.toLowerCase()]=c[e]})),o(u,s.Writable),u.prototype._write=function(e,t,r){this._hash.update(e),r()},u.prototype.update=function(e,t){return\"string\"==typeof e&&(e=n.from(e,t)),this._hash.update(e),this},u.prototype.sign=function(e,t){this.end();var r=this._hash.digest(),n=a(r,e,this._hashType,this._signType,this._tag);return t?n.toString(t):n},o(h,s.Writable),h.prototype._write=function(e,t,r){this._hash.update(e),r()},h.prototype.update=function(e,t){return\"string\"==typeof e&&(e=n.from(e,t)),this._hash.update(e),this},h.prototype.verify=function(e,t,r){\"string\"==typeof t&&(t=n.from(t,r)),this.end();var i=this._hash.digest();return l(t,i,e,this._signType,this._tag)},t.exports={Sign:f,Verify:d,createSign:f,createVerify:d}},{\"./algorithms.json\":211,\"./sign\":214,\"./verify\":215,\"create-hash\":386,inherits:440,\"readable-stream\":491,\"safe-buffer\":494}],214:[function(e,t,r){\"use strict\";var n=e(\"safe-buffer\").Buffer,i=e(\"create-hmac\"),s=e(\"browserify-rsa\"),o=e(\"elliptic\").ec,a=e(\"bn.js\"),l=e(\"parse-asn1\"),c=e(\"./curves.json\");function u(e,t,r,s){if((e=n.from(e.toArray())).length<t.byteLength()){var o=n.alloc(t.byteLength()-e.length);e=n.concat([o,e])}var a=r.length,l=function(e,t){e=(e=h(e,t)).mod(t);var r=n.from(e.toArray());if(r.length<t.byteLength()){var i=n.alloc(t.byteLength()-r.length);r=n.concat([i,r])}return r}(r,t),c=n.alloc(a);c.fill(1);var u=n.alloc(a);return u=i(s,u).update(c).update(n.from([0])).update(e).update(l).digest(),c=i(s,u).update(c).digest(),{k:u=i(s,u).update(c).update(n.from([1])).update(e).update(l).digest(),v:c=i(s,u).update(c).digest()}}function h(e,t){var r=new a(e),n=(e.length<<3)-t.bitLength();return n>0&&r.ishrn(n),r}function f(e,t,r){var s,o;do{for(s=n.alloc(0);8*s.length<e.bitLength();)t.v=i(r,t.k).update(t.v).digest(),s=n.concat([s,t.v]);o=h(s,e),t.k=i(r,t.k).update(t.v).update(n.from([0])).digest(),t.v=i(r,t.k).update(t.v).digest()}while(-1!==o.cmp(e));return o}function d(e,t,r,n){return e.toRed(a.mont(r)).redPow(t).fromRed().mod(n)}t.exports=function(e,t,r,i,p){var m=l(t);if(m.curve){if(\"ecdsa\"!==i&&\"ecdsa/rsa\"!==i)throw new Error(\"wrong private key type\");return function(e,t){var r=c[t.curve.join(\".\")];if(!r)throw new Error(\"unknown curve \"+t.curve.join(\".\"));var i=new o(r).keyFromPrivate(t.privateKey).sign(e);return n.from(i.toDER())}(e,m)}if(\"dsa\"===m.type){if(\"dsa\"!==i)throw new Error(\"wrong private key type\");return function(e,t,r){var i,s=t.params.priv_key,o=t.params.p,l=t.params.q,c=t.params.g,p=new a(0),m=h(e,l).mod(l),b=!1,g=u(s,l,e,r);for(;!1===b;)i=f(l,g,r),p=d(c,i,o,l),0===(b=i.invm(l).imul(m.add(s.mul(p))).mod(l)).cmpn(0)&&(b=!1,p=new a(0));return function(e,t){e=e.toArray(),t=t.toArray(),128&e[0]&&(e=[0].concat(e));128&t[0]&&(t=[0].concat(t));var r=[48,e.length+t.length+4,2,e.length];return r=r.concat(e,[2,t.length],t),n.from(r)}(p,b)}(e,m,r)}if(\"rsa\"!==i&&\"ecdsa/rsa\"!==i)throw new Error(\"wrong private key type\");e=n.concat([p,e]);for(var b=m.modulus.byteLength(),g=[0,1];e.length+g.length+1<b;)g.push(255);g.push(0);for(var y=-1;++y<e.length;)g.push(e[y]);return s(g,m)},t.exports.getKey=u,t.exports.makeKey=f},{\"./curves.json\":212,\"bn.js\":186,\"browserify-rsa\":209,\"create-hmac\":388,elliptic:405,\"parse-asn1\":459,\"safe-buffer\":494}],215:[function(e,t,r){\"use strict\";var n=e(\"safe-buffer\").Buffer,i=e(\"bn.js\"),s=e(\"elliptic\").ec,o=e(\"parse-asn1\"),a=e(\"./curves.json\");function l(e,t){if(e.cmpn(0)<=0)throw new Error(\"invalid sig\");if(e.cmp(t)>=t)throw new Error(\"invalid sig\")}t.exports=function(e,t,r,c,u){var h=o(r);if(\"ec\"===h.type){if(\"ecdsa\"!==c&&\"ecdsa/rsa\"!==c)throw new Error(\"wrong public key type\");return function(e,t,r){var n=a[r.data.algorithm.curve.join(\".\")];if(!n)throw new Error(\"unknown curve \"+r.data.algorithm.curve.join(\".\"));var i=new s(n),o=r.data.subjectPrivateKey.data;return i.verify(t,e,o)}(e,t,h)}if(\"dsa\"===h.type){if(\"dsa\"!==c)throw new Error(\"wrong public key type\");return function(e,t,r){var n=r.data.p,s=r.data.q,a=r.data.g,c=r.data.pub_key,u=o.signature.decode(e,\"der\"),h=u.s,f=u.r;l(h,s),l(f,s);var d=i.mont(n),p=h.invm(s);return 0===a.toRed(d).redPow(new i(t).mul(p).mod(s)).fromRed().mul(c.toRed(d).redPow(f.mul(p).mod(s)).fromRed()).mod(n).mod(s).cmp(f)}(e,t,h)}if(\"rsa\"!==c&&\"ecdsa/rsa\"!==c)throw new Error(\"wrong public key type\");t=n.concat([u,t]);for(var f=h.modulus.byteLength(),d=[1],p=0;t.length+d.length+2<f;)d.push(255),p++;d.push(0);for(var m=-1;++m<t.length;)d.push(t[m]);d=n.from(d);var b=i.mont(h.modulus);e=(e=new i(e).toRed(b)).redPow(new i(h.publicExponent)),e=n.from(e.fromRed().toArray());var g=p<8?1:0;for(f=Math.min(e.length,d.length),e.length!==d.length&&(g=1),m=-1;++m<f;)g|=e[m]^d[m];return 0===g}},{\"./curves.json\":212,\"bn.js\":186,elliptic:405,\"parse-asn1\":459,\"safe-buffer\":494}],216:[function(e,t,r){},{}],217:[function(e,t,r){\"use strict\";var n=e(\"buffer\"),i=n.Buffer;function s(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(s(n,r),r.Buffer=o),s(i,o),o.from=function(e,t,r){if(\"number\"==typeof e)throw new TypeError(\"Argument must not be a number\");return i(e,t,r)},o.alloc=function(e,t,r){if(\"number\"!=typeof e)throw new TypeError(\"Argument must be a number\");var n=i(e);return void 0!==t?\"string\"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if(\"number\"!=typeof e)throw new TypeError(\"Argument must be a number\");return i(e)},o.allocUnsafeSlow=function(e){if(\"number\"!=typeof e)throw new TypeError(\"Argument must be a number\");return n.SlowBuffer(e)}},{buffer:220}],218:[function(e,t,r){\"use strict\";var n=e(\"safe-buffer\").Buffer,i=n.isEncoding||function(e){switch((e=\"\"+e)&&e.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return!0;default:return!1}};function s(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return\"utf8\";for(var t;;)switch(e){case\"utf8\":case\"utf-8\":return\"utf8\";case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return\"utf16le\";case\"latin1\":case\"binary\":return\"latin1\";case\"base64\":case\"ascii\":case\"hex\":return e;default:if(t)return;e=(\"\"+e).toLowerCase(),t=!0}}(e);if(\"string\"!=typeof t&&(n.isEncoding===i||!i(e)))throw new Error(\"Unknown encoding: \"+e);return t||e}(e),this.encoding){case\"utf16le\":this.text=l,this.end=c,t=4;break;case\"utf8\":this.fillLast=a,t=4;break;case\"base64\":this.text=u,this.end=h,t=3;break;default:return this.write=f,void(this.end=d)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function o(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function a(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,\"\\ufffd\";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,\"\\ufffd\";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,\"\\ufffd\"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function l(e,t){if((e.length-t)%2==0){var r=e.toString(\"utf16le\",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString(\"utf16le\",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):\"\";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString(\"utf16le\",0,r)}return t}function u(e,t){var r=(e.length-t)%3;return 0===r?e.toString(\"base64\",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString(\"base64\",t,e.length-r))}function h(e){var t=e&&e.length?this.write(e):\"\";return this.lastNeed?t+this.lastChar.toString(\"base64\",0,3-this.lastNeed):t}function f(e){return e.toString(this.encoding)}function d(e){return e&&e.length?this.write(e):\"\"}r.StringDecoder=s,s.prototype.write=function(e){if(0===e.length)return\"\";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return\"\";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||\"\"},s.prototype.end=function(e){var t=e&&e.length?this.write(e):\"\";return this.lastNeed?t+\"\\ufffd\":t},s.prototype.text=function(e,t){var r=function(e,t,r){var n=t.length-1;if(n<r)return 0;var i=o(t[n]);if(i>=0)return i>0&&(e.lastNeed=i-1),i;if(--n<r||-2===i)return 0;if((i=o(t[n]))>=0)return i>0&&(e.lastNeed=i-2),i;if(--n<r||-2===i)return 0;if((i=o(t[n]))>=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString(\"utf8\",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString(\"utf8\",t,n)},s.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},{\"safe-buffer\":217}],219:[function(e,t,r){(function(e){(function(){\"use strict\";t.exports=function(t,r){for(var n=Math.min(t.length,r.length),i=new e(n),s=0;s<n;++s)i[s]=t[s]^r[s];return i}}).call(this)}).call(this,e(\"buffer\").Buffer)},{buffer:220}],220:[function(e,t,r){(function(t){(function(){\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n\"use strict\";var t=e(\"base64-js\"),n=e(\"ieee754\");r.Buffer=s,r.SlowBuffer=function(e){+e!=e&&(e=0);return s.alloc(+e)},r.INSPECT_MAX_BYTES=50;function i(e){if(e>2147483647)throw new RangeError('The value \"'+e+'\" is invalid for option \"size\"');var t=new Uint8Array(e);return t.__proto__=s.prototype,t}function s(e,t,r){if(\"number\"==typeof e){if(\"string\"==typeof t)throw new TypeError('The \"string\" argument must be of type string. Received type number');return l(e)}return o(e,t,r)}function o(e,t,r){if(\"string\"==typeof e)return function(e,t){\"string\"==typeof t&&\"\"!==t||(t=\"utf8\");if(!s.isEncoding(t))throw new TypeError(\"Unknown encoding: \"+t);var r=0|h(e,t),n=i(r),o=n.write(e,t);o!==r&&(n=n.slice(0,o));return n}(e,t);if(ArrayBuffer.isView(e))return c(e);if(null==e)throw TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof e);if(F(e,ArrayBuffer)||e&&F(e.buffer,ArrayBuffer))return function(e,t,r){if(t<0||e.byteLength<t)throw new RangeError('\"offset\" is outside of buffer bounds');if(e.byteLength<t+(r||0))throw new RangeError('\"length\" is outside of buffer bounds');var n;n=void 0===t&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,t):new Uint8Array(e,t,r);return n.__proto__=s.prototype,n}(e,t,r);if(\"number\"==typeof e)throw new TypeError('The \"value\" argument must not be of type number. Received type number');var n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return s.from(n,t,r);var o=function(e){if(s.isBuffer(e)){var t=0|u(e.length),r=i(t);return 0===r.length||e.copy(r,0,0,t),r}if(void 0!==e.length)return\"number\"!=typeof e.length||L(e.length)?i(0):c(e);if(\"Buffer\"===e.type&&Array.isArray(e.data))return c(e.data)}(e);if(o)return o;if(\"undefined\"!=typeof Symbol&&null!=Symbol.toPrimitive&&\"function\"==typeof e[Symbol.toPrimitive])return s.from(e[Symbol.toPrimitive](\"string\"),t,r);throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof e)}function a(e){if(\"number\"!=typeof e)throw new TypeError('\"size\" argument must be of type number');if(e<0)throw new RangeError('The value \"'+e+'\" is invalid for option \"size\"')}function l(e){return a(e),i(e<0?0:0|u(e))}function c(e){for(var t=e.length<0?0:0|u(e.length),r=i(t),n=0;n<t;n+=1)r[n]=255&e[n];return r}function u(e){if(e>=2147483647)throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+2147483647..toString(16)+\" bytes\");return 0|e}function h(e,t){if(s.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||F(e,ArrayBuffer))return e.byteLength;if(\"string\"!=typeof e)throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(t){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":return P(e).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return B(e).length;default:if(i)return n?-1:P(e).length;t=(\"\"+t).toLowerCase(),i=!0}}function f(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(t>>>=0))return\"\";for(e||(e=\"utf8\");;)switch(e){case\"hex\":return C(this,t,r);case\"utf8\":case\"utf-8\":return k(this,t,r);case\"ascii\":return S(this,t,r);case\"latin1\":case\"binary\":return M(this,t,r);case\"base64\":return x(this,t,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return T(this,t,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+e);e=(e+\"\").toLowerCase(),n=!0}}function d(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function p(e,t,r,n,i){if(0===e.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),L(r=+r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if(\"string\"==typeof t&&(t=s.from(t,n)),s.isBuffer(t))return 0===t.length?-1:m(e,t,r,n,i);if(\"number\"==typeof t)return t&=255,\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):m(e,[t],r,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function m(e,t,r,n,i){var s,o=1,a=e.length,l=t.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(e.length<2||t.length<2)return-1;o=2,a/=2,l/=2,r/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var u=-1;for(s=r;s<a;s++)if(c(e,s)===c(t,-1===u?0:s-u)){if(-1===u&&(u=s),s-u+1===l)return u*o}else-1!==u&&(s-=s-u),u=-1}else for(r+l>a&&(r=a-l),s=r;s>=0;s--){for(var h=!0,f=0;f<l;f++)if(c(e,s+f)!==c(t,f)){h=!1;break}if(h)return s}return-1}function b(e,t,r,n){r=Number(r)||0;var i=e.length-r;n?(n=Number(n))>i&&(n=i):n=i;var s=t.length;n>s/2&&(n=s/2);for(var o=0;o<n;++o){var a=parseInt(t.substr(2*o,2),16);if(L(a))return o;e[r+o]=a}return o}function g(e,t,r,n){return D(P(t,e.length-r),e,r,n)}function y(e,t,r,n){return D(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,n)}function v(e,t,r,n){return y(e,t,r,n)}function w(e,t,r,n){return D(B(t),e,r,n)}function _(e,t,r,n){return D(function(e,t){for(var r,n,i,s=[],o=0;o<e.length&&!((t-=2)<0);++o)r=e.charCodeAt(o),n=r>>8,i=r%256,s.push(i),s.push(n);return s}(t,e.length-r),e,r,n)}function x(e,r,n){return 0===r&&n===e.length?t.fromByteArray(e):t.fromByteArray(e.slice(r,n))}function k(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i<r;){var s,o,a,l,c=e[i],u=null,h=c>239?4:c>223?3:c>191?2:1;if(i+h<=r)switch(h){case 1:c<128&&(u=c);break;case 2:128==(192&(s=e[i+1]))&&(l=(31&c)<<6|63&s)>127&&(u=l);break;case 3:s=e[i+1],o=e[i+2],128==(192&s)&&128==(192&o)&&(l=(15&c)<<12|(63&s)<<6|63&o)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:s=e[i+1],o=e[i+2],a=e[i+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&(l=(15&c)<<18|(63&s)<<12|(63&o)<<6|63&a)>65535&&l<1114112&&(u=l)}null===u?(u=65533,h=1):u>65535&&(u-=65536,n.push(u>>>10&1023|55296),u=56320|1023&u),n.push(u),i+=h}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r=\"\",n=0;for(;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=4096));return r}(n)}r.kMaxLength=2147483647,s.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()}catch(e){return!1}}(),s.TYPED_ARRAY_SUPPORT||\"undefined\"==typeof console||\"function\"!=typeof console.error||console.error(\"This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.\"),Object.defineProperty(s.prototype,\"parent\",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,\"offset\",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}}),\"undefined\"!=typeof Symbol&&null!=Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),s.poolSize=8192,s.from=function(e,t,r){return o(e,t,r)},s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,s.alloc=function(e,t,r){return function(e,t,r){return a(e),e<=0?i(e):void 0!==t?\"string\"==typeof r?i(e).fill(t,r):i(e).fill(t):i(e)}(e,t,r)},s.allocUnsafe=function(e){return l(e)},s.allocUnsafeSlow=function(e){return l(e)},s.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==s.prototype},s.compare=function(e,t){if(F(e,Uint8Array)&&(e=s.from(e,e.offset,e.byteLength)),F(t,Uint8Array)&&(t=s.from(t,t.offset,t.byteLength)),!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;for(var r=e.length,n=t.length,i=0,o=Math.min(r,n);i<o;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0},s.isEncoding=function(e){switch(String(e).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return!0;default:return!1}},s.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('\"list\" argument must be an Array of Buffers');if(0===e.length)return s.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=s.allocUnsafe(t),i=0;for(r=0;r<e.length;++r){var o=e[r];if(F(o,Uint8Array)&&(o=s.from(o)),!s.isBuffer(o))throw new TypeError('\"list\" argument must be an Array of Buffers');o.copy(n,i),i+=o.length}return n},s.byteLength=h,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError(\"Buffer size must be a multiple of 16-bits\");for(var t=0;t<e;t+=2)d(this,t,t+1);return this},s.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError(\"Buffer size must be a multiple of 32-bits\");for(var t=0;t<e;t+=4)d(this,t,t+3),d(this,t+1,t+2);return this},s.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError(\"Buffer size must be a multiple of 64-bits\");for(var t=0;t<e;t+=8)d(this,t,t+7),d(this,t+1,t+6),d(this,t+2,t+5),d(this,t+3,t+4);return this},s.prototype.toString=function(){var e=this.length;return 0===e?\"\":0===arguments.length?k(this,0,e):f.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(e){if(!s.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");return this===e||0===s.compare(this,e)},s.prototype.inspect=function(){var e=\"\",t=r.INSPECT_MAX_BYTES;return e=this.toString(\"hex\",0,t).replace(/(.{2})/g,\"$1 \").trim(),this.length>t&&(e+=\" ... \"),\"<Buffer \"+e+\">\"},s.prototype.compare=function(e,t,r,n,i){if(F(e,Uint8Array)&&(e=s.from(e,e.offset,e.byteLength)),!s.isBuffer(e))throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError(\"out of range index\");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0),l=Math.min(o,a),c=this.slice(n,i),u=e.slice(t,r),h=0;h<l;++h)if(c[h]!==u[h]){o=c[h],a=u[h];break}return o<a?-1:a<o?1:0},s.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},s.prototype.indexOf=function(e,t,r){return p(this,e,t,r,!0)},s.prototype.lastIndexOf=function(e,t,r){return p(this,e,t,r,!1)},s.prototype.write=function(e,t,r,n){if(void 0===t)n=\"utf8\",r=this.length,t=0;else if(void 0===r&&\"string\"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");t>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n=\"utf8\")):(n=r,r=void 0)}var i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");for(var s=!1;;)switch(n){case\"hex\":return b(this,e,t,r);case\"utf8\":case\"utf-8\":return g(this,e,t,r);case\"ascii\":return y(this,e,t,r);case\"latin1\":case\"binary\":return v(this,e,t,r);case\"base64\":return w(this,e,t,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return _(this,e,t,r);default:if(s)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),s=!0}},s.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};function S(e,t,r){var n=\"\";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(127&e[i]);return n}function M(e,t,r){var n=\"\";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]);return n}function C(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var i=\"\",s=t;s<r;++s)i+=N(e[s]);return i}function T(e,t,r){for(var n=e.slice(t,r),i=\"\",s=0;s<n.length;s+=2)i+=String.fromCharCode(n[s]+256*n[s+1]);return i}function E(e,t,r){if(e%1!=0||e<0)throw new RangeError(\"offset is not uint\");if(e+t>r)throw new RangeError(\"Trying to access beyond buffer length\")}function A(e,t,r,n,i,o){if(!s.isBuffer(e))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(t>i||t<o)throw new RangeError('\"value\" argument is out of bounds');if(r+n>e.length)throw new RangeError(\"Index out of range\")}function R(e,t,r,n,i,s){if(r+n>e.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function O(e,t,r,i,s){return t=+t,r>>>=0,s||R(e,0,r,4),n.write(e,t,r,i,23,4),r+4}function j(e,t,r,i,s){return t=+t,r>>>=0,s||R(e,0,r,8),n.write(e,t,r,i,52,8),r+8}s.prototype.slice=function(e,t){var r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e);var n=this.subarray(e,t);return n.__proto__=s.prototype,n},s.prototype.readUIntLE=function(e,t,r){e>>>=0,t>>>=0,r||E(e,t,this.length);for(var n=this[e],i=1,s=0;++s<t&&(i*=256);)n+=this[e+s]*i;return n},s.prototype.readUIntBE=function(e,t,r){e>>>=0,t>>>=0,r||E(e,t,this.length);for(var n=this[e+--t],i=1;t>0&&(i*=256);)n+=this[e+--t]*i;return n},s.prototype.readUInt8=function(e,t){return e>>>=0,t||E(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return e>>>=0,t||E(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return e>>>=0,t||E(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return e>>>=0,t||E(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return e>>>=0,t||E(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||E(e,t,this.length);for(var n=this[e],i=1,s=0;++s<t&&(i*=256);)n+=this[e+s]*i;return n>=(i*=128)&&(n-=Math.pow(2,8*t)),n},s.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||E(e,t,this.length);for(var n=t,i=1,s=this[e+--n];n>0&&(i*=256);)s+=this[e+--n]*i;return s>=(i*=128)&&(s-=Math.pow(2,8*t)),s},s.prototype.readInt8=function(e,t){return e>>>=0,t||E(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){e>>>=0,t||E(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(e,t){e>>>=0,t||E(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(e,t){return e>>>=0,t||E(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return e>>>=0,t||E(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return e>>>=0,t||E(e,4,this.length),n.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return e>>>=0,t||E(e,4,this.length),n.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return e>>>=0,t||E(e,8,this.length),n.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return e>>>=0,t||E(e,8,this.length),n.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t>>>=0,r>>>=0,n)||A(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,s=0;for(this[t]=255&e;++s<r&&(i*=256);)this[t+s]=e/i&255;return t+r},s.prototype.writeUIntBE=function(e,t,r,n){(e=+e,t>>>=0,r>>>=0,n)||A(this,e,t,r,Math.pow(2,8*r)-1,0);var i=r-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+r},s.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,1,255,0),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},s.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},s.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},s.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},s.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);A(this,e,t,r,i-1,-i)}var s=0,o=1,a=0;for(this[t]=255&e;++s<r&&(o*=256);)e<0&&0===a&&0!==this[t+s-1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+r},s.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);A(this,e,t,r,i-1,-i)}var s=r-1,o=1,a=0;for(this[t+s]=255&e;--s>=0&&(o*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+r},s.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},s.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},s.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},s.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||A(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},s.prototype.writeFloatLE=function(e,t,r){return O(this,e,t,!0,r)},s.prototype.writeFloatBE=function(e,t,r){return O(this,e,t,!1,r)},s.prototype.writeDoubleLE=function(e,t,r){return j(this,e,t,!0,r)},s.prototype.writeDoubleBE=function(e,t,r){return j(this,e,t,!1,r)},s.prototype.copy=function(e,t,r,n){if(!s.isBuffer(e))throw new TypeError(\"argument should be a Buffer\");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError(\"targetStart out of bounds\");if(r<0||r>=this.length)throw new RangeError(\"Index out of range\");if(n<0)throw new RangeError(\"sourceEnd out of bounds\");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var i=n-r;if(this===e&&\"function\"==typeof Uint8Array.prototype.copyWithin)this.copyWithin(t,r,n);else if(this===e&&r<t&&t<n)for(var o=i-1;o>=0;--o)e[o+t]=this[o+r];else Uint8Array.prototype.set.call(e,this.subarray(r,n),t);return i},s.prototype.fill=function(e,t,r,n){if(\"string\"==typeof e){if(\"string\"==typeof t?(n=t,t=0,r=this.length):\"string\"==typeof r&&(n=r,r=this.length),void 0!==n&&\"string\"!=typeof n)throw new TypeError(\"encoding must be a string\");if(\"string\"==typeof n&&!s.isEncoding(n))throw new TypeError(\"Unknown encoding: \"+n);if(1===e.length){var i=e.charCodeAt(0);(\"utf8\"===n&&i<128||\"latin1\"===n)&&(e=i)}}else\"number\"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError(\"Out of range index\");if(r<=t)return this;var o;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),\"number\"==typeof e)for(o=t;o<r;++o)this[o]=e;else{var a=s.isBuffer(e)?e:s.from(e,n),l=a.length;if(0===l)throw new TypeError('The value \"'+e+'\" is invalid for argument \"value\"');for(o=0;o<r-t;++o)this[o+t]=a[o%l]}return this};var I=/[^+/0-9A-Za-z-_]/g;function N(e){return e<16?\"0\"+e.toString(16):e.toString(16)}function P(e,t){var r;t=t||1/0;for(var n=e.length,i=null,s=[],o=0;o<n;++o){if((r=e.charCodeAt(o))>55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===n){(t-=3)>-1&&s.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function B(e){return t.toByteArray(function(e){if((e=(e=e.split(\"=\")[0]).trim().replace(I,\"\")).length<2)return\"\";for(;e.length%4!=0;)e+=\"=\";return e}(e))}function D(e,t,r,n){for(var i=0;i<n&&!(i+r>=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function F(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function L(e){return e!=e}}).call(this)}).call(this,e(\"buffer\").Buffer)},{\"base64-js\":185,buffer:220,ieee754:439}],221:[function(e,t,r){\"use strict\";var n=e(\"safe-buffer\").Buffer,i=e(\"stream\").Transform,s=e(\"string_decoder\").StringDecoder;function o(e){i.call(this),this.hashMode=\"string\"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}e(\"inherits\")(o,i),o.prototype.update=function(e,t,r){\"string\"==typeof e&&(e=n.from(e,t));var i=this._update(e);return this.hashMode?this:(r&&(i=this._toString(i,r)),i)},o.prototype.setAutoPadding=function(){},o.prototype.getAuthTag=function(){throw new Error(\"trying to get auth tag in unsupported state\")},o.prototype.setAuthTag=function(){throw new Error(\"trying to set auth tag in unsupported state\")},o.prototype.setAAD=function(){throw new Error(\"trying to set aad in unsupported state\")},o.prototype._transform=function(e,t,r){var n;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){n=e}finally{r(n)}},o.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},o.prototype._finalOrDigest=function(e){var t=this.__final()||n.alloc(0);return e&&(t=this._toString(t,e,!0)),t},o.prototype._toString=function(e,t,r){if(this._decoder||(this._decoder=new s(t),this._encoding=t),this._encoding!==t)throw new Error(\"can't switch encodings\");var n=this._decoder.write(e);return r&&(n+=this._decoder.end()),n},t.exports=o},{inherits:440,\"safe-buffer\":494,stream:505,string_decoder:218}],222:[function(e,t,r){\"use strict\";var n=e(\"../internals/is-callable\"),i=e(\"../internals/try-to-string\"),s=TypeError;t.exports=function(e){if(n(e))return e;throw new s(i(e)+\" is not a function\")}},{\"../internals/is-callable\":285,\"../internals/try-to-string\":349}],223:[function(e,t,r){\"use strict\";var n=e(\"../internals/is-constructor\"),i=e(\"../internals/try-to-string\"),s=TypeError;t.exports=function(e){if(n(e))return e;throw new s(i(e)+\" is not a constructor\")}},{\"../internals/is-constructor\":286,\"../internals/try-to-string\":349}],224:[function(e,t,r){\"use strict\";var n=e(\"../internals/is-callable\"),i=String,s=TypeError;t.exports=function(e){if(\"object\"==typeof e||n(e))return e;throw new s(\"Can't set \"+i(e)+\" as a prototype\")}},{\"../internals/is-callable\":285}],225:[function(e,t,r){\"use strict\";var n=e(\"../internals/well-known-symbol\"),i=e(\"../internals/object-create\"),s=e(\"../internals/object-define-property\").f,o=n(\"unscopables\"),a=Array.prototype;void 0===a[o]&&s(a,o,{configurable:!0,value:i(null)}),t.exports=function(e){a[o][e]=!0}},{\"../internals/object-create\":306,\"../internals/object-define-property\":308,\"../internals/well-known-symbol\":357}],226:[function(e,t,r){\"use strict\";var n=e(\"../internals/object-is-prototype-of\"),i=TypeError;t.exports=function(e,t){if(n(t,e))return e;throw new i(\"Incorrect invocation\")}},{\"../internals/object-is-prototype-of\":314}],227:[function(e,t,r){\"use strict\";var n=e(\"../internals/is-object\"),i=String,s=TypeError;t.exports=function(e){if(n(e))return e;throw new s(i(e)+\" is not an object\")}},{\"../internals/is-object\":289}],228:[function(e,t,r){\"use strict\";var n=e(\"../internals/to-indexed-object\"),i=e(\"../internals/to-absolute-index\"),s=e(\"../internals/length-of-array-like\"),o=function(e){return function(t,r,o){var a,l=n(t),c=s(l),u=i(o,c);if(e&&r!=r){for(;c>u;)if((a=l[u++])!=a)return!0}else for(;c>u;u++)if((e||u in l)&&l[u]===r)return e||u||0;return!e&&-1}};t.exports={includes:o(!0),indexOf:o(!1)}},{\"../internals/length-of-array-like\":299,\"../internals/to-absolute-index\":340,\"../internals/to-indexed-object\":341}],229:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-bind-context\"),i=e(\"../internals/function-uncurry-this\"),s=e(\"../internals/indexed-object\"),o=e(\"../internals/to-object\"),a=e(\"../internals/length-of-array-like\"),l=e(\"../internals/array-species-create\"),c=i([].push),u=function(e){var t=1===e,r=2===e,i=3===e,u=4===e,h=6===e,f=7===e,d=5===e||h;return function(p,m,b,g){for(var y,v,w=o(p),_=s(w),x=n(m,b),k=a(_),S=0,M=g||l,C=t?M(p,k):r||f?M(p,0):void 0;k>S;S++)if((d||S in _)&&(v=x(y=_[S],S,w),e))if(t)C[S]=v;else if(v)switch(e){case 3:return!0;case 5:return y;case 6:return S;case 2:c(C,y)}else switch(e){case 4:return!1;case 7:c(C,y)}return h?-1:i||u?u:C}};t.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterReject:u(7)}},{\"../internals/array-species-create\":233,\"../internals/function-bind-context\":262,\"../internals/function-uncurry-this\":268,\"../internals/indexed-object\":280,\"../internals/length-of-array-like\":299,\"../internals/to-object\":344}],230:[function(e,t,r){\"use strict\";var n=e(\"../internals/to-absolute-index\"),i=e(\"../internals/length-of-array-like\"),s=e(\"../internals/create-property\"),o=Array,a=Math.max;t.exports=function(e,t,r){for(var l=i(e),c=n(t,l),u=n(void 0===r?l:r,l),h=o(a(u-c,0)),f=0;c<u;c++,f++)s(h,f,e[c]);return h.length=f,h}},{\"../internals/create-property\":243,\"../internals/length-of-array-like\":299,\"../internals/to-absolute-index\":340}],231:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-uncurry-this\");t.exports=n([].slice)},{\"../internals/function-uncurry-this\":268}],232:[function(e,t,r){\"use strict\";var n=e(\"../internals/is-array\"),i=e(\"../internals/is-constructor\"),s=e(\"../internals/is-object\"),o=e(\"../internals/well-known-symbol\")(\"species\"),a=Array;t.exports=function(e){var t;return n(e)&&(t=e.constructor,(i(t)&&(t===a||n(t.prototype))||s(t)&&null===(t=t[o]))&&(t=void 0)),void 0===t?a:t}},{\"../internals/is-array\":284,\"../internals/is-constructor\":286,\"../internals/is-object\":289,\"../internals/well-known-symbol\":357}],233:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-species-constructor\");t.exports=function(e,t){return new(n(e))(0===t?0:t)}},{\"../internals/array-species-constructor\":232}],234:[function(e,t,r){\"use strict\";var n=e(\"../internals/well-known-symbol\")(\"iterator\"),i=!1;try{var s=0,o={next:function(){return{done:!!s++}},return:function(){i=!0}};o[n]=function(){return this},Array.from(o,(function(){throw 2}))}catch(e){}t.exports=function(e,t){try{if(!t&&!i)return!1}catch(e){return!1}var r=!1;try{var s={};s[n]=function(){return{next:function(){return{done:r=!0}}}},e(s)}catch(e){}return r}},{\"../internals/well-known-symbol\":357}],235:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-uncurry-this\"),i=n({}.toString),s=n(\"\".slice);t.exports=function(e){return s(i(e),8,-1)}},{\"../internals/function-uncurry-this\":268}],236:[function(e,t,r){\"use strict\";var n=e(\"../internals/to-string-tag-support\"),i=e(\"../internals/is-callable\"),s=e(\"../internals/classof-raw\"),o=e(\"../internals/well-known-symbol\")(\"toStringTag\"),a=Object,l=\"Arguments\"===s(function(){return arguments}());t.exports=n?s:function(e){var t,r,n;return void 0===e?\"Undefined\":null===e?\"Null\":\"string\"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=a(e),o))?r:l?s(t):\"Object\"===(n=s(t))&&i(t.callee)?\"Arguments\":n}},{\"../internals/classof-raw\":235,\"../internals/is-callable\":285,\"../internals/to-string-tag-support\":347,\"../internals/well-known-symbol\":357}],237:[function(e,t,r){\"use strict\";var n=e(\"../internals/has-own-property\"),i=e(\"../internals/own-keys\"),s=e(\"../internals/object-get-own-property-descriptor\"),o=e(\"../internals/object-define-property\");t.exports=function(e,t,r){for(var a=i(t),l=o.f,c=s.f,u=0;u<a.length;u++){var h=a[u];n(e,h)||r&&n(r,h)||l(e,h,c(t,h))}}},{\"../internals/has-own-property\":275,\"../internals/object-define-property\":308,\"../internals/object-get-own-property-descriptor\":309,\"../internals/own-keys\":321}],238:[function(e,t,r){\"use strict\";var n=e(\"../internals/well-known-symbol\")(\"match\");t.exports=function(e){var t=/./;try{\"/./\"[e](t)}catch(r){try{return t[n]=!1,\"/./\"[e](t)}catch(e){}}return!1}},{\"../internals/well-known-symbol\":357}],239:[function(e,t,r){\"use strict\";var n=e(\"../internals/fails\");t.exports=!n((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},{\"../internals/fails\":260}],240:[function(e,t,r){\"use strict\";t.exports=function(e,t){return{value:e,done:t}}},{}],241:[function(e,t,r){\"use strict\";var n=e(\"../internals/descriptors\"),i=e(\"../internals/object-define-property\"),s=e(\"../internals/create-property-descriptor\");t.exports=n?function(e,t,r){return i.f(e,t,s(1,r))}:function(e,t,r){return e[t]=r,e}},{\"../internals/create-property-descriptor\":242,\"../internals/descriptors\":247,\"../internals/object-define-property\":308}],242:[function(e,t,r){\"use strict\";t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},{}],243:[function(e,t,r){\"use strict\";var n=e(\"../internals/to-property-key\"),i=e(\"../internals/object-define-property\"),s=e(\"../internals/create-property-descriptor\");t.exports=function(e,t,r){var o=n(t);o in e?i.f(e,o,s(0,r)):e[o]=r}},{\"../internals/create-property-descriptor\":242,\"../internals/object-define-property\":308,\"../internals/to-property-key\":346}],244:[function(e,t,r){\"use strict\";var n=e(\"../internals/make-built-in\"),i=e(\"../internals/object-define-property\");t.exports=function(e,t,r){return r.get&&n(r.get,t,{getter:!0}),r.set&&n(r.set,t,{setter:!0}),i.f(e,t,r)}},{\"../internals/make-built-in\":300,\"../internals/object-define-property\":308}],245:[function(e,t,r){\"use strict\";var n=e(\"../internals/is-callable\"),i=e(\"../internals/object-define-property\"),s=e(\"../internals/make-built-in\"),o=e(\"../internals/define-global-property\");t.exports=function(e,t,r,a){a||(a={});var l=a.enumerable,c=void 0!==a.name?a.name:t;if(n(r)&&s(r,c,a),a.global)l?e[t]=r:o(t,r);else{try{a.unsafe?e[t]&&(l=!0):delete e[t]}catch(e){}l?e[t]=r:i.f(e,t,{value:r,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return e}},{\"../internals/define-global-property\":246,\"../internals/is-callable\":285,\"../internals/make-built-in\":300,\"../internals/object-define-property\":308}],246:[function(e,t,r){\"use strict\";var n=e(\"../internals/global\"),i=Object.defineProperty;t.exports=function(e,t){try{i(n,e,{value:t,configurable:!0,writable:!0})}catch(r){n[e]=t}return t}},{\"../internals/global\":274}],247:[function(e,t,r){\"use strict\";var n=e(\"../internals/fails\");t.exports=!n((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},{\"../internals/fails\":260}],248:[function(e,t,r){\"use strict\";var n=\"object\"==typeof document&&document.all,i=void 0===n&&void 0!==n;t.exports={all:n,IS_HTMLDDA:i}},{}],249:[function(e,t,r){\"use strict\";var n=e(\"../internals/global\"),i=e(\"../internals/is-object\"),s=n.document,o=i(s)&&i(s.createElement);t.exports=function(e){return o?s.createElement(e):{}}},{\"../internals/global\":274,\"../internals/is-object\":289}],250:[function(e,t,r){\"use strict\";var n=e(\"../internals/engine-is-deno\"),i=e(\"../internals/engine-is-node\");t.exports=!n&&!i&&\"object\"==typeof window&&\"object\"==typeof document},{\"../internals/engine-is-deno\":251,\"../internals/engine-is-node\":254}],251:[function(e,t,r){\"use strict\";t.exports=\"object\"==typeof Deno&&Deno&&\"object\"==typeof Deno.version},{}],252:[function(e,t,r){\"use strict\";var n=e(\"../internals/engine-user-agent\");t.exports=/ipad|iphone|ipod/i.test(n)&&\"undefined\"!=typeof Pebble},{\"../internals/engine-user-agent\":256}],253:[function(e,t,r){\"use strict\";var n=e(\"../internals/engine-user-agent\");t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(n)},{\"../internals/engine-user-agent\":256}],254:[function(e,t,r){\"use strict\";var n=e(\"../internals/global\"),i=e(\"../internals/classof-raw\");t.exports=\"process\"===i(n.process)},{\"../internals/classof-raw\":235,\"../internals/global\":274}],255:[function(e,t,r){\"use strict\";var n=e(\"../internals/engine-user-agent\");t.exports=/web0s(?!.*chrome)/i.test(n)},{\"../internals/engine-user-agent\":256}],256:[function(e,t,r){\"use strict\";t.exports=\"undefined\"!=typeof navigator&&String(navigator.userAgent)||\"\"},{}],257:[function(e,t,r){\"use strict\";var n,i,s=e(\"../internals/global\"),o=e(\"../internals/engine-user-agent\"),a=s.process,l=s.Deno,c=a&&a.versions||l&&l.version,u=c&&c.v8;u&&(i=(n=u.split(\".\"))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!i&&o&&(!(n=o.match(/Edge\\/(\\d+)/))||n[1]>=74)&&(n=o.match(/Chrome\\/(\\d+)/))&&(i=+n[1]),t.exports=i},{\"../internals/engine-user-agent\":256,\"../internals/global\":274}],258:[function(e,t,r){\"use strict\";t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},{}],259:[function(e,t,r){\"use strict\";var n=e(\"../internals/global\"),i=e(\"../internals/object-get-own-property-descriptor\").f,s=e(\"../internals/create-non-enumerable-property\"),o=e(\"../internals/define-built-in\"),a=e(\"../internals/define-global-property\"),l=e(\"../internals/copy-constructor-properties\"),c=e(\"../internals/is-forced\");t.exports=function(e,t){var r,u,h,f,d,p=e.target,m=e.global,b=e.stat;if(r=m?n:b?n[p]||a(p,{}):(n[p]||{}).prototype)for(u in t){if(f=t[u],h=e.dontCallGetSet?(d=i(r,u))&&d.value:r[u],!c(m?u:p+(b?\".\":\"#\")+u,e.forced)&&void 0!==h){if(typeof f==typeof h)continue;l(f,h)}(e.sham||h&&h.sham)&&s(f,\"sham\",!0),o(r,u,f,e)}}},{\"../internals/copy-constructor-properties\":237,\"../internals/create-non-enumerable-property\":241,\"../internals/define-built-in\":245,\"../internals/define-global-property\":246,\"../internals/global\":274,\"../internals/is-forced\":287,\"../internals/object-get-own-property-descriptor\":309}],260:[function(e,t,r){\"use strict\";t.exports=function(e){try{return!!e()}catch(e){return!0}}},{}],261:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-bind-native\"),i=Function.prototype,s=i.apply,o=i.call;t.exports=\"object\"==typeof Reflect&&Reflect.apply||(n?o.bind(s):function(){return o.apply(s,arguments)})},{\"../internals/function-bind-native\":263}],262:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-uncurry-this-clause\"),i=e(\"../internals/a-callable\"),s=e(\"../internals/function-bind-native\"),o=n(n.bind);t.exports=function(e,t){return i(e),void 0===t?e:s?o(e,t):function(){return e.apply(t,arguments)}}},{\"../internals/a-callable\":222,\"../internals/function-bind-native\":263,\"../internals/function-uncurry-this-clause\":267}],263:[function(e,t,r){\"use strict\";var n=e(\"../internals/fails\");t.exports=!n((function(){var e=function(){}.bind();return\"function\"!=typeof e||e.hasOwnProperty(\"prototype\")}))},{\"../internals/fails\":260}],264:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-bind-native\"),i=Function.prototype.call;t.exports=n?i.bind(i):function(){return i.apply(i,arguments)}},{\"../internals/function-bind-native\":263}],265:[function(e,t,r){\"use strict\";var n=e(\"../internals/descriptors\"),i=e(\"../internals/has-own-property\"),s=Function.prototype,o=n&&Object.getOwnPropertyDescriptor,a=i(s,\"name\"),l=a&&\"something\"===function(){}.name,c=a&&(!n||n&&o(s,\"name\").configurable);t.exports={EXISTS:a,PROPER:l,CONFIGURABLE:c}},{\"../internals/descriptors\":247,\"../internals/has-own-property\":275}],266:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-uncurry-this\"),i=e(\"../internals/a-callable\");t.exports=function(e,t,r){try{return n(i(Object.getOwnPropertyDescriptor(e,t)[r]))}catch(e){}}},{\"../internals/a-callable\":222,\"../internals/function-uncurry-this\":268}],267:[function(e,t,r){\"use strict\";var n=e(\"../internals/classof-raw\"),i=e(\"../internals/function-uncurry-this\");t.exports=function(e){if(\"Function\"===n(e))return i(e)}},{\"../internals/classof-raw\":235,\"../internals/function-uncurry-this\":268}],268:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-bind-native\"),i=Function.prototype,s=i.call,o=n&&i.bind.bind(s,s);t.exports=n?o:function(e){return function(){return s.apply(e,arguments)}}},{\"../internals/function-bind-native\":263}],269:[function(e,t,r){\"use strict\";var n=e(\"../internals/global\"),i=e(\"../internals/is-callable\"),s=function(e){return i(e)?e:void 0};t.exports=function(e,t){return arguments.length<2?s(n[e]):n[e]&&n[e][t]}},{\"../internals/global\":274,\"../internals/is-callable\":285}],270:[function(e,t,r){\"use strict\";var n=e(\"../internals/classof\"),i=e(\"../internals/get-method\"),s=e(\"../internals/is-null-or-undefined\"),o=e(\"../internals/iterators\"),a=e(\"../internals/well-known-symbol\")(\"iterator\");t.exports=function(e){if(!s(e))return i(e,a)||i(e,\"@@iterator\")||o[n(e)]}},{\"../internals/classof\":236,\"../internals/get-method\":273,\"../internals/is-null-or-undefined\":288,\"../internals/iterators\":298,\"../internals/well-known-symbol\":357}],271:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-call\"),i=e(\"../internals/a-callable\"),s=e(\"../internals/an-object\"),o=e(\"../internals/try-to-string\"),a=e(\"../internals/get-iterator-method\"),l=TypeError;t.exports=function(e,t){var r=arguments.length<2?a(e):t;if(i(r))return s(n(r,e));throw new l(o(e)+\" is not iterable\")}},{\"../internals/a-callable\":222,\"../internals/an-object\":227,\"../internals/function-call\":264,\"../internals/get-iterator-method\":270,\"../internals/try-to-string\":349}],272:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-uncurry-this\"),i=e(\"../internals/is-array\"),s=e(\"../internals/is-callable\"),o=e(\"../internals/classof-raw\"),a=e(\"../internals/to-string\"),l=n([].push);t.exports=function(e){if(s(e))return e;if(i(e)){for(var t=e.length,r=[],n=0;n<t;n++){var c=e[n];\"string\"==typeof c?l(r,c):\"number\"!=typeof c&&\"Number\"!==o(c)&&\"String\"!==o(c)||l(r,a(c))}var u=r.length,h=!0;return function(e,t){if(h)return h=!1,t;if(i(this))return t;for(var n=0;n<u;n++)if(r[n]===e)return t}}}},{\"../internals/classof-raw\":235,\"../internals/function-uncurry-this\":268,\"../internals/is-array\":284,\"../internals/is-callable\":285,\"../internals/to-string\":348}],273:[function(e,t,r){\"use strict\";var n=e(\"../internals/a-callable\"),i=e(\"../internals/is-null-or-undefined\");t.exports=function(e,t){var r=e[t];return i(r)?void 0:n(r)}},{\"../internals/a-callable\":222,\"../internals/is-null-or-undefined\":288}],274:[function(e,t,r){(function(e){(function(){\"use strict\";var r=function(e){return e&&e.Math===Math&&e};t.exports=r(\"object\"==typeof globalThis&&globalThis)||r(\"object\"==typeof window&&window)||r(\"object\"==typeof self&&self)||r(\"object\"==typeof e&&e)||function(){return this}()||this||Function(\"return this\")()}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],275:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-uncurry-this\"),i=e(\"../internals/to-object\"),s=n({}.hasOwnProperty);t.exports=Object.hasOwn||function(e,t){return s(i(e),t)}},{\"../internals/function-uncurry-this\":268,\"../internals/to-object\":344}],276:[function(e,t,r){\"use strict\";t.exports={}},{}],277:[function(e,t,r){\"use strict\";t.exports=function(e,t){try{1===arguments.length?console.error(e):console.error(e,t)}catch(e){}}},{}],278:[function(e,t,r){\"use strict\";var n=e(\"../internals/get-built-in\");t.exports=n(\"document\",\"documentElement\")},{\"../internals/get-built-in\":269}],279:[function(e,t,r){\"use strict\";var n=e(\"../internals/descriptors\"),i=e(\"../internals/fails\"),s=e(\"../internals/document-create-element\");t.exports=!n&&!i((function(){return 7!==Object.defineProperty(s(\"div\"),\"a\",{get:function(){return 7}}).a}))},{\"../internals/descriptors\":247,\"../internals/document-create-element\":249,\"../internals/fails\":260}],280:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-uncurry-this\"),i=e(\"../internals/fails\"),s=e(\"../internals/classof-raw\"),o=Object,a=n(\"\".split);t.exports=i((function(){return!o(\"z\").propertyIsEnumerable(0)}))?function(e){return\"String\"===s(e)?a(e,\"\"):o(e)}:o},{\"../internals/classof-raw\":235,\"../internals/fails\":260,\"../internals/function-uncurry-this\":268}],281:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-uncurry-this\"),i=e(\"../internals/is-callable\"),s=e(\"../internals/shared-store\"),o=n(Function.toString);i(s.inspectSource)||(s.inspectSource=function(e){return o(e)}),t.exports=s.inspectSource},{\"../internals/function-uncurry-this\":268,\"../internals/is-callable\":285,\"../internals/shared-store\":333}],282:[function(e,t,r){\"use strict\";var n,i,s,o=e(\"../internals/weak-map-basic-detection\"),a=e(\"../internals/global\"),l=e(\"../internals/is-object\"),c=e(\"../internals/create-non-enumerable-property\"),u=e(\"../internals/has-own-property\"),h=e(\"../internals/shared-store\"),f=e(\"../internals/shared-key\"),d=e(\"../internals/hidden-keys\"),p=a.TypeError,m=a.WeakMap;if(o||h.state){var b=h.state||(h.state=new m);b.get=b.get,b.has=b.has,b.set=b.set,n=function(e,t){if(b.has(e))throw new p(\"Object already initialized\");return t.facade=e,b.set(e,t),t},i=function(e){return b.get(e)||{}},s=function(e){return b.has(e)}}else{var g=f(\"state\");d[g]=!0,n=function(e,t){if(u(e,g))throw new p(\"Object already initialized\");return t.facade=e,c(e,g,t),t},i=function(e){return u(e,g)?e[g]:{}},s=function(e){return u(e,g)}}t.exports={set:n,get:i,has:s,enforce:function(e){return s(e)?i(e):n(e,{})},getterFor:function(e){return function(t){var r;if(!l(t)||(r=i(t)).type!==e)throw new p(\"Incompatible receiver, \"+e+\" required\");return r}}}},{\"../internals/create-non-enumerable-property\":241,\"../internals/global\":274,\"../internals/has-own-property\":275,\"../internals/hidden-keys\":276,\"../internals/is-object\":289,\"../internals/shared-key\":332,\"../internals/shared-store\":333,\"../internals/weak-map-basic-detection\":354}],283:[function(e,t,r){\"use strict\";var n=e(\"../internals/well-known-symbol\"),i=e(\"../internals/iterators\"),s=n(\"iterator\"),o=Array.prototype;t.exports=function(e){return void 0!==e&&(i.Array===e||o[s]===e)}},{\"../internals/iterators\":298,\"../internals/well-known-symbol\":357}],284:[function(e,t,r){\"use strict\";var n=e(\"../internals/classof-raw\");t.exports=Array.isArray||function(e){return\"Array\"===n(e)}},{\"../internals/classof-raw\":235}],285:[function(e,t,r){\"use strict\";var n=e(\"../internals/document-all\"),i=n.all;t.exports=n.IS_HTMLDDA?function(e){return\"function\"==typeof e||e===i}:function(e){return\"function\"==typeof e}},{\"../internals/document-all\":248}],286:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-uncurry-this\"),i=e(\"../internals/fails\"),s=e(\"../internals/is-callable\"),o=e(\"../internals/classof\"),a=e(\"../internals/get-built-in\"),l=e(\"../internals/inspect-source\"),c=function(){},u=[],h=a(\"Reflect\",\"construct\"),f=/^\\s*(?:class|function)\\b/,d=n(f.exec),p=!f.test(c),m=function(e){if(!s(e))return!1;try{return h(c,u,e),!0}catch(e){return!1}},b=function(e){if(!s(e))return!1;switch(o(e)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return p||!!d(f,l(e))}catch(e){return!0}};b.sham=!0,t.exports=!h||i((function(){var e;return m(m.call)||!m(Object)||!m((function(){e=!0}))||e}))?b:m},{\"../internals/classof\":236,\"../internals/fails\":260,\"../internals/function-uncurry-this\":268,\"../internals/get-built-in\":269,\"../internals/inspect-source\":281,\"../internals/is-callable\":285}],287:[function(e,t,r){\"use strict\";var n=e(\"../internals/fails\"),i=e(\"../internals/is-callable\"),s=/#|\\.prototype\\./,o=function(e,t){var r=l[a(e)];return r===u||r!==c&&(i(t)?n(t):!!t)},a=o.normalize=function(e){return String(e).replace(s,\".\").toLowerCase()},l=o.data={},c=o.NATIVE=\"N\",u=o.POLYFILL=\"P\";t.exports=o},{\"../internals/fails\":260,\"../internals/is-callable\":285}],288:[function(e,t,r){\"use strict\";t.exports=function(e){return null==e}},{}],289:[function(e,t,r){\"use strict\";var n=e(\"../internals/is-callable\"),i=e(\"../internals/document-all\"),s=i.all;t.exports=i.IS_HTMLDDA?function(e){return\"object\"==typeof e?null!==e:n(e)||e===s}:function(e){return\"object\"==typeof e?null!==e:n(e)}},{\"../internals/document-all\":248,\"../internals/is-callable\":285}],290:[function(e,t,r){\"use strict\";t.exports=!1},{}],291:[function(e,t,r){\"use strict\";var n=e(\"../internals/is-object\"),i=e(\"../internals/classof-raw\"),s=e(\"../internals/well-known-symbol\")(\"match\");t.exports=function(e){var t;return n(e)&&(void 0!==(t=e[s])?!!t:\"RegExp\"===i(e))}},{\"../internals/classof-raw\":235,\"../internals/is-object\":289,\"../internals/well-known-symbol\":357}],292:[function(e,t,r){\"use strict\";var n=e(\"../internals/get-built-in\"),i=e(\"../internals/is-callable\"),s=e(\"../internals/object-is-prototype-of\"),o=e(\"../internals/use-symbol-as-uid\"),a=Object;t.exports=o?function(e){return\"symbol\"==typeof e}:function(e){var t=n(\"Symbol\");return i(t)&&s(t.prototype,a(e))}},{\"../internals/get-built-in\":269,\"../internals/is-callable\":285,\"../internals/object-is-prototype-of\":314,\"../internals/use-symbol-as-uid\":351}],293:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-bind-context\"),i=e(\"../internals/function-call\"),s=e(\"../internals/an-object\"),o=e(\"../internals/try-to-string\"),a=e(\"../internals/is-array-iterator-method\"),l=e(\"../internals/length-of-array-like\"),c=e(\"../internals/object-is-prototype-of\"),u=e(\"../internals/get-iterator\"),h=e(\"../internals/get-iterator-method\"),f=e(\"../internals/iterator-close\"),d=TypeError,p=function(e,t){this.stopped=e,this.result=t},m=p.prototype;t.exports=function(e,t,r){var b,g,y,v,w,_,x,k=r&&r.that,S=!(!r||!r.AS_ENTRIES),M=!(!r||!r.IS_RECORD),C=!(!r||!r.IS_ITERATOR),T=!(!r||!r.INTERRUPTED),E=n(t,k),A=function(e){return b&&f(b,\"normal\",e),new p(!0,e)},R=function(e){return S?(s(e),T?E(e[0],e[1],A):E(e[0],e[1])):T?E(e,A):E(e)};if(M)b=e.iterator;else if(C)b=e;else{if(!(g=h(e)))throw new d(o(e)+\" is not iterable\");if(a(g)){for(y=0,v=l(e);v>y;y++)if((w=R(e[y]))&&c(m,w))return w;return new p(!1)}b=u(e,g)}for(_=M?e.next:b.next;!(x=i(_,b)).done;){try{w=R(x.value)}catch(e){f(b,\"throw\",e)}if(\"object\"==typeof w&&w&&c(m,w))return w}return new p(!1)}},{\"../internals/an-object\":227,\"../internals/function-bind-context\":262,\"../internals/function-call\":264,\"../internals/get-iterator\":271,\"../internals/get-iterator-method\":270,\"../internals/is-array-iterator-method\":283,\"../internals/iterator-close\":294,\"../internals/length-of-array-like\":299,\"../internals/object-is-prototype-of\":314,\"../internals/try-to-string\":349}],294:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-call\"),i=e(\"../internals/an-object\"),s=e(\"../internals/get-method\");t.exports=function(e,t,r){var o,a;i(e);try{if(!(o=s(e,\"return\"))){if(\"throw\"===t)throw r;return r}o=n(o,e)}catch(e){a=!0,o=e}if(\"throw\"===t)throw r;if(a)throw o;return i(o),r}},{\"../internals/an-object\":227,\"../internals/function-call\":264,\"../internals/get-method\":273}],295:[function(e,t,r){\"use strict\";var n=e(\"../internals/iterators-core\").IteratorPrototype,i=e(\"../internals/object-create\"),s=e(\"../internals/create-property-descriptor\"),o=e(\"../internals/set-to-string-tag\"),a=e(\"../internals/iterators\"),l=function(){return this};t.exports=function(e,t,r,c){var u=t+\" Iterator\";return e.prototype=i(n,{next:s(+!c,r)}),o(e,u,!1,!0),a[u]=l,e}},{\"../internals/create-property-descriptor\":242,\"../internals/iterators\":298,\"../internals/iterators-core\":297,\"../internals/object-create\":306,\"../internals/set-to-string-tag\":331}],296:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/function-call\"),s=e(\"../internals/is-pure\"),o=e(\"../internals/function-name\"),a=e(\"../internals/is-callable\"),l=e(\"../internals/iterator-create-constructor\"),c=e(\"../internals/object-get-prototype-of\"),u=e(\"../internals/object-set-prototype-of\"),h=e(\"../internals/set-to-string-tag\"),f=e(\"../internals/create-non-enumerable-property\"),d=e(\"../internals/define-built-in\"),p=e(\"../internals/well-known-symbol\"),m=e(\"../internals/iterators\"),b=e(\"../internals/iterators-core\"),g=o.PROPER,y=o.CONFIGURABLE,v=b.IteratorPrototype,w=b.BUGGY_SAFARI_ITERATORS,_=p(\"iterator\"),x=function(){return this};t.exports=function(e,t,r,o,p,b,k){l(r,t,o);var S,M,C,T=function(e){if(e===p&&j)return j;if(!w&&e&&e in R)return R[e];switch(e){case\"keys\":case\"values\":case\"entries\":return function(){return new r(this,e)}}return function(){return new r(this)}},E=t+\" Iterator\",A=!1,R=e.prototype,O=R[_]||R[\"@@iterator\"]||p&&R[p],j=!w&&O||T(p),I=\"Array\"===t&&R.entries||O;if(I&&(S=c(I.call(new e)))!==Object.prototype&&S.next&&(s||c(S)===v||(u?u(S,v):a(S[_])||d(S,_,x)),h(S,E,!0,!0),s&&(m[E]=x)),g&&\"values\"===p&&O&&\"values\"!==O.name&&(!s&&y?f(R,\"name\",\"values\"):(A=!0,j=function(){return i(O,this)})),p)if(M={values:T(\"values\"),keys:b?j:T(\"keys\"),entries:T(\"entries\")},k)for(C in M)(w||A||!(C in R))&&d(R,C,M[C]);else n({target:t,proto:!0,forced:w||A},M);return s&&!k||R[_]===j||d(R,_,j,{name:p}),m[t]=j,M}},{\"../internals/create-non-enumerable-property\":241,\"../internals/define-built-in\":245,\"../internals/export\":259,\"../internals/function-call\":264,\"../internals/function-name\":265,\"../internals/is-callable\":285,\"../internals/is-pure\":290,\"../internals/iterator-create-constructor\":295,\"../internals/iterators\":298,\"../internals/iterators-core\":297,\"../internals/object-get-prototype-of\":313,\"../internals/object-set-prototype-of\":318,\"../internals/set-to-string-tag\":331,\"../internals/well-known-symbol\":357}],297:[function(e,t,r){\"use strict\";var n,i,s,o=e(\"../internals/fails\"),a=e(\"../internals/is-callable\"),l=e(\"../internals/is-object\"),c=e(\"../internals/object-create\"),u=e(\"../internals/object-get-prototype-of\"),h=e(\"../internals/define-built-in\"),f=e(\"../internals/well-known-symbol\"),d=e(\"../internals/is-pure\"),p=f(\"iterator\"),m=!1;[].keys&&(\"next\"in(s=[].keys())?(i=u(u(s)))!==Object.prototype&&(n=i):m=!0),!l(n)||o((function(){var e={};return n[p].call(e)!==e}))?n={}:d&&(n=c(n)),a(n[p])||h(n,p,(function(){return this})),t.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:m}},{\"../internals/define-built-in\":245,\"../internals/fails\":260,\"../internals/is-callable\":285,\"../internals/is-object\":289,\"../internals/is-pure\":290,\"../internals/object-create\":306,\"../internals/object-get-prototype-of\":313,\"../internals/well-known-symbol\":357}],298:[function(e,t,r){arguments[4][276][0].apply(r,arguments)},{dup:276}],299:[function(e,t,r){\"use strict\";var n=e(\"../internals/to-length\");t.exports=function(e){return n(e.length)}},{\"../internals/to-length\":343}],300:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-uncurry-this\"),i=e(\"../internals/fails\"),s=e(\"../internals/is-callable\"),o=e(\"../internals/has-own-property\"),a=e(\"../internals/descriptors\"),l=e(\"../internals/function-name\").CONFIGURABLE,c=e(\"../internals/inspect-source\"),u=e(\"../internals/internal-state\"),h=u.enforce,f=u.get,d=String,p=Object.defineProperty,m=n(\"\".slice),b=n(\"\".replace),g=n([].join),y=a&&!i((function(){return 8!==p((function(){}),\"length\",{value:8}).length})),v=String(String).split(\"String\"),w=t.exports=function(e,t,r){\"Symbol(\"===m(d(t),0,7)&&(t=\"[\"+b(d(t),/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),r&&r.getter&&(t=\"get \"+t),r&&r.setter&&(t=\"set \"+t),(!o(e,\"name\")||l&&e.name!==t)&&(a?p(e,\"name\",{value:t,configurable:!0}):e.name=t),y&&r&&o(r,\"arity\")&&e.length!==r.arity&&p(e,\"length\",{value:r.arity});try{r&&o(r,\"constructor\")&&r.constructor?a&&p(e,\"prototype\",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var n=h(e);return o(n,\"source\")||(n.source=g(v,\"string\"==typeof t?t:\"\")),e};Function.prototype.toString=w((function(){return s(this)&&f(this).source||c(this)}),\"toString\")},{\"../internals/descriptors\":247,\"../internals/fails\":260,\"../internals/function-name\":265,\"../internals/function-uncurry-this\":268,\"../internals/has-own-property\":275,\"../internals/inspect-source\":281,\"../internals/internal-state\":282,\"../internals/is-callable\":285}],301:[function(e,t,r){\"use strict\";var n=Math.ceil,i=Math.floor;t.exports=Math.trunc||function(e){var t=+e;return(t>0?i:n)(t)}},{}],302:[function(e,t,r){\"use strict\";var n,i,s,o,a,l=e(\"../internals/global\"),c=e(\"../internals/function-bind-context\"),u=e(\"../internals/object-get-own-property-descriptor\").f,h=e(\"../internals/task\").set,f=e(\"../internals/queue\"),d=e(\"../internals/engine-is-ios\"),p=e(\"../internals/engine-is-ios-pebble\"),m=e(\"../internals/engine-is-webos-webkit\"),b=e(\"../internals/engine-is-node\"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.document,v=l.process,w=l.Promise,_=u(l,\"queueMicrotask\"),x=_&&_.value;if(!x){var k=new f,S=function(){var e,t;for(b&&(e=v.domain)&&e.exit();t=k.get();)try{t()}catch(e){throw k.head&&n(),e}e&&e.enter()};d||b||m||!g||!y?!p&&w&&w.resolve?((o=w.resolve(void 0)).constructor=w,a=c(o.then,o),n=function(){a(S)}):b?n=function(){v.nextTick(S)}:(h=c(h,l),n=function(){h(S)}):(i=!0,s=y.createTextNode(\"\"),new g(S).observe(s,{characterData:!0}),n=function(){s.data=i=!i}),x=function(e){k.head||n(),k.add(e)}}t.exports=x},{\"../internals/engine-is-ios\":253,\"../internals/engine-is-ios-pebble\":252,\"../internals/engine-is-node\":254,\"../internals/engine-is-webos-webkit\":255,\"../internals/function-bind-context\":262,\"../internals/global\":274,\"../internals/object-get-own-property-descriptor\":309,\"../internals/queue\":328,\"../internals/task\":339}],303:[function(e,t,r){\"use strict\";var n=e(\"../internals/a-callable\"),i=TypeError,s=function(e){var t,r;this.promise=new e((function(e,n){if(void 0!==t||void 0!==r)throw new i(\"Bad Promise constructor\");t=e,r=n})),this.resolve=n(t),this.reject=n(r)};t.exports.f=function(e){return new s(e)}},{\"../internals/a-callable\":222}],304:[function(e,t,r){\"use strict\";var n=e(\"../internals/is-regexp\"),i=TypeError;t.exports=function(e){if(n(e))throw new i(\"The method doesn't accept regular expressions\");return e}},{\"../internals/is-regexp\":291}],305:[function(e,t,r){\"use strict\";var n=e(\"../internals/descriptors\"),i=e(\"../internals/function-uncurry-this\"),s=e(\"../internals/function-call\"),o=e(\"../internals/fails\"),a=e(\"../internals/object-keys\"),l=e(\"../internals/object-get-own-property-symbols\"),c=e(\"../internals/object-property-is-enumerable\"),u=e(\"../internals/to-object\"),h=e(\"../internals/indexed-object\"),f=Object.assign,d=Object.defineProperty,p=i([].concat);t.exports=!f||o((function(){if(n&&1!==f({b:1},f(d({},\"a\",{enumerable:!0,get:function(){d(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},r=Symbol(\"assign detection\");return e[r]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(e){t[e]=e})),7!==f({},e)[r]||\"abcdefghijklmnopqrst\"!==a(f({},t)).join(\"\")}))?function(e,t){for(var r=u(e),i=arguments.length,o=1,f=l.f,d=c.f;i>o;)for(var m,b=h(arguments[o++]),g=f?p(a(b),f(b)):a(b),y=g.length,v=0;y>v;)m=g[v++],n&&!s(d,b,m)||(r[m]=b[m]);return r}:f},{\"../internals/descriptors\":247,\"../internals/fails\":260,\"../internals/function-call\":264,\"../internals/function-uncurry-this\":268,\"../internals/indexed-object\":280,\"../internals/object-get-own-property-symbols\":312,\"../internals/object-keys\":316,\"../internals/object-property-is-enumerable\":317,\"../internals/to-object\":344}],306:[function(e,t,r){\"use strict\";var n,i=e(\"../internals/an-object\"),s=e(\"../internals/object-define-properties\"),o=e(\"../internals/enum-bug-keys\"),a=e(\"../internals/hidden-keys\"),l=e(\"../internals/html\"),c=e(\"../internals/document-create-element\"),u=e(\"../internals/shared-key\"),h=u(\"IE_PROTO\"),f=function(){},d=function(e){return\"<script>\"+e+\"<\\/script>\"},p=function(e){e.write(d(\"\")),e.close();var t=e.parentWindow.Object;return e=null,t},m=function(){try{n=new ActiveXObject(\"htmlfile\")}catch(e){}var e,t;m=\"undefined\"!=typeof document?document.domain&&n?p(n):((t=c(\"iframe\")).style.display=\"none\",l.appendChild(t),t.src=String(\"javascript:\"),(e=t.contentWindow.document).open(),e.write(d(\"document.F=Object\")),e.close(),e.F):p(n);for(var r=o.length;r--;)delete m.prototype[o[r]];return m()};a[h]=!0,t.exports=Object.create||function(e,t){var r;return null!==e?(f.prototype=i(e),r=new f,f.prototype=null,r[h]=e):r=m(),void 0===t?r:s.f(r,t)}},{\"../internals/an-object\":227,\"../internals/document-create-element\":249,\"../internals/enum-bug-keys\":258,\"../internals/hidden-keys\":276,\"../internals/html\":278,\"../internals/object-define-properties\":307,\"../internals/shared-key\":332}],307:[function(e,t,r){\"use strict\";var n=e(\"../internals/descriptors\"),i=e(\"../internals/v8-prototype-define-bug\"),s=e(\"../internals/object-define-property\"),o=e(\"../internals/an-object\"),a=e(\"../internals/to-indexed-object\"),l=e(\"../internals/object-keys\");r.f=n&&!i?Object.defineProperties:function(e,t){o(e);for(var r,n=a(t),i=l(t),c=i.length,u=0;c>u;)s.f(e,r=i[u++],n[r]);return e}},{\"../internals/an-object\":227,\"../internals/descriptors\":247,\"../internals/object-define-property\":308,\"../internals/object-keys\":316,\"../internals/to-indexed-object\":341,\"../internals/v8-prototype-define-bug\":352}],308:[function(e,t,r){\"use strict\";var n=e(\"../internals/descriptors\"),i=e(\"../internals/ie8-dom-define\"),s=e(\"../internals/v8-prototype-define-bug\"),o=e(\"../internals/an-object\"),a=e(\"../internals/to-property-key\"),l=TypeError,c=Object.defineProperty,u=Object.getOwnPropertyDescriptor;r.f=n?s?function(e,t,r){if(o(e),t=a(t),o(r),\"function\"==typeof e&&\"prototype\"===t&&\"value\"in r&&\"writable\"in r&&!r.writable){var n=u(e,t);n&&n.writable&&(e[t]=r.value,r={configurable:\"configurable\"in r?r.configurable:n.configurable,enumerable:\"enumerable\"in r?r.enumerable:n.enumerable,writable:!1})}return c(e,t,r)}:c:function(e,t,r){if(o(e),t=a(t),o(r),i)try{return c(e,t,r)}catch(e){}if(\"get\"in r||\"set\"in r)throw new l(\"Accessors not supported\");return\"value\"in r&&(e[t]=r.value),e}},{\"../internals/an-object\":227,\"../internals/descriptors\":247,\"../internals/ie8-dom-define\":279,\"../internals/to-property-key\":346,\"../internals/v8-prototype-define-bug\":352}],309:[function(e,t,r){\"use strict\";var n=e(\"../internals/descriptors\"),i=e(\"../internals/function-call\"),s=e(\"../internals/object-property-is-enumerable\"),o=e(\"../internals/create-property-descriptor\"),a=e(\"../internals/to-indexed-object\"),l=e(\"../internals/to-property-key\"),c=e(\"../internals/has-own-property\"),u=e(\"../internals/ie8-dom-define\"),h=Object.getOwnPropertyDescriptor;r.f=n?h:function(e,t){if(e=a(e),t=l(t),u)try{return h(e,t)}catch(e){}if(c(e,t))return o(!i(s.f,e,t),e[t])}},{\"../internals/create-property-descriptor\":242,\"../internals/descriptors\":247,\"../internals/function-call\":264,\"../internals/has-own-property\":275,\"../internals/ie8-dom-define\":279,\"../internals/object-property-is-enumerable\":317,\"../internals/to-indexed-object\":341,\"../internals/to-property-key\":346}],310:[function(e,t,r){\"use strict\";var n=e(\"../internals/classof-raw\"),i=e(\"../internals/to-indexed-object\"),s=e(\"../internals/object-get-own-property-names\").f,o=e(\"../internals/array-slice-simple\"),a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(e){return a&&\"Window\"===n(e)?function(e){try{return s(e)}catch(e){return o(a)}}(e):s(i(e))}},{\"../internals/array-slice-simple\":230,\"../internals/classof-raw\":235,\"../internals/object-get-own-property-names\":311,\"../internals/to-indexed-object\":341}],311:[function(e,t,r){\"use strict\";var n=e(\"../internals/object-keys-internal\"),i=e(\"../internals/enum-bug-keys\").concat(\"length\",\"prototype\");r.f=Object.getOwnPropertyNames||function(e){return n(e,i)}},{\"../internals/enum-bug-keys\":258,\"../internals/object-keys-internal\":315}],312:[function(e,t,r){\"use strict\";r.f=Object.getOwnPropertySymbols},{}],313:[function(e,t,r){\"use strict\";var n=e(\"../internals/has-own-property\"),i=e(\"../internals/is-callable\"),s=e(\"../internals/to-object\"),o=e(\"../internals/shared-key\"),a=e(\"../internals/correct-prototype-getter\"),l=o(\"IE_PROTO\"),c=Object,u=c.prototype;t.exports=a?c.getPrototypeOf:function(e){var t=s(e);if(n(t,l))return t[l];var r=t.constructor;return i(r)&&t instanceof r?r.prototype:t instanceof c?u:null}},{\"../internals/correct-prototype-getter\":239,\"../internals/has-own-property\":275,\"../internals/is-callable\":285,\"../internals/shared-key\":332,\"../internals/to-object\":344}],314:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-uncurry-this\");t.exports=n({}.isPrototypeOf)},{\"../internals/function-uncurry-this\":268}],315:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-uncurry-this\"),i=e(\"../internals/has-own-property\"),s=e(\"../internals/to-indexed-object\"),o=e(\"../internals/array-includes\").indexOf,a=e(\"../internals/hidden-keys\"),l=n([].push);t.exports=function(e,t){var r,n=s(e),c=0,u=[];for(r in n)!i(a,r)&&i(n,r)&&l(u,r);for(;t.length>c;)i(n,r=t[c++])&&(~o(u,r)||l(u,r));return u}},{\"../internals/array-includes\":228,\"../internals/function-uncurry-this\":268,\"../internals/has-own-property\":275,\"../internals/hidden-keys\":276,\"../internals/to-indexed-object\":341}],316:[function(e,t,r){\"use strict\";var n=e(\"../internals/object-keys-internal\"),i=e(\"../internals/enum-bug-keys\");t.exports=Object.keys||function(e){return n(e,i)}},{\"../internals/enum-bug-keys\":258,\"../internals/object-keys-internal\":315}],317:[function(e,t,r){\"use strict\";var n={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,s=i&&!n.call({1:2},1);r.f=s?function(e){var t=i(this,e);return!!t&&t.enumerable}:n},{}],318:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-uncurry-this-accessor\"),i=e(\"../internals/an-object\"),s=e(\"../internals/a-possible-prototype\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var e,t=!1,r={};try{(e=n(Object.prototype,\"__proto__\",\"set\"))(r,[]),t=r instanceof Array}catch(e){}return function(r,n){return i(r),s(n),t?e(r,n):r.__proto__=n,r}}():void 0)},{\"../internals/a-possible-prototype\":224,\"../internals/an-object\":227,\"../internals/function-uncurry-this-accessor\":266}],319:[function(e,t,r){\"use strict\";var n=e(\"../internals/descriptors\"),i=e(\"../internals/fails\"),s=e(\"../internals/function-uncurry-this\"),o=e(\"../internals/object-get-prototype-of\"),a=e(\"../internals/object-keys\"),l=e(\"../internals/to-indexed-object\"),c=s(e(\"../internals/object-property-is-enumerable\").f),u=s([].push),h=n&&i((function(){var e=Object.create(null);return e[2]=2,!c(e,2)})),f=function(e){return function(t){for(var r,i=l(t),s=a(i),f=h&&null===o(i),d=s.length,p=0,m=[];d>p;)r=s[p++],n&&!(f?r in i:c(i,r))||u(m,e?[r,i[r]]:i[r]);return m}};t.exports={entries:f(!0),values:f(!1)}},{\"../internals/descriptors\":247,\"../internals/fails\":260,\"../internals/function-uncurry-this\":268,\"../internals/object-get-prototype-of\":313,\"../internals/object-keys\":316,\"../internals/object-property-is-enumerable\":317,\"../internals/to-indexed-object\":341}],320:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-call\"),i=e(\"../internals/is-callable\"),s=e(\"../internals/is-object\"),o=TypeError;t.exports=function(e,t){var r,a;if(\"string\"===t&&i(r=e.toString)&&!s(a=n(r,e)))return a;if(i(r=e.valueOf)&&!s(a=n(r,e)))return a;if(\"string\"!==t&&i(r=e.toString)&&!s(a=n(r,e)))return a;throw new o(\"Can't convert object to primitive value\")}},{\"../internals/function-call\":264,\"../internals/is-callable\":285,\"../internals/is-object\":289}],321:[function(e,t,r){\"use strict\";var n=e(\"../internals/get-built-in\"),i=e(\"../internals/function-uncurry-this\"),s=e(\"../internals/object-get-own-property-names\"),o=e(\"../internals/object-get-own-property-symbols\"),a=e(\"../internals/an-object\"),l=i([].concat);t.exports=n(\"Reflect\",\"ownKeys\")||function(e){var t=s.f(a(e)),r=o.f;return r?l(t,r(e)):t}},{\"../internals/an-object\":227,\"../internals/function-uncurry-this\":268,\"../internals/get-built-in\":269,\"../internals/object-get-own-property-names\":311,\"../internals/object-get-own-property-symbols\":312}],322:[function(e,t,r){\"use strict\";var n=e(\"../internals/global\");t.exports=n},{\"../internals/global\":274}],323:[function(e,t,r){\"use strict\";t.exports=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}}},{}],324:[function(e,t,r){\"use strict\";var n=e(\"../internals/global\"),i=e(\"../internals/promise-native-constructor\"),s=e(\"../internals/is-callable\"),o=e(\"../internals/is-forced\"),a=e(\"../internals/inspect-source\"),l=e(\"../internals/well-known-symbol\"),c=e(\"../internals/engine-is-browser\"),u=e(\"../internals/engine-is-deno\"),h=e(\"../internals/is-pure\"),f=e(\"../internals/engine-v8-version\"),d=i&&i.prototype,p=l(\"species\"),m=!1,b=s(n.PromiseRejectionEvent),g=o(\"Promise\",(function(){var e=a(i),t=e!==String(i);if(!t&&66===f)return!0;if(h&&(!d.catch||!d.finally))return!0;if(!f||f<51||!/native code/.test(e)){var r=new i((function(e){e(1)})),n=function(e){e((function(){}),(function(){}))};if((r.constructor={})[p]=n,!(m=r.then((function(){}))instanceof n))return!0}return!t&&(c||u)&&!b}));t.exports={CONSTRUCTOR:g,REJECTION_EVENT:b,SUBCLASSING:m}},{\"../internals/engine-is-browser\":250,\"../internals/engine-is-deno\":251,\"../internals/engine-v8-version\":257,\"../internals/global\":274,\"../internals/inspect-source\":281,\"../internals/is-callable\":285,\"../internals/is-forced\":287,\"../internals/is-pure\":290,\"../internals/promise-native-constructor\":325,\"../internals/well-known-symbol\":357}],325:[function(e,t,r){\"use strict\";var n=e(\"../internals/global\");t.exports=n.Promise},{\"../internals/global\":274}],326:[function(e,t,r){\"use strict\";var n=e(\"../internals/an-object\"),i=e(\"../internals/is-object\"),s=e(\"../internals/new-promise-capability\");t.exports=function(e,t){if(n(e),i(t)&&t.constructor===e)return t;var r=s.f(e);return(0,r.resolve)(t),r.promise}},{\"../internals/an-object\":227,\"../internals/is-object\":289,\"../internals/new-promise-capability\":303}],327:[function(e,t,r){\"use strict\";var n=e(\"../internals/promise-native-constructor\"),i=e(\"../internals/check-correctness-of-iteration\"),s=e(\"../internals/promise-constructor-detection\").CONSTRUCTOR;t.exports=s||!i((function(e){n.all(e).then(void 0,(function(){}))}))},{\"../internals/check-correctness-of-iteration\":234,\"../internals/promise-constructor-detection\":324,\"../internals/promise-native-constructor\":325}],328:[function(e,t,r){\"use strict\";var n=function(){this.head=null,this.tail=null};n.prototype={add:function(e){var t={item:e,next:null},r=this.tail;r?r.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return null===(this.head=e.next)&&(this.tail=null),e.item}},t.exports=n},{}],329:[function(e,t,r){\"use strict\";var n=e(\"../internals/is-null-or-undefined\"),i=TypeError;t.exports=function(e){if(n(e))throw new i(\"Can't call method on \"+e);return e}},{\"../internals/is-null-or-undefined\":288}],330:[function(e,t,r){\"use strict\";var n=e(\"../internals/get-built-in\"),i=e(\"../internals/define-built-in-accessor\"),s=e(\"../internals/well-known-symbol\"),o=e(\"../internals/descriptors\"),a=s(\"species\");t.exports=function(e){var t=n(e);o&&t&&!t[a]&&i(t,a,{configurable:!0,get:function(){return this}})}},{\"../internals/define-built-in-accessor\":244,\"../internals/descriptors\":247,\"../internals/get-built-in\":269,\"../internals/well-known-symbol\":357}],331:[function(e,t,r){\"use strict\";var n=e(\"../internals/object-define-property\").f,i=e(\"../internals/has-own-property\"),s=e(\"../internals/well-known-symbol\")(\"toStringTag\");t.exports=function(e,t,r){e&&!r&&(e=e.prototype),e&&!i(e,s)&&n(e,s,{configurable:!0,value:t})}},{\"../internals/has-own-property\":275,\"../internals/object-define-property\":308,\"../internals/well-known-symbol\":357}],332:[function(e,t,r){\"use strict\";var n=e(\"../internals/shared\"),i=e(\"../internals/uid\"),s=n(\"keys\");t.exports=function(e){return s[e]||(s[e]=i(e))}},{\"../internals/shared\":334,\"../internals/uid\":350}],333:[function(e,t,r){\"use strict\";var n=e(\"../internals/global\"),i=e(\"../internals/define-global-property\"),s=n[\"__core-js_shared__\"]||i(\"__core-js_shared__\",{});t.exports=s},{\"../internals/define-global-property\":246,\"../internals/global\":274}],334:[function(e,t,r){\"use strict\";var n=e(\"../internals/is-pure\"),i=e(\"../internals/shared-store\");(t.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})(\"versions\",[]).push({version:\"3.33.0\",mode:n?\"pure\":\"global\",copyright:\"\\xa9 2014-2023 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE\",source:\"https://github.com/zloirock/core-js\"})},{\"../internals/is-pure\":290,\"../internals/shared-store\":333}],335:[function(e,t,r){\"use strict\";var n=e(\"../internals/an-object\"),i=e(\"../internals/a-constructor\"),s=e(\"../internals/is-null-or-undefined\"),o=e(\"../internals/well-known-symbol\")(\"species\");t.exports=function(e,t){var r,a=n(e).constructor;return void 0===a||s(r=n(a)[o])?t:i(r)}},{\"../internals/a-constructor\":223,\"../internals/an-object\":227,\"../internals/is-null-or-undefined\":288,\"../internals/well-known-symbol\":357}],336:[function(e,t,r){\"use strict\";var n=e(\"../internals/engine-v8-version\"),i=e(\"../internals/fails\"),s=e(\"../internals/global\").String;t.exports=!!Object.getOwnPropertySymbols&&!i((function(){var e=Symbol(\"symbol detection\");return!s(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},{\"../internals/engine-v8-version\":257,\"../internals/fails\":260,\"../internals/global\":274}],337:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-call\"),i=e(\"../internals/get-built-in\"),s=e(\"../internals/well-known-symbol\"),o=e(\"../internals/define-built-in\");t.exports=function(){var e=i(\"Symbol\"),t=e&&e.prototype,r=t&&t.valueOf,a=s(\"toPrimitive\");t&&!t[a]&&o(t,a,(function(e){return n(r,this)}),{arity:1})}},{\"../internals/define-built-in\":245,\"../internals/function-call\":264,\"../internals/get-built-in\":269,\"../internals/well-known-symbol\":357}],338:[function(e,t,r){\"use strict\";var n=e(\"../internals/symbol-constructor-detection\");t.exports=n&&!!Symbol.for&&!!Symbol.keyFor},{\"../internals/symbol-constructor-detection\":336}],339:[function(e,t,r){\"use strict\";var n,i,s,o,a=e(\"../internals/global\"),l=e(\"../internals/function-apply\"),c=e(\"../internals/function-bind-context\"),u=e(\"../internals/is-callable\"),h=e(\"../internals/has-own-property\"),f=e(\"../internals/fails\"),d=e(\"../internals/html\"),p=e(\"../internals/array-slice\"),m=e(\"../internals/document-create-element\"),b=e(\"../internals/validate-arguments-length\"),g=e(\"../internals/engine-is-ios\"),y=e(\"../internals/engine-is-node\"),v=a.setImmediate,w=a.clearImmediate,_=a.process,x=a.Dispatch,k=a.Function,S=a.MessageChannel,M=a.String,C=0,T={};f((function(){n=a.location}));var E=function(e){if(h(T,e)){var t=T[e];delete T[e],t()}},A=function(e){return function(){E(e)}},R=function(e){E(e.data)},O=function(e){a.postMessage(M(e),n.protocol+\"//\"+n.host)};v&&w||(v=function(e){b(arguments.length,1);var t=u(e)?e:k(e),r=p(arguments,1);return T[++C]=function(){l(t,void 0,r)},i(C),C},w=function(e){delete T[e]},y?i=function(e){_.nextTick(A(e))}:x&&x.now?i=function(e){x.now(A(e))}:S&&!g?(o=(s=new S).port2,s.port1.onmessage=R,i=c(o.postMessage,o)):a.addEventListener&&u(a.postMessage)&&!a.importScripts&&n&&\"file:\"!==n.protocol&&!f(O)?(i=O,a.addEventListener(\"message\",R,!1)):i=\"onreadystatechange\"in m(\"script\")?function(e){d.appendChild(m(\"script\")).onreadystatechange=function(){d.removeChild(this),E(e)}}:function(e){setTimeout(A(e),0)}),t.exports={set:v,clear:w}},{\"../internals/array-slice\":231,\"../internals/document-create-element\":249,\"../internals/engine-is-ios\":253,\"../internals/engine-is-node\":254,\"../internals/fails\":260,\"../internals/function-apply\":261,\"../internals/function-bind-context\":262,\"../internals/global\":274,\"../internals/has-own-property\":275,\"../internals/html\":278,\"../internals/is-callable\":285,\"../internals/validate-arguments-length\":353}],340:[function(e,t,r){\"use strict\";var n=e(\"../internals/to-integer-or-infinity\"),i=Math.max,s=Math.min;t.exports=function(e,t){var r=n(e);return r<0?i(r+t,0):s(r,t)}},{\"../internals/to-integer-or-infinity\":342}],341:[function(e,t,r){\"use strict\";var n=e(\"../internals/indexed-object\"),i=e(\"../internals/require-object-coercible\");t.exports=function(e){return n(i(e))}},{\"../internals/indexed-object\":280,\"../internals/require-object-coercible\":329}],342:[function(e,t,r){\"use strict\";var n=e(\"../internals/math-trunc\");t.exports=function(e){var t=+e;return t!=t||0===t?0:n(t)}},{\"../internals/math-trunc\":301}],343:[function(e,t,r){\"use strict\";var n=e(\"../internals/to-integer-or-infinity\"),i=Math.min;t.exports=function(e){return e>0?i(n(e),9007199254740991):0}},{\"../internals/to-integer-or-infinity\":342}],344:[function(e,t,r){\"use strict\";var n=e(\"../internals/require-object-coercible\"),i=Object;t.exports=function(e){return i(n(e))}},{\"../internals/require-object-coercible\":329}],345:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-call\"),i=e(\"../internals/is-object\"),s=e(\"../internals/is-symbol\"),o=e(\"../internals/get-method\"),a=e(\"../internals/ordinary-to-primitive\"),l=e(\"../internals/well-known-symbol\"),c=TypeError,u=l(\"toPrimitive\");t.exports=function(e,t){if(!i(e)||s(e))return e;var r,l=o(e,u);if(l){if(void 0===t&&(t=\"default\"),r=n(l,e,t),!i(r)||s(r))return r;throw new c(\"Can't convert object to primitive value\")}return void 0===t&&(t=\"number\"),a(e,t)}},{\"../internals/function-call\":264,\"../internals/get-method\":273,\"../internals/is-object\":289,\"../internals/is-symbol\":292,\"../internals/ordinary-to-primitive\":320,\"../internals/well-known-symbol\":357}],346:[function(e,t,r){\"use strict\";var n=e(\"../internals/to-primitive\"),i=e(\"../internals/is-symbol\");t.exports=function(e){var t=n(e,\"string\");return i(t)?t:t+\"\"}},{\"../internals/is-symbol\":292,\"../internals/to-primitive\":345}],347:[function(e,t,r){\"use strict\";var n={};n[e(\"../internals/well-known-symbol\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(n)},{\"../internals/well-known-symbol\":357}],348:[function(e,t,r){\"use strict\";var n=e(\"../internals/classof\"),i=String;t.exports=function(e){if(\"Symbol\"===n(e))throw new TypeError(\"Cannot convert a Symbol value to a string\");return i(e)}},{\"../internals/classof\":236}],349:[function(e,t,r){\"use strict\";var n=String;t.exports=function(e){try{return n(e)}catch(e){return\"Object\"}}},{}],350:[function(e,t,r){\"use strict\";var n=e(\"../internals/function-uncurry-this\"),i=0,s=Math.random(),o=n(1..toString);t.exports=function(e){return\"Symbol(\"+(void 0===e?\"\":e)+\")_\"+o(++i+s,36)}},{\"../internals/function-uncurry-this\":268}],351:[function(e,t,r){\"use strict\";var n=e(\"../internals/symbol-constructor-detection\");t.exports=n&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator},{\"../internals/symbol-constructor-detection\":336}],352:[function(e,t,r){\"use strict\";var n=e(\"../internals/descriptors\"),i=e(\"../internals/fails\");t.exports=n&&i((function(){return 42!==Object.defineProperty((function(){}),\"prototype\",{value:42,writable:!1}).prototype}))},{\"../internals/descriptors\":247,\"../internals/fails\":260}],353:[function(e,t,r){\"use strict\";var n=TypeError;t.exports=function(e,t){if(e<t)throw new n(\"Not enough arguments\");return e}},{}],354:[function(e,t,r){\"use strict\";var n=e(\"../internals/global\"),i=e(\"../internals/is-callable\"),s=n.WeakMap;t.exports=i(s)&&/native code/.test(String(s))},{\"../internals/global\":274,\"../internals/is-callable\":285}],355:[function(e,t,r){\"use strict\";var n=e(\"../internals/path\"),i=e(\"../internals/has-own-property\"),s=e(\"../internals/well-known-symbol-wrapped\"),o=e(\"../internals/object-define-property\").f;t.exports=function(e){var t=n.Symbol||(n.Symbol={});i(t,e)||o(t,e,{value:s.f(e)})}},{\"../internals/has-own-property\":275,\"../internals/object-define-property\":308,\"../internals/path\":322,\"../internals/well-known-symbol-wrapped\":356}],356:[function(e,t,r){\"use strict\";var n=e(\"../internals/well-known-symbol\");r.f=n},{\"../internals/well-known-symbol\":357}],357:[function(e,t,r){\"use strict\";var n=e(\"../internals/global\"),i=e(\"../internals/shared\"),s=e(\"../internals/has-own-property\"),o=e(\"../internals/uid\"),a=e(\"../internals/symbol-constructor-detection\"),l=e(\"../internals/use-symbol-as-uid\"),c=n.Symbol,u=i(\"wks\"),h=l?c.for||c:c&&c.withoutSetter||o;t.exports=function(e){return s(u,e)||(u[e]=a&&s(c,e)?c[e]:h(\"Symbol.\"+e)),u[e]}},{\"../internals/global\":274,\"../internals/has-own-property\":275,\"../internals/shared\":334,\"../internals/symbol-constructor-detection\":336,\"../internals/uid\":350,\"../internals/use-symbol-as-uid\":351}],358:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/array-iteration\").findIndex,s=e(\"../internals/add-to-unscopables\"),o=!0;\"findIndex\"in[]&&Array(1).findIndex((function(){o=!1})),n({target:\"Array\",proto:!0,forced:o},{findIndex:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),s(\"findIndex\")},{\"../internals/add-to-unscopables\":225,\"../internals/array-iteration\":229,\"../internals/export\":259}],359:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/array-iteration\").find,s=e(\"../internals/add-to-unscopables\"),o=!0;\"find\"in[]&&Array(1).find((function(){o=!1})),n({target:\"Array\",proto:!0,forced:o},{find:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),s(\"find\")},{\"../internals/add-to-unscopables\":225,\"../internals/array-iteration\":229,\"../internals/export\":259}],360:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/array-includes\").includes,s=e(\"../internals/fails\"),o=e(\"../internals/add-to-unscopables\");n({target:\"Array\",proto:!0,forced:s((function(){return!Array(1).includes()}))},{includes:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),o(\"includes\")},{\"../internals/add-to-unscopables\":225,\"../internals/array-includes\":228,\"../internals/export\":259,\"../internals/fails\":260}],361:[function(e,t,r){\"use strict\";var n=e(\"../internals/to-indexed-object\"),i=e(\"../internals/add-to-unscopables\"),s=e(\"../internals/iterators\"),o=e(\"../internals/internal-state\"),a=e(\"../internals/object-define-property\").f,l=e(\"../internals/iterator-define\"),c=e(\"../internals/create-iter-result-object\"),u=e(\"../internals/is-pure\"),h=e(\"../internals/descriptors\"),f=o.set,d=o.getterFor(\"Array Iterator\");t.exports=l(Array,\"Array\",(function(e,t){f(this,{type:\"Array Iterator\",target:n(e),index:0,kind:t})}),(function(){var e=d(this),t=e.target,r=e.kind,n=e.index++;if(!t||n>=t.length)return e.target=void 0,c(void 0,!0);switch(r){case\"keys\":return c(n,!1);case\"values\":return c(t[n],!1)}return c([n,t[n]],!1)}),\"values\");var p=s.Arguments=s.Array;if(i(\"keys\"),i(\"values\"),i(\"entries\"),!u&&h&&\"values\"!==p.name)try{a(p,\"name\",{value:\"values\"})}catch(e){}},{\"../internals/add-to-unscopables\":225,\"../internals/create-iter-result-object\":240,\"../internals/descriptors\":247,\"../internals/internal-state\":282,\"../internals/is-pure\":290,\"../internals/iterator-define\":296,\"../internals/iterators\":298,\"../internals/object-define-property\":308,\"../internals/to-indexed-object\":341}],362:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/get-built-in\"),s=e(\"../internals/function-apply\"),o=e(\"../internals/function-call\"),a=e(\"../internals/function-uncurry-this\"),l=e(\"../internals/fails\"),c=e(\"../internals/is-callable\"),u=e(\"../internals/is-symbol\"),h=e(\"../internals/array-slice\"),f=e(\"../internals/get-json-replacer-function\"),d=e(\"../internals/symbol-constructor-detection\"),p=String,m=i(\"JSON\",\"stringify\"),b=a(/./.exec),g=a(\"\".charAt),y=a(\"\".charCodeAt),v=a(\"\".replace),w=a(1..toString),_=/[\\uD800-\\uDFFF]/g,x=/^[\\uD800-\\uDBFF]$/,k=/^[\\uDC00-\\uDFFF]$/,S=!d||l((function(){var e=i(\"Symbol\")(\"stringify detection\");return\"[null]\"!==m([e])||\"{}\"!==m({a:e})||\"{}\"!==m(Object(e))})),M=l((function(){return'\"\\\\udf06\\\\ud834\"'!==m(\"\\udf06\\ud834\")||'\"\\\\udead\"'!==m(\"\\udead\")})),C=function(e,t){var r=h(arguments),n=f(t);if(c(n)||void 0!==e&&!u(e))return r[1]=function(e,t){if(c(n)&&(t=o(n,this,p(e),t)),!u(t))return t},s(m,null,r)},T=function(e,t,r){var n=g(r,t-1),i=g(r,t+1);return b(x,e)&&!b(k,i)||b(k,e)&&!b(x,n)?\"\\\\u\"+w(y(e,0),16):e};m&&n({target:\"JSON\",stat:!0,arity:3,forced:S||M},{stringify:function(e,t,r){var n=h(arguments),i=s(S?C:m,null,n);return M&&\"string\"==typeof i?v(i,_,T):i}})},{\"../internals/array-slice\":231,\"../internals/export\":259,\"../internals/fails\":260,\"../internals/function-apply\":261,\"../internals/function-call\":264,\"../internals/function-uncurry-this\":268,\"../internals/get-built-in\":269,\"../internals/get-json-replacer-function\":272,\"../internals/is-callable\":285,\"../internals/is-symbol\":292,\"../internals/symbol-constructor-detection\":336}],363:[function(e,t,r){\"use strict\";e(\"../internals/export\")({target:\"Number\",stat:!0},{isNaN:function(e){return e!=e}})},{\"../internals/export\":259}],364:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/object-assign\");n({target:\"Object\",stat:!0,arity:2,forced:Object.assign!==i},{assign:i})},{\"../internals/export\":259,\"../internals/object-assign\":305}],365:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/symbol-constructor-detection\"),s=e(\"../internals/fails\"),o=e(\"../internals/object-get-own-property-symbols\"),a=e(\"../internals/to-object\");n({target:\"Object\",stat:!0,forced:!i||s((function(){o.f(1)}))},{getOwnPropertySymbols:function(e){var t=o.f;return t?t(a(e)):[]}})},{\"../internals/export\":259,\"../internals/fails\":260,\"../internals/object-get-own-property-symbols\":312,\"../internals/symbol-constructor-detection\":336,\"../internals/to-object\":344}],366:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/to-object\"),s=e(\"../internals/object-keys\");n({target:\"Object\",stat:!0,forced:e(\"../internals/fails\")((function(){s(1)}))},{keys:function(e){return s(i(e))}})},{\"../internals/export\":259,\"../internals/fails\":260,\"../internals/object-keys\":316,\"../internals/to-object\":344}],367:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/object-to-array\").values;n({target:\"Object\",stat:!0},{values:function(e){return i(e)}})},{\"../internals/export\":259,\"../internals/object-to-array\":319}],368:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/function-call\"),s=e(\"../internals/a-callable\"),o=e(\"../internals/new-promise-capability\"),a=e(\"../internals/perform\"),l=e(\"../internals/iterate\");n({target:\"Promise\",stat:!0,forced:e(\"../internals/promise-statics-incorrect-iteration\")},{all:function(e){var t=this,r=o.f(t),n=r.resolve,c=r.reject,u=a((function(){var r=s(t.resolve),o=[],a=0,u=1;l(e,(function(e){var s=a++,l=!1;u++,i(r,t,e).then((function(e){l||(l=!0,o[s]=e,--u||n(o))}),c)})),--u||n(o)}));return u.error&&c(u.value),r.promise}})},{\"../internals/a-callable\":222,\"../internals/export\":259,\"../internals/function-call\":264,\"../internals/iterate\":293,\"../internals/new-promise-capability\":303,\"../internals/perform\":323,\"../internals/promise-statics-incorrect-iteration\":327}],369:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/is-pure\"),s=e(\"../internals/promise-constructor-detection\").CONSTRUCTOR,o=e(\"../internals/promise-native-constructor\"),a=e(\"../internals/get-built-in\"),l=e(\"../internals/is-callable\"),c=e(\"../internals/define-built-in\"),u=o&&o.prototype;if(n({target:\"Promise\",proto:!0,forced:s,real:!0},{catch:function(e){return this.then(void 0,e)}}),!i&&l(o)){var h=a(\"Promise\").prototype.catch;u.catch!==h&&c(u,\"catch\",h,{unsafe:!0})}},{\"../internals/define-built-in\":245,\"../internals/export\":259,\"../internals/get-built-in\":269,\"../internals/is-callable\":285,\"../internals/is-pure\":290,\"../internals/promise-constructor-detection\":324,\"../internals/promise-native-constructor\":325}],370:[function(e,t,r){\"use strict\";var n,i,s,o=e(\"../internals/export\"),a=e(\"../internals/is-pure\"),l=e(\"../internals/engine-is-node\"),c=e(\"../internals/global\"),u=e(\"../internals/function-call\"),h=e(\"../internals/define-built-in\"),f=e(\"../internals/object-set-prototype-of\"),d=e(\"../internals/set-to-string-tag\"),p=e(\"../internals/set-species\"),m=e(\"../internals/a-callable\"),b=e(\"../internals/is-callable\"),g=e(\"../internals/is-object\"),y=e(\"../internals/an-instance\"),v=e(\"../internals/species-constructor\"),w=e(\"../internals/task\").set,_=e(\"../internals/microtask\"),x=e(\"../internals/host-report-errors\"),k=e(\"../internals/perform\"),S=e(\"../internals/queue\"),M=e(\"../internals/internal-state\"),C=e(\"../internals/promise-native-constructor\"),T=e(\"../internals/promise-constructor-detection\"),E=e(\"../internals/new-promise-capability\"),A=T.CONSTRUCTOR,R=T.REJECTION_EVENT,O=T.SUBCLASSING,j=M.getterFor(\"Promise\"),I=M.set,N=C&&C.prototype,P=C,B=N,D=c.TypeError,F=c.document,L=c.process,z=E.f,U=z,$=!!(F&&F.createEvent&&c.dispatchEvent),H=function(e){var t;return!(!g(e)||!b(t=e.then))&&t},V=function(e,t){var r,n,i,s=t.value,o=1===t.state,a=o?e.ok:e.fail,l=e.resolve,c=e.reject,h=e.domain;try{a?(o||(2===t.rejection&&Y(t),t.rejection=1),!0===a?r=s:(h&&h.enter(),r=a(s),h&&(h.exit(),i=!0)),r===e.promise?c(new D(\"Promise-chain cycle\")):(n=H(r))?u(n,r,l,c):l(r)):c(s)}catch(e){h&&!i&&h.exit(),c(e)}},q=function(e,t){e.notified||(e.notified=!0,_((function(){for(var r,n=e.reactions;r=n.get();)V(r,e);e.notified=!1,t&&!e.rejection&&X(e)})))},W=function(e,t,r){var n,i;$?((n=F.createEvent(\"Event\")).promise=t,n.reason=r,n.initEvent(e,!1,!0),c.dispatchEvent(n)):n={promise:t,reason:r},!R&&(i=c[\"on\"+e])?i(n):\"unhandledrejection\"===e&&x(\"Unhandled promise rejection\",r)},X=function(e){u(w,c,(function(){var t,r=e.facade,n=e.value;if(K(e)&&(t=k((function(){l?L.emit(\"unhandledRejection\",n,r):W(\"unhandledrejection\",r,n)})),e.rejection=l||K(e)?2:1,t.error))throw t.value}))},K=function(e){return 1!==e.rejection&&!e.parent},Y=function(e){u(w,c,(function(){var t=e.facade;l?L.emit(\"rejectionHandled\",t):W(\"rejectionhandled\",t,e.value)}))},Z=function(e,t,r){return function(n){e(t,n,r)}},G=function(e,t,r){e.done||(e.done=!0,r&&(e=r),e.value=t,e.state=2,q(e,!0))},J=function(e,t,r){if(!e.done){e.done=!0,r&&(e=r);try{if(e.facade===t)throw new D(\"Promise can't be resolved itself\");var n=H(t);n?_((function(){var r={done:!1};try{u(n,t,Z(J,r,e),Z(G,r,e))}catch(t){G(r,t,e)}})):(e.value=t,e.state=1,q(e,!1))}catch(t){G({done:!1},t,e)}}};if(A&&(B=(P=function(e){y(this,B),m(e),u(n,this);var t=j(this);try{e(Z(J,t),Z(G,t))}catch(e){G(t,e)}}).prototype,(n=function(e){I(this,{type:\"Promise\",done:!1,notified:!1,parent:!1,reactions:new S,rejection:!1,state:0,value:void 0})}).prototype=h(B,\"then\",(function(e,t){var r=j(this),n=z(v(this,P));return r.parent=!0,n.ok=!b(e)||e,n.fail=b(t)&&t,n.domain=l?L.domain:void 0,0===r.state?r.reactions.add(n):_((function(){V(n,r)})),n.promise})),i=function(){var e=new n,t=j(e);this.promise=e,this.resolve=Z(J,t),this.reject=Z(G,t)},E.f=z=function(e){return e===P||void 0===e?new i(e):U(e)},!a&&b(C)&&N!==Object.prototype)){s=N.then,O||h(N,\"then\",(function(e,t){var r=this;return new P((function(e,t){u(s,r,e,t)})).then(e,t)}),{unsafe:!0});try{delete N.constructor}catch(e){}f&&f(N,B)}o({global:!0,constructor:!0,wrap:!0,forced:A},{Promise:P}),d(P,\"Promise\",!1,!0),p(\"Promise\")},{\"../internals/a-callable\":222,\"../internals/an-instance\":226,\"../internals/define-built-in\":245,\"../internals/engine-is-node\":254,\"../internals/export\":259,\"../internals/function-call\":264,\"../internals/global\":274,\"../internals/host-report-errors\":277,\"../internals/internal-state\":282,\"../internals/is-callable\":285,\"../internals/is-object\":289,\"../internals/is-pure\":290,\"../internals/microtask\":302,\"../internals/new-promise-capability\":303,\"../internals/object-set-prototype-of\":318,\"../internals/perform\":323,\"../internals/promise-constructor-detection\":324,\"../internals/promise-native-constructor\":325,\"../internals/queue\":328,\"../internals/set-species\":330,\"../internals/set-to-string-tag\":331,\"../internals/species-constructor\":335,\"../internals/task\":339}],371:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/is-pure\"),s=e(\"../internals/promise-native-constructor\"),o=e(\"../internals/fails\"),a=e(\"../internals/get-built-in\"),l=e(\"../internals/is-callable\"),c=e(\"../internals/species-constructor\"),u=e(\"../internals/promise-resolve\"),h=e(\"../internals/define-built-in\"),f=s&&s.prototype;if(n({target:\"Promise\",proto:!0,real:!0,forced:!!s&&o((function(){f.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=c(this,a(\"Promise\")),r=l(e);return this.then(r?function(r){return u(t,e()).then((function(){return r}))}:e,r?function(r){return u(t,e()).then((function(){throw r}))}:e)}}),!i&&l(s)){var d=a(\"Promise\").prototype.finally;f.finally!==d&&h(f,\"finally\",d,{unsafe:!0})}},{\"../internals/define-built-in\":245,\"../internals/export\":259,\"../internals/fails\":260,\"../internals/get-built-in\":269,\"../internals/is-callable\":285,\"../internals/is-pure\":290,\"../internals/promise-native-constructor\":325,\"../internals/promise-resolve\":326,\"../internals/species-constructor\":335}],372:[function(e,t,r){\"use strict\";e(\"../modules/es.promise.constructor\"),e(\"../modules/es.promise.all\"),e(\"../modules/es.promise.catch\"),e(\"../modules/es.promise.race\"),e(\"../modules/es.promise.reject\"),e(\"../modules/es.promise.resolve\")},{\"../modules/es.promise.all\":368,\"../modules/es.promise.catch\":369,\"../modules/es.promise.constructor\":370,\"../modules/es.promise.race\":373,\"../modules/es.promise.reject\":374,\"../modules/es.promise.resolve\":375}],373:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/function-call\"),s=e(\"../internals/a-callable\"),o=e(\"../internals/new-promise-capability\"),a=e(\"../internals/perform\"),l=e(\"../internals/iterate\");n({target:\"Promise\",stat:!0,forced:e(\"../internals/promise-statics-incorrect-iteration\")},{race:function(e){var t=this,r=o.f(t),n=r.reject,c=a((function(){var o=s(t.resolve);l(e,(function(e){i(o,t,e).then(r.resolve,n)}))}));return c.error&&n(c.value),r.promise}})},{\"../internals/a-callable\":222,\"../internals/export\":259,\"../internals/function-call\":264,\"../internals/iterate\":293,\"../internals/new-promise-capability\":303,\"../internals/perform\":323,\"../internals/promise-statics-incorrect-iteration\":327}],374:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/function-call\"),s=e(\"../internals/new-promise-capability\");n({target:\"Promise\",stat:!0,forced:e(\"../internals/promise-constructor-detection\").CONSTRUCTOR},{reject:function(e){var t=s.f(this);return i(t.reject,void 0,e),t.promise}})},{\"../internals/export\":259,\"../internals/function-call\":264,\"../internals/new-promise-capability\":303,\"../internals/promise-constructor-detection\":324}],375:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/get-built-in\"),s=e(\"../internals/is-pure\"),o=e(\"../internals/promise-native-constructor\"),a=e(\"../internals/promise-constructor-detection\").CONSTRUCTOR,l=e(\"../internals/promise-resolve\"),c=i(\"Promise\"),u=s&&!a;n({target:\"Promise\",stat:!0,forced:s||a},{resolve:function(e){return l(u&&this===c?o:this,e)}})},{\"../internals/export\":259,\"../internals/get-built-in\":269,\"../internals/is-pure\":290,\"../internals/promise-constructor-detection\":324,\"../internals/promise-native-constructor\":325,\"../internals/promise-resolve\":326}],376:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/function-uncurry-this\"),s=e(\"../internals/to-absolute-index\"),o=RangeError,a=String.fromCharCode,l=String.fromCodePoint,c=i([].join);n({target:\"String\",stat:!0,arity:1,forced:!!l&&1!==l.length},{fromCodePoint:function(e){for(var t,r=[],n=arguments.length,i=0;n>i;){if(t=+arguments[i++],s(t,1114111)!==t)throw new o(t+\" is not a valid code point\");r[i]=t<65536?a(t):a(55296+((t-=65536)>>10),t%1024+56320)}return c(r,\"\")}})},{\"../internals/export\":259,\"../internals/function-uncurry-this\":268,\"../internals/to-absolute-index\":340}],377:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/function-uncurry-this\"),s=e(\"../internals/not-a-regexp\"),o=e(\"../internals/require-object-coercible\"),a=e(\"../internals/to-string\"),l=e(\"../internals/correct-is-regexp-logic\"),c=i(\"\".indexOf);n({target:\"String\",proto:!0,forced:!l(\"includes\")},{includes:function(e){return!!~c(a(o(this)),a(s(e)),arguments.length>1?arguments[1]:void 0)}})},{\"../internals/correct-is-regexp-logic\":238,\"../internals/export\":259,\"../internals/function-uncurry-this\":268,\"../internals/not-a-regexp\":304,\"../internals/require-object-coercible\":329,\"../internals/to-string\":348}],378:[function(e,t,r){\"use strict\";e(\"../internals/well-known-symbol-define\")(\"asyncIterator\")},{\"../internals/well-known-symbol-define\":355}],379:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/global\"),s=e(\"../internals/function-call\"),o=e(\"../internals/function-uncurry-this\"),a=e(\"../internals/is-pure\"),l=e(\"../internals/descriptors\"),c=e(\"../internals/symbol-constructor-detection\"),u=e(\"../internals/fails\"),h=e(\"../internals/has-own-property\"),f=e(\"../internals/object-is-prototype-of\"),d=e(\"../internals/an-object\"),p=e(\"../internals/to-indexed-object\"),m=e(\"../internals/to-property-key\"),b=e(\"../internals/to-string\"),g=e(\"../internals/create-property-descriptor\"),y=e(\"../internals/object-create\"),v=e(\"../internals/object-keys\"),w=e(\"../internals/object-get-own-property-names\"),_=e(\"../internals/object-get-own-property-names-external\"),x=e(\"../internals/object-get-own-property-symbols\"),k=e(\"../internals/object-get-own-property-descriptor\"),S=e(\"../internals/object-define-property\"),M=e(\"../internals/object-define-properties\"),C=e(\"../internals/object-property-is-enumerable\"),T=e(\"../internals/define-built-in\"),E=e(\"../internals/define-built-in-accessor\"),A=e(\"../internals/shared\"),R=e(\"../internals/shared-key\"),O=e(\"../internals/hidden-keys\"),j=e(\"../internals/uid\"),I=e(\"../internals/well-known-symbol\"),N=e(\"../internals/well-known-symbol-wrapped\"),P=e(\"../internals/well-known-symbol-define\"),B=e(\"../internals/symbol-define-to-primitive\"),D=e(\"../internals/set-to-string-tag\"),F=e(\"../internals/internal-state\"),L=e(\"../internals/array-iteration\").forEach,z=R(\"hidden\"),U=F.set,$=F.getterFor(\"Symbol\"),H=Object.prototype,V=i.Symbol,q=V&&V.prototype,W=i.RangeError,X=i.TypeError,K=i.QObject,Y=k.f,Z=S.f,G=_.f,J=C.f,Q=o([].push),ee=A(\"symbols\"),te=A(\"op-symbols\"),re=A(\"wks\"),ne=!K||!K.prototype||!K.prototype.findChild,ie=function(e,t,r){var n=Y(H,t);n&&delete H[t],Z(e,t,r),n&&e!==H&&Z(H,t,n)},se=l&&u((function(){return 7!==y(Z({},\"a\",{get:function(){return Z(this,\"a\",{value:7}).a}})).a}))?ie:Z,oe=function(e,t){var r=ee[e]=y(q);return U(r,{type:\"Symbol\",tag:e,description:t}),l||(r.description=t),r},ae=function(e,t,r){e===H&&ae(te,t,r),d(e);var n=m(t);return d(r),h(ee,n)?(r.enumerable?(h(e,z)&&e[z][n]&&(e[z][n]=!1),r=y(r,{enumerable:g(0,!1)})):(h(e,z)||Z(e,z,g(1,{})),e[z][n]=!0),se(e,n,r)):Z(e,n,r)},le=function(e,t){d(e);var r=p(t),n=v(r).concat(fe(r));return L(n,(function(t){l&&!s(ce,r,t)||ae(e,t,r[t])})),e},ce=function(e){var t=m(e),r=s(J,this,t);return!(this===H&&h(ee,t)&&!h(te,t))&&(!(r||!h(this,t)||!h(ee,t)||h(this,z)&&this[z][t])||r)},ue=function(e,t){var r=p(e),n=m(t);if(r!==H||!h(ee,n)||h(te,n)){var i=Y(r,n);return!i||!h(ee,n)||h(r,z)&&r[z][n]||(i.enumerable=!0),i}},he=function(e){var t=G(p(e)),r=[];return L(t,(function(e){h(ee,e)||h(O,e)||Q(r,e)})),r},fe=function(e){var t=e===H,r=G(t?te:p(e)),n=[];return L(r,(function(e){!h(ee,e)||t&&!h(H,e)||Q(n,ee[e])})),n};c||(T(q=(V=function(){if(f(q,this))throw new X(\"Symbol is not a constructor\");var e=arguments.length&&void 0!==arguments[0]?b(arguments[0]):void 0,t=j(e),r=function(e){this===H&&s(r,te,e),h(this,z)&&h(this[z],t)&&(this[z][t]=!1);var n=g(1,e);try{se(this,t,n)}catch(e){if(!(e instanceof W))throw e;ie(this,t,n)}};return l&&ne&&se(H,t,{configurable:!0,set:r}),oe(t,e)}).prototype,\"toString\",(function(){return $(this).tag})),T(V,\"withoutSetter\",(function(e){return oe(j(e),e)})),C.f=ce,S.f=ae,M.f=le,k.f=ue,w.f=_.f=he,x.f=fe,N.f=function(e){return oe(I(e),e)},l&&(E(q,\"description\",{configurable:!0,get:function(){return $(this).description}}),a||T(H,\"propertyIsEnumerable\",ce,{unsafe:!0}))),n({global:!0,constructor:!0,wrap:!0,forced:!c,sham:!c},{Symbol:V}),L(v(re),(function(e){P(e)})),n({target:\"Symbol\",stat:!0,forced:!c},{useSetter:function(){ne=!0},useSimple:function(){ne=!1}}),n({target:\"Object\",stat:!0,forced:!c,sham:!l},{create:function(e,t){return void 0===t?y(e):le(y(e),t)},defineProperty:ae,defineProperties:le,getOwnPropertyDescriptor:ue}),n({target:\"Object\",stat:!0,forced:!c},{getOwnPropertyNames:he}),B(),D(V,\"Symbol\"),O[z]=!0},{\"../internals/an-object\":227,\"../internals/array-iteration\":229,\"../internals/create-property-descriptor\":242,\"../internals/define-built-in\":245,\"../internals/define-built-in-accessor\":244,\"../internals/descriptors\":247,\"../internals/export\":259,\"../internals/fails\":260,\"../internals/function-call\":264,\"../internals/function-uncurry-this\":268,\"../internals/global\":274,\"../internals/has-own-property\":275,\"../internals/hidden-keys\":276,\"../internals/internal-state\":282,\"../internals/is-pure\":290,\"../internals/object-create\":306,\"../internals/object-define-properties\":307,\"../internals/object-define-property\":308,\"../internals/object-get-own-property-descriptor\":309,\"../internals/object-get-own-property-names\":311,\"../internals/object-get-own-property-names-external\":310,\"../internals/object-get-own-property-symbols\":312,\"../internals/object-is-prototype-of\":314,\"../internals/object-keys\":316,\"../internals/object-property-is-enumerable\":317,\"../internals/set-to-string-tag\":331,\"../internals/shared\":334,\"../internals/shared-key\":332,\"../internals/symbol-constructor-detection\":336,\"../internals/symbol-define-to-primitive\":337,\"../internals/to-indexed-object\":341,\"../internals/to-property-key\":346,\"../internals/to-string\":348,\"../internals/uid\":350,\"../internals/well-known-symbol\":357,\"../internals/well-known-symbol-define\":355,\"../internals/well-known-symbol-wrapped\":356}],380:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/get-built-in\"),s=e(\"../internals/has-own-property\"),o=e(\"../internals/to-string\"),a=e(\"../internals/shared\"),l=e(\"../internals/symbol-registry-detection\"),c=a(\"string-to-symbol-registry\"),u=a(\"symbol-to-string-registry\");n({target:\"Symbol\",stat:!0,forced:!l},{for:function(e){var t=o(e);if(s(c,t))return c[t];var r=i(\"Symbol\")(t);return c[t]=r,u[r]=t,r}})},{\"../internals/export\":259,\"../internals/get-built-in\":269,\"../internals/has-own-property\":275,\"../internals/shared\":334,\"../internals/symbol-registry-detection\":338,\"../internals/to-string\":348}],381:[function(e,t,r){\"use strict\";e(\"../modules/es.symbol.constructor\"),e(\"../modules/es.symbol.for\"),e(\"../modules/es.symbol.key-for\"),e(\"../modules/es.json.stringify\"),e(\"../modules/es.object.get-own-property-symbols\")},{\"../modules/es.json.stringify\":362,\"../modules/es.object.get-own-property-symbols\":365,\"../modules/es.symbol.constructor\":379,\"../modules/es.symbol.for\":380,\"../modules/es.symbol.key-for\":382}],382:[function(e,t,r){\"use strict\";var n=e(\"../internals/export\"),i=e(\"../internals/has-own-property\"),s=e(\"../internals/is-symbol\"),o=e(\"../internals/try-to-string\"),a=e(\"../internals/shared\"),l=e(\"../internals/symbol-registry-detection\"),c=a(\"symbol-to-string-registry\");n({target:\"Symbol\",stat:!0,forced:!l},{keyFor:function(e){if(!s(e))throw new TypeError(o(e)+\" is not a symbol\");if(i(c,e))return c[e]}})},{\"../internals/export\":259,\"../internals/has-own-property\":275,\"../internals/is-symbol\":292,\"../internals/shared\":334,\"../internals/symbol-registry-detection\":338,\"../internals/try-to-string\":349}],383:[function(e,t,r){\"use strict\";function n(e){return Object.prototype.toString.call(e)}r.isArray=function(e){return Array.isArray?Array.isArray(e):\"[object Array]\"===n(e)},r.isBoolean=function(e){return\"boolean\"==typeof e},r.isNull=function(e){return null===e},r.isNullOrUndefined=function(e){return null==e},r.isNumber=function(e){return\"number\"==typeof e},r.isString=function(e){return\"string\"==typeof e},r.isSymbol=function(e){return\"symbol\"==typeof e},r.isUndefined=function(e){return void 0===e},r.isRegExp=function(e){return\"[object RegExp]\"===n(e)},r.isObject=function(e){return\"object\"==typeof e&&null!==e},r.isDate=function(e){return\"[object Date]\"===n(e)},r.isError=function(e){return\"[object Error]\"===n(e)||e instanceof Error},r.isFunction=function(e){return\"function\"==typeof e},r.isPrimitive=function(e){return null===e||\"boolean\"==typeof e||\"number\"==typeof e||\"string\"==typeof e||\"symbol\"==typeof e||void 0===e},r.isBuffer=e(\"buffer\").Buffer.isBuffer},{buffer:220}],384:[function(e,t,r){(function(r){(function(){\"use strict\";var n=e(\"elliptic\"),i=e(\"bn.js\");t.exports=function(e){return new o(e)};var s={secp256k1:{name:\"secp256k1\",byteLength:32},secp224r1:{name:\"p224\",byteLength:28},prime256v1:{name:\"p256\",byteLength:32},prime192v1:{name:\"p192\",byteLength:24},ed25519:{name:\"ed25519\",byteLength:32},secp384r1:{name:\"p384\",byteLength:48},secp521r1:{name:\"p521\",byteLength:66}};function o(e){this.curveType=s[e],this.curveType||(this.curveType={name:e}),this.curve=new n.ec(this.curveType.name),this.keys=void 0}function a(e,t,n){Array.isArray(e)||(e=e.toArray());var i=new r(e);if(n&&i.length<n){var s=new r(n-i.length);s.fill(0),i=r.concat([s,i])}return t?i.toString(t):i}s.p224=s.secp224r1,s.p256=s.secp256r1=s.prime256v1,s.p192=s.secp192r1=s.prime192v1,s.p384=s.secp384r1,s.p521=s.secp521r1,o.prototype.generateKeys=function(e,t){return this.keys=this.curve.genKeyPair(),this.getPublicKey(e,t)},o.prototype.computeSecret=function(e,t,n){return t=t||\"utf8\",r.isBuffer(e)||(e=new r(e,t)),a(this.curve.keyFromPublic(e).getPublic().mul(this.keys.getPrivate()).getX(),n,this.curveType.byteLength)},o.prototype.getPublicKey=function(e,t){var r=this.keys.getPublic(\"compressed\"===t,!0);return\"hybrid\"===t&&(r[r.length-1]%2?r[0]=7:r[0]=6),a(r,e)},o.prototype.getPrivateKey=function(e){return a(this.keys.getPrivate(),e)},o.prototype.setPublicKey=function(e,t){return t=t||\"utf8\",r.isBuffer(e)||(e=new r(e,t)),this.keys._importPublic(e),this},o.prototype.setPrivateKey=function(e,t){t=t||\"utf8\",r.isBuffer(e)||(e=new r(e,t));var n=new i(e);return n=n.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(n),this}}).call(this)}).call(this,e(\"buffer\").Buffer)},{\"bn.js\":385,buffer:220,elliptic:405}],385:[function(e,t,r){arguments[4][184][0].apply(r,arguments)},{buffer:188,dup:184}],386:[function(e,t,r){\"use strict\";var n=e(\"inherits\"),i=e(\"md5.js\"),s=e(\"ripemd160\"),o=e(\"sha.js\"),a=e(\"cipher-base\");function l(e){a.call(this,\"digest\"),this._hash=e}n(l,a),l.prototype._update=function(e){this._hash.update(e)},l.prototype._final=function(){return this._hash.digest()},t.exports=function(e){return\"md5\"===(e=e.toLowerCase())?new i:\"rmd160\"===e||\"ripemd160\"===e?new s:new l(o(e))}},{\"cipher-base\":221,inherits:440,\"md5.js\":450,ripemd160:493,\"sha.js\":498}],387:[function(e,t,r){\"use strict\";var n=e(\"md5.js\");t.exports=function(e){return(new n).update(e).digest()}},{\"md5.js\":450}],388:[function(e,t,r){\"use strict\";var n=e(\"inherits\"),i=e(\"./legacy\"),s=e(\"cipher-base\"),o=e(\"safe-buffer\").Buffer,a=e(\"create-hash/md5\"),l=e(\"ripemd160\"),c=e(\"sha.js\"),u=o.alloc(128);function h(e,t){s.call(this,\"digest\"),\"string\"==typeof t&&(t=o.from(t));var r=\"sha512\"===e||\"sha384\"===e?128:64;(this._alg=e,this._key=t,t.length>r)?t=(\"rmd160\"===e?new l:c(e)).update(t).digest():t.length<r&&(t=o.concat([t,u],r));for(var n=this._ipad=o.allocUnsafe(r),i=this._opad=o.allocUnsafe(r),a=0;a<r;a++)n[a]=54^t[a],i[a]=92^t[a];this._hash=\"rmd160\"===e?new l:c(e),this._hash.update(n)}n(h,s),h.prototype._update=function(e){this._hash.update(e)},h.prototype._final=function(){var e=this._hash.digest();return(\"rmd160\"===this._alg?new l:c(this._alg)).update(this._opad).update(e).digest()},t.exports=function(e,t){return\"rmd160\"===(e=e.toLowerCase())||\"ripemd160\"===e?new h(\"rmd160\",t):\"md5\"===e?new i(a,t):new h(e,t)}},{\"./legacy\":389,\"cipher-base\":221,\"create-hash/md5\":387,inherits:440,ripemd160:493,\"safe-buffer\":494,\"sha.js\":498}],389:[function(e,t,r){\"use strict\";var n=e(\"inherits\"),i=e(\"safe-buffer\").Buffer,s=e(\"cipher-base\"),o=i.alloc(128);function a(e,t){s.call(this,\"digest\"),\"string\"==typeof t&&(t=i.from(t)),this._alg=e,this._key=t,t.length>64?t=e(t):t.length<64&&(t=i.concat([t,o],64));for(var r=this._ipad=i.allocUnsafe(64),n=this._opad=i.allocUnsafe(64),a=0;a<64;a++)r[a]=54^t[a],n[a]=92^t[a];this._hash=[r]}n(a,s),a.prototype._update=function(e){this._hash.push(e)},a.prototype._final=function(){var e=this._alg(i.concat(this._hash));return this._alg(i.concat([this._opad,e]))},t.exports=a},{\"cipher-base\":221,inherits:440,\"safe-buffer\":494}],390:[function(e,t,r){\"use strict\";r.randomBytes=r.rng=r.pseudoRandomBytes=r.prng=e(\"randombytes\"),r.createHash=r.Hash=e(\"create-hash\"),r.createHmac=r.Hmac=e(\"create-hmac\");var n=e(\"browserify-sign/algos\"),i=Object.keys(n),s=[\"sha1\",\"sha224\",\"sha256\",\"sha384\",\"sha512\",\"md5\",\"rmd160\"].concat(i);r.getHashes=function(){return s};var o=e(\"pbkdf2\");r.pbkdf2=o.pbkdf2,r.pbkdf2Sync=o.pbkdf2Sync;var a=e(\"browserify-cipher\");r.Cipher=a.Cipher,r.createCipher=a.createCipher,r.Cipheriv=a.Cipheriv,r.createCipheriv=a.createCipheriv,r.Decipher=a.Decipher,r.createDecipher=a.createDecipher,r.Decipheriv=a.Decipheriv,r.createDecipheriv=a.createDecipheriv,r.getCiphers=a.getCiphers,r.listCiphers=a.listCiphers;var l=e(\"diffie-hellman\");r.DiffieHellmanGroup=l.DiffieHellmanGroup,r.createDiffieHellmanGroup=l.createDiffieHellmanGroup,r.getDiffieHellman=l.getDiffieHellman,r.createDiffieHellman=l.createDiffieHellman,r.DiffieHellman=l.DiffieHellman;var c=e(\"browserify-sign\");r.createSign=c.createSign,r.Sign=c.Sign,r.createVerify=c.createVerify,r.Verify=c.Verify,r.createECDH=e(\"create-ecdh\");var u=e(\"public-encrypt\");r.publicEncrypt=u.publicEncrypt,r.privateEncrypt=u.privateEncrypt,r.publicDecrypt=u.publicDecrypt,r.privateDecrypt=u.privateDecrypt;var h=e(\"randomfill\");r.randomFill=h.randomFill,r.randomFillSync=h.randomFillSync,r.createCredentials=function(){throw new Error([\"sorry, createCredentials is not implemented yet\",\"we accept pull requests\",\"https://github.com/crypto-browserify/crypto-browserify\"].join(\"\\n\"))},r.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},{\"browserify-cipher\":206,\"browserify-sign\":213,\"browserify-sign/algos\":210,\"create-ecdh\":384,\"create-hash\":386,\"create-hmac\":388,\"diffie-hellman\":400,pbkdf2:460,\"public-encrypt\":468,randombytes:475,randomfill:476}],391:[function(e,t,r){\"use strict\";!function(e,n){\"object\"==typeof r&&void 0!==t?t.exports=n():(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs=n()}(void 0,(function(){var e=6e4,t=36e5,r=\"millisecond\",n=\"second\",i=\"minute\",s=\"hour\",o=\"day\",a=\"week\",l=\"month\",c=\"quarter\",u=\"year\",h=\"date\",f=\"Invalid Date\",d=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,p=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,m={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(e){var t=[\"th\",\"st\",\"nd\",\"rd\"],r=e%100;return\"[\"+e+(t[(r-20)%10]||t[r]||t[0])+\"]\"}},b=function(e,t,r){var n=String(e);return!n||n.length>=t?e:\"\"+Array(t+1-n.length).join(r)+e},g={s:b,z:function(e){var t=-e.utcOffset(),r=Math.abs(t),n=Math.floor(r/60),i=r%60;return(t<=0?\"+\":\"-\")+b(n,2,\"0\")+\":\"+b(i,2,\"0\")},m:function e(t,r){if(t.date()<r.date())return-e(r,t);var n=12*(r.year()-t.year())+(r.month()-t.month()),i=t.clone().add(n,l),s=r-i<0,o=t.clone().add(n+(s?-1:1),l);return+(-(n+(r-i)/(s?i-o:o-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:l,y:u,w:a,d:o,D:h,h:s,m:i,s:n,ms:r,Q:c}[e]||String(e||\"\").toLowerCase().replace(/s$/,\"\")},u:function(e){return void 0===e}},y=\"en\",v={};v[y]=m;var w=\"$isDayjsObject\",_=function(e){return e instanceof M||!(!e||!e[w])},x=function e(t,r,n){var i;if(!t)return y;if(\"string\"==typeof t){var s=t.toLowerCase();v[s]&&(i=s),r&&(v[s]=r,i=s);var o=t.split(\"-\");if(!i&&o.length>1)return e(o[0])}else{var a=t.name;v[a]=t,i=a}return!n&&i&&(y=i),i||!n&&y},k=function(e,t){if(_(e))return e.clone();var r=\"object\"==typeof t?t:{};return r.date=e,r.args=arguments,new M(r)},S=g;S.l=x,S.i=_,S.w=function(e,t){return k(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var M=function(){function m(e){this.$L=x(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[w]=!0}var b=m.prototype;return b.parse=function(e){this.$d=function(e){var t=e.date,r=e.utc;if(null===t)return new Date(NaN);if(S.u(t))return new Date;if(t instanceof Date)return new Date(t);if(\"string\"==typeof t&&!/Z$/i.test(t)){var n=t.match(d);if(n){var i=n[2]-1||0,s=(n[7]||\"0\").substring(0,3);return r?new Date(Date.UTC(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,s)):new Date(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,s)}}return new Date(t)}(e),this.init()},b.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},b.$utils=function(){return S},b.isValid=function(){return!(this.$d.toString()===f)},b.isSame=function(e,t){var r=k(e);return this.startOf(t)<=r&&r<=this.endOf(t)},b.isAfter=function(e,t){return k(e)<this.startOf(t)},b.isBefore=function(e,t){return this.endOf(t)<k(e)},b.$g=function(e,t,r){return S.u(e)?this[t]:this.set(r,e)},b.unix=function(){return Math.floor(this.valueOf()/1e3)},b.valueOf=function(){return this.$d.getTime()},b.startOf=function(e,t){var r=this,c=!!S.u(t)||t,f=S.p(e),d=function(e,t){var n=S.w(r.$u?Date.UTC(r.$y,t,e):new Date(r.$y,t,e),r);return c?n:n.endOf(o)},p=function(e,t){return S.w(r.toDate()[e].apply(r.toDate(\"s\"),(c?[0,0,0,0]:[23,59,59,999]).slice(t)),r)},m=this.$W,b=this.$M,g=this.$D,y=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case u:return c?d(1,0):d(31,11);case l:return c?d(1,b):d(0,b+1);case a:var v=this.$locale().weekStart||0,w=(m<v?m+7:m)-v;return d(c?g-w:g+(6-w),b);case o:case h:return p(y+\"Hours\",0);case s:return p(y+\"Minutes\",1);case i:return p(y+\"Seconds\",2);case n:return p(y+\"Milliseconds\",3);default:return this.clone()}},b.endOf=function(e){return this.startOf(e,!1)},b.$set=function(e,t){var a,c=S.p(e),f=\"set\"+(this.$u?\"UTC\":\"\"),d=(a={},a[o]=f+\"Date\",a[h]=f+\"Date\",a[l]=f+\"Month\",a[u]=f+\"FullYear\",a[s]=f+\"Hours\",a[i]=f+\"Minutes\",a[n]=f+\"Seconds\",a[r]=f+\"Milliseconds\",a)[c],p=c===o?this.$D+(t-this.$W):t;if(c===l||c===u){var m=this.clone().set(h,1);m.$d[d](p),m.init(),this.$d=m.set(h,Math.min(this.$D,m.daysInMonth())).$d}else d&&this.$d[d](p);return this.init(),this},b.set=function(e,t){return this.clone().$set(e,t)},b.get=function(e){return this[S.p(e)]()},b.add=function(r,c){var h,f=this;r=Number(r);var d=S.p(c),p=function(e){var t=k(f);return S.w(t.date(t.date()+Math.round(e*r)),f)};if(d===l)return this.set(l,this.$M+r);if(d===u)return this.set(u,this.$y+r);if(d===o)return p(1);if(d===a)return p(7);var m=(h={},h[i]=e,h[s]=t,h[n]=1e3,h)[d]||1,b=this.$d.getTime()+r*m;return S.w(b,this)},b.subtract=function(e,t){return this.add(-1*e,t)},b.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return r.invalidDate||f;var n=e||\"YYYY-MM-DDTHH:mm:ssZ\",i=S.z(this),s=this.$H,o=this.$m,a=this.$M,l=r.weekdays,c=r.months,u=r.meridiem,h=function(e,r,i,s){return e&&(e[r]||e(t,n))||i[r].slice(0,s)},d=function(e){return S.s(s%12||12,e,\"0\")},m=u||function(e,t,r){var n=e<12?\"AM\":\"PM\";return r?n.toLowerCase():n};return n.replace(p,(function(e,n){return n||function(e){switch(e){case\"YY\":return String(t.$y).slice(-2);case\"YYYY\":return S.s(t.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return S.s(a+1,2,\"0\");case\"MMM\":return h(r.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return t.$D;case\"DD\":return S.s(t.$D,2,\"0\");case\"d\":return String(t.$W);case\"dd\":return h(r.weekdaysMin,t.$W,l,2);case\"ddd\":return h(r.weekdaysShort,t.$W,l,3);case\"dddd\":return l[t.$W];case\"H\":return String(s);case\"HH\":return S.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return m(s,o,!0);case\"A\":return m(s,o,!1);case\"m\":return String(o);case\"mm\":return S.s(o,2,\"0\");case\"s\":return String(t.$s);case\"ss\":return S.s(t.$s,2,\"0\");case\"SSS\":return S.s(t.$ms,3,\"0\");case\"Z\":return i}return null}(e)||i.replace(\":\",\"\")}))},b.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},b.diff=function(r,h,f){var d,p=this,m=S.p(h),b=k(r),g=(b.utcOffset()-this.utcOffset())*e,y=this-b,v=function(){return S.m(p,b)};switch(m){case u:d=v()/12;break;case l:d=v();break;case c:d=v()/3;break;case a:d=(y-g)/6048e5;break;case o:d=(y-g)/864e5;break;case s:d=y/t;break;case i:d=y/e;break;case n:d=y/1e3;break;default:d=y}return f?d:S.a(d)},b.daysInMonth=function(){return this.endOf(l).$D},b.$locale=function(){return v[this.$L]},b.locale=function(e,t){if(!e)return this.$L;var r=this.clone(),n=x(e,t,!0);return n&&(r.$L=n),r},b.clone=function(){return S.w(this.$d,this)},b.toDate=function(){return new Date(this.valueOf())},b.toJSON=function(){return this.isValid()?this.toISOString():null},b.toISOString=function(){return this.$d.toISOString()},b.toString=function(){return this.$d.toUTCString()},m}(),C=M.prototype;return k.prototype=C,[[\"$ms\",r],[\"$s\",n],[\"$m\",i],[\"$H\",s],[\"$W\",o],[\"$M\",l],[\"$y\",u],[\"$D\",h]].forEach((function(e){C[e[1]]=function(t){return this.$g(t,e[0],e[1])}})),k.extend=function(e,t){return e.$i||(e(t,M,k),e.$i=!0),k},k.locale=x,k.isDayjs=_,k.unix=function(e){return k(1e3*e)},k.en=v[y],k.Ls=v,k.p={},k}))},{}],392:[function(e,t,r){\"use strict\";!function(e,n){\"object\"==typeof r&&void 0!==t?t.exports=n():(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=n()}(void 0,(function(){var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,r=/\\d\\d/,n=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,s={},o=function(e){return(e=+e)+(e>68?1900:2e3)},a=function(e){return function(t){this[e]=+t}},l=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),r=60*t[1]+(+t[2]||0);return 0===r?0:\"+\"===t[0]?-r:r}(e)}],c=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var r,n=s.meridiem;if(n){for(var i=1;i<=24;i+=1)if(e.indexOf(n(i,0,t))>-1){r=i>12;break}}else r=e===(t?\"pm\":\"PM\");return r},h={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[n,a(\"seconds\")],ss:[n,a(\"seconds\")],m:[n,a(\"minutes\")],mm:[n,a(\"minutes\")],H:[n,a(\"hours\")],h:[n,a(\"hours\")],HH:[n,a(\"hours\")],hh:[n,a(\"hours\")],D:[n,a(\"day\")],DD:[r,a(\"day\")],Do:[i,function(e){var t=s.ordinal,r=e.match(/\\d+/);if(this.day=r[0],t)for(var n=1;n<=31;n+=1)t(n).replace(/\\[|\\]/g,\"\")===e&&(this.day=n)}],M:[n,a(\"month\")],MM:[r,a(\"month\")],MMM:[i,function(e){var t=c(\"months\"),r=(c(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(r<1)throw new Error;this.month=r%12||r}],MMMM:[i,function(e){var t=c(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[r,function(e){this.year=o(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:l,ZZ:l};function f(r){var n,i;n=r,i=s&&s.formats;for(var o=(r=n.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,r,n){var s=n&&n.toUpperCase();return r||i[n]||e[n]||i[s].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,r){return t||r.slice(1)}))}))).match(t),a=o.length,l=0;l<a;l+=1){var c=o[l],u=h[c],f=u&&u[0],d=u&&u[1];o[l]=d?{regex:f,parser:d}:c.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},r=0,n=0;r<a;r+=1){var i=o[r];if(\"string\"==typeof i)n+=i.length;else{var s=i.regex,l=i.parser,c=e.slice(n),u=s.exec(c)[0];l.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var r=e.hours;t?r<12&&(e.hours+=12):12===r&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,r){r.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(o=e.parseTwoDigitYear);var n=t.prototype,i=n.parse;n.parse=function(e){var t=e.date,n=e.utc,o=e.args;this.$u=n;var a=o[1];if(\"string\"==typeof a){var l=!0===o[2],c=!0===o[3],u=l||c,h=o[2];c&&(h=o[2]),s=this.$locale(),!l&&h&&(s=r.Ls[h]),this.$d=function(e,t,r){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var n=f(t)(e),i=n.year,s=n.month,o=n.day,a=n.hours,l=n.minutes,c=n.seconds,u=n.milliseconds,h=n.zone,d=new Date,p=o||(i||s?1:d.getDate()),m=i||d.getFullYear(),b=0;i&&!s||(b=s>0?s-1:d.getMonth());var g=a||0,y=l||0,v=c||0,w=u||0;return h?new Date(Date.UTC(m,b,p,g,y,v,w+60*h.offset*1e3)):r?new Date(Date.UTC(m,b,p,g,y,v,w)):new Date(m,b,p,g,y,v,w)}catch(e){return new Date(\"\")}}(t,a,n),this.init(),h&&!0!==h&&(this.$L=this.locale(h).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var d=a.length,p=1;p<=d;p+=1){o[1]=a[p-1];var m=r.apply(this,o);if(m.isValid()){this.$d=m.$d,this.$L=m.$L,this.init();break}p===d&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}))},{}],393:[function(e,t,r){\"use strict\";!function(e,n){\"object\"==typeof r&&void 0!==t?t.exports=n():(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_utc=n()}(void 0,(function(){var e=\"minute\",t=/[+-]\\d\\d(?::?\\d\\d)?/g,r=/([+-]|\\d\\d)/g;return function(n,i,s){var o=i.prototype;s.utc=function(e){var t={date:e,utc:!0,args:arguments};return new i(t)},o.utc=function(t){var r=s(this.toDate(),{locale:this.$L,utc:!0});return t?r.add(this.utcOffset(),e):r},o.local=function(){return s(this.toDate(),{locale:this.$L,utc:!1})};var a=o.parse;o.parse=function(e){e.utc&&(this.$u=!0),this.$utils().u(e.$offset)||(this.$offset=e.$offset),a.call(this,e)};var l=o.init;o.init=function(){if(this.$u){var e=this.$d;this.$y=e.getUTCFullYear(),this.$M=e.getUTCMonth(),this.$D=e.getUTCDate(),this.$W=e.getUTCDay(),this.$H=e.getUTCHours(),this.$m=e.getUTCMinutes(),this.$s=e.getUTCSeconds(),this.$ms=e.getUTCMilliseconds()}else l.call(this)};var c=o.utcOffset;o.utcOffset=function(n,i){var s=this.$utils().u;if(s(n))return this.$u?0:s(this.$offset)?c.call(this):this.$offset;if(\"string\"==typeof n&&null===(n=function(e){void 0===e&&(e=\"\");var n=e.match(t);if(!n)return null;var i=(\"\"+n[0]).match(r)||[\"-\",0,0],s=i[0],o=60*+i[1]+ +i[2];return 0===o?0:\"+\"===s?o:-o}(n)))return this;var o=Math.abs(n)<=16?60*n:n,a=this;if(i)return a.$offset=o,a.$u=0===n,a;if(0!==n){var l=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(a=this.local().add(o+l,e)).$offset=o,a.$x.$localOffset=l}else a=this.utc();return a};var u=o.format;o.format=function(e){var t=e||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return u.call(this,t)},o.valueOf=function(){var e=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*e},o.isUTC=function(){return!!this.$u},o.toISOString=function(){return this.toDate().toISOString()},o.toString=function(){return this.toDate().toUTCString()};var h=o.toDate;o.toDate=function(e){return\"s\"===e&&this.$offset?s(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():h.call(this)};var f=o.diff;o.diff=function(e,t,r){if(e&&this.$u===e.$u)return f.call(this,e,t,r);var n=this.local(),i=s(e).local();return f.call(n,i,t,r)}}}))},{}],394:[function(e,t,r){\"use strict\";r.utils=e(\"./des/utils\"),r.Cipher=e(\"./des/cipher\"),r.DES=e(\"./des/des\"),r.CBC=e(\"./des/cbc\"),r.EDE=e(\"./des/ede\")},{\"./des/cbc\":395,\"./des/cipher\":396,\"./des/des\":397,\"./des/ede\":398,\"./des/utils\":399}],395:[function(e,t,r){\"use strict\";var n=e(\"minimalistic-assert\"),i=e(\"inherits\"),s={};function o(e){n.equal(e.length,8,\"Invalid IV length\"),this.iv=new Array(8);for(var t=0;t<this.iv.length;t++)this.iv[t]=e[t]}r.instantiate=function(e){function t(t){e.call(this,t),this._cbcInit()}i(t,e);for(var r=Object.keys(s),n=0;n<r.length;n++){var o=r[n];t.prototype[o]=s[o]}return t.create=function(e){return new t(e)},t},s._cbcInit=function(){var e=new o(this.options.iv);this._cbcState=e},s._update=function(e,t,r,n){var i=this._cbcState,s=this.constructor.super_.prototype,o=i.iv;if(\"encrypt\"===this.type){for(var a=0;a<this.blockSize;a++)o[a]^=e[t+a];s._update.call(this,o,0,r,n);for(a=0;a<this.blockSize;a++)o[a]=r[n+a]}else{s._update.call(this,e,t,r,n);for(a=0;a<this.blockSize;a++)r[n+a]^=o[a];for(a=0;a<this.blockSize;a++)o[a]=e[t+a]}}},{inherits:440,\"minimalistic-assert\":453}],396:[function(e,t,r){\"use strict\";var n=e(\"minimalistic-assert\");function i(e){this.options=e,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0,this.padding=!1!==e.padding}t.exports=i,i.prototype._init=function(){},i.prototype.update=function(e){return 0===e.length?[]:\"decrypt\"===this.type?this._updateDecrypt(e):this._updateEncrypt(e)},i.prototype._buffer=function(e,t){for(var r=Math.min(this.buffer.length-this.bufferOff,e.length-t),n=0;n<r;n++)this.buffer[this.bufferOff+n]=e[t+n];return this.bufferOff+=r,r},i.prototype._flushBuffer=function(e,t){return this._update(this.buffer,0,e,t),this.bufferOff=0,this.blockSize},i.prototype._updateEncrypt=function(e){var t=0,r=0,n=(this.bufferOff+e.length)/this.blockSize|0,i=new Array(n*this.blockSize);0!==this.bufferOff&&(t+=this._buffer(e,t),this.bufferOff===this.buffer.length&&(r+=this._flushBuffer(i,r)));for(var s=e.length-(e.length-t)%this.blockSize;t<s;t+=this.blockSize)this._update(e,t,i,r),r+=this.blockSize;for(;t<e.length;t++,this.bufferOff++)this.buffer[this.bufferOff]=e[t];return i},i.prototype._updateDecrypt=function(e){for(var t=0,r=0,n=Math.ceil((this.bufferOff+e.length)/this.blockSize)-1,i=new Array(n*this.blockSize);n>0;n--)t+=this._buffer(e,t),r+=this._flushBuffer(i,r);return t+=this._buffer(e,t),i},i.prototype.final=function(e){var t,r;return e&&(t=this.update(e)),r=\"encrypt\"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(r):r},i.prototype._pad=function(e,t){if(0===t)return!1;for(;t<e.length;)e[t++]=0;return!0},i.prototype._finalEncrypt=function(){if(!this._pad(this.buffer,this.bufferOff))return[];var e=new Array(this.blockSize);return this._update(this.buffer,0,e,0),e},i.prototype._unpad=function(e){return e},i.prototype._finalDecrypt=function(){n.equal(this.bufferOff,this.blockSize,\"Not enough data to decrypt\");var e=new Array(this.blockSize);return this._flushBuffer(e,0),this._unpad(e)}},{\"minimalistic-assert\":453}],397:[function(e,t,r){\"use strict\";var n=e(\"minimalistic-assert\"),i=e(\"inherits\"),s=e(\"./utils\"),o=e(\"./cipher\");function a(){this.tmp=new Array(2),this.keys=null}function l(e){o.call(this,e);var t=new a;this._desState=t,this.deriveKeys(t,e.key)}i(l,o),t.exports=l,l.create=function(e){return new l(e)};var c=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];l.prototype.deriveKeys=function(e,t){e.keys=new Array(32),n.equal(t.length,this.blockSize,\"Invalid key length\");var r=s.readUInt32BE(t,0),i=s.readUInt32BE(t,4);s.pc1(r,i,e.tmp,0),r=e.tmp[0],i=e.tmp[1];for(var o=0;o<e.keys.length;o+=2){var a=c[o>>>1];r=s.r28shl(r,a),i=s.r28shl(i,a),s.pc2(r,i,e.keys,o)}},l.prototype._update=function(e,t,r,n){var i=this._desState,o=s.readUInt32BE(e,t),a=s.readUInt32BE(e,t+4);s.ip(o,a,i.tmp,0),o=i.tmp[0],a=i.tmp[1],\"encrypt\"===this.type?this._encrypt(i,o,a,i.tmp,0):this._decrypt(i,o,a,i.tmp,0),o=i.tmp[0],a=i.tmp[1],s.writeUInt32BE(r,o,n),s.writeUInt32BE(r,a,n+4)},l.prototype._pad=function(e,t){if(!1===this.padding)return!1;for(var r=e.length-t,n=t;n<e.length;n++)e[n]=r;return!0},l.prototype._unpad=function(e){if(!1===this.padding)return e;for(var t=e[e.length-1],r=e.length-t;r<e.length;r++)n.equal(e[r],t);return e.slice(0,e.length-t)},l.prototype._encrypt=function(e,t,r,n,i){for(var o=t,a=r,l=0;l<e.keys.length;l+=2){var c=e.keys[l],u=e.keys[l+1];s.expand(a,e.tmp,0),c^=e.tmp[0],u^=e.tmp[1];var h=s.substitute(c,u),f=a;a=(o^s.permute(h))>>>0,o=f}s.rip(a,o,n,i)},l.prototype._decrypt=function(e,t,r,n,i){for(var o=r,a=t,l=e.keys.length-2;l>=0;l-=2){var c=e.keys[l],u=e.keys[l+1];s.expand(o,e.tmp,0),c^=e.tmp[0],u^=e.tmp[1];var h=s.substitute(c,u),f=o;o=(a^s.permute(h))>>>0,a=f}s.rip(o,a,n,i)}},{\"./cipher\":396,\"./utils\":399,inherits:440,\"minimalistic-assert\":453}],398:[function(e,t,r){\"use strict\";var n=e(\"minimalistic-assert\"),i=e(\"inherits\"),s=e(\"./cipher\"),o=e(\"./des\");function a(e,t){n.equal(t.length,24,\"Invalid key length\");var r=t.slice(0,8),i=t.slice(8,16),s=t.slice(16,24);this.ciphers=\"encrypt\"===e?[o.create({type:\"encrypt\",key:r}),o.create({type:\"decrypt\",key:i}),o.create({type:\"encrypt\",key:s})]:[o.create({type:\"decrypt\",key:s}),o.create({type:\"encrypt\",key:i}),o.create({type:\"decrypt\",key:r})]}function l(e){s.call(this,e);var t=new a(this.type,this.options.key);this._edeState=t}i(l,s),t.exports=l,l.create=function(e){return new l(e)},l.prototype._update=function(e,t,r,n){var i=this._edeState;i.ciphers[0]._update(e,t,r,n),i.ciphers[1]._update(r,n,r,n),i.ciphers[2]._update(r,n,r,n)},l.prototype._pad=o.prototype._pad,l.prototype._unpad=o.prototype._unpad},{\"./cipher\":396,\"./des\":397,inherits:440,\"minimalistic-assert\":453}],399:[function(e,t,r){\"use strict\";r.readUInt32BE=function(e,t){return(e[0+t]<<24|e[1+t]<<16|e[2+t]<<8|e[3+t])>>>0},r.writeUInt32BE=function(e,t,r){e[0+r]=t>>>24,e[1+r]=t>>>16&255,e[2+r]=t>>>8&255,e[3+r]=255&t},r.ip=function(e,t,r,n){for(var i=0,s=0,o=6;o>=0;o-=2){for(var a=0;a<=24;a+=8)i<<=1,i|=t>>>a+o&1;for(a=0;a<=24;a+=8)i<<=1,i|=e>>>a+o&1}for(o=6;o>=0;o-=2){for(a=1;a<=25;a+=8)s<<=1,s|=t>>>a+o&1;for(a=1;a<=25;a+=8)s<<=1,s|=e>>>a+o&1}r[n+0]=i>>>0,r[n+1]=s>>>0},r.rip=function(e,t,r,n){for(var i=0,s=0,o=0;o<4;o++)for(var a=24;a>=0;a-=8)i<<=1,i|=t>>>a+o&1,i<<=1,i|=e>>>a+o&1;for(o=4;o<8;o++)for(a=24;a>=0;a-=8)s<<=1,s|=t>>>a+o&1,s<<=1,s|=e>>>a+o&1;r[n+0]=i>>>0,r[n+1]=s>>>0},r.pc1=function(e,t,r,n){for(var i=0,s=0,o=7;o>=5;o--){for(var a=0;a<=24;a+=8)i<<=1,i|=t>>a+o&1;for(a=0;a<=24;a+=8)i<<=1,i|=e>>a+o&1}for(a=0;a<=24;a+=8)i<<=1,i|=t>>a+o&1;for(o=1;o<=3;o++){for(a=0;a<=24;a+=8)s<<=1,s|=t>>a+o&1;for(a=0;a<=24;a+=8)s<<=1,s|=e>>a+o&1}for(a=0;a<=24;a+=8)s<<=1,s|=e>>a+o&1;r[n+0]=i>>>0,r[n+1]=s>>>0},r.r28shl=function(e,t){return e<<t&268435455|e>>>28-t};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];r.pc2=function(e,t,r,i){for(var s=0,o=0,a=n.length>>>1,l=0;l<a;l++)s<<=1,s|=e>>>n[l]&1;for(l=a;l<n.length;l++)o<<=1,o|=t>>>n[l]&1;r[i+0]=s>>>0,r[i+1]=o>>>0},r.expand=function(e,t,r){var n=0,i=0;n=(1&e)<<5|e>>>27;for(var s=23;s>=15;s-=4)n<<=6,n|=e>>>s&63;for(s=11;s>=3;s-=4)i|=e>>>s&63,i<<=6;i|=(31&e)<<1|e>>>31,t[r+0]=n>>>0,t[r+1]=i>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];r.substitute=function(e,t){for(var r=0,n=0;n<4;n++){r<<=4,r|=i[64*n+(e>>>18-6*n&63)]}for(n=0;n<4;n++){r<<=4,r|=i[256+64*n+(t>>>18-6*n&63)]}return r>>>0};var s=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];r.permute=function(e){for(var t=0,r=0;r<s.length;r++)t<<=1,t|=e>>>s[r]&1;return t>>>0},r.padSplit=function(e,t,r){for(var n=e.toString(2);n.length<t;)n=\"0\"+n;for(var i=[],s=0;s<t;s+=r)i.push(n.slice(s,s+r));return i.join(\" \")}},{}],400:[function(e,t,r){(function(t){(function(){\"use strict\";var n=e(\"./lib/generatePrime\"),i=e(\"./lib/primes.json\"),s=e(\"./lib/dh\");var o={binary:!0,hex:!0,base64:!0};r.DiffieHellmanGroup=r.createDiffieHellmanGroup=r.getDiffieHellman=function(e){var r=new t(i[e].prime,\"hex\"),n=new t(i[e].gen,\"hex\");return new s(r,n)},r.createDiffieHellman=r.DiffieHellman=function e(r,i,a,l){return t.isBuffer(i)||void 0===o[i]?e(r,\"binary\",i,a):(i=i||\"binary\",l=l||\"binary\",a=a||new t([2]),t.isBuffer(a)||(a=new t(a,l)),\"number\"==typeof r?new s(n(r,a),a,!0):(t.isBuffer(r)||(r=new t(r,i)),new s(r,a,!0)))}}).call(this)}).call(this,e(\"buffer\").Buffer)},{\"./lib/dh\":401,\"./lib/generatePrime\":402,\"./lib/primes.json\":403,buffer:220}],401:[function(e,t,r){(function(r){(function(){\"use strict\";var n=e(\"bn.js\"),i=new(e(\"miller-rabin\")),s=new n(24),o=new n(11),a=new n(10),l=new n(3),c=new n(7),u=e(\"./generatePrime\"),h=e(\"randombytes\");function f(e,t){return t=t||\"utf8\",r.isBuffer(e)||(e=new r(e,t)),this._pub=new n(e),this}function d(e,t){return t=t||\"utf8\",r.isBuffer(e)||(e=new r(e,t)),this._priv=new n(e),this}t.exports=m;var p={};function m(e,t,r){this.setGenerator(t),this.__prime=new n(e),this._prime=n.mont(this.__prime),this._primeLen=e.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,r?(this.setPublicKey=f,this.setPrivateKey=d):this._primeCode=8}function b(e,t){var n=new r(e.toArray());return t?n.toString(t):n}Object.defineProperty(m.prototype,\"verifyError\",{enumerable:!0,get:function(){return\"number\"!=typeof this._primeCode&&(this._primeCode=function(e,t){var r=t.toString(\"hex\"),n=[r,e.toString(16)].join(\"_\");if(n in p)return p[n];var h,f=0;if(e.isEven()||!u.simpleSieve||!u.fermatTest(e)||!i.test(e))return f+=1,f+=\"02\"===r||\"05\"===r?8:4,p[n]=f,f;switch(i.test(e.shrn(1))||(f+=2),r){case\"02\":e.mod(s).cmp(o)&&(f+=8);break;case\"05\":(h=e.mod(a)).cmp(l)&&h.cmp(c)&&(f+=8);break;default:f+=4}return p[n]=f,f}(this.__prime,this.__gen)),this._primeCode}}),m.prototype.generateKeys=function(){return this._priv||(this._priv=new n(h(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},m.prototype.computeSecret=function(e){var t=(e=(e=new n(e)).toRed(this._prime)).redPow(this._priv).fromRed(),i=new r(t.toArray()),s=this.getPrime();if(i.length<s.length){var o=new r(s.length-i.length);o.fill(0),i=r.concat([o,i])}return i},m.prototype.getPublicKey=function(e){return b(this._pub,e)},m.prototype.getPrivateKey=function(e){return b(this._priv,e)},m.prototype.getPrime=function(e){return b(this.__prime,e)},m.prototype.getGenerator=function(e){return b(this._gen,e)},m.prototype.setGenerator=function(e,t){return t=t||\"utf8\",r.isBuffer(e)||(e=new r(e,t)),this.__gen=e,this._gen=new n(e),this}}).call(this)}).call(this,e(\"buffer\").Buffer)},{\"./generatePrime\":402,\"bn.js\":404,buffer:220,\"miller-rabin\":451,randombytes:475}],402:[function(e,t,r){\"use strict\";var n=e(\"randombytes\");t.exports=y,y.simpleSieve=b,y.fermatTest=g;var i=e(\"bn.js\"),s=new i(24),o=new(e(\"miller-rabin\")),a=new i(1),l=new i(2),c=new i(5),u=(new i(16),new i(8),new i(10)),h=new i(3),f=(new i(7),new i(11)),d=new i(4),p=(new i(12),null);function m(){if(null!==p)return p;var e=[];e[0]=2;for(var t=1,r=3;r<1048576;r+=2){for(var n=Math.ceil(Math.sqrt(r)),i=0;i<t&&e[i]<=n&&r%e[i]!=0;i++);t!==i&&e[i]<=n||(e[t++]=r)}return p=e,e}function b(e){for(var t=m(),r=0;r<t.length;r++)if(0===e.modn(t[r]))return 0===e.cmpn(t[r]);return!0}function g(e){var t=i.mont(e);return 0===l.toRed(t).redPow(e.subn(1)).fromRed().cmpn(1)}function y(e,t){if(e<16)return new i(2===t||5===t?[140,123]:[140,39]);var r,p;for(t=new i(t);;){for(r=new i(n(Math.ceil(e/8)));r.bitLength()>e;)r.ishrn(1);if(r.isEven()&&r.iadd(a),r.testn(1)||r.iadd(l),t.cmp(l)){if(!t.cmp(c))for(;r.mod(u).cmp(h);)r.iadd(d)}else for(;r.mod(s).cmp(f);)r.iadd(d);if(b(p=r.shrn(1))&&b(r)&&g(p)&&g(r)&&o.test(p)&&o.test(r))return r}}},{\"bn.js\":404,\"miller-rabin\":451,randombytes:475}],403:[function(e,t,r){t.exports={modp1:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff\"},modp2:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff\"},modp5:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff\"},modp14:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff\"},modp15:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff\"},modp16:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff\"},modp17:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff\"},modp18:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff\"}}},{}],404:[function(e,t,r){arguments[4][184][0].apply(r,arguments)},{buffer:188,dup:184}],405:[function(e,t,r){\"use strict\";var n=r;n.version=e(\"../package.json\").version,n.utils=e(\"./elliptic/utils\"),n.rand=e(\"brorand\"),n.curve=e(\"./elliptic/curve\"),n.curves=e(\"./elliptic/curves\"),n.ec=e(\"./elliptic/ec\"),n.eddsa=e(\"./elliptic/eddsa\")},{\"../package.json\":421,\"./elliptic/curve\":408,\"./elliptic/curves\":411,\"./elliptic/ec\":412,\"./elliptic/eddsa\":415,\"./elliptic/utils\":419,brorand:187}],406:[function(e,t,r){\"use strict\";var n=e(\"bn.js\"),i=e(\"../utils\"),s=i.getNAF,o=i.getJSF,a=i.assert;function l(e,t){this.type=e,this.p=new n(t.p,16),this.red=t.prime?n.red(t.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=t.n&&new n(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function c(e,t){this.curve=e,this.type=t,this.precomputed=null}t.exports=l,l.prototype.point=function(){throw new Error(\"Not implemented\")},l.prototype.validate=function(){throw new Error(\"Not implemented\")},l.prototype._fixedNafMul=function(e,t){a(e.precomputed);var r=e._getDoubles(),n=s(t,1,this._bitLength),i=(1<<r.step+1)-(r.step%2==0?2:1);i/=3;var o,l,c=[];for(o=0;o<n.length;o+=r.step){l=0;for(var u=o+r.step-1;u>=o;u--)l=(l<<1)+n[u];c.push(l)}for(var h=this.jpoint(null,null,null),f=this.jpoint(null,null,null),d=i;d>0;d--){for(o=0;o<c.length;o++)(l=c[o])===d?f=f.mixedAdd(r.points[o]):l===-d&&(f=f.mixedAdd(r.points[o].neg()));h=h.add(f)}return h.toP()},l.prototype._wnafMul=function(e,t){var r=4,n=e._getNAFPoints(r);r=n.wnd;for(var i=n.points,o=s(t,r,this._bitLength),l=this.jpoint(null,null,null),c=o.length-1;c>=0;c--){for(var u=0;c>=0&&0===o[c];c--)u++;if(c>=0&&u++,l=l.dblp(u),c<0)break;var h=o[c];a(0!==h),l=\"affine\"===e.type?h>0?l.mixedAdd(i[h-1>>1]):l.mixedAdd(i[-h-1>>1].neg()):h>0?l.add(i[h-1>>1]):l.add(i[-h-1>>1].neg())}return\"affine\"===e.type?l.toP():l},l.prototype._wnafMulAdd=function(e,t,r,n,i){var a,l,c,u=this._wnafT1,h=this._wnafT2,f=this._wnafT3,d=0;for(a=0;a<n;a++){var p=(c=t[a])._getNAFPoints(e);u[a]=p.wnd,h[a]=p.points}for(a=n-1;a>=1;a-=2){var m=a-1,b=a;if(1===u[m]&&1===u[b]){var g=[t[m],null,null,t[b]];0===t[m].y.cmp(t[b].y)?(g[1]=t[m].add(t[b]),g[2]=t[m].toJ().mixedAdd(t[b].neg())):0===t[m].y.cmp(t[b].y.redNeg())?(g[1]=t[m].toJ().mixedAdd(t[b]),g[2]=t[m].add(t[b].neg())):(g[1]=t[m].toJ().mixedAdd(t[b]),g[2]=t[m].toJ().mixedAdd(t[b].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],v=o(r[m],r[b]);for(d=Math.max(v[0].length,d),f[m]=new Array(d),f[b]=new Array(d),l=0;l<d;l++){var w=0|v[0][l],_=0|v[1][l];f[m][l]=y[3*(w+1)+(_+1)],f[b][l]=0,h[m]=g}}else f[m]=s(r[m],u[m],this._bitLength),f[b]=s(r[b],u[b],this._bitLength),d=Math.max(f[m].length,d),d=Math.max(f[b].length,d)}var x=this.jpoint(null,null,null),k=this._wnafT4;for(a=d;a>=0;a--){for(var S=0;a>=0;){var M=!0;for(l=0;l<n;l++)k[l]=0|f[l][a],0!==k[l]&&(M=!1);if(!M)break;S++,a--}if(a>=0&&S++,x=x.dblp(S),a<0)break;for(l=0;l<n;l++){var C=k[l];0!==C&&(C>0?c=h[l][C-1>>1]:C<0&&(c=h[l][-C-1>>1].neg()),x=\"affine\"===c.type?x.mixedAdd(c):x.add(c))}}for(a=0;a<n;a++)h[a]=null;return i?x:x.toP()},l.BasePoint=c,c.prototype.eq=function(){throw new Error(\"Not implemented\")},c.prototype.validate=function(){return this.curve.validate(this)},l.prototype.decodePoint=function(e,t){e=i.toArray(e,t);var r=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*r)return 6===e[0]?a(e[e.length-1]%2==0):7===e[0]&&a(e[e.length-1]%2==1),this.point(e.slice(1,1+r),e.slice(1+r,1+2*r));if((2===e[0]||3===e[0])&&e.length-1===r)return this.pointFromX(e.slice(1,1+r),3===e[0]);throw new Error(\"Unknown point format\")},c.prototype.encodeCompressed=function(e){return this.encode(e,!0)},c.prototype._encode=function(e){var t=this.curve.p.byteLength(),r=this.getX().toArray(\"be\",t);return e?[this.getY().isEven()?2:3].concat(r):[4].concat(r,this.getY().toArray(\"be\",t))},c.prototype.encode=function(e,t){return i.encode(this._encode(t),e)},c.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},c.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},c.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i<t;i+=e){for(var s=0;s<e;s++)n=n.dbl();r.push(n)}return{step:e,points:r}},c.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],r=(1<<e)-1,n=1===r?null:this.dbl(),i=1;i<r;i++)t[i]=t[i-1].add(n);return{wnd:e,points:t}},c.prototype._getBeta=function(){return null},c.prototype.dblp=function(e){for(var t=this,r=0;r<e;r++)t=t.dbl();return t}},{\"../utils\":419,\"bn.js\":420}],407:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"bn.js\"),s=e(\"inherits\"),o=e(\"./base\"),a=n.assert;function l(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,o.call(this,\"edwards\",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function c(e,t,r,n,s){o.BasePoint.call(this,e,\"projective\"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=s&&new i(s,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}s(l,o),t.exports=l,l.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},l.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},l.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},l.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),s=this.one.redSub(this.c2.redMul(this.d).redMul(r)),o=n.redMul(s.redInvm()),a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error(\"invalid point\");var l=a.fromRed().isOdd();return(t&&!l||!t&&l)&&(a=a.redNeg()),this.point(e,a)},l.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),s=r.redMul(this.d).redMul(this.c2).redSub(this.a),o=n.redMul(s.redInvm());if(0===o.cmp(this.zero)){if(t)throw new Error(\"invalid point\");return this.point(this.zero,e)}var a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error(\"invalid point\");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},l.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(i)},s(c,o.BasePoint),l.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},l.prototype.point=function(e,t,r,n){return new c(this,e,t,r,n)},c.fromJSON=function(e,t){return new c(e,t[0],t[1],t[2])},c.prototype.inspect=function(){return this.isInfinity()?\"<EC Point Infinity>\":\"<EC Point x: \"+this.x.fromRed().toString(16,2)+\" y: \"+this.y.fromRed().toString(16,2)+\" z: \"+this.z.fromRed().toString(16,2)+\">\"},c.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},c.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),s=n.redAdd(t),o=s.redSub(r),a=n.redSub(t),l=i.redMul(o),c=s.redMul(a),u=i.redMul(a),h=o.redMul(s);return this.curve.point(l,c,h,u)},c.prototype._projDbl=function(){var e,t,r,n,i,s,o=this.x.redAdd(this.y).redSqr(),a=this.x.redSqr(),l=this.y.redSqr();if(this.curve.twisted){var c=(n=this.curve._mulA(a)).redAdd(l);this.zOne?(e=o.redSub(a).redSub(l).redMul(c.redSub(this.curve.two)),t=c.redMul(n.redSub(l)),r=c.redSqr().redSub(c).redSub(c)):(i=this.z.redSqr(),s=c.redSub(i).redISub(i),e=o.redSub(a).redISub(l).redMul(s),t=c.redMul(n.redSub(l)),r=c.redMul(s))}else n=a.redAdd(l),i=this.curve._mulC(this.z).redSqr(),s=n.redSub(i).redSub(i),e=this.curve._mulC(o.redISub(n)).redMul(s),t=this.curve._mulC(n).redMul(a.redISub(l)),r=n.redMul(s);return this.curve.point(e,t,r)},c.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},c.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),s=r.redSub(t),o=i.redSub(n),a=i.redAdd(n),l=r.redAdd(t),c=s.redMul(o),u=a.redMul(l),h=s.redMul(l),f=o.redMul(a);return this.curve.point(c,u,f,h)},c.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),i=n.redSqr(),s=this.x.redMul(e.x),o=this.y.redMul(e.y),a=this.curve.d.redMul(s).redMul(o),l=i.redSub(a),c=i.redAdd(a),u=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(s).redISub(o),h=n.redMul(l).redMul(u);return this.curve.twisted?(t=n.redMul(c).redMul(o.redSub(this.curve._mulA(s))),r=l.redMul(c)):(t=n.redMul(c).redMul(o.redSub(s)),r=this.curve._mulC(l).redMul(c)),this.curve.point(h,t,r)},c.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},c.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},c.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},c.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},c.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()},c.prototype.getY=function(){return this.normalize(),this.y.fromRed()},c.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},c.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},c.prototype.toP=c.prototype.normalize,c.prototype.mixedAdd=c.prototype.add},{\"../utils\":419,\"./base\":406,\"bn.js\":420,inherits:440}],408:[function(e,t,r){\"use strict\";var n=r;n.base=e(\"./base\"),n.short=e(\"./short\"),n.mont=e(\"./mont\"),n.edwards=e(\"./edwards\")},{\"./base\":406,\"./edwards\":407,\"./mont\":409,\"./short\":410}],409:[function(e,t,r){\"use strict\";var n=e(\"bn.js\"),i=e(\"inherits\"),s=e(\"./base\"),o=e(\"../utils\");function a(e){s.call(this,\"mont\",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function l(e,t,r){s.BasePoint.call(this,e,\"projective\"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(t,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(a,s),t.exports=a,a.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},i(l,s.BasePoint),a.prototype.decodePoint=function(e,t){return this.point(o.toArray(e,t),1)},a.prototype.point=function(e,t){return new l(this,e,t)},a.prototype.pointFromJSON=function(e){return l.fromJSON(this,e)},l.prototype.precompute=function(){},l.prototype._encode=function(){return this.getX().toArray(\"be\",this.curve.p.byteLength())},l.fromJSON=function(e,t){return new l(e,t[0],t[1]||e.one)},l.prototype.inspect=function(){return this.isInfinity()?\"<EC Point Infinity>\":\"<EC Point x: \"+this.x.fromRed().toString(16,2)+\" z: \"+this.z.fromRed().toString(16,2)+\">\"},l.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},l.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),i=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},l.prototype.add=function(){throw new Error(\"Not supported on Montgomery curve\")},l.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=e.x.redAdd(e.z),s=e.x.redSub(e.z).redMul(r),o=i.redMul(n),a=t.z.redMul(s.redAdd(o).redSqr()),l=t.x.redMul(s.redISub(o).redSqr());return this.curve.point(a,l)},l.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var s=i.length-1;s>=0;s--)0===i[s]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},l.prototype.mulAdd=function(){throw new Error(\"Not supported on Montgomery curve\")},l.prototype.jumlAdd=function(){throw new Error(\"Not supported on Montgomery curve\")},l.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},l.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},l.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},{\"../utils\":419,\"./base\":406,\"bn.js\":420,inherits:440}],410:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"bn.js\"),s=e(\"inherits\"),o=e(\"./base\"),a=n.assert;function l(e){o.call(this,\"short\",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function c(e,t,r,n){o.BasePoint.call(this,e,\"affine\"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function u(e,t,r,n){o.BasePoint.call(this,e,\"jacobian\"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(r,16),this.z=new i(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}s(l,o),t.exports=l,l.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new i(e.lambda,16);else{var s=this._getEndoRoots(this.n);0===this.g.mul(s[0]).x.cmp(this.g.x.redMul(t))?r=s[0]:(r=s[1],a(0===this.g.mul(r).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:r,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(r)}}},l.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),r=new i(2).toRed(t).redInvm(),n=r.redNeg(),s=new i(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(s).fromRed(),n.redSub(s).fromRed()]},l.prototype._getEndoBasis=function(e){for(var t,r,n,s,o,a,l,c,u,h=this.n.ushrn(Math.floor(this.n.bitLength()/2)),f=e,d=this.n.clone(),p=new i(1),m=new i(0),b=new i(0),g=new i(1),y=0;0!==f.cmpn(0);){var v=d.div(f);c=d.sub(v.mul(f)),u=b.sub(v.mul(p));var w=g.sub(v.mul(m));if(!n&&c.cmp(h)<0)t=l.neg(),r=p,n=c.neg(),s=u;else if(n&&2==++y)break;l=c,d=f,f=c,b=p,p=u,g=m,m=w}o=c.neg(),a=u;var _=n.sqr().add(s.sqr());return o.sqr().add(a.sqr()).cmp(_)>=0&&(o=t,a=r),n.negative&&(n=n.neg(),s=s.neg()),o.negative&&(o=o.neg(),a=a.neg()),[{a:n,b:s},{a:o,b:a}]},l.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),s=r.b.neg().mul(e).divRound(this.n),o=i.mul(r.a),a=s.mul(n.a),l=i.mul(r.b),c=s.mul(n.b);return{k1:e.sub(o).sub(a),k2:l.add(c).neg()}},l.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error(\"invalid point\");var s=n.fromRed().isOdd();return(t&&!s||!t&&s)&&(n=n.redNeg()),this.point(e,n)},l.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},l.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,s=0;s<e.length;s++){var o=this._endoSplit(t[s]),a=e[s],l=a._getBeta();o.k1.negative&&(o.k1.ineg(),a=a.neg(!0)),o.k2.negative&&(o.k2.ineg(),l=l.neg(!0)),n[2*s]=a,n[2*s+1]=l,i[2*s]=o.k1,i[2*s+1]=o.k2}for(var c=this._wnafMulAdd(1,n,i,2*s,r),u=0;u<2*s;u++)n[u]=null,i[u]=null;return c},s(c,o.BasePoint),l.prototype.point=function(e,t,r){return new c(this,e,t,r)},l.prototype.pointFromJSON=function(e,t){return c.fromJSON(this,e,t)},c.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var r=this.curve,n=function(e){return r.point(e.x.redMul(r.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(n)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(n)}}}return t}},c.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},c.fromJSON=function(e,t,r){\"string\"==typeof t&&(t=JSON.parse(t));var n=e.point(t[0],t[1],r);if(!t[2])return n;function i(t){return e.point(t[0],t[1],r)}var s=t[2];return n.precomputed={beta:null,doubles:s.doubles&&{step:s.doubles.step,points:[n].concat(s.doubles.points.map(i))},naf:s.naf&&{wnd:s.naf.wnd,points:[n].concat(s.naf.points.map(i))}},n},c.prototype.inspect=function(){return this.isInfinity()?\"<EC Point Infinity>\":\"<EC Point x: \"+this.x.fromRed().toString(16,2)+\" y: \"+this.y.fromRed().toString(16,2)+\">\"},c.prototype.isInfinity=function(){return this.inf},c.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},c.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),s=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(s)).redISub(this.y);return this.curve.point(s,o)},c.prototype.getX=function(){return this.x.fromRed()},c.prototype.getY=function(){return this.y.fromRed()},c.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},c.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},c.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},c.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},c.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},s(u,o.BasePoint),l.prototype.jpoint=function(e,t,r){return new u(this,e,t,r)},u.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},u.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},u.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),s=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(r.redMul(this.z)),a=n.redSub(i),l=s.redSub(o);if(0===a.cmpn(0))return 0!==l.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=a.redSqr(),u=c.redMul(a),h=n.redMul(c),f=l.redSqr().redIAdd(u).redISub(h).redISub(h),d=l.redMul(h.redISub(f)).redISub(s.redMul(u)),p=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(f,d,p)},u.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,s=e.y.redMul(t).redMul(this.z),o=r.redSub(n),a=i.redSub(s);if(0===o.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=o.redSqr(),c=l.redMul(o),u=r.redMul(l),h=a.redSqr().redIAdd(c).redISub(u).redISub(u),f=a.redMul(u.redISub(h)).redISub(i.redMul(c)),d=this.z.redMul(o);return this.curve.jpoint(h,f,d)},u.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t<e;t++)r=r.dbl();return r}var n=this.curve.a,i=this.curve.tinv,s=this.x,o=this.y,a=this.z,l=a.redSqr().redSqr(),c=o.redAdd(o);for(t=0;t<e;t++){var u=s.redSqr(),h=c.redSqr(),f=h.redSqr(),d=u.redAdd(u).redIAdd(u).redIAdd(n.redMul(l)),p=s.redMul(h),m=d.redSqr().redISub(p.redAdd(p)),b=p.redISub(m),g=d.redMul(b);g=g.redIAdd(g).redISub(f);var y=c.redMul(a);t+1<e&&(l=l.redMul(f)),s=m,a=y,c=g}return this.curve.jpoint(s,c.redMul(i),a)},u.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},u.prototype._zeroDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),s=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(n).redISub(s);o=o.redIAdd(o);var a=n.redAdd(n).redIAdd(n),l=a.redSqr().redISub(o).redISub(o),c=s.redIAdd(s);c=(c=c.redIAdd(c)).redIAdd(c),e=l,t=a.redMul(o.redISub(l)).redISub(c),r=this.y.redAdd(this.y)}else{var u=this.x.redSqr(),h=this.y.redSqr(),f=h.redSqr(),d=this.x.redAdd(h).redSqr().redISub(u).redISub(f);d=d.redIAdd(d);var p=u.redAdd(u).redIAdd(u),m=p.redSqr(),b=f.redIAdd(f);b=(b=b.redIAdd(b)).redIAdd(b),e=m.redISub(d).redISub(d),t=p.redMul(d.redISub(e)).redISub(b),r=(r=this.y.redMul(this.z)).redIAdd(r)}return this.curve.jpoint(e,t,r)},u.prototype._threeDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),s=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(n).redISub(s);o=o.redIAdd(o);var a=n.redAdd(n).redIAdd(n).redIAdd(this.curve.a),l=a.redSqr().redISub(o).redISub(o);e=l;var c=s.redIAdd(s);c=(c=c.redIAdd(c)).redIAdd(c),t=a.redMul(o.redISub(l)).redISub(c),r=this.y.redAdd(this.y)}else{var u=this.z.redSqr(),h=this.y.redSqr(),f=this.x.redMul(h),d=this.x.redSub(u).redMul(this.x.redAdd(u));d=d.redAdd(d).redIAdd(d);var p=f.redIAdd(f),m=(p=p.redIAdd(p)).redAdd(p);e=d.redSqr().redISub(m),r=this.y.redAdd(this.z).redSqr().redISub(h).redISub(u);var b=h.redSqr();b=(b=(b=b.redIAdd(b)).redIAdd(b)).redIAdd(b),t=d.redMul(p.redISub(e)).redISub(b)}return this.curve.jpoint(e,t,r)},u.prototype._dbl=function(){var e=this.curve.a,t=this.x,r=this.y,n=this.z,i=n.redSqr().redSqr(),s=t.redSqr(),o=r.redSqr(),a=s.redAdd(s).redIAdd(s).redIAdd(e.redMul(i)),l=t.redAdd(t),c=(l=l.redIAdd(l)).redMul(o),u=a.redSqr().redISub(c.redAdd(c)),h=c.redISub(u),f=o.redSqr();f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var d=a.redMul(h).redISub(f),p=r.redAdd(r).redMul(n);return this.curve.jpoint(u,d,p)},u.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr(),n=t.redSqr(),i=e.redAdd(e).redIAdd(e),s=i.redSqr(),o=this.x.redAdd(t).redSqr().redISub(e).redISub(n),a=(o=(o=(o=o.redIAdd(o)).redAdd(o).redIAdd(o)).redISub(s)).redSqr(),l=n.redIAdd(n);l=(l=(l=l.redIAdd(l)).redIAdd(l)).redIAdd(l);var c=i.redIAdd(o).redSqr().redISub(s).redISub(a).redISub(l),u=t.redMul(c);u=(u=u.redIAdd(u)).redIAdd(u);var h=this.x.redMul(a).redISub(u);h=(h=h.redIAdd(h)).redIAdd(h);var f=this.y.redMul(c.redMul(l.redISub(c)).redISub(o.redMul(a)));f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var d=this.z.redAdd(o).redSqr().redISub(r).redISub(a);return this.curve.jpoint(h,f,d)},u.prototype.mul=function(e,t){return e=new i(e,t),this.curve._wnafMul(this,e)},u.prototype.eq=function(e){if(\"affine\"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),r=e.z.redSqr();if(0!==this.x.redMul(r).redISub(e.x.redMul(t)).cmpn(0))return!1;var n=t.redMul(this.z),i=r.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(n)).cmpn(0)},u.prototype.eqXToP=function(e){var t=this.z.redSqr(),r=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(r))return!0;for(var n=e.clone(),i=this.curve.redN.redMul(t);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},u.prototype.inspect=function(){return this.isInfinity()?\"<EC JPoint Infinity>\":\"<EC JPoint x: \"+this.x.toString(16,2)+\" y: \"+this.y.toString(16,2)+\" z: \"+this.z.toString(16,2)+\">\"},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},{\"../utils\":419,\"./base\":406,\"bn.js\":420,inherits:440}],411:[function(e,t,r){\"use strict\";var n,i=r,s=e(\"hash.js\"),o=e(\"./curve\"),a=e(\"./utils\").assert;function l(e){\"short\"===e.type?this.curve=new o.short(e):\"edwards\"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,a(this.g.validate(),\"Invalid curve\"),a(this.g.mul(this.n).isInfinity(),\"Invalid curve, G*N != O\")}function c(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var r=new l(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=l,c(\"p192\",{type:\"short\",prime:\"p192\",p:\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\",a:\"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc\",b:\"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1\",n:\"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831\",hash:s.sha256,gRed:!1,g:[\"188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012\",\"07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811\"]}),c(\"p224\",{type:\"short\",prime:\"p224\",p:\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\",a:\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe\",b:\"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4\",n:\"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d\",hash:s.sha256,gRed:!1,g:[\"b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21\",\"bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34\"]}),c(\"p256\",{type:\"short\",prime:null,p:\"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff\",a:\"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc\",b:\"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b\",n:\"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551\",hash:s.sha256,gRed:!1,g:[\"6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296\",\"4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5\"]}),c(\"p384\",{type:\"short\",prime:null,p:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff\",a:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc\",b:\"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef\",n:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973\",hash:s.sha384,gRed:!1,g:[\"aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7\",\"3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f\"]}),c(\"p521\",{type:\"short\",prime:null,p:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff\",a:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc\",b:\"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00\",n:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409\",hash:s.sha512,gRed:!1,g:[\"000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66\",\"00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650\"]}),c(\"curve25519\",{type:\"mont\",prime:\"p25519\",p:\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",a:\"76d06\",b:\"1\",n:\"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",hash:s.sha256,gRed:!1,g:[\"9\"]}),c(\"ed25519\",{type:\"edwards\",prime:\"p25519\",p:\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",a:\"-1\",c:\"1\",d:\"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3\",n:\"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",hash:s.sha256,gRed:!1,g:[\"216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a\",\"6666666666666666666666666666666666666666666666666666666666666658\"]});try{n=e(\"./precomputed/secp256k1\")}catch(e){n=void 0}c(\"secp256k1\",{type:\"short\",prime:\"k256\",p:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\",a:\"0\",b:\"7\",n:\"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141\",h:\"1\",hash:s.sha256,beta:\"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee\",lambda:\"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72\",basis:[{a:\"3086d221a7d46bcde86c90e49284eb15\",b:\"-e4437ed6010e88286f547fa90abfe4c3\"},{a:\"114ca50f7a8e2f3f657c1108d9d44cfd8\",b:\"3086d221a7d46bcde86c90e49284eb15\"}],gRed:!1,g:[\"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\",\"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8\",n]})},{\"./curve\":408,\"./precomputed/secp256k1\":418,\"./utils\":419,\"hash.js\":426}],412:[function(e,t,r){\"use strict\";var n=e(\"bn.js\"),i=e(\"hmac-drbg\"),s=e(\"../utils\"),o=e(\"../curves\"),a=e(\"brorand\"),l=s.assert,c=e(\"./key\"),u=e(\"./signature\");function h(e){if(!(this instanceof h))return new h(e);\"string\"==typeof e&&(l(Object.prototype.hasOwnProperty.call(o,e),\"Unknown curve \"+e),e=o[e]),e instanceof o.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}t.exports=h,h.prototype.keyPair=function(e){return new c(this,e)},h.prototype.keyFromPrivate=function(e,t){return c.fromPrivate(this,e,t)},h.prototype.keyFromPublic=function(e,t){return c.fromPublic(this,e,t)},h.prototype.genKeyPair=function(e){e||(e={});for(var t=new i({hash:this.hash,pers:e.pers,persEnc:e.persEnc||\"utf8\",entropy:e.entropy||a(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||\"utf8\",nonce:this.n.toArray()}),r=this.n.byteLength(),s=this.n.sub(new n(2));;){var o=new n(t.generate(r));if(!(o.cmp(s)>0))return o.iaddn(1),this.keyFromPrivate(o)}},h.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},h.prototype.sign=function(e,t,r,s){\"object\"==typeof r&&(s=r,r=null),s||(s={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new n(e,16));for(var o=this.n.byteLength(),a=t.getPrivate().toArray(\"be\",o),l=e.toArray(\"be\",o),c=new i({hash:this.hash,entropy:a,nonce:l,pers:s.pers,persEnc:s.persEnc||\"utf8\"}),h=this.n.sub(new n(1)),f=0;;f++){var d=s.k?s.k(f):new n(c.generate(this.n.byteLength()));if(!((d=this._truncateToN(d,!0)).cmpn(1)<=0||d.cmp(h)>=0)){var p=this.g.mul(d);if(!p.isInfinity()){var m=p.getX(),b=m.umod(this.n);if(0!==b.cmpn(0)){var g=d.invm(this.n).mul(b.mul(t.getPrivate()).iadd(e));if(0!==(g=g.umod(this.n)).cmpn(0)){var y=(p.getY().isOdd()?1:0)|(0!==m.cmp(b)?2:0);return s.canonical&&g.cmp(this.nh)>0&&(g=this.n.sub(g),y^=1),new u({r:b,s:g,recoveryParam:y})}}}}}},h.prototype.verify=function(e,t,r,i){e=this._truncateToN(new n(e,16)),r=this.keyFromPublic(r,i);var s=(t=new u(t,\"hex\")).r,o=t.s;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var a,l=o.invm(this.n),c=l.mul(e).umod(this.n),h=l.mul(s).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(c,r.getPublic(),h)).isInfinity()&&a.eqXToP(s):!(a=this.g.mulAdd(c,r.getPublic(),h)).isInfinity()&&0===a.getX().umod(this.n).cmp(s)},h.prototype.recoverPubKey=function(e,t,r,i){l((3&r)===r,\"The recovery param is more than two bits\"),t=new u(t,i);var s=this.n,o=new n(e),a=t.r,c=t.s,h=1&r,f=r>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&f)throw new Error(\"Unable to find sencond key candinate\");a=f?this.curve.pointFromX(a.add(this.curve.n),h):this.curve.pointFromX(a,h);var d=t.r.invm(s),p=s.sub(o).mul(d).umod(s),m=c.mul(d).umod(s);return this.g.mulAdd(p,a,m)},h.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new u(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var s;try{s=this.recoverPubKey(e,t,i)}catch(e){continue}if(s.eq(r))return i}throw new Error(\"Unable to find valid recovery factor\")}},{\"../curves\":411,\"../utils\":419,\"./key\":413,\"./signature\":414,\"bn.js\":420,brorand:187,\"hmac-drbg\":438}],413:[function(e,t,r){\"use strict\";var n=e(\"bn.js\"),i=e(\"../utils\").assert;function s(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}t.exports=s,s.fromPublic=function(e,t,r){return t instanceof s?t:new s(e,{pub:t,pubEnc:r})},s.fromPrivate=function(e,t,r){return t instanceof s?t:new s(e,{priv:t,privEnc:r})},s.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:\"Invalid public key\"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:\"Public key * N != O\"}:{result:!1,reason:\"Public key is not a point\"}},s.prototype.getPublic=function(e,t){return\"string\"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},s.prototype.getPrivate=function(e){return\"hex\"===e?this.priv.toString(16,2):this.priv},s.prototype._importPrivate=function(e,t){this.priv=new n(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},s.prototype._importPublic=function(e,t){if(e.x||e.y)return\"mont\"===this.ec.curve.type?i(e.x,\"Need x coordinate\"):\"short\"!==this.ec.curve.type&&\"edwards\"!==this.ec.curve.type||i(e.x&&e.y,\"Need both x and y coordinate\"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},s.prototype.derive=function(e){return e.validate()||i(e.validate(),\"public point not validated\"),e.mul(this.priv).getX()},s.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},s.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},s.prototype.inspect=function(){return\"<Key priv: \"+(this.priv&&this.priv.toString(16,2))+\" pub: \"+(this.pub&&this.pub.inspect())+\" >\"}},{\"../utils\":419,\"bn.js\":420}],414:[function(e,t,r){\"use strict\";var n=e(\"bn.js\"),i=e(\"../utils\"),s=i.assert;function o(e,t){if(e instanceof o)return e;this._importDER(e,t)||(s(e.r&&e.s,\"Signature without r or s\"),this.r=new n(e.r,16),this.s=new n(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function a(){this.place=0}function l(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var i=0,s=0,o=t.place;s<n;s++,o++)i<<=8,i|=e[o],i>>>=0;return!(i<=127)&&(t.place=o,i)}function c(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t<r;)t++;return 0===t?e:e.slice(t)}function u(e,t){if(t<128)e.push(t);else{var r=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}t.exports=o,o.prototype._importDER=function(e,t){e=i.toArray(e,t);var r=new a;if(48!==e[r.place++])return!1;var s=l(e,r);if(!1===s)return!1;if(s+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var o=l(e,r);if(!1===o)return!1;var c=e.slice(r.place,o+r.place);if(r.place+=o,2!==e[r.place++])return!1;var u=l(e,r);if(!1===u)return!1;if(e.length!==u+r.place)return!1;var h=e.slice(r.place,u+r.place);if(0===c[0]){if(!(128&c[1]))return!1;c=c.slice(1)}if(0===h[0]){if(!(128&h[1]))return!1;h=h.slice(1)}return this.r=new n(c),this.s=new n(h),this.recoveryParam=null,!0},o.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=c(t),r=c(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];u(n,t.length),(n=n.concat(t)).push(2),u(n,r.length);var s=n.concat(r),o=[48];return u(o,s.length),o=o.concat(s),i.encode(o,e)}},{\"../utils\":419,\"bn.js\":420}],415:[function(e,t,r){\"use strict\";var n=e(\"hash.js\"),i=e(\"../curves\"),s=e(\"../utils\"),o=s.assert,a=s.parseBytes,l=e(\"./key\"),c=e(\"./signature\");function u(e){if(o(\"ed25519\"===e,\"only tested with ed25519 so far\"),!(this instanceof u))return new u(e);e=i[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}t.exports=u,u.prototype.sign=function(e,t){e=a(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),i=this.g.mul(n),s=this.encodePoint(i),o=this.hashInt(s,r.pubBytes(),e).mul(r.priv()),l=n.add(o).umod(this.curve.n);return this.makeSignature({R:i,S:l,Rencoded:s})},u.prototype.verify=function(e,t,r){e=a(e),t=this.makeSignature(t);var n=this.keyFromPublic(r),i=this.hashInt(t.Rencoded(),n.pubBytes(),e),s=this.g.mul(t.S());return t.R().add(n.pub().mul(i)).eq(s)},u.prototype.hashInt=function(){for(var e=this.hash(),t=0;t<arguments.length;t++)e.update(arguments[t]);return s.intFromLE(e.digest()).umod(this.curve.n)},u.prototype.keyFromPublic=function(e){return l.fromPublic(this,e)},u.prototype.keyFromSecret=function(e){return l.fromSecret(this,e)},u.prototype.makeSignature=function(e){return e instanceof c?e:new c(this,e)},u.prototype.encodePoint=function(e){var t=e.getY().toArray(\"le\",this.encodingLength);return t[this.encodingLength-1]|=e.getX().isOdd()?128:0,t},u.prototype.decodePoint=function(e){var t=(e=s.parseBytes(e)).length-1,r=e.slice(0,t).concat(-129&e[t]),n=0!=(128&e[t]),i=s.intFromLE(r);return this.curve.pointFromY(i,n)},u.prototype.encodeInt=function(e){return e.toArray(\"le\",this.encodingLength)},u.prototype.decodeInt=function(e){return s.intFromLE(e)},u.prototype.isPoint=function(e){return e instanceof this.pointClass}},{\"../curves\":411,\"../utils\":419,\"./key\":416,\"./signature\":417,\"hash.js\":426}],416:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=n.assert,s=n.parseBytes,o=n.cachedProperty;function a(e,t){this.eddsa=e,this._secret=s(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=s(t.pub)}a.fromPublic=function(e,t){return t instanceof a?t:new a(e,{pub:t})},a.fromSecret=function(e,t){return t instanceof a?t:new a(e,{secret:t})},a.prototype.secret=function(){return this._secret},o(a,\"pubBytes\",(function(){return this.eddsa.encodePoint(this.pub())})),o(a,\"pub\",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),o(a,\"privBytes\",(function(){var e=this.eddsa,t=this.hash(),r=e.encodingLength-1,n=t.slice(0,e.encodingLength);return n[0]&=248,n[r]&=127,n[r]|=64,n})),o(a,\"priv\",(function(){return this.eddsa.decodeInt(this.privBytes())})),o(a,\"hash\",(function(){return this.eddsa.hash().update(this.secret()).digest()})),o(a,\"messagePrefix\",(function(){return this.hash().slice(this.eddsa.encodingLength)})),a.prototype.sign=function(e){return i(this._secret,\"KeyPair can only verify\"),this.eddsa.sign(e,this)},a.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},a.prototype.getSecret=function(e){return i(this._secret,\"KeyPair is public only\"),n.encode(this.secret(),e)},a.prototype.getPublic=function(e){return n.encode(this.pubBytes(),e)},t.exports=a},{\"../utils\":419}],417:[function(e,t,r){\"use strict\";var n=e(\"bn.js\"),i=e(\"../utils\"),s=i.assert,o=i.cachedProperty,a=i.parseBytes;function l(e,t){this.eddsa=e,\"object\"!=typeof t&&(t=a(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),s(t.R&&t.S,\"Signature without R or S\"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof n&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}o(l,\"S\",(function(){return this.eddsa.decodeInt(this.Sencoded())})),o(l,\"R\",(function(){return this.eddsa.decodePoint(this.Rencoded())})),o(l,\"Rencoded\",(function(){return this.eddsa.encodePoint(this.R())})),o(l,\"Sencoded\",(function(){return this.eddsa.encodeInt(this.S())})),l.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},l.prototype.toHex=function(){return i.encode(this.toBytes(),\"hex\").toUpperCase()},t.exports=l},{\"../utils\":419,\"bn.js\":420}],418:[function(e,t,r){\"use strict\";t.exports={doubles:{step:4,points:[[\"e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a\",\"f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821\"],[\"8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508\",\"11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf\"],[\"175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739\",\"d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695\"],[\"363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640\",\"4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9\"],[\"8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c\",\"4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36\"],[\"723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda\",\"96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f\"],[\"eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa\",\"5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999\"],[\"100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0\",\"cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09\"],[\"e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d\",\"9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d\"],[\"feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d\",\"e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088\"],[\"da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1\",\"9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d\"],[\"53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0\",\"5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8\"],[\"8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047\",\"10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a\"],[\"385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862\",\"283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453\"],[\"6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7\",\"7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160\"],[\"3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd\",\"56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0\"],[\"85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83\",\"7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6\"],[\"948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a\",\"53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589\"],[\"6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8\",\"bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17\"],[\"e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d\",\"4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda\"],[\"e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725\",\"7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd\"],[\"213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754\",\"4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2\"],[\"4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c\",\"17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6\"],[\"fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6\",\"6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f\"],[\"76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39\",\"c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01\"],[\"c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891\",\"893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3\"],[\"d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b\",\"febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f\"],[\"b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03\",\"2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7\"],[\"e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d\",\"eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78\"],[\"a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070\",\"7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1\"],[\"90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4\",\"e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150\"],[\"8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da\",\"662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82\"],[\"e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11\",\"1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc\"],[\"8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e\",\"efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b\"],[\"e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41\",\"2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51\"],[\"b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef\",\"67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45\"],[\"d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8\",\"db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120\"],[\"324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d\",\"648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84\"],[\"4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96\",\"35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d\"],[\"9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd\",\"ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d\"],[\"6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5\",\"9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8\"],[\"a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266\",\"40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8\"],[\"7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71\",\"34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac\"],[\"928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac\",\"c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f\"],[\"85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751\",\"1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962\"],[\"ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e\",\"493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907\"],[\"827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241\",\"c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec\"],[\"eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3\",\"be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d\"],[\"e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f\",\"4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414\"],[\"1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19\",\"aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd\"],[\"146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be\",\"b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0\"],[\"fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9\",\"6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811\"],[\"da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2\",\"8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1\"],[\"a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13\",\"7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c\"],[\"174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c\",\"ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73\"],[\"959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba\",\"2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd\"],[\"d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151\",\"e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405\"],[\"64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073\",\"d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589\"],[\"8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458\",\"38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e\"],[\"13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b\",\"69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27\"],[\"bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366\",\"d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1\"],[\"8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa\",\"40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482\"],[\"8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0\",\"620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945\"],[\"dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787\",\"7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573\"],[\"f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e\",\"ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82\"]]},naf:{wnd:7,points:[[\"f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9\",\"388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672\"],[\"2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4\",\"d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6\"],[\"5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc\",\"6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da\"],[\"acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe\",\"cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37\"],[\"774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb\",\"d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b\"],[\"f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8\",\"ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81\"],[\"d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e\",\"581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58\"],[\"defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34\",\"4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77\"],[\"2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c\",\"85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a\"],[\"352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5\",\"321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c\"],[\"2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f\",\"2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67\"],[\"9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714\",\"73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402\"],[\"daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729\",\"a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55\"],[\"c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db\",\"2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482\"],[\"6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4\",\"e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82\"],[\"1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5\",\"b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396\"],[\"605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479\",\"2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49\"],[\"62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d\",\"80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf\"],[\"80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f\",\"1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a\"],[\"7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb\",\"d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7\"],[\"d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9\",\"eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933\"],[\"49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963\",\"758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a\"],[\"77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74\",\"958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6\"],[\"f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530\",\"e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37\"],[\"463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b\",\"5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e\"],[\"f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247\",\"cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6\"],[\"caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1\",\"cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476\"],[\"2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120\",\"4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40\"],[\"7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435\",\"91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61\"],[\"754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18\",\"673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683\"],[\"e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8\",\"59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5\"],[\"186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb\",\"3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b\"],[\"df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f\",\"55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417\"],[\"5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143\",\"efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868\"],[\"290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba\",\"e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a\"],[\"af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45\",\"f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6\"],[\"766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a\",\"744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996\"],[\"59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e\",\"c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e\"],[\"f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8\",\"e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d\"],[\"7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c\",\"30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2\"],[\"948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519\",\"e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e\"],[\"7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab\",\"100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437\"],[\"3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca\",\"ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311\"],[\"d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf\",\"8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4\"],[\"1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610\",\"68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575\"],[\"733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4\",\"f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d\"],[\"15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c\",\"d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d\"],[\"a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940\",\"edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629\"],[\"e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980\",\"a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06\"],[\"311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3\",\"66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374\"],[\"34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf\",\"9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee\"],[\"f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63\",\"4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1\"],[\"d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448\",\"fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b\"],[\"32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf\",\"5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661\"],[\"7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5\",\"8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6\"],[\"ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6\",\"8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e\"],[\"16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5\",\"5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d\"],[\"eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99\",\"f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc\"],[\"78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51\",\"f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4\"],[\"494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5\",\"42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c\"],[\"a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5\",\"204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b\"],[\"c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997\",\"4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913\"],[\"841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881\",\"73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154\"],[\"5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5\",\"39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865\"],[\"36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66\",\"d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc\"],[\"336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726\",\"ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224\"],[\"8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede\",\"6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e\"],[\"1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94\",\"60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6\"],[\"85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31\",\"3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511\"],[\"29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51\",\"b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b\"],[\"a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252\",\"ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2\"],[\"4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5\",\"cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c\"],[\"d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b\",\"6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3\"],[\"ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4\",\"322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d\"],[\"af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f\",\"6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700\"],[\"e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889\",\"2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4\"],[\"591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246\",\"b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196\"],[\"11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984\",\"998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4\"],[\"3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a\",\"b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257\"],[\"cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030\",\"bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13\"],[\"c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197\",\"6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096\"],[\"c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593\",\"c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38\"],[\"a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef\",\"21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f\"],[\"347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38\",\"60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448\"],[\"da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a\",\"49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a\"],[\"c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111\",\"5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4\"],[\"4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502\",\"7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437\"],[\"3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea\",\"be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7\"],[\"cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26\",\"8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d\"],[\"b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986\",\"39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a\"],[\"d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e\",\"62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54\"],[\"48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4\",\"25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77\"],[\"dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda\",\"ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517\"],[\"6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859\",\"cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10\"],[\"e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f\",\"f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125\"],[\"eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c\",\"6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e\"],[\"13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942\",\"fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1\"],[\"ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a\",\"1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2\"],[\"b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80\",\"5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423\"],[\"ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d\",\"438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8\"],[\"8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1\",\"cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758\"],[\"52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63\",\"c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375\"],[\"e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352\",\"6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d\"],[\"7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193\",\"ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec\"],[\"5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00\",\"9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0\"],[\"32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58\",\"ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c\"],[\"e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7\",\"d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4\"],[\"8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8\",\"c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f\"],[\"4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e\",\"67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649\"],[\"3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d\",\"cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826\"],[\"674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b\",\"299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5\"],[\"d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f\",\"f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87\"],[\"30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6\",\"462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b\"],[\"be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297\",\"62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc\"],[\"93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a\",\"7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c\"],[\"b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c\",\"ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f\"],[\"d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52\",\"4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a\"],[\"d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb\",\"bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46\"],[\"463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065\",\"bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f\"],[\"7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917\",\"603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03\"],[\"74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9\",\"cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08\"],[\"30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3\",\"553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8\"],[\"9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57\",\"712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373\"],[\"176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66\",\"ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3\"],[\"75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8\",\"9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8\"],[\"809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721\",\"9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1\"],[\"1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180\",\"4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9\"]]}}},{}],419:[function(e,t,r){\"use strict\";var n=r,i=e(\"bn.js\"),s=e(\"minimalistic-assert\"),o=e(\"minimalistic-crypto-utils\");n.assert=s,n.toArray=o.toArray,n.zero2=o.zero2,n.toHex=o.toHex,n.encode=o.encode,n.getNAF=function(e,t,r){var n=new Array(Math.max(e.bitLength(),r)+1);n.fill(0);for(var i=1<<t+1,s=e.clone(),o=0;o<n.length;o++){var a,l=s.andln(i-1);s.isOdd()?(a=l>(i>>1)-1?(i>>1)-l:l,s.isubn(a)):a=0,n[o]=a,s.iushrn(1)}return n},n.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,i=0,s=0;e.cmpn(-i)>0||t.cmpn(-s)>0;){var o,a,l=e.andln(3)+i&3,c=t.andln(3)+s&3;3===l&&(l=-1),3===c&&(c=-1),o=0==(1&l)?0:3!==(n=e.andln(7)+i&7)&&5!==n||2!==c?l:-l,r[0].push(o),a=0==(1&c)?0:3!==(n=t.andln(7)+s&7)&&5!==n||2!==l?c:-c,r[1].push(a),2*i===o+1&&(i=1-i),2*s===a+1&&(s=1-s),e.iushrn(1),t.iushrn(1)}return r},n.cachedProperty=function(e,t,r){var n=\"_\"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(e){return\"string\"==typeof e?n.toArray(e,\"hex\"):e},n.intFromLE=function(e){return new i(e,\"hex\",\"le\")}},{\"bn.js\":420,\"minimalistic-assert\":453,\"minimalistic-crypto-utils\":454}],420:[function(e,t,r){arguments[4][184][0].apply(r,arguments)},{buffer:188,dup:184}],421:[function(e,t,r){t.exports={name:\"elliptic\",version:\"6.5.4\",description:\"EC cryptography\",main:\"lib/elliptic.js\",files:[\"lib\"],scripts:{lint:\"eslint lib test\",\"lint:fix\":\"npm run lint -- --fix\",unit:\"istanbul test _mocha --reporter=spec test/index.js\",test:\"npm run lint && npm run unit\",version:\"grunt dist && git add dist/\"},repository:{type:\"git\",url:\"git@github.com:indutny/elliptic\"},keywords:[\"EC\",\"Elliptic\",\"curve\",\"Cryptography\"],author:\"Fedor Indutny <fedor@indutny.com>\",license:\"MIT\",bugs:{url:\"https://github.com/indutny/elliptic/issues\"},homepage:\"https://github.com/indutny/elliptic\",devDependencies:{brfs:\"^2.0.2\",coveralls:\"^3.1.0\",eslint:\"^7.6.0\",grunt:\"^1.2.1\",\"grunt-browserify\":\"^5.3.0\",\"grunt-cli\":\"^1.3.2\",\"grunt-contrib-connect\":\"^3.0.0\",\"grunt-contrib-copy\":\"^1.0.0\",\"grunt-contrib-uglify\":\"^5.0.0\",\"grunt-mocha-istanbul\":\"^5.0.2\",\"grunt-saucelabs\":\"^9.0.1\",istanbul:\"^0.4.5\",mocha:\"^8.0.1\"},dependencies:{\"bn.js\":\"^4.11.9\",brorand:\"^1.1.0\",\"hash.js\":\"^1.0.0\",\"hmac-drbg\":\"^1.0.1\",inherits:\"^2.0.4\",\"minimalistic-assert\":\"^1.0.1\",\"minimalistic-crypto-utils\":\"^1.0.1\"}}},{}],422:[function(e,t,r){\"use strict\";var n=Object.create||function(e){var t=function(){};return t.prototype=e,new t},i=Object.keys||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.push(r);return r},s=Function.prototype.bind||function(e){var t=this;return function(){return t.apply(e,arguments)}};function o(){this._events&&Object.prototype.hasOwnProperty.call(this,\"_events\")||(this._events=n(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0}t.exports=o,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._maxListeners=void 0;var a,l=10;try{var c={};Object.defineProperty&&Object.defineProperty(c,\"x\",{value:0}),a=0===c.x}catch(e){a=!1}function u(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function h(e,t,r){if(t)e.call(r);else for(var n=e.length,i=_(e,n),s=0;s<n;++s)i[s].call(r)}function f(e,t,r,n){if(t)e.call(r,n);else for(var i=e.length,s=_(e,i),o=0;o<i;++o)s[o].call(r,n)}function d(e,t,r,n,i){if(t)e.call(r,n,i);else for(var s=e.length,o=_(e,s),a=0;a<s;++a)o[a].call(r,n,i)}function p(e,t,r,n,i,s){if(t)e.call(r,n,i,s);else for(var o=e.length,a=_(e,o),l=0;l<o;++l)a[l].call(r,n,i,s)}function m(e,t,r,n){if(t)e.apply(r,n);else for(var i=e.length,s=_(e,i),o=0;o<i;++o)s[o].apply(r,n)}function b(e,t,r,i){var s,o,a;if(\"function\"!=typeof r)throw new TypeError('\"listener\" argument must be a function');if((o=e._events)?(o.newListener&&(e.emit(\"newListener\",t,r.listener?r.listener:r),o=e._events),a=o[t]):(o=e._events=n(null),e._eventsCount=0),a){if(\"function\"==typeof a?a=o[t]=i?[r,a]:[a,r]:i?a.unshift(r):a.push(r),!a.warned&&(s=u(e))&&s>0&&a.length>s){a.warned=!0;var l=new Error(\"Possible EventEmitter memory leak detected. \"+a.length+' \"'+String(t)+'\" listeners added. Use emitter.setMaxListeners() to increase limit.');l.name=\"MaxListenersExceededWarning\",l.emitter=e,l.type=t,l.count=a.length,\"object\"==typeof console&&console.warn&&console.warn(\"%s: %s\",l.name,l.message)}}else a=o[t]=r,++e._eventsCount;return e}function g(){if(!this.fired)switch(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:for(var e=new Array(arguments.length),t=0;t<e.length;++t)e[t]=arguments[t];this.listener.apply(this.target,e)}}function y(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=s.call(g,n);return i.listener=r,n.wrapFn=i,i}function v(e,t,r){var n=e._events;if(!n)return[];var i=n[t];return i?\"function\"==typeof i?r?[i.listener||i]:[i]:r?function(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}(i):_(i,i.length):[]}function w(e){var t=this._events;if(t){var r=t[e];if(\"function\"==typeof r)return 1;if(r)return r.length}return 0}function _(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e[n];return r}a?Object.defineProperty(o,\"defaultMaxListeners\",{enumerable:!0,get:function(){return l},set:function(e){if(\"number\"!=typeof e||e<0||e!=e)throw new TypeError('\"defaultMaxListeners\" must be a positive number');l=e}}):o.defaultMaxListeners=l,o.prototype.setMaxListeners=function(e){if(\"number\"!=typeof e||e<0||isNaN(e))throw new TypeError('\"n\" argument must be a positive number');return this._maxListeners=e,this},o.prototype.getMaxListeners=function(){return u(this)},o.prototype.emit=function(e){var t,r,n,i,s,o,a=\"error\"===e;if(o=this._events)a=a&&null==o.error;else if(!a)return!1;if(a){if(arguments.length>1&&(t=arguments[1]),t instanceof Error)throw t;var l=new Error('Unhandled \"error\" event. ('+t+\")\");throw l.context=t,l}if(!(r=o[e]))return!1;var c=\"function\"==typeof r;switch(n=arguments.length){case 1:h(r,c,this);break;case 2:f(r,c,this,arguments[1]);break;case 3:d(r,c,this,arguments[1],arguments[2]);break;case 4:p(r,c,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(n-1),s=1;s<n;s++)i[s-1]=arguments[s];m(r,c,this,i)}return!0},o.prototype.addListener=function(e,t){return b(this,e,t,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(e,t){return b(this,e,t,!0)},o.prototype.once=function(e,t){if(\"function\"!=typeof t)throw new TypeError('\"listener\" argument must be a function');return this.on(e,y(this,e,t)),this},o.prototype.prependOnceListener=function(e,t){if(\"function\"!=typeof t)throw new TypeError('\"listener\" argument must be a function');return this.prependListener(e,y(this,e,t)),this},o.prototype.removeListener=function(e,t){var r,i,s,o,a;if(\"function\"!=typeof t)throw new TypeError('\"listener\" argument must be a function');if(!(i=this._events))return this;if(!(r=i[e]))return this;if(r===t||r.listener===t)0==--this._eventsCount?this._events=n(null):(delete i[e],i.removeListener&&this.emit(\"removeListener\",e,r.listener||t));else if(\"function\"!=typeof r){for(s=-1,o=r.length-1;o>=0;o--)if(r[o]===t||r[o].listener===t){a=r[o].listener,s=o;break}if(s<0)return this;0===s?r.shift():function(e,t){for(var r=t,n=r+1,i=e.length;n<i;r+=1,n+=1)e[r]=e[n];e.pop()}(r,s),1===r.length&&(i[e]=r[0]),i.removeListener&&this.emit(\"removeListener\",e,a||t)}return this},o.prototype.removeAllListeners=function(e){var t,r,s;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=n(null),this._eventsCount=0):r[e]&&(0==--this._eventsCount?this._events=n(null):delete r[e]),this;if(0===arguments.length){var o,a=i(r);for(s=0;s<a.length;++s)\"removeListener\"!==(o=a[s])&&this.removeAllListeners(o);return this.removeAllListeners(\"removeListener\"),this._events=n(null),this._eventsCount=0,this}if(\"function\"==typeof(t=r[e]))this.removeListener(e,t);else if(t)for(s=t.length-1;s>=0;s--)this.removeListener(e,t[s]);return this},o.prototype.listeners=function(e){return v(this,e,!0)},o.prototype.rawListeners=function(e){return v(this,e,!1)},o.listenerCount=function(e,t){return\"function\"==typeof e.listenerCount?e.listenerCount(t):w.call(e,t)},o.prototype.listenerCount=w,o.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]}},{}],423:[function(e,t,r){\"use strict\";var n=e(\"safe-buffer\").Buffer,i=e(\"md5.js\");t.exports=function(e,t,r,s){if(n.isBuffer(e)||(e=n.from(e,\"binary\")),t&&(n.isBuffer(t)||(t=n.from(t,\"binary\")),8!==t.length))throw new RangeError(\"salt should be Buffer with 8 byte length\");for(var o=r/8,a=n.alloc(o),l=n.alloc(s||0),c=n.alloc(0);o>0||s>0;){var u=new i;u.update(c),u.update(e),t&&u.update(t),c=u.digest();var h=0;if(o>0){var f=a.length-o;h=Math.min(o,c.length),c.copy(a,f,0,h),o-=h}if(h<c.length&&s>0){var d=l.length-s,p=Math.min(s,c.length-h);c.copy(l,d,h,h+p),s-=p}}return c.fill(0),{key:a,iv:l}}},{\"md5.js\":450,\"safe-buffer\":494}],424:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.CsvParserStream=r.ParserOptions=r.parseFile=r.parseStream=r.parseString=r.parse=r.FormatterOptions=r.CsvFormatterStream=r.writeToPath=r.writeToString=r.writeToBuffer=r.writeToStream=r.write=r.format=void 0;var n=e(\"@fast-csv/format\");Object.defineProperty(r,\"format\",{enumerable:!0,get:function(){return n.format}}),Object.defineProperty(r,\"write\",{enumerable:!0,get:function(){return n.write}}),Object.defineProperty(r,\"writeToStream\",{enumerable:!0,get:function(){return n.writeToStream}}),Object.defineProperty(r,\"writeToBuffer\",{enumerable:!0,get:function(){return n.writeToBuffer}}),Object.defineProperty(r,\"writeToString\",{enumerable:!0,get:function(){return n.writeToString}}),Object.defineProperty(r,\"writeToPath\",{enumerable:!0,get:function(){return n.writeToPath}}),Object.defineProperty(r,\"CsvFormatterStream\",{enumerable:!0,get:function(){return n.CsvFormatterStream}}),Object.defineProperty(r,\"FormatterOptions\",{enumerable:!0,get:function(){return n.FormatterOptions}});var i=e(\"@fast-csv/parse\");Object.defineProperty(r,\"parse\",{enumerable:!0,get:function(){return i.parse}}),Object.defineProperty(r,\"parseString\",{enumerable:!0,get:function(){return i.parseString}}),Object.defineProperty(r,\"parseStream\",{enumerable:!0,get:function(){return i.parseStream}}),Object.defineProperty(r,\"parseFile\",{enumerable:!0,get:function(){return i.parseFile}}),Object.defineProperty(r,\"ParserOptions\",{enumerable:!0,get:function(){return i.ParserOptions}}),Object.defineProperty(r,\"CsvParserStream\",{enumerable:!0,get:function(){return i.CsvParserStream}})},{\"@fast-csv/format\":151,\"@fast-csv/parse\":155}],425:[function(e,t,r){\"use strict\";var n=e(\"safe-buffer\").Buffer,i=e(\"readable-stream\").Transform;function s(e){i.call(this),this._block=n.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}e(\"inherits\")(s,i),s.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(e){n=e}r(n)},s.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},s.prototype.update=function(e,t){if(function(e,t){if(!n.isBuffer(e)&&\"string\"!=typeof e)throw new TypeError(t+\" must be a string or a buffer\")}(e,\"Data\"),this._finalized)throw new Error(\"Digest already called\");n.isBuffer(e)||(e=n.from(e,t));for(var r=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var s=this._blockOffset;s<this._blockSize;)r[s++]=e[i++];this._update(),this._blockOffset=0}for(;i<e.length;)r[this._blockOffset++]=e[i++];for(var o=0,a=8*e.length;a>0;++o)this._length[o]+=a,(a=this._length[o]/4294967296|0)>0&&(this._length[o]-=4294967296*a);return this},s.prototype._update=function(){throw new Error(\"_update is not implemented\")},s.prototype.digest=function(e){if(this._finalized)throw new Error(\"Digest already called\");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t},s.prototype._digest=function(){throw new Error(\"_digest is not implemented\")},t.exports=s},{inherits:440,\"readable-stream\":491,\"safe-buffer\":494}],426:[function(e,t,r){\"use strict\";var n=r;n.utils=e(\"./hash/utils\"),n.common=e(\"./hash/common\"),n.sha=e(\"./hash/sha\"),n.ripemd=e(\"./hash/ripemd\"),n.hmac=e(\"./hash/hmac\"),n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160},{\"./hash/common\":427,\"./hash/hmac\":428,\"./hash/ripemd\":429,\"./hash/sha\":430,\"./hash/utils\":437}],427:[function(e,t,r){\"use strict\";var n=e(\"./utils\"),i=e(\"minimalistic-assert\");function s(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian=\"big\",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}r.BlockHash=s,s.prototype.update=function(e,t){if(e=n.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=n.join32(e,0,e.length-r,this.endian);for(var i=0;i<e.length;i+=this._delta32)this._update(e,i,i+this._delta32)}return this},s.prototype.digest=function(e){return this.update(this._pad()),i(null===this.pending),this._digest(e)},s.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,r=t-(e+this.padLength)%t,n=new Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(e<<=3,\"big\"===this.endian){for(var s=8;s<this.padLength;s++)n[i++]=0;n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=e>>>24&255,n[i++]=e>>>16&255,n[i++]=e>>>8&255,n[i++]=255&e}else for(n[i++]=255&e,n[i++]=e>>>8&255,n[i++]=e>>>16&255,n[i++]=e>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,s=8;s<this.padLength;s++)n[i++]=0;return n}},{\"./utils\":437,\"minimalistic-assert\":453}],428:[function(e,t,r){\"use strict\";var n=e(\"./utils\"),i=e(\"minimalistic-assert\");function s(e,t,r){if(!(this instanceof s))return new s(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(n.toArray(t,r))}t.exports=s,s.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),i(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},s.prototype.update=function(e,t){return this.inner.update(e,t),this},s.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)}},{\"./utils\":437,\"minimalistic-assert\":453}],429:[function(e,t,r){\"use strict\";var n=e(\"./utils\"),i=e(\"./common\"),s=n.rotl32,o=n.sum32,a=n.sum32_3,l=n.sum32_4,c=i.BlockHash;function u(){if(!(this instanceof u))return new u;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian=\"little\"}function h(e,t,r,n){return e<=15?t^r^n:e<=31?t&r|~t&n:e<=47?(t|~r)^n:e<=63?t&n|r&~n:t^(r|~n)}function f(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function d(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}n.inherits(u,c),r.ripemd160=u,u.blockSize=512,u.outSize=160,u.hmacStrength=192,u.padLength=64,u.prototype._update=function(e,t){for(var r=this.h[0],n=this.h[1],i=this.h[2],c=this.h[3],u=this.h[4],y=r,v=n,w=i,_=c,x=u,k=0;k<80;k++){var S=o(s(l(r,h(k,n,i,c),e[p[k]+t],f(k)),b[k]),u);r=u,u=c,c=s(i,10),i=n,n=S,S=o(s(l(y,h(79-k,v,w,_),e[m[k]+t],d(k)),g[k]),x),y=x,x=_,_=s(w,10),w=v,v=S}S=a(this.h[1],i,_),this.h[1]=a(this.h[2],c,x),this.h[2]=a(this.h[3],u,y),this.h[3]=a(this.h[4],r,v),this.h[4]=a(this.h[0],n,w),this.h[0]=S},u.prototype._digest=function(e){return\"hex\"===e?n.toHex32(this.h,\"little\"):n.split32(this.h,\"little\")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],m=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],b=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],g=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},{\"./common\":427,\"./utils\":437}],430:[function(e,t,r){\"use strict\";r.sha1=e(\"./sha/1\"),r.sha224=e(\"./sha/224\"),r.sha256=e(\"./sha/256\"),r.sha384=e(\"./sha/384\"),r.sha512=e(\"./sha/512\")},{\"./sha/1\":431,\"./sha/224\":432,\"./sha/256\":433,\"./sha/384\":434,\"./sha/512\":435}],431:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../common\"),s=e(\"./common\"),o=n.rotl32,a=n.sum32,l=n.sum32_5,c=s.ft_1,u=i.BlockHash,h=[1518500249,1859775393,2400959708,3395469782];function f(){if(!(this instanceof f))return new f;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}n.inherits(f,u),t.exports=f,f.blockSize=512,f.outSize=160,f.hmacStrength=80,f.padLength=64,f.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=o(r[n-3]^r[n-8]^r[n-14]^r[n-16],1);var i=this.h[0],s=this.h[1],u=this.h[2],f=this.h[3],d=this.h[4];for(n=0;n<r.length;n++){var p=~~(n/20),m=l(o(i,5),c(p,s,u,f),d,r[n],h[p]);d=f,f=u,u=o(s,30),s=i,i=m}this.h[0]=a(this.h[0],i),this.h[1]=a(this.h[1],s),this.h[2]=a(this.h[2],u),this.h[3]=a(this.h[3],f),this.h[4]=a(this.h[4],d)},f.prototype._digest=function(e){return\"hex\"===e?n.toHex32(this.h,\"big\"):n.split32(this.h,\"big\")}},{\"../common\":427,\"../utils\":437,\"./common\":436}],432:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./256\");function s(){if(!(this instanceof s))return new s;i.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}n.inherits(s,i),t.exports=s,s.blockSize=512,s.outSize=224,s.hmacStrength=192,s.padLength=64,s.prototype._digest=function(e){return\"hex\"===e?n.toHex32(this.h.slice(0,7),\"big\"):n.split32(this.h.slice(0,7),\"big\")}},{\"../utils\":437,\"./256\":433}],433:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../common\"),s=e(\"./common\"),o=e(\"minimalistic-assert\"),a=n.sum32,l=n.sum32_4,c=n.sum32_5,u=s.ch32,h=s.maj32,f=s.s0_256,d=s.s1_256,p=s.g0_256,m=s.g1_256,b=i.BlockHash,g=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function y(){if(!(this instanceof y))return new y;b.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=g,this.W=new Array(64)}n.inherits(y,b),t.exports=y,y.blockSize=512,y.outSize=256,y.hmacStrength=192,y.padLength=64,y.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=l(m(r[n-2]),r[n-7],p(r[n-15]),r[n-16]);var i=this.h[0],s=this.h[1],b=this.h[2],g=this.h[3],y=this.h[4],v=this.h[5],w=this.h[6],_=this.h[7];for(o(this.k.length===r.length),n=0;n<r.length;n++){var x=c(_,d(y),u(y,v,w),this.k[n],r[n]),k=a(f(i),h(i,s,b));_=w,w=v,v=y,y=a(g,x),g=b,b=s,s=i,i=a(x,k)}this.h[0]=a(this.h[0],i),this.h[1]=a(this.h[1],s),this.h[2]=a(this.h[2],b),this.h[3]=a(this.h[3],g),this.h[4]=a(this.h[4],y),this.h[5]=a(this.h[5],v),this.h[6]=a(this.h[6],w),this.h[7]=a(this.h[7],_)},y.prototype._digest=function(e){return\"hex\"===e?n.toHex32(this.h,\"big\"):n.split32(this.h,\"big\")}},{\"../common\":427,\"../utils\":437,\"./common\":436,\"minimalistic-assert\":453}],434:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./512\");function s(){if(!(this instanceof s))return new s;i.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}n.inherits(s,i),t.exports=s,s.blockSize=1024,s.outSize=384,s.hmacStrength=192,s.padLength=128,s.prototype._digest=function(e){return\"hex\"===e?n.toHex32(this.h.slice(0,12),\"big\"):n.split32(this.h.slice(0,12),\"big\")}},{\"../utils\":437,\"./512\":435}],435:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../common\"),s=e(\"minimalistic-assert\"),o=n.rotr64_hi,a=n.rotr64_lo,l=n.shr64_hi,c=n.shr64_lo,u=n.sum64,h=n.sum64_hi,f=n.sum64_lo,d=n.sum64_4_hi,p=n.sum64_4_lo,m=n.sum64_5_hi,b=n.sum64_5_lo,g=i.BlockHash,y=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function v(){if(!(this instanceof v))return new v;g.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=y,this.W=new Array(160)}function w(e,t,r,n,i){var s=e&r^~e&i;return s<0&&(s+=4294967296),s}function _(e,t,r,n,i,s){var o=t&n^~t&s;return o<0&&(o+=4294967296),o}function x(e,t,r,n,i){var s=e&r^e&i^r&i;return s<0&&(s+=4294967296),s}function k(e,t,r,n,i,s){var o=t&n^t&s^n&s;return o<0&&(o+=4294967296),o}function S(e,t){var r=o(e,t,28)^o(t,e,2)^o(t,e,7);return r<0&&(r+=4294967296),r}function M(e,t){var r=a(e,t,28)^a(t,e,2)^a(t,e,7);return r<0&&(r+=4294967296),r}function C(e,t){var r=o(e,t,14)^o(e,t,18)^o(t,e,9);return r<0&&(r+=4294967296),r}function T(e,t){var r=a(e,t,14)^a(e,t,18)^a(t,e,9);return r<0&&(r+=4294967296),r}function E(e,t){var r=o(e,t,1)^o(e,t,8)^l(e,t,7);return r<0&&(r+=4294967296),r}function A(e,t){var r=a(e,t,1)^a(e,t,8)^c(e,t,7);return r<0&&(r+=4294967296),r}function R(e,t){var r=o(e,t,19)^o(t,e,29)^l(e,t,6);return r<0&&(r+=4294967296),r}function O(e,t){var r=a(e,t,19)^a(t,e,29)^c(e,t,6);return r<0&&(r+=4294967296),r}n.inherits(v,g),t.exports=v,v.blockSize=1024,v.outSize=512,v.hmacStrength=192,v.padLength=128,v.prototype._prepareBlock=function(e,t){for(var r=this.W,n=0;n<32;n++)r[n]=e[t+n];for(;n<r.length;n+=2){var i=R(r[n-4],r[n-3]),s=O(r[n-4],r[n-3]),o=r[n-14],a=r[n-13],l=E(r[n-30],r[n-29]),c=A(r[n-30],r[n-29]),u=r[n-32],h=r[n-31];r[n]=d(i,s,o,a,l,c,u,h),r[n+1]=p(i,s,o,a,l,c,u,h)}},v.prototype._update=function(e,t){this._prepareBlock(e,t);var r=this.W,n=this.h[0],i=this.h[1],o=this.h[2],a=this.h[3],l=this.h[4],c=this.h[5],d=this.h[6],p=this.h[7],g=this.h[8],y=this.h[9],v=this.h[10],E=this.h[11],A=this.h[12],R=this.h[13],O=this.h[14],j=this.h[15];s(this.k.length===r.length);for(var I=0;I<r.length;I+=2){var N=O,P=j,B=C(g,y),D=T(g,y),F=w(g,y,v,E,A),L=_(g,y,v,E,A,R),z=this.k[I],U=this.k[I+1],$=r[I],H=r[I+1],V=m(N,P,B,D,F,L,z,U,$,H),q=b(N,P,B,D,F,L,z,U,$,H);N=S(n,i),P=M(n,i),B=x(n,i,o,a,l),D=k(n,i,o,a,l,c);var W=h(N,P,B,D),X=f(N,P,B,D);O=A,j=R,A=v,R=E,v=g,E=y,g=h(d,p,V,q),y=f(p,p,V,q),d=l,p=c,l=o,c=a,o=n,a=i,n=h(V,q,W,X),i=f(V,q,W,X)}u(this.h,0,n,i),u(this.h,2,o,a),u(this.h,4,l,c),u(this.h,6,d,p),u(this.h,8,g,y),u(this.h,10,v,E),u(this.h,12,A,R),u(this.h,14,O,j)},v.prototype._digest=function(e){return\"hex\"===e?n.toHex32(this.h,\"big\"):n.split32(this.h,\"big\")}},{\"../common\":427,\"../utils\":437,\"minimalistic-assert\":453}],436:[function(e,t,r){\"use strict\";var n=e(\"../utils\").rotr32;function i(e,t,r){return e&t^~e&r}function s(e,t,r){return e&t^e&r^t&r}function o(e,t,r){return e^t^r}r.ft_1=function(e,t,r,n){return 0===e?i(t,r,n):1===e||3===e?o(t,r,n):2===e?s(t,r,n):void 0},r.ch32=i,r.maj32=s,r.p32=o,r.s0_256=function(e){return n(e,2)^n(e,13)^n(e,22)},r.s1_256=function(e){return n(e,6)^n(e,11)^n(e,25)},r.g0_256=function(e){return n(e,7)^n(e,18)^e>>>3},r.g1_256=function(e){return n(e,17)^n(e,19)^e>>>10}},{\"../utils\":437}],437:[function(e,t,r){\"use strict\";var n=e(\"minimalistic-assert\"),i=e(\"inherits\");function s(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function o(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function a(e){return 1===e.length?\"0\"+e:e}function l(e){return 7===e.length?\"0\"+e:6===e.length?\"00\"+e:5===e.length?\"000\"+e:4===e.length?\"0000\"+e:3===e.length?\"00000\"+e:2===e.length?\"000000\"+e:1===e.length?\"0000000\"+e:e}r.inherits=i,r.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if(\"string\"==typeof e)if(t){if(\"hex\"===t)for((e=e.replace(/[^a-z0-9]+/gi,\"\")).length%2!=0&&(e=\"0\"+e),i=0;i<e.length;i+=2)r.push(parseInt(e[i]+e[i+1],16))}else for(var n=0,i=0;i<e.length;i++){var o=e.charCodeAt(i);o<128?r[n++]=o:o<2048?(r[n++]=o>>6|192,r[n++]=63&o|128):s(e,i)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++i)),r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=63&o|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=63&o|128)}else for(i=0;i<e.length;i++)r[i]=0|e[i];return r},r.toHex=function(e){for(var t=\"\",r=0;r<e.length;r++)t+=a(e[r].toString(16));return t},r.htonl=o,r.toHex32=function(e,t){for(var r=\"\",n=0;n<e.length;n++){var i=e[n];\"little\"===t&&(i=o(i)),r+=l(i.toString(16))}return r},r.zero2=a,r.zero8=l,r.join32=function(e,t,r,i){var s=r-t;n(s%4==0);for(var o=new Array(s/4),a=0,l=t;a<o.length;a++,l+=4){var c;c=\"big\"===i?e[l]<<24|e[l+1]<<16|e[l+2]<<8|e[l+3]:e[l+3]<<24|e[l+2]<<16|e[l+1]<<8|e[l],o[a]=c>>>0}return o},r.split32=function(e,t){for(var r=new Array(4*e.length),n=0,i=0;n<e.length;n++,i+=4){var s=e[n];\"big\"===t?(r[i]=s>>>24,r[i+1]=s>>>16&255,r[i+2]=s>>>8&255,r[i+3]=255&s):(r[i+3]=s>>>24,r[i+2]=s>>>16&255,r[i+1]=s>>>8&255,r[i]=255&s)}return r},r.rotr32=function(e,t){return e>>>t|e<<32-t},r.rotl32=function(e,t){return e<<t|e>>>32-t},r.sum32=function(e,t){return e+t>>>0},r.sum32_3=function(e,t,r){return e+t+r>>>0},r.sum32_4=function(e,t,r,n){return e+t+r+n>>>0},r.sum32_5=function(e,t,r,n,i){return e+t+r+n+i>>>0},r.sum64=function(e,t,r,n){var i=e[t],s=n+e[t+1]>>>0,o=(s<n?1:0)+r+i;e[t]=o>>>0,e[t+1]=s},r.sum64_hi=function(e,t,r,n){return(t+n>>>0<t?1:0)+e+r>>>0},r.sum64_lo=function(e,t,r,n){return t+n>>>0},r.sum64_4_hi=function(e,t,r,n,i,s,o,a){var l=0,c=t;return l+=(c=c+n>>>0)<t?1:0,l+=(c=c+s>>>0)<s?1:0,e+r+i+o+(l+=(c=c+a>>>0)<a?1:0)>>>0},r.sum64_4_lo=function(e,t,r,n,i,s,o,a){return t+n+s+a>>>0},r.sum64_5_hi=function(e,t,r,n,i,s,o,a,l,c){var u=0,h=t;return u+=(h=h+n>>>0)<t?1:0,u+=(h=h+s>>>0)<s?1:0,u+=(h=h+a>>>0)<a?1:0,e+r+i+o+l+(u+=(h=h+c>>>0)<c?1:0)>>>0},r.sum64_5_lo=function(e,t,r,n,i,s,o,a,l,c){return t+n+s+a+c>>>0},r.rotr64_hi=function(e,t,r){return(t<<32-r|e>>>r)>>>0},r.rotr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0},r.shr64_hi=function(e,t,r){return e>>>r},r.shr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0}},{inherits:440,\"minimalistic-assert\":453}],438:[function(e,t,r){\"use strict\";var n=e(\"hash.js\"),i=e(\"minimalistic-crypto-utils\"),s=e(\"minimalistic-assert\");function o(e){if(!(this instanceof o))return new o(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=i.toArray(e.entropy,e.entropyEnc||\"hex\"),r=i.toArray(e.nonce,e.nonceEnc||\"hex\"),n=i.toArray(e.pers,e.persEnc||\"hex\");s(t.length>=this.minEntropy/8,\"Not enough entropy. Minimum is: \"+this.minEntropy+\" bits\"),this._init(t,r,n)}t.exports=o,o.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(n),this._reseed=1,this.reseedInterval=281474976710656},o.prototype._hmac=function(){return new n.hmac(this.hash,this.K)},o.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},o.prototype.reseed=function(e,t,r,n){\"string\"!=typeof t&&(n=r,r=t,t=null),e=i.toArray(e,t),r=i.toArray(r,n),s(e.length>=this.minEntropy/8,\"Not enough entropy. Minimum is: \"+this.minEntropy+\" bits\"),this._update(e.concat(r||[])),this._reseed=1},o.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error(\"Reseed is required\");\"string\"!=typeof t&&(n=r,r=t,t=null),r&&(r=i.toArray(r,n||\"hex\"),this._update(r));for(var s=[];s.length<e;)this.V=this._hmac().update(this.V).digest(),s=s.concat(this.V);var o=s.slice(0,e);return this._update(r),this._reseed++,i.encode(o,t)}},{\"hash.js\":426,\"minimalistic-assert\":453,\"minimalistic-crypto-utils\":454}],439:[function(e,t,r){\"use strict\";\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */r.read=function(e,t,r,n,i){var s,o,a=8*i-n-1,l=(1<<a)-1,c=l>>1,u=-7,h=r?i-1:0,f=r?-1:1,d=e[t+h];for(h+=f,s=d&(1<<-u)-1,d>>=-u,u+=a;u>0;s=256*s+e[t+h],h+=f,u-=8);for(o=s&(1<<-u)-1,s>>=-u,u+=n;u>0;o=256*o+e[t+h],h+=f,u-=8);if(0===s)s=1-c;else{if(s===l)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,n),s-=c}return(d?-1:1)*o*Math.pow(2,s-n)},r.write=function(e,t,r,n,i,s){var o,a,l,c=8*s-i-1,u=(1<<c)-1,h=u>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:s-1,p=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-o))<1&&(o--,l*=2),(t+=o+h>=1?f/l:f*Math.pow(2,1-h))*l>=2&&(o++,l/=2),o+h>=u?(a=0,o=u):o+h>=1?(a=(t*l-1)*Math.pow(2,i),o+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,i),o=0));i>=8;e[r+d]=255&a,d+=p,a/=256,i-=8);for(o=o<<i|a,c+=i;c>0;e[r+d]=255&o,d+=p,o/=256,c-=8);e[r+d-p]|=128*m}},{}],440:[function(e,t,r){\"use strict\";\"function\"==typeof Object.create?t.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},{}],441:[function(e,t,r){(function(n,i,s,o,a,l,c,u){(function(){\"use strict\";\n/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/!function(e){\"object\"==typeof r&&void 0!==t?t.exports=e():(\"undefined\"!=typeof window?window:void 0!==i?i:\"undefined\"!=typeof self?self:this).JSZip=e()}((function(){return function t(r,n,i){function s(a,l){if(!n[a]){if(!r[a]){var c=\"function\"==typeof e&&e;if(!l&&c)return c(a,!0);if(o)return o(a,!0);var u=new Error(\"Cannot find module '\"+a+\"'\");throw u.code=\"MODULE_NOT_FOUND\",u}var h=n[a]={exports:{}};r[a][0].call(h.exports,(function(e){return s(r[a][1][e]||e)}),h,h.exports,t,r,n,i)}return n[a].exports}for(var o=\"function\"==typeof e&&e,a=0;a<i.length;a++)s(i[a]);return s}({1:[function(e,t,r){var n=e(\"./utils\"),i=e(\"./support\"),s=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,i,o,a,l,c,u=[],h=0,f=e.length,d=f,p=\"string\"!==n.getTypeOf(e);h<e.length;)d=f-h,i=p?(t=e[h++],r=h<f?e[h++]:0,h<f?e[h++]:0):(t=e.charCodeAt(h++),r=h<f?e.charCodeAt(h++):0,h<f?e.charCodeAt(h++):0),o=t>>2,a=(3&t)<<4|r>>4,l=1<d?(15&r)<<2|i>>6:64,c=2<d?63&i:64,u.push(s.charAt(o)+s.charAt(a)+s.charAt(l)+s.charAt(c));return u.join(\"\")},r.decode=function(e){var t,r,n,o,a,l,c=0,u=0,h=\"data:\";if(e.substr(0,h.length)===h)throw new Error(\"Invalid base64 input, it looks like a data url.\");var f,d=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,\"\")).length/4;if(e.charAt(e.length-1)===s.charAt(64)&&d--,e.charAt(e.length-2)===s.charAt(64)&&d--,d%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(f=i.uint8array?new Uint8Array(0|d):new Array(0|d);c<e.length;)t=s.indexOf(e.charAt(c++))<<2|(o=s.indexOf(e.charAt(c++)))>>4,r=(15&o)<<4|(a=s.indexOf(e.charAt(c++)))>>2,n=(3&a)<<6|(l=s.indexOf(e.charAt(c++))),f[u++]=t,64!==a&&(f[u++]=r),64!==l&&(f[u++]=n);return f}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),o=e(\"./stream/DataLengthProbe\");function a(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}a.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new o(\"data_length\")),t=this;return e.on(\"end\",(function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")})),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},a.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new o(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new o(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=a},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){var n=e(\"./utils\"),i=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var s=i,o=0+r;e^=-1;for(var a=0;a<o;a++)e=e>>>8^s[255&(e^t[a])];return-1^e}(0|t,e,e.length):function(e,t,r,n){var s=i,o=0+r;e^=-1;for(var a=0;a<o;a++)e=e>>>8^s[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length):0}},{\"./utils\":32}],5:[function(e,t,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){var n;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),o=e(\"./stream/GenericWorker\"),a=n?\"uint8array\":\"array\";function l(e,t){o.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(l,o),l.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(a,e.data),!1)},l.prototype.flush=function(){o.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},l.prototype.cleanUp=function(){o.prototype.cleanUp.call(this),this._pako=null},l.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(e){return new l(\"Deflate\",e)},r.uncompressWorker=function(){return new l(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){function n(e,t){var r,n=\"\";for(r=0;r<t;r++)n+=String.fromCharCode(255&e),e>>>=8;return n}function i(e,t,r,i,o,u){var h,f,d=e.file,p=e.compression,m=u!==a.utf8encode,b=s.transformTo(\"string\",u(d.name)),g=s.transformTo(\"string\",a.utf8encode(d.name)),y=d.comment,v=s.transformTo(\"string\",u(y)),w=s.transformTo(\"string\",a.utf8encode(y)),_=g.length!==d.name.length,x=w.length!==y.length,k=\"\",S=\"\",M=\"\",C=d.dir,T=d.date,E={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(E.crc32=e.crc32,E.compressedSize=e.compressedSize,E.uncompressedSize=e.uncompressedSize);var A=0;t&&(A|=8),m||!_&&!x||(A|=2048);var R=0,O=0;C&&(R|=16),\"UNIX\"===o?(O=798,R|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(d.unixPermissions,C)):(O=20,R|=function(e){return 63&(e||0)}(d.dosPermissions)),h=T.getUTCHours(),h<<=6,h|=T.getUTCMinutes(),h<<=5,h|=T.getUTCSeconds()/2,f=T.getUTCFullYear()-1980,f<<=4,f|=T.getUTCMonth()+1,f<<=5,f|=T.getUTCDate(),_&&(S=n(1,1)+n(l(b),4)+g,k+=\"up\"+n(S.length,2)+S),x&&(M=n(1,1)+n(l(v),4)+w,k+=\"uc\"+n(M.length,2)+M);var j=\"\";return j+=\"\\n\\0\",j+=n(A,2),j+=p.magic,j+=n(h,2),j+=n(f,2),j+=n(E.crc32,4),j+=n(E.compressedSize,4),j+=n(E.uncompressedSize,4),j+=n(b.length,2),j+=n(k.length,2),{fileRecord:c.LOCAL_FILE_HEADER+j+b+k,dirRecord:c.CENTRAL_FILE_HEADER+n(O,2)+j+n(v.length,2)+\"\\0\\0\\0\\0\"+n(R,4)+n(i,4)+b+k+v}}var s=e(\"../utils\"),o=e(\"../stream/GenericWorker\"),a=e(\"../utf8\"),l=e(\"../crc32\"),c=e(\"../signature\");function u(e,t,r,n){o.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}s.inherits(u,o),u.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,o.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},u.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=i(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},u.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=i(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return c.DATA_DESCRIPTOR+n(e.crc32,4)+n(e.compressedSize,4)+n(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},u.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var r=this.bytesWritten-e,i=function(e,t,r,i,o){var a=s.transformTo(\"string\",o(i));return c.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+n(e,2)+n(e,2)+n(t,4)+n(r,4)+n(a.length,2)+a}(this.dirRecords.length,r,e,this.zipComment,this.encodeFileName);this.push({data:i,meta:{percent:100}})},u.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},u.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on(\"data\",(function(e){t.processChunk(e)})),e.on(\"end\",(function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()})),e.on(\"error\",(function(e){t.error(e)})),this},u.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},u.prototype.error=function(e){var t=this._sources;if(!o.prototype.error.call(this,e))return!1;for(var r=0;r<t.length;r++)try{t[r].error(e)}catch(e){}return!0},u.prototype.lock=function(){o.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()},t.exports=u},{\"../crc32\":4,\"../signature\":23,\"../stream/GenericWorker\":28,\"../utf8\":31,\"../utils\":32}],9:[function(e,t,r){var n=e(\"../compressions\"),i=e(\"./ZipFileWorker\");r.generateWorker=function(e,t,r){var s=new i(t.streamFiles,r,t.platform,t.encodeFileName),o=0;try{e.forEach((function(e,r){o++;var i=function(e,t){var r=e||t,i=n[r];if(!i)throw new Error(r+\" is not a valid compression method !\");return i}(r.options.compression,t.compression),a=r.options.compressionOptions||t.compressionOptions||{},l=r.dir,c=r.date;r._compressWorker(i,a).withStreamInfo(\"file\",{name:e,dir:l,date:c,comment:r.comment||\"\",unixPermissions:r.unixPermissions,dosPermissions:r.dosPermissions}).pipe(s)})),s.entriesCount=o}catch(e){s.error(e)}return s}},{\"../compressions\":3,\"./ZipFileWorker\":8}],10:[function(e,t,r){function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error(\"The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.\");this.files=Object.create(null),this.comment=null,this.root=\"\",this.clone=function(){var e=new n;for(var t in this)\"function\"!=typeof this[t]&&(e[t]=this[t]);return e}}(n.prototype=e(\"./object\")).loadAsync=e(\"./load\"),n.support=e(\"./support\"),n.defaults=e(\"./defaults\"),n.version=\"3.10.1\",n.loadAsync=function(e,t){return(new n).loadAsync(e,t)},n.external=e(\"./external\"),t.exports=n},{\"./defaults\":5,\"./external\":6,\"./load\":11,\"./object\":15,\"./support\":30}],11:[function(e,t,r){var n=e(\"./utils\"),i=e(\"./external\"),s=e(\"./utf8\"),o=e(\"./zipEntries\"),a=e(\"./stream/Crc32Probe\"),l=e(\"./nodejsUtils\");function c(e){return new i.Promise((function(t,r){var n=e.decompressed.getContentWorker().pipe(new a);n.on(\"error\",(function(e){r(e)})).on(\"end\",(function(){n.streamInfo.crc32!==e.decompressed.crc32?r(new Error(\"Corrupted zip : CRC32 mismatch\")):t()})).resume()}))}t.exports=function(e,t){var r=this;return t=n.extend(t||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:s.utf8decode}),l.isNode&&l.isStream(e)?i.Promise.reject(new Error(\"JSZip can't accept a stream when loading a zip file.\")):n.prepareContent(\"the loaded zip file\",e,!0,t.optimizedBinaryString,t.base64).then((function(e){var r=new o(t);return r.load(e),r})).then((function(e){var r=[i.Promise.resolve(e)],n=e.files;if(t.checkCRC32)for(var s=0;s<n.length;s++)r.push(c(n[s]));return i.Promise.all(r)})).then((function(e){for(var i=e.shift(),s=i.files,o=0;o<s.length;o++){var a=s[o],l=a.fileNameStr,c=n.resolve(a.fileNameStr);r.file(c,a.decompressed,{binary:!0,optimizedBinaryString:!0,date:a.date,dir:a.dir,comment:a.fileCommentStr.length?a.fileCommentStr:null,unixPermissions:a.unixPermissions,dosPermissions:a.dosPermissions,createFolders:t.createFolders}),a.dir||(r.file(c).unsafeOriginalName=l)}return i.zipComment.length&&(r.comment=i.zipComment),r}))}},{\"./external\":6,\"./nodejsUtils\":14,\"./stream/Crc32Probe\":25,\"./utf8\":31,\"./utils\":32,\"./zipEntries\":33}],12:[function(e,t,r){var n=e(\"../utils\"),i=e(\"../stream/GenericWorker\");function s(e,t){i.call(this,\"Nodejs stream input adapter for \"+e),this._upstreamEnded=!1,this._bindStream(t)}n.inherits(s,i),s.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on(\"data\",(function(e){t.push({data:e,meta:{percent:0}})})).on(\"error\",(function(e){t.isPaused?this.generatedError=e:t.error(e)})).on(\"end\",(function(){t.isPaused?t._upstreamEnded=!0:t.end()}))},s.prototype.pause=function(){return!!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s},{\"../stream/GenericWorker\":28,\"../utils\":32}],13:[function(e,t,r){var n=e(\"readable-stream\").Readable;function i(e,t,r){n.call(this,t),this._helper=e;var i=this;e.on(\"data\",(function(e,t){i.push(e)||i._helper.pause(),r&&r(t)})).on(\"error\",(function(e){i.emit(\"error\",e)})).on(\"end\",(function(){i.push(null)}))}e(\"../utils\").inherits(i,n),i.prototype._read=function(){this._helper.resume()},t.exports=i},{\"../utils\":32,\"readable-stream\":16}],14:[function(e,t,r){t.exports={isNode:void 0!==s,newBufferFrom:function(e,t){if(s.from&&s.from!==Uint8Array.from)return s.from(e,t);if(\"number\"==typeof e)throw new Error('The \"data\" argument must not be a number');return new s(e,t)},allocBuffer:function(e){if(s.alloc)return s.alloc(e);var t=new s(e);return t.fill(0),t},isBuffer:function(e){return s.isBuffer(e)},isStream:function(e){return e&&\"function\"==typeof e.on&&\"function\"==typeof e.pause&&\"function\"==typeof e.resume}}},{}],15:[function(e,t,r){function n(e,t,r){var n,i=s.getTypeOf(t),a=s.extend(r||{},l);a.date=a.date||new Date,null!==a.compression&&(a.compression=a.compression.toUpperCase()),\"string\"==typeof a.unixPermissions&&(a.unixPermissions=parseInt(a.unixPermissions,8)),a.unixPermissions&&16384&a.unixPermissions&&(a.dir=!0),a.dosPermissions&&16&a.dosPermissions&&(a.dir=!0),a.dir&&(e=m(e)),a.createFolders&&(n=p(e))&&b.call(this,n,!0);var h=\"string\"===i&&!1===a.binary&&!1===a.base64;r&&void 0!==r.binary||(a.binary=!h),(t instanceof c&&0===t.uncompressedSize||a.dir||!t||0===t.length)&&(a.base64=!1,a.binary=!0,t=\"\",a.compression=\"STORE\",i=\"string\");var g;g=t instanceof c||t instanceof o?t:f.isNode&&f.isStream(t)?new d(e,t):s.prepareContent(e,t,a.binary,a.optimizedBinaryString,a.base64);var y=new u(e,g,a);this.files[e]=y}var i=e(\"./utf8\"),s=e(\"./utils\"),o=e(\"./stream/GenericWorker\"),a=e(\"./stream/StreamHelper\"),l=e(\"./defaults\"),c=e(\"./compressedObject\"),u=e(\"./zipObject\"),h=e(\"./generate\"),f=e(\"./nodejsUtils\"),d=e(\"./nodejs/NodejsStreamInputAdapter\"),p=function(e){\"/\"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf(\"/\");return 0<t?e.substring(0,t):\"\"},m=function(e){return\"/\"!==e.slice(-1)&&(e+=\"/\"),e},b=function(e,t){return t=void 0!==t?t:l.createFolders,e=m(e),this.files[e]||n.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function g(e){return\"[object RegExp]\"===Object.prototype.toString.call(e)}var y={load:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},forEach:function(e){var t,r,n;for(t in this.files)n=this.files[t],(r=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(r,n)},filter:function(e){var t=[];return this.forEach((function(r,n){e(r,n)&&t.push(n)})),t},file:function(e,t,r){if(1!==arguments.length)return e=this.root+e,n.call(this,e,t,r),this;if(g(e)){var i=e;return this.filter((function(e,t){return!t.dir&&i.test(e)}))}var s=this.files[this.root+e];return s&&!s.dir?s:null},folder:function(e){if(!e)return this;if(g(e))return this.filter((function(t,r){return r.dir&&e.test(t)}));var t=this.root+e,r=b.call(this,t),n=this.clone();return n.root=r.name,n},remove:function(e){e=this.root+e;var t=this.files[e];if(t||(\"/\"!==e.slice(-1)&&(e+=\"/\"),t=this.files[e]),t&&!t.dir)delete this.files[e];else for(var r=this.filter((function(t,r){return r.name.slice(0,e.length)===e})),n=0;n<r.length;n++)delete this.files[r[n].name];return this},generate:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},generateInternalStream:function(e){var t,r={};try{if((r=s.extend(e||{},{streamFiles:!1,compression:\"STORE\",compressionOptions:null,type:\"\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:i.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),\"binarystring\"===r.type&&(r.type=\"string\"),!r.type)throw new Error(\"No output type specified.\");s.checkSupport(r.type),\"darwin\"!==r.platform&&\"freebsd\"!==r.platform&&\"linux\"!==r.platform&&\"sunos\"!==r.platform||(r.platform=\"UNIX\"),\"win32\"===r.platform&&(r.platform=\"DOS\");var n=r.comment||this.comment||\"\";t=h.generateWorker(this,r,n)}catch(e){(t=new o(\"error\")).error(e)}return new a(t,r.type||\"string\",r.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return(e=e||{}).type||(e.type=\"nodebuffer\"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=y},{\"./compressedObject\":2,\"./defaults\":5,\"./generate\":9,\"./nodejs/NodejsStreamInputAdapter\":12,\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31,\"./utils\":32,\"./zipObject\":35}],16:[function(e,t,r){t.exports=e(\"stream\")},{stream:void 0}],17:[function(e,t,r){var n=e(\"./DataReader\");function i(e){n.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t]}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data[this.zero+e]},i.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===t&&this.data[s+1]===r&&this.data[s+2]===n&&this.data[s+3]===i)return s-this.zero;return-1},i.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.readData(4);return t===s[0]&&r===s[1]&&n===s[2]&&i===s[3]},i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],18:[function(e,t,r){var n=e(\"../utils\");function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+e+\"). Corrupted zip ?\")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t,r=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),o=e(\"./StringReader\"),a=e(\"./NodeBufferReader\"),l=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new a(e):i.uint8array?new l(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new o(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){r.LOCAL_FILE_HEADER=\"PK\\x03\\x04\",r.CENTRAL_FILE_HEADER=\"PK\\x01\\x02\",r.CENTRAL_DIRECTORY_END=\"PK\\x05\\x06\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\\x06\\x07\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\\x06\\x06\",r.DATA_DESCRIPTOR=\"PK\\x07\\b\"},{}],24:[function(e,t,r){var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then((function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()}),(function(e){t.error(e)}))}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r<this._listeners[e].length;r++)this._listeners[e][r].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on(\"data\",(function(e){t.processChunk(e)})),e.on(\"end\",(function(){t.end()})),e.on(\"error\",(function(e){t.error(e)})),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e=\"Worker \"+this.name;return this.previous?this.previous+\" -> \"+e:e}},t.exports=n},{}],29:[function(e,t,r){var n=e(\"../utils\"),i=e(\"./ConvertWorker\"),o=e(\"./GenericWorker\"),a=e(\"../base64\"),l=e(\"../support\"),c=e(\"../external\"),u=null;if(l.nodestream)try{u=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function h(e,t,r){var s=t;switch(t){case\"blob\":case\"arraybuffer\":s=\"uint8array\";break;case\"base64\":s=\"string\"}try{this._internalType=s,this._outputType=t,this._mimeType=r,n.checkSupport(s),this._worker=e.pipe(new i(s)),e.lock()}catch(e){this._worker=new o(\"error\"),this._worker.error(e)}}h.prototype={accumulate:function(e){return function(e,t){return new c.Promise((function(r,i){var o=[],l=e._internalType,c=e._outputType,u=e._mimeType;e.on(\"data\",(function(e,r){o.push(e),t&&t(r)})).on(\"error\",(function(e){o=[],i(e)})).on(\"end\",(function(){try{var e=function(e,t,r){switch(e){case\"blob\":return n.newBlob(n.transformTo(\"arraybuffer\",t),r);case\"base64\":return a.encode(t);default:return n.transformTo(e,t)}}(c,function(e,t){var r,n=0,i=null,o=0;for(r=0;r<t.length;r++)o+=t[r].length;switch(e){case\"string\":return t.join(\"\");case\"array\":return Array.prototype.concat.apply([],t);case\"uint8array\":for(i=new Uint8Array(o),r=0;r<t.length;r++)i.set(t[r],n),n+=t[r].length;return i;case\"nodebuffer\":return s.concat(t);default:throw new Error(\"concat : unsupported type '\"+e+\"'\")}}(l,o),u);r(e)}catch(e){i(e)}o=[]})).resume()}))}(this,e)},on:function(e,t){var r=this;return\"data\"===e?this._worker.on(e,(function(e){t.call(r,e.data,e.meta)})):this._worker.on(e,(function(){n.delay(t,arguments,r)})),this},resume:function(){return n.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(n.checkSupport(\"nodestream\"),\"nodebuffer\"!==this._outputType)throw new Error(this._outputType+\" is not supported by this method\");return new u(this,{objectMode:\"nodebuffer\"!==this._outputType},e)}},t.exports=h},{\"../base64\":1,\"../external\":6,\"../nodejs/NodejsStreamOutputAdapter\":13,\"../support\":30,\"../utils\":32,\"./ConvertWorker\":24,\"./GenericWorker\":28}],30:[function(e,t,r){if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,r.nodebuffer=void 0!==s,r.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)r.blob=!1;else{var n=new ArrayBuffer(0);try{r.blob=0===new Blob([n],{type:\"application/zip\"}).size}catch(e){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(n),r.blob=0===i.getBlob(\"application/zip\").size}catch(e){r.blob=!1}}}try{r.nodestream=!!e(\"readable-stream\").Readable}catch(e){r.nodestream=!1}},{\"readable-stream\":16}],31:[function(e,t,r){for(var n=e(\"./utils\"),i=e(\"./support\"),s=e(\"./nodejsUtils\"),o=e(\"./stream/GenericWorker\"),a=new Array(256),l=0;l<256;l++)a[l]=252<=l?6:248<=l?5:240<=l?4:224<=l?3:192<=l?2:1;function c(){o.call(this,\"utf-8 decode\"),this.leftOver=null}function u(){o.call(this,\"utf-8 encode\")}a[254]=a[254]=1,r.utf8encode=function(e){return i.nodebuffer?s.newBufferFrom(e,\"utf-8\"):function(e){var t,r,n,s,o,a=e.length,l=0;for(s=0;s<a;s++)55296==(64512&(r=e.charCodeAt(s)))&&s+1<a&&56320==(64512&(n=e.charCodeAt(s+1)))&&(r=65536+(r-55296<<10)+(n-56320),s++),l+=r<128?1:r<2048?2:r<65536?3:4;for(t=i.uint8array?new Uint8Array(l):new Array(l),s=o=0;o<l;s++)55296==(64512&(r=e.charCodeAt(s)))&&s+1<a&&56320==(64512&(n=e.charCodeAt(s+1)))&&(r=65536+(r-55296<<10)+(n-56320),s++),r<128?t[o++]=r:(r<2048?t[o++]=192|r>>>6:(r<65536?t[o++]=224|r>>>12:(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63),t[o++]=128|r>>>6&63),t[o++]=128|63&r);return t}(e)},r.utf8decode=function(e){return i.nodebuffer?n.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,i,s,o=e.length,l=new Array(2*o);for(t=r=0;t<o;)if((i=e[t++])<128)l[r++]=i;else if(4<(s=a[i]))l[r++]=65533,t+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&t<o;)i=i<<6|63&e[t++],s--;1<s?l[r++]=65533:i<65536?l[r++]=i:(i-=65536,l[r++]=55296|i>>10&1023,l[r++]=56320|1023&i)}return l.length!==r&&(l.subarray?l=l.subarray(0,r):l.length=r),n.applyFromCharCode(l)}(e=n.transformTo(i.uint8array?\"uint8array\":\"array\",e))},n.inherits(c,o),c.prototype.processChunk=function(e){var t=n.transformTo(i.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var s=t;(t=new Uint8Array(s.length+this.leftOver.length)).set(this.leftOver,0),t.set(s,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var o=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0||0===r?t:r+a[e[r]]>t?r:t}(t),l=t;o!==t.length&&(i.uint8array?(l=t.subarray(0,o),this.leftOver=t.subarray(o,t.length)):(l=t.slice(0,o),this.leftOver=t.slice(o,t.length))),this.push({data:r.utf8decode(l),meta:e.meta})},c.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:r.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},r.Utf8DecodeWorker=c,n.inherits(u,o),u.prototype.processChunk=function(e){this.push({data:r.utf8encode(e.data),meta:e.meta})},r.Utf8EncodeWorker=u},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,r){var n=e(\"./support\"),i=e(\"./base64\"),s=e(\"./nodejsUtils\"),o=e(\"./external\");function a(e){return e}function l(e,t){for(var r=0;r<e.length;++r)t[r]=255&e.charCodeAt(r);return t}e(\"setimmediate\"),r.newBlob=function(e,t){r.checkSupport(\"blob\");try{return new Blob([e],{type:t})}catch(r){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(e),n.getBlob(t)}catch(e){throw new Error(\"Bug : can't construct the Blob.\")}}};var c={stringifyByChunk:function(e,t,r){var n=[],i=0,s=e.length;if(s<=r)return String.fromCharCode.apply(null,e);for(;i<s;)\"array\"===t||\"nodebuffer\"===t?n.push(String.fromCharCode.apply(null,e.slice(i,Math.min(i+r,s)))):n.push(String.fromCharCode.apply(null,e.subarray(i,Math.min(i+r,s)))),i+=r;return n.join(\"\")},stringifyByChar:function(e){for(var t=\"\",r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},applyCanBeUsed:{uint8array:function(){try{return n.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return!1}}(),nodebuffer:function(){try{return n.nodebuffer&&1===String.fromCharCode.apply(null,s.allocBuffer(1)).length}catch(e){return!1}}()}};function h(e){var t=65536,n=r.getTypeOf(e),i=!0;if(\"uint8array\"===n?i=c.applyCanBeUsed.uint8array:\"nodebuffer\"===n&&(i=c.applyCanBeUsed.nodebuffer),i)for(;1<t;)try{return c.stringifyByChunk(e,n,t)}catch(e){t=Math.floor(t/2)}return c.stringifyByChar(e)}function f(e,t){for(var r=0;r<e.length;r++)t[r]=e[r];return t}r.applyFromCharCode=h;var d={};d.string={string:a,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return d.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,s.allocBuffer(e.length))}},d.array={string:h,array:a,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return s.newBufferFrom(e)}},d.arraybuffer={string:function(e){return h(new Uint8Array(e))},array:function(e){return f(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:a,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return s.newBufferFrom(new Uint8Array(e))}},d.uint8array={string:h,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:a,nodebuffer:function(e){return s.newBufferFrom(e)}},d.nodebuffer={string:h,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return d.nodebuffer.uint8array(e).buffer},uint8array:function(e){return f(e,new Uint8Array(e.length))},nodebuffer:a},r.transformTo=function(e,t){if(t=t||\"\",!e)return t;r.checkSupport(e);var n=r.getTypeOf(t);return d[n][e](t)},r.resolve=function(e){for(var t=e.split(\"/\"),r=[],n=0;n<t.length;n++){var i=t[n];\".\"===i||\"\"===i&&0!==n&&n!==t.length-1||(\"..\"===i?r.pop():r.push(i))}return r.join(\"/\")},r.getTypeOf=function(e){return\"string\"==typeof e?\"string\":\"[object Array]\"===Object.prototype.toString.call(e)?\"array\":n.nodebuffer&&s.isBuffer(e)?\"nodebuffer\":n.uint8array&&e instanceof Uint8Array?\"uint8array\":n.arraybuffer&&e instanceof ArrayBuffer?\"arraybuffer\":void 0},r.checkSupport=function(e){if(!n[e.toLowerCase()])throw new Error(e+\" is not supported by this platform\")},r.MAX_VALUE_16BITS=65535,r.MAX_VALUE_32BITS=-1,r.pretty=function(e){var t,r,n=\"\";for(r=0;r<(e||\"\").length;r++)n+=\"\\\\x\"+((t=e.charCodeAt(r))<16?\"0\":\"\")+t.toString(16).toUpperCase();return n},r.delay=function(e,t,r){u((function(){e.apply(r||null,t||[])}))},r.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.prototype=new r},r.extend=function(){var e,t,r={};for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&void 0===r[t]&&(r[t]=arguments[e][t]);return r},r.prepareContent=function(e,t,s,a,c){return o.Promise.resolve(t).then((function(e){return n.blob&&(e instanceof Blob||-1!==[\"[object File]\",\"[object Blob]\"].indexOf(Object.prototype.toString.call(e)))&&\"undefined\"!=typeof FileReader?new o.Promise((function(t,r){var n=new FileReader;n.onload=function(e){t(e.target.result)},n.onerror=function(e){r(e.target.error)},n.readAsArrayBuffer(e)})):e})).then((function(t){var u=r.getTypeOf(t);return u?(\"arraybuffer\"===u?t=r.transformTo(\"uint8array\",t):\"string\"===u&&(c?t=i.decode(t):s&&!0!==a&&(t=function(e){return l(e,n.uint8array?new Uint8Array(e.length):new Array(e.length))}(t))),t):o.Promise.reject(new Error(\"Can't read the data of '\"+e+\"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\"))}))}},{\"./base64\":1,\"./external\":6,\"./nodejsUtils\":14,\"./support\":30,setimmediate:54}],33:[function(e,t,r){var n=e(\"./reader/readerFor\"),i=e(\"./utils\"),s=e(\"./signature\"),o=e(\"./zipEntry\"),a=e(\"./support\");function l(e){this.files=[],this.loadOptions=e}l.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error(\"Corrupted zip or bug: unexpected signature (\"+i.pretty(t)+\", expected \"+i.pretty(e)+\")\")}},isSignature:function(e,t){var r=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4)===t;return this.reader.setIndex(r),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=a.uint8array?\"uint8array\":\"array\",r=i.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,r,n=this.zip64EndOfCentralSize-44;0<n;)e=this.reader.readInt(2),t=this.reader.readInt(4),r=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(e=new o({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(e<0)throw this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error(\"Corrupted zip: can't find end of central directory\"):new Error(\"Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html\");this.reader.setIndex(e);var t=e;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(e),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var n=t-r;if(0<n)this.isSignature(t,s.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(n)+\" bytes.\")},prepareReader:function(e){this.reader=n(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=l},{\"./reader/readerFor\":22,\"./signature\":23,\"./support\":30,\"./utils\":32,\"./zipEntry\":34}],34:[function(e,t,r){var n=e(\"./reader/readerFor\"),i=e(\"./utils\"),s=e(\"./compressedObject\"),o=e(\"./crc32\"),a=e(\"./utf8\"),l=e(\"./compressions\"),c=e(\"./support\");function u(e,t){this.options=e,this.loadOptions=t}u.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error(\"Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)\");if(null===(t=function(e){for(var t in l)if(Object.prototype.hasOwnProperty.call(l,t)&&l[t].magic===e)return l[t];return null}(this.compressionMethod)))throw new Error(\"Corrupted zip : compression \"+i.pretty(this.compressionMethod)+\" unknown (inner file : \"+i.transformTo(\"string\",this.fileName)+\")\");this.decompressed=new s(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<i;)t=e.readInt(2),r=e.readInt(2),n=e.readData(r),this.extraFields[t]={id:t,length:r,value:n};e.setIndex(i)},handleUTF8:function(){var e=c.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=a.utf8decode(this.fileName),this.fileCommentStr=a.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else{var r=i.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var n=this.findExtraFieldUnicodeComment();if(null!==n)this.fileCommentStr=n;else{var s=i.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(s)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=n(e.value);return 1!==t.readInt(1)||o(this.fileName)!==t.readInt(4)?null:a.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=n(e.value);return 1!==t.readInt(1)||o(this.fileComment)!==t.readInt(4)?null:a.utf8decode(t.readData(e.length-5))}return null}},t.exports=u},{\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./reader/readerFor\":22,\"./support\":30,\"./utf8\":31,\"./utils\":32}],35:[function(e,t,r){function n(e,t,r){this.name=e,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=t,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}}var i=e(\"./stream/StreamHelper\"),s=e(\"./stream/DataWorker\"),o=e(\"./utf8\"),a=e(\"./compressedObject\"),l=e(\"./stream/GenericWorker\");n.prototype={internalStream:function(e){var t=null,r=\"string\";try{if(!e)throw new Error(\"No output type specified.\");var n=\"string\"===(r=e.toLowerCase())||\"text\"===r;\"binarystring\"!==r&&\"text\"!==r||(r=\"string\"),t=this._decompressWorker();var s=!this._dataBinary;s&&!n&&(t=t.pipe(new o.Utf8EncodeWorker)),!s&&n&&(t=t.pipe(new o.Utf8DecodeWorker))}catch(e){(t=new l(\"error\")).error(e)}return new i(t,r,\"\")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||\"nodebuffer\").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof a&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new o.Utf8EncodeWorker)),a.createWorkerFrom(r,e,t)},_decompressWorker:function(){return this._data instanceof a?this._data.getContentWorker():this._data instanceof l?this._data:new s(this._data)}};for(var c=[\"asText\",\"asBinary\",\"asNodeBuffer\",\"asUint8Array\",\"asArrayBuffer\"],u=function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},h=0;h<c.length;h++)n.prototype[c[h]]=u;t.exports=n},{\"./compressedObject\":2,\"./stream/DataWorker\":27,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31}],36:[function(e,t,r){(function(e){var r,n,i=e.MutationObserver||e.WebKitMutationObserver;if(i){var s=0,o=new i(u),a=e.document.createTextNode(\"\");o.observe(a,{characterData:!0}),r=function(){a.data=s=++s%2}}else if(e.setImmediate||void 0===e.MessageChannel)r=\"document\"in e&&\"onreadystatechange\"in e.document.createElement(\"script\")?function(){var t=e.document.createElement(\"script\");t.onreadystatechange=function(){u(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(u,0)};else{var l=new e.MessageChannel;l.port1.onmessage=u,r=function(){l.port2.postMessage(0)}}var c=[];function u(){var e,t;n=!0;for(var r=c.length;r;){for(t=c,c=[],e=-1;++e<r;)t[e]();r=c.length}n=!1}t.exports=function(e){1!==c.push(e)||n||r()}}).call(this,void 0!==i?i:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],37:[function(e,t,r){var n=e(\"immediate\");function i(){}var s={},o=[\"REJECTED\"],a=[\"FULFILLED\"],l=[\"PENDING\"];function c(e){if(\"function\"!=typeof e)throw new TypeError(\"resolver must be a function\");this.state=l,this.queue=[],this.outcome=void 0,e!==i&&d(this,e)}function u(e,t,r){this.promise=e,\"function\"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function h(e,t,r){n((function(){var n;try{n=t(r)}catch(n){return s.reject(e,n)}n===e?s.reject(e,new TypeError(\"Cannot resolve promise with itself\")):s.resolve(e,n)}))}function f(e){var t=e&&e.then;if(e&&(\"object\"==typeof e||\"function\"==typeof e)&&\"function\"==typeof t)return function(){t.apply(e,arguments)}}function d(e,t){var r=!1;function n(t){r||(r=!0,s.reject(e,t))}function i(t){r||(r=!0,s.resolve(e,t))}var o=p((function(){t(i,n)}));\"error\"===o.status&&n(o.value)}function p(e,t){var r={};try{r.value=e(t),r.status=\"success\"}catch(e){r.status=\"error\",r.value=e}return r}(t.exports=c).prototype.finally=function(e){if(\"function\"!=typeof e)return this;var t=this.constructor;return this.then((function(r){return t.resolve(e()).then((function(){return r}))}),(function(r){return t.resolve(e()).then((function(){throw r}))}))},c.prototype.catch=function(e){return this.then(null,e)},c.prototype.then=function(e,t){if(\"function\"!=typeof e&&this.state===a||\"function\"!=typeof t&&this.state===o)return this;var r=new this.constructor(i);return this.state!==l?h(r,this.state===a?e:t,this.outcome):this.queue.push(new u(r,e,t)),r},u.prototype.callFulfilled=function(e){s.resolve(this.promise,e)},u.prototype.otherCallFulfilled=function(e){h(this.promise,this.onFulfilled,e)},u.prototype.callRejected=function(e){s.reject(this.promise,e)},u.prototype.otherCallRejected=function(e){h(this.promise,this.onRejected,e)},s.resolve=function(e,t){var r=p(f,t);if(\"error\"===r.status)return s.reject(e,r.value);var n=r.value;if(n)d(e,n);else{e.state=a,e.outcome=t;for(var i=-1,o=e.queue.length;++i<o;)e.queue[i].callFulfilled(t)}return e},s.reject=function(e,t){e.state=o,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},c.resolve=function(e){return e instanceof this?e:s.resolve(new this(i),e)},c.reject=function(e){var t=new this(i);return s.reject(t,e)},c.all=function(e){var t=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var r=e.length,n=!1;if(!r)return this.resolve([]);for(var o=new Array(r),a=0,l=-1,c=new this(i);++l<r;)u(e[l],l);return c;function u(e,i){t.resolve(e).then((function(e){o[i]=e,++a!==r||n||(n=!0,s.resolve(c,o))}),(function(e){n||(n=!0,s.reject(c,e))}))}},c.race=function(e){if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var t=e.length,r=!1;if(!t)return this.resolve([]);for(var n,o=-1,a=new this(i);++o<t;)n=e[o],this.resolve(n).then((function(e){r||(r=!0,s.resolve(a,e))}),(function(e){r||(r=!0,s.reject(a,e))}));return a}},{immediate:36}],38:[function(e,t,r){var n={};(0,e(\"./lib/utils/common\").assign)(n,e(\"./lib/deflate\"),e(\"./lib/inflate\"),e(\"./lib/zlib/constants\")),t.exports=n},{\"./lib/deflate\":39,\"./lib/inflate\":40,\"./lib/utils/common\":41,\"./lib/zlib/constants\":44}],39:[function(e,t,r){var n=e(\"./zlib/deflate\"),i=e(\"./utils/common\"),s=e(\"./utils/strings\"),o=e(\"./zlib/messages\"),a=e(\"./zlib/zstream\"),l=Object.prototype.toString;function c(e){if(!(this instanceof c))return new c(e);this.options=i.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:\"\"},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new a,this.strm.avail_out=0;var r=n.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(0!==r)throw new Error(o[r]);if(t.header&&n.deflateSetHeader(this.strm,t.header),t.dictionary){var u;if(u=\"string\"==typeof t.dictionary?s.string2buf(t.dictionary):\"[object ArrayBuffer]\"===l.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,0!==(r=n.deflateSetDictionary(this.strm,u)))throw new Error(o[r]);this._dict_set=!0}}function u(e,t){var r=new c(t);if(r.push(e,!0),r.err)throw r.msg||o[r.err];return r.result}c.prototype.push=function(e,t){var r,o,a=this.strm,c=this.options.chunkSize;if(this.ended)return!1;o=t===~~t?t:!0===t?4:0,\"string\"==typeof e?a.input=s.string2buf(e):\"[object ArrayBuffer]\"===l.call(e)?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length;do{if(0===a.avail_out&&(a.output=new i.Buf8(c),a.next_out=0,a.avail_out=c),1!==(r=n.deflate(a,o))&&0!==r)return this.onEnd(r),!(this.ended=!0);0!==a.avail_out&&(0!==a.avail_in||4!==o&&2!==o)||(\"string\"===this.options.to?this.onData(s.buf2binstring(i.shrinkBuf(a.output,a.next_out))):this.onData(i.shrinkBuf(a.output,a.next_out)))}while((0<a.avail_in||0===a.avail_out)&&1!==r);return 4===o?(r=n.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,0===r):2!==o||(this.onEnd(0),!(a.avail_out=0))},c.prototype.onData=function(e){this.chunks.push(e)},c.prototype.onEnd=function(e){0===e&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Deflate=c,r.deflate=u,r.deflateRaw=function(e,t){return(t=t||{}).raw=!0,u(e,t)},r.gzip=function(e,t){return(t=t||{}).gzip=!0,u(e,t)}},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/deflate\":46,\"./zlib/messages\":51,\"./zlib/zstream\":53}],40:[function(e,t,r){var n=e(\"./zlib/inflate\"),i=e(\"./utils/common\"),s=e(\"./utils/strings\"),o=e(\"./zlib/constants\"),a=e(\"./zlib/messages\"),l=e(\"./zlib/zstream\"),c=e(\"./zlib/gzheader\"),u=Object.prototype.toString;function h(e){if(!(this instanceof h))return new h(e);this.options=i.assign({chunkSize:16384,windowBits:0,to:\"\"},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var r=n.inflateInit2(this.strm,t.windowBits);if(r!==o.Z_OK)throw new Error(a[r]);this.header=new c,n.inflateGetHeader(this.strm,this.header)}function f(e,t){var r=new h(t);if(r.push(e,!0),r.err)throw r.msg||a[r.err];return r.result}h.prototype.push=function(e,t){var r,a,l,c,h,f,d=this.strm,p=this.options.chunkSize,m=this.options.dictionary,b=!1;if(this.ended)return!1;a=t===~~t?t:!0===t?o.Z_FINISH:o.Z_NO_FLUSH,\"string\"==typeof e?d.input=s.binstring2buf(e):\"[object ArrayBuffer]\"===u.call(e)?d.input=new Uint8Array(e):d.input=e,d.next_in=0,d.avail_in=d.input.length;do{if(0===d.avail_out&&(d.output=new i.Buf8(p),d.next_out=0,d.avail_out=p),(r=n.inflate(d,o.Z_NO_FLUSH))===o.Z_NEED_DICT&&m&&(f=\"string\"==typeof m?s.string2buf(m):\"[object ArrayBuffer]\"===u.call(m)?new Uint8Array(m):m,r=n.inflateSetDictionary(this.strm,f)),r===o.Z_BUF_ERROR&&!0===b&&(r=o.Z_OK,b=!1),r!==o.Z_STREAM_END&&r!==o.Z_OK)return this.onEnd(r),!(this.ended=!0);d.next_out&&(0!==d.avail_out&&r!==o.Z_STREAM_END&&(0!==d.avail_in||a!==o.Z_FINISH&&a!==o.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(l=s.utf8border(d.output,d.next_out),c=d.next_out-l,h=s.buf2string(d.output,l),d.next_out=c,d.avail_out=p-c,c&&i.arraySet(d.output,d.output,l,c,0),this.onData(h)):this.onData(i.shrinkBuf(d.output,d.next_out)))),0===d.avail_in&&0===d.avail_out&&(b=!0)}while((0<d.avail_in||0===d.avail_out)&&r!==o.Z_STREAM_END);return r===o.Z_STREAM_END&&(a=o.Z_FINISH),a===o.Z_FINISH?(r=n.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===o.Z_OK):a!==o.Z_SYNC_FLUSH||(this.onEnd(o.Z_OK),!(d.avail_out=0))},h.prototype.onData=function(e){this.chunks.push(e)},h.prototype.onEnd=function(e){e===o.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Inflate=h,r.inflate=f,r.inflateRaw=function(e,t){return(t=t||{}).raw=!0,f(e,t)},r.ungzip=f},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/constants\":44,\"./zlib/gzheader\":47,\"./zlib/inflate\":49,\"./zlib/messages\":51,\"./zlib/zstream\":53}],41:[function(e,t,r){var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if(\"object\"!=typeof r)throw new TypeError(r+\"must be non-object\");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){var t,r,n,i,s,o;for(t=n=0,r=e.length;t<r;t++)n+=e[t].length;for(o=new Uint8Array(n),t=i=0,r=e.length;t<r;t++)s=e[t],o.set(s,i),i+=s.length;return o}},s={arraySet:function(e,t,r,n,i){for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){return[].concat.apply([],e)}};r.setTyped=function(e){e?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,i)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(n)},{}],42:[function(e,t,r){var n=e(\"./common\"),i=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(e){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){s=!1}for(var o=new n.Buf8(256),a=0;a<256;a++)o[a]=252<=a?6:248<=a?5:240<=a?4:224<=a?3:192<=a?2:1;function l(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,n.shrinkBuf(e,t));for(var r=\"\",o=0;o<t;o++)r+=String.fromCharCode(e[o]);return r}o[254]=o[254]=1,r.string2buf=function(e){var t,r,i,s,o,a=e.length,l=0;for(s=0;s<a;s++)55296==(64512&(r=e.charCodeAt(s)))&&s+1<a&&56320==(64512&(i=e.charCodeAt(s+1)))&&(r=65536+(r-55296<<10)+(i-56320),s++),l+=r<128?1:r<2048?2:r<65536?3:4;for(t=new n.Buf8(l),s=o=0;o<l;s++)55296==(64512&(r=e.charCodeAt(s)))&&s+1<a&&56320==(64512&(i=e.charCodeAt(s+1)))&&(r=65536+(r-55296<<10)+(i-56320),s++),r<128?t[o++]=r:(r<2048?t[o++]=192|r>>>6:(r<65536?t[o++]=224|r>>>12:(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63),t[o++]=128|r>>>6&63),t[o++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new n.Buf8(e.length),r=0,i=t.length;r<i;r++)t[r]=e.charCodeAt(r);return t},r.buf2string=function(e,t){var r,n,i,s,a=t||e.length,c=new Array(2*a);for(r=n=0;r<a;)if((i=e[r++])<128)c[n++]=i;else if(4<(s=o[i]))c[n++]=65533,r+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&r<a;)i=i<<6|63&e[r++],s--;1<s?c[n++]=65533:i<65536?c[n++]=i:(i-=65536,c[n++]=55296|i>>10&1023,c[n++]=56320|1023&i)}return l(c,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0||0===r?t:r+o[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,o=0;0!==r;){for(r-=o=2e3<r?2e3:r;s=s+(i=i+t[n++]|0)|0,--o;);i%=65521,s%=65521}return i|s<<16|0}},{}],44:[function(e,t,r){t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,r){var n=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,i){var s=n,o=i+r;e^=-1;for(var a=i;a<o;a++)e=e>>>8^s[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){var n,i=e(\"../utils/common\"),s=e(\"./trees\"),o=e(\"./adler32\"),a=e(\"./crc32\"),l=e(\"./messages\"),c=-2,u=258,h=262,f=113;function d(e,t){return e.msg=l[t],t}function p(e){return(e<<1)-(4<e?9:0)}function m(e){for(var t=e.length;0<=--t;)e[t]=0}function b(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(i.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function g(e,t){s._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,b(e.strm)}function y(e,t){e.pending_buf[e.pending++]=t}function v(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function w(e,t){var r,n,i=e.max_chain_length,s=e.strstart,o=e.prev_length,a=e.nice_match,l=e.strstart>e.w_size-h?e.strstart-(e.w_size-h):0,c=e.window,f=e.w_mask,d=e.prev,p=e.strstart+u,m=c[s+o-1],b=c[s+o];e.prev_length>=e.good_match&&(i>>=2),a>e.lookahead&&(a=e.lookahead);do{if(c[(r=t)+o]===b&&c[r+o-1]===m&&c[r]===c[s]&&c[++r]===c[s+1]){s+=2,r++;do{}while(c[++s]===c[++r]&&c[++s]===c[++r]&&c[++s]===c[++r]&&c[++s]===c[++r]&&c[++s]===c[++r]&&c[++s]===c[++r]&&c[++s]===c[++r]&&c[++s]===c[++r]&&s<p);if(n=u-(p-s),s=p-u,o<n){if(e.match_start=t,a<=(o=n))break;m=c[s+o-1],b=c[s+o]}}}while((t=d[t&f])>l&&0!=--i);return o<=e.lookahead?o:e.lookahead}function _(e){var t,r,n,s,l,c,u,f,d,p,m=e.w_size;do{if(s=e.window_size-e.lookahead-e.strstart,e.strstart>=m+(m-h)){for(i.arraySet(e.window,e.window,m,m,0),e.match_start-=m,e.strstart-=m,e.block_start-=m,t=r=e.hash_size;n=e.head[--t],e.head[t]=m<=n?n-m:0,--r;);for(t=r=m;n=e.prev[--t],e.prev[t]=m<=n?n-m:0,--r;);s+=m}if(0===e.strm.avail_in)break;if(c=e.strm,u=e.window,f=e.strstart+e.lookahead,p=void 0,(d=s)<(p=c.avail_in)&&(p=d),r=0===p?0:(c.avail_in-=p,i.arraySet(u,c.input,c.next_in,p,f),1===c.state.wrap?c.adler=o(c.adler,u,p,f):2===c.state.wrap&&(c.adler=a(c.adler,u,p,f)),c.next_in+=p,c.total_in+=p,p),e.lookahead+=r,e.lookahead+e.insert>=3)for(l=e.strstart-e.insert,e.ins_h=e.window[l],e.ins_h=(e.ins_h<<e.hash_shift^e.window[l+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[l+3-1])&e.hash_mask,e.prev[l&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=l,l++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<h&&0!==e.strm.avail_in)}function x(e,t){for(var r,n;;){if(e.lookahead<h){if(_(e),e.lookahead<h&&0===t)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-h&&(e.match_length=w(e,r)),e.match_length>=3)if(n=s._tr_tally(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=s._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(g(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,4===t?(g(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(g(e,!1),0===e.strm.avail_out)?1:2}function k(e,t){for(var r,n,i;;){if(e.lookahead<h){if(_(e),e.lookahead<h&&0===t)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-h&&(e.match_length=w(e,r),e.match_length<=5&&(1===e.strategy||3===e.match_length&&4096<e.strstart-e.match_start)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-3,n=s._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(g(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((n=s._tr_tally(e,0,e.window[e.strstart-1]))&&g(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=s._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,4===t?(g(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(g(e,!1),0===e.strm.avail_out)?1:2}function S(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}function M(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new i.Buf16(1146),this.dyn_dtree=new i.Buf16(122),this.bl_tree=new i.Buf16(78),m(this.dyn_ltree),m(this.dyn_dtree),m(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new i.Buf16(16),this.heap=new i.Buf16(573),m(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new i.Buf16(573),m(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function C(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=2,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:f,e.adler=2===t.wrap?0:1,t.last_flush=0,s._tr_init(t),0):d(e,c)}function T(e){var t=C(e);return 0===t&&function(e){e.window_size=2*e.w_size,m(e.head),e.max_lazy_match=n[e.level].max_lazy,e.good_match=n[e.level].good_length,e.nice_match=n[e.level].nice_length,e.max_chain_length=n[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=2,e.match_available=0,e.ins_h=0}(e.state),t}function E(e,t,r,n,s,o){if(!e)return c;var a=1;if(-1===t&&(t=6),n<0?(a=0,n=-n):15<n&&(a=2,n-=16),s<1||9<s||8!==r||n<8||15<n||t<0||9<t||o<0||4<o)return d(e,c);8===n&&(n=9);var l=new M;return(e.state=l).strm=e,l.wrap=a,l.gzhead=null,l.w_bits=n,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.hash_bits=s+7,l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+3-1)/3),l.window=new i.Buf8(2*l.w_size),l.head=new i.Buf16(l.hash_size),l.prev=new i.Buf16(l.w_size),l.lit_bufsize=1<<s+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new i.Buf8(l.pending_buf_size),l.d_buf=1*l.lit_bufsize,l.l_buf=3*l.lit_bufsize,l.level=t,l.strategy=o,l.method=r,T(e)}n=[new S(0,0,0,0,(function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(_(e),0===e.lookahead&&0===t)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,g(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-h&&(g(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(g(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(g(e,!1),e.strm.avail_out),1)})),new S(4,4,8,4,x),new S(4,5,16,8,x),new S(4,6,32,32,x),new S(4,4,16,16,k),new S(8,16,32,32,k),new S(8,16,128,128,k),new S(8,32,128,256,k),new S(32,128,258,1024,k),new S(32,258,258,4096,k)],r.deflateInit=function(e,t){return E(e,t,8,15,8,0)},r.deflateInit2=E,r.deflateReset=T,r.deflateResetKeep=C,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?c:(e.state.gzhead=t,0):c},r.deflate=function(e,t){var r,i,o,l;if(!e||!e.state||5<t||t<0)return e?d(e,c):c;if(i=e.state,!e.output||!e.input&&0!==e.avail_in||666===i.status&&4!==t)return d(e,0===e.avail_out?-5:c);if(i.strm=e,r=i.last_flush,i.last_flush=t,42===i.status)if(2===i.wrap)e.adler=0,y(i,31),y(i,139),y(i,8),i.gzhead?(y(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),y(i,255&i.gzhead.time),y(i,i.gzhead.time>>8&255),y(i,i.gzhead.time>>16&255),y(i,i.gzhead.time>>24&255),y(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),y(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(y(i,255&i.gzhead.extra.length),y(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=a(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(y(i,0),y(i,0),y(i,0),y(i,0),y(i,0),y(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),y(i,3),i.status=f);else{var h=8+(i.w_bits-8<<4)<<8;h|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(h|=32),h+=31-h%31,i.status=f,v(i,h),0!==i.strstart&&(v(i,e.adler>>>16),v(i,65535&e.adler)),e.adler=1}if(69===i.status)if(i.gzhead.extra){for(o=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),b(e),o=i.pending,i.pending!==i.pending_buf_size));)y(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){o=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),b(e),o=i.pending,i.pending===i.pending_buf_size)){l=1;break}l=i.gzindex<i.gzhead.name.length?255&i.gzhead.name.charCodeAt(i.gzindex++):0,y(i,l)}while(0!==l);i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),0===l&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){o=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),b(e),o=i.pending,i.pending===i.pending_buf_size)){l=1;break}l=i.gzindex<i.gzhead.comment.length?255&i.gzhead.comment.charCodeAt(i.gzindex++):0,y(i,l)}while(0!==l);i.gzhead.hcrc&&i.pending>o&&(e.adler=a(e.adler,i.pending_buf,i.pending-o,o)),0===l&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&b(e),i.pending+2<=i.pending_buf_size&&(y(i,255&e.adler),y(i,e.adler>>8&255),e.adler=0,i.status=f)):i.status=f),0!==i.pending){if(b(e),0===e.avail_out)return i.last_flush=-1,0}else if(0===e.avail_in&&p(t)<=p(r)&&4!==t)return d(e,-5);if(666===i.status&&0!==e.avail_in)return d(e,-5);if(0!==e.avail_in||0!==i.lookahead||0!==t&&666!==i.status){var w=2===i.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(_(e),0===e.lookahead)){if(0===t)return 1;break}if(e.match_length=0,r=s._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(g(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(g(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(g(e,!1),0===e.strm.avail_out)?1:2}(i,t):3===i.strategy?function(e,t){for(var r,n,i,o,a=e.window;;){if(e.lookahead<=u){if(_(e),e.lookahead<=u&&0===t)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&0<e.strstart&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){o=e.strstart+u;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i<o);e.match_length=u-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(r=s._tr_tally(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=s._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(g(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(g(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(g(e,!1),0===e.strm.avail_out)?1:2}(i,t):n[i.level].func(i,t);if(3!==w&&4!==w||(i.status=666),1===w||3===w)return 0===e.avail_out&&(i.last_flush=-1),0;if(2===w&&(1===t?s._tr_align(i):5!==t&&(s._tr_stored_block(i,0,0,!1),3===t&&(m(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),b(e),0===e.avail_out))return i.last_flush=-1,0}return 4!==t?0:i.wrap<=0?1:(2===i.wrap?(y(i,255&e.adler),y(i,e.adler>>8&255),y(i,e.adler>>16&255),y(i,e.adler>>24&255),y(i,255&e.total_in),y(i,e.total_in>>8&255),y(i,e.total_in>>16&255),y(i,e.total_in>>24&255)):(v(i,e.adler>>>16),v(i,65535&e.adler)),b(e),0<i.wrap&&(i.wrap=-i.wrap),0!==i.pending?0:1)},r.deflateEnd=function(e){var t;return e&&e.state?42!==(t=e.state.status)&&69!==t&&73!==t&&91!==t&&103!==t&&t!==f&&666!==t?d(e,c):(e.state=null,t===f?d(e,-3):0):c},r.deflateSetDictionary=function(e,t){var r,n,s,a,l,u,h,f,d=t.length;if(!e||!e.state)return c;if(2===(a=(r=e.state).wrap)||1===a&&42!==r.status||r.lookahead)return c;for(1===a&&(e.adler=o(e.adler,t,d,0)),r.wrap=0,d>=r.w_size&&(0===a&&(m(r.head),r.strstart=0,r.block_start=0,r.insert=0),f=new i.Buf8(r.w_size),i.arraySet(f,t,d-r.w_size,r.w_size,0),t=f,d=r.w_size),l=e.avail_in,u=e.next_in,h=e.input,e.avail_in=d,e.next_in=0,e.input=t,_(r);r.lookahead>=3;){for(n=r.strstart,s=r.lookahead-2;r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+3-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++,--s;);r.strstart=n,r.lookahead=2,_(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=u,e.input=h,e.avail_in=l,r.wrap=a,0},r.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./messages\":51,\"./trees\":52}],47:[function(e,t,r){t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},{}],48:[function(e,t,r){t.exports=function(e,t){var r,n,i,s,o,a,l,c,u,h,f,d,p,m,b,g,y,v,w,_,x,k,S,M,C;r=e.state,n=e.next_in,M=e.input,i=n+(e.avail_in-5),s=e.next_out,C=e.output,o=s-(t-e.avail_out),a=s+(e.avail_out-257),l=r.dmax,c=r.wsize,u=r.whave,h=r.wnext,f=r.window,d=r.hold,p=r.bits,m=r.lencode,b=r.distcode,g=(1<<r.lenbits)-1,y=(1<<r.distbits)-1;e:do{p<15&&(d+=M[n++]<<p,p+=8,d+=M[n++]<<p,p+=8),v=m[d&g];t:for(;;){if(d>>>=w=v>>>24,p-=w,0==(w=v>>>16&255))C[s++]=65535&v;else{if(!(16&w)){if(0==(64&w)){v=m[(65535&v)+(d&(1<<w)-1)];continue t}if(32&w){r.mode=12;break e}e.msg=\"invalid literal/length code\",r.mode=30;break e}_=65535&v,(w&=15)&&(p<w&&(d+=M[n++]<<p,p+=8),_+=d&(1<<w)-1,d>>>=w,p-=w),p<15&&(d+=M[n++]<<p,p+=8,d+=M[n++]<<p,p+=8),v=b[d&y];r:for(;;){if(d>>>=w=v>>>24,p-=w,!(16&(w=v>>>16&255))){if(0==(64&w)){v=b[(65535&v)+(d&(1<<w)-1)];continue r}e.msg=\"invalid distance code\",r.mode=30;break e}if(x=65535&v,p<(w&=15)&&(d+=M[n++]<<p,(p+=8)<w&&(d+=M[n++]<<p,p+=8)),l<(x+=d&(1<<w)-1)){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(d>>>=w,p-=w,(w=s-o)<x){if(u<(w=x-w)&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(S=f,(k=0)===h){if(k+=c-w,w<_){for(_-=w;C[s++]=f[k++],--w;);k=s-x,S=C}}else if(h<w){if(k+=c+h-w,(w-=h)<_){for(_-=w;C[s++]=f[k++],--w;);if(k=0,h<_){for(_-=w=h;C[s++]=f[k++],--w;);k=s-x,S=C}}}else if(k+=h-w,w<_){for(_-=w;C[s++]=f[k++],--w;);k=s-x,S=C}for(;2<_;)C[s++]=S[k++],C[s++]=S[k++],C[s++]=S[k++],_-=3;_&&(C[s++]=S[k++],1<_&&(C[s++]=S[k++]))}else{for(k=s-x;C[s++]=C[k++],C[s++]=C[k++],C[s++]=C[k++],2<(_-=3););_&&(C[s++]=C[k++],1<_&&(C[s++]=C[k++]))}break}}break}}while(n<i&&s<a);n-=_=p>>3,d&=(1<<(p-=_<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=s<a?a-s+257:257-(s-a),r.hold=d,r.bits=p}},{}],49:[function(e,t,r){var n=e(\"../utils/common\"),i=e(\"./adler32\"),s=e(\"./crc32\"),o=e(\"./inffast\"),a=e(\"./inftrees\"),l=-2;function c(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function u(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function h(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new n.Buf32(852),t.distcode=t.distdyn=new n.Buf32(592),t.sane=1,t.back=-1,0):l}function f(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,h(e)):l}function d(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?l:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,f(e))):l}function p(e,t){var r,n;return e?(n=new u,(e.state=n).window=null,0!==(r=d(e,t))&&(e.state=null),r):l}var m,b,g=!0;function y(e){if(g){var t;for(m=new n.Buf32(512),b=new n.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(a(1,e.lens,0,288,m,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;a(2,e.lens,0,32,b,0,e.work,{bits:5}),g=!1}e.lencode=m,e.lenbits=9,e.distcode=b,e.distbits=5}function v(e,t,r,i){var s,o=e.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new n.Buf8(o.wsize)),i>=o.wsize?(n.arraySet(o.window,t,r-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i<(s=o.wsize-o.wnext)&&(s=i),n.arraySet(o.window,t,r-i,s,o.wnext),(i-=s)?(n.arraySet(o.window,t,r-i,i,0),o.wnext=i,o.whave=o.wsize):(o.wnext+=s,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=s))),0}r.inflateReset=f,r.inflateReset2=d,r.inflateResetKeep=h,r.inflateInit=function(e){return p(e,15)},r.inflateInit2=p,r.inflate=function(e,t){var r,u,h,f,d,p,m,b,g,w,_,x,k,S,M,C,T,E,A,R,O,j,I,N,P=0,B=new n.Buf8(4),D=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return l;12===(r=e.state).mode&&(r.mode=13),d=e.next_out,h=e.output,m=e.avail_out,f=e.next_in,u=e.input,p=e.avail_in,b=r.hold,g=r.bits,w=p,_=m,j=0;e:for(;;)switch(r.mode){case 1:if(0===r.wrap){r.mode=13;break}for(;g<16;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}if(2&r.wrap&&35615===b){B[r.check=0]=255&b,B[1]=b>>>8&255,r.check=s(r.check,B,2,0),g=b=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&b)<<8)+(b>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&b)){e.msg=\"unknown compression method\",r.mode=30;break}if(g-=4,O=8+(15&(b>>>=4)),0===r.wbits)r.wbits=O;else if(O>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<<O,e.adler=r.check=1,r.mode=512&b?10:12,g=b=0;break;case 2:for(;g<16;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}if(r.flags=b,8!=(255&r.flags)){e.msg=\"unknown compression method\",r.mode=30;break}if(57344&r.flags){e.msg=\"unknown header flags set\",r.mode=30;break}r.head&&(r.head.text=b>>8&1),512&r.flags&&(B[0]=255&b,B[1]=b>>>8&255,r.check=s(r.check,B,2,0)),g=b=0,r.mode=3;case 3:for(;g<32;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}r.head&&(r.head.time=b),512&r.flags&&(B[0]=255&b,B[1]=b>>>8&255,B[2]=b>>>16&255,B[3]=b>>>24&255,r.check=s(r.check,B,4,0)),g=b=0,r.mode=4;case 4:for(;g<16;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}r.head&&(r.head.xflags=255&b,r.head.os=b>>8),512&r.flags&&(B[0]=255&b,B[1]=b>>>8&255,r.check=s(r.check,B,2,0)),g=b=0,r.mode=5;case 5:if(1024&r.flags){for(;g<16;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}r.length=b,r.head&&(r.head.extra_len=b),512&r.flags&&(B[0]=255&b,B[1]=b>>>8&255,r.check=s(r.check,B,2,0)),g=b=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(p<(x=r.length)&&(x=p),x&&(r.head&&(O=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),n.arraySet(r.head.extra,u,f,x,O)),512&r.flags&&(r.check=s(r.check,u,x,f)),p-=x,f+=x,r.length-=x),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===p)break e;for(x=0;O=u[f+x++],r.head&&O&&r.length<65536&&(r.head.name+=String.fromCharCode(O)),O&&x<p;);if(512&r.flags&&(r.check=s(r.check,u,x,f)),p-=x,f+=x,O)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===p)break e;for(x=0;O=u[f+x++],r.head&&O&&r.length<65536&&(r.head.comment+=String.fromCharCode(O)),O&&x<p;);if(512&r.flags&&(r.check=s(r.check,u,x,f)),p-=x,f+=x,O)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;g<16;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}if(b!==(65535&r.check)){e.msg=\"header crc mismatch\",r.mode=30;break}g=b=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;g<32;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}e.adler=r.check=c(b),g=b=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=d,e.avail_out=m,e.next_in=f,e.avail_in=p,r.hold=b,r.bits=g,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){b>>>=7&g,g-=7&g,r.mode=27;break}for(;g<3;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}switch(r.last=1&b,g-=1,3&(b>>>=1)){case 0:r.mode=14;break;case 1:if(y(r),r.mode=20,6!==t)break;b>>>=2,g-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}b>>>=2,g-=2;break;case 14:for(b>>>=7&g,g-=7&g;g<32;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}if((65535&b)!=(b>>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&b,g=b=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(x=r.length){if(p<x&&(x=p),m<x&&(x=m),0===x)break e;n.arraySet(h,u,f,x,d),p-=x,f+=x,m-=x,d+=x,r.length-=x;break}r.mode=12;break;case 17:for(;g<14;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}if(r.nlen=257+(31&b),b>>>=5,g-=5,r.ndist=1+(31&b),b>>>=5,g-=5,r.ncode=4+(15&b),b>>>=4,g-=4,286<r.nlen||30<r.ndist){e.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;g<3;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}r.lens[D[r.have++]]=7&b,b>>>=3,g-=3}for(;r.have<19;)r.lens[D[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,I={bits:r.lenbits},j=a(0,r.lens,0,19,r.lencode,0,r.work,I),r.lenbits=I.bits,j){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;C=(P=r.lencode[b&(1<<r.lenbits)-1])>>>16&255,T=65535&P,!((M=P>>>24)<=g);){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}if(T<16)b>>>=M,g-=M,r.lens[r.have++]=T;else{if(16===T){for(N=M+2;g<N;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}if(b>>>=M,g-=M,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}O=r.lens[r.have-1],x=3+(3&b),b>>>=2,g-=2}else if(17===T){for(N=M+3;g<N;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}g-=M,O=0,x=3+(7&(b>>>=M)),b>>>=3,g-=3}else{for(N=M+7;g<N;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}g-=M,O=0,x=11+(127&(b>>>=M)),b>>>=7,g-=7}if(r.have+x>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;x--;)r.lens[r.have++]=O}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,I={bits:r.lenbits},j=a(1,r.lens,0,r.nlen,r.lencode,0,r.work,I),r.lenbits=I.bits,j){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,I={bits:r.distbits},j=a(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,I),r.distbits=I.bits,j){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=p&&258<=m){e.next_out=d,e.avail_out=m,e.next_in=f,e.avail_in=p,r.hold=b,r.bits=g,o(e,_),d=e.next_out,h=e.output,m=e.avail_out,f=e.next_in,u=e.input,p=e.avail_in,b=r.hold,g=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;C=(P=r.lencode[b&(1<<r.lenbits)-1])>>>16&255,T=65535&P,!((M=P>>>24)<=g);){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}if(C&&0==(240&C)){for(E=M,A=C,R=T;C=(P=r.lencode[R+((b&(1<<E+A)-1)>>E)])>>>16&255,T=65535&P,!(E+(M=P>>>24)<=g);){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}b>>>=E,g-=E,r.back+=E}if(b>>>=M,g-=M,r.back+=M,r.length=T,0===C){r.mode=26;break}if(32&C){r.back=-1,r.mode=12;break}if(64&C){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&C,r.mode=22;case 22:if(r.extra){for(N=r.extra;g<N;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}r.length+=b&(1<<r.extra)-1,b>>>=r.extra,g-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;C=(P=r.distcode[b&(1<<r.distbits)-1])>>>16&255,T=65535&P,!((M=P>>>24)<=g);){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}if(0==(240&C)){for(E=M,A=C,R=T;C=(P=r.distcode[R+((b&(1<<E+A)-1)>>E)])>>>16&255,T=65535&P,!(E+(M=P>>>24)<=g);){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}b>>>=E,g-=E,r.back+=E}if(b>>>=M,g-=M,r.back+=M,64&C){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=T,r.extra=15&C,r.mode=24;case 24:if(r.extra){for(N=r.extra;g<N;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}r.offset+=b&(1<<r.extra)-1,b>>>=r.extra,g-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===m)break e;if(x=_-m,r.offset>x){if((x=r.offset-x)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}k=x>r.wnext?(x-=r.wnext,r.wsize-x):r.wnext-x,x>r.length&&(x=r.length),S=r.window}else S=h,k=d-r.offset,x=r.length;for(m<x&&(x=m),m-=x,r.length-=x;h[d++]=S[k++],--x;);0===r.length&&(r.mode=21);break;case 26:if(0===m)break e;h[d++]=r.length,m--,r.mode=21;break;case 27:if(r.wrap){for(;g<32;){if(0===p)break e;p--,b|=u[f++]<<g,g+=8}if(_-=m,e.total_out+=_,r.total+=_,_&&(e.adler=r.check=r.flags?s(r.check,h,_,d-_):i(r.check,h,_,d-_)),_=m,(r.flags?b:c(b))!==r.check){e.msg=\"incorrect data check\",r.mode=30;break}g=b=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;g<32;){if(0===p)break e;p--,b+=u[f++]<<g,g+=8}if(b!==(4294967295&r.total)){e.msg=\"incorrect length check\",r.mode=30;break}g=b=0}r.mode=29;case 29:j=1;break e;case 30:j=-3;break e;case 31:return-4;case 32:default:return l}return e.next_out=d,e.avail_out=m,e.next_in=f,e.avail_in=p,r.hold=b,r.bits=g,(r.wsize||_!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&v(e,e.output,e.next_out,_-e.avail_out)?(r.mode=31,-4):(w-=e.avail_in,_-=e.avail_out,e.total_in+=w,e.total_out+=_,r.total+=_,r.wrap&&_&&(e.adler=r.check=r.flags?s(r.check,h,_,e.next_out-_):i(r.check,h,_,e.next_out-_)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==w&&0===_||4===t)&&0===j&&(j=-5),j)},r.inflateEnd=function(e){if(!e||!e.state)return l;var t=e.state;return t.window&&(t.window=null),e.state=null,0},r.inflateGetHeader=function(e,t){var r;return e&&e.state?0==(2&(r=e.state).wrap)?l:((r.head=t).done=!1,0):l},r.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?l:11===r.mode&&i(1,t,n,0)!==r.check?-3:v(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,0):l},r.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./inffast\":48,\"./inftrees\":50}],50:[function(e,t,r){var n=e(\"../utils/common\"),i=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],s=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],o=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],a=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,r,l,c,u,h,f){var d,p,m,b,g,y,v,w,_,x=f.bits,k=0,S=0,M=0,C=0,T=0,E=0,A=0,R=0,O=0,j=0,I=null,N=0,P=new n.Buf16(16),B=new n.Buf16(16),D=null,F=0;for(k=0;k<=15;k++)P[k]=0;for(S=0;S<l;S++)P[t[r+S]]++;for(T=x,C=15;1<=C&&0===P[C];C--);if(C<T&&(T=C),0===C)return c[u++]=20971520,c[u++]=20971520,f.bits=1,0;for(M=1;M<C&&0===P[M];M++);for(T<M&&(T=M),k=R=1;k<=15;k++)if(R<<=1,(R-=P[k])<0)return-1;if(0<R&&(0===e||1!==C))return-1;for(B[1]=0,k=1;k<15;k++)B[k+1]=B[k]+P[k];for(S=0;S<l;S++)0!==t[r+S]&&(h[B[t[r+S]]++]=S);if(y=0===e?(I=D=h,19):1===e?(I=i,N-=257,D=s,F-=257,256):(I=o,D=a,-1),k=M,g=u,A=S=j=0,m=-1,b=(O=1<<(E=T))-1,1===e&&852<O||2===e&&592<O)return 1;for(;;){for(v=k-A,_=h[S]<y?(w=0,h[S]):h[S]>y?(w=D[F+h[S]],I[N+h[S]]):(w=96,0),d=1<<k-A,M=p=1<<E;c[g+(j>>A)+(p-=d)]=v<<24|w<<16|_|0,0!==p;);for(d=1<<k-1;j&d;)d>>=1;if(0!==d?(j&=d-1,j+=d):j=0,S++,0==--P[k]){if(k===C)break;k=t[r+h[S]]}if(T<k&&(j&b)!==m){for(0===A&&(A=T),g+=M,R=1<<(E=k-A);E+A<C&&!((R-=P[E+A])<=0);)E++,R<<=1;if(O+=1<<E,1===e&&852<O||2===e&&592<O)return 1;c[m=j&b]=T<<24|E<<16|g-u|0}}return 0!==j&&(c[g+j]=k-A<<24|64<<16|0),f.bits=T,0}},{\"../utils/common\":41}],51:[function(e,t,r){t.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],52:[function(e,t,r){var n=e(\"../utils/common\");function i(e){for(var t=e.length;0<=--t;)e[t]=0}var s=256,o=286,a=30,l=15,c=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],u=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],f=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],d=new Array(576);i(d);var p=new Array(60);i(p);var m=new Array(512);i(m);var b=new Array(256);i(b);var g=new Array(29);i(g);var y,v,w,_=new Array(a);function x(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function k(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function S(e){return e<256?m[e]:m[256+(e>>>7)]}function M(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function C(e,t,r){e.bi_valid>16-r?(e.bi_buf|=t<<e.bi_valid&65535,M(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=r-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function T(e,t,r){C(e,r[2*t],r[2*t+1])}function E(e,t){for(var r=0;r|=1&e,e>>>=1,r<<=1,0<--t;);return r>>>1}function A(e,t,r){var n,i,s=new Array(16),o=0;for(n=1;n<=l;n++)s[n]=o=o+r[n-1]<<1;for(i=0;i<=t;i++){var a=e[2*i+1];0!==a&&(e[2*i]=E(s[a]++,a))}}function R(e){var t;for(t=0;t<o;t++)e.dyn_ltree[2*t]=0;for(t=0;t<a;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function O(e){8<e.bi_valid?M(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function j(e,t,r,n){var i=2*t,s=2*r;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]}function I(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&j(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!j(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function N(e,t,r){var n,i,o,a,l=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*l]<<8|e.pending_buf[e.d_buf+2*l+1],i=e.pending_buf[e.l_buf+l],l++,0===n?T(e,i,t):(T(e,(o=b[i])+s+1,t),0!==(a=c[o])&&C(e,i-=g[o],a),T(e,o=S(--n),r),0!==(a=u[o])&&C(e,n-=_[o],a)),l<e.last_lit;);T(e,256,t)}function P(e,t){var r,n,i,s=t.dyn_tree,o=t.stat_desc.static_tree,a=t.stat_desc.has_stree,c=t.stat_desc.elems,u=-1;for(e.heap_len=0,e.heap_max=573,r=0;r<c;r++)0!==s[2*r]?(e.heap[++e.heap_len]=u=r,e.depth[r]=0):s[2*r+1]=0;for(;e.heap_len<2;)s[2*(i=e.heap[++e.heap_len]=u<2?++u:0)]=1,e.depth[i]=0,e.opt_len--,a&&(e.static_len-=o[2*i+1]);for(t.max_code=u,r=e.heap_len>>1;1<=r;r--)I(e,s,r);for(i=c;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],I(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,I(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,o,a,c=t.dyn_tree,u=t.max_code,h=t.stat_desc.static_tree,f=t.stat_desc.has_stree,d=t.stat_desc.extra_bits,p=t.stat_desc.extra_base,m=t.stat_desc.max_length,b=0;for(s=0;s<=l;s++)e.bl_count[s]=0;for(c[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<573;r++)m<(s=c[2*c[2*(n=e.heap[r])+1]+1]+1)&&(s=m,b++),c[2*n+1]=s,u<n||(e.bl_count[s]++,o=0,p<=n&&(o=d[n-p]),a=c[2*n],e.opt_len+=a*(s+o),f&&(e.static_len+=a*(h[2*n+1]+o)));if(0!==b){do{for(s=m-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[m]--,b-=2}while(0<b);for(s=m;0!==s;s--)for(n=e.bl_count[s];0!==n;)u<(i=e.heap[--r])||(c[2*i+1]!==s&&(e.opt_len+=(s-c[2*i+1])*c[2*i],c[2*i+1]=s),n--)}}(e,t),A(s,u,e.bl_count)}function B(e,t,r){var n,i,s=-1,o=t[1],a=0,l=7,c=4;for(0===o&&(l=138,c=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=o,o=t[2*(n+1)+1],++a<l&&i===o||(a<c?e.bl_tree[2*i]+=a:0!==i?(i!==s&&e.bl_tree[2*i]++,e.bl_tree[32]++):a<=10?e.bl_tree[34]++:e.bl_tree[36]++,s=i,c=(a=0)===o?(l=138,3):i===o?(l=6,3):(l=7,4))}function D(e,t,r){var n,i,s=-1,o=t[1],a=0,l=7,c=4;for(0===o&&(l=138,c=3),n=0;n<=r;n++)if(i=o,o=t[2*(n+1)+1],!(++a<l&&i===o)){if(a<c)for(;T(e,i,e.bl_tree),0!=--a;);else 0!==i?(i!==s&&(T(e,i,e.bl_tree),a--),T(e,16,e.bl_tree),C(e,a-3,2)):a<=10?(T(e,17,e.bl_tree),C(e,a-3,3)):(T(e,18,e.bl_tree),C(e,a-11,7));s=i,c=(a=0)===o?(l=138,3):i===o?(l=6,3):(l=7,4)}}i(_);var F=!1;function L(e,t,r,i){C(e,0+(i?1:0),3),function(e,t,r,i){O(e),M(e,r),M(e,~r),n.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}(e,t,r)}r._tr_init=function(e){F||(function(){var e,t,r,n,i,s=new Array(16);for(n=r=0;n<28;n++)for(g[n]=r,e=0;e<1<<c[n];e++)b[r++]=n;for(b[r-1]=n,n=i=0;n<16;n++)for(_[n]=i,e=0;e<1<<u[n];e++)m[i++]=n;for(i>>=7;n<a;n++)for(_[n]=i<<7,e=0;e<1<<u[n]-7;e++)m[256+i++]=n;for(t=0;t<=l;t++)s[t]=0;for(e=0;e<=143;)d[2*e+1]=8,e++,s[8]++;for(;e<=255;)d[2*e+1]=9,e++,s[9]++;for(;e<=279;)d[2*e+1]=7,e++,s[7]++;for(;e<=287;)d[2*e+1]=8,e++,s[8]++;for(A(d,287,s),e=0;e<a;e++)p[2*e+1]=5,p[2*e]=E(e,5);y=new x(d,c,257,o,l),v=new x(p,u,0,a,l),w=new x(new Array(0),h,0,19,7)}(),F=!0),e.l_desc=new k(e.dyn_ltree,y),e.d_desc=new k(e.dyn_dtree,v),e.bl_desc=new k(e.bl_tree,w),e.bi_buf=0,e.bi_valid=0,R(e)},r._tr_stored_block=L,r._tr_flush_block=function(e,t,r,n){var i,o,a=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<s;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),P(e,e.l_desc),P(e,e.d_desc),a=function(e){var t;for(B(e,e.dyn_ltree,e.l_desc.max_code),B(e,e.dyn_dtree,e.d_desc.max_code),P(e,e.bl_desc),t=18;3<=t&&0===e.bl_tree[2*f[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(o=e.static_len+3+7>>>3)<=i&&(i=o)):i=o=r+5,r+4<=i&&-1!==t?L(e,t,r,n):4===e.strategy||o===i?(C(e,2+(n?1:0),3),N(e,d,p)):(C(e,4+(n?1:0),3),function(e,t,r,n){var i;for(C(e,t-257,5),C(e,r-1,5),C(e,n-4,4),i=0;i<n;i++)C(e,e.bl_tree[2*f[i]+1],3);D(e,e.dyn_ltree,t-1),D(e,e.dyn_dtree,r-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),N(e,e.dyn_ltree,e.dyn_dtree)),R(e),n&&O(e)},r._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(b[r]+s+1)]++,e.dyn_dtree[2*S(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){C(e,2,3),T(e,256,d),function(e){16===e.bi_valid?(M(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(e,t){if(!e.setImmediate){var r,i,s,o,a=1,l={},c=!1,u=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e);h=h&&h.setTimeout?h:e,r=\"[object process]\"==={}.toString.call(e.process)?function(e){n.nextTick((function(){d(e)}))}:function(){if(e.postMessage&&!e.importScripts){var t=!0,r=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage(\"\",\"*\"),e.onmessage=r,t}}()?(o=\"setImmediate$\"+Math.random()+\"$\",e.addEventListener?e.addEventListener(\"message\",p,!1):e.attachEvent(\"onmessage\",p),function(t){e.postMessage(o+t,\"*\")}):e.MessageChannel?((s=new MessageChannel).port1.onmessage=function(e){d(e.data)},function(e){s.port2.postMessage(e)}):u&&\"onreadystatechange\"in u.createElement(\"script\")?(i=u.documentElement,function(e){var t=u.createElement(\"script\");t.onreadystatechange=function(){d(e),t.onreadystatechange=null,i.removeChild(t),t=null},i.appendChild(t)}):function(e){setTimeout(d,0,e)},h.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),n=0;n<t.length;n++)t[n]=arguments[n+1];var i={callback:e,args:t};return l[a]=i,r(a),a++},h.clearImmediate=f}function f(e){delete l[e]}function d(e){if(c)setTimeout(d,0,e);else{var t=l[e];if(t){c=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(void 0,r)}}(t)}finally{f(e),c=!1}}}}function p(t){t.source===e&&\"string\"==typeof t.data&&0===t.data.indexOf(o)&&d(+t.data.slice(o.length))}}(\"undefined\"==typeof self?void 0===e?this:e:self)}).call(this,void 0!==i?i:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[10])(10)}))}).call(this)}).call(this,e(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},e(\"buffer\").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],e(\"timers\").setImmediate)},{_process:467,buffer:220,timers:523}],442:[function(e,t,r){(function(e){(function(){\"use strict\";var r=/[\\\\^$.*+?()[\\]{}|]/g,n=RegExp(r.source),i=\"object\"==typeof e&&e&&e.Object===Object&&e,s=\"object\"==typeof self&&self&&self.Object===Object&&self,o=i||s||Function(\"return this\")(),a=Object.prototype.toString,l=o.Symbol,c=l?l.prototype:void 0,u=c?c.toString:void 0;function h(e){if(\"string\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&\"[object Symbol]\"==a.call(e)}(e))return u?u.call(e):\"\";var t=e+\"\";return\"0\"==t&&1/e==-1/0?\"-0\":t}t.exports=function(e){var t;return(e=null==(t=e)?\"\":h(t))&&n.test(e)?e.replace(r,\"\\\\$&\"):e}}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],443:[function(e,t,r){(function(e){(function(){\"use strict\";var n=\"[object Arguments]\",i=\"[object Map]\",s=\"[object Object]\",o=\"[object Set]\",a=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,l=/^\\w*$/,c=/^\\./,u=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,h=/\\\\(\\\\)?/g,f=/^\\[object .+?Constructor\\]$/,d=/^(?:0|[1-9]\\d*)$/,p={};p[\"[object Float32Array]\"]=p[\"[object Float64Array]\"]=p[\"[object Int8Array]\"]=p[\"[object Int16Array]\"]=p[\"[object Int32Array]\"]=p[\"[object Uint8Array]\"]=p[\"[object Uint8ClampedArray]\"]=p[\"[object Uint16Array]\"]=p[\"[object Uint32Array]\"]=!0,p[n]=p[\"[object Array]\"]=p[\"[object ArrayBuffer]\"]=p[\"[object Boolean]\"]=p[\"[object DataView]\"]=p[\"[object Date]\"]=p[\"[object Error]\"]=p[\"[object Function]\"]=p[i]=p[\"[object Number]\"]=p[s]=p[\"[object RegExp]\"]=p[o]=p[\"[object String]\"]=p[\"[object WeakMap]\"]=!1;var m=\"object\"==typeof e&&e&&e.Object===Object&&e,b=\"object\"==typeof self&&self&&self.Object===Object&&self,g=m||b||Function(\"return this\")(),y=\"object\"==typeof r&&r&&!r.nodeType&&r,v=y&&\"object\"==typeof t&&t&&!t.nodeType&&t,w=v&&v.exports===y&&m.process,_=function(){try{return w&&w.binding(\"util\")}catch(e){}}(),x=_&&_.isTypedArray;function k(e,t,r,n){for(var i=-1,s=e?e.length:0;++i<s;){var o=e[i];t(n,o,r(o),e)}return n}function S(e,t){for(var r=-1,n=e?e.length:0;++r<n;)if(t(e[r],r,e))return!0;return!1}function M(e){var t=!1;if(null!=e&&\"function\"!=typeof e.toString)try{t=!!(e+\"\")}catch(e){}return t}function C(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}function T(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}var E,A,R,O=Array.prototype,j=Function.prototype,I=Object.prototype,N=g[\"__core-js_shared__\"],P=(E=/[^.]+$/.exec(N&&N.keys&&N.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+E:\"\",B=j.toString,D=I.hasOwnProperty,F=I.toString,L=RegExp(\"^\"+B.call(D).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),z=g.Symbol,U=g.Uint8Array,$=I.propertyIsEnumerable,H=O.splice,V=(A=Object.keys,R=Object,function(e){return A(R(e))}),q=Ce(g,\"DataView\"),W=Ce(g,\"Map\"),X=Ce(g,\"Promise\"),K=Ce(g,\"Set\"),Y=Ce(g,\"WeakMap\"),Z=Ce(Object,\"create\"),G=Ne(q),J=Ne(W),Q=Ne(X),ee=Ne(K),te=Ne(Y),re=z?z.prototype:void 0,ne=re?re.valueOf:void 0,ie=re?re.toString:void 0;function se(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function oe(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function ae(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function le(e){var t=-1,r=e?e.length:0;for(this.__data__=new ae;++t<r;)this.add(e[t])}function ce(e){this.__data__=new oe(e)}function ue(e,t){var r=Ue(e)||ze(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,i=!!n;for(var s in e)!t&&!D.call(e,s)||i&&(\"length\"==s||Ee(s,n))||r.push(s);return r}function he(e,t){for(var r=e.length;r--;)if(Le(e[r][0],t))return r;return-1}function fe(e,t,r,n){return me(e,(function(e,i,s){t(n,e,r(e),s)})),n}se.prototype.clear=function(){this.__data__=Z?Z(null):{}},se.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},se.prototype.get=function(e){var t=this.__data__;if(Z){var r=t[e];return\"__lodash_hash_undefined__\"===r?void 0:r}return D.call(t,e)?t[e]:void 0},se.prototype.has=function(e){var t=this.__data__;return Z?void 0!==t[e]:D.call(t,e)},se.prototype.set=function(e,t){return this.__data__[e]=Z&&void 0===t?\"__lodash_hash_undefined__\":t,this},oe.prototype.clear=function(){this.__data__=[]},oe.prototype.delete=function(e){var t=this.__data__,r=he(t,e);return!(r<0)&&(r==t.length-1?t.pop():H.call(t,r,1),!0)},oe.prototype.get=function(e){var t=this.__data__,r=he(t,e);return r<0?void 0:t[r][1]},oe.prototype.has=function(e){return he(this.__data__,e)>-1},oe.prototype.set=function(e,t){var r=this.__data__,n=he(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},ae.prototype.clear=function(){this.__data__={hash:new se,map:new(W||oe),string:new se}},ae.prototype.delete=function(e){return Me(this,e).delete(e)},ae.prototype.get=function(e){return Me(this,e).get(e)},ae.prototype.has=function(e){return Me(this,e).has(e)},ae.prototype.set=function(e,t){return Me(this,e).set(e,t),this},le.prototype.add=le.prototype.push=function(e){return this.__data__.set(e,\"__lodash_hash_undefined__\"),this},le.prototype.has=function(e){return this.__data__.has(e)},ce.prototype.clear=function(){this.__data__=new oe},ce.prototype.delete=function(e){return this.__data__.delete(e)},ce.prototype.get=function(e){return this.__data__.get(e)},ce.prototype.has=function(e){return this.__data__.has(e)},ce.prototype.set=function(e,t){var r=this.__data__;if(r instanceof oe){var n=r.__data__;if(!W||n.length<199)return n.push([e,t]),this;r=this.__data__=new ae(n)}return r.set(e,t),this};var de,pe,me=(de=function(e,t){return e&&be(e,t,Ye)},function(e,t){if(null==e)return e;if(!$e(e))return de(e,t);for(var r=e.length,n=pe?r:-1,i=Object(e);(pe?n--:++n<r)&&!1!==t(i[n],n,i););return e}),be=function(e){return function(t,r,n){for(var i=-1,s=Object(t),o=n(t),a=o.length;a--;){var l=o[e?a:++i];if(!1===r(s[l],l,s))break}return t}}();function ge(e,t){for(var r=0,n=(t=Ae(t,e)?[t]:ke(t)).length;null!=e&&r<n;)e=e[Ie(t[r++])];return r&&r==n?e:void 0}function ye(e,t){return null!=e&&t in Object(e)}function ve(e,t,r,a,l){return e===t||(null==e||null==t||!qe(e)&&!We(t)?e!=e&&t!=t:function(e,t,r,a,l,c){var u=Ue(e),h=Ue(t),f=\"[object Array]\",d=\"[object Array]\";u||(f=(f=Te(e))==n?s:f);h||(d=(d=Te(t))==n?s:d);var p=f==s&&!M(e),m=d==s&&!M(t),b=f==d;if(b&&!p)return c||(c=new ce),u||Ke(e)?Se(e,t,r,a,l,c):function(e,t,r,n,s,a,l){switch(r){case\"[object DataView]\":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case\"[object ArrayBuffer]\":return!(e.byteLength!=t.byteLength||!n(new U(e),new U(t)));case\"[object Boolean]\":case\"[object Date]\":case\"[object Number]\":return Le(+e,+t);case\"[object Error]\":return e.name==t.name&&e.message==t.message;case\"[object RegExp]\":case\"[object String]\":return e==t+\"\";case i:var c=C;case o:var u=2&a;if(c||(c=T),e.size!=t.size&&!u)return!1;var h=l.get(e);if(h)return h==t;a|=1,l.set(e,t);var f=Se(c(e),c(t),n,s,a,l);return l.delete(e),f;case\"[object Symbol]\":if(ne)return ne.call(e)==ne.call(t)}return!1}(e,t,f,r,a,l,c);if(!(2&l)){var g=p&&D.call(e,\"__wrapped__\"),y=m&&D.call(t,\"__wrapped__\");if(g||y){var v=g?e.value():e,w=y?t.value():t;return c||(c=new ce),r(v,w,a,l,c)}}if(!b)return!1;return c||(c=new ce),function(e,t,r,n,i,s){var o=2&i,a=Ye(e),l=a.length,c=Ye(t).length;if(l!=c&&!o)return!1;var u=l;for(;u--;){var h=a[u];if(!(o?h in t:D.call(t,h)))return!1}var f=s.get(e);if(f&&s.get(t))return f==t;var d=!0;s.set(e,t),s.set(t,e);var p=o;for(;++u<l;){h=a[u];var m=e[h],b=t[h];if(n)var g=o?n(b,m,h,t,e,s):n(m,b,h,e,t,s);if(!(void 0===g?m===b||r(m,b,n,i,s):g)){d=!1;break}p||(p=\"constructor\"==h)}if(d&&!p){var y=e.constructor,v=t.constructor;y==v||!(\"constructor\"in e)||!(\"constructor\"in t)||\"function\"==typeof y&&y instanceof y&&\"function\"==typeof v&&v instanceof v||(d=!1)}return s.delete(e),s.delete(t),d}(e,t,r,a,l,c)}(e,t,ve,r,a,l))}function we(e){return!(!qe(e)||function(e){return!!P&&P in e}(e))&&(He(e)||M(e)?L:f).test(Ne(e))}function _e(e){return\"function\"==typeof e?e:null==e?Ze:\"object\"==typeof e?Ue(e)?function(e,t){if(Ae(e)&&Re(t))return Oe(Ie(e),t);return function(r){var n=function(e,t,r){var n=null==e?void 0:ge(e,t);return void 0===n?r:n}(r,e);return void 0===n&&n===t?function(e,t){return null!=e&&function(e,t,r){t=Ae(t,e)?[t]:ke(t);var n,i=-1,s=t.length;for(;++i<s;){var o=Ie(t[i]);if(!(n=null!=e&&r(e,o)))break;e=e[o]}if(n)return n;return!!(s=e?e.length:0)&&Ve(s)&&Ee(o,s)&&(Ue(e)||ze(e))}(e,t,ye)}(r,e):ve(t,n,void 0,3)}}(e[0],e[1]):function(e){var t=function(e){var t=Ye(e),r=t.length;for(;r--;){var n=t[r],i=e[n];t[r]=[n,i,Re(i)]}return t}(e);if(1==t.length&&t[0][2])return Oe(t[0][0],t[0][1]);return function(r){return r===e||function(e,t,r,n){var i=r.length,s=i,o=!n;if(null==e)return!s;for(e=Object(e);i--;){var a=r[i];if(o&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return!1}for(;++i<s;){var l=(a=r[i])[0],c=e[l],u=a[1];if(o&&a[2]){if(void 0===c&&!(l in e))return!1}else{var h=new ce;if(n)var f=n(c,u,l,e,t,h);if(!(void 0===f?ve(u,c,n,3,h):f))return!1}}return!0}(r,e,t)}}(e):Ae(t=e)?(r=Ie(t),function(e){return null==e?void 0:e[r]}):function(e){return function(t){return ge(t,e)}}(t);var t,r}function xe(e){if(r=(t=e)&&t.constructor,n=\"function\"==typeof r&&r.prototype||I,t!==n)return V(e);var t,r,n,i=[];for(var s in Object(e))D.call(e,s)&&\"constructor\"!=s&&i.push(s);return i}function ke(e){return Ue(e)?e:je(e)}function Se(e,t,r,n,i,s){var o=2&i,a=e.length,l=t.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(e);if(c&&s.get(t))return c==t;var u=-1,h=!0,f=1&i?new le:void 0;for(s.set(e,t),s.set(t,e);++u<a;){var d=e[u],p=t[u];if(n)var m=o?n(p,d,u,t,e,s):n(d,p,u,e,t,s);if(void 0!==m){if(m)continue;h=!1;break}if(f){if(!S(t,(function(e,t){if(!f.has(t)&&(d===e||r(d,e,n,i,s)))return f.add(t)}))){h=!1;break}}else if(d!==p&&!r(d,p,n,i,s)){h=!1;break}}return s.delete(e),s.delete(t),h}function Me(e,t){var r,n,i=e.__data__;return(\"string\"==(n=typeof(r=t))||\"number\"==n||\"symbol\"==n||\"boolean\"==n?\"__proto__\"!==r:null===r)?i[\"string\"==typeof t?\"string\":\"hash\"]:i.map}function Ce(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return we(r)?r:void 0}var Te=function(e){return F.call(e)};function Ee(e,t){return!!(t=null==t?9007199254740991:t)&&(\"number\"==typeof e||d.test(e))&&e>-1&&e%1==0&&e<t}function Ae(e,t){if(Ue(e))return!1;var r=typeof e;return!(\"number\"!=r&&\"symbol\"!=r&&\"boolean\"!=r&&null!=e&&!Xe(e))||(l.test(e)||!a.test(e)||null!=t&&e in Object(t))}function Re(e){return e==e&&!qe(e)}function Oe(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}}(q&&\"[object DataView]\"!=Te(new q(new ArrayBuffer(1)))||W&&Te(new W)!=i||X&&\"[object Promise]\"!=Te(X.resolve())||K&&Te(new K)!=o||Y&&\"[object WeakMap]\"!=Te(new Y))&&(Te=function(e){var t=F.call(e),r=t==s?e.constructor:void 0,n=r?Ne(r):void 0;if(n)switch(n){case G:return\"[object DataView]\";case J:return i;case Q:return\"[object Promise]\";case ee:return o;case te:return\"[object WeakMap]\"}return t});var je=Fe((function(e){var t;e=null==(t=e)?\"\":function(e){if(\"string\"==typeof e)return e;if(Xe(e))return ie?ie.call(e):\"\";var t=e+\"\";return\"0\"==t&&1/e==-1/0?\"-0\":t}(t);var r=[];return c.test(e)&&r.push(\"\"),e.replace(u,(function(e,t,n,i){r.push(n?i.replace(h,\"$1\"):t||e)})),r}));function Ie(e){if(\"string\"==typeof e||Xe(e))return e;var t=e+\"\";return\"0\"==t&&1/e==-1/0?\"-0\":t}function Ne(e){if(null!=e){try{return B.call(e)}catch(e){}try{return e+\"\"}catch(e){}}return\"\"}var Pe,Be,De=(Pe=function(e,t,r){D.call(e,r)?e[r].push(t):e[r]=[t]},function(e,t){var r=Ue(e)?k:fe,n=Be?Be():{};return r(e,Pe,_e(t),n)});function Fe(e,t){if(\"function\"!=typeof e||t&&\"function\"!=typeof t)throw new TypeError(\"Expected a function\");var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var o=e.apply(this,n);return r.cache=s.set(i,o),o};return r.cache=new(Fe.Cache||ae),r}function Le(e,t){return e===t||e!=e&&t!=t}function ze(e){return function(e){return We(e)&&$e(e)}(e)&&D.call(e,\"callee\")&&(!$.call(e,\"callee\")||F.call(e)==n)}Fe.Cache=ae;var Ue=Array.isArray;function $e(e){return null!=e&&Ve(e.length)&&!He(e)}function He(e){var t=qe(e)?F.call(e):\"\";return\"[object Function]\"==t||\"[object GeneratorFunction]\"==t}function Ve(e){return\"number\"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function qe(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function We(e){return!!e&&\"object\"==typeof e}function Xe(e){return\"symbol\"==typeof e||We(e)&&\"[object Symbol]\"==F.call(e)}var Ke=x?function(e){return function(t){return e(t)}}(x):function(e){return We(e)&&Ve(e.length)&&!!p[F.call(e)]};function Ye(e){return $e(e)?ue(e):xe(e)}function Ze(e){return e}t.exports=De}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],444:[function(e,t,r){\"use strict\";var n=Object.prototype.toString;t.exports=function(e){return!0===e||!1===e||function(e){return!!e&&\"object\"==typeof e}(e)&&\"[object Boolean]\"==n.call(e)}},{}],445:[function(e,t,r){(function(e){(function(){\"use strict\";var n=\"[object Arguments]\",i=\"[object Map]\",s=\"[object Object]\",o=\"[object Set]\",a=/^\\[object .+?Constructor\\]$/,l=/^(?:0|[1-9]\\d*)$/,c={};c[\"[object Float32Array]\"]=c[\"[object Float64Array]\"]=c[\"[object Int8Array]\"]=c[\"[object Int16Array]\"]=c[\"[object Int32Array]\"]=c[\"[object Uint8Array]\"]=c[\"[object Uint8ClampedArray]\"]=c[\"[object Uint16Array]\"]=c[\"[object Uint32Array]\"]=!0,c[n]=c[\"[object Array]\"]=c[\"[object ArrayBuffer]\"]=c[\"[object Boolean]\"]=c[\"[object DataView]\"]=c[\"[object Date]\"]=c[\"[object Error]\"]=c[\"[object Function]\"]=c[i]=c[\"[object Number]\"]=c[s]=c[\"[object RegExp]\"]=c[o]=c[\"[object String]\"]=c[\"[object WeakMap]\"]=!1;var u=\"object\"==typeof e&&e&&e.Object===Object&&e,h=\"object\"==typeof self&&self&&self.Object===Object&&self,f=u||h||Function(\"return this\")(),d=\"object\"==typeof r&&r&&!r.nodeType&&r,p=d&&\"object\"==typeof t&&t&&!t.nodeType&&t,m=p&&p.exports===d,b=m&&u.process,g=function(){try{return b&&b.binding&&b.binding(\"util\")}catch(e){}}(),y=g&&g.isTypedArray;function v(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}function w(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}function _(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}var x,k,S,M=Array.prototype,C=Function.prototype,T=Object.prototype,E=f[\"__core-js_shared__\"],A=C.toString,R=T.hasOwnProperty,O=(x=/[^.]+$/.exec(E&&E.keys&&E.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+x:\"\",j=T.toString,I=RegExp(\"^\"+A.call(R).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),N=m?f.Buffer:void 0,P=f.Symbol,B=f.Uint8Array,D=T.propertyIsEnumerable,F=M.splice,L=P?P.toStringTag:void 0,z=Object.getOwnPropertySymbols,U=N?N.isBuffer:void 0,$=(k=Object.keys,S=Object,function(e){return k(S(e))}),H=ge(f,\"DataView\"),V=ge(f,\"Map\"),q=ge(f,\"Promise\"),W=ge(f,\"Set\"),X=ge(f,\"WeakMap\"),K=ge(Object,\"create\"),Y=_e(H),Z=_e(V),G=_e(q),J=_e(W),Q=_e(X),ee=P?P.prototype:void 0,te=ee?ee.valueOf:void 0;function re(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function ne(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function ie(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function se(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new ie;++t<r;)this.add(e[t])}function oe(e){var t=this.__data__=new ne(e);this.size=t.size}function ae(e,t){var r=Se(e),n=!r&&ke(e),i=!r&&!n&&Me(e),s=!r&&!n&&!i&&Re(e),o=r||n||i||s,a=o?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],l=a.length;for(var c in e)!t&&!R.call(e,c)||o&&(\"length\"==c||i&&(\"offset\"==c||\"parent\"==c)||s&&(\"buffer\"==c||\"byteLength\"==c||\"byteOffset\"==c)||we(c,l))||a.push(c);return a}function le(e,t){for(var r=e.length;r--;)if(xe(e[r][0],t))return r;return-1}function ce(e){return null==e?void 0===e?\"[object Undefined]\":\"[object Null]\":L&&L in Object(e)?function(e){var t=R.call(e,L),r=e[L];try{e[L]=void 0;var n=!0}catch(e){}var i=j.call(e);n&&(t?e[L]=r:delete e[L]);return i}(e):function(e){return j.call(e)}(e)}function ue(e){return Ae(e)&&ce(e)==n}function he(e,t,r,a,l){return e===t||(null==e||null==t||!Ae(e)&&!Ae(t)?e!=e&&t!=t:function(e,t,r,a,l,c){var u=Se(e),h=Se(t),f=u?\"[object Array]\":ve(e),d=h?\"[object Array]\":ve(t),p=(f=f==n?s:f)==s,m=(d=d==n?s:d)==s,b=f==d;if(b&&Me(e)){if(!Me(t))return!1;u=!0,p=!1}if(b&&!p)return c||(c=new oe),u||Re(e)?pe(e,t,r,a,l,c):function(e,t,r,n,s,a,l){switch(r){case\"[object DataView]\":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case\"[object ArrayBuffer]\":return!(e.byteLength!=t.byteLength||!a(new B(e),new B(t)));case\"[object Boolean]\":case\"[object Date]\":case\"[object Number]\":return xe(+e,+t);case\"[object Error]\":return e.name==t.name&&e.message==t.message;case\"[object RegExp]\":case\"[object String]\":return e==t+\"\";case i:var c=w;case o:var u=1&n;if(c||(c=_),e.size!=t.size&&!u)return!1;var h=l.get(e);if(h)return h==t;n|=2,l.set(e,t);var f=pe(c(e),c(t),n,s,a,l);return l.delete(e),f;case\"[object Symbol]\":if(te)return te.call(e)==te.call(t)}return!1}(e,t,f,r,a,l,c);if(!(1&r)){var g=p&&R.call(e,\"__wrapped__\"),y=m&&R.call(t,\"__wrapped__\");if(g||y){var v=g?e.value():e,x=y?t.value():t;return c||(c=new oe),l(v,x,r,a,c)}}if(!b)return!1;return c||(c=new oe),function(e,t,r,n,i,s){var o=1&r,a=me(e),l=a.length,c=me(t).length;if(l!=c&&!o)return!1;var u=l;for(;u--;){var h=a[u];if(!(o?h in t:R.call(t,h)))return!1}var f=s.get(e);if(f&&s.get(t))return f==t;var d=!0;s.set(e,t),s.set(t,e);var p=o;for(;++u<l;){h=a[u];var m=e[h],b=t[h];if(n)var g=o?n(b,m,h,t,e,s):n(m,b,h,e,t,s);if(!(void 0===g?m===b||i(m,b,r,n,s):g)){d=!1;break}p||(p=\"constructor\"==h)}if(d&&!p){var y=e.constructor,v=t.constructor;y==v||!(\"constructor\"in e)||!(\"constructor\"in t)||\"function\"==typeof y&&y instanceof y&&\"function\"==typeof v&&v instanceof v||(d=!1)}return s.delete(e),s.delete(t),d}(e,t,r,a,l,c)}(e,t,r,a,he,l))}function fe(e){return!(!Ee(e)||function(e){return!!O&&O in e}(e))&&(Ce(e)?I:a).test(_e(e))}function de(e){if(r=(t=e)&&t.constructor,n=\"function\"==typeof r&&r.prototype||T,t!==n)return $(e);var t,r,n,i=[];for(var s in Object(e))R.call(e,s)&&\"constructor\"!=s&&i.push(s);return i}function pe(e,t,r,n,i,s){var o=1&r,a=e.length,l=t.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(e);if(c&&s.get(t))return c==t;var u=-1,h=!0,f=2&r?new se:void 0;for(s.set(e,t),s.set(t,e);++u<a;){var d=e[u],p=t[u];if(n)var m=o?n(p,d,u,t,e,s):n(d,p,u,e,t,s);if(void 0!==m){if(m)continue;h=!1;break}if(f){if(!v(t,(function(e,t){if(o=t,!f.has(o)&&(d===e||i(d,e,r,n,s)))return f.push(t);var o}))){h=!1;break}}else if(d!==p&&!i(d,p,r,n,s)){h=!1;break}}return s.delete(e),s.delete(t),h}function me(e){return function(e,t,r){var n=t(e);return Se(e)?n:function(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}(n,r(e))}(e,Oe,ye)}function be(e,t){var r,n,i=e.__data__;return(\"string\"==(n=typeof(r=t))||\"number\"==n||\"symbol\"==n||\"boolean\"==n?\"__proto__\"!==r:null===r)?i[\"string\"==typeof t?\"string\":\"hash\"]:i.map}function ge(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return fe(r)?r:void 0}re.prototype.clear=function(){this.__data__=K?K(null):{},this.size=0},re.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},re.prototype.get=function(e){var t=this.__data__;if(K){var r=t[e];return\"__lodash_hash_undefined__\"===r?void 0:r}return R.call(t,e)?t[e]:void 0},re.prototype.has=function(e){var t=this.__data__;return K?void 0!==t[e]:R.call(t,e)},re.prototype.set=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=K&&void 0===t?\"__lodash_hash_undefined__\":t,this},ne.prototype.clear=function(){this.__data__=[],this.size=0},ne.prototype.delete=function(e){var t=this.__data__,r=le(t,e);return!(r<0)&&(r==t.length-1?t.pop():F.call(t,r,1),--this.size,!0)},ne.prototype.get=function(e){var t=this.__data__,r=le(t,e);return r<0?void 0:t[r][1]},ne.prototype.has=function(e){return le(this.__data__,e)>-1},ne.prototype.set=function(e,t){var r=this.__data__,n=le(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this},ie.prototype.clear=function(){this.size=0,this.__data__={hash:new re,map:new(V||ne),string:new re}},ie.prototype.delete=function(e){var t=be(this,e).delete(e);return this.size-=t?1:0,t},ie.prototype.get=function(e){return be(this,e).get(e)},ie.prototype.has=function(e){return be(this,e).has(e)},ie.prototype.set=function(e,t){var r=be(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this},se.prototype.add=se.prototype.push=function(e){return this.__data__.set(e,\"__lodash_hash_undefined__\"),this},se.prototype.has=function(e){return this.__data__.has(e)},oe.prototype.clear=function(){this.__data__=new ne,this.size=0},oe.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},oe.prototype.get=function(e){return this.__data__.get(e)},oe.prototype.has=function(e){return this.__data__.has(e)},oe.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ne){var n=r.__data__;if(!V||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new ie(n)}return r.set(e,t),this.size=r.size,this};var ye=z?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var r=-1,n=null==e?0:e.length,i=0,s=[];++r<n;){var o=e[r];t(o,r,e)&&(s[i++]=o)}return s}(z(e),(function(t){return D.call(e,t)})))}:function(){return[]},ve=ce;function we(e,t){return!!(t=null==t?9007199254740991:t)&&(\"number\"==typeof e||l.test(e))&&e>-1&&e%1==0&&e<t}function _e(e){if(null!=e){try{return A.call(e)}catch(e){}try{return e+\"\"}catch(e){}}return\"\"}function xe(e,t){return e===t||e!=e&&t!=t}(H&&\"[object DataView]\"!=ve(new H(new ArrayBuffer(1)))||V&&ve(new V)!=i||q&&\"[object Promise]\"!=ve(q.resolve())||W&&ve(new W)!=o||X&&\"[object WeakMap]\"!=ve(new X))&&(ve=function(e){var t=ce(e),r=t==s?e.constructor:void 0,n=r?_e(r):\"\";if(n)switch(n){case Y:return\"[object DataView]\";case Z:return i;case G:return\"[object Promise]\";case J:return o;case Q:return\"[object WeakMap]\"}return t});var ke=ue(function(){return arguments}())?ue:function(e){return Ae(e)&&R.call(e,\"callee\")&&!D.call(e,\"callee\")},Se=Array.isArray;var Me=U||function(){return!1};function Ce(e){if(!Ee(e))return!1;var t=ce(e);return\"[object Function]\"==t||\"[object GeneratorFunction]\"==t||\"[object AsyncFunction]\"==t||\"[object Proxy]\"==t}function Te(e){return\"number\"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Ee(e){var t=typeof e;return null!=e&&(\"object\"==t||\"function\"==t)}function Ae(e){return null!=e&&\"object\"==typeof e}var Re=y?function(e){return function(t){return e(t)}}(y):function(e){return Ae(e)&&Te(e.length)&&!!c[ce(e)]};function Oe(e){return null!=(t=e)&&Te(t.length)&&!Ce(t)?ae(e):de(e);var t}t.exports=function(e,t){return he(e,t)}}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],446:[function(e,t,r){(function(e){(function(){\"use strict\";var r=\"object\"==typeof e&&e&&e.Object===Object&&e,n=\"object\"==typeof self&&self&&self.Object===Object&&self,i=r||n||Function(\"return this\")(),s=Object.prototype,o=s.hasOwnProperty,a=s.toString,l=i.Symbol,c=l?l.toStringTag:void 0;function u(e){return null==e?void 0===e?\"[object Undefined]\":\"[object Null]\":c&&c in Object(e)?function(e){var t=o.call(e,c),r=e[c];try{e[c]=void 0;var n=!0}catch(e){}var i=a.call(e);n&&(t?e[c]=r:delete e[c]);return i}(e):function(e){return a.call(e)}(e)}t.exports=function(e){if(!function(e){var t=typeof e;return null!=e&&(\"object\"==t||\"function\"==t)}(e))return!1;var t=u(e);return\"[object Function]\"==t||\"[object GeneratorFunction]\"==t||\"[object AsyncFunction]\"==t||\"[object Proxy]\"==t}}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],447:[function(e,t,r){\"use strict\";t.exports=function(e){return null==e}},{}],448:[function(e,t,r){\"use strict\";t.exports=function(e){return void 0===e}},{}],449:[function(e,t,r){(function(e){(function(){\"use strict\";var r=/^\\[object .+?Constructor\\]$/,n=\"object\"==typeof e&&e&&e.Object===Object&&e,i=\"object\"==typeof self&&self&&self.Object===Object&&self,s=n||i||Function(\"return this\")();function o(e,t){return!!(e?e.length:0)&&function(e,t,r){if(t!=t)return function(e,t,r,n){var i=e.length,s=r+(n?1:-1);for(;n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}(e,l,r);var n=r-1,i=e.length;for(;++n<i;)if(e[n]===t)return n;return-1}(e,t,0)>-1}function a(e,t,r){for(var n=-1,i=e?e.length:0;++n<i;)if(r(t,e[n]))return!0;return!1}function l(e){return e!=e}function c(e,t){return e.has(t)}function u(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}var h,f=Array.prototype,d=Function.prototype,p=Object.prototype,m=s[\"__core-js_shared__\"],b=(h=/[^.]+$/.exec(m&&m.keys&&m.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+h:\"\",g=d.toString,y=p.hasOwnProperty,v=p.toString,w=RegExp(\"^\"+g.call(y).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),_=f.splice,x=I(s,\"Map\"),k=I(s,\"Set\"),S=I(Object,\"create\");function M(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function C(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function T(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function E(e){var t=-1,r=e?e.length:0;for(this.__data__=new T;++t<r;)this.add(e[t])}function A(e,t){for(var r,n,i=e.length;i--;)if((r=e[i][0])===(n=t)||r!=r&&n!=n)return i;return-1}function R(e){return!(!N(e)||(t=e,b&&b in t))&&(function(e){var t=N(e)?v.call(e):\"\";return\"[object Function]\"==t||\"[object GeneratorFunction]\"==t}(e)||function(e){var t=!1;if(null!=e&&\"function\"!=typeof e.toString)try{t=!!(e+\"\")}catch(e){}return t}(e)?w:r).test(function(e){if(null!=e){try{return g.call(e)}catch(e){}try{return e+\"\"}catch(e){}}return\"\"}(e));var t}M.prototype.clear=function(){this.__data__=S?S(null):{}},M.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},M.prototype.get=function(e){var t=this.__data__;if(S){var r=t[e];return\"__lodash_hash_undefined__\"===r?void 0:r}return y.call(t,e)?t[e]:void 0},M.prototype.has=function(e){var t=this.__data__;return S?void 0!==t[e]:y.call(t,e)},M.prototype.set=function(e,t){return this.__data__[e]=S&&void 0===t?\"__lodash_hash_undefined__\":t,this},C.prototype.clear=function(){this.__data__=[]},C.prototype.delete=function(e){var t=this.__data__,r=A(t,e);return!(r<0)&&(r==t.length-1?t.pop():_.call(t,r,1),!0)},C.prototype.get=function(e){var t=this.__data__,r=A(t,e);return r<0?void 0:t[r][1]},C.prototype.has=function(e){return A(this.__data__,e)>-1},C.prototype.set=function(e,t){var r=this.__data__,n=A(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},T.prototype.clear=function(){this.__data__={hash:new M,map:new(x||C),string:new M}},T.prototype.delete=function(e){return j(this,e).delete(e)},T.prototype.get=function(e){return j(this,e).get(e)},T.prototype.has=function(e){return j(this,e).has(e)},T.prototype.set=function(e,t){return j(this,e).set(e,t),this},E.prototype.add=E.prototype.push=function(e){return this.__data__.set(e,\"__lodash_hash_undefined__\"),this},E.prototype.has=function(e){return this.__data__.has(e)};var O=k&&1/u(new k([,-0]))[1]==1/0?function(e){return new k(e)}:function(){};function j(e,t){var r,n,i=e.__data__;return(\"string\"==(n=typeof(r=t))||\"number\"==n||\"symbol\"==n||\"boolean\"==n?\"__proto__\"!==r:null===r)?i[\"string\"==typeof t?\"string\":\"hash\"]:i.map}function I(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return R(r)?r:void 0}function N(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}t.exports=function(e){return e&&e.length?function(e,t,r){var n=-1,i=o,s=e.length,l=!0,h=[],f=h;if(r)l=!1,i=a;else if(s>=200){var d=t?null:O(e);if(d)return u(d);l=!1,i=c,f=new E}else f=t?[]:h;e:for(;++n<s;){var p=e[n],m=t?t(p):p;if(p=r||0!==p?p:0,l&&m==m){for(var b=f.length;b--;)if(f[b]===m)continue e;t&&f.push(m),h.push(p)}else i(f,m,r)||(f!==h&&f.push(m),h.push(p))}return h}(e):[]}}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],450:[function(e,t,r){\"use strict\";var n=e(\"inherits\"),i=e(\"hash-base\"),s=e(\"safe-buffer\").Buffer,o=new Array(16);function a(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function l(e,t){return e<<t|e>>>32-t}function c(e,t,r,n,i,s,o){return l(e+(t&r|~t&n)+i+s|0,o)+t|0}function u(e,t,r,n,i,s,o){return l(e+(t&n|r&~n)+i+s|0,o)+t|0}function h(e,t,r,n,i,s,o){return l(e+(t^r^n)+i+s|0,o)+t|0}function f(e,t,r,n,i,s,o){return l(e+(r^(t|~n))+i+s|0,o)+t|0}n(a,i),a.prototype._update=function(){for(var e=o,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var r=this._a,n=this._b,i=this._c,s=this._d;r=c(r,n,i,s,e[0],3614090360,7),s=c(s,r,n,i,e[1],3905402710,12),i=c(i,s,r,n,e[2],606105819,17),n=c(n,i,s,r,e[3],3250441966,22),r=c(r,n,i,s,e[4],4118548399,7),s=c(s,r,n,i,e[5],1200080426,12),i=c(i,s,r,n,e[6],2821735955,17),n=c(n,i,s,r,e[7],4249261313,22),r=c(r,n,i,s,e[8],1770035416,7),s=c(s,r,n,i,e[9],2336552879,12),i=c(i,s,r,n,e[10],4294925233,17),n=c(n,i,s,r,e[11],2304563134,22),r=c(r,n,i,s,e[12],1804603682,7),s=c(s,r,n,i,e[13],4254626195,12),i=c(i,s,r,n,e[14],2792965006,17),r=u(r,n=c(n,i,s,r,e[15],1236535329,22),i,s,e[1],4129170786,5),s=u(s,r,n,i,e[6],3225465664,9),i=u(i,s,r,n,e[11],643717713,14),n=u(n,i,s,r,e[0],3921069994,20),r=u(r,n,i,s,e[5],3593408605,5),s=u(s,r,n,i,e[10],38016083,9),i=u(i,s,r,n,e[15],3634488961,14),n=u(n,i,s,r,e[4],3889429448,20),r=u(r,n,i,s,e[9],568446438,5),s=u(s,r,n,i,e[14],3275163606,9),i=u(i,s,r,n,e[3],4107603335,14),n=u(n,i,s,r,e[8],1163531501,20),r=u(r,n,i,s,e[13],2850285829,5),s=u(s,r,n,i,e[2],4243563512,9),i=u(i,s,r,n,e[7],1735328473,14),r=h(r,n=u(n,i,s,r,e[12],2368359562,20),i,s,e[5],4294588738,4),s=h(s,r,n,i,e[8],2272392833,11),i=h(i,s,r,n,e[11],1839030562,16),n=h(n,i,s,r,e[14],4259657740,23),r=h(r,n,i,s,e[1],2763975236,4),s=h(s,r,n,i,e[4],1272893353,11),i=h(i,s,r,n,e[7],4139469664,16),n=h(n,i,s,r,e[10],3200236656,23),r=h(r,n,i,s,e[13],681279174,4),s=h(s,r,n,i,e[0],3936430074,11),i=h(i,s,r,n,e[3],3572445317,16),n=h(n,i,s,r,e[6],76029189,23),r=h(r,n,i,s,e[9],3654602809,4),s=h(s,r,n,i,e[12],3873151461,11),i=h(i,s,r,n,e[15],530742520,16),r=f(r,n=h(n,i,s,r,e[2],3299628645,23),i,s,e[0],4096336452,6),s=f(s,r,n,i,e[7],1126891415,10),i=f(i,s,r,n,e[14],2878612391,15),n=f(n,i,s,r,e[5],4237533241,21),r=f(r,n,i,s,e[12],1700485571,6),s=f(s,r,n,i,e[3],2399980690,10),i=f(i,s,r,n,e[10],4293915773,15),n=f(n,i,s,r,e[1],2240044497,21),r=f(r,n,i,s,e[8],1873313359,6),s=f(s,r,n,i,e[15],4264355552,10),i=f(i,s,r,n,e[6],2734768916,15),n=f(n,i,s,r,e[13],1309151649,21),r=f(r,n,i,s,e[4],4149444226,6),s=f(s,r,n,i,e[11],3174756917,10),i=f(i,s,r,n,e[2],718787259,15),n=f(n,i,s,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+s|0},a.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=s.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},t.exports=a},{\"hash-base\":425,inherits:440,\"safe-buffer\":494}],451:[function(e,t,r){\"use strict\";var n=e(\"bn.js\"),i=e(\"brorand\");function s(e){this.rand=e||new i.Rand}t.exports=s,s.create=function(e){return new s(e)},s.prototype._randbelow=function(e){var t=e.bitLength(),r=Math.ceil(t/8);do{var i=new n(this.rand.generate(r))}while(i.cmp(e)>=0);return i},s.prototype._randrange=function(e,t){var r=t.sub(e);return e.add(this._randbelow(r))},s.prototype.test=function(e,t,r){var i=e.bitLength(),s=n.mont(e),o=new n(1).toRed(s);t||(t=Math.max(1,i/48|0));for(var a=e.subn(1),l=0;!a.testn(l);l++);for(var c=e.shrn(l),u=a.toRed(s);t>0;t--){var h=this._randrange(new n(2),a);r&&r(h);var f=h.toRed(s).redPow(c);if(0!==f.cmp(o)&&0!==f.cmp(u)){for(var d=1;d<l;d++){if(0===(f=f.redSqr()).cmp(o))return!1;if(0===f.cmp(u))break}if(d===l)return!1}}return!0},s.prototype.getDivisor=function(e,t){var r=e.bitLength(),i=n.mont(e),s=new n(1).toRed(i);t||(t=Math.max(1,r/48|0));for(var o=e.subn(1),a=0;!o.testn(a);a++);for(var l=e.shrn(a),c=o.toRed(i);t>0;t--){var u=this._randrange(new n(2),o),h=e.gcd(u);if(0!==h.cmpn(1))return h;var f=u.toRed(i).redPow(l);if(0!==f.cmp(s)&&0!==f.cmp(c)){for(var d=1;d<a;d++){if(0===(f=f.redSqr()).cmp(s))return f.fromRed().subn(1).gcd(e);if(0===f.cmp(c))break}if(d===a)return(f=f.redSqr()).fromRed().subn(1).gcd(e)}}return!1}},{\"bn.js\":452,brorand:187}],452:[function(e,t,r){arguments[4][184][0].apply(r,arguments)},{buffer:188,dup:184}],453:[function(e,t,r){\"use strict\";function n(e,t){if(!e)throw new Error(t||\"Assertion failed\")}t.exports=n,n.equal=function(e,t,r){if(e!=t)throw new Error(r||\"Assertion failed: \"+e+\" != \"+t)}},{}],454:[function(e,t,r){\"use strict\";var n=r;function i(e){return 1===e.length?\"0\"+e:e}function s(e){for(var t=\"\",r=0;r<e.length;r++)t+=i(e[r].toString(16));return t}n.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if(\"string\"!=typeof e){for(var n=0;n<e.length;n++)r[n]=0|e[n];return r}if(\"hex\"===t){(e=e.replace(/[^a-z0-9]+/gi,\"\")).length%2!=0&&(e=\"0\"+e);for(n=0;n<e.length;n+=2)r.push(parseInt(e[n]+e[n+1],16))}else for(n=0;n<e.length;n++){var i=e.charCodeAt(n),s=i>>8,o=255&i;s?r.push(s,o):r.push(o)}return r},n.zero2=i,n.toHex=s,n.encode=function(e,t){return\"hex\"===t?s(e):e}},{}],455:[function(e,t,r){t.exports={\"2.16.840.1.101.3.4.1.1\":\"aes-128-ecb\",\"2.16.840.1.101.3.4.1.2\":\"aes-128-cbc\",\"2.16.840.1.101.3.4.1.3\":\"aes-128-ofb\",\"2.16.840.1.101.3.4.1.4\":\"aes-128-cfb\",\"2.16.840.1.101.3.4.1.21\":\"aes-192-ecb\",\"2.16.840.1.101.3.4.1.22\":\"aes-192-cbc\",\"2.16.840.1.101.3.4.1.23\":\"aes-192-ofb\",\"2.16.840.1.101.3.4.1.24\":\"aes-192-cfb\",\"2.16.840.1.101.3.4.1.41\":\"aes-256-ecb\",\"2.16.840.1.101.3.4.1.42\":\"aes-256-cbc\",\"2.16.840.1.101.3.4.1.43\":\"aes-256-ofb\",\"2.16.840.1.101.3.4.1.44\":\"aes-256-cfb\"}},{}],456:[function(e,t,r){\"use strict\";var n=e(\"asn1.js\");r.certificate=e(\"./certificate\");var i=n.define(\"RSAPrivateKey\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"modulus\").int(),this.key(\"publicExponent\").int(),this.key(\"privateExponent\").int(),this.key(\"prime1\").int(),this.key(\"prime2\").int(),this.key(\"exponent1\").int(),this.key(\"exponent2\").int(),this.key(\"coefficient\").int())}));r.RSAPrivateKey=i;var s=n.define(\"RSAPublicKey\",(function(){this.seq().obj(this.key(\"modulus\").int(),this.key(\"publicExponent\").int())}));r.RSAPublicKey=s;var o=n.define(\"SubjectPublicKeyInfo\",(function(){this.seq().obj(this.key(\"algorithm\").use(a),this.key(\"subjectPublicKey\").bitstr())}));r.PublicKey=o;var a=n.define(\"AlgorithmIdentifier\",(function(){this.seq().obj(this.key(\"algorithm\").objid(),this.key(\"none\").null_().optional(),this.key(\"curve\").objid().optional(),this.key(\"params\").seq().obj(this.key(\"p\").int(),this.key(\"q\").int(),this.key(\"g\").int()).optional())})),l=n.define(\"PrivateKeyInfo\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"algorithm\").use(a),this.key(\"subjectPrivateKey\").octstr())}));r.PrivateKey=l;var c=n.define(\"EncryptedPrivateKeyInfo\",(function(){this.seq().obj(this.key(\"algorithm\").seq().obj(this.key(\"id\").objid(),this.key(\"decrypt\").seq().obj(this.key(\"kde\").seq().obj(this.key(\"id\").objid(),this.key(\"kdeparams\").seq().obj(this.key(\"salt\").octstr(),this.key(\"iters\").int())),this.key(\"cipher\").seq().obj(this.key(\"algo\").objid(),this.key(\"iv\").octstr()))),this.key(\"subjectPrivateKey\").octstr())}));r.EncryptedPrivateKey=c;var u=n.define(\"DSAPrivateKey\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"p\").int(),this.key(\"q\").int(),this.key(\"g\").int(),this.key(\"pub_key\").int(),this.key(\"priv_key\").int())}));r.DSAPrivateKey=u,r.DSAparam=n.define(\"DSAparam\",(function(){this.int()}));var h=n.define(\"ECPrivateKey\",(function(){this.seq().obj(this.key(\"version\").int(),this.key(\"privateKey\").octstr(),this.key(\"parameters\").optional().explicit(0).use(f),this.key(\"publicKey\").optional().explicit(1).bitstr())}));r.ECPrivateKey=h;var f=n.define(\"ECParameters\",(function(){this.choice({namedCurve:this.objid()})}));r.signature=n.define(\"signature\",(function(){this.seq().obj(this.key(\"r\").int(),this.key(\"s\").int())}))},{\"./certificate\":457,\"asn1.js\":170}],457:[function(e,t,r){\"use strict\";var n=e(\"asn1.js\"),i=n.define(\"Time\",(function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})})),s=n.define(\"AttributeTypeValue\",(function(){this.seq().obj(this.key(\"type\").objid(),this.key(\"value\").any())})),o=n.define(\"AlgorithmIdentifier\",(function(){this.seq().obj(this.key(\"algorithm\").objid(),this.key(\"parameters\").optional(),this.key(\"curve\").objid().optional())})),a=n.define(\"SubjectPublicKeyInfo\",(function(){this.seq().obj(this.key(\"algorithm\").use(o),this.key(\"subjectPublicKey\").bitstr())})),l=n.define(\"RelativeDistinguishedName\",(function(){this.setof(s)})),c=n.define(\"RDNSequence\",(function(){this.seqof(l)})),u=n.define(\"Name\",(function(){this.choice({rdnSequence:this.use(c)})})),h=n.define(\"Validity\",(function(){this.seq().obj(this.key(\"notBefore\").use(i),this.key(\"notAfter\").use(i))})),f=n.define(\"Extension\",(function(){this.seq().obj(this.key(\"extnID\").objid(),this.key(\"critical\").bool().def(!1),this.key(\"extnValue\").octstr())})),d=n.define(\"TBSCertificate\",(function(){this.seq().obj(this.key(\"version\").explicit(0).int().optional(),this.key(\"serialNumber\").int(),this.key(\"signature\").use(o),this.key(\"issuer\").use(u),this.key(\"validity\").use(h),this.key(\"subject\").use(u),this.key(\"subjectPublicKeyInfo\").use(a),this.key(\"issuerUniqueID\").implicit(1).bitstr().optional(),this.key(\"subjectUniqueID\").implicit(2).bitstr().optional(),this.key(\"extensions\").explicit(3).seqof(f).optional())})),p=n.define(\"X509Certificate\",(function(){this.seq().obj(this.key(\"tbsCertificate\").use(d),this.key(\"signatureAlgorithm\").use(o),this.key(\"signatureValue\").bitstr())}));t.exports=p},{\"asn1.js\":170}],458:[function(e,t,r){\"use strict\";var n=/Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,s=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m,o=e(\"evp_bytestokey\"),a=e(\"browserify-aes\"),l=e(\"safe-buffer\").Buffer;t.exports=function(e,t){var r,c=e.toString(),u=c.match(n);if(u){var h=\"aes\"+u[1],f=l.from(u[2],\"hex\"),d=l.from(u[3].replace(/[\\r\\n]/g,\"\"),\"base64\"),p=o(t,f.slice(0,8),parseInt(u[1],10)).key,m=[],b=a.createDecipheriv(h,p,f);m.push(b.update(d)),m.push(b.final()),r=l.concat(m)}else{var g=c.match(s);r=l.from(g[2].replace(/[\\r\\n]/g,\"\"),\"base64\")}return{tag:c.match(i)[1],data:r}}},{\"browserify-aes\":191,evp_bytestokey:423,\"safe-buffer\":494}],459:[function(e,t,r){\"use strict\";var n=e(\"./asn1\"),i=e(\"./aesid.json\"),s=e(\"./fixProc\"),o=e(\"browserify-aes\"),a=e(\"pbkdf2\"),l=e(\"safe-buffer\").Buffer;function c(e){var t;\"object\"!=typeof e||l.isBuffer(e)||(t=e.passphrase,e=e.key),\"string\"==typeof e&&(e=l.from(e));var r,c,u=s(e,t),h=u.tag,f=u.data;switch(h){case\"CERTIFICATE\":c=n.certificate.decode(f,\"der\").tbsCertificate.subjectPublicKeyInfo;case\"PUBLIC KEY\":switch(c||(c=n.PublicKey.decode(f,\"der\")),r=c.algorithm.algorithm.join(\".\")){case\"1.2.840.113549.1.1.1\":return n.RSAPublicKey.decode(c.subjectPublicKey.data,\"der\");case\"1.2.840.10045.2.1\":return c.subjectPrivateKey=c.subjectPublicKey,{type:\"ec\",data:c};case\"1.2.840.10040.4.1\":return c.algorithm.params.pub_key=n.DSAparam.decode(c.subjectPublicKey.data,\"der\"),{type:\"dsa\",data:c.algorithm.params};default:throw new Error(\"unknown key id \"+r)}case\"ENCRYPTED PRIVATE KEY\":f=function(e,t){var r=e.algorithm.decrypt.kde.kdeparams.salt,n=parseInt(e.algorithm.decrypt.kde.kdeparams.iters.toString(),10),s=i[e.algorithm.decrypt.cipher.algo.join(\".\")],c=e.algorithm.decrypt.cipher.iv,u=e.subjectPrivateKey,h=parseInt(s.split(\"-\")[1],10)/8,f=a.pbkdf2Sync(t,r,n,h,\"sha1\"),d=o.createDecipheriv(s,f,c),p=[];return p.push(d.update(u)),p.push(d.final()),l.concat(p)}(f=n.EncryptedPrivateKey.decode(f,\"der\"),t);case\"PRIVATE KEY\":switch(r=(c=n.PrivateKey.decode(f,\"der\")).algorithm.algorithm.join(\".\")){case\"1.2.840.113549.1.1.1\":return n.RSAPrivateKey.decode(c.subjectPrivateKey,\"der\");case\"1.2.840.10045.2.1\":return{curve:c.algorithm.curve,privateKey:n.ECPrivateKey.decode(c.subjectPrivateKey,\"der\").privateKey};case\"1.2.840.10040.4.1\":return c.algorithm.params.priv_key=n.DSAparam.decode(c.subjectPrivateKey,\"der\"),{type:\"dsa\",params:c.algorithm.params};default:throw new Error(\"unknown key id \"+r)}case\"RSA PUBLIC KEY\":return n.RSAPublicKey.decode(f,\"der\");case\"RSA PRIVATE KEY\":return n.RSAPrivateKey.decode(f,\"der\");case\"DSA PRIVATE KEY\":return{type:\"dsa\",params:n.DSAPrivateKey.decode(f,\"der\")};case\"EC PRIVATE KEY\":return{curve:(f=n.ECPrivateKey.decode(f,\"der\")).parameters.value,privateKey:f.privateKey};default:throw new Error(\"unknown key type \"+h)}}t.exports=c,c.signature=n.signature},{\"./aesid.json\":455,\"./asn1\":456,\"./fixProc\":458,\"browserify-aes\":191,pbkdf2:460,\"safe-buffer\":494}],460:[function(e,t,r){\"use strict\";r.pbkdf2=e(\"./lib/async\"),r.pbkdf2Sync=e(\"./lib/sync\")},{\"./lib/async\":461,\"./lib/sync\":464}],461:[function(e,t,r){(function(r){(function(){\"use strict\";var n,i,s=e(\"safe-buffer\").Buffer,o=e(\"./precondition\"),a=e(\"./default-encoding\"),l=e(\"./sync\"),c=e(\"./to-buffer\"),u=r.crypto&&r.crypto.subtle,h={sha:\"SHA-1\",\"sha-1\":\"SHA-1\",sha1:\"SHA-1\",sha256:\"SHA-256\",\"sha-256\":\"SHA-256\",sha384:\"SHA-384\",\"sha-384\":\"SHA-384\",\"sha-512\":\"SHA-512\",sha512:\"SHA-512\"},f=[];function d(){return i||(i=r.process&&r.process.nextTick?r.process.nextTick:r.queueMicrotask?r.queueMicrotask:r.setImmediate?r.setImmediate:r.setTimeout)}function p(e,t,r,n,i){return u.importKey(\"raw\",e,{name:\"PBKDF2\"},!1,[\"deriveBits\"]).then((function(e){return u.deriveBits({name:\"PBKDF2\",salt:t,iterations:r,hash:{name:i}},e,n<<3)})).then((function(e){return s.from(e)}))}t.exports=function(e,t,i,m,b,g){\"function\"==typeof b&&(g=b,b=void 0);var y=h[(b=b||\"sha1\").toLowerCase()];if(y&&\"function\"==typeof r.Promise){if(o(i,m),e=c(e,a,\"Password\"),t=c(t,a,\"Salt\"),\"function\"!=typeof g)throw new Error(\"No callback provided to pbkdf2\");!function(e,t){e.then((function(e){d()((function(){t(null,e)}))}),(function(e){d()((function(){t(e)}))}))}(function(e){if(r.process&&!r.process.browser)return Promise.resolve(!1);if(!u||!u.importKey||!u.deriveBits)return Promise.resolve(!1);if(void 0!==f[e])return f[e];var t=p(n=n||s.alloc(8),n,10,128,e).then((function(){return!0})).catch((function(){return!1}));return f[e]=t,t}(y).then((function(r){return r?p(e,t,i,m,y):l(e,t,i,m,b)})),g)}else d()((function(){var r;try{r=l(e,t,i,m,b)}catch(e){return g(e)}g(null,r)}))}}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"./default-encoding\":462,\"./precondition\":463,\"./sync\":464,\"./to-buffer\":465,\"safe-buffer\":494}],462:[function(e,t,r){(function(e,r){(function(){\"use strict\";var n;if(r.process&&r.process.browser)n=\"utf-8\";else if(r.process&&r.process.version){n=parseInt(e.version.split(\".\")[0].slice(1),10)>=6?\"utf-8\":\"binary\"}else n=\"utf-8\";t.exports=n}).call(this)}).call(this,e(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{_process:467}],463:[function(e,t,r){\"use strict\";var n=Math.pow(2,30)-1;t.exports=function(e,t){if(\"number\"!=typeof e)throw new TypeError(\"Iterations not a number\");if(e<0)throw new TypeError(\"Bad iterations\");if(\"number\"!=typeof t)throw new TypeError(\"Key length not a number\");if(t<0||t>n||t!=t)throw new TypeError(\"Bad key length\")}},{}],464:[function(e,t,r){\"use strict\";var n=e(\"create-hash/md5\"),i=e(\"ripemd160\"),s=e(\"sha.js\"),o=e(\"safe-buffer\").Buffer,a=e(\"./precondition\"),l=e(\"./default-encoding\"),c=e(\"./to-buffer\"),u=o.alloc(128),h={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function f(e,t,r){var a=function(e){function t(t){return s(e).update(t).digest()}return\"rmd160\"===e||\"ripemd160\"===e?function(e){return(new i).update(e).digest()}:\"md5\"===e?n:t}(e),l=\"sha512\"===e||\"sha384\"===e?128:64;t.length>l?t=a(t):t.length<l&&(t=o.concat([t,u],l));for(var c=o.allocUnsafe(l+h[e]),f=o.allocUnsafe(l+h[e]),d=0;d<l;d++)c[d]=54^t[d],f[d]=92^t[d];var p=o.allocUnsafe(l+r+4);c.copy(p,0,0,l),this.ipad1=p,this.ipad2=c,this.opad=f,this.alg=e,this.blocksize=l,this.hash=a,this.size=h[e]}f.prototype.run=function(e,t){return e.copy(t,this.blocksize),this.hash(t).copy(this.opad,this.blocksize),this.hash(this.opad)},t.exports=function(e,t,r,n,i){a(r,n);var s=new f(i=i||\"sha1\",e=c(e,l,\"Password\"),(t=c(t,l,\"Salt\")).length),u=o.allocUnsafe(n),d=o.allocUnsafe(t.length+4);t.copy(d,0,0,t.length);for(var p=0,m=h[i],b=Math.ceil(n/m),g=1;g<=b;g++){d.writeUInt32BE(g,t.length);for(var y=s.run(d,s.ipad1),v=y,w=1;w<r;w++){v=s.run(v,s.ipad2);for(var _=0;_<m;_++)y[_]^=v[_]}y.copy(u,p),p+=m}return u}},{\"./default-encoding\":462,\"./precondition\":463,\"./to-buffer\":465,\"create-hash/md5\":387,ripemd160:493,\"safe-buffer\":494,\"sha.js\":498}],465:[function(e,t,r){\"use strict\";var n=e(\"safe-buffer\").Buffer;t.exports=function(e,t,r){if(n.isBuffer(e))return e;if(\"string\"==typeof e)return n.from(e,t);if(ArrayBuffer.isView(e))return n.from(e.buffer);throw new TypeError(r+\" must be a string, a Buffer, a typed array or a DataView\")}},{\"safe-buffer\":494}],466:[function(e,t,r){(function(e){(function(){\"use strict\";void 0===e||!e.version||0===e.version.indexOf(\"v0.\")||0===e.version.indexOf(\"v1.\")&&0!==e.version.indexOf(\"v1.8.\")?t.exports={nextTick:function(t,r,n,i){if(\"function\"!=typeof t)throw new TypeError('\"callback\" argument must be a function');var s,o,a=arguments.length;switch(a){case 0:case 1:return e.nextTick(t);case 2:return e.nextTick((function(){t.call(null,r)}));case 3:return e.nextTick((function(){t.call(null,r,n)}));case 4:return e.nextTick((function(){t.call(null,r,n,i)}));default:for(s=new Array(a-1),o=0;o<s.length;)s[o++]=arguments[o];return e.nextTick((function(){t.apply(null,s)}))}}}:t.exports=e}).call(this)}).call(this,e(\"_process\"))},{_process:467}],467:[function(e,t,r){\"use strict\";var n,i,s=t.exports={};function o(){throw new Error(\"setTimeout has not been defined\")}function a(){throw new Error(\"clearTimeout has not been defined\")}function l(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n=\"function\"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{i=\"function\"==typeof clearTimeout?clearTimeout:a}catch(e){i=a}}();var c,u=[],h=!1,f=-1;function d(){h&&c&&(h=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!h){var e=l(d);h=!0;for(var t=u.length;t;){for(c=u,u=[];++f<t;)c&&c[f].run();f=-1,t=u.length}c=null,h=!1,function(e){if(i===clearTimeout)return clearTimeout(e);if((i===a||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(e);try{i(e)}catch(t){try{return i.call(null,e)}catch(t){return i.call(this,e)}}}(e)}}function m(e,t){this.fun=e,this.array=t}function b(){}s.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];u.push(new m(e,t)),1!==u.length||h||l(p)},m.prototype.run=function(){this.fun.apply(null,this.array)},s.title=\"browser\",s.browser=!0,s.env={},s.argv=[],s.version=\"\",s.versions={},s.on=b,s.addListener=b,s.once=b,s.off=b,s.removeListener=b,s.removeAllListeners=b,s.emit=b,s.prependListener=b,s.prependOnceListener=b,s.listeners=function(e){return[]},s.binding=function(e){throw new Error(\"process.binding is not supported\")},s.cwd=function(){return\"/\"},s.chdir=function(e){throw new Error(\"process.chdir is not supported\")},s.umask=function(){return 0}},{}],468:[function(e,t,r){\"use strict\";r.publicEncrypt=e(\"./publicEncrypt\"),r.privateDecrypt=e(\"./privateDecrypt\"),r.privateEncrypt=function(e,t){return r.publicEncrypt(e,t,!0)},r.publicDecrypt=function(e,t){return r.privateDecrypt(e,t,!0)}},{\"./privateDecrypt\":471,\"./publicEncrypt\":472}],469:[function(e,t,r){\"use strict\";var n=e(\"create-hash\"),i=e(\"safe-buffer\").Buffer;function s(e){var t=i.allocUnsafe(4);return t.writeUInt32BE(e,0),t}t.exports=function(e,t){for(var r,o=i.alloc(0),a=0;o.length<t;)r=s(a++),o=i.concat([o,n(\"sha1\").update(e).update(r).digest()]);return o.slice(0,t)}},{\"create-hash\":386,\"safe-buffer\":494}],470:[function(e,t,r){arguments[4][184][0].apply(r,arguments)},{buffer:188,dup:184}],471:[function(e,t,r){\"use strict\";var n=e(\"parse-asn1\"),i=e(\"./mgf\"),s=e(\"./xor\"),o=e(\"bn.js\"),a=e(\"browserify-rsa\"),l=e(\"create-hash\"),c=e(\"./withPublic\"),u=e(\"safe-buffer\").Buffer;t.exports=function(e,t,r){var h;h=e.padding?e.padding:r?1:4;var f,d=n(e),p=d.modulus.byteLength();if(t.length>p||new o(t).cmp(d.modulus)>=0)throw new Error(\"decryption error\");f=r?c(new o(t),d):a(t,d);var m=u.alloc(p-f.length);if(f=u.concat([m,f],p),4===h)return function(e,t){var r=e.modulus.byteLength(),n=l(\"sha1\").update(u.alloc(0)).digest(),o=n.length;if(0!==t[0])throw new Error(\"decryption error\");var a=t.slice(1,o+1),c=t.slice(o+1),h=s(a,i(c,o)),f=s(c,i(h,r-o-1));if(function(e,t){e=u.from(e),t=u.from(t);var r=0,n=e.length;e.length!==t.length&&(r++,n=Math.min(e.length,t.length));var i=-1;for(;++i<n;)r+=e[i]^t[i];return r}(n,f.slice(0,o)))throw new Error(\"decryption error\");var d=o;for(;0===f[d];)d++;if(1!==f[d++])throw new Error(\"decryption error\");return f.slice(d)}(d,f);if(1===h)return function(e,t,r){var n=t.slice(0,2),i=2,s=0;for(;0!==t[i++];)if(i>=t.length){s++;break}var o=t.slice(2,i-1);(\"0002\"!==n.toString(\"hex\")&&!r||\"0001\"!==n.toString(\"hex\")&&r)&&s++;o.length<8&&s++;if(s)throw new Error(\"decryption error\");return t.slice(i)}(0,f,r);if(3===h)return f;throw new Error(\"unknown padding\")}},{\"./mgf\":469,\"./withPublic\":473,\"./xor\":474,\"bn.js\":470,\"browserify-rsa\":209,\"create-hash\":386,\"parse-asn1\":459,\"safe-buffer\":494}],472:[function(e,t,r){\"use strict\";var n=e(\"parse-asn1\"),i=e(\"randombytes\"),s=e(\"create-hash\"),o=e(\"./mgf\"),a=e(\"./xor\"),l=e(\"bn.js\"),c=e(\"./withPublic\"),u=e(\"browserify-rsa\"),h=e(\"safe-buffer\").Buffer;t.exports=function(e,t,r){var f;f=e.padding?e.padding:r?1:4;var d,p=n(e);if(4===f)d=function(e,t){var r=e.modulus.byteLength(),n=t.length,c=s(\"sha1\").update(h.alloc(0)).digest(),u=c.length,f=2*u;if(n>r-f-2)throw new Error(\"message too long\");var d=h.alloc(r-n-f-2),p=r-u-1,m=i(u),b=a(h.concat([c,d,h.alloc(1,1),t],p),o(m,p)),g=a(m,o(b,u));return new l(h.concat([h.alloc(1),g,b],r))}(p,t);else if(1===f)d=function(e,t,r){var n,s=t.length,o=e.modulus.byteLength();if(s>o-11)throw new Error(\"message too long\");n=r?h.alloc(o-s-3,255):function(e){var t,r=h.allocUnsafe(e),n=0,s=i(2*e),o=0;for(;n<e;)o===s.length&&(s=i(2*e),o=0),(t=s[o++])&&(r[n++]=t);return r}(o-s-3);return new l(h.concat([h.from([0,r?1:2]),n,h.alloc(1),t],o))}(p,t,r);else{if(3!==f)throw new Error(\"unknown padding\");if((d=new l(t)).cmp(p.modulus)>=0)throw new Error(\"data too long for modulus\")}return r?u(d,p):c(d,p)}},{\"./mgf\":469,\"./withPublic\":473,\"./xor\":474,\"bn.js\":470,\"browserify-rsa\":209,\"create-hash\":386,\"parse-asn1\":459,randombytes:475,\"safe-buffer\":494}],473:[function(e,t,r){\"use strict\";var n=e(\"bn.js\"),i=e(\"safe-buffer\").Buffer;t.exports=function(e,t){return i.from(e.toRed(n.mont(t.modulus)).redPow(new n(t.publicExponent)).fromRed().toArray())}},{\"bn.js\":470,\"safe-buffer\":494}],474:[function(e,t,r){\"use strict\";t.exports=function(e,t){for(var r=e.length,n=-1;++n<r;)e[n]^=t[n];return e}},{}],475:[function(e,t,r){(function(r,n){(function(){\"use strict\";var i=e(\"safe-buffer\").Buffer,s=n.crypto||n.msCrypto;s&&s.getRandomValues?t.exports=function(e,t){if(e>4294967295)throw new RangeError(\"requested too many random bytes\");var n=i.allocUnsafe(e);if(e>0)if(e>65536)for(var o=0;o<e;o+=65536)s.getRandomValues(n.slice(o,o+65536));else s.getRandomValues(n);if(\"function\"==typeof t)return r.nextTick((function(){t(null,n)}));return n}:t.exports=function(){throw new Error(\"Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11\")}}).call(this)}).call(this,e(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{_process:467,\"safe-buffer\":494}],476:[function(e,t,r){(function(t,n){(function(){\"use strict\";function i(){throw new Error(\"secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11\")}var s=e(\"safe-buffer\"),o=e(\"randombytes\"),a=s.Buffer,l=s.kMaxLength,c=n.crypto||n.msCrypto,u=Math.pow(2,32)-1;function h(e,t){if(\"number\"!=typeof e||e!=e)throw new TypeError(\"offset must be a number\");if(e>u||e<0)throw new TypeError(\"offset must be a uint32\");if(e>l||e>t)throw new RangeError(\"offset out of range\")}function f(e,t,r){if(\"number\"!=typeof e||e!=e)throw new TypeError(\"size must be a number\");if(e>u||e<0)throw new TypeError(\"size must be a uint32\");if(e+t>r||e>l)throw new RangeError(\"buffer too small\")}function d(e,r,n,i){if(t.browser){var s=e.buffer,a=new Uint8Array(s,r,n);return c.getRandomValues(a),i?void t.nextTick((function(){i(null,e)})):e}if(!i)return o(n).copy(e,r),e;o(n,(function(t,n){if(t)return i(t);n.copy(e,r),i(null,e)}))}c&&c.getRandomValues||!t.browser?(r.randomFill=function(e,t,r,i){if(!(a.isBuffer(e)||e instanceof n.Uint8Array))throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array');if(\"function\"==typeof t)i=t,t=0,r=e.length;else if(\"function\"==typeof r)i=r,r=e.length-t;else if(\"function\"!=typeof i)throw new TypeError('\"cb\" argument must be a function');return h(t,e.length),f(r,t,e.length),d(e,t,r,i)},r.randomFillSync=function(e,t,r){void 0===t&&(t=0);if(!(a.isBuffer(e)||e instanceof n.Uint8Array))throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array');h(t,e.length),void 0===r&&(r=e.length-t);return f(r,t,e.length),d(e,t,r)}):(r.randomFill=i,r.randomFillSync=i)}).call(this)}).call(this,e(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{_process:467,randombytes:475,\"safe-buffer\":494}],477:[function(e,t,r){\"use strict\";var n={};function i(e,t,r){r||(r=Error);var i=function(e){var r,n;function i(r,n,i){return e.call(this,function(e,r,n){return\"string\"==typeof t?t:t(e,r,n)}(r,n,i))||this}return n=e,(r=i).prototype=Object.create(n.prototype),r.prototype.constructor=r,r.__proto__=n,i}(r);i.prototype.name=r.name,i.prototype.code=e,n[e]=i}function s(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?\"one of \".concat(t,\" \").concat(e.slice(0,r-1).join(\", \"),\", or \")+e[r-1]:2===r?\"one of \".concat(t,\" \").concat(e[0],\" or \").concat(e[1]):\"of \".concat(t,\" \").concat(e[0])}return\"of \".concat(t,\" \").concat(String(e))}i(\"ERR_INVALID_OPT_VALUE\",(function(e,t){return'The value \"'+t+'\" is invalid for option \"'+e+'\"'}),TypeError),i(\"ERR_INVALID_ARG_TYPE\",(function(e,t,r){var n,i,o,a;if(\"string\"==typeof t&&(i=\"not \",t.substr(!o||o<0?0:+o,i.length)===i)?(n=\"must not be\",t=t.replace(/^not /,\"\")):n=\"must be\",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e,\" argument\"))a=\"The \".concat(e,\" \").concat(n,\" \").concat(s(t,\"type\"));else{var l=function(e,t,r){return\"number\"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,\".\")?\"property\":\"argument\";a='The \"'.concat(e,'\" ').concat(l,\" \").concat(n,\" \").concat(s(t,\"type\"))}return a+=\". Received type \".concat(typeof r)}),TypeError),i(\"ERR_STREAM_PUSH_AFTER_EOF\",\"stream.push() after EOF\"),i(\"ERR_METHOD_NOT_IMPLEMENTED\",(function(e){return\"The \"+e+\" method is not implemented\"})),i(\"ERR_STREAM_PREMATURE_CLOSE\",\"Premature close\"),i(\"ERR_STREAM_DESTROYED\",(function(e){return\"Cannot call \"+e+\" after a stream was destroyed\"})),i(\"ERR_MULTIPLE_CALLBACK\",\"Callback called multiple times\"),i(\"ERR_STREAM_CANNOT_PIPE\",\"Cannot pipe, not readable\"),i(\"ERR_STREAM_WRITE_AFTER_END\",\"write after end\"),i(\"ERR_STREAM_NULL_VALUES\",\"May not write null values to stream\",TypeError),i(\"ERR_UNKNOWN_ENCODING\",(function(e){return\"Unknown encoding: \"+e}),TypeError),i(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\",\"stream.unshift() after end event\"),t.exports.codes=n},{}],478:[function(e,t,r){(function(r){(function(){\"use strict\";var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};t.exports=c;var i=e(\"./_stream_readable\"),s=e(\"./_stream_writable\");e(\"inherits\")(c,i);for(var o=n(s.prototype),a=0;a<o.length;a++){var l=o[a];c.prototype[l]||(c.prototype[l]=s.prototype[l])}function c(e){if(!(this instanceof c))return new c(e);i.call(this,e),s.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once(\"end\",u)))}function u(){this._writableState.ended||r.nextTick(h,this)}function h(e){e.end()}Object.defineProperty(c.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(c.prototype,\"writableBuffer\",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(c.prototype,\"writableLength\",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(c.prototype,\"destroyed\",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}})}).call(this)}).call(this,e(\"_process\"))},{\"./_stream_readable\":480,\"./_stream_writable\":482,_process:467,inherits:440}],479:[function(e,t,r){\"use strict\";t.exports=i;var n=e(\"./_stream_transform\");function i(e){if(!(this instanceof i))return new i(e);n.call(this,e)}e(\"inherits\")(i,n),i.prototype._transform=function(e,t,r){r(null,e)}},{\"./_stream_transform\":481,inherits:440}],480:[function(e,t,r){(function(r,n){(function(){\"use strict\";var i;t.exports=M,M.ReadableState=S;e(\"events\").EventEmitter;var s=function(e,t){return e.listeners(t).length},o=e(\"./internal/streams/stream\"),a=e(\"buffer\").Buffer,l=(void 0!==n?n:\"undefined\"!=typeof window?window:\"undefined\"!=typeof self?self:{}).Uint8Array||function(){};var c,u=e(\"util\");c=u&&u.debuglog?u.debuglog(\"stream\"):function(){};var h,f,d,p=e(\"./internal/streams/buffer_list\"),m=e(\"./internal/streams/destroy\"),b=e(\"./internal/streams/state\").getHighWaterMark,g=e(\"../errors\").codes,y=g.ERR_INVALID_ARG_TYPE,v=g.ERR_STREAM_PUSH_AFTER_EOF,w=g.ERR_METHOD_NOT_IMPLEMENTED,_=g.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;e(\"inherits\")(M,o);var x=m.errorOrDestroy,k=[\"error\",\"close\",\"destroy\",\"pause\",\"resume\"];function S(t,r,n){i=i||e(\"./_stream_duplex\"),t=t||{},\"boolean\"!=typeof n&&(n=r instanceof i),this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=b(this,t,\"readableHighWaterMark\",n),this.buffer=new p,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||\"utf8\",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(h||(h=e(\"string_decoder/\").StringDecoder),this.decoder=new h(t.encoding),this.encoding=t.encoding)}function M(t){if(i=i||e(\"./_stream_duplex\"),!(this instanceof M))return new M(t);var r=this instanceof i;this._readableState=new S(t,this,r),this.readable=!0,t&&(\"function\"==typeof t.read&&(this._read=t.read),\"function\"==typeof t.destroy&&(this._destroy=t.destroy)),o.call(this)}function C(e,t,r,n,i){c(\"readableAddChunk\",t);var s,o=e._readableState;if(null===t)o.reading=!1,function(e,t){if(c(\"onEofChunk\"),t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?A(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,R(e)))}(e,o);else if(i||(s=function(e,t){var r;n=t,a.isBuffer(n)||n instanceof l||\"string\"==typeof t||void 0===t||e.objectMode||(r=new y(\"chunk\",[\"string\",\"Buffer\",\"Uint8Array\"],t));var n;return r}(o,t)),s)x(e,s);else if(o.objectMode||t&&t.length>0)if(\"string\"==typeof t||o.objectMode||Object.getPrototypeOf(t)===a.prototype||(t=function(e){return a.from(e)}(t)),n)o.endEmitted?x(e,new _):T(e,o,t,!0);else if(o.ended)x(e,new v);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||0!==t.length?T(e,o,t,!1):O(e,o)):T(e,o,t,!1)}else n||(o.reading=!1,O(e,o));return!o.ended&&(o.length<o.highWaterMark||0===o.length)}function T(e,t,r,n){t.flowing&&0===t.length&&!t.sync?(t.awaitDrain=0,e.emit(\"data\",r)):(t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&A(e)),O(e,t)}Object.defineProperty(M.prototype,\"destroyed\",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),M.prototype.destroy=m.destroy,M.prototype._undestroy=m.undestroy,M.prototype._destroy=function(e,t){t(e)},M.prototype.push=function(e,t){var r,n=this._readableState;return n.objectMode?r=!0:\"string\"==typeof e&&((t=t||n.defaultEncoding)!==n.encoding&&(e=a.from(e,t),t=\"\"),r=!0),C(this,e,t,!1,r)},M.prototype.unshift=function(e){return C(this,e,null,!0,!1)},M.prototype.isPaused=function(){return!1===this._readableState.flowing},M.prototype.setEncoding=function(t){h||(h=e(\"string_decoder/\").StringDecoder);var r=new h(t);this._readableState.decoder=r,this._readableState.encoding=this._readableState.decoder.encoding;for(var n=this._readableState.buffer.head,i=\"\";null!==n;)i+=r.write(n.data),n=n.next;return this._readableState.buffer.clear(),\"\"!==i&&this._readableState.buffer.push(i),this._readableState.length=i.length,this};function E(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=1073741824?e=1073741824:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function A(e){var t=e._readableState;c(\"emitReadable\",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(c(\"emitReadable\",t.flowing),t.emittedReadable=!0,r.nextTick(R,e))}function R(e){var t=e._readableState;c(\"emitReadable_\",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit(\"readable\"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,B(e)}function O(e,t){t.readingMore||(t.readingMore=!0,r.nextTick(j,e,t))}function j(e,t){for(;!t.reading&&!t.ended&&(t.length<t.highWaterMark||t.flowing&&0===t.length);){var r=t.length;if(c(\"maybeReadMore read 0\"),e.read(0),r===t.length)break}t.readingMore=!1}function I(e){var t=e._readableState;t.readableListening=e.listenerCount(\"readable\")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount(\"data\")>0&&e.resume()}function N(e){c(\"readable nexttick read 0\"),e.read(0)}function P(e,t){c(\"resume\",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit(\"resume\"),B(e),t.flowing&&!t.reading&&e.read(0)}function B(e){var t=e._readableState;for(c(\"flow\",t.flowing);t.flowing&&null!==e.read(););}function D(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(\"\"):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function F(e){var t=e._readableState;c(\"endReadable\",t.endEmitted),t.endEmitted||(t.ended=!0,r.nextTick(L,t,e))}function L(e,t){if(c(\"endReadableNT\",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit(\"end\"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function z(e,t){for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}M.prototype.read=function(e){c(\"read\",e),e=parseInt(e,10);var t=this._readableState,r=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return c(\"read: emitReadable\",t.length,t.ended),0===t.length&&t.ended?F(this):A(this),null;if(0===(e=E(e,t))&&t.ended)return 0===t.length&&F(this),null;var n,i=t.needReadable;return c(\"need readable\",i),(0===t.length||t.length-e<t.highWaterMark)&&c(\"length less than watermark\",i=!0),t.ended||t.reading?c(\"reading or ended\",i=!1):i&&(c(\"do read\"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=E(r,t))),null===(n=e>0?D(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&F(this)),null!==n&&this.emit(\"data\",n),n},M.prototype._read=function(e){x(this,new w(\"_read()\"))},M.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,c(\"pipe count=%d opts=%j\",i.pipesCount,t);var o=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:b;function a(t,r){c(\"onunpipe\"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,c(\"cleanup\"),e.removeListener(\"close\",p),e.removeListener(\"finish\",m),e.removeListener(\"drain\",u),e.removeListener(\"error\",d),e.removeListener(\"unpipe\",a),n.removeListener(\"end\",l),n.removeListener(\"end\",b),n.removeListener(\"data\",f),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||u())}function l(){c(\"onend\"),e.end()}i.endEmitted?r.nextTick(o):n.once(\"end\",o),e.on(\"unpipe\",a);var u=function(e){return function(){var t=e._readableState;c(\"pipeOnDrain\",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,\"data\")&&(t.flowing=!0,B(e))}}(n);e.on(\"drain\",u);var h=!1;function f(t){c(\"ondata\");var r=e.write(t);c(\"dest.write\",r),!1===r&&((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==z(i.pipes,e))&&!h&&(c(\"false write response, pause\",i.awaitDrain),i.awaitDrain++),n.pause())}function d(t){c(\"onerror\",t),b(),e.removeListener(\"error\",d),0===s(e,\"error\")&&x(e,t)}function p(){e.removeListener(\"finish\",m),b()}function m(){c(\"onfinish\"),e.removeListener(\"close\",p),b()}function b(){c(\"unpipe\"),n.unpipe(e)}return n.on(\"data\",f),function(e,t,r){if(\"function\"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,\"error\",d),e.once(\"close\",p),e.once(\"finish\",m),e.emit(\"pipe\",n),i.flowing||(c(\"pipe resume\"),n.resume()),e},M.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit(\"unpipe\",this,r)),this;if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var s=0;s<i;s++)n[s].emit(\"unpipe\",this,{hasUnpiped:!1});return this}var o=z(t.pipes,e);return-1===o||(t.pipes.splice(o,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit(\"unpipe\",this,r)),this},M.prototype.on=function(e,t){var n=o.prototype.on.call(this,e,t),i=this._readableState;return\"data\"===e?(i.readableListening=this.listenerCount(\"readable\")>0,!1!==i.flowing&&this.resume()):\"readable\"===e&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,c(\"on readable\",i.length,i.reading),i.length?A(this):i.reading||r.nextTick(N,this))),n},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(e,t){var n=o.prototype.removeListener.call(this,e,t);return\"readable\"===e&&r.nextTick(I,this),n},M.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);return\"readable\"!==e&&void 0!==e||r.nextTick(I,this),t},M.prototype.resume=function(){var e=this._readableState;return e.flowing||(c(\"resume\"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,r.nextTick(P,e,t))}(this,e)),e.paused=!1,this},M.prototype.pause=function(){return c(\"call pause flowing=%j\",this._readableState.flowing),!1!==this._readableState.flowing&&(c(\"pause\"),this._readableState.flowing=!1,this.emit(\"pause\")),this._readableState.paused=!0,this},M.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on(\"end\",(function(){if(c(\"wrapped end\"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on(\"data\",(function(i){(c(\"wrapped data\"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i)||(r.objectMode||i&&i.length)&&(t.push(i)||(n=!0,e.pause()))})),e)void 0===this[i]&&\"function\"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var s=0;s<k.length;s++)e.on(k[s],this.emit.bind(this,k[s]));return this._read=function(t){c(\"wrapped _read\",t),n&&(n=!1,e.resume())},this},\"function\"==typeof Symbol&&(M.prototype[Symbol.asyncIterator]=function(){return void 0===f&&(f=e(\"./internal/streams/async_iterator\")),f(this)}),Object.defineProperty(M.prototype,\"readableHighWaterMark\",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(M.prototype,\"readableBuffer\",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(M.prototype,\"readableFlowing\",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}}),M._fromList=D,Object.defineProperty(M.prototype,\"readableLength\",{enumerable:!1,get:function(){return this._readableState.length}}),\"function\"==typeof Symbol&&(M.from=function(t,r){return void 0===d&&(d=e(\"./internal/streams/from\")),d(M,t,r)})}).call(this)}).call(this,e(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"../errors\":477,\"./_stream_duplex\":478,\"./internal/streams/async_iterator\":483,\"./internal/streams/buffer_list\":484,\"./internal/streams/destroy\":485,\"./internal/streams/from\":487,\"./internal/streams/state\":489,\"./internal/streams/stream\":490,_process:467,buffer:220,events:422,inherits:440,\"string_decoder/\":522,util:188}],481:[function(e,t,r){\"use strict\";t.exports=u;var n=e(\"../errors\").codes,i=n.ERR_METHOD_NOT_IMPLEMENTED,s=n.ERR_MULTIPLE_CALLBACK,o=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,a=n.ERR_TRANSFORM_WITH_LENGTH_0,l=e(\"./_stream_duplex\");function c(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit(\"error\",new s);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function u(e){if(!(this instanceof u))return new u(e);l.call(this,e),this._transformState={afterTransform:c.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(\"function\"==typeof e.transform&&(this._transform=e.transform),\"function\"==typeof e.flush&&(this._flush=e.flush)),this.on(\"prefinish\",h)}function h(){var e=this;\"function\"!=typeof this._flush||this._readableState.destroyed?f(this,null,null):this._flush((function(t,r){f(e,t,r)}))}function f(e,t,r){if(t)return e.emit(\"error\",t);if(null!=r&&e.push(r),e._writableState.length)throw new a;if(e._transformState.transforming)throw new o;return e.push(null)}e(\"inherits\")(u,l),u.prototype.push=function(e,t){return this._transformState.needTransform=!1,l.prototype.push.call(this,e,t)},u.prototype._transform=function(e,t,r){r(new i(\"_transform()\"))},u.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},u.prototype._read=function(e){var t=this._transformState;null===t.writechunk||t.transforming?t.needTransform=!0:(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform))},u.prototype._destroy=function(e,t){l.prototype._destroy.call(this,e,(function(e){t(e)}))}},{\"../errors\":477,\"./_stream_duplex\":478,inherits:440}],482:[function(e,t,r){(function(r,n){(function(){\"use strict\";function i(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var i=n.callback;t.pendingcb--,i(r),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}var s;t.exports=M,M.WritableState=S;var o={deprecate:e(\"util-deprecate\")},a=e(\"./internal/streams/stream\"),l=e(\"buffer\").Buffer,c=(void 0!==n?n:\"undefined\"!=typeof window?window:\"undefined\"!=typeof self?self:{}).Uint8Array||function(){};var u,h=e(\"./internal/streams/destroy\"),f=e(\"./internal/streams/state\").getHighWaterMark,d=e(\"../errors\").codes,p=d.ERR_INVALID_ARG_TYPE,m=d.ERR_METHOD_NOT_IMPLEMENTED,b=d.ERR_MULTIPLE_CALLBACK,g=d.ERR_STREAM_CANNOT_PIPE,y=d.ERR_STREAM_DESTROYED,v=d.ERR_STREAM_NULL_VALUES,w=d.ERR_STREAM_WRITE_AFTER_END,_=d.ERR_UNKNOWN_ENCODING,x=h.errorOrDestroy;function k(){}function S(t,n,o){s=s||e(\"./_stream_duplex\"),t=t||{},\"boolean\"!=typeof o&&(o=n instanceof s),this.objectMode=!!t.objectMode,o&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=f(this,t,\"writableHighWaterMark\",o),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===t.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=t.defaultEncoding||\"utf8\",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,i=n.sync,s=n.writecb;if(\"function\"!=typeof s)throw new b;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,i,s){--t.pendingcb,n?(r.nextTick(s,i),r.nextTick(O,e,t),e._writableState.errorEmitted=!0,x(e,i)):(s(i),e._writableState.errorEmitted=!0,x(e,i),O(e,t))}(e,n,i,t,s);else{var o=A(n)||e.destroyed;o||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),i?r.nextTick(T,e,n,o,s):T(e,n,o,s)}}(n,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}function M(t){var r=this instanceof(s=s||e(\"./_stream_duplex\"));if(!r&&!u.call(M,this))return new M(t);this._writableState=new S(t,this,r),this.writable=!0,t&&(\"function\"==typeof t.write&&(this._write=t.write),\"function\"==typeof t.writev&&(this._writev=t.writev),\"function\"==typeof t.destroy&&(this._destroy=t.destroy),\"function\"==typeof t.final&&(this._final=t.final)),a.call(this)}function C(e,t,r,n,i,s,o){t.writelen=n,t.writecb=o,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new y(\"write\")):r?e._writev(i,t.onwrite):e._write(i,s,t.onwrite),t.sync=!1}function T(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit(\"drain\"))}(e,t),t.pendingcb--,n(),O(e,t)}function E(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var n=t.bufferedRequestCount,s=new Array(n),o=t.corkedRequestsFree;o.entry=r;for(var a=0,l=!0;r;)s[a]=r,r.isBuf||(l=!1),r=r.next,a+=1;s.allBuffers=l,C(e,t,!0,t.length,s,\"\",o.finish),t.pendingcb++,t.lastBufferedRequest=null,o.next?(t.corkedRequestsFree=o.next,o.next=null):t.corkedRequestsFree=new i(t),t.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,u=r.encoding,h=r.callback;if(C(e,t,!1,t.objectMode?1:c.length,c,u,h),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function A(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function R(e,t){e._final((function(r){t.pendingcb--,r&&x(e,r),t.prefinished=!0,e.emit(\"prefinish\"),O(e,t)}))}function O(e,t){var n=A(t);if(n&&(function(e,t){t.prefinished||t.finalCalled||(\"function\"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit(\"prefinish\")):(t.pendingcb++,t.finalCalled=!0,r.nextTick(R,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit(\"finish\"),t.autoDestroy))){var i=e._readableState;(!i||i.autoDestroy&&i.endEmitted)&&e.destroy()}return n}e(\"inherits\")(M,a),S.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(S.prototype,\"buffer\",{get:o.deprecate((function(){return this.getBuffer()}),\"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\",\"DEP0003\")})}catch(e){}}(),\"function\"==typeof Symbol&&Symbol.hasInstance&&\"function\"==typeof Function.prototype[Symbol.hasInstance]?(u=Function.prototype[Symbol.hasInstance],Object.defineProperty(M,Symbol.hasInstance,{value:function(e){return!!u.call(this,e)||this===M&&(e&&e._writableState instanceof S)}})):u=function(e){return e instanceof this},M.prototype.pipe=function(){x(this,new g)},M.prototype.write=function(e,t,n){var i,s=this._writableState,o=!1,a=!s.objectMode&&(i=e,l.isBuffer(i)||i instanceof c);return a&&!l.isBuffer(e)&&(e=function(e){return l.from(e)}(e)),\"function\"==typeof t&&(n=t,t=null),a?t=\"buffer\":t||(t=s.defaultEncoding),\"function\"!=typeof n&&(n=k),s.ending?function(e,t){var n=new w;x(e,n),r.nextTick(t,n)}(this,n):(a||function(e,t,n,i){var s;return null===n?s=new v:\"string\"==typeof n||t.objectMode||(s=new p(\"chunk\",[\"string\",\"Buffer\"],n)),!s||(x(e,s),r.nextTick(i,s),!1)}(this,s,e,n))&&(s.pendingcb++,o=function(e,t,r,n,i,s){if(!r){var o=function(e,t,r){e.objectMode||!1===e.decodeStrings||\"string\"!=typeof t||(t=l.from(t,r));return t}(t,n,i);n!==o&&(r=!0,i=\"buffer\",n=o)}var a=t.objectMode?1:n.length;t.length+=a;var c=t.length<t.highWaterMark;c||(t.needDrain=!0);if(t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest={chunk:n,encoding:i,isBuf:r,callback:s,next:null},u?u.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else C(e,t,!1,a,n,i,s);return c}(this,s,a,e,t,n)),o},M.prototype.cork=function(){this._writableState.corked++},M.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.bufferProcessing||!e.bufferedRequest||E(this,e))},M.prototype.setDefaultEncoding=function(e){if(\"string\"==typeof e&&(e=e.toLowerCase()),!([\"hex\",\"utf8\",\"utf-8\",\"ascii\",\"binary\",\"base64\",\"ucs2\",\"ucs-2\",\"utf16le\",\"utf-16le\",\"raw\"].indexOf((e+\"\").toLowerCase())>-1))throw new _(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(M.prototype,\"writableBuffer\",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(M.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),M.prototype._write=function(e,t,r){r(new m(\"_write()\"))},M.prototype._writev=null,M.prototype.end=function(e,t,n){var i=this._writableState;return\"function\"==typeof e?(n=e,e=null,t=null):\"function\"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),i.corked&&(i.corked=1,this.uncork()),i.ending||function(e,t,n){t.ending=!0,O(e,t),n&&(t.finished?r.nextTick(n):e.once(\"finish\",n));t.ended=!0,e.writable=!1}(this,i,n),this},Object.defineProperty(M.prototype,\"writableLength\",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(M.prototype,\"destroyed\",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),M.prototype.destroy=h.destroy,M.prototype._undestroy=h.undestroy,M.prototype._destroy=function(e,t){t(e)}}).call(this)}).call(this,e(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"../errors\":477,\"./_stream_duplex\":478,\"./internal/streams/destroy\":485,\"./internal/streams/state\":489,\"./internal/streams/stream\":490,_process:467,buffer:220,inherits:440,\"util-deprecate\":524}],483:[function(e,t,r){(function(r){(function(){\"use strict\";var n;function i(e,t,r){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||\"default\");if(\"object\"!=typeof n)return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var s=e(\"./end-of-stream\"),o=Symbol(\"lastResolve\"),a=Symbol(\"lastReject\"),l=Symbol(\"error\"),c=Symbol(\"ended\"),u=Symbol(\"lastPromise\"),h=Symbol(\"handlePromise\"),f=Symbol(\"stream\");function d(e,t){return{value:e,done:t}}function p(e){var t=e[o];if(null!==t){var r=e[f].read();null!==r&&(e[u]=null,e[o]=null,e[a]=null,t(d(r,!1)))}}function m(e){r.nextTick(p,e)}var b=Object.getPrototypeOf((function(){})),g=Object.setPrototypeOf((i(n={get stream(){return this[f]},next:function(){var e=this,t=this[l];if(null!==t)return Promise.reject(t);if(this[c])return Promise.resolve(d(void 0,!0));if(this[f].destroyed)return new Promise((function(t,n){r.nextTick((function(){e[l]?n(e[l]):t(d(void 0,!0))}))}));var n,i=this[u];if(i)n=new Promise(function(e,t){return function(r,n){e.then((function(){t[c]?r(d(void 0,!0)):t[h](r,n)}),n)}}(i,this));else{var s=this[f].read();if(null!==s)return Promise.resolve(d(s,!1));n=new Promise(this[h])}return this[u]=n,n}},Symbol.asyncIterator,(function(){return this})),i(n,\"return\",(function(){var e=this;return new Promise((function(t,r){e[f].destroy(null,(function(e){e?r(e):t(d(void 0,!0))}))}))})),n),b);t.exports=function(e){var t,r=Object.create(g,(i(t={},f,{value:e,writable:!0}),i(t,o,{value:null,writable:!0}),i(t,a,{value:null,writable:!0}),i(t,l,{value:null,writable:!0}),i(t,c,{value:e._readableState.endEmitted,writable:!0}),i(t,h,{value:function(e,t){var n=r[f].read();n?(r[u]=null,r[o]=null,r[a]=null,e(d(n,!1))):(r[o]=e,r[a]=t)},writable:!0}),t));return r[u]=null,s(e,(function(e){if(e&&\"ERR_STREAM_PREMATURE_CLOSE\"!==e.code){var t=r[a];return null!==t&&(r[u]=null,r[o]=null,r[a]=null,t(e)),void(r[l]=e)}var n=r[o];null!==n&&(r[u]=null,r[o]=null,r[a]=null,n(d(void 0,!0))),r[c]=!0})),e.on(\"readable\",m.bind(null,r)),r}}).call(this)}).call(this,e(\"_process\"))},{\"./end-of-stream\":486,_process:467}],484:[function(e,t,r){\"use strict\";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t,r){return(t=a(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,a(n.key),n)}}function a(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||\"default\");if(\"object\"!=typeof n)return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}var l=e(\"buffer\").Buffer,c=e(\"util\").inspect,u=c&&c.custom||\"inspect\";t.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this.head=null,this.tail=null,this.length=0}var t,r,n;return t=e,(r=[{key:\"push\",value:function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:\"unshift\",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:\"shift\",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:\"clear\",value:function(){this.head=this.tail=null,this.length=0}},{key:\"join\",value:function(e){if(0===this.length)return\"\";for(var t=this.head,r=\"\"+t.data;t=t.next;)r+=e+t.data;return r}},{key:\"concat\",value:function(e){if(0===this.length)return l.alloc(0);for(var t,r,n,i=l.allocUnsafe(e>>>0),s=this.head,o=0;s;)t=s.data,r=i,n=o,l.prototype.copy.call(t,r,n),o+=s.data.length,s=s.next;return i}},{key:\"consume\",value:function(e,t){var r;return e<this.head.data.length?(r=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):r=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),r}},{key:\"first\",value:function(){return this.head.data}},{key:\"_getString\",value:function(e){var t=this.head,r=1,n=t.data;for(e-=n.length;t=t.next;){var i=t.data,s=e>i.length?i.length:e;if(s===i.length?n+=i:n+=i.slice(0,e),0==(e-=s)){s===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(s));break}++r}return this.length-=r,n}},{key:\"_getBuffer\",value:function(e){var t=l.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var i=r.data,s=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,s),0==(e-=s)){s===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(s));break}++n}return this.length-=n,t}},{key:u,value:function(e,t){return c(this,i(i({},t),{},{depth:0,customInspect:!1}))}}])&&o(t.prototype,r),n&&o(t,n),Object.defineProperty(t,\"prototype\",{writable:!1}),e}()},{buffer:220,util:188}],485:[function(e,t,r){(function(e){(function(){\"use strict\";function r(e,t){i(e,t),n(e)}function n(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit(\"close\")}function i(e,t){e.emit(\"error\",t)}t.exports={destroy:function(t,s){var o=this,a=this._readableState&&this._readableState.destroyed,l=this._writableState&&this._writableState.destroyed;return a||l?(s?s(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,e.nextTick(i,this,t)):e.nextTick(i,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!s&&t?o._writableState?o._writableState.errorEmitted?e.nextTick(n,o):(o._writableState.errorEmitted=!0,e.nextTick(r,o,t)):e.nextTick(r,o,t):s?(e.nextTick(n,o),s(t)):e.nextTick(n,o)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit(\"error\",t)}}}).call(this)}).call(this,e(\"_process\"))},{_process:467}],486:[function(e,t,r){\"use strict\";var n=e(\"../../../errors\").codes.ERR_STREAM_PREMATURE_CLOSE;function i(){}t.exports=function e(t,r,s){if(\"function\"==typeof r)return e(t,null,r);r||(r={}),s=function(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];e.apply(this,n)}}}(s||i);var o=r.readable||!1!==r.readable&&t.readable,a=r.writable||!1!==r.writable&&t.writable,l=function(){t.writable||u()},c=t._writableState&&t._writableState.finished,u=function(){a=!1,c=!0,o||s.call(t)},h=t._readableState&&t._readableState.endEmitted,f=function(){o=!1,h=!0,a||s.call(t)},d=function(e){s.call(t,e)},p=function(){var e;return o&&!h?(t._readableState&&t._readableState.ended||(e=new n),s.call(t,e)):a&&!c?(t._writableState&&t._writableState.ended||(e=new n),s.call(t,e)):void 0},m=function(){t.req.on(\"finish\",u)};return!function(e){return e.setHeader&&\"function\"==typeof e.abort}(t)?a&&!t._writableState&&(t.on(\"end\",l),t.on(\"close\",l)):(t.on(\"complete\",u),t.on(\"abort\",p),t.req?m():t.on(\"request\",m)),t.on(\"end\",f),t.on(\"finish\",u),!1!==r.error&&t.on(\"error\",d),t.on(\"close\",p),function(){t.removeListener(\"complete\",u),t.removeListener(\"abort\",p),t.removeListener(\"request\",m),t.req&&t.req.removeListener(\"finish\",u),t.removeListener(\"end\",l),t.removeListener(\"close\",l),t.removeListener(\"finish\",u),t.removeListener(\"end\",f),t.removeListener(\"error\",d),t.removeListener(\"close\",p)}}},{\"../../../errors\":477}],487:[function(e,t,r){\"use strict\";t.exports=function(){throw new Error(\"Readable.from is not available in the browser\")}},{}],488:[function(e,t,r){\"use strict\";var n;var i=e(\"../../../errors\").codes,s=i.ERR_MISSING_ARGS,o=i.ERR_STREAM_DESTROYED;function a(e){if(e)throw e}function l(t,r,i,s){s=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(s);var a=!1;t.on(\"close\",(function(){a=!0})),void 0===n&&(n=e(\"./end-of-stream\")),n(t,{readable:r,writable:i},(function(e){if(e)return s(e);a=!0,s()}));var l=!1;return function(e){if(!a&&!l)return l=!0,function(e){return e.setHeader&&\"function\"==typeof e.abort}(t)?t.abort():\"function\"==typeof t.destroy?t.destroy():void s(e||new o(\"pipe\"))}}function c(e){e()}function u(e,t){return e.pipe(t)}function h(e){return e.length?\"function\"!=typeof e[e.length-1]?a:e.pop():a}t.exports=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n,i=h(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new s(\"streams\");var o=t.map((function(e,r){var s=r<t.length-1;return l(e,s,r>0,(function(e){n||(n=e),e&&o.forEach(c),s||(o.forEach(c),i(n))}))}));return t.reduce(u)}},{\"../../../errors\":477,\"./end-of-stream\":486}],489:[function(e,t,r){\"use strict\";var n=e(\"../../../errors\").codes.ERR_INVALID_OPT_VALUE;t.exports={getHighWaterMark:function(e,t,r,i){var s=function(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}(t,i,r);if(null!=s){if(!isFinite(s)||Math.floor(s)!==s||s<0)throw new n(i?r:\"highWaterMark\",s);return Math.floor(s)}return e.objectMode?16:16384}}},{\"../../../errors\":477}],490:[function(e,t,r){\"use strict\";t.exports=e(\"events\").EventEmitter},{events:422}],491:[function(e,t,r){\"use strict\";(r=t.exports=e(\"./lib/_stream_readable.js\")).Stream=r,r.Readable=r,r.Writable=e(\"./lib/_stream_writable.js\"),r.Duplex=e(\"./lib/_stream_duplex.js\"),r.Transform=e(\"./lib/_stream_transform.js\"),r.PassThrough=e(\"./lib/_stream_passthrough.js\"),r.finished=e(\"./lib/internal/streams/end-of-stream.js\"),r.pipeline=e(\"./lib/internal/streams/pipeline.js\")},{\"./lib/_stream_duplex.js\":478,\"./lib/_stream_passthrough.js\":479,\"./lib/_stream_readable.js\":480,\"./lib/_stream_transform.js\":481,\"./lib/_stream_writable.js\":482,\"./lib/internal/streams/end-of-stream.js\":486,\"./lib/internal/streams/pipeline.js\":488}],492:[function(e,t,r){\"use strict\";var n=function(e){var t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},i=\"function\"==typeof Symbol?Symbol:{},s=i.iterator||\"@@iterator\",o=i.asyncIterator||\"@@asyncIterator\",a=i.toStringTag||\"@@toStringTag\";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},\"\")}catch(e){l=function(e,t,r){return e[t]=r}}function c(e,t,r,i){var s=t&&t.prototype instanceof f?t:f,o=Object.create(s.prototype),a=new M(i||[]);return n(o,\"_invoke\",{value:_(e,r,a)}),o}function u(e,t,r){try{return{type:\"normal\",arg:e.call(t,r)}}catch(e){return{type:\"throw\",arg:e}}}e.wrap=c;var h={};function f(){}function d(){}function p(){}var m={};l(m,s,(function(){return this}));var b=Object.getPrototypeOf,g=b&&b(b(C([])));g&&g!==t&&r.call(g,s)&&(m=g);var y=p.prototype=f.prototype=Object.create(m);function v(e){[\"next\",\"throw\",\"return\"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){var i;n(this,\"_invoke\",{value:function(n,s){function o(){return new t((function(i,o){!function n(i,s,o,a){var l=u(e[i],e,s);if(\"throw\"!==l.type){var c=l.arg,h=c.value;return h&&\"object\"==typeof h&&r.call(h,\"__await\")?t.resolve(h.__await).then((function(e){n(\"next\",e,o,a)}),(function(e){n(\"throw\",e,o,a)})):t.resolve(h).then((function(e){c.value=e,o(c)}),(function(e){return n(\"throw\",e,o,a)}))}a(l.arg)}(n,s,i,o)}))}return i=i?i.then(o,o):o()}})}function _(e,t,r){var n=\"suspendedStart\";return function(i,s){if(\"executing\"===n)throw new Error(\"Generator is already running\");if(\"completed\"===n){if(\"throw\"===i)throw s;return T()}for(r.method=i,r.arg=s;;){var o=r.delegate;if(o){var a=x(o,r);if(a){if(a===h)continue;return a}}if(\"next\"===r.method)r.sent=r._sent=r.arg;else if(\"throw\"===r.method){if(\"suspendedStart\"===n)throw n=\"completed\",r.arg;r.dispatchException(r.arg)}else\"return\"===r.method&&r.abrupt(\"return\",r.arg);n=\"executing\";var l=u(e,t,r);if(\"normal\"===l.type){if(n=r.done?\"completed\":\"suspendedYield\",l.arg===h)continue;return{value:l.arg,done:r.done}}\"throw\"===l.type&&(n=\"completed\",r.method=\"throw\",r.arg=l.arg)}}}function x(e,t){var r=t.method,n=e.iterator[r];if(void 0===n)return t.delegate=null,\"throw\"===r&&e.iterator.return&&(t.method=\"return\",t.arg=void 0,x(e,t),\"throw\"===t.method)||\"return\"!==r&&(t.method=\"throw\",t.arg=new TypeError(\"The iterator does not provide a '\"+r+\"' method\")),h;var i=u(n,e.iterator,t.arg);if(\"throw\"===i.type)return t.method=\"throw\",t.arg=i.arg,t.delegate=null,h;var s=i.arg;return s?s.done?(t[e.resultName]=s.value,t.next=e.nextLoc,\"return\"!==t.method&&(t.method=\"next\",t.arg=void 0),t.delegate=null,h):s:(t.method=\"throw\",t.arg=new TypeError(\"iterator result is not an object\"),t.delegate=null,h)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type=\"normal\",delete t.arg,e.completion=t}function M(e){this.tryEntries=[{tryLoc:\"root\"}],e.forEach(k,this),this.reset(!0)}function C(e){if(e){var t=e[s];if(t)return t.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,i=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:T}}function T(){return{value:void 0,done:!0}}return d.prototype=p,n(y,\"constructor\",{value:p,configurable:!0}),n(p,\"constructor\",{value:d,configurable:!0}),d.displayName=l(p,a,\"GeneratorFunction\"),e.isGeneratorFunction=function(e){var t=\"function\"==typeof e&&e.constructor;return!!t&&(t===d||\"GeneratorFunction\"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,l(e,a,\"GeneratorFunction\")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},v(w.prototype),l(w.prototype,o,(function(){return this})),e.AsyncIterator=w,e.async=function(t,r,n,i,s){void 0===s&&(s=Promise);var o=new w(c(t,r,n,i),s);return e.isGeneratorFunction(r)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},v(y),l(y,a,\"Generator\"),l(y,s,(function(){return this})),l(y,\"toString\",(function(){return\"[object Generator]\"})),e.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=C,M.prototype={constructor:M,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(S),!e)for(var t in this)\"t\"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if(\"throw\"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return o.type=\"throw\",o.arg=e,t.next=r,n&&(t.method=\"next\",t.arg=void 0),!!n}for(var i=this.tryEntries.length-1;i>=0;--i){var s=this.tryEntries[i],o=s.completion;if(\"root\"===s.tryLoc)return n(\"end\");if(s.tryLoc<=this.prev){var a=r.call(s,\"catchLoc\"),l=r.call(s,\"finallyLoc\");if(a&&l){if(this.prev<s.catchLoc)return n(s.catchLoc,!0);if(this.prev<s.finallyLoc)return n(s.finallyLoc)}else if(a){if(this.prev<s.catchLoc)return n(s.catchLoc,!0)}else{if(!l)throw new Error(\"try statement without catch or finally\");if(this.prev<s.finallyLoc)return n(s.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,\"finallyLoc\")&&this.prev<i.finallyLoc){var s=i;break}}s&&(\"break\"===e||\"continue\"===e)&&s.tryLoc<=t&&t<=s.finallyLoc&&(s=null);var o=s?s.completion:{};return o.type=e,o.arg=t,s?(this.method=\"next\",this.next=s.finallyLoc,h):this.complete(o)},complete:function(e,t){if(\"throw\"===e.type)throw e.arg;return\"break\"===e.type||\"continue\"===e.type?this.next=e.arg:\"return\"===e.type?(this.rval=this.arg=e.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if(\"throw\"===n.type){var i=n.arg;S(r)}return i}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,t,r){return this.delegate={iterator:C(e),resultName:t,nextLoc:r},\"next\"===this.method&&(this.arg=void 0),h}},e}(\"object\"==typeof t?t.exports:{});try{regeneratorRuntime=n}catch(e){\"object\"==typeof globalThis?globalThis.regeneratorRuntime=n:Function(\"r\",\"regeneratorRuntime = r\")(n)}},{}],493:[function(e,t,r){\"use strict\";var n=e(\"buffer\").Buffer,i=e(\"inherits\"),s=e(\"hash-base\"),o=new Array(16),a=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],l=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],c=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],u=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],h=[0,1518500249,1859775393,2400959708,2840853838],f=[1352829926,1548603684,1836072691,2053994217,0];function d(){s.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(e,t){return e<<t|e>>>32-t}function m(e,t,r,n,i,s,o,a){return p(e+(t^r^n)+s+o|0,a)+i|0}function b(e,t,r,n,i,s,o,a){return p(e+(t&r|~t&n)+s+o|0,a)+i|0}function g(e,t,r,n,i,s,o,a){return p(e+((t|~r)^n)+s+o|0,a)+i|0}function y(e,t,r,n,i,s,o,a){return p(e+(t&n|r&~n)+s+o|0,a)+i|0}function v(e,t,r,n,i,s,o,a){return p(e+(t^(r|~n))+s+o|0,a)+i|0}i(d,s),d.prototype._update=function(){for(var e=o,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var r=0|this._a,n=0|this._b,i=0|this._c,s=0|this._d,d=0|this._e,w=0|this._a,_=0|this._b,x=0|this._c,k=0|this._d,S=0|this._e,M=0;M<80;M+=1){var C,T;M<16?(C=m(r,n,i,s,d,e[a[M]],h[0],c[M]),T=v(w,_,x,k,S,e[l[M]],f[0],u[M])):M<32?(C=b(r,n,i,s,d,e[a[M]],h[1],c[M]),T=y(w,_,x,k,S,e[l[M]],f[1],u[M])):M<48?(C=g(r,n,i,s,d,e[a[M]],h[2],c[M]),T=g(w,_,x,k,S,e[l[M]],f[2],u[M])):M<64?(C=y(r,n,i,s,d,e[a[M]],h[3],c[M]),T=b(w,_,x,k,S,e[l[M]],f[3],u[M])):(C=v(r,n,i,s,d,e[a[M]],h[4],c[M]),T=m(w,_,x,k,S,e[l[M]],f[4],u[M])),r=d,d=s,s=p(i,10),i=n,n=C,w=S,S=k,k=p(x,10),x=_,_=T}var E=this._b+i+k|0;this._b=this._c+s+S|0,this._c=this._d+d+w|0,this._d=this._e+r+_|0,this._e=this._a+n+x|0,this._a=E},d.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=n.alloc?n.alloc(20):new n(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},t.exports=d},{buffer:220,\"hash-base\":425,inherits:440}],494:[function(e,t,r){\"use strict\";\n/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */var n=e(\"buffer\"),i=n.Buffer;function s(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(s(n,r),r.Buffer=o),o.prototype=Object.create(i.prototype),s(i,o),o.from=function(e,t,r){if(\"number\"==typeof e)throw new TypeError(\"Argument must not be a number\");return i(e,t,r)},o.alloc=function(e,t,r){if(\"number\"!=typeof e)throw new TypeError(\"Argument must be a number\");var n=i(e);return void 0!==t?\"string\"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if(\"number\"!=typeof e)throw new TypeError(\"Argument must be a number\");return i(e)},o.allocUnsafeSlow=function(e){if(\"number\"!=typeof e)throw new TypeError(\"Argument must be a number\");return n.SlowBuffer(e)}},{buffer:220}],495:[function(e,t,r){(function(r){(function(){\"use strict\";var n,i=e(\"buffer\"),s=i.Buffer,o={};for(n in i)i.hasOwnProperty(n)&&\"SlowBuffer\"!==n&&\"Buffer\"!==n&&(o[n]=i[n]);var a=o.Buffer={};for(n in s)s.hasOwnProperty(n)&&\"allocUnsafe\"!==n&&\"allocUnsafeSlow\"!==n&&(a[n]=s[n]);if(o.Buffer.prototype=s.prototype,a.from&&a.from!==Uint8Array.from||(a.from=function(e,t,r){if(\"number\"==typeof e)throw new TypeError('The \"value\" argument must not be of type number. Received type '+typeof e);if(e&&void 0===e.length)throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof e);return s(e,t,r)}),a.alloc||(a.alloc=function(e,t,r){if(\"number\"!=typeof e)throw new TypeError('The \"size\" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value \"'+e+'\" is invalid for option \"size\"');var n=s(e);return t&&0!==t.length?\"string\"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n}),!o.kStringMaxLength)try{o.kStringMaxLength=r.binding(\"buffer\").kStringMaxLength}catch(e){}o.constants||(o.constants={MAX_LENGTH:o.kMaxLength},o.kStringMaxLength&&(o.constants.MAX_STRING_LENGTH=o.kStringMaxLength)),t.exports=o}).call(this)}).call(this,e(\"_process\"))},{_process:467,buffer:220}],496:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const n=e(\"xmlchars/xml/1.0/ed5\"),i=e(\"xmlchars/xml/1.1/ed2\"),s=e(\"xmlchars/xmlns/1.0/ed3\");var o=n.isS,a=n.isChar,l=n.isNameStartChar,c=n.isNameChar,u=n.S_LIST,h=n.NAME_RE,f=i.isChar,d=s.isNCNameStartChar,p=s.isNCNameChar,m=s.NC_NAME_RE;const b=\"http://www.w3.org/XML/1998/namespace\",g=\"http://www.w3.org/2000/xmlns/\",y={__proto__:null,xml:b,xmlns:g},v={__proto__:null,amp:\"&\",gt:\">\",lt:\"<\",quot:'\"',apos:\"'\"},w=e=>34===e||39===e,_=[34,39],x=[..._,91,62],k=[..._,60,93],S=[61,63,...u],M=[...u,62,38,60];function C(e,t,r){switch(t){case\"xml\":r!==b&&e.fail(`xml prefix must be bound to ${b}.`);break;case\"xmlns\":r!==g&&e.fail(`xmlns prefix must be bound to ${g}.`)}switch(r){case g:e.fail(\"\"===t?`the default namespace may not be set to ${r}.`:`may not assign a prefix (even \"xmlns\") to the URI ${g}.`);break;case b:switch(t){case\"xml\":break;case\"\":e.fail(`the default namespace may not be set to ${r}.`);break;default:e.fail(\"may not assign the xml namespace to another prefix.\")}}}const T=e=>m.test(e),E=e=>h.test(e);r.EVENTS=[\"xmldecl\",\"text\",\"processinginstruction\",\"doctype\",\"comment\",\"opentagstart\",\"attribute\",\"opentag\",\"closetag\",\"cdata\",\"error\",\"end\",\"ready\"];const A={xmldecl:\"xmldeclHandler\",text:\"textHandler\",processinginstruction:\"piHandler\",doctype:\"doctypeHandler\",comment:\"commentHandler\",opentagstart:\"openTagStartHandler\",attribute:\"attributeHandler\",opentag:\"openTagHandler\",closetag:\"closeTagHandler\",cdata:\"cdataHandler\",error:\"errorHandler\",end:\"endHandler\",ready:\"readyHandler\"};r.SaxesParser=class{constructor(e){this.opt=null!=e?e:{},this.fragmentOpt=!!this.opt.fragment;const t=this.xmlnsOpt=!!this.opt.xmlns;if(this.trackPosition=!1!==this.opt.position,this.fileName=this.opt.fileName,t){this.nameStartCheck=d,this.nameCheck=p,this.isName=T,this.processAttribs=this.processAttribsNS,this.pushAttrib=this.pushAttribNS,this.ns=Object.assign({__proto__:null},y);const e=this.opt.additionalNamespaces;null!=e&&(!function(e,t){for(const r of Object.keys(t))C(e,r,t[r])}(this,e),Object.assign(this.ns,e))}else this.nameStartCheck=l,this.nameCheck=c,this.isName=E,this.processAttribs=this.processAttribsPlain,this.pushAttrib=this.pushAttribPlain;this.stateTable=[this.sBegin,this.sBeginWhitespace,this.sDoctype,this.sDoctypeQuote,this.sDTD,this.sDTDQuoted,this.sDTDOpenWaka,this.sDTDOpenWakaBang,this.sDTDComment,this.sDTDCommentEnding,this.sDTDCommentEnded,this.sDTDPI,this.sDTDPIEnding,this.sText,this.sEntity,this.sOpenWaka,this.sOpenWakaBang,this.sComment,this.sCommentEnding,this.sCommentEnded,this.sCData,this.sCDataEnding,this.sCDataEnding2,this.sPIFirstChar,this.sPIRest,this.sPIBody,this.sPIEnding,this.sXMLDeclNameStart,this.sXMLDeclName,this.sXMLDeclEq,this.sXMLDeclValueStart,this.sXMLDeclValue,this.sXMLDeclSeparator,this.sXMLDeclEnding,this.sOpenTag,this.sOpenTagSlash,this.sAttrib,this.sAttribName,this.sAttribNameSawWhite,this.sAttribValue,this.sAttribValueQuoted,this.sAttribValueClosed,this.sAttribValueUnquoted,this.sCloseTag,this.sCloseTagSawWhite],this._init()}get closed(){return this._closed}_init(){var e;this.openWakaBang=\"\",this.text=\"\",this.name=\"\",this.piTarget=\"\",this.entity=\"\",this.q=null,this.tags=[],this.tag=null,this.topNS=null,this.chunk=\"\",this.chunkPosition=0,this.i=0,this.prevI=0,this.carriedFromPrevious=void 0,this.forbiddenState=0,this.attribList=[];const{fragmentOpt:t}=this;this.state=t?13:0,this.reportedTextBeforeRoot=this.reportedTextAfterRoot=this.closedRoot=this.sawRoot=t,this.xmlDeclPossible=!t,this.xmlDeclExpects=[\"version\"],this.entityReturnState=void 0;let{defaultXMLVersion:r}=this.opt;if(void 0===r){if(!0===this.opt.forceXMLVersion)throw new Error(\"forceXMLVersion set but defaultXMLVersion is not set\");r=\"1.0\"}this.setXMLVersion(r),this.positionAtNewLine=0,this.doctype=!1,this._closed=!1,this.xmlDecl={version:void 0,encoding:void 0,standalone:void 0},this.line=1,this.column=0,this.ENTITIES=Object.create(v),null===(e=this.readyHandler)||void 0===e||e.call(this)}get position(){return this.chunkPosition+this.i}get columnIndex(){return this.position-this.positionAtNewLine}on(e,t){this[A[e]]=t}off(e){this[A[e]]=void 0}makeError(e){var t;let r=null!==(t=this.fileName)&&void 0!==t?t:\"\";return this.trackPosition&&(r.length>0&&(r+=\":\"),r+=`${this.line}:${this.column}`),r.length>0&&(r+=\": \"),new Error(r+e)}fail(e){const t=this.makeError(e),r=this.errorHandler;if(void 0===r)throw t;return r(t),this}write(e){if(this.closed)return this.fail(\"cannot write after close; assign an onready handler.\");let t=!1;null===e?(t=!0,e=\"\"):\"object\"==typeof e&&(e=e.toString()),void 0!==this.carriedFromPrevious&&(e=`${this.carriedFromPrevious}${e}`,this.carriedFromPrevious=void 0);let r=e.length;const n=e.charCodeAt(r-1);!t&&(13===n||n>=55296&&n<=56319)&&(this.carriedFromPrevious=e[r-1],r--,e=e.slice(0,r));const{stateTable:i}=this;for(this.chunk=e,this.i=0;this.i<r;)i[this.state].call(this);return this.chunkPosition+=r,t?this.end():this}close(){return this.write(null)}getCode10(){const{chunk:e,i:t}=this;if(this.prevI=t,this.i=t+1,t>=e.length)return-1;const r=e.charCodeAt(t);if(this.column++,r<55296){if(r>=32||9===r)return r;switch(r){case 10:return this.line++,this.column=0,this.positionAtNewLine=this.position,10;case 13:return 10===e.charCodeAt(t+1)&&(this.i=t+2),this.line++,this.column=0,this.positionAtNewLine=this.position,-2;default:return this.fail(\"disallowed character.\"),r}}if(r>56319)return r>=57344&&r<=65533||this.fail(\"disallowed character.\"),r;const n=65536+1024*(r-55296)+(e.charCodeAt(t+1)-56320);return this.i=t+2,n>1114111&&this.fail(\"disallowed character.\"),n}getCode11(){const{chunk:e,i:t}=this;if(this.prevI=t,this.i=t+1,t>=e.length)return-1;const r=e.charCodeAt(t);if(this.column++,r<55296){if(r>31&&r<127||r>159&&8232!==r||9===r)return r;switch(r){case 10:return this.line++,this.column=0,this.positionAtNewLine=this.position,10;case 13:{const r=e.charCodeAt(t+1);10!==r&&133!==r||(this.i=t+2)}case 133:case 8232:return this.line++,this.column=0,this.positionAtNewLine=this.position,-2;default:return this.fail(\"disallowed character.\"),r}}if(r>56319)return r>=57344&&r<=65533||this.fail(\"disallowed character.\"),r;const n=65536+1024*(r-55296)+(e.charCodeAt(t+1)-56320);return this.i=t+2,n>1114111&&this.fail(\"disallowed character.\"),n}getCodeNorm(){const e=this.getCode();return-2===e?10:e}unget(){this.i=this.prevI,this.column--}captureTo(e){let{i:t}=this;const{chunk:r}=this;for(;;){const n=this.getCode(),i=-2===n,s=i?10:n;if(-1===s||e.includes(s))return this.text+=r.slice(t,this.prevI),s;i&&(this.text+=r.slice(t,this.prevI)+\"\\n\",t=this.i)}}captureToChar(e){let{i:t}=this;const{chunk:r}=this;for(;;){let n=this.getCode();switch(n){case-2:this.text+=r.slice(t,this.prevI)+\"\\n\",t=this.i,n=10;break;case-1:return this.text+=r.slice(t),!1}if(n===e)return this.text+=r.slice(t,this.prevI),!0}}captureNameChars(){const{chunk:e,i:t}=this;for(;;){const r=this.getCode();if(-1===r)return this.name+=e.slice(t),-1;if(!c(r))return this.name+=e.slice(t,this.prevI),-2===r?10:r}}skipSpaces(){for(;;){const e=this.getCodeNorm();if(-1===e||!o(e))return e}}setXMLVersion(e){this.currentXMLVersion=e,\"1.0\"===e?(this.isChar=a,this.getCode=this.getCode10):(this.isChar=f,this.getCode=this.getCode11)}sBegin(){65279===this.chunk.charCodeAt(0)&&(this.i++,this.column++),this.state=1}sBeginWhitespace(){const e=this.i,t=this.skipSpaces();switch(this.prevI!==e&&(this.xmlDeclPossible=!1),t){case 60:if(this.state=15,0!==this.text.length)throw new Error(\"no-empty text at start\");break;case-1:break;default:this.unget(),this.state=13,this.xmlDeclPossible=!1}}sDoctype(){var e;const t=this.captureTo(x);switch(t){case 62:null===(e=this.doctypeHandler)||void 0===e||e.call(this,this.text),this.text=\"\",this.state=13,this.doctype=!0;break;case-1:break;default:this.text+=String.fromCodePoint(t),91===t?this.state=4:w(t)&&(this.state=3,this.q=t)}}sDoctypeQuote(){const e=this.q;this.captureToChar(e)&&(this.text+=String.fromCodePoint(e),this.q=null,this.state=2)}sDTD(){const e=this.captureTo(k);-1!==e&&(this.text+=String.fromCodePoint(e),93===e?this.state=2:60===e?this.state=6:w(e)&&(this.state=5,this.q=e))}sDTDQuoted(){const e=this.q;this.captureToChar(e)&&(this.text+=String.fromCodePoint(e),this.state=4,this.q=null)}sDTDOpenWaka(){const e=this.getCodeNorm();switch(this.text+=String.fromCodePoint(e),e){case 33:this.state=7,this.openWakaBang=\"\";break;case 63:this.state=11;break;default:this.state=4}}sDTDOpenWakaBang(){const e=String.fromCodePoint(this.getCodeNorm()),t=this.openWakaBang+=e;this.text+=e,\"-\"!==t&&(this.state=\"--\"===t?8:4,this.openWakaBang=\"\")}sDTDComment(){this.captureToChar(45)&&(this.text+=\"-\",this.state=9)}sDTDCommentEnding(){const e=this.getCodeNorm();this.text+=String.fromCodePoint(e),this.state=45===e?10:8}sDTDCommentEnded(){const e=this.getCodeNorm();this.text+=String.fromCodePoint(e),62===e?this.state=4:(this.fail(\"malformed comment.\"),this.state=8)}sDTDPI(){this.captureToChar(63)&&(this.text+=\"?\",this.state=12)}sDTDPIEnding(){const e=this.getCodeNorm();this.text+=String.fromCodePoint(e),62===e&&(this.state=4)}sText(){0!==this.tags.length?this.handleTextInRoot():this.handleTextOutsideRoot()}sEntity(){let{i:e}=this;const{chunk:t}=this;e:for(;;)switch(this.getCode()){case-2:this.entity+=t.slice(e,this.prevI)+\"\\n\",e=this.i;break;case 59:{const{entityReturnState:r}=this,n=this.entity+t.slice(e,this.prevI);let i;this.state=r,\"\"===n?(this.fail(\"empty entity name.\"),i=\"&;\"):(i=this.parseEntity(n),this.entity=\"\"),13===r&&void 0===this.textHandler||(this.text+=i);break e}case-1:this.entity+=t.slice(e);break e}}sOpenWaka(){const e=this.getCode();if(l(e))this.state=34,this.unget(),this.xmlDeclPossible=!1;else switch(e){case 47:this.state=43,this.xmlDeclPossible=!1;break;case 33:this.state=16,this.openWakaBang=\"\",this.xmlDeclPossible=!1;break;case 63:this.state=23;break;default:this.fail(\"disallowed character in tag name\"),this.state=13,this.xmlDeclPossible=!1}}sOpenWakaBang(){switch(this.openWakaBang+=String.fromCodePoint(this.getCodeNorm()),this.openWakaBang){case\"[CDATA[\":this.sawRoot||this.reportedTextBeforeRoot||(this.fail(\"text data outside of root node.\"),this.reportedTextBeforeRoot=!0),this.closedRoot&&!this.reportedTextAfterRoot&&(this.fail(\"text data outside of root node.\"),this.reportedTextAfterRoot=!0),this.state=20,this.openWakaBang=\"\";break;case\"--\":this.state=17,this.openWakaBang=\"\";break;case\"DOCTYPE\":this.state=2,(this.doctype||this.sawRoot)&&this.fail(\"inappropriately located doctype declaration.\"),this.openWakaBang=\"\";break;default:this.openWakaBang.length>=7&&this.fail(\"incorrect syntax.\")}}sComment(){this.captureToChar(45)&&(this.state=18)}sCommentEnding(){var e;const t=this.getCodeNorm();45===t?(this.state=19,null===(e=this.commentHandler)||void 0===e||e.call(this,this.text),this.text=\"\"):(this.text+=\"-\"+String.fromCodePoint(t),this.state=17)}sCommentEnded(){const e=this.getCodeNorm();62!==e?(this.fail(\"malformed comment.\"),this.text+=\"--\"+String.fromCodePoint(e),this.state=17):this.state=13}sCData(){this.captureToChar(93)&&(this.state=21)}sCDataEnding(){const e=this.getCodeNorm();93===e?this.state=22:(this.text+=\"]\"+String.fromCodePoint(e),this.state=20)}sCDataEnding2(){var e;const t=this.getCodeNorm();switch(t){case 62:null===(e=this.cdataHandler)||void 0===e||e.call(this,this.text),this.text=\"\",this.state=13;break;case 93:this.text+=\"]\";break;default:this.text+=\"]]\"+String.fromCodePoint(t),this.state=20}}sPIFirstChar(){const e=this.getCodeNorm();this.nameStartCheck(e)?(this.piTarget+=String.fromCodePoint(e),this.state=24):63===e||o(e)?(this.fail(\"processing instruction without a target.\"),this.state=63===e?26:25):(this.fail(\"disallowed character in processing instruction name.\"),this.piTarget+=String.fromCodePoint(e),this.state=24)}sPIRest(){const{chunk:e,i:t}=this;for(;;){const r=this.getCodeNorm();if(-1===r)return void(this.piTarget+=e.slice(t));if(!this.nameCheck(r)){this.piTarget+=e.slice(t,this.prevI);const n=63===r;n||o(r)?\"xml\"===this.piTarget?(this.xmlDeclPossible||this.fail(\"an XML declaration must be at the start of the document.\"),this.state=n?33:27):this.state=n?26:25:(this.fail(\"disallowed character in processing instruction name.\"),this.piTarget+=String.fromCodePoint(r));break}}}sPIBody(){if(0===this.text.length){const e=this.getCodeNorm();63===e?this.state=26:o(e)||(this.text=String.fromCodePoint(e))}else this.captureToChar(63)&&(this.state=26)}sPIEnding(){var e;const t=this.getCodeNorm();if(62===t){const{piTarget:t}=this;\"xml\"===t.toLowerCase()&&this.fail(\"the XML declaration must appear at the start of the document.\"),null===(e=this.piHandler)||void 0===e||e.call(this,{target:t,body:this.text}),this.piTarget=this.text=\"\",this.state=13}else 63===t?this.text+=\"?\":(this.text+=\"?\"+String.fromCodePoint(t),this.state=25);this.xmlDeclPossible=!1}sXMLDeclNameStart(){const e=this.skipSpaces();63!==e?-1!==e&&(this.state=28,this.name=String.fromCodePoint(e)):this.state=33}sXMLDeclName(){const e=this.captureTo(S);if(63===e)return this.state=33,this.name+=this.text,this.text=\"\",void this.fail(\"XML declaration is incomplete.\");if(o(e)||61===e){if(this.name+=this.text,this.text=\"\",!this.xmlDeclExpects.includes(this.name))switch(this.name.length){case 0:this.fail(\"did not expect any more name/value pairs.\");break;case 1:this.fail(`expected the name ${this.xmlDeclExpects[0]}.`);break;default:this.fail(\"expected one of \"+this.xmlDeclExpects.join(\", \"))}this.state=61===e?30:29}}sXMLDeclEq(){const e=this.getCodeNorm();if(63===e)return this.state=33,void this.fail(\"XML declaration is incomplete.\");o(e)||(61!==e&&this.fail(\"value required.\"),this.state=30)}sXMLDeclValueStart(){const e=this.getCodeNorm();if(63===e)return this.state=33,void this.fail(\"XML declaration is incomplete.\");o(e)||(w(e)?this.q=e:(this.fail(\"value must be quoted.\"),this.q=32),this.state=31)}sXMLDeclValue(){const e=this.captureTo([this.q,63]);if(63===e)return this.state=33,this.text=\"\",void this.fail(\"XML declaration is incomplete.\");if(-1===e)return;const t=this.text;switch(this.text=\"\",this.name){case\"version\":{this.xmlDeclExpects=[\"encoding\",\"standalone\"];const e=t;this.xmlDecl.version=e,/^1\\.[0-9]+$/.test(e)?this.opt.forceXMLVersion||this.setXMLVersion(e):this.fail(\"version number must match /^1\\\\.[0-9]+$/.\");break}case\"encoding\":/^[A-Za-z][A-Za-z0-9._-]*$/.test(t)||this.fail(\"encoding value must match /^[A-Za-z0-9][A-Za-z0-9._-]*$/.\"),this.xmlDeclExpects=[\"standalone\"],this.xmlDecl.encoding=t;break;case\"standalone\":\"yes\"!==t&&\"no\"!==t&&this.fail('standalone value must match \"yes\" or \"no\".'),this.xmlDeclExpects=[],this.xmlDecl.standalone=t}this.name=\"\",this.state=32}sXMLDeclSeparator(){const e=this.getCodeNorm();63!==e?(o(e)||(this.fail(\"whitespace required.\"),this.unget()),this.state=27):this.state=33}sXMLDeclEnding(){var e;62===this.getCodeNorm()?(\"xml\"!==this.piTarget?this.fail(\"processing instructions are not allowed before root.\"):\"version\"!==this.name&&this.xmlDeclExpects.includes(\"version\")&&this.fail(\"XML declaration must contain a version.\"),null===(e=this.xmldeclHandler)||void 0===e||e.call(this,this.xmlDecl),this.name=\"\",this.piTarget=this.text=\"\",this.state=13):this.fail(\"The character ? is disallowed anywhere in XML declarations.\"),this.xmlDeclPossible=!1}sOpenTag(){var e;const t=this.captureNameChars();if(-1===t)return;const r=this.tag={name:this.name,attributes:Object.create(null)};switch(this.name=\"\",this.xmlnsOpt&&(this.topNS=r.ns=Object.create(null)),null===(e=this.openTagStartHandler)||void 0===e||e.call(this,r),this.sawRoot=!0,!this.fragmentOpt&&this.closedRoot&&this.fail(\"documents may contain only one root.\"),t){case 62:this.openTag();break;case 47:this.state=35;break;default:o(t)||this.fail(\"disallowed character in tag name.\"),this.state=36}}sOpenTagSlash(){62===this.getCode()?this.openSelfClosingTag():(this.fail(\"forward-slash in opening tag not followed by >.\"),this.state=36)}sAttrib(){const e=this.skipSpaces();-1!==e&&(l(e)?(this.unget(),this.state=37):62===e?this.openTag():47===e?this.state=35:this.fail(\"disallowed character in attribute name.\"))}sAttribName(){const e=this.captureNameChars();61===e?this.state=39:o(e)?this.state=38:62===e?(this.fail(\"attribute without value.\"),this.pushAttrib(this.name,this.name),this.name=this.text=\"\",this.openTag()):-1!==e&&this.fail(\"disallowed character in attribute name.\")}sAttribNameSawWhite(){const e=this.skipSpaces();switch(e){case-1:return;case 61:this.state=39;break;default:this.fail(\"attribute without value.\"),this.text=\"\",this.name=\"\",62===e?this.openTag():l(e)?(this.unget(),this.state=37):(this.fail(\"disallowed character in attribute name.\"),this.state=36)}}sAttribValue(){const e=this.getCodeNorm();w(e)?(this.q=e,this.state=40):o(e)||(this.fail(\"unquoted attribute value.\"),this.state=42,this.unget())}sAttribValueQuoted(){const{q:e,chunk:t}=this;let{i:r}=this;for(;;)switch(this.getCode()){case e:return this.pushAttrib(this.name,this.text+t.slice(r,this.prevI)),this.name=this.text=\"\",this.q=null,void(this.state=41);case 38:return this.text+=t.slice(r,this.prevI),this.state=14,void(this.entityReturnState=40);case 10:case-2:case 9:this.text+=t.slice(r,this.prevI)+\" \",r=this.i;break;case 60:return this.text+=t.slice(r,this.prevI),void this.fail(\"disallowed character.\");case-1:return void(this.text+=t.slice(r))}}sAttribValueClosed(){const e=this.getCodeNorm();o(e)?this.state=36:62===e?this.openTag():47===e?this.state=35:l(e)?(this.fail(\"no whitespace between attributes.\"),this.unget(),this.state=37):this.fail(\"disallowed character in attribute name.\")}sAttribValueUnquoted(){const e=this.captureTo(M);switch(e){case 38:this.state=14,this.entityReturnState=42;break;case 60:this.fail(\"disallowed character.\");break;case-1:break;default:this.text.includes(\"]]>\")&&this.fail('the string \"]]>\" is disallowed in char data.'),this.pushAttrib(this.name,this.text),this.name=this.text=\"\",62===e?this.openTag():this.state=36}}sCloseTag(){const e=this.captureNameChars();62===e?this.closeTag():o(e)?this.state=44:-1!==e&&this.fail(\"disallowed character in closing tag.\")}sCloseTagSawWhite(){switch(this.skipSpaces()){case 62:this.closeTag();break;case-1:break;default:this.fail(\"disallowed character in closing tag.\")}}handleTextInRoot(){let{i:e,forbiddenState:t}=this;const{chunk:r,textHandler:n}=this;e:for(;;)switch(this.getCode()){case 60:if(this.state=15,void 0!==n){const{text:t}=this,i=r.slice(e,this.prevI);0!==t.length?(n(t+i),this.text=\"\"):0!==i.length&&n(i)}t=0;break e;case 38:this.state=14,this.entityReturnState=13,void 0!==n&&(this.text+=r.slice(e,this.prevI)),t=0;break e;case 93:switch(t){case 0:t=1;break;case 1:t=2;break;case 2:break;default:throw new Error(\"impossible state\")}break;case 62:2===t&&this.fail('the string \"]]>\" is disallowed in char data.'),t=0;break;case-2:void 0!==n&&(this.text+=r.slice(e,this.prevI)+\"\\n\"),e=this.i,t=0;break;case-1:void 0!==n&&(this.text+=r.slice(e));break e;default:t=0}this.forbiddenState=t}handleTextOutsideRoot(){let{i:e}=this;const{chunk:t,textHandler:r}=this;let n=!1;e:for(;;){const i=this.getCode();switch(i){case 60:if(this.state=15,void 0!==r){const{text:n}=this,i=t.slice(e,this.prevI);0!==n.length?(r(n+i),this.text=\"\"):0!==i.length&&r(i)}break e;case 38:this.state=14,this.entityReturnState=13,void 0!==r&&(this.text+=t.slice(e,this.prevI)),n=!0;break e;case-2:void 0!==r&&(this.text+=t.slice(e,this.prevI)+\"\\n\"),e=this.i;break;case-1:void 0!==r&&(this.text+=t.slice(e));break e;default:o(i)||(n=!0)}}n&&(this.sawRoot||this.reportedTextBeforeRoot||(this.fail(\"text data outside of root node.\"),this.reportedTextBeforeRoot=!0),this.closedRoot&&!this.reportedTextAfterRoot&&(this.fail(\"text data outside of root node.\"),this.reportedTextAfterRoot=!0))}pushAttribNS(e,t){var r;const{prefix:n,local:i}=this.qname(e),s={name:e,prefix:n,local:i,value:t};if(this.attribList.push(s),null===(r=this.attributeHandler)||void 0===r||r.call(this,s),\"xmlns\"===n){const e=t.trim();\"1.0\"===this.currentXMLVersion&&\"\"===e&&this.fail(\"invalid attempt to undefine prefix in XML 1.0\"),this.topNS[i]=e,C(this,i,e)}else if(\"xmlns\"===e){const e=t.trim();this.topNS[\"\"]=e,C(this,\"\",e)}}pushAttribPlain(e,t){var r;const n={name:e,value:t};this.attribList.push(n),null===(r=this.attributeHandler)||void 0===r||r.call(this,n)}end(){var e,t;this.sawRoot||this.fail(\"document must contain a root element.\");const{tags:r}=this;for(;r.length>0;){const e=r.pop();this.fail(\"unclosed tag: \"+e.name)}0!==this.state&&13!==this.state&&this.fail(\"unexpected end.\");const{text:n}=this;return 0!==n.length&&(null===(e=this.textHandler)||void 0===e||e.call(this,n),this.text=\"\"),this._closed=!0,null===(t=this.endHandler)||void 0===t||t.call(this),this._init(),this}resolve(e){var t,r;let n=this.topNS[e];if(void 0!==n)return n;const{tags:i}=this;for(let t=i.length-1;t>=0;t--)if(n=i[t].ns[e],void 0!==n)return n;return n=this.ns[e],void 0!==n?n:null===(r=(t=this.opt).resolvePrefix)||void 0===r?void 0:r.call(t,e)}qname(e){const t=e.indexOf(\":\");if(-1===t)return{prefix:\"\",local:e};const r=e.slice(t+1),n=e.slice(0,t);return(\"\"===n||\"\"===r||r.includes(\":\"))&&this.fail(`malformed name: ${e}.`),{prefix:n,local:r}}processAttribsNS(){var e;const{attribList:t}=this,r=this.tag;{const{prefix:t,local:n}=this.qname(r.name);r.prefix=t,r.local=n;const i=r.uri=null!==(e=this.resolve(t))&&void 0!==e?e:\"\";\"\"!==t&&(\"xmlns\"===t&&this.fail('tags may not have \"xmlns\" as prefix.'),\"\"===i&&(this.fail(`unbound namespace prefix: ${JSON.stringify(t)}.`),r.uri=t))}if(0===t.length)return;const{attributes:n}=r,i=new Set;for(const e of t){const{name:t,prefix:r,local:s}=e;let o,a;\"\"===r?(o=\"xmlns\"===t?g:\"\",a=t):(o=this.resolve(r),void 0===o&&(this.fail(`unbound namespace prefix: ${JSON.stringify(r)}.`),o=r),a=`{${o}}${s}`),i.has(a)&&this.fail(`duplicate attribute: ${a}.`),i.add(a),e.uri=o,n[t]=e}this.attribList=[]}processAttribsPlain(){const{attribList:e}=this,t=this.tag.attributes;for(const{name:r,value:n}of e)void 0!==t[r]&&this.fail(`duplicate attribute: ${r}.`),t[r]=n;this.attribList=[]}openTag(){var e;this.processAttribs();const{tags:t}=this,r=this.tag;r.isSelfClosing=!1,null===(e=this.openTagHandler)||void 0===e||e.call(this,r),t.push(r),this.state=13,this.name=\"\"}openSelfClosingTag(){var e,t,r;this.processAttribs();const{tags:n}=this,i=this.tag;i.isSelfClosing=!0,null===(e=this.openTagHandler)||void 0===e||e.call(this,i),null===(t=this.closeTagHandler)||void 0===t||t.call(this,i);null===(this.tag=null!==(r=n[n.length-1])&&void 0!==r?r:null)&&(this.closedRoot=!0),this.state=13,this.name=\"\"}closeTag(){const{tags:e,name:t}=this;if(this.state=13,this.name=\"\",\"\"===t)return this.fail(\"weird empty close tag.\"),void(this.text+=\"</>\");const r=this.closeTagHandler;let n=e.length;for(;n-- >0;){const n=this.tag=e.pop();if(this.topNS=n.ns,null==r||r(n),n.name===t)break;this.fail(\"unexpected close tag.\")}0===n?this.closedRoot=!0:n<0&&(this.fail(`unmatched closing tag: ${t}.`),this.text+=`</${t}>`)}parseEntity(e){if(\"#\"!==e[0]){const t=this.ENTITIES[e];return void 0!==t?t:(this.fail(this.isName(e)?\"undefined entity.\":\"disallowed character in entity name.\"),`&${e};`)}let t=NaN;return\"x\"===e[1]&&/^#x[0-9a-f]+$/i.test(e)?t=parseInt(e.slice(2),16):/^#[0-9]+$/.test(e)&&(t=parseInt(e.slice(1),10)),this.isChar(t)?String.fromCodePoint(t):(this.fail(\"malformed character entity.\"),`&${e};`)}}},{\"xmlchars/xml/1.0/ed5\":543,\"xmlchars/xml/1.1/ed2\":544,\"xmlchars/xmlns/1.0/ed3\":545}],497:[function(e,t,r){\"use strict\";var n=e(\"safe-buffer\").Buffer;function i(e,t){this._block=n.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}i.prototype.update=function(e,t){\"string\"==typeof e&&(t=t||\"utf8\",e=n.from(e,t));for(var r=this._block,i=this._blockSize,s=e.length,o=this._len,a=0;a<s;){for(var l=o%i,c=Math.min(s-a,i-l),u=0;u<c;u++)r[l+u]=e[a+u];a+=c,(o+=c)%i==0&&this._update(r)}return this._len+=s,this},i.prototype.digest=function(e){var t=this._len%this._blockSize;this._block[t]=128,this._block.fill(0,t+1),t>=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var s=this._hash();return e?s.toString(e):s},i.prototype._update=function(){throw new Error(\"_update must be implemented by subclass\")},t.exports=i},{\"safe-buffer\":494}],498:[function(e,t,r){\"use strict\";var n=t.exports=function(e){e=e.toLowerCase();var t=n[e];if(!t)throw new Error(e+\" is not supported (we accept pull requests)\");return new t};n.sha=e(\"./sha\"),n.sha1=e(\"./sha1\"),n.sha224=e(\"./sha224\"),n.sha256=e(\"./sha256\"),n.sha384=e(\"./sha384\"),n.sha512=e(\"./sha512\")},{\"./sha\":499,\"./sha1\":500,\"./sha224\":501,\"./sha256\":502,\"./sha384\":503,\"./sha512\":504}],499:[function(e,t,r){\"use strict\";var n=e(\"inherits\"),i=e(\"./hash\"),s=e(\"safe-buffer\").Buffer,o=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function l(){this.init(),this._w=a,i.call(this,64,56)}function c(e){return e<<30|e>>>2}function u(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(l,i),l.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},l.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,s=0|this._c,a=0|this._d,l=0|this._e,h=0;h<16;++h)r[h]=e.readInt32BE(4*h);for(;h<80;++h)r[h]=r[h-3]^r[h-8]^r[h-14]^r[h-16];for(var f=0;f<80;++f){var d=~~(f/20),p=0|((t=n)<<5|t>>>27)+u(d,i,s,a)+l+r[f]+o[d];l=a,a=s,s=c(i),i=n,n=p}this._a=n+this._a|0,this._b=i+this._b|0,this._c=s+this._c|0,this._d=a+this._d|0,this._e=l+this._e|0},l.prototype._hash=function(){var e=s.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},t.exports=l},{\"./hash\":497,inherits:440,\"safe-buffer\":494}],500:[function(e,t,r){\"use strict\";var n=e(\"inherits\"),i=e(\"./hash\"),s=e(\"safe-buffer\").Buffer,o=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function l(){this.init(),this._w=a,i.call(this,64,56)}function c(e){return e<<5|e>>>27}function u(e){return e<<30|e>>>2}function h(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(l,i),l.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},l.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,s=0|this._c,a=0|this._d,l=0|this._e,f=0;f<16;++f)r[f]=e.readInt32BE(4*f);for(;f<80;++f)r[f]=(t=r[f-3]^r[f-8]^r[f-14]^r[f-16])<<1|t>>>31;for(var d=0;d<80;++d){var p=~~(d/20),m=c(n)+h(p,i,s,a)+l+r[d]+o[p]|0;l=a,a=s,s=u(i),i=n,n=m}this._a=n+this._a|0,this._b=i+this._b|0,this._c=s+this._c|0,this._d=a+this._d|0,this._e=l+this._e|0},l.prototype._hash=function(){var e=s.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},t.exports=l},{\"./hash\":497,inherits:440,\"safe-buffer\":494}],501:[function(e,t,r){\"use strict\";var n=e(\"inherits\"),i=e(\"./sha256\"),s=e(\"./hash\"),o=e(\"safe-buffer\").Buffer,a=new Array(64);function l(){this.init(),this._w=a,s.call(this,64,56)}n(l,i),l.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},l.prototype._hash=function(){var e=o.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},t.exports=l},{\"./hash\":497,\"./sha256\":502,inherits:440,\"safe-buffer\":494}],502:[function(e,t,r){\"use strict\";var n=e(\"inherits\"),i=e(\"./hash\"),s=e(\"safe-buffer\").Buffer,o=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],a=new Array(64);function l(){this.init(),this._w=a,i.call(this,64,56)}function c(e,t,r){return r^e&(t^r)}function u(e,t,r){return e&t|r&(e|t)}function h(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function f(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function d(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}n(l,i),l.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},l.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,s=0|this._c,a=0|this._d,l=0|this._e,p=0|this._f,m=0|this._g,b=0|this._h,g=0;g<16;++g)r[g]=e.readInt32BE(4*g);for(;g<64;++g)r[g]=0|(((t=r[g-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+r[g-7]+d(r[g-15])+r[g-16];for(var y=0;y<64;++y){var v=b+f(l)+c(l,p,m)+o[y]+r[y]|0,w=h(n)+u(n,i,s)|0;b=m,m=p,p=l,l=a+v|0,a=s,s=i,i=n,n=v+w|0}this._a=n+this._a|0,this._b=i+this._b|0,this._c=s+this._c|0,this._d=a+this._d|0,this._e=l+this._e|0,this._f=p+this._f|0,this._g=m+this._g|0,this._h=b+this._h|0},l.prototype._hash=function(){var e=s.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},t.exports=l},{\"./hash\":497,inherits:440,\"safe-buffer\":494}],503:[function(e,t,r){\"use strict\";var n=e(\"inherits\"),i=e(\"./sha512\"),s=e(\"./hash\"),o=e(\"safe-buffer\").Buffer,a=new Array(160);function l(){this.init(),this._w=a,s.call(this,128,112)}n(l,i),l.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},l.prototype._hash=function(){var e=o.allocUnsafe(48);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},t.exports=l},{\"./hash\":497,\"./sha512\":504,inherits:440,\"safe-buffer\":494}],504:[function(e,t,r){\"use strict\";var n=e(\"inherits\"),i=e(\"./hash\"),s=e(\"safe-buffer\").Buffer,o=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function l(){this.init(),this._w=a,i.call(this,128,112)}function c(e,t,r){return r^e&(t^r)}function u(e,t,r){return e&t|r&(e|t)}function h(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function f(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function d(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function b(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function g(e,t){return e>>>0<t>>>0?1:0}n(l,i),l.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},l.prototype._update=function(e){for(var t=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,s=0|this._dh,a=0|this._eh,l=0|this._fh,y=0|this._gh,v=0|this._hh,w=0|this._al,_=0|this._bl,x=0|this._cl,k=0|this._dl,S=0|this._el,M=0|this._fl,C=0|this._gl,T=0|this._hl,E=0;E<32;E+=2)t[E]=e.readInt32BE(4*E),t[E+1]=e.readInt32BE(4*E+4);for(;E<160;E+=2){var A=t[E-30],R=t[E-30+1],O=d(A,R),j=p(R,A),I=m(A=t[E-4],R=t[E-4+1]),N=b(R,A),P=t[E-14],B=t[E-14+1],D=t[E-32],F=t[E-32+1],L=j+B|0,z=O+P+g(L,j)|0;z=(z=z+I+g(L=L+N|0,N)|0)+D+g(L=L+F|0,F)|0,t[E]=z,t[E+1]=L}for(var U=0;U<160;U+=2){z=t[U],L=t[U+1];var $=u(r,n,i),H=u(w,_,x),V=h(r,w),q=h(w,r),W=f(a,S),X=f(S,a),K=o[U],Y=o[U+1],Z=c(a,l,y),G=c(S,M,C),J=T+X|0,Q=v+W+g(J,T)|0;Q=(Q=(Q=Q+Z+g(J=J+G|0,G)|0)+K+g(J=J+Y|0,Y)|0)+z+g(J=J+L|0,L)|0;var ee=q+H|0,te=V+$+g(ee,q)|0;v=y,T=C,y=l,C=M,l=a,M=S,a=s+Q+g(S=k+J|0,k)|0,s=i,k=x,i=n,x=_,n=r,_=w,r=Q+te+g(w=J+ee|0,J)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+x|0,this._dl=this._dl+k|0,this._el=this._el+S|0,this._fl=this._fl+M|0,this._gl=this._gl+C|0,this._hl=this._hl+T|0,this._ah=this._ah+r+g(this._al,w)|0,this._bh=this._bh+n+g(this._bl,_)|0,this._ch=this._ch+i+g(this._cl,x)|0,this._dh=this._dh+s+g(this._dl,k)|0,this._eh=this._eh+a+g(this._el,S)|0,this._fh=this._fh+l+g(this._fl,M)|0,this._gh=this._gh+y+g(this._gl,C)|0,this._hh=this._hh+v+g(this._hl,T)|0},l.prototype._hash=function(){var e=s.allocUnsafe(64);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},t.exports=l},{\"./hash\":497,inherits:440,\"safe-buffer\":494}],505:[function(e,t,r){\"use strict\";t.exports=i;var n=e(\"events\").EventEmitter;function i(){n.call(this)}e(\"inherits\")(i,n),i.Readable=e(\"readable-stream/readable.js\"),i.Writable=e(\"readable-stream/writable.js\"),i.Duplex=e(\"readable-stream/duplex.js\"),i.Transform=e(\"readable-stream/transform.js\"),i.PassThrough=e(\"readable-stream/passthrough.js\"),i.Stream=i,i.prototype.pipe=function(e,t){var r=this;function i(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function s(){r.readable&&r.resume&&r.resume()}r.on(\"data\",i),e.on(\"drain\",s),e._isStdio||t&&!1===t.end||(r.on(\"end\",a),r.on(\"close\",l));var o=!1;function a(){o||(o=!0,e.end())}function l(){o||(o=!0,\"function\"==typeof e.destroy&&e.destroy())}function c(e){if(u(),0===n.listenerCount(this,\"error\"))throw e}function u(){r.removeListener(\"data\",i),e.removeListener(\"drain\",s),r.removeListener(\"end\",a),r.removeListener(\"close\",l),r.removeListener(\"error\",c),e.removeListener(\"error\",c),r.removeListener(\"end\",u),r.removeListener(\"close\",u),e.removeListener(\"close\",u)}return r.on(\"error\",c),e.on(\"error\",c),r.on(\"end\",u),r.on(\"close\",u),e.on(\"close\",u),e.emit(\"pipe\",r),e}},{events:422,inherits:440,\"readable-stream/duplex.js\":507,\"readable-stream/passthrough.js\":516,\"readable-stream/readable.js\":517,\"readable-stream/transform.js\":518,\"readable-stream/writable.js\":519}],506:[function(e,t,r){\"use strict\";var n={}.toString;t.exports=Array.isArray||function(e){return\"[object Array]\"==n.call(e)}},{}],507:[function(e,t,r){\"use strict\";t.exports=e(\"./lib/_stream_duplex.js\")},{\"./lib/_stream_duplex.js\":508}],508:[function(e,t,r){\"use strict\";var n=e(\"process-nextick-args\"),i=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};t.exports=h;var s=Object.create(e(\"core-util-is\"));s.inherits=e(\"inherits\");var o=e(\"./_stream_readable\"),a=e(\"./_stream_writable\");s.inherits(h,o);for(var l=i(a.prototype),c=0;c<l.length;c++){var u=l[c];h.prototype[u]||(h.prototype[u]=a.prototype[u])}function h(e){if(!(this instanceof h))return new h(e);o.call(this,e),a.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once(\"end\",f)}function f(){this.allowHalfOpen||this._writableState.ended||n.nextTick(d,this)}function d(e){e.end()}Object.defineProperty(h.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(h.prototype,\"destroyed\",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}}),h.prototype._destroy=function(e,t){this.push(null),this.end(),n.nextTick(t,e)}},{\"./_stream_readable\":510,\"./_stream_writable\":512,\"core-util-is\":383,inherits:440,\"process-nextick-args\":466}],509:[function(e,t,r){\"use strict\";t.exports=s;var n=e(\"./_stream_transform\"),i=Object.create(e(\"core-util-is\"));function s(e){if(!(this instanceof s))return new s(e);n.call(this,e)}i.inherits=e(\"inherits\"),i.inherits(s,n),s.prototype._transform=function(e,t,r){r(null,e)}},{\"./_stream_transform\":511,\"core-util-is\":383,inherits:440}],510:[function(e,t,r){(function(r,n){(function(){\"use strict\";var i=e(\"process-nextick-args\");t.exports=v;var s,o=e(\"isarray\");v.ReadableState=y;e(\"events\").EventEmitter;var a=function(e,t){return e.listeners(t).length},l=e(\"./internal/streams/stream\"),c=e(\"safe-buffer\").Buffer,u=(void 0!==n?n:\"undefined\"!=typeof window?window:\"undefined\"!=typeof self?self:{}).Uint8Array||function(){};var h=Object.create(e(\"core-util-is\"));h.inherits=e(\"inherits\");var f=e(\"util\"),d=void 0;d=f&&f.debuglog?f.debuglog(\"stream\"):function(){};var p,m=e(\"./internal/streams/BufferList\"),b=e(\"./internal/streams/destroy\");h.inherits(v,l);var g=[\"error\",\"close\",\"destroy\",\"pause\",\"resume\"];function y(t,r){t=t||{};var n=r instanceof(s=s||e(\"./_stream_duplex\"));this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var i=t.highWaterMark,o=t.readableHighWaterMark,a=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(o||0===o)?o:a,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||\"utf8\",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(p||(p=e(\"string_decoder/\").StringDecoder),this.decoder=new p(t.encoding),this.encoding=t.encoding)}function v(t){if(s=s||e(\"./_stream_duplex\"),!(this instanceof v))return new v(t);this._readableState=new y(t,this),this.readable=!0,t&&(\"function\"==typeof t.read&&(this._read=t.read),\"function\"==typeof t.destroy&&(this._destroy=t.destroy)),l.call(this)}function w(e,t,r,n,i){var s,o=e._readableState;null===t?(o.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,k(e)}(e,o)):(i||(s=function(e,t){var r;n=t,c.isBuffer(n)||n instanceof u||\"string\"==typeof t||void 0===t||e.objectMode||(r=new TypeError(\"Invalid non-string/buffer chunk\"));var n;return r}(o,t)),s?e.emit(\"error\",s):o.objectMode||t&&t.length>0?(\"string\"==typeof t||o.objectMode||Object.getPrototypeOf(t)===c.prototype||(t=function(e){return c.from(e)}(t)),n?o.endEmitted?e.emit(\"error\",new Error(\"stream.unshift() after end event\")):_(e,o,t,!0):o.ended?e.emit(\"error\",new Error(\"stream.push() after EOF\")):(o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||0!==t.length?_(e,o,t,!1):M(e,o)):_(e,o,t,!1))):n||(o.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}(o)}function _(e,t,r,n){t.flowing&&0===t.length&&!t.sync?(e.emit(\"data\",r),e.read(0)):(t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&k(e)),M(e,t)}Object.defineProperty(v.prototype,\"destroyed\",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),v.prototype.destroy=b.destroy,v.prototype._undestroy=b.undestroy,v.prototype._destroy=function(e,t){this.push(null),t(e)},v.prototype.push=function(e,t){var r,n=this._readableState;return n.objectMode?r=!0:\"string\"==typeof e&&((t=t||n.defaultEncoding)!==n.encoding&&(e=c.from(e,t),t=\"\"),r=!0),w(this,e,t,!1,r)},v.prototype.unshift=function(e){return w(this,e,null,!0,!1)},v.prototype.isPaused=function(){return!1===this._readableState.flowing},v.prototype.setEncoding=function(t){return p||(p=e(\"string_decoder/\").StringDecoder),this._readableState.decoder=new p(t),this._readableState.encoding=t,this};function x(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function k(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(d(\"emitReadable\",t.flowing),t.emittedReadable=!0,t.sync?i.nextTick(S,e):S(e))}function S(e){d(\"emit readable\"),e.emit(\"readable\"),A(e)}function M(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(C,e,t))}function C(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(d(\"maybeReadMore read 0\"),e.read(0),r!==t.length);)r=t.length;t.readingMore=!1}function T(e){d(\"readable nexttick read 0\"),e.read(0)}function E(e,t){t.reading||(d(\"resume read 0\"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit(\"resume\"),A(e),t.flowing&&!t.reading&&e.read(0)}function A(e){var t=e._readableState;for(d(\"flow\",t.flowing);t.flowing&&null!==e.read(););}function R(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(\"\"):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;e<t.head.data.length?(n=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):n=e===t.head.data.length?t.shift():r?function(e,t){var r=t.head,n=1,i=r.data;e-=i.length;for(;r=r.next;){var s=r.data,o=e>s.length?s.length:e;if(o===s.length?i+=s:i+=s.slice(0,e),0===(e-=o)){o===s.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=s.slice(o));break}++n}return t.length-=n,i}(e,t):function(e,t){var r=c.allocUnsafe(e),n=t.head,i=1;n.data.copy(r),e-=n.data.length;for(;n=n.next;){var s=n.data,o=e>s.length?s.length:e;if(s.copy(r,r.length-e,0,o),0===(e-=o)){o===s.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=s.slice(o));break}++i}return t.length-=i,r}(e,t);return n}(e,t.buffer,t.decoder),r);var r}function O(e){var t=e._readableState;if(t.length>0)throw new Error('\"endReadable()\" called on non-empty stream');t.endEmitted||(t.ended=!0,i.nextTick(j,t,e))}function j(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit(\"end\"))}function I(e,t){for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}v.prototype.read=function(e){d(\"read\",e),e=parseInt(e,10);var t=this._readableState,r=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return d(\"read: emitReadable\",t.length,t.ended),0===t.length&&t.ended?O(this):k(this),null;if(0===(e=x(e,t))&&t.ended)return 0===t.length&&O(this),null;var n,i=t.needReadable;return d(\"need readable\",i),(0===t.length||t.length-e<t.highWaterMark)&&d(\"length less than watermark\",i=!0),t.ended||t.reading?d(\"reading or ended\",i=!1):i&&(d(\"do read\"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=x(r,t))),null===(n=e>0?R(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&O(this)),null!==n&&this.emit(\"data\",n),n},v.prototype._read=function(e){this.emit(\"error\",new Error(\"_read() is not implemented\"))},v.prototype.pipe=function(e,t){var n=this,s=this._readableState;switch(s.pipesCount){case 0:s.pipes=e;break;case 1:s.pipes=[s.pipes,e];break;default:s.pipes.push(e)}s.pipesCount+=1,d(\"pipe count=%d opts=%j\",s.pipesCount,t);var l=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?u:v;function c(t,r){d(\"onunpipe\"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,d(\"cleanup\"),e.removeListener(\"close\",g),e.removeListener(\"finish\",y),e.removeListener(\"drain\",h),e.removeListener(\"error\",b),e.removeListener(\"unpipe\",c),n.removeListener(\"end\",u),n.removeListener(\"end\",v),n.removeListener(\"data\",m),f=!0,!s.awaitDrain||e._writableState&&!e._writableState.needDrain||h())}function u(){d(\"onend\"),e.end()}s.endEmitted?i.nextTick(l):n.once(\"end\",l),e.on(\"unpipe\",c);var h=function(e){return function(){var t=e._readableState;d(\"pipeOnDrain\",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(e,\"data\")&&(t.flowing=!0,A(e))}}(n);e.on(\"drain\",h);var f=!1;var p=!1;function m(t){d(\"ondata\"),p=!1,!1!==e.write(t)||p||((1===s.pipesCount&&s.pipes===e||s.pipesCount>1&&-1!==I(s.pipes,e))&&!f&&(d(\"false write response, pause\",s.awaitDrain),s.awaitDrain++,p=!0),n.pause())}function b(t){d(\"onerror\",t),v(),e.removeListener(\"error\",b),0===a(e,\"error\")&&e.emit(\"error\",t)}function g(){e.removeListener(\"finish\",y),v()}function y(){d(\"onfinish\"),e.removeListener(\"close\",g),v()}function v(){d(\"unpipe\"),n.unpipe(e)}return n.on(\"data\",m),function(e,t,r){if(\"function\"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?o(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,\"error\",b),e.once(\"close\",g),e.once(\"finish\",y),e.emit(\"pipe\",n),s.flowing||(d(\"pipe resume\"),n.resume()),e},v.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit(\"unpipe\",this,r)),this;if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var s=0;s<i;s++)n[s].emit(\"unpipe\",this,{hasUnpiped:!1});return this}var o=I(t.pipes,e);return-1===o||(t.pipes.splice(o,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit(\"unpipe\",this,r)),this},v.prototype.on=function(e,t){var r=l.prototype.on.call(this,e,t);if(\"data\"===e)!1!==this._readableState.flowing&&this.resume();else if(\"readable\"===e){var n=this._readableState;n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.emittedReadable=!1,n.reading?n.length&&k(this):i.nextTick(T,this))}return r},v.prototype.addListener=v.prototype.on,v.prototype.resume=function(){var e=this._readableState;return e.flowing||(d(\"resume\"),e.flowing=!0,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,i.nextTick(E,e,t))}(this,e)),this},v.prototype.pause=function(){return d(\"call pause flowing=%j\",this._readableState.flowing),!1!==this._readableState.flowing&&(d(\"pause\"),this._readableState.flowing=!1,this.emit(\"pause\")),this},v.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on(\"end\",(function(){if(d(\"wrapped end\"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on(\"data\",(function(i){(d(\"wrapped data\"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i)||(r.objectMode||i&&i.length)&&(t.push(i)||(n=!0,e.pause()))})),e)void 0===this[i]&&\"function\"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var s=0;s<g.length;s++)e.on(g[s],this.emit.bind(this,g[s]));return this._read=function(t){d(\"wrapped _read\",t),n&&(n=!1,e.resume())},this},Object.defineProperty(v.prototype,\"readableHighWaterMark\",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),v._fromList=R}).call(this)}).call(this,e(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"./_stream_duplex\":508,\"./internal/streams/BufferList\":513,\"./internal/streams/destroy\":514,\"./internal/streams/stream\":515,_process:467,\"core-util-is\":383,events:422,inherits:440,isarray:506,\"process-nextick-args\":466,\"safe-buffer\":520,\"string_decoder/\":521,util:188}],511:[function(e,t,r){\"use strict\";t.exports=o;var n=e(\"./_stream_duplex\"),i=Object.create(e(\"core-util-is\"));function s(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(!n)return this.emit(\"error\",new Error(\"write callback called multiple times\"));r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function o(e){if(!(this instanceof o))return new o(e);n.call(this,e),this._transformState={afterTransform:s.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(\"function\"==typeof e.transform&&(this._transform=e.transform),\"function\"==typeof e.flush&&(this._flush=e.flush)),this.on(\"prefinish\",a)}function a(){var e=this;\"function\"==typeof this._flush?this._flush((function(t,r){l(e,t,r)})):l(this,null,null)}function l(e,t,r){if(t)return e.emit(\"error\",t);if(null!=r&&e.push(r),e._writableState.length)throw new Error(\"Calling transform done when ws.length != 0\");if(e._transformState.transforming)throw new Error(\"Calling transform done when still transforming\");return e.push(null)}i.inherits=e(\"inherits\"),i.inherits(o,n),o.prototype.push=function(e,t){return this._transformState.needTransform=!1,n.prototype.push.call(this,e,t)},o.prototype._transform=function(e,t,r){throw new Error(\"_transform() is not implemented\")},o.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},o.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},o.prototype._destroy=function(e,t){var r=this;n.prototype._destroy.call(this,e,(function(e){t(e),r.emit(\"close\")}))}},{\"./_stream_duplex\":508,\"core-util-is\":383,inherits:440}],512:[function(e,t,r){(function(r,n,i){(function(){\"use strict\";var s=e(\"process-nextick-args\");function o(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var i=n.callback;t.pendingcb--,i(r),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}t.exports=y;var a,l=!r.browser&&[\"v0.10\",\"v0.9.\"].indexOf(r.version.slice(0,5))>-1?i:s.nextTick;y.WritableState=g;var c=Object.create(e(\"core-util-is\"));c.inherits=e(\"inherits\");var u={deprecate:e(\"util-deprecate\")},h=e(\"./internal/streams/stream\"),f=e(\"safe-buffer\").Buffer,d=(void 0!==n?n:\"undefined\"!=typeof window?window:\"undefined\"!=typeof self?self:{}).Uint8Array||function(){};var p,m=e(\"./internal/streams/destroy\");function b(){}function g(t,r){a=a||e(\"./_stream_duplex\"),t=t||{};var n=r instanceof a;this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var i=t.highWaterMark,c=t.writableHighWaterMark,u=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(c||0===c)?c:u,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var h=!1===t.decodeStrings;this.decodeStrings=!h,this.defaultEncoding=t.defaultEncoding||\"utf8\",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,i=r.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,i){--t.pendingcb,r?(s.nextTick(i,n),s.nextTick(S,e,t),e._writableState.errorEmitted=!0,e.emit(\"error\",n)):(i(n),e._writableState.errorEmitted=!0,e.emit(\"error\",n),S(e,t))}(e,r,n,t,i);else{var o=x(r);o||r.corked||r.bufferProcessing||!r.bufferedRequest||_(e,r),n?l(w,e,r,o,i):w(e,r,o,i)}}(r,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function y(t){if(a=a||e(\"./_stream_duplex\"),!(p.call(y,this)||this instanceof a))return new y(t);this._writableState=new g(t,this),this.writable=!0,t&&(\"function\"==typeof t.write&&(this._write=t.write),\"function\"==typeof t.writev&&(this._writev=t.writev),\"function\"==typeof t.destroy&&(this._destroy=t.destroy),\"function\"==typeof t.final&&(this._final=t.final)),h.call(this)}function v(e,t,r,n,i,s,o){t.writelen=n,t.writecb=o,t.writing=!0,t.sync=!0,r?e._writev(i,t.onwrite):e._write(i,s,t.onwrite),t.sync=!1}function w(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit(\"drain\"))}(e,t),t.pendingcb--,n(),S(e,t)}function _(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var n=t.bufferedRequestCount,i=new Array(n),s=t.corkedRequestsFree;s.entry=r;for(var a=0,l=!0;r;)i[a]=r,r.isBuf||(l=!1),r=r.next,a+=1;i.allBuffers=l,v(e,t,!0,t.length,i,\"\",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new o(t),t.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,u=r.encoding,h=r.callback;if(v(e,t,!1,t.objectMode?1:c.length,c,u,h),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function x(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function k(e,t){e._final((function(r){t.pendingcb--,r&&e.emit(\"error\",r),t.prefinished=!0,e.emit(\"prefinish\"),S(e,t)}))}function S(e,t){var r=x(t);return r&&(!function(e,t){t.prefinished||t.finalCalled||(\"function\"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,s.nextTick(k,e,t)):(t.prefinished=!0,e.emit(\"prefinish\")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit(\"finish\"))),r}c.inherits(y,h),g.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(g.prototype,\"buffer\",{get:u.deprecate((function(){return this.getBuffer()}),\"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\",\"DEP0003\")})}catch(e){}}(),\"function\"==typeof Symbol&&Symbol.hasInstance&&\"function\"==typeof Function.prototype[Symbol.hasInstance]?(p=Function.prototype[Symbol.hasInstance],Object.defineProperty(y,Symbol.hasInstance,{value:function(e){return!!p.call(this,e)||this===y&&(e&&e._writableState instanceof g)}})):p=function(e){return e instanceof this},y.prototype.pipe=function(){this.emit(\"error\",new Error(\"Cannot pipe, not readable\"))},y.prototype.write=function(e,t,r){var n,i=this._writableState,o=!1,a=!i.objectMode&&(n=e,f.isBuffer(n)||n instanceof d);return a&&!f.isBuffer(e)&&(e=function(e){return f.from(e)}(e)),\"function\"==typeof t&&(r=t,t=null),a?t=\"buffer\":t||(t=i.defaultEncoding),\"function\"!=typeof r&&(r=b),i.ended?function(e,t){var r=new Error(\"write after end\");e.emit(\"error\",r),s.nextTick(t,r)}(this,r):(a||function(e,t,r,n){var i=!0,o=!1;return null===r?o=new TypeError(\"May not write null values to stream\"):\"string\"==typeof r||void 0===r||t.objectMode||(o=new TypeError(\"Invalid non-string/buffer chunk\")),o&&(e.emit(\"error\",o),s.nextTick(n,o),i=!1),i}(this,i,e,r))&&(i.pendingcb++,o=function(e,t,r,n,i,s){if(!r){var o=function(e,t,r){e.objectMode||!1===e.decodeStrings||\"string\"!=typeof t||(t=f.from(t,r));return t}(t,n,i);n!==o&&(r=!0,i=\"buffer\",n=o)}var a=t.objectMode?1:n.length;t.length+=a;var l=t.length<t.highWaterMark;l||(t.needDrain=!0);if(t.writing||t.corked){var c=t.lastBufferedRequest;t.lastBufferedRequest={chunk:n,encoding:i,isBuf:r,callback:s,next:null},c?c.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else v(e,t,!1,a,n,i,s);return l}(this,i,a,e,t,r)),o},y.prototype.cork=function(){this._writableState.corked++},y.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.bufferProcessing||!e.bufferedRequest||_(this,e))},y.prototype.setDefaultEncoding=function(e){if(\"string\"==typeof e&&(e=e.toLowerCase()),!([\"hex\",\"utf8\",\"utf-8\",\"ascii\",\"binary\",\"base64\",\"ucs2\",\"ucs-2\",\"utf16le\",\"utf-16le\",\"raw\"].indexOf((e+\"\").toLowerCase())>-1))throw new TypeError(\"Unknown encoding: \"+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(y.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),y.prototype._write=function(e,t,r){r(new Error(\"_write() is not implemented\"))},y.prototype._writev=null,y.prototype.end=function(e,t,r){var n=this._writableState;\"function\"==typeof e?(r=e,e=null,t=null):\"function\"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||function(e,t,r){t.ending=!0,S(e,t),r&&(t.finished?s.nextTick(r):e.once(\"finish\",r));t.ended=!0,e.writable=!1}(this,n,r)},Object.defineProperty(y.prototype,\"destroyed\",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),y.prototype.destroy=m.destroy,y.prototype._undestroy=m.undestroy,y.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this)}).call(this,e(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},e(\"timers\").setImmediate)},{\"./_stream_duplex\":508,\"./internal/streams/destroy\":514,\"./internal/streams/stream\":515,_process:467,\"core-util-is\":383,inherits:440,\"process-nextick-args\":466,\"safe-buffer\":520,timers:523,\"util-deprecate\":524}],513:[function(e,t,r){\"use strict\";var n=e(\"safe-buffer\").Buffer,i=e(\"util\");t.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return\"\";for(var t=this.head,r=\"\"+t.data;t=t.next;)r+=e+t.data;return r},e.prototype.concat=function(e){if(0===this.length)return n.alloc(0);for(var t,r,i,s=n.allocUnsafe(e>>>0),o=this.head,a=0;o;)t=o.data,r=s,i=a,t.copy(r,i),a+=o.data.length,o=o.next;return s},e}(),i&&i.inspect&&i.inspect.custom&&(t.exports.prototype[i.inspect.custom]=function(){var e=i.inspect({length:this.length});return this.constructor.name+\" \"+e})},{\"safe-buffer\":520,util:188}],514:[function(e,t,r){\"use strict\";var n=e(\"process-nextick-args\");function i(e,t){e.emit(\"error\",t)}t.exports={destroy:function(e,t){var r=this,s=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return s||o?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,n.nextTick(i,this,e)):n.nextTick(i,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?r._writableState?r._writableState.errorEmitted||(r._writableState.errorEmitted=!0,n.nextTick(i,r,e)):n.nextTick(i,r,e):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},{\"process-nextick-args\":466}],515:[function(e,t,r){arguments[4][490][0].apply(r,arguments)},{dup:490,events:422}],516:[function(e,t,r){\"use strict\";t.exports=e(\"./readable\").PassThrough},{\"./readable\":517}],517:[function(e,t,r){\"use strict\";(r=t.exports=e(\"./lib/_stream_readable.js\")).Stream=r,r.Readable=r,r.Writable=e(\"./lib/_stream_writable.js\"),r.Duplex=e(\"./lib/_stream_duplex.js\"),r.Transform=e(\"./lib/_stream_transform.js\"),r.PassThrough=e(\"./lib/_stream_passthrough.js\")},{\"./lib/_stream_duplex.js\":508,\"./lib/_stream_passthrough.js\":509,\"./lib/_stream_readable.js\":510,\"./lib/_stream_transform.js\":511,\"./lib/_stream_writable.js\":512}],518:[function(e,t,r){\"use strict\";t.exports=e(\"./readable\").Transform},{\"./readable\":517}],519:[function(e,t,r){\"use strict\";t.exports=e(\"./lib/_stream_writable.js\")},{\"./lib/_stream_writable.js\":512}],520:[function(e,t,r){arguments[4][217][0].apply(r,arguments)},{buffer:220,dup:217}],521:[function(e,t,r){arguments[4][218][0].apply(r,arguments)},{dup:218,\"safe-buffer\":520}],522:[function(e,t,r){arguments[4][218][0].apply(r,arguments)},{dup:218,\"safe-buffer\":494}],523:[function(e,t,r){(function(t,n){(function(){\"use strict\";var i=e(\"process/browser.js\").nextTick,s=Function.prototype.apply,o=Array.prototype.slice,a={},l=0;function c(e,t){this._id=e,this._clearFn=t}r.setTimeout=function(){return new c(s.call(setTimeout,window,arguments),clearTimeout)},r.setInterval=function(){return new c(s.call(setInterval,window,arguments),clearInterval)},r.clearTimeout=r.clearInterval=function(e){e.close()},c.prototype.unref=c.prototype.ref=function(){},c.prototype.close=function(){this._clearFn.call(window,this._id)},r.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},r.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},r._unrefActive=r.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},r.setImmediate=\"function\"==typeof t?t:function(e){var t=l++,n=!(arguments.length<2)&&o.call(arguments,1);return a[t]=!0,i((function(){a[t]&&(n?e.apply(null,n):e.call(null),r.clearImmediate(t))})),t},r.clearImmediate=\"function\"==typeof n?n:function(e){delete a[e]}}).call(this)}).call(this,e(\"timers\").setImmediate,e(\"timers\").clearImmediate)},{\"process/browser.js\":467,timers:523}],524:[function(e,t,r){(function(e){(function(){\"use strict\";function r(t){try{if(!e.localStorage)return!1}catch(e){return!1}var r=e.localStorage[t];return null!=r&&\"true\"===String(r).toLowerCase()}t.exports=function(e,t){if(r(\"noDeprecation\"))return e;var n=!1;return function(){if(!n){if(r(\"throwDeprecation\"))throw new Error(t);r(\"traceDeprecation\")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}}}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],525:[function(e,t,r){\"use strict\";\"function\"==typeof Object.create?t.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},{}],526:[function(e,t,r){\"use strict\";t.exports=function(e){return e&&\"object\"==typeof e&&\"function\"==typeof e.copy&&\"function\"==typeof e.fill&&\"function\"==typeof e.readUInt8}},{}],527:[function(e,t,r){(function(t,n){(function(){\"use strict\";var i=/%[sdj%]/g;r.format=function(e){if(!g(e)){for(var t=[],r=0;r<arguments.length;r++)t.push(a(arguments[r]));return t.join(\" \")}r=1;for(var n=arguments,s=n.length,o=String(e).replace(i,(function(e){if(\"%%\"===e)return\"%\";if(r>=s)return e;switch(e){case\"%s\":return String(n[r++]);case\"%d\":return Number(n[r++]);case\"%j\":try{return JSON.stringify(n[r++])}catch(e){return\"[Circular]\"}default:return e}})),l=n[r];r<s;l=n[++r])m(l)||!w(l)?o+=\" \"+l:o+=\" \"+a(l);return o},r.deprecate=function(e,i){if(y(n.process))return function(){return r.deprecate(e,i).apply(this,arguments)};if(!0===t.noDeprecation)return e;var s=!1;return function(){if(!s){if(t.throwDeprecation)throw new Error(i);t.traceDeprecation?console.trace(i):console.error(i),s=!0}return e.apply(this,arguments)}};var s,o={};function a(e,t){var n={seen:[],stylize:c};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),p(t)?n.showHidden=t:t&&r._extend(n,t),y(n.showHidden)&&(n.showHidden=!1),y(n.depth)&&(n.depth=2),y(n.colors)&&(n.colors=!1),y(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=l),u(n,e,n.depth)}function l(e,t){var r=a.styles[t];return r?\"\\x1b[\"+a.colors[r][0]+\"m\"+e+\"\\x1b[\"+a.colors[r][1]+\"m\":e}function c(e,t){return e}function u(e,t,n){if(e.customInspect&&t&&k(t.inspect)&&t.inspect!==r.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(n,e);return g(i)||(i=u(e,i,n)),i}var s=function(e,t){if(y(t))return e.stylize(\"undefined\",\"undefined\");if(g(t)){var r=\"'\"+JSON.stringify(t).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return e.stylize(r,\"string\")}if(b(t))return e.stylize(\"\"+t,\"number\");if(p(t))return e.stylize(\"\"+t,\"boolean\");if(m(t))return e.stylize(\"null\",\"null\")}(e,t);if(s)return s;var o=Object.keys(t),a=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),x(t)&&(o.indexOf(\"message\")>=0||o.indexOf(\"description\")>=0))return h(t);if(0===o.length){if(k(t)){var l=t.name?\": \"+t.name:\"\";return e.stylize(\"[Function\"+l+\"]\",\"special\")}if(v(t))return e.stylize(RegExp.prototype.toString.call(t),\"regexp\");if(_(t))return e.stylize(Date.prototype.toString.call(t),\"date\");if(x(t))return h(t)}var c,w=\"\",S=!1,M=[\"{\",\"}\"];(d(t)&&(S=!0,M=[\"[\",\"]\"]),k(t))&&(w=\" [Function\"+(t.name?\": \"+t.name:\"\")+\"]\");return v(t)&&(w=\" \"+RegExp.prototype.toString.call(t)),_(t)&&(w=\" \"+Date.prototype.toUTCString.call(t)),x(t)&&(w=\" \"+h(t)),0!==o.length||S&&0!=t.length?n<0?v(t)?e.stylize(RegExp.prototype.toString.call(t),\"regexp\"):e.stylize(\"[Object]\",\"special\"):(e.seen.push(t),c=S?function(e,t,r,n,i){for(var s=[],o=0,a=t.length;o<a;++o)E(t,String(o))?s.push(f(e,t,r,n,String(o),!0)):s.push(\"\");return i.forEach((function(i){i.match(/^\\d+$/)||s.push(f(e,t,r,n,i,!0))})),s}(e,t,n,a,o):o.map((function(r){return f(e,t,n,a,r,S)})),e.seen.pop(),function(e,t,r){if(e.reduce((function(e,t){return t.indexOf(\"\\n\")>=0&&0,e+t.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1}),0)>60)return r[0]+(\"\"===t?\"\":t+\"\\n \")+\" \"+e.join(\",\\n  \")+\" \"+r[1];return r[0]+t+\" \"+e.join(\", \")+\" \"+r[1]}(c,w,M)):M[0]+w+M[1]}function h(e){return\"[\"+Error.prototype.toString.call(e)+\"]\"}function f(e,t,r,n,i,s){var o,a,l;if((l=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?a=l.set?e.stylize(\"[Getter/Setter]\",\"special\"):e.stylize(\"[Getter]\",\"special\"):l.set&&(a=e.stylize(\"[Setter]\",\"special\")),E(n,i)||(o=\"[\"+i+\"]\"),a||(e.seen.indexOf(l.value)<0?(a=m(r)?u(e,l.value,null):u(e,l.value,r-1)).indexOf(\"\\n\")>-1&&(a=s?a.split(\"\\n\").map((function(e){return\"  \"+e})).join(\"\\n\").substr(2):\"\\n\"+a.split(\"\\n\").map((function(e){return\"   \"+e})).join(\"\\n\")):a=e.stylize(\"[Circular]\",\"special\")),y(o)){if(s&&i.match(/^\\d+$/))return a;(o=JSON.stringify(\"\"+i)).match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,\"name\")):(o=o.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),o=e.stylize(o,\"string\"))}return o+\": \"+a}function d(e){return Array.isArray(e)}function p(e){return\"boolean\"==typeof e}function m(e){return null===e}function b(e){return\"number\"==typeof e}function g(e){return\"string\"==typeof e}function y(e){return void 0===e}function v(e){return w(e)&&\"[object RegExp]\"===S(e)}function w(e){return\"object\"==typeof e&&null!==e}function _(e){return w(e)&&\"[object Date]\"===S(e)}function x(e){return w(e)&&(\"[object Error]\"===S(e)||e instanceof Error)}function k(e){return\"function\"==typeof e}function S(e){return Object.prototype.toString.call(e)}function M(e){return e<10?\"0\"+e.toString(10):e.toString(10)}r.debuglog=function(e){if(y(s)&&(s=t.env.NODE_DEBUG||\"\"),e=e.toUpperCase(),!o[e])if(new RegExp(\"\\\\b\"+e+\"\\\\b\",\"i\").test(s)){var n=t.pid;o[e]=function(){var t=r.format.apply(r,arguments);console.error(\"%s %d: %s\",e,n,t)}}else o[e]=function(){};return o[e]},r.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:\"cyan\",number:\"yellow\",boolean:\"yellow\",undefined:\"grey\",null:\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"},r.isArray=d,r.isBoolean=p,r.isNull=m,r.isNullOrUndefined=function(e){return null==e},r.isNumber=b,r.isString=g,r.isSymbol=function(e){return\"symbol\"==typeof e},r.isUndefined=y,r.isRegExp=v,r.isObject=w,r.isDate=_,r.isError=x,r.isFunction=k,r.isPrimitive=function(e){return null===e||\"boolean\"==typeof e||\"number\"==typeof e||\"string\"==typeof e||\"symbol\"==typeof e||void 0===e},r.isBuffer=e(\"./support/isBuffer\");var C=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function T(){var e=new Date,t=[M(e.getHours()),M(e.getMinutes()),M(e.getSeconds())].join(\":\");return[e.getDate(),C[e.getMonth()],t].join(\" \")}function E(e,t){return Object.prototype.hasOwnProperty.call(e,t)}r.log=function(){console.log(\"%s - %s\",T(),r.format.apply(r,arguments))},r.inherits=e(\"inherits\"),r._extend=function(e,t){if(!t||!w(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}}).call(this)}).call(this,e(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"./support/isBuffer\":526,_process:467,inherits:525}],528:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),Object.defineProperty(r,\"v1\",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(r,\"v3\",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(r,\"v4\",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(r,\"v5\",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(r,\"NIL\",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(r,\"version\",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(r,\"validate\",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(r,\"stringify\",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(r,\"parse\",{enumerable:!0,get:function(){return h.default}});var n=f(e(\"./v1.js\")),i=f(e(\"./v3.js\")),s=f(e(\"./v4.js\")),o=f(e(\"./v5.js\")),a=f(e(\"./nil.js\")),l=f(e(\"./version.js\")),c=f(e(\"./validate.js\")),u=f(e(\"./stringify.js\")),h=f(e(\"./parse.js\"));function f(e){return e&&e.__esModule?e:{default:e}}},{\"./nil.js\":530,\"./parse.js\":531,\"./stringify.js\":535,\"./v1.js\":536,\"./v3.js\":537,\"./v4.js\":539,\"./v5.js\":540,\"./validate.js\":541,\"./version.js\":542}],529:[function(e,t,r){\"use strict\";function n(e){return 14+(e+64>>>9<<4)+1}function i(e,t){const r=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(r>>16)<<16|65535&r}function s(e,t,r,n,s,o){return i((a=i(i(t,e),i(n,o)))<<(l=s)|a>>>32-l,r);var a,l}function o(e,t,r,n,i,o,a){return s(t&r|~t&n,e,t,i,o,a)}function a(e,t,r,n,i,o,a){return s(t&n|r&~n,e,t,i,o,a)}function l(e,t,r,n,i,o,a){return s(t^r^n,e,t,i,o,a)}function c(e,t,r,n,i,o,a){return s(r^(t|~n),e,t,i,o,a)}Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var u=function(e){if(\"string\"==typeof e){const t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(let r=0;r<t.length;++r)e[r]=t.charCodeAt(r)}return function(e){const t=[],r=32*e.length;for(let n=0;n<r;n+=8){const r=e[n>>5]>>>n%32&255,i=parseInt(\"0123456789abcdef\".charAt(r>>>4&15)+\"0123456789abcdef\".charAt(15&r),16);t.push(i)}return t}(function(e,t){e[t>>5]|=128<<t%32,e[n(t)-1]=t;let r=1732584193,s=-271733879,u=-1732584194,h=271733878;for(let t=0;t<e.length;t+=16){const n=r,f=s,d=u,p=h;r=o(r,s,u,h,e[t],7,-680876936),h=o(h,r,s,u,e[t+1],12,-389564586),u=o(u,h,r,s,e[t+2],17,606105819),s=o(s,u,h,r,e[t+3],22,-1044525330),r=o(r,s,u,h,e[t+4],7,-176418897),h=o(h,r,s,u,e[t+5],12,1200080426),u=o(u,h,r,s,e[t+6],17,-1473231341),s=o(s,u,h,r,e[t+7],22,-45705983),r=o(r,s,u,h,e[t+8],7,1770035416),h=o(h,r,s,u,e[t+9],12,-1958414417),u=o(u,h,r,s,e[t+10],17,-42063),s=o(s,u,h,r,e[t+11],22,-1990404162),r=o(r,s,u,h,e[t+12],7,1804603682),h=o(h,r,s,u,e[t+13],12,-40341101),u=o(u,h,r,s,e[t+14],17,-1502002290),s=o(s,u,h,r,e[t+15],22,1236535329),r=a(r,s,u,h,e[t+1],5,-165796510),h=a(h,r,s,u,e[t+6],9,-1069501632),u=a(u,h,r,s,e[t+11],14,643717713),s=a(s,u,h,r,e[t],20,-373897302),r=a(r,s,u,h,e[t+5],5,-701558691),h=a(h,r,s,u,e[t+10],9,38016083),u=a(u,h,r,s,e[t+15],14,-660478335),s=a(s,u,h,r,e[t+4],20,-405537848),r=a(r,s,u,h,e[t+9],5,568446438),h=a(h,r,s,u,e[t+14],9,-1019803690),u=a(u,h,r,s,e[t+3],14,-187363961),s=a(s,u,h,r,e[t+8],20,1163531501),r=a(r,s,u,h,e[t+13],5,-1444681467),h=a(h,r,s,u,e[t+2],9,-51403784),u=a(u,h,r,s,e[t+7],14,1735328473),s=a(s,u,h,r,e[t+12],20,-1926607734),r=l(r,s,u,h,e[t+5],4,-378558),h=l(h,r,s,u,e[t+8],11,-2022574463),u=l(u,h,r,s,e[t+11],16,1839030562),s=l(s,u,h,r,e[t+14],23,-35309556),r=l(r,s,u,h,e[t+1],4,-1530992060),h=l(h,r,s,u,e[t+4],11,1272893353),u=l(u,h,r,s,e[t+7],16,-155497632),s=l(s,u,h,r,e[t+10],23,-1094730640),r=l(r,s,u,h,e[t+13],4,681279174),h=l(h,r,s,u,e[t],11,-358537222),u=l(u,h,r,s,e[t+3],16,-722521979),s=l(s,u,h,r,e[t+6],23,76029189),r=l(r,s,u,h,e[t+9],4,-640364487),h=l(h,r,s,u,e[t+12],11,-421815835),u=l(u,h,r,s,e[t+15],16,530742520),s=l(s,u,h,r,e[t+2],23,-995338651),r=c(r,s,u,h,e[t],6,-198630844),h=c(h,r,s,u,e[t+7],10,1126891415),u=c(u,h,r,s,e[t+14],15,-1416354905),s=c(s,u,h,r,e[t+5],21,-57434055),r=c(r,s,u,h,e[t+12],6,1700485571),h=c(h,r,s,u,e[t+3],10,-1894986606),u=c(u,h,r,s,e[t+10],15,-1051523),s=c(s,u,h,r,e[t+1],21,-2054922799),r=c(r,s,u,h,e[t+8],6,1873313359),h=c(h,r,s,u,e[t+15],10,-30611744),u=c(u,h,r,s,e[t+6],15,-1560198380),s=c(s,u,h,r,e[t+13],21,1309151649),r=c(r,s,u,h,e[t+4],6,-145523070),h=c(h,r,s,u,e[t+11],10,-1120210379),u=c(u,h,r,s,e[t+2],15,718787259),s=c(s,u,h,r,e[t+9],21,-343485551),r=i(r,n),s=i(s,f),u=i(u,d),h=i(h,p)}return[r,s,u,h]}(function(e){if(0===e.length)return[];const t=8*e.length,r=new Uint32Array(n(t));for(let n=0;n<t;n+=8)r[n>>5]|=(255&e[n/8])<<n%32;return r}(e),8*e.length))};r.default=u},{}],530:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;r.default=\"00000000-0000-0000-0000-000000000000\"},{}],531:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n,i=(n=e(\"./validate.js\"))&&n.__esModule?n:{default:n};var s=function(e){if(!(0,i.default)(e))throw TypeError(\"Invalid UUID\");let t;const r=new Uint8Array(16);return r[0]=(t=parseInt(e.slice(0,8),16))>>>24,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=255&t,r[4]=(t=parseInt(e.slice(9,13),16))>>>8,r[5]=255&t,r[6]=(t=parseInt(e.slice(14,18),16))>>>8,r[7]=255&t,r[8]=(t=parseInt(e.slice(19,23),16))>>>8,r[9]=255&t,r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,r[11]=t/4294967296&255,r[12]=t>>>24&255,r[13]=t>>>16&255,r[14]=t>>>8&255,r[15]=255&t,r};r.default=s},{\"./validate.js\":541}],532:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;r.default=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i},{}],533:[function(e,t,r){\"use strict\";let n;Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=function(){if(!n&&(n=\"undefined\"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||\"undefined\"!=typeof msCrypto&&\"function\"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),!n))throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");return n(i)};const i=new Uint8Array(16)},{}],534:[function(e,t,r){\"use strict\";function n(e,t,r,n){switch(e){case 0:return t&r^~t&n;case 1:return t^r^n;case 2:return t&r^t&n^r&n;case 3:return t^r^n}}function i(e,t){return e<<t|e>>>32-t}Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var s=function(e){const t=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if(\"string\"==typeof e){const t=unescape(encodeURIComponent(e));e=[];for(let r=0;r<t.length;++r)e.push(t.charCodeAt(r))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);const s=e.length/4+2,o=Math.ceil(s/16),a=new Array(o);for(let t=0;t<o;++t){const r=new Uint32Array(16);for(let n=0;n<16;++n)r[n]=e[64*t+4*n]<<24|e[64*t+4*n+1]<<16|e[64*t+4*n+2]<<8|e[64*t+4*n+3];a[t]=r}a[o-1][14]=8*(e.length-1)/Math.pow(2,32),a[o-1][14]=Math.floor(a[o-1][14]),a[o-1][15]=8*(e.length-1)&4294967295;for(let e=0;e<o;++e){const s=new Uint32Array(80);for(let t=0;t<16;++t)s[t]=a[e][t];for(let e=16;e<80;++e)s[e]=i(s[e-3]^s[e-8]^s[e-14]^s[e-16],1);let o=r[0],l=r[1],c=r[2],u=r[3],h=r[4];for(let e=0;e<80;++e){const r=Math.floor(e/20),a=i(o,5)+n(r,l,c,u)+h+t[r]+s[e]>>>0;h=u,u=c,c=i(l,30)>>>0,l=o,o=a}r[0]=r[0]+o>>>0,r[1]=r[1]+l>>>0,r[2]=r[2]+c>>>0,r[3]=r[3]+u>>>0,r[4]=r[4]+h>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,255&r[0],r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,255&r[1],r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,255&r[2],r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,255&r[3],r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,255&r[4]]};r.default=s},{}],535:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n,i=(n=e(\"./validate.js\"))&&n.__esModule?n:{default:n};const s=[];for(let e=0;e<256;++e)s.push((e+256).toString(16).substr(1));var o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const r=(s[e[t+0]]+s[e[t+1]]+s[e[t+2]]+s[e[t+3]]+\"-\"+s[e[t+4]]+s[e[t+5]]+\"-\"+s[e[t+6]]+s[e[t+7]]+\"-\"+s[e[t+8]]+s[e[t+9]]+\"-\"+s[e[t+10]]+s[e[t+11]]+s[e[t+12]]+s[e[t+13]]+s[e[t+14]]+s[e[t+15]]).toLowerCase();if(!(0,i.default)(r))throw TypeError(\"Stringified UUID is invalid\");return r};r.default=o},{\"./validate.js\":541}],536:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n=s(e(\"./rng.js\")),i=s(e(\"./stringify.js\"));function s(e){return e&&e.__esModule?e:{default:e}}let o,a,l=0,c=0;var u=function(e,t,r){let s=t&&r||0;const u=t||new Array(16);let h=(e=e||{}).node||o,f=void 0!==e.clockseq?e.clockseq:a;if(null==h||null==f){const t=e.random||(e.rng||n.default)();null==h&&(h=o=[1|t[0],t[1],t[2],t[3],t[4],t[5]]),null==f&&(f=a=16383&(t[6]<<8|t[7]))}let d=void 0!==e.msecs?e.msecs:Date.now(),p=void 0!==e.nsecs?e.nsecs:c+1;const m=d-l+(p-c)/1e4;if(m<0&&void 0===e.clockseq&&(f=f+1&16383),(m<0||d>l)&&void 0===e.nsecs&&(p=0),p>=1e4)throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");l=d,c=p,a=f,d+=122192928e5;const b=(1e4*(268435455&d)+p)%4294967296;u[s++]=b>>>24&255,u[s++]=b>>>16&255,u[s++]=b>>>8&255,u[s++]=255&b;const g=d/4294967296*1e4&268435455;u[s++]=g>>>8&255,u[s++]=255&g,u[s++]=g>>>24&15|16,u[s++]=g>>>16&255,u[s++]=f>>>8|128,u[s++]=255&f;for(let e=0;e<6;++e)u[s+e]=h[e];return t||(0,i.default)(u)};r.default=u},{\"./rng.js\":533,\"./stringify.js\":535}],537:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n=s(e(\"./v35.js\")),i=s(e(\"./md5.js\"));function s(e){return e&&e.__esModule?e:{default:e}}var o=(0,n.default)(\"v3\",48,i.default);r.default=o},{\"./md5.js\":529,\"./v35.js\":538}],538:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=function(e,t,r){function s(e,s,o,a){if(\"string\"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));const t=[];for(let r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t}(e)),\"string\"==typeof s&&(s=(0,i.default)(s)),16!==s.length)throw TypeError(\"Namespace must be array-like (16 iterable integer values, 0-255)\");let l=new Uint8Array(16+e.length);if(l.set(s),l.set(e,s.length),l=r(l),l[6]=15&l[6]|t,l[8]=63&l[8]|128,o){a=a||0;for(let e=0;e<16;++e)o[a+e]=l[e];return o}return(0,n.default)(l)}try{s.name=e}catch(e){}return s.DNS=o,s.URL=a,s},r.URL=r.DNS=void 0;var n=s(e(\"./stringify.js\")),i=s(e(\"./parse.js\"));function s(e){return e&&e.__esModule?e:{default:e}}const o=\"6ba7b810-9dad-11d1-80b4-00c04fd430c8\";r.DNS=o;const a=\"6ba7b811-9dad-11d1-80b4-00c04fd430c8\";r.URL=a},{\"./parse.js\":531,\"./stringify.js\":535}],539:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n=s(e(\"./rng.js\")),i=s(e(\"./stringify.js\"));function s(e){return e&&e.__esModule?e:{default:e}}var o=function(e,t,r){const s=(e=e||{}).random||(e.rng||n.default)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t){r=r||0;for(let e=0;e<16;++e)t[r+e]=s[e];return t}return(0,i.default)(s)};r.default=o},{\"./rng.js\":533,\"./stringify.js\":535}],540:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n=s(e(\"./v35.js\")),i=s(e(\"./sha1.js\"));function s(e){return e&&e.__esModule?e:{default:e}}var o=(0,n.default)(\"v5\",80,i.default);r.default=o},{\"./sha1.js\":534,\"./v35.js\":538}],541:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n,i=(n=e(\"./regex.js\"))&&n.__esModule?n:{default:n};var s=function(e){return\"string\"==typeof e&&i.default.test(e)};r.default=s},{\"./regex.js\":532}],542:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=void 0;var n,i=(n=e(\"./validate.js\"))&&n.__esModule?n:{default:n};var s=function(e){if(!(0,i.default)(e))throw TypeError(\"Invalid UUID\");return parseInt(e.substr(14,1),16)};r.default=s},{\"./validate.js\":541}],543:[function(e,t,r){\"use strict\";\n/**\n * Character classes and associated utilities for the 5th edition of XML 1.0.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */Object.defineProperty(r,\"__esModule\",{value:!0}),r.CHAR=\"\\t\\n\\r -\\ud7ff\\ue000-\\ufffd\\ud800\\udc00-\\udbff\\udfff\",r.S=\" \\t\\r\\n\",r.NAME_START_CHAR=\":A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd\\ud800\\udc00-\\udb7f\\udfff\",r.NAME_CHAR=\"-\"+r.NAME_START_CHAR+\".0-9\\xb7\\u0300-\\u036f\\u203f-\\u2040\",r.CHAR_RE=new RegExp(\"^[\"+r.CHAR+\"]$\",\"u\"),r.S_RE=new RegExp(\"^[\"+r.S+\"]+$\",\"u\"),r.NAME_START_CHAR_RE=new RegExp(\"^[\"+r.NAME_START_CHAR+\"]$\",\"u\"),r.NAME_CHAR_RE=new RegExp(\"^[\"+r.NAME_CHAR+\"]$\",\"u\"),r.NAME_RE=new RegExp(\"^[\"+r.NAME_START_CHAR+\"][\"+r.NAME_CHAR+\"]*$\",\"u\"),r.NMTOKEN_RE=new RegExp(\"^[\"+r.NAME_CHAR+\"]+$\",\"u\");function n(e){return e>=65&&e<=90||e>=97&&e<=122||58===e||95===e||8204===e||8205===e||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}r.S_LIST=[32,10,13,9],r.isChar=function(e){return e>=32&&e<=55295||10===e||13===e||9===e||e>=57344&&e<=65533||e>=65536&&e<=1114111},r.isS=function(e){return 32===e||10===e||13===e||9===e},r.isNameStartChar=n,r.isNameChar=function(e){return n(e)||e>=48&&e<=57||45===e||46===e||183===e||e>=768&&e<=879||e>=8255&&e<=8256}},{}],544:[function(e,t,r){\"use strict\";\n/**\n * Character classes and associated utilities for the 2nd edition of XML 1.1.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */Object.defineProperty(r,\"__esModule\",{value:!0}),r.CHAR=\"\\x01-\\ud7ff\\ue000-\\ufffd\\ud800\\udc00-\\udbff\\udfff\",r.RESTRICTED_CHAR=\"\\x01-\\b\\v\\f\\x0e-\\x1f\\x7f-\\x84\\x86-\\x9f\",r.S=\" \\t\\r\\n\",r.NAME_START_CHAR=\":A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd\\ud800\\udc00-\\udb7f\\udfff\",r.NAME_CHAR=\"-\"+r.NAME_START_CHAR+\".0-9\\xb7\\u0300-\\u036f\\u203f-\\u2040\",r.CHAR_RE=new RegExp(\"^[\"+r.CHAR+\"]$\",\"u\"),r.RESTRICTED_CHAR_RE=new RegExp(\"^[\"+r.RESTRICTED_CHAR+\"]$\",\"u\"),r.S_RE=new RegExp(\"^[\"+r.S+\"]+$\",\"u\"),r.NAME_START_CHAR_RE=new RegExp(\"^[\"+r.NAME_START_CHAR+\"]$\",\"u\"),r.NAME_CHAR_RE=new RegExp(\"^[\"+r.NAME_CHAR+\"]$\",\"u\"),r.NAME_RE=new RegExp(\"^[\"+r.NAME_START_CHAR+\"][\"+r.NAME_CHAR+\"]*$\",\"u\"),r.NMTOKEN_RE=new RegExp(\"^[\"+r.NAME_CHAR+\"]+$\",\"u\");function n(e){return e>=65&&e<=90||e>=97&&e<=122||58===e||95===e||8204===e||8205===e||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}r.S_LIST=[32,10,13,9],r.isChar=function(e){return e>=1&&e<=55295||e>=57344&&e<=65533||e>=65536&&e<=1114111},r.isRestrictedChar=function(e){return e>=1&&e<=8||11===e||12===e||e>=14&&e<=31||e>=127&&e<=132||e>=134&&e<=159},r.isCharAndNotRestricted=function(e){return 9===e||10===e||13===e||e>31&&e<127||133===e||e>159&&e<=55295||e>=57344&&e<=65533||e>=65536&&e<=1114111},r.isS=function(e){return 32===e||10===e||13===e||9===e},r.isNameStartChar=n,r.isNameChar=function(e){return n(e)||e>=48&&e<=57||45===e||46===e||183===e||e>=768&&e<=879||e>=8255&&e<=8256}},{}],545:[function(e,t,r){\"use strict\";\n/**\n * Character class utilities for XML NS 1.0 edition 3.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */function n(e){return e>=65&&e<=90||95===e||e>=97&&e<=122||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}Object.defineProperty(r,\"__esModule\",{value:!0}),r.NC_NAME_START_CHAR=\"A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c-\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd\\ud800\\udc00-\\udb7f\\udfff\",r.NC_NAME_CHAR=\"-\"+r.NC_NAME_START_CHAR+\".0-9\\xb7\\u0300-\\u036f\\u203f-\\u2040\",r.NC_NAME_START_CHAR_RE=new RegExp(\"^[\"+r.NC_NAME_START_CHAR+\"]$\",\"u\"),r.NC_NAME_CHAR_RE=new RegExp(\"^[\"+r.NC_NAME_CHAR+\"]$\",\"u\"),r.NC_NAME_RE=new RegExp(\"^[\"+r.NC_NAME_START_CHAR+\"][\"+r.NC_NAME_CHAR+\"]*$\",\"u\"),r.isNCNameStartChar=n,r.isNCNameChar=function(e){return n(e)||45===e||46===e||e>=48&&e<=57||183===e||e>=768&&e<=879||e>=8255&&e<=8256}},{}]},{},[15])(15)}));\n//# sourceMappingURL=exceljs.min.js.map\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/exceljs/dist/exceljs.min.js?");

/***/ }),

/***/ "./node_modules/function-bind/implementation.js":
/*!******************************************************!*\
  !*** ./node_modules/function-bind/implementation.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n    var arr = [];\n\n    for (var i = 0; i < a.length; i += 1) {\n        arr[i] = a[i];\n    }\n    for (var j = 0; j < b.length; j += 1) {\n        arr[j + a.length] = b[j];\n    }\n\n    return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n    var arr = [];\n    for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n        arr[j] = arrLike[i];\n    }\n    return arr;\n};\n\nvar joiny = function (arr, joiner) {\n    var str = '';\n    for (var i = 0; i < arr.length; i += 1) {\n        str += arr[i];\n        if (i + 1 < arr.length) {\n            str += joiner;\n        }\n    }\n    return str;\n};\n\nmodule.exports = function bind(that) {\n    var target = this;\n    if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n        throw new TypeError(ERROR_MESSAGE + target);\n    }\n    var args = slicy(arguments, 1);\n\n    var bound;\n    var binder = function () {\n        if (this instanceof bound) {\n            var result = target.apply(\n                this,\n                concatty(args, arguments)\n            );\n            if (Object(result) === result) {\n                return result;\n            }\n            return this;\n        }\n        return target.apply(\n            that,\n            concatty(args, arguments)\n        );\n\n    };\n\n    var boundLength = max(0, target.length - args.length);\n    var boundArgs = [];\n    for (var i = 0; i < boundLength; i++) {\n        boundArgs[i] = '$' + i;\n    }\n\n    bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n    if (target.prototype) {\n        var Empty = function Empty() {};\n        Empty.prototype = target.prototype;\n        bound.prototype = new Empty();\n        Empty.prototype = null;\n    }\n\n    return bound;\n};\n\n\n//# sourceURL=webpack:///./node_modules/function-bind/implementation.js?");

/***/ }),

/***/ "./node_modules/function-bind/index.js":
/*!*********************************************!*\
  !*** ./node_modules/function-bind/index.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar implementation = __webpack_require__(/*! ./implementation */ \"./node_modules/function-bind/implementation.js\");\n\nmodule.exports = Function.prototype.bind || implementation;\n\n\n//# sourceURL=webpack:///./node_modules/function-bind/index.js?");

/***/ }),

/***/ "./node_modules/get-intrinsic/index.js":
/*!*********************************************!*\
  !*** ./node_modules/get-intrinsic/index.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar undefined;\n\nvar $Error = __webpack_require__(/*! es-errors */ \"./node_modules/es-errors/index.js\");\nvar $EvalError = __webpack_require__(/*! es-errors/eval */ \"./node_modules/es-errors/eval.js\");\nvar $RangeError = __webpack_require__(/*! es-errors/range */ \"./node_modules/es-errors/range.js\");\nvar $ReferenceError = __webpack_require__(/*! es-errors/ref */ \"./node_modules/es-errors/ref.js\");\nvar $SyntaxError = __webpack_require__(/*! es-errors/syntax */ \"./node_modules/es-errors/syntax.js\");\nvar $TypeError = __webpack_require__(/*! es-errors/type */ \"./node_modules/es-errors/type.js\");\nvar $URIError = __webpack_require__(/*! es-errors/uri */ \"./node_modules/es-errors/uri.js\");\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = __webpack_require__(/*! has-symbols */ \"./node_modules/has-symbols/index.js\")();\nvar hasProto = __webpack_require__(/*! has-proto */ \"./node_modules/has-proto/index.js\")();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = __webpack_require__(/*! function-bind */ \"./node_modules/function-bind/index.js\");\nvar hasOwn = __webpack_require__(/*! hasown */ \"./node_modules/hasown/index.js\");\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\n\n//# sourceURL=webpack:///./node_modules/get-intrinsic/index.js?");

/***/ }),

/***/ "./node_modules/gopd/index.js":
/*!************************************!*\
  !*** ./node_modules/gopd/index.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar GetIntrinsic = __webpack_require__(/*! get-intrinsic */ \"./node_modules/get-intrinsic/index.js\");\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n\n\n//# sourceURL=webpack:///./node_modules/gopd/index.js?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/SheetClip/SheetClip.mjs":
/*!********************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/SheetClip/SheetClip.mjs ***!
  \********************************************************************/
/*! exports provided: parse, stringify */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parse\", function() { return parse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stringify\", function() { return stringify; });\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * SheetClip - Spreadsheet Clipboard Parser.\n * version 0.2\n *\n * This tiny library transforms JavaScript arrays to strings that are pasteable by LibreOffice, OpenOffice,\n * Google Docs and Microsoft Excel.\n *\n * Copyright 2012, Marcin Warpechowski\n * Licensed under the MIT license.\n * http://github.com/warpech/sheetclip/\n */\n\nconst regUniversalNewLine = /^(\\r\\n|\\n\\r|\\r|\\n)/;\nconst regNextCellNoQuotes = /^[^\\t\\r\\n]+/;\nconst regNextEmptyCell = /^\\t/;\n\n/**\n * Decode spreadsheet string into array.\n *\n * @param {string} str The string to parse.\n * @returns {Array}\n */\nfunction parse(str) {\n  const arr = [['']];\n  if (str.length === 0) {\n    return arr;\n  }\n  let column = 0;\n  let row = 0;\n  let lastLength;\n  while (str.length > 0) {\n    if (lastLength === str.length) {\n      // In the case If in last cycle we didn't match anything, we have to leave the infinite loop\n      break;\n    }\n    lastLength = str.length;\n    if (str.match(regNextEmptyCell)) {\n      str = str.replace(regNextEmptyCell, '');\n      column += 1;\n      arr[row][column] = '';\n    } else if (str.match(regUniversalNewLine)) {\n      str = str.replace(regUniversalNewLine, '');\n      column = 0;\n      row += 1;\n      arr[row] = [''];\n    } else {\n      let nextCell = '';\n      if (str.startsWith('\"')) {\n        let quoteNo = 0;\n        let isStillCell = true;\n        while (isStillCell) {\n          const nextChar = str.slice(0, 1);\n          if (nextChar === '\"') {\n            quoteNo += 1;\n          }\n          nextCell += nextChar;\n          str = str.slice(1);\n          if (str.length === 0 || str.match(/^[\\t\\r\\n]/) && quoteNo % 2 === 0) {\n            isStillCell = false;\n          }\n        }\n        nextCell = nextCell.replace(/^\"/, '').replace(/\"$/, '').replace(/[\"]*/g, match => new Array(Math.floor(match.length / 2)).fill('\"').join(''));\n      } else {\n        const matchedText = str.match(regNextCellNoQuotes);\n        nextCell = matchedText ? matchedText[0] : '';\n        str = str.slice(nextCell.length);\n      }\n      arr[row][column] = nextCell;\n    }\n  }\n  return arr;\n}\n\n/**\n * Encode array into valid spreadsheet string.\n *\n * @param {Array} arr An array of arrays to stringify.\n * @returns {string}\n */\nfunction stringify(arr) {\n  let r;\n  let rLen;\n  let c;\n  let cLen;\n  let str = '';\n  let val;\n  for (r = 0, rLen = arr.length; r < rLen; r += 1) {\n    cLen = arr[r].length;\n    for (c = 0; c < cLen; c += 1) {\n      if (c > 0) {\n        str += '\\t';\n      }\n      val = arr[r][c];\n      if (typeof val === 'string') {\n        if (val.indexOf('\\n') > -1) {\n          str += `\"${val.replace(/\"/g, '\"\"')}\"`;\n        } else {\n          str += val;\n        }\n      } else if (val === null || val === undefined) {\n        // undefined resolves to undefined\n        str += '';\n      } else {\n        str += val;\n      }\n    }\n    if (r !== rLen - 1) {\n      str += '\\n';\n    }\n  }\n  return str;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/SheetClip/SheetClip.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/SheetClip/index.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/SheetClip/index.mjs ***!
  \****************************************************************/
/*! exports provided: parse, stringify */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _SheetClip_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SheetClip.mjs */ \"./node_modules/handsontable/3rdparty/SheetClip/SheetClip.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"parse\", function() { return _SheetClip_mjs__WEBPACK_IMPORTED_MODULE_0__[\"parse\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stringify\", function() { return _SheetClip_mjs__WEBPACK_IMPORTED_MODULE_0__[\"stringify\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/SheetClip/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.mjs":
/*!***************************************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.mjs ***!
  \***************************************************************************************************************/
/*! exports provided: FullyVisibleColumnsCalculationType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FullyVisibleColumnsCalculationType\", function() { return FullyVisibleColumnsCalculationType; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_at_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.at.js */ \"./node_modules/core-js/modules/es.array.at.js\");\n/* harmony import */ var core_js_modules_es_string_at_alternative_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.at-alternative.js */ \"./node_modules/core-js/modules/es.string.at-alternative.js\");\n\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @class FullyVisibleColumnsCalculationType\n */\nclass FullyVisibleColumnsCalculationType {\n  constructor() {\n    /**\n     * Total number of fully visible columns in the viewport.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"count\", 0);\n    /**\n     * The column index of the first fully visible column in the viewport.\n     *\n     * @type {number|null}\n     */\n    _defineProperty(this, \"startColumn\", null);\n    /**\n     * The column index of the last fully visible column in the viewport.\n     *\n     * @type {number|null}\n     */\n    _defineProperty(this, \"endColumn\", null);\n    /**\n     * Position of the first fully visible column (in px).\n     *\n     * @type {number|null}\n     */\n    _defineProperty(this, \"startPosition\", null);\n    /**\n     * Determines if the viewport is visible in the trimming container.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"isVisibleInTrimmingContainer\", false);\n  }\n  /**\n   * Initializes the calculation.\n   */\n  initialize() {}\n\n  /**\n   * Processes the column.\n   *\n   * @param {number} column The column index.\n   * @param {ViewportColumnsCalculator} viewportCalculator The viewport calculator object.\n   */\n  process(column, viewportCalculator) {\n    const {\n      totalCalculatedWidth,\n      zeroBasedScrollOffset,\n      viewportWidth,\n      columnWidth\n    } = viewportCalculator;\n    const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;\n    if (totalCalculatedWidth >= zeroBasedScrollOffset && totalCalculatedWidth + columnWidth <= zeroBasedScrollOffset + compensatedViewportWidth) {\n      if (this.startColumn === null || this.startColumn === undefined) {\n        this.startColumn = column;\n      }\n      this.endColumn = column;\n    }\n  }\n\n  /**\n   * Finalizes the calculation.\n   *\n   * @param {ViewportColumnsCalculator} viewportCalculator The viewport calculator object.\n   */\n  finalize(viewportCalculator) {\n    var _startPositions$this$;\n    const {\n      scrollOffset,\n      viewportWidth,\n      inlineStartOffset,\n      zeroBasedScrollOffset,\n      totalColumns,\n      needReverse,\n      startPositions,\n      columnWidth\n    } = viewportCalculator;\n\n    // If the estimation has reached the last column and there is still some space available in the viewport,\n    // we need to render in reverse in order to fill the whole viewport with columns\n    if (this.endColumn === totalColumns - 1 && needReverse) {\n      this.startColumn = this.endColumn;\n      while (this.startColumn > 0) {\n        const calculatedViewportHeight = startPositions[this.endColumn] + columnWidth - startPositions[this.startColumn - 1];\n        if (calculatedViewportHeight <= viewportWidth) {\n          this.startColumn -= 1;\n        }\n        if (calculatedViewportHeight >= viewportWidth) {\n          break;\n        }\n      }\n    }\n    this.startPosition = (_startPositions$this$ = startPositions[this.startColumn]) !== null && _startPositions$this$ !== void 0 ? _startPositions$this$ : null;\n    const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;\n    const mostRightScrollOffset = scrollOffset + viewportWidth - compensatedViewportWidth;\n    const inlineStartColumnOffset = this.startColumn === null ? 0 : viewportCalculator.getColumnWidth(this.startColumn);\n    if (\n    // the table is to the left of the viewport\n    mostRightScrollOffset < -1 * inlineStartOffset || scrollOffset > startPositions.at(-1) ||\n    // the table is to the right of the viewport\n    -1 * scrollOffset - viewportWidth > -1 * inlineStartColumnOffset) {\n      this.isVisibleInTrimmingContainer = false;\n    } else {\n      this.isVisibleInTrimmingContainer = true;\n    }\n    if (totalColumns < this.endColumn) {\n      this.endColumn = totalColumns - 1;\n    }\n    if (this.startColumn !== null) {\n      this.count = this.endColumn - this.startColumn + 1;\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.mjs":
/*!************************************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.mjs ***!
  \************************************************************************************************************/
/*! exports provided: FullyVisibleRowsCalculationType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FullyVisibleRowsCalculationType\", function() { return FullyVisibleRowsCalculationType; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_at_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.at.js */ \"./node_modules/core-js/modules/es.array.at.js\");\n/* harmony import */ var core_js_modules_es_string_at_alternative_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.at-alternative.js */ \"./node_modules/core-js/modules/es.string.at-alternative.js\");\n\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @class FullyVisibleRowsCalculationType\n */\nclass FullyVisibleRowsCalculationType {\n  constructor() {\n    /**\n     * Total number of fully visible rows in the viewport.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"count\", 0);\n    /**\n     * The row index of the first fully visible row in the viewport.\n     *\n     * @type {number|null}\n     */\n    _defineProperty(this, \"startRow\", null);\n    /**\n     * The row index of the last fully visible row in the viewport.\n     *\n     * @type {number|null}\n     */\n    _defineProperty(this, \"endRow\", null);\n    /**\n     * Position of the first fully visible row (in px).\n     *\n     * @type {number|null}\n     */\n    _defineProperty(this, \"startPosition\", null);\n    /**\n     * Determines if the viewport is visible in the trimming container.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"isVisibleInTrimmingContainer\", false);\n  }\n  /**\n   * Initializes the calculation.\n   */\n  initialize() {}\n\n  /**\n   * Processes the row.\n   *\n   * @param {number} row The row index.\n   * @param {ViewportRowsCalculator} viewportCalculator The viewport calculator object.\n   */\n  process(row, viewportCalculator) {\n    const {\n      totalCalculatedHeight,\n      zeroBasedScrollOffset,\n      innerViewportHeight,\n      rowHeight\n    } = viewportCalculator;\n    if (totalCalculatedHeight >= zeroBasedScrollOffset && totalCalculatedHeight + rowHeight <= innerViewportHeight) {\n      if (this.startRow === null) {\n        this.startRow = row;\n      }\n      this.endRow = row;\n    }\n  }\n\n  /**\n   * Finalizes the calculation.\n   *\n   * @param {ViewportRowsCalculator} viewportCalculator The viewport calculator object.\n   */\n  finalize(viewportCalculator) {\n    var _startPositions$this$;\n    const {\n      scrollOffset,\n      viewportHeight,\n      horizontalScrollbarHeight,\n      totalRows,\n      needReverse,\n      startPositions,\n      rowHeight\n    } = viewportCalculator;\n\n    // If the estimation has reached the last row and there is still some space available in the viewport,\n    // we need to render in reverse in order to fill the whole viewport with rows\n    if (this.endRow === totalRows - 1 && needReverse) {\n      this.startRow = this.endRow;\n      while (this.startRow > 0) {\n        const calculatedViewportHeight = startPositions[this.endRow] + rowHeight - startPositions[this.startRow - 1];\n        if (calculatedViewportHeight <= viewportHeight - horizontalScrollbarHeight) {\n          this.startRow -= 1;\n        }\n        if (calculatedViewportHeight >= viewportHeight - horizontalScrollbarHeight) {\n          break;\n        }\n      }\n    }\n    this.startPosition = (_startPositions$this$ = startPositions[this.startRow]) !== null && _startPositions$this$ !== void 0 ? _startPositions$this$ : null;\n    const mostBottomScrollOffset = scrollOffset + viewportHeight - horizontalScrollbarHeight;\n    const topRowOffset = this.startRow === null ? 0 : viewportCalculator.getRowHeight(this.startRow);\n    if (mostBottomScrollOffset < topRowOffset || scrollOffset > startPositions.at(-1)) {\n      this.isVisibleInTrimmingContainer = false;\n    } else {\n      this.isVisibleInTrimmingContainer = true;\n    }\n    if (totalRows < this.endRow) {\n      this.endRow = totalRows - 1;\n    }\n    if (this.startRow !== null) {\n      this.count = this.endRow - this.startRow + 1;\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.mjs":
/*!*******************************************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.mjs ***!
  \*******************************************************************************************************************/
/*! exports provided: PartiallyVisibleColumnsCalculationType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PartiallyVisibleColumnsCalculationType\", function() { return PartiallyVisibleColumnsCalculationType; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_at_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.at.js */ \"./node_modules/core-js/modules/es.array.at.js\");\n/* harmony import */ var core_js_modules_es_string_at_alternative_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.at-alternative.js */ \"./node_modules/core-js/modules/es.string.at-alternative.js\");\n\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @class PartiallyVisibleColumnsCalculationType\n */\nclass PartiallyVisibleColumnsCalculationType {\n  constructor() {\n    /**\n     * Total number of partially visible columns in the viewport.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"count\", 0);\n    /**\n     * The column index of the first partially visible column in the viewport.\n     *\n     * @type {number|null}\n     */\n    _defineProperty(this, \"startColumn\", null);\n    /**\n     * The column index of the last partially visible column in the viewport.\n     *\n     * @type {number|null}\n     */\n    _defineProperty(this, \"endColumn\", null);\n    /**\n     * Position of the first partially visible column (in px).\n     *\n     * @type {number|null}\n     */\n    _defineProperty(this, \"startPosition\", null);\n    /**\n     * Determines if the viewport is visible in the trimming container.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"isVisibleInTrimmingContainer\", false);\n  }\n  /**\n   * Initializes the calculation.\n   */\n  initialize() {}\n\n  /**\n   * Processes the column.\n   *\n   * @param {number} column The column index.\n   * @param {ViewportColumnsCalculator} viewportCalculator The viewport calculator object.\n   */\n  process(column, viewportCalculator) {\n    const {\n      totalCalculatedWidth,\n      zeroBasedScrollOffset,\n      viewportWidth\n    } = viewportCalculator;\n    if (totalCalculatedWidth <= zeroBasedScrollOffset) {\n      this.startColumn = column;\n    }\n    const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;\n    if (totalCalculatedWidth >= zeroBasedScrollOffset && totalCalculatedWidth <= zeroBasedScrollOffset + compensatedViewportWidth) {\n      if (this.startColumn === null || this.startColumn === undefined) {\n        this.startColumn = column;\n      }\n    }\n    this.endColumn = column;\n  }\n\n  /**\n   * Finalizes the calculation.\n   *\n   * @param {ViewportColumnsCalculator} viewportCalculator The viewport calculator object.\n   */\n  finalize(viewportCalculator) {\n    var _startPositions$this$;\n    const {\n      scrollOffset,\n      viewportWidth,\n      inlineStartOffset,\n      zeroBasedScrollOffset,\n      totalColumns,\n      needReverse,\n      startPositions,\n      columnWidth\n    } = viewportCalculator;\n\n    // If the estimation has reached the last column and there is still some space available in the viewport,\n    // we need to render in reverse in order to fill the whole viewport with columns\n    if (this.endColumn === totalColumns - 1 && needReverse) {\n      this.startColumn = this.endColumn;\n      while (this.startColumn > 0) {\n        const calculatedViewportWidth = startPositions[this.endColumn] + columnWidth - startPositions[this.startColumn - 1];\n        this.startColumn -= 1;\n        if (calculatedViewportWidth > viewportWidth) {\n          break;\n        }\n      }\n    }\n    this.startPosition = (_startPositions$this$ = startPositions[this.startColumn]) !== null && _startPositions$this$ !== void 0 ? _startPositions$this$ : null;\n    const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;\n    const mostRightScrollOffset = scrollOffset + viewportWidth - compensatedViewportWidth;\n    if (\n    // the table is to the left of the viewport\n    mostRightScrollOffset < -1 * inlineStartOffset || scrollOffset > startPositions.at(-1) + columnWidth ||\n    // the table is to the right of the viewport\n    -1 * scrollOffset - viewportWidth > 0) {\n      this.isVisibleInTrimmingContainer = false;\n    } else {\n      this.isVisibleInTrimmingContainer = true;\n    }\n    if (totalColumns < this.endColumn) {\n      this.endColumn = totalColumns - 1;\n    }\n    if (this.startColumn !== null) {\n      this.count = this.endColumn - this.startColumn + 1;\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.mjs":
/*!****************************************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.mjs ***!
  \****************************************************************************************************************/
/*! exports provided: PartiallyVisibleRowsCalculationType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PartiallyVisibleRowsCalculationType\", function() { return PartiallyVisibleRowsCalculationType; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_at_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.at.js */ \"./node_modules/core-js/modules/es.array.at.js\");\n/* harmony import */ var core_js_modules_es_string_at_alternative_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.at-alternative.js */ \"./node_modules/core-js/modules/es.string.at-alternative.js\");\n\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @class PartiallyVisibleRowsCalculationType\n */\nclass PartiallyVisibleRowsCalculationType {\n  constructor() {\n    /**\n     * Total number of partially visible rows in the viewport.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"count\", 0);\n    /**\n     * The row index of the first partially visible row in the viewport.\n     *\n     * @type {number|null}\n     */\n    _defineProperty(this, \"startRow\", null);\n    /**\n     * The row index of the last partially visible row in the viewport.\n     *\n     * @type {number|null}\n     */\n    _defineProperty(this, \"endRow\", null);\n    /**\n     * Position of the first partially visible row (in px).\n     *\n     * @type {number|null}\n     */\n    _defineProperty(this, \"startPosition\", null);\n    /**\n     * Determines if the viewport is visible in the trimming container.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"isVisibleInTrimmingContainer\", false);\n  }\n  /**\n   * Initializes the calculation.\n   */\n  initialize() {}\n\n  /**\n   * Processes the row.\n   *\n   * @param {number} row The row index.\n   * @param {ViewportRowsCalculator} viewportCalculator The viewport calculator object.\n   */\n  process(row, viewportCalculator) {\n    const {\n      totalCalculatedHeight,\n      zeroBasedScrollOffset,\n      innerViewportHeight\n    } = viewportCalculator;\n    if (totalCalculatedHeight <= zeroBasedScrollOffset) {\n      this.startRow = row;\n    }\n    if (totalCalculatedHeight >= zeroBasedScrollOffset && totalCalculatedHeight <= innerViewportHeight) {\n      if (this.startRow === null) {\n        this.startRow = row;\n      }\n    }\n    this.endRow = row;\n  }\n\n  /**\n   * Finalizes the calculation.\n   *\n   * @param {ViewportRowsCalculator} viewportCalculator The viewport calculator object.\n   */\n  finalize(viewportCalculator) {\n    var _startPositions$this$;\n    const {\n      scrollOffset,\n      viewportHeight,\n      horizontalScrollbarHeight,\n      totalRows,\n      needReverse,\n      startPositions,\n      rowHeight\n    } = viewportCalculator;\n\n    // If the estimation has reached the last row and there is still some space available in the viewport,\n    // we need to render in reverse in order to fill the whole viewport with rows\n    if (this.endRow === totalRows - 1 && needReverse) {\n      this.startRow = this.endRow;\n      while (this.startRow > 0) {\n        const calculatedViewportHeight = startPositions[this.endRow] + rowHeight - startPositions[this.startRow - 1];\n        this.startRow -= 1;\n        if (calculatedViewportHeight >= viewportHeight - horizontalScrollbarHeight) {\n          break;\n        }\n      }\n    }\n    this.startPosition = (_startPositions$this$ = startPositions[this.startRow]) !== null && _startPositions$this$ !== void 0 ? _startPositions$this$ : null;\n    const mostBottomScrollOffset = scrollOffset + viewportHeight - horizontalScrollbarHeight;\n    if (mostBottomScrollOffset < 0 || scrollOffset > startPositions.at(-1) + rowHeight) {\n      this.isVisibleInTrimmingContainer = false;\n    } else {\n      this.isVisibleInTrimmingContainer = true;\n    }\n    if (totalRows < this.endRow) {\n      this.endRow = totalRows - 1;\n    }\n    if (this.startRow !== null) {\n      this.count = this.endRow - this.startRow + 1;\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedAllColumns.mjs":
/*!**************************************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedAllColumns.mjs ***!
  \**************************************************************************************************************/
/*! exports provided: RenderedAllColumnsCalculationType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RenderedAllColumnsCalculationType\", function() { return RenderedAllColumnsCalculationType; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @typedef {object} RenderedAllColumnsCalculatorOptions\n * @property {number} totalColumns Total number of columns.\n */\n/**\n * Holds all calculations needed to perform the rendering of all columns.\n *\n * @class RenderedAllColumnsCalculationType\n */\nclass RenderedAllColumnsCalculationType {\n  constructor() {\n    /**\n     * Number of rendered/visible columns.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"count\", 0);\n    /**\n     * Index of the first rendered/visible column.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"startColumn\", 0);\n    /**\n     * Index of the last rendered/visible column.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"endColumn\", 0);\n    /**\n     * Position of the first rendered/visible column (in px).\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"startPosition\", 0);\n    /**\n     * Determines if the viewport is visible in the trimming container.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"isVisibleInTrimmingContainer\", true);\n  }\n  /**\n   * Initializes the calculation.\n   *\n   * @param {ViewportColumnsCalculator} viewportCalculator The viewport calculator object.\n   */\n  initialize(_ref) {\n    let {\n      totalColumns\n    } = _ref;\n    this.count = totalColumns;\n    this.endColumn = this.count - 1;\n  }\n\n  /**\n   * Processes the column.\n   */\n  process() {}\n\n  /**\n   * Finalizes the calculation.\n   */\n  finalize() {}\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedAllColumns.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedAllRows.mjs":
/*!***********************************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedAllRows.mjs ***!
  \***********************************************************************************************************/
/*! exports provided: RenderedAllRowsCalculationType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RenderedAllRowsCalculationType\", function() { return RenderedAllRowsCalculationType; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @typedef {object} RenderedAllRowsCalculatorOptions\n * @property {number} totalRows Total number of rows.\n */\n/**\n * Holds all calculations needed to perform the rendering of all rows.\n *\n * @class RenderedAllRowsCalculationType\n */\nclass RenderedAllRowsCalculationType {\n  constructor() {\n    /**\n     * Number of rendered/visible rows.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"count\", 0);\n    /**\n     * Index of the first rendered/visible row.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"startRow\", 0);\n    /**\n     * Index of the last rendered/visible row.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"endRow\", 0);\n    /**\n     * Position of the first rendered/visible row (in px).\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"startPosition\", 0);\n    /**\n     * Determines if the viewport is visible in the trimming container.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"isVisibleInTrimmingContainer\", true);\n  }\n  /**\n   * Initializes the calculation.\n   *\n   * @param {ViewportRowsCalculator} viewportCalculator The viewport calculator object.\n   */\n  initialize(_ref) {\n    let {\n      totalRows\n    } = _ref;\n    this.count = totalRows;\n    this.endRow = this.count - 1;\n  }\n\n  /**\n   * Processes the row.\n   */\n  process() {}\n\n  /**\n   * Finalizes the calculation.\n   */\n  finalize() {}\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedAllRows.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs":
/*!***********************************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs ***!
  \***********************************************************************************************************/
/*! exports provided: RenderedColumnsCalculationType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RenderedColumnsCalculationType\", function() { return RenderedColumnsCalculationType; });\n/* harmony import */ var _partiallyVisibleColumns_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./partiallyVisibleColumns.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.mjs\");\n\n/**\n * @class RenderedColumnsCalculationType\n */\nclass RenderedColumnsCalculationType extends _partiallyVisibleColumns_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PartiallyVisibleColumnsCalculationType\"] {\n  /**\n   * Finalizes the calculation.\n   *\n   * @param {ViewportColumnsCalculator} viewportCalculator The viewport calculator object.\n   */\n  finalize(viewportCalculator) {\n    var _startPositions$this$;\n    super.finalize(viewportCalculator);\n    const {\n      overrideFn,\n      totalColumns,\n      startPositions\n    } = viewportCalculator;\n    if (this.startColumn !== null && typeof overrideFn === 'function') {\n      overrideFn(this);\n    }\n    if (this.startColumn < 0) {\n      this.startColumn = 0;\n    }\n    this.startPosition = (_startPositions$this$ = startPositions[this.startColumn]) !== null && _startPositions$this$ !== void 0 ? _startPositions$this$ : null;\n    if (totalColumns < this.endColumn) {\n      this.endColumn = totalColumns - 1;\n    }\n    if (this.startColumn !== null) {\n      this.count = this.endColumn - this.startColumn + 1;\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs":
/*!********************************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs ***!
  \********************************************************************************************************/
/*! exports provided: RenderedRowsCalculationType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RenderedRowsCalculationType\", function() { return RenderedRowsCalculationType; });\n/* harmony import */ var _partiallyVisibleRows_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./partiallyVisibleRows.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.mjs\");\n\n/**\n * @class RenderedRowsCalculationType\n */\nclass RenderedRowsCalculationType extends _partiallyVisibleRows_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PartiallyVisibleRowsCalculationType\"] {\n  /**\n   * Finalizes the calculation.\n   *\n   * @param {ViewportRowsCalculator} viewportCalculator The viewport calculator object.\n   */\n  finalize(viewportCalculator) {\n    var _startPositions$this$;\n    super.finalize(viewportCalculator);\n    const {\n      overrideFn,\n      totalRows,\n      startPositions\n    } = viewportCalculator;\n    if (this.startRow !== null && typeof overrideFn === 'function') {\n      overrideFn(this);\n    }\n    if (this.startRow < 0) {\n      this.startRow = 0;\n    }\n    this.startPosition = (_startPositions$this$ = startPositions[this.startRow]) !== null && _startPositions$this$ !== void 0 ? _startPositions$this$ : null;\n    if (totalRows < this.endRow) {\n      this.endRow = totalRows - 1;\n    }\n    if (this.startRow !== null) {\n      this.count = this.endRow - this.startRow + 1;\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/calculator/index.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/calculator/index.mjs ***!
  \*********************************************************************************/
/*! exports provided: DEFAULT_ROW_HEIGHT, DEFAULT_COLUMN_WIDTH, FullyVisibleColumnsCalculationType, FullyVisibleRowsCalculationType, PartiallyVisibleColumnsCalculationType, PartiallyVisibleRowsCalculationType, RenderedAllColumnsCalculationType, RenderedAllRowsCalculationType, RenderedColumnsCalculationType, RenderedRowsCalculationType, ViewportColumnsCalculator, ViewportRowsCalculator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _calculationType_fullyVisibleColumns_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./calculationType/fullyVisibleColumns.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FullyVisibleColumnsCalculationType\", function() { return _calculationType_fullyVisibleColumns_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FullyVisibleColumnsCalculationType\"]; });\n\n/* harmony import */ var _calculationType_fullyVisibleRows_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./calculationType/fullyVisibleRows.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FullyVisibleRowsCalculationType\", function() { return _calculationType_fullyVisibleRows_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FullyVisibleRowsCalculationType\"]; });\n\n/* harmony import */ var _calculationType_partiallyVisibleColumns_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./calculationType/partiallyVisibleColumns.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PartiallyVisibleColumnsCalculationType\", function() { return _calculationType_partiallyVisibleColumns_mjs__WEBPACK_IMPORTED_MODULE_2__[\"PartiallyVisibleColumnsCalculationType\"]; });\n\n/* harmony import */ var _calculationType_partiallyVisibleRows_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./calculationType/partiallyVisibleRows.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PartiallyVisibleRowsCalculationType\", function() { return _calculationType_partiallyVisibleRows_mjs__WEBPACK_IMPORTED_MODULE_3__[\"PartiallyVisibleRowsCalculationType\"]; });\n\n/* harmony import */ var _calculationType_renderedAllColumns_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./calculationType/renderedAllColumns.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedAllColumns.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RenderedAllColumnsCalculationType\", function() { return _calculationType_renderedAllColumns_mjs__WEBPACK_IMPORTED_MODULE_4__[\"RenderedAllColumnsCalculationType\"]; });\n\n/* harmony import */ var _calculationType_renderedAllRows_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./calculationType/renderedAllRows.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedAllRows.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RenderedAllRowsCalculationType\", function() { return _calculationType_renderedAllRows_mjs__WEBPACK_IMPORTED_MODULE_5__[\"RenderedAllRowsCalculationType\"]; });\n\n/* harmony import */ var _calculationType_renderedColumns_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./calculationType/renderedColumns.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RenderedColumnsCalculationType\", function() { return _calculationType_renderedColumns_mjs__WEBPACK_IMPORTED_MODULE_6__[\"RenderedColumnsCalculationType\"]; });\n\n/* harmony import */ var _calculationType_renderedRows_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./calculationType/renderedRows.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RenderedRowsCalculationType\", function() { return _calculationType_renderedRows_mjs__WEBPACK_IMPORTED_MODULE_7__[\"RenderedRowsCalculationType\"]; });\n\n/* harmony import */ var _viewportColumns_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./viewportColumns.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/viewportColumns.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_COLUMN_WIDTH\", function() { return _viewportColumns_mjs__WEBPACK_IMPORTED_MODULE_8__[\"DEFAULT_WIDTH\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ViewportColumnsCalculator\", function() { return _viewportColumns_mjs__WEBPACK_IMPORTED_MODULE_8__[\"ViewportColumnsCalculator\"]; });\n\n/* harmony import */ var _viewportRows_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./viewportRows.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/viewportRows.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_ROW_HEIGHT\", function() { return _viewportRows_mjs__WEBPACK_IMPORTED_MODULE_9__[\"DEFAULT_HEIGHT\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ViewportRowsCalculator\", function() { return _viewportRows_mjs__WEBPACK_IMPORTED_MODULE_9__[\"ViewportRowsCalculator\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/calculator/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/calculator/viewportBase.mjs":
/*!****************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/calculator/viewportBase.mjs ***!
  \****************************************************************************************/
/*! exports provided: ViewportBaseCalculator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ViewportBaseCalculator\", function() { return ViewportBaseCalculator; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @typedef {object} ColumnsCalculationType\n * @property {number | null} startColumn The column index of the first column in the viewport.\n * @property {number | null} endColumn The column index of the last column in the viewport.\n * @property {number} count Total number of columns.\n * @property {number | null} startPosition Position of the first fully column (in px).\n * @property {boolean} isVisibleInTrimmingContainer Determines if the viewport is visible in the trimming container.\n */\n/**\n * @typedef {object} RowsCalculationType\n * @property {number | null} startRow The row index of the first row in the viewport.\n * @property {number | null} endRow The row index of the last row in the viewport.\n * @property {number} count Total number of rows.\n * @property {number | null} startPosition Position of the first fully row (in px).\n * @property {boolean} isVisibleInTrimmingContainer Determines if the viewport is visible in the trimming container.\n */\n/**\n * @class ViewportBaseCalculator\n */\nclass ViewportBaseCalculator {\n  constructor(calculationTypes) {\n    /**\n     * The calculation types to be performed.\n     *\n     * @type {Array}\n     */\n    _defineProperty(this, \"calculationTypes\", []);\n    /**\n     * The calculation results.\n     *\n     * @type {Map<string, ColumnsCalculationType | RowsCalculationType>}\n     */\n    _defineProperty(this, \"calculationResults\", new Map());\n    this.calculationTypes = calculationTypes;\n  }\n\n  /**\n   * Initializes all calculators (triggers all calculators before calculating the rows/columns sizes).\n   *\n   * @param {*} context The context object (rows or columns viewport calculator).\n   */\n  _initialize(context) {\n    this.calculationTypes.forEach(_ref => {\n      let [id, calculator] = _ref;\n      this.calculationResults.set(id, calculator);\n      calculator.initialize(context);\n    });\n  }\n\n  /**\n   * Processes the row/column at the given index.\n   *\n   * @param {number} index The index of the row/column.\n   * @param {*} context The context object (rows or columns viewport calculator).\n   */\n  _process(index, context) {\n    this.calculationTypes.forEach(_ref2 => {\n      let [, calculator] = _ref2;\n      return calculator.process(index, context);\n    });\n  }\n\n  /**\n   * Finalizes all calculators (triggers all calculators after calculating the rows/columns sizes).\n   *\n   * @param {*} context The context object (rows or columns viewport calculator).\n   */\n  _finalize(context) {\n    this.calculationTypes.forEach(_ref3 => {\n      let [, calculator] = _ref3;\n      return calculator.finalize(context);\n    });\n  }\n\n  /**\n   * Gets the results for the given calculator.\n   *\n   * @param {string} calculatorId The id of the calculator.\n   * @returns {ColumnsCalculationType | RowsCalculationType}\n   */\n  getResultsFor(calculatorId) {\n    return this.calculationResults.get(calculatorId);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/calculator/viewportBase.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/calculator/viewportColumns.mjs":
/*!*******************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/calculator/viewportColumns.mjs ***!
  \*******************************************************************************************/
/*! exports provided: DEFAULT_WIDTH, ViewportColumnsCalculator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_WIDTH\", function() { return DEFAULT_WIDTH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ViewportColumnsCalculator\", function() { return ViewportColumnsCalculator; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _viewportBase_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./viewportBase.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/viewportBase.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\nconst DEFAULT_WIDTH = 50;\n\n/**\n * @typedef {object} ViewportColumnsCalculatorOptions\n * @property {Map<string, ViewportBaseCalculator>} calculationTypes The calculation types to be performed.\n * @property {number} viewportWidth Width of the viewport.\n * @property {number} scrollOffset Current horizontal scroll position of the viewport.\n * @property {number} totalColumns Total number of columns.\n * @property {Function} columnWidthFn Function that returns the width of the column at a given index (in px).\n * @property {Function} overrideFn Function that allows to adjust the `startRow` and `endRow` parameters.\n * @property {string} inlineStartOffset Inline-start offset of the parent container.\n */\n/**\n * Calculates indexes of columns to render OR columns that are visible OR partially visible in the viewport.\n *\n * @class ViewportColumnsCalculator\n */\nclass ViewportColumnsCalculator extends _viewportBase_mjs__WEBPACK_IMPORTED_MODULE_2__[\"ViewportBaseCalculator\"] {\n  /**\n   * @param {ViewportColumnsCalculatorOptions} options Object with all options specified for column viewport calculation.\n   */\n  constructor(_ref) {\n    let {\n      calculationTypes,\n      viewportWidth,\n      scrollOffset,\n      totalColumns,\n      columnWidthFn,\n      overrideFn,\n      inlineStartOffset\n    } = _ref;\n    super(calculationTypes);\n    _defineProperty(this, \"viewportWidth\", 0);\n    _defineProperty(this, \"scrollOffset\", 0);\n    _defineProperty(this, \"zeroBasedScrollOffset\", 0);\n    _defineProperty(this, \"totalColumns\", 0);\n    _defineProperty(this, \"columnWidthFn\", null);\n    _defineProperty(this, \"columnWidth\", 0);\n    _defineProperty(this, \"overrideFn\", null);\n    _defineProperty(this, \"inlineStartOffset\", 0);\n    _defineProperty(this, \"totalCalculatedWidth\", 0);\n    _defineProperty(this, \"startPositions\", []);\n    _defineProperty(this, \"needReverse\", true);\n    this.viewportWidth = viewportWidth;\n    this.scrollOffset = scrollOffset;\n    this.zeroBasedScrollOffset = Math.max(scrollOffset, 0);\n    this.totalColumns = totalColumns;\n    this.columnWidthFn = columnWidthFn;\n    this.overrideFn = overrideFn;\n    this.inlineStartOffset = inlineStartOffset;\n    this.calculate();\n  }\n\n  /**\n   * Calculates viewport.\n   */\n  calculate() {\n    this._initialize(this);\n    for (let column = 0; column < this.totalColumns; column++) {\n      this.columnWidth = this.getColumnWidth(column);\n      this._process(column, this);\n      this.startPositions.push(this.totalCalculatedWidth);\n      this.totalCalculatedWidth += this.columnWidth;\n      if (this.totalCalculatedWidth >= this.zeroBasedScrollOffset + this.viewportWidth) {\n        this.needReverse = false;\n        break;\n      }\n    }\n    this._finalize(this);\n  }\n\n  /**\n   * Gets the column width at the specified column index.\n   *\n   * @param {number} column Column index.\n   * @returns {number}\n   */\n  getColumnWidth(column) {\n    const width = this.columnWidthFn(column);\n    if (isNaN(width)) {\n      return DEFAULT_WIDTH;\n    }\n    return width;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/calculator/viewportColumns.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/calculator/viewportRows.mjs":
/*!****************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/calculator/viewportRows.mjs ***!
  \****************************************************************************************/
/*! exports provided: DEFAULT_HEIGHT, ViewportRowsCalculator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_HEIGHT\", function() { return DEFAULT_HEIGHT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ViewportRowsCalculator\", function() { return ViewportRowsCalculator; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _viewportBase_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./viewportBase.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/viewportBase.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\nconst DEFAULT_HEIGHT = 23;\n\n/**\n * @typedef {object} ViewportRowsCalculatorOptions\n * @property {Map<string, ViewportBaseCalculator>} calculationTypes The calculation types to be performed.\n * @property {number} viewportHeight Height of the viewport.\n * @property {number} scrollOffset Current vertical scroll position of the viewport.\n * @property {number} totalRows Total number of rows.\n * @property {Function} rowHeightFn Function that returns the height of the row at a given index (in px).\n * @property {Function} overrideFn Function that allows to adjust the `startRow` and `endRow` parameters.\n * @property {number} horizontalScrollbarHeight The scrollbar height.\n */\n/**\n * Calculates indexes of rows to render OR rows that are visible OR partially visible in the viewport.\n *\n * @class ViewportRowsCalculator\n */\nclass ViewportRowsCalculator extends _viewportBase_mjs__WEBPACK_IMPORTED_MODULE_2__[\"ViewportBaseCalculator\"] {\n  /**\n   * @param {ViewportRowsCalculatorOptions} options Object with all options specified for row viewport calculation.\n   */\n  constructor(_ref) {\n    let {\n      calculationTypes,\n      viewportHeight,\n      scrollOffset,\n      totalRows,\n      rowHeightFn,\n      overrideFn,\n      horizontalScrollbarHeight\n    } = _ref;\n    super(calculationTypes);\n    _defineProperty(this, \"viewportHeight\", 0);\n    _defineProperty(this, \"scrollOffset\", 0);\n    _defineProperty(this, \"zeroBasedScrollOffset\", 0);\n    _defineProperty(this, \"totalRows\", 0);\n    _defineProperty(this, \"rowHeightFn\", null);\n    _defineProperty(this, \"rowHeight\", 0);\n    _defineProperty(this, \"overrideFn\", null);\n    _defineProperty(this, \"horizontalScrollbarHeight\", 0);\n    _defineProperty(this, \"innerViewportHeight\", 0);\n    _defineProperty(this, \"totalCalculatedHeight\", 0);\n    _defineProperty(this, \"startPositions\", []);\n    _defineProperty(this, \"needReverse\", true);\n    this.viewportHeight = viewportHeight;\n    this.scrollOffset = scrollOffset;\n    this.zeroBasedScrollOffset = Math.max(scrollOffset, 0);\n    this.totalRows = totalRows;\n    this.rowHeightFn = rowHeightFn;\n    this.overrideFn = overrideFn;\n    this.horizontalScrollbarHeight = horizontalScrollbarHeight !== null && horizontalScrollbarHeight !== void 0 ? horizontalScrollbarHeight : 0;\n    this.innerViewportHeight = this.zeroBasedScrollOffset + this.viewportHeight - this.horizontalScrollbarHeight;\n    this.calculate();\n  }\n\n  /**\n   * Calculates viewport.\n   */\n  calculate() {\n    this._initialize(this);\n    for (let row = 0; row < this.totalRows; row++) {\n      this.rowHeight = this.getRowHeight(row);\n      this._process(row, this);\n      this.startPositions.push(this.totalCalculatedHeight);\n      this.totalCalculatedHeight += this.rowHeight;\n      if (this.totalCalculatedHeight >= this.innerViewportHeight) {\n        this.needReverse = false;\n        break;\n      }\n    }\n    this._finalize(this);\n  }\n\n  /**\n   * Gets the row height at the specified row index.\n   *\n   * @param {number} row Row index.\n   * @returns {number}\n   */\n  getRowHeight(row) {\n    const rowHeight = this.rowHeightFn(row);\n    if (isNaN(rowHeight)) {\n      return DEFAULT_HEIGHT;\n    }\n    return rowHeight;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/calculator/viewportRows.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/cell/coords.mjs":
/*!****************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/cell/coords.mjs ***!
  \****************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\nvar _isRtl = /*#__PURE__*/new WeakMap();\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * @description\n *\n * The `CellCoords` class holds the coordinates (`row`, `col`) of a single cell.\n *\n * It also contains methods for validating the coordinates\n * and retrieving them as an object.\n *\n * To import the `CellCoords` class:\n *\n * ```js\n * import Handsontable, { CellCoords } from '/handsontable';\n *\n * // or, using modules\n * import Handsontable, { CellCoords } from '/handsontable/base';\n * ```\n */\nclass CellCoords {\n  constructor(row, column) {\n    let isRtl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    /**\n     * A visual row index.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"row\", null);\n    /**\n     * A visual column index.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"col\", null);\n    /**\n     * A flag which determines if the coordinates run in RTL mode.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _isRtl, false);\n    _classPrivateFieldSet(_isRtl, this, isRtl);\n    if (typeof row !== 'undefined' && typeof column !== 'undefined') {\n      this.row = row;\n      this.col = column;\n    }\n  }\n\n  /**\n   * Checks if the coordinates in your `CellCoords` instance are valid\n   * in the context of given table parameters.\n   *\n   * The `row` index:\n   * - Must be an integer.\n   * - Must be higher than the number of column headers in the table.\n   * - Must be lower than the total number of rows in the table.\n   *\n   * The `col` index:\n   * - Must be an integer.\n   * - Must be higher than the number of row headers in the table.\n   * - Must be lower than the total number of columns in the table.\n   *\n   * @param {object} [tableParams] An object with a defined table size.\n   * @param {number} [tableParams.countRows=0] The total number of rows.\n   * @param {number} [tableParams.countCols=0] The total number of columns.\n   * @param {number} [tableParams.countRowHeaders=0] A number of row headers.\n   * @param {number} [tableParams.countColHeaders=0] A number of column headers.\n   * @returns {boolean} `true`: The coordinates are valid.\n   */\n  isValid(tableParams) {\n    const {\n      countRows,\n      countCols,\n      countRowHeaders,\n      countColHeaders\n    } = {\n      countRows: 0,\n      countCols: 0,\n      countRowHeaders: 0,\n      countColHeaders: 0,\n      ...tableParams\n    };\n    if (!Number.isInteger(this.row) || !Number.isInteger(this.col)) {\n      return false;\n    }\n    if (this.row < -countColHeaders || this.col < -countRowHeaders) {\n      return false;\n    }\n    if (this.row >= countRows || this.col >= countCols) {\n      return false;\n    }\n    return true;\n  }\n\n  /**\n   * Checks if another set of coordinates (`coords`)\n   * is equal to the coordinates in your `CellCoords` instance.\n   *\n   * @param {CellCoords} coords Coordinates to check.\n   * @returns {boolean}\n   */\n  isEqual(coords) {\n    if (coords === this) {\n      return true;\n    }\n    return this.row === coords.row && this.col === coords.col;\n  }\n\n  /**\n   * Checks if the coordinates point to the headers range. If one of the axis (row or col) point to\n   * the header (negative value) then method returns `true`.\n   *\n   * @returns {boolean}\n   */\n  isHeader() {\n    return !this.isCell();\n  }\n\n  /**\n   * Checks if the coordinates point to the cells range. If all axis (row and col) point to\n   * the cell (positive value) then method returns `true`.\n   *\n   * @returns {boolean}\n   */\n  isCell() {\n    return this.row >= 0 && this.col >= 0;\n  }\n\n  /**\n   * Checks if the coordinates runs in RTL mode.\n   *\n   * @returns {boolean}\n   */\n  isRtl() {\n    return _classPrivateFieldGet(_isRtl, this);\n  }\n\n  /**\n   * Checks if another set of coordinates (`testedCoords`)\n   * is south-east of the coordinates in your `CellCoords` instance.\n   *\n   * @param {CellCoords} testedCoords Coordinates to check.\n   * @returns {boolean}\n   */\n  isSouthEastOf(testedCoords) {\n    return this.row >= testedCoords.row && (_classPrivateFieldGet(_isRtl, this) ? this.col <= testedCoords.col : this.col >= testedCoords.col);\n  }\n\n  /**\n   * Checks if another set of coordinates (`testedCoords`)\n   * is north-west of the coordinates in your `CellCoords` instance.\n   *\n   * @param {CellCoords} testedCoords Coordinates to check.\n   * @returns {boolean}\n   */\n  isNorthWestOf(testedCoords) {\n    return this.row <= testedCoords.row && (_classPrivateFieldGet(_isRtl, this) ? this.col >= testedCoords.col : this.col <= testedCoords.col);\n  }\n\n  /**\n   * Checks if another set of coordinates (`testedCoords`)\n   * is south-west of the coordinates in your `CellCoords` instance.\n   *\n   * @param {CellCoords} testedCoords Coordinates to check.\n   * @returns {boolean}\n   */\n  isSouthWestOf(testedCoords) {\n    return this.row >= testedCoords.row && (_classPrivateFieldGet(_isRtl, this) ? this.col >= testedCoords.col : this.col <= testedCoords.col);\n  }\n\n  /**\n   * Checks if another set of coordinates (`testedCoords`)\n   * is north-east of the coordinates in your `CellCoords` instance.\n   *\n   * @param {CellCoords} testedCoords Coordinates to check.\n   * @returns {boolean}\n   */\n  isNorthEastOf(testedCoords) {\n    return this.row <= testedCoords.row && (_classPrivateFieldGet(_isRtl, this) ? this.col <= testedCoords.col : this.col >= testedCoords.col);\n  }\n\n  /**\n   * Normalizes the coordinates in your `CellCoords` instance to the nearest valid position.\n   *\n   * Coordinates that point to headers (negative values) are normalized to `0`.\n   *\n   * @returns {CellCoords}\n   */\n  normalize() {\n    this.row = this.row === null ? this.row : Math.max(this.row, 0);\n    this.col = this.col === null ? this.col : Math.max(this.col, 0);\n    return this;\n  }\n\n  /**\n   * Assigns the coordinates from another `CellCoords` instance (or compatible literal object)\n   * to your `CellCoords` instance.\n   *\n   * @param {CellCoords | { row: number | undefined, col: number | undefined }} coords The CellCoords\n   * instance or compatible literal object.\n   * @returns {CellCoords}\n   */\n  assign(coords) {\n    if (Number.isInteger(coords === null || coords === void 0 ? void 0 : coords.row)) {\n      this.row = coords.row;\n    }\n    if (Number.isInteger(coords === null || coords === void 0 ? void 0 : coords.col)) {\n      this.col = coords.col;\n    }\n    if (coords instanceof CellCoords) {\n      _classPrivateFieldSet(_isRtl, this, coords.isRtl());\n    }\n    return this;\n  }\n\n  /**\n   * Clones your `CellCoords` instance.\n   *\n   * @returns {CellCoords}\n   */\n  clone() {\n    return new CellCoords(this.row, this.col, _classPrivateFieldGet(_isRtl, this));\n  }\n\n  /**\n   * Converts your `CellCoords` instance into an object literal with `row` and `col` properties.\n   *\n   * @returns {{row: number, col: number}} An object literal with `row` and `col` properties.\n   */\n  toObject() {\n    return {\n      row: this.row,\n      col: this.col\n    };\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (CellCoords);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/cell/coords.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/cell/range.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/cell/range.mjs ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _cell_coords_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../cell/coords.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/cell/coords.mjs\");\n\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * @description\n *\n * The `CellRange` class holds a set of cell coordinates ([`CellCoords`](@/api/cellCoords.md) instances)\n * that form a [selection range](@/guides/cell-features/selection/selection.md#select-ranges).\n *\n * A single `CellRange` instance represents a single unit of selection\n * that contains either a single cell or multiple adjacent cells.\n *\n * To import the `CellRange` class:\n *\n * ```js\n * import Handsontable, { CellRange } from '/handsontable';\n *\n * // or, using modules\n * import Handsontable, { CellRange } from '/handsontable/base';\n * ```\n */\nvar _isRtl = /*#__PURE__*/new WeakMap();\nclass CellRange {\n  constructor(highlight) {\n    let from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : highlight;\n    let to = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : highlight;\n    let isRtl = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n    /**\n     * Used to draw bold border around a cell where selection was started and to edit the cell\n     * when you press Enter. The highlight cannot point to headers (negative values) so its\n     * coordinates object is normalized while assigning.\n     *\n     * @private\n     * @type {CellCoords}\n     */\n    _defineProperty(this, \"highlight\", null);\n    /**\n     * Usually the same as highlight, but in Excel there is distinction - one can change\n     * highlight within a selection.\n     *\n     * @private\n     * @type {CellCoords}\n     */\n    _defineProperty(this, \"from\", null);\n    /**\n     * End selection.\n     *\n     * @private\n     * @type {CellCoords}\n     */\n    _defineProperty(this, \"to\", null);\n    /**\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _isRtl, false);\n    this.highlight = highlight.clone();\n    this.from = from.clone();\n    this.to = to.clone();\n    _classPrivateFieldSet(_isRtl, this, isRtl);\n  }\n\n  /**\n   * Highlights cell selection at the `coords` coordinates.\n   *\n   * @param {CellCoords} coords Coordinates to use.\n   * @returns {CellRange}\n   */\n  setHighlight(coords) {\n    this.highlight = coords.clone();\n    return this;\n  }\n\n  /**\n   * Sets the `coords` coordinates as the start of your range.\n   *\n   * @param {CellCoords} coords Coordinates to use.\n   * @returns {CellRange}\n   */\n  setFrom(coords) {\n    this.from = coords.clone();\n    return this;\n  }\n\n  /**\n   * Sets the `coords` coordinates as the end of your range.\n   *\n   * @param {CellCoords} coords Coordinates to use.\n   * @returns {CellRange}\n   */\n  setTo(coords) {\n    this.to = coords.clone();\n    return this;\n  }\n\n  /**\n   * Checks if the coordinates in your `CellRange` instance are valid\n   * in the context of given table parameters.\n   *\n   * See the [`isValid()`](@/api/cellCoords.md#isvalid) method of the [`CellCoords`](@/api/cellCoords.md) class.\n   *\n   * @param {object} tableParams An object with a defined table size.\n   * @param {number} tableParams.countRows The total number of rows.\n   * @param {number} tableParams.countCols The total number of columns.\n   * @param {number} tableParams.countRowHeaders A number of row headers.\n   * @param {number} tableParams.countColHeaders A number of column headers.\n   * @returns {boolean}\n   */\n  isValid(tableParams) {\n    return this.from.isValid(tableParams) && this.to.isValid(tableParams);\n  }\n\n  /**\n   * Checks if your range is just a single cell or header.\n   *\n   * @returns {boolean}\n   */\n  isSingle() {\n    return this.isSingleCell() || this.isSingleHeader();\n  }\n\n  /**\n   * Checks if your range is just a single cell.\n   *\n   * @returns {boolean}\n   */\n  isSingleCell() {\n    return this.from.row >= 0 && this.from.row === this.to.row && this.from.col >= 0 && this.from.col === this.to.col;\n  }\n\n  /**\n   * Checks if your range is just a single header.\n   *\n   * @returns {boolean}\n   */\n  isSingleHeader() {\n    return (this.from.row < 0 || this.from.col < 0) && this.from.row === this.to.row && this.from.col === this.to.col;\n  }\n\n  /**\n   * Checks if your range covers only headers range (negative coordinates, without any cells).\n   *\n   * @returns {boolean}\n   */\n  isHeader() {\n    if (this.from.isHeader() && this.to.isHeader()) {\n      return true;\n    }\n    return this.from.col < 0 && this.to.col < 0 || this.from.row < 0 && this.to.row < 0;\n  }\n\n  /**\n   * Checks if your range overlaps headers range (negative coordinates).\n   *\n   * @returns {boolean}\n   */\n  containsHeaders() {\n    return this.from.isHeader() || this.to.isHeader();\n  }\n\n  /**\n   * Returns the height of your range (as a number of rows, including row headers).\n   *\n   * @returns {number}\n   */\n  getOuterHeight() {\n    return Math.max(this.from.row, this.to.row) - Math.min(this.from.row, this.to.row) + 1;\n  }\n\n  /**\n   * Returns the width of your range (as a number of columns, including column headers).\n   *\n   * @returns {number}\n   */\n  getOuterWidth() {\n    return Math.max(this.from.col, this.to.col) - Math.min(this.from.col, this.to.col) + 1;\n  }\n\n  /**\n   * Returns the height of your range (as a number of rows, excluding row headers).\n   *\n   * @returns {number}\n   */\n  getHeight() {\n    // if the selection contains only row headers, return 0\n    if (this.from.row < 0 && this.to.row < 0) {\n      return 0;\n    }\n    const fromRow = Math.max(this.from.row, 0);\n    const toRow = Math.max(this.to.row, 0);\n    return Math.max(fromRow, toRow) - Math.min(fromRow, toRow) + 1;\n  }\n\n  /**\n   * Returns the width of your range (as a number of columns, excluding column headers).\n   *\n   * @returns {number}\n   */\n  getWidth() {\n    // if the selection contains only column headers, return 0\n    if (this.from.col < 0 && this.to.col < 0) {\n      return 0;\n    }\n    const fromCol = Math.max(this.from.col, 0);\n    const toCol = Math.max(this.to.col, 0);\n    return Math.max(fromCol, toCol) - Math.min(fromCol, toCol) + 1;\n  }\n\n  /**\n   * Returns the number of cells within your range (excluding column and row headers).\n   *\n   * @returns {number}\n   */\n  getCellsCount() {\n    return this.getWidth() * this.getHeight();\n  }\n\n  /**\n   * Checks if another set of coordinates (`cellCoords`)\n   * is within the `from` and `to` coordinates of your range.\n   *\n   * @param {CellCoords} cellCoords Coordinates to check.\n   * @returns {boolean}\n   */\n  includes(cellCoords) {\n    const {\n      row,\n      col\n    } = cellCoords;\n    const topStart = this.getOuterTopStartCorner();\n    const bottomEnd = this.getOuterBottomEndCorner();\n    return topStart.row <= row && bottomEnd.row >= row && topStart.col <= col && bottomEnd.col >= col;\n  }\n\n  /**\n   * Checks if another range (`cellRange`) is within your range.\n   *\n   * @param {CellRange} cellRange A range to check.\n   * @returns {boolean}\n   */\n  includesRange(cellRange) {\n    return this.includes(cellRange.getOuterTopStartCorner()) && this.includes(cellRange.getOuterBottomEndCorner());\n  }\n\n  /**\n   * Checks if another range (`cellRange`) is equal to your range.\n   *\n   * @param {CellRange} cellRange A range to check.\n   * @returns {boolean}\n   */\n  isEqual(cellRange) {\n    return Math.min(this.from.row, this.to.row) === Math.min(cellRange.from.row, cellRange.to.row) && Math.max(this.from.row, this.to.row) === Math.max(cellRange.from.row, cellRange.to.row) && Math.min(this.from.col, this.to.col) === Math.min(cellRange.from.col, cellRange.to.col) && Math.max(this.from.col, this.to.col) === Math.max(cellRange.from.col, cellRange.to.col);\n  }\n\n  /**\n   * Checks if another range (`cellRange`) overlaps your range.\n   *\n   * Range A overlaps range B if the intersection of A and B (or B and A) is not empty.\n   *\n   * @param {CellRange} cellRange A range to check.\n   * @returns {boolean}\n   */\n  overlaps(cellRange) {\n    return cellRange.isSouthEastOf(this.getOuterTopLeftCorner()) && cellRange.isNorthWestOf(this.getOuterBottomRightCorner());\n  }\n\n  /**\n   * Checks if coordinates point is south-east of your range.\n   *\n   * @param {CellCoords} cellCoords Coordinates to check.\n   * @returns {boolean}\n   */\n  isSouthEastOf(cellCoords) {\n    return this.getOuterTopLeftCorner().isSouthEastOf(cellCoords) || this.getOuterBottomRightCorner().isSouthEastOf(cellCoords);\n  }\n\n  /**\n   * Checks if coordinates point is north-west of your range.\n   *\n   * @param {CellRange} cellCoords Coordinates to check.\n   * @returns {boolean}\n   */\n  isNorthWestOf(cellCoords) {\n    return this.getOuterTopLeftCorner().isNorthWestOf(cellCoords) || this.getOuterBottomRightCorner().isNorthWestOf(cellCoords);\n  }\n\n  /**\n   * Checks if another range (`cellRange`) overlaps your range horizontally.\n   *\n   * For example: returns `true` if the last column of your range is `5`\n   * and the first column of the `cellRange` range is `3`.\n   *\n   * @param {CellRange} cellRange A range to check.\n   * @returns {boolean}\n   */\n  isOverlappingHorizontally(cellRange) {\n    return this.getOuterTopEndCorner().col >= cellRange.getOuterTopStartCorner().col && this.getOuterTopEndCorner().col <= cellRange.getOuterTopEndCorner().col || this.getOuterTopStartCorner().col <= cellRange.getOuterTopEndCorner().col && this.getOuterTopStartCorner().col >= cellRange.getOuterTopStartCorner().col;\n  }\n\n  /**\n   * Checks if another range (`cellRange`) overlaps your range vertically.\n   *\n   * For example: returns `true` if the last row of your range is `5`\n   * and the first row of the `cellRange` range is `3`.\n   *\n   * @param {CellRange} cellRange A range to check.\n   * @returns {boolean}\n   */\n  isOverlappingVertically(cellRange) {\n    return this.getOuterBottomStartCorner().row >= cellRange.getOuterTopRightCorner().row && this.getOuterBottomStartCorner().row <= cellRange.getOuterBottomStartCorner().row || this.getOuterTopEndCorner().row <= cellRange.getOuterBottomStartCorner().row && this.getOuterTopEndCorner().row >= cellRange.getOuterTopRightCorner().row;\n  }\n\n  /**\n   * Adds a cell to your range, at `cellCoords` coordinates.\n   *\n   * The `cellCoords` coordinates must exceed a corner of your range.\n   *\n   * @param {CellCoords} cellCoords A new cell's coordinates.\n   * @returns {boolean}\n   */\n  expand(cellCoords) {\n    const topStart = this.getOuterTopStartCorner();\n    const bottomEnd = this.getOuterBottomEndCorner();\n    if (cellCoords.row < topStart.row || cellCoords.col < topStart.col || cellCoords.row > bottomEnd.row || cellCoords.col > bottomEnd.col) {\n      this.from = this._createCellCoords(Math.min(topStart.row, cellCoords.row), Math.min(topStart.col, cellCoords.col));\n      this.to = this._createCellCoords(Math.max(bottomEnd.row, cellCoords.row), Math.max(bottomEnd.col, cellCoords.col));\n      return true;\n    }\n    return false;\n  }\n\n  /**\n   * Expand your range with another range (`expandingRange`).\n   *\n   * @param {CellRange} expandingRange A new range.\n   * @param {boolean} [changeDirection=true] If `true`, the direction of your range is changed to the direction\n   * of the `expandingRange` range.\n   * @returns {boolean}\n   */\n  expandByRange(expandingRange) {\n    let changeDirection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    if (this.includesRange(expandingRange) || !this.overlaps(expandingRange)) {\n      return false;\n    }\n    const topStart = this.getOuterTopStartCorner();\n    const bottomEnd = this.getOuterBottomEndCorner();\n    const initialDirection = this.getDirection();\n    const expandingTopStart = expandingRange.getOuterTopStartCorner();\n    const expandingBottomEnd = expandingRange.getOuterBottomEndCorner();\n    const resultTopRow = Math.min(topStart.row, expandingTopStart.row);\n    const resultTopCol = Math.min(topStart.col, expandingTopStart.col);\n    const resultBottomRow = Math.max(bottomEnd.row, expandingBottomEnd.row);\n    const resultBottomCol = Math.max(bottomEnd.col, expandingBottomEnd.col);\n    const finalFrom = this._createCellCoords(resultTopRow, resultTopCol);\n    const finalTo = this._createCellCoords(resultBottomRow, resultBottomCol);\n    this.from = finalFrom;\n    this.to = finalTo;\n    this.setDirection(initialDirection);\n    if (changeDirection) {\n      if (this.highlight.row === this.getOuterBottomRightCorner().row && this.getVerticalDirection() === 'N-S') {\n        this.flipDirectionVertically();\n      }\n      if (this.highlight.col === this.getOuterTopRightCorner().col && this.getHorizontalDirection() === 'W-E') {\n        this.flipDirectionHorizontally();\n      }\n    }\n    return true;\n  }\n\n  /**\n   * Gets the direction of the selection.\n   *\n   * @returns {string} Returns one of the values: `'NW-SE'`, `'NE-SW'`, `'SE-NW'`, `'SW-NE'`.\n   */\n  getDirection() {\n    if (this.from.isNorthWestOf(this.to)) {\n      // NorthWest - SouthEast\n      return 'NW-SE';\n    } else if (this.from.isNorthEastOf(this.to)) {\n      // NorthEast - SouthWest\n      return 'NE-SW';\n    } else if (this.from.isSouthEastOf(this.to)) {\n      // SouthEast - NorthWest\n      return 'SE-NW';\n    } else if (this.from.isSouthWestOf(this.to)) {\n      // SouthWest - NorthEast\n      return 'SW-NE';\n    }\n  }\n\n  /**\n   * Sets the direction of the selection.\n   *\n   * @param {string} direction One of the values: `'NW-SE'`, `'NE-SW'`, `'SE-NW'`, `'SW-NE'`.\n   */\n  setDirection(direction) {\n    switch (direction) {\n      case 'NW-SE':\n        [this.from, this.to] = [this.getOuterTopLeftCorner(), this.getOuterBottomRightCorner()];\n        break;\n      case 'NE-SW':\n        [this.from, this.to] = [this.getOuterTopRightCorner(), this.getOuterBottomLeftCorner()];\n        break;\n      case 'SE-NW':\n        [this.from, this.to] = [this.getOuterBottomRightCorner(), this.getOuterTopLeftCorner()];\n        break;\n      case 'SW-NE':\n        [this.from, this.to] = [this.getOuterBottomLeftCorner(), this.getOuterTopRightCorner()];\n        break;\n      default:\n        break;\n    }\n  }\n\n  /**\n   * Gets the vertical direction of the selection.\n   *\n   * @returns {string} Returns one of the values: `N-S` (north->south), `S-N` (south->north).\n   */\n  getVerticalDirection() {\n    return ['NE-SW', 'NW-SE'].indexOf(this.getDirection()) > -1 ? 'N-S' : 'S-N';\n  }\n\n  /**\n   * Gets the horizontal direction of the selection.\n   *\n   * @returns {string} Returns one of the values: `W-E` (west->east), `E-W` (east->west).\n   */\n  getHorizontalDirection() {\n    return ['NW-SE', 'SW-NE'].indexOf(this.getDirection()) > -1 ? 'W-E' : 'E-W';\n  }\n\n  /**\n   * Flips the direction of your range vertically (e.g., `NW-SE` changes to `SW-NE`).\n   */\n  flipDirectionVertically() {\n    const direction = this.getDirection();\n    switch (direction) {\n      case 'NW-SE':\n        this.setDirection('SW-NE');\n        break;\n      case 'NE-SW':\n        this.setDirection('SE-NW');\n        break;\n      case 'SE-NW':\n        this.setDirection('NE-SW');\n        break;\n      case 'SW-NE':\n        this.setDirection('NW-SE');\n        break;\n      default:\n        break;\n    }\n  }\n\n  /**\n   * Flips the direction of your range horizontally (e.g., `NW-SE` changes to `NE-SW`).\n   */\n  flipDirectionHorizontally() {\n    const direction = this.getDirection();\n    switch (direction) {\n      case 'NW-SE':\n        this.setDirection('NE-SW');\n        break;\n      case 'NE-SW':\n        this.setDirection('NW-SE');\n        break;\n      case 'SE-NW':\n        this.setDirection('SW-NE');\n        break;\n      case 'SW-NE':\n        this.setDirection('SE-NW');\n        break;\n      default:\n        break;\n    }\n  }\n\n  /**\n   * Gets the top-left (in LTR) or top-right (in RTL) corner coordinates of your range.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the corner coordinates are normalized to `0`.\n   *\n   * @returns {CellCoords}\n   */\n  getTopStartCorner() {\n    return this._createCellCoords(Math.min(this.from.row, this.to.row), Math.min(this.from.col, this.to.col)).normalize();\n  }\n\n  /**\n   * Gets the top-left corner coordinates of your range,\n   * both in the LTR and RTL layout direction.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the corner coordinates are normalized to `0`.\n   *\n   * @returns {CellCoords}\n   */\n  getTopLeftCorner() {\n    return _classPrivateFieldGet(_isRtl, this) ? this.getTopEndCorner() : this.getTopStartCorner();\n  }\n\n  /**\n   * Gets the bottom right (in LTR) or bottom left (in RTL) corner coordinates of your range.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the corner coordinates are normalized to `0`.\n   *\n   * @returns {CellCoords}\n   */\n  getBottomEndCorner() {\n    return this._createCellCoords(Math.max(this.from.row, this.to.row), Math.max(this.from.col, this.to.col)).normalize();\n  }\n\n  /**\n   * Gets the bottom right corner coordinates of your range,\n   * both in the LTR and RTL layout direction.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the corner coordinates are normalized to `0`.\n   *\n   * @returns {CellCoords}\n   */\n  getBottomRightCorner() {\n    return _classPrivateFieldGet(_isRtl, this) ? this.getBottomStartCorner() : this.getBottomEndCorner();\n  }\n\n  /**\n   * Gets the top right (in LTR) or top left (in RTL) corner coordinates of your range.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the corner coordinates are normalized to `0`.\n   *\n   * @returns {CellCoords}\n   */\n  getTopEndCorner() {\n    return this._createCellCoords(Math.min(this.from.row, this.to.row), Math.max(this.from.col, this.to.col)).normalize();\n  }\n\n  /**\n   * Gets the top right corner coordinates of your range,\n   * both in the LTR and RTL layout direction.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the corner coordinates are normalized to `0`.\n   *\n   * @returns {CellCoords}\n   */\n  getTopRightCorner() {\n    return _classPrivateFieldGet(_isRtl, this) ? this.getTopStartCorner() : this.getTopEndCorner();\n  }\n\n  /**\n   * Gets the bottom left (in LTR) or bottom right (in RTL) corner coordinates of your range.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the corner coordinates are normalized to `0`.\n   *\n   * @returns {CellCoords}\n   */\n  getBottomStartCorner() {\n    return this._createCellCoords(Math.max(this.from.row, this.to.row), Math.min(this.from.col, this.to.col)).normalize();\n  }\n\n  /**\n   * Gets the bottom left corner coordinates of your range,\n   * both in the LTR and RTL layout direction.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the corner coordinates are normalized to `0`.\n   *\n   * @returns {CellCoords}\n   */\n  getBottomLeftCorner() {\n    return _classPrivateFieldGet(_isRtl, this) ? this.getBottomEndCorner() : this.getBottomStartCorner();\n  }\n\n  /**\n   * Gets the top left (in LTR) or top right (in RTL) corner coordinates of your range.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the top and start coordinates are pointed to that header.\n   *\n   * @returns {CellCoords}\n   */\n  getOuterTopStartCorner() {\n    return this._createCellCoords(Math.min(this.from.row, this.to.row), Math.min(this.from.col, this.to.col));\n  }\n\n  /**\n   * Gets the top left corner coordinates of your range,\n   * both in the LTR and RTL layout direction.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the top and left coordinates are pointed to that header.\n   *\n   * @returns {CellCoords}\n   */\n  getOuterTopLeftCorner() {\n    return _classPrivateFieldGet(_isRtl, this) ? this.getOuterTopEndCorner() : this.getOuterTopStartCorner();\n  }\n\n  /**\n   * Gets the bottom right (in LTR) or bottom left (in RTL) corner coordinates of your range.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the top and start coordinates are pointed to that header.\n   *\n   * @returns {CellCoords}\n   */\n  getOuterBottomEndCorner() {\n    return this._createCellCoords(Math.max(this.from.row, this.to.row), Math.max(this.from.col, this.to.col));\n  }\n\n  /**\n   * Gets the bottom right corner coordinates of your range,\n   * both in the LTR and RTL layout direction.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the top and left coordinates are pointed to that header.\n   *\n   * @returns {CellCoords}\n   */\n  getOuterBottomRightCorner() {\n    return _classPrivateFieldGet(_isRtl, this) ? this.getOuterBottomStartCorner() : this.getOuterBottomEndCorner();\n  }\n\n  /**\n   * Gets the top right (in LTR) or top left (in RTL) corner coordinates of your range.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the top and start coordinates are pointed to that header.\n   *\n   * @returns {CellCoords}\n   */\n  getOuterTopEndCorner() {\n    return this._createCellCoords(Math.min(this.from.row, this.to.row), Math.max(this.from.col, this.to.col));\n  }\n\n  /**\n   * Gets the top right corner coordinates of your range,\n   * both in the LTR and RTL layout direction.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the top and left coordinates are pointed to that header.\n   *\n   * @returns {CellCoords}\n   */\n  getOuterTopRightCorner() {\n    return _classPrivateFieldGet(_isRtl, this) ? this.getOuterTopStartCorner() : this.getOuterTopEndCorner();\n  }\n\n  /**\n   * Gets the bottom left (in LTR) or bottom right (in RTL) corner coordinates of your range.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the top and start coordinates are pointed to that header.\n   *\n   * @returns {CellCoords}\n   */\n  getOuterBottomStartCorner() {\n    return this._createCellCoords(Math.max(this.from.row, this.to.row), Math.min(this.from.col, this.to.col));\n  }\n\n  /**\n   * Gets the bottom left corner coordinates of your range,\n   * both in the LTR and RTL layout direction.\n   *\n   * If the corner contains header coordinates (negative values),\n   * the top and left coordinates are pointed to that header.\n   *\n   * @returns {CellCoords}\n   */\n  getOuterBottomLeftCorner() {\n    return _classPrivateFieldGet(_isRtl, this) ? this.getOuterBottomEndCorner() : this.getOuterBottomStartCorner();\n  }\n\n  /**\n   * Checks if a set of coordinates (`coords`) matches one of the 4 corners of your range.\n   *\n   * @param {CellCoords} coords Coordinates to check.\n   * @returns {boolean}\n   */\n  isCorner(coords) {\n    return coords.isEqual(this.getOuterTopLeftCorner()) || coords.isEqual(this.getOuterTopRightCorner()) || coords.isEqual(this.getOuterBottomLeftCorner()) || coords.isEqual(this.getOuterBottomRightCorner());\n  }\n\n  /**\n   * Gets the coordinates of a range corner opposite to the provided `coords`.\n   *\n   * For example: if the `coords` coordinates match the bottom-right corner of your range,\n   * the coordinates of the top-left corner of your range are returned.\n   *\n   * @param {CellCoords} coords Coordinates to check.\n   * @returns {CellCoords}\n   */\n  getOppositeCorner(coords) {\n    if (!(coords instanceof _cell_coords_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"])) {\n      return false;\n    }\n    if (coords.isEqual(this.getOuterBottomEndCorner())) {\n      return this.getOuterTopStartCorner();\n    } else if (coords.isEqual(this.getOuterTopStartCorner())) {\n      return this.getOuterBottomEndCorner();\n    } else if (coords.isEqual(this.getOuterTopEndCorner())) {\n      return this.getOuterBottomStartCorner();\n    } else if (coords.isEqual(this.getOuterBottomStartCorner())) {\n      return this.getOuterTopEndCorner();\n    }\n  }\n\n  /**\n   * Indicates which borders (top, right, bottom, left) are shared between\n   * your `CellRange`instance and another `range` that's within your range.\n   *\n   * @param {CellRange} range A range to compare with.\n   * @returns {Array<'top' | 'right' | 'bottom' | 'left'>}\n   */\n  getBordersSharedWith(range) {\n    if (!this.includesRange(range)) {\n      return [];\n    }\n    const thisBorders = {\n      top: Math.min(this.from.row, this.to.row),\n      bottom: Math.max(this.from.row, this.to.row),\n      left: Math.min(this.from.col, this.to.col),\n      right: Math.max(this.from.col, this.to.col)\n    };\n    const rangeBorders = {\n      top: Math.min(range.from.row, range.to.row),\n      bottom: Math.max(range.from.row, range.to.row),\n      left: Math.min(range.from.col, range.to.col),\n      right: Math.max(range.from.col, range.to.col)\n    };\n    const result = [];\n    if (thisBorders.top === rangeBorders.top) {\n      result.push('top');\n    }\n    if (thisBorders.right === rangeBorders.right) {\n      result.push(_classPrivateFieldGet(_isRtl, this) ? 'left' : 'right');\n    }\n    if (thisBorders.bottom === rangeBorders.bottom) {\n      result.push('bottom');\n    }\n    if (thisBorders.left === rangeBorders.left) {\n      result.push(_classPrivateFieldGet(_isRtl, this) ? 'right' : 'left');\n    }\n    return result;\n  }\n\n  /**\n   * Gets the coordinates of the inner cells of your range.\n   *\n   * @returns {CellCoords[]}\n   */\n  getInner() {\n    const topStart = this.getOuterTopStartCorner();\n    const bottomEnd = this.getOuterBottomEndCorner();\n    const out = [];\n    for (let r = topStart.row; r <= bottomEnd.row; r++) {\n      for (let c = topStart.col; c <= bottomEnd.col; c++) {\n        if (!(this.from.row === r && this.from.col === c) && !(this.to.row === r && this.to.col === c)) {\n          out.push(this._createCellCoords(r, c));\n        }\n      }\n    }\n    return out;\n  }\n\n  /**\n   * Gets the coordinates of all cells of your range.\n   *\n   * @returns {CellCoords[]}\n   */\n  getAll() {\n    const topStart = this.getOuterTopStartCorner();\n    const bottomEnd = this.getOuterBottomEndCorner();\n    const out = [];\n    for (let r = topStart.row; r <= bottomEnd.row; r++) {\n      for (let c = topStart.col; c <= bottomEnd.col; c++) {\n        if (topStart.row === r && topStart.col === c) {\n          out.push(topStart);\n        } else if (bottomEnd.row === r && bottomEnd.col === c) {\n          out.push(bottomEnd);\n        } else {\n          out.push(this._createCellCoords(r, c));\n        }\n      }\n    }\n    return out;\n  }\n\n  /**\n   * Runs a callback function on all cells within your range.\n   *\n   * You can break the iteration by returning `false` in the callback function.\n   *\n   * @param {function(number, number): boolean} callback A callback function.\n   */\n  forAll(callback) {\n    const topStart = this.getOuterTopStartCorner();\n    const bottomEnd = this.getOuterBottomEndCorner();\n    for (let r = topStart.row; r <= bottomEnd.row; r++) {\n      for (let c = topStart.col; c <= bottomEnd.col; c++) {\n        const breakIteration = callback(r, c);\n        if (breakIteration === false) {\n          return;\n        }\n      }\n    }\n  }\n\n  /**\n   * Clones your `CellRange` instance.\n   *\n   * @returns {CellRange}\n   */\n  clone() {\n    return new CellRange(this.highlight, this.from, this.to, _classPrivateFieldGet(_isRtl, this));\n  }\n\n  /**\n   * Converts your `CellRange` instance into an object literal with the following properties:\n   *\n   * - `from`\n   *    - `row`\n   *    - `col`\n   * - `to`\n   *    - `row`\n   *    - `col`\n   *\n   * @returns {{from: {row: number, col: number}, to: {row: number, col: number}}} An object literal with `from` and `to` properties.\n   */\n  toObject() {\n    return {\n      from: this.from.toObject(),\n      to: this.to.toObject()\n    };\n  }\n\n  /**\n   * Creates and returns a new instance of the `CellCoords` class.\n   *\n   * The new `CellCoords` instance automatically inherits the LTR/RTL flag\n   * from your `CellRange` instance.\n   *\n   * @private\n   * @param {number} row A row index.\n   * @param {number} column A column index.\n   * @returns {CellCoords}\n   */\n  _createCellCoords(row, column) {\n    return new _cell_coords_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"](row, column, _classPrivateFieldGet(_isRtl, this));\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (CellRange);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/cell/range.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/core/_base.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/core/_base.mjs ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CoreAbstract; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_string_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../helpers/string.mjs */ \"./node_modules/handsontable/helpers/string.mjs\");\n/* harmony import */ var _eventManager_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../eventManager.mjs */ \"./node_modules/handsontable/eventManager.mjs\");\n/* harmony import */ var _scroll_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../scroll.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/scroll.mjs\");\n/* harmony import */ var _cell_coords_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../cell/coords.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/cell/coords.mjs\");\n/* harmony import */ var _cell_range_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../cell/range.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/cell/range.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n/**\n * @abstract\n * @class Walkontable\n */\nclass CoreAbstract {\n  get eventManager() {\n    return new _eventManager_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"](this);\n  }\n\n  /**\n   * @param {HTMLTableElement} table Main table.\n   * @param {Settings} settings The Walkontable settings.\n   */\n  constructor(table, settings) {\n    _defineProperty(this, \"wtTable\", void 0);\n    _defineProperty(this, \"wtScroll\", void 0);\n    _defineProperty(this, \"wtViewport\", void 0);\n    _defineProperty(this, \"wtOverlays\", void 0);\n    _defineProperty(this, \"selectionManager\", void 0);\n    _defineProperty(this, \"wtEvent\", void 0);\n    /**\n     * The walkontable instance id.\n     *\n     * @public\n     * @type {Readonly<string>}\n     */\n    _defineProperty(this, \"guid\", `wt_${Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_3__[\"randomString\"])()}`);\n    _defineProperty(this, \"drawInterrupted\", false);\n    _defineProperty(this, \"drawn\", false);\n    /**\n     * The DOM bindings.\n     *\n     * @public\n     * @type {DomBindings}\n     */\n    _defineProperty(this, \"domBindings\", void 0);\n    /**\n     * Settings.\n     *\n     * @public\n     * @type {Settings}\n     */\n    _defineProperty(this, \"wtSettings\", void 0);\n    this.domBindings = {\n      rootTable: table,\n      rootDocument: table.ownerDocument,\n      rootWindow: table.ownerDocument.defaultView\n    };\n    this.wtSettings = settings;\n    this.wtScroll = new _scroll_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"](this.createScrollDao());\n  }\n  findOriginalHeaders() {\n    const originalHeaders = [];\n\n    // find original headers\n    if (this.wtTable.THEAD.childNodes.length && this.wtTable.THEAD.childNodes[0].childNodes.length) {\n      for (let c = 0, clen = this.wtTable.THEAD.childNodes[0].childNodes.length; c < clen; c++) {\n        originalHeaders.push(this.wtTable.THEAD.childNodes[0].childNodes[c].innerHTML);\n      }\n      if (!this.wtSettings.getSetting('columnHeaders').length) {\n        this.wtSettings.update('columnHeaders', [function (column, TH) {\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"fastInnerText\"])(TH, originalHeaders[column]);\n        }]);\n      }\n    }\n  }\n\n  /**\n   * Creates and returns the CellCoords object.\n   *\n   * @param {*} row The row index.\n   * @param {*} column The column index.\n   * @returns {CellCoords}\n   */\n  createCellCoords(row, column) {\n    return new _cell_coords_mjs__WEBPACK_IMPORTED_MODULE_6__[\"default\"](row, column, this.wtSettings.getSetting('rtlMode'));\n  }\n\n  /**\n   * Creates and returns the CellRange object.\n   *\n   * @param {CellCoords} highlight The highlight coordinates.\n   * @param {CellCoords} from The from coordinates.\n   * @param {CellCoords} to The to coordinates.\n   * @returns {CellRange}\n   */\n  createCellRange(highlight, from, to) {\n    return new _cell_range_mjs__WEBPACK_IMPORTED_MODULE_7__[\"default\"](highlight, from, to, this.wtSettings.getSetting('rtlMode'));\n  }\n\n  /**\n   * Force rerender of Walkontable.\n   *\n   * @param {boolean} [fastDraw=false] When `true`, try to refresh only the positions of borders without rerendering\n   *                                   the data. It will only work if Table.draw() does not force\n   *                                   rendering anyway.\n   * @returns {Walkontable}\n   */\n  draw() {\n    let fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    this.drawInterrupted = false;\n    if (!this.wtTable.isVisible()) {\n      // draw interrupted because TABLE is not visible\n      this.drawInterrupted = true;\n    } else {\n      this.wtTable.draw(fastDraw);\n    }\n    return this;\n  }\n\n  /**\n   * Returns the TD at coords. If topmost is set to true, returns TD from the topmost overlay layer,\n   * if not set or set to false, returns TD from the master table.\n   *\n   * @param {CellCoords} coords The cell coordinates.\n   * @param {boolean} [topmost=false] If set to `true`, it returns the TD element from the topmost overlay. For example,\n   *                                  if the wanted cell is in the range of fixed rows, it will return a TD element\n   *                                  from the top overlay.\n   * @returns {HTMLElement}\n   */\n  getCell(coords) {\n    let topmost = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    if (!topmost) {\n      return this.wtTable.getCell(coords);\n    }\n    const totalRows = this.wtSettings.getSetting('totalRows');\n    const fixedRowsTop = this.wtSettings.getSetting('fixedRowsTop');\n    const fixedRowsBottom = this.wtSettings.getSetting('fixedRowsBottom');\n    const fixedColumnsStart = this.wtSettings.getSetting('fixedColumnsStart');\n    if (coords.row < fixedRowsTop && coords.col < fixedColumnsStart) {\n      return this.wtOverlays.topInlineStartCornerOverlay.clone.wtTable.getCell(coords);\n    } else if (coords.row < fixedRowsTop) {\n      return this.wtOverlays.topOverlay.clone.wtTable.getCell(coords);\n    } else if (coords.col < fixedColumnsStart && coords.row >= totalRows - fixedRowsBottom) {\n      if (this.wtOverlays.bottomInlineStartCornerOverlay && this.wtOverlays.bottomInlineStartCornerOverlay.clone) {\n        return this.wtOverlays.bottomInlineStartCornerOverlay.clone.wtTable.getCell(coords);\n      }\n    } else if (coords.col < fixedColumnsStart) {\n      return this.wtOverlays.inlineStartOverlay.clone.wtTable.getCell(coords);\n    } else if (coords.row < totalRows && coords.row >= totalRows - fixedRowsBottom) {\n      if (this.wtOverlays.bottomOverlay && this.wtOverlays.bottomOverlay.clone) {\n        return this.wtOverlays.bottomOverlay.clone.wtTable.getCell(coords);\n      }\n    }\n    return this.wtTable.getCell(coords);\n  }\n\n  /**\n   * Scrolls the viewport to a cell (rerenders if needed).\n   *\n   * @param {CellCoords} coords The cell coordinates to scroll to.\n   * @param {boolean} [snapToTop] If `true`, viewport is scrolled to show the cell on the top of the table.\n   * @param {boolean} [snapToRight] If `true`, viewport is scrolled to show the cell on the right of the table.\n   * @param {boolean} [snapToBottom] If `true`, viewport is scrolled to show the cell on the bottom of the table.\n   * @param {boolean} [snapToLeft] If `true`, viewport is scrolled to show the cell on the left of the table.\n   * @returns {boolean}\n   */\n  scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft) {\n    if (coords.col < 0 || coords.row < 0) {\n      return false;\n    }\n    return this.wtScroll.scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft);\n  }\n\n  /**\n   * Scrolls the viewport to a column (rerenders if needed).\n   *\n   * @param {number} column Visual column index.\n   * @param {boolean} [snapToRight] If `true`, viewport is scrolled to show the cell on the right of the table.\n   * @param {boolean} [snapToLeft] If `true`, viewport is scrolled to show the cell on the left of the table.\n   * @returns {boolean}\n   */\n  scrollViewportHorizontally(column, snapToRight, snapToLeft) {\n    if (column < 0) {\n      return false;\n    }\n    return this.wtScroll.scrollViewportHorizontally(column, snapToRight, snapToLeft);\n  }\n\n  /**\n   * Scrolls the viewport to a row (rerenders if needed).\n   *\n   * @param {number} row Visual row index.\n   * @param {boolean} [snapToTop] If `true`, viewport is scrolled to show the cell on the top of the table.\n   * @param {boolean} [snapToBottom] If `true`, viewport is scrolled to show the cell on the bottom of the table.\n   * @returns {boolean}\n   */\n  scrollViewportVertically(row, snapToTop, snapToBottom) {\n    if (row < 0) {\n      return false;\n    }\n    return this.wtScroll.scrollViewportVertically(row, snapToTop, snapToBottom);\n  }\n\n  /**\n   * @returns {Array}\n   */\n  getViewport() {\n    return [this.wtTable.getFirstVisibleRow(), this.wtTable.getFirstVisibleColumn(), this.wtTable.getLastVisibleRow(), this.wtTable.getLastVisibleColumn()];\n  }\n\n  /**\n   * Destroy instance.\n   */\n  destroy() {\n    this.wtOverlays.destroy();\n    this.wtEvent.destroy();\n  }\n\n  /**\n   * Create data access object for scroll.\n   *\n   * @protected\n   * @returns {ScrollDao}\n   */\n  createScrollDao() {\n    const wot = this;\n    return {\n      get drawn() {\n        return wot.drawn; // TODO refactoring: consider about injecting `isDrawn` function : ()=>return wot.drawn. (it'll enables remove dao layer)\n      },\n      get topOverlay() {\n        return wot.wtOverlays.topOverlay; // TODO refactoring: move outside dao, use IOC\n      },\n      get inlineStartOverlay() {\n        return wot.wtOverlays.inlineStartOverlay; // TODO refactoring: move outside dao, use IOC\n      },\n      get wtTable() {\n        return wot.wtTable; // TODO refactoring: move outside dao, use IOC\n      },\n      get wtViewport() {\n        return wot.wtViewport; // TODO refactoring: move outside dao, use IOC\n      },\n      get wtSettings() {\n        return wot.wtSettings;\n      },\n      get rootWindow() {\n        return wot.domBindings.rootWindow; // TODO refactoring: move outside dao\n      },\n      // TODO refactoring, consider about using injecting wtSettings into scroll (it'll enables remove dao layer)\n      get totalRows() {\n        return wot.wtSettings.getSetting('totalRows');\n      },\n      get totalColumns() {\n        return wot.wtSettings.getSetting('totalColumns');\n      },\n      get fixedRowsTop() {\n        return wot.wtSettings.getSetting('fixedRowsTop');\n      },\n      get fixedRowsBottom() {\n        return wot.wtSettings.getSetting('fixedRowsBottom');\n      },\n      get fixedColumnsStart() {\n        return wot.wtSettings.getSetting('fixedColumnsStart');\n      }\n    };\n  }\n  // TODO refactoring: it will be much better to not use DAO objects. They are needed for now to provide\n  // dynamically access to related objects\n  /**\n   * Create data access object for wtTable.\n   *\n   * @protected\n   * @returns {TableDao}\n   */\n  getTableDao() {\n    const wot = this;\n    return {\n      get wot() {\n        return wot;\n      },\n      get parentTableOffset() {\n        return wot.cloneSource.wtTable.tableOffset; // TODO rethink: cloneSource exists only in Clone type.\n      },\n      get cloneSource() {\n        return wot.cloneSource; // TODO rethink: cloneSource exists only in Clone type.\n      },\n      get workspaceWidth() {\n        return wot.wtViewport.getWorkspaceWidth();\n      },\n      get wtViewport() {\n        return wot.wtViewport; // TODO refactoring: move outside dao, use IOC\n      },\n      get wtOverlays() {\n        return wot.wtOverlays; // TODO refactoring: move outside dao, use IOC\n      },\n      get selectionManager() {\n        return wot.selectionManager; // TODO refactoring: move outside dao, use IOC\n      },\n      get drawn() {\n        return wot.drawn;\n      },\n      set drawn(v) {\n        // TODO rethink: this breaks assumes of data access object, however it is required until invent better way to handle WOT state.\n        wot.drawn = v;\n      },\n      get wtTable() {\n        return wot.wtTable; // TODO refactoring: it provides itself\n      },\n      get startColumnRendered() {\n        return wot.wtViewport.columnsRenderCalculator.startColumn;\n      },\n      get startColumnVisible() {\n        return wot.wtViewport.columnsVisibleCalculator.startColumn;\n      },\n      get startColumnPartiallyVisible() {\n        return wot.wtViewport.columnsPartiallyVisibleCalculator.startColumn;\n      },\n      get endColumnRendered() {\n        return wot.wtViewport.columnsRenderCalculator.endColumn;\n      },\n      get endColumnVisible() {\n        return wot.wtViewport.columnsVisibleCalculator.endColumn;\n      },\n      get endColumnPartiallyVisible() {\n        return wot.wtViewport.columnsPartiallyVisibleCalculator.endColumn;\n      },\n      get countColumnsRendered() {\n        return wot.wtViewport.columnsRenderCalculator.count;\n      },\n      get countColumnsVisible() {\n        return wot.wtViewport.columnsVisibleCalculator.count;\n      },\n      get startRowRendered() {\n        return wot.wtViewport.rowsRenderCalculator.startRow;\n      },\n      get startRowVisible() {\n        return wot.wtViewport.rowsVisibleCalculator.startRow;\n      },\n      get startRowPartiallyVisible() {\n        return wot.wtViewport.rowsPartiallyVisibleCalculator.startRow;\n      },\n      get endRowRendered() {\n        return wot.wtViewport.rowsRenderCalculator.endRow;\n      },\n      get endRowVisible() {\n        return wot.wtViewport.rowsVisibleCalculator.endRow;\n      },\n      get endRowPartiallyVisible() {\n        return wot.wtViewport.rowsPartiallyVisibleCalculator.endRow;\n      },\n      get countRowsRendered() {\n        return wot.wtViewport.rowsRenderCalculator.count;\n      },\n      get countRowsVisible() {\n        return wot.wtViewport.rowsVisibleCalculator.count;\n      },\n      get columnHeaders() {\n        return wot.wtSettings.getSetting('columnHeaders');\n      },\n      get rowHeaders() {\n        return wot.wtSettings.getSetting('rowHeaders');\n      }\n    };\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/core/_base.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/core/clone.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/core/clone.mjs ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Clone; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _event_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../event.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/event.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/core/_base.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n/**\n * @class Walkontable\n */\nclass Clone extends _base_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n  /**\n   * @param {HTMLTableElement} table Main table.\n   * @param {SettingsPure|Settings} settings The Walkontable settings.\n   * @param {WalkontableCloneOptions} clone Clone data.\n   */\n  constructor(table, settings, clone) {\n    super(table, settings);\n    /**\n     * @type {Walkontable}\n     */\n    _defineProperty(this, \"cloneSource\", void 0);\n    /**\n     * @type {Overlay}\n     */\n    _defineProperty(this, \"cloneOverlay\", void 0);\n    const facadeGetter = this.wtSettings.getSetting('facade', this);\n    this.cloneSource = clone.source;\n    this.cloneOverlay = clone.overlay;\n    this.wtTable = this.cloneOverlay.createTable(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);\n    this.wtViewport = clone.viewport;\n    this.selectionManager = clone.selectionManager;\n    this.wtEvent = new _event_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"](facadeGetter, this.domBindings, this.wtSettings, this.eventManager, this.wtTable, this.selectionManager, clone.event);\n    this.findOriginalHeaders();\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/core/clone.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/core/core.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/core/core.mjs ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Walkontable; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _event_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../event.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/event.mjs\");\n/* harmony import */ var _overlays_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../overlays.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlays.mjs\");\n/* harmony import */ var _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../overlay/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/index.mjs\");\n/* harmony import */ var _settings_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../settings.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/settings.mjs\");\n/* harmony import */ var _table_master_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../table/master.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/master.mjs\");\n/* harmony import */ var _viewport_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../viewport.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/viewport.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/core/_base.mjs\");\n/* harmony import */ var _selection_manager_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../selection/manager.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/selection/manager.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * @class Walkontable\n */\nclass Walkontable extends _base_mjs__WEBPACK_IMPORTED_MODULE_7__[\"default\"] {\n  /**\n   * @param {HTMLTableElement} table Main table.\n   * @param {SettingsPure} settings The Walkontable settings.\n   */\n  constructor(table, settings) {\n    super(table, new _settings_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"](settings));\n    const facadeGetter = this.wtSettings.getSetting('facade', this); // todo rethink. I would like to have no access to facade from the internal scope.\n\n    this.wtTable = new _table_master_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"](this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);\n    this.wtViewport = new _viewport_mjs__WEBPACK_IMPORTED_MODULE_6__[\"default\"](this.getViewportDao(), this.domBindings, this.wtSettings, this.eventManager, this.wtTable);\n    this.selectionManager = new _selection_manager_mjs__WEBPACK_IMPORTED_MODULE_8__[\"SelectionManager\"](this.wtSettings.getSetting('selections'));\n    this.wtEvent = new _event_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"](facadeGetter, this.domBindings, this.wtSettings, this.eventManager, this.wtTable, this.selectionManager);\n    this.wtOverlays = new _overlays_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"](\n    // TODO create DAO and remove reference to the Walkontable instance.\n    this, facadeGetter, this.domBindings, this.wtSettings, this.eventManager, this.wtTable);\n    this.exportSettingsAsClassNames();\n    this.findOriginalHeaders();\n  }\n\n  /**\n   * Export settings as class names added to the parent element of the table.\n   */\n  exportSettingsAsClassNames() {\n    const toExport = {\n      rowHeaders: 'htRowHeaders',\n      columnHeaders: 'htColumnHeaders'\n    };\n    const allClassNames = [];\n    const newClassNames = [];\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_9__[\"objectEach\"])(toExport, (className, key) => {\n      if (this.wtSettings.getSetting(key).length) {\n        newClassNames.push(className);\n      }\n      allClassNames.push(className);\n    });\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"removeClass\"])(this.wtTable.wtRootElement.parentNode, allClassNames);\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"addClass\"])(this.wtTable.wtRootElement.parentNode, newClassNames);\n  }\n\n  /**\n   * Gets the overlay instance by its name.\n   *\n   * @param {'inline_start'|'top'|'top_inline_start_corner'|'bottom'|'bottom_inline_start_corner'} overlayName The overlay name.\n   * @returns {Overlay | null}\n   */\n  getOverlayByName(overlayName) {\n    var _this$wtOverlays;\n    if (!_overlay_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"CLONE_TYPES\"].includes(overlayName)) {\n      return null;\n    }\n    const camelCaseOverlay = overlayName.replace(/_([a-z])/g, match => match[1].toUpperCase());\n    return (_this$wtOverlays = this.wtOverlays[`${camelCaseOverlay}Overlay`]) !== null && _this$wtOverlays !== void 0 ? _this$wtOverlays : null;\n  }\n\n  /**\n   * @returns {ViewportDao}\n   */\n  getViewportDao() {\n    const wot = this;\n    return {\n      get wot() {\n        return wot;\n      },\n      get topOverlayTrimmingContainer() {\n        return wot.wtOverlays.topOverlay.trimmingContainer;\n      },\n      get inlineStartOverlayTrimmingContainer() {\n        return wot.wtOverlays.inlineStartOverlay.trimmingContainer;\n      },\n      get topScrollPosition() {\n        return wot.wtOverlays.topOverlay.getScrollPosition();\n      },\n      get topParentOffset() {\n        return wot.wtOverlays.topOverlay.getTableParentOffset();\n      },\n      get inlineStartScrollPosition() {\n        return wot.wtOverlays.inlineStartOverlay.getScrollPosition();\n      },\n      get inlineStartParentOffset() {\n        return wot.wtOverlays.inlineStartOverlay.getTableParentOffset();\n      },\n      get topOverlay() {\n        return wot.wtOverlays.topOverlay; // TODO refactoring: move outside dao, use IOC\n      },\n      get inlineStartOverlay() {\n        return wot.wtOverlays.inlineStartOverlay; // TODO refactoring: move outside dao, use IOC\n      },\n      get bottomOverlay() {\n        return wot.wtOverlays.bottomOverlay; // TODO refactoring: move outside dao, use IOC\n      }\n    };\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/core/core.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/event.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/event.mjs ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n/* harmony import */ var _helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/feature.mjs */ \"./node_modules/handsontable/helpers/feature.mjs\");\n/* harmony import */ var _helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../helpers/browser.mjs */ \"./node_modules/handsontable/helpers/browser.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n/**\n * @class Event\n */\nvar _wtSettings = /*#__PURE__*/new WeakMap();\nvar _domBindings = /*#__PURE__*/new WeakMap();\nvar _wtTable = /*#__PURE__*/new WeakMap();\nvar _selectionManager = /*#__PURE__*/new WeakMap();\nvar _parent = /*#__PURE__*/new WeakMap();\nvar _eventManager = /*#__PURE__*/new WeakMap();\nvar _facadeGetter = /*#__PURE__*/new WeakMap();\nvar _selectedCellBeforeTouchEnd = /*#__PURE__*/new WeakMap();\nvar _dblClickTimeout = /*#__PURE__*/new WeakMap();\nvar _dblClickOrigin = /*#__PURE__*/new WeakMap();\nclass Event {\n  /**\n   * @param {FacadeGetter} facadeGetter Gets an instance facade.\n   * @param {DomBindings} domBindings Bindings into dom.\n   * @param {Settings} wtSettings The walkontable settings.\n   * @param {EventManager} eventManager The walkontable event manager.\n   * @param {Table} wtTable The table.\n   * @param {SelectionManager} selectionManager Selections.\n   * @param {Event} [parent=null] The main Event instance.\n   */\n  constructor(facadeGetter, domBindings, wtSettings, eventManager, wtTable, selectionManager) {\n    let parent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;\n    _classPrivateFieldInitSpec(this, _wtSettings, void 0);\n    _classPrivateFieldInitSpec(this, _domBindings, void 0);\n    _classPrivateFieldInitSpec(this, _wtTable, void 0);\n    _classPrivateFieldInitSpec(this, _selectionManager, void 0);\n    _classPrivateFieldInitSpec(this, _parent, void 0);\n    /**\n     * Instance of {@link EventManager}.\n     *\n     * @type {EventManager}\n     */\n    _classPrivateFieldInitSpec(this, _eventManager, void 0);\n    /**\n     * Should be use only for passing face called external origin methods, like registered event listeners.\n     * It provides backward compatibility by getting instance facade.\n     *\n     * @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular\n     *   dependency).\n     * @todo Con. Maybe passing listener caller as an ioc from faced resolves this issue. To rethink later.\n     *\n     * @type {FacadeGetter}\n     */\n    _classPrivateFieldInitSpec(this, _facadeGetter, void 0);\n    /**\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _selectedCellBeforeTouchEnd, void 0);\n    /**\n     * @type {number[]}\n     */\n    _classPrivateFieldInitSpec(this, _dblClickTimeout, [null, null]);\n    /**\n     * @type {number[]}\n     */\n    _classPrivateFieldInitSpec(this, _dblClickOrigin, [null, null]);\n    _classPrivateFieldSet(_wtSettings, this, wtSettings);\n    _classPrivateFieldSet(_domBindings, this, domBindings);\n    _classPrivateFieldSet(_wtTable, this, wtTable);\n    _classPrivateFieldSet(_selectionManager, this, selectionManager);\n    _classPrivateFieldSet(_parent, this, parent);\n    _classPrivateFieldSet(_eventManager, this, eventManager);\n    _classPrivateFieldSet(_facadeGetter, this, facadeGetter);\n    this.registerEvents();\n  }\n\n  /**\n   * Adds listeners for mouse and touch events.\n   *\n   * @private\n   */\n  registerEvents() {\n    _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).holder, 'contextmenu', event => this.onContextMenu(event));\n    _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).TABLE, 'mouseover', event => this.onMouseOver(event));\n    _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).TABLE, 'mouseout', event => this.onMouseOut(event));\n    const initTouchEvents = () => {\n      _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).holder, 'touchstart', event => this.onTouchStart(event));\n      _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).holder, 'touchend', event => this.onTouchEnd(event));\n      if (!this.momentumScrolling) {\n        this.momentumScrolling = {};\n      }\n      _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).holder, 'scroll', () => {\n        clearTimeout(this.momentumScrolling._timeout);\n        if (!this.momentumScrolling.ongoing) {\n          _classPrivateFieldGet(_wtSettings, this).getSetting('onBeforeTouchScroll');\n        }\n        this.momentumScrolling.ongoing = true;\n        this.momentumScrolling._timeout = setTimeout(() => {\n          if (!this.touchApplied) {\n            this.momentumScrolling.ongoing = false;\n            _classPrivateFieldGet(_wtSettings, this).getSetting('onAfterMomentumScroll');\n          }\n        }, 200);\n      });\n    };\n    const initMouseEvents = () => {\n      _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).holder, 'mouseup', event => this.onMouseUp(event));\n      _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).holder, 'mousedown', event => this.onMouseDown(event));\n    };\n    if (Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isMobileBrowser\"])()) {\n      initTouchEvents();\n    } else {\n      // PC like devices which support both methods (touchscreen and ability to plug-in mouse).\n      if (Object(_helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isTouchSupported\"])()) {\n        initTouchEvents();\n      }\n      initMouseEvents();\n    }\n  }\n\n  /**\n   * Checks if an element is already selected.\n   *\n   * @private\n   * @param {Element} touchTarget An element to check.\n   * @returns {boolean}\n   */\n  selectedCellWasTouched(touchTarget) {\n    const cellUnderFinger = this.parentCell(touchTarget);\n    const coordsOfCellUnderFinger = cellUnderFinger.coords;\n    if (_classPrivateFieldGet(_selectedCellBeforeTouchEnd, this) && coordsOfCellUnderFinger) {\n      const [rowTouched, rowSelected] = [coordsOfCellUnderFinger.row, _classPrivateFieldGet(_selectedCellBeforeTouchEnd, this).from.row];\n      const [colTouched, colSelected] = [coordsOfCellUnderFinger.col, _classPrivateFieldGet(_selectedCellBeforeTouchEnd, this).from.col];\n      return rowTouched === rowSelected && colTouched === colSelected;\n    }\n    return false;\n  }\n\n  /**\n   * Gets closest TD or TH element.\n   *\n   * @private\n   * @param {Element} elem An element from the traversing starts.\n   * @returns {object} Contains coordinates and reference to TD or TH if it exists. Otherwise it's empty object.\n   */\n  parentCell(elem) {\n    const cell = {};\n    const TABLE = _classPrivateFieldGet(_wtTable, this).TABLE;\n    const TD = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"closestDown\"])(elem, ['TD', 'TH'], TABLE);\n    if (TD) {\n      cell.coords = _classPrivateFieldGet(_wtTable, this).getCoords(TD);\n      cell.TD = TD;\n    } else if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"hasClass\"])(elem, 'wtBorder') && Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"hasClass\"])(elem, 'current')) {\n      cell.coords = _classPrivateFieldGet(_selectionManager, this).getFocusSelection().cellRange.highlight;\n      cell.TD = _classPrivateFieldGet(_wtTable, this).getCell(cell.coords);\n    } else if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"hasClass\"])(elem, 'wtBorder') && Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"hasClass\"])(elem, 'area')) {\n      if (_classPrivateFieldGet(_selectionManager, this).getAreaSelection().cellRange) {\n        cell.coords = _classPrivateFieldGet(_selectionManager, this).getAreaSelection().cellRange.to;\n        cell.TD = _classPrivateFieldGet(_wtTable, this).getCell(cell.coords);\n      }\n    }\n    return cell;\n  }\n\n  /**\n   * OnMouseDown callback.\n   *\n   * @private\n   * @param {MouseEvent} event The mouse event object.\n   */\n  onMouseDown(event) {\n    const activeElement = _classPrivateFieldGet(_domBindings, this).rootDocument.activeElement;\n    const getParentNode = Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_2__[\"partial\"])(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getParent\"], event.target);\n    const realTarget = event.target;\n\n    // ignore non-TD focusable elements from mouse down processing\n    // (https://github.com/handsontable/handsontable/issues/3555)\n    if (!['TD', 'TH'].includes(activeElement.nodeName) && (realTarget === activeElement || getParentNode(0) === activeElement || getParentNode(1) === activeElement)) {\n      return;\n    }\n    const cell = this.parentCell(realTarget);\n    if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"hasClass\"])(realTarget, 'corner')) {\n      _classPrivateFieldGet(_wtSettings, this).getSetting('onCellCornerMouseDown', event, realTarget);\n    } else if (cell.TD && _classPrivateFieldGet(_wtSettings, this).has('onCellMouseDown')) {\n      this.callListener('onCellMouseDown', event, cell.coords, cell.TD);\n    }\n\n    // doubleclick reacts only for left mouse button or from touch events\n    if ((event.button === 0 || this.touchApplied) && cell.TD) {\n      _classPrivateFieldGet(_dblClickOrigin, this)[0] = cell.TD;\n      clearTimeout(_classPrivateFieldGet(_dblClickTimeout, this)[0]);\n      _classPrivateFieldGet(_dblClickTimeout, this)[0] = setTimeout(() => {\n        _classPrivateFieldGet(_dblClickOrigin, this)[0] = null;\n      }, 1000);\n    }\n  }\n\n  /**\n   * OnContextMenu callback.\n   *\n   * @private\n   * @param {MouseEvent} event The mouse event object.\n   */\n  onContextMenu(event) {\n    if (_classPrivateFieldGet(_wtSettings, this).has('onCellContextMenu')) {\n      const cell = this.parentCell(event.target);\n      if (cell.TD) {\n        this.callListener('onCellContextMenu', event, cell.coords, cell.TD);\n      }\n    }\n  }\n\n  /**\n   * OnMouseOver callback.\n   *\n   * @private\n   * @param {MouseEvent} event The mouse event object.\n   */\n  onMouseOver(event) {\n    if (!_classPrivateFieldGet(_wtSettings, this).has('onCellMouseOver')) {\n      return;\n    }\n    const table = _classPrivateFieldGet(_wtTable, this).TABLE;\n    const td = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"closestDown\"])(event.target, ['TD', 'TH'], table);\n    const parent = _classPrivateFieldGet(_parent, this) || this;\n    if (td && td !== parent.lastMouseOver && Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isChildOf\"])(td, table)) {\n      parent.lastMouseOver = td;\n      this.callListener('onCellMouseOver', event, _classPrivateFieldGet(_wtTable, this).getCoords(td), td);\n    }\n  }\n\n  /**\n   * OnMouseOut callback.\n   *\n   * @private\n   * @param {MouseEvent} event The mouse event object.\n   */\n  onMouseOut(event) {\n    if (!_classPrivateFieldGet(_wtSettings, this).has('onCellMouseOut')) {\n      return;\n    }\n    const table = _classPrivateFieldGet(_wtTable, this).TABLE;\n    const lastTD = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"closestDown\"])(event.target, ['TD', 'TH'], table);\n    const nextTD = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"closestDown\"])(event.relatedTarget, ['TD', 'TH'], table);\n    const parent = _classPrivateFieldGet(_parent, this) || this;\n    if (lastTD && lastTD !== nextTD && Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isChildOf\"])(lastTD, table)) {\n      this.callListener('onCellMouseOut', event, _classPrivateFieldGet(_wtTable, this).getCoords(lastTD), lastTD);\n      if (nextTD === null) {\n        parent.lastMouseOver = null;\n      }\n    }\n  }\n\n  /**\n   * OnMouseUp callback.\n   *\n   * @private\n   * @param {MouseEvent} event The mouse event object.\n   */\n  onMouseUp(event) {\n    const cell = this.parentCell(event.target);\n    if (cell.TD && _classPrivateFieldGet(_wtSettings, this).has('onCellMouseUp')) {\n      this.callListener('onCellMouseUp', event, cell.coords, cell.TD);\n    }\n\n    // if not left mouse button, and the origin event is not comes from touch\n    if (event.button !== 0 && !this.touchApplied) {\n      return;\n    }\n    if (cell.TD === _classPrivateFieldGet(_dblClickOrigin, this)[0] && cell.TD === _classPrivateFieldGet(_dblClickOrigin, this)[1]) {\n      if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"hasClass\"])(event.target, 'corner')) {\n        this.callListener('onCellCornerDblClick', event, cell.coords, cell.TD);\n      } else {\n        this.callListener('onCellDblClick', event, cell.coords, cell.TD);\n      }\n      _classPrivateFieldGet(_dblClickOrigin, this)[0] = null;\n      _classPrivateFieldGet(_dblClickOrigin, this)[1] = null;\n    } else if (cell.TD === _classPrivateFieldGet(_dblClickOrigin, this)[0]) {\n      _classPrivateFieldGet(_dblClickOrigin, this)[1] = cell.TD;\n      clearTimeout(_classPrivateFieldGet(_dblClickTimeout, this)[1]);\n      _classPrivateFieldGet(_dblClickTimeout, this)[1] = setTimeout(() => {\n        _classPrivateFieldGet(_dblClickOrigin, this)[1] = null;\n      }, 500);\n    }\n  }\n\n  /**\n   * OnTouchStart callback. Simulates mousedown event.\n   *\n   * @private\n   * @param {MouseEvent} event The mouse event object.\n   */\n  onTouchStart(event) {\n    _classPrivateFieldSet(_selectedCellBeforeTouchEnd, this, _classPrivateFieldGet(_selectionManager, this).getFocusSelection().cellRange);\n    this.touchApplied = true;\n    this.onMouseDown(event);\n  }\n\n  /**\n   * OnTouchEnd callback. Simulates mouseup event.\n   *\n   * @private\n   * @param {MouseEvent} event The mouse event object.\n   */\n  onTouchEnd(event) {\n    var _this$parentCell;\n    const target = event.target;\n    const parentCellCoords = (_this$parentCell = this.parentCell(target)) === null || _this$parentCell === void 0 ? void 0 : _this$parentCell.coords;\n    const isCellsRange = Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isDefined\"])(parentCellCoords) && parentCellCoords.row >= 0 && parentCellCoords.col >= 0;\n    const isEventCancelable = event.cancelable && isCellsRange && _classPrivateFieldGet(_wtSettings, this).getSetting('isDataViewInstance');\n\n    // To prevent accidental redirects or other actions that the interactive elements (e.q \"A\" link) do\n    // while the cell is highlighted, all touch events that are triggered on different cells are\n    // \"preventDefault\"'ed. The user can interact with the element (e.q. click on the link that opens\n    // a new page) only when the same cell was previously selected (see related PR #7980).\n    if (isEventCancelable) {\n      const interactiveElements = ['A', 'BUTTON', 'INPUT'];\n\n      // For browsers that use the WebKit as an engine (excluding Safari), there is a bug. The prevent\n      // default has to be called all the time. Otherwise, the second tap won't be triggered (probably\n      // caused by the native ~300ms delay - https://webkit.org/blog/5610/more-responsive-tapping-on-ios/).\n      // To make the interactive elements work, the event target element has to be check. If the element\n      // matches the allow-list, the event is not prevented.\n      if (Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isIOS\"])() && (Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isChromeWebKit\"])() || Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isFirefoxWebKit\"])()) && this.selectedCellWasTouched(target) && !interactiveElements.includes(target.tagName)) {\n        event.preventDefault();\n      } else if (!this.selectedCellWasTouched(target)) {\n        // For other browsers, prevent default is fired only for the first tap and only when the previous\n        // highlighted cell was different.\n        event.preventDefault();\n      }\n    }\n    this.onMouseUp(event);\n    this.touchApplied = false;\n  }\n\n  /**\n   * Call listener with backward compatibility.\n   *\n   * @private\n   * @param {string} name Name of listener.\n   * @param {MouseEvent} event The event object.\n   * @param {CellCoords} coords Coordinates.\n   * @param {HTMLElement} target Event target.\n   */\n  callListener(name, event, coords, target) {\n    const listener = _classPrivateFieldGet(_wtSettings, this).getSettingPure(name);\n    if (listener) {\n      listener(event, coords, target, _classPrivateFieldGet(_facadeGetter, this).call(this));\n    }\n  }\n\n  /**\n   * Clears double-click timeouts and destroys the internal eventManager instance.\n   */\n  destroy() {\n    clearTimeout(_classPrivateFieldGet(_dblClickTimeout, this)[0]);\n    clearTimeout(_classPrivateFieldGet(_dblClickTimeout, this)[1]);\n    _classPrivateFieldGet(_eventManager, this).destroy();\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (Event);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/event.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/facade/core.mjs":
/*!****************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/facade/core.mjs ***!
  \****************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return WalkontableFacade; });\n/* harmony import */ var _core_core_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/core.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/core/core.mjs\");\n/* harmony import */ var _core_base_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/_base.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/core/_base.mjs\");\n\n\n/**\n * This layer cares about backward compatibility.\n *\n * @class WalkontableFacade\n * @augments Walkontable\n * @inheritDoc\n */\nclass WalkontableFacade {\n  /**\n   * @param {SettingsPure|Walkontable} settingsOrInstance The Walkontable settings.\n   */\n  constructor(settingsOrInstance) {\n    if (settingsOrInstance instanceof _core_base_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]) {\n      this._wot = settingsOrInstance;\n    } else {\n      this._initFromSettings(settingsOrInstance);\n    }\n  }\n  _initFromSettings(settings) {\n    settings.facade = instance => {\n      const facade = new WalkontableFacade(instance);\n      return () => facade;\n    };\n    this._wot = new _core_core_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"](settings.table, settings);\n  }\n  get guid() {\n    return this._wot.guid;\n  }\n  get rootDocument() {\n    return this._wot.domBindings.rootDocument;\n  }\n  get rootWindow() {\n    return this._wot.domBindings.rootWindow;\n  }\n  get wtSettings() {\n    return this._wot.wtSettings; // todo create facade\n  }\n  get cloneSource() {\n    return this._wot.cloneSource; // todo create facade\n  }\n  get cloneOverlay() {\n    return this._wot.cloneOverlay; // todo create facade\n  }\n  get selectionManager() {\n    return this._wot.selectionManager; // todo create facade\n  }\n  get wtViewport() {\n    return this._wot.wtViewport; // todo create facade\n  }\n  get wtOverlays() {\n    return this._wot.wtOverlays; // todo create facade\n  }\n  get wtTable() {\n    return this._wot.wtTable; // todo create facade\n  }\n  get wtEvent() {\n    return this._wot.wtEvent; // todo create facade\n  }\n  get wtScroll() {\n    return this._wot.wtScroll; // todo create facade\n  }\n  get drawn() {\n    return this._wot.drawn;\n  }\n  set drawn(value) {\n    this._wot.drawn = value;\n  }\n  get drawInterrupted() {\n    return this._wot.drawInterrupted;\n  }\n  set drawInterrupted(value) {\n    this._wot.drawInterrupted = value;\n  }\n  get lastMouseOver() {\n    return this._wot.lastMouseOver;\n  }\n  set lastMouseOver(value) {\n    this._wot.lastMouseOver = value;\n  }\n  get momentumScrolling() {\n    return this._wot.momentumScrolling;\n  }\n  set momentumScrolling(value) {\n    this._wot.momentumScrolling = value;\n  }\n  get touchApplied() {\n    return this._wot.touchApplied;\n  }\n  set touchApplied(value) {\n    this._wot.touchApplied = value;\n  }\n  get domBindings() {\n    return this._wot.domBindings;\n  }\n  get eventListeners() {\n    return this._wot.eventListeners;\n  }\n  set eventListeners(value) {\n    this._wot.eventListeners = value;\n  }\n  get eventManager() {\n    return this._wot.eventManager;\n  }\n  createCellCoords(row, column) {\n    return this._wot.createCellCoords(row, column);\n  }\n  createCellRange(highlight, from, to) {\n    return this._wot.createCellRange(highlight, from, to);\n  }\n  draw() {\n    let fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    this._wot.draw(fastDraw);\n    return this;\n  }\n  getCell(coords) {\n    let topmost = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    return this._wot.getCell(coords, topmost);\n  }\n  scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft) {\n    return this._wot.scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft);\n  }\n  scrollViewportHorizontally(column, snapToRight, snapToLeft) {\n    return this._wot.scrollViewportHorizontally(column, snapToRight, snapToLeft);\n  }\n  scrollViewportVertically(row, snapToTop, snapToBottom) {\n    return this._wot.scrollViewportVertically(row, snapToTop, snapToBottom);\n  }\n  getViewport() {\n    return this._wot.getViewport();\n  }\n  getOverlayName() {\n    return this._wot.cloneOverlay ? this._wot.cloneOverlay.type : 'master';\n  }\n  getOverlayByName(overlayName) {\n    return this._wot.getOverlayByName(overlayName);\n  }\n  exportSettingsAsClassNames() {\n    return this._wot.exportSettingsAsClassNames();\n  }\n  update(settings, value) {\n    this._wot.wtSettings.update(settings, value);\n    return this;\n  }\n  getSetting(key, param1, param2, param3, param4) {\n    return this._wot.wtSettings.getSetting(key, param1, param2, param3, param4);\n  }\n  hasSetting(key) {\n    return this._wot.wtSettings.hasSetting(key);\n  }\n  destroy() {\n    this._wot.destroy();\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/facade/core.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/filter/column.mjs":
/*!******************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/filter/column.mjs ***!
  \******************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @class ColumnFilter\n */\nclass ColumnFilter {\n  /**\n   * @param {number} offset The scroll horizontal offset.\n   * @param {number} total The total width of the table.\n   * @param {number} countTH The number of rendered row headers.\n   */\n  constructor(offset, total, countTH) {\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"offset\", void 0);\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"total\", void 0);\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"countTH\", void 0);\n    this.offset = offset;\n    this.total = total;\n    this.countTH = countTH;\n  }\n\n  /**\n   * @param {number} index The visual column index.\n   * @returns {number}\n   */\n  offsetted(index) {\n    return index + this.offset;\n  }\n\n  /**\n   * @param {number} index The visual column index.\n   * @returns {number}\n   */\n  unOffsetted(index) {\n    return index - this.offset;\n  }\n\n  /**\n   * @param {number} index The visual column index.\n   * @returns {number}\n   */\n  renderedToSource(index) {\n    return this.offsetted(index);\n  }\n\n  /**\n   * @param {number} index The visual column index.\n   * @returns {number}\n   */\n  sourceToRendered(index) {\n    return this.unOffsetted(index);\n  }\n\n  /**\n   * @param {number} index The visual column index.\n   * @returns {number}\n   */\n  offsettedTH(index) {\n    return index - this.countTH;\n  }\n\n  /**\n   * @param {number} index The visual column index.\n   * @returns {number}\n   */\n  unOffsettedTH(index) {\n    return index + this.countTH;\n  }\n\n  /**\n   * @param {number} index The visual column index.\n   * @returns {number}\n   */\n  visibleRowHeadedColumnToSourceColumn(index) {\n    return this.renderedToSource(this.offsettedTH(index));\n  }\n\n  /**\n   * @param {number} index The visual column index.\n   * @returns {number}\n   */\n  sourceColumnToVisibleRowHeadedColumn(index) {\n    return this.unOffsettedTH(this.sourceToRendered(index));\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (ColumnFilter);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/filter/column.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/filter/row.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/filter/row.mjs ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @class RowFilter\n */\nclass RowFilter {\n  /**\n   * @param {number} offset The scroll vertical offset.\n   * @param {number} total The total height of the table.\n   * @param {number} countTH The number of rendered column headers.\n   */\n  constructor(offset, total, countTH) {\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"offset\", void 0);\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"total\", void 0);\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"countTH\", void 0);\n    this.offset = offset;\n    this.total = total;\n    this.countTH = countTH;\n  }\n\n  /**\n   * @param {number} index The visual row index.\n   * @returns {number}\n   */\n  offsetted(index) {\n    return index + this.offset;\n  }\n\n  /**\n   * @param {number} index The visual row index.\n   * @returns {number}\n   */\n  unOffsetted(index) {\n    return index - this.offset;\n  }\n\n  /**\n   * @param {number} index The visual row index.\n   * @returns {number}\n   */\n  renderedToSource(index) {\n    return this.offsetted(index);\n  }\n\n  /**\n   * @param {number} index The visual row index.\n   * @returns {number}\n   */\n  sourceToRendered(index) {\n    return this.unOffsetted(index);\n  }\n\n  /**\n   * @param {number} index The visual row index.\n   * @returns {number}\n   */\n  offsettedTH(index) {\n    return index - this.countTH;\n  }\n\n  /**\n   * @param {number} index The visual row index.\n   * @returns {number}\n   */\n  unOffsettedTH(index) {\n    return index + this.countTH;\n  }\n\n  /**\n   * @param {number} index The visual row index.\n   * @returns {number}\n   */\n  visibleColHeadedRowToSourceRow(index) {\n    return this.renderedToSource(this.offsettedTH(index));\n  }\n\n  /**\n   * @param {number} index The visual row index.\n   * @returns {number}\n   */\n  sourceRowToVisibleColHeadedRow(index) {\n    return this.unOffsettedTH(this.sourceToRendered(index));\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (RowFilter);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/filter/row.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/index.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/index.mjs ***!
  \**********************************************************************/
/*! exports provided: DEFAULT_ROW_HEIGHT, DEFAULT_COLUMN_WIDTH, ViewportColumnsCalculator, ViewportRowsCalculator, CellCoords, CellRange, default, Core, Selection, HIGHLIGHT_ACTIVE_HEADER_TYPE, HIGHLIGHT_AREA_TYPE, HIGHLIGHT_FOCUS_TYPE, HIGHLIGHT_FILL_TYPE, HIGHLIGHT_HEADER_TYPE, HIGHLIGHT_ROW_TYPE, HIGHLIGHT_COLUMN_TYPE, HIGHLIGHT_CUSTOM_SELECTION_TYPE, Renderer, OrderView, SharedOrderView, getListenersCounter */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./calculator/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_ROW_HEIGHT\", function() { return _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"DEFAULT_ROW_HEIGHT\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_COLUMN_WIDTH\", function() { return _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"DEFAULT_COLUMN_WIDTH\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ViewportColumnsCalculator\", function() { return _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"ViewportColumnsCalculator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ViewportRowsCalculator\", function() { return _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"ViewportRowsCalculator\"]; });\n\n/* harmony import */ var _cell_coords_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cell/coords.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/cell/coords.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CellCoords\", function() { return _cell_coords_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _cell_range_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cell/range.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/cell/range.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CellRange\", function() { return _cell_range_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _facade_core_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./facade/core.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/facade/core.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _facade_core_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Core\", function() { return _facade_core_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _selection_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./selection/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/selection/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Selection\", function() { return _selection_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"Selection\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HIGHLIGHT_ACTIVE_HEADER_TYPE\", function() { return _selection_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"ACTIVE_HEADER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HIGHLIGHT_AREA_TYPE\", function() { return _selection_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"AREA_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HIGHLIGHT_FOCUS_TYPE\", function() { return _selection_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"FOCUS_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HIGHLIGHT_FILL_TYPE\", function() { return _selection_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"FILL_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HIGHLIGHT_HEADER_TYPE\", function() { return _selection_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"HEADER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HIGHLIGHT_ROW_TYPE\", function() { return _selection_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"ROW_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HIGHLIGHT_COLUMN_TYPE\", function() { return _selection_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"COLUMN_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HIGHLIGHT_CUSTOM_SELECTION_TYPE\", function() { return _selection_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CUSTOM_SELECTION_TYPE\"]; });\n\n/* harmony import */ var _renderer_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./renderer/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/renderer/index.mjs\");\n/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, \"Renderer\", function() { return _renderer_index_mjs__WEBPACK_IMPORTED_MODULE_5__; });\n/* harmony import */ var _utils_orderView_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/orderView/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OrderView\", function() { return _utils_orderView_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"OrderView\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SharedOrderView\", function() { return _utils_orderView_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"SharedOrderView\"]; });\n\n/* harmony import */ var _eventManager_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../eventManager.mjs */ \"./node_modules/handsontable/eventManager.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getListenersCounter\", function() { return _eventManager_mjs__WEBPACK_IMPORTED_MODULE_7__[\"getListenersCounter\"]; });\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/overlay/_base.mjs":
/*!******************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/overlay/_base.mjs ***!
  \******************************************************************************/
/*! exports provided: Overlay */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Overlay\", function() { return Overlay; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/constants.mjs\");\n/* harmony import */ var _core_clone_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/clone.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/core/clone.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n/**\n * Creates an overlay over the original Walkontable instance. The overlay renders the clone of the original Walkontable\n * and (optionally) implements behavior needed for native horizontal and vertical scrolling.\n *\n * @abstract\n * @class Overlay\n * @property {Walkontable} wot The Walkontable instance.\n */\nclass Overlay {\n  /**\n   * @param {Walkontable} wotInstance The Walkontable instance. @TODO refactoring: check if can be deleted.\n   * @param {FacadeGetter} facadeGetter Function which return proper facade.\n   * @param {CLONE_TYPES_ENUM} type The overlay type name (clone name).\n   * @param {Settings} wtSettings The Walkontable settings.\n   * @param {DomBindings} domBindings Dom elements bound to the current instance.\n   */\n  constructor(wotInstance, facadeGetter, type, wtSettings, domBindings) {\n    /**\n     *  The Walkontable settings.\n     *\n     * @private\n     * @type {Settings}\n     */\n    _defineProperty(this, \"wtSettings\", null);\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"defineGetter\"])(this, 'wot', wotInstance, {\n      writable: false\n    });\n    this.domBindings = domBindings;\n    this.facadeGetter = facadeGetter;\n    this.wtSettings = wtSettings;\n    const {\n      TABLE,\n      hider,\n      spreader,\n      holder,\n      wtRootElement\n    } = this.wot.wtTable; // todo ioc\n\n    // legacy support, deprecated in the future\n    this.instance = this.wot;\n    this.type = type;\n    this.mainTableScrollableElement = null;\n    this.TABLE = TABLE;\n    this.hider = hider;\n    this.spreader = spreader;\n    this.holder = holder;\n    this.wtRootElement = wtRootElement;\n    this.trimmingContainer = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getTrimmingContainer\"])(this.hider.parentNode.parentNode);\n    this.needFullRender = this.shouldBeRendered();\n    this.clone = this.makeClone();\n  }\n\n  /**\n   * Checks if the overlay rendering state has changed.\n   *\n   * @returns {boolean}\n   */\n  hasRenderingStateChanged() {\n    return this.needFullRender !== this.shouldBeRendered();\n  }\n\n  /**\n   * Updates internal state with an information about the need of full rendering of the overlay in the next draw cycles.\n   *\n   * If the state is changed to render the overlay, the `needFullRender` property is set to `true` which means that\n   * the overlay will be fully rendered in the current draw cycle. If the state is changed to not render the overlay,\n   * the `needFullRender` property is set to `false` which means that the overlay will be fully rendered in the\n   * current draw cycle but it will not be rendered in the next draw cycles.\n   *\n   * @param {'before' | 'after'} drawPhase The phase of the rendering process.\n   */\n  updateStateOfRendering(drawPhase) {\n    if (drawPhase === 'before' && this.shouldBeRendered()) {\n      this.needFullRender = true;\n    } else if (drawPhase === 'after' && !this.shouldBeRendered()) {\n      this.needFullRender = false;\n    }\n  }\n\n  /**\n   * Checks if overlay should be fully rendered.\n   *\n   * @returns {boolean}\n   */\n  shouldBeRendered() {\n    return true;\n  }\n\n  /**\n   * Update the trimming container.\n   */\n  updateTrimmingContainer() {\n    this.trimmingContainer = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getTrimmingContainer\"])(this.hider.parentNode.parentNode);\n  }\n\n  /**\n   * Update the main scrollable element.\n   */\n  updateMainScrollableElement() {\n    const {\n      wtTable\n    } = this.wot;\n    const {\n      rootWindow\n    } = this.domBindings;\n    if (rootWindow.getComputedStyle(wtTable.wtRootElement.parentNode).getPropertyValue('overflow') === 'hidden') {\n      this.mainTableScrollableElement = this.wot.wtTable.holder;\n    } else {\n      this.mainTableScrollableElement = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollableElement\"])(wtTable.TABLE);\n    }\n  }\n\n  /**\n   * Calculates coordinates of the provided element, relative to the root Handsontable element.\n   * NOTE: The element needs to be a child of the overlay in order for the method to work correctly.\n   *\n   * @param {HTMLElement} element The cell element to calculate the position for.\n   * @param {number} rowIndex Visual row index.\n   * @param {number} columnIndex Visual column index.\n   * @returns {{top: number, start: number}|undefined}\n   */\n  getRelativeCellPosition(element, rowIndex, columnIndex) {\n    if (this.clone.wtTable.holder.contains(element) === false) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_3__[\"warn\"])(`The provided element is not a child of the ${this.type} overlay`);\n      return;\n    }\n    const windowScroll = this.mainTableScrollableElement === this.domBindings.rootWindow;\n    const fixedColumnStart = columnIndex < this.wtSettings.getSetting('fixedColumnsStart');\n    const fixedRowTop = rowIndex < this.wtSettings.getSetting('fixedRowsTop');\n    const fixedRowBottom = rowIndex >= this.wtSettings.getSetting('totalRows') - this.wtSettings.getSetting('fixedRowsBottom');\n    const spreader = this.clone.wtTable.spreader;\n    const spreaderOffset = {\n      start: this.getRelativeStartPosition(spreader),\n      top: spreader.offsetTop\n    };\n    const elementOffset = {\n      start: this.getRelativeStartPosition(element),\n      top: element.offsetTop\n    };\n    let offsetObject = null;\n    if (windowScroll) {\n      offsetObject = this.getRelativeCellPositionWithinWindow(fixedRowTop, fixedColumnStart, elementOffset, spreaderOffset);\n    } else {\n      offsetObject = this.getRelativeCellPositionWithinHolder(fixedRowTop, fixedRowBottom, fixedColumnStart, elementOffset, spreaderOffset);\n    }\n    return offsetObject;\n  }\n\n  /**\n   * Get inline start value depending of direction.\n   *\n   * @param {HTMLElement} el Element.\n   * @returns {number}\n   */\n  getRelativeStartPosition(el) {\n    return this.isRtl() ? el.offsetParent.offsetWidth - el.offsetLeft - el.offsetWidth : el.offsetLeft;\n  }\n\n  /**\n   * Calculates coordinates of the provided element, relative to the root Handsontable element within a table with window\n   * as a scrollable element.\n   *\n   * @private\n   * @param {boolean} onFixedRowTop `true` if the coordinates point to a place within the top fixed rows.\n   * @param {boolean} onFixedColumn `true` if the coordinates point to a place within the fixed columns.\n   * @param {number} elementOffset Offset position of the cell element.\n   * @param {number} spreaderOffset Offset position of the spreader element.\n   * @returns {{top: number, left: number}}\n   */\n  getRelativeCellPositionWithinWindow(onFixedRowTop, onFixedColumn, elementOffset, spreaderOffset) {\n    const absoluteRootElementPosition = this.wot.wtTable.wtRootElement.getBoundingClientRect(); // todo refactoring: DEMETER\n    let horizontalOffset = 0;\n    let verticalOffset = 0;\n    if (!onFixedColumn) {\n      horizontalOffset = spreaderOffset.start;\n    } else {\n      let absoluteRootElementStartPosition = absoluteRootElementPosition.left;\n      if (this.isRtl()) {\n        absoluteRootElementStartPosition = this.domBindings.rootWindow.innerWidth - (absoluteRootElementPosition.left + absoluteRootElementPosition.width + Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollbarWidth\"])());\n      }\n      horizontalOffset = absoluteRootElementStartPosition <= 0 ? -1 * absoluteRootElementStartPosition : 0;\n    }\n    if (onFixedRowTop) {\n      const absoluteOverlayPosition = this.clone.wtTable.TABLE.getBoundingClientRect();\n      verticalOffset = absoluteOverlayPosition.top - absoluteRootElementPosition.top;\n    } else {\n      verticalOffset = spreaderOffset.top;\n    }\n    return {\n      start: elementOffset.start + horizontalOffset,\n      top: elementOffset.top + verticalOffset\n    };\n  }\n\n  /**\n   * Calculates coordinates of the provided element, relative to the root Handsontable element within a table with window\n   * as a scrollable element.\n   *\n   * @private\n   * @param {boolean} onFixedRowTop `true` if the coordinates point to a place within the top fixed rows.\n   * @param {boolean} onFixedRowBottom `true` if the coordinates point to a place within the bottom fixed rows.\n   * @param {boolean} onFixedColumn `true` if the coordinates point to a place within the fixed columns.\n   * @param {number} elementOffset Offset position of the cell element.\n   * @param {number} spreaderOffset Offset position of the spreader element.\n   * @returns {{top: number, left: number}}\n   */\n  getRelativeCellPositionWithinHolder(onFixedRowTop, onFixedRowBottom, onFixedColumn, elementOffset, spreaderOffset) {\n    const tableScrollPosition = {\n      horizontal: this.wot.wtOverlays.inlineStartOverlay.getScrollPosition(),\n      vertical: this.wot.wtOverlays.topOverlay.getScrollPosition()\n    };\n    let horizontalOffset = 0;\n    let verticalOffset = 0;\n    if (!onFixedColumn) {\n      horizontalOffset = tableScrollPosition.horizontal - spreaderOffset.start;\n    }\n    if (onFixedRowBottom) {\n      const absoluteRootElementPosition = this.wot.wtTable.wtRootElement.getBoundingClientRect(); // todo refactoring: DEMETER\n      const absoluteOverlayPosition = this.clone.wtTable.TABLE.getBoundingClientRect(); // todo refactoring: DEMETER\n\n      verticalOffset = absoluteOverlayPosition.top * -1 + absoluteRootElementPosition.top;\n    } else if (!onFixedRowTop) {\n      verticalOffset = tableScrollPosition.vertical - spreaderOffset.top;\n    }\n    return {\n      start: elementOffset.start - horizontalOffset,\n      top: elementOffset.top - verticalOffset\n    };\n  }\n\n  /**\n   * Make a clone of table for overlay.\n   *\n   * @returns {Clone}\n   */\n  makeClone() {\n    if (_constants_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CLONE_TYPES\"].indexOf(this.type) === -1) {\n      throw new Error(`Clone type \"${this.type}\" is not supported.`);\n    }\n    const {\n      wtTable,\n      wtSettings\n    } = this.wot;\n    const {\n      rootDocument,\n      rootWindow\n    } = this.domBindings;\n    const clone = rootDocument.createElement('div');\n    const clonedTable = rootDocument.createElement('table');\n    const tableParent = wtTable.wtRootElement.parentNode;\n    clone.className = `${_constants_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CLONE_CLASS_NAMES\"].get(this.type)} handsontable`;\n    clone.setAttribute('dir', this.isRtl() ? 'rtl' : 'ltr');\n    clone.style.position = 'absolute';\n    clone.style.top = 0;\n    clone.style.overflow = 'visible';\n    if (this.isRtl()) {\n      clone.style.right = 0;\n    } else {\n      clone.style.left = 0;\n    }\n    if (wtSettings.getSetting('ariaTags')) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"setAttribute\"])(clone, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_6__[\"A11Y_PRESENTATION\"])()]);\n    }\n    clonedTable.className = wtTable.TABLE.className;\n\n    // Clone the main table's `role` attribute to the cloned table.\n    const mainTableRole = wtTable.TABLE.getAttribute('role');\n    if (mainTableRole) {\n      clonedTable.setAttribute('role', wtTable.TABLE.getAttribute('role'));\n    }\n    clone.appendChild(clonedTable);\n    tableParent.appendChild(clone);\n    const preventOverflow = this.wtSettings.getSetting('preventOverflow');\n    if (preventOverflow === true || preventOverflow === 'horizontal' && this.type === _constants_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CLONE_TOP\"] || preventOverflow === 'vertical' && this.type === _constants_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CLONE_INLINE_START\"]) {\n      this.mainTableScrollableElement = rootWindow;\n    } else if (rootWindow.getComputedStyle(tableParent).getPropertyValue('overflow') === 'hidden') {\n      this.mainTableScrollableElement = wtTable.holder;\n    } else {\n      this.mainTableScrollableElement = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollableElement\"])(wtTable.TABLE);\n    }\n\n    // Create a new instance of the Walkontable class\n    return new _core_clone_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"](clonedTable, this.wtSettings, {\n      // todo ioc factory\n      source: this.wot,\n      overlay: this,\n      viewport: this.wot.wtViewport,\n      // todo ioc , or factor func if used only here\n      event: this.wot.wtEvent,\n      // todo ioc , or factory func if used only here\n      selectionManager: this.wot.selectionManager // todo ioc , or factory func if used only here\n    });\n  }\n\n  /**\n   * Refresh/Redraw overlay.\n   *\n   * @param {boolean} [fastDraw=false] When `true`, try to refresh only the positions of borders without rerendering\n   *                                   the data. It will only work if Table.draw() does not force\n   *                                   rendering anyway.\n   */\n  refresh() {\n    let fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    if (this.needFullRender) {\n      this.clone.draw(fastDraw);\n    }\n  }\n\n  /**\n   * Reset overlay styles to initial values.\n   */\n  reset() {\n    const holder = this.clone.wtTable.holder; // todo refactoring: DEMETER\n    const hider = this.clone.wtTable.hider; // todo refactoring: DEMETER\n    const holderStyle = holder.style;\n    const hiderStyle = hider.style;\n    const rootStyle = holder.parentNode.style;\n    [holderStyle, hiderStyle, rootStyle].forEach(style => {\n      style.width = '';\n      style.height = '';\n    });\n  }\n\n  /**\n   * Determine if Walkontable is running in RTL mode.\n   *\n   * @returns {boolean}\n   */\n  isRtl() {\n    return this.wtSettings.getSetting('rtlMode');\n  }\n\n  /**\n   * Destroy overlay instance.\n   */\n  destroy() {\n    this.clone.eventManager.destroy(); // todo check if it is good place for that operation\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/overlay/_base.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/overlay/bottom.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/overlay/bottom.mjs ***!
  \*******************************************************************************/
/*! exports provided: BottomOverlay */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BottomOverlay\", function() { return BottomOverlay; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _table_bottom_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../table/bottom.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/bottom.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/_base.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/constants.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n/**\n * @class BottomOverlay\n */\nclass BottomOverlay extends _base_mjs__WEBPACK_IMPORTED_MODULE_3__[\"Overlay\"] {\n  /**\n   * @param {Walkontable} wotInstance The Walkontable instance. @TODO refactoring: check if can be deleted.\n   * @param {FacadeGetter} facadeGetter Function which return proper facade.\n   * @param {Settings} wtSettings The Walkontable settings.\n   * @param {DomBindings} domBindings Dom elements bound to the current instance.\n   */\n  constructor(wotInstance, facadeGetter, wtSettings, domBindings) {\n    super(wotInstance, facadeGetter, _constants_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CLONE_BOTTOM\"], wtSettings, domBindings);\n    /**\n     * Cached value which holds the previous value of the `fixedRowsBottom` option.\n     * It is used as a comparison value that can be used to detect changes in that value.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"cachedFixedRowsBottom\", -1);\n    this.cachedFixedRowsBottom = this.wtSettings.getSetting('fixedRowsBottom');\n  }\n\n  /**\n   * Factory method to create a subclass of `Table` that is relevant to this overlay.\n   *\n   * @see Table#constructor\n   * @param {...*} args Parameters that will be forwarded to the `Table` constructor.\n   * @returns {BottomOverlayTable}\n   */\n  createTable() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return new _table_bottom_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"](...args);\n  }\n\n  /**\n   * Checks if overlay should be fully rendered.\n   *\n   * @returns {boolean}\n   */\n  shouldBeRendered() {\n    return this.wtSettings.getSetting('shouldRenderBottomOverlay');\n  }\n\n  /**\n   * Updates the top overlay position.\n   *\n   * @returns {boolean}\n   */\n  resetFixedPosition() {\n    if (!this.needFullRender || !this.shouldBeRendered() || !this.wot.wtTable.holder.parentNode) {\n      // removed from DOM\n      return false;\n    }\n    const {\n      rootWindow\n    } = this.domBindings;\n    const overlayRoot = this.clone.wtTable.holder.parentNode;\n    overlayRoot.style.top = '';\n    let overlayPosition = 0;\n    const preventOverflow = this.wtSettings.getSetting('preventOverflow');\n    if (this.trimmingContainer === rootWindow && (!preventOverflow || preventOverflow !== 'vertical')) {\n      overlayPosition = this.getOverlayOffset();\n      overlayRoot.style.bottom = `${overlayPosition}px`;\n    } else {\n      overlayPosition = this.getScrollPosition();\n      this.repositionOverlay();\n    }\n    const positionChanged = this.adjustHeaderBordersPosition(overlayPosition);\n    this.adjustElementsSize();\n    return positionChanged;\n  }\n\n  /**\n   * Updates the bottom overlay position.\n   */\n  repositionOverlay() {\n    const {\n      wtTable,\n      wtViewport\n    } = this.wot;\n    const {\n      rootDocument\n    } = this.domBindings;\n    const cloneRoot = this.clone.wtTable.holder.parentNode;\n    let bottomOffset = 0;\n    if (!wtViewport.hasVerticalScroll()) {\n      bottomOffset += wtViewport.getWorkspaceHeight() - wtTable.getTotalHeight();\n    }\n    if (wtViewport.hasVerticalScroll() && wtViewport.hasHorizontalScroll()) {\n      bottomOffset += Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollbarWidth\"])(rootDocument);\n    }\n    cloneRoot.style.bottom = `${bottomOffset}px`;\n  }\n\n  /**\n   * Sets the main overlay's vertical scroll position.\n   *\n   * @param {number} pos The scroll position.\n   * @returns {boolean}\n   */\n  setScrollPosition(pos) {\n    const {\n      rootWindow\n    } = this.domBindings;\n    let result = false;\n    if (this.mainTableScrollableElement === rootWindow) {\n      rootWindow.scrollTo(Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getWindowScrollLeft\"])(rootWindow), pos);\n      result = true;\n    } else if (this.mainTableScrollableElement.scrollTop !== pos) {\n      this.mainTableScrollableElement.scrollTop = pos;\n      result = true;\n    }\n    return result;\n  }\n\n  /**\n   * Triggers onScroll hook callback.\n   */\n  onScroll() {\n    this.wtSettings.getSetting('onScrollHorizontally');\n  }\n\n  /**\n   * Calculates total sum cells height.\n   *\n   * @param {number} from Row index which calculates started from.\n   * @param {number} to Row index where calculation is finished.\n   * @returns {number} Height sum.\n   */\n  sumCellSizes(from, to) {\n    const {\n      wtTable,\n      wtSettings\n    } = this.wot;\n    const defaultRowHeight = wtSettings.getSetting('defaultRowHeight');\n    let row = from;\n    let sum = 0;\n    while (row < to) {\n      const height = wtTable.getRowHeight(row);\n      sum += height === undefined ? defaultRowHeight : height;\n      row += 1;\n    }\n    return sum;\n  }\n\n  /**\n   * Adjust overlay root element, children and master table element sizes (width, height).\n   */\n  adjustElementsSize() {\n    this.updateTrimmingContainer();\n    if (this.needFullRender) {\n      this.adjustRootElementSize();\n      this.adjustRootChildrenSize();\n    }\n  }\n\n  /**\n   * Adjust overlay root element size (width and height).\n   */\n  adjustRootElementSize() {\n    const {\n      wtTable,\n      wtViewport\n    } = this.wot;\n    const {\n      rootDocument,\n      rootWindow\n    } = this.domBindings;\n    const scrollbarWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollbarWidth\"])(rootDocument);\n    const overlayRoot = this.clone.wtTable.holder.parentNode;\n    const overlayRootStyle = overlayRoot.style;\n    const preventOverflow = this.wtSettings.getSetting('preventOverflow');\n    if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {\n      let width = wtViewport.getWorkspaceWidth();\n      if (this.wot.wtOverlays.hasScrollbarRight) {\n        width -= scrollbarWidth;\n      }\n      width = Math.min(width, wtTable.wtRootElement.scrollWidth);\n      overlayRootStyle.width = `${width}px`;\n    } else {\n      overlayRootStyle.width = '';\n    }\n    this.clone.wtTable.holder.style.width = overlayRootStyle.width;\n    let tableHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"outerHeight\"])(this.clone.wtTable.TABLE);\n    if (!this.wot.wtTable.hasDefinedSize()) {\n      tableHeight = 0;\n    }\n    overlayRootStyle.height = `${tableHeight}px`;\n  }\n\n  /**\n   * Adjust overlay root childs size.\n   */\n  adjustRootChildrenSize() {\n    const {\n      holder\n    } = this.clone.wtTable;\n    this.clone.wtTable.hider.style.width = this.hider.style.width;\n    holder.style.width = holder.parentNode.style.width;\n    holder.style.height = holder.parentNode.style.height;\n  }\n\n  /**\n   * Adjust the overlay dimensions and position.\n   */\n  applyToDOM() {\n    const total = this.wtSettings.getSetting('totalRows');\n    if (typeof this.wot.wtViewport.rowsRenderCalculator.startPosition === 'number') {\n      this.spreader.style.top = `${this.wot.wtViewport.rowsRenderCalculator.startPosition}px`;\n    } else if (total === 0) {\n      // can happen if there are 0 rows\n      this.spreader.style.top = '0';\n    } else {\n      throw new Error('Incorrect value of the rowsRenderCalculator');\n    }\n    this.spreader.style.bottom = '';\n    if (this.needFullRender) {\n      this.syncOverlayOffset();\n    }\n  }\n\n  /**\n   * Synchronize calculated left position to an element.\n   */\n  syncOverlayOffset() {\n    const styleProperty = this.isRtl() ? 'right' : 'left';\n    const {\n      spreader\n    } = this.clone.wtTable;\n    if (typeof this.wot.wtViewport.columnsRenderCalculator.startPosition === 'number') {\n      spreader.style[styleProperty] = `${this.wot.wtViewport.columnsRenderCalculator.startPosition}px`;\n    } else {\n      spreader.style[styleProperty] = '';\n    }\n  }\n\n  /**\n   * Scrolls vertically to a row.\n   *\n   * @param {number} sourceRow Row index which you want to scroll to.\n   * @param {boolean} [bottomEdge=false] If `true`, scrolls according to the bottom edge (top edge is by default).\n   */\n  scrollTo(sourceRow, bottomEdge) {\n    let newY = this.getTableParentOffset();\n    const sourceInstance = this.wot.cloneSource ? this.wot.cloneSource : this.wot;\n    const mainHolder = sourceInstance.wtTable.holder;\n    let scrollbarCompensation = 0;\n    if (bottomEdge && mainHolder.offsetHeight !== mainHolder.clientHeight) {\n      scrollbarCompensation = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollbarWidth\"])(this.domBindings.rootDocument);\n    }\n    if (bottomEdge) {\n      newY += this.sumCellSizes(0, sourceRow + 1);\n      newY -= this.wot.wtViewport.getViewportHeight();\n      // Fix 1 pixel offset when cell is selected\n      newY += 1;\n    } else {\n      newY += this.sumCellSizes(this.wtSettings.getSetting('fixedRowsBottom'), sourceRow);\n    }\n    newY += scrollbarCompensation;\n    this.setScrollPosition(newY);\n  }\n\n  /**\n   * Gets table parent top position.\n   *\n   * @returns {number}\n   */\n  getTableParentOffset() {\n    if (this.mainTableScrollableElement === this.domBindings.rootWindow) {\n      return this.wot.wtTable.holderOffset.top;\n    }\n    return 0;\n  }\n\n  /**\n   * Gets the main overlay's vertical scroll position.\n   *\n   * @returns {number} Main table's vertical scroll position.\n   */\n  getScrollPosition() {\n    return Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollTop\"])(this.mainTableScrollableElement, this.domBindings.rootWindow);\n  }\n\n  /**\n   * Gets the main overlay's vertical overlay offset.\n   *\n   * @returns {number} Main table's vertical overlay offset.\n   */\n  getOverlayOffset() {\n    const {\n      rootWindow\n    } = this.domBindings;\n    const preventOverflow = this.wtSettings.getSetting('preventOverflow');\n    let overlayOffset = 0;\n    if (this.trimmingContainer === rootWindow && (!preventOverflow || preventOverflow !== 'vertical')) {\n      const rootHeight = this.wot.wtTable.getTotalHeight();\n      const overlayRootHeight = this.clone.wtTable.getTotalHeight();\n      const maxOffset = rootHeight - overlayRootHeight;\n      const docClientHeight = this.domBindings.rootDocument.documentElement.clientHeight;\n      overlayOffset = Math.max(this.getTableParentOffset() - this.getScrollPosition() - docClientHeight + rootHeight, 0);\n      if (overlayOffset > maxOffset) {\n        overlayOffset = 0;\n      }\n    }\n    return overlayOffset;\n  }\n\n  /**\n   * Adds css classes to hide the header border's header (cell-selection border hiding issue).\n   *\n   * @param {number} position Header Y position if trimming container is window or scroll top if not.\n   * @returns {boolean}\n   */\n  adjustHeaderBordersPosition(position) {\n    const fixedRowsBottom = this.wtSettings.getSetting('fixedRowsBottom');\n    const areFixedRowsBottomChanged = this.cachedFixedRowsBottom !== fixedRowsBottom;\n    const columnHeaders = this.wtSettings.getSetting('columnHeaders');\n    let positionChanged = false;\n    if ((areFixedRowsBottomChanged || fixedRowsBottom === 0) && columnHeaders.length > 0) {\n      const masterParent = this.wot.wtTable.holder.parentNode;\n      const previousState = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"hasClass\"])(masterParent, 'innerBorderBottom');\n      this.cachedFixedRowsBottom = this.wtSettings.getSetting('fixedRowsBottom');\n      if (position || this.wtSettings.getSetting('totalRows') === 0) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(masterParent, 'innerBorderBottom');\n        positionChanged = !previousState;\n      } else {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"removeClass\"])(masterParent, 'innerBorderBottom');\n        positionChanged = previousState;\n      }\n    }\n    return positionChanged;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/overlay/bottom.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.mjs":
/*!************************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.mjs ***!
  \************************************************************************************************/
/*! exports provided: BottomInlineStartCornerOverlay */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BottomInlineStartCornerOverlay\", function() { return BottomInlineStartCornerOverlay; });\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _table_bottomInlineStartCorner_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../table/bottomInlineStartCorner.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/_base.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/constants.mjs\");\n\n\n\n\n/**\n * @class BottomInlineStartCornerOverlay\n */\nclass BottomInlineStartCornerOverlay extends _base_mjs__WEBPACK_IMPORTED_MODULE_2__[\"Overlay\"] {\n  /**\n   * @param {Walkontable} wotInstance The Walkontable instance. @TODO refactoring: check if can be deleted.\n   * @param {FacadeGetter} facadeGetter Function which return proper facade.\n   * @param {Settings} wtSettings The Walkontable settings.\n   * @param {DomBindings} domBindings Dom elements bound to the current instance.\n   * @param {BottomOverlay} bottomOverlay The instance of the Top overlay.\n   * @param {InlineStartOverlay} inlineStartOverlay The instance of the InlineStart overlay.\n   */\n  constructor(wotInstance, facadeGetter, wtSettings, domBindings, bottomOverlay, inlineStartOverlay) {\n    super(wotInstance, facadeGetter, _constants_mjs__WEBPACK_IMPORTED_MODULE_3__[\"CLONE_BOTTOM_INLINE_START_CORNER\"], wtSettings, domBindings);\n    this.bottomOverlay = bottomOverlay;\n    this.inlineStartOverlay = inlineStartOverlay;\n  }\n\n  /**\n   * Factory method to create a subclass of `Table` that is relevant to this overlay.\n   *\n   * @see Table#constructor\n   * @param {...*} args Parameters that will be forwarded to the `Table` constructor.\n   * @returns {BottomInlineStartCornerOverlayTable}\n   */\n  createTable() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return new _table_bottomInlineStartCorner_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"](...args);\n  }\n\n  /**\n   * Checks if overlay should be fully rendered.\n   *\n   * @returns {boolean}\n   */\n  shouldBeRendered() {\n    return this.wtSettings.getSetting('shouldRenderBottomOverlay') && this.wtSettings.getSetting('shouldRenderInlineStartOverlay');\n  }\n\n  /**\n   * Updates the corner overlay position.\n   *\n   * @returns {boolean}\n   */\n  resetFixedPosition() {\n    const {\n      wot\n    } = this;\n    this.updateTrimmingContainer();\n    if (!wot.wtTable.holder.parentNode) {\n      // removed from DOM\n      return false;\n    }\n    const overlayRoot = this.clone.wtTable.holder.parentNode;\n    overlayRoot.style.top = '';\n    if (this.trimmingContainer === this.domBindings.rootWindow) {\n      const inlineStartOffset = this.inlineStartOverlay.getOverlayOffset();\n      const bottom = this.bottomOverlay.getOverlayOffset();\n      overlayRoot.style[this.isRtl() ? 'right' : 'left'] = `${inlineStartOffset}px`;\n      overlayRoot.style.bottom = `${bottom}px`;\n    } else {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"resetCssTransform\"])(overlayRoot);\n      this.repositionOverlay();\n    }\n    let tableHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"outerHeight\"])(this.clone.wtTable.TABLE);\n    const tableWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"outerWidth\"])(this.clone.wtTable.TABLE);\n    if (!this.wot.wtTable.hasDefinedSize()) {\n      tableHeight = 0;\n    }\n    overlayRoot.style.height = `${tableHeight}px`;\n    overlayRoot.style.width = `${tableWidth}px`;\n    return false;\n  }\n\n  /**\n   * Reposition the overlay.\n   */\n  repositionOverlay() {\n    const {\n      wtTable,\n      wtViewport\n    } = this.wot;\n    const {\n      rootDocument\n    } = this.domBindings;\n    const cloneRoot = this.clone.wtTable.holder.parentNode;\n    let bottomOffset = 0;\n    if (!wtViewport.hasVerticalScroll()) {\n      bottomOffset += wtViewport.getWorkspaceHeight() - wtTable.getTotalHeight();\n    }\n    if (wtViewport.hasVerticalScroll() && wtViewport.hasHorizontalScroll()) {\n      bottomOffset += Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getScrollbarWidth\"])(rootDocument);\n    }\n    cloneRoot.style.bottom = `${bottomOffset}px`;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/overlay/constants.mjs":
/*!**********************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/overlay/constants.mjs ***!
  \**********************************************************************************/
/*! exports provided: CLONE_TOP, CLONE_BOTTOM, CLONE_INLINE_START, CLONE_TOP_INLINE_START_CORNER, CLONE_BOTTOM_INLINE_START_CORNER, CLONE_TYPES, CLONE_CLASS_NAMES */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CLONE_TOP\", function() { return CLONE_TOP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CLONE_BOTTOM\", function() { return CLONE_BOTTOM; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CLONE_INLINE_START\", function() { return CLONE_INLINE_START; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CLONE_TOP_INLINE_START_CORNER\", function() { return CLONE_TOP_INLINE_START_CORNER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CLONE_BOTTOM_INLINE_START_CORNER\", function() { return CLONE_BOTTOM_INLINE_START_CORNER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CLONE_TYPES\", function() { return CLONE_TYPES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CLONE_CLASS_NAMES\", function() { return CLONE_CLASS_NAMES; });\n/**\n * @typedef {'top'|'bottom'|'inline_start'|'top_inline_start_corner'|'bottom_inline_start_corner'} CLONE_TYPES_ENUM\n */\nconst CLONE_TOP = 'top';\nconst CLONE_BOTTOM = 'bottom';\nconst CLONE_INLINE_START = 'inline_start';\nconst CLONE_TOP_INLINE_START_CORNER = 'top_inline_start_corner';\nconst CLONE_BOTTOM_INLINE_START_CORNER = 'bottom_inline_start_corner';\nconst CLONE_TYPES = [CLONE_TOP, CLONE_BOTTOM, CLONE_INLINE_START, CLONE_TOP_INLINE_START_CORNER, CLONE_BOTTOM_INLINE_START_CORNER];\nconst CLONE_CLASS_NAMES = new Map([[CLONE_TOP, `ht_clone_${CLONE_TOP}`], [CLONE_BOTTOM, `ht_clone_${CLONE_BOTTOM}`], [CLONE_INLINE_START, `ht_clone_${CLONE_INLINE_START} ht_clone_left`], [CLONE_TOP_INLINE_START_CORNER, `ht_clone_${CLONE_TOP_INLINE_START_CORNER} ht_clone_top_left_corner`], [CLONE_BOTTOM_INLINE_START_CORNER, `ht_clone_${CLONE_BOTTOM_INLINE_START_CORNER} ht_clone_bottom_left_corner`]]);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/overlay/constants.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/overlay/index.mjs":
/*!******************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/overlay/index.mjs ***!
  \******************************************************************************/
/*! exports provided: BottomInlineStartCornerOverlay, BottomOverlay, InlineStartOverlay, Overlay, TopInlineStartCornerOverlay, TopOverlay, CLONE_TOP, CLONE_BOTTOM, CLONE_INLINE_START, CLONE_TOP_INLINE_START_CORNER, CLONE_BOTTOM_INLINE_START_CORNER, CLONE_TYPES, CLONE_CLASS_NAMES */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bottomInlineStartCorner_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bottomInlineStartCorner.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BottomInlineStartCornerOverlay\", function() { return _bottomInlineStartCorner_mjs__WEBPACK_IMPORTED_MODULE_0__[\"BottomInlineStartCornerOverlay\"]; });\n\n/* harmony import */ var _bottom_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bottom.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/bottom.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BottomOverlay\", function() { return _bottom_mjs__WEBPACK_IMPORTED_MODULE_1__[\"BottomOverlay\"]; });\n\n/* harmony import */ var _inlineStart_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./inlineStart.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/inlineStart.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"InlineStartOverlay\", function() { return _inlineStart_mjs__WEBPACK_IMPORTED_MODULE_2__[\"InlineStartOverlay\"]; });\n\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/_base.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Overlay\", function() { return _base_mjs__WEBPACK_IMPORTED_MODULE_3__[\"Overlay\"]; });\n\n/* harmony import */ var _topInlineStartCorner_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./topInlineStartCorner.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TopInlineStartCornerOverlay\", function() { return _topInlineStartCorner_mjs__WEBPACK_IMPORTED_MODULE_4__[\"TopInlineStartCornerOverlay\"]; });\n\n/* harmony import */ var _top_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./top.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/top.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TopOverlay\", function() { return _top_mjs__WEBPACK_IMPORTED_MODULE_5__[\"TopOverlay\"]; });\n\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/constants.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CLONE_TOP\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_6__[\"CLONE_TOP\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CLONE_BOTTOM\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_6__[\"CLONE_BOTTOM\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CLONE_INLINE_START\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_6__[\"CLONE_INLINE_START\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CLONE_TOP_INLINE_START_CORNER\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_6__[\"CLONE_TOP_INLINE_START_CORNER\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CLONE_BOTTOM_INLINE_START_CORNER\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_6__[\"CLONE_BOTTOM_INLINE_START_CORNER\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CLONE_TYPES\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_6__[\"CLONE_TYPES\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CLONE_CLASS_NAMES\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_6__[\"CLONE_CLASS_NAMES\"]; });\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/overlay/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/overlay/inlineStart.mjs":
/*!************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/overlay/inlineStart.mjs ***!
  \************************************************************************************/
/*! exports provided: InlineStartOverlay */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InlineStartOverlay\", function() { return InlineStartOverlay; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _table_inlineStart_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../table/inlineStart.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/inlineStart.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/_base.mjs\");\n/* harmony import */ var _selection_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../selection/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/selection/index.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/constants.mjs\");\n\n\n\n\n\n\n/**\n * @class InlineStartOverlay\n */\nclass InlineStartOverlay extends _base_mjs__WEBPACK_IMPORTED_MODULE_3__[\"Overlay\"] {\n  /**\n   * @param {Walkontable} wotInstance The Walkontable instance. @TODO refactoring: check if can be deleted.\n   * @param {FacadeGetter} facadeGetter Function which return proper facade.\n   * @param {Settings} wtSettings The Walkontable settings.\n   * @param {DomBindings} domBindings Dom elements bound to the current instance.\n   */\n  constructor(wotInstance, facadeGetter, wtSettings, domBindings) {\n    super(wotInstance, facadeGetter, _constants_mjs__WEBPACK_IMPORTED_MODULE_5__[\"CLONE_INLINE_START\"], wtSettings, domBindings);\n  }\n\n  /**\n   * Factory method to create a subclass of `Table` that is relevant to this overlay.\n   *\n   * @see Table#constructor\n   * @param {...*} args Parameters that will be forwarded to the `Table` constructor.\n   * @returns {InlineStartOverlayTable}\n   */\n  createTable() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return new _table_inlineStart_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"](...args);\n  }\n\n  /**\n   * Checks if overlay should be fully rendered.\n   *\n   * @returns {boolean}\n   */\n  shouldBeRendered() {\n    return this.wtSettings.getSetting('shouldRenderInlineStartOverlay');\n  }\n\n  /**\n   * Updates the left overlay position.\n   *\n   * @returns {boolean}\n   */\n  resetFixedPosition() {\n    const {\n      wtTable\n    } = this.wot;\n    if (!this.needFullRender || !this.shouldBeRendered() || !wtTable.holder.parentNode) {\n      // removed from DOM\n      return false;\n    }\n    const {\n      rootWindow\n    } = this.domBindings;\n    const overlayRoot = this.clone.wtTable.holder.parentNode;\n    const preventOverflow = this.wtSettings.getSetting('preventOverflow');\n    let overlayPosition = 0;\n    if (this.trimmingContainer === rootWindow && (!preventOverflow || preventOverflow !== 'horizontal')) {\n      overlayPosition = this.getOverlayOffset() * (this.isRtl() ? -1 : 1);\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"setOverlayPosition\"])(overlayRoot, `${overlayPosition}px`, '0px');\n    } else {\n      overlayPosition = this.getScrollPosition();\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"resetCssTransform\"])(overlayRoot);\n    }\n    const positionChanged = this.adjustHeaderBordersPosition(overlayPosition);\n    this.adjustElementsSize();\n    return positionChanged;\n  }\n\n  /**\n   * Sets the main overlay's horizontal scroll position.\n   *\n   * @param {number} pos The scroll position.\n   * @returns {boolean}\n   */\n  setScrollPosition(pos) {\n    const {\n      rootWindow\n    } = this.domBindings;\n    let result = false;\n    if (this.isRtl()) {\n      pos = -pos;\n    }\n    if (this.mainTableScrollableElement === rootWindow && rootWindow.scrollX !== pos) {\n      rootWindow.scrollTo(pos, Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getWindowScrollTop\"])(rootWindow));\n      result = true;\n    } else if (this.mainTableScrollableElement.scrollLeft !== pos) {\n      this.mainTableScrollableElement.scrollLeft = pos;\n      result = true;\n    }\n    return result;\n  }\n\n  /**\n   * Triggers onScroll hook callback.\n   */\n  onScroll() {\n    this.wtSettings.getSetting('onScrollVertically');\n  }\n\n  /**\n   * Calculates total sum cells width.\n   *\n   * @param {number} from Column index which calculates started from.\n   * @param {number} to Column index where calculation is finished.\n   * @returns {number} Width sum.\n   */\n  sumCellSizes(from, to) {\n    const defaultColumnWidth = this.wtSettings.getSetting('defaultColumnWidth');\n    let column = from;\n    let sum = 0;\n    while (column < to) {\n      sum += this.wot.wtTable.getStretchedColumnWidth(column) || defaultColumnWidth;\n      column += 1;\n    }\n    return sum;\n  }\n\n  /**\n   * Adjust overlay root element, children and master table element sizes (width, height).\n   */\n  adjustElementsSize() {\n    this.updateTrimmingContainer();\n    if (this.needFullRender) {\n      this.adjustRootElementSize();\n      this.adjustRootChildrenSize();\n    }\n  }\n\n  /**\n   * Adjust overlay root element size (width and height).\n   */\n  adjustRootElementSize() {\n    const {\n      wtTable\n    } = this.wot;\n    const {\n      rootDocument,\n      rootWindow\n    } = this.domBindings;\n    const scrollbarHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollbarWidth\"])(rootDocument);\n    const overlayRoot = this.clone.wtTable.holder.parentNode;\n    const overlayRootStyle = overlayRoot.style;\n    const preventOverflow = this.wtSettings.getSetting('preventOverflow');\n    if (this.trimmingContainer !== rootWindow || preventOverflow === 'vertical') {\n      let height = this.wot.wtViewport.getWorkspaceHeight();\n      if (this.wot.wtOverlays.hasScrollbarBottom) {\n        height -= scrollbarHeight;\n      }\n      height = Math.min(height, wtTable.wtRootElement.scrollHeight);\n      overlayRootStyle.height = `${height}px`;\n    } else {\n      overlayRootStyle.height = '';\n    }\n    this.clone.wtTable.holder.style.height = overlayRootStyle.height;\n    const tableWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"outerWidth\"])(this.clone.wtTable.TABLE);\n    overlayRootStyle.width = `${tableWidth}px`;\n  }\n\n  /**\n   * Adjust overlay root childs size.\n   */\n  adjustRootChildrenSize() {\n    const {\n      holder\n    } = this.clone.wtTable;\n    const selectionCornerOffset = this.wot.selectionManager.getFocusSelection() ? parseInt(_selection_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CORNER_DEFAULT_STYLE\"].width, 10) / 2 : 0;\n    this.clone.wtTable.hider.style.height = this.hider.style.height;\n    holder.style.height = holder.parentNode.style.height;\n    // Add selection corner protruding part to the holder total width to make sure that\n    // borders' corner won't be cut after horizontal scroll (#6937).\n    holder.style.width = `${parseInt(holder.parentNode.style.width, 10) + selectionCornerOffset}px`;\n  }\n\n  /**\n   * Adjust the overlay dimensions and position.\n   */\n  applyToDOM() {\n    const total = this.wtSettings.getSetting('totalColumns');\n    const styleProperty = this.isRtl() ? 'right' : 'left';\n    if (typeof this.wot.wtViewport.columnsRenderCalculator.startPosition === 'number') {\n      this.spreader.style[styleProperty] = `${this.wot.wtViewport.columnsRenderCalculator.startPosition}px`;\n    } else if (total === 0) {\n      this.spreader.style[styleProperty] = '0';\n    } else {\n      throw new Error('Incorrect value of the columnsRenderCalculator');\n    }\n    if (this.isRtl()) {\n      this.spreader.style.left = '';\n    } else {\n      this.spreader.style.right = '';\n    }\n    if (this.needFullRender) {\n      this.syncOverlayOffset();\n    }\n  }\n\n  /**\n   * Synchronize calculated top position to an element.\n   */\n  syncOverlayOffset() {\n    if (typeof this.wot.wtViewport.rowsRenderCalculator.startPosition === 'number') {\n      this.clone.wtTable.spreader.style.top = `${this.wot.wtViewport.rowsRenderCalculator.startPosition}px`;\n    } else {\n      this.clone.wtTable.spreader.style.top = '';\n    }\n  }\n\n  /**\n   * Scrolls horizontally to a column at the left edge of the viewport.\n   *\n   * @param {number} sourceCol  Column index which you want to scroll to.\n   * @param {boolean} [beyondRendered]  If `true`, scrolls according to the right\n   *                                    edge (left edge is by default).\n   * @returns {boolean}\n   */\n  scrollTo(sourceCol, beyondRendered) {\n    const {\n      wtSettings\n    } = this;\n    const rowHeaders = wtSettings.getSetting('rowHeaders');\n    const fixedColumnsStart = wtSettings.getSetting('fixedColumnsStart');\n    const sourceInstance = this.wot.cloneSource ? this.wot.cloneSource : this.wot;\n    const mainHolder = sourceInstance.wtTable.holder;\n    const rowHeaderBorderCompensation = fixedColumnsStart === 0 && rowHeaders.length > 0 && !Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"hasClass\"])(mainHolder.parentNode, 'innerBorderInlineStart') ? 1 : 0;\n    let newX = this.getTableParentOffset();\n    let scrollbarCompensation = 0;\n    if (beyondRendered) {\n      const columnWidth = this.wot.wtTable.getColumnWidth(sourceCol);\n      const viewportWidth = this.wot.wtViewport.getViewportWidth();\n      if (columnWidth > viewportWidth) {\n        beyondRendered = false;\n      }\n    }\n    if (beyondRendered && mainHolder.offsetWidth !== mainHolder.clientWidth) {\n      scrollbarCompensation = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollbarWidth\"])(this.domBindings.rootDocument);\n    }\n    if (beyondRendered) {\n      newX += this.sumCellSizes(0, sourceCol + 1);\n      newX -= this.wot.wtViewport.getViewportWidth();\n      // Compensate for the right header border if scrolled from the absolute left.\n      newX += rowHeaderBorderCompensation;\n    } else {\n      newX += this.sumCellSizes(this.wtSettings.getSetting('fixedColumnsStart'), sourceCol);\n    }\n    newX += scrollbarCompensation;\n\n    // If the table is scrolled all the way left when starting the scroll and going to be scrolled to the far right,\n    // we need to compensate for the potential header border width.\n    if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getMaximumScrollLeft\"])(this.mainTableScrollableElement) === newX - rowHeaderBorderCompensation && rowHeaderBorderCompensation > 0) {\n      this.wot.wtOverlays.expandHiderHorizontallyBy(rowHeaderBorderCompensation);\n    }\n    return this.setScrollPosition(newX);\n  }\n\n  /**\n   * Gets table parent left position.\n   *\n   * @returns {number}\n   */\n  getTableParentOffset() {\n    const preventOverflow = this.wtSettings.getSetting('preventOverflow');\n    let offset = 0;\n    if (!preventOverflow && this.trimmingContainer === this.domBindings.rootWindow) {\n      offset = this.wot.wtTable.holderOffset.left;\n    }\n    return offset;\n  }\n\n  /**\n   * Gets the main overlay's horizontal scroll position.\n   *\n   * @returns {number} Main table's horizontal scroll position.\n   */\n  getScrollPosition() {\n    return Math.abs(Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollLeft\"])(this.mainTableScrollableElement, this.domBindings.rootWindow));\n  }\n\n  /**\n   * Gets the main overlay's horizontal overlay offset.\n   *\n   * @returns {number} Main table's horizontal overlay offset.\n   */\n  getOverlayOffset() {\n    const {\n      rootWindow\n    } = this.domBindings;\n    const preventOverflow = this.wtSettings.getSetting('preventOverflow');\n    let overlayOffset = 0;\n    if (this.trimmingContainer === rootWindow && (!preventOverflow || preventOverflow !== 'horizontal')) {\n      if (this.isRtl()) {\n        overlayOffset = Math.abs(Math.min(this.getTableParentOffset() - this.getScrollPosition(), 0));\n      } else {\n        overlayOffset = Math.max(this.getScrollPosition() - this.getTableParentOffset(), 0);\n      }\n      const rootWidth = this.wot.wtTable.getTotalWidth();\n      const overlayRootWidth = this.clone.wtTable.getTotalWidth();\n      const maxOffset = rootWidth - overlayRootWidth;\n      if (overlayOffset > maxOffset) {\n        overlayOffset = 0;\n      }\n    }\n    return overlayOffset;\n  }\n\n  /**\n   * Adds css classes to hide the header border's header (cell-selection border hiding issue).\n   *\n   * @param {number} position Header X position if trimming container is window or scroll top if not.\n   * @returns {boolean}\n   */\n  adjustHeaderBordersPosition(position) {\n    const {\n      wtSettings\n    } = this;\n    const masterParent = this.wot.wtTable.holder.parentNode;\n    const rowHeaders = wtSettings.getSetting('rowHeaders');\n    const fixedColumnsStart = wtSettings.getSetting('fixedColumnsStart');\n    const totalRows = wtSettings.getSetting('totalRows');\n    const preventVerticalOverflow = wtSettings.getSetting('preventOverflow') === 'vertical';\n    if (totalRows) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"removeClass\"])(masterParent, 'emptyRows');\n    } else {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(masterParent, 'emptyRows');\n    }\n    let positionChanged = false;\n    if (!preventVerticalOverflow) {\n      if (fixedColumnsStart && !rowHeaders.length) {\n        // \"innerBorderLeft\" is for backward compatibility\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(masterParent, 'innerBorderLeft innerBorderInlineStart');\n      } else if (!fixedColumnsStart && rowHeaders.length) {\n        const previousState = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"hasClass\"])(masterParent, 'innerBorderInlineStart');\n        if (position) {\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(masterParent, 'innerBorderLeft innerBorderInlineStart');\n          positionChanged = !previousState;\n        } else {\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"removeClass\"])(masterParent, 'innerBorderLeft innerBorderInlineStart');\n          positionChanged = previousState;\n        }\n      }\n    }\n    return positionChanged;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/overlay/inlineStart.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/overlay/top.mjs":
/*!****************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/overlay/top.mjs ***!
  \****************************************************************************/
/*! exports provided: TopOverlay */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TopOverlay\", function() { return TopOverlay; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _table_top_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../table/top.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/top.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/_base.mjs\");\n/* harmony import */ var _selection_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../selection/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/selection/index.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/constants.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n/**\n * @class TopOverlay\n */\nclass TopOverlay extends _base_mjs__WEBPACK_IMPORTED_MODULE_3__[\"Overlay\"] {\n  /**\n   * @param {Walkontable} wotInstance The Walkontable instance. @TODO refactoring: check if can be deleted.\n   * @param {FacadeGetter} facadeGetter Function which return proper facade.\n   * @param {Settings} wtSettings The Walkontable settings.\n   * @param {DomBindings} domBindings Dom elements bound to the current instance.\n   */\n  constructor(wotInstance, facadeGetter, wtSettings, domBindings) {\n    super(wotInstance, facadeGetter, _constants_mjs__WEBPACK_IMPORTED_MODULE_5__[\"CLONE_TOP\"], wtSettings, domBindings);\n    /**\n     * Cached value which holds the previous value of the `fixedRowsTop` option.\n     * It is used as a comparison value that can be used to detect changes in this value.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"cachedFixedRowsTop\", -1);\n    this.cachedFixedRowsTop = this.wtSettings.getSetting('fixedRowsTop');\n  }\n\n  /**\n   * Factory method to create a subclass of `Table` that is relevant to this overlay.\n   *\n   * @see Table#constructor\n   * @param {...*} args Parameters that will be forwarded to the `Table` constructor.\n   * @returns {TopOverlayTable}\n   */\n  createTable() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return new _table_top_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"](...args);\n  }\n\n  /**\n   * Checks if overlay should be fully rendered.\n   *\n   * @returns {boolean}\n   */\n  shouldBeRendered() {\n    return this.wtSettings.getSetting('shouldRenderTopOverlay');\n  }\n\n  /**\n   * Updates the top overlay position.\n   *\n   * @returns {boolean}\n   */\n  resetFixedPosition() {\n    if (!this.needFullRender || !this.shouldBeRendered() || !this.wot.wtTable.holder.parentNode) {\n      // removed from DOM\n      return false;\n    }\n    const overlayRoot = this.clone.wtTable.holder.parentNode;\n    const {\n      rootWindow\n    } = this.domBindings;\n    const preventOverflow = this.wtSettings.getSetting('preventOverflow');\n    let overlayPosition = 0;\n    let skipInnerBorderAdjusting = false;\n    if (this.trimmingContainer === rootWindow && (!preventOverflow || preventOverflow !== 'vertical')) {\n      const {\n        wtTable\n      } = this.wot;\n      const hiderRect = wtTable.hider.getBoundingClientRect();\n      const bottom = Math.ceil(hiderRect.bottom);\n      const rootHeight = overlayRoot.offsetHeight;\n\n      // This checks if the overlay is going to an infinite loop caused by added (or removed)\n      // `innerBorderTop` class name. Toggling the class name shifts the viewport by 1px and\n      // triggers the `scroll` event. It causes the table to render. The new render cycle takes into,\n      // account the shift and toggles the class name again. This causes the next loops. This\n      // happens only on Chrome (#7256).\n      //\n      // When we detect that the table bottom position is the same as the overlay bottom,\n      // do not toggle the class name.\n      //\n      // This workaround will be able to be cleared after merging the SVG borders, which introduces\n      // frozen lines (no more `innerBorderTop` workaround).\n      skipInnerBorderAdjusting = bottom === rootHeight;\n      overlayPosition = this.getOverlayOffset();\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"setOverlayPosition\"])(overlayRoot, '0px', `${overlayPosition}px`);\n    } else {\n      overlayPosition = this.getScrollPosition();\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"resetCssTransform\"])(overlayRoot);\n    }\n    const positionChanged = this.adjustHeaderBordersPosition(overlayPosition, skipInnerBorderAdjusting);\n    this.adjustElementsSize();\n    return positionChanged;\n  }\n\n  /**\n   * Sets the main overlay's vertical scroll position.\n   *\n   * @param {number} pos The scroll position.\n   * @returns {boolean}\n   */\n  setScrollPosition(pos) {\n    const rootWindow = this.domBindings.rootWindow;\n    let result = false;\n    if (this.mainTableScrollableElement === rootWindow && rootWindow.scrollY !== pos) {\n      rootWindow.scrollTo(Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getWindowScrollLeft\"])(rootWindow), pos);\n      result = true;\n    } else if (this.mainTableScrollableElement.scrollTop !== pos) {\n      this.mainTableScrollableElement.scrollTop = pos;\n      result = true;\n    }\n    return result;\n  }\n\n  /**\n   * Triggers onScroll hook callback.\n   */\n  onScroll() {\n    this.wtSettings.getSetting('onScrollHorizontally');\n  }\n\n  /**\n   * Calculates total sum cells height.\n   *\n   * @param {number} from Row index which calculates started from.\n   * @param {number} to Row index where calculation is finished.\n   * @returns {number} Height sum.\n   */\n  sumCellSizes(from, to) {\n    const defaultRowHeight = this.wtSettings.getSetting('defaultRowHeight');\n    let row = from;\n    let sum = 0;\n    while (row < to) {\n      const height = this.wot.wtTable.getRowHeight(row);\n      sum += height === undefined ? defaultRowHeight : height;\n      row += 1;\n    }\n    return sum;\n  }\n\n  /**\n   * Adjust overlay root element, children and master table element sizes (width, height).\n   */\n  adjustElementsSize() {\n    this.updateTrimmingContainer();\n    if (this.needFullRender) {\n      this.adjustRootElementSize();\n      this.adjustRootChildrenSize();\n    }\n  }\n\n  /**\n   * Adjust overlay root element size (width and height).\n   */\n  adjustRootElementSize() {\n    const {\n      wtTable\n    } = this.wot;\n    const {\n      rootDocument,\n      rootWindow\n    } = this.domBindings;\n    const scrollbarWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollbarWidth\"])(rootDocument);\n    const overlayRoot = this.clone.wtTable.holder.parentNode;\n    const overlayRootStyle = overlayRoot.style;\n    const preventOverflow = this.wtSettings.getSetting('preventOverflow');\n    if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {\n      let width = this.wot.wtViewport.getWorkspaceWidth();\n      if (this.wot.wtOverlays.hasScrollbarRight) {\n        width -= scrollbarWidth;\n      }\n      width = Math.min(width, wtTable.wtRootElement.scrollWidth);\n      overlayRootStyle.width = `${width}px`;\n    } else {\n      overlayRootStyle.width = '';\n    }\n    this.clone.wtTable.holder.style.width = overlayRootStyle.width;\n    let tableHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"outerHeight\"])(this.clone.wtTable.TABLE);\n    if (!this.wot.wtTable.hasDefinedSize()) {\n      tableHeight = 0;\n    }\n    overlayRootStyle.height = `${tableHeight}px`;\n  }\n\n  /**\n   * Adjust overlay root childs size.\n   */\n  adjustRootChildrenSize() {\n    const {\n      holder\n    } = this.clone.wtTable;\n    const selectionCornerOffset = this.wot.selectionManager.getFocusSelection() ? parseInt(_selection_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CORNER_DEFAULT_STYLE\"].height, 10) / 2 : 0;\n    this.clone.wtTable.hider.style.width = this.hider.style.width;\n    holder.style.width = holder.parentNode.style.width;\n    // Add selection corner protruding part to the holder total height to make sure that\n    // borders' corner won't be cut after vertical scroll (#6937).\n    holder.style.height = `${parseInt(holder.parentNode.style.height, 10) + selectionCornerOffset}px`;\n  }\n\n  /**\n   * Adjust the overlay dimensions and position.\n   */\n  applyToDOM() {\n    const total = this.wtSettings.getSetting('totalRows');\n    if (typeof this.wot.wtViewport.rowsRenderCalculator.startPosition === 'number') {\n      this.spreader.style.top = `${this.wot.wtViewport.rowsRenderCalculator.startPosition}px`;\n    } else if (total === 0) {\n      // can happen if there are 0 rows\n      this.spreader.style.top = '0';\n    } else {\n      throw new Error('Incorrect value of the rowsRenderCalculator');\n    }\n    this.spreader.style.bottom = '';\n    if (this.needFullRender) {\n      this.syncOverlayOffset();\n    }\n  }\n\n  /**\n   * Synchronize calculated left position to an element.\n   */\n  syncOverlayOffset() {\n    const styleProperty = this.isRtl() ? 'right' : 'left';\n    const {\n      spreader\n    } = this.clone.wtTable;\n    if (typeof this.wot.wtViewport.columnsRenderCalculator.startPosition === 'number') {\n      spreader.style[styleProperty] = `${this.wot.wtViewport.columnsRenderCalculator.startPosition}px`;\n    } else {\n      spreader.style[styleProperty] = '';\n    }\n  }\n\n  /**\n   * Scrolls vertically to a row.\n   *\n   * @param {number} sourceRow Row index which you want to scroll to.\n   * @param {boolean} [bottomEdge] If `true`, scrolls according to the bottom edge (top edge is by default).\n   * @returns {boolean}\n   */\n  scrollTo(sourceRow, bottomEdge) {\n    const {\n      wot,\n      wtSettings\n    } = this;\n    const sourceInstance = wot.cloneSource ? wot.cloneSource : wot;\n    const mainHolder = sourceInstance.wtTable.holder;\n    const columnHeaders = wtSettings.getSetting('columnHeaders');\n    const fixedRowsTop = wtSettings.getSetting('fixedRowsTop');\n    const columnHeaderBorderCompensation = fixedRowsTop === 0 && columnHeaders.length > 0 && !Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"hasClass\"])(mainHolder.parentNode, 'innerBorderTop') ? 1 : 0;\n    let newY = this.getTableParentOffset();\n    let scrollbarCompensation = 0;\n    if (bottomEdge) {\n      const rowHeight = this.wot.wtTable.getRowHeight(sourceRow);\n      const viewportHeight = this.wot.wtViewport.getViewportHeight();\n      if (rowHeight > viewportHeight) {\n        bottomEdge = false;\n      }\n    }\n    if (bottomEdge && mainHolder.offsetHeight !== mainHolder.clientHeight) {\n      scrollbarCompensation = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollbarWidth\"])(this.domBindings.rootDocument);\n    }\n    if (bottomEdge) {\n      const fixedRowsBottom = wtSettings.getSetting('fixedRowsBottom');\n      const totalRows = wtSettings.getSetting('totalRows');\n      newY += this.sumCellSizes(0, sourceRow + 1);\n      newY -= wot.wtViewport.getViewportHeight() - this.sumCellSizes(totalRows - fixedRowsBottom, totalRows);\n      // Fix 1 pixel offset when cell is selected\n      newY += 1;\n      // Compensate for the bottom header border if scrolled from the absolute top.\n      newY += columnHeaderBorderCompensation;\n    } else {\n      newY += this.sumCellSizes(wtSettings.getSetting('fixedRowsTop'), sourceRow);\n    }\n    newY += scrollbarCompensation;\n\n    // If the table is scrolled all the way up when starting the scroll and going to be scrolled to the bottom,\n    // we need to compensate for the potential header bottom border height.\n    if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getMaximumScrollTop\"])(this.mainTableScrollableElement) === newY - columnHeaderBorderCompensation && columnHeaderBorderCompensation > 0) {\n      this.wot.wtOverlays.expandHiderVerticallyBy(columnHeaderBorderCompensation);\n    }\n    return this.setScrollPosition(newY);\n  }\n\n  /**\n   * Gets table parent top position.\n   *\n   * @returns {number}\n   */\n  getTableParentOffset() {\n    if (this.mainTableScrollableElement === this.domBindings.rootWindow) {\n      return this.wot.wtTable.holderOffset.top;\n    }\n    return 0;\n  }\n\n  /**\n   * Gets the main overlay's vertical scroll position.\n   *\n   * @returns {number} Main table's vertical scroll position.\n   */\n  getScrollPosition() {\n    return Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollTop\"])(this.mainTableScrollableElement, this.domBindings.rootWindow);\n  }\n\n  /**\n   * Gets the main overlay's vertical overlay offset.\n   *\n   * @returns {number} Main table's vertical overlay offset.\n   */\n  getOverlayOffset() {\n    const {\n      rootWindow\n    } = this.domBindings;\n    const preventOverflow = this.wtSettings.getSetting('preventOverflow');\n    let overlayOffset = 0;\n    if (this.trimmingContainer === rootWindow && (!preventOverflow || preventOverflow !== 'vertical')) {\n      const rootHeight = this.wot.wtTable.getTotalHeight();\n      const overlayRootHeight = this.clone.wtTable.getTotalHeight();\n      const maxOffset = rootHeight - overlayRootHeight;\n      overlayOffset = Math.max(this.getScrollPosition() - this.getTableParentOffset(), 0);\n      if (overlayOffset > maxOffset) {\n        overlayOffset = 0;\n      }\n    }\n    return overlayOffset;\n  }\n\n  /**\n   * Adds css classes to hide the header border's header (cell-selection border hiding issue).\n   *\n   * @param {number} position Header Y position if trimming container is window or scroll top if not.\n   * @param {boolean} [skipInnerBorderAdjusting=false] If `true` the inner border adjusting will be skipped.\n   * @returns {boolean}\n   */\n  adjustHeaderBordersPosition(position) {\n    let skipInnerBorderAdjusting = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    const {\n      wtSettings\n    } = this;\n    const masterParent = this.wot.wtTable.holder.parentNode;\n    const totalColumns = wtSettings.getSetting('totalColumns');\n    const preventHorizontalOverflow = wtSettings.getSetting('preventOverflow') === 'horizontal';\n    if (totalColumns) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"removeClass\"])(masterParent, 'emptyColumns');\n    } else {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(masterParent, 'emptyColumns');\n    }\n    let positionChanged = false;\n    if (!skipInnerBorderAdjusting && !preventHorizontalOverflow) {\n      const fixedRowsTop = wtSettings.getSetting('fixedRowsTop');\n      const areFixedRowsTopChanged = this.cachedFixedRowsTop !== fixedRowsTop;\n      const columnHeaders = wtSettings.getSetting('columnHeaders');\n      if ((areFixedRowsTopChanged || fixedRowsTop === 0) && columnHeaders.length > 0) {\n        const previousState = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"hasClass\"])(masterParent, 'innerBorderTop');\n        this.cachedFixedRowsTop = wtSettings.getSetting('fixedRowsTop');\n        if (position || wtSettings.getSetting('totalRows') === 0) {\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(masterParent, 'innerBorderTop');\n          positionChanged = !previousState;\n        } else {\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"removeClass\"])(masterParent, 'innerBorderTop');\n          positionChanged = previousState;\n        }\n      }\n    }\n    return positionChanged;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/overlay/top.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs":
/*!*********************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs ***!
  \*********************************************************************************************/
/*! exports provided: TopInlineStartCornerOverlay */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TopInlineStartCornerOverlay\", function() { return TopInlineStartCornerOverlay; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _table_topInlineStartCorner_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../table/topInlineStartCorner.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/topInlineStartCorner.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/_base.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/constants.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n/**\n * @class TopInlineStartCornerOverlay\n */\nclass TopInlineStartCornerOverlay extends _base_mjs__WEBPACK_IMPORTED_MODULE_3__[\"Overlay\"] {\n  /**\n   * @param {Walkontable} wotInstance The Walkontable instance. @TODO refactoring: check if can be deleted.\n   * @param {FacadeGetter} facadeGetter Function which return proper facade.\n   * @param {Settings} wtSettings The Walkontable settings.\n   * @param {DomBindings} domBindings Dom elements bound to the current instance.\n   * @param {TopOverlay} topOverlay The instance of the Top overlay.\n   * @param {InlineStartOverlay} inlineStartOverlay The instance of the InlineStart overlay.\n   */\n  constructor(wotInstance, facadeGetter, wtSettings, domBindings, topOverlay, inlineStartOverlay) {\n    super(wotInstance, facadeGetter, _constants_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CLONE_TOP_INLINE_START_CORNER\"], wtSettings, domBindings);\n    /**\n     * The instance of the Top overlay.\n     *\n     * @type {TopOverlay}\n     */\n    _defineProperty(this, \"topOverlay\", void 0);\n    /**\n     * The instance of the InlineStart overlay.\n     *\n     * @type {InlineStartOverlay}\n     */\n    _defineProperty(this, \"inlineStartOverlay\", void 0);\n    this.topOverlay = topOverlay;\n    this.inlineStartOverlay = inlineStartOverlay;\n  }\n\n  /**\n   * Factory method to create a subclass of `Table` that is relevant to this overlay.\n   *\n   * @see Table#constructor\n   * @param {...*} args Parameters that will be forwarded to the `Table` constructor.\n   * @returns {TopInlineStartCornerOverlayTable}\n   */\n  createTable() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return new _table_topInlineStartCorner_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"](...args);\n  }\n\n  /**\n   * Checks if overlay should be fully rendered.\n   *\n   * @returns {boolean}\n   */\n  shouldBeRendered() {\n    return this.wtSettings.getSetting('shouldRenderTopOverlay') && this.wtSettings.getSetting('shouldRenderInlineStartOverlay');\n  }\n\n  /**\n   * Updates the corner overlay position.\n   *\n   * @returns {boolean}\n   */\n  resetFixedPosition() {\n    this.updateTrimmingContainer();\n    if (!this.wot.wtTable.holder.parentNode) {\n      // removed from DOM\n      return false;\n    }\n    const overlayRoot = this.clone.wtTable.holder.parentNode;\n    if (this.trimmingContainer === this.domBindings.rootWindow) {\n      const left = this.inlineStartOverlay.getOverlayOffset() * (this.isRtl() ? -1 : 1);\n      const top = this.topOverlay.getOverlayOffset();\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"setOverlayPosition\"])(overlayRoot, `${left}px`, `${top}px`);\n    } else {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"resetCssTransform\"])(overlayRoot);\n    }\n    let tableHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"outerHeight\"])(this.clone.wtTable.TABLE);\n    const tableWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"outerWidth\"])(this.clone.wtTable.TABLE);\n    if (!this.wot.wtTable.hasDefinedSize()) {\n      tableHeight = 0;\n    }\n    overlayRoot.style.height = `${tableHeight}px`;\n    overlayRoot.style.width = `${tableWidth}px`;\n    return false;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/overlays.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/overlays.mjs ***!
  \*************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/feature.mjs */ \"./node_modules/handsontable/helpers/feature.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../helpers/unicode.mjs */ \"./node_modules/handsontable/helpers/unicode.mjs\");\n/* harmony import */ var _helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../helpers/browser.mjs */ \"./node_modules/handsontable/helpers/browser.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./overlay/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/index.mjs\");\n\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n/**\n * @class Overlays\n */\nvar _overlays = /*#__PURE__*/new WeakMap();\nvar _hasRenderingStateChanged = /*#__PURE__*/new WeakMap();\nvar _containerDomResizeCount = /*#__PURE__*/new WeakMap();\nvar _containerDomResizeCountTimeout = /*#__PURE__*/new WeakMap();\nclass Overlays {\n  /**\n   * @param {Walkontable} wotInstance The Walkontable instance. @todo refactoring remove.\n   * @param {FacadeGetter} facadeGetter Function which return proper facade.\n   * @param {DomBindings} domBindings Bindings into DOM.\n   * @param {Settings} wtSettings The Walkontable settings.\n   * @param {EventManager} eventManager The walkontable event manager.\n   * @param {MasterTable} wtTable The master table.\n   */\n  constructor(wotInstance, facadeGetter, domBindings, wtSettings, eventManager, wtTable) {\n    /**\n     * Walkontable instance's reference.\n     *\n     * @protected\n     * @type {Walkontable}\n     */\n    _defineProperty(this, \"wot\", null);\n    /**\n     * An array of the all overlays.\n     *\n     * @type {Overlay[]}\n     */\n    _classPrivateFieldInitSpec(this, _overlays, []);\n    /**\n     * Refer to the TopOverlay instance.\n     *\n     * @protected\n     * @type {TopOverlay}\n     */\n    _defineProperty(this, \"topOverlay\", null);\n    /**\n     * Refer to the BottomOverlay instance.\n     *\n     * @protected\n     * @type {BottomOverlay}\n     */\n    _defineProperty(this, \"bottomOverlay\", null);\n    /**\n     * Refer to the InlineStartOverlay or instance.\n     *\n     * @protected\n     * @type {InlineStartOverlay}\n     */\n    _defineProperty(this, \"inlineStartOverlay\", null);\n    /**\n     * Refer to the TopInlineStartCornerOverlay instance.\n     *\n     * @protected\n     * @type {TopInlineStartCornerOverlay}\n     */\n    _defineProperty(this, \"topInlineStartCornerOverlay\", null);\n    /**\n     * Refer to the BottomInlineStartCornerOverlay instance.\n     *\n     * @protected\n     * @type {BottomInlineStartCornerOverlay}\n     */\n    _defineProperty(this, \"bottomInlineStartCornerOverlay\", null);\n    /**\n     * Browser line height for purposes of translating mouse wheel.\n     *\n     * @private\n     * @type {number}\n     */\n    _defineProperty(this, \"browserLineHeight\", undefined);\n    /**\n     * The walkontable settings.\n     *\n     * @protected\n     * @type {Settings}\n     */\n    _defineProperty(this, \"wtSettings\", null);\n    /**\n     * Indicates whether the rendering state has changed for one of the overlays.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _hasRenderingStateChanged, false);\n    /**\n     * The amount of times the ResizeObserver callback was fired in direct succession.\n     *\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _containerDomResizeCount, 0);\n    /**\n     * The timeout ID for the ResizeObserver endless-loop-blocking logic.\n     *\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _containerDomResizeCountTimeout, null);\n    /**\n     * The instance of the ResizeObserver that observes the size of the Walkontable wrapper element.\n     * In case of the size change detection the `onContainerElementResize` is fired.\n     *\n     * @private\n     * @type {ResizeObserver}\n     */\n    _defineProperty(this, \"resizeObserver\", new ResizeObserver(entries => {\n      Object(_helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_3__[\"requestAnimationFrame\"])(() => {\n        if (!Array.isArray(entries) || !entries.length) {\n          return;\n        }\n        _classPrivateFieldSet(_containerDomResizeCount, this, _classPrivateFieldGet(_containerDomResizeCount, this) + 1);\n        if (_classPrivateFieldGet(_containerDomResizeCount, this) === 100) {\n          Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_7__[\"warn\"])('The ResizeObserver callback was fired too many times in direct succession.' + '\\nThis may be due to an infinite loop caused by setting a dynamic height/width (for example, ' + 'with the `dvh` units) to a Handsontable container\\'s parent. ' + '\\nThe observer will be disconnected.');\n          this.resizeObserver.disconnect();\n        }\n\n        // This logic is required to prevent an endless loop of the ResizeObserver callback.\n        // https://github.com/handsontable/dev-handsontable/issues/1898#issuecomment-2154794817\n        if (_classPrivateFieldGet(_containerDomResizeCountTimeout, this) !== null) {\n          clearTimeout(_classPrivateFieldGet(_containerDomResizeCountTimeout, this));\n        }\n        _classPrivateFieldSet(_containerDomResizeCountTimeout, this, setTimeout(() => {\n          _classPrivateFieldSet(_containerDomResizeCount, this, 0);\n        }, 100));\n        this.wtSettings.getSetting('onContainerElementResize');\n      });\n    }));\n    this.wot = wotInstance;\n    this.wtSettings = wtSettings;\n    this.domBindings = domBindings;\n    this.facadeGetter = facadeGetter;\n    this.wtTable = wtTable;\n    const {\n      rootDocument,\n      rootWindow\n    } = this.domBindings;\n\n    // legacy support\n    this.instance = this.wot; // todo refactoring: move to facade\n    this.eventManager = eventManager;\n\n    // TODO refactoring: probably invalid place to this logic\n    this.scrollbarSize = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getScrollbarWidth\"])(rootDocument);\n    const isOverflowHidden = rootWindow.getComputedStyle(wtTable.wtRootElement.parentNode).getPropertyValue('overflow') === 'hidden';\n    this.scrollableElement = isOverflowHidden ? wtTable.holder : Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getScrollableElement\"])(wtTable.TABLE);\n    this.initOverlays();\n    this.hasScrollbarBottom = false;\n    this.hasScrollbarRight = false;\n    this.destroyed = false;\n    this.keyPressed = false;\n    this.spreaderLastSize = {\n      width: null,\n      height: null\n    };\n    this.verticalScrolling = false;\n    this.horizontalScrolling = false;\n    this.initBrowserLineHeight();\n    this.registerListeners();\n    this.lastScrollX = rootWindow.scrollX;\n    this.lastScrollY = rootWindow.scrollY;\n  }\n\n  /**\n   * Get the list of references to all overlays.\n   *\n   * @param {boolean} [includeMaster = false] If set to `true`, the list will contain the master table as the last\n   * element.\n   * @returns {(TopOverlay|TopInlineStartCornerOverlay|InlineStartOverlay|BottomOverlay|BottomInlineStartCornerOverlay)[]}\n   */\n  getOverlays() {\n    let includeMaster = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    const overlays = [..._classPrivateFieldGet(_overlays, this)];\n    if (includeMaster) {\n      overlays.push(this.wtTable);\n    }\n    return overlays;\n  }\n\n  /**\n   * Retrieve browser line height and apply its value to `browserLineHeight`.\n   *\n   * @private\n   */\n  initBrowserLineHeight() {\n    const {\n      rootWindow,\n      rootDocument\n    } = this.domBindings;\n    const computedStyle = rootWindow.getComputedStyle(rootDocument.body);\n    /**\n     * Sometimes `line-height` might be set to 'normal'. In that case, a default `font-size` should be multiplied by roughly 1.2.\n     * Https://developer.mozilla.org/pl/docs/Web/CSS/line-height#Values.\n     */\n    const lineHeight = parseInt(computedStyle.lineHeight, 10);\n    const lineHeightFalback = parseInt(computedStyle.fontSize, 10) * 1.2;\n    this.browserLineHeight = lineHeight || lineHeightFalback;\n  }\n\n  /**\n   * Prepare overlays based on user settings.\n   *\n   * @private\n   */\n  initOverlays() {\n    const args = [this.wot, this.facadeGetter, this.wtSettings, this.domBindings];\n\n    // todo refactoring: IOC, collection or factories.\n    // TODO refactoring, conceive about using generic collection of overlays.\n    this.topOverlay = new _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"TopOverlay\"](...args);\n    this.bottomOverlay = new _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"BottomOverlay\"](...args);\n    this.inlineStartOverlay = new _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"InlineStartOverlay\"](...args);\n\n    // TODO discuss, the controversial here would be removing the lazy creation mechanism for corners.\n    // TODO cond. Has no any visual impact. They're initially hidden in same way like left, top, and bottom overlays.\n    this.topInlineStartCornerOverlay = new _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"TopInlineStartCornerOverlay\"](...args, this.topOverlay, this.inlineStartOverlay);\n    this.bottomInlineStartCornerOverlay = new _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"BottomInlineStartCornerOverlay\"](...args, this.bottomOverlay, this.inlineStartOverlay);\n    _classPrivateFieldSet(_overlays, this, [this.topOverlay, this.bottomOverlay, this.inlineStartOverlay, this.topInlineStartCornerOverlay, this.bottomInlineStartCornerOverlay]);\n  }\n\n  /**\n   * Runs logic for the overlays before the table is drawn.\n   */\n  beforeDraw() {\n    _classPrivateFieldSet(_hasRenderingStateChanged, this, _classPrivateFieldGet(_overlays, this).reduce((acc, overlay) => {\n      return overlay.hasRenderingStateChanged() || acc;\n    }, false));\n    _classPrivateFieldGet(_overlays, this).forEach(overlay => overlay.updateStateOfRendering('before'));\n  }\n\n  /**\n   * Runs logic for the overlays after the table is drawn.\n   */\n  afterDraw() {\n    this.syncScrollWithMaster();\n    _classPrivateFieldGet(_overlays, this).forEach(overlay => {\n      const hasRenderingStateChanged = overlay.hasRenderingStateChanged();\n      overlay.updateStateOfRendering('after');\n      if (hasRenderingStateChanged && !overlay.needFullRender) {\n        overlay.reset();\n      }\n    });\n  }\n\n  /**\n   * Refresh and redraw table.\n   */\n  refreshAll() {\n    if (!this.wot.drawn) {\n      return;\n    }\n    if (!this.wtTable.holder.parentNode) {\n      // Walkontable was detached from DOM, but this handler was not removed\n      this.destroy();\n      return;\n    }\n    this.wot.draw(true);\n    if (this.verticalScrolling) {\n      this.inlineStartOverlay.onScroll(); // todo the inlineStartOverlay.onScroll() fires hook. Why is it needed there, not in any another place?\n    }\n    if (this.horizontalScrolling) {\n      this.topOverlay.onScroll();\n    }\n    this.verticalScrolling = false;\n    this.horizontalScrolling = false;\n  }\n\n  /**\n   * Register all necessary event listeners.\n   */\n  registerListeners() {\n    const {\n      rootDocument,\n      rootWindow\n    } = this.domBindings;\n    const {\n      mainTableScrollableElement: topOverlayScrollableElement\n    } = this.topOverlay;\n    const {\n      mainTableScrollableElement: inlineStartOverlayScrollableElement\n    } = this.inlineStartOverlay;\n    this.eventManager.addEventListener(rootDocument.documentElement, 'keydown', event => this.onKeyDown(event));\n    this.eventManager.addEventListener(rootDocument.documentElement, 'keyup', () => this.onKeyUp());\n    this.eventManager.addEventListener(rootDocument, 'visibilitychange', () => this.onKeyUp());\n    this.eventManager.addEventListener(topOverlayScrollableElement, 'scroll', event => this.onTableScroll(event), {\n      passive: true\n    });\n    if (topOverlayScrollableElement !== inlineStartOverlayScrollableElement) {\n      this.eventManager.addEventListener(inlineStartOverlayScrollableElement, 'scroll', event => this.onTableScroll(event), {\n        passive: true\n      });\n    }\n    const isHighPixelRatio = rootWindow.devicePixelRatio && rootWindow.devicePixelRatio > 1;\n    const isScrollOnWindow = this.scrollableElement === rootWindow;\n    const preventWheel = this.wtSettings.getSetting('preventWheel');\n    const wheelEventOptions = {\n      passive: isScrollOnWindow\n    };\n    if (preventWheel || isHighPixelRatio || !Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_6__[\"isChrome\"])()) {\n      this.eventManager.addEventListener(this.wtTable.wtRootElement, 'wheel', event => this.onCloneWheel(event, preventWheel), wheelEventOptions);\n    }\n    const overlays = [this.topOverlay, this.bottomOverlay, this.inlineStartOverlay, this.topInlineStartCornerOverlay, this.bottomInlineStartCornerOverlay];\n    overlays.forEach(overlay => {\n      if (overlay && overlay.needFullRender) {\n        const {\n          holder\n        } = overlay.clone.wtTable; // todo rethink, maybe: overlay.getHolder()\n\n        this.eventManager.addEventListener(holder, 'wheel', event => this.onCloneWheel(event, preventWheel), wheelEventOptions);\n      }\n    });\n    let resizeTimeout;\n    this.eventManager.addEventListener(rootWindow, 'resize', () => {\n      clearTimeout(resizeTimeout);\n      resizeTimeout = setTimeout(() => {\n        this.wtSettings.getSetting('onWindowResize');\n\n        // Remove resizing the window from the ResizeObserver's endless-loop-blocking logic.\n        _classPrivateFieldSet(_containerDomResizeCount, this, 0);\n      }, 200);\n    });\n    if (!isScrollOnWindow) {\n      this.resizeObserver.observe(this.wtTable.wtRootElement.parentElement);\n    }\n  }\n\n  /**\n   * Deregister all previously registered listeners.\n   */\n  deregisterListeners() {\n    this.eventManager.clearEvents(true);\n  }\n\n  /**\n   * Scroll listener.\n   *\n   * @param {Event} event The mouse event object.\n   */\n  onTableScroll(event) {\n    // There was if statement which controlled flow of this function. It avoided the execution of the next lines\n    // on mobile devices. It was changed. Broader description of this case is included within issue #4856.\n    const rootWindow = this.domBindings.rootWindow;\n    const masterHorizontal = this.inlineStartOverlay.mainTableScrollableElement;\n    const masterVertical = this.topOverlay.mainTableScrollableElement;\n    const target = event.target;\n\n    // For key press, sync only master -> overlay position because while pressing Walkontable.render is triggered\n    // by hot.refreshBorder\n    if (this.keyPressed) {\n      if (masterVertical !== rootWindow && target !== rootWindow && !event.target.contains(masterVertical) || masterHorizontal !== rootWindow && target !== rootWindow && !event.target.contains(masterHorizontal)) {\n        return;\n      }\n    }\n    this.syncScrollPositions(event);\n  }\n\n  /**\n   * Wheel listener for cloned overlays.\n   *\n   * @param {Event} event The mouse event object.\n   * @param {boolean} preventDefault If `true`, the `preventDefault` will be called on event object.\n   */\n  onCloneWheel(event, preventDefault) {\n    const {\n      rootWindow\n    } = this.domBindings;\n\n    // There was if statement which controlled flow of this function. It avoided the execution of the next lines\n    // on mobile devices. It was changed. Broader description of this case is included within issue #4856.\n\n    const masterHorizontal = this.inlineStartOverlay.mainTableScrollableElement;\n    const masterVertical = this.topOverlay.mainTableScrollableElement;\n    const target = event.target;\n\n    // For key press, sync only master -> overlay position because while pressing Walkontable.render is triggered\n    // by hot.refreshBorder\n    const shouldNotWheelVertically = masterVertical !== rootWindow && target !== rootWindow && !target.contains(masterVertical);\n    const shouldNotWheelHorizontally = masterHorizontal !== rootWindow && target !== rootWindow && !target.contains(masterHorizontal);\n    if (this.keyPressed && (shouldNotWheelVertically || shouldNotWheelHorizontally) || this.scrollableElement === rootWindow) {\n      return;\n    }\n    const isScrollPossible = this.translateMouseWheelToScroll(event);\n    if (preventDefault || this.scrollableElement !== rootWindow && isScrollPossible) {\n      event.preventDefault();\n    }\n  }\n\n  /**\n   * Key down listener.\n   *\n   * @param {Event} event The keyboard event object.\n   */\n  onKeyDown(event) {\n    this.keyPressed = Object(_helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isKey\"])(event.keyCode, 'ARROW_UP|ARROW_RIGHT|ARROW_DOWN|ARROW_LEFT');\n  }\n\n  /**\n   * Key up listener.\n   */\n  onKeyUp() {\n    this.keyPressed = false;\n  }\n\n  /**\n   * Translate wheel event into scroll event and sync scroll overlays position.\n   *\n   * @private\n   * @param {Event} event The mouse event object.\n   * @returns {boolean}\n   */\n  translateMouseWheelToScroll(event) {\n    let deltaY = isNaN(event.deltaY) ? -1 * event.wheelDeltaY : event.deltaY;\n    let deltaX = isNaN(event.deltaX) ? -1 * event.wheelDeltaX : event.deltaX;\n    if (event.deltaMode === 1) {\n      deltaX += deltaX * this.browserLineHeight;\n      deltaY += deltaY * this.browserLineHeight;\n    }\n    const isScrollVerticallyPossible = this.scrollVertically(deltaY);\n    const isScrollHorizontallyPossible = this.scrollHorizontally(deltaX);\n    return isScrollVerticallyPossible || isScrollHorizontallyPossible;\n  }\n\n  /**\n   * Scrolls main scrollable element horizontally.\n   *\n   * @param {number} delta Relative value to scroll.\n   * @returns {boolean}\n   */\n  scrollVertically(delta) {\n    const previousScroll = this.scrollableElement.scrollTop;\n    this.scrollableElement.scrollTop += delta;\n    return previousScroll !== this.scrollableElement.scrollTop;\n  }\n\n  /**\n   * Scrolls main scrollable element horizontally.\n   *\n   * @param {number} delta Relative value to scroll.\n   * @returns {boolean}\n   */\n  scrollHorizontally(delta) {\n    const previousScroll = this.scrollableElement.scrollLeft;\n    this.scrollableElement.scrollLeft += delta;\n    return previousScroll !== this.scrollableElement.scrollLeft;\n  }\n\n  /**\n   * Synchronize scroll position between master table and overlay table.\n   *\n   * @private\n   */\n  syncScrollPositions() {\n    if (this.destroyed) {\n      return;\n    }\n    const {\n      rootWindow\n    } = this.domBindings;\n    const topHolder = this.topOverlay.clone.wtTable.holder; // todo rethink\n    const leftHolder = this.inlineStartOverlay.clone.wtTable.holder; // todo rethink\n\n    const [scrollLeft, scrollTop] = [this.scrollableElement.scrollLeft, this.scrollableElement.scrollTop];\n    this.horizontalScrolling = topHolder.scrollLeft !== scrollLeft || this.lastScrollX !== rootWindow.scrollX;\n    this.verticalScrolling = leftHolder.scrollTop !== scrollTop || this.lastScrollY !== rootWindow.scrollY;\n    this.lastScrollX = rootWindow.scrollX;\n    this.lastScrollY = rootWindow.scrollY;\n    if (this.horizontalScrolling) {\n      topHolder.scrollLeft = scrollLeft;\n      const bottomHolder = this.bottomOverlay.needFullRender ? this.bottomOverlay.clone.wtTable.holder : null; // todo rethink\n\n      if (bottomHolder) {\n        bottomHolder.scrollLeft = scrollLeft;\n      }\n    }\n    if (this.verticalScrolling) {\n      leftHolder.scrollTop = scrollTop;\n    }\n    this.refreshAll();\n  }\n\n  /**\n   * Synchronize overlay scrollbars with the master scrollbar.\n   */\n  syncScrollWithMaster() {\n    if (!_classPrivateFieldGet(_hasRenderingStateChanged, this)) {\n      return;\n    }\n    const master = this.topOverlay.mainTableScrollableElement;\n    const {\n      scrollLeft,\n      scrollTop\n    } = master;\n    if (this.topOverlay.needFullRender) {\n      this.topOverlay.clone.wtTable.holder.scrollLeft = scrollLeft; // todo rethink, *overlay.setScroll*()\n    }\n    if (this.bottomOverlay.needFullRender) {\n      this.bottomOverlay.clone.wtTable.holder.scrollLeft = scrollLeft; // todo rethink, *overlay.setScroll*()\n    }\n    if (this.inlineStartOverlay.needFullRender) {\n      this.inlineStartOverlay.clone.wtTable.holder.scrollTop = scrollTop; // todo rethink, *overlay.setScroll*()\n    }\n    _classPrivateFieldSet(_hasRenderingStateChanged, this, false);\n  }\n\n  /**\n   * Update the main scrollable elements for all the overlays.\n   */\n  updateMainScrollableElements() {\n    this.deregisterListeners();\n    this.inlineStartOverlay.updateMainScrollableElement();\n    this.topOverlay.updateMainScrollableElement();\n    if (this.bottomOverlay.needFullRender) {\n      this.bottomOverlay.updateMainScrollableElement();\n    }\n    const {\n      wtTable\n    } = this;\n    const {\n      rootWindow\n    } = this.domBindings;\n    if (rootWindow.getComputedStyle(wtTable.wtRootElement.parentNode).getPropertyValue('overflow') === 'hidden') {\n      this.scrollableElement = wtTable.holder;\n    } else {\n      this.scrollableElement = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getScrollableElement\"])(wtTable.TABLE);\n    }\n    this.registerListeners();\n  }\n\n  /**\n   *\n   */\n  destroy() {\n    this.resizeObserver.disconnect();\n    this.eventManager.destroy();\n    // todo, probably all below `destory` calls has no sense. To analyze\n    this.topOverlay.destroy();\n    if (this.bottomOverlay.clone) {\n      this.bottomOverlay.destroy();\n    }\n    this.inlineStartOverlay.destroy();\n    if (this.topInlineStartCornerOverlay) {\n      this.topInlineStartCornerOverlay.destroy();\n    }\n    if (this.bottomInlineStartCornerOverlay && this.bottomInlineStartCornerOverlay.clone) {\n      this.bottomInlineStartCornerOverlay.destroy();\n    }\n    this.destroyed = true;\n  }\n\n  /**\n   * @param {boolean} [fastDraw=false] When `true`, try to refresh only the positions of borders without rerendering\n   *                                   the data. It will only work if Table.draw() does not force\n   *                                   rendering anyway.\n   */\n  refresh() {\n    let fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    const wasSpreaderSizeUpdated = this.updateLastSpreaderSize();\n    if (wasSpreaderSizeUpdated) {\n      this.adjustElementsSize();\n    }\n    if (this.bottomOverlay.clone) {\n      this.bottomOverlay.refresh(fastDraw);\n    }\n    this.inlineStartOverlay.refresh(fastDraw);\n    this.topOverlay.refresh(fastDraw);\n    if (this.topInlineStartCornerOverlay) {\n      this.topInlineStartCornerOverlay.refresh(fastDraw);\n    }\n    if (this.bottomInlineStartCornerOverlay && this.bottomInlineStartCornerOverlay.clone) {\n      this.bottomInlineStartCornerOverlay.refresh(fastDraw);\n    }\n  }\n\n  /**\n   * Update the last cached spreader size with the current size.\n   *\n   * @returns {boolean} `true` if the lastSpreaderSize cache was updated, `false` otherwise.\n   */\n  updateLastSpreaderSize() {\n    const spreader = this.wtTable.spreader;\n    const width = spreader.clientWidth;\n    const height = spreader.clientHeight;\n    const needsUpdating = width !== this.spreaderLastSize.width || height !== this.spreaderLastSize.height;\n    if (needsUpdating) {\n      this.spreaderLastSize.width = width;\n      this.spreaderLastSize.height = height;\n    }\n    return needsUpdating;\n  }\n\n  /**\n   * Adjust overlays elements size and master table size.\n   */\n  adjustElementsSize() {\n    const {\n      wtViewport\n    } = this.wot;\n    const {\n      wtTable\n    } = this;\n    const {\n      rootWindow\n    } = this.domBindings;\n    const isWindowScrolled = this.scrollableElement === rootWindow;\n    const totalColumns = this.wtSettings.getSetting('totalColumns');\n    const totalRows = this.wtSettings.getSetting('totalRows');\n    const headerRowSize = wtViewport.getRowHeaderWidth();\n    const headerColumnSize = wtViewport.getColumnHeaderHeight();\n    const proposedHiderHeight = headerColumnSize + this.topOverlay.sumCellSizes(0, totalRows) + 1;\n    const proposedHiderWidth = headerRowSize + this.inlineStartOverlay.sumCellSizes(0, totalColumns);\n    const hiderElement = wtTable.hider;\n    const hiderStyle = hiderElement.style;\n    const isScrolledBeyondHiderHeight = () => {\n      return isWindowScrolled ? false : this.scrollableElement.scrollTop > Math.max(0, proposedHiderHeight - wtTable.holder.clientHeight);\n    };\n    const isScrolledBeyondHiderWidth = () => {\n      return isWindowScrolled ? false : this.scrollableElement.scrollLeft > Math.max(0, proposedHiderWidth - wtTable.holder.clientWidth);\n    };\n    const columnHeaderBorderCompensation = isScrolledBeyondHiderHeight() ? 1 : 0;\n    const rowHeaderBorderCompensation = isScrolledBeyondHiderWidth() ? 1 : 0;\n\n    // If the elements are being adjusted after scrolling the table from the very beginning to the very end,\n    // we need to adjust the hider dimensions by the header border size. (https://github.com/handsontable/dev-handsontable/issues/1772)\n    hiderStyle.width = `${proposedHiderWidth + rowHeaderBorderCompensation}px`;\n    hiderStyle.height = `${proposedHiderHeight + columnHeaderBorderCompensation}px`;\n    if (this.scrollbarSize > 0) {\n      // todo refactoring, looking as a part of logic which should be moved outside the class\n      const {\n        scrollHeight: rootElemScrollHeight,\n        scrollWidth: rootElemScrollWidth\n      } = wtTable.wtRootElement;\n      const {\n        scrollHeight: holderScrollHeight,\n        scrollWidth: holderScrollWidth\n      } = wtTable.holder;\n      this.hasScrollbarRight = rootElemScrollHeight < holderScrollHeight;\n      this.hasScrollbarBottom = rootElemScrollWidth < holderScrollWidth;\n      if (this.hasScrollbarRight && wtTable.hider.scrollWidth + this.scrollbarSize > rootElemScrollWidth) {\n        this.hasScrollbarBottom = true;\n      } else if (this.hasScrollbarBottom && wtTable.hider.scrollHeight + this.scrollbarSize > rootElemScrollHeight) {\n        this.hasScrollbarRight = true;\n      }\n    }\n    this.topOverlay.adjustElementsSize();\n    this.inlineStartOverlay.adjustElementsSize();\n    this.bottomOverlay.adjustElementsSize();\n  }\n\n  /**\n   * Expand the hider vertically element by the provided delta value.\n   *\n   * @param {number} heightDelta The delta value to expand the hider element by.\n   */\n  expandHiderVerticallyBy(heightDelta) {\n    const {\n      wtTable\n    } = this;\n    wtTable.hider.style.height = `${parseInt(wtTable.hider.style.height, 10) + heightDelta}px`;\n  }\n\n  /**\n   * Expand the hider horizontally element by the provided delta value.\n   *\n   * @param {number} widthDelta The delta value to expand the hider element by.\n   */\n  expandHiderHorizontallyBy(widthDelta) {\n    const {\n      wtTable\n    } = this;\n    wtTable.hider.style.width = `${parseInt(wtTable.hider.style.width, 10) + widthDelta}px`;\n  }\n\n  /**\n   *\n   */\n  applyToDOM() {\n    if (!this.wtTable.isVisible()) {\n      return;\n    }\n    this.topOverlay.applyToDOM();\n    if (this.bottomOverlay.clone) {\n      this.bottomOverlay.applyToDOM();\n    }\n    this.inlineStartOverlay.applyToDOM();\n  }\n\n  /**\n   * Get the parent overlay of the provided element.\n   *\n   * @param {HTMLElement} element An element to process.\n   * @returns {object|null}\n   */\n  getParentOverlay(element) {\n    if (!element) {\n      return null;\n    }\n    const overlays = [this.topOverlay, this.inlineStartOverlay, this.bottomOverlay, this.topInlineStartCornerOverlay, this.bottomInlineStartCornerOverlay];\n    let result = null;\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(overlays, overlay => {\n      if (!overlay) {\n        return;\n      }\n      if (overlay.clone && overlay.clone.wtTable.TABLE.contains(element)) {\n        // todo demeter\n        result = overlay.clone;\n      }\n    });\n    return result;\n  }\n\n  /**\n   * Synchronize the class names between the main overlay table and the tables on the other overlays.\n   *\n   */\n  syncOverlayTableClassNames() {\n    const masterTable = this.wtTable.TABLE;\n    const overlays = [this.topOverlay, this.inlineStartOverlay, this.bottomOverlay, this.topInlineStartCornerOverlay, this.bottomInlineStartCornerOverlay];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(overlays, elem => {\n      if (!elem) {\n        return;\n      }\n      elem.clone.wtTable.TABLE.className = masterTable.className; // todo demeter\n    });\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (Overlays);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/overlays.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/renderer/_base.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/renderer/_base.mjs ***!
  \*******************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BaseRenderer; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _utils_nodesPool_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../utils/nodesPool.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/utils/nodesPool.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n/**\n * Base renderer class, abstract logic for specialized renderers.\n *\n * @class BaseRenderer\n */\nclass BaseRenderer {\n  constructor(nodeType, rootNode) {\n    /**\n     * Factory for newly created DOM elements.\n     *\n     * NodePool should be used for each renderer. For the first stage of the refactoring\n     * process, only some of the renderers are implemented a new approach.\n     *\n     * @type {NodesPool|null}\n     */\n    _defineProperty(this, \"nodesPool\", null);\n    /**\n     * Node type which the renderer will manage while building the table (eg. 'TD', 'TR', 'TH').\n     *\n     * @type {string}\n     */\n    _defineProperty(this, \"nodeType\", void 0);\n    /**\n     * The root node to which newly created elements will be inserted.\n     *\n     * @type {HTMLElement}\n     */\n    _defineProperty(this, \"rootNode\", void 0);\n    /**\n     * The instance of the Table class, a wrapper for all renderers and holder for properties describe table state.\n     *\n     * @type {TableRenderer}\n     */\n    _defineProperty(this, \"table\", null);\n    /**\n     * Counter of nodes already added.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"renderedNodes\", 0);\n    this.nodesPool = typeof nodeType === 'string' ? new _utils_nodesPool_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"](nodeType) : null;\n    this.nodeType = nodeType;\n    this.rootNode = rootNode;\n  }\n\n  /**\n   * Sets the table renderer instance to the current renderer.\n   *\n   * @param {TableRenderer} table The TableRenderer instance.\n   */\n  setTable(table) {\n    if (this.nodesPool) {\n      this.nodesPool.setRootDocument(table.rootDocument);\n    }\n    this.table = table;\n  }\n\n  /**\n   * Adjusts the number of rendered nodes.\n   */\n  adjust() {}\n\n  /**\n   * Renders the contents to the elements.\n   */\n  render() {}\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/renderer/_base.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/renderer/cells.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/renderer/cells.mjs ***!
  \*******************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CellsRenderer; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _utils_orderView_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../utils/orderView/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/index.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/renderer/_base.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n/**\n * Cell renderer responsible for managing (inserting, tracking, rendering) TD elements.\n *\n *   <tr> (root node)\n *     ├ <th>   --- RowHeadersRenderer\n *     ├ <td>   \\\n *     ├ <td>    \\\n *     ├ <td>     - CellsRenderer\n *     ├ <td>    /\n *     └ <td>   /.\n *\n * @class {CellsRenderer}\n */\nclass CellsRenderer extends _base_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"] {\n  constructor() {\n    super('TD');\n    /**\n     * Cache for OrderView classes connected to specified node.\n     *\n     * @type {WeakMap}\n     */\n    _defineProperty(this, \"orderViews\", new WeakMap());\n    /**\n     * Row index which specifies the row position of the processed cell.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"sourceRowIndex\", 0);\n  }\n\n  /**\n   * Obtains the instance of the SharedOrderView class which is responsible for rendering the nodes to the root node.\n   *\n   * @param {HTMLTableRowElement} rootNode The TR element, which is root element for cells (TD).\n   * @returns {SharedOrderView}\n   */\n  obtainOrderView(rootNode) {\n    let orderView;\n    if (this.orderViews.has(rootNode)) {\n      orderView = this.orderViews.get(rootNode);\n    } else {\n      orderView = new _utils_orderView_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"SharedOrderView\"](rootNode, sourceColumnIndex => this.nodesPool.obtain(this.sourceRowIndex, sourceColumnIndex), this.nodeType);\n      this.orderViews.set(rootNode, orderView);\n    }\n    return orderView;\n  }\n\n  /**\n   * Renders the cells.\n   */\n  render() {\n    const {\n      rowsToRender,\n      columnsToRender,\n      rows,\n      rowHeaders\n    } = this.table;\n    for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {\n      const sourceRowIndex = this.table.renderedRowToSource(visibleRowIndex);\n      const TR = rows.getRenderedNode(visibleRowIndex);\n      this.sourceRowIndex = sourceRowIndex;\n      const orderView = this.obtainOrderView(TR);\n      const rowHeadersView = rowHeaders.obtainOrderView(TR);\n\n      // @TODO(perf-tip): For cells other than \"visual 0\" generating diff leads/commands can be skipped. New order view\n      // should share state between next orderViews.\n      orderView.prependView(rowHeadersView).setSize(columnsToRender).setOffset(this.table.renderedColumnToSource(0)).start();\n      for (let visibleColumnIndex = 0; visibleColumnIndex < columnsToRender; visibleColumnIndex++) {\n        orderView.render();\n        const TD = orderView.getCurrentNode();\n        const sourceColumnIndex = this.table.renderedColumnToSource(visibleColumnIndex);\n        if (!Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"hasClass\"])(TD, 'hide')) {\n          // Workaround for hidden columns plugin\n          TD.className = '';\n        }\n        TD.removeAttribute('style');\n        TD.removeAttribute('dir');\n\n        // Remove all accessibility-related attributes for the cell to start fresh.\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"removeAttribute\"])(TD, [new RegExp('aria-(.*)'), new RegExp('role')]);\n        this.table.cellRenderer(sourceRowIndex, sourceColumnIndex, TD);\n        if (this.table.isAriaEnabled()) {\n          var _this$table$rowUtils$, _this$table$rowUtils;\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"setAttribute\"])(TD, [...(TD.hasAttribute('role') ? [] : [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_4__[\"A11Y_GRIDCELL\"])()]), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_4__[\"A11Y_TABINDEX\"])(-1),\n          // `aria-colindex` is incremented by both tbody and thead rows.\n          Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_4__[\"A11Y_COLINDEX\"])(sourceColumnIndex + ((_this$table$rowUtils$ = (_this$table$rowUtils = this.table.rowUtils) === null || _this$table$rowUtils === void 0 || (_this$table$rowUtils = _this$table$rowUtils.dataAccessObject) === null || _this$table$rowUtils === void 0 ? void 0 : _this$table$rowUtils.rowHeaders.length) !== null && _this$table$rowUtils$ !== void 0 ? _this$table$rowUtils$ : 0) + 1)]);\n        }\n      }\n      orderView.end();\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/renderer/cells.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/renderer/colGroup.mjs":
/*!**********************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/renderer/colGroup.mjs ***!
  \**********************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ColGroupRenderer; });\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/renderer/_base.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../../../../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../../../../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n\n\n\n\nlet performanceWarningAppeared = false;\n\n/**\n * Colgroup renderer responsible for managing (inserting, tracking, rendering) COL elements.\n *\n *   <colgroup> (root node)\n *     ├ <col>   \\\n *     ├ <col>    \\\n *     ├ <col>     - ColGroupRenderer\n *     ├ <col>    /\n *     └ <col>   /.\n *\n * @class {ColGroupRenderer}\n */\nclass ColGroupRenderer extends _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  constructor(rootNode) {\n    super(null, rootNode); // NodePool is not implemented for this renderer yet\n  }\n\n  /**\n   * Adjusts the number of the rendered elements.\n   */\n  adjust() {\n    const {\n      columnsToRender,\n      rowHeadersCount\n    } = this.table;\n    const allColumnsToRender = columnsToRender + rowHeadersCount;\n    while (this.renderedNodes < allColumnsToRender) {\n      this.rootNode.appendChild(this.table.rootDocument.createElement('col'));\n      this.renderedNodes += 1;\n    }\n    while (this.renderedNodes > allColumnsToRender) {\n      this.rootNode.removeChild(this.rootNode.lastChild);\n      this.renderedNodes -= 1;\n    }\n  }\n\n  /**\n   * Renders the col group elements.\n   */\n  render() {\n    this.adjust();\n    const {\n      columnsToRender,\n      rowHeadersCount\n    } = this.table;\n    if (!performanceWarningAppeared && columnsToRender > 1000) {\n      performanceWarningAppeared = true;\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_1__[\"warn\"])(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_2__[\"toSingleLine\"]`Performance tip: Handsontable rendered more than 1000 visible columns.\\x20\n        Consider limiting the number of rendered columns by specifying the table width and/or\\x20\n        turning off the \"renderAllColumns\" option.`);\n    }\n\n    // Render column nodes for row headers\n    for (let visibleColumnIndex = 0; visibleColumnIndex < rowHeadersCount; visibleColumnIndex++) {\n      const sourceColumnIndex = this.table.renderedColumnToSource(visibleColumnIndex);\n      const width = this.table.columnUtils.getHeaderWidth(sourceColumnIndex);\n      this.rootNode.childNodes[visibleColumnIndex].style.width = `${width}px`;\n    }\n\n    // Render column nodes for cells\n    for (let visibleColumnIndex = 0; visibleColumnIndex < columnsToRender; visibleColumnIndex++) {\n      const sourceColumnIndex = this.table.renderedColumnToSource(visibleColumnIndex);\n      const width = this.table.columnUtils.getStretchedColumnWidth(sourceColumnIndex);\n      this.rootNode.childNodes[visibleColumnIndex + rowHeadersCount].style.width = `${width}px`;\n    }\n    const firstChild = this.rootNode.firstChild;\n    if (firstChild) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"addClass\"])(firstChild, 'rowHeader');\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/renderer/colGroup.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/renderer/columnHeaders.mjs":
/*!***************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/renderer/columnHeaders.mjs ***!
  \***************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ColumnHeadersRenderer; });\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/renderer/_base.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\n\n/**\n * Column headers renderer responsible for managing (inserting, tracking, rendering) TR and TH elements.\n *\n *   <thead> (root node)\n *     ├ <tr>   \\\n *     ├ <tr>    \\\n *     ├ <tr>     - ColumnHeadersRenderer\n *     ├ <tr>    /\n *     └ <tr>   /.\n *\n * @class {ColumnHeadersRenderer}\n */\nclass ColumnHeadersRenderer extends _base_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n  constructor(rootNode) {\n    super(null, rootNode); // NodePool is not implemented for this renderer yet\n  }\n\n  /**\n   * Adjusts the number of the rendered elements.\n   */\n  adjust() {\n    const {\n      columnHeadersCount,\n      rowHeadersCount\n    } = this.table;\n    let TR = this.rootNode.firstChild;\n    if (columnHeadersCount) {\n      const {\n        columnsToRender\n      } = this.table;\n      const allColumnsToRender = columnsToRender + rowHeadersCount;\n      for (let i = 0, len = columnHeadersCount; i < len; i++) {\n        TR = this.rootNode.childNodes[i];\n        if (!TR) {\n          TR = this.table.rootDocument.createElement('tr');\n          this.rootNode.appendChild(TR);\n        }\n        this.renderedNodes = TR.childNodes.length;\n        while (this.renderedNodes < allColumnsToRender) {\n          TR.appendChild(this.table.rootDocument.createElement('th'));\n          this.renderedNodes += 1;\n        }\n        while (this.renderedNodes > allColumnsToRender) {\n          TR.removeChild(TR.lastChild);\n          this.renderedNodes -= 1;\n        }\n      }\n      const theadChildrenLength = this.rootNode.childNodes.length;\n      if (theadChildrenLength > columnHeadersCount) {\n        for (let i = columnHeadersCount; i < theadChildrenLength; i++) {\n          this.rootNode.removeChild(this.rootNode.lastChild);\n        }\n      }\n    } else if (TR) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"empty\"])(TR);\n    }\n  }\n\n  /**\n   * Renders the TH elements.\n   */\n  render() {\n    const {\n      columnHeadersCount\n    } = this.table;\n    if (this.table.isAriaEnabled()) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"setAttribute\"])(this.rootNode, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_ROWGROUP\"])()]);\n    }\n    for (let rowHeaderIndex = 0; rowHeaderIndex < columnHeadersCount; rowHeaderIndex += 1) {\n      const {\n        columnHeaderFunctions,\n        columnsToRender,\n        rowHeadersCount\n      } = this.table;\n      const TR = this.rootNode.childNodes[rowHeaderIndex];\n      if (this.table.isAriaEnabled()) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"setAttribute\"])(TR, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_ROW\"])(), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_ROWINDEX\"])(rowHeaderIndex + 1)]);\n      }\n      for (let renderedColumnIndex = -1 * rowHeadersCount; renderedColumnIndex < columnsToRender; renderedColumnIndex += 1) {\n        // eslint-disable-line max-len\n        const sourceColumnIndex = this.table.renderedColumnToSource(renderedColumnIndex);\n        const TH = TR.childNodes[renderedColumnIndex + rowHeadersCount];\n        TH.className = '';\n        TH.removeAttribute('style');\n\n        // Remove all accessibility-related attributes for the header to start fresh.\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"removeAttribute\"])(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);\n        if (this.table.isAriaEnabled()) {\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"setAttribute\"])(TH, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_COLINDEX\"])(renderedColumnIndex + 1 + this.table.rowHeadersCount), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_TABINDEX\"])(-1), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_COLUMNHEADER\"])(), ...(renderedColumnIndex >= 0 ? [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_SCOPE_COL\"])()] : [\n          // Adding `role=row` to the corner headers to prevent\n          // https://github.com/handsontable/dev-handsontable/issues/1574\n          Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_ROW\"])()])]);\n        }\n        columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);\n      }\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/renderer/columnHeaders.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/renderer/index.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/renderer/index.mjs ***!
  \*******************************************************************************/
/*! exports provided: RowHeadersRenderer, ColumnHeadersRenderer, ColGroupRenderer, RowsRenderer, CellsRenderer, TableRenderer, Renderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Renderer\", function() { return Renderer; });\n/* harmony import */ var _rowHeaders_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rowHeaders.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/renderer/rowHeaders.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RowHeadersRenderer\", function() { return _rowHeaders_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _columnHeaders_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./columnHeaders.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/renderer/columnHeaders.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ColumnHeadersRenderer\", function() { return _columnHeaders_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _colGroup_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./colGroup.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/renderer/colGroup.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ColGroupRenderer\", function() { return _colGroup_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _rows_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rows.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/renderer/rows.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RowsRenderer\", function() { return _rows_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _cells_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cells.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/renderer/cells.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CellsRenderer\", function() { return _cells_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _table_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./table.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/renderer/table.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TableRenderer\", function() { return _table_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n\n\n\n\n\n\n/**\n * Content renderer.\n *\n * @class Renderer\n */\nclass Renderer {\n  constructor() {\n    let {\n      TABLE,\n      THEAD,\n      COLGROUP,\n      TBODY,\n      rowUtils,\n      columnUtils,\n      cellRenderer\n    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    /**\n     * General renderer class used to render Walkontable content on screen.\n     *\n     * @type {TableRenderer}\n     */\n    this.renderer = new _table_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"](TABLE, {\n      cellRenderer\n    });\n    this.renderer.setRenderers({\n      rowHeaders: new _rowHeaders_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"](),\n      columnHeaders: new _columnHeaders_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"](THEAD),\n      colGroup: new _colGroup_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"](COLGROUP),\n      rows: new _rows_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"](TBODY),\n      cells: new _cells_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"]()\n    });\n    this.renderer.setAxisUtils(rowUtils, columnUtils);\n  }\n\n  /**\n   * Sets the overlay that is currently rendered. If `null` is provided, the master overlay is set.\n   *\n   * @param {'inline_start'|'top'|'top_inline_start_corner'|'bottom'|'bottom_inline_start_corner'|'master'} overlayName The overlay name.\n   * @returns {Renderer}\n   */\n  setActiveOverlayName(overlayName) {\n    this.renderer.setActiveOverlayName(overlayName);\n    return this;\n  }\n\n  /**\n   * Sets filter calculators for newly calculated row and column position. The filters are used to transform visual\n   * indexes (0 to N) to source indexes provided by Handsontable.\n   *\n   * @param {RowFilter} rowFilter The row filter instance.\n   * @param {ColumnFilter} columnFilter The column filter instance.\n   * @returns {Renderer}\n   */\n  setFilters(rowFilter, columnFilter) {\n    this.renderer.setFilters(rowFilter, columnFilter);\n    return this;\n  }\n\n  /**\n   * Sets the viewport size of the rendered table.\n   *\n   * @param {number} rowsCount An amount of rows to render.\n   * @param {number} columnsCount An amount of columns to render.\n   * @returns {Renderer}\n   */\n  setViewportSize(rowsCount, columnsCount) {\n    this.renderer.setViewportSize(rowsCount, columnsCount);\n    return this;\n  }\n\n  /**\n   * Sets row and column header functions.\n   *\n   * @param {Function[]} rowHeaders Row header functions. Factories for creating content for row headers.\n   * @param {Function[]} columnHeaders Column header functions. Factories for creating content for column headers.\n   * @returns {Renderer}\n   */\n  setHeaderContentRenderers(rowHeaders, columnHeaders) {\n    this.renderer.setHeaderContentRenderers(rowHeaders, columnHeaders);\n    return this;\n  }\n\n  /**\n   * Adjusts the table (preparing for render).\n   */\n  adjust() {\n    this.renderer.adjust();\n  }\n\n  /**\n   * Renders the table.\n   */\n  render() {\n    this.renderer.render();\n  }\n}\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/renderer/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/renderer/rowHeaders.mjs":
/*!************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/renderer/rowHeaders.mjs ***!
  \************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return RowHeadersRenderer; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _utils_orderView_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../utils/orderView/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/index.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/renderer/_base.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n/**\n * Row headers renderer responsible for managing (inserting, tracking, rendering) TR elements belongs to TR.\n *\n *   <tr> (root node)\n *     ├ <th>   --- RowHeadersRenderer\n *     ├ <td>   \\\n *     ├ <td>    \\\n *     ├ <td>     - CellsRenderer\n *     ├ <td>    /\n *     └ <td>   /.\n *\n * @class {CellsRenderer}\n */\nclass RowHeadersRenderer extends _base_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n  constructor() {\n    super('TH');\n    /**\n     * Cache for OrderView classes connected to specified node.\n     *\n     * @type {WeakMap}\n     */\n    _defineProperty(this, \"orderViews\", new WeakMap());\n    /**\n     * Row index which specifies the row position of the processed row header.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"sourceRowIndex\", 0);\n  }\n\n  /**\n   * Obtains the instance of the SharedOrderView class which is responsible for rendering the nodes to the root node.\n   *\n   * @param {HTMLTableRowElement} rootNode The TR element, which is root element for row headers (TH).\n   * @returns {SharedOrderView}\n   */\n  obtainOrderView(rootNode) {\n    let orderView;\n    if (this.orderViews.has(rootNode)) {\n      orderView = this.orderViews.get(rootNode);\n    } else {\n      orderView = new _utils_orderView_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"SharedOrderView\"](rootNode, sourceColumnIndex => this.nodesPool.obtain(this.sourceRowIndex, sourceColumnIndex), this.nodeType);\n      this.orderViews.set(rootNode, orderView);\n    }\n    return orderView;\n  }\n\n  /**\n   * Renders the cells.\n   */\n  render() {\n    const {\n      rowsToRender,\n      rowHeaderFunctions,\n      rowHeadersCount,\n      rows,\n      cells\n    } = this.table;\n    for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {\n      const sourceRowIndex = this.table.renderedRowToSource(visibleRowIndex);\n      const TR = rows.getRenderedNode(visibleRowIndex);\n      this.sourceRowIndex = sourceRowIndex;\n      const orderView = this.obtainOrderView(TR);\n      const cellsView = cells.obtainOrderView(TR);\n      orderView.appendView(cellsView).setSize(rowHeadersCount).setOffset(this.table.renderedColumnToSource(0)).start();\n      for (let visibleColumnIndex = 0; visibleColumnIndex < rowHeadersCount; visibleColumnIndex++) {\n        orderView.render();\n        const TH = orderView.getCurrentNode();\n        TH.className = '';\n        TH.removeAttribute('style');\n\n        // Remove all accessibility-related attributes for the header to start fresh.\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"removeAttribute\"])(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);\n        if (this.table.isAriaEnabled()) {\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"setAttribute\"])(TH, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_4__[\"A11Y_ROWHEADER\"])(), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_4__[\"A11Y_SCOPE_ROW\"])(), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_4__[\"A11Y_COLINDEX\"])(visibleColumnIndex + 1), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_4__[\"A11Y_TABINDEX\"])(-1)]);\n        }\n        rowHeaderFunctions[visibleColumnIndex](sourceRowIndex, TH, visibleColumnIndex);\n      }\n      orderView.end();\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/renderer/rowHeaders.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/renderer/rows.mjs":
/*!******************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/renderer/rows.mjs ***!
  \******************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return RowsRenderer; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/renderer/_base.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../../../../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../../../../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n/* harmony import */ var _utils_orderView_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../utils/orderView/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/index.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\nlet performanceWarningAppeared = false;\n\n/**\n * Rows renderer responsible for managing (inserting, tracking, rendering) TR elements belongs to TBODY.\n *\n *   <tbody> (root node)\n *     ├ <tr>   \\\n *     ├ <tr>    \\\n *     ├ <tr>     - RowsRenderer\n *     ├ <tr>    /\n *     └ <tr>   /.\n *\n * @class {RowsRenderer}\n */\nclass RowsRenderer extends _base_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n  constructor(rootNode) {\n    super('TR', rootNode);\n    /**\n     * Cache for OrderView classes connected to specified node.\n     *\n     * @type {WeakMap}\n     */\n    _defineProperty(this, \"orderView\", void 0);\n    this.orderView = new _utils_orderView_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"OrderView\"](rootNode, sourceRowIndex => this.nodesPool.obtain(sourceRowIndex), this.nodeType);\n  }\n\n  /**\n   * Returns currently rendered node.\n   *\n   * @param {string} visualIndex Visual index of the rendered node (it always goeas from 0 to N).\n   * @returns {HTMLTableRowElement}\n   */\n  getRenderedNode(visualIndex) {\n    return this.orderView.getNode(visualIndex);\n  }\n\n  /**\n   * Renders the cells.\n   */\n  render() {\n    const {\n      rowsToRender\n    } = this.table;\n    if (!performanceWarningAppeared && rowsToRender > 1000) {\n      performanceWarningAppeared = true;\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_2__[\"warn\"])(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_3__[\"toSingleLine\"]`Performance tip: Handsontable rendered more than 1000 visible rows.\\x20\n        Consider limiting the number of rendered rows by specifying the table height and/or\\x20\n        turning off the \"renderAllRows\" option.`);\n    }\n    if (this.table.isAriaEnabled()) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"setAttribute\"])(this.rootNode, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_6__[\"A11Y_ROWGROUP\"])()]);\n    }\n    this.orderView.setSize(rowsToRender).setOffset(this.table.renderedRowToSource(0)).start();\n    for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {\n      this.orderView.render();\n      const TR = this.orderView.getCurrentNode();\n      const sourceRowIndex = this.table.renderedRowToSource(visibleRowIndex);\n      if (this.table.isAriaEnabled()) {\n        var _this$table$rowUtils$, _this$table$rowUtils;\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"setAttribute\"])(TR, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_6__[\"A11Y_ROW\"])(),\n        // `aria-rowindex` is incremented by both tbody and thead rows.\n        Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_6__[\"A11Y_ROWINDEX\"])(sourceRowIndex + ((_this$table$rowUtils$ = (_this$table$rowUtils = this.table.rowUtils) === null || _this$table$rowUtils === void 0 || (_this$table$rowUtils = _this$table$rowUtils.dataAccessObject) === null || _this$table$rowUtils === void 0 ? void 0 : _this$table$rowUtils.columnHeaders.length) !== null && _this$table$rowUtils$ !== void 0 ? _this$table$rowUtils$ : 0) + 1)]);\n      }\n    }\n    this.orderView.end();\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/renderer/rows.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/renderer/table.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/renderer/table.mjs ***!
  \*******************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return TableRenderer; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * TableRenderer class collects all renderers and properties necessary for table creation. It's\n * responsible for adjusting and rendering each renderer.\n *\n * Below is a diagram of the renderers together with an indication of what they are responisble for.\n *   <table>\n *     <colgroup>  \\ (root node)\n *       <col>      \\\n *       <col>       \\___ ColGroupRenderer\n *       <col>       /\n *       <col>      /\n *     </colgroup> /\n *     <thead>     \\ (root node)\n *       <tr>       \\\n *         <th>      \\\n *         <th>       \\____ ColumnHeadersRenderer\n *         <th>       /\n *         <th>      /\n *       </tr>      /\n *     </thead>    /\n *     <tbody>   ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\\ (root node)\n *       <tr>   (root node)          \\\n *         <th>  --- RowHeadersRenderer\n *         <td>  \\                     \\\n *         <td>   -- CellsRenderer      \\\n *         <td>  /                       \\\n *       </tr>                            \\\n *       <tr>   (root node)                \\\n *         <th>  --- RowHeadersRenderer     \\\n *         <td>  \\                           \\___ RowsRenderer\n *         <td>   -- CellsRenderer           /\n *         <td>  /                          /\n *       </tr>                             /\n *       <tr>   (root node)               /\n *         <th>  --- RowHeadersRenderer  /\n *         <td>  \\                      /\n *         <td>   -- CellsRenderer     /\n *         <td>  /                    /\n *       </tr>                       /\n *     </tbody>  ___________________/\n *   </table>.\n *\n * @class {RowsRenderer}\n */\nclass TableRenderer {\n  constructor(rootNode) {\n    let {\n      cellRenderer\n    } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    /**\n     * Table element which will be used to render the children element.\n     *\n     * @type {HTMLTableElement}\n     */\n    _defineProperty(this, \"rootNode\", void 0);\n    /**\n     * Document owner of the root node.\n     *\n     * @type {HTMLDocument}\n     */\n    _defineProperty(this, \"rootDocument\", void 0);\n    /**\n     * Renderer class responsible for rendering row headers.\n     *\n     * @type {RowsRenderer}\n     */\n    _defineProperty(this, \"rowHeaders\", null);\n    /**\n     * Renderer class responsible for rendering column headers.\n     *\n     * @type {ColumnHeadersRenderer}\n     */\n    _defineProperty(this, \"columnHeaders\", null);\n    /**\n     * Renderer class responsible for rendering col in colgroup.\n     *\n     * @type {ColGroupRenderer}\n     */\n    _defineProperty(this, \"colGroup\", null);\n    /**\n     * Renderer class responsible for rendering rows in tbody.\n     *\n     * @type {RowsRenderer}\n     */\n    _defineProperty(this, \"rows\", null);\n    /**\n     * Renderer class responsible for rendering cells.\n     *\n     * @type {CellsRenderer}\n     */\n    _defineProperty(this, \"cells\", null);\n    /**\n     * Row filter which contains all necessary information about row index transformation.\n     *\n     * @type {RowFilter}\n     */\n    _defineProperty(this, \"rowFilter\", null);\n    /**\n     * Column filter which contains all necessary information about column index transformation.\n     *\n     * @type {ColumnFilter}\n     */\n    _defineProperty(this, \"columnFilter\", null);\n    /**\n     * Row utils class which contains all necessary information about sizes of the rows.\n     *\n     * @type {RowUtils}\n     */\n    _defineProperty(this, \"rowUtils\", null);\n    /**\n     * Column utils class which contains all necessary information about sizes of the columns.\n     *\n     * @type {ColumnUtils}\n     */\n    _defineProperty(this, \"columnUtils\", null);\n    /**\n     * Indicates how much rows should be rendered to fill whole table viewport.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"rowsToRender\", 0);\n    /**\n     * Indicates how much columns should be rendered to fill whole table viewport.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"columnsToRender\", 0);\n    /**\n     * An array of functions to be used as a content factory to row headers.\n     *\n     * @type {Function[]}\n     */\n    _defineProperty(this, \"rowHeaderFunctions\", []);\n    /**\n     * Count of the function used to render row headers.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"rowHeadersCount\", 0);\n    /**\n     * An array of functions to be used as a content factory to column headers.\n     *\n     * @type {Function[]}\n     */\n    _defineProperty(this, \"columnHeaderFunctions\", []);\n    /**\n     * Count of the function used to render column headers.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"columnHeadersCount\", 0);\n    /**\n     * Cell renderer used to render cells content.\n     *\n     * @type {Function}\n     */\n    _defineProperty(this, \"cellRenderer\", void 0);\n    /**\n     * Holds the name of the currently active overlay.\n     *\n     * @type {'inline_start'|'top'|'top_inline_start_corner'|'bottom'|'bottom_inline_start_corner'|'master'}\n     */\n    _defineProperty(this, \"activeOverlayName\", void 0);\n    this.rootNode = rootNode;\n    this.rootDocument = this.rootNode.ownerDocument;\n    this.cellRenderer = cellRenderer;\n  }\n\n  /**\n   * Sets the overlay that is currently rendered. If `null` is provided, the master overlay is set.\n   *\n   * @param {'inline_start'|'top'|'top_inline_start_corner'|'bottom'|'bottom_inline_start_corner'|'master'} overlayName The overlay name.\n   */\n  setActiveOverlayName(overlayName) {\n    this.activeOverlayName = overlayName;\n  }\n\n  /**\n   * Set row and column util classes.\n   *\n   * @param {RowUtils} rowUtils RowUtils instance which provides useful methods related to row sizes.\n   * @param {ColumnUtils} columnUtils ColumnUtils instance which provides useful methods related to row sizes.\n   */\n  setAxisUtils(rowUtils, columnUtils) {\n    this.rowUtils = rowUtils;\n    this.columnUtils = columnUtils;\n  }\n\n  /**\n   * Sets viewport size of the table.\n   *\n   * @param {number} rowsCount An amount of rows to render.\n   * @param {number} columnsCount An amount of columns to render.\n   */\n  setViewportSize(rowsCount, columnsCount) {\n    this.rowsToRender = rowsCount;\n    this.columnsToRender = columnsCount;\n  }\n\n  /**\n   * Sets row and column filter instances.\n   *\n   * @param {RowFilter} rowFilter Row filter instance which contains all necessary information about row index transformation.\n   * @param {ColumnFilter} columnFilter Column filter instance which contains all necessary information about row\n   * index transformation.\n   */\n  setFilters(rowFilter, columnFilter) {\n    this.rowFilter = rowFilter;\n    this.columnFilter = columnFilter;\n  }\n\n  /**\n   * Sets row and column header functions.\n   *\n   * @param {Function[]} rowHeaders Row header functions. Factories for creating content for row headers.\n   * @param {Function[]} columnHeaders Column header functions. Factories for creating content for column headers.\n   */\n  setHeaderContentRenderers(rowHeaders, columnHeaders) {\n    this.rowHeaderFunctions = rowHeaders;\n    this.rowHeadersCount = rowHeaders.length;\n    this.columnHeaderFunctions = columnHeaders;\n    this.columnHeadersCount = columnHeaders.length;\n  }\n\n  /**\n   * Sets table renderers.\n   *\n   * @param {renderers} renderers The renderer units.\n   * @param {RowHeadersRenderer} renderers.rowHeaders Row headers renderer.\n   * @param {ColumnHeadersRenderer} renderers.columnHeaders Column headers renderer.\n   * @param {ColGroupRenderer} renderers.colGroup Col group renderer.\n   * @param {RowsRenderer} renderers.rows Rows renderer.\n   * @param {CellsRenderer} renderers.cells Cells renderer.\n   */\n  setRenderers() {\n    let {\n      rowHeaders,\n      columnHeaders,\n      colGroup,\n      rows,\n      cells\n    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    rowHeaders.setTable(this);\n    columnHeaders.setTable(this);\n    colGroup.setTable(this);\n    rows.setTable(this);\n    cells.setTable(this);\n    this.rowHeaders = rowHeaders;\n    this.columnHeaders = columnHeaders;\n    this.colGroup = colGroup;\n    this.rows = rows;\n    this.cells = cells;\n  }\n\n  /**\n   * Transforms visual/rendered row index to source index.\n   *\n   * @param {number} rowIndex Rendered index.\n   * @returns {number}\n   */\n  renderedRowToSource(rowIndex) {\n    return this.rowFilter.renderedToSource(rowIndex);\n  }\n\n  /**\n   * Transforms visual/rendered column index to source index.\n   *\n   * @param {number} columnIndex Rendered index.\n   * @returns {number}\n   */\n  renderedColumnToSource(columnIndex) {\n    return this.columnFilter.renderedToSource(columnIndex);\n  }\n\n  /**\n   * Returns `true` if the accessibility-related ARIA tags should be added to the table, `false` otherwise.\n   *\n   * @returns {boolean}\n   */\n  isAriaEnabled() {\n    return this.rowUtils.wtSettings.getSetting('ariaTags');\n  }\n\n  /**\n   * Renders the table.\n   */\n  render() {\n    this.colGroup.adjust();\n    this.columnHeaders.adjust();\n    this.rows.adjust();\n    this.rowHeaders.adjust();\n    this.columnHeaders.render();\n    this.rows.render();\n    this.rowHeaders.render();\n    this.cells.render();\n\n    // After the cells are rendered calculate columns width (or columns stretch width) to prepare proper values\n    // for colGroup renderer (which renders COL elements).\n    this.columnUtils.calculateWidths();\n    this.colGroup.render();\n    const {\n      rowsToRender,\n      rows\n    } = this;\n\n    // Fix for multi-line content and for supporting `rowHeights` option.\n    for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {\n      const TR = rows.getRenderedNode(visibleRowIndex);\n      if (TR.firstChild) {\n        const sourceRowIndex = this.renderedRowToSource(visibleRowIndex);\n        const rowHeight = this.rowUtils.getHeightByOverlayName(sourceRowIndex, this.activeOverlayName);\n        if (rowHeight) {\n          // Decrease height. 1 pixel will be \"replaced\" by 1px border top\n          TR.firstChild.style.height = `${rowHeight - 1}px`;\n        } else {\n          TR.firstChild.style.height = '';\n        }\n      }\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/renderer/table.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/scroll.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/scroll.mjs ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n/**\n * @class Scroll\n */\nvar _Scroll_brand = /*#__PURE__*/new WeakSet();\nclass Scroll {\n  /**\n   * @param {ScrollDao} dataAccessObject Tha data access object.\n   */\n  constructor(dataAccessObject) {\n    /**\n     * Get last visible column based on virtual dom and how table is visible in browser window viewport.\n     *\n     * @param {number} lastColumnIndex The last visible column index.\n     * @returns {number}\n     */\n    _classPrivateMethodInitSpec(this, _Scroll_brand);\n    /**\n     * The data access object.\n     *\n     * @protected\n     * @type {ScrollDao}\n     */\n    _defineProperty(this, \"dataAccessObject\", void 0);\n    this.dataAccessObject = dataAccessObject;\n  }\n\n  /**\n   * Scrolls viewport to a cell.\n   *\n   * @param {CellCoords} coords The cell coordinates.\n   * @param {boolean} [snapToTop] If `true`, viewport is scrolled to show the cell on the top of the table.\n   * @param {boolean} [snapToRight] If `true`, viewport is scrolled to show the cell on the right of the table.\n   * @param {boolean} [snapToBottom] If `true`, viewport is scrolled to show the cell on the bottom of the table.\n   * @param {boolean} [snapToLeft] If `true`, viewport is scrolled to show the cell on the left of the table.\n   * @returns {boolean}\n   */\n  scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft) {\n    const scrolledHorizontally = this.scrollViewportHorizontally(coords.col, snapToRight, snapToLeft);\n    const scrolledVertically = this.scrollViewportVertically(coords.row, snapToTop, snapToBottom);\n    return scrolledHorizontally || scrolledVertically;\n  }\n\n  /**\n   * Scrolls viewport to a column.\n   *\n   * @param {number} column Visual column index.\n   * @param {boolean} [snapToRight] If `true`, viewport is scrolled to show the cell on the right of the table.\n   * @param {boolean} [snapToLeft] If `true`, viewport is scrolled to show the cell on the left of the table.\n   * @returns {boolean}\n   */\n  scrollViewportHorizontally(column, snapToRight, snapToLeft) {\n    const {\n      drawn,\n      totalColumns\n    } = this.dataAccessObject;\n\n    // do not scroll the viewport when the column points to a range outside of the dataset\n    if (!drawn || !Number.isInteger(column) || column < 0 || column > totalColumns) {\n      return false;\n    }\n    const autoSnapping = snapToRight === undefined && snapToLeft === undefined;\n    const {\n      fixedColumnsStart,\n      inlineStartOverlay\n    } = this.dataAccessObject;\n\n    // for auto-snapping (both snap* arguments are undefined) do not scroll the viewport\n    // when the columns points to the overlays\n    if (autoSnapping && column < fixedColumnsStart) {\n      return false;\n    }\n    column = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollHorizontally', column);\n    if (!Number.isInteger(column) || column < 0 || column > totalColumns) {\n      return false;\n    }\n    const firstColumn = this.getFirstVisibleColumn();\n    const lastColumn = this.getLastVisibleColumn();\n    let result = false;\n    if (autoSnapping && (column < firstColumn || column > lastColumn) || !autoSnapping) {\n      // if there is at least one fully visible column determine the snapping direction based on\n      // that columns or by snapToRight/snapToLeft flags, if provided.\n      result = inlineStartOverlay.scrollTo(column, autoSnapping ? column >= this.getLastPartiallyVisibleColumn() : snapToRight);\n    }\n    return result;\n  }\n\n  /**\n   * Scrolls viewport to a row.\n   *\n   * @param {number} row Visual row index.\n   * @param {boolean} [snapToTop] If `true`, viewport is scrolled to show the cell on the top of the table.\n   * @param {boolean} [snapToBottom] If `true`, viewport is scrolled to show the cell on the bottom of the table.\n   * @returns {boolean}\n   */\n  scrollViewportVertically(row, snapToTop, snapToBottom) {\n    const {\n      drawn,\n      totalRows\n    } = this.dataAccessObject;\n\n    // do not scroll the viewport when the row points to a range outside of the dataset\n    if (!drawn || !Number.isInteger(row) || row < 0 || row > totalRows) {\n      return false;\n    }\n    const autoSnapping = snapToTop === undefined && snapToBottom === undefined;\n    const {\n      fixedRowsBottom,\n      fixedRowsTop,\n      topOverlay\n    } = this.dataAccessObject;\n\n    // for auto-snapping (both snap* arguments are undefined) do not scroll the viewport\n    // when the rows points to the overlays\n    if (autoSnapping && (row < fixedRowsTop || row > totalRows - fixedRowsBottom - 1)) {\n      return false;\n    }\n    row = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollVertically', row);\n    if (!Number.isInteger(row) || row < 0 || row > totalRows) {\n      return false;\n    }\n    const firstRow = this.getFirstVisibleRow();\n    const lastRow = this.getLastVisibleRow();\n    let result = false;\n    if (autoSnapping && (row < firstRow || row > lastRow) || !autoSnapping) {\n      // if there is at least one fully visible row determine the snapping direction based on\n      // that rows or by snapToTop/snapToBottom flags, if provided.\n      result = topOverlay.scrollTo(row, autoSnapping ? row >= this.getLastPartiallyVisibleRow() : snapToBottom);\n    }\n    return result;\n  }\n\n  /**\n   * Get first visible row based on virtual dom and how table is visible in browser window viewport.\n   *\n   * @returns {number}\n   */\n  getFirstVisibleRow() {\n    return this.dataAccessObject.wtTable.getFirstVisibleRow();\n  }\n\n  /**\n   * Get last visible row based on virtual dom and how table is visible in browser window viewport.\n   *\n   * @returns {number}\n   */\n  getLastVisibleRow() {\n    return _assertClassBrand(_Scroll_brand, this, _getLastRowIndex).call(this, this.dataAccessObject.wtTable.getLastVisibleRow());\n  }\n\n  /**\n   * Get first partially visible row based on virtual dom and how table is visible in browser window viewport.\n   *\n   * @returns {number}\n   */\n  getFirstPartiallyVisibleRow() {\n    return this.dataAccessObject.wtTable.getFirstPartiallyVisibleRow();\n  }\n\n  /**\n   * Get last visible row based on virtual dom and how table is visible in browser window viewport.\n   *\n   * @returns {number}\n   */\n  getLastPartiallyVisibleRow() {\n    return _assertClassBrand(_Scroll_brand, this, _getLastRowIndex).call(this, this.dataAccessObject.wtTable.getLastPartiallyVisibleRow());\n  }\n\n  /**\n   * Get first visible column based on virtual dom and how table is visible in browser window viewport.\n   *\n   * @returns {number}\n   */\n  getFirstVisibleColumn() {\n    return this.dataAccessObject.wtTable.getFirstVisibleColumn();\n  }\n\n  /**\n   * Get last visible column based on virtual dom and how table is visible in browser window viewport.\n   *\n   * @returns {number}\n   */\n  getLastVisibleColumn() {\n    return _assertClassBrand(_Scroll_brand, this, _getLastColumnIndex).call(this, this.dataAccessObject.wtTable.getLastVisibleColumn());\n  }\n\n  /**\n   * Get first partially visible column based on virtual dom and how table is visible in browser window viewport.\n   *\n   * @returns {number}\n   */\n  getFirstPartiallyVisibleColumn() {\n    return this.dataAccessObject.wtTable.getFirstPartiallyVisibleColumn();\n  }\n\n  /**\n   * Get last partially visible column based on virtual dom and how table is visible in browser window viewport.\n   *\n   * @returns {number}\n   */\n  getLastPartiallyVisibleColumn() {\n    return _assertClassBrand(_Scroll_brand, this, _getLastColumnIndex).call(this, this.dataAccessObject.wtTable.getLastPartiallyVisibleColumn());\n  }\n}\nfunction _getLastColumnIndex(lastColumnIndex) {\n  const {\n    wtSettings,\n    inlineStartOverlay,\n    wtTable,\n    wtViewport,\n    totalColumns,\n    rootWindow\n  } = this.dataAccessObject;\n  if (inlineStartOverlay.mainTableScrollableElement === rootWindow) {\n    const isRtl = wtSettings.getSetting('rtlMode');\n    let inlineStartRootElementOffset = null;\n    if (isRtl) {\n      const tableRect = wtTable.TABLE.getBoundingClientRect();\n      const rootDocument = this.dataAccessObject.rootWindow.document;\n      const docOffsetWidth = rootDocument.documentElement.offsetWidth;\n      inlineStartRootElementOffset = Math.abs(tableRect.right - docOffsetWidth);\n    } else {\n      const rootElementOffset = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"offset\"])(wtTable.wtRootElement);\n      inlineStartRootElementOffset = rootElementOffset.left;\n    }\n    const windowScrollLeft = Math.abs(Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollLeft\"])(rootWindow, rootWindow));\n\n    // Only calculate lastColumnIndex when table didn't filled (from right) whole viewport space\n    if (inlineStartRootElementOffset > windowScrollLeft) {\n      const windowWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"innerWidth\"])(rootWindow);\n      let columnsWidth = wtViewport.getRowHeaderWidth();\n      for (let column = 1; column <= totalColumns; column++) {\n        columnsWidth += inlineStartOverlay.sumCellSizes(column - 1, column);\n        if (inlineStartRootElementOffset + columnsWidth - windowScrollLeft >= windowWidth) {\n          // Return physical column - 1 (-2 because rangeEach gives column index + 1 - sumCellSizes requirements)\n          lastColumnIndex = column - 2;\n          break;\n        }\n      }\n    }\n  }\n  return lastColumnIndex;\n}\n/**\n * Get last visible row based on virtual dom and how table is visible in browser window viewport.\n *\n * @param {number} lastRowIndex The last visible row index.\n * @returns {number}\n */\nfunction _getLastRowIndex(lastRowIndex) {\n  const {\n    topOverlay,\n    wtTable,\n    wtViewport,\n    totalRows,\n    rootWindow\n  } = this.dataAccessObject;\n  if (topOverlay.mainTableScrollableElement === rootWindow) {\n    const rootElementOffset = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"offset\"])(wtTable.wtRootElement);\n    const windowScrollTop = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollTop\"])(rootWindow, rootWindow);\n\n    // Only calculate lastRowIndex when table didn't filled (from bottom) whole viewport space\n    if (rootElementOffset.top > windowScrollTop) {\n      const windowHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"innerHeight\"])(rootWindow);\n      let rowsHeight = wtViewport.getColumnHeaderHeight();\n      for (let row = 1; row <= totalRows; row++) {\n        rowsHeight += topOverlay.sumCellSizes(row - 1, row);\n        if (rootElementOffset.top + rowsHeight - windowScrollTop >= windowHeight) {\n          // Return physical row - 1 (-2 because rangeEach gives row index + 1 - sumCellSizes requirements)\n          lastRowIndex = row - 2;\n          break;\n        }\n      }\n    }\n  }\n  return lastRowIndex;\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (Scroll);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/scroll.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/selection/border/border.mjs":
/*!****************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/selection/border/border.mjs ***!
  \****************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../helpers/browser.mjs */ \"./node_modules/handsontable/helpers/browser.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/selection/border/constants.mjs\");\n\n\n\n\n\n/**\n *\n */\nclass Border {\n  // TODO As this is an internal class, should be designed for using {Walkontable}. It uses the facade,\n  // TODO Con. Because the class is created on place where the instance reference comes from external origin.\n  // TODO Imho, the discrimination for handling both, facade and non-facade should be handled.\n  /**\n   * @param {WalkontableFacade} wotInstance The Walkontable instance.\n   * @param {object} settings The border settings.\n   */\n  constructor(wotInstance, settings) {\n    if (!settings) {\n      return;\n    }\n    this.eventManager = wotInstance.eventManager;\n    this.instance = wotInstance;\n    this.wot = wotInstance;\n    this.settings = settings;\n    this.mouseDown = false;\n    this.main = null;\n    this.top = null;\n    this.bottom = null;\n    this.start = null;\n    this.end = null;\n    this.topStyle = null;\n    this.bottomStyle = null;\n    this.startStyle = null;\n    this.endStyle = null;\n    this.cornerDefaultStyle = _constants_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CORNER_DEFAULT_STYLE\"];\n    // Offset to moving the corner to be centered relative to the grid.\n    this.cornerCenterPointOffset = -(parseInt(this.cornerDefaultStyle.width, 10) / 2);\n    this.corner = null;\n    this.cornerStyle = null;\n    this.createBorders(settings);\n    this.registerListeners();\n  }\n\n  /**\n   * Register all necessary events.\n   */\n  registerListeners() {\n    const documentBody = this.wot.rootDocument.body;\n    this.eventManager.addEventListener(documentBody, 'mousedown', () => this.onMouseDown());\n    this.eventManager.addEventListener(documentBody, 'mouseup', () => this.onMouseUp());\n    for (let c = 0, len = this.main.childNodes.length; c < len; c++) {\n      const element = this.main.childNodes[c];\n      this.eventManager.addEventListener(element, 'mouseenter', event => this.onMouseEnter(event, this.main.childNodes[c]));\n    }\n  }\n\n  /**\n   * Mouse down listener.\n   *\n   * @private\n   */\n  onMouseDown() {\n    this.mouseDown = true;\n  }\n\n  /**\n   * Mouse up listener.\n   *\n   * @private\n   */\n  onMouseUp() {\n    this.mouseDown = false;\n  }\n\n  /**\n   * Mouse enter listener for fragment selection functionality.\n   *\n   * @private\n   * @param {Event} event Dom event.\n   * @param {HTMLElement} parentElement Part of border element.\n   */\n  onMouseEnter(event, parentElement) {\n    if (!this.mouseDown || !this.wot.getSetting('hideBorderOnMouseDownOver')) {\n      return;\n    }\n    event.preventDefault();\n    Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_1__[\"stopImmediatePropagation\"])(event);\n    const _this = this;\n    const documentBody = this.wot.rootDocument.body;\n    const bounds = parentElement.getBoundingClientRect();\n\n    // Hide border to prevents selection jumping when fragmentSelection is enabled.\n    parentElement.style.display = 'none';\n\n    /**\n     * @param {Event} mouseEvent The mouse event object.\n     * @returns {boolean}\n     */\n    function isOutside(mouseEvent) {\n      if (mouseEvent.clientY < Math.floor(bounds.top)) {\n        return true;\n      }\n      if (mouseEvent.clientY > Math.ceil(bounds.top + bounds.height)) {\n        return true;\n      }\n      if (mouseEvent.clientX < Math.floor(bounds.left)) {\n        return true;\n      }\n      if (mouseEvent.clientX > Math.ceil(bounds.left + bounds.width)) {\n        return true;\n      }\n    }\n\n    /**\n     * @param {Event} handlerEvent The mouse event object.\n     */\n    function handler(handlerEvent) {\n      if (isOutside(handlerEvent)) {\n        _this.eventManager.removeEventListener(documentBody, 'mousemove', handler);\n        parentElement.style.display = 'block';\n      }\n    }\n    this.eventManager.addEventListener(documentBody, 'mousemove', handler);\n  }\n\n  /**\n   * Create border elements.\n   *\n   * @param {object} settings The border settings.\n   */\n  createBorders(settings) {\n    const {\n      rootDocument\n    } = this.wot;\n    this.main = rootDocument.createElement('div');\n    const borderDivs = ['top', 'start', 'bottom', 'end', 'corner'];\n    let style = this.main.style;\n    style.position = 'absolute';\n    style.top = 0;\n    style.left = 0;\n    for (let i = 0; i < 5; i++) {\n      const position = borderDivs[i];\n      const div = rootDocument.createElement('div');\n      div.className = `wtBorder ${this.settings.className || ''}`; // + borderDivs[i];\n\n      if (this.settings[position] && this.settings[position].hide) {\n        div.className += ' hidden';\n      }\n      style = div.style;\n      style.backgroundColor = this.settings[position] && this.settings[position].color ? this.settings[position].color : settings.border.color;\n      style.height = this.settings[position] && this.settings[position].width ? `${this.settings[position].width}px` : `${settings.border.width}px`;\n      style.width = this.settings[position] && this.settings[position].width ? `${this.settings[position].width}px` : `${settings.border.width}px`;\n      this.main.appendChild(div);\n    }\n    this.top = this.main.childNodes[0];\n    this.start = this.main.childNodes[1];\n    this.bottom = this.main.childNodes[2];\n    this.end = this.main.childNodes[3];\n    this.topStyle = this.top.style;\n    this.startStyle = this.start.style;\n    this.bottomStyle = this.bottom.style;\n    this.endStyle = this.end.style;\n    this.corner = this.main.childNodes[4];\n    this.corner.className += ' corner';\n    this.cornerStyle = this.corner.style;\n    this.cornerStyle.width = this.cornerDefaultStyle.width;\n    this.cornerStyle.height = this.cornerDefaultStyle.height;\n    this.cornerStyle.border = [this.cornerDefaultStyle.borderWidth, this.cornerDefaultStyle.borderStyle, this.cornerDefaultStyle.borderColor].join(' ');\n    if (Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isMobileBrowser\"])() && this.instance.getSetting('isDataViewInstance')) {\n      this.createMultipleSelectorHandles();\n    }\n    this.disappear();\n    const {\n      wtTable\n    } = this.wot;\n    let bordersHolder = wtTable.bordersHolder;\n    if (!bordersHolder) {\n      bordersHolder = rootDocument.createElement('div');\n      bordersHolder.className = 'htBorders';\n      wtTable.bordersHolder = bordersHolder;\n      wtTable.spreader.appendChild(bordersHolder);\n    }\n    bordersHolder.appendChild(this.main);\n  }\n\n  /**\n   * Create multiple selector handler for mobile devices.\n   */\n  createMultipleSelectorHandles() {\n    const {\n      rootDocument\n    } = this.wot;\n    this.selectionHandles = {\n      top: rootDocument.createElement('DIV'),\n      topHitArea: rootDocument.createElement('DIV'),\n      bottom: rootDocument.createElement('DIV'),\n      bottomHitArea: rootDocument.createElement('DIV')\n    };\n    const width = 10;\n    const hitAreaWidth = 40;\n    this.selectionHandles.top.className = 'topSelectionHandle topLeftSelectionHandle';\n    this.selectionHandles.topHitArea.className = 'topSelectionHandle-HitArea topLeftSelectionHandle-HitArea';\n    this.selectionHandles.bottom.className = 'bottomSelectionHandle bottomRightSelectionHandle';\n    this.selectionHandles.bottomHitArea.className = 'bottomSelectionHandle-HitArea bottomRightSelectionHandle-HitArea';\n    this.selectionHandles.styles = {\n      top: this.selectionHandles.top.style,\n      topHitArea: this.selectionHandles.topHitArea.style,\n      bottom: this.selectionHandles.bottom.style,\n      bottomHitArea: this.selectionHandles.bottomHitArea.style\n    };\n    const hitAreaStyle = {\n      position: 'absolute',\n      height: `${hitAreaWidth}px`,\n      width: `${hitAreaWidth}px`,\n      'border-radius': `${parseInt(hitAreaWidth / 1.5, 10)}px`\n    };\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"objectEach\"])(hitAreaStyle, (value, key) => {\n      this.selectionHandles.styles.bottomHitArea[key] = value;\n      this.selectionHandles.styles.topHitArea[key] = value;\n    });\n    const handleStyle = {\n      position: 'absolute',\n      height: `${width}px`,\n      width: `${width}px`,\n      'border-radius': `${parseInt(width / 1.5, 10)}px`,\n      background: '#F5F5FF',\n      border: '1px solid #4285c8'\n    };\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"objectEach\"])(handleStyle, (value, key) => {\n      this.selectionHandles.styles.bottom[key] = value;\n      this.selectionHandles.styles.top[key] = value;\n    });\n    this.main.appendChild(this.selectionHandles.top);\n    this.main.appendChild(this.selectionHandles.bottom);\n    this.main.appendChild(this.selectionHandles.topHitArea);\n    this.main.appendChild(this.selectionHandles.bottomHitArea);\n  }\n\n  /**\n   * @param {number} row The visual row index.\n   * @param {number} col The visual column index.\n   * @returns {boolean}\n   */\n  isPartRange(row, col) {\n    const areaSelection = this.wot.selectionManager.getAreaSelection();\n    if (areaSelection.cellRange) {\n      if (row !== areaSelection.cellRange.to.row || col !== areaSelection.cellRange.to.col) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   * @param {number} row The visual row index.\n   * @param {number} col The visual column index.\n   * @param {number} top The top position of the handler.\n   * @param {number} left The left position of the handler.\n   * @param {number} width The width of the handler.\n   * @param {number} height The height of the handler.\n   */\n  updateMultipleSelectionHandlesPosition(row, col, top, left, width, height) {\n    const isRtl = this.wot.wtSettings.getSetting('rtlMode');\n    const inlinePosProperty = isRtl ? 'right' : 'left';\n    const {\n      top: topStyles,\n      topHitArea: topHitAreaStyles,\n      bottom: bottomStyles,\n      bottomHitArea: bottomHitAreaStyles\n    } = this.selectionHandles.styles;\n    const handleBorderSize = parseInt(topStyles.borderWidth, 10);\n    const handleSize = parseInt(topStyles.width, 10);\n    const hitAreaSize = parseInt(topHitAreaStyles.width, 10);\n    const totalTableWidth = this.wot.wtTable.getWidth();\n    const totalTableHeight = this.wot.wtTable.getHeight();\n    topStyles.top = `${parseInt(top - handleSize - 1, 10)}px`;\n    topStyles[inlinePosProperty] = `${parseInt(left - handleSize - 1, 10)}px`;\n    topHitAreaStyles.top = `${parseInt(top - hitAreaSize / 4 * 3, 10)}px`;\n    topHitAreaStyles[inlinePosProperty] = `${parseInt(left - hitAreaSize / 4 * 3, 10)}px`;\n    const bottomHandlerInline = Math.min(parseInt(left + width, 10), totalTableWidth - handleSize - handleBorderSize * 2);\n    const bottomHandlerAreaInline = Math.min(parseInt(left + width - hitAreaSize / 4, 10), totalTableWidth - hitAreaSize - handleBorderSize * 2);\n    bottomStyles[inlinePosProperty] = `${bottomHandlerInline}px`;\n    bottomHitAreaStyles[inlinePosProperty] = `${bottomHandlerAreaInline}px`;\n    const bottomHandlerTop = Math.min(parseInt(top + height, 10), totalTableHeight - handleSize - handleBorderSize * 2);\n    const bottomHandlerAreaTop = Math.min(parseInt(top + height - hitAreaSize / 4, 10), totalTableHeight - hitAreaSize - handleBorderSize * 2);\n    bottomStyles.top = `${bottomHandlerTop}px`;\n    bottomHitAreaStyles.top = `${bottomHandlerAreaTop}px`;\n    if (this.settings.border.cornerVisible && this.settings.border.cornerVisible()) {\n      topStyles.display = 'block';\n      topHitAreaStyles.display = 'block';\n      if (this.isPartRange(row, col)) {\n        bottomStyles.display = 'none';\n        bottomHitAreaStyles.display = 'none';\n      } else {\n        bottomStyles.display = 'block';\n        bottomHitAreaStyles.display = 'block';\n      }\n    } else {\n      topStyles.display = 'none';\n      bottomStyles.display = 'none';\n      topHitAreaStyles.display = 'none';\n      bottomHitAreaStyles.display = 'none';\n    }\n    if (row === this.wot.wtSettings.getSetting('fixedRowsTop') || col === this.wot.wtSettings.getSetting('fixedColumnsStart')) {\n      topStyles.zIndex = '9999';\n      topHitAreaStyles.zIndex = '9999';\n    } else {\n      topStyles.zIndex = '';\n      topHitAreaStyles.zIndex = '';\n    }\n  }\n\n  /**\n   * Show border around one or many cells.\n   *\n   * @param {Array} corners The corner coordinates.\n   */\n  appear(corners) {\n    if (this.disabled) {\n      return;\n    }\n    const {\n      wtTable,\n      rootDocument,\n      rootWindow\n    } = this.wot; // todo refactoring: consider about using internal facade (it is given by external code)\n    let fromRow;\n    let toRow;\n    let fromColumn;\n    let toColumn;\n    let rowHeader;\n    let columnHeader;\n    const rowsCount = wtTable.getRenderedRowsCount();\n    for (let i = 0; i < rowsCount; i += 1) {\n      const s = wtTable.rowFilter.renderedToSource(i);\n      if (s >= corners[0] && s <= corners[2]) {\n        fromRow = s;\n        rowHeader = corners[0];\n        break;\n      }\n    }\n    for (let i = rowsCount - 1; i >= 0; i -= 1) {\n      const s = wtTable.rowFilter.renderedToSource(i);\n      if (s >= corners[0] && s <= corners[2]) {\n        toRow = s;\n        break;\n      }\n    }\n    const columnsCount = wtTable.getRenderedColumnsCount();\n    for (let i = 0; i < columnsCount; i += 1) {\n      const s = wtTable.columnFilter.renderedToSource(i);\n      if (s >= corners[1] && s <= corners[3]) {\n        fromColumn = s;\n        columnHeader = corners[1];\n        break;\n      }\n    }\n    for (let i = columnsCount - 1; i >= 0; i -= 1) {\n      const s = wtTable.columnFilter.renderedToSource(i);\n      if (s >= corners[1] && s <= corners[3]) {\n        toColumn = s;\n        break;\n      }\n    }\n    if (fromRow === undefined || fromColumn === undefined) {\n      this.disappear();\n      return;\n    }\n    let fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));\n    const isMultiple = fromRow !== toRow || fromColumn !== toColumn;\n    const toTD = isMultiple ? wtTable.getCell(this.wot.createCellCoords(toRow, toColumn)) : fromTD;\n    const fromOffset = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"offset\"])(fromTD);\n    const toOffset = isMultiple ? Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"offset\"])(toTD) : fromOffset;\n    const containerOffset = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"offset\"])(wtTable.TABLE);\n    const containerWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"outerWidth\"])(wtTable.TABLE);\n    const minTop = fromOffset.top;\n    const minLeft = fromOffset.left;\n    const isRtl = this.wot.wtSettings.getSetting('rtlMode');\n    let inlineStartPos = 0;\n    let width = 0;\n    if (isRtl) {\n      const fromWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"outerWidth\"])(fromTD);\n      const gridRightPos = rootWindow.innerWidth - containerOffset.left - containerWidth;\n      width = minLeft + fromWidth - toOffset.left;\n      inlineStartPos = rootWindow.innerWidth - minLeft - fromWidth - gridRightPos - 1;\n    } else {\n      width = toOffset.left + Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"outerWidth\"])(toTD) - minLeft;\n      inlineStartPos = minLeft - containerOffset.left - 1;\n    }\n    if (this.isEntireColumnSelected(fromRow, toRow)) {\n      const modifiedValues = this.getDimensionsFromHeader('columns', fromColumn, toColumn, rowHeader, containerOffset);\n      let fromTH = null;\n      if (modifiedValues) {\n        [fromTH, inlineStartPos, width] = modifiedValues;\n      }\n      if (fromTH) {\n        fromTD = fromTH;\n      }\n    }\n    let top = minTop - containerOffset.top - 1;\n    let height = toOffset.top + Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"outerHeight\"])(toTD) - minTop;\n    if (this.isEntireRowSelected(fromColumn, toColumn)) {\n      const modifiedValues = this.getDimensionsFromHeader('rows', fromRow, toRow, columnHeader, containerOffset);\n      let fromTH = null;\n      if (modifiedValues) {\n        [fromTH, top, height] = modifiedValues;\n      }\n      if (fromTH) {\n        fromTD = fromTH;\n      }\n    }\n    const style = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getComputedStyle\"])(fromTD, rootWindow);\n    if (parseInt(style.borderTopWidth, 10) > 0) {\n      top += 1;\n      height = height > 0 ? height - 1 : 0;\n    }\n    if (parseInt(style[isRtl ? 'borderRightWidth' : 'borderLeftWidth'], 10) > 0) {\n      inlineStartPos += 1;\n      width = width > 0 ? width - 1 : 0;\n    }\n    const inlinePosProperty = isRtl ? 'right' : 'left';\n    this.topStyle.top = `${top}px`;\n    this.topStyle[inlinePosProperty] = `${inlineStartPos}px`;\n    this.topStyle.width = `${width}px`;\n    this.topStyle.display = 'block';\n    this.startStyle.top = `${top}px`;\n    this.startStyle[inlinePosProperty] = `${inlineStartPos}px`;\n    this.startStyle.height = `${height}px`;\n    this.startStyle.display = 'block';\n    const delta = Math.floor(this.settings.border.width / 2);\n    this.bottomStyle.top = `${top + height - delta}px`;\n    this.bottomStyle[inlinePosProperty] = `${inlineStartPos}px`;\n    this.bottomStyle.width = `${width}px`;\n    this.bottomStyle.display = 'block';\n    this.endStyle.top = `${top}px`;\n    this.endStyle[inlinePosProperty] = `${inlineStartPos + width - delta}px`;\n    this.endStyle.height = `${height + 1}px`;\n    this.endStyle.display = 'block';\n    let cornerVisibleSetting = this.settings.border.cornerVisible;\n    cornerVisibleSetting = typeof cornerVisibleSetting === 'function' ? cornerVisibleSetting(this.settings.layerLevel) : cornerVisibleSetting;\n    const hookResult = this.wot.getSetting('onModifyGetCellCoords', toRow, toColumn);\n    let [checkRow, checkCol] = [toRow, toColumn];\n    if (hookResult && Array.isArray(hookResult)) {\n      [,, checkRow, checkCol] = hookResult;\n    }\n    if (Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isMobileBrowser\"])() || !cornerVisibleSetting || this.isPartRange(checkRow, checkCol)) {\n      this.cornerStyle.display = 'none';\n    } else {\n      this.cornerStyle.top = `${top + height + this.cornerCenterPointOffset - 1}px`;\n      this.cornerStyle[inlinePosProperty] = `${inlineStartPos + width + this.cornerCenterPointOffset - 1}px`;\n      this.cornerStyle.borderRightWidth = this.cornerDefaultStyle.borderWidth;\n      this.cornerStyle.width = this.cornerDefaultStyle.width;\n\n      // Hide the fill handle, so the possible further adjustments won't force unneeded scrollbars.\n      this.cornerStyle.display = 'none';\n      let trimmingContainer = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getTrimmingContainer\"])(wtTable.TABLE);\n      const trimToWindow = trimmingContainer === rootWindow;\n      if (trimToWindow) {\n        trimmingContainer = rootDocument.documentElement;\n      }\n      const cornerHalfWidth = parseInt(this.cornerDefaultStyle.width, 10) / 2;\n      const cornerHalfHeight = parseInt(this.cornerDefaultStyle.height, 10) / 2;\n      if (toColumn === this.wot.getSetting('totalColumns') - 1) {\n        const toTdOffsetLeft = trimToWindow ? toTD.getBoundingClientRect().left : toTD.offsetLeft;\n        let cornerOverlappingContainer = false;\n        let cornerEdge = 0;\n        if (isRtl) {\n          cornerEdge = toTdOffsetLeft - parseInt(this.cornerDefaultStyle.width, 10) / 2;\n          cornerOverlappingContainer = cornerEdge < 0;\n        } else {\n          cornerEdge = toTdOffsetLeft + Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"outerWidth\"])(toTD) + parseInt(this.cornerDefaultStyle.width, 10) / 2;\n          cornerOverlappingContainer = cornerEdge >= Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"innerWidth\"])(trimmingContainer);\n        }\n        if (cornerOverlappingContainer) {\n          this.cornerStyle[inlinePosProperty] = `${Math.floor(inlineStartPos + width + this.cornerCenterPointOffset - cornerHalfWidth)}px`;\n          this.cornerStyle[isRtl ? 'borderLeftWidth' : 'borderRightWidth'] = 0;\n        }\n      }\n      if (toRow === this.wot.getSetting('totalRows') - 1) {\n        const toTdOffsetTop = trimToWindow ? toTD.getBoundingClientRect().top : toTD.offsetTop;\n        const cornerBottomEdge = toTdOffsetTop + Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"outerHeight\"])(toTD) + parseInt(this.cornerDefaultStyle.height, 10) / 2;\n        const cornerOverlappingContainer = cornerBottomEdge >= Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"innerHeight\"])(trimmingContainer);\n        if (cornerOverlappingContainer) {\n          this.cornerStyle.top = `${Math.floor(top + height + this.cornerCenterPointOffset - cornerHalfHeight)}px`;\n          this.cornerStyle.borderBottomWidth = 0;\n        }\n      }\n      this.cornerStyle.display = 'block';\n    }\n    if (Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isMobileBrowser\"])() && this.instance.getSetting('isDataViewInstance')) {\n      this.updateMultipleSelectionHandlesPosition(toRow, toColumn, top, inlineStartPos, width, height);\n    }\n  }\n\n  /**\n   * Check whether an entire column of cells is selected.\n   *\n   * @private\n   * @param {number} startRowIndex Start row index.\n   * @param {number} endRowIndex End row index.\n   * @returns {boolean}\n   */\n  isEntireColumnSelected(startRowIndex, endRowIndex) {\n    return startRowIndex === this.wot.wtTable.getFirstRenderedRow() && endRowIndex === this.wot.wtTable.getLastRenderedRow();\n  }\n\n  /**\n   * Check whether an entire row of cells is selected.\n   *\n   * @private\n   * @param {number} startColumnIndex Start column index.\n   * @param {number} endColumnIndex End column index.\n   * @returns {boolean}\n   */\n  isEntireRowSelected(startColumnIndex, endColumnIndex) {\n    return startColumnIndex === this.wot.wtTable.getFirstRenderedColumn() && endColumnIndex === this.wot.wtTable.getLastRenderedColumn();\n  }\n\n  /**\n   * Get left/top index and width/height depending on the `direction` provided.\n   *\n   * @private\n   * @param {string} direction `rows` or `columns`, defines if an entire column or row is selected.\n   * @param {number} fromIndex Start index of the selection.\n   * @param {number} toIndex End index of the selection.\n   * @param {number} headerIndex The header index as negative value.\n   * @param {number} containerOffset Offset of the container.\n   * @returns {Array|boolean} Returns an array of [headerElement, left, width] or [headerElement, top, height], depending on `direction` (`false` in case of an error getting the headers).\n   */\n  getDimensionsFromHeader(direction, fromIndex, toIndex, headerIndex, containerOffset) {\n    const {\n      wtTable\n    } = this.wot;\n    const rootHotElement = wtTable.wtRootElement.parentNode;\n    let getHeaderFn = null;\n    let dimensionFn = null;\n    let entireSelectionClassname = null;\n    let index = null;\n    let dimension = null;\n    let dimensionProperty = null;\n    let startHeader = null;\n    let endHeader = null;\n    switch (direction) {\n      case 'rows':\n        getHeaderFn = function () {\n          return wtTable.getRowHeader(...arguments);\n        };\n        dimensionFn = function () {\n          return Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"outerHeight\"])(...arguments);\n        };\n        entireSelectionClassname = 'ht__selection--rows';\n        dimensionProperty = 'top';\n        break;\n      case 'columns':\n        getHeaderFn = function () {\n          return wtTable.getColumnHeader(...arguments);\n        };\n        dimensionFn = function () {\n          return Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"outerWidth\"])(...arguments);\n        };\n        entireSelectionClassname = 'ht__selection--columns';\n        dimensionProperty = 'left';\n        break;\n      default:\n    }\n    if (rootHotElement.classList.contains(entireSelectionClassname)) {\n      const columnHeaderLevelCount = this.wot.getSetting('columnHeaders').length;\n      startHeader = getHeaderFn(fromIndex, columnHeaderLevelCount - headerIndex);\n      endHeader = getHeaderFn(toIndex, columnHeaderLevelCount - headerIndex);\n      if (!startHeader || !endHeader) {\n        return false;\n      }\n      const startHeaderOffset = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"offset\"])(startHeader);\n      const endOffset = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"offset\"])(endHeader);\n      if (startHeader && endHeader) {\n        index = startHeaderOffset[dimensionProperty] - containerOffset[dimensionProperty] - 1;\n        dimension = endOffset[dimensionProperty] + dimensionFn(endHeader) - startHeaderOffset[dimensionProperty];\n      }\n      return [startHeader, index, dimension];\n    }\n    return false;\n  }\n\n  /**\n   * Change border style.\n   *\n   * @private\n   * @param {string} borderElement Coordinate where add/remove border: top, bottom, start, end.\n   * @param {object} border The border object descriptor.\n   */\n  changeBorderStyle(borderElement, border) {\n    const style = this[borderElement].style;\n    const borderStyle = border[borderElement];\n    if (!borderStyle || borderStyle.hide) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"addClass\"])(this[borderElement], 'hidden');\n    } else {\n      if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"hasClass\"])(this[borderElement], 'hidden')) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"removeClass\"])(this[borderElement], 'hidden');\n      }\n      style.backgroundColor = borderStyle.color;\n      if (borderElement === 'top' || borderElement === 'bottom') {\n        style.height = `${borderStyle.width}px`;\n      }\n      if (borderElement === 'start' || borderElement === 'end') {\n        style.width = `${borderStyle.width}px`;\n      }\n    }\n  }\n\n  /**\n   * Change border style to default.\n   *\n   * @private\n   * @param {string} position The position type (\"top\", \"bottom\", \"start\", \"end\") to change.\n   */\n  changeBorderToDefaultStyle(position) {\n    const defaultBorder = {\n      width: 1,\n      color: '#000'\n    };\n    const style = this[position].style;\n    style.backgroundColor = defaultBorder.color;\n    style.width = `${defaultBorder.width}px`;\n    style.height = `${defaultBorder.width}px`;\n  }\n\n  /**\n   * Toggle class 'hidden' to element.\n   *\n   * @private\n   * @param {string} borderElement Coordinate where add/remove border: top, bottom, start, end.\n   * @param {boolean} [remove] Defines type of the action to perform.\n   */\n  toggleHiddenClass(borderElement, remove) {\n    this.changeBorderToDefaultStyle(borderElement);\n    if (remove) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"addClass\"])(this[borderElement], 'hidden');\n    } else {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"removeClass\"])(this[borderElement], 'hidden');\n    }\n  }\n\n  /**\n   * Hide border.\n   */\n  disappear() {\n    this.topStyle.display = 'none';\n    this.bottomStyle.display = 'none';\n    this.startStyle.display = 'none';\n    this.endStyle.display = 'none';\n    this.cornerStyle.display = 'none';\n    if (Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isMobileBrowser\"])() && this.instance.getSetting('isDataViewInstance')) {\n      this.selectionHandles.styles.top.display = 'none';\n      this.selectionHandles.styles.topHitArea.display = 'none';\n      this.selectionHandles.styles.bottom.display = 'none';\n      this.selectionHandles.styles.bottomHitArea.display = 'none';\n    }\n  }\n\n  /**\n   * Cleans up all the DOM state related to a Border instance. Call this prior to deleting a Border instance.\n   */\n  destroy() {\n    this.eventManager.destroyWithOwnEventsOnly();\n    this.main.parentNode.removeChild(this.main);\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (Border);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/selection/border/border.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/selection/border/constants.mjs":
/*!*******************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/selection/border/constants.mjs ***!
  \*******************************************************************************************/
/*! exports provided: CORNER_DEFAULT_STYLE */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CORNER_DEFAULT_STYLE\", function() { return CORNER_DEFAULT_STYLE; });\n/**\n * Default border corner style.\n *\n * @type {object}\n */\nconst CORNER_DEFAULT_STYLE = Object.freeze({\n  width: '6px',\n  height: '6px',\n  borderWidth: '1px',\n  borderStyle: 'solid',\n  borderColor: '#FFF'\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/selection/border/constants.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/selection/constants.mjs":
/*!************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/selection/constants.mjs ***!
  \************************************************************************************/
/*! exports provided: ACTIVE_HEADER_TYPE, HEADER_TYPE, AREA_TYPE, FOCUS_TYPE, FILL_TYPE, ROW_TYPE, COLUMN_TYPE, CUSTOM_SELECTION_TYPE */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ACTIVE_HEADER_TYPE\", function() { return ACTIVE_HEADER_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HEADER_TYPE\", function() { return HEADER_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AREA_TYPE\", function() { return AREA_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FOCUS_TYPE\", function() { return FOCUS_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILL_TYPE\", function() { return FILL_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ROW_TYPE\", function() { return ROW_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COLUMN_TYPE\", function() { return COLUMN_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CUSTOM_SELECTION_TYPE\", function() { return CUSTOM_SELECTION_TYPE; });\n/**\n * Selection type that is visible only if the row or column header is clicked. If that happened\n * all row or column header layers are highlighted.\n *\n * @type {string}\n */\nconst ACTIVE_HEADER_TYPE = 'active-header';\n/**\n * Selection type that is visible only if the a cell or cells are clicked. If that happened\n * only the most closest to the cells row or column header is highlighted.\n *\n * @type {string}\n */\nconst HEADER_TYPE = 'header';\n/**\n * Selection type that is visible when a cell or cells are clicked. The selected cells are\n * highlighted.\n *\n * @type {string}\n */\nconst AREA_TYPE = 'area';\n/**\n * Selection type defines a cell that follows the user (keyboard navigation).\n *\n * @type {string}\n */\nconst FOCUS_TYPE = 'focus';\n/**\n * Selection type defines borders for the autofill functionality.\n *\n * @type {string}\n */\nconst FILL_TYPE = 'fill';\n/**\n * Selection type defines highlights for the `currentRowClassName` option.\n *\n * @type {string}\n */\nconst ROW_TYPE = 'row';\n/**\n * Selection type defines highlights for the `currentColumnClassName` option.\n *\n * @type {string}\n */\nconst COLUMN_TYPE = 'column';\n/**\n * Selection type defines highlights managed by the CustomBorders plugin.\n *\n * @type {string}\n */\nconst CUSTOM_SELECTION_TYPE = 'custom-selection';\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/selection/constants.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/selection/index.mjs":
/*!********************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/selection/index.mjs ***!
  \********************************************************************************/
/*! exports provided: ACTIVE_HEADER_TYPE, HEADER_TYPE, AREA_TYPE, FOCUS_TYPE, FILL_TYPE, ROW_TYPE, COLUMN_TYPE, CUSTOM_SELECTION_TYPE, CORNER_DEFAULT_STYLE, SelectionManager, Selection */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _selection_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/selection/selection.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Selection\", function() { return _selection_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/selection/constants.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ACTIVE_HEADER_TYPE\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"ACTIVE_HEADER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HEADER_TYPE\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"HEADER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AREA_TYPE\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"AREA_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FOCUS_TYPE\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FOCUS_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FILL_TYPE\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FILL_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ROW_TYPE\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"ROW_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"COLUMN_TYPE\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"COLUMN_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CUSTOM_SELECTION_TYPE\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"CUSTOM_SELECTION_TYPE\"]; });\n\n/* harmony import */ var _border_constants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./border/constants.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/selection/border/constants.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CORNER_DEFAULT_STYLE\", function() { return _border_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CORNER_DEFAULT_STYLE\"]; });\n\n/* harmony import */ var _manager_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./manager.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/selection/manager.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SelectionManager\", function() { return _manager_mjs__WEBPACK_IMPORTED_MODULE_3__[\"SelectionManager\"]; });\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/selection/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/selection/manager.mjs":
/*!**********************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/selection/manager.mjs ***!
  \**********************************************************************************/
/*! exports provided: SelectionManager */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SelectionManager\", function() { return SelectionManager; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_unscopables_flat_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.unscopables.flat.js */ \"./node_modules/core-js/modules/es.array.unscopables.flat.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _scanner_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./scanner.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/selection/scanner.mjs\");\n/* harmony import */ var _border_border_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./border/border.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/selection/border/border.mjs\");\n\n\n\n\n\n\n\n\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n/**\n * Module responsible for rendering selections (CSS classes) and borders based on the\n * collection of the Selection instances provided throughout the `selections` Walkontable\n * setting.\n *\n * @private\n */\nvar _activeOverlaysWot = /*#__PURE__*/new WeakMap();\nvar _selections = /*#__PURE__*/new WeakMap();\nvar _scanner = /*#__PURE__*/new WeakMap();\nvar _appliedClasses = /*#__PURE__*/new WeakMap();\nvar _destroyListeners = /*#__PURE__*/new WeakMap();\nvar _selectionBorders = /*#__PURE__*/new WeakMap();\nvar _SelectionManager_brand = /*#__PURE__*/new WeakSet();\nclass SelectionManager {\n  constructor(selections) {\n    /**\n     * Resets the elements to their initial state (remove the CSS classes that are added in the\n     * previous render cycle).\n     */\n    _classPrivateMethodInitSpec(this, _SelectionManager_brand);\n    /**\n     * The overlay's Walkontable instance that are currently processed.\n     *\n     * @type {Walkontable}\n     */\n    _classPrivateFieldInitSpec(this, _activeOverlaysWot, void 0);\n    /**\n     * The Highlight instance that holds Selections instances within it.\n     *\n     * @type {Highlight|null}\n     */\n    _classPrivateFieldInitSpec(this, _selections, void 0);\n    /**\n     * The SelectionScanner allows to scan and collect the cell and header elements that matches\n     * to the coords defined in the selections.\n     *\n     * @type {SelectionScanner}\n     */\n    _classPrivateFieldInitSpec(this, _scanner, new _scanner_mjs__WEBPACK_IMPORTED_MODULE_11__[\"SelectionScanner\"]());\n    /**\n     * The Map tracks applied CSS classes. It's used to reset the elements state to their initial state.\n     *\n     * @type {WeakMap}\n     */\n    _classPrivateFieldInitSpec(this, _appliedClasses, new WeakMap());\n    /**\n     * The Map tracks applied \"destroy\" listeners for Selection instances.\n     *\n     * @type {WeakMap}\n     */\n    _classPrivateFieldInitSpec(this, _destroyListeners, new WeakSet());\n    /**\n     * The Map holds references to Border classes for Selection instances which requires that when\n     * the \"border\" setting is defined.\n     *\n     * @type {Map}\n     */\n    _classPrivateFieldInitSpec(this, _selectionBorders, new Map());\n    _classPrivateFieldSet(_selections, this, selections);\n  }\n\n  /**\n   * Sets the active Walkontable instance.\n   *\n   * @param {Walkontable} activeWot The overlays or master Walkontable instance.\n   * @returns {SelectionManager}\n   */\n  setActiveOverlay(activeWot) {\n    _classPrivateFieldSet(_activeOverlaysWot, this, activeWot);\n    _classPrivateFieldGet(_scanner, this).setActiveOverlay(_classPrivateFieldGet(_activeOverlaysWot, this));\n    if (!_classPrivateFieldGet(_appliedClasses, this).has(_classPrivateFieldGet(_activeOverlaysWot, this))) {\n      _classPrivateFieldGet(_appliedClasses, this).set(_classPrivateFieldGet(_activeOverlaysWot, this), new Set());\n    }\n    return this;\n  }\n\n  /**\n   * Gets the Selection instance of the \"focus\" type.\n   *\n   * @returns {Selection|null}\n   */\n  getFocusSelection() {\n    return _classPrivateFieldGet(_selections, this) !== null ? _classPrivateFieldGet(_selections, this).getFocus() : null;\n  }\n\n  /**\n   * Gets the Selection instance of the \"area\" type.\n   *\n   * @returns {Selection|null}\n   */\n  getAreaSelection() {\n    return _classPrivateFieldGet(_selections, this) !== null ? _classPrivateFieldGet(_selections, this).createLayeredArea() : null;\n  }\n\n  /**\n   * Gets the Border instance associated with Selection instance.\n   *\n   * @param {Selection} selection The selection instance.\n   * @returns {Border|null} Returns the Border instance (new for each overlay Walkontable instance).\n   */\n  getBorderInstance(selection) {\n    if (!selection.settings.border) {\n      return null;\n    }\n    if (_classPrivateFieldGet(_selectionBorders, this).has(selection)) {\n      const borders = _classPrivateFieldGet(_selectionBorders, this).get(selection);\n      if (borders.has(_classPrivateFieldGet(_activeOverlaysWot, this))) {\n        return borders.get(_classPrivateFieldGet(_activeOverlaysWot, this));\n      }\n      const border = new _border_border_mjs__WEBPACK_IMPORTED_MODULE_12__[\"default\"](_classPrivateFieldGet(_activeOverlaysWot, this), selection.settings);\n      borders.set(_classPrivateFieldGet(_activeOverlaysWot, this), border);\n      return border;\n    }\n    const border = new _border_border_mjs__WEBPACK_IMPORTED_MODULE_12__[\"default\"](_classPrivateFieldGet(_activeOverlaysWot, this), selection.settings);\n    _classPrivateFieldGet(_selectionBorders, this).set(selection, new Map([[_classPrivateFieldGet(_activeOverlaysWot, this), border]]));\n    return border;\n  }\n\n  /**\n   * Gets all Border instances associated with Selection instance for all overlays.\n   *\n   * @param {Selection} selection The selection instance.\n   * @returns {Border[]}\n   */\n  getBorderInstances(selection) {\n    var _classPrivateFieldGet2, _classPrivateFieldGet3;\n    return Array.from((_classPrivateFieldGet2 = (_classPrivateFieldGet3 = _classPrivateFieldGet(_selectionBorders, this).get(selection)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.values()) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : []);\n  }\n\n  /**\n   * Destroys the Border instance associated with Selection instance.\n   *\n   * @param {Selection} selection The selection instance.\n   */\n  destroyBorders(selection) {\n    _classPrivateFieldGet(_selectionBorders, this).get(selection).forEach(border => border.destroy());\n    _classPrivateFieldGet(_selectionBorders, this).delete(selection);\n  }\n\n  /**\n   * Renders all the selections (add CSS classes to cells and draw borders).\n   *\n   * @param {boolean} fastDraw Indicates the render cycle type (fast/slow).\n   */\n  render(fastDraw) {\n    if (_classPrivateFieldGet(_selections, this) === null) {\n      return;\n    }\n    if (fastDraw) {\n      // there was no rerender, so we need to remove classNames by ourselves\n      _assertClassBrand(_SelectionManager_brand, this, _resetCells).call(this);\n    }\n    const selections = Array.from(_classPrivateFieldGet(_selections, this));\n    const classNamesMap = new Map();\n    const headerAttributesMap = new Map();\n    for (let i = 0; i < selections.length; i++) {\n      const selection = selections[i];\n      const {\n        className,\n        headerAttributes,\n        createLayers,\n        selectionType\n      } = selection.settings;\n      if (!_classPrivateFieldGet(_destroyListeners, this).has(selection)) {\n        _classPrivateFieldGet(_destroyListeners, this).add(selection);\n        selection.addLocalHook('destroy', () => this.destroyBorders(selection));\n      }\n      const borderInstance = this.getBorderInstance(selection);\n      if (selection.isEmpty()) {\n        borderInstance === null || borderInstance === void 0 || borderInstance.disappear();\n        continue; // eslint-disable-line no-continue\n      }\n      if (className) {\n        const elements = _classPrivateFieldGet(_scanner, this).setActiveSelection(selection).scan();\n        elements.forEach(element => {\n          if (classNamesMap.has(element)) {\n            const classNamesLayers = classNamesMap.get(element);\n            if (classNamesLayers.has(className) && createLayers === true) {\n              classNamesLayers.set(className, classNamesLayers.get(className) + 1);\n            } else {\n              classNamesLayers.set(className, 1);\n            }\n          } else {\n            classNamesMap.set(element, new Map([[className, 1]]));\n          }\n          if (headerAttributes) {\n            if (!headerAttributesMap.has(element)) {\n              headerAttributesMap.set(element, []);\n            }\n            if (element.nodeName === 'TH') {\n              headerAttributesMap.get(element).push(...headerAttributes);\n            }\n          }\n        });\n      }\n      const corners = selection.getCorners();\n      _classPrivateFieldGet(_activeOverlaysWot, this).getSetting('onBeforeDrawBorders', corners, selectionType);\n      borderInstance === null || borderInstance === void 0 || borderInstance.appear(corners);\n    }\n    classNamesMap.forEach((classNamesLayers, element) => {\n      var _classPrivateFieldGet4;\n      const classNames = Array.from(classNamesLayers).map(_ref => {\n        let [className, occurrenceCount] = _ref;\n        if (occurrenceCount === 1) {\n          return className;\n        }\n        return [className, ...Array.from({\n          length: occurrenceCount - 1\n        }, (_, i) => `${className}-${i + 1}`)];\n      }).flat();\n      classNames.forEach(className => _classPrivateFieldGet(_appliedClasses, this).get(_classPrivateFieldGet(_activeOverlaysWot, this)).add(className));\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"addClass\"])(element, classNames);\n      if (element.nodeName === 'TD' && Array.isArray((_classPrivateFieldGet4 = _classPrivateFieldGet(_selections, this).options) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.cellAttributes)) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"setAttribute\"])(element, _classPrivateFieldGet(_selections, this).options.cellAttributes);\n      }\n    });\n\n    // Set the attributes for the headers if they're focused.\n    Array.from(headerAttributesMap.keys()).forEach(element => {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"setAttribute\"])(element, [...headerAttributesMap.get(element)]);\n    });\n  }\n}\nfunction _resetCells() {\n  const appliedOverlaysClasses = _classPrivateFieldGet(_appliedClasses, this).get(_classPrivateFieldGet(_activeOverlaysWot, this));\n  const classesToRemove = _classPrivateFieldGet(_activeOverlaysWot, this).wtSettings.getSetting('onBeforeRemoveCellClassNames');\n  if (Array.isArray(classesToRemove)) {\n    for (let i = 0; i < classesToRemove.length; i++) {\n      appliedOverlaysClasses.add(classesToRemove[i]);\n    }\n  }\n  appliedOverlaysClasses.forEach(className => {\n    var _classPrivateFieldGet5, _classPrivateFieldGet6;\n    const nodes = _classPrivateFieldGet(_activeOverlaysWot, this).wtTable.TABLE.querySelectorAll(`.${className}`);\n    let cellAttributes = [];\n    if (Array.isArray((_classPrivateFieldGet5 = _classPrivateFieldGet(_selections, this).options) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.cellAttributes)) {\n      cellAttributes = _classPrivateFieldGet(_selections, this).options.cellAttributes.map(el => el[0]);\n    }\n    if (Array.isArray((_classPrivateFieldGet6 = _classPrivateFieldGet(_selections, this).options) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.headerAttributes)) {\n      cellAttributes = [...cellAttributes, ..._classPrivateFieldGet(_selections, this).options.headerAttributes.map(el => el[0])];\n    }\n    for (let i = 0, len = nodes.length; i < len; i++) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"removeClass\"])(nodes[i], className);\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"removeAttribute\"])(nodes[i], cellAttributes);\n    }\n  });\n  appliedOverlaysClasses.clear();\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/selection/manager.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/selection/scanner.mjs":
/*!**********************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/selection/scanner.mjs ***!
  \**********************************************************************************/
/*! exports provided: SelectionScanner */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SelectionScanner\", function() { return SelectionScanner; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n\n\n\n\n\n\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n/* eslint-disable no-continue */\n\n/**\n * Selection scanner module scans the rendered cells and headers and if it finds an intersection with\n * the coordinates of the Selection class (highlight) it returns the DOM elements.\n *\n * @private\n */\nvar _selection = /*#__PURE__*/new WeakMap();\nvar _activeOverlaysWot = /*#__PURE__*/new WeakMap();\nvar _SelectionScanner_brand = /*#__PURE__*/new WeakSet();\nclass SelectionScanner {\n  constructor() {\n    /**\n     * The method triggers a callback for each rendered cell.\n     *\n     * @param {function(number, number): void} callback The callback function to trigger.\n     */\n    _classPrivateMethodInitSpec(this, _SelectionScanner_brand);\n    /**\n     * Active Selection instance to process.\n     *\n     * @type {Selection}\n     */\n    _classPrivateFieldInitSpec(this, _selection, void 0);\n    /**\n     * The Walkontable instance that the scans depends on.\n     *\n     * @type {Walkontable}\n     */\n    _classPrivateFieldInitSpec(this, _activeOverlaysWot, void 0);\n  }\n  /**\n   * Sets the Walkontable instance that will be taking into account while scanning the table.\n   *\n   * @param {Walkontable} activeOverlaysWot The Walkontable instance.\n   * @returns {SelectionScanner}\n   */\n  setActiveOverlay(activeOverlaysWot) {\n    _classPrivateFieldSet(_activeOverlaysWot, this, activeOverlaysWot);\n    return this;\n  }\n\n  /**\n   * Sets the Selection instance to process.\n   *\n   * @param {Selection} selection The Selection instance.\n   * @returns {SelectionScanner}\n   */\n  setActiveSelection(selection) {\n    _classPrivateFieldSet(_selection, this, selection);\n    return this;\n  }\n\n  /**\n   * Scans the rendered table with selection and returns elements that intersects\n   * with selection coordinates.\n   *\n   * @returns {HTMLTableElement[]}\n   */\n  scan() {\n    const selectionType = _classPrivateFieldGet(_selection, this).settings.selectionType;\n    const elements = new Set();\n\n    // TODO(improvement): use heuristics from coords to detect what type of scan\n    // the Selection needs instead of using `selectionType` property.\n    if (selectionType === 'active-header') {\n      this.scanColumnsInHeadersRange(element => elements.add(element));\n      this.scanRowsInHeadersRange(element => elements.add(element));\n    } else if (selectionType === 'area') {\n      this.scanCellsRange(element => elements.add(element));\n    } else if (selectionType === 'focus') {\n      this.scanColumnsInHeadersRange(element => elements.add(element));\n      this.scanRowsInHeadersRange(element => elements.add(element));\n      this.scanCellsRange(element => elements.add(element));\n    } else if (selectionType === 'fill') {\n      this.scanCellsRange(element => elements.add(element));\n    } else if (selectionType === 'header') {\n      this.scanColumnsInHeadersRange(element => elements.add(element));\n      this.scanRowsInHeadersRange(element => elements.add(element));\n    } else if (selectionType === 'row') {\n      this.scanRowsInHeadersRange(element => elements.add(element));\n      this.scanRowsInCellsRange(element => elements.add(element));\n    } else if (selectionType === 'column') {\n      this.scanColumnsInHeadersRange(element => elements.add(element));\n      this.scanColumnsInCellsRange(element => elements.add(element));\n    }\n    return elements;\n  }\n\n  /**\n   * Scans the table (only rendered headers) and collect all column headers (TH) that match\n   * the coordinates passed in the Selection instance.\n   *\n   * @param {function(HTMLTableElement): void} callback The callback function to trigger.\n   */\n  scanColumnsInHeadersRange(callback) {\n    const [topRow, topColumn, bottomRow, bottomColumn] = _classPrivateFieldGet(_selection, this).getCorners();\n    const {\n      wtTable\n    } = _classPrivateFieldGet(_activeOverlaysWot, this);\n    const renderedColumnsCount = wtTable.getRenderedColumnsCount();\n    const columnHeadersCount = wtTable.getColumnHeadersCount();\n    let cursor = 0;\n    for (let column = -wtTable.getRowHeadersCount(); column < renderedColumnsCount; column++) {\n      const sourceColumn = wtTable.columnFilter.renderedToSource(column);\n      if (sourceColumn < topColumn || sourceColumn > bottomColumn) {\n        continue;\n      }\n      for (let headerLevel = -columnHeadersCount; headerLevel < 0; headerLevel++) {\n        if (headerLevel < topRow || headerLevel > bottomRow) {\n          continue;\n        }\n        const positiveBasedHeaderLevel = headerLevel + columnHeadersCount;\n        let TH = wtTable.getColumnHeader(sourceColumn, positiveBasedHeaderLevel);\n        const newSourceCol = _classPrivateFieldGet(_activeOverlaysWot, this).getSetting('onBeforeHighlightingColumnHeader', sourceColumn, positiveBasedHeaderLevel, {\n          selectionType: _classPrivateFieldGet(_selection, this).settings.selectionType,\n          columnCursor: cursor,\n          selectionWidth: bottomColumn - topColumn + 1\n        });\n        if (newSourceCol === null) {\n          continue;\n        }\n        if (newSourceCol !== sourceColumn) {\n          TH = wtTable.getColumnHeader(newSourceCol, positiveBasedHeaderLevel);\n        }\n        callback(TH);\n      }\n      cursor += 1;\n    }\n  }\n\n  /**\n   * Scans the table (only rendered headers) and collect all row headers (TH) that match\n   * the coordinates passed in the Selection instance.\n   *\n   * @param {function(HTMLTableElement): void} callback The callback function to trigger.\n   */\n  scanRowsInHeadersRange(callback) {\n    const [topRow, topColumn, bottomRow, bottomColumn] = _classPrivateFieldGet(_selection, this).getCorners();\n    const {\n      wtTable\n    } = _classPrivateFieldGet(_activeOverlaysWot, this);\n    const renderedRowsCount = wtTable.getRenderedRowsCount();\n    const rowHeadersCount = wtTable.getRowHeadersCount();\n    let cursor = 0;\n    for (let row = -wtTable.getColumnHeadersCount(); row < renderedRowsCount; row++) {\n      const sourceRow = wtTable.rowFilter.renderedToSource(row);\n      if (sourceRow < topRow || sourceRow > bottomRow) {\n        continue;\n      }\n      for (let headerLevel = -rowHeadersCount; headerLevel < 0; headerLevel++) {\n        if (headerLevel < topColumn || headerLevel > bottomColumn) {\n          continue;\n        }\n        const positiveBasedHeaderLevel = headerLevel + rowHeadersCount;\n        let TH = wtTable.getRowHeader(sourceRow, positiveBasedHeaderLevel);\n        const newSourceRow = _classPrivateFieldGet(_activeOverlaysWot, this).getSetting('onBeforeHighlightingRowHeader', sourceRow, positiveBasedHeaderLevel, {\n          selectionType: _classPrivateFieldGet(_selection, this).settings.selectionType,\n          rowCursor: cursor,\n          selectionHeight: bottomRow - topRow + 1\n        });\n        if (newSourceRow === null) {\n          continue;\n        }\n        if (newSourceRow !== sourceRow) {\n          TH = wtTable.getRowHeader(newSourceRow, positiveBasedHeaderLevel);\n        }\n        callback(TH);\n      }\n      cursor += 1;\n    }\n  }\n\n  /**\n   * Scans the table (only rendered cells) and collect all cells (TR) that match\n   * the coordinates passed in the Selection instance.\n   *\n   * @param {function(HTMLTableElement): void} callback The callback function to trigger.\n   */\n  scanCellsRange(callback) {\n    const [topRow, topColumn, bottomRow, bottomColumn] = _classPrivateFieldGet(_selection, this).getCorners();\n    const {\n      wtTable\n    } = _classPrivateFieldGet(_activeOverlaysWot, this);\n    _assertClassBrand(_SelectionScanner_brand, this, _scanCellsRange).call(this, (sourceRow, sourceColumn) => {\n      if (sourceRow >= topRow && sourceRow <= bottomRow && sourceColumn >= topColumn && sourceColumn <= bottomColumn) {\n        const cell = wtTable.getCell(_classPrivateFieldGet(_activeOverlaysWot, this).createCellCoords(sourceRow, sourceColumn));\n\n        // support for old API\n        const additionalSelectionClass = _classPrivateFieldGet(_activeOverlaysWot, this).getSetting('onAfterDrawSelection', sourceRow, sourceColumn, _classPrivateFieldGet(_selection, this).settings.layerLevel);\n        if (typeof additionalSelectionClass === 'string') {\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_8__[\"addClass\"])(cell, additionalSelectionClass);\n        }\n        callback(cell);\n      }\n    });\n  }\n\n  /**\n   * Scans the table (only rendered cells) and collects all cells (TR) that match the coordinates\n   * passed in the Selection instance but only for the X axis (rows).\n   *\n   * @param {function(HTMLTableElement): void} callback The callback function to trigger.\n   */\n  scanRowsInCellsRange(callback) {\n    // eslint-disable-next-line comma-spacing\n    const [topRow,, bottomRow] = _classPrivateFieldGet(_selection, this).getCorners();\n    const {\n      wtTable\n    } = _classPrivateFieldGet(_activeOverlaysWot, this);\n    _assertClassBrand(_SelectionScanner_brand, this, _scanCellsRange).call(this, (sourceRow, sourceColumn) => {\n      if (sourceRow >= topRow && sourceRow <= bottomRow) {\n        const cell = wtTable.getCell(_classPrivateFieldGet(_activeOverlaysWot, this).createCellCoords(sourceRow, sourceColumn));\n        callback(cell);\n      }\n    });\n  }\n\n  /**\n   * Scans the table (only rendered cells) and collects all cells (TR) that match the coordinates\n   * passed in the Selection instance but only for the Y axis (columns).\n   *\n   * @param {function(HTMLTableElement): void} callback The callback function to trigger.\n   */\n  scanColumnsInCellsRange(callback) {\n    const [, topColumn,, bottomColumn] = _classPrivateFieldGet(_selection, this).getCorners();\n    const {\n      wtTable\n    } = _classPrivateFieldGet(_activeOverlaysWot, this);\n    _assertClassBrand(_SelectionScanner_brand, this, _scanCellsRange).call(this, (sourceRow, sourceColumn) => {\n      if (sourceColumn >= topColumn && sourceColumn <= bottomColumn) {\n        const cell = wtTable.getCell(_classPrivateFieldGet(_activeOverlaysWot, this).createCellCoords(sourceRow, sourceColumn));\n        callback(cell);\n      }\n    });\n  }\n}\nfunction _scanCellsRange(callback) {\n  const {\n    wtTable\n  } = _classPrivateFieldGet(_activeOverlaysWot, this);\n  const renderedRowsCount = wtTable.getRenderedRowsCount();\n  const renderedColumnsCount = wtTable.getRenderedColumnsCount();\n  for (let row = 0; row < renderedRowsCount; row += 1) {\n    const sourceRow = wtTable.rowFilter.renderedToSource(row);\n    for (let column = 0; column < renderedColumnsCount; column += 1) {\n      callback(sourceRow, wtTable.columnFilter.renderedToSource(column));\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/selection/scanner.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/selection/selection.mjs":
/*!************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/selection/selection.mjs ***!
  \************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n\n\n/**\n * The Selection class allows highlighting (by applying CSS class) the table's cells or headers\n * and setting up the borders if defined in the settings.\n *\n * The Selection coordinates may point to the cells (positive numbers) or headers (negative numbers).\n *\n * @class Selection\n */\nclass Selection {\n  /**\n   * @param {object} settings The selection settings object. @todo type.\n   * @param {CellRange} cellRange The cell range instance.\n   */\n  constructor(settings, cellRange) {\n    this.settings = settings;\n    this.cellRange = cellRange || null;\n  }\n\n  /**\n   * Checks if selection is empty.\n   *\n   * @returns {boolean}\n   */\n  isEmpty() {\n    return this.cellRange === null;\n  }\n\n  /**\n   * Adds a cell coords to the selection.\n   *\n   * @param {CellCoords} coords The cell coordinates to add.\n   * @returns {Selection}\n   */\n  add(coords) {\n    if (this.isEmpty()) {\n      this.cellRange = this.settings.createCellRange(coords);\n    } else {\n      this.cellRange.expand(coords);\n    }\n    return this;\n  }\n\n  /**\n   * If selection range from or to property equals oldCoords, replace it with newCoords. Return boolean\n   * information about success.\n   *\n   * @param {CellCoords} oldCoords An old cell coordinates to replace.\n   * @param {CellCoords} newCoords The new cell coordinates.\n   * @returns {boolean}\n   */\n  replace(oldCoords, newCoords) {\n    if (!this.isEmpty()) {\n      if (this.cellRange.from.isEqual(oldCoords)) {\n        this.cellRange.from = newCoords;\n        return true;\n      }\n      if (this.cellRange.to.isEqual(oldCoords)) {\n        this.cellRange.to = newCoords;\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   * Clears selection.\n   *\n   * @returns {Selection}\n   */\n  clear() {\n    this.cellRange = null;\n    return this;\n  }\n\n  /**\n   * Returns the top left (or top right in RTL) and bottom right (or bottom left in RTL) selection coordinates.\n   *\n   * @returns {number[]} Returns array of coordinates for example `[1, 1, 5, 5]`.\n   */\n  getCorners() {\n    const topStart = this.cellRange.getOuterTopStartCorner();\n    const bottomEnd = this.cellRange.getOuterBottomEndCorner();\n    return [topStart.row, topStart.col, bottomEnd.row, bottomEnd.col];\n  }\n\n  /**\n   * Destroys the instance.\n   */\n  destroy() {\n    this.runLocalHooks('destroy');\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"mixin\"])(Selection, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (Selection);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/selection/selection.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/settings.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/settings.mjs ***!
  \*************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Settings; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n/**\n * @todo Describe options.\n * @typedef SettingsPure\n *\n * @property {Option} facade @todo desc.\n * @property {Option} ariaTags Option `ariaTags`.\n * @property {Option} cellRenderer Option `cellRenderer`.\n * @property {Option} columnHeaders Option `columnHeaders`.\n * @property {Option} columnWidth Option `columnWidth`.\n * @property {Option} currentRowClassName Option `currentRowClassName`.\n * @property {Option} data Option `data`.\n * @property {Option} defaultColumnWidth Option `defaultColumnWidth`.\n * @property {Option} defaultRowHeight Option `defaultRowHeight`.\n * @property {Option} externalRowCalculator Option `externalRowCalculator`.\n * @property {Option} fixedColumnsStart Option `fixedColumnsStart`.\n * @property {Option} fixedRowsBottom Option `fixedRowsBottom`.\n * @property {Option} fixedRowsTop Option `fixedRowsTop`.\n * @property {Option} freezeOverlays Option `freezeOverlays`.\n * @property {Option} groups Option `groups`.\n * @property {Option} hideBorderOnMouseDownOver Option `hideBorderOnMouseDownOver`.\n * @property {Option} isRtl Option `isRtl`.\n * @property {Option} isDataViewInstance Option `isDataViewInstance`.\n * @property {Option} minSpareRows Option `minSpareRows`.\n * @property {Option} onBeforeHighlightingColumnHeader Option `onBeforeHighlightingColumnHeader`.\n * @property {Option} onBeforeHighlightingRowHeader Option `onBeforeHighlightingRowHeader`.\n * @property {Option} onBeforeRemoveCellClassNames Option `onBeforeRemoveCellClassNames`.\n * @property {Option} onBeforeStretchingColumnWidth Option `onBeforeStretchingColumnWidth`.\n * @property {Option} preventOverflow Option `preventOverflow`.\n * @property {Option} preventWheel Option `preventWheel`.\n * @property {Option} renderAllColumns Option `renderAllColumns`.\n * @property {Option} renderAllRows Option `renderAllRows`.\n * @property {Option} rowHeaders Option `rowHeaders`.\n * @property {Option} rowHeightOption `rowHeight`.\n * @property {Option} rowHeightByOverlayName Option `rowHeightByOverlayName`.\n * @property {Option} shouldRenderBottomOverlay Option `shouldRenderBottomOverlay`.\n * @property {Option} shouldRenderInlineStartOverlay Option `shouldRenderInlineStartOverlay`.\n * @property {Option} shouldRenderTopOverlay Option `shouldRenderTopOverlay`.\n * @property {Option} stretchH Option `stretchH`.\n * @property {Option} table Option `table`.\n * @property {Option} totalColumns Option `totalColumns`.\n * @property {Option} totalRows Option `totalRows`.\n * @property {?Option} beforeDraw Option `beforeDraw`.\n * @property {?Option} columnHeaderHeight Option `columnHeaderHeight`.\n * @property {?Option} currentColumnClassName Option `currentColumnClassName`.\n * @property {?Option} headerClassName Option `headerClassName`.\n * @property {?Option} onAfterDrawSelection Option `onAfterDrawSelection`.\n * @property {?Option} onAfterMomentumScroll Option `onAfterMomentumScroll`.\n * @property {?Option} onBeforeDrawBorders Option `onBeforeDrawBorders`.\n * @property {?Option} onBeforeTouchScroll Option `onBeforeTouchScroll`.\n * @property {?Option} onCellContextMenu Option `onCellContextMenu`.\n * @property {?Option} onCellCornerDblClick Option `onCellCornerDblClick`.\n * @property {?Option} onCellCornerMouseDown Option `onCellCornerMouseDown`.\n * @property {?Option} onCellDblClick Option `onCellDblClick`.\n * @property {?Option} onCellMouseDown Option `onCellMouseDown`.\n * @property {?Option} onCellMouseOut Option `onCellMouseOut`.\n * @property {?Option} onCellMouseOver Option `onCellMouseOver`.\n * @property {?Option} onCellMouseUp Option `onCellMouseUp`.\n * @property {?Option} onDraw Option `onDraw`.\n * @property {?Option} onModifyGetCellCoords Option `onModifyGetCellCoords`.\n * @property {?Option} onModifyRowHeaderWidth Option `onModifyRowHeaderWidth`.\n * @property {?Option} onBeforeViewportScrollHorizontally Option `onBeforeViewportScrollHorizontally`.\n * @property {?Option} onBeforeViewportScrollVertically Option `onBeforeViewportScrollVertically`.\n * @property {?Option} onScrollHorizontally Option `onScrollHorizontally`.\n * @property {?Option} onScrollVertically Option `onScrollVertically`.\n * @property {?Option} onWindowResize Option `onWindowResize`.\n * @property {?Option} rowHeaderWidth Option `rowHeaderWidth`.\n * @property {?Option} selections Option `selections`.\n * @property {?Option} viewportColumnCalculatorOverride Option `viewportColumnCalculatorOverride`.\n * @property {?Option} viewportRowCalculatorOverride Option `viewportRowCalculatorOverride`.\n */\n/**\n * @template TValue.\n * @typedef { TValue | Array.<TValue> | (function(...*): TValue) } Option\n */\n/**\n * @class Settings\n */\nclass Settings {\n  /**\n   * @param {SettingsPure} settings The user defined settings.\n   */\n  constructor(settings) {\n    /**\n     * Reference to settings.\n     *\n     * @protected\n     * @type {SettingsPure}\n     */\n    _defineProperty(this, \"settings\", {});\n    /**\n     * The defaults values of settings.\n     * Void 0 means it is required, null means it can be empty.\n     *\n     * @public\n     * @type {Readonly<SettingsPure>}\n     */\n    _defineProperty(this, \"defaults\", Object.freeze(this.getDefaults()));\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"objectEach\"])(this.defaults, (value, key) => {\n      if (settings[key] !== undefined) {\n        this.settings[key] = settings[key];\n      } else if (value === undefined) {\n        throw new Error(`A required setting \"${key}\" was not provided`);\n      } else {\n        this.settings[key] = value;\n      }\n    });\n  }\n\n  /**\n   * Generate defaults for a settings.\n   * Void 0 means it is required, null means it can be empty.\n   *\n   * @private\n   * @returns {SettingsPure}\n   */\n  getDefaults() {\n    return {\n      facade: undefined,\n      table: undefined,\n      // Determines whether the Walkontable instance is used as dataset viewer. When its instance is used as\n      // a context menu, autocomplete list, etc, the returned value is `false`.\n      isDataViewInstance: true,\n      // presentation mode\n      externalRowCalculator: false,\n      stretchH: 'none',\n      // values: all, last, none\n      currentRowClassName: null,\n      currentColumnClassName: null,\n      preventOverflow() {\n        return false;\n      },\n      preventWheel: false,\n      // data source\n      data: undefined,\n      freezeOverlays: false,\n      // Number of renderable columns for the left overlay.\n      fixedColumnsStart: 0,\n      // Number of renderable rows for the top overlay.\n      fixedRowsTop: 0,\n      // Number of renderable rows for the bottom overlay.\n      fixedRowsBottom: 0,\n      // Enable the inline start overlay when conditions are met (left for LTR and right for RTL document mode).\n      shouldRenderInlineStartOverlay: () => {\n        return this.getSetting('fixedColumnsStart') > 0 || this.getSetting('rowHeaders').length > 0;\n      },\n      // Enable the top overlay when conditions are met.\n      shouldRenderTopOverlay: () => {\n        return this.getSetting('fixedRowsTop') > 0 || this.getSetting('columnHeaders').length > 0;\n      },\n      // Enable the bottom overlay when conditions are met.\n      shouldRenderBottomOverlay: () => {\n        return this.getSetting('fixedRowsBottom') > 0;\n      },\n      minSpareRows: 0,\n      // this must be array of functions: [function (row, TH) {}]\n      rowHeaders() {\n        return [];\n      },\n      // this must be array of functions: [function (column, TH) {}]\n      columnHeaders() {\n        return [];\n      },\n      totalRows: undefined,\n      totalColumns: undefined,\n      cellRenderer: (row, column, TD) => {\n        const cellData = this.getSetting('data', row, column);\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"fastInnerText\"])(TD, cellData === undefined || cellData === null ? '' : cellData);\n      },\n      // columnWidth: 50,\n      columnWidth() {\n        // return undefined means use default size for the rendered cell content\n      },\n      rowHeight() {\n        // return undefined means use default size for the rendered cell content\n      },\n      rowHeightByOverlayName() {\n        // return undefined means use default size for the rendered cell content\n      },\n      defaultRowHeight: 23,\n      defaultColumnWidth: 50,\n      selections: null,\n      hideBorderOnMouseDownOver: false,\n      viewportRowCalculatorOverride: null,\n      viewportColumnCalculatorOverride: null,\n      // callbacks\n      onCellMouseDown: null,\n      onCellContextMenu: null,\n      onCellMouseOver: null,\n      onCellMouseOut: null,\n      onCellMouseUp: null,\n      // onCellMouseOut: null,\n      onCellDblClick: null,\n      onCellCornerMouseDown: null,\n      onCellCornerDblClick: null,\n      beforeDraw: null,\n      onDraw: null,\n      onBeforeRemoveCellClassNames: null,\n      onAfterDrawSelection: null,\n      onBeforeDrawBorders: null,\n      // viewport scroll hooks\n      onBeforeViewportScrollHorizontally: column => column,\n      onBeforeViewportScrollVertically: row => row,\n      // native scroll hooks\n      onScrollHorizontally: null,\n      onScrollVertically: null,\n      //\n      onBeforeTouchScroll: null,\n      onAfterMomentumScroll: null,\n      onBeforeStretchingColumnWidth: width => width,\n      onModifyRowHeaderWidth: null,\n      onModifyGetCellCoords: null,\n      onBeforeHighlightingRowHeader: sourceRow => sourceRow,\n      onBeforeHighlightingColumnHeader: sourceCol => sourceCol,\n      onWindowResize: null,\n      onContainerElementResize: null,\n      renderAllColumns: false,\n      renderAllRows: false,\n      groups: false,\n      rowHeaderWidth: null,\n      columnHeaderHeight: null,\n      headerClassName: null,\n      rtlMode: false,\n      ariaTags: true\n    };\n  }\n\n  /**\n   * Update settings.\n   *\n   * @param {object|string} settings The singular settings to update or if passed as object to merge with.\n   * @param {*} value The value to set if the first argument is passed as string.\n   * @returns {Settings}\n   */\n  update(settings, value) {\n    if (value === undefined) {\n      // settings is object\n      Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"objectEach\"])(settings, (settingValue, key) => {\n        this.settings[key] = settingValue;\n      });\n    } else {\n      // if value is defined then settings is the key\n      this.settings[settings] = value;\n    }\n    return this;\n  }\n\n  /**\n   * Get setting by name.\n   *\n   * @param {$Keys<SettingsPure>} key The settings key to retrieve.\n   * @param {*} [param1] Additional parameter passed to the options defined as function.\n   * @param {*} [param2] Additional parameter passed to the options defined as function.\n   * @param {*} [param3] Additional parameter passed to the options defined as function.\n   * @param {*} [param4] Additional parameter passed to the options defined as function.\n   * @returns {*}\n   */\n  getSetting(key, param1, param2, param3, param4) {\n    if (typeof this.settings[key] === 'function') {\n      return this.settings[key](param1, param2, param3, param4);\n    } else if (param1 !== undefined && Array.isArray(this.settings[key])) {\n      return this.settings[key][param1];\n    }\n    return this.settings[key];\n  }\n\n  /**\n   * Get a setting value without any evaluation.\n   *\n   * @param {string} key The settings key to retrieve.\n   * @returns {*}\n   */\n  getSettingPure(key) {\n    return this.settings[key];\n  }\n\n  /**\n   * Checks if setting exists.\n   *\n   * @param {boolean} key The settings key to check.\n   * @returns {boolean}\n   */\n  has(key) {\n    return !!this.settings[key];\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/settings.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/table.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/table.mjs ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n/* harmony import */ var _filter_column_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./filter/column.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/filter/column.mjs\");\n/* harmony import */ var _filter_row_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./filter/row.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/filter/row.mjs\");\n/* harmony import */ var _renderer_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./renderer/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/renderer/index.mjs\");\n/* harmony import */ var _utils_column_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/column.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/utils/column.mjs\");\n/* harmony import */ var _utils_row_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/row.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/utils/row.mjs\");\n/* harmony import */ var _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./overlay/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/index.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n\n\n/**\n * @todo These mixes are never added to the class Table, however their members are used here.\n * @todo Continue: Potentially it works only, because some of these mixes are added to every inherited class.\n * @todo Refactoring, move code from `if(this.isMaster)` into MasterTable, and others like that.\n * @mixes stickyColumnsStart\n * @mixes stickyRowsBottom\n * @mixes stickyRowsTop\n * @mixes calculatedRows\n * @mixes calculatedColumns\n * @abstract\n */\nclass Table {\n  /**\n   *\n   * @abstract\n   * @param {TableDao} dataAccessObject The data access object.\n   * @param {FacadeGetter} facadeGetter Function which return proper facade.\n   * @param {DomBindings} domBindings Bindings into DOM.\n   * @param {Settings} wtSettings The Walkontable settings.\n   * @param {'master'|CLONE_TYPES_ENUM} name Overlay name.\n   */\n  constructor(dataAccessObject, facadeGetter, domBindings, wtSettings, name) {\n    /**\n     * The walkontable settings.\n     *\n     * @protected\n     * @type {Settings}\n     */\n    _defineProperty(this, \"wtSettings\", null);\n    _defineProperty(this, \"domBindings\", void 0);\n    _defineProperty(this, \"TBODY\", null);\n    _defineProperty(this, \"THEAD\", null);\n    _defineProperty(this, \"COLGROUP\", null);\n    /**\n     * Indicates if the table has height bigger than 0px.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"hasTableHeight\", true);\n    /**\n     * Indicates if the table has width bigger than 0px.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"hasTableWidth\", true);\n    /**\n     * Indicates if the table is visible. By visible, it means that the holder\n     * element has CSS 'display' property different than 'none'.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"isTableVisible\", false);\n    _defineProperty(this, \"tableOffset\", 0);\n    _defineProperty(this, \"holderOffset\", 0);\n    this.domBindings = domBindings;\n    /**\n     * Indicates if this instance is of type `MasterTable` (i.e. It is NOT an overlay).\n     *\n     * @type {boolean}\n     */\n    this.isMaster = name === 'master';\n    this.name = name;\n    this.dataAccessObject = dataAccessObject;\n    this.facadeGetter = facadeGetter;\n    this.wtSettings = wtSettings;\n\n    // legacy support\n    this.instance = this.dataAccessObject.wot; // TODO refactoring: it might be removed here, and provides legacy support through facade.\n    this.wot = this.dataAccessObject.wot;\n    this.TABLE = domBindings.rootTable;\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"removeTextNodes\"])(this.TABLE);\n\n    // TODO refactoring, to recognize the legitimacy of moving them into domBidings\n    this.spreader = this.createSpreader(this.TABLE);\n    this.hider = this.createHider(this.spreader);\n    this.holder = this.createHolder(this.hider);\n    this.wtRootElement = this.holder.parentNode;\n    if (this.isMaster) {\n      this.alignOverlaysWithTrimmingContainer(); // todo wow, It calls method from child class (MasterTable).\n    }\n    this.fixTableDomTree();\n    this.rowFilter = null; // TODO refactoring, eliminate all (re)creations of this object, then updates state when needed.\n    this.columnFilter = null; // TODO refactoring, eliminate all (re)creations of this object, then updates state when needed.\n    this.correctHeaderWidth = false;\n    const origRowHeaderWidth = this.wtSettings.getSettingPure('rowHeaderWidth');\n\n    // Fix for jumping row headers (https://github.com/handsontable/handsontable/issues/3850)\n    this.wtSettings.update('rowHeaderWidth', () => this._modifyRowHeaderWidth(origRowHeaderWidth));\n    this.rowUtils = new _utils_row_mjs__WEBPACK_IMPORTED_MODULE_8__[\"default\"](this.dataAccessObject, this.wtSettings); // TODO refactoring, It can be passed through IOC.\n    this.columnUtils = new _utils_column_mjs__WEBPACK_IMPORTED_MODULE_7__[\"default\"](this.dataAccessObject, this.wtSettings); // TODO refactoring, It can be passed through IOC.\n\n    this.tableRenderer = new _renderer_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"Renderer\"]({\n      // TODO refactoring, It can be passed through IOC.\n      TABLE: this.TABLE,\n      THEAD: this.THEAD,\n      COLGROUP: this.COLGROUP,\n      TBODY: this.TBODY,\n      rowUtils: this.rowUtils,\n      columnUtils: this.columnUtils,\n      cellRenderer: this.wtSettings.getSettingPure('cellRenderer')\n    });\n  }\n\n  /**\n   * Returns a boolean that is true if this Table represents a specific overlay, identified by the overlay name.\n   * For MasterTable, it returns false.\n   *\n   * @param {string} overlayTypeName The overlay type.\n   * @returns {boolean}\n   */\n  is(overlayTypeName) {\n    // todo refactoring: eliminate all protected and private usages\n    return this.name === overlayTypeName;\n  }\n\n  /**\n   *\n   */\n  fixTableDomTree() {\n    const rootDocument = this.domBindings.rootDocument;\n    this.TBODY = this.TABLE.querySelector('tbody');\n    if (!this.TBODY) {\n      this.TBODY = rootDocument.createElement('tbody');\n      this.TABLE.appendChild(this.TBODY);\n    }\n    this.THEAD = this.TABLE.querySelector('thead');\n    if (!this.THEAD) {\n      this.THEAD = rootDocument.createElement('thead');\n      this.TABLE.insertBefore(this.THEAD, this.TBODY);\n    }\n    this.COLGROUP = this.TABLE.querySelector('colgroup');\n    if (!this.COLGROUP) {\n      this.COLGROUP = rootDocument.createElement('colgroup');\n      this.TABLE.insertBefore(this.COLGROUP, this.THEAD);\n    }\n  }\n\n  /**\n   * @param {HTMLTableElement} table An element to process.\n   * @returns {HTMLElement}\n   */\n  createSpreader(table) {\n    const parent = table.parentNode;\n    let spreader;\n    if (!parent || parent.nodeType !== Node.ELEMENT_NODE || !Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasClass\"])(parent, 'wtHolder')) {\n      spreader = this.domBindings.rootDocument.createElement('div');\n      spreader.className = 'wtSpreader';\n      if (parent) {\n        // if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it\n        parent.insertBefore(spreader, table);\n      }\n      spreader.appendChild(table);\n    }\n    spreader.style.position = 'relative';\n    if (this.wtSettings.getSetting('ariaTags')) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setAttribute\"])(spreader, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_PRESENTATION\"])()]);\n    }\n    return spreader;\n  }\n\n  /**\n   * @param {HTMLElement} spreader An element to the hider element is injected.\n   * @returns {HTMLElement}\n   */\n  createHider(spreader) {\n    const parent = spreader.parentNode;\n    let hider;\n    if (!parent || parent.nodeType !== Node.ELEMENT_NODE || !Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasClass\"])(parent, 'wtHolder')) {\n      hider = this.domBindings.rootDocument.createElement('div');\n      hider.className = 'wtHider';\n      if (parent) {\n        // if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it\n        parent.insertBefore(hider, spreader);\n      }\n      hider.appendChild(spreader);\n    }\n    if (this.wtSettings.getSetting('ariaTags')) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setAttribute\"])(hider, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_PRESENTATION\"])()]);\n    }\n    return hider;\n  }\n\n  /**\n   *\n   * @param {HTMLElement} hider An element to the holder element is injected.\n   * @returns {HTMLElement}\n   */\n  createHolder(hider) {\n    const parent = hider.parentNode;\n    let holder;\n    if (!parent || parent.nodeType !== Node.ELEMENT_NODE || !Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasClass\"])(parent, 'wtHolder')) {\n      holder = this.domBindings.rootDocument.createElement('div');\n      holder.style.position = 'relative';\n      holder.className = 'wtHolder';\n      if (parent) {\n        // if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it\n        parent.insertBefore(holder, hider);\n      }\n      if (this.isMaster) {\n        holder.parentNode.className += 'ht_master handsontable';\n        holder.parentNode.setAttribute('dir', this.wtSettings.getSettingPure('rtlMode') ? 'rtl' : 'ltr');\n        if (this.wtSettings.getSetting('ariaTags')) {\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setAttribute\"])(holder.parentNode, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_PRESENTATION\"])()]);\n        }\n      }\n      holder.appendChild(hider);\n    }\n    if (this.wtSettings.getSetting('ariaTags')) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setAttribute\"])(holder, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_PRESENTATION\"])()]);\n    }\n    return holder;\n  }\n\n  /**\n   * Redraws the table.\n   *\n   * @param {boolean} [fastDraw=false] If TRUE, will try to avoid full redraw and only update the border positions.\n   *                                   If FALSE or UNDEFINED, will perform a full redraw.\n   * @returns {Table}\n   */\n  draw() {\n    let fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    const {\n      wtSettings\n    } = this;\n    const {\n      wtOverlays,\n      wtViewport\n    } = this.dataAccessObject;\n    const totalRows = wtSettings.getSetting('totalRows');\n    const totalColumns = wtSettings.getSetting('totalColumns');\n    const rowHeaders = wtSettings.getSetting('rowHeaders');\n    const rowHeadersCount = rowHeaders.length;\n    const columnHeaders = wtSettings.getSetting('columnHeaders');\n    const columnHeadersCount = columnHeaders.length;\n    let runFastDraw = fastDraw;\n    if (this.isMaster) {\n      wtOverlays.beforeDraw();\n      this.holderOffset = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"offset\"])(this.holder);\n      runFastDraw = wtViewport.createCalculators(runFastDraw);\n      if (rowHeadersCount && !wtSettings.getSetting('fixedColumnsStart')) {\n        const leftScrollPos = wtOverlays.inlineStartOverlay.getScrollPosition();\n        const previousState = this.correctHeaderWidth;\n        this.correctHeaderWidth = leftScrollPos !== 0;\n        if (previousState !== this.correctHeaderWidth) {\n          runFastDraw = false;\n        }\n      }\n    }\n    if (runFastDraw) {\n      if (this.isMaster) {\n        wtOverlays.refresh(true);\n      }\n    } else {\n      if (this.isMaster) {\n        this.tableOffset = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"offset\"])(this.TABLE);\n      } else {\n        this.tableOffset = this.dataAccessObject.parentTableOffset;\n      }\n      const startRow = totalRows > 0 ? this.getFirstRenderedRow() : 0;\n      const startColumn = totalColumns > 0 ? this.getFirstRenderedColumn() : 0;\n      this.rowFilter = new _filter_row_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"](startRow, totalRows, columnHeadersCount);\n      this.columnFilter = new _filter_column_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"](startColumn, totalColumns, rowHeadersCount);\n      let performRedraw = true;\n\n      // Only master table rendering can be skipped\n      if (this.isMaster) {\n        this.alignOverlaysWithTrimmingContainer(); // todo It calls method from child class (MasterTable).\n        const skipRender = {};\n        this.wtSettings.getSetting('beforeDraw', true, skipRender);\n        performRedraw = skipRender.skipRender !== true;\n      }\n      if (performRedraw) {\n        this.tableRenderer.setHeaderContentRenderers(rowHeaders, columnHeaders);\n        if (this.is(_overlay_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CLONE_BOTTOM\"]) || this.is(_overlay_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CLONE_BOTTOM_INLINE_START_CORNER\"])) {\n          // do NOT render headers on the bottom or bottom-left corner overlay\n          this.tableRenderer.setHeaderContentRenderers(rowHeaders, []);\n        }\n        this.resetOversizedRows();\n        this.tableRenderer.setActiveOverlayName(this.name).setViewportSize(this.getRenderedRowsCount(), this.getRenderedColumnsCount()).setFilters(this.rowFilter, this.columnFilter).render();\n        let workspaceWidth;\n        if (this.isMaster) {\n          workspaceWidth = this.dataAccessObject.workspaceWidth;\n          wtViewport.containerWidth = null;\n          this.markOversizedColumnHeaders();\n        }\n        this.adjustColumnHeaderHeights();\n        if (this.isMaster || this.is(_overlay_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CLONE_BOTTOM\"])) {\n          this.markOversizedRows();\n        }\n        if (this.isMaster) {\n          if (!this.wtSettings.getSetting('externalRowCalculator')) {\n            wtViewport.createVisibleCalculators();\n          }\n          wtOverlays.refresh(false);\n          wtOverlays.applyToDOM();\n          const hiderWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"outerWidth\"])(this.hider);\n          const tableWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"outerWidth\"])(this.TABLE);\n          if (hiderWidth !== 0 && tableWidth !== hiderWidth) {\n            // Recalculate the column widths, if width changes made in the overlays removed the scrollbar, thus changing the viewport width.\n            this.columnUtils.calculateWidths();\n            this.tableRenderer.renderer.colGroup.render();\n          }\n          if (workspaceWidth !== wtViewport.getWorkspaceWidth()) {\n            // workspace width changed though to shown/hidden vertical scrollbar. Let's reapply stretching\n            wtViewport.containerWidth = null;\n            this.columnUtils.calculateWidths();\n            this.tableRenderer.renderer.colGroup.render();\n          }\n          this.wtSettings.getSetting('onDraw', true);\n        } else if (this.is(_overlay_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CLONE_BOTTOM\"])) {\n          this.dataAccessObject.cloneSource.wtOverlays.adjustElementsSize();\n        }\n      }\n    }\n    let positionChanged = false;\n    if (this.isMaster) {\n      positionChanged = wtOverlays.topOverlay.resetFixedPosition();\n      if (wtOverlays.bottomOverlay.clone) {\n        positionChanged = wtOverlays.bottomOverlay.resetFixedPosition() || positionChanged;\n      }\n      positionChanged = wtOverlays.inlineStartOverlay.resetFixedPosition() || positionChanged;\n      if (wtOverlays.topInlineStartCornerOverlay) {\n        wtOverlays.topInlineStartCornerOverlay.resetFixedPosition();\n      }\n      if (wtOverlays.bottomInlineStartCornerOverlay && wtOverlays.bottomInlineStartCornerOverlay.clone) {\n        wtOverlays.bottomInlineStartCornerOverlay.resetFixedPosition();\n      }\n    }\n    if (positionChanged) {\n      // It refreshes the cells borders caused by a 1px shift (introduced by overlays which add or\n      // remove `innerBorderTop` and `innerBorderInlineStart` CSS classes to the DOM element. This happens\n      // when there is a switch between rendering from 0 to N rows/columns and vice versa).\n      wtOverlays.refreshAll(); // `refreshAll()` internally already calls `refreshSelections()` method\n      wtOverlays.adjustElementsSize();\n    } else {\n      this.dataAccessObject.selectionManager.setActiveOverlay(this.facadeGetter()).render(runFastDraw);\n    }\n    if (this.isMaster) {\n      wtOverlays.afterDraw();\n    }\n    this.dataAccessObject.drawn = true;\n    return this;\n  }\n\n  /**\n   * @param {number} col The visual column index.\n   */\n  markIfOversizedColumnHeader(col) {\n    const sourceColIndex = this.columnFilter.renderedToSource(col);\n    let level = this.wtSettings.getSetting('columnHeaders').length;\n    const defaultRowHeight = this.wtSettings.getSetting('defaultRowHeight');\n    let previousColHeaderHeight;\n    let currentHeader;\n    let currentHeaderHeight;\n    const columnHeaderHeightSetting = this.wtSettings.getSetting('columnHeaderHeight') || [];\n    while (level) {\n      level -= 1;\n      previousColHeaderHeight = this.getColumnHeaderHeight(level);\n      currentHeader = this.getColumnHeader(sourceColIndex, level);\n      if (!currentHeader) {\n        /* eslint-disable no-continue */\n        continue;\n      }\n      currentHeaderHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"innerHeight\"])(currentHeader);\n      if (!previousColHeaderHeight && defaultRowHeight < currentHeaderHeight || previousColHeaderHeight < currentHeaderHeight) {\n        this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = currentHeaderHeight;\n      }\n      if (Array.isArray(columnHeaderHeightSetting)) {\n        if (columnHeaderHeightSetting[level] !== null && columnHeaderHeightSetting[level] !== undefined) {\n          this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level];\n        }\n      } else if (!isNaN(columnHeaderHeightSetting)) {\n        this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting;\n      }\n      if (this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] < (columnHeaderHeightSetting[level] || columnHeaderHeightSetting)) {\n        this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level] || columnHeaderHeightSetting; // eslint-disable-line max-len\n      }\n    }\n  }\n\n  /**\n   *\n   */\n  adjustColumnHeaderHeights() {\n    const {\n      wtSettings\n    } = this;\n    const children = this.THEAD.childNodes;\n    const oversizedColumnHeaders = this.dataAccessObject.wtViewport.oversizedColumnHeaders;\n    const columnHeaders = wtSettings.getSetting('columnHeaders');\n    for (let i = 0, len = columnHeaders.length; i < len; i++) {\n      if (oversizedColumnHeaders[i]) {\n        if (!children[i] || children[i].childNodes.length === 0) {\n          return;\n        }\n        children[i].childNodes[0].style.height = `${oversizedColumnHeaders[i]}px`;\n      }\n    }\n  }\n\n  /**\n   * Resets cache of row heights. The cache should be cached for each render cycle in a case\n   * when new cell values have content which increases/decreases cell height.\n   */\n  resetOversizedRows() {\n    const {\n      wtSettings\n    } = this;\n    const {\n      wtViewport\n    } = this.dataAccessObject;\n    if (!this.isMaster && !this.is(_overlay_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CLONE_BOTTOM\"])) {\n      return;\n    }\n    if (!wtSettings.getSetting('externalRowCalculator')) {\n      const rowsToRender = this.getRenderedRowsCount();\n\n      // Reset the oversized row cache for rendered rows\n      for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {\n        const sourceRow = this.rowFilter.renderedToSource(visibleRowIndex);\n        if (wtViewport.oversizedRows && wtViewport.oversizedRows[sourceRow]) {\n          wtViewport.oversizedRows[sourceRow] = undefined;\n        }\n      }\n    }\n  }\n\n  /**\n   * Get cell element at coords.\n   * Negative coords.row or coords.col are used to retrieve header cells. If there are multiple header levels, the\n   * negative value corresponds to the distance from the working area. For example, when there are 3 levels of column\n   * headers, coords.col=-1 corresponds to the most inner header element, while coords.col=-3 corresponds to the\n   * outmost header element.\n   *\n   * In case an element for the coords is not rendered, the method returns an error code.\n   * To produce the error code, the input parameters are validated in the order in which they\n   * are given. Thus, if both the row and the column coords are out of the rendered bounds,\n   * the method returns the error code for the row.\n   *\n   * @param {CellCoords} coords The cell coordinates.\n   * @returns {HTMLElement|number} HTMLElement on success or Number one of the exit codes on error:\n   *  -1 row before viewport\n   *  -2 row after viewport\n   *  -3 column before viewport\n   *  -4 column after viewport.\n   */\n  getCell(coords) {\n    let row = coords.row;\n    let column = coords.col;\n    const hookResult = this.wtSettings.getSetting('onModifyGetCellCoords', row, column);\n    if (hookResult && Array.isArray(hookResult)) {\n      [row, column] = hookResult;\n    }\n    if (this.isRowBeforeRenderedRows(row)) {\n      // row before rendered rows\n      return -1;\n    } else if (this.isRowAfterRenderedRows(row)) {\n      // row after rendered rows\n      return -2;\n    } else if (this.isColumnBeforeRenderedColumns(column)) {\n      // column before rendered columns\n      return -3;\n    } else if (this.isColumnAfterRenderedColumns(column)) {\n      // column after rendered columns\n      return -4;\n    }\n    const TR = this.getRow(row);\n    if (!TR && row >= 0) {\n      throw new Error('TR was expected to be rendered but is not');\n    }\n    const TD = TR.childNodes[this.columnFilter.sourceColumnToVisibleRowHeadedColumn(column)];\n    if (!TD && column >= 0) {\n      throw new Error('TD or TH was expected to be rendered but is not');\n    }\n    return TD;\n  }\n\n  /**\n   * Get the DOM element of the row with the provided index.\n   *\n   * @param {number} rowIndex Row index.\n   * @returns {HTMLTableRowElement|boolean} Return the row's DOM element or `false` if the row with the provided\n   * index doesn't exist.\n   */\n  getRow(rowIndex) {\n    let renderedRowIndex = null;\n    let parentElement = null;\n    if (rowIndex < 0) {\n      var _this$rowFilter;\n      renderedRowIndex = (_this$rowFilter = this.rowFilter) === null || _this$rowFilter === void 0 ? void 0 : _this$rowFilter.sourceRowToVisibleColHeadedRow(rowIndex);\n      parentElement = this.THEAD;\n    } else {\n      var _this$rowFilter2;\n      renderedRowIndex = (_this$rowFilter2 = this.rowFilter) === null || _this$rowFilter2 === void 0 ? void 0 : _this$rowFilter2.sourceToRendered(rowIndex);\n      parentElement = this.TBODY;\n    }\n    if (renderedRowIndex !== undefined && parentElement !== undefined) {\n      if (parentElement.childNodes.length < renderedRowIndex + 1) {\n        return false;\n      } else {\n        return parentElement.childNodes[renderedRowIndex];\n      }\n    } else {\n      return false;\n    }\n  }\n\n  /**\n   * GetColumnHeader.\n   *\n   * @param {number} col Column index.\n   * @param {number} [level=0] Header level (0 = most distant to the table).\n   * @returns {object} HTMLElement on success or undefined on error.\n   */\n  getColumnHeader(col) {\n    let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    const TR = this.THEAD.childNodes[level];\n    return TR === null || TR === void 0 ? void 0 : TR.childNodes[this.columnFilter.sourceColumnToVisibleRowHeadedColumn(col)];\n  }\n\n  /**\n   * Gets all columns headers (TH elements) from the table.\n   *\n   * @param {number} column A source column index.\n   * @returns {HTMLTableCellElement[]}\n   */\n  getColumnHeaders(column) {\n    const THs = [];\n    const visibleColumn = this.columnFilter.sourceColumnToVisibleRowHeadedColumn(column);\n    this.THEAD.childNodes.forEach(TR => {\n      const TH = TR.childNodes[visibleColumn];\n      if (TH) {\n        THs.push(TH);\n      }\n    });\n    return THs;\n  }\n\n  /**\n   * GetRowHeader.\n   *\n   * @param {number} row Row index.\n   * @param {number} [level=0] Header level (0 = most distant to the table).\n   * @returns {HTMLElement} HTMLElement on success or Number one of the exit codes on error: `null table doesn't have\n   *   row headers`.\n   */\n  getRowHeader(row) {\n    let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    const rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;\n    if (level >= rowHeadersCount) {\n      return;\n    }\n    const renderedRow = this.rowFilter.sourceToRendered(row);\n    const visibleRow = renderedRow < 0 ? this.rowFilter.sourceRowToVisibleColHeadedRow(row) : renderedRow;\n    const parentElement = renderedRow < 0 ? this.THEAD : this.TBODY;\n    const TR = parentElement.childNodes[visibleRow];\n    return TR === null || TR === void 0 ? void 0 : TR.childNodes[level];\n  }\n\n  /**\n   * Gets all rows headers (TH elements) from the table.\n   *\n   * @param {number} row A source row index.\n   * @returns {HTMLTableCellElement[]}\n   */\n  getRowHeaders(row) {\n    const THs = [];\n    const rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;\n    for (let renderedRowIndex = 0; renderedRowIndex < rowHeadersCount; renderedRowIndex++) {\n      const TR = this.TBODY.childNodes[this.rowFilter.sourceToRendered(row)];\n      const TH = TR === null || TR === void 0 ? void 0 : TR.childNodes[renderedRowIndex];\n      if (TH) {\n        THs.push(TH);\n      }\n    }\n    return THs;\n  }\n\n  /**\n   * Returns cell coords object for a given TD (or a child element of a TD element).\n   *\n   * @param {HTMLTableCellElement} TD A cell DOM element (or a child of one).\n   * @returns {CellCoords|null} The coordinates of the provided TD element (or the closest TD element) or null, if the\n   *   provided element is not applicable.\n   */\n  getCoords(TD) {\n    let cellElement = TD;\n    if (cellElement.nodeName !== 'TD' && cellElement.nodeName !== 'TH') {\n      cellElement = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"closest\"])(cellElement, ['TD', 'TH']);\n    }\n    if (cellElement === null) {\n      return null;\n    }\n    const TR = cellElement.parentNode;\n    const CONTAINER = TR.parentNode;\n    let row = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"index\"])(TR);\n    let col = cellElement.cellIndex;\n    if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"overlayContainsElement\"])(_overlay_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CLONE_TOP_INLINE_START_CORNER\"], cellElement, this.wtRootElement) || Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"overlayContainsElement\"])(_overlay_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CLONE_TOP\"], cellElement, this.wtRootElement)) {\n      if (CONTAINER.nodeName === 'THEAD') {\n        row -= CONTAINER.childNodes.length;\n      }\n    } else if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"overlayContainsElement\"])(_overlay_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CLONE_BOTTOM_INLINE_START_CORNER\"], cellElement, this.wtRootElement) || Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"overlayContainsElement\"])(_overlay_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CLONE_BOTTOM\"], cellElement, this.wtRootElement)) {\n      const totalRows = this.wtSettings.getSetting('totalRows');\n      row = totalRows - CONTAINER.childNodes.length + row;\n    } else if (CONTAINER === this.THEAD) {\n      row = this.rowFilter.visibleColHeadedRowToSourceRow(row);\n    } else {\n      row = this.rowFilter.renderedToSource(row);\n    }\n    if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"overlayContainsElement\"])(_overlay_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CLONE_TOP_INLINE_START_CORNER\"], cellElement, this.wtRootElement) || Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"overlayContainsElement\"])(_overlay_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CLONE_INLINE_START\"], cellElement, this.wtRootElement) || Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"overlayContainsElement\"])(_overlay_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CLONE_BOTTOM_INLINE_START_CORNER\"], cellElement, this.wtRootElement)) {\n      col = this.columnFilter.offsettedTH(col);\n    } else {\n      col = this.columnFilter.visibleRowHeadedColumnToSourceColumn(col);\n    }\n    return this.wot.createCellCoords(row, col);\n  }\n\n  /**\n   * Check if any of the rendered rows is higher than expected, and if so, cache them.\n   */\n  markOversizedRows() {\n    if (this.wtSettings.getSetting('externalRowCalculator')) {\n      return;\n    }\n    let rowCount = this.TBODY.childNodes.length;\n    const expectedTableHeight = rowCount * this.wtSettings.getSetting('defaultRowHeight');\n    const actualTableHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"innerHeight\"])(this.TBODY) - 1;\n    let previousRowHeight;\n    let rowInnerHeight;\n    let sourceRowIndex;\n    let currentTr;\n    let rowHeader;\n    if (expectedTableHeight === actualTableHeight && !this.wtSettings.getSetting('fixedRowsBottom')) {\n      // If the actual table height equals rowCount * default single row height, no row is oversized -> no need to iterate over them\n      return;\n    }\n    while (rowCount) {\n      rowCount -= 1;\n      sourceRowIndex = this.rowFilter.renderedToSource(rowCount);\n      previousRowHeight = this.getRowHeight(sourceRowIndex);\n      currentTr = this.getTrForRow(sourceRowIndex);\n      rowHeader = currentTr.querySelector('th');\n      if (rowHeader) {\n        rowInnerHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"innerHeight\"])(rowHeader);\n      } else {\n        rowInnerHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"innerHeight\"])(currentTr) - 1;\n      }\n      if (!previousRowHeight && this.wtSettings.getSetting('defaultRowHeight') < rowInnerHeight || previousRowHeight < rowInnerHeight) {\n        rowInnerHeight += 1;\n        this.dataAccessObject.wtViewport.oversizedRows[sourceRowIndex] = rowInnerHeight;\n      }\n    }\n  }\n\n  /**\n   * @param {number} row The visual row index.\n   * @returns {HTMLTableElement}\n   */\n  getTrForRow(row) {\n    return this.TBODY.childNodes[this.rowFilter.sourceToRendered(row)];\n  }\n\n  /**\n   * Checks if the column index (negative value from -1 to N) is rendered.\n   *\n   * @param {number} column The column index (negative value from -1 to N).\n   * @returns {boolean}\n   */\n  isColumnHeaderRendered(column) {\n    if (column >= 0) {\n      return false;\n    }\n    const rowHeaders = this.wtSettings.getSetting('rowHeaders');\n    const rowHeadersCount = rowHeaders.length;\n    return Math.abs(column) <= rowHeadersCount;\n  }\n\n  /**\n   * Checks if the row index (negative value from -1 to N) is rendered.\n   *\n   * @param {number} row The row index (negative value from -1 to N).\n   * @returns {boolean}\n   */\n  isRowHeaderRendered(row) {\n    if (row >= 0) {\n      return false;\n    }\n    const columnHeaders = this.wtSettings.getSetting('columnHeaders');\n    const columnHeadersCount = columnHeaders.length;\n    return Math.abs(row) <= columnHeadersCount;\n  }\n\n  /* eslint-disable jsdoc/require-description-complete-sentence */\n  /**\n   * Check if the given row index is lower than the index of the first row that\n   * is currently rendered and return TRUE in that case, or FALSE otherwise.\n   *\n   * Negative row index is used to check the columns' headers.\n   *\n   *  Headers\n   *           +--------------+                                     │\n   *       -3  │    │    │    │                                     │\n   *           +--------------+                                     │\n   *       -2  │    │    │    │                                     │ TRUE\n   *           +--------------+                                     │\n   *       -1  │    │    │    │                                     │\n   *  Cells  +==================+                                   │\n   *        0  ┇    ┇    ┇    ┇ <--- For fixedRowsTop: 1            │\n   *           +--------------+      the master overlay do       ---+ first rendered row (index 1)\n   *        1  │ A2 │ B2 │ C2 │      not render the first row.      │\n   *           +--------------+                                     │ FALSE\n   *        2  │ A3 │ B3 │ C3 │                                     │\n   *           +--------------+                                  ---+ last rendered row\n   *                                                                │\n   *                                                                │ FALSE\n   *\n   * @param {number} row The visual row index.\n   * @memberof Table#\n   * @function isRowBeforeRenderedRows\n   * @returns {boolean}\n   */\n  /* eslint-enable jsdoc/require-description-complete-sentence */\n  isRowBeforeRenderedRows(row) {\n    const first = this.getFirstRenderedRow();\n\n    // Check the headers only in case when the first rendered row is -1 or 0.\n    // This is an indication that the overlay is placed on the most top position.\n    if (row < 0 && first <= 0) {\n      return !this.isRowHeaderRendered(row);\n    }\n    return row < first;\n  }\n\n  /* eslint-disable jsdoc/require-description-complete-sentence */\n  /**\n   * Check if the given column index is greater than the index of the last column that\n   * is currently rendered and return TRUE in that case, or FALSE otherwise.\n   *\n   * The negative row index is used to check the columns' headers. However,\n   * keep in mind that for negative indexes, the method always returns FALSE as\n   * it is not possible to render headers partially. The \"after\" index can not be\n   * lower than -1.\n   *\n   *  Headers\n   *           +--------------+                                     │\n   *       -3  │    │    │    │                                     │\n   *           +--------------+                                     │\n   *       -2  │    │    │    │                                     │ FALSE\n   *           +--------------+                                     │\n   *       -1  │    │    │    │                                     │\n   *  Cells  +==================+                                   │\n   *        0  ┇    ┇    ┇    ┇ <--- For fixedRowsTop: 1            │\n   *           +--------------+      the master overlay do       ---+ first rendered row (index 1)\n   *        1  │ A2 │ B2 │ C2 │      not render the first rows      │\n   *           +--------------+                                     │ FALSE\n   *        2  │ A3 │ B3 │ C3 │                                     │\n   *           +--------------+                                  ---+ last rendered row\n   *                                                                │\n   *                                                                │ TRUE\n   *\n   * @param {number} row The visual row index.\n   * @memberof Table#\n   * @function isRowAfterRenderedRows\n   * @returns {boolean}\n   */\n  /* eslint-enable jsdoc/require-description-complete-sentence */\n  isRowAfterRenderedRows(row) {\n    return row > this.getLastRenderedRow();\n  }\n\n  /* eslint-disable jsdoc/require-description-complete-sentence */\n  /**\n   * Check if the given column index is lower than the index of the first column that\n   * is currently rendered and return TRUE in that case, or FALSE otherwise.\n   *\n   * Negative column index is used to check the rows' headers.\n   *\n   *                            For fixedColumnsStart: 1 the master overlay\n   *                            do not render this first columns.\n   *  Headers    -3   -2   -1    |\n   *           +----+----+----║┄ ┄ +------+------+\n   *           │    │    │    ║    │  B1  │  C1  │\n   *           +--------------║┄ ┄ --------------│\n   *           │    │    │    ║    │  B2  │  C2  │\n   *           +--------------║┄ ┄ --------------│\n   *           │    │    │    ║    │  B3  │  C3  │\n   *           +----+----+----║┄ ┄ +------+------+\n   *                               ╷             ╷\n   *      -------------------------+-------------+---------------->\n   *          TRUE             first    FALSE   last         FALSE\n   *                           rendered         rendered\n   *                           column           column\n   *\n   * @param {number} column The visual column index.\n   * @memberof Table#\n   * @function isColumnBeforeRenderedColumns\n   * @returns {boolean}\n   */\n  /* eslint-enable jsdoc/require-description-complete-sentence */\n  isColumnBeforeRenderedColumns(column) {\n    const first = this.getFirstRenderedColumn();\n\n    // Check the headers only in case when the first rendered column is -1 or 0.\n    // This is an indication that the overlay is placed on the most left position.\n    if (column < 0 && first <= 0) {\n      return !this.isColumnHeaderRendered(column);\n    }\n    return column < first;\n  }\n\n  /* eslint-disable jsdoc/require-description-complete-sentence */\n  /**\n   * Check if the given column index is greater than the index of the last column that\n   * is currently rendered and return TRUE in that case, or FALSE otherwise.\n   *\n   * The negative column index is used to check the rows' headers. However,\n   * keep in mind that for negative indexes, the method always returns FALSE as\n   * it is not possible to render headers partially. The \"after\" index can not be\n   * lower than -1.\n   *\n   *                            For fixedColumnsStart: 1 the master overlay\n   *                            do not render this first columns.\n   *  Headers    -3   -2   -1    |\n   *           +----+----+----║┄ ┄ +------+------+\n   *           │    │    │    ║    │  B1  │  C1  │\n   *           +--------------║┄ ┄ --------------│\n   *           │    │    │    ║    │  B2  │  C2  │\n   *           +--------------║┄ ┄ --------------│\n   *           │    │    │    ║    │  B3  │  C3  │\n   *           +----+----+----║┄ ┄ +------+------+\n   *                               ╷             ╷\n   *      -------------------------+-------------+---------------->\n   *          FALSE             first    FALSE   last         TRUE\n   *                           rendered         rendered\n   *                           column           column\n   *\n   * @param {number} column The visual column index.\n   * @memberof Table#\n   * @function isColumnAfterRenderedColumns\n   * @returns {boolean}\n   */\n  /* eslint-enable jsdoc/require-description-complete-sentence */\n  isColumnAfterRenderedColumns(column) {\n    return this.columnFilter && column > this.getLastRenderedColumn();\n  }\n  isColumnAfterViewport(column) {\n    return this.columnFilter && column > this.getLastVisibleColumn();\n  }\n  isRowAfterViewport(row) {\n    return this.rowFilter && row > this.getLastVisibleRow();\n  }\n  isColumnBeforeViewport(column) {\n    return this.columnFilter && this.columnFilter.sourceToRendered(column) < 0 && column >= 0;\n  }\n  isLastRowFullyVisible() {\n    return this.getLastVisibleRow() === this.getLastRenderedRow();\n  }\n  isLastColumnFullyVisible() {\n    return this.getLastVisibleColumn() === this.getLastRenderedColumn();\n  }\n  allRowsInViewport() {\n    return this.wtSettings.getSetting('totalRows') === this.getVisibleRowsCount();\n  }\n  allColumnsInViewport() {\n    return this.wtSettings.getSetting('totalColumns') === this.getVisibleColumnsCount();\n  }\n\n  /**\n   * Checks if any of the row's cells content exceeds its initial height, and if so, returns the oversized height.\n   *\n   * @param {number} sourceRow The physical row index.\n   * @returns {number}\n   */\n  getRowHeight(sourceRow) {\n    return this.rowUtils.getHeight(sourceRow);\n  }\n\n  /**\n   * @param {number} level The column level.\n   * @returns {number}\n   */\n  getColumnHeaderHeight(level) {\n    return this.columnUtils.getHeaderHeight(level);\n  }\n\n  /**\n   * @param {number} sourceColumn The physical column index.\n   * @returns {number}\n   */\n  getColumnWidth(sourceColumn) {\n    return this.columnUtils.getWidth(sourceColumn);\n  }\n\n  /**\n   * @param {number} sourceColumn The physical column index.\n   * @returns {number}\n   */\n  getStretchedColumnWidth(sourceColumn) {\n    return this.columnUtils.getStretchedColumnWidth(sourceColumn);\n  }\n\n  /**\n   * Checks if the table has defined size. It returns `true` when the table has width and height\n   * set bigger than `0px`.\n   *\n   * @returns {boolean}\n   */\n  hasDefinedSize() {\n    return this.hasTableHeight && this.hasTableWidth;\n  }\n\n  /**\n   * Gets table's width. The returned width is the width of the rendered cells that fit in the\n   * current viewport. The value may change depends on the viewport position (scroll position).\n   *\n   * @returns {number}\n   */\n  getWidth() {\n    return Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"outerWidth\"])(this.TABLE);\n  }\n\n  /**\n   * Gets table's height. The returned height is the height of the rendered cells that fit in the\n   * current viewport. The value may change depends on the viewport position (scroll position).\n   *\n   * @returns {number}\n   */\n  getHeight() {\n    return Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"outerHeight\"])(this.TABLE);\n  }\n\n  /**\n   * Gets table's total width. The returned width is the width of all rendered cells (including headers)\n   * that can be displayed in the table.\n   *\n   * @returns {number}\n   */\n  getTotalWidth() {\n    const width = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"outerWidth\"])(this.hider);\n\n    // when the overlay's table does not have any cells the hider returns 0, get then width from the table element\n    return width !== 0 ? width : this.getWidth();\n  }\n\n  /**\n   * Gets table's total height. The returned height is the height of all rendered cells (including headers)\n   * that can be displayed in the table.\n   *\n   * @returns {number}\n   */\n  getTotalHeight() {\n    const height = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"outerHeight\"])(this.hider);\n\n    // when the overlay's table does not have any cells the hider returns 0, get then height from the table element\n    return height !== 0 ? height : this.getHeight();\n  }\n\n  /**\n   * Checks if the table is visible. It returns `true` when the holder element (or its parents)\n   * has CSS 'display' property different than 'none'.\n   *\n   * @returns {boolean}\n   */\n  isVisible() {\n    return Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isVisible\"])(this.TABLE);\n  }\n\n  /**\n   * Modify row header widths provided by user in class contructor.\n   *\n   * @private\n   * @param {Function} rowHeaderWidthFactory The function which can provide default width values for rows..\n   * @returns {number}\n   */\n  _modifyRowHeaderWidth(rowHeaderWidthFactory) {\n    let widths = Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isFunction\"])(rowHeaderWidthFactory) ? rowHeaderWidthFactory() : null;\n    if (Array.isArray(widths)) {\n      widths = [...widths];\n      widths[widths.length - 1] = this._correctRowHeaderWidth(widths[widths.length - 1]);\n    } else {\n      widths = this._correctRowHeaderWidth(widths);\n    }\n    return widths;\n  }\n\n  /**\n   * Correct row header width if necessary.\n   *\n   * @private\n   * @param {number} width The width to process.\n   * @returns {number}\n   */\n  _correctRowHeaderWidth(width) {\n    let rowHeaderWidth = width;\n    if (typeof width !== 'number') {\n      rowHeaderWidth = this.wtSettings.getSetting('defaultColumnWidth');\n    }\n    if (this.correctHeaderWidth) {\n      rowHeaderWidth += 1;\n    }\n    return rowHeaderWidth;\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (Table);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/table.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/table/bottom.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/table/bottom.mjs ***!
  \*****************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _table_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../table.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table.mjs\");\n/* harmony import */ var _mixin_stickyRowsBottom_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixin/stickyRowsBottom.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs\");\n/* harmony import */ var _mixin_calculatedColumns_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mixin/calculatedColumns.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../overlay/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/index.mjs\");\n\n\n\n\n\n/**\n * Subclass of `Table` that provides the helper methods relevant to BottomOverlay, implemented through mixins.\n *\n * @mixes stickyRowsBottom\n * @mixes calculatedColumns\n */\nclass BottomOverlayTable extends _table_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  /**\n   * @param {TableDao} dataAccessObject The data access object.\n   * @param {FacadeGetter} facadeGetter Function which return proper facade.\n   * @param {DomBindings} domBindings Bindings into DOM.\n   * @param {Settings} wtSettings The Walkontable settings.\n   */\n  constructor(dataAccessObject, facadeGetter, domBindings, wtSettings) {\n    super(dataAccessObject, facadeGetter, domBindings, wtSettings, _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CLONE_BOTTOM\"]);\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"mixin\"])(BottomOverlayTable, _mixin_stickyRowsBottom_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"mixin\"])(BottomOverlayTable, _mixin_calculatedColumns_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (BottomOverlayTable);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/table/bottom.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs":
/*!**********************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs ***!
  \**********************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _table_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../table.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table.mjs\");\n/* harmony import */ var _mixin_stickyRowsBottom_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixin/stickyRowsBottom.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs\");\n/* harmony import */ var _mixin_stickyColumnsStart_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mixin/stickyColumnsStart.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../overlay/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/index.mjs\");\n\n\n\n\n\n/**\n * Subclass of `Table` that provides the helper methods relevant to bottomInlineStartCornerOverlay\n * (in RTL mode the overlay sits on the right of the screen), implemented through mixins.\n *\n * @mixes stickyRowsBottom\n * @mixes stickyColumnsStart\n */\nclass BottomInlineStartCornerOverlayTable extends _table_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  /**\n   * @param {TableDao} dataAccessObject The data access object.\n   * @param {FacadeGetter} facadeGetter Function which return proper facade.\n   * @param {DomBindings} domBindings Bindings into DOM.\n   * @param {Settings} wtSettings The Walkontable settings.\n   */\n  constructor(dataAccessObject, facadeGetter, domBindings, wtSettings) {\n    super(dataAccessObject, facadeGetter, domBindings, wtSettings, _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CLONE_BOTTOM_INLINE_START_CORNER\"]);\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"mixin\"])(BottomInlineStartCornerOverlayTable, _mixin_stickyRowsBottom_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"mixin\"])(BottomInlineStartCornerOverlayTable, _mixin_stickyColumnsStart_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (BottomInlineStartCornerOverlayTable);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/table/inlineStart.mjs":
/*!**********************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/table/inlineStart.mjs ***!
  \**********************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _table_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../table.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table.mjs\");\n/* harmony import */ var _mixin_calculatedRows_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixin/calculatedRows.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs\");\n/* harmony import */ var _mixin_stickyColumnsStart_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mixin/stickyColumnsStart.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../overlay/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/index.mjs\");\n\n\n\n\n\n/**\n * Subclass of `Table` that provides the helper methods relevant to InlineStartOverlayTable, implemented through mixins.\n */\nclass InlineStartOverlayTable extends _table_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  /**\n   * @param {TableDao} dataAccessObject The data access object.\n   * @param {FacadeGetter} facadeGetter Function which return proper facade.\n   * @param {DomBindings} domBindings Bindings into DOM.\n   * @param {Settings} wtSettings The Walkontable settings.\n   */\n  constructor(dataAccessObject, facadeGetter, domBindings, wtSettings) {\n    super(dataAccessObject, facadeGetter, domBindings, wtSettings, _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CLONE_INLINE_START\"]);\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"mixin\"])(InlineStartOverlayTable, _mixin_calculatedRows_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"mixin\"])(InlineStartOverlayTable, _mixin_stickyColumnsStart_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (InlineStartOverlayTable);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/table/inlineStart.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/table/master.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/table/master.mjs ***!
  \*****************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _table_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../table.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table.mjs\");\n/* harmony import */ var _mixin_calculatedRows_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mixin/calculatedRows.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs\");\n/* harmony import */ var _mixin_calculatedColumns_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mixin/calculatedColumns.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n\n\n\n\n\n/**\n * Subclass of `Table` that provides the helper methods relevant to the master table (not overlays), implemented through mixins.\n *\n * @mixes calculatedRows\n * @mixes calculatedColumns\n */\nclass MasterTable extends _table_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n  /**\n   * @param {TableDao} dataAccessObject The data access object.\n   * @param {FacadeGetter} facadeGetter Function which return proper facade.\n   * @param {DomBindings} domBindings Bindings into DOM.\n   * @param {Settings} wtSettings The Walkontable settings.\n   */\n  constructor(dataAccessObject, facadeGetter, domBindings, wtSettings) {\n    super(dataAccessObject, facadeGetter, domBindings, wtSettings, 'master');\n  }\n  alignOverlaysWithTrimmingContainer() {\n    const trimmingElement = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getTrimmingContainer\"])(this.wtRootElement);\n    const {\n      rootWindow\n    } = this.domBindings;\n    if (trimmingElement === rootWindow) {\n      const preventOverflow = this.wtSettings.getSetting('preventOverflow');\n      if (!preventOverflow) {\n        this.holder.style.overflow = 'visible';\n        this.wtRootElement.style.overflow = 'visible';\n      }\n    } else {\n      const trimmingElementParent = trimmingElement.parentElement;\n      const trimmingHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getStyle\"])(trimmingElement, 'height', rootWindow);\n      const trimmingOverflow = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getStyle\"])(trimmingElement, 'overflow', rootWindow);\n      const holderStyle = this.holder.style;\n      const {\n        scrollWidth,\n        scrollHeight\n      } = trimmingElement;\n      let width = trimmingElement.offsetWidth;\n      let height = trimmingElement.offsetHeight;\n      const overflow = ['auto', 'hidden', 'scroll'];\n      if (trimmingElementParent && overflow.includes(trimmingOverflow)) {\n        const cloneNode = trimmingElement.cloneNode(false);\n\n        // Before calculating the height of the trimming element, set overflow: auto to hide scrollbars.\n        // An issue occurred on Firefox, where an empty element with overflow: scroll returns an element height higher than 0px\n        // despite an empty content within.\n        cloneNode.style.overflow = 'auto';\n        // Issue #9545 shows problem with calculating height for HOT on Firefox while placing instance in some\n        // flex containers and setting overflow for some `div` section.\n        cloneNode.style.position = 'absolute';\n        if (trimmingElement.nextElementSibling) {\n          trimmingElementParent.insertBefore(cloneNode, trimmingElement.nextElementSibling);\n        } else {\n          trimmingElementParent.appendChild(cloneNode);\n        }\n        const cloneHeight = parseInt(Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getComputedStyle\"])(cloneNode, rootWindow).height, 10);\n        trimmingElementParent.removeChild(cloneNode);\n        if (cloneHeight === 0) {\n          height = 0;\n        }\n      }\n      height = Math.min(height, scrollHeight);\n      holderStyle.height = trimmingHeight === 'auto' ? 'auto' : `${height}px`;\n      width = Math.min(width, scrollWidth);\n      holderStyle.width = `${width}px`;\n      holderStyle.overflow = '';\n      this.hasTableHeight = holderStyle.height === 'auto' ? true : height > 0;\n      this.hasTableWidth = width > 0;\n    }\n    this.isTableVisible = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isVisible\"])(this.TABLE);\n  }\n  markOversizedColumnHeaders() {\n    const {\n      wtSettings\n    } = this;\n    const {\n      wtViewport\n    } = this.dataAccessObject;\n    const overlayName = 'master';\n    const columnHeaders = wtSettings.getSetting('columnHeaders');\n    const columnHeadersCount = columnHeaders.length;\n    if (columnHeadersCount && !wtViewport.hasOversizedColumnHeadersMarked[overlayName]) {\n      const rowHeaders = wtSettings.getSetting('rowHeaders');\n      const rowHeaderCount = rowHeaders.length;\n      const columnCount = this.getRenderedColumnsCount();\n      for (let i = 0; i < columnHeadersCount; i++) {\n        for (let renderedColumnIndex = -1 * rowHeaderCount; renderedColumnIndex < columnCount; renderedColumnIndex++) {\n          // eslint-disable-line max-len\n          this.markIfOversizedColumnHeader(renderedColumnIndex);\n        }\n      }\n      wtViewport.hasOversizedColumnHeadersMarked[overlayName] = true;\n    }\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"mixin\"])(MasterTable, _mixin_calculatedRows_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"mixin\"])(MasterTable, _mixin_calculatedColumns_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (MasterTable);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/table/master.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs":
/*!**********************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs ***!
  \**********************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n\nconst MIXIN_NAME = 'calculatedColumns';\n\n/**\n * Mixin for the subclasses of `Table` with implementations of\n * helper methods that are related to columns.\n * This mixin is meant to be applied in the subclasses of `Table`\n * that use virtual rendering in the horizontal axis.\n *\n * @type {object}\n */\nconst calculatedColumns = {\n  /**\n   * Get the source index of the first rendered column. If no columns are rendered, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getFirstRenderedColumn() {\n    const startColumn = this.dataAccessObject.startColumnRendered;\n    if (startColumn === null) {\n      return -1;\n    }\n    return startColumn;\n  },\n  /**\n   * Get the source index of the first column fully visible in the viewport. If no columns are fully visible, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getFirstVisibleColumn() {\n    const startColumn = this.dataAccessObject.startColumnVisible;\n    if (startColumn === null) {\n      return -1;\n    }\n    return startColumn;\n  },\n  /**\n   * Get the source index of the first column partially visible in the viewport. If no columns are partially visible, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getFirstPartiallyVisibleColumn() {\n    const startColumn = this.dataAccessObject.startColumnPartiallyVisible;\n    if (startColumn === null) {\n      return -1;\n    }\n    return startColumn;\n  },\n  /**\n   * Get the source index of the last rendered column. If no columns are rendered, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getLastRenderedColumn() {\n    const endColumn = this.dataAccessObject.endColumnRendered;\n    if (endColumn === null) {\n      return -1;\n    }\n    return endColumn;\n  },\n  /**\n   * Get the source index of the last column fully visible in the viewport. If no columns are fully visible, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getLastVisibleColumn() {\n    const endColumn = this.dataAccessObject.endColumnVisible;\n    if (endColumn === null) {\n      return -1;\n    }\n    return endColumn;\n  },\n  /**\n   * Get the source index of the last column partially visible in the viewport. If no columns are partially visible, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getLastPartiallyVisibleColumn() {\n    const endColumn = this.dataAccessObject.endColumnPartiallyVisible;\n    if (endColumn === null) {\n      return -1;\n    }\n    return endColumn;\n  },\n  /**\n   * Get the number of rendered columns.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getRenderedColumnsCount() {\n    return this.dataAccessObject.countColumnsRendered;\n  },\n  /**\n   * Get the number of fully visible columns in the viewport.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getVisibleColumnsCount() {\n    return this.dataAccessObject.countColumnsVisible;\n  },\n  /**\n   * Get the number of rendered row headers.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getRowHeadersCount() {\n    return this.dataAccessObject.rowHeaders.length;\n  }\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"defineGetter\"])(calculatedColumns, 'MIXIN_NAME', MIXIN_NAME, {\n  writable: false,\n  enumerable: false\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (calculatedColumns);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs":
/*!*******************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs ***!
  \*******************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n\nconst MIXIN_NAME = 'calculatedRows';\n\n/**\n * Mixin for the subclasses of `Table` with implementations of\n * helper methods that are related to rows.\n * This mixin is meant to be applied in the subclasses of `Table`\n * that use virtual rendering in the vertical axis.\n *\n * @type {object}\n */\nconst calculatedRows = {\n  /**\n   * Get the source index of the first rendered row. If no rows are rendered, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getFirstRenderedRow() {\n    const startRow = this.dataAccessObject.startRowRendered;\n    if (startRow === null) {\n      return -1;\n    }\n    return startRow;\n  },\n  /**\n   * Get the source index of the first row fully visible in the viewport. If no rows are fully visible, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getFirstVisibleRow() {\n    const startRow = this.dataAccessObject.startRowVisible;\n    if (startRow === null) {\n      return -1;\n    }\n    return startRow;\n  },\n  /**\n   * Get the source index of the first row partially visible in the viewport. If no rows are partially visible, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getFirstPartiallyVisibleRow() {\n    const startRow = this.dataAccessObject.startRowPartiallyVisible;\n    if (startRow === null) {\n      return -1;\n    }\n    return startRow;\n  },\n  /**\n   * Get the source index of the last rendered row. If no rows are rendered, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getLastRenderedRow() {\n    const endRow = this.dataAccessObject.endRowRendered;\n    if (endRow === null) {\n      return -1;\n    }\n    return endRow;\n  },\n  /**\n   * Get the source index of the last row fully visible in the viewport. If no rows are fully visible, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getLastVisibleRow() {\n    const endRow = this.dataAccessObject.endRowVisible;\n    if (endRow === null) {\n      return -1;\n    }\n    return endRow;\n  },\n  /**\n   * Get the source index of the last row partially visible in the viewport. If no rows are partially visible, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getLastPartiallyVisibleRow() {\n    const endRow = this.dataAccessObject.endRowPartiallyVisible;\n    if (endRow === null) {\n      return -1;\n    }\n    return endRow;\n  },\n  /**\n   * Get the number of rendered rows.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getRenderedRowsCount() {\n    return this.dataAccessObject.countRowsRendered;\n  },\n  /**\n   * Get the number of fully visible rows in the viewport.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getVisibleRowsCount() {\n    return this.dataAccessObject.countRowsVisible;\n  },\n  /**\n   * Get the number of rendered column headers.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getColumnHeadersCount() {\n    return this.dataAccessObject.columnHeaders.length;\n  }\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"defineGetter\"])(calculatedRows, 'MIXIN_NAME', MIXIN_NAME, {\n  writable: false,\n  enumerable: false\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (calculatedRows);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs":
/*!***********************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs ***!
  \***********************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n\nconst MIXIN_NAME = 'stickyColumnsStart';\n\n/**\n * Mixin for the subclasses of `Table` with implementations of\n * helper methods that are related to columns.\n * This mixin is meant to be applied in the subclasses of `Table`\n * that use sticky rendering of the first columns in the horizontal axis.\n *\n * @type {object}\n */\nconst stickyColumnsStart = {\n  /**\n   * Get the source index of the first rendered column. If no columns are rendered, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getFirstRenderedColumn() {\n    const totalColumns = this.wtSettings.getSetting('totalColumns');\n    if (totalColumns === 0) {\n      return -1;\n    }\n    return 0;\n  },\n  /**\n   * Get the source index of the first column fully visible in the viewport. If no columns are fully visible, returns an error code: -1.\n   * Assumes that all rendered columns are fully visible.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getFirstVisibleColumn() {\n    return this.getFirstRenderedColumn();\n  },\n  /**\n   * Get the source index of the first column partially visible in the viewport. If no columns are partially visible, returns an error code: -1.\n   * Assumes that all rendered columns are fully visible.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getFirstPartiallyVisibleColumn() {\n    return this.getFirstRenderedColumn();\n  },\n  /**\n   * Get the source index of the last rendered column. If no columns are rendered, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getLastRenderedColumn() {\n    return this.getRenderedColumnsCount() - 1;\n  },\n  /**\n   * Get the source index of the last column fully visible in the viewport. If no columns are fully visible, returns an error code: -1.\n   * Assumes that all rendered columns are fully visible.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getLastVisibleColumn() {\n    return this.getLastRenderedColumn();\n  },\n  /**\n   * Get the source index of the last column partially visible in the viewport. If no columns are partially visible, returns an error code: -1.\n   * Assumes that all rendered columns are fully visible.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getLastPartiallyVisibleColumn() {\n    return this.getLastRenderedColumn();\n  },\n  /**\n   * Get the number of rendered columns.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getRenderedColumnsCount() {\n    const totalColumns = this.wtSettings.getSetting('totalColumns');\n    return Math.min(this.wtSettings.getSetting('fixedColumnsStart'), totalColumns);\n  },\n  /**\n   * Get the number of fully visible columns in the viewport.\n   * Assumes that all rendered columns are fully visible.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getVisibleColumnsCount() {\n    return this.getRenderedColumnsCount();\n  },\n  /**\n   * Get the number of rendered row headers.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getRowHeadersCount() {\n    return this.dataAccessObject.rowHeaders.length;\n  }\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"defineGetter\"])(stickyColumnsStart, 'MIXIN_NAME', MIXIN_NAME, {\n  writable: false,\n  enumerable: false\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (stickyColumnsStart);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs":
/*!*********************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs ***!
  \*********************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n\nconst MIXIN_NAME = 'stickyRowsBottom';\n\n/**\n * Mixin for the subclasses of `Table` with implementations of\n * helper methods that are related to rows.\n * This mixin is meant to be applied in the subclasses of `Table`\n * that use sticky rendering of the bottom rows in the vertical axis.\n *\n * @type {object}\n */\nconst stickyRowsBottom = {\n  /**\n   * Get the source index of the first rendered row. If no rows are rendered, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getFirstRenderedRow() {\n    const totalRows = this.wtSettings.getSetting('totalRows');\n    const fixedRowsBottom = this.wtSettings.getSetting('fixedRowsBottom');\n    const index = totalRows - fixedRowsBottom;\n    if (totalRows === 0 || fixedRowsBottom === 0) {\n      return -1;\n    }\n    if (index < 0) {\n      return 0;\n    }\n    return index;\n  },\n  /**\n   * Get the source index of the first row fully visible in the viewport. If no rows are fully visible, returns an error code: -1.\n   * Assumes that all rendered rows are fully visible.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getFirstVisibleRow() {\n    return this.getFirstRenderedRow();\n  },\n  /**\n   * Get the source index of the first row partially visible in the viewport. If no rows are partially visible, returns an error code: -1.\n   * Assumes that all rendered rows are fully visible.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getFirstPartiallyVisibleRow() {\n    return this.getFirstRenderedRow();\n  },\n  /**\n   * Get the source index of the last rendered row. If no rows are rendered, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getLastRenderedRow() {\n    return this.wtSettings.getSetting('totalRows') - 1;\n  },\n  /**\n   * Get the source index of the last row fully visible in the viewport. If no rows are fully visible, returns an error code: -1.\n   * Assumes that all rendered rows are fully visible.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getLastVisibleRow() {\n    return this.getLastRenderedRow();\n  },\n  /**\n   * Get the source index of the last row partially visible in the viewport. If no rows are partially visible, returns an error code: -1.\n   * Assumes that all rendered rows are fully visible.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getLastPartiallyVisibleRow() {\n    return this.getLastRenderedRow();\n  },\n  /**\n   * Get the number of rendered rows.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getRenderedRowsCount() {\n    const totalRows = this.wtSettings.getSetting('totalRows');\n    return Math.min(this.wtSettings.getSetting('fixedRowsBottom'), totalRows);\n  },\n  /**\n   * Get the number of fully visible rows in the viewport.\n   * Assumes that all rendered rows are fully visible.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getVisibleRowsCount() {\n    return this.getRenderedRowsCount();\n  },\n  /**\n   * Get the number of rendered column headers.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getColumnHeadersCount() {\n    return 0;\n  }\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"defineGetter\"])(stickyRowsBottom, 'MIXIN_NAME', MIXIN_NAME, {\n  writable: false,\n  enumerable: false\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (stickyRowsBottom);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs":
/*!******************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs ***!
  \******************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n\nconst MIXIN_NAME = 'stickyRowsTop';\n\n/**\n * Mixin for the subclasses of `Table` with implementations of\n * helper methods that are related to rows.\n * This mixin is meant to be applied in the subclasses of `Table`\n * that use sticky rendering of the top rows in the vertical axis.\n *\n * @type {object}\n */\nconst stickyRowsTop = {\n  /**\n   * Get the source index of the first rendered row. If no rows are rendered, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getFirstRenderedRow() {\n    const totalRows = this.wtSettings.getSetting('totalRows');\n    if (totalRows === 0) {\n      return -1;\n    }\n    return 0;\n  },\n  /**\n   * Get the source index of the first row fully visible in the viewport. If no rows are fully visible, returns an error code: -1.\n   * Assumes that all rendered rows are fully visible.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getFirstVisibleRow() {\n    return this.getFirstRenderedRow();\n  },\n  /**\n   * Get the source index of the first row partially visible in the viewport. If no rows are partially visible, returns an error code: -1.\n   * Assumes that all rendered rows are fully visible.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getFirstPartiallyVisibleRow() {\n    return this.getFirstRenderedRow();\n  },\n  /**\n   * Get the source index of the last rendered row. If no rows are rendered, returns an error code: -1.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getLastRenderedRow() {\n    return this.getRenderedRowsCount() - 1;\n  },\n  /**\n   * Get the source index of the last row fully visible in the viewport. If no rows are fully visible, returns an error code: -1.\n   * Assumes that all rendered rows are fully visible.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getLastVisibleRow() {\n    return this.getLastRenderedRow();\n  },\n  /**\n   * Get the source index of the last row partially visible in the viewport. If no rows are partially visible, returns an error code: -1.\n   * Assumes that all rendered rows are fully visible.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getLastPartiallyVisibleRow() {\n    return this.getLastRenderedRow();\n  },\n  /**\n   * Get the number of rendered rows.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getRenderedRowsCount() {\n    const totalRows = this.wtSettings.getSetting('totalRows');\n    return Math.min(this.wtSettings.getSetting('fixedRowsTop'), totalRows);\n  },\n  /**\n   * Get the number of fully visible rows in the viewport.\n   * Assumes that all rendered rows are fully visible.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getVisibleRowsCount() {\n    return this.getRenderedRowsCount();\n  },\n  /**\n   * Get the number of rendered column headers.\n   *\n   * @returns {number}\n   * @this Table\n   */\n  getColumnHeadersCount() {\n    return this.dataAccessObject.columnHeaders.length;\n  }\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"defineGetter\"])(stickyRowsTop, 'MIXIN_NAME', MIXIN_NAME, {\n  writable: false,\n  enumerable: false\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (stickyRowsTop);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/table/top.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/table/top.mjs ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _table_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../table.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table.mjs\");\n/* harmony import */ var _mixin_stickyRowsTop_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixin/stickyRowsTop.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs\");\n/* harmony import */ var _mixin_calculatedColumns_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mixin/calculatedColumns.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../overlay/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/index.mjs\");\n\n\n\n\n\n/**\n * Subclass of `Table` that provides the helper methods relevant to TopOverlay, implemented through mixins.\n *\n * @mixes stickyRowsTop\n * @mixes calculatedColumns\n */\nclass TopOverlayTable extends _table_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  /**\n   * @param {TableDao} dataAccessObject The data access object.\n   * @param {FacadeGetter} facadeGetter Function which return proper facade.\n   * @param {DomBindings} domBindings Bindings into DOM.\n   * @param {Settings} wtSettings The Walkontable settings.\n   */\n  constructor(dataAccessObject, facadeGetter, domBindings, wtSettings) {\n    super(dataAccessObject, facadeGetter, domBindings, wtSettings, _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CLONE_TOP\"]);\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"mixin\"])(TopOverlayTable, _mixin_stickyRowsTop_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"mixin\"])(TopOverlayTable, _mixin_calculatedColumns_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (TopOverlayTable);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/table/top.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/table/topInlineStartCorner.mjs":
/*!*******************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/table/topInlineStartCorner.mjs ***!
  \*******************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _table_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../table.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table.mjs\");\n/* harmony import */ var _mixin_stickyRowsTop_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixin/stickyRowsTop.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs\");\n/* harmony import */ var _mixin_stickyColumnsStart_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mixin/stickyColumnsStart.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../overlay/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/overlay/index.mjs\");\n\n\n\n\n\n/**\n * Subclass of `Table` that provides the helper methods relevant to topInlineStartCornerOverlay\n * (in RTL mode the overlay sits on the right of the screen), implemented through mixins.\n *\n * @mixes stickyRowsTop\n * @mixes stickyColumnsStart\n */\nclass TopInlineStartCornerOverlayTable extends _table_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  /**\n   * @param {TableDao} dataAccessObject The data access object.\n   * @param {FacadeGetter} facadeGetter Function which return proper facade.\n   * @param {DomBindings} domBindings Bindings into DOM.\n   * @param {Settings} wtSettings The Walkontable settings.\n   */\n  constructor(dataAccessObject, facadeGetter, domBindings, wtSettings) {\n    super(dataAccessObject, facadeGetter, domBindings, wtSettings, _overlay_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CLONE_TOP_INLINE_START_CORNER\"]);\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"mixin\"])(TopInlineStartCornerOverlayTable, _mixin_stickyRowsTop_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"mixin\"])(TopInlineStartCornerOverlayTable, _mixin_stickyColumnsStart_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (TopInlineStartCornerOverlayTable);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/table/topInlineStartCorner.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/utils/column.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/utils/column.mjs ***!
  \*****************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ColumnUtils; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _columnStretching_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./columnStretching.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/utils/columnStretching.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n/**\n * Column utils class contains all necessary information about sizes of the columns.\n *\n * @class {ColumnUtils}\n */\nclass ColumnUtils {\n  /**\n   * @param {TableDao} dataAccessObject The table Data Access Object.\n   * @param {Settings} wtSettings The walkontable settings.\n   */\n  constructor(dataAccessObject, wtSettings) {\n    /**\n     * @type {TableDao}\n     */\n    _defineProperty(this, \"dataAccessObject\", void 0);\n    /**\n     * @type {Settings}\n     */\n    _defineProperty(this, \"wtSettings\", void 0);\n    /**\n     * @type {Map<number, number>}\n     */\n    _defineProperty(this, \"headerWidths\", new Map());\n    /**\n     * @type {ColumnStretching}\n     */\n    _defineProperty(this, \"stretching\", void 0);\n    this.dataAccessObject = dataAccessObject;\n    this.wtSettings = wtSettings;\n    this.stretching = new _columnStretching_mjs__WEBPACK_IMPORTED_MODULE_2__[\"ColumnStretching\"]({\n      totalColumns: () => this.wtSettings.getSetting('totalColumns'),\n      stretchMode: () => this.wtSettings.getSetting('stretchH'),\n      stretchingColumnWidthFn: (stretchedWidth, column) => this.wtSettings.getSetting('onBeforeStretchingColumnWidth', stretchedWidth, column),\n      columnWidthFn: sourceCol => this.dataAccessObject.wtTable.getColumnWidth(sourceCol)\n    });\n  }\n\n  /**\n   * Returns column width based on passed source index.\n   *\n   * @param {number} sourceIndex Column source index.\n   * @returns {number}\n   */\n  getWidth(sourceIndex) {\n    const width = this.wtSettings.getSetting('columnWidth', sourceIndex) || this.wtSettings.getSetting('defaultColumnWidth');\n    return width;\n  }\n\n  /**\n   * Returns stretched column width based on passed source index.\n   *\n   * @param {number} sourceIndex Column source index.\n   * @returns {number}\n   */\n  getStretchedColumnWidth(sourceIndex) {\n    let width = this.getWidth(sourceIndex);\n    const stretchedWidth = this.stretching.getStretchedColumnWidth(sourceIndex, width);\n    if (stretchedWidth) {\n      width = stretchedWidth;\n    }\n    return width;\n  }\n\n  /**\n   * Returns column header height based on passed header level.\n   *\n   * @param {number} level Column header level.\n   * @returns {number}\n   */\n  getHeaderHeight(level) {\n    let height = this.wtSettings.getSetting('defaultRowHeight');\n    const oversizedHeight = this.dataAccessObject.wtViewport.oversizedColumnHeaders[level];\n    if (oversizedHeight !== undefined) {\n      height = height ? Math.max(height, oversizedHeight) : oversizedHeight;\n    }\n    return height;\n  }\n\n  /**\n   * Returns column header width based on passed source index.\n   *\n   * @param {number} sourceIndex Column source index.\n   * @returns {number}\n   */\n  getHeaderWidth(sourceIndex) {\n    return this.headerWidths.get(this.dataAccessObject.wtTable.columnFilter.sourceToRendered(sourceIndex));\n  }\n\n  /**\n   * Refreshes the stretching column width by recalculating the widths of the columns.\n   */\n  refreshStretching() {\n    const {\n      wtTable,\n      wtViewport,\n      cloneSource\n    } = this.dataAccessObject;\n    const mainHolder = cloneSource ? cloneSource.wtTable.holder : wtTable.holder;\n    const scrollbarCompensation = mainHolder.offsetHeight < mainHolder.scrollHeight ? Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getScrollbarWidth\"])() : 0;\n    this.stretching.refreshStretching(wtViewport.getViewportWidth() - scrollbarCompensation);\n  }\n\n  /**\n   * Calculates column header widths that can be retrieved from the cache.\n   */\n  calculateWidths() {\n    const {\n      wtSettings\n    } = this;\n    let rowHeaderWidthSetting = wtSettings.getSetting('rowHeaderWidth');\n    this.refreshStretching();\n    rowHeaderWidthSetting = wtSettings.getSetting('onModifyRowHeaderWidth', rowHeaderWidthSetting);\n    if (rowHeaderWidthSetting !== null && rowHeaderWidthSetting !== undefined) {\n      const rowHeadersCount = wtSettings.getSetting('rowHeaders').length;\n      const defaultColumnWidth = wtSettings.getSetting('defaultColumnWidth');\n      for (let visibleColumnIndex = 0; visibleColumnIndex < rowHeadersCount; visibleColumnIndex++) {\n        let width = Array.isArray(rowHeaderWidthSetting) ? rowHeaderWidthSetting[visibleColumnIndex] : rowHeaderWidthSetting;\n        width = width === null || width === undefined ? defaultColumnWidth : width;\n        this.headerWidths.set(visibleColumnIndex, width);\n      }\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/utils/column.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/utils/columnStretching.mjs":
/*!***************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/utils/columnStretching.mjs ***!
  \***************************************************************************************/
/*! exports provided: ColumnStretching */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ColumnStretching\", function() { return ColumnStretching; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../calculator/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/index.mjs\");\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n/**\n * @typedef {object} ColumnStretchingOptions\n * @property {number} totalColumns Total number of columns.\n * @property {Function} columnWidthFn Function that returns the width of the column at a given index (in px).\n * @property {'all' | 'last' | 'none'} stretchMode Stretch mode 'all', 'last' or 'none'.\n * @property {Function} stretchingColumnWidthFn Function that returns the new width of the stretched column.\n */\n/**\n * @class ColumnStretching\n */\nvar _totalTargetWidth = /*#__PURE__*/new WeakMap();\nvar _totalColumns = /*#__PURE__*/new WeakMap();\nvar _stretchingColumnWidthFn = /*#__PURE__*/new WeakMap();\nvar _columnWidthFn = /*#__PURE__*/new WeakMap();\nvar _stretchMode = /*#__PURE__*/new WeakMap();\nclass ColumnStretching {\n  /**\n   * @param {ColumnStretchingOptions} options Object with all options specified for column viewport calculation.\n   */\n  constructor(_ref) {\n    let {\n      totalColumns,\n      stretchMode,\n      stretchingColumnWidthFn,\n      columnWidthFn\n    } = _ref;\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"stretchAllRatio\", 0);\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"stretchLastWidth\", 0);\n    /**\n     * @type {number[]}\n     */\n    _defineProperty(this, \"stretchAllColumnsWidth\", []);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _totalTargetWidth, 0);\n    /**\n     * @type {boolean}\n     */\n    _defineProperty(this, \"needVerifyLastColumnWidth\", true);\n    /**\n     * The total number of columns.\n     *\n     * @type {function(): number}\n     */\n    _classPrivateFieldInitSpec(this, _totalColumns, () => 0);\n    /**\n     * Function that returns the width of the stretched column at a given index (in px).\n     *\n     * @type {function(): number}\n     */\n    _classPrivateFieldInitSpec(this, _stretchingColumnWidthFn, width => width);\n    /**\n     * Function that returns the width of the column at a given index (in px).\n     *\n     * @type {function(): number}\n     */\n    _classPrivateFieldInitSpec(this, _columnWidthFn, width => width);\n    /**\n     * Stretch mode.\n     *\n     * @type {function(): 'all' | 'last' | 'none'}\n     */\n    _classPrivateFieldInitSpec(this, _stretchMode, () => 'none');\n    _classPrivateFieldSet(_totalColumns, this, totalColumns);\n    _classPrivateFieldSet(_stretchMode, this, stretchMode);\n    _classPrivateFieldSet(_stretchingColumnWidthFn, this, stretchingColumnWidthFn !== null && stretchingColumnWidthFn !== void 0 ? stretchingColumnWidthFn : _classPrivateFieldGet(_stretchingColumnWidthFn, this));\n    _classPrivateFieldSet(_columnWidthFn, this, columnWidthFn !== null && columnWidthFn !== void 0 ? columnWidthFn : _classPrivateFieldGet(_columnWidthFn, this));\n  }\n\n  /**\n   * Recalculate columns stretching.\n   *\n   * @param {number} totalWidth The total width of the table.\n   */\n  refreshStretching(totalWidth) {\n    if (_classPrivateFieldGet(_stretchMode, this).call(this) === 'none') {\n      return;\n    }\n    this.stretchAllRatio = 0;\n    this.stretchAllColumnsWidth = [];\n    this.needVerifyLastColumnWidth = true;\n    this.stretchLastWidth = 0;\n    _classPrivateFieldSet(_totalTargetWidth, this, totalWidth);\n    let sumAll = 0;\n    for (let i = 0; i < _classPrivateFieldGet(_totalColumns, this).call(this); i++) {\n      const columnWidth = this._getColumnWidth(i);\n      const permanentColumnWidth = _classPrivateFieldGet(_stretchingColumnWidthFn, this).call(this, undefined, i);\n      if (typeof permanentColumnWidth === 'number') {\n        totalWidth -= permanentColumnWidth;\n      } else {\n        sumAll += columnWidth;\n      }\n    }\n    const remainingSize = totalWidth - sumAll;\n    if (_classPrivateFieldGet(_stretchMode, this).call(this) === 'all' && remainingSize > 0) {\n      this.stretchAllRatio = totalWidth / sumAll;\n      this.stretchAllColumnsWidth = [];\n      this.needVerifyLastColumnWidth = true;\n    } else if (_classPrivateFieldGet(_stretchMode, this).call(this) === 'last' && totalWidth !== Infinity) {\n      const columnWidth = this._getColumnWidth(_classPrivateFieldGet(_totalColumns, this).call(this) - 1);\n      const lastColumnWidth = remainingSize + columnWidth;\n      this.stretchLastWidth = lastColumnWidth >= 0 ? lastColumnWidth : columnWidth;\n    }\n  }\n\n  /**\n   * Get stretched column width based on stretchH (all or last) setting passed in handsontable instance.\n   *\n   * @param {number} column The visual column index.\n   * @param {number} baseWidth The default column width.\n   * @returns {number|null}\n   */\n  getStretchedColumnWidth(column, baseWidth) {\n    let result = null;\n    if (_classPrivateFieldGet(_stretchMode, this).call(this) === 'all' && this.stretchAllRatio !== 0) {\n      result = this._getStretchedAllColumnWidth(column, baseWidth);\n    } else if (_classPrivateFieldGet(_stretchMode, this).call(this) === 'last' && this.stretchLastWidth !== 0) {\n      result = this._getStretchedLastColumnWidth(column);\n    }\n    return result;\n  }\n\n  /**\n   * @param {number} column The visual column index.\n   * @param {number} baseWidth The default column width.\n   * @returns {number}\n   * @private\n   */\n  _getStretchedAllColumnWidth(column, baseWidth) {\n    let sumRatioWidth = 0;\n    if (!this.stretchAllColumnsWidth[column]) {\n      const stretchedWidth = Math.round(baseWidth * this.stretchAllRatio);\n      const newStretchedWidth = _classPrivateFieldGet(_stretchingColumnWidthFn, this).call(this, stretchedWidth, column);\n      if (newStretchedWidth === undefined) {\n        this.stretchAllColumnsWidth[column] = stretchedWidth;\n      } else {\n        this.stretchAllColumnsWidth[column] = isNaN(newStretchedWidth) ? this._getColumnWidth(column) : newStretchedWidth;\n      }\n    }\n    if (this.stretchAllColumnsWidth.length === _classPrivateFieldGet(_totalColumns, this).call(this) && this.needVerifyLastColumnWidth) {\n      this.needVerifyLastColumnWidth = false;\n      for (let i = 0; i < this.stretchAllColumnsWidth.length; i++) {\n        sumRatioWidth += this.stretchAllColumnsWidth[i];\n      }\n      if (sumRatioWidth !== _classPrivateFieldGet(_totalTargetWidth, this)) {\n        this.stretchAllColumnsWidth[this.stretchAllColumnsWidth.length - 1] += _classPrivateFieldGet(_totalTargetWidth, this) - sumRatioWidth;\n      }\n    }\n    return this.stretchAllColumnsWidth[column];\n  }\n\n  /**\n   * @param {number} column The visual column index.\n   * @returns {number|null}\n   * @private\n   */\n  _getStretchedLastColumnWidth(column) {\n    if (column === _classPrivateFieldGet(_totalColumns, this).call(this) - 1) {\n      return this.stretchLastWidth;\n    }\n    return null;\n  }\n\n  /**\n   * @param {number} column The visual column index.\n   * @returns {number}\n   * @private\n   */\n  _getColumnWidth(column) {\n    let width = _classPrivateFieldGet(_columnWidthFn, this).call(this, column);\n    if (isNaN(width)) {\n      width = _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"DEFAULT_COLUMN_WIDTH\"];\n    }\n    return width;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/utils/columnStretching.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/utils/nodesPool.mjs":
/*!********************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/utils/nodesPool.mjs ***!
  \********************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return NodesPool; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * Factory for newly created DOM elements.\n *\n * @class {NodesPool}\n */\nclass NodesPool {\n  constructor(nodeType) {\n    /**\n     * Node type to generate (ew 'th', 'td').\n     *\n     * @type {string}\n     */\n    _defineProperty(this, \"nodeType\", void 0);\n    this.nodeType = nodeType.toUpperCase();\n  }\n\n  /**\n   * Set document owner for this instance.\n   *\n   * @param {HTMLDocument} rootDocument The document window owner.\n   */\n  setRootDocument(rootDocument) {\n    this.rootDocument = rootDocument;\n  }\n\n  /**\n   * Obtains an element. The returned elements in the feature can be cached.\n   *\n   * @returns {HTMLElement}\n   */\n  obtain() {\n    return this.rootDocument.createElement(this.nodeType);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/utils/nodesPool.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/constants.mjs":
/*!******************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/constants.mjs ***!
  \******************************************************************************************/
/*! exports provided: WORKING_SPACE_ALL, WORKING_SPACE_TOP, WORKING_SPACE_BOTTOM */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WORKING_SPACE_ALL\", function() { return WORKING_SPACE_ALL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WORKING_SPACE_TOP\", function() { return WORKING_SPACE_TOP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WORKING_SPACE_BOTTOM\", function() { return WORKING_SPACE_BOTTOM; });\n/**\n * Describes that ViewSizeSet instance doesn't share sizes with another\n * instance (root node can contain only one type of children nodes).\n *\n * @type {number}\n */\nconst WORKING_SPACE_ALL = 0;\n/**\n * Describes that ViewSizeSet instance share sizes with another instance and\n * set working space for this instance to 'top' (root node can contain multiple\n * types of children and this instance will be occupied top space of the root node).\n *\n * @type {number}\n */\nconst WORKING_SPACE_TOP = 1;\n/**\n * Describes that ViewSizeSet instance share sizes with another instance and\n * set working space for this instance to 'bottom' (root node can contain multiple\n * types of children and this instance will be occupied bottom space of the root node).\n *\n * @type {number}\n */\nconst WORKING_SPACE_BOTTOM = 2;\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/constants.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/index.mjs":
/*!**************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/index.mjs ***!
  \**************************************************************************************/
/*! exports provided: OrderView, SharedOrderView */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _view_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./view.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/view.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OrderView\", function() { return _view_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _sharedView_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sharedView.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/sharedView.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SharedOrderView\", function() { return _sharedView_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/sharedView.mjs":
/*!*******************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/sharedView.mjs ***!
  \*******************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return SharedOrderView; });\n/* harmony import */ var _view_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./view.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/view.mjs\");\n\n/**\n * Executive model for TR root nodes.\n *\n * @class {SharedOrderView}\n */\nclass SharedOrderView extends _view_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  /**\n   * The method results in merging external order view into the current order. This happens only for order views which\n   * operate on the same root node.\n   *\n   * In the table, there is only one scenario when this happens. TR root element\n   * has a common root node with cells order view and row headers order view. Both classes have to share\n   * information about their order sizes to make proper diff calculations.\n   *\n   * @param {OrderView} orderView The order view to merging with. The view will be added at the beginning of the list.\n   * @returns {SharedOrderView}\n   */\n  prependView(orderView) {\n    this.sizeSet.prepend(orderView.sizeSet);\n    orderView.sizeSet.append(this.sizeSet);\n    return this;\n  }\n\n  /**\n   * The method results in merging external order view into the current order. This happens only for order views which\n   * operate on the same root node.\n   *\n   * In the table, there is only one scenario when this happens. TR root element\n   * has a common root node with cells order view and row headers order view. Both classes have to share\n   * information about their order sizes to make proper diff calculations.\n   *\n   * @param {OrderView} orderView The order view to merging with. The view will be added at the end of the list.\n   * @returns {SharedOrderView}\n   */\n  appendView(orderView) {\n    this.sizeSet.append(orderView.sizeSet);\n    orderView.sizeSet.prepend(this.sizeSet);\n    return this;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/sharedView.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/view.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/view.mjs ***!
  \*************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return OrderView; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/constants.mjs\");\n/* harmony import */ var _viewSizeSet_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./viewSizeSet.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n/**\n * Executive model for each table renderer. It's responsible for injecting DOM nodes in a\n * specified order and adjusting the number of elements in the root node.\n *\n * Only this class have rights to juggling DOM elements within the root node (see render method).\n *\n * @class {OrderView}\n */\nclass OrderView {\n  constructor(rootNode, nodesPool, childNodeType) {\n    /**\n     * The root node to manage with.\n     *\n     * @type {HTMLElement}\n     */\n    _defineProperty(this, \"rootNode\", void 0);\n    /**\n     * Factory for newly created DOM elements.\n     *\n     * @type {Function}\n     */\n    _defineProperty(this, \"nodesPool\", void 0);\n    /**\n     * Holder for sizing and positioning of the view.\n     *\n     * @type {ViewSizeSet}\n     */\n    _defineProperty(this, \"sizeSet\", new _viewSizeSet_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"]());\n    /**\n     * Node type which the order view will manage while rendering the DOM elements.\n     *\n     * @type {string}\n     */\n    _defineProperty(this, \"childNodeType\", void 0);\n    /**\n     * The visual index of currently processed row.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"visualIndex\", 0);\n    /**\n     * The list of DOM elements which are rendered for this render cycle.\n     *\n     * @type {HTMLElement[]}\n     */\n    _defineProperty(this, \"collectedNodes\", []);\n    this.rootNode = rootNode;\n    this.nodesPool = nodesPool;\n    this.childNodeType = childNodeType.toUpperCase();\n  }\n\n  /**\n   * Sets the size for rendered elements. It can be a size for rows, cells or size for row\n   * headers etc. It depends for what table renderer this instance was created.\n   *\n   * @param {number} size The size.\n   * @returns {OrderView}\n   */\n  setSize(size) {\n    this.sizeSet.setSize(size);\n    return this;\n  }\n\n  /**\n   * Sets the offset for rendered elements. The offset describes the shift between 0 and\n   * the first rendered element according to the scroll position.\n   *\n   * @param {number} offset The offset.\n   * @returns {OrderView}\n   */\n  setOffset(offset) {\n    this.sizeSet.setOffset(offset);\n    return this;\n  }\n\n  /**\n   * Checks if this instance of the view shares the root node with another instance. This happens only once when\n   * a row (TR) as a root node is managed by two OrderView instances. If this happens another DOM injection\n   * algorithm is performed to achieve consistent order.\n   *\n   * @returns {boolean}\n   */\n  isSharedViewSet() {\n    return this.sizeSet.isShared();\n  }\n\n  /**\n   * Returns rendered DOM element based on visual index.\n   *\n   * @param {number} visualIndex The visual index.\n   * @returns {HTMLElement}\n   */\n  getNode(visualIndex) {\n    return visualIndex < this.collectedNodes.length ? this.collectedNodes[visualIndex] : null;\n  }\n\n  /**\n   * Returns currently processed DOM element.\n   *\n   * @returns {HTMLElement}\n   */\n  getCurrentNode() {\n    const length = this.collectedNodes.length;\n    return length > 0 ? this.collectedNodes[length - 1] : null;\n  }\n\n  /**\n   * Returns rendered child count for this instance.\n   *\n   * @returns {number}\n   */\n  getRenderedChildCount() {\n    const {\n      rootNode,\n      sizeSet\n    } = this;\n    let childElementCount = 0;\n    if (this.isSharedViewSet()) {\n      let element = rootNode.firstElementChild;\n      while (element) {\n        if (element.tagName === this.childNodeType) {\n          childElementCount += 1;\n        } else if (sizeSet.isPlaceOn(_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"WORKING_SPACE_TOP\"])) {\n          break;\n        }\n        element = element.nextElementSibling;\n      }\n    } else {\n      childElementCount = rootNode.childElementCount;\n    }\n    return childElementCount;\n  }\n\n  /**\n   * Setups and prepares all necessary properties and start the rendering process.\n   * This method has to be called only once (at the start) for the render cycle.\n   */\n  start() {\n    this.collectedNodes.length = 0;\n    this.visualIndex = 0;\n    const {\n      rootNode,\n      sizeSet\n    } = this;\n    const isShared = this.isSharedViewSet();\n    const {\n      nextSize\n    } = sizeSet.getViewSize();\n    let childElementCount = this.getRenderedChildCount();\n    while (childElementCount < nextSize) {\n      const newNode = this.nodesPool();\n      if (!isShared || isShared && sizeSet.isPlaceOn(_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"WORKING_SPACE_BOTTOM\"])) {\n        rootNode.appendChild(newNode);\n      } else {\n        rootNode.insertBefore(newNode, rootNode.firstChild);\n      }\n      childElementCount += 1;\n    }\n    const isSharedPlacedOnTop = isShared && sizeSet.isPlaceOn(_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"WORKING_SPACE_TOP\"]);\n    while (childElementCount > nextSize) {\n      rootNode.removeChild(isSharedPlacedOnTop ? rootNode.firstChild : rootNode.lastChild);\n      childElementCount -= 1;\n    }\n  }\n\n  /**\n   * Renders the DOM element based on visual index (which is calculated internally).\n   * This method has to be called as many times as the size count is met (to cover all previously rendered DOM elements).\n   */\n  render() {\n    const {\n      rootNode,\n      sizeSet\n    } = this;\n    let visualIndex = this.visualIndex;\n    if (this.isSharedViewSet() && sizeSet.isPlaceOn(_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"WORKING_SPACE_BOTTOM\"])) {\n      visualIndex += sizeSet.sharedSize.nextSize;\n    }\n    let node = rootNode.childNodes[visualIndex];\n    if (node.tagName !== this.childNodeType) {\n      const newNode = this.nodesPool();\n      rootNode.replaceChild(newNode, node);\n      node = newNode;\n    }\n    this.collectedNodes.push(node);\n    this.visualIndex += 1;\n  }\n\n  /**\n   * Ends the render process.\n   * This method has to be called only once (at the end) for the render cycle.\n   */\n  end() {}\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/view.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/viewSize.mjs":
/*!*****************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/viewSize.mjs ***!
  \*****************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ViewSize; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * Holder for current and next size (count of rendered and to render DOM elements) and offset.\n *\n * @class {ViewSize}\n */\nclass ViewSize {\n  constructor() {\n    /**\n     * Current size of the rendered DOM elements.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"currentSize\", 0);\n    /**\n     * Next size of the rendered DOM elements which should be fulfilled.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"nextSize\", 0);\n    /**\n     * Current offset.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"currentOffset\", 0);\n    /**\n     * Next offset.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"nextOffset\", 0);\n  }\n  /**\n   * Sets new size of the rendered DOM elements.\n   *\n   * @param {number} size The size.\n   */\n  setSize(size) {\n    this.currentSize = this.nextSize;\n    this.nextSize = size;\n  }\n\n  /**\n   * Sets new offset.\n   *\n   * @param {number} offset The offset.\n   */\n  setOffset(offset) {\n    this.currentOffset = this.nextOffset;\n    this.nextOffset = offset;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/viewSize.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs":
/*!********************************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs ***!
  \********************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ViewSizeSet; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _viewSize_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./viewSize.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/viewSize.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/constants.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n/**\n * The class is a source of the truth of information about the current and\n * next size of the rendered DOM elements and current and next offset of\n * the view. That information allows us to calculate diff between current\n * DOM order and this which should be rendered without touching the DOM API at all.\n *\n * Mostly the ViewSizeSet is created for each individual renderer. But in\n * the table, there is one case where this size information should be shared\n * between two different instances (different table renderers). This is a TR\n * element which can contain TH elements - managed by own renderer and\n * TD elements - managed by another renderer. To generate correct DOM order\n * for them it is required to connect these two instances by reference\n * through `sharedSize`.\n *\n * @class {ViewSizeSet}\n */\nclass ViewSizeSet {\n  constructor() {\n    /**\n     * Holder for current and next view size and offset.\n     *\n     * @type {ViewSize}\n     */\n    _defineProperty(this, \"size\", new _viewSize_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]());\n    /**\n     * Defines if this instance shares its size with another instance. If it's in the shared\n     * mode it defines what space it occupies ('top' or 'bottom').\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"workingSpace\", _constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"WORKING_SPACE_ALL\"]);\n    /**\n     * Shared Size instance.\n     *\n     * @type {ViewSize}\n     */\n    _defineProperty(this, \"sharedSize\", null);\n  }\n  /**\n   * Sets the size for rendered elements. It can be a size for rows, cells or size for row\n   * headers etc.\n   *\n   * @param {number} size The size.\n   */\n  setSize(size) {\n    this.size.setSize(size);\n  }\n\n  /**\n   * Sets the offset for rendered elements. The offset describes the shift between 0 and\n   * the first rendered element according to the scroll position.\n   *\n   * @param {number} offset The offset.\n   */\n  setOffset(offset) {\n    this.size.setOffset(offset);\n  }\n\n  /**\n   * Returns ViewSize instance.\n   *\n   * @returns {ViewSize}\n   */\n  getViewSize() {\n    return this.size;\n  }\n\n  /**\n   * Checks if this ViewSizeSet is sharing the size with another instance.\n   *\n   * @returns {boolean}\n   */\n  isShared() {\n    return this.sharedSize instanceof _viewSize_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n  }\n\n  /**\n   * Checks what working space describes this size instance.\n   *\n   * @param {number} workingSpace The number which describes the type of the working space (see constants.js).\n   * @returns {boolean}\n   */\n  isPlaceOn(workingSpace) {\n    return this.workingSpace === workingSpace;\n  }\n\n  /**\n   * Appends the ViewSizeSet instance to this instance that turns it into a shared mode.\n   *\n   * @param {ViewSizeSet} viewSize The instance of the ViewSizeSet class.\n   */\n  append(viewSize) {\n    this.workingSpace = _constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"WORKING_SPACE_TOP\"];\n    viewSize.workingSpace = _constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"WORKING_SPACE_BOTTOM\"];\n    this.sharedSize = viewSize.getViewSize();\n  }\n\n  /**\n   * Prepends the ViewSize instance to this instance that turns it into a shared mode.\n   *\n   * @param {ViewSizeSet} viewSize The instance of the ViewSizeSet class.\n   */\n  prepend(viewSize) {\n    this.workingSpace = _constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"WORKING_SPACE_BOTTOM\"];\n    viewSize.workingSpace = _constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"WORKING_SPACE_TOP\"];\n    this.sharedSize = viewSize.getViewSize();\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/utils/row.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/utils/row.mjs ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return RowUtils; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * Row utils class contains all necessary information about sizes of the rows.\n *\n * @class {RowUtils}\n */\nclass RowUtils {\n  /**\n   * @param {TableDao} dataAccessObject The table Data Access Object.\n   * @param {Settings} wtSettings The walkontable settings.\n   */\n  constructor(dataAccessObject, wtSettings) {\n    /**\n     * @type {TableDao}\n     */\n    _defineProperty(this, \"dataAccessObject\", void 0);\n    /**\n     * @type {Settings}\n     */\n    _defineProperty(this, \"wtSettings\", void 0);\n    this.dataAccessObject = dataAccessObject;\n    this.wtSettings = wtSettings;\n  }\n\n  /**\n   * Returns row height based on passed source index.\n   *\n   * @param {number} sourceIndex Row source index.\n   * @returns {number}\n   */\n  getHeight(sourceIndex) {\n    let height = this.wtSettings.getSetting('rowHeight', sourceIndex);\n    const oversizedHeight = this.dataAccessObject.wtViewport.oversizedRows[sourceIndex];\n    if (oversizedHeight !== undefined) {\n      height = height === undefined ? oversizedHeight : Math.max(height, oversizedHeight);\n    }\n    return height;\n  }\n\n  /**\n   * Returns row height based on passed source index for the specified overlay type.\n   *\n   * @param {number} sourceIndex Row source index.\n   * @param {'inline_start'|'top'|'top_inline_start_corner'|'bottom'|'bottom_inline_start_corner'|'master'} overlayName The overlay name.\n   * @returns {number}\n   */\n  getHeightByOverlayName(sourceIndex, overlayName) {\n    let height = this.wtSettings.getSetting('rowHeightByOverlayName', sourceIndex, overlayName);\n    const oversizedHeight = this.dataAccessObject.wtViewport.oversizedRows[sourceIndex];\n    if (oversizedHeight !== undefined) {\n      height = height === undefined ? oversizedHeight : Math.max(height, oversizedHeight);\n    }\n    return height;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/utils/row.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/3rdparty/walkontable/src/viewport.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/3rdparty/walkontable/src/viewport.mjs ***!
  \*************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./calculator/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/calculator/index.mjs\");\n\n\n\n/**\n * @class Viewport\n */\nclass Viewport {\n  /**\n   * @param {ViewportDao} dataAccessObject The Walkontable instance.\n   * @param {DomBindings} domBindings Bindings into DOM.\n   * @param {Settings} wtSettings The Walkontable settings.\n   * @param {EventManager} eventManager The instance event manager.\n   * @param {Table} wtTable The table.\n   */\n  constructor(dataAccessObject, domBindings, wtSettings, eventManager, wtTable) {\n    this.dataAccessObject = dataAccessObject;\n    // legacy support\n    this.wot = dataAccessObject.wot;\n    this.instance = this.wot;\n    this.domBindings = domBindings;\n    this.wtSettings = wtSettings;\n    this.wtTable = wtTable;\n    this.oversizedRows = [];\n    this.oversizedColumnHeaders = [];\n    this.hasOversizedColumnHeadersMarked = {};\n    this.clientHeight = 0;\n    this.containerWidth = NaN;\n    this.rowHeaderWidth = NaN;\n    this.rowsVisibleCalculator = null;\n    this.columnsVisibleCalculator = null;\n    this.rowsCalculatorTypes = new Map([['rendered', () => this.wtSettings.getSetting('renderAllRows') ? new _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"RenderedAllRowsCalculationType\"]() : new _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"RenderedRowsCalculationType\"]()], ['fullyVisible', () => new _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"FullyVisibleRowsCalculationType\"]()], ['partiallyVisible', () => new _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"PartiallyVisibleRowsCalculationType\"]()]]);\n    this.columnsCalculatorTypes = new Map([['rendered', () => this.wtSettings.getSetting('renderAllColumns') ? new _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"RenderedAllColumnsCalculationType\"]() : new _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"RenderedColumnsCalculationType\"]()], ['fullyVisible', () => new _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"FullyVisibleColumnsCalculationType\"]()], ['partiallyVisible', () => new _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"PartiallyVisibleColumnsCalculationType\"]()]]);\n    this.eventManager = eventManager;\n    this.eventManager.addEventListener(this.domBindings.rootWindow, 'resize', () => {\n      this.clientHeight = this.getWorkspaceHeight();\n    });\n  }\n\n  /**\n   * @returns {number}\n   */\n  getWorkspaceHeight() {\n    const currentDocument = this.domBindings.rootDocument;\n    const trimmingContainer = this.dataAccessObject.topOverlayTrimmingContainer;\n    let height = 0;\n    if (trimmingContainer === this.domBindings.rootWindow) {\n      height = currentDocument.documentElement.clientHeight;\n    } else {\n      const elemHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"outerHeight\"])(trimmingContainer);\n\n      // returns height without DIV scrollbar\n      height = elemHeight > 0 && trimmingContainer.clientHeight > 0 ? trimmingContainer.clientHeight : Infinity;\n    }\n    return height;\n  }\n  getWorkspaceWidth() {\n    const {\n      wtSettings\n    } = this;\n    const {\n      rootDocument,\n      rootWindow\n    } = this.domBindings;\n    const trimmingContainer = this.dataAccessObject.inlineStartOverlayTrimmingContainer;\n    const docOffsetWidth = rootDocument.documentElement.offsetWidth;\n    const totalColumns = wtSettings.getSetting('totalColumns');\n    const preventOverflow = wtSettings.getSetting('preventOverflow');\n    const isRtl = wtSettings.getSetting('rtlMode');\n    const tableRect = this.wtTable.TABLE.getBoundingClientRect();\n    const inlineStart = isRtl ? tableRect.right - docOffsetWidth : tableRect.left;\n    const tableOffset = docOffsetWidth - inlineStart;\n    let width;\n    let overflow;\n    if (preventOverflow) {\n      return Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"outerWidth\"])(this.wtTable.wtRootElement);\n    }\n    if (wtSettings.getSetting('freezeOverlays')) {\n      width = Math.min(tableOffset, docOffsetWidth);\n    } else {\n      width = Math.min(this.getContainerFillWidth(), tableOffset, docOffsetWidth);\n    }\n    if (trimmingContainer === rootWindow && totalColumns > 0 && this.sumColumnWidths(0, totalColumns - 1) > width) {\n      // in case sum of column widths is higher than available stylesheet width, let's assume using the whole window\n      // otherwise continue below, which will allow stretching\n      // this is used in `scroll_window.html`\n      // TODO test me\n      return rootDocument.documentElement.clientWidth;\n    }\n    if (trimmingContainer !== rootWindow) {\n      overflow = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getStyle\"])(this.dataAccessObject.inlineStartOverlayTrimmingContainer, 'overflow', rootWindow);\n      if (overflow === 'scroll' || overflow === 'hidden' || overflow === 'auto') {\n        // this is used in `scroll.html`\n        // TODO test me\n        return Math.max(width, trimmingContainer.clientWidth);\n      }\n    }\n    const stretchSetting = wtSettings.getSetting('stretchH');\n    if (stretchSetting === 'none' || !stretchSetting) {\n      // if no stretching is used, return the maximum used workspace width\n      return Math.max(width, Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"outerWidth\"])(this.wtTable.TABLE));\n    }\n\n    // if stretching is used, return the actual container width, so the columns can fit inside it\n    return width;\n  }\n\n  /**\n   * Checks if viewport has vertical scroll.\n   *\n   * @returns {boolean}\n   */\n  hasVerticalScroll() {\n    return this.wtTable.hider.offsetHeight > this.getWorkspaceHeight();\n  }\n\n  /**\n   * Checks if viewport has horizontal scroll.\n   *\n   * @returns {boolean}\n   */\n  hasHorizontalScroll() {\n    return this.wtTable.hider.offsetWidth > this.getWorkspaceWidth();\n  }\n\n  /**\n   * @param {number} from The visual column index from the width sum is start calculated.\n   * @param {number} length The length of the column to traverse.\n   * @returns {number}\n   */\n  sumColumnWidths(from, length) {\n    let sum = 0;\n    let column = from;\n    while (column < length) {\n      sum += this.wtTable.getColumnWidth(column);\n      column += 1;\n    }\n    return sum;\n  }\n\n  /**\n   * @returns {number}\n   */\n  getContainerFillWidth() {\n    if (this.containerWidth) {\n      return this.containerWidth;\n    }\n    const mainContainer = this.wtTable.holder;\n    const dummyElement = this.domBindings.rootDocument.createElement('div');\n    dummyElement.style.width = '100%';\n    dummyElement.style.height = '1px';\n    mainContainer.appendChild(dummyElement);\n    const fillWidth = dummyElement.offsetWidth;\n    this.containerWidth = fillWidth;\n    mainContainer.removeChild(dummyElement);\n    return fillWidth;\n  }\n\n  /**\n   * @returns {number}\n   */\n  getWorkspaceOffset() {\n    return Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"offset\"])(this.wtTable.TABLE);\n  }\n\n  /**\n   * @returns {number}\n   */\n  getColumnHeaderHeight() {\n    const columnHeaders = this.wtSettings.getSetting('columnHeaders');\n    if (!columnHeaders.length) {\n      this.columnHeaderHeight = 0;\n    } else if (isNaN(this.columnHeaderHeight)) {\n      this.columnHeaderHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"outerHeight\"])(this.wtTable.THEAD);\n    }\n    return this.columnHeaderHeight;\n  }\n\n  /**\n   * @returns {number}\n   */\n  getViewportHeight() {\n    let containerHeight = this.getWorkspaceHeight();\n    if (containerHeight === Infinity) {\n      return containerHeight;\n    }\n    const columnHeaderHeight = this.getColumnHeaderHeight();\n    if (columnHeaderHeight > 0) {\n      containerHeight -= columnHeaderHeight;\n    }\n    return containerHeight;\n  }\n\n  /**\n   * @returns {number}\n   */\n  getRowHeaderWidth() {\n    const rowHeadersWidthSetting = this.wtSettings.getSetting('rowHeaderWidth');\n    const rowHeaders = this.wtSettings.getSetting('rowHeaders');\n    if (rowHeadersWidthSetting) {\n      this.rowHeaderWidth = 0;\n      for (let i = 0, len = rowHeaders.length; i < len; i++) {\n        this.rowHeaderWidth += rowHeadersWidthSetting[i] || rowHeadersWidthSetting;\n      }\n    }\n    if (isNaN(this.rowHeaderWidth)) {\n      if (rowHeaders.length) {\n        let TH = this.wtTable.TABLE.querySelector('TH');\n        this.rowHeaderWidth = 0;\n        for (let i = 0, len = rowHeaders.length; i < len; i++) {\n          if (TH) {\n            this.rowHeaderWidth += Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"outerWidth\"])(TH);\n            TH = TH.nextSibling;\n          } else {\n            // yes this is a cheat but it worked like that before, just taking assumption from CSS instead of measuring.\n            // TODO: proper fix\n            this.rowHeaderWidth += 50;\n          }\n        }\n      } else {\n        this.rowHeaderWidth = 0;\n      }\n    }\n    this.rowHeaderWidth = this.wtSettings.getSetting('onModifyRowHeaderWidth', this.rowHeaderWidth) || this.rowHeaderWidth;\n    return this.rowHeaderWidth;\n  }\n\n  /**\n   * @returns {number}\n   */\n  getViewportWidth() {\n    const containerWidth = this.getWorkspaceWidth();\n    if (containerWidth === Infinity) {\n      return containerWidth;\n    }\n    const rowHeaderWidth = this.getRowHeaderWidth();\n    if (rowHeaderWidth > 0) {\n      return containerWidth - rowHeaderWidth;\n    }\n    return containerWidth;\n  }\n\n  /**\n   * Creates rows calculators. The type of the calculations can be chosen from the list:\n   *  - 'rendered' Calculates rows that should be rendered within the current table's viewport;\n   *  - 'fullyVisible' Calculates rows that are fully visible (used mostly for scrolling purposes);\n   *  - 'partiallyVisible' Calculates rows that are partially visible (used mostly for scrolling purposes).\n   *\n   * @param {'rendered' | 'fullyVisible' | 'partiallyVisible'} calculatorTypes The list of the calculation types.\n   * @returns {ViewportRowsCalculator}\n   */\n  createRowsCalculator() {\n    let calculatorTypes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['rendered', 'fullyVisible', 'partiallyVisible'];\n    const {\n      wtSettings,\n      wtTable\n    } = this;\n    let height = this.getViewportHeight();\n    let scrollbarHeight;\n    let fixedRowsHeight;\n    this.rowHeaderWidth = NaN;\n    let pos = this.dataAccessObject.topScrollPosition - this.dataAccessObject.topParentOffset;\n    const fixedRowsTop = wtSettings.getSetting('fixedRowsTop');\n    const fixedRowsBottom = wtSettings.getSetting('fixedRowsBottom');\n    const totalRows = wtSettings.getSetting('totalRows');\n    if (fixedRowsTop && pos >= 0) {\n      fixedRowsHeight = this.dataAccessObject.topOverlay.sumCellSizes(0, fixedRowsTop);\n      pos += fixedRowsHeight;\n      height -= fixedRowsHeight;\n    }\n    if (fixedRowsBottom && this.dataAccessObject.bottomOverlay.clone) {\n      fixedRowsHeight = this.dataAccessObject.bottomOverlay.sumCellSizes(totalRows - fixedRowsBottom, totalRows);\n      height -= fixedRowsHeight;\n    }\n    if (wtTable.holder.clientHeight === wtTable.holder.offsetHeight) {\n      scrollbarHeight = 0;\n    } else {\n      scrollbarHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getScrollbarWidth\"])(this.domBindings.rootDocument);\n    }\n    return new _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"ViewportRowsCalculator\"]({\n      calculationTypes: calculatorTypes.map(type => [type, this.rowsCalculatorTypes.get(type)()]),\n      viewportHeight: height,\n      scrollOffset: pos,\n      totalRows: wtSettings.getSetting('totalRows'),\n      rowHeightFn: sourceRow => wtTable.getRowHeight(sourceRow),\n      overrideFn: wtSettings.getSettingPure('viewportRowCalculatorOverride'),\n      horizontalScrollbarHeight: scrollbarHeight\n    });\n  }\n\n  /**\n   * Creates columns calculators. The type of the calculations can be chosen from the list:\n   *  - 'rendered' Calculates columns that should be rendered within the current table's viewport;\n   *  - 'fullyVisible' Calculates columns that are fully visible (used mostly for scrolling purposes);\n   *  - 'partiallyVisible' Calculates columns that are partially visible (used mostly for scrolling purposes).\n   *\n   * @param {'rendered' | 'fullyVisible' | 'partiallyVisible'} calculatorTypes The list of the calculation types.\n   * @returns {ViewportColumnsCalculator}\n   */\n  createColumnsCalculator() {\n    let calculatorTypes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['rendered', 'fullyVisible', 'partiallyVisible'];\n    const {\n      wtSettings,\n      wtTable\n    } = this;\n    let width = this.getViewportWidth();\n    let pos = Math.abs(this.dataAccessObject.inlineStartScrollPosition) - this.dataAccessObject.inlineStartParentOffset;\n    this.columnHeaderHeight = NaN;\n    const fixedColumnsStart = wtSettings.getSetting('fixedColumnsStart');\n    if (fixedColumnsStart && pos >= 0) {\n      const fixedColumnsWidth = this.dataAccessObject.inlineStartOverlay.sumCellSizes(0, fixedColumnsStart);\n      pos += fixedColumnsWidth;\n      width -= fixedColumnsWidth;\n    }\n    if (wtTable.holder.clientWidth !== wtTable.holder.offsetWidth) {\n      width -= Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getScrollbarWidth\"])(this.domBindings.rootDocument);\n    }\n    return new _calculator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"ViewportColumnsCalculator\"]({\n      calculationTypes: calculatorTypes.map(type => [type, this.columnsCalculatorTypes.get(type)()]),\n      viewportWidth: width,\n      scrollOffset: pos,\n      totalColumns: wtSettings.getSetting('totalColumns'),\n      columnWidthFn: sourceCol => wtTable.getColumnWidth(sourceCol),\n      overrideFn: wtSettings.getSettingPure('viewportColumnCalculatorOverride'),\n      inlineStartOffset: this.dataAccessObject.inlineStartParentOffset\n    });\n  }\n\n  /**\n   * Creates rowsRenderCalculator and columnsRenderCalculator (before draw, to determine what rows and\n   * cols should be rendered).\n   *\n   * @param {boolean} fastDraw If `true`, will try to avoid full redraw and only update the border positions.\n   *                           If `false` or `undefined`, will perform a full redraw.\n   * @returns {boolean} The fastDraw value, possibly modified.\n   */\n  createCalculators() {\n    let fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    const {\n      wtSettings\n    } = this;\n    const rowsCalculator = this.createRowsCalculator();\n    const columnsCalculator = this.createColumnsCalculator();\n    if (fastDraw && !wtSettings.getSetting('renderAllRows')) {\n      const proposedRowsVisibleCalculator = rowsCalculator.getResultsFor('fullyVisible');\n      fastDraw = this.areAllProposedVisibleRowsAlreadyRendered(proposedRowsVisibleCalculator);\n    }\n    if (fastDraw && !wtSettings.getSetting('renderAllColumns')) {\n      const proposedColumnsVisibleCalculator = columnsCalculator.getResultsFor('fullyVisible');\n      fastDraw = this.areAllProposedVisibleColumnsAlreadyRendered(proposedColumnsVisibleCalculator);\n    }\n    if (!fastDraw) {\n      this.rowsRenderCalculator = rowsCalculator.getResultsFor('rendered');\n      this.columnsRenderCalculator = columnsCalculator.getResultsFor('rendered');\n    }\n    this.rowsVisibleCalculator = rowsCalculator.getResultsFor('fullyVisible');\n    this.columnsVisibleCalculator = columnsCalculator.getResultsFor('fullyVisible');\n    this.rowsPartiallyVisibleCalculator = rowsCalculator.getResultsFor('partiallyVisible');\n    this.columnsPartiallyVisibleCalculator = columnsCalculator.getResultsFor('partiallyVisible');\n    return fastDraw;\n  }\n\n  /**\n   * Creates rows and columns calculators (after draw, to determine what are\n   * the actually fully visible and partially visible rows and columns).\n   */\n  createVisibleCalculators() {\n    const rowsCalculator = this.createRowsCalculator(['fullyVisible', 'partiallyVisible']);\n    const columnsCalculator = this.createColumnsCalculator(['fullyVisible', 'partiallyVisible']);\n    this.rowsVisibleCalculator = rowsCalculator.getResultsFor('fullyVisible');\n    this.columnsVisibleCalculator = columnsCalculator.getResultsFor('fullyVisible');\n    this.rowsPartiallyVisibleCalculator = rowsCalculator.getResultsFor('partiallyVisible');\n    this.columnsPartiallyVisibleCalculator = columnsCalculator.getResultsFor('partiallyVisible');\n  }\n\n  /**\n   * Returns information whether proposedRowsVisibleCalculator viewport\n   * is contained inside rows rendered in previous draw (cached in rowsRenderCalculator).\n   *\n   * @param {ViewportRowsCalculator} proposedRowsVisibleCalculator The instance of the viewport calculator to compare with.\n   * @returns {boolean} Returns `true` if all proposed visible rows are already rendered (meaning: redraw is not needed).\n   *                    Returns `false` if at least one proposed visible row is not already rendered (meaning: redraw is needed).\n   */\n  areAllProposedVisibleRowsAlreadyRendered(proposedRowsVisibleCalculator) {\n    if (!this.rowsVisibleCalculator) {\n      return false;\n    }\n    let {\n      startRow,\n      endRow\n    } = proposedRowsVisibleCalculator;\n\n    // if there are no fully visible rows at all...\n    if (startRow === null && endRow === null) {\n      if (!proposedRowsVisibleCalculator.isVisibleInTrimmingContainer) {\n        return true;\n      }\n      // ...use partially visible rows calculator to determine what render type is needed\n      startRow = this.rowsPartiallyVisibleCalculator.startRow;\n      endRow = this.rowsPartiallyVisibleCalculator.endRow;\n    }\n    const {\n      startRow: renderedStartRow,\n      endRow: renderedEndRow\n    } = this.rowsRenderCalculator;\n    if (startRow < renderedStartRow || startRow === renderedStartRow && startRow > 0) {\n      return false;\n    } else if (endRow > renderedEndRow || endRow === renderedEndRow && endRow < this.wtSettings.getSetting('totalRows') - 1) {\n      return false;\n    }\n    return true;\n  }\n\n  /**\n   * Returns information whether proposedColumnsVisibleCalculator viewport\n   * is contained inside column rendered in previous draw (cached in columnsRenderCalculator).\n   *\n   * @param {ViewportRowsCalculator} proposedColumnsVisibleCalculator The instance of the viewport calculator to compare with.\n   * @returns {boolean} Returns `true` if all proposed visible columns are already rendered (meaning: redraw is not needed).\n   *                    Returns `false` if at least one proposed visible column is not already rendered (meaning: redraw is needed).\n   */\n  areAllProposedVisibleColumnsAlreadyRendered(proposedColumnsVisibleCalculator) {\n    if (!this.columnsVisibleCalculator) {\n      return false;\n    }\n    let {\n      startColumn,\n      endColumn\n    } = proposedColumnsVisibleCalculator;\n\n    // if there are no fully visible columns at all...\n    if (startColumn === null && endColumn === null) {\n      if (!proposedColumnsVisibleCalculator.isVisibleInTrimmingContainer) {\n        return true;\n      }\n      // ...use partially visible columns calculator to determine what render type is needed\n      startColumn = this.columnsPartiallyVisibleCalculator.startColumn;\n      endColumn = this.columnsPartiallyVisibleCalculator.endColumn;\n    }\n    const {\n      startColumn: renderedStartColumn,\n      endColumn: renderedEndColumn\n    } = this.columnsRenderCalculator;\n    if (startColumn < renderedStartColumn || startColumn === renderedStartColumn && startColumn > 0) {\n      return false;\n    } else if (endColumn > renderedEndColumn || endColumn === renderedEndColumn && endColumn < this.wtSettings.getSetting('totalColumns') - 1) {\n      return false;\n    }\n    return true;\n  }\n\n  /**\n   * Resets values in keys of the hasOversizedColumnHeadersMarked object after updateSettings.\n   */\n  resetHasOversizedColumnHeadersMarked() {\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"objectEach\"])(this.hasOversizedColumnHeadersMarked, (value, key, object) => {\n      object[key] = undefined;\n    });\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (Viewport);\n\n//# sourceURL=webpack:///./node_modules/handsontable/3rdparty/walkontable/src/viewport.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/base.mjs":
/*!********************************************!*\
  !*** ./node_modules/handsontable/base.mjs ***!
  \********************************************/
/*! exports provided: CellCoords, CellRange, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _core_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core.mjs */ \"./node_modules/handsontable/core.mjs\");\n/* harmony import */ var _utils_rootInstance_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/rootInstance.mjs */ \"./node_modules/handsontable/utils/rootInstance.mjs\");\n/* harmony import */ var _dataMap_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataMap/index.mjs */ \"./node_modules/handsontable/dataMap/index.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _i18n_registry_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./i18n/registry.mjs */ \"./node_modules/handsontable/i18n/registry.mjs\");\n/* harmony import */ var _cellTypes_registry_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cellTypes/registry.mjs */ \"./node_modules/handsontable/cellTypes/registry.mjs\");\n/* harmony import */ var _cellTypes_textType_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./cellTypes/textType/index.mjs */ \"./node_modules/handsontable/cellTypes/textType/index.mjs\");\n/* harmony import */ var _editors_baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./editors/baseEditor/index.mjs */ \"./node_modules/handsontable/editors/baseEditor/index.mjs\");\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CellCoords\", function() { return _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"CellCoords\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CellRange\", function() { return _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"CellRange\"]; });\n\n\n\n\n // FIXME: Bug in eslint-plugin-import: https://github.com/benmosher/eslint-plugin-import/issues/1883\n/* eslint-disable import/named */\n\n/* eslint-enable import/named */\n\n\n\n // register default mandatory cell type for the Base package\nObject(_cellTypes_registry_mjs__WEBPACK_IMPORTED_MODULE_5__[\"registerCellType\"])(_cellTypes_textType_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"TextCellType\"]);\n\n// export the `BaseEditor` class to the Handsontable global namespace\nHandsontable.editors = {\n  BaseEditor: _editors_baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"BaseEditor\"]\n};\n\n/**\n * @param {HTMLElement} rootElement The element to which the Handsontable instance is injected.\n * @param {object} userSettings The user defined options.\n * @returns {Core}\n */\nfunction Handsontable(rootElement, userSettings) {\n  const instance = new _core_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"](rootElement, userSettings || {}, _utils_rootInstance_mjs__WEBPACK_IMPORTED_MODULE_1__[\"rootInstanceSymbol\"]);\n  instance.init();\n  return instance;\n}\nHandsontable.Core = function (rootElement) {\n  let userSettings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return new _core_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"](rootElement, userSettings, _utils_rootInstance_mjs__WEBPACK_IMPORTED_MODULE_1__[\"rootInstanceSymbol\"]);\n};\nHandsontable.DefaultSettings = Object(_dataMap_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"metaSchemaFactory\"])();\nHandsontable.hooks = _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton();\nHandsontable.CellCoords = _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"CellCoords\"];\nHandsontable.CellRange = _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"CellRange\"];\nHandsontable.packageName = 'handsontable';\nHandsontable.buildDate = \"30/07/2024 11:21:58\";\nHandsontable.version = \"14.5.0\";\nHandsontable.languages = {\n  dictionaryKeys: _i18n_registry_mjs__WEBPACK_IMPORTED_MODULE_4__[\"dictionaryKeys\"],\n  getLanguageDictionary: _i18n_registry_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getLanguageDictionary\"],\n  getLanguagesDictionaries: _i18n_registry_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getLanguagesDictionaries\"],\n  registerLanguageDictionary: _i18n_registry_mjs__WEBPACK_IMPORTED_MODULE_4__[\"registerLanguageDictionary\"],\n  getTranslatedPhrase: _i18n_registry_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getTranslatedPhrase\"]\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Handsontable);\n\n//# sourceURL=webpack:///./node_modules/handsontable/base.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/autocompleteType/autocompleteType.mjs":
/*!***********************************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/autocompleteType/autocompleteType.mjs ***!
  \***********************************************************************************/
/*! exports provided: CELL_TYPE, AutocompleteCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return CELL_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AutocompleteCellType\", function() { return AutocompleteCellType; });\n/* harmony import */ var _editors_autocompleteEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../editors/autocompleteEditor/index.mjs */ \"./node_modules/handsontable/editors/autocompleteEditor/index.mjs\");\n/* harmony import */ var _renderers_autocompleteRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../renderers/autocompleteRenderer/index.mjs */ \"./node_modules/handsontable/renderers/autocompleteRenderer/index.mjs\");\n/* harmony import */ var _validators_autocompleteValidator_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../validators/autocompleteValidator/index.mjs */ \"./node_modules/handsontable/validators/autocompleteValidator/index.mjs\");\n\n\n\nconst CELL_TYPE = 'autocomplete';\nconst AutocompleteCellType = {\n  CELL_TYPE,\n  editor: _editors_autocompleteEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"AutocompleteEditor\"],\n  renderer: _renderers_autocompleteRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"autocompleteRenderer\"],\n  validator: _validators_autocompleteValidator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"autocompleteValidator\"]\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/autocompleteType/autocompleteType.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/autocompleteType/index.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/autocompleteType/index.mjs ***!
  \************************************************************************/
/*! exports provided: AutocompleteCellType, CELL_TYPE */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _autocompleteType_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./autocompleteType.mjs */ \"./node_modules/handsontable/cellTypes/autocompleteType/autocompleteType.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AutocompleteCellType\", function() { return _autocompleteType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"AutocompleteCellType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return _autocompleteType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CELL_TYPE\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/autocompleteType/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/checkboxType/checkboxType.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/checkboxType/checkboxType.mjs ***!
  \***************************************************************************/
/*! exports provided: CELL_TYPE, CheckboxCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return CELL_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CheckboxCellType\", function() { return CheckboxCellType; });\n/* harmony import */ var _editors_checkboxEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../editors/checkboxEditor/index.mjs */ \"./node_modules/handsontable/editors/checkboxEditor/index.mjs\");\n/* harmony import */ var _renderers_checkboxRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../renderers/checkboxRenderer/index.mjs */ \"./node_modules/handsontable/renderers/checkboxRenderer/index.mjs\");\n\n\nconst CELL_TYPE = 'checkbox';\nconst CheckboxCellType = {\n  CELL_TYPE,\n  editor: _editors_checkboxEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CheckboxEditor\"],\n  renderer: _renderers_checkboxRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"checkboxRenderer\"]\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/checkboxType/checkboxType.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/checkboxType/index.mjs":
/*!********************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/checkboxType/index.mjs ***!
  \********************************************************************/
/*! exports provided: CELL_TYPE, CheckboxCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _checkboxType_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./checkboxType.mjs */ \"./node_modules/handsontable/cellTypes/checkboxType/checkboxType.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return _checkboxType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CELL_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CheckboxCellType\", function() { return _checkboxType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CheckboxCellType\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/checkboxType/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/dateType/dateType.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/dateType/dateType.mjs ***!
  \*******************************************************************/
/*! exports provided: CELL_TYPE, DateCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return CELL_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DateCellType\", function() { return DateCellType; });\n/* harmony import */ var _editors_dateEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../editors/dateEditor/index.mjs */ \"./node_modules/handsontable/editors/dateEditor/index.mjs\");\n/* harmony import */ var _renderers_dateRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../renderers/dateRenderer/index.mjs */ \"./node_modules/handsontable/renderers/dateRenderer/index.mjs\");\n/* harmony import */ var _validators_dateValidator_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../validators/dateValidator/index.mjs */ \"./node_modules/handsontable/validators/dateValidator/index.mjs\");\n\n\n\nconst CELL_TYPE = 'date';\nconst DateCellType = {\n  CELL_TYPE,\n  editor: _editors_dateEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"DateEditor\"],\n  // displays small gray arrow on right side of the cell\n  renderer: _renderers_dateRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"dateRenderer\"],\n  validator: _validators_dateValidator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"dateValidator\"]\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/dateType/dateType.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/dateType/index.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/dateType/index.mjs ***!
  \****************************************************************/
/*! exports provided: CELL_TYPE, DateCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dateType_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dateType.mjs */ \"./node_modules/handsontable/cellTypes/dateType/dateType.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return _dateType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CELL_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DateCellType\", function() { return _dateType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"DateCellType\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/dateType/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/dropdownType/dropdownType.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/dropdownType/dropdownType.mjs ***!
  \***************************************************************************/
/*! exports provided: CELL_TYPE, DropdownCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return CELL_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DropdownCellType\", function() { return DropdownCellType; });\n/* harmony import */ var _editors_dropdownEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../editors/dropdownEditor/index.mjs */ \"./node_modules/handsontable/editors/dropdownEditor/index.mjs\");\n/* harmony import */ var _renderers_dropdownRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../renderers/dropdownRenderer/index.mjs */ \"./node_modules/handsontable/renderers/dropdownRenderer/index.mjs\");\n/* harmony import */ var _validators_dropdownValidator_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../validators/dropdownValidator/index.mjs */ \"./node_modules/handsontable/validators/dropdownValidator/index.mjs\");\n\n\n\nconst CELL_TYPE = 'dropdown';\nconst DropdownCellType = {\n  CELL_TYPE,\n  editor: _editors_dropdownEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"DropdownEditor\"],\n  // displays small gray arrow on right side of the cell\n  renderer: _renderers_dropdownRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"dropdownRenderer\"],\n  validator: _validators_dropdownValidator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"dropdownValidator\"]\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/dropdownType/dropdownType.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/dropdownType/index.mjs":
/*!********************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/dropdownType/index.mjs ***!
  \********************************************************************/
/*! exports provided: CELL_TYPE, DropdownCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dropdownType_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dropdownType.mjs */ \"./node_modules/handsontable/cellTypes/dropdownType/dropdownType.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return _dropdownType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CELL_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DropdownCellType\", function() { return _dropdownType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"DropdownCellType\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/dropdownType/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/handsontableType/handsontableType.mjs":
/*!***********************************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/handsontableType/handsontableType.mjs ***!
  \***********************************************************************************/
/*! exports provided: CELL_TYPE, HandsontableCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return CELL_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HandsontableCellType\", function() { return HandsontableCellType; });\n/* harmony import */ var _editors_handsontableEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../editors/handsontableEditor/index.mjs */ \"./node_modules/handsontable/editors/handsontableEditor/index.mjs\");\n/* harmony import */ var _renderers_handsontableRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../renderers/handsontableRenderer/index.mjs */ \"./node_modules/handsontable/renderers/handsontableRenderer/index.mjs\");\n\n\nconst CELL_TYPE = 'handsontable';\nconst HandsontableCellType = {\n  CELL_TYPE,\n  editor: _editors_handsontableEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"HandsontableEditor\"],\n  // displays small gray arrow on right side of the cell\n  renderer: _renderers_handsontableRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"handsontableRenderer\"]\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/handsontableType/handsontableType.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/handsontableType/index.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/handsontableType/index.mjs ***!
  \************************************************************************/
/*! exports provided: CELL_TYPE, HandsontableCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _handsontableType_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./handsontableType.mjs */ \"./node_modules/handsontable/cellTypes/handsontableType/handsontableType.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return _handsontableType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CELL_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HandsontableCellType\", function() { return _handsontableType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"HandsontableCellType\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/handsontableType/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/index.mjs":
/*!*******************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/index.mjs ***!
  \*******************************************************/
/*! exports provided: registerAllCellTypes, AutocompleteCellType, AUTOCOMPLETE_TYPE, CheckboxCellType, CHECKBOX_TYPE, DateCellType, DATE_TYPE, DropdownCellType, DROPDOWN_TYPE, HandsontableCellType, HANDSONTABLE_TYPE, NumericCellType, NUMERIC_TYPE, PasswordCellType, PASSWORD_TYPE, SelectCellType, SELECT_TYPE, TextCellType, TEXT_TYPE, TimeCellType, TIME_TYPE, getCellType, getRegisteredCellTypeNames, getRegisteredCellTypes, hasCellType, registerCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerAllCellTypes\", function() { return registerAllCellTypes; });\n/* harmony import */ var _autocompleteType_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./autocompleteType/index.mjs */ \"./node_modules/handsontable/cellTypes/autocompleteType/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AutocompleteCellType\", function() { return _autocompleteType_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"AutocompleteCellType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AUTOCOMPLETE_TYPE\", function() { return _autocompleteType_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CELL_TYPE\"]; });\n\n/* harmony import */ var _checkboxType_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./checkboxType/index.mjs */ \"./node_modules/handsontable/cellTypes/checkboxType/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CheckboxCellType\", function() { return _checkboxType_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"CheckboxCellType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CHECKBOX_TYPE\", function() { return _checkboxType_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"CELL_TYPE\"]; });\n\n/* harmony import */ var _dateType_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dateType/index.mjs */ \"./node_modules/handsontable/cellTypes/dateType/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DateCellType\", function() { return _dateType_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"DateCellType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DATE_TYPE\", function() { return _dateType_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CELL_TYPE\"]; });\n\n/* harmony import */ var _dropdownType_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dropdownType/index.mjs */ \"./node_modules/handsontable/cellTypes/dropdownType/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DropdownCellType\", function() { return _dropdownType_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"DropdownCellType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DROPDOWN_TYPE\", function() { return _dropdownType_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"CELL_TYPE\"]; });\n\n/* harmony import */ var _handsontableType_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./handsontableType/index.mjs */ \"./node_modules/handsontable/cellTypes/handsontableType/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HandsontableCellType\", function() { return _handsontableType_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"HandsontableCellType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HANDSONTABLE_TYPE\", function() { return _handsontableType_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CELL_TYPE\"]; });\n\n/* harmony import */ var _numericType_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./numericType/index.mjs */ \"./node_modules/handsontable/cellTypes/numericType/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NumericCellType\", function() { return _numericType_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"NumericCellType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NUMERIC_TYPE\", function() { return _numericType_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"CELL_TYPE\"]; });\n\n/* harmony import */ var _passwordType_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./passwordType/index.mjs */ \"./node_modules/handsontable/cellTypes/passwordType/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PasswordCellType\", function() { return _passwordType_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"PasswordCellType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PASSWORD_TYPE\", function() { return _passwordType_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"CELL_TYPE\"]; });\n\n/* harmony import */ var _selectType_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./selectType/index.mjs */ \"./node_modules/handsontable/cellTypes/selectType/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SelectCellType\", function() { return _selectType_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"SelectCellType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SELECT_TYPE\", function() { return _selectType_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"CELL_TYPE\"]; });\n\n/* harmony import */ var _textType_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./textType/index.mjs */ \"./node_modules/handsontable/cellTypes/textType/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TextCellType\", function() { return _textType_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"TextCellType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TEXT_TYPE\", function() { return _textType_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"CELL_TYPE\"]; });\n\n/* harmony import */ var _timeType_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./timeType/index.mjs */ \"./node_modules/handsontable/cellTypes/timeType/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TimeCellType\", function() { return _timeType_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"TimeCellType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TIME_TYPE\", function() { return _timeType_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CELL_TYPE\"]; });\n\n/* harmony import */ var _registry_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./registry.mjs */ \"./node_modules/handsontable/cellTypes/registry.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getCellType\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_10__[\"getCellType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredCellTypeNames\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_10__[\"getRegisteredCellTypeNames\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredCellTypes\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_10__[\"getRegisteredCellTypes\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasCellType\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_10__[\"hasCellType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"registerCellType\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_10__[\"registerCellType\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Registers all available cell types.\n */\nfunction registerAllCellTypes() {\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_10__[\"registerCellType\"])(_autocompleteType_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"AutocompleteCellType\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_10__[\"registerCellType\"])(_checkboxType_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"CheckboxCellType\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_10__[\"registerCellType\"])(_dateType_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"DateCellType\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_10__[\"registerCellType\"])(_dropdownType_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"DropdownCellType\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_10__[\"registerCellType\"])(_handsontableType_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"HandsontableCellType\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_10__[\"registerCellType\"])(_numericType_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"NumericCellType\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_10__[\"registerCellType\"])(_passwordType_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"PasswordCellType\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_10__[\"registerCellType\"])(_selectType_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"SelectCellType\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_10__[\"registerCellType\"])(_textType_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"TextCellType\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_10__[\"registerCellType\"])(_timeType_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"TimeCellType\"]);\n}\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/numericType/index.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/numericType/index.mjs ***!
  \*******************************************************************/
/*! exports provided: CELL_TYPE, NumericCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _numericType_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numericType.mjs */ \"./node_modules/handsontable/cellTypes/numericType/numericType.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return _numericType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CELL_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NumericCellType\", function() { return _numericType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"NumericCellType\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/numericType/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/numericType/numericType.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/numericType/numericType.mjs ***!
  \*************************************************************************/
/*! exports provided: CELL_TYPE, NumericCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return CELL_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NumericCellType\", function() { return NumericCellType; });\n/* harmony import */ var _editors_numericEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../editors/numericEditor/index.mjs */ \"./node_modules/handsontable/editors/numericEditor/index.mjs\");\n/* harmony import */ var _renderers_numericRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../renderers/numericRenderer/index.mjs */ \"./node_modules/handsontable/renderers/numericRenderer/index.mjs\");\n/* harmony import */ var _validators_numericValidator_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../validators/numericValidator/index.mjs */ \"./node_modules/handsontable/validators/numericValidator/index.mjs\");\n\n\n\nconst CELL_TYPE = 'numeric';\nconst NumericCellType = {\n  CELL_TYPE,\n  editor: _editors_numericEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"NumericEditor\"],\n  renderer: _renderers_numericRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"numericRenderer\"],\n  validator: _validators_numericValidator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"numericValidator\"],\n  dataType: 'number'\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/numericType/numericType.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/passwordType/index.mjs":
/*!********************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/passwordType/index.mjs ***!
  \********************************************************************/
/*! exports provided: CELL_TYPE, PasswordCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _passwordType_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./passwordType.mjs */ \"./node_modules/handsontable/cellTypes/passwordType/passwordType.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return _passwordType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CELL_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PasswordCellType\", function() { return _passwordType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PasswordCellType\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/passwordType/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/passwordType/passwordType.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/passwordType/passwordType.mjs ***!
  \***************************************************************************/
/*! exports provided: CELL_TYPE, PasswordCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return CELL_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PasswordCellType\", function() { return PasswordCellType; });\n/* harmony import */ var _editors_passwordEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../editors/passwordEditor/index.mjs */ \"./node_modules/handsontable/editors/passwordEditor/index.mjs\");\n/* harmony import */ var _renderers_passwordRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../renderers/passwordRenderer/index.mjs */ \"./node_modules/handsontable/renderers/passwordRenderer/index.mjs\");\n\n\nconst CELL_TYPE = 'password';\nconst PasswordCellType = {\n  CELL_TYPE,\n  editor: _editors_passwordEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PasswordEditor\"],\n  renderer: _renderers_passwordRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"passwordRenderer\"],\n  copyable: false\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/passwordType/passwordType.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/registry.mjs":
/*!**********************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/registry.mjs ***!
  \**********************************************************/
/*! exports provided: registerCellType, getCellType, hasCellType, getRegisteredCellTypeNames, getRegisteredCellTypes */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerCellType\", function() { return _register; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getCellType\", function() { return _getItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasCellType\", function() { return hasItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredCellTypeNames\", function() { return getNames; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredCellTypes\", function() { return getValues; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/staticRegister.mjs */ \"./node_modules/handsontable/utils/staticRegister.mjs\");\n/* harmony import */ var _editors_registry_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../editors/registry.mjs */ \"./node_modules/handsontable/editors/registry.mjs\");\n/* harmony import */ var _renderers_registry_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../renderers/registry.mjs */ \"./node_modules/handsontable/renderers/registry.mjs\");\n/* harmony import */ var _validators_registry_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../validators/registry.mjs */ \"./node_modules/handsontable/validators/registry.mjs\");\n\n\n\n\n\nconst {\n  register,\n  getItem,\n  hasItem,\n  getNames,\n  getValues\n} = Object(_utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('cellTypes');\n\n/**\n * Retrieve cell type object.\n *\n * @param {string} name Cell type identification.\n * @returns {object} Returns cell type object.\n */\nfunction _getItem(name) {\n  if (!hasItem(name)) {\n    throw Error(`You declared cell type \"${name}\" as a string that is not mapped to a known object.\n                 Cell type must be an object or a string mapped to an object registered by\n                 \"Handsontable.cellTypes.registerCellType\" method`);\n  }\n  return getItem(name);\n}\n\n/**\n * Register cell type under specified name.\n *\n * @param {string} name Cell type identification.\n * @param {object} type An object with contains keys (eq: `editor`, `renderer`, `validator`) which describes specified behaviour of the cell.\n */\nfunction _register(name, type) {\n  if (typeof name !== 'string') {\n    type = name;\n    name = type.CELL_TYPE;\n  }\n  const {\n    editor,\n    renderer,\n    validator\n  } = type;\n  if (editor) {\n    Object(_editors_registry_mjs__WEBPACK_IMPORTED_MODULE_2__[\"registerEditor\"])(name, editor);\n  }\n  if (renderer) {\n    Object(_renderers_registry_mjs__WEBPACK_IMPORTED_MODULE_3__[\"registerRenderer\"])(name, renderer);\n  }\n  if (validator) {\n    Object(_validators_registry_mjs__WEBPACK_IMPORTED_MODULE_4__[\"registerValidator\"])(name, validator);\n  }\n  register(name, type);\n}\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/registry.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/selectType/index.mjs":
/*!******************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/selectType/index.mjs ***!
  \******************************************************************/
/*! exports provided: CELL_TYPE, SelectCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _selectType_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selectType.mjs */ \"./node_modules/handsontable/cellTypes/selectType/selectType.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return _selectType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CELL_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SelectCellType\", function() { return _selectType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"SelectCellType\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/selectType/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/selectType/selectType.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/selectType/selectType.mjs ***!
  \***********************************************************************/
/*! exports provided: CELL_TYPE, SelectCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return CELL_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SelectCellType\", function() { return SelectCellType; });\n/* harmony import */ var _editors_selectEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../editors/selectEditor/index.mjs */ \"./node_modules/handsontable/editors/selectEditor/index.mjs\");\n/* harmony import */ var _renderers_selectRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../renderers/selectRenderer/index.mjs */ \"./node_modules/handsontable/renderers/selectRenderer/index.mjs\");\n\n\nconst CELL_TYPE = 'select';\nconst SelectCellType = {\n  CELL_TYPE,\n  editor: _editors_selectEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"SelectEditor\"],\n  renderer: _renderers_selectRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"selectRenderer\"]\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/selectType/selectType.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/textType/index.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/textType/index.mjs ***!
  \****************************************************************/
/*! exports provided: CELL_TYPE, TextCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _textType_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./textType.mjs */ \"./node_modules/handsontable/cellTypes/textType/textType.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return _textType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CELL_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TextCellType\", function() { return _textType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"TextCellType\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/textType/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/textType/textType.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/textType/textType.mjs ***!
  \*******************************************************************/
/*! exports provided: CELL_TYPE, TextCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return CELL_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TextCellType\", function() { return TextCellType; });\n/* harmony import */ var _editors_textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../editors/textEditor/index.mjs */ \"./node_modules/handsontable/editors/textEditor/index.mjs\");\n/* harmony import */ var _renderers_textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../renderers/textRenderer/index.mjs */ \"./node_modules/handsontable/renderers/textRenderer/index.mjs\");\n\n\nconst CELL_TYPE = 'text';\nconst TextCellType = {\n  CELL_TYPE,\n  editor: _editors_textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"TextEditor\"],\n  renderer: _renderers_textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"textRenderer\"]\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/textType/textType.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/timeType/index.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/timeType/index.mjs ***!
  \****************************************************************/
/*! exports provided: CELL_TYPE, TimeCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _timeType_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timeType.mjs */ \"./node_modules/handsontable/cellTypes/timeType/timeType.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return _timeType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CELL_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TimeCellType\", function() { return _timeType_mjs__WEBPACK_IMPORTED_MODULE_0__[\"TimeCellType\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/timeType/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/cellTypes/timeType/timeType.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/cellTypes/timeType/timeType.mjs ***!
  \*******************************************************************/
/*! exports provided: CELL_TYPE, TimeCellType */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CELL_TYPE\", function() { return CELL_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TimeCellType\", function() { return TimeCellType; });\n/* harmony import */ var _editors_timeEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../editors/timeEditor/index.mjs */ \"./node_modules/handsontable/editors/timeEditor/index.mjs\");\n/* harmony import */ var _renderers_timeRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../renderers/timeRenderer/index.mjs */ \"./node_modules/handsontable/renderers/timeRenderer/index.mjs\");\n/* harmony import */ var _validators_timeValidator_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../validators/timeValidator/index.mjs */ \"./node_modules/handsontable/validators/timeValidator/index.mjs\");\n\n\n\nconst CELL_TYPE = 'time';\nconst TimeCellType = {\n  CELL_TYPE,\n  editor: _editors_timeEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"TimeEditor\"],\n  renderer: _renderers_timeRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"timeRenderer\"],\n  validator: _validators_timeValidator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"timeValidator\"]\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/cellTypes/timeType/timeType.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/core.mjs":
/*!********************************************!*\
  !*** ./node_modules/handsontable/core.mjs ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Core; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var core_js_modules_web_immediate_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/web.immediate.js */ \"./node_modules/core-js/modules/web.immediate.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./helpers/browser.mjs */ \"./node_modules/handsontable/helpers/browser.mjs\");\n/* harmony import */ var _editorManager_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./editorManager.mjs */ \"./node_modules/handsontable/editorManager.mjs\");\n/* harmony import */ var _eventManager_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./eventManager.mjs */ \"./node_modules/handsontable/eventManager.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _focusManager_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./focusManager.mjs */ \"./node_modules/handsontable/focusManager.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _utils_parseTable_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./utils/parseTable.mjs */ \"./node_modules/handsontable/utils/parseTable.mjs\");\n/* harmony import */ var _plugins_registry_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./plugins/registry.mjs */ \"./node_modules/handsontable/plugins/registry.mjs\");\n/* harmony import */ var _renderers_registry_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./renderers/registry.mjs */ \"./node_modules/handsontable/renderers/registry.mjs\");\n/* harmony import */ var _editors_registry_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./editors/registry.mjs */ \"./node_modules/handsontable/editors/registry.mjs\");\n/* harmony import */ var _validators_registry_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./validators/registry.mjs */ \"./node_modules/handsontable/validators/registry.mjs\");\n/* harmony import */ var _helpers_string_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./helpers/string.mjs */ \"./node_modules/handsontable/helpers/string.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _tableView_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./tableView.mjs */ \"./node_modules/handsontable/tableView.mjs\");\n/* harmony import */ var _dataMap_dataSource_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./dataMap/dataSource.mjs */ \"./node_modules/handsontable/dataMap/dataSource.mjs\");\n/* harmony import */ var _helpers_data_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./helpers/data.mjs */ \"./node_modules/handsontable/helpers/data.mjs\");\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n/* harmony import */ var _utils_rootInstance_mjs__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./utils/rootInstance.mjs */ \"./node_modules/handsontable/utils/rootInstance.mjs\");\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _i18n_registry_mjs__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./i18n/registry.mjs */ \"./node_modules/handsontable/i18n/registry.mjs\");\n/* harmony import */ var _i18n_utils_mjs__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./i18n/utils.mjs */ \"./node_modules/handsontable/i18n/utils.mjs\");\n/* harmony import */ var _selection_index_mjs__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./selection/index.mjs */ \"./node_modules/handsontable/selection/index.mjs\");\n/* harmony import */ var _dataMap_index_mjs__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./dataMap/index.mjs */ \"./node_modules/handsontable/dataMap/index.mjs\");\n/* harmony import */ var _core_index_mjs__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./core/index.mjs */ \"./node_modules/handsontable/core/index.mjs\");\n/* harmony import */ var _utils_dataStructures_uniqueMap_mjs__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./utils/dataStructures/uniqueMap.mjs */ \"./node_modules/handsontable/utils/dataStructures/uniqueMap.mjs\");\n/* harmony import */ var _shortcuts_index_mjs__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./shortcuts/index.mjs */ \"./node_modules/handsontable/shortcuts/index.mjs\");\n/* harmony import */ var _shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./shortcutContexts/index.mjs */ \"./node_modules/handsontable/shortcutContexts/index.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nlet activeGuid = null;\n\n/**\n * Keeps the collection of the all Handsontable instances created on the same page. The\n * list is then used to trigger the \"afterUnlisten\" hook when the \"listen()\" method was\n * called on another instance.\n *\n * @type {Map<string, Core>}\n */\nconst foreignHotInstances = new Map();\n\n/**\n * A set of deprecated feature names.\n *\n * @type {Set<string>}\n */\n// eslint-disable-next-line no-unused-vars\nconst deprecationWarns = new Set();\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * Handsontable constructor.\n *\n * @core\n * @class Core\n * @description\n *\n * The `Handsontable` class (known as the `Core`) lets you modify the grid's behavior by using Handsontable's public API methods.\n *\n * ::: only-for react\n * To use these methods, associate a Handsontable instance with your instance\n * of the [`HotTable` component](@/guides/getting-started/installation/installation.md#_4-use-the-hottable-component),\n * by using React's `ref` feature (read more on the [Instance methods](@/guides/getting-started/react-methods/react-methods.md) page).\n * :::\n *\n * ## How to call a method\n *\n * ::: only-for javascript\n * ```js\n * // create a Handsontable instance\n * const hot = new Handsontable(document.getElementById('example'), options);\n *\n * // call a method\n * hot.setDataAtCell(0, 0, 'new value');\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * import { useRef } from 'react';\n *\n * const hotTableComponent = useRef(null);\n *\n * <HotTable\n *   // associate your `HotTable` component with a Handsontable instance\n *   ref={hotTableComponent}\n *   settings={options}\n * />\n *\n * // access the Handsontable instance, under the `.current.hotInstance` property\n * // call a method\n * hotTableComponent.current.hotInstance.setDataAtCell(0, 0, 'new value');\n * ```\n * :::\n *\n * @param {HTMLElement} rootElement The element to which the Handsontable instance is injected.\n * @param {object} userSettings The user defined options.\n * @param {boolean} [rootInstanceSymbol=false] Indicates if the instance is root of all later instances created.\n */\nfunction Core(rootElement, userSettings) {\n  var _userSettings$layoutD,\n    _this = this;\n  let rootInstanceSymbol = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  let instance = this;\n  const eventManager = new _eventManager_mjs__WEBPACK_IMPORTED_MODULE_15__[\"default\"](instance);\n  let datamap;\n  let dataSource;\n  let grid;\n  let editorManager;\n  let focusManager;\n  let viewportScroller;\n  let firstRun = true;\n  if (Object(_utils_rootInstance_mjs__WEBPACK_IMPORTED_MODULE_30__[\"hasValidParameter\"])(rootInstanceSymbol)) {\n    Object(_utils_rootInstance_mjs__WEBPACK_IMPORTED_MODULE_30__[\"registerAsRootInstance\"])(this);\n  }\n\n  // TODO: check if references to DOM elements should be move to UI layer (Walkontable)\n  /**\n   * Reference to the container element.\n   *\n   * @private\n   * @type {HTMLElement}\n   */\n  this.rootElement = rootElement;\n  /**\n   * The nearest document over container.\n   *\n   * @private\n   * @type {Document}\n   */\n  this.rootDocument = rootElement.ownerDocument;\n  /**\n   * Window object over container's document.\n   *\n   * @private\n   * @type {Window}\n   */\n  this.rootWindow = this.rootDocument.defaultView;\n  /**\n   * A boolean to tell if the Handsontable has been fully destroyed. This is set to `true`\n   * after `afterDestroy` hook is called.\n   *\n   * @memberof Core#\n   * @member isDestroyed\n   * @type {boolean}\n   */\n  this.isDestroyed = false;\n  /**\n   * The counter determines how many times the render suspending was called. It allows\n   * tracking the nested suspending calls. For each render suspend resuming call the\n   * counter is decremented. The value equal to 0 means the render suspending feature\n   * is disabled.\n   *\n   * @private\n   * @type {number}\n   */\n  this.renderSuspendedCounter = 0;\n  /**\n   * The counter determines how many times the execution suspending was called. It allows\n   * tracking the nested suspending calls. For each execution suspend resuming call the\n   * counter is decremented. The value equal to 0 means the execution suspending feature\n   * is disabled.\n   *\n   * @private\n   * @type {number}\n   */\n  this.executionSuspendedCounter = 0;\n  const layoutDirection = (_userSettings$layoutD = userSettings === null || userSettings === void 0 ? void 0 : userSettings.layoutDirection) !== null && _userSettings$layoutD !== void 0 ? _userSettings$layoutD : 'inherit';\n  const rootElementDirection = ['rtl', 'ltr'].includes(layoutDirection) ? layoutDirection : this.rootWindow.getComputedStyle(this.rootElement).direction;\n  this.rootElement.setAttribute('dir', rootElementDirection);\n\n  /**\n   * Checks if the grid is rendered using the right-to-left layout direction.\n   *\n   * @since 12.0.0\n   * @memberof Core#\n   * @function isRtl\n   * @returns {boolean} True if RTL.\n   */\n  this.isRtl = function () {\n    return rootElementDirection === 'rtl';\n  };\n\n  /**\n   * Checks if the grid is rendered using the left-to-right layout direction.\n   *\n   * @since 12.0.0\n   * @memberof Core#\n   * @function isLtr\n   * @returns {boolean} True if LTR.\n   */\n  this.isLtr = function () {\n    return !instance.isRtl();\n  };\n\n  /**\n   * Returns 1 for LTR; -1 for RTL. Useful for calculations.\n   *\n   * @since 12.0.0\n   * @memberof Core#\n   * @function getDirectionFactor\n   * @returns {number} Returns 1 for LTR; -1 for RTL.\n   */\n  this.getDirectionFactor = function () {\n    return instance.isLtr() ? 1 : -1;\n  };\n  userSettings.language = Object(_i18n_registry_mjs__WEBPACK_IMPORTED_MODULE_33__[\"getValidLanguageCode\"])(userSettings.language);\n  const metaManager = new _dataMap_index_mjs__WEBPACK_IMPORTED_MODULE_36__[\"MetaManager\"](instance, userSettings, [_dataMap_index_mjs__WEBPACK_IMPORTED_MODULE_36__[\"DynamicCellMetaMod\"], _dataMap_index_mjs__WEBPACK_IMPORTED_MODULE_36__[\"ExtendMetaPropertiesMod\"]]);\n  const tableMeta = metaManager.getTableMeta();\n  const globalMeta = metaManager.getGlobalMeta();\n  const pluginsRegistry = Object(_utils_dataStructures_uniqueMap_mjs__WEBPACK_IMPORTED_MODULE_38__[\"createUniqueMap\"])();\n  this.container = this.rootDocument.createElement('div');\n  this.renderCall = false;\n  rootElement.insertBefore(this.container, rootElement.firstChild);\n  if (Object(_utils_rootInstance_mjs__WEBPACK_IMPORTED_MODULE_30__[\"isRootInstance\"])(this)) {\n    Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"_injectProductInfo\"])(userSettings.licenseKey, rootElement);\n  }\n  this.guid = `ht_${Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_24__[\"randomString\"])()}`; // this is the namespace for global events\n\n  foreignHotInstances.set(this.guid, this);\n\n  /**\n   * Instance of index mapper which is responsible for managing the column indexes.\n   *\n   * @memberof Core#\n   * @member columnIndexMapper\n   * @type {IndexMapper}\n   */\n  this.columnIndexMapper = new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_29__[\"IndexMapper\"]();\n  /**\n   * Instance of index mapper which is responsible for managing the row indexes.\n   *\n   * @memberof Core#\n   * @member rowIndexMapper\n   * @type {IndexMapper}\n   */\n  this.rowIndexMapper = new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_29__[\"IndexMapper\"]();\n  this.columnIndexMapper.addLocalHook('indexesSequenceChange', source => {\n    instance.runHooks('afterColumnSequenceChange', source);\n  });\n  this.rowIndexMapper.addLocalHook('indexesSequenceChange', source => {\n    instance.runHooks('afterRowSequenceChange', source);\n  });\n  dataSource = new _dataMap_dataSource_mjs__WEBPACK_IMPORTED_MODULE_27__[\"default\"](instance);\n  if (!this.rootElement.id || this.rootElement.id.substring(0, 3) === 'ht_') {\n    this.rootElement.id = this.guid; // if root element does not have an id, assign a random id\n  }\n  const visualToRenderableCoords = coords => {\n    const {\n      row: visualRow,\n      col: visualColumn\n    } = coords;\n    return instance._createCellCoords(\n    // We just store indexes for rows and columns without headers.\n    visualRow >= 0 ? instance.rowIndexMapper.getRenderableFromVisualIndex(visualRow) : visualRow, visualColumn >= 0 ? instance.columnIndexMapper.getRenderableFromVisualIndex(visualColumn) : visualColumn);\n  };\n  const renderableToVisualCoords = coords => {\n    const {\n      row: renderableRow,\n      col: renderableColumn\n    } = coords;\n    return instance._createCellCoords(\n    // We just store indexes for rows and columns without headers.\n    renderableRow >= 0 ? instance.rowIndexMapper.getVisualFromRenderableIndex(renderableRow) : renderableRow, renderableColumn >= 0 ? instance.columnIndexMapper.getVisualFromRenderableIndex(renderableColumn) : renderableColumn // eslint-disable-line max-len\n    );\n  };\n  const findFirstNonHiddenRenderableRow = (visualRowFrom, visualRowTo) => {\n    const dir = visualRowTo > visualRowFrom ? 1 : -1;\n    const minIndex = Math.min(visualRowFrom, visualRowTo);\n    const maxIndex = Math.max(visualRowFrom, visualRowTo);\n    const rowIndex = instance.rowIndexMapper.getNearestNotHiddenIndex(visualRowFrom, dir);\n    if (rowIndex === null || dir === 1 && rowIndex > maxIndex || dir === -1 && rowIndex < minIndex) {\n      return null;\n    }\n    return rowIndex >= 0 ? instance.rowIndexMapper.getRenderableFromVisualIndex(rowIndex) : rowIndex;\n  };\n  const findFirstNonHiddenRenderableColumn = (visualColumnFrom, visualColumnTo) => {\n    const dir = visualColumnTo > visualColumnFrom ? 1 : -1;\n    const minIndex = Math.min(visualColumnFrom, visualColumnTo);\n    const maxIndex = Math.max(visualColumnFrom, visualColumnTo);\n    const columnIndex = instance.columnIndexMapper.getNearestNotHiddenIndex(visualColumnFrom, dir);\n    if (columnIndex === null || dir === 1 && columnIndex > maxIndex || dir === -1 && columnIndex < minIndex) {\n      return null;\n    }\n    return columnIndex >= 0 ? instance.columnIndexMapper.getRenderableFromVisualIndex(columnIndex) : columnIndex;\n  };\n  let selection = new _selection_index_mjs__WEBPACK_IMPORTED_MODULE_35__[\"Selection\"](tableMeta, {\n    rowIndexMapper: instance.rowIndexMapper,\n    columnIndexMapper: instance.columnIndexMapper,\n    countCols: () => instance.countCols(),\n    countRows: () => instance.countRows(),\n    propToCol: prop => datamap.propToCol(prop),\n    isEditorOpened: () => instance.getActiveEditor() ? instance.getActiveEditor().isOpened() : false,\n    countRenderableColumns: () => this.view.countRenderableColumns(),\n    countRenderableRows: () => this.view.countRenderableRows(),\n    countRowHeaders: () => this.countRowHeaders(),\n    countColHeaders: () => this.countColHeaders(),\n    countRenderableRowsInRange: function () {\n      return _this.view.countRenderableRowsInRange(...arguments);\n    },\n    countRenderableColumnsInRange: function () {\n      return _this.view.countRenderableColumnsInRange(...arguments);\n    },\n    getShortcutManager: () => instance.getShortcutManager(),\n    createCellCoords: (row, column) => instance._createCellCoords(row, column),\n    createCellRange: (highlight, from, to) => instance._createCellRange(highlight, from, to),\n    visualToRenderableCoords,\n    renderableToVisualCoords,\n    findFirstNonHiddenRenderableRow,\n    findFirstNonHiddenRenderableColumn,\n    isDisabledCellSelection: (visualRow, visualColumn) => {\n      if (visualRow < 0 || visualColumn < 0) {\n        return instance.getSettings().disableVisualSelection;\n      }\n      return instance.getCellMeta(visualRow, visualColumn).disableVisualSelection;\n    }\n  });\n  this.selection = selection;\n  const onIndexMapperCacheUpdate = _ref => {\n    let {\n      hiddenIndexesChanged\n    } = _ref;\n    if (hiddenIndexesChanged) {\n      this.selection.commit();\n    }\n  };\n  this.columnIndexMapper.addLocalHook('cacheUpdated', onIndexMapperCacheUpdate);\n  this.rowIndexMapper.addLocalHook('cacheUpdated', onIndexMapperCacheUpdate);\n  this.selection.addLocalHook('afterSetRangeEnd', (cellCoords, isLastSelectionLayer) => {\n    const preventScrolling = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_16__[\"createObjectPropListener\"])(false);\n    const selectionRange = this.selection.getSelectedRange();\n    const {\n      from,\n      to\n    } = selectionRange.current();\n    const selectionLayerLevel = selectionRange.size() - 1;\n    this.runHooks('afterSelection', from.row, from.col, to.row, to.col, preventScrolling, selectionLayerLevel);\n    this.runHooks('afterSelectionByProp', from.row, instance.colToProp(from.col), to.row, instance.colToProp(to.col), preventScrolling, selectionLayerLevel);\n    if (isLastSelectionLayer && (!preventScrolling.isTouched() || preventScrolling.isTouched() && !preventScrolling.value)) {\n      viewportScroller.scrollTo(cellCoords);\n    }\n    const isSelectedByRowHeader = selection.isSelectedByRowHeader();\n    const isSelectedByColumnHeader = selection.isSelectedByColumnHeader();\n\n    // @TODO: These CSS classes are no longer needed anymore. They are used only as a indicator of the selected\n    // rows/columns in the MergedCells plugin (via border.js#L520 in the walkontable module). After fixing\n    // the Border class this should be removed.\n    if (isSelectedByRowHeader && isSelectedByColumnHeader) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"addClass\"])(this.rootElement, ['ht__selection--rows', 'ht__selection--columns']);\n    } else if (isSelectedByRowHeader) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"removeClass\"])(this.rootElement, 'ht__selection--columns');\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"addClass\"])(this.rootElement, 'ht__selection--rows');\n    } else if (isSelectedByColumnHeader) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"removeClass\"])(this.rootElement, 'ht__selection--rows');\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"addClass\"])(this.rootElement, 'ht__selection--columns');\n    } else {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"removeClass\"])(this.rootElement, ['ht__selection--rows', 'ht__selection--columns']);\n    }\n    if (selection.getSelectionSource() !== 'shift') {\n      editorManager.closeEditor(null);\n    }\n    instance.view.render();\n    editorManager.prepareEditor();\n  });\n  this.selection.addLocalHook('beforeSetFocus', cellCoords => {\n    this.runHooks('beforeSelectionFocusSet', cellCoords.row, cellCoords.col);\n  });\n  this.selection.addLocalHook('afterSetFocus', cellCoords => {\n    const preventScrolling = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_16__[\"createObjectPropListener\"])(false);\n    this.runHooks('afterSelectionFocusSet', cellCoords.row, cellCoords.col, preventScrolling);\n    if (!preventScrolling.isTouched() || preventScrolling.isTouched() && !preventScrolling.value) {\n      viewportScroller.scrollTo(cellCoords);\n    }\n    editorManager.closeEditor();\n    instance.view.render();\n    editorManager.prepareEditor();\n  });\n  this.selection.addLocalHook('afterSelectionFinished', cellRanges => {\n    const selectionLayerLevel = cellRanges.length - 1;\n    const {\n      from,\n      to\n    } = cellRanges[selectionLayerLevel];\n    this.runHooks('afterSelectionEnd', from.row, from.col, to.row, to.col, selectionLayerLevel);\n    this.runHooks('afterSelectionEndByProp', from.row, instance.colToProp(from.col), to.row, instance.colToProp(to.col), selectionLayerLevel);\n  });\n  this.selection.addLocalHook('afterIsMultipleSelection', isMultiple => {\n    const changedIsMultiple = this.runHooks('afterIsMultipleSelection', isMultiple.value);\n    if (isMultiple.value) {\n      isMultiple.value = changedIsMultiple;\n    }\n  });\n  this.selection.addLocalHook('afterDeselect', () => {\n    editorManager.closeEditor();\n    instance.view.render();\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"removeClass\"])(this.rootElement, ['ht__selection--rows', 'ht__selection--columns']);\n    this.runHooks('afterDeselect');\n  });\n  this.selection.addLocalHook('beforeHighlightSet', () => this.runHooks('beforeSelectionHighlightSet')).addLocalHook('beforeSetRangeStart', function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return _this.runHooks('beforeSetRangeStart', ...args);\n  }).addLocalHook('beforeSetRangeStartOnly', function () {\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n    return _this.runHooks('beforeSetRangeStartOnly', ...args);\n  }).addLocalHook('beforeSetRangeEnd', function () {\n    for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      args[_key3] = arguments[_key3];\n    }\n    return _this.runHooks('beforeSetRangeEnd', ...args);\n  }).addLocalHook('beforeSelectColumns', function () {\n    for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n      args[_key4] = arguments[_key4];\n    }\n    return _this.runHooks('beforeSelectColumns', ...args);\n  }).addLocalHook('afterSelectColumns', function () {\n    for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n      args[_key5] = arguments[_key5];\n    }\n    return _this.runHooks('afterSelectColumns', ...args);\n  }).addLocalHook('beforeSelectRows', function () {\n    for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n      args[_key6] = arguments[_key6];\n    }\n    return _this.runHooks('beforeSelectRows', ...args);\n  }).addLocalHook('afterSelectRows', function () {\n    for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n      args[_key7] = arguments[_key7];\n    }\n    return _this.runHooks('afterSelectRows', ...args);\n  }).addLocalHook('beforeModifyTransformStart', function () {\n    for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n      args[_key8] = arguments[_key8];\n    }\n    return _this.runHooks('modifyTransformStart', ...args);\n  }).addLocalHook('afterModifyTransformStart', function () {\n    for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n      args[_key9] = arguments[_key9];\n    }\n    return _this.runHooks('afterModifyTransformStart', ...args);\n  }).addLocalHook('beforeModifyTransformFocus', function () {\n    for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n      args[_key10] = arguments[_key10];\n    }\n    return _this.runHooks('modifyTransformFocus', ...args);\n  }).addLocalHook('afterModifyTransformFocus', function () {\n    for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n      args[_key11] = arguments[_key11];\n    }\n    return _this.runHooks('afterModifyTransformFocus', ...args);\n  }).addLocalHook('beforeModifyTransformEnd', function () {\n    for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n      args[_key12] = arguments[_key12];\n    }\n    return _this.runHooks('modifyTransformEnd', ...args);\n  }).addLocalHook('afterModifyTransformEnd', function () {\n    for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n      args[_key13] = arguments[_key13];\n    }\n    return _this.runHooks('afterModifyTransformEnd', ...args);\n  }).addLocalHook('beforeRowWrap', function () {\n    for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n      args[_key14] = arguments[_key14];\n    }\n    return _this.runHooks('beforeRowWrap', ...args);\n  }).addLocalHook('beforeColumnWrap', function () {\n    for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {\n      args[_key15] = arguments[_key15];\n    }\n    return _this.runHooks('beforeColumnWrap', ...args);\n  }).addLocalHook('insertRowRequire', totalRows => this.alter('insert_row_above', totalRows, 1, 'auto')).addLocalHook('insertColRequire', totalCols => this.alter('insert_col_start', totalCols, 1, 'auto'));\n  grid = {\n    /**\n     * Inserts or removes rows and columns.\n     *\n     * @private\n     * @param {string} action Possible values: \"insert_row_above\", \"insert_row_below\", \"insert_col_start\", \"insert_col_end\",\n     *                        \"remove_row\", \"remove_col\".\n     * @param {number|Array} index Row or column visual index which from the alter action will be triggered.\n     *                             Alter actions such as \"remove_row\" and \"remove_col\" support array indexes in the\n     *                             format `[[index, amount], [index, amount]...]` this can be used to remove\n     *                             non-consecutive columns or rows in one call.\n     * @param {number} [amount=1] Amount of rows or columns to remove.\n     * @param {string} [source] Optional. Source of hook runner.\n     * @param {boolean} [keepEmptyRows] Optional. Flag for preventing deletion of empty rows.\n     */\n    alter(action, index) {\n      var _index, _index2;\n      let amount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n      let source = arguments.length > 3 ? arguments[3] : undefined;\n      let keepEmptyRows = arguments.length > 4 ? arguments[4] : undefined;\n      const normalizeIndexesGroup = indexes => {\n        if (indexes.length === 0) {\n          return [];\n        }\n        const sortedIndexes = [...indexes];\n\n        // Sort the indexes in ascending order.\n        sortedIndexes.sort((_ref2, _ref3) => {\n          let [indexA] = _ref2;\n          let [indexB] = _ref3;\n          if (indexA === indexB) {\n            return 0;\n          }\n          return indexA > indexB ? 1 : -1;\n        });\n\n        // Normalize the {index, amount} groups into bigger groups.\n        const normalizedIndexes = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"arrayReduce\"])(sortedIndexes, (acc, _ref4) => {\n          let [groupIndex, groupAmount] = _ref4;\n          const previousItem = acc[acc.length - 1];\n          const [prevIndex, prevAmount] = previousItem;\n          const prevLastIndex = prevIndex + prevAmount;\n          if (groupIndex <= prevLastIndex) {\n            const amountToAdd = Math.max(groupAmount - (prevLastIndex - groupIndex), 0);\n            previousItem[1] += amountToAdd;\n          } else {\n            acc.push([groupIndex, groupAmount]);\n          }\n          return acc;\n        }, [sortedIndexes[0]]);\n        return normalizedIndexes;\n      };\n\n      /* eslint-disable no-case-declarations */\n      switch (action) {\n        case 'insert_row_below':\n        case 'insert_row_above':\n          const numberOfSourceRows = instance.countSourceRows();\n          if (tableMeta.maxRows === numberOfSourceRows) {\n            return;\n          }\n\n          // `above` is the default behavior for creating new rows\n          const insertRowMode = action === 'insert_row_below' ? 'below' : 'above';\n\n          // Calling the `insert_row_above` action adds a new row at the beginning of the data set.\n          // eslint-disable-next-line no-param-reassign\n          index = (_index = index) !== null && _index !== void 0 ? _index : insertRowMode === 'below' ? numberOfSourceRows : 0;\n          const {\n            delta: rowDelta,\n            startPhysicalIndex: startRowPhysicalIndex\n          } = datamap.createRow(index, amount, {\n            source,\n            mode: insertRowMode\n          });\n          selection.shiftRows(instance.toVisualRow(startRowPhysicalIndex), rowDelta);\n          break;\n        case 'insert_col_start':\n        case 'insert_col_end':\n          // \"start\" is a default behavior for creating new columns\n          const insertColumnMode = action === 'insert_col_end' ? 'end' : 'start';\n\n          // Calling the `insert_col_start` action adds a new column to the left of the data set.\n          // eslint-disable-next-line no-param-reassign\n          index = (_index2 = index) !== null && _index2 !== void 0 ? _index2 : insertColumnMode === 'end' ? instance.countSourceCols() : 0;\n          const {\n            delta: colDelta,\n            startPhysicalIndex: startColumnPhysicalIndex\n          } = datamap.createCol(index, amount, {\n            source,\n            mode: insertColumnMode\n          });\n          if (colDelta) {\n            if (Array.isArray(tableMeta.colHeaders)) {\n              const spliceArray = [instance.toVisualColumn(startColumnPhysicalIndex), 0];\n              spliceArray.length += colDelta; // inserts empty (undefined) elements at the end of an array\n              Array.prototype.splice.apply(tableMeta.colHeaders, spliceArray); // inserts empty (undefined) elements into the colHeader array\n            }\n            selection.shiftColumns(instance.toVisualColumn(startColumnPhysicalIndex), colDelta);\n          }\n          break;\n        case 'remove_row':\n          const removeRow = indexes => {\n            let offset = 0;\n\n            // Normalize the {index, amount} groups into bigger groups.\n            Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"arrayEach\"])(indexes, _ref5 => {\n              let [groupIndex, groupAmount] = _ref5;\n              const calcIndex = Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isEmpty\"])(groupIndex) ? instance.countRows() - 1 : Math.max(groupIndex - offset, 0);\n\n              // If the 'index' is an integer decrease it by 'offset' otherwise pass it through to make the value\n              // compatible with datamap.removeCol method.\n              if (Number.isInteger(groupIndex)) {\n                // eslint-disable-next-line no-param-reassign\n                groupIndex = Math.max(groupIndex - offset, 0);\n              }\n\n              // TODO: for datamap.removeRow index should be passed as it is (with undefined and null values). If not, the logic\n              // inside the datamap.removeRow breaks the removing functionality.\n              const wasRemoved = datamap.removeRow(groupIndex, groupAmount, source);\n              if (!wasRemoved) {\n                return;\n              }\n              if (selection.isSelected()) {\n                const {\n                  row\n                } = instance.getSelectedRangeLast().highlight;\n                if (row >= groupIndex && row <= groupIndex + groupAmount - 1) {\n                  editorManager.closeEditor(true);\n                }\n              }\n              const totalRows = instance.countRows();\n              if (totalRows === 0) {\n                selection.deselect();\n              } else if (source === 'ContextMenu.removeRow') {\n                selection.refresh();\n              } else {\n                selection.shiftRows(groupIndex, -groupAmount);\n              }\n              const fixedRowsTop = tableMeta.fixedRowsTop;\n              if (fixedRowsTop >= calcIndex + 1) {\n                tableMeta.fixedRowsTop -= Math.min(groupAmount, fixedRowsTop - calcIndex);\n              }\n              const fixedRowsBottom = tableMeta.fixedRowsBottom;\n              if (fixedRowsBottom && calcIndex >= totalRows - fixedRowsBottom) {\n                tableMeta.fixedRowsBottom -= Math.min(groupAmount, fixedRowsBottom);\n              }\n              offset += groupAmount;\n            });\n          };\n          if (Array.isArray(index)) {\n            removeRow(normalizeIndexesGroup(index));\n          } else {\n            removeRow([[index, amount]]);\n          }\n          break;\n        case 'remove_col':\n          const removeCol = indexes => {\n            let offset = 0;\n\n            // Normalize the {index, amount} groups into bigger groups.\n            Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"arrayEach\"])(indexes, _ref6 => {\n              let [groupIndex, groupAmount] = _ref6;\n              const calcIndex = Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isEmpty\"])(groupIndex) ? instance.countCols() - 1 : Math.max(groupIndex - offset, 0);\n              let physicalColumnIndex = instance.toPhysicalColumn(calcIndex);\n\n              // If the 'index' is an integer decrease it by 'offset' otherwise pass it through to make the value\n              // compatible with datamap.removeCol method.\n              if (Number.isInteger(groupIndex)) {\n                // eslint-disable-next-line no-param-reassign\n                groupIndex = Math.max(groupIndex - offset, 0);\n              }\n\n              // TODO: for datamap.removeCol index should be passed as it is (with undefined and null values). If not, the logic\n              // inside the datamap.removeCol breaks the removing functionality.\n              const wasRemoved = datamap.removeCol(groupIndex, groupAmount, source);\n              if (!wasRemoved) {\n                return;\n              }\n              if (selection.isSelected()) {\n                const {\n                  col\n                } = instance.getSelectedRangeLast().highlight;\n                if (col >= groupIndex && col <= groupIndex + groupAmount - 1) {\n                  editorManager.closeEditor(true);\n                }\n              }\n              const totalColumns = instance.countCols();\n              if (totalColumns === 0) {\n                selection.deselect();\n              } else if (source === 'ContextMenu.removeColumn') {\n                selection.refresh();\n              } else {\n                selection.shiftColumns(groupIndex, -groupAmount);\n              }\n              const fixedColumnsStart = tableMeta.fixedColumnsStart;\n              if (fixedColumnsStart >= calcIndex + 1) {\n                tableMeta.fixedColumnsStart -= Math.min(groupAmount, fixedColumnsStart - calcIndex);\n              }\n              if (Array.isArray(tableMeta.colHeaders)) {\n                if (typeof physicalColumnIndex === 'undefined') {\n                  physicalColumnIndex = -1;\n                }\n                tableMeta.colHeaders.splice(physicalColumnIndex, groupAmount);\n              }\n              offset += groupAmount;\n            });\n          };\n          if (Array.isArray(index)) {\n            removeCol(normalizeIndexesGroup(index));\n          } else {\n            removeCol([[index, amount]]);\n          }\n          break;\n        default:\n          throw new Error(`There is no such action \"${action}\"`);\n      }\n      instance.view.render();\n      if (!keepEmptyRows) {\n        grid.adjustRowsAndCols(); // makes sure that we did not add rows that will be removed in next refresh\n      }\n    },\n    /**\n     * Makes sure there are empty rows at the bottom of the table.\n     *\n     * @private\n     */\n    adjustRowsAndCols() {\n      const minRows = tableMeta.minRows;\n      const minSpareRows = tableMeta.minSpareRows;\n      const minCols = tableMeta.minCols;\n      const minSpareCols = tableMeta.minSpareCols;\n      if (minRows) {\n        // should I add empty rows to data source to meet minRows?\n        const nrOfRows = instance.countRows();\n        if (nrOfRows < minRows) {\n          // The synchronization with cell meta is not desired here. For `minRows` option,\n          // we don't want to touch/shift cell meta objects.\n          datamap.createRow(nrOfRows, minRows - nrOfRows, {\n            source: 'auto'\n          });\n        }\n      }\n      if (minSpareRows) {\n        const emptyRows = instance.countEmptyRows(true);\n\n        // should I add empty rows to meet minSpareRows?\n        if (emptyRows < minSpareRows) {\n          const emptyRowsMissing = minSpareRows - emptyRows;\n          const rowsToCreate = Math.min(emptyRowsMissing, tableMeta.maxRows - instance.countSourceRows());\n\n          // The synchronization with cell meta is not desired here. For `minSpareRows` option,\n          // we don't want to touch/shift cell meta objects.\n          datamap.createRow(instance.countRows(), rowsToCreate, {\n            source: 'auto'\n          });\n        }\n      }\n      {\n        let emptyCols;\n\n        // count currently empty cols\n        if (minCols || minSpareCols) {\n          emptyCols = instance.countEmptyCols(true);\n        }\n        let nrOfColumns = instance.countCols();\n\n        // should I add empty cols to meet minCols?\n        if (minCols && !tableMeta.columns && nrOfColumns < minCols) {\n          // The synchronization with cell meta is not desired here. For `minSpareRows` option,\n          // we don't want to touch/shift cell meta objects.\n          const colsToCreate = minCols - nrOfColumns;\n          emptyCols += colsToCreate;\n          datamap.createCol(nrOfColumns, colsToCreate, {\n            source: 'auto'\n          });\n        }\n        // should I add empty cols to meet minSpareCols?\n        if (minSpareCols && !tableMeta.columns && instance.dataType === 'array' && emptyCols < minSpareCols) {\n          nrOfColumns = instance.countCols();\n          const emptyColsMissing = minSpareCols - emptyCols;\n          const colsToCreate = Math.min(emptyColsMissing, tableMeta.maxCols - nrOfColumns);\n\n          // The synchronization with cell meta is not desired here. For `minSpareRows` option,\n          // we don't want to touch/shift cell meta objects.\n          datamap.createCol(nrOfColumns, colsToCreate, {\n            source: 'auto'\n          });\n        }\n      }\n      if (instance.view) {\n        instance.view.adjustElementsSize();\n      }\n    },\n    /**\n     * Populate the data from the provided 2d array from the given cell coordinates.\n     *\n     * @private\n     * @param {object} start Start selection position. Visual indexes.\n     * @param {Array} input 2d data array.\n     * @param {object} [end] End selection position (only for drag-down mode). Visual indexes.\n     * @param {string} [source=\"populateFromArray\"] Source information string.\n     * @param {string} [method=\"overwrite\"] Populate method. Possible options: `shift_down`, `shift_right`, `overwrite`.\n     * @returns {object|undefined} Ending td in pasted area (only if any cell was changed).\n     */\n    populateFromArray(start, input, end, source, method) {\n      let r;\n      let rlen;\n      let c;\n      let clen;\n      const setData = [];\n      const current = {};\n      const newDataByColumns = [];\n      const startRow = start.row;\n      const startColumn = start.col;\n      rlen = input.length;\n      if (rlen === 0) {\n        return false;\n      }\n      let columnsPopulationEnd = 0;\n      let rowsPopulationEnd = 0;\n      if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_16__[\"isObject\"])(end)) {\n        columnsPopulationEnd = end.col - startColumn + 1;\n        rowsPopulationEnd = end.row - startRow + 1;\n      }\n\n      // insert data with specified pasteMode method\n      switch (method) {\n        case 'shift_down':\n          // translate data from a list of rows to a list of columns\n          const populatedDataByColumns = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"pivot\"])(input);\n          const numberOfDataColumns = populatedDataByColumns.length;\n          // method's argument can extend the range of data population (data would be repeated)\n          const numberOfColumnsToPopulate = Math.max(numberOfDataColumns, columnsPopulationEnd);\n          const pushedDownDataByRows = instance.getData().slice(startRow);\n\n          // translate data from a list of rows to a list of columns\n          const pushedDownDataByColumns = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"pivot\"])(pushedDownDataByRows).slice(startColumn, startColumn + numberOfColumnsToPopulate);\n          for (c = 0; c < numberOfColumnsToPopulate; c += 1) {\n            if (c < numberOfDataColumns) {\n              for (r = 0, rlen = populatedDataByColumns[c].length; r < rowsPopulationEnd - rlen; r += 1) {\n                // repeating data for rows\n                populatedDataByColumns[c].push(populatedDataByColumns[c][r % rlen]);\n              }\n              if (c < pushedDownDataByColumns.length) {\n                newDataByColumns.push(populatedDataByColumns[c].concat(pushedDownDataByColumns[c]));\n              } else {\n                // if before data population, there was no data in the column\n                // we fill the required rows' newly-created cells with `null` values\n                newDataByColumns.push(populatedDataByColumns[c].concat(new Array(pushedDownDataByRows.length).fill(null)));\n              }\n            } else {\n              // Repeating data for columns.\n              newDataByColumns.push(populatedDataByColumns[c % numberOfDataColumns].concat(pushedDownDataByColumns[c]));\n            }\n          }\n          instance.populateFromArray(startRow, startColumn, Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"pivot\"])(newDataByColumns));\n          break;\n        case 'shift_right':\n          const numberOfDataRows = input.length;\n          // method's argument can extend the range of data population (data would be repeated)\n          const numberOfRowsToPopulate = Math.max(numberOfDataRows, rowsPopulationEnd);\n          const pushedRightDataByRows = instance.getData().slice(startRow).map(rowData => rowData.slice(startColumn));\n          for (r = 0; r < numberOfRowsToPopulate; r += 1) {\n            if (r < numberOfDataRows) {\n              for (c = 0, clen = input[r].length; c < columnsPopulationEnd - clen; c += 1) {\n                // repeating data for rows\n                input[r].push(input[r][c % clen]);\n              }\n              if (r < pushedRightDataByRows.length) {\n                for (let i = 0; i < pushedRightDataByRows[r].length; i += 1) {\n                  input[r].push(pushedRightDataByRows[r][i]);\n                }\n              } else {\n                // if before data population, there was no data in the row\n                // we fill the required columns' newly-created cells with `null` values\n                input[r].push(...new Array(pushedRightDataByRows[0].length).fill(null));\n              }\n            } else {\n              // Repeating data for columns.\n              input.push(input[r % rlen].slice(0, numberOfRowsToPopulate).concat(pushedRightDataByRows[r]));\n            }\n          }\n          instance.populateFromArray(startRow, startColumn, input);\n          break;\n        case 'overwrite':\n        default:\n          // overwrite and other not specified options\n          current.row = start.row;\n          current.col = start.col;\n          let skippedRow = 0;\n          let skippedColumn = 0;\n          let pushData = true;\n          let cellMeta;\n          const getInputValue = function getInputValue(row) {\n            let col = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n            const rowValue = input[row % input.length];\n            if (col !== null) {\n              return rowValue[col % rowValue.length];\n            }\n            return rowValue;\n          };\n          const rowInputLength = input.length;\n          const rowSelectionLength = end ? end.row - start.row + 1 : 0;\n          if (end) {\n            rlen = rowSelectionLength;\n          } else {\n            rlen = Math.max(rowInputLength, rowSelectionLength);\n          }\n          for (r = 0; r < rlen; r++) {\n            if (end && current.row > end.row && rowSelectionLength > rowInputLength || !tableMeta.allowInsertRow && current.row > instance.countRows() - 1 || current.row >= tableMeta.maxRows) {\n              break;\n            }\n            const visualRow = r - skippedRow;\n            const colInputLength = getInputValue(visualRow).length;\n            const colSelectionLength = end ? end.col - start.col + 1 : 0;\n            if (end) {\n              clen = colSelectionLength;\n            } else {\n              clen = Math.max(colInputLength, colSelectionLength);\n            }\n            current.col = start.col;\n            cellMeta = instance.getCellMeta(current.row, current.col);\n            if ((source === 'CopyPaste.paste' || source === 'Autofill.fill') && cellMeta.skipRowOnPaste) {\n              skippedRow += 1;\n              current.row += 1;\n              rlen += 1;\n              /* eslint-disable no-continue */\n              continue;\n            }\n            skippedColumn = 0;\n            for (c = 0; c < clen; c++) {\n              if (end && current.col > end.col && colSelectionLength > colInputLength || !tableMeta.allowInsertColumn && current.col > instance.countCols() - 1 || current.col >= tableMeta.maxCols) {\n                break;\n              }\n              cellMeta = instance.getCellMeta(current.row, current.col);\n              if ((source === 'CopyPaste.paste' || source === 'Autofill.fill') && cellMeta.skipColumnOnPaste) {\n                skippedColumn += 1;\n                current.col += 1;\n                clen += 1;\n                continue;\n              }\n              if (cellMeta.readOnly && source !== 'UndoRedo.undo') {\n                current.col += 1;\n                /* eslint-disable no-continue */\n                continue;\n              }\n              const visualColumn = c - skippedColumn;\n              let value = getInputValue(visualRow, visualColumn);\n              let orgValue = instance.getDataAtCell(current.row, current.col);\n              if (value !== null && typeof value === 'object') {\n                // when 'value' is array and 'orgValue' is null, set 'orgValue' to\n                // an empty array so that the null value can be compared to 'value'\n                // as an empty value for the array context\n                if (Array.isArray(value) && orgValue === null) orgValue = [];\n                if (orgValue === null || typeof orgValue !== 'object') {\n                  pushData = false;\n                } else {\n                  const orgValueSchema = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_16__[\"duckSchema\"])(Array.isArray(orgValue) ? orgValue : orgValue[0] || orgValue);\n                  const valueSchema = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_16__[\"duckSchema\"])(Array.isArray(value) ? value : value[0] || value);\n\n                  // Allow overwriting values with the same object-based schema or any array-based schema.\n                  if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_16__[\"isObjectEqual\"])(orgValueSchema, valueSchema) || Array.isArray(orgValueSchema) && Array.isArray(valueSchema)) {\n                    value = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_16__[\"deepClone\"])(value);\n                  } else {\n                    pushData = false;\n                  }\n                }\n              } else if (orgValue !== null && typeof orgValue === 'object') {\n                pushData = false;\n              }\n              if (pushData) {\n                setData.push([current.row, current.col, value]);\n              }\n              pushData = true;\n              current.col += 1;\n            }\n            current.row += 1;\n          }\n          instance.setDataAtCell(setData, null, null, source || 'populateFromArray');\n          break;\n      }\n    }\n  };\n\n  /**\n   * Internal function to set `language` key of settings.\n   *\n   * @private\n   * @param {string} languageCode Language code for specific language i.e. 'en-US', 'pt-BR', 'de-DE'.\n   * @fires Hooks#afterLanguageChange\n   */\n  function setLanguage(languageCode) {\n    const normalizedLanguageCode = Object(_i18n_utils_mjs__WEBPACK_IMPORTED_MODULE_34__[\"normalizeLanguageCode\"])(languageCode);\n    if (Object(_i18n_registry_mjs__WEBPACK_IMPORTED_MODULE_33__[\"hasLanguageDictionary\"])(normalizedLanguageCode)) {\n      instance.runHooks('beforeLanguageChange', normalizedLanguageCode);\n      globalMeta.language = normalizedLanguageCode;\n      instance.runHooks('afterLanguageChange', normalizedLanguageCode);\n    } else {\n      Object(_i18n_utils_mjs__WEBPACK_IMPORTED_MODULE_34__[\"warnUserAboutLanguageRegistration\"])(languageCode);\n    }\n  }\n\n  /**\n   * Internal function to set `className` or `tableClassName`, depending on the key from the settings object.\n   *\n   * @private\n   * @param {string} className `className` or `tableClassName` from the key in the settings object.\n   * @param {string|string[]} classSettings String or array of strings. Contains class name(s) from settings object.\n   */\n  function setClassName(className, classSettings) {\n    const element = className === 'className' ? instance.rootElement : instance.table;\n    if (firstRun) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"addClass\"])(element, classSettings);\n    } else {\n      let globalMetaSettingsArray = [];\n      let settingsArray = [];\n      if (globalMeta[className]) {\n        globalMetaSettingsArray = Array.isArray(globalMeta[className]) ? globalMeta[className] : Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"stringToArray\"])(globalMeta[className]);\n      }\n      if (classSettings) {\n        settingsArray = Array.isArray(classSettings) ? classSettings : Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"stringToArray\"])(classSettings);\n      }\n      const classNameToRemove = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"getDifferenceOfArrays\"])(globalMetaSettingsArray, settingsArray);\n      const classNameToAdd = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"getDifferenceOfArrays\"])(settingsArray, globalMetaSettingsArray);\n      if (classNameToRemove.length) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"removeClass\"])(element, classNameToRemove);\n      }\n      if (classNameToAdd.length) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"addClass\"])(element, classNameToAdd);\n      }\n    }\n    globalMeta[className] = classSettings;\n  }\n  this.init = function () {\n    dataSource.setData(tableMeta.data);\n    instance.runHooks('beforeInit');\n    if (Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_13__[\"isMobileBrowser\"])() || Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_13__[\"isIpadOS\"])()) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"addClass\"])(instance.rootElement, 'mobile');\n    }\n    this.updateSettings(tableMeta, true);\n    this.view = new _tableView_mjs__WEBPACK_IMPORTED_MODULE_26__[\"default\"](this);\n    editorManager = _editorManager_mjs__WEBPACK_IMPORTED_MODULE_14__[\"default\"].getInstance(instance, tableMeta, selection);\n    viewportScroller = Object(_core_index_mjs__WEBPACK_IMPORTED_MODULE_37__[\"createViewportScroller\"])(instance);\n    focusManager = new _focusManager_mjs__WEBPACK_IMPORTED_MODULE_17__[\"FocusManager\"](instance);\n    if (Object(_utils_rootInstance_mjs__WEBPACK_IMPORTED_MODULE_30__[\"isRootInstance\"])(this)) {\n      Object(_core_index_mjs__WEBPACK_IMPORTED_MODULE_37__[\"installFocusCatcher\"])(instance);\n    }\n    instance.runHooks('init');\n    this.forceFullRender = true; // used when data was changed\n    this.view.render();\n\n    // Run the logic only if it's the table's initialization and the root element is not visible.\n    if (!!firstRun && instance.rootElement.offsetParent === null) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"observeVisibilityChangeOnce\"])(instance.rootElement, () => {\n        // Update the spreader size cache before rendering.\n        instance.view._wt.wtOverlays.updateLastSpreaderSize();\n        instance.render();\n        instance.view.adjustElementsSize();\n      });\n    }\n    if (typeof firstRun === 'object') {\n      instance.runHooks('afterChange', firstRun[0], firstRun[1]);\n      firstRun = false;\n    }\n    instance.runHooks('afterInit');\n  };\n\n  /**\n   * @ignore\n   * @returns {object}\n   */\n  function ValidatorsQueue() {\n    // moved this one level up so it can be used in any function here. Probably this should be moved to a separate file\n    let resolved = false;\n    return {\n      validatorsInQueue: 0,\n      valid: true,\n      addValidatorToQueue() {\n        this.validatorsInQueue += 1;\n        resolved = false;\n      },\n      removeValidatorFormQueue() {\n        this.validatorsInQueue = this.validatorsInQueue - 1 < 0 ? 0 : this.validatorsInQueue - 1;\n        this.checkIfQueueIsEmpty();\n      },\n      onQueueEmpty() {},\n      checkIfQueueIsEmpty() {\n        if (this.validatorsInQueue === 0 && resolved === false) {\n          resolved = true;\n          this.onQueueEmpty(this.valid);\n        }\n      }\n    };\n  }\n\n  /**\n   * Get parsed number from numeric string.\n   *\n   * @private\n   * @param {string} numericData Float (separated by a dot or a comma) or integer.\n   * @returns {number} Number if we get data in parsable format, not changed value otherwise.\n   */\n  function getParsedNumber(numericData) {\n    // Unifying \"float like\" string. Change from value with comma determiner to value with dot determiner,\n    // for example from `450,65` to `450.65`.\n    const unifiedNumericData = numericData.replace(',', '.');\n    if (isNaN(parseFloat(unifiedNumericData)) === false) {\n      return parseFloat(unifiedNumericData);\n    }\n    return numericData;\n  }\n\n  /**\n   * @ignore\n   * @param {Array} changes The 2D array containing information about each of the edited cells.\n   * @param {string} source The string that identifies source of validation.\n   * @param {Function} callback The callback function fot async validation.\n   */\n  function validateChanges(changes, source, callback) {\n    if (!changes.length) {\n      callback();\n      return;\n    }\n    const activeEditor = instance.getActiveEditor();\n    const waitingForValidator = new ValidatorsQueue();\n    let shouldBeCanceled = true;\n    waitingForValidator.onQueueEmpty = () => {\n      if (activeEditor && shouldBeCanceled) {\n        activeEditor.cancelChanges();\n      }\n      callback(); // called when async validators are resolved and beforeChange was not async\n    };\n    for (let i = changes.length - 1; i >= 0; i--) {\n      const [row, prop,, newValue] = changes[i];\n      const visualCol = datamap.propToCol(prop);\n      let cellProperties;\n      if (Number.isInteger(visualCol)) {\n        cellProperties = instance.getCellMeta(row, visualCol);\n      } else {\n        // If there's no requested visual column, we can use the table meta as the cell properties when retrieving\n        // the cell validator.\n        cellProperties = {\n          ...Object.getPrototypeOf(tableMeta),\n          ...tableMeta\n        };\n      }\n      if (cellProperties.type === 'numeric' && typeof newValue === 'string' && Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_25__[\"isNumericLike\"])(newValue)) {\n        changes[i][3] = getParsedNumber(newValue);\n      }\n\n      /* eslint-disable no-loop-func */\n      if (instance.getCellValidator(cellProperties)) {\n        waitingForValidator.addValidatorToQueue();\n        instance.validateCell(changes[i][3], cellProperties, function (index, cellPropertiesReference) {\n          return function (result) {\n            if (typeof result !== 'boolean') {\n              throw new Error('Validation error: result is not boolean');\n            }\n            if (result === false && cellPropertiesReference.allowInvalid === false) {\n              shouldBeCanceled = false;\n              changes.splice(index, 1); // cancel the change\n              cellPropertiesReference.valid = true; // we cancelled the change, so cell value is still valid\n            }\n            waitingForValidator.removeValidatorFormQueue();\n          };\n        }(i, cellProperties), source);\n      }\n    }\n    waitingForValidator.checkIfQueueIsEmpty();\n  }\n\n  /**\n   * Internal function to apply changes. Called after validateChanges.\n   *\n   * @private\n   * @param {Array} changes Array in form of [row, prop, oldValue, newValue].\n   * @param {string} source String that identifies how this change will be described in changes array (useful in onChange callback).\n   * @fires Hooks#beforeChangeRender\n   * @fires Hooks#afterChange\n   */\n  function applyChanges(changes, source) {\n    for (let i = changes.length - 1; i >= 0; i--) {\n      let skipThisChange = false;\n      if (changes[i] === null) {\n        changes.splice(i, 1);\n        /* eslint-disable no-continue */\n        continue;\n      }\n      if ((changes[i][2] === null || changes[i][2] === undefined) && (changes[i][3] === null || changes[i][3] === undefined)) {\n        /* eslint-disable no-continue */\n        continue;\n      }\n      if (tableMeta.allowInsertRow) {\n        while (changes[i][0] > instance.countRows() - 1) {\n          const {\n            delta: numberOfCreatedRows\n          } = datamap.createRow(undefined, undefined, {\n            source\n          });\n          if (numberOfCreatedRows === 0) {\n            skipThisChange = true;\n            break;\n          }\n        }\n      }\n      if (instance.dataType === 'array' && (!tableMeta.columns || tableMeta.columns.length === 0) && tableMeta.allowInsertColumn) {\n        while (datamap.propToCol(changes[i][1]) > instance.countCols() - 1) {\n          const {\n            delta: numberOfCreatedColumns\n          } = datamap.createCol(undefined, undefined, {\n            source\n          });\n          if (numberOfCreatedColumns === 0) {\n            skipThisChange = true;\n            break;\n          }\n        }\n      }\n      if (skipThisChange) {\n        /* eslint-disable no-continue */\n        continue;\n      }\n      datamap.set(changes[i][0], changes[i][1], changes[i][3]);\n    }\n    const hasChanges = changes.length > 0;\n    instance.forceFullRender = true; // used when data was changed or when all cells need to be re-rendered\n\n    if (hasChanges) {\n      grid.adjustRowsAndCols();\n      instance.runHooks('beforeChangeRender', changes, source);\n      editorManager.closeEditor();\n      instance.view.render();\n      editorManager.prepareEditor();\n      instance.view.adjustElementsSize();\n      instance.runHooks('afterChange', changes, source || 'edit');\n      const activeEditor = instance.getActiveEditor();\n      if (activeEditor && Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isDefined\"])(activeEditor.refreshValue)) {\n        activeEditor.refreshValue();\n      }\n    } else {\n      instance.view.render();\n    }\n  }\n\n  /**\n   * Creates and returns the CellCoords object.\n   *\n   * @private\n   * @memberof Core#\n   * @function _createCellCoords\n   * @param {number} row The row index.\n   * @param {number} column The column index.\n   * @returns {CellCoords}\n   */\n  this._createCellCoords = function (row, column) {\n    return instance.view._wt.createCellCoords(row, column);\n  };\n\n  /**\n   * Creates and returns the CellRange object.\n   *\n   * @private\n   * @memberof Core#\n   * @function _createCellRange\n   * @param {CellCoords} highlight Defines the border around a cell where selection was started and to edit the cell\n   *                               when you press Enter. The highlight cannot point to headers (negative values).\n   * @param {CellCoords} from Initial coordinates.\n   * @param {CellCoords} to Final coordinates.\n   * @returns {CellRange}\n   */\n  this._createCellRange = function (highlight, from, to) {\n    return instance.view._wt.createCellRange(highlight, from, to);\n  };\n\n  /**\n   * Validate a single cell.\n   *\n   * @memberof Core#\n   * @function validateCell\n   * @param {string|number} value The value to validate.\n   * @param {object} cellProperties The cell meta which corresponds with the value.\n   * @param {Function} callback The callback function.\n   * @param {string} source The string that identifies source of the validation.\n   */\n  this.validateCell = function (value, cellProperties, callback, source) {\n    let validator = instance.getCellValidator(cellProperties);\n\n    // the `canBeValidated = false` argument suggests, that the cell passes validation by default.\n    /**\n     * @private\n     * @function done\n     * @param {boolean} valid Indicates if the validation was successful.\n     * @param {boolean} [canBeValidated=true] Flag which controls the validation process.\n     */\n    function done(valid) {\n      let canBeValidated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n      // Fixes GH#3903\n      if (!canBeValidated || cellProperties.hidden === true) {\n        callback(valid);\n        return;\n      }\n      const col = cellProperties.visualCol;\n      const row = cellProperties.visualRow;\n      const td = instance.getCell(row, col, true);\n      if (td && td.nodeName !== 'TH') {\n        const renderableRow = instance.rowIndexMapper.getRenderableFromVisualIndex(row);\n        const renderableColumn = instance.columnIndexMapper.getRenderableFromVisualIndex(col);\n        instance.view._wt.getSetting('cellRenderer', renderableRow, renderableColumn, td);\n      }\n      callback(valid);\n    }\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isRegExp\"])(validator)) {\n      validator = function (expression) {\n        return function (cellValue, validatorCallback) {\n          validatorCallback(expression.test(cellValue));\n        };\n      }(validator);\n    }\n    if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_11__[\"isFunction\"])(validator)) {\n      // eslint-disable-next-line no-param-reassign\n      value = instance.runHooks('beforeValidate', value, cellProperties.visualRow, cellProperties.prop, source);\n\n      // To provide consistent behaviour, validation should be always asynchronous\n      instance._registerImmediate(() => {\n        validator.call(cellProperties, value, valid => {\n          if (!instance) {\n            return;\n          }\n          // eslint-disable-next-line no-param-reassign\n          valid = instance.runHooks('afterValidate', valid, value, cellProperties.visualRow, cellProperties.prop, source);\n          cellProperties.valid = valid;\n          done(valid);\n          instance.runHooks('postAfterValidate', valid, value, cellProperties.visualRow, cellProperties.prop, source);\n        });\n      });\n    } else {\n      // resolve callback even if validator function was not found\n      instance._registerImmediate(() => {\n        cellProperties.valid = true;\n        done(cellProperties.valid, false);\n      });\n    }\n  };\n\n  /**\n   * @ignore\n   * @param {number} row The visual row index.\n   * @param {string|number} propOrCol The visual prop or column index.\n   * @param {*} value The cell value.\n   * @returns {Array}\n   */\n  function setDataInputToArray(row, propOrCol, value) {\n    if (Array.isArray(row)) {\n      // it's an array of changes\n      return row;\n    }\n    return [[row, propOrCol, value]];\n  }\n\n  /**\n   * Process changes prepared for applying to the dataset (unifying list of changes, closing an editor - when needed,\n   * calling a hook).\n   *\n   * @private\n   * @param {Array} changes Array of changes in format `[[row, col, value],...]`.\n   * @param {string} [source] String that identifies how this change will be described in the changes array (useful in afterChange or beforeChange callback). Set to 'edit' if left empty.\n   * @returns {Array} List of changes finally applied to the dataset.\n   */\n  function processChanges(changes, source) {\n    const activeEditor = instance.getActiveEditor();\n    const beforeChangeResult = instance.runHooks('beforeChange', changes, source || 'edit');\n    // The `beforeChange` hook could add a `null` for purpose of cancelling some dataset's change.\n    const filteredChanges = changes.filter(change => change !== null);\n    if (beforeChangeResult === false || filteredChanges.length === 0) {\n      if (activeEditor) {\n        activeEditor.cancelChanges();\n      }\n      return [];\n    }\n    return filteredChanges;\n  }\n\n  /**\n   * @description\n   * Set new value to a cell. To change many cells at once (recommended way), pass an array of `changes` in format\n   * `[[row, col, value],...]` as the first argument.\n   *\n   * @memberof Core#\n   * @function setDataAtCell\n   * @param {number|Array} row Visual row index or array of changes in format `[[row, col, value],...]`.\n   * @param {number} [column] Visual column index.\n   * @param {string} [value] New value.\n   * @param {string} [source] String that identifies how this change will be described in the changes array (useful in afterChange or beforeChange callback). Set to 'edit' if left empty.\n   */\n  this.setDataAtCell = function (row, column, value, source) {\n    const input = setDataInputToArray(row, column, value);\n    const changes = [];\n    let changeSource = source;\n    let i;\n    let ilen;\n    let prop;\n    for (i = 0, ilen = input.length; i < ilen; i++) {\n      if (typeof input[i] !== 'object') {\n        throw new Error('Method `setDataAtCell` accepts row number or changes array of arrays as its first parameter');\n      }\n      if (typeof input[i][1] !== 'number') {\n        throw new Error('Method `setDataAtCell` accepts row and column number as its parameters. If you want to use object property name, use method `setDataAtRowProp`'); // eslint-disable-line max-len\n      }\n      if (input[i][1] >= this.countCols()) {\n        prop = input[i][1];\n      } else {\n        prop = datamap.colToProp(input[i][1]);\n      }\n      changes.push([input[i][0], prop, dataSource.getAtCell(this.toPhysicalRow(input[i][0]), input[i][1]), input[i][2]]);\n    }\n    if (!changeSource && typeof row === 'object') {\n      changeSource = column;\n    }\n    const processedChanges = processChanges(changes, source);\n    instance.runHooks('afterSetDataAtCell', processedChanges, changeSource);\n    validateChanges(processedChanges, changeSource, () => {\n      applyChanges(processedChanges, changeSource);\n    });\n  };\n\n  /**\n   * @description\n   * Set new value to a cell. To change many cells at once (recommended way), pass an array of `changes` in format\n   * `[[row, prop, value],...]` as the first argument.\n   *\n   * @memberof Core#\n   * @function setDataAtRowProp\n   * @param {number|Array} row Visual row index or array of changes in format `[[row, prop, value], ...]`.\n   * @param {string} prop Property name or the source string (e.g. `'first.name'` or `'0'`).\n   * @param {string} value Value to be set.\n   * @param {string} [source] String that identifies how this change will be described in changes array (useful in onChange callback).\n   */\n  this.setDataAtRowProp = function (row, prop, value, source) {\n    const input = setDataInputToArray(row, prop, value);\n    const changes = [];\n    let changeSource = source;\n    let i;\n    let ilen;\n    for (i = 0, ilen = input.length; i < ilen; i++) {\n      changes.push([input[i][0], input[i][1], dataSource.getAtCell(this.toPhysicalRow(input[i][0]), input[i][1]), input[i][2]]);\n    }\n\n    // TODO: I don't think `prop` should be used as `changeSource` here, but removing it would be a breaking change.\n    // We should remove it with the next major release.\n    if (!changeSource && typeof row === 'object') {\n      changeSource = prop;\n    }\n    const processedChanges = processChanges(changes, source);\n    instance.runHooks('afterSetDataAtRowProp', processedChanges, changeSource);\n    validateChanges(processedChanges, changeSource, () => {\n      applyChanges(processedChanges, changeSource);\n    });\n  };\n\n  /**\n   * Listen to the keyboard input on document body. This allows Handsontable to capture keyboard events and respond\n   * in the right way.\n   *\n   * @memberof Core#\n   * @function listen\n   * @fires Hooks#afterListen\n   */\n  this.listen = function () {\n    if (instance && !instance.isListening()) {\n      foreignHotInstances.forEach(foreignHot => {\n        if (instance !== foreignHot) {\n          foreignHot.unlisten();\n        }\n      });\n      activeGuid = instance.guid;\n      instance.runHooks('afterListen');\n    }\n  };\n\n  /**\n   * Stop listening to keyboard input on the document body. Calling this method makes the Handsontable inactive for\n   * any keyboard events.\n   *\n   * @memberof Core#\n   * @function unlisten\n   */\n  this.unlisten = function () {\n    if (this.isListening()) {\n      activeGuid = null;\n      instance.runHooks('afterUnlisten');\n    }\n  };\n\n  /**\n   * Returns `true` if the current Handsontable instance is listening to keyboard input on document body.\n   *\n   * @memberof Core#\n   * @function isListening\n   * @returns {boolean} `true` if the instance is listening, `false` otherwise.\n   */\n  this.isListening = function () {\n    return activeGuid === instance.guid;\n  };\n\n  /**\n   * Destroys the current editor, render the table and prepares the editor of the newly selected cell.\n   *\n   * @memberof Core#\n   * @function destroyEditor\n   * @param {boolean} [revertOriginal=false] If `true`, the previous value will be restored. Otherwise, the edited value will be saved.\n   * @param {boolean} [prepareEditorIfNeeded=true] If `true` the editor under the selected cell will be prepared to open.\n   */\n  this.destroyEditor = function () {\n    let revertOriginal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    let prepareEditorIfNeeded = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    editorManager.closeEditor(revertOriginal);\n    instance.view.render();\n    if (prepareEditorIfNeeded && selection.isSelected()) {\n      editorManager.prepareEditor();\n    }\n  };\n\n  /**\n   * Populates cells at position with 2D input array (e.g. `[[1, 2], [3, 4]]`). Use `endRow`, `endCol` when you\n   * want to cut input when a certain row is reached.\n   *\n   * The `populateFromArray()` method can't change [`readOnly`](@/api/options.md#readonly) cells.\n   *\n   * Optional `method` argument has the same effect as pasteMode option (see {@link Options#pasteMode}).\n   *\n   * @memberof Core#\n   * @function populateFromArray\n   * @param {number} row Start visual row index.\n   * @param {number} column Start visual column index.\n   * @param {Array} input 2d array.\n   * @param {number} [endRow] End visual row index (use when you want to cut input when certain row is reached).\n   * @param {number} [endCol] End visual column index (use when you want to cut input when certain column is reached).\n   * @param {string} [source=populateFromArray] Used to identify this call in the resulting events (beforeChange, afterChange).\n   * @param {string} [method=overwrite] Populate method, possible values: `'shift_down'`, `'shift_right'`, `'overwrite'`.\n   * @returns {object|undefined} Ending td in pasted area (only if any cell was changed).\n   */\n  this.populateFromArray = function (row, column, input, endRow, endCol, source, method) {\n    if (!(typeof input === 'object' && typeof input[0] === 'object')) {\n      throw new Error('populateFromArray parameter `input` must be an array of arrays'); // API changed in 0.9-beta2, let's check if you use it correctly\n    }\n    const c = typeof endRow === 'number' ? instance._createCellCoords(endRow, endCol) : null;\n    return grid.populateFromArray(instance._createCellCoords(row, column), input, c, source, method);\n  };\n\n  /**\n   * Adds/removes data from the column. This method works the same as Array.splice for arrays.\n   *\n   * @memberof Core#\n   * @function spliceCol\n   * @param {number} column Index of the column in which do you want to do splice.\n   * @param {number} index Index at which to start changing the array. If negative, will begin that many elements from the end.\n   * @param {number} amount An integer indicating the number of old array elements to remove. If amount is 0, no elements are removed.\n   * @param {...number} [elements] The elements to add to the array. If you don't specify any elements, spliceCol simply removes elements from the array.\n   * @returns {Array} Returns removed portion of columns.\n   */\n  this.spliceCol = function (column, index, amount) {\n    for (var _len16 = arguments.length, elements = new Array(_len16 > 3 ? _len16 - 3 : 0), _key16 = 3; _key16 < _len16; _key16++) {\n      elements[_key16 - 3] = arguments[_key16];\n    }\n    return datamap.spliceCol(column, index, amount, ...elements);\n  };\n\n  /**\n   * Adds/removes data from the row. This method works the same as Array.splice for arrays.\n   *\n   * @memberof Core#\n   * @function spliceRow\n   * @param {number} row Index of column in which do you want to do splice.\n   * @param {number} index Index at which to start changing the array. If negative, will begin that many elements from the end.\n   * @param {number} amount An integer indicating the number of old array elements to remove. If amount is 0, no elements are removed.\n   * @param {...number} [elements] The elements to add to the array. If you don't specify any elements, spliceCol simply removes elements from the array.\n   * @returns {Array} Returns removed portion of rows.\n   */\n  this.spliceRow = function (row, index, amount) {\n    for (var _len17 = arguments.length, elements = new Array(_len17 > 3 ? _len17 - 3 : 0), _key17 = 3; _key17 < _len17; _key17++) {\n      elements[_key17 - 3] = arguments[_key17];\n    }\n    return datamap.spliceRow(row, index, amount, ...elements);\n  };\n\n  /**\n   * Returns indexes of the currently selected cells as an array of arrays `[[startRow, startCol, endRow, endCol],...]`.\n   *\n   * Start row and start column are the coordinates of the active cell (where the selection was started).\n   *\n   * The version 0.36.0 adds a non-consecutive selection feature. Since this version, the method returns an array of arrays.\n   * Additionally to collect the coordinates of the currently selected area (as it was previously done by the method)\n   * you need to use `getSelectedLast` method.\n   *\n   * @memberof Core#\n   * @function getSelected\n   * @returns {Array[]|undefined} An array of arrays of the selection's coordinates.\n   */\n  this.getSelected = function () {\n    // https://github.com/handsontable/handsontable/issues/44  //cjl\n    if (selection.isSelected()) {\n      return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"arrayMap\"])(selection.getSelectedRange(), _ref7 => {\n        let {\n          from,\n          to\n        } = _ref7;\n        return [from.row, from.col, to.row, to.col];\n      });\n    }\n  };\n\n  /**\n   * Returns the last coordinates applied to the table as a an array `[startRow, startCol, endRow, endCol]`.\n   *\n   * @since 0.36.0\n   * @memberof Core#\n   * @function getSelectedLast\n   * @returns {Array|undefined} An array of the selection's coordinates.\n   */\n  this.getSelectedLast = function () {\n    const selected = this.getSelected();\n    let result;\n    if (selected && selected.length > 0) {\n      result = selected[selected.length - 1];\n    }\n    return result;\n  };\n\n  /**\n   * Returns the current selection as an array of CellRange objects.\n   *\n   * The version 0.36.0 adds a non-consecutive selection feature. Since this version, the method returns an array of arrays.\n   * Additionally to collect the coordinates of the currently selected area (as it was previously done by the method)\n   * you need to use `getSelectedRangeLast` method.\n   *\n   * @memberof Core#\n   * @function getSelectedRange\n   * @returns {CellRange[]|undefined} Selected range object or undefined if there is no selection.\n   */\n  this.getSelectedRange = function () {\n    // https://github.com/handsontable/handsontable/issues/44  //cjl\n    if (selection.isSelected()) {\n      return Array.from(selection.getSelectedRange());\n    }\n  };\n\n  /**\n   * Returns the last coordinates applied to the table as a CellRange object.\n   *\n   * @memberof Core#\n   * @function getSelectedRangeLast\n   * @since 0.36.0\n   * @returns {CellRange|undefined} Selected range object or undefined` if there is no selection.\n   */\n  this.getSelectedRangeLast = function () {\n    const selectedRange = this.getSelectedRange();\n    let result;\n    if (selectedRange && selectedRange.length > 0) {\n      result = selectedRange[selectedRange.length - 1];\n    }\n    return result;\n  };\n\n  /**\n   * Erases content from cells that have been selected in the table.\n   *\n   * @memberof Core#\n   * @function emptySelectedCells\n   * @param {string} [source] String that identifies how this change will be described in the changes array (useful in afterChange or beforeChange callback). Set to 'edit' if left empty.\n   * @since 0.36.0\n   */\n  this.emptySelectedCells = function (source) {\n    if (!selection.isSelected() || this.countRows() === 0 || this.countCols() === 0) {\n      return;\n    }\n    const changes = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"arrayEach\"])(selection.getSelectedRange(), cellRange => {\n      if (cellRange.isSingleHeader()) {\n        return;\n      }\n      const topStart = cellRange.getTopStartCorner();\n      const bottomEnd = cellRange.getBottomEndCorner();\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_25__[\"rangeEach\"])(topStart.row, bottomEnd.row, row => {\n        Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_25__[\"rangeEach\"])(topStart.col, bottomEnd.col, column => {\n          if (!this.getCellMeta(row, column).readOnly) {\n            changes.push([row, column, null]);\n          }\n        });\n      });\n    });\n    if (changes.length > 0) {\n      this.setDataAtCell(changes, source);\n    }\n  };\n\n  /**\n   * Checks if the table rendering process was suspended. See explanation in {@link Core#suspendRender}.\n   *\n   * @memberof Core#\n   * @function isRenderSuspended\n   * @since 8.3.0\n   * @returns {boolean}\n   */\n  this.isRenderSuspended = function () {\n    return this.renderSuspendedCounter > 0;\n  };\n\n  /**\n   * Suspends the rendering process. It's helpful to wrap the table render\n   * cycles triggered by API calls or UI actions (or both) and call the \"render\"\n   * once in the end. As a result, it improves the performance of wrapped operations.\n   * When the table is in the suspend state, most operations will have no visual\n   * effect until the rendering state is resumed. Resuming the state automatically\n   * invokes the table rendering. To make sure that after executing all operations,\n   * the table will be rendered, it's highly recommended to use the {@link Core#batchRender}\n   * method or {@link Core#batch}, which additionally aggregates the logic execution\n   * that happens behind the table.\n   *\n   * The method is intended to be used by advanced users. Suspending the rendering\n   * process could cause visual glitches when wrongly implemented.\n   *\n   * Every [`suspendRender()`](@/api/core.md#suspendrender) call needs to correspond with one [`resumeRender()`](@/api/core.md#resumerender) call.\n   * For example, if you call [`suspendRender()`](@/api/core.md#suspendrender) 5 times, you need to call [`resumeRender()`](@/api/core.md#resumerender) 5 times as well.\n   *\n   * @memberof Core#\n   * @function suspendRender\n   * @since 8.3.0\n   * @example\n   * ```js\n   * hot.suspendRender();\n   * hot.alter('insert_row_above', 5, 45);\n   * hot.alter('insert_col_start', 10, 40);\n   * hot.setDataAtCell(1, 1, 'John');\n   * hot.setDataAtCell(2, 2, 'Mark');\n   * hot.setDataAtCell(3, 3, 'Ann');\n   * hot.setDataAtCell(4, 4, 'Sophia');\n   * hot.setDataAtCell(5, 5, 'Mia');\n   * hot.selectCell(0, 0);\n   * hot.resumeRender(); // It re-renders the table internally\n   * ```\n   */\n  this.suspendRender = function () {\n    this.renderSuspendedCounter += 1;\n  };\n\n  /**\n   * Resumes the rendering process. In combination with the {@link Core#suspendRender}\n   * method it allows aggregating the table render cycles triggered by API calls or UI\n   * actions (or both) and calls the \"render\" once in the end. When the table is in\n   * the suspend state, most operations will have no visual effect until the rendering\n   * state is resumed. Resuming the state automatically invokes the table rendering.\n   *\n   * The method is intended to be used by advanced users. Suspending the rendering\n   * process could cause visual glitches when wrongly implemented.\n   *\n   * Every [`suspendRender()`](@/api/core.md#suspendrender) call needs to correspond with one [`resumeRender()`](@/api/core.md#resumerender) call.\n   * For example, if you call [`suspendRender()`](@/api/core.md#suspendrender) 5 times, you need to call [`resumeRender()`](@/api/core.md#resumerender) 5 times as well.\n   *\n   * @memberof Core#\n   * @function resumeRender\n   * @since 8.3.0\n   * @example\n   * ```js\n   * hot.suspendRender();\n   * hot.alter('insert_row_above', 5, 45);\n   * hot.alter('insert_col_start', 10, 40);\n   * hot.setDataAtCell(1, 1, 'John');\n   * hot.setDataAtCell(2, 2, 'Mark');\n   * hot.setDataAtCell(3, 3, 'Ann');\n   * hot.setDataAtCell(4, 4, 'Sophia');\n   * hot.setDataAtCell(5, 5, 'Mia');\n   * hot.selectCell(0, 0);\n   * hot.resumeRender(); // It re-renders the table internally\n   * ```\n   */\n  this.resumeRender = function () {\n    const nextValue = this.renderSuspendedCounter - 1;\n    this.renderSuspendedCounter = Math.max(nextValue, 0);\n    if (!this.isRenderSuspended() && nextValue === this.renderSuspendedCounter) {\n      if (this.renderCall) {\n        this.render();\n      } else {\n        instance.view.render();\n      }\n    }\n  };\n\n  /**\n   * Rerender the table. Calling this method starts the process of recalculating, redrawing and applying the changes\n   * to the DOM. While rendering the table all cell renderers are recalled.\n   *\n   * Calling this method manually is not recommended. Handsontable tries to render itself by choosing the most\n   * optimal moments in its lifecycle.\n   *\n   * @memberof Core#\n   * @function render\n   */\n  this.render = function () {\n    if (this.view) {\n      this.renderCall = true;\n      this.forceFullRender = true; // used when data was changed or when all cells need to be re-rendered\n\n      if (!this.isRenderSuspended()) {\n        instance.view.render();\n      }\n    }\n  };\n\n  /**\n   * The method aggregates multi-line API calls into a callback and postpones the\n   * table rendering process. After the execution of the operations, the table is\n   * rendered once. As a result, it improves the performance of wrapped operations.\n   * Without batching, a similar case could trigger multiple table render calls.\n   *\n   * @memberof Core#\n   * @function batchRender\n   * @param {Function} wrappedOperations Batched operations wrapped in a function.\n   * @returns {*} Returns result from the wrappedOperations callback.\n   * @since 8.3.0\n   * @example\n   * ```js\n   * hot.batchRender(() => {\n   *   hot.alter('insert_row_above', 5, 45);\n   *   hot.alter('insert_col_start', 10, 40);\n   *   hot.setDataAtCell(1, 1, 'John');\n   *   hot.setDataAtCell(2, 2, 'Mark');\n   *   hot.setDataAtCell(3, 3, 'Ann');\n   *   hot.setDataAtCell(4, 4, 'Sophia');\n   *   hot.setDataAtCell(5, 5, 'Mia');\n   *   hot.selectCell(0, 0);\n   *   // The table will be rendered once after executing the callback\n   * });\n   * ```\n   */\n  this.batchRender = function (wrappedOperations) {\n    this.suspendRender();\n    const result = wrappedOperations();\n    this.resumeRender();\n    return result;\n  };\n\n  /**\n   * Checks if the table indexes recalculation process was suspended. See explanation\n   * in {@link Core#suspendExecution}.\n   *\n   * @memberof Core#\n   * @function isExecutionSuspended\n   * @since 8.3.0\n   * @returns {boolean}\n   */\n  this.isExecutionSuspended = function () {\n    return this.executionSuspendedCounter > 0;\n  };\n\n  /**\n   * Suspends the execution process. It's helpful to wrap the table logic changes\n   * such as index changes into one call after which the cache is updated. As a result,\n   * it improves the performance of wrapped operations.\n   *\n   * The method is intended to be used by advanced users. Suspending the execution\n   * process could cause visual glitches caused by not updated the internal table cache.\n   *\n   * @memberof Core#\n   * @function suspendExecution\n   * @since 8.3.0\n   * @example\n   * ```js\n   * hot.suspendExecution();\n   * const filters = hot.getPlugin('filters');\n   *\n   * filters.addCondition(2, 'contains', ['3']);\n   * filters.filter();\n   * hot.getPlugin('columnSorting').sort({ column: 1, sortOrder: 'desc' });\n   * hot.resumeExecution(); // It updates the cache internally\n   * ```\n   */\n  this.suspendExecution = function () {\n    this.executionSuspendedCounter += 1;\n    this.columnIndexMapper.suspendOperations();\n    this.rowIndexMapper.suspendOperations();\n  };\n\n  /**\n   * Resumes the execution process. In combination with the {@link Core#suspendExecution}\n   * method it allows aggregating the table logic changes after which the cache is\n   * updated. Resuming the state automatically invokes the table cache updating process.\n   *\n   * The method is intended to be used by advanced users. Suspending the execution\n   * process could cause visual glitches caused by not updated the internal table cache.\n   *\n   * @memberof Core#\n   * @function resumeExecution\n   * @param {boolean} [forceFlushChanges=false] If `true`, the table internal data cache\n   * is recalculated after the execution of the batched operations. For nested\n   * {@link Core#batchExecution} calls, it can be desire to recalculate the table\n   * after each batch.\n   * @since 8.3.0\n   * @example\n   * ```js\n   * hot.suspendExecution();\n   * const filters = hot.getPlugin('filters');\n   *\n   * filters.addCondition(2, 'contains', ['3']);\n   * filters.filter();\n   * hot.getPlugin('columnSorting').sort({ column: 1, sortOrder: 'desc' });\n   * hot.resumeExecution(); // It updates the cache internally\n   * ```\n   */\n  this.resumeExecution = function () {\n    let forceFlushChanges = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    const nextValue = this.executionSuspendedCounter - 1;\n    this.executionSuspendedCounter = Math.max(nextValue, 0);\n    if (!this.isExecutionSuspended() && nextValue === this.executionSuspendedCounter || forceFlushChanges) {\n      this.columnIndexMapper.resumeOperations();\n      this.rowIndexMapper.resumeOperations();\n    }\n  };\n\n  /**\n   * The method aggregates multi-line API calls into a callback and postpones the\n   * table execution process. After the execution of the operations, the internal table\n   * cache is recalculated once. As a result, it improves the performance of wrapped\n   * operations. Without batching, a similar case could trigger multiple table cache rebuilds.\n   *\n   * @memberof Core#\n   * @function batchExecution\n   * @param {Function} wrappedOperations Batched operations wrapped in a function.\n   * @param {boolean} [forceFlushChanges=false] If `true`, the table internal data cache\n   * is recalculated after the execution of the batched operations. For nested calls,\n   * it can be a desire to recalculate the table after each batch.\n   * @returns {*} Returns result from the wrappedOperations callback.\n   * @since 8.3.0\n   * @example\n   * ```js\n   * hot.batchExecution(() => {\n   *   const filters = hot.getPlugin('filters');\n   *\n   *   filters.addCondition(2, 'contains', ['3']);\n   *   filters.filter();\n   *   hot.getPlugin('columnSorting').sort({ column: 1, sortOrder: 'desc' });\n   *   // The table cache will be recalculated once after executing the callback\n   * });\n   * ```\n   */\n  this.batchExecution = function (wrappedOperations) {\n    let forceFlushChanges = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    this.suspendExecution();\n    const result = wrappedOperations();\n    this.resumeExecution(forceFlushChanges);\n    return result;\n  };\n\n  /**\n   * It batches the rendering process and index recalculations. The method aggregates\n   * multi-line API calls into a callback and postpones the table rendering process\n   * as well aggregates the table logic changes such as index changes into one call\n   * after which the cache is updated. After the execution of the operations, the\n   * table is rendered, and the cache is updated once. As a result, it improves the\n   * performance of wrapped operations.\n   *\n   * @memberof Core#\n   * @function batch\n   * @param {Function} wrappedOperations Batched operations wrapped in a function.\n   * @returns {*} Returns result from the wrappedOperations callback.\n   * @since 8.3.0\n   * @example\n   * ```js\n   * hot.batch(() => {\n   *   hot.alter('insert_row_above', 5, 45);\n   *   hot.alter('insert_col_start', 10, 40);\n   *   hot.setDataAtCell(1, 1, 'x');\n   *   hot.setDataAtCell(2, 2, 'c');\n   *   hot.setDataAtCell(3, 3, 'v');\n   *   hot.setDataAtCell(4, 4, 'b');\n   *   hot.setDataAtCell(5, 5, 'n');\n   *   hot.selectCell(0, 0);\n   *\n   *   const filters = hot.getPlugin('filters');\n   *\n   *   filters.addCondition(2, 'contains', ['3']);\n   *   filters.filter();\n   *   hot.getPlugin('columnSorting').sort({ column: 1, sortOrder: 'desc' });\n   *   // The table will be re-rendered and cache will be recalculated once after executing the callback\n   * });\n   * ```\n   */\n  this.batch = function (wrappedOperations) {\n    this.suspendRender();\n    this.suspendExecution();\n    const result = wrappedOperations();\n    this.resumeExecution();\n    this.resumeRender();\n    return result;\n  };\n\n  /**\n   * Updates dimensions of the table. The method compares previous dimensions with the current ones and updates accordingly.\n   *\n   * @memberof Core#\n   * @function refreshDimensions\n   * @fires Hooks#beforeRefreshDimensions\n   * @fires Hooks#afterRefreshDimensions\n   */\n  this.refreshDimensions = function () {\n    if (!instance.view) {\n      return;\n    }\n    const {\n      width: lastWidth,\n      height: lastHeight\n    } = instance.view.getLastSize();\n    const {\n      width,\n      height\n    } = instance.rootElement.getBoundingClientRect();\n    const isSizeChanged = width !== lastWidth || height !== lastHeight;\n    const isResizeBlocked = instance.runHooks('beforeRefreshDimensions', {\n      width: lastWidth,\n      height: lastHeight\n    }, {\n      width,\n      height\n    }, isSizeChanged) === false;\n    if (isResizeBlocked) {\n      return;\n    }\n    if (isSizeChanged || instance.view._wt.wtOverlays.scrollableElement === instance.rootWindow) {\n      instance.view.setLastSize(width, height);\n      instance.render();\n    }\n    instance.runHooks('afterRefreshDimensions', {\n      width: lastWidth,\n      height: lastHeight\n    }, {\n      width,\n      height\n    }, isSizeChanged);\n  };\n\n  /**\n   * The `updateData()` method replaces Handsontable's [`data`](@/api/options.md#data) with a new dataset.\n   *\n   * The `updateData()` method:\n   * - Keeps cells' states (e.g. cells' [formatting](@/guides/cell-features/formatting-cells/formatting-cells.md) and cells' [`readOnly`](@/api/options.md#readonly) states)\n   * - Keeps rows' states (e.g. row order)\n   * - Keeps columns' states (e.g. column order)\n   *\n   * To replace Handsontable's [`data`](@/api/options.md#data) and reset states, use the [`loadData()`](#loaddata) method.\n   *\n   * Read more:\n   * - [Binding to data](@/guides/getting-started/binding-to-data/binding-to-data.md)\n   * - [Saving data](@/guides/getting-started/saving-data/saving-data.md)\n   *\n   * @memberof Core#\n   * @function updateData\n   * @since 11.1.0\n   * @param {Array} data An [array of arrays](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects), that contains Handsontable's data\n   * @param {string} [source] The source of the `updateData()` call\n   * @fires Hooks#beforeUpdateData\n   * @fires Hooks#afterUpdateData\n   * @fires Hooks#afterChange\n   */\n  this.updateData = function (data, source) {\n    Object(_dataMap_index_mjs__WEBPACK_IMPORTED_MODULE_36__[\"replaceData\"])(data, newDataMap => {\n      datamap = newDataMap;\n    }, newDataMap => {\n      datamap = newDataMap;\n      instance.columnIndexMapper.fitToLength(this.getInitialColumnCount());\n      instance.rowIndexMapper.fitToLength(this.countSourceRows());\n      grid.adjustRowsAndCols();\n      selection.refresh();\n    }, {\n      hotInstance: instance,\n      dataMap: datamap,\n      dataSource,\n      internalSource: 'updateData',\n      source,\n      metaManager,\n      firstRun\n    });\n  };\n\n  /**\n   * The `loadData()` method replaces Handsontable's [`data`](@/api/options.md#data) with a new dataset.\n   *\n   * Additionally, the `loadData()` method:\n   * - Resets cells' states (e.g. cells' [formatting](@/guides/cell-features/formatting-cells/formatting-cells.md) and cells' [`readOnly`](@/api/options.md#readonly) states)\n   * - Resets rows' states (e.g. row order)\n   * - Resets columns' states (e.g. column order)\n   *\n   * To replace Handsontable's [`data`](@/api/options.md#data) without resetting states, use the [`updateData()`](#updatedata) method.\n   *\n   * Read more:\n   * - [Binding to data](@/guides/getting-started/binding-to-data/binding-to-data.md)\n   * - [Saving data](@/guides/getting-started/saving-data/saving-data.md)\n   *\n   * @memberof Core#\n   * @function loadData\n   * @param {Array} data An [array of arrays](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects), that contains Handsontable's data\n   * @param {string} [source] The source of the `loadData()` call\n   * @fires Hooks#beforeLoadData\n   * @fires Hooks#afterLoadData\n   * @fires Hooks#afterChange\n   */\n  this.loadData = function (data, source) {\n    Object(_dataMap_index_mjs__WEBPACK_IMPORTED_MODULE_36__[\"replaceData\"])(data, newDataMap => {\n      datamap = newDataMap;\n    }, () => {\n      metaManager.clearCellsCache();\n      instance.initIndexMappers();\n      grid.adjustRowsAndCols();\n      selection.refresh();\n      if (firstRun) {\n        firstRun = [null, 'loadData'];\n      }\n    }, {\n      hotInstance: instance,\n      dataMap: datamap,\n      dataSource,\n      internalSource: 'loadData',\n      source,\n      metaManager,\n      firstRun\n    });\n  };\n\n  /**\n   * Gets the initial column count, calculated based on the `columns` setting.\n   *\n   * @private\n   * @returns {number} The calculated number of columns.\n   */\n  this.getInitialColumnCount = function () {\n    const columnsSettings = tableMeta.columns;\n    let finalNrOfColumns = 0;\n\n    // We will check number of columns when the `columns` property was defined as an array. Columns option may\n    // narrow down or expand displayed dataset in that case.\n    if (Array.isArray(columnsSettings)) {\n      finalNrOfColumns = columnsSettings.length;\n    } else if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_11__[\"isFunction\"])(columnsSettings)) {\n      if (instance.dataType === 'array') {\n        const nrOfSourceColumns = this.countSourceCols();\n        for (let columnIndex = 0; columnIndex < nrOfSourceColumns; columnIndex += 1) {\n          if (columnsSettings(columnIndex)) {\n            finalNrOfColumns += 1;\n          }\n        }\n\n        // Extended dataset by the `columns` property? Moved code right from the refactored `countCols` method.\n      } else if (instance.dataType === 'object' || instance.dataType === 'function') {\n        finalNrOfColumns = datamap.colToPropCache.length;\n      }\n\n      // In some cases we need to check columns length from the schema, i.e. `data` may be empty.\n    } else if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isDefined\"])(tableMeta.dataSchema)) {\n      const schema = datamap.getSchema();\n\n      // Schema may be defined as an array of objects. Each object will define column.\n      finalNrOfColumns = Array.isArray(schema) ? schema.length : Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_16__[\"deepObjectSize\"])(schema);\n    } else {\n      // We init index mappers by length of source data to provide indexes also for skipped indexes.\n      finalNrOfColumns = this.countSourceCols();\n    }\n    return finalNrOfColumns;\n  };\n\n  /**\n   * Init index mapper which manage indexes assigned to the data.\n   *\n   * @private\n   */\n  this.initIndexMappers = function () {\n    this.columnIndexMapper.initToLength(this.getInitialColumnCount());\n    this.rowIndexMapper.initToLength(this.countSourceRows());\n  };\n\n  /**\n   * Returns the current data object (the same one that was passed by `data` configuration option or `loadData` method,\n   * unless some modifications have been applied (i.e. Sequence of rows/columns was changed, some row/column was skipped).\n   * If that's the case - use the {@link Core#getSourceData} method.).\n   *\n   * Optionally you can provide cell range by defining `row`, `column`, `row2`, `column2` to get only a fragment of table data.\n   *\n   * @memberof Core#\n   * @function getData\n   * @param {number} [row] From visual row index.\n   * @param {number} [column] From visual column index.\n   * @param {number} [row2] To visual row index.\n   * @param {number} [column2] To visual column index.\n   * @returns {Array[]} Array with the data.\n   * @example\n   * ```js\n   * // Get all data (in order how it is rendered in the table).\n   * hot.getData();\n   * // Get data fragment (from top-left 0, 0 to bottom-right 3, 3).\n   * hot.getData(3, 3);\n   * // Get data fragment (from top-left 2, 1 to bottom-right 3, 3).\n   * hot.getData(2, 1, 3, 3);\n   * ```\n   */\n  this.getData = function (row, column, row2, column2) {\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isUndefined\"])(row)) {\n      return datamap.getAll();\n    }\n    return datamap.getRange(instance._createCellCoords(row, column), instance._createCellCoords(row2, column2), datamap.DESTINATION_RENDERER);\n  };\n\n  /**\n   * Returns a string value of the selected range. Each column is separated by tab, each row is separated by a new\n   * line character.\n   *\n   * @memberof Core#\n   * @function getCopyableText\n   * @param {number} startRow From visual row index.\n   * @param {number} startCol From visual column index.\n   * @param {number} endRow To visual row index.\n   * @param {number} endCol To visual column index.\n   * @returns {string}\n   */\n  this.getCopyableText = function (startRow, startCol, endRow, endCol) {\n    return datamap.getCopyableText(instance._createCellCoords(startRow, startCol), instance._createCellCoords(endRow, endCol));\n  };\n\n  /**\n   * Returns the data's copyable value at specified `row` and `column` index.\n   *\n   * @memberof Core#\n   * @function getCopyableData\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @returns {string}\n   */\n  this.getCopyableData = function (row, column) {\n    return datamap.getCopyable(row, datamap.colToProp(column));\n  };\n\n  /**\n   * Returns schema provided by constructor settings. If it doesn't exist then it returns the schema based on the data\n   * structure in the first row.\n   *\n   * @memberof Core#\n   * @function getSchema\n   * @returns {object} Schema object.\n   */\n  this.getSchema = function () {\n    return datamap.getSchema();\n  };\n\n  /**\n   * Use it if you need to change configuration after initialization. The `settings` argument is an object containing the changed\n   * settings, declared the same way as in the initial settings object.\n   *\n   * __Note__, that although the `updateSettings` method doesn't overwrite the previously declared settings, it might reset\n   * the settings made post-initialization. (for example - ignore changes made using the columnResize feature).\n   *\n   * Since 8.0.0 passing `columns` or `data` inside `settings` objects will result in resetting states corresponding to rows and columns\n   * (for example, row/column sequence, column width, row height, frozen columns etc.).\n   *\n   * Since 12.0.0 passing `data` inside `settings` objects no longer results in resetting states corresponding to rows and columns\n   * (for example, row/column sequence, column width, row height, frozen columns etc.).\n   *\n   * @memberof Core#\n   * @function updateSettings\n   * @param {object} settings A settings object (see {@link Options}). Only provide the settings that are changed, not the whole settings object that was used for initialization.\n   * @param {boolean} [init=false] Internally used for in initialization mode.\n   * @example\n   * ```js\n   * hot.updateSettings({\n   *    contextMenu: true,\n   *    colHeaders: true,\n   *    fixedRowsTop: 2\n   * });\n   * ```\n   * @fires Hooks#afterCellMetaReset\n   * @fires Hooks#afterUpdateSettings\n   */\n  this.updateSettings = function (settings) {\n    let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    const dataUpdateFunction = (firstRun ? instance.loadData : instance.updateData).bind(this);\n    let columnsAsFunc = false;\n    let i;\n    let j;\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isDefined\"])(settings.rows)) {\n      throw new Error('The \"rows\" setting is no longer supported. Do you mean startRows, minRows or maxRows?');\n    }\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isDefined\"])(settings.cols)) {\n      throw new Error('The \"cols\" setting is no longer supported. Do you mean startCols, minCols or maxCols?');\n    }\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isDefined\"])(settings.ganttChart)) {\n      throw new Error('Since 8.0.0 the \"ganttChart\" setting is no longer supported.');\n    }\n\n    // eslint-disable-next-line no-restricted-syntax\n    for (i in settings) {\n      if (i === 'data') {\n        // Do nothing. loadData will be triggered later\n      } else if (i === 'language') {\n        setLanguage(settings.language);\n      } else if (i === 'className') {\n        setClassName('className', settings.className);\n      } else if (i === 'tableClassName' && instance.table) {\n        setClassName('tableClassName', settings.tableClassName);\n        instance.view._wt.wtOverlays.syncOverlayTableClassNames();\n      } else if (_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_32__[\"default\"].getSingleton().isRegistered(i) || _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_32__[\"default\"].getSingleton().isDeprecated(i)) {\n        if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_11__[\"isFunction\"])(settings[i]) || Array.isArray(settings[i])) {\n          settings[i].initialHook = true;\n          instance.addHook(i, settings[i]);\n        }\n      } else if (!init && Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_16__[\"hasOwnProperty\"])(settings, i)) {\n        // Update settings\n        globalMeta[i] = settings[i];\n      }\n    }\n\n    // Load data or create data map\n    if (settings.data === undefined && tableMeta.data === undefined) {\n      dataUpdateFunction(null, 'updateSettings'); // data source created just now\n    } else if (settings.data !== undefined) {\n      dataUpdateFunction(settings.data, 'updateSettings'); // data source given as option\n    } else if (settings.columns !== undefined) {\n      datamap.createMap();\n\n      // The `column` property has changed - dataset may be expanded or narrowed down. The `loadData` do the same.\n      instance.initIndexMappers();\n    }\n    const clen = instance.countCols();\n    const columnSetting = tableMeta.columns;\n\n    // Init columns constructors configuration\n    if (columnSetting && Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_11__[\"isFunction\"])(columnSetting)) {\n      columnsAsFunc = true;\n    }\n\n    // Clear cell meta cache\n    if (settings.cell !== undefined || settings.cells !== undefined || settings.columns !== undefined) {\n      metaManager.clearCache();\n    }\n    if (clen > 0) {\n      for (i = 0, j = 0; i < clen; i++) {\n        // Use settings provided by user\n        if (columnSetting) {\n          const column = columnsAsFunc ? columnSetting(i) : columnSetting[j];\n          if (column) {\n            metaManager.updateColumnMeta(j, column);\n          }\n        }\n        j += 1;\n      }\n    }\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isDefined\"])(settings.cell)) {\n      Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_16__[\"objectEach\"])(settings.cell, cell => {\n        instance.setCellMetaObject(cell.row, cell.col, cell);\n      });\n    }\n    instance.runHooks('afterCellMetaReset');\n    let currentHeight = instance.rootElement.style.height;\n    if (currentHeight !== '') {\n      currentHeight = parseInt(instance.rootElement.style.height, 10);\n    }\n    let height = settings.height;\n    if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_11__[\"isFunction\"])(height)) {\n      height = height();\n    }\n    if (init) {\n      const initialStyle = instance.rootElement.getAttribute('style');\n      if (initialStyle) {\n        instance.rootElement.setAttribute('data-initialstyle', instance.rootElement.getAttribute('style'));\n      }\n    }\n    if (height === null) {\n      const initialStyle = instance.rootElement.getAttribute('data-initialstyle');\n      if (initialStyle && (initialStyle.indexOf('height') > -1 || initialStyle.indexOf('overflow') > -1)) {\n        instance.rootElement.setAttribute('style', initialStyle);\n      } else {\n        instance.rootElement.style.height = '';\n        instance.rootElement.style.overflow = '';\n      }\n    } else if (height !== undefined) {\n      instance.rootElement.style.height = isNaN(height) ? `${height}` : `${height}px`;\n      instance.rootElement.style.overflow = 'hidden';\n    }\n    if (typeof settings.width !== 'undefined') {\n      let width = settings.width;\n      if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_11__[\"isFunction\"])(width)) {\n        width = width();\n      }\n      instance.rootElement.style.width = isNaN(width) ? `${width}` : `${width}px`;\n    }\n    if (!init) {\n      if (instance.view) {\n        instance.view._wt.wtViewport.resetHasOversizedColumnHeadersMarked();\n        instance.view._wt.exportSettingsAsClassNames();\n      }\n      instance.runHooks('afterUpdateSettings', settings);\n    }\n    grid.adjustRowsAndCols();\n    if (instance.view && !firstRun) {\n      instance.forceFullRender = true; // used when data was changed\n      instance.view.render();\n      instance.view._wt.wtOverlays.adjustElementsSize();\n    }\n    if (!init && instance.view && (currentHeight === '' || height === '' || height === undefined) && currentHeight !== height) {\n      instance.view._wt.wtOverlays.updateMainScrollableElements();\n    }\n  };\n\n  /**\n   * Gets the value of the currently focused cell.\n   *\n   * For column headers and row headers, returns `null`.\n   *\n   * @memberof Core#\n   * @function getValue\n   * @returns {*} The value of the focused cell.\n   */\n  this.getValue = function () {\n    const sel = instance.getSelectedLast();\n    if (tableMeta.getValue) {\n      if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_11__[\"isFunction\"])(tableMeta.getValue)) {\n        return tableMeta.getValue.call(instance);\n      } else if (sel) {\n        return instance.getData()[sel[0][0]][tableMeta.getValue];\n      }\n    } else if (sel) {\n      return instance.getDataAtCell(sel[0], sel[1]);\n    }\n  };\n\n  /**\n   * Returns the object settings.\n   *\n   * @memberof Core#\n   * @function getSettings\n   * @returns {TableMeta} Object containing the current table settings.\n   */\n  this.getSettings = function () {\n    return tableMeta;\n  };\n\n  /**\n   * Clears the data from the table (the table settings remain intact).\n   *\n   * @memberof Core#\n   * @function clear\n   */\n  this.clear = function () {\n    this.selectAll();\n    this.emptySelectedCells();\n  };\n\n  /**\n   * The `alter()` method lets you alter the grid's structure\n   * by adding or removing rows and columns at specified positions.\n   *\n   * ::: tip\n   * The `alter()` method works only when your [`data`](@/api/options.md#data)\n   * is an [array of arrays](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-arrays).\n   * :::\n   *\n   * ```js\n   * // above row 10 (by visual index), insert 1 new row\n   * hot.alter('insert_row_above', 10);\n   * ```\n   *\n   *  | Action               | With `index` | Without `index` |\n   *  | -------------------- | ------------ | --------------- |\n   *  | `'insert_row_above'` | Inserts rows above the `index` row. | Inserts rows above the first row. |\n   *  | `'insert_row_below'` | Inserts rows below the `index` row. | Inserts rows below the last row. |\n   *  | `'remove_row'`       | Removes rows, starting from the `index` row. | Removes rows, starting from the last row. |\n   *  | `'insert_col_start'` | Inserts columns before the `index` column. | Inserts columns before the first column. |\n   *  | `'insert_col_end'`   | Inserts columns after the `index` column. | Inserts columns after the last column. |\n   *  | `'remove_col'`       | Removes columns, starting from the `index` column. | Removes columns, starting from the last column. |\n   *\n   * Additional information about `'insert_col_start'` and `'insert_col_end'`:\n   * - Their behavior depends on your [`layoutDirection`](@/api/options.md#layoutdirection).\n   * - If the provided `index` is higher than the actual number of columns, Handsontable doesn't generate\n   * the columns missing in between. Instead, the new columns are inserted next to the last column.\n   *\n   * @memberof Core#\n   * @function alter\n   * @param {string} action Available operations:\n   * <ul>\n   *    <li> `'insert_row_above'` </li>\n   *    <li> `'insert_row_below'` </li>\n   *    <li> `'remove_row'` </li> </li>\n   *    <li> `'insert_col_start'` </li>\n   *    <li> `'insert_col_end'` </li>\n   *    <li> `'remove_col'` </li>\n   * </ul>\n   * @param {number|number[]} [index] A visual index of the row/column before or after which the new row/column will be\n   *                                inserted or removed. Can also be an array of arrays, in format `[[index, amount],...]`.\n   * @param {number} [amount] The amount of rows or columns to be inserted or removed (default: `1`).\n   * @param {string} [source] Source indicator.\n   * @param {boolean} [keepEmptyRows] If set to `true`: prevents removing empty rows.\n   * @example\n   * ```js\n   * // above row 10 (by visual index), insert 1 new row\n   * hot.alter('insert_row_above', 10);\n   *\n   * // below row 10 (by visual index), insert 3 new rows\n   * hot.alter('insert_row_below', 10, 3);\n   *\n   * // in the LTR layout direction: to the left of column 10 (by visual index), insert 3 new columns\n   * // in the RTL layout direction: to the right of column 10 (by visual index), insert 3 new columns\n   * hot.alter('insert_col_start', 10, 3);\n   *\n   * // in the LTR layout direction: to the right of column 10 (by visual index), insert 1 new column\n   * // in the RTL layout direction: to the left of column 10 (by visual index), insert 1 new column\n   * hot.alter('insert_col_end', 10);\n   *\n   * // remove 2 rows, starting from row 10 (by visual index)\n   * hot.alter('remove_row', 10, 2);\n   *\n   * // remove 3 rows, starting from row 1 (by visual index)\n   * // remove 2 rows, starting from row 5 (by visual index)\n   * hot.alter('remove_row', [[1, 3], [5, 2]]);\n   * ```\n   */\n  this.alter = function (action, index, amount, source, keepEmptyRows) {\n    grid.alter(action, index, amount, source, keepEmptyRows);\n  };\n\n  /**\n   * Returns a TD element for the given `row` and `column` arguments, if it is rendered on screen.\n   * Returns `null` if the TD is not rendered on screen (probably because that part of the table is not visible).\n   *\n   * @memberof Core#\n   * @function getCell\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @param {boolean} [topmost=false] If set to `true`, it returns the TD element from the topmost overlay. For example,\n   * if the wanted cell is in the range of fixed rows, it will return a TD element from the `top` overlay.\n   * @returns {HTMLTableCellElement|null} The cell's TD element.\n   */\n  this.getCell = function (row, column) {\n    let topmost = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    let renderableColumnIndex = column; // Handling also column headers.\n    let renderableRowIndex = row; // Handling also row headers.\n\n    if (column >= 0) {\n      if (this.columnIndexMapper.isHidden(this.toPhysicalColumn(column))) {\n        return null;\n      }\n      renderableColumnIndex = this.columnIndexMapper.getRenderableFromVisualIndex(column);\n    }\n    if (row >= 0) {\n      if (this.rowIndexMapper.isHidden(this.toPhysicalRow(row))) {\n        return null;\n      }\n      renderableRowIndex = this.rowIndexMapper.getRenderableFromVisualIndex(row);\n    }\n    if (renderableRowIndex === null || renderableColumnIndex === null || renderableRowIndex === undefined || renderableColumnIndex === undefined) {\n      return null;\n    }\n    return instance.view.getCellAtCoords(instance._createCellCoords(renderableRowIndex, renderableColumnIndex), topmost);\n  };\n\n  /**\n   * Returns the coordinates of the cell, provided as a HTML table cell element.\n   *\n   * @memberof Core#\n   * @function getCoords\n   * @param {HTMLTableCellElement} element The HTML Element representing the cell.\n   * @returns {CellCoords|null} Visual coordinates object.\n   * @example\n   * ```js\n   * hot.getCoords(hot.getCell(1, 1));\n   * // it returns CellCoords object instance with props row: 1 and col: 1.\n   * ```\n   */\n  this.getCoords = function (element) {\n    const renderableCoords = this.view._wt.wtTable.getCoords(element);\n    if (renderableCoords === null) {\n      return null;\n    }\n    const {\n      row: renderableRow,\n      col: renderableColumn\n    } = renderableCoords;\n    let visualRow = renderableRow;\n    let visualColumn = renderableColumn;\n    if (renderableRow >= 0) {\n      visualRow = this.rowIndexMapper.getVisualFromRenderableIndex(renderableRow);\n    }\n    if (renderableColumn >= 0) {\n      visualColumn = this.columnIndexMapper.getVisualFromRenderableIndex(renderableColumn);\n    }\n    return instance._createCellCoords(visualRow, visualColumn);\n  };\n\n  /**\n   * Returns the property name that corresponds with the given column index.\n   * If the data source is an array of arrays, it returns the columns index.\n   *\n   * @memberof Core#\n   * @function colToProp\n   * @param {number} column Visual column index.\n   * @returns {string|number} Column property or physical column index.\n   */\n  this.colToProp = function (column) {\n    return datamap.colToProp(column);\n  };\n\n  /**\n   * Returns column index that corresponds with the given property.\n   *\n   * @memberof Core#\n   * @function propToCol\n   * @param {string|number} prop Property name or physical column index.\n   * @returns {number} Visual column index.\n   */\n  this.propToCol = function (prop) {\n    return datamap.propToCol(prop);\n  };\n\n  /**\n   * Translate physical row index into visual.\n   *\n   * This method is useful when you want to retrieve visual row index which can be reordered, moved or trimmed\n   * based on a physical index.\n   *\n   * @memberof Core#\n   * @function toVisualRow\n   * @param {number} row Physical row index.\n   * @returns {number} Returns visual row index.\n   */\n  this.toVisualRow = row => this.rowIndexMapper.getVisualFromPhysicalIndex(row);\n\n  /**\n   * Translate physical column index into visual.\n   *\n   * This method is useful when you want to retrieve visual column index which can be reordered, moved or trimmed\n   * based on a physical index.\n   *\n   * @memberof Core#\n   * @function toVisualColumn\n   * @param {number} column Physical column index.\n   * @returns {number} Returns visual column index.\n   */\n  this.toVisualColumn = column => this.columnIndexMapper.getVisualFromPhysicalIndex(column);\n\n  /**\n   * Translate visual row index into physical.\n   *\n   * This method is useful when you want to retrieve physical row index based on a visual index which can be\n   * reordered, moved or trimmed.\n   *\n   * @memberof Core#\n   * @function toPhysicalRow\n   * @param {number} row Visual row index.\n   * @returns {number} Returns physical row index.\n   */\n  this.toPhysicalRow = row => this.rowIndexMapper.getPhysicalFromVisualIndex(row);\n\n  /**\n   * Translate visual column index into physical.\n   *\n   * This method is useful when you want to retrieve physical column index based on a visual index which can be\n   * reordered, moved or trimmed.\n   *\n   * @memberof Core#\n   * @function toPhysicalColumn\n   * @param {number} column Visual column index.\n   * @returns {number} Returns physical column index.\n   */\n  this.toPhysicalColumn = column => this.columnIndexMapper.getPhysicalFromVisualIndex(column);\n\n  /**\n   * @description\n   * Returns the cell value at `row`, `column`.\n   *\n   * __Note__: If data is reordered, sorted or trimmed, the currently visible order will be used.\n   *\n   * @memberof Core#\n   * @function getDataAtCell\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @returns {*} Data at cell.\n   */\n  this.getDataAtCell = function (row, column) {\n    return datamap.get(row, datamap.colToProp(column));\n  };\n\n  /**\n   * Returns value at visual `row` and `prop` indexes.\n   *\n   * __Note__: If data is reordered, sorted or trimmed, the currently visible order will be used.\n   *\n   * @memberof Core#\n   * @function getDataAtRowProp\n   * @param {number} row Visual row index.\n   * @param {string} prop Property name.\n   * @returns {*} Cell value.\n   */\n  this.getDataAtRowProp = function (row, prop) {\n    return datamap.get(row, prop);\n  };\n\n  /**\n   * @description\n   * Returns array of column values from the data source.\n   *\n   * __Note__: If columns were reordered or sorted, the currently visible order will be used.\n   *\n   * @memberof Core#\n   * @function getDataAtCol\n   * @param {number} column Visual column index.\n   * @returns {Array} Array of cell values.\n   */\n  this.getDataAtCol = function (column) {\n    const columnData = [];\n    const dataByRows = datamap.getRange(instance._createCellCoords(0, column), instance._createCellCoords(tableMeta.data.length - 1, column), datamap.DESTINATION_RENDERER);\n    for (let i = 0; i < dataByRows.length; i += 1) {\n      for (let j = 0; j < dataByRows[i].length; j += 1) {\n        columnData.push(dataByRows[i][j]);\n      }\n    }\n    return columnData;\n  };\n\n  /**\n   * Given the object property name (e.g. `'first.name'` or `'0'`), returns an array of column's values from the table data.\n   * You can also provide a column index as the first argument.\n   *\n   * @memberof Core#\n   * @function getDataAtProp\n   * @param {string|number} prop Property name or physical column index.\n   * @returns {Array} Array of cell values.\n   */\n  // TODO: Getting data from `datamap` should work on visual indexes.\n  this.getDataAtProp = function (prop) {\n    const columnData = [];\n    const dataByRows = datamap.getRange(instance._createCellCoords(0, datamap.propToCol(prop)), instance._createCellCoords(tableMeta.data.length - 1, datamap.propToCol(prop)), datamap.DESTINATION_RENDERER);\n    for (let i = 0; i < dataByRows.length; i += 1) {\n      for (let j = 0; j < dataByRows[i].length; j += 1) {\n        columnData.push(dataByRows[i][j]);\n      }\n    }\n    return columnData;\n  };\n\n  /**\n   * Returns a clone of the source data object.\n   * Optionally you can provide a cell range by using the `row`, `column`, `row2`, `column2` arguments, to get only a\n   * fragment of the table data.\n   *\n   * __Note__: This method does not participate in data transformation. If the visual data of the table is reordered,\n   * sorted or trimmed only physical indexes are correct.\n   *\n   * __Note__: This method may return incorrect values for cells that contain\n   * [formulas](@/guides/formulas/formula-calculation/formula-calculation.md). This is because `getSourceData()`\n   * operates on source data ([physical indexes](@/api/indexMapper.md)),\n   * whereas formulas operate on visual data (visual indexes).\n   *\n   * @memberof Core#\n   * @function getSourceData\n   * @param {number} [row] From physical row index.\n   * @param {number} [column] From physical column index (or visual index, if data type is an array of objects).\n   * @param {number} [row2] To physical row index.\n   * @param {number} [column2] To physical column index (or visual index, if data type is an array of objects).\n   * @returns {Array[]|object[]} The table data.\n   */\n  this.getSourceData = function (row, column, row2, column2) {\n    let data;\n    if (row === undefined) {\n      data = dataSource.getData();\n    } else {\n      data = dataSource.getByRange(instance._createCellCoords(row, column), instance._createCellCoords(row2, column2));\n    }\n    return data;\n  };\n\n  /**\n   * Returns the source data object as an arrays of arrays format even when source data was provided in another format.\n   * Optionally you can provide a cell range by using the `row`, `column`, `row2`, `column2` arguments, to get only a\n   * fragment of the table data.\n   *\n   * __Note__: This method does not participate in data transformation. If the visual data of the table is reordered,\n   * sorted or trimmed only physical indexes are correct.\n   *\n   * @memberof Core#\n   * @function getSourceDataArray\n   * @param {number} [row] From physical row index.\n   * @param {number} [column] From physical column index (or visual index, if data type is an array of objects).\n   * @param {number} [row2] To physical row index.\n   * @param {number} [column2] To physical column index (or visual index, if data type is an array of objects).\n   * @returns {Array} An array of arrays.\n   */\n  this.getSourceDataArray = function (row, column, row2, column2) {\n    let data;\n    if (row === undefined) {\n      data = dataSource.getData(true);\n    } else {\n      data = dataSource.getByRange(instance._createCellCoords(row, column), instance._createCellCoords(row2, column2), true);\n    }\n    return data;\n  };\n\n  /**\n   * Returns an array of column values from the data source.\n   *\n   * @memberof Core#\n   * @function getSourceDataAtCol\n   * @param {number} column Visual column index.\n   * @returns {Array} Array of the column's cell values.\n   */\n  // TODO: Getting data from `sourceData` should work always on physical indexes.\n  this.getSourceDataAtCol = function (column) {\n    return dataSource.getAtColumn(column);\n  };\n\n  /* eslint-disable jsdoc/require-param */\n  /**\n   * Set the provided value in the source data set at the provided coordinates.\n   *\n   * @memberof Core#\n   * @function setSourceDataAtCell\n   * @param {number|Array} row Physical row index or array of changes in format `[[row, prop, value], ...]`.\n   * @param {number|string} column Physical column index / prop name.\n   * @param {*} value The value to be set at the provided coordinates.\n   * @param {string} [source] Source of the change as a string.\n   */\n  /* eslint-enable jsdoc/require-param */\n  this.setSourceDataAtCell = function (row, column, value, source) {\n    const input = setDataInputToArray(row, column, value);\n    const isThereAnySetSourceListener = this.hasHook('afterSetSourceDataAtCell');\n    const changesForHook = [];\n    if (isThereAnySetSourceListener) {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"arrayEach\"])(input, _ref8 => {\n        let [changeRow, changeProp, changeValue] = _ref8;\n        changesForHook.push([changeRow, changeProp, dataSource.getAtCell(changeRow, changeProp),\n        // The previous value.\n        changeValue]);\n      });\n    }\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"arrayEach\"])(input, _ref9 => {\n      let [changeRow, changeProp, changeValue] = _ref9;\n      dataSource.setAtCell(changeRow, changeProp, changeValue);\n    });\n    if (isThereAnySetSourceListener) {\n      this.runHooks('afterSetSourceDataAtCell', changesForHook, source);\n    }\n    this.render();\n    const activeEditor = instance.getActiveEditor();\n    if (activeEditor && Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isDefined\"])(activeEditor.refreshValue)) {\n      activeEditor.refreshValue();\n    }\n  };\n\n  /**\n   * Returns a single row of the data (array or object, depending on what data format you use).\n   *\n   * __Note__: This method does not participate in data transformation. If the visual data of the table is reordered,\n   * sorted or trimmed only physical indexes are correct.\n   *\n   * @memberof Core#\n   * @function getSourceDataAtRow\n   * @param {number} row Physical row index.\n   * @returns {Array|object} Single row of data.\n   */\n  this.getSourceDataAtRow = function (row) {\n    return dataSource.getAtRow(row);\n  };\n\n  /**\n   * Returns a single value from the data source.\n   *\n   * @memberof Core#\n   * @function getSourceDataAtCell\n   * @param {number} row Physical row index.\n   * @param {number} column Visual column index.\n   * @returns {*} Cell data.\n   */\n  // TODO: Getting data from `sourceData` should work always on physical indexes.\n  this.getSourceDataAtCell = function (row, column) {\n    return dataSource.getAtCell(row, column);\n  };\n\n  /**\n   * @description\n   * Returns a single row of the data.\n   *\n   * __Note__: If rows were reordered, sorted or trimmed, the currently visible order will be used.\n   *\n   * @memberof Core#\n   * @function getDataAtRow\n   * @param {number} row Visual row index.\n   * @returns {Array} Array of row's cell data.\n   */\n  this.getDataAtRow = function (row) {\n    const data = datamap.getRange(instance._createCellCoords(row, 0), instance._createCellCoords(row, this.countCols() - 1), datamap.DESTINATION_RENDERER);\n    return data[0] || [];\n  };\n\n  /**\n   * @description\n   * Returns a data type defined in the Handsontable settings under the `type` key ({@link Options#type}).\n   * If there are cells with different types in the selected range, it returns `'mixed'`.\n   *\n   * __Note__: If data is reordered, sorted or trimmed, the currently visible order will be used.\n   *\n   * @memberof Core#\n   * @function getDataType\n   * @param {number} rowFrom From visual row index.\n   * @param {number} columnFrom From visual column index.\n   * @param {number} rowTo To visual row index.\n   * @param {number} columnTo To visual column index.\n   * @returns {string} Cell type (e.q: `'mixed'`, `'text'`, `'numeric'`, `'autocomplete'`).\n   */\n  this.getDataType = function (rowFrom, columnFrom, rowTo, columnTo) {\n    const coords = rowFrom === undefined ? [0, 0, this.countRows(), this.countCols()] : [rowFrom, columnFrom, rowTo, columnTo];\n    const [rowStart, columnStart] = coords;\n    let [,, rowEnd, columnEnd] = coords;\n    let previousType = null;\n    let currentType = null;\n    if (rowEnd === undefined) {\n      rowEnd = rowStart;\n    }\n    if (columnEnd === undefined) {\n      columnEnd = columnStart;\n    }\n    let type = 'mixed';\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_25__[\"rangeEach\"])(Math.max(Math.min(rowStart, rowEnd), 0), Math.max(rowStart, rowEnd), row => {\n      let isTypeEqual = true;\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_25__[\"rangeEach\"])(Math.max(Math.min(columnStart, columnEnd), 0), Math.max(columnStart, columnEnd), column => {\n        const cellType = this.getCellMeta(row, column);\n        currentType = cellType.type;\n        if (previousType) {\n          isTypeEqual = previousType === currentType;\n        } else {\n          previousType = currentType;\n        }\n        return isTypeEqual;\n      });\n      type = isTypeEqual ? currentType : 'mixed';\n      return isTypeEqual;\n    });\n    return type;\n  };\n\n  /**\n   * Remove a property defined by the `key` argument from the cell meta object for the provided `row` and `column` coordinates.\n   *\n   * @memberof Core#\n   * @function removeCellMeta\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @param {string} key Property name.\n   * @fires Hooks#beforeRemoveCellMeta\n   * @fires Hooks#afterRemoveCellMeta\n   */\n  this.removeCellMeta = function (row, column, key) {\n    const [physicalRow, physicalColumn] = [this.toPhysicalRow(row), this.toPhysicalColumn(column)];\n    let cachedValue = metaManager.getCellMetaKeyValue(physicalRow, physicalColumn, key);\n    const hookResult = instance.runHooks('beforeRemoveCellMeta', row, column, key, cachedValue);\n    if (hookResult !== false) {\n      metaManager.removeCellMeta(physicalRow, physicalColumn, key);\n      instance.runHooks('afterRemoveCellMeta', row, column, key, cachedValue);\n    }\n    cachedValue = null;\n  };\n\n  /**\n   * Removes or adds one or more rows of the cell meta objects to the cell meta collections.\n   *\n   * @since 0.30.0\n   * @memberof Core#\n   * @function spliceCellsMeta\n   * @param {number} visualIndex A visual index that specifies at what position to add/remove items.\n   * @param {number} [deleteAmount=0] The number of items to be removed. If set to 0, no cell meta objects will be removed.\n   * @param {...object} [cellMetaRows] The new cell meta row objects to be added to the cell meta collection.\n   */\n  this.spliceCellsMeta = function (visualIndex) {\n    let deleteAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    for (var _len18 = arguments.length, cellMetaRows = new Array(_len18 > 2 ? _len18 - 2 : 0), _key18 = 2; _key18 < _len18; _key18++) {\n      cellMetaRows[_key18 - 2] = arguments[_key18];\n    }\n    if (cellMetaRows.length > 0 && !Array.isArray(cellMetaRows[0])) {\n      throw new Error('The 3rd argument (cellMetaRows) has to be passed as an array of cell meta objects array.');\n    }\n    if (deleteAmount > 0) {\n      metaManager.removeRow(this.toPhysicalRow(visualIndex), deleteAmount);\n    }\n    if (cellMetaRows.length > 0) {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"arrayEach\"])(cellMetaRows.reverse(), cellMetaRow => {\n        metaManager.createRow(this.toPhysicalRow(visualIndex));\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"arrayEach\"])(cellMetaRow, (cellMeta, columnIndex) => this.setCellMetaObject(visualIndex, columnIndex, cellMeta));\n      });\n    }\n    instance.render();\n  };\n\n  /**\n   * Set cell meta data object defined by `prop` to the corresponding params `row` and `column`.\n   *\n   * @memberof Core#\n   * @function setCellMetaObject\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @param {object} prop Meta object.\n   */\n  this.setCellMetaObject = function (row, column, prop) {\n    if (typeof prop === 'object') {\n      Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_16__[\"objectEach\"])(prop, (value, key) => {\n        this.setCellMeta(row, column, key, value);\n      });\n    }\n  };\n\n  /**\n   * Sets a property defined by the `key` property to the meta object of a cell corresponding to params `row` and `column`.\n   *\n   * @memberof Core#\n   * @function setCellMeta\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @param {string} key Property name.\n   * @param {string} value Property value.\n   * @fires Hooks#beforeSetCellMeta\n   * @fires Hooks#afterSetCellMeta\n   */\n  this.setCellMeta = function (row, column, key, value) {\n    const allowSetCellMeta = instance.runHooks('beforeSetCellMeta', row, column, key, value);\n    if (allowSetCellMeta === false) {\n      return;\n    }\n    let physicalRow = row;\n    let physicalColumn = column;\n    if (row < this.countRows()) {\n      physicalRow = this.toPhysicalRow(row);\n    }\n    if (column < this.countCols()) {\n      physicalColumn = this.toPhysicalColumn(column);\n    }\n    metaManager.setCellMeta(physicalRow, physicalColumn, key, value);\n    instance.runHooks('afterSetCellMeta', row, column, key, value);\n  };\n\n  /**\n   * Get all the cells meta settings at least once generated in the table (in order of cell initialization).\n   *\n   * @memberof Core#\n   * @function getCellsMeta\n   * @returns {Array} Returns an array of ColumnSettings object instances.\n   */\n  this.getCellsMeta = function () {\n    return metaManager.getCellsMeta();\n  };\n\n  /**\n   * Returns the cell properties object for the given `row` and `column` coordinates.\n   *\n   * @memberof Core#\n   * @function getCellMeta\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @returns {object} The cell properties object.\n   * @fires Hooks#beforeGetCellMeta\n   * @fires Hooks#afterGetCellMeta\n   */\n  this.getCellMeta = function (row, column) {\n    let physicalRow = this.toPhysicalRow(row);\n    let physicalColumn = this.toPhysicalColumn(column);\n    if (physicalRow === null) {\n      physicalRow = row;\n    }\n    if (physicalColumn === null) {\n      physicalColumn = column;\n    }\n    return metaManager.getCellMeta(physicalRow, physicalColumn, {\n      visualRow: row,\n      visualColumn: column\n    });\n  };\n\n  /**\n   * Returns the meta information for the provided column.\n   *\n   * @since 14.5.0\n   * @memberof Core#\n   * @function getColumnMeta\n   * @param {number} column Visual column index.\n   * @returns {object}\n   */\n  this.getColumnMeta = function (column) {\n    return metaManager.getColumnMeta(this.toPhysicalColumn(column));\n  };\n\n  /**\n   * Returns an array of cell meta objects for specified physical row index.\n   *\n   * @memberof Core#\n   * @function getCellMetaAtRow\n   * @param {number} row Physical row index.\n   * @returns {Array}\n   */\n  this.getCellMetaAtRow = function (row) {\n    return metaManager.getCellsMetaAtRow(row);\n  };\n\n  /**\n   * Checks if your [data format](@/guides/getting-started/binding-to-data/binding-to-data.md#compatible-data-types)\n   * and [configuration options](@/guides/getting-started/configuration-options/configuration-options.md)\n   * allow for changing the number of columns.\n   *\n   * Returns `false` when your data is an array of objects,\n   * or when you use the [`columns`](@/api/options.md#columns) option.\n   * Otherwise, returns `true`.\n   *\n   * @memberof Core#\n   * @function isColumnModificationAllowed\n   * @returns {boolean}\n   */\n  this.isColumnModificationAllowed = function () {\n    return !(instance.dataType === 'object' || tableMeta.columns);\n  };\n\n  /**\n   * Returns the cell renderer function by given `row` and `column` arguments.\n   *\n   * @memberof Core#\n   * @function getCellRenderer\n   * @param {number|object} rowOrMeta Visual row index or cell meta object (see {@link Core#getCellMeta}).\n   * @param {number} column Visual column index.\n   * @returns {Function} Returns the renderer function.\n   * @example\n   * ```js\n   * // Get cell renderer using `row` and `column` coordinates.\n   * hot.getCellRenderer(1, 1);\n   * // Get cell renderer using cell meta object.\n   * hot.getCellRenderer(hot.getCellMeta(1, 1));\n   * ```\n   */\n  this.getCellRenderer = function (rowOrMeta, column) {\n    const cellRenderer = typeof rowOrMeta === 'number' ? instance.getCellMeta(rowOrMeta, column).renderer : rowOrMeta.renderer;\n    if (typeof cellRenderer === 'string') {\n      return Object(_renderers_registry_mjs__WEBPACK_IMPORTED_MODULE_21__[\"getRenderer\"])(cellRenderer);\n    }\n    return Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isUndefined\"])(cellRenderer) ? Object(_renderers_registry_mjs__WEBPACK_IMPORTED_MODULE_21__[\"getRenderer\"])('text') : cellRenderer;\n  };\n\n  /**\n   * Returns the cell editor class by the provided `row` and `column` arguments.\n   *\n   * @memberof Core#\n   * @function getCellEditor\n   * @param {number} rowOrMeta Visual row index or cell meta object (see {@link Core#getCellMeta}).\n   * @param {number} column Visual column index.\n   * @returns {Function|boolean} Returns the editor class or `false` is cell editor is disabled.\n   * @example\n   * ```js\n   * // Get cell editor class using `row` and `column` coordinates.\n   * hot.getCellEditor(1, 1);\n   * // Get cell editor class using cell meta object.\n   * hot.getCellEditor(hot.getCellMeta(1, 1));\n   * ```\n   */\n  this.getCellEditor = function (rowOrMeta, column) {\n    const cellEditor = typeof rowOrMeta === 'number' ? instance.getCellMeta(rowOrMeta, column).editor : rowOrMeta.editor;\n    if (typeof cellEditor === 'string') {\n      return Object(_editors_registry_mjs__WEBPACK_IMPORTED_MODULE_22__[\"getEditor\"])(cellEditor);\n    }\n    return Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isUndefined\"])(cellEditor) ? Object(_editors_registry_mjs__WEBPACK_IMPORTED_MODULE_22__[\"getEditor\"])('text') : cellEditor;\n  };\n\n  /**\n   * Returns the cell validator by `row` and `column`.\n   *\n   * @memberof Core#\n   * @function getCellValidator\n   * @param {number|object} rowOrMeta Visual row index or cell meta object (see {@link Core#getCellMeta}).\n   * @param {number} column Visual column index.\n   * @returns {Function|RegExp|undefined} The validator function.\n   * @example\n   * ```js\n   * // Get cell validator using `row` and `column` coordinates.\n   * hot.getCellValidator(1, 1);\n   * // Get cell validator using cell meta object.\n   * hot.getCellValidator(hot.getCellMeta(1, 1));\n   * ```\n   */\n  this.getCellValidator = function (rowOrMeta, column) {\n    const cellValidator = typeof rowOrMeta === 'number' ? instance.getCellMeta(rowOrMeta, column).validator : rowOrMeta.validator;\n    if (typeof cellValidator === 'string') {\n      return Object(_validators_registry_mjs__WEBPACK_IMPORTED_MODULE_23__[\"getValidator\"])(cellValidator);\n    }\n    return cellValidator;\n  };\n\n  /**\n   * Validates every cell in the data set,\n   * using a [validator function](@/guides/cell-functions/cell-validator/cell-validator.md) configured for each cell.\n   *\n   * Doesn't validate cells that are currently [trimmed](@/guides/rows/row-trimming/row-trimming.md),\n   * [hidden](@/guides/rows/row-hiding/row-hiding.md), or [filtered](@/guides/columns/column-filter/column-filter.md),\n   * as such cells are not included in the data set until you bring them back again.\n   *\n   * After the validation, the `callback` function is fired, with the `valid` argument set to:\n   * - `true` for valid cells\n   * - `false` for invalid cells\n   *\n   * @memberof Core#\n   * @function validateCells\n   * @param {Function} [callback] The callback function.\n   * @example\n   * ```js\n   * hot.validateCells((valid) => {\n   *   if (valid) {\n   *     // ... code for validated cells\n   *   }\n   * })\n   * ```\n   */\n  this.validateCells = function (callback) {\n    this._validateCells(callback);\n  };\n\n  /**\n   * Validates rows using their validator functions and calls callback when finished.\n   *\n   * If one of the cells is invalid, the callback will be fired with `'valid'` arguments as `false` - otherwise it\n   *  would equal `true`.\n   *\n   * @memberof Core#\n   * @function validateRows\n   * @param {Array} [rows] Array of validation target visual row indexes.\n   * @param {Function} [callback] The callback function.\n   * @example\n   * ```js\n   * hot.validateRows([3, 4, 5], (valid) => {\n   *   if (valid) {\n   *     // ... code for validated rows\n   *   }\n   * })\n   * ```\n   */\n  this.validateRows = function (rows, callback) {\n    if (!Array.isArray(rows)) {\n      throw new Error('validateRows parameter `rows` must be an array');\n    }\n    this._validateCells(callback, rows);\n  };\n\n  /**\n   * Validates columns using their validator functions and calls callback when finished.\n   *\n   * If one of the cells is invalid, the callback will be fired with `'valid'` arguments as `false` - otherwise it\n   *  would equal `true`.\n   *\n   * @memberof Core#\n   * @function validateColumns\n   * @param {Array} [columns] Array of validation target visual columns indexes.\n   * @param {Function} [callback] The callback function.\n   * @example\n   * ```js\n   * hot.validateColumns([3, 4, 5], (valid) => {\n   *   if (valid) {\n   *     // ... code for validated columns\n   *   }\n   * })\n   * ```\n   */\n  this.validateColumns = function (columns, callback) {\n    if (!Array.isArray(columns)) {\n      throw new Error('validateColumns parameter `columns` must be an array');\n    }\n    this._validateCells(callback, undefined, columns);\n  };\n\n  /**\n   * Validates all cells using their validator functions and calls callback when finished.\n   *\n   * If one of the cells is invalid, the callback will be fired with `'valid'` arguments as `false` - otherwise it would equal `true`.\n   *\n   * Private use intended.\n   *\n   * @private\n   * @memberof Core#\n   * @function _validateCells\n   * @param {Function} [callback] The callback function.\n   * @param {Array} [rows] An array of validation target visual row indexes.\n   * @param {Array} [columns] An array of validation target visual column indexes.\n   */\n  this._validateCells = function (callback, rows, columns) {\n    const waitingForValidator = new ValidatorsQueue();\n    if (callback) {\n      waitingForValidator.onQueueEmpty = callback;\n    }\n    let i = instance.countRows() - 1;\n    while (i >= 0) {\n      if (rows !== undefined && rows.indexOf(i) === -1) {\n        i -= 1;\n        continue;\n      }\n      let j = instance.countCols() - 1;\n      while (j >= 0) {\n        if (columns !== undefined && columns.indexOf(j) === -1) {\n          j -= 1;\n          continue;\n        }\n        waitingForValidator.addValidatorToQueue();\n        instance.validateCell(instance.getDataAtCell(i, j), instance.getCellMeta(i, j), result => {\n          if (typeof result !== 'boolean') {\n            throw new Error('Validation error: result is not boolean');\n          }\n          if (result === false) {\n            waitingForValidator.valid = false;\n          }\n          waitingForValidator.removeValidatorFormQueue();\n        }, 'validateCells');\n        j -= 1;\n      }\n      i -= 1;\n    }\n    waitingForValidator.checkIfQueueIsEmpty();\n  };\n\n  /**\n   * Returns an array of row headers' values (if they are enabled). If param `row` was given, it returns the header of the given row as a string.\n   *\n   * @memberof Core#\n   * @function getRowHeader\n   * @param {number} [row] Visual row index.\n   * @fires Hooks#modifyRowHeader\n   * @returns {Array|string|number} Array of header values / single header value.\n   */\n  this.getRowHeader = function (row) {\n    let rowHeader = tableMeta.rowHeaders;\n    let physicalRow = row;\n    if (physicalRow !== undefined) {\n      physicalRow = instance.runHooks('modifyRowHeader', physicalRow);\n    }\n    if (physicalRow === undefined) {\n      rowHeader = [];\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_25__[\"rangeEach\"])(instance.countRows() - 1, i => {\n        rowHeader.push(instance.getRowHeader(i));\n      });\n    } else if (Array.isArray(rowHeader) && rowHeader[physicalRow] !== undefined) {\n      rowHeader = rowHeader[physicalRow];\n    } else if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_11__[\"isFunction\"])(rowHeader)) {\n      rowHeader = rowHeader(physicalRow);\n    } else if (rowHeader && typeof rowHeader !== 'string' && typeof rowHeader !== 'number') {\n      rowHeader = physicalRow + 1;\n    }\n    return rowHeader;\n  };\n\n  /**\n   * Returns information about if this table is configured to display row headers.\n   *\n   * @memberof Core#\n   * @function hasRowHeaders\n   * @returns {boolean} `true` if the instance has the row headers enabled, `false` otherwise.\n   */\n  this.hasRowHeaders = function () {\n    return !!tableMeta.rowHeaders;\n  };\n\n  /**\n   * Returns information about if this table is configured to display column headers.\n   *\n   * @memberof Core#\n   * @function hasColHeaders\n   * @returns {boolean} `true` if the instance has the column headers enabled, `false` otherwise.\n   */\n  this.hasColHeaders = function () {\n    if (tableMeta.colHeaders !== undefined && tableMeta.colHeaders !== null) {\n      // Polymer has empty value = null\n      return !!tableMeta.colHeaders;\n    }\n    for (let i = 0, ilen = instance.countCols(); i < ilen; i++) {\n      if (instance.getColHeader(i)) {\n        return true;\n      }\n    }\n    return false;\n  };\n\n  /**\n   * Gets the values of column headers (if column headers are [enabled](@/api/options.md#colheaders)).\n   *\n   * To get an array with the values of all\n   * [bottom-most](@/guides/cell-features/clipboard/clipboard.md#copy-with-headers) column headers,\n   * call `getColHeader()` with no arguments.\n   *\n   * To get the value of the bottom-most header of a specific column, use the `column` parameter.\n   *\n   * To get the value of a [specific-level](@/guides/columns/column-groups/column-groups.md) header\n   * of a specific column, use the `column` and `headerLevel` parameters.\n   *\n   * Read more:\n   * - [Guides: Column groups](@/guides/columns/column-groups/column-groups.md)\n   * - [Options: `colHeaders`](@/api/options.md#colheaders)\n   * - [Guides: Copy with headers](@/guides/cell-features/clipboard/clipboard.md#copy-with-headers)\n   *\n   * ```js\n   * // get the contents of all bottom-most column headers\n   * hot.getColHeader();\n   *\n   * // get the contents of the bottom-most header of a specific column\n   * hot.getColHeader(5);\n   *\n   * // get the contents of a specific column header at a specific level\n   * hot.getColHeader(5, -2);\n   * ```\n   *\n   * @memberof Core#\n   * @function getColHeader\n   * @param {number} [column] A visual column index.\n   * @param {number} [headerLevel=-1] (Since 12.3.0) Header level index. Accepts positive (0 to n)\n   *                                  and negative (-1 to -n) values. For positive values, 0 points to the\n   *                                  topmost header. For negative values, -1 points to the bottom-most\n   *                                  header (the header closest to the cells).\n   * @fires Hooks#modifyColHeader\n   * @fires Hooks#modifyColumnHeaderValue\n   * @returns {Array|string|number} Column header values.\n   */\n  this.getColHeader = function (column) {\n    let headerLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n    const columnIndex = instance.runHooks('modifyColHeader', column);\n    if (columnIndex === undefined) {\n      const out = [];\n      const ilen = instance.countCols();\n      for (let i = 0; i < ilen; i++) {\n        out.push(instance.getColHeader(i));\n      }\n      return out;\n    }\n    let result = tableMeta.colHeaders;\n    const translateVisualIndexToColumns = function (visualColumnIndex) {\n      const arr = [];\n      const columnsLen = instance.countCols();\n      let index = 0;\n      for (; index < columnsLen; index++) {\n        if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_11__[\"isFunction\"])(tableMeta.columns) && tableMeta.columns(index)) {\n          arr.push(index);\n        }\n      }\n      return arr[visualColumnIndex];\n    };\n    const physicalColumn = instance.toPhysicalColumn(columnIndex);\n    const prop = translateVisualIndexToColumns(physicalColumn);\n    if (tableMeta.colHeaders === false) {\n      result = null;\n    } else if (tableMeta.columns && Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_11__[\"isFunction\"])(tableMeta.columns) && tableMeta.columns(prop) && tableMeta.columns(prop).title) {\n      result = tableMeta.columns(prop).title;\n    } else if (tableMeta.columns && tableMeta.columns[physicalColumn] && tableMeta.columns[physicalColumn].title) {\n      result = tableMeta.columns[physicalColumn].title;\n    } else if (Array.isArray(tableMeta.colHeaders) && tableMeta.colHeaders[physicalColumn] !== undefined) {\n      result = tableMeta.colHeaders[physicalColumn];\n    } else if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_11__[\"isFunction\"])(tableMeta.colHeaders)) {\n      result = tableMeta.colHeaders(physicalColumn);\n    } else if (tableMeta.colHeaders && typeof tableMeta.colHeaders !== 'string' && typeof tableMeta.colHeaders !== 'number') {\n      result = Object(_helpers_data_mjs__WEBPACK_IMPORTED_MODULE_28__[\"spreadsheetColumnLabel\"])(columnIndex); // see #1458\n    }\n    result = instance.runHooks('modifyColumnHeaderValue', result, column, headerLevel);\n    return result;\n  };\n\n  /**\n   * Return column width from settings (no guessing). Private use intended.\n   *\n   * @private\n   * @memberof Core#\n   * @function _getColWidthFromSettings\n   * @param {number} col Visual col index.\n   * @returns {number}\n   */\n  this._getColWidthFromSettings = function (col) {\n    let width;\n\n    // We currently don't support cell meta objects for headers (negative values)\n    if (col >= 0) {\n      const cellProperties = instance.getCellMeta(0, col);\n      width = cellProperties.width;\n    }\n    if (width === undefined || width === tableMeta.width) {\n      width = tableMeta.colWidths;\n    }\n    if (width !== undefined && width !== null) {\n      switch (typeof width) {\n        case 'object':\n          // array\n          width = width[col];\n          break;\n        case 'function':\n          width = width(col);\n          break;\n        default:\n          break;\n      }\n      if (typeof width === 'string') {\n        width = parseInt(width, 10);\n      }\n    }\n    return width;\n  };\n\n  /**\n   * Returns the width of the requested column.\n   *\n   * @memberof Core#\n   * @function getColWidth\n   * @param {number} column Visual column index.\n   * @returns {number} Column width.\n   * @fires Hooks#modifyColWidth\n   */\n  this.getColWidth = function (column) {\n    let width = instance._getColWidthFromSettings(column);\n    width = instance.runHooks('modifyColWidth', width, column);\n    if (width === undefined) {\n      width = _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_31__[\"DEFAULT_COLUMN_WIDTH\"];\n    }\n    return width;\n  };\n\n  /**\n   * Return row height from settings (no guessing). Private use intended.\n   *\n   * @private\n   * @memberof Core#\n   * @function _getRowHeightFromSettings\n   * @param {number} row Visual row index.\n   * @returns {number}\n   */\n  this._getRowHeightFromSettings = function (row) {\n    let height = tableMeta.rowHeights;\n    if (height !== undefined && height !== null) {\n      switch (typeof height) {\n        case 'object':\n          // array\n          height = height[row];\n          break;\n        case 'function':\n          height = height(row);\n          break;\n        default:\n          break;\n      }\n      if (typeof height === 'string') {\n        height = parseInt(height, 10);\n      }\n    }\n    return height;\n  };\n\n  /**\n   * Returns a row's height, as recognized by Handsontable.\n   *\n   * Depending on your configuration, the method returns (in order of priority):\n   *   1. The row height set by the [`ManualRowResize`](@/api/manualRowResize.md) plugin\n   *     (if the plugin is enabled).\n   *   2. The row height set by the [`rowHeights`](@/api/options.md#rowheights) configuration option\n   *     (if the option is set).\n   *   3. The row height as measured in the DOM by the [`AutoRowSize`](@/api/autoRowSize.md) plugin\n   *     (if the plugin is enabled).\n   *   4. `undefined`, if neither [`ManualRowResize`](@/api/manualRowResize.md),\n   *     nor [`rowHeights`](@/api/options.md#rowheights),\n   *     nor [`AutoRowSize`](@/api/autoRowSize.md) is used.\n   *\n   * The height returned includes 1 px of the row's bottom border.\n   *\n   * Mind that this method is different from the\n   * [`getRowHeight()`](@/api/autoRowSize.md#getrowheight) method\n   * of the [`AutoRowSize`](@/api/autoRowSize.md) plugin.\n   *\n   * @memberof Core#\n   * @function getRowHeight\n   * @param {number} row A visual row index.\n   * @returns {number|undefined} The height of the specified row, in pixels.\n   * @fires Hooks#modifyRowHeight\n   */\n  this.getRowHeight = function (row) {\n    let height = instance._getRowHeightFromSettings(row);\n    height = instance.runHooks('modifyRowHeight', height, row);\n    return height;\n  };\n\n  /**\n   * Returns the total number of rows in the data source.\n   *\n   * @memberof Core#\n   * @function countSourceRows\n   * @returns {number} Total number of rows.\n   */\n  this.countSourceRows = function () {\n    return dataSource.countRows();\n  };\n\n  /**\n   * Returns the total number of columns in the data source.\n   *\n   * @memberof Core#\n   * @function countSourceCols\n   * @returns {number} Total number of columns.\n   */\n  this.countSourceCols = function () {\n    return dataSource.countFirstRowKeys();\n  };\n\n  /**\n   * Returns the total number of visual rows in the table.\n   *\n   * @memberof Core#\n   * @function countRows\n   * @returns {number} Total number of rows.\n   */\n  this.countRows = function () {\n    return datamap.getLength();\n  };\n\n  /**\n   * Returns the total number of visible columns in the table.\n   *\n   * @memberof Core#\n   * @function countCols\n   * @returns {number} Total number of columns.\n   */\n  this.countCols = function () {\n    const maxCols = tableMeta.maxCols;\n    const dataLen = this.columnIndexMapper.getNotTrimmedIndexesLength();\n    return Math.min(maxCols, dataLen);\n  };\n\n  /**\n   * Returns the number of rendered rows including rows that are partially or fully rendered\n   * outside the table viewport.\n   *\n   * @memberof Core#\n   * @function countRenderedRows\n   * @returns {number} Returns -1 if table is not visible.\n   */\n  this.countRenderedRows = function () {\n    return instance.view._wt.drawn ? instance.view._wt.wtTable.getRenderedRowsCount() : -1;\n  };\n\n  /**\n   * Returns the number of rendered rows that are only visible in the table viewport.\n   * The rows that are partially visible are not counted.\n   *\n   * @memberof Core#\n   * @function countVisibleRows\n   * @returns {number} Number of visible rows or -1.\n   */\n  this.countVisibleRows = function () {\n    return instance.view._wt.drawn ? instance.view._wt.wtTable.getVisibleRowsCount() : -1;\n  };\n\n  /**\n   * Returns the number of rendered rows including columns that are partially or fully rendered\n   * outside the table viewport.\n   *\n   * @memberof Core#\n   * @function countRenderedCols\n   * @returns {number} Returns -1 if table is not visible.\n   */\n  this.countRenderedCols = function () {\n    return instance.view._wt.drawn ? instance.view._wt.wtTable.getRenderedColumnsCount() : -1;\n  };\n\n  /**\n   * Returns the number of rendered columns that are only visible in the table viewport.\n   * The columns that are partially visible are not counted.\n   *\n   * @memberof Core#\n   * @function countVisibleCols\n   * @returns {number} Number of visible columns or -1.\n   */\n  this.countVisibleCols = function () {\n    return instance.view._wt.drawn ? instance.view._wt.wtTable.getVisibleColumnsCount() : -1;\n  };\n\n  /**\n   * Returns the number of rendered row headers.\n   *\n   * @since 14.0.0\n   * @memberof Core#\n   * @function countRowHeaders\n   * @returns {number} Number of row headers.\n   */\n  this.countRowHeaders = function () {\n    return this.view.getRowHeadersCount();\n  };\n\n  /**\n   * Returns the number of rendered column headers.\n   *\n   * @since 14.0.0\n   * @memberof Core#\n   * @function countColHeaders\n   * @returns {number} Number of column headers.\n   */\n  this.countColHeaders = function () {\n    return this.view.getColumnHeadersCount();\n  };\n\n  /**\n   * Returns the number of empty rows. If the optional ending parameter is `true`, returns the\n   * number of empty rows at the bottom of the table.\n   *\n   * @memberof Core#\n   * @function countEmptyRows\n   * @param {boolean} [ending=false] If `true`, will only count empty rows at the end of the data source.\n   * @returns {number} Count empty rows.\n   */\n  this.countEmptyRows = function () {\n    let ending = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    let emptyRows = 0;\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_25__[\"rangeEachReverse\"])(instance.countRows() - 1, visualIndex => {\n      if (instance.isEmptyRow(visualIndex)) {\n        emptyRows += 1;\n      } else if (ending === true) {\n        return false;\n      }\n    });\n    return emptyRows;\n  };\n\n  /**\n   * Returns the number of empty columns. If the optional ending parameter is `true`, returns the number of empty\n   * columns at right hand edge of the table.\n   *\n   * @memberof Core#\n   * @function countEmptyCols\n   * @param {boolean} [ending=false] If `true`, will only count empty columns at the end of the data source row.\n   * @returns {number} Count empty cols.\n   */\n  this.countEmptyCols = function () {\n    let ending = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    let emptyColumns = 0;\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_25__[\"rangeEachReverse\"])(instance.countCols() - 1, visualIndex => {\n      if (instance.isEmptyCol(visualIndex)) {\n        emptyColumns += 1;\n      } else if (ending === true) {\n        return false;\n      }\n    });\n    return emptyColumns;\n  };\n\n  /**\n   * Check if all cells in the row declared by the `row` argument are empty.\n   *\n   * @memberof Core#\n   * @function isEmptyRow\n   * @param {number} row Visual row index.\n   * @returns {boolean} `true` if the row at the given `row` is empty, `false` otherwise.\n   */\n  this.isEmptyRow = function (row) {\n    return tableMeta.isEmptyRow.call(instance, row);\n  };\n\n  /**\n   * Check if all cells in the the column declared by the `column` argument are empty.\n   *\n   * @memberof Core#\n   * @function isEmptyCol\n   * @param {number} column Column index.\n   * @returns {boolean} `true` if the column at the given `col` is empty, `false` otherwise.\n   */\n  this.isEmptyCol = function (column) {\n    return tableMeta.isEmptyCol.call(instance, column);\n  };\n\n  /**\n   * Select a single cell, or a single range of adjacent cells.\n   *\n   * To select a cell, pass its visual row and column indexes, for example: `selectCell(2, 4)`.\n   *\n   * To select a range, pass the visual indexes of the first and last cell in the range, for example: `selectCell(2, 4, 3, 5)`.\n   *\n   * If your columns have properties, you can pass those properties' values instead of column indexes, for example: `selectCell(2, 'first_name')`.\n   *\n   * By default, `selectCell()` also:\n   *  - Scrolls the viewport to the newly-selected cells.\n   *  - Switches the keyboard focus to Handsontable (by calling Handsontable's [`listen()`](#listen) method).\n   *\n   * @example\n   * ```js\n   * // select a single cell\n   * hot.selectCell(2, 4);\n   *\n   * // select a range of cells\n   * hot.selectCell(2, 4, 3, 5);\n   *\n   * // select a single cell, using a column property\n   * hot.selectCell(2, 'first_name');\n   *\n   * // select a range of cells, using column properties\n   * hot.selectCell(2, 'first_name', 3, 'last_name');\n   *\n   * // select a range of cells, without scrolling to them\n   * hot.selectCell(2, 4, 3, 5, false);\n   *\n   * // select a range of cells, without switching the keyboard focus to Handsontable\n   * hot.selectCell(2, 4, 3, 5, null, false);\n   * ```\n   *\n   * @memberof Core#\n   * @function selectCell\n   * @param {number} row A visual row index.\n   * @param {number|string} column A visual column index (`number`), or a column property's value (`string`).\n   * @param {number} [endRow] If selecting a range: the visual row index of the last cell in the range.\n   * @param {number|string} [endColumn] If selecting a range: the visual column index (or a column property's value) of the last cell in the range.\n   * @param {boolean} [scrollToCell=true] `true`: scroll the viewport to the newly-selected cells. `false`: keep the previous viewport.\n   * @param {boolean} [changeListener=true] `true`: switch the keyboard focus to Handsontable. `false`: keep the previous keyboard focus.\n   * @returns {boolean} `true`: the selection was successful, `false`: the selection failed.\n   */\n  this.selectCell = function (row, column, endRow, endColumn) {\n    let scrollToCell = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n    let changeListener = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isUndefined\"])(row) || Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isUndefined\"])(column)) {\n      return false;\n    }\n    return this.selectCells([[row, column, endRow, endColumn]], scrollToCell, changeListener);\n  };\n\n  /**\n   * Select multiple cells or ranges of cells, adjacent or non-adjacent.\n   *\n   * You can pass one of the below:\n   * - An array of arrays (which matches the output of Handsontable's [`getSelected()`](#getselected) method).\n   * - An array of [`CellRange`](@/api/cellRange.md) objects (which matches the output of Handsontable's [`getSelectedRange()`](#getselectedrange) method).\n   *\n   * To select multiple cells, pass the visual row and column indexes of each cell, for example: `hot.selectCells([[1, 1], [5, 5]])`.\n   *\n   * To select multiple ranges, pass the visual indexes of the first and last cell in each range, for example: `hot.selectCells([[1, 1, 2, 2], [6, 2, 0, 2]])`.\n   *\n   * If your columns have properties, you can pass those properties' values instead of column indexes, for example: `hot.selectCells([[1, 'first_name'], [5, 'last_name']])`.\n   *\n   * By default, `selectCell()` also:\n   *  - Scrolls the viewport to the newly-selected cells.\n   *  - Switches the keyboard focus to Handsontable (by calling Handsontable's [`listen()`](#listen) method).\n   *\n   * @example\n   * ```js\n   * // select non-adjacent cells\n   * hot.selectCells([[1, 1], [5, 5], [10, 10]]);\n   *\n   * // select non-adjacent ranges of cells\n   * hot.selectCells([[1, 1, 2, 2], [10, 10, 20, 20]]);\n   *\n   * // select cells and ranges of cells\n   * hot.selectCells([[1, 1, 2, 2], [3, 3], [6, 2, 0, 2]]);\n   *\n   * // select cells, using column properties\n   * hot.selectCells([[1, 'id', 2, 'first_name'], [3, 'full_name'], [6, 'last_name', 0, 'first_name']]);\n   *\n   * // select multiple ranges, using an array of `CellRange` objects\n   * const selected = hot.getSelectedRange();\n   *\n   * selected[0].from.row = 0;\n   * selected[0].from.col = 0;\n   * selected[0].to.row = 5;\n   * selected[0].to.col = 5;\n   *\n   * selected[1].from.row = 10;\n   * selected[1].from.col = 10;\n   * selected[1].to.row = 20;\n   * selected[1].to.col = 20;\n   *\n   * hot.selectCells(selected);\n   * ```\n   *\n   * @memberof Core#\n   * @since 0.38.0\n   * @function selectCells\n   * @param {Array[]|CellRange[]} coords Visual coordinates,\n   * passed either as an array of arrays (`[[rowStart, columnStart, rowEnd, columnEnd], ...]`)\n   * or as an array of [`CellRange`](@/api/cellRange.md) objects.\n   * @param {boolean} [scrollToCell=true] `true`: scroll the viewport to the newly-selected cells. `false`: keep the previous viewport.\n   * @param {boolean} [changeListener=true] `true`: switch the keyboard focus to Handsontable. `false`: keep the previous keyboard focus.\n   * @returns {boolean} `true`: the selection was successful, `false`: the selection failed.\n   */\n  this.selectCells = function () {\n    let coords = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [[]];\n    let scrollToCell = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    let changeListener = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n    if (scrollToCell === false) {\n      viewportScroller.suspend();\n    }\n    const wasSelected = selection.selectCells(coords);\n    if (wasSelected && changeListener) {\n      instance.listen();\n    }\n    viewportScroller.resume();\n    return wasSelected;\n  };\n\n  /**\n   * Select column specified by `startColumn` visual index, column property or a range of columns finishing at `endColumn`.\n   *\n   * @example\n   * ```js\n   * // Select column using visual index.\n   * hot.selectColumns(1);\n   * // Select column using column property.\n   * hot.selectColumns('id');\n   * // Select range of columns using visual indexes.\n   * hot.selectColumns(1, 4);\n   * // Select range of columns using visual indexes and mark the first header as highlighted.\n   * hot.selectColumns(1, 2, -1);\n   * // Select range of columns using visual indexes and mark the second cell as highlighted.\n   * hot.selectColumns(2, 1, 1);\n   * // Select range of columns using visual indexes and move the focus position somewhere in the middle of the range.\n   * hot.selectColumns(2, 5, { row: 2, col: 3 });\n   * // Select range of columns using column properties.\n   * hot.selectColumns('id', 'last_name');\n   * ```\n   *\n   * @memberof Core#\n   * @since 0.38.0\n   * @function selectColumns\n   * @param {number} startColumn The visual column index from which the selection starts.\n   * @param {number} [endColumn=startColumn] The visual column index to which the selection finishes. If `endColumn`\n   * is not defined the column defined by `startColumn` will be selected.\n   * @param {number | { row: number, col: number } | CellCoords} [focusPosition=0] The argument allows changing the cell/header focus\n   * position. The value can take visual row index from -N to N, where negative values point to the headers and positive\n   * values point to the cell range. An object with `row` and `col` properties also can be passed to change the focus\n   * position horizontally.\n   * @returns {boolean} `true` if selection was successful, `false` otherwise.\n   */\n  this.selectColumns = function (startColumn) {\n    let endColumn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startColumn;\n    let focusPosition = arguments.length > 2 ? arguments[2] : undefined;\n    return selection.selectColumns(startColumn, endColumn, focusPosition);\n  };\n\n  /**\n   * Select row specified by `startRow` visual index or a range of rows finishing at `endRow`.\n   *\n   * @example\n   * ```js\n   * // Select row using visual index.\n   * hot.selectRows(1);\n   * // select a range of rows, using visual indexes.\n   * hot.selectRows(1, 4);\n   * // select a range of rows, using visual indexes, and mark the header as highlighted.\n   * hot.selectRows(1, 2, -1);\n   * // Select range of rows using visual indexes and mark the second cell as highlighted.\n   * hot.selectRows(2, 1, 1);\n   * // Select range of rows using visual indexes and move the focus position somewhere in the middle of the range.\n   * hot.selectRows(2, 5, { row: 2, col: 3 });\n   * ```\n   *\n   * @memberof Core#\n   * @since 0.38.0\n   * @function selectRows\n   * @param {number} startRow The visual row index from which the selection starts.\n   * @param {number} [endRow=startRow] The visual row index to which the selection finishes. If `endRow`\n   * is not defined the row defined by `startRow` will be selected.\n   * @param {number | { row: number, col: number } | CellCoords} [focusPosition=0] The argument allows changing the cell/header focus\n   * position. The value can take visual row index from -N to N, where negative values point to the headers and positive\n   * values point to the cell range. An object with `row` and `col` properties also can be passed to change the focus\n   * position vertically.\n   * @returns {boolean} `true` if selection was successful, `false` otherwise.\n   */\n  this.selectRows = function (startRow) {\n    let endRow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startRow;\n    let focusPosition = arguments.length > 2 ? arguments[2] : undefined;\n    return selection.selectRows(startRow, endRow, focusPosition);\n  };\n\n  /**\n   * Deselects the current cell selection on the table.\n   *\n   * @memberof Core#\n   * @function deselectCell\n   */\n  this.deselectCell = function () {\n    selection.deselect();\n  };\n\n  /**\n   * Select all cells in the table excluding headers and corner elements.\n   *\n   * The previous selection is overwritten.\n   *\n   * ```js\n   * // Select all cells in the table along with row headers, including all headers and the corner cell.\n   * // Doesn't select column headers and corner elements.\n   * hot.selectAll();\n   *\n   * // Select all cells in the table, including row headers but excluding the corner cell and column headers.\n   * hot.selectAll(true, false);\n   *\n   * // Select all cells in the table, including all headers and the corner cell, but move the focus.\n   * // highlight to position 2, 1\n   * hot.selectAll(-2, -1, {\n   *    focusPosition: { row: 2, col: 1 }\n   * });\n   *\n   * // Select all cells in the table, without headers and corner elements.\n   * hot.selectAll(false);\n   * ```\n   *\n   * @since 0.38.2\n   * @memberof Core#\n   * @function selectAll\n   * @param {boolean} [includeRowHeaders=false] `true` If the selection should include the row headers,\n   * `false` otherwise.\n   * @param {boolean} [includeColumnHeaders=false] `true` If the selection should include the column\n   * headers, `false` otherwise.\n   *\n   * @param {object} [options] Additional object with options. Since 14.0.0\n   * @param {{row: number, col: number} | boolean} [options.focusPosition] The argument allows changing the cell/header\n   * focus position. The value takes an object with a `row` and `col` properties from -N to N, where\n   * negative values point to the headers and positive values point to the cell range. If `false`, the focus\n   * position won't be changed. Example:\n   * ```js\n   * hot.selectAll(0, 0, {\n   * focusPosition: { row: 0, col: 1 },\n   * disableHeadersHighlight: true\n   * })\n   * ```\n   *\n   * @param {boolean} [options.disableHeadersHighlight] If `true`, disables highlighting the headers even when\n   * the logical coordinates points on them.\n   */\n  this.selectAll = function () {\n    let includeRowHeaders = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n    let includeColumnHeaders = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : includeRowHeaders;\n    let options = arguments.length > 2 ? arguments[2] : undefined;\n    viewportScroller.skipNextScrollCycle();\n    selection.selectAll(includeRowHeaders, includeColumnHeaders, options);\n  };\n  const getIndexToScroll = (indexMapper, visualIndex) => {\n    // Looking for a visual index on the right and then (when not found) on the left.\n    return indexMapper.getNearestNotHiddenIndex(visualIndex, 1, true);\n  };\n\n  /**\n   * Scroll viewport to coordinates specified by the `row` and/or `col` object properties.\n   *\n   * ```js\n   * // scroll the viewport to the visual row index (leave the horizontal scroll untouched)\n   * hot.scrollViewportTo({ row: 50 });\n   *\n   * // scroll the viewport to the passed coordinates so that the cell at 50, 50 will be snapped to\n   * // the bottom-end table's edge.\n   * hot.scrollViewportTo({\n   *   row: 50,\n   *   col: 50,\n   *   verticalSnap: 'bottom',\n   *   horizontalSnap: 'end',\n   * });\n   * ```\n   *\n   * @memberof Core#\n   * @function scrollViewportTo\n   * @param {object} options A dictionary containing the following parameters:\n   * @param {number} [options.row] Specifies the number of visual rows along the Y axis to scroll the viewport.\n   * @param {number} [options.col] Specifies the number of visual columns along the X axis to scroll the viewport.\n   * @param {'top' | 'bottom'} [options.verticalSnap] Determines to which edge of the table the viewport will be scrolled based on the passed coordinates.\n   * This option is a string which must take one of the following values:\n   * - `top`: The viewport will be scrolled to a row in such a way that it will be positioned on the top of the viewport;\n   * - `bottom`: The viewport will be scrolled to a row in such a way that it will be positioned on the bottom of the viewport;\n   * - If the property is not defined the vertical auto-snapping is enabled. Depending on where the viewport is scrolled from, a row will\n   * be positioned at the top or bottom of the viewport.\n   * @param {'start' | 'end'} [options.horizontalSnap] Determines to which edge of the table the viewport will be scrolled based on the passed coordinates.\n   * This option is a string which must take one of the following values:\n   * - `start`: The viewport will be scrolled to a column in such a way that it will be positioned on the start (left edge or right, if the layout direction is set to `rtl`) of the viewport;\n   * - `end`: The viewport will be scrolled to a column in such a way that it will be positioned on the end (right edge or left, if the layout direction is set to `rtl`) of the viewport;\n   * - If the property is not defined the horizontal auto-snapping is enabled. Depending on where the viewport is scrolled from, a column will\n   * be positioned at the start or end of the viewport.\n   * @param {boolean} [options.considerHiddenIndexes=true] If `true`, we handle visual indexes, otherwise we handle only indexes which\n   * may be rendered when they are in the viewport (we don't consider hidden indexes as they aren't rendered).\n   * @returns {boolean} `true` if viewport was scrolled, `false` otherwise.\n   */\n  this.scrollViewportTo = function (options) {\n    var _options;\n    // Support for backward compatibility arguments: (row, col, snapToBottom, snapToRight, considerHiddenIndexes)\n    if (typeof options === 'number') {\n      var _arguments$;\n      /* eslint-disable prefer-rest-params */\n      options = {\n        row: arguments[0],\n        col: arguments[1],\n        verticalSnap: arguments[2] ? 'bottom' : 'top',\n        horizontalSnap: arguments[3] ? 'end' : 'start',\n        considerHiddenIndexes: (_arguments$ = arguments[4]) !== null && _arguments$ !== void 0 ? _arguments$ : true\n      };\n      /* eslint-enable prefer-rest-params */\n    }\n    const {\n      row,\n      col,\n      verticalSnap,\n      horizontalSnap,\n      considerHiddenIndexes\n    } = (_options = options) !== null && _options !== void 0 ? _options : {};\n    let snapToTop;\n    let snapToBottom;\n    let snapToInlineStart;\n    let snapToInlineEnd;\n    if (verticalSnap !== undefined) {\n      snapToTop = verticalSnap === 'top';\n      snapToBottom = !snapToTop;\n    }\n    if (horizontalSnap !== undefined) {\n      snapToInlineStart = horizontalSnap === 'start';\n      snapToInlineEnd = !snapToInlineStart;\n    }\n    let renderableRow = row;\n    let renderableColumn = col;\n    if (considerHiddenIndexes === undefined || considerHiddenIndexes) {\n      const isValidRowGrid = Number.isInteger(row) && row >= 0;\n      const isValidColumnGrid = Number.isInteger(col) && col >= 0;\n      const visualRowToScroll = isValidRowGrid ? getIndexToScroll(this.rowIndexMapper, row) : undefined;\n      const visualColumnToScroll = isValidColumnGrid ? getIndexToScroll(this.columnIndexMapper, col) : undefined;\n      if (visualRowToScroll === null || visualColumnToScroll === null) {\n        return false;\n      }\n      renderableRow = isValidRowGrid ? instance.rowIndexMapper.getRenderableFromVisualIndex(visualRowToScroll) : row;\n      renderableColumn = isValidColumnGrid ? instance.columnIndexMapper.getRenderableFromVisualIndex(visualColumnToScroll) : col;\n    }\n    const isRowInteger = Number.isInteger(renderableRow);\n    const isColumnInteger = Number.isInteger(renderableColumn);\n    if (isRowInteger && renderableRow >= 0 && isColumnInteger && renderableColumn >= 0) {\n      return instance.view.scrollViewport(instance._createCellCoords(renderableRow, renderableColumn), snapToTop, snapToInlineEnd, snapToBottom, snapToInlineStart);\n    }\n    if (isRowInteger && renderableRow >= 0 && (isColumnInteger && renderableColumn < 0 || !isColumnInteger)) {\n      return instance.view.scrollViewportVertically(renderableRow, snapToTop, snapToBottom);\n    }\n    if (isColumnInteger && renderableColumn >= 0 && (isRowInteger && renderableRow < 0 || !isRowInteger)) {\n      return instance.view.scrollViewportHorizontally(renderableColumn, snapToInlineEnd, snapToInlineStart);\n    }\n    return false;\n  };\n\n  /**\n   * Scrolls the viewport to coordinates specified by the currently focused cell.\n   *\n   * @since 14.0.0\n   * @memberof Core#\n   * @fires Hooks#afterScroll\n   * @function scrollToFocusedCell\n   * @param {Function} callback The callback function to call after the viewport is scrolled.\n   */\n  this.scrollToFocusedCell = function () {\n    let callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : () => {};\n    if (!this.selection.isSelected()) {\n      return;\n    }\n    this.addHookOnce('afterScroll', callback);\n    const {\n      highlight\n    } = this.getSelectedRangeLast();\n    const isScrolled = this.scrollViewportTo(highlight.toObject());\n    if (isScrolled) {\n      this.view.render();\n    } else {\n      this.removeHook('afterScroll', callback);\n      this._registerImmediate(() => callback());\n    }\n  };\n\n  /**\n   * Removes the table from the DOM and destroys the instance of the Handsontable.\n   *\n   * @memberof Core#\n   * @function destroy\n   * @fires Hooks#afterDestroy\n   */\n  this.destroy = function () {\n    instance._clearTimeouts();\n    instance._clearImmediates();\n    if (instance.view) {\n      // in case HT is destroyed before initialization has finished\n      instance.view.destroy();\n    }\n    if (dataSource) {\n      dataSource.destroy();\n    }\n    dataSource = null;\n    this.getShortcutManager().destroy();\n    metaManager.clearCache();\n    foreignHotInstances.delete(this.guid);\n    if (Object(_utils_rootInstance_mjs__WEBPACK_IMPORTED_MODULE_30__[\"isRootInstance\"])(instance)) {\n      const licenseInfo = this.rootDocument.querySelector('.hot-display-license-info');\n      if (licenseInfo) {\n        licenseInfo.parentNode.removeChild(licenseInfo);\n      }\n    }\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"empty\"])(instance.rootElement);\n    eventManager.destroy();\n    if (editorManager) {\n      editorManager.destroy();\n    }\n\n    // The plugin's `destroy` method is called as a consequence and it should handle\n    // unregistration of plugin's maps. Some unregistered maps reset the cache.\n    instance.batchExecution(() => {\n      instance.rowIndexMapper.unregisterAll();\n      instance.columnIndexMapper.unregisterAll();\n      pluginsRegistry.getItems().forEach(_ref10 => {\n        let [, plugin] = _ref10;\n        plugin.destroy();\n      });\n      pluginsRegistry.clear();\n      instance.runHooks('afterDestroy');\n    }, true);\n    _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_32__[\"default\"].getSingleton().destroy(instance);\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_16__[\"objectEach\"])(instance, (property, key, obj) => {\n      // replace instance methods with post mortem\n      if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_11__[\"isFunction\"])(property)) {\n        obj[key] = postMortem(key);\n      } else if (key !== 'guid') {\n        // replace instance properties with null (restores memory)\n        // it should not be necessary but this prevents a memory leak side effects that show itself in Jasmine tests\n        obj[key] = null;\n      }\n    });\n    instance.isDestroyed = true;\n\n    // replace private properties with null (restores memory)\n    // it should not be necessary but this prevents a memory leak side effects that show itself in Jasmine tests\n    if (datamap) {\n      datamap.destroy();\n    }\n    datamap = null;\n    grid = null;\n    selection = null;\n    editorManager = null;\n    instance = null;\n  };\n\n  /**\n   * Replacement for all methods after the Handsontable was destroyed.\n   *\n   * @private\n   * @param {string} method The method name.\n   * @returns {Function}\n   */\n  function postMortem(method) {\n    return () => {\n      throw new Error(`The \"${method}\" method cannot be called because this Handsontable instance has been destroyed`);\n    };\n  }\n\n  /**\n   * Returns the active editor class instance.\n   *\n   * @memberof Core#\n   * @function getActiveEditor\n   * @returns {BaseEditor} The active editor instance.\n   */\n  this.getActiveEditor = function () {\n    return editorManager.getActiveEditor();\n  };\n\n  /**\n   * Returns plugin instance by provided its name.\n   *\n   * @memberof Core#\n   * @function getPlugin\n   * @param {string} pluginName The plugin name.\n   * @returns {BasePlugin|undefined} The plugin instance or undefined if there is no plugin.\n   */\n  this.getPlugin = function (pluginName) {\n    const unifiedPluginName = Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_24__[\"toUpperCaseFirst\"])(pluginName);\n\n    // Workaround for the UndoRedo plugin which, currently doesn't follow the plugin architecture.\n    if (unifiedPluginName === 'UndoRedo') {\n      return this.undoRedo;\n    }\n    return pluginsRegistry.getItem(unifiedPluginName);\n  };\n\n  /**\n   * Returns name of the passed plugin.\n   *\n   * @private\n   * @memberof Core#\n   * @param {BasePlugin} plugin The plugin instance.\n   * @returns {string}\n   */\n  this.getPluginName = function (plugin) {\n    // Workaround for the UndoRedo plugin which, currently doesn't follow the plugin architecture.\n    if (plugin === this.undoRedo) {\n      return this.undoRedo.constructor.PLUGIN_KEY;\n    }\n    return pluginsRegistry.getId(plugin);\n  };\n\n  /**\n   * Returns the Handsontable instance.\n   *\n   * @memberof Core#\n   * @function getInstance\n   * @returns {Handsontable} The Handsontable instance.\n   */\n  this.getInstance = function () {\n    return instance;\n  };\n\n  /**\n   * Adds listener to the specified hook name (only for this Handsontable instance).\n   *\n   * @memberof Core#\n   * @function addHook\n   * @see Hooks#add\n   * @param {string} key Hook name (see {@link Hooks}).\n   * @param {Function|Array} callback Function or array of functions.\n   * @param {number} [orderIndex] Order index of the callback.\n   *                              If > 0, the callback will be added after the others, for example, with an index of 1, the callback will be added before the ones with an index of 2, 3, etc., but after the ones with an index of 0 and lower.\n   *                              If < 0, the callback will be added before the others, for example, with an index of -1, the callback will be added after the ones with an index of -2, -3, etc., but before the ones with an index of 0 and higher.\n   *                              If 0 or no order index is provided, the callback will be added between the \"negative\" and \"positive\" indexes.\n   * @example\n   * ```js\n   * hot.addHook('beforeInit', myCallback);\n   * ```\n   */\n  this.addHook = function (key, callback, orderIndex) {\n    _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_32__[\"default\"].getSingleton().add(key, callback, instance, orderIndex);\n  };\n\n  /**\n   * Check if for a specified hook name there are added listeners (only for this Handsontable instance). All available\n   * hooks you will find {@link Hooks}.\n   *\n   * @memberof Core#\n   * @function hasHook\n   * @see Hooks#has\n   * @param {string} key Hook name.\n   * @returns {boolean}\n   *\n   * @example\n   * ```js\n   * const hasBeforeInitListeners = hot.hasHook('beforeInit');\n   * ```\n   */\n  this.hasHook = function (key) {\n    return _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_32__[\"default\"].getSingleton().has(key, instance) || _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_32__[\"default\"].getSingleton().has(key);\n  };\n\n  /**\n   * Adds listener to specified hook name (only for this Handsontable instance). After the listener is triggered,\n   * it will be automatically removed.\n   *\n   * @memberof Core#\n   * @function addHookOnce\n   * @see Hooks#once\n   * @param {string} key Hook name (see {@link Hooks}).\n   * @param {Function|Array} callback Function or array of functions.\n   * @param {number} [orderIndex] Order index of the callback.\n   *                              If > 0, the callback will be added after the others, for example, with an index of 1, the callback will be added before the ones with an index of 2, 3, etc., but after the ones with an index of 0 and lower.\n   *                              If < 0, the callback will be added before the others, for example, with an index of -1, the callback will be added after the ones with an index of -2, -3, etc., but before the ones with an index of 0 and higher.\n   *                              If 0 or no order index is provided, the callback will be added between the \"negative\" and \"positive\" indexes.\n   * @example\n   * ```js\n   * hot.addHookOnce('beforeInit', myCallback);\n   * ```\n   */\n  this.addHookOnce = function (key, callback, orderIndex) {\n    _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_32__[\"default\"].getSingleton().once(key, callback, instance, orderIndex);\n  };\n\n  /**\n   * Removes the hook listener previously registered with {@link Core#addHook}.\n   *\n   * @memberof Core#\n   * @function removeHook\n   * @see Hooks#remove\n   * @param {string} key Hook name.\n   * @param {Function} callback Reference to the function which has been registered using {@link Core#addHook}.\n   *\n   * @example\n   * ```js\n   * hot.removeHook('beforeInit', myCallback);\n   * ```\n   */\n  this.removeHook = function (key, callback) {\n    _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_32__[\"default\"].getSingleton().remove(key, callback, instance);\n  };\n\n  /**\n   * Run the callbacks for the hook provided in the `key` argument using the parameters given in the other arguments.\n   *\n   * @memberof Core#\n   * @function runHooks\n   * @see Hooks#run\n   * @param {string} key Hook name.\n   * @param {*} [p1] Argument passed to the callback.\n   * @param {*} [p2] Argument passed to the callback.\n   * @param {*} [p3] Argument passed to the callback.\n   * @param {*} [p4] Argument passed to the callback.\n   * @param {*} [p5] Argument passed to the callback.\n   * @param {*} [p6] Argument passed to the callback.\n   * @returns {*}\n   *\n   * @example\n   * ```js\n   * // Run built-in hook\n   * hot.runHooks('beforeInit');\n   * // Run custom hook\n   * hot.runHooks('customAction', 10, 'foo');\n   * ```\n   */\n  this.runHooks = function (key, p1, p2, p3, p4, p5, p6) {\n    return _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_32__[\"default\"].getSingleton().run(instance, key, p1, p2, p3, p4, p5, p6);\n  };\n\n  /**\n   * Get language phrase for specified dictionary key.\n   *\n   * @memberof Core#\n   * @function getTranslatedPhrase\n   * @since 0.35.0\n   * @param {string} dictionaryKey Constant which is dictionary key.\n   * @param {*} extraArguments Arguments which will be handled by formatters.\n   * @returns {string}\n   */\n  this.getTranslatedPhrase = function (dictionaryKey, extraArguments) {\n    return Object(_i18n_registry_mjs__WEBPACK_IMPORTED_MODULE_33__[\"getTranslatedPhrase\"])(tableMeta.language, dictionaryKey, extraArguments);\n  };\n\n  /**\n   * Converts instance into outerHTML of HTMLTableElement.\n   *\n   * @memberof Core#\n   * @function toHTML\n   * @since 7.1.0\n   * @returns {string}\n   */\n  this.toHTML = () => Object(_utils_parseTable_mjs__WEBPACK_IMPORTED_MODULE_19__[\"instanceToHTML\"])(this);\n\n  /**\n   * Converts instance into HTMLTableElement.\n   *\n   * @memberof Core#\n   * @function toTableElement\n   * @since 7.1.0\n   * @returns {HTMLTableElement}\n   */\n  this.toTableElement = () => {\n    const tempElement = this.rootDocument.createElement('div');\n    tempElement.insertAdjacentHTML('afterbegin', Object(_utils_parseTable_mjs__WEBPACK_IMPORTED_MODULE_19__[\"instanceToHTML\"])(this));\n    return tempElement.firstElementChild;\n  };\n  this.timeouts = [];\n\n  /**\n   * Sets timeout. Purpose of this method is to clear all known timeouts when `destroy` method is called.\n   *\n   * @param {number|Function} handle Handler returned from setTimeout or function to execute (it will be automatically wraped\n   *                                 by setTimeout function).\n   * @param {number} [delay=0] If first argument is passed as a function this argument set delay of the execution of that function.\n   * @private\n   */\n  this._registerTimeout = function (handle) {\n    let delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    let handleFunc = handle;\n    if (typeof handleFunc === 'function') {\n      handleFunc = setTimeout(handleFunc, delay);\n    }\n    this.timeouts.push(handleFunc);\n  };\n\n  /**\n   * Clears all known timeouts.\n   *\n   * @private\n   */\n  this._clearTimeouts = function () {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"arrayEach\"])(this.timeouts, handler => {\n      clearTimeout(handler);\n    });\n  };\n  this.immediates = [];\n\n  /**\n   * Execute function execution to the next event loop cycle. Purpose of this method is to clear all known timeouts when `destroy` method is called.\n   *\n   * @param {Function} callback Function to be delayed in execution.\n   * @private\n   */\n  this._registerImmediate = function (callback) {\n    this.immediates.push(setImmediate(callback));\n  };\n\n  /**\n   * Clears all known timeouts.\n   *\n   * @private\n   */\n  this._clearImmediates = function () {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_18__[\"arrayEach\"])(this.immediates, handler => {\n      clearImmediate(handler);\n    });\n  };\n\n  /**\n   * Gets the instance of the EditorManager.\n   *\n   * @private\n   * @returns {EditorManager}\n   */\n  this._getEditorManager = function () {\n    return editorManager;\n  };\n\n  /**\n   * Check if currently it is RTL direction.\n   *\n   * @private\n   * @memberof Core#\n   * @function isRtl\n   * @returns {boolean} True if RTL.\n   */\n  this.isRtl = function () {\n    return instance.rootWindow.getComputedStyle(instance.rootElement).direction === 'rtl';\n  };\n\n  /**\n   * Check if currently it is LTR direction.\n   *\n   * @private\n   * @memberof Core#\n   * @function isLtr\n   * @returns {boolean} True if LTR.\n   */\n  this.isLtr = function () {\n    return !instance.isRtl();\n  };\n\n  /**\n   * Returns 1 for LTR; -1 for RTL. Useful for calculations.\n   *\n   * @private\n   * @memberof Core#\n   * @function getDirectionFactor\n   * @returns {number} Returns 1 for LTR; -1 for RTL.\n   */\n  this.getDirectionFactor = function () {\n    return instance.isLtr() ? 1 : -1;\n  };\n  const shortcutManager = Object(_shortcuts_index_mjs__WEBPACK_IMPORTED_MODULE_39__[\"createShortcutManager\"])({\n    handleEvent() {\n      return instance.isListening();\n    },\n    beforeKeyDown: event => {\n      return this.runHooks('beforeKeyDown', event);\n    },\n    afterKeyDown: event => {\n      if (this.isDestroyed) {\n        // Handsontable could be destroyed after performing action (executing a callback).\n        return;\n      }\n      instance.runHooks('afterDocumentKeyDown', event);\n    },\n    ownerWindow: this.rootWindow\n  });\n  this.addHook('beforeOnCellMouseDown', event => {\n    // Releasing keys as some browser/system shortcuts break events sequence (thus the `keyup` event isn't triggered).\n    if (event.ctrlKey === false && event.metaKey === false) {\n      shortcutManager.releasePressedKeys();\n    }\n  });\n\n  /**\n   * Returns instance of a manager responsible for handling shortcuts stored in some contexts. It run actions after\n   * pressing key combination in active Handsontable instance.\n   *\n   * @memberof Core#\n   * @since 12.0.0\n   * @function getShortcutManager\n   * @returns {ShortcutManager} Instance of {@link ShortcutManager}\n   */\n  this.getShortcutManager = function () {\n    return shortcutManager;\n  };\n\n  /**\n   * Return the Focus Manager responsible for managing the browser's focus in the table.\n   *\n   * @memberof Core#\n   * @since 14.0.0\n   * @function getFocusManager\n   * @returns {FocusManager}\n   */\n  this.getFocusManager = function () {\n    return focusManager;\n  };\n  Object(_plugins_registry_mjs__WEBPACK_IMPORTED_MODULE_20__[\"getPluginsNames\"])().forEach(pluginName => {\n    const PluginClass = Object(_plugins_registry_mjs__WEBPACK_IMPORTED_MODULE_20__[\"getPlugin\"])(pluginName);\n    pluginsRegistry.addItem(pluginName, new PluginClass(this));\n  });\n  Object(_shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_40__[\"registerAllShortcutContexts\"])(instance);\n  shortcutManager.setActiveContextName('grid');\n  _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_32__[\"default\"].getSingleton().run(instance, 'construct');\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/core.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/core/focusCatcher/focusDetector.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/core/focusCatcher/focusDetector.mjs ***!
  \***********************************************************************/
/*! exports provided: installFocusDetector */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"installFocusDetector\", function() { return installFocusDetector; });\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\n/**\n * Installs a focus detector module. The module appends two input elements into the DOM side by side.\n * When the first input is focused, then it means that a user entered to the component using the TAB key\n * from the element above. When the second input is focused, a user enters to the component from\n * the element below the table. Each action, once detected, triggers the specific hook.\n *\n * @param {Handsontable} hot The Handsontable instance.\n * @param {{ onFocusFromTop: Function, onFocusFromBottom: Function }} hooks An object with defined callbacks to call.\n * @returns {{ activate: Function, deactivate: Function }}\n */\nfunction installFocusDetector(hot) {\n  let hooks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  const rootElement = hot.rootElement;\n  const inputTrapTop = createInputElement(hot);\n  const inputTrapBottom = createInputElement(hot);\n  inputTrapTop.addEventListener('focus', () => hooks === null || hooks === void 0 ? void 0 : hooks.onFocusFromTop());\n  inputTrapBottom.addEventListener('focus', () => hooks === null || hooks === void 0 ? void 0 : hooks.onFocusFromBottom());\n  rootElement.firstChild.before(inputTrapTop);\n  rootElement.lastChild.after(inputTrapBottom);\n  return {\n    /**\n     * Activates the detector by resetting the tabIndex of the input elements.\n     */\n    activate() {\n      hot._registerTimeout(() => {\n        inputTrapTop.tabIndex = 0;\n        inputTrapBottom.tabIndex = 0;\n      }, 10);\n    },\n    /**\n     * Deactivates the detector by setting tabIndex to -1.\n     */\n    deactivate() {\n      hot._registerTimeout(() => {\n        inputTrapTop.tabIndex = -1;\n        inputTrapBottom.tabIndex = -1;\n      }, 10);\n    }\n  };\n}\n\n/**\n * Creates a new HTML input element.\n *\n * @param {Handsontable} hot The Handsontable instance.\n * @returns {HTMLInputElement}\n */\nfunction createInputElement(hot) {\n  const rootDocument = hot.rootDocument;\n  const input = rootDocument.createElement('input');\n  input.type = 'text';\n  input.classList.add('htFocusCatcher');\n  if (hot.getSettings().ariaTags) {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"setAttribute\"])(input, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_1__[\"A11Y_PRESENTATION\"])(), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_1__[\"A11Y_HIDDEN\"])()]);\n  }\n  return input;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/core/focusCatcher/focusDetector.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/core/focusCatcher/index.mjs":
/*!***************************************************************!*\
  !*** ./node_modules/handsontable/core/focusCatcher/index.mjs ***!
  \***************************************************************/
/*! exports provided: installFocusCatcher */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"installFocusCatcher\", function() { return installFocusCatcher; });\n/* harmony import */ var _shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shortcutContexts/index.mjs */ \"./node_modules/handsontable/shortcutContexts/index.mjs\");\n/* harmony import */ var _focusDetector_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./focusDetector.mjs */ \"./node_modules/handsontable/core/focusCatcher/focusDetector.mjs\");\n\n\n/**\n * Installs a focus catcher module. The module observes when the table is focused and depending on\n * from the which side it was focused on it selects a specified cell or releases the TAB navigation\n * to the browser.\n *\n * @param {Core} hot The Handsontable instance.\n */\nfunction installFocusCatcher(hot) {\n  const clampCoordsIfNeeded = normalizeCoordsIfNeeded(hot);\n  let recentlyAddedFocusCoords;\n  const {\n    activate,\n    deactivate\n  } = Object(_focusDetector_mjs__WEBPACK_IMPORTED_MODULE_1__[\"installFocusDetector\"])(hot, {\n    onFocusFromTop() {\n      var _clampCoordsIfNeeded;\n      const mostTopStartCoords = (_clampCoordsIfNeeded = clampCoordsIfNeeded(recentlyAddedFocusCoords)) !== null && _clampCoordsIfNeeded !== void 0 ? _clampCoordsIfNeeded : getMostTopStartPosition(hot);\n      if (mostTopStartCoords) {\n        hot.runHooks('modifyFocusOnTabNavigation', 'from_above', mostTopStartCoords);\n        hot.selectCell(mostTopStartCoords.row, mostTopStartCoords.col);\n      }\n      hot.listen();\n    },\n    onFocusFromBottom() {\n      var _clampCoordsIfNeeded2;\n      const mostBottomEndCoords = (_clampCoordsIfNeeded2 = clampCoordsIfNeeded(recentlyAddedFocusCoords)) !== null && _clampCoordsIfNeeded2 !== void 0 ? _clampCoordsIfNeeded2 : getMostBottomEndPosition(hot);\n      if (mostBottomEndCoords) {\n        hot.runHooks('modifyFocusOnTabNavigation', 'from_below', mostBottomEndCoords);\n        hot.selectCell(mostBottomEndCoords.row, mostBottomEndCoords.col);\n      }\n      hot.listen();\n    }\n  });\n  const rowWrapState = {\n    wrapped: false,\n    flipped: false\n  };\n  let isSavingCoordsEnabled = true;\n  let isTabOrShiftTabPressed = false;\n  let preventViewportScroll = false;\n  hot.addHook('afterListen', () => deactivate());\n  hot.addHook('afterUnlisten', () => activate());\n  hot.addHook('afterSelection', (row, column, row2, column2, preventScrolling) => {\n    if (isTabOrShiftTabPressed && (rowWrapState.wrapped && rowWrapState.flipped || preventViewportScroll)) {\n      preventViewportScroll = false;\n      preventScrolling.value = true;\n    }\n    if (isSavingCoordsEnabled) {\n      var _hot$getSelectedRange;\n      recentlyAddedFocusCoords = (_hot$getSelectedRange = hot.getSelectedRangeLast()) === null || _hot$getSelectedRange === void 0 ? void 0 : _hot$getSelectedRange.highlight;\n    }\n  });\n  hot.addHook('beforeRowWrap', (interruptedByAutoInsertMode, newCoords, isFlipped) => {\n    rowWrapState.wrapped = true;\n    rowWrapState.flipped = isFlipped;\n  });\n\n  /**\n   * Unselects the cell and deactivates the table.\n   */\n  function deactivateTable() {\n    rowWrapState.wrapped = false;\n    rowWrapState.flipped = false;\n    hot.deselectCell();\n    hot.unlisten();\n  }\n  const shortcutOptions = {\n    keys: [['Tab'], ['Shift', 'Tab']],\n    preventDefault: false,\n    stopPropagation: false,\n    relativeToGroup: _shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"GRID_GROUP\"],\n    group: 'focusCatcher'\n  };\n  hot.getShortcutManager().getContext('grid').addShortcuts([{\n    ...shortcutOptions,\n    callback: () => {\n      const {\n        tabNavigation\n      } = hot.getSettings();\n      isTabOrShiftTabPressed = true;\n      if (hot.getSelectedRangeLast() && !tabNavigation) {\n        isSavingCoordsEnabled = false;\n      }\n      if (!tabNavigation) {\n        preventViewportScroll = true;\n      }\n    },\n    position: 'before'\n  }, {\n    ...shortcutOptions,\n    callback: event => {\n      const {\n        tabNavigation,\n        autoWrapRow\n      } = hot.getSettings();\n      isTabOrShiftTabPressed = false;\n      isSavingCoordsEnabled = true;\n      if (!tabNavigation || !hot.selection.isSelected() || autoWrapRow && rowWrapState.wrapped && rowWrapState.flipped || !autoWrapRow && rowWrapState.wrapped) {\n        if (autoWrapRow && rowWrapState.wrapped && rowWrapState.flipped) {\n          recentlyAddedFocusCoords = event.shiftKey ? getMostTopStartPosition(hot) : getMostBottomEndPosition(hot);\n        }\n        deactivateTable();\n        return false;\n      }\n\n      // if the selection is still within the table's range then prevent default action\n      event.preventDefault();\n    },\n    position: 'after'\n  }]);\n}\n\n/**\n * Gets the coordinates of the most top-start cell or header (depends on the table settings and its size).\n *\n * @param {Core} hot The Handsontable instance.\n * @returns {CellCoords|null}\n */\nfunction getMostTopStartPosition(hot) {\n  const {\n    rowIndexMapper,\n    columnIndexMapper\n  } = hot;\n  const {\n    navigableHeaders\n  } = hot.getSettings();\n  let topRow = navigableHeaders && hot.countColHeaders() > 0 ? -hot.countColHeaders() : 0;\n  let startColumn = navigableHeaders && hot.countRowHeaders() > 0 ? -hot.countRowHeaders() : 0;\n  if (topRow === 0) {\n    topRow = rowIndexMapper.getVisualFromRenderableIndex(topRow);\n  }\n  if (startColumn === 0) {\n    startColumn = columnIndexMapper.getVisualFromRenderableIndex(startColumn);\n  }\n  if (topRow === null || startColumn === null) {\n    return null;\n  }\n  return hot._createCellCoords(topRow, startColumn);\n}\n\n/**\n * Gets the coordinates of the most bottom-end cell or header (depends on the table settings and its size).\n *\n * @param {Core} hot The Handsontable instance.\n * @returns {CellCoords|null}\n */\nfunction getMostBottomEndPosition(hot) {\n  var _rowIndexMapper$getVi, _columnIndexMapper$ge;\n  const {\n    rowIndexMapper,\n    columnIndexMapper\n  } = hot;\n  const {\n    navigableHeaders\n  } = hot.getSettings();\n  let bottomRow = rowIndexMapper.getRenderableIndexesLength() - 1;\n  let endColumn = columnIndexMapper.getRenderableIndexesLength() - 1;\n  if (bottomRow < 0) {\n    if (!navigableHeaders || hot.countColHeaders() === 0) {\n      return null;\n    }\n    bottomRow = -1;\n  }\n  if (endColumn < 0) {\n    if (!navigableHeaders || hot.countColHeaders() === 0) {\n      return null;\n    }\n    endColumn = -1;\n  }\n  return hot._createCellCoords((_rowIndexMapper$getVi = rowIndexMapper.getVisualFromRenderableIndex(bottomRow)) !== null && _rowIndexMapper$getVi !== void 0 ? _rowIndexMapper$getVi : bottomRow, (_columnIndexMapper$ge = columnIndexMapper.getVisualFromRenderableIndex(endColumn)) !== null && _columnIndexMapper$ge !== void 0 ? _columnIndexMapper$ge : endColumn);\n}\n\n/**\n * Normalizes the coordinates (clamps to nearest visible cell position within dataset range).\n *\n * @param {Core} hot The Handsontable instance.\n * @returns {function(Coords | undefined): Coords | null}\n */\nfunction normalizeCoordsIfNeeded(hot) {\n  return coords => {\n    if (!coords) {\n      return null;\n    }\n    const mostTopStartCoords = getMostTopStartPosition(hot);\n    const mostBottomEndCoords = getMostBottomEndPosition(hot);\n    if (coords.col < mostTopStartCoords.col) {\n      coords.col = mostTopStartCoords.col;\n    }\n    if (coords.col > mostBottomEndCoords.col) {\n      coords.col = mostBottomEndCoords.col;\n    }\n    if (coords.row < mostTopStartCoords.row) {\n      coords.row = mostTopStartCoords.row;\n    }\n    if (coords.row > mostBottomEndCoords.row) {\n      coords.row = mostBottomEndCoords.row;\n    }\n    return coords;\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/core/focusCatcher/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/core/index.mjs":
/*!**************************************************!*\
  !*** ./node_modules/handsontable/core/index.mjs ***!
  \**************************************************/
/*! exports provided: installFocusCatcher, createViewportScroller */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _focusCatcher_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./focusCatcher/index.mjs */ \"./node_modules/handsontable/core/focusCatcher/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"installFocusCatcher\", function() { return _focusCatcher_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"installFocusCatcher\"]; });\n\n/* harmony import */ var _viewportScroll_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./viewportScroll/index.mjs */ \"./node_modules/handsontable/core/viewportScroll/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createViewportScroller\", function() { return _viewportScroll_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"createViewportScroller\"]; });\n\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/core/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/core/viewportScroll/index.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/core/viewportScroll/index.mjs ***!
  \*****************************************************************/
/*! exports provided: createViewportScroller */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createViewportScroller\", function() { return createViewportScroller; });\n/* harmony import */ var _scrollStrategies_columnHeaderScroll_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scrollStrategies/columnHeaderScroll.mjs */ \"./node_modules/handsontable/core/viewportScroll/scrollStrategies/columnHeaderScroll.mjs\");\n/* harmony import */ var _scrollStrategies_cornerHeaderScroll_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scrollStrategies/cornerHeaderScroll.mjs */ \"./node_modules/handsontable/core/viewportScroll/scrollStrategies/cornerHeaderScroll.mjs\");\n/* harmony import */ var _scrollStrategies_focusScroll_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./scrollStrategies/focusScroll.mjs */ \"./node_modules/handsontable/core/viewportScroll/scrollStrategies/focusScroll.mjs\");\n/* harmony import */ var _scrollStrategies_multipleScroll_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./scrollStrategies/multipleScroll.mjs */ \"./node_modules/handsontable/core/viewportScroll/scrollStrategies/multipleScroll.mjs\");\n/* harmony import */ var _scrollStrategies_noncontiguousScroll_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./scrollStrategies/noncontiguousScroll.mjs */ \"./node_modules/handsontable/core/viewportScroll/scrollStrategies/noncontiguousScroll.mjs\");\n/* harmony import */ var _scrollStrategies_rowHeaderScroll_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./scrollStrategies/rowHeaderScroll.mjs */ \"./node_modules/handsontable/core/viewportScroll/scrollStrategies/rowHeaderScroll.mjs\");\n/* harmony import */ var _scrollStrategies_singleScroll_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./scrollStrategies/singleScroll.mjs */ \"./node_modules/handsontable/core/viewportScroll/scrollStrategies/singleScroll.mjs\");\n\n\n\n\n\n\n\n/**\n * @typedef ViewportScroller\n * @property {function(): void} resume Resumes the viewport scroller.\n * @property {function(): void} suspend Suspends the viewport scroller until the `resume` method is called.\n * @property {function(): void} skipNextScrollCycle Skip the next scroll cycle.\n * @property {function(CellCoords): void} scrollTo Scroll the viewport to a given cell.\n */\n/**\n * Installs a viewport scroller module. The module is responsible for scrolling the viewport to a given cell\n * based on the selection type (single cell selection, multiple cells selection, header selection etc.).\n * It's triggered by the selection module via the `afterSetRangeEnd` hook every time the selection changes.\n *\n * @param {Core} hot The Handsontable instance.\n * @returns {ViewportScroller} The viewport scroller module.\n */\nfunction createViewportScroller(hot) {\n  const {\n    selection\n  } = hot;\n  let skipNextCall = false;\n  let isSuspended = false;\n  return {\n    resume() {\n      isSuspended = false;\n    },\n    suspend() {\n      isSuspended = true;\n    },\n    skipNextScrollCycle() {\n      skipNextCall = true;\n    },\n    scrollTo(cellCoords) {\n      var _scrollStrategy;\n      if (skipNextCall || isSuspended) {\n        skipNextCall = false;\n        return;\n      }\n      let scrollStrategy;\n      if (selection.isFocusSelectionChanged()) {\n        scrollStrategy = Object(_scrollStrategies_focusScroll_mjs__WEBPACK_IMPORTED_MODULE_2__[\"focusScrollStrategy\"])(hot);\n      } else if (selection.isSelectedByCorner()) {\n        scrollStrategy = Object(_scrollStrategies_cornerHeaderScroll_mjs__WEBPACK_IMPORTED_MODULE_1__[\"cornerHeaderScrollStrategy\"])(hot);\n      } else if (selection.isSelectedByRowHeader()) {\n        scrollStrategy = Object(_scrollStrategies_rowHeaderScroll_mjs__WEBPACK_IMPORTED_MODULE_5__[\"rowHeaderScrollStrategy\"])(hot);\n      } else if (selection.isSelectedByColumnHeader()) {\n        scrollStrategy = Object(_scrollStrategies_columnHeaderScroll_mjs__WEBPACK_IMPORTED_MODULE_0__[\"columnHeaderScrollStrategy\"])(hot);\n      } else if (selection.getSelectedRange().size() === 1 && selection.isMultiple()) {\n        scrollStrategy = Object(_scrollStrategies_multipleScroll_mjs__WEBPACK_IMPORTED_MODULE_3__[\"multipleScrollStrategy\"])(hot);\n      } else if (selection.getSelectedRange().size() === 1 && !selection.isMultiple()) {\n        scrollStrategy = Object(_scrollStrategies_singleScroll_mjs__WEBPACK_IMPORTED_MODULE_6__[\"singleScrollStrategy\"])(hot);\n      } else if (selection.getSelectedRange().size() > 1) {\n        scrollStrategy = Object(_scrollStrategies_noncontiguousScroll_mjs__WEBPACK_IMPORTED_MODULE_4__[\"noncontiguousScrollStrategy\"])(hot);\n      }\n      (_scrollStrategy = scrollStrategy) === null || _scrollStrategy === void 0 || _scrollStrategy(cellCoords);\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/core/viewportScroll/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/core/viewportScroll/scrollStrategies/columnHeaderScroll.mjs":
/*!***********************************************************************************************!*\
  !*** ./node_modules/handsontable/core/viewportScroll/scrollStrategies/columnHeaderScroll.mjs ***!
  \***********************************************************************************************/
/*! exports provided: columnHeaderScrollStrategy */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"columnHeaderScrollStrategy\", function() { return columnHeaderScrollStrategy; });\n/**\n * Scroll strategy for column header selection.\n *\n * @param {Core} hot Handsontable instance.\n * @returns {function(): function(CellCoords): void}\n */\nfunction columnHeaderScrollStrategy(hot) {\n  return _ref => {\n    let {\n      col\n    } = _ref;\n    hot.scrollViewportTo({\n      col\n    });\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/core/viewportScroll/scrollStrategies/columnHeaderScroll.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/core/viewportScroll/scrollStrategies/cornerHeaderScroll.mjs":
/*!***********************************************************************************************!*\
  !*** ./node_modules/handsontable/core/viewportScroll/scrollStrategies/cornerHeaderScroll.mjs ***!
  \***********************************************************************************************/
/*! exports provided: cornerHeaderScrollStrategy */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cornerHeaderScrollStrategy\", function() { return cornerHeaderScrollStrategy; });\n/**\n * Scroll strategy for corner header selection.\n *\n * @returns {function(): function(CellCoords): void}\n */\nfunction cornerHeaderScrollStrategy() {\n  return () => {\n    // do not scroll the viewport when the corner is clicked\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/core/viewportScroll/scrollStrategies/cornerHeaderScroll.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/core/viewportScroll/scrollStrategies/focusScroll.mjs":
/*!****************************************************************************************!*\
  !*** ./node_modules/handsontable/core/viewportScroll/scrollStrategies/focusScroll.mjs ***!
  \****************************************************************************************/
/*! exports provided: focusScrollStrategy */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"focusScrollStrategy\", function() { return focusScrollStrategy; });\n/**\n * Scroll strategy for changed the focus position of the selection.\n *\n * @param {Core} hot Handsontable instance.\n * @returns {function(): function(CellCoords): void}\n */\nfunction focusScrollStrategy(hot) {\n  return cellCoords => {\n    hot.scrollViewportTo(cellCoords.toObject());\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/core/viewportScroll/scrollStrategies/focusScroll.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/core/viewportScroll/scrollStrategies/multipleScroll.mjs":
/*!*******************************************************************************************!*\
  !*** ./node_modules/handsontable/core/viewportScroll/scrollStrategies/multipleScroll.mjs ***!
  \*******************************************************************************************/
/*! exports provided: multipleScrollStrategy */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"multipleScrollStrategy\", function() { return multipleScrollStrategy; });\n/**\n * Scroll strategy for multiple selections.\n *\n * @param {Core} hot Handsontable instance.\n * @returns {function(): function(CellCoords): void}\n */\nfunction multipleScrollStrategy(hot) {\n  return cellCoords => {\n    hot.scrollViewportTo(cellCoords.toObject());\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/core/viewportScroll/scrollStrategies/multipleScroll.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/core/viewportScroll/scrollStrategies/noncontiguousScroll.mjs":
/*!************************************************************************************************!*\
  !*** ./node_modules/handsontable/core/viewportScroll/scrollStrategies/noncontiguousScroll.mjs ***!
  \************************************************************************************************/
/*! exports provided: noncontiguousScrollStrategy */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"noncontiguousScrollStrategy\", function() { return noncontiguousScrollStrategy; });\n/**\n * Scroll strategy for non-contiguous selections.\n *\n * @param {Core} hot Handsontable instance.\n * @returns {function(): function(CellCoords): void}\n */\nfunction noncontiguousScrollStrategy(hot) {\n  return cellCoords => {\n    hot.scrollViewportTo(cellCoords.toObject());\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/core/viewportScroll/scrollStrategies/noncontiguousScroll.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/core/viewportScroll/scrollStrategies/rowHeaderScroll.mjs":
/*!********************************************************************************************!*\
  !*** ./node_modules/handsontable/core/viewportScroll/scrollStrategies/rowHeaderScroll.mjs ***!
  \********************************************************************************************/
/*! exports provided: rowHeaderScrollStrategy */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rowHeaderScrollStrategy\", function() { return rowHeaderScrollStrategy; });\n/**\n * Scroll strategy for row header selection.\n *\n * @param {Core} hot Handsontable instance.\n * @returns {function(): function(CellCoords): void}\n */\nfunction rowHeaderScrollStrategy(hot) {\n  return _ref => {\n    let {\n      row\n    } = _ref;\n    hot.scrollViewportTo({\n      row\n    });\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/core/viewportScroll/scrollStrategies/rowHeaderScroll.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/core/viewportScroll/scrollStrategies/singleScroll.mjs":
/*!*****************************************************************************************!*\
  !*** ./node_modules/handsontable/core/viewportScroll/scrollStrategies/singleScroll.mjs ***!
  \*****************************************************************************************/
/*! exports provided: singleScrollStrategy */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"singleScrollStrategy\", function() { return singleScrollStrategy; });\n/**\n * Scroll strategy for single cell selection.\n *\n * @param {Core} hot Handsontable instance.\n * @returns {function(): function(CellCoords): { row: number, col: number } | void }\n */\nfunction singleScrollStrategy(hot) {\n  return cellCoords => {\n    const selectionSource = hot.selection.getSelectionSource();\n    const {\n      row,\n      col\n    } = cellCoords;\n\n    // navigating through the column headers (when `navigableHeaders` is enabled)\n    // scrolls the viewport horizontally only\n    if (row < 0 && col >= 0) {\n      hot.scrollViewportTo({\n        col\n      });\n\n      // navigating through the row headers (when `navigableHeaders` is enabled)\n      // scrolls the viewport vertically only\n    } else if (col < 0 && row >= 0) {\n      hot.scrollViewportTo({\n        row\n      });\n\n      // navigating through the cells\n    } else {\n      if (selectionSource === 'mouse') {\n        if (col === hot.view.getLastPartiallyVisibleColumn() || row === hot.view.getLastPartiallyVisibleRow()) {\n          return;\n        }\n      }\n      hot.scrollViewportTo({\n        row,\n        col\n      });\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/core/viewportScroll/scrollStrategies/singleScroll.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/dataMap/dataMap.mjs":
/*!*******************************************************!*\
  !*** ./node_modules/handsontable/dataMap/dataMap.mjs ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _3rdparty_SheetClip_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../3rdparty/SheetClip/index.mjs */ \"./node_modules/handsontable/3rdparty/SheetClip/index.mjs\");\n/* harmony import */ var _helpers_data_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/data.mjs */ \"./node_modules/handsontable/helpers/data.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n/*\nThis class contains open-source contributions covered by the MIT license.\n\n1) In the `createRow` method: Row creation using functional `dataSchema` value\n2) In the `set` method: Data setting using functional `prop` value\n3) in the `get` method: Data getting using functional `prop` value\n\nThe remaining part of this code comment contains the full license text of these contributions.\n\n======\n\nThe MIT License\n\nCopyright 2013 Nicholas Bollweg\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n/**\n * Utility class that gets and saves data from/to the data source using mapping of columns numbers to object property names.\n *\n * @todo Refactor arguments of methods getRange, getText to be numbers (not objects).\n * @todo Remove priv, GridSettings from object constructor.\n *\n * @class DataMap\n * @private\n */\nclass DataMap {\n  /**\n   * @type {number}\n   */\n  static get DESTINATION_RENDERER() {\n    return 1;\n  }\n\n  /**\n   * @type {number}\n   */\n  static get DESTINATION_CLIPBOARD_GENERATOR() {\n    return 2;\n  }\n\n  /**\n   * Instance of {@link Handsontable}.\n   *\n   * @private\n   * @type {Handsontable}\n   */\n\n  /**\n   * @param {object} hotInstance Instance of Handsontable.\n   * @param {Array} data Array of arrays or array of objects containing data.\n   * @param {MetaManager} metaManager The meta manager instance.\n   */\n  constructor(hotInstance, data, metaManager) {\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * Instance of {@link MetaManager}.\n     *\n     * @private\n     * @type {MetaManager}\n     */\n    _defineProperty(this, \"metaManager\", void 0);\n    /**\n     * Instance of {@link TableMeta}.\n     *\n     * @private\n     * @type {TableMeta}\n     */\n    _defineProperty(this, \"tableMeta\", void 0);\n    /**\n     * Reference to the original dataset.\n     *\n     * @type {*}\n     */\n    _defineProperty(this, \"dataSource\", void 0);\n    /**\n     * Generated schema based on the first row from the source data.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"duckSchema\", void 0);\n    /**\n     * Cached array of properties to columns.\n     *\n     * @type {Array}\n     */\n    _defineProperty(this, \"colToPropCache\", void 0);\n    /**\n     * Cached map of properties to columns.\n     *\n     * @type {Map}\n     */\n    _defineProperty(this, \"propToColCache\", void 0);\n    this.hot = hotInstance;\n    this.metaManager = metaManager;\n    this.tableMeta = metaManager.getTableMeta();\n    this.dataSource = data;\n    this.duckSchema = this.createDuckSchema();\n    this.createMap();\n  }\n\n  /**\n   * Generates cache for property to and from column addressation.\n   */\n  createMap() {\n    const schema = this.getSchema();\n    if (typeof schema === 'undefined') {\n      throw new Error('trying to create `columns` definition but you didn\\'t provide `schema` nor `data`');\n    }\n    const columns = this.tableMeta.columns;\n    let i;\n    this.colToPropCache = [];\n    this.propToColCache = new Map();\n    if (columns) {\n      let columnsLen = 0;\n      let filteredIndex = 0;\n      let columnsAsFunc = false;\n      if (typeof columns === 'function') {\n        const schemaLen = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"deepObjectSize\"])(schema);\n        columnsLen = schemaLen > 0 ? schemaLen : this.countFirstRowKeys();\n        columnsAsFunc = true;\n      } else {\n        const maxCols = this.tableMeta.maxCols;\n        columnsLen = Math.min(maxCols, columns.length);\n      }\n      for (i = 0; i < columnsLen; i++) {\n        const column = columnsAsFunc ? columns(i) : columns[i];\n        if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isObject\"])(column)) {\n          if (typeof column.data !== 'undefined') {\n            const index = columnsAsFunc ? filteredIndex : i;\n            this.colToPropCache[index] = column.data;\n            this.propToColCache.set(column.data, index);\n          }\n          filteredIndex += 1;\n        }\n      }\n    } else {\n      this.recursiveDuckColumns(schema);\n    }\n  }\n\n  /**\n   * Get the amount of physical columns in the first data row.\n   *\n   * @returns {number} Amount of physical columns in the first data row.\n   */\n  countFirstRowKeys() {\n    return Object(_helpers_data_mjs__WEBPACK_IMPORTED_MODULE_3__[\"countFirstRowKeys\"])(this.dataSource);\n  }\n\n  /**\n   * Generates columns' translation cache.\n   *\n   * @param {object} schema An object to generate schema from.\n   * @param {number} lastCol The column index.\n   * @param {number} parent The property cache for recursive calls.\n   * @returns {number}\n   */\n  recursiveDuckColumns(schema, lastCol, parent) {\n    let lastColumn = lastCol;\n    let propertyParent = parent;\n    let prop;\n    if (typeof lastColumn === 'undefined') {\n      lastColumn = 0;\n      propertyParent = '';\n    }\n    if (typeof schema === 'object' && !Array.isArray(schema)) {\n      Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"objectEach\"])(schema, (value, key) => {\n        if (value === null) {\n          prop = propertyParent + key;\n          this.colToPropCache.push(prop);\n          this.propToColCache.set(prop, lastColumn);\n          lastColumn += 1;\n        } else {\n          lastColumn = this.recursiveDuckColumns(value, lastColumn, `${key}.`);\n        }\n      });\n    }\n    return lastColumn;\n  }\n\n  /**\n   * Returns property name that corresponds with the given column index.\n   *\n   * @param {string|number} column Visual column index or another passed argument.\n   * @returns {string|number} Column property, physical column index or passed argument.\n   */\n  colToProp(column) {\n    // TODO: Should it work? Please, look at the test:\n    // \"it should return the provided property name, when the user passes a property name as a column number\".\n    if (Number.isInteger(column) === false) {\n      return column;\n    }\n    const physicalColumn = this.hot.toPhysicalColumn(column);\n\n    // Out of range, not visible column index.\n    if (physicalColumn === null) {\n      return column;\n    }\n\n    // Cached property.\n    if (this.colToPropCache && Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_7__[\"isDefined\"])(this.colToPropCache[physicalColumn])) {\n      return this.colToPropCache[physicalColumn];\n    }\n    return physicalColumn;\n  }\n\n  /**\n   * Translates property into visual column index.\n   *\n   * @param {string|number} prop Column property which may be also a physical column index.\n   * @returns {string|number} Visual column index or passed argument.\n   */\n  propToCol(prop) {\n    const cachedPhysicalIndex = this.propToColCache.get(prop);\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_7__[\"isDefined\"])(cachedPhysicalIndex)) {\n      return this.hot.toVisualColumn(cachedPhysicalIndex);\n    }\n\n    // Property may be a physical column index.\n    const visualColumn = this.hot.toVisualColumn(prop);\n    if (visualColumn === null) {\n      return prop;\n    }\n    return visualColumn;\n  }\n\n  /**\n   * Returns data's schema.\n   *\n   * @returns {object}\n   */\n  getSchema() {\n    const schema = this.tableMeta.dataSchema;\n    if (schema) {\n      if (typeof schema === 'function') {\n        return schema();\n      }\n      return schema;\n    }\n    return this.duckSchema;\n  }\n\n  /**\n   * Creates the duck schema based on the current dataset.\n   *\n   * @returns {Array|object}\n   */\n  createDuckSchema() {\n    return this.dataSource && this.dataSource[0] ? Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"duckSchema\"])(this.dataSource[0]) : {};\n  }\n\n  /**\n   * Refresh the data schema.\n   */\n  refreshDuckSchema() {\n    this.duckSchema = this.createDuckSchema();\n  }\n\n  /**\n   * Creates row at the bottom of the data array.\n   *\n   * @param {number} [index] Physical index of the row before which the new row will be inserted.\n   * @param {number} [amount=1] An amount of rows to add.\n   * @param {object} [options] Additional options for created rows.\n   * @param {string} [options.source] Source of method call.\n   * @param {'above'|'below'} [options.mode] Sets where the row is inserted: above or below the passed index.\n   * @fires Hooks#afterCreateRow\n   * @returns {number} Returns number of created rows.\n   */\n  createRow(index) {\n    let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n    let {\n      source,\n      mode = 'above'\n    } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    const sourceRowsCount = this.hot.countSourceRows();\n    let physicalRowIndex = sourceRowsCount;\n    let numberOfCreatedRows = 0;\n    let rowIndex = index;\n    if (typeof rowIndex !== 'number' || rowIndex >= sourceRowsCount) {\n      rowIndex = sourceRowsCount;\n    }\n    if (rowIndex < this.hot.countRows()) {\n      physicalRowIndex = this.hot.toPhysicalRow(rowIndex);\n    }\n    const continueProcess = this.hot.runHooks('beforeCreateRow', rowIndex, amount, source);\n    if (continueProcess === false || physicalRowIndex === null) {\n      return {\n        delta: 0\n      };\n    }\n    const maxRows = this.tableMeta.maxRows;\n    const columnCount = this.getSchema().length;\n    const rowsToAdd = [];\n    while (numberOfCreatedRows < amount && sourceRowsCount + numberOfCreatedRows < maxRows) {\n      let row = null;\n      if (this.hot.dataType === 'array') {\n        if (this.tableMeta.dataSchema) {\n          // Clone template array\n          row = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"deepClone\"])(this.getSchema());\n        } else {\n          row = [];\n          /* eslint-disable no-loop-func */\n          Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_6__[\"rangeEach\"])(columnCount - 1, () => row.push(null));\n        }\n      } else if (this.hot.dataType === 'function') {\n        row = this.tableMeta.dataSchema(rowIndex + numberOfCreatedRows);\n      } else {\n        row = {};\n        Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"deepExtend\"])(row, this.getSchema());\n      }\n      rowsToAdd.push(row);\n      numberOfCreatedRows += 1;\n    }\n    this.hot.rowIndexMapper.insertIndexes(rowIndex, numberOfCreatedRows);\n    if (mode === 'below') {\n      physicalRowIndex = Math.min(physicalRowIndex + 1, sourceRowsCount);\n    }\n    this.spliceData(physicalRowIndex, 0, rowsToAdd);\n    const newVisualRowIndex = this.hot.toVisualRow(physicalRowIndex);\n\n    // In case the created rows are the only ones in the table, the column index mappers need to be rebuilt based on\n    // the number of columns created in the row or the schema.\n    if (this.hot.countSourceRows() === rowsToAdd.length) {\n      this.hot.columnIndexMapper.initToLength(this.hot.getInitialColumnCount());\n    }\n    if (numberOfCreatedRows > 0) {\n      if (index === undefined || index === null) {\n        // Creates the meta rows at the end of the rows collection without shifting the cells\n        // that were defined out of the range of the dataset.\n        this.metaManager.createRow(null, numberOfCreatedRows);\n      } else if (source !== 'auto') {\n        this.metaManager.createRow(physicalRowIndex, amount);\n      }\n    }\n    this.hot.runHooks('afterCreateRow', newVisualRowIndex, numberOfCreatedRows, source);\n    this.hot.forceFullRender = true; // used when data was changed\n\n    return {\n      delta: numberOfCreatedRows,\n      startPhysicalIndex: physicalRowIndex\n    };\n  }\n\n  /**\n   * Creates column at the right of the data array.\n   *\n   * @param {number} [index] Visual index of the column before which the new column will be inserted.\n   * @param {number} [amount=1] An amount of columns to add.\n   * @param {object} [options] Additional options for created columns.\n   * @param {string} [options.source] Source of method call.\n   * @param {'start'|'end'} [options.mode] Sets where the column is inserted: at the start (left in [LTR](@/api/options.md#layoutdirection), right in [RTL](@/api/options.md#layoutdirection)) or at the end (right in LTR, left in LTR)\n   * the passed index.\n   * @fires Hooks#afterCreateCol\n   * @returns {number} Returns number of created columns.\n   */\n  createCol(index) {\n    let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n    let {\n      source,\n      mode = 'start'\n    } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    if (!this.hot.isColumnModificationAllowed()) {\n      throw new Error('Cannot create new column. When data source in an object, ' + 'you can only have as much columns as defined in first data row, data schema or in the \\'columns\\' setting.' + 'If you want to be able to add new columns, you have to use array datasource.');\n    }\n    const dataSource = this.dataSource;\n    const maxCols = this.tableMeta.maxCols;\n    const countSourceCols = this.hot.countSourceCols();\n    let columnIndex = index;\n    if (typeof columnIndex !== 'number' || columnIndex >= countSourceCols) {\n      columnIndex = countSourceCols;\n    }\n    const continueProcess = this.hot.runHooks('beforeCreateCol', columnIndex, amount, source);\n    if (continueProcess === false) {\n      return {\n        delta: 0\n      };\n    }\n    let physicalColumnIndex = countSourceCols;\n    if (columnIndex < this.hot.countCols()) {\n      physicalColumnIndex = this.hot.toPhysicalColumn(columnIndex);\n    }\n    const numberOfSourceRows = this.hot.countSourceRows();\n    let nrOfColumns = this.hot.countCols();\n    let numberOfCreatedCols = 0;\n    let currentIndex = physicalColumnIndex;\n    if (mode === 'end') {\n      currentIndex = Math.min(currentIndex + 1, countSourceCols);\n    }\n    const startPhysicalIndex = currentIndex;\n    while (numberOfCreatedCols < amount && nrOfColumns < maxCols) {\n      if (typeof columnIndex !== 'number' || columnIndex >= nrOfColumns) {\n        if (numberOfSourceRows > 0) {\n          for (let row = 0; row < numberOfSourceRows; row += 1) {\n            if (typeof dataSource[row] === 'undefined') {\n              dataSource[row] = [];\n            }\n            dataSource[row].push(null);\n          }\n        } else {\n          dataSource.push([null]);\n        }\n      } else {\n        for (let row = 0; row < numberOfSourceRows; row++) {\n          dataSource[row].splice(currentIndex, 0, null);\n        }\n      }\n      numberOfCreatedCols += 1;\n      currentIndex += 1;\n      nrOfColumns += 1;\n    }\n    this.hot.columnIndexMapper.insertIndexes(columnIndex, numberOfCreatedCols);\n    if (numberOfCreatedCols > 0) {\n      if (index === undefined || index === null) {\n        // Creates the meta columns at the end of the columns collection without shifting the cells\n        // that were defined out of the range of the dataset.\n        this.metaManager.createColumn(null, numberOfCreatedCols);\n      } else if (source !== 'auto') {\n        this.metaManager.createColumn(startPhysicalIndex, amount);\n      }\n    }\n    const newVisualColumnIndex = this.hot.toVisualColumn(startPhysicalIndex);\n    this.hot.runHooks('afterCreateCol', newVisualColumnIndex, numberOfCreatedCols, source);\n    this.hot.forceFullRender = true; // used when data was changed\n\n    this.refreshDuckSchema();\n    return {\n      delta: numberOfCreatedCols,\n      startPhysicalIndex\n    };\n  }\n\n  /**\n   * Removes row from the data array.\n   *\n   * @fires Hooks#beforeRemoveRow\n   * @fires Hooks#afterRemoveRow\n   * @param {number} [index] Visual index of the row to be removed. If not provided, the last row will be removed.\n   * @param {number} [amount=1] Amount of the rows to be removed. If not provided, one row will be removed.\n   * @param {string} [source] Source of method call.\n   * @returns {boolean} Returns `false` when action was cancelled, otherwise `true`.\n   */\n  removeRow(index) {\n    let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n    let source = arguments.length > 2 ? arguments[2] : undefined;\n    let rowIndex = Number.isInteger(index) ? index : -amount; // -amount = taking indexes from the end.\n    const removedPhysicalIndexes = this.visualRowsToPhysical(rowIndex, amount);\n    const sourceRowsLength = this.hot.countSourceRows();\n    rowIndex = (sourceRowsLength + rowIndex) % sourceRowsLength;\n\n    // It handle also callback from the `NestedRows` plugin. Removing parent node has effect in removing children nodes.\n    const actionWasNotCancelled = this.hot.runHooks('beforeRemoveRow', rowIndex, removedPhysicalIndexes.length, removedPhysicalIndexes, source);\n    if (actionWasNotCancelled === false) {\n      return false;\n    }\n\n    // List of removed indexes might be changed in the `beforeRemoveRow` hook. There may be new values.\n    const numberOfRemovedIndexes = removedPhysicalIndexes.length;\n    this.filterData(rowIndex, numberOfRemovedIndexes, removedPhysicalIndexes);\n\n    // TODO: Function `removeRow` should validate fully, probably above.\n    if (rowIndex < this.hot.countRows()) {\n      this.hot.rowIndexMapper.removeIndexes(removedPhysicalIndexes);\n      const customDefinedColumns = Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_7__[\"isDefined\"])(this.tableMeta.columns) || Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_7__[\"isDefined\"])(this.tableMeta.dataSchema);\n\n      // All rows have been removed. There shouldn't be any columns.\n      if (this.hot.rowIndexMapper.getNotTrimmedIndexesLength() === 0 && customDefinedColumns === false) {\n        this.hot.columnIndexMapper.setIndexesSequence([]);\n      }\n    }\n    const descendingPhysicalRows = removedPhysicalIndexes.slice(0).sort((a, b) => b - a);\n    descendingPhysicalRows.forEach(rowPhysicalIndex => {\n      this.metaManager.removeRow(rowPhysicalIndex, 1);\n    });\n    this.hot.runHooks('afterRemoveRow', rowIndex, numberOfRemovedIndexes, removedPhysicalIndexes, source);\n    this.hot.forceFullRender = true; // used when data was changed\n\n    return true;\n  }\n\n  /**\n   * Removes column from the data array.\n   *\n   * @fires Hooks#beforeRemoveCol\n   * @fires Hooks#afterRemoveCol\n   * @param {number} [index] Visual index of the column to be removed. If not provided, the last column will be removed.\n   * @param {number} [amount=1] Amount of the columns to be removed. If not provided, one column will be removed.\n   * @param {string} [source] Source of method call.\n   * @returns {boolean} Returns `false` when action was cancelled, otherwise `true`.\n   */\n  removeCol(index) {\n    let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n    let source = arguments.length > 2 ? arguments[2] : undefined;\n    if (this.hot.dataType === 'object' || this.tableMeta.columns) {\n      throw new Error('cannot remove column with object data source or columns option specified');\n    }\n    let columnIndex = typeof index !== 'number' ? -amount : index;\n    columnIndex = (this.hot.countCols() + columnIndex) % this.hot.countCols();\n    const removedPhysicalIndexes = this.visualColumnsToPhysical(columnIndex, amount);\n    const descendingPhysicalColumns = removedPhysicalIndexes.slice(0).sort((a, b) => b - a);\n    const actionWasNotCancelled = this.hot.runHooks('beforeRemoveCol', columnIndex, amount, removedPhysicalIndexes, source);\n    if (actionWasNotCancelled === false) {\n      return false;\n    }\n    let isTableUniform = true;\n    const removedColumnsCount = descendingPhysicalColumns.length;\n    const data = this.dataSource;\n    for (let c = 0; c < removedColumnsCount; c++) {\n      if (isTableUniform && removedPhysicalIndexes[0] !== removedPhysicalIndexes[c] - c) {\n        isTableUniform = false;\n      }\n    }\n    if (isTableUniform) {\n      for (let r = 0, rlen = this.hot.countSourceRows(); r < rlen; r++) {\n        data[r].splice(removedPhysicalIndexes[0], amount);\n        if (r === 0) {\n          this.metaManager.removeColumn(removedPhysicalIndexes[0], amount);\n        }\n      }\n    } else {\n      for (let r = 0, rlen = this.hot.countSourceRows(); r < rlen; r++) {\n        for (let c = 0; c < removedColumnsCount; c++) {\n          data[r].splice(descendingPhysicalColumns[c], 1);\n          if (r === 0) {\n            this.metaManager.removeColumn(descendingPhysicalColumns[c], 1);\n          }\n        }\n      }\n    }\n\n    // TODO: Function `removeCol` should validate fully, probably above.\n    if (columnIndex < this.hot.countCols()) {\n      this.hot.columnIndexMapper.removeIndexes(removedPhysicalIndexes);\n\n      // All columns have been removed. There shouldn't be any rows.\n      if (this.hot.columnIndexMapper.getNotTrimmedIndexesLength() === 0) {\n        this.hot.rowIndexMapper.setIndexesSequence([]);\n      }\n    }\n    this.hot.runHooks('afterRemoveCol', columnIndex, amount, removedPhysicalIndexes, source);\n    this.hot.forceFullRender = true; // used when data was changed\n    this.refreshDuckSchema();\n    return true;\n  }\n\n  /**\n   * Add/Removes data from the column.\n   *\n   * @param {number} col Physical index of column in which do you want to do splice.\n   * @param {number} index Index at which to start changing the array. If negative, will begin that many elements from the end.\n   * @param {number} amount An integer indicating the number of old array elements to remove. If amount is 0, no elements are removed.\n   * @param {Array} [elements] The new columns to add.\n   * @returns {Array} Returns removed portion of columns.\n   */\n  spliceCol(col, index, amount) {\n    const colData = this.hot.getDataAtCol(col);\n    const removed = colData.slice(index, index + amount);\n    const after = colData.slice(index + amount);\n    for (var _len = arguments.length, elements = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n      elements[_key - 3] = arguments[_key];\n    }\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"extendArray\"])(elements, after);\n    let i = 0;\n    while (i < amount) {\n      elements.push(null); // add null in place of removed elements\n      i += 1;\n    }\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"to2dArray\"])(elements);\n    this.hot.populateFromArray(index, col, elements, null, null, 'spliceCol');\n    return removed;\n  }\n\n  /**\n   * Add/Removes data from the row.\n   *\n   * @param {number} row Physical index of row in which do you want to do splice.\n   * @param {number} index Index at which to start changing the array. If negative, will begin that many elements from the end.\n   * @param {number} amount An integer indicating the number of old array elements to remove. If amount is 0, no elements are removed.\n   * @param {Array} [elements] The new rows to add.\n   * @returns {Array} Returns removed portion of rows.\n   */\n  spliceRow(row, index, amount) {\n    const rowData = this.hot.getSourceDataAtRow(row);\n    const removed = rowData.slice(index, index + amount);\n    const after = rowData.slice(index + amount);\n    for (var _len2 = arguments.length, elements = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) {\n      elements[_key2 - 3] = arguments[_key2];\n    }\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"extendArray\"])(elements, after);\n    let i = 0;\n    while (i < amount) {\n      elements.push(null); // add null in place of removed elements\n      i += 1;\n    }\n    this.hot.populateFromArray(row, index, [elements], null, null, 'spliceRow');\n    return removed;\n  }\n\n  /**\n   * Add/remove row(s) to/from the data source.\n   *\n   * @param {number} index Physical index of the element to add/remove.\n   * @param {number} deleteCount Number of rows to remove.\n   * @param {Array<object>} elements Row elements to be added.\n   */\n  spliceData(index, deleteCount, elements) {\n    const continueSplicing = this.hot.runHooks('beforeDataSplice', index, deleteCount, elements);\n    if (continueSplicing !== false) {\n      const newData = [...this.dataSource.slice(0, index), ...elements, ...this.dataSource.slice(index)];\n\n      // We try not to change the reference.\n      this.dataSource.length = 0;\n\n      // Pushing to array instead of using `splice`, because Babel changes the code to one that uses the `apply` method.\n      // The used method was cause of the problem described within #7840.\n      newData.forEach(row => this.dataSource.push(row));\n    }\n  }\n\n  /**\n   * Filter unwanted data elements from the data source.\n   *\n   * @param {number} index Visual index of the element to remove.\n   * @param {number} amount Number of rows to add/remove.\n   * @param {number} physicalRows Physical row indexes.\n   */\n  filterData(index, amount, physicalRows) {\n    // Custom data filtering (run as a consequence of calling the below hook) provide an array containing new data.\n    let data = this.hot.runHooks('filterData', index, amount, physicalRows);\n\n    // Hooks by default returns first argument (when there is no callback changing execution result).\n    if (Array.isArray(data) === false) {\n      data = this.dataSource.filter((row, rowIndex) => physicalRows.indexOf(rowIndex) === -1);\n    }\n    this.dataSource.length = 0;\n    Array.prototype.push.apply(this.dataSource, data);\n  }\n\n  /**\n   * Returns single value from the data array.\n   *\n   * @param {number} row Visual row index.\n   * @param {number} prop The column property.\n   * @returns {*}\n   */\n  get(row, prop) {\n    const physicalRow = this.hot.toPhysicalRow(row);\n    let dataRow = this.dataSource[physicalRow];\n    // TODO: To remove, use 'modifyData' hook instead (see below)\n    const modifiedRowData = this.hot.runHooks('modifyRowData', physicalRow);\n    dataRow = isNaN(modifiedRowData) ? modifiedRowData : dataRow;\n    //\n\n    const {\n      dataDotNotation\n    } = this.hot.getSettings();\n    let value = null;\n\n    // try to get value under property `prop` (includes dot)\n    if (dataRow && dataRow.hasOwnProperty && Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"hasOwnProperty\"])(dataRow, prop)) {\n      value = dataRow[prop];\n    } else if (dataDotNotation && typeof prop === 'string' && prop.indexOf('.') > -1) {\n      let out = dataRow;\n      if (!out) {\n        return null;\n      }\n      const sliced = prop.split('.');\n      for (let i = 0, ilen = sliced.length; i < ilen; i++) {\n        out = out[sliced[i]];\n        if (typeof out === 'undefined') {\n          return null;\n        }\n      }\n      value = out;\n    } else if (typeof prop === 'function') {\n      value = prop(this.dataSource.slice(physicalRow, physicalRow + 1)[0]);\n    }\n    if (this.hot.hasHook('modifyData')) {\n      const valueHolder = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"createObjectPropListener\"])(value);\n      this.hot.runHooks('modifyData', physicalRow, this.propToCol(prop), valueHolder, 'get');\n      if (valueHolder.isTouched()) {\n        value = valueHolder.value;\n      }\n    }\n    return value;\n  }\n\n  /**\n   * Returns single value from the data array (intended for clipboard copy to an external application).\n   *\n   * @param {number} row Physical row index.\n   * @param {number} prop The column property.\n   * @returns {string}\n   */\n  getCopyable(row, prop) {\n    if (this.hot.getCellMeta(row, this.propToCol(prop)).copyable) {\n      return this.get(row, prop);\n    }\n    return '';\n  }\n\n  /**\n   * Saves single value to the data array.\n   *\n   * @param {number} row Visual row index.\n   * @param {number} prop The column property.\n   * @param {string} value The value to set.\n   */\n  set(row, prop, value) {\n    const physicalRow = this.hot.toPhysicalRow(row);\n    let newValue = value;\n    let dataRow = this.dataSource[physicalRow];\n    // TODO: To remove, use 'modifyData' hook instead (see below)\n    const modifiedRowData = this.hot.runHooks('modifyRowData', physicalRow);\n    dataRow = isNaN(modifiedRowData) ? modifiedRowData : dataRow;\n    //\n\n    if (this.hot.hasHook('modifyData')) {\n      const valueHolder = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"createObjectPropListener\"])(newValue);\n      this.hot.runHooks('modifyData', physicalRow, this.propToCol(prop), valueHolder, 'set');\n      if (valueHolder.isTouched()) {\n        newValue = valueHolder.value;\n      }\n    }\n    const {\n      dataDotNotation\n    } = this.hot.getSettings();\n\n    // try to set value under property `prop` (includes dot)\n    if (dataRow && dataRow.hasOwnProperty && Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"hasOwnProperty\"])(dataRow, prop)) {\n      dataRow[prop] = newValue;\n    } else if (dataDotNotation && typeof prop === 'string' && prop.indexOf('.') > -1) {\n      let out = dataRow;\n      let i = 0;\n      let ilen;\n      const sliced = prop.split('.');\n      for (i = 0, ilen = sliced.length - 1; i < ilen; i++) {\n        if (typeof out[sliced[i]] === 'undefined') {\n          out[sliced[i]] = {};\n        }\n        out = out[sliced[i]];\n      }\n      out[sliced[i]] = newValue;\n    } else if (typeof prop === 'function') {\n      prop(this.dataSource.slice(physicalRow, physicalRow + 1)[0], newValue);\n    } else {\n      dataRow[prop] = newValue;\n    }\n  }\n\n  /**\n   * This ridiculous piece of code maps rows Id that are present in table data to those displayed for user.\n   * The trick is, the physical row id (stored in settings.data) is not necessary the same\n   * as the visual (displayed) row id (e.g. When sorting is applied).\n   *\n   * @param {number} index Visual row index.\n   * @param {number} amount An amount of rows to translate.\n   * @returns {number}\n   */\n  visualRowsToPhysical(index, amount) {\n    const totalRows = this.hot.countSourceRows();\n    const logicRows = [];\n    let physicRow = (totalRows + index) % totalRows;\n    let rowsToRemove = amount;\n    let row;\n    while (physicRow < totalRows && rowsToRemove) {\n      row = this.hot.toPhysicalRow(physicRow);\n      logicRows.push(row);\n      rowsToRemove -= 1;\n      physicRow += 1;\n    }\n    return logicRows;\n  }\n\n  /**\n   *\n   * @param {number} index Visual column index.\n   * @param {number} amount An amount of rows to translate.\n   * @returns {Array}\n   */\n  visualColumnsToPhysical(index, amount) {\n    const totalCols = this.hot.countCols();\n    const visualCols = [];\n    let physicalCol = (totalCols + index) % totalCols;\n    let colsToRemove = amount;\n    while (physicalCol < totalCols && colsToRemove) {\n      const col = this.hot.toPhysicalColumn(physicalCol);\n      visualCols.push(col);\n      colsToRemove -= 1;\n      physicalCol += 1;\n    }\n    return visualCols;\n  }\n\n  /**\n   * Clears the data array.\n   */\n  clear() {\n    for (let r = 0; r < this.hot.countSourceRows(); r++) {\n      for (let c = 0; c < this.hot.countCols(); c++) {\n        this.set(r, this.colToProp(c), '');\n      }\n    }\n  }\n\n  /**\n   * Get data length.\n   *\n   * @returns {number}\n   */\n  getLength() {\n    const maxRowsFromSettings = this.tableMeta.maxRows;\n    let maxRows;\n    if (maxRowsFromSettings < 0 || maxRowsFromSettings === 0) {\n      maxRows = 0;\n    } else {\n      maxRows = maxRowsFromSettings || Infinity;\n    }\n    const length = this.hot.rowIndexMapper.getNotTrimmedIndexesLength();\n    return Math.min(length, maxRows);\n  }\n\n  /**\n   * Returns the data array.\n   *\n   * @returns {Array}\n   */\n  getAll() {\n    const start = {\n      row: 0,\n      col: 0\n    };\n    const end = {\n      row: Math.max(this.hot.countRows() - 1, 0),\n      col: Math.max(this.hot.countCols() - 1, 0)\n    };\n    if (start.row - end.row === 0 && !this.hot.countSourceRows()) {\n      return [];\n    }\n    return this.getRange(start, end, DataMap.DESTINATION_RENDERER);\n  }\n\n  /**\n   * Count the number of columns cached in the `colToProp` cache.\n   *\n   * @returns {number} Amount of cached columns.\n   */\n  countCachedColumns() {\n    return this.colToPropCache.length;\n  }\n\n  /**\n   * Returns data range as array.\n   *\n   * @param {object} [start] Start selection position. Visual indexes.\n   * @param {object} [end] End selection position. Visual indexes.\n   * @param {number} destination Destination of datamap.get.\n   * @returns {Array}\n   */\n  getRange(start, end, destination) {\n    const output = [];\n    let r;\n    let c;\n    let row;\n    const maxRows = this.tableMeta.maxRows;\n    const maxCols = this.tableMeta.maxCols;\n    if (maxRows === 0 || maxCols === 0) {\n      return [];\n    }\n    const getFn = destination === DataMap.DESTINATION_CLIPBOARD_GENERATOR ? this.getCopyable : this.get;\n    const rlen = Math.min(Math.max(maxRows - 1, 0), Math.max(start.row, end.row));\n    const clen = Math.min(Math.max(maxCols - 1, 0), Math.max(start.col, end.col));\n    for (r = Math.min(start.row, end.row); r <= rlen; r++) {\n      row = [];\n      // We just store indexes for rows without headers.\n      const physicalRow = r >= 0 ? this.hot.toPhysicalRow(r) : r;\n      for (c = Math.min(start.col, end.col); c <= clen; c++) {\n        if (physicalRow === null) {\n          break;\n        }\n        row.push(getFn.call(this, r, this.colToProp(c)));\n      }\n      if (physicalRow !== null) {\n        output.push(row);\n      }\n    }\n    return output;\n  }\n\n  /**\n   * Return data as text (tab separated columns).\n   *\n   * @param {object} [start] Start selection position. Visual indexes.\n   * @param {object} [end] End selection position. Visual indexes.\n   * @returns {string}\n   */\n  getText(start, end) {\n    return Object(_3rdparty_SheetClip_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"stringify\"])(this.getRange(start, end, DataMap.DESTINATION_RENDERER));\n  }\n\n  /**\n   * Return data as copyable text (tab separated columns intended for clipboard copy to an external application).\n   *\n   * @param {object} [start] Start selection position. Visual indexes.\n   * @param {object} [end] End selection position. Visual indexes.\n   * @returns {string}\n   */\n  getCopyableText(start, end) {\n    return Object(_3rdparty_SheetClip_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"stringify\"])(this.getRange(start, end, DataMap.DESTINATION_CLIPBOARD_GENERATOR));\n  }\n\n  /**\n   * Destroy instance.\n   */\n  destroy() {\n    this.hot = null;\n    this.metaManager = null;\n    this.dataSource = null;\n    this.duckSchema = null;\n    this.colToPropCache.length = 0;\n    this.propToColCache.clear();\n    this.propToColCache = undefined;\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (DataMap);\n\n//# sourceURL=webpack:///./node_modules/handsontable/dataMap/dataMap.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/dataMap/dataSource.mjs":
/*!**********************************************************!*\
  !*** ./node_modules/handsontable/dataMap/dataSource.mjs ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_data_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/data.mjs */ \"./node_modules/handsontable/helpers/data.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n/**\n * @class DataSource\n * @private\n */\nclass DataSource {\n  constructor(hotInstance) {\n    let dataSource = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    /**\n     * Instance of Handsontable.\n     *\n     * @type {Handsontable}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * Data source.\n     *\n     * @type {Array}\n     */\n    _defineProperty(this, \"data\", void 0);\n    /**\n     * Type of data source.\n     *\n     * @type {string}\n     * @default 'array'\n     */\n    _defineProperty(this, \"dataType\", 'array');\n    _defineProperty(this, \"colToProp\", () => {});\n    _defineProperty(this, \"propToCol\", () => {});\n    this.hot = hotInstance;\n    this.data = dataSource;\n  }\n\n  /**\n   * Run the `modifyRowData` hook and return either the modified or the source data for the provided row.\n   *\n   * @private\n   * @param {number} rowIndex Row index.\n   * @returns {Array|object} Source or modified row of data.\n   */\n  modifyRowData(rowIndex) {\n    let modifyRowData;\n    if (this.hot.hasHook('modifyRowData')) {\n      modifyRowData = this.hot.runHooks('modifyRowData', rowIndex);\n    }\n    return modifyRowData !== undefined && !Number.isInteger(modifyRowData) ? modifyRowData : this.data[rowIndex];\n  }\n\n  /**\n   * Get all data.\n   *\n   * @param {boolean} [toArray=false] If `true` return source data as an array of arrays even when source data was provided\n   *                                  in another format.\n   * @returns {Array}\n   */\n  getData() {\n    let toArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    if (!this.data || this.data.length === 0) {\n      return this.data;\n    }\n    return this.getByRange(null, null, toArray);\n  }\n\n  /**\n   * Set new data source.\n   *\n   * @param {Array} data The new data.\n   */\n  setData(data) {\n    this.data = data;\n  }\n\n  /**\n   * Returns array of column values from the data source. `column` is the index of the row in the data source.\n   *\n   * @param {number} column Visual column index.\n   * @returns {Array}\n   */\n  getAtColumn(column) {\n    const result = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(this.data, (row, rowIndex) => {\n      const value = this.getAtCell(rowIndex, column);\n      result.push(value);\n    });\n    return result;\n  }\n\n  /**\n   * Returns a single row of the data or a subset of its columns. If a column range or `toArray` arguments are provided, it\n   * operates only on the columns declared by the `columns` setting or the data schema.\n   *\n   * @param {number} row Physical row index.\n   * @param {number} [startColumn] Starting index for the column range (optional).\n   * @param {number} [endColumn] Ending index for the column range (optional).\n   * @param {boolean} [toArray=false] `true` if the returned value should be forced to be presented as an array.\n   * @returns {Array|object}\n   */\n  getAtRow(row, startColumn, endColumn) {\n    let toArray = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n    const getAllProps = startColumn === undefined && endColumn === undefined;\n    const {\n      dataDotNotation\n    } = this.hot.getSettings();\n    let dataRow = null;\n    let newDataRow = null;\n    dataRow = this.modifyRowData(row);\n    if (Array.isArray(dataRow)) {\n      newDataRow = [];\n      if (getAllProps) {\n        dataRow.forEach((cell, column) => {\n          newDataRow[column] = this.getAtPhysicalCell(row, column, dataRow);\n        });\n      } else {\n        // Only the columns from the provided range\n        Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_5__[\"rangeEach\"])(startColumn, endColumn, column => {\n          newDataRow[column - startColumn] = this.getAtPhysicalCell(row, column, dataRow);\n        });\n      }\n    } else if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isObject\"])(dataRow) || Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_6__[\"isFunction\"])(dataRow)) {\n      if (toArray) {\n        newDataRow = [];\n      } else {\n        newDataRow = {};\n      }\n      if (!getAllProps || toArray) {\n        const rangeStart = 0;\n        const rangeEnd = this.countFirstRowKeys() - 1;\n        Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_5__[\"rangeEach\"])(rangeStart, rangeEnd, column => {\n          const prop = this.colToProp(column);\n          if (column >= (startColumn || rangeStart) && column <= (endColumn || rangeEnd) && !Number.isInteger(prop)) {\n            const cellValue = this.getAtPhysicalCell(row, prop, dataRow);\n            if (toArray) {\n              newDataRow.push(cellValue);\n            } else if (dataDotNotation) {\n              Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setProperty\"])(newDataRow, prop, cellValue);\n            } else {\n              newDataRow[prop] = cellValue;\n            }\n          }\n        });\n      } else {\n        Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"objectEach\"])(dataRow, (value, prop) => {\n          const cellValue = this.getAtPhysicalCell(row, prop, dataRow);\n          if (dataDotNotation) {\n            Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setProperty\"])(newDataRow, prop, cellValue);\n          } else {\n            newDataRow[prop] = cellValue;\n          }\n        });\n      }\n    }\n    return newDataRow;\n  }\n\n  /**\n   * Set the provided value in the source data set at the provided coordinates.\n   *\n   * @param {number} row Physical row index.\n   * @param {number|string} column Property name / physical column index.\n   * @param {*} value The value to be set at the provided coordinates.\n   */\n  setAtCell(row, column, value) {\n    if (row >= this.countRows() || column >= this.countFirstRowKeys()) {\n      // Not enough rows and/or columns.\n      return;\n    }\n    if (this.hot.hasHook('modifySourceData')) {\n      const valueHolder = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"createObjectPropListener\"])(value);\n      this.hot.runHooks('modifySourceData', row, column, valueHolder, 'set');\n      if (valueHolder.isTouched()) {\n        value = valueHolder.value;\n      }\n    }\n    if (!Number.isInteger(column)) {\n      // column argument is the prop name\n      Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setProperty\"])(this.data[row], column, value);\n    } else {\n      this.data[row][column] = value;\n    }\n  }\n\n  /**\n   * Get data from the source data set using the physical indexes.\n   *\n   * @private\n   * @param {number} row Physical row index.\n   * @param {string|number|Function} column Physical column index / property / function.\n   * @param {Array|object} dataRow A representation of a data row.\n   * @returns {*} Value at the provided coordinates.\n   */\n  getAtPhysicalCell(row, column, dataRow) {\n    let result = null;\n    if (dataRow) {\n      if (typeof column === 'string') {\n        const {\n          dataDotNotation\n        } = this.hot.getSettings();\n        result = dataDotNotation ? Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getProperty\"])(dataRow, column) : dataRow[column];\n      } else if (typeof column === 'function') {\n        result = column(dataRow);\n      } else {\n        result = dataRow[column];\n      }\n    }\n    if (this.hot.hasHook('modifySourceData')) {\n      const valueHolder = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"createObjectPropListener\"])(result);\n      this.hot.runHooks('modifySourceData', row, column, valueHolder, 'get');\n      if (valueHolder.isTouched()) {\n        result = valueHolder.value;\n      }\n    }\n    return result;\n  }\n\n  /**\n   * Returns a single value from the data.\n   *\n   * @param {number} row Physical row index.\n   * @param {number} columnOrProp Visual column index or property.\n   * @returns {*}\n   */\n  getAtCell(row, columnOrProp) {\n    const dataRow = this.modifyRowData(row);\n    return this.getAtPhysicalCell(row, this.colToProp(columnOrProp), dataRow);\n  }\n\n  /**\n   * Returns source data by passed range.\n   *\n   * @param {object} [start] Object with physical `row` and `col` keys (or visual column index, if data type is an array of objects).\n   * @param {object} [end] Object with physical `row` and `col` keys (or visual column index, if data type is an array of objects).\n   * @param {boolean} [toArray=false] If `true` return source data as an array of arrays even when source data was provided\n   *                                  in another format.\n   * @returns {Array}\n   */\n  getByRange() {\n    let start = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    let end = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    let toArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    let getAllProps = false;\n    let startRow = null;\n    let startCol = null;\n    let endRow = null;\n    let endCol = null;\n    if (start === null || end === null) {\n      getAllProps = true;\n      startRow = 0;\n      endRow = this.countRows() - 1;\n    } else {\n      startRow = Math.min(start.row, end.row);\n      startCol = Math.min(start.col, end.col);\n      endRow = Math.max(start.row, end.row);\n      endCol = Math.max(start.col, end.col);\n    }\n    const result = [];\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_5__[\"rangeEach\"])(startRow, endRow, currentRow => {\n      result.push(getAllProps ? this.getAtRow(currentRow, undefined, undefined, toArray) : this.getAtRow(currentRow, startCol, endCol, toArray));\n    });\n    return result;\n  }\n\n  /**\n   * Count number of rows.\n   *\n   * @returns {number}\n   */\n  countRows() {\n    if (this.hot.hasHook('modifySourceLength')) {\n      const modifiedSourceLength = this.hot.runHooks('modifySourceLength');\n      if (Number.isInteger(modifiedSourceLength)) {\n        return modifiedSourceLength;\n      }\n    }\n    return this.data.length;\n  }\n\n  /**\n   * Count number of columns.\n   *\n   * @returns {number}\n   */\n  countFirstRowKeys() {\n    return Object(_helpers_data_mjs__WEBPACK_IMPORTED_MODULE_3__[\"countFirstRowKeys\"])(this.data);\n  }\n\n  /**\n   * Destroy instance.\n   */\n  destroy() {\n    this.data = null;\n    this.hot = null;\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (DataSource);\n\n//# sourceURL=webpack:///./node_modules/handsontable/dataMap/dataSource.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/dataMap/index.mjs":
/*!*****************************************************!*\
  !*** ./node_modules/handsontable/dataMap/index.mjs ***!
  \*****************************************************/
/*! exports provided: DataMap, MetaManager, DynamicCellMetaMod, ExtendMetaPropertiesMod, metaSchemaFactory, replaceData */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dataMap_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dataMap.mjs */ \"./node_modules/handsontable/dataMap/dataMap.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DataMap\", function() { return _dataMap_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _metaManager_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./metaManager/index.mjs */ \"./node_modules/handsontable/dataMap/metaManager/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MetaManager\", function() { return _metaManager_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _metaManager_metaSchema_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./metaManager/metaSchema.mjs */ \"./node_modules/handsontable/dataMap/metaManager/metaSchema.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"metaSchemaFactory\", function() { return _metaManager_metaSchema_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _replaceData_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./replaceData.mjs */ \"./node_modules/handsontable/dataMap/replaceData.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"replaceData\", function() { return _replaceData_mjs__WEBPACK_IMPORTED_MODULE_3__[\"replaceData\"]; });\n\n/* harmony import */ var _metaManager_mods_dynamicCellMeta_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./metaManager/mods/dynamicCellMeta.mjs */ \"./node_modules/handsontable/dataMap/metaManager/mods/dynamicCellMeta.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DynamicCellMetaMod\", function() { return _metaManager_mods_dynamicCellMeta_mjs__WEBPACK_IMPORTED_MODULE_4__[\"DynamicCellMetaMod\"]; });\n\n/* harmony import */ var _metaManager_mods_extendMetaProperties_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./metaManager/mods/extendMetaProperties.mjs */ \"./node_modules/handsontable/dataMap/metaManager/mods/extendMetaProperties.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ExtendMetaPropertiesMod\", function() { return _metaManager_mods_extendMetaProperties_mjs__WEBPACK_IMPORTED_MODULE_5__[\"ExtendMetaPropertiesMod\"]; });\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/dataMap/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/dataMap/metaManager/index.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/dataMap/metaManager/index.mjs ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MetaManager; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _metaLayers_globalMeta_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./metaLayers/globalMeta.mjs */ \"./node_modules/handsontable/dataMap/metaManager/metaLayers/globalMeta.mjs\");\n/* harmony import */ var _metaLayers_tableMeta_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./metaLayers/tableMeta.mjs */ \"./node_modules/handsontable/dataMap/metaManager/metaLayers/tableMeta.mjs\");\n/* harmony import */ var _metaLayers_columnMeta_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./metaLayers/columnMeta.mjs */ \"./node_modules/handsontable/dataMap/metaManager/metaLayers/columnMeta.mjs\");\n/* harmony import */ var _metaLayers_cellMeta_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./metaLayers/cellMeta.mjs */ \"./node_modules/handsontable/dataMap/metaManager/metaLayers/cellMeta.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n\n\n\n\n\n\n\n/**\n * With the Meta Manager class, it can be possible to manage with meta objects for different layers in\n * one place. All coordinates used to fetch, updating, removing, or creating rows or columns have to\n * be passed as physical values.\n *\n * The diagram of the meta layers:\n * +-------------+.\n * │ GlobalMeta  │\n * │ (prototype) │\n * +-------------+\\\n *       │         \\\n *       │          \\\n *      \\│/         _\\|\n * +-------------+    +-------------+.\n * │ TableMeta   │    │ ColumnMeta  │\n * │ (instance)  │    │ (prototype) │\n * +-------------+    +-------------+.\n *                         │\n *                         │\n *                        \\│/\n *                    +-------------+.\n *                    │  CellMeta   │\n *                    │ (instance)  │\n *                    +-------------+.\n *\n * A more detailed description of the specific layers can be found in the \"metaLayers/\" modules description.\n */\nclass MetaManager {\n  constructor(hot) {\n    let customSettings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    let metaMods = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n    /**\n     * @type {Handsontable}\n     */\n    this.hot = hot;\n    /**\n     * @type {GlobalMeta}\n     */\n    this.globalMeta = new _metaLayers_globalMeta_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"](hot);\n    /**\n     * @type {TableMeta}\n     */\n    this.tableMeta = new _metaLayers_tableMeta_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"](this.globalMeta);\n    /**\n     * @type {ColumnMeta}\n     */\n    this.columnMeta = new _metaLayers_columnMeta_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this.globalMeta);\n    /**\n     * @type {CellMeta}\n     */\n    this.cellMeta = new _metaLayers_cellMeta_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"](this.columnMeta);\n    metaMods.forEach(ModifierClass => new ModifierClass(this));\n    this.globalMeta.updateMeta(customSettings);\n  }\n\n  /**\n   * Gets the global meta object that is a root of all default settings, which are recognizable by Handsontable.\n   * Other layers inherites all properties from this. Adding, removing, or changing property in that\n   * object has a direct reflection to all layers.\n   *\n   * @returns {object}\n   */\n  getGlobalMeta() {\n    return this.globalMeta.getMeta();\n  }\n\n  /**\n   * Updates global settings object by merging settings with the current state.\n   *\n   * @param {object} settings An object to merge with.\n   */\n  updateGlobalMeta(settings) {\n    this.globalMeta.updateMeta(settings);\n  }\n\n  /**\n   * Gets settings object that was passed in the Handsontable constructor. That layer contains all\n   * default settings inherited from the GlobalMeta layer merged with settings passed by the developer.\n   * Adding, removing, or changing property in that object has no direct reflection on any other layers.\n   *\n   * @returns {TableMeta}\n   */\n  getTableMeta() {\n    return this.tableMeta.getMeta();\n  }\n\n  /**\n   * Updates table settings object by merging settings with the current state.\n   *\n   * @param {object} settings An object to merge with.\n   */\n  updateTableMeta(settings) {\n    this.tableMeta.updateMeta(settings);\n  }\n\n  /**\n   * Gets column meta object that is a root of all settings defined in the column property of the Handsontable\n   * settings. Each column in the Handsontable is associated with a unique meta object which identified by\n   * the physical column index. Adding, removing, or changing property in that object has a direct reflection\n   * only for the CellMeta layer. The reflection will be visible only if the property doesn't exist in the lower\n   * layers (prototype lookup).\n   *\n   * @param {number} physicalColumn The physical column index.\n   * @returns {object}\n   */\n  getColumnMeta(physicalColumn) {\n    return this.columnMeta.getMeta(physicalColumn);\n  }\n\n  /**\n   * Updates column meta object by merging settings with the current state.\n   *\n   * @param {number} physicalColumn The physical column index which points what column meta object is updated.\n   * @param {object} settings An object to merge with.\n   */\n  updateColumnMeta(physicalColumn, settings) {\n    this.columnMeta.updateMeta(physicalColumn, settings);\n  }\n\n  /**\n   * Gets the cell meta object that is a root of all settings defined for the specific cell rendered by\n   * the Handsontable. Each cell meta inherits settings from higher layers. When a property doesn't\n   * exist in that layer, it is looked up through a prototype to the highest layer. Starting\n   * from CellMeta -> ColumnMeta and ending to GlobalMeta, which stores default settings. Adding,\n   * removing, or changing property in that object has no direct reflection on any other layers.\n   *\n   * @param {number} physicalRow The physical row index.\n   * @param {number} physicalColumn The physical column index.\n   * @param {object} options Additional options that are used to extend the cell meta object.\n   * @param {number} options.visualRow The visual row index of the currently requested cell meta object.\n   * @param {number} options.visualColumn The visual column index of the currently requested cell meta object.\n   * @returns {object}\n   */\n  getCellMeta(physicalRow, physicalColumn, _ref) {\n    let {\n      visualRow,\n      visualColumn\n    } = _ref;\n    const cellMeta = this.cellMeta.getMeta(physicalRow, physicalColumn);\n    cellMeta.visualRow = visualRow;\n    cellMeta.visualCol = visualColumn;\n    cellMeta.row = physicalRow;\n    cellMeta.col = physicalColumn;\n    this.runLocalHooks('afterGetCellMeta', cellMeta);\n    return cellMeta;\n  }\n\n  /**\n   * Gets a value (defined by the `key` property) from the cell meta object.\n   *\n   * @param {number} physicalRow The physical row index.\n   * @param {number} physicalColumn The physical column index.\n   * @param {string} key Defines the value that will be returned from the cell meta object.\n   * @returns {*}\n   */\n  getCellMetaKeyValue(physicalRow, physicalColumn, key) {\n    if (typeof key !== 'string') {\n      throw new Error('The passed cell meta object key is not a string');\n    }\n    return this.cellMeta.getMeta(physicalRow, physicalColumn, key);\n  }\n\n  /**\n   * Sets settings object for cell meta object defined by \"key\" property.\n   *\n   * @param {number} physicalRow The physical row index.\n   * @param {number} physicalColumn The physical column index.\n   * @param {string} key The property name to set.\n   * @param {*} value Value to save.\n   */\n  setCellMeta(physicalRow, physicalColumn, key, value) {\n    this.cellMeta.setMeta(physicalRow, physicalColumn, key, value);\n  }\n\n  /**\n   * Updates cell meta object by merging settings with the current state.\n   *\n   * @param {number} physicalRow The physical row index which points what cell meta object is updated.\n   * @param {number} physicalColumn The physical column index which points what cell meta object is updated.\n   * @param {object} settings An object to merge with.\n   */\n  updateCellMeta(physicalRow, physicalColumn, settings) {\n    this.cellMeta.updateMeta(physicalRow, physicalColumn, settings);\n  }\n\n  /**\n   * Removes a property defined by the \"key\" argument from the cell meta object.\n   *\n   * @param {number} physicalRow The physical row index.\n   * @param {number} physicalColumn The physical column index.\n   * @param {string} key The property name to remove.\n   */\n  removeCellMeta(physicalRow, physicalColumn, key) {\n    this.cellMeta.removeMeta(physicalRow, physicalColumn, key);\n  }\n\n  /**\n   * Returns all cell meta objects that were created during the Handsontable operation. As cell meta\n   * objects are created lazy, the length of the returned collection depends on how and when the\n   * table has asked for access to that meta objects.\n   *\n   * @returns {object[]}\n   */\n  getCellsMeta() {\n    return this.cellMeta.getMetas();\n  }\n\n  /**\n   * Returns all cell meta objects that were created during the Handsontable operation but for\n   * specific row index.\n   *\n   * @param {number} physicalRow The physical row index.\n   * @returns {object[]}\n   */\n  getCellsMetaAtRow(physicalRow) {\n    return this.cellMeta.getMetasAtRow(physicalRow);\n  }\n\n  /**\n   * Creates one or more rows at specific position.\n   *\n   * @param {number} physicalRow The physical row index which points from what position the row is added.\n   * @param {number} [amount=1] An amount of rows to add.\n   */\n  createRow(physicalRow) {\n    let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n    this.cellMeta.createRow(physicalRow, amount);\n  }\n\n  /**\n   * Removes one or more rows from the collection.\n   *\n   * @param {number} physicalRow The physical row index which points from what position the row is removed.\n   * @param {number} [amount=1] An amount rows to remove.\n   */\n  removeRow(physicalRow) {\n    let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n    this.cellMeta.removeRow(physicalRow, amount);\n  }\n\n  /**\n   * Creates one or more columns at specific position.\n   *\n   * @param {number} physicalColumn The physical column index which points from what position the column is added.\n   * @param {number} [amount=1] An amount of columns to add.\n   */\n  createColumn(physicalColumn) {\n    let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n    this.cellMeta.createColumn(physicalColumn, amount);\n    this.columnMeta.createColumn(physicalColumn, amount);\n  }\n\n  /**\n   * Removes one or more columns from the collection.\n   *\n   * @param {number} physicalColumn The physical column index which points from what position the column is removed.\n   * @param {number} [amount=1] An amount of columns to remove.\n   */\n  removeColumn(physicalColumn) {\n    let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n    this.cellMeta.removeColumn(physicalColumn, amount);\n    this.columnMeta.removeColumn(physicalColumn, amount);\n  }\n\n  /**\n   * Clears all saved cell meta objects. It keeps column meta, table meta, and global meta intact.\n   */\n  clearCellsCache() {\n    this.cellMeta.clearCache();\n  }\n\n  /**\n   * Clears all saved cell and columns meta objects.\n   */\n  clearCache() {\n    this.cellMeta.clearCache();\n    this.columnMeta.clearCache();\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_6__[\"mixin\"])(MetaManager, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n\n//# sourceURL=webpack:///./node_modules/handsontable/dataMap/metaManager/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/dataMap/metaManager/lazyFactoryMap.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/dataMap/metaManager/lazyFactoryMap.mjs ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return LazyFactoryMap; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/dataMap/metaManager/utils.mjs\");\n\n\n\n\n\n\n\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * @class LazyFactoryMap\n *\n * The LazyFactoryMap object holds key-value pairs in the structure similar to the\n * regular Map. Once created, items can be moved around a grid depending on the operations\n * performed on that grid - adding or removing rows. The collection requires \"key\"\n * to be a zero-based index.\n *\n * It's essential to notice that the \"key\" index under which the item was created\n * is volatile. After altering the grid, the \"key\" index can change.\n *\n * Having created N items with corresponding example data where the data has 10\n * holes (`undefined` values) within (that's why internal storage index counts from 10).\n * +------+------+------+------+------+.\n * | 0/10 | 1/11 | 2/12 | 3/13 | 4/14 |  Keys (volatile zero-based index / internal storage index)\n * +------+------+------+------+------+.\n *    │      │      │      │      │\n * +------+------+------+------+------+.\n * | AAA  | BBB  | CCC  | DDD  | EEE  |  Data\n * +------+------+------+------+------+.\n *\n * Map.obtain(0) // returns \"AAA\"\n * map.obtain(2) // returns \"CCC\".\n *\n * After inserting 2 new rows, keys that hold the data positioned after the place\n * where the new rows are added are upshifted by 2.\n *               │\n *               │ Insert 2 rows\n *              \\│/\n * +------+------+------+------+------+.\n * | 0/10 | 1/11 | 2/12 | 3/13 | 4/14 |  Keys before\n * +------+------+------+------+------+.\n *\n *                / 2 new rows \\\n * +------+------+------+------+------+------+------+.\n * | 0/10 | 1/11 | 2/15 | 3/16 | 4/12 | 5/13 | 6/14 |  Keys after\n * +------+------+------+------+------+------+------+.\n *    │       │      │      │      │      │     │\n *    │       │      └──────┼──────┼──────┼┐    │\n *    │       │             └──────┼──────┼┼────┼┐\n *    │       │      ┌─────────────┘      ││    ││\n *    │       │      │      ┌─────────────┘│    ││\n *    │       │      │      │      ┌───────┼────┘│\n *    │       │      │      │      │       │     │\n * +------+------+------+------+------+------+------+.\n * | AAA  | BBB  | CCC  | DDD  | EEE  | FFF  | GGG  |  Data\n * +------+------+------+------+------+------+------+\n *\n * Now at index 2 and 3 we have access to new items.\n *\n * map.obtain(2) // returns new value \"FFF\" for newly created row.\n * map.obtain(4) // index shifted by 2 has access to the old \"CCC\" value, as before inserting.\n *\n * after removing 4 rows, keys that hold the data positioned after the place where the\n * rows are removed are downshifted by 4.\n *        │\n *        │ Remove 4 rows\n *        ├───────────────────────────┐\n *       \\│/                          │\n * +------+------+------+------+------+------+------+\n * | 0/10 | 1/11 | 2/15 | 3/16 | 4/12 | 5/13 | 6/14 |  Keys after\n * +------+------+------+------+------+------+------+\n *    │       │      │      │      │      │     │\n *    │       │      └──────┼──────┼──────┼┐    │\n *    │       │             └──────┼──────┼┼────┼┐\n *    │       │      ┌─────────────┘      ││    ││\n *    │       │      │      ┌─────────────┘│    ││\n *    │       │      │      │      ┌───────┼────┘│\n *    │       │      │      │      │       │     │\n * +------+------+------+------+------+------+------+\n * | AAA  | BBB  | CCC  | DDD  | EEE  | FFF  | GGG  |  Data\n * +------+------+------+------+------+------+------+\n *\n * +------+------+------+\n * | 0/10 | 1/13 | 2/14 |  Keys after\n * +------+------+------+\n *    │       │      │\n *    │       │      └─────────────┐\n *    │       └────────────┐       │\n *    │                    │       │\n *    │                    │       │\n *    │                    │       │\n *    │                    │       │\n * +------+------+------+------+------+------+------+\n * | AAA  | BBB  | CCC  | DDD  | EEE  | FFF  | GGG  |  Data\n * +------+------+------+------+------+------+------+\n *           /│\\   /│\\                   /│\\   /│\\\n *            └──┬──┘                     └──┬──┘\n *           This data is marked as \"hole\" which\n *           means that can be replaced by new item\n *           when that will be created.\n *\n * map.obtain(2) // returns the value (\"EEE\") as it should. Access to the value is\n *               // changed (the key was downshifted). However, the internal index has not changed,\n *               // which means that the data does not need to be changed (spliced) too.\n *\n * After previous remove operation which creates some \"holes\" obtaining new\n * items replaces that \"holes\" as follows:\n *\n * // Obtains new item\n * map.obtain(90) // Returns \"NEW\" value\n *\n * +------+------+------+...+------+\n * | 0/10 | 1/13 | 2/14 |   | 90/0 |  Keys after\n * +------+------+------+...+------+\n *    │       │      │          │\n *    │       │      └──────────┼────────────┐\n *    │       └─────────────────┼─────┐      │\n *    └──────────┐              │     │      │\n *               │              │     │      │\n *    ┌──────────┼──────────────┘     │      │\n *    │          │                    │      │\n * +------+...+------+------+------+------+------+-----+\n * | NEW  |   | AAA  | BBB  | CCC  | DDD  | EEE  | FFF |  Data\n * +------+...+------+------+------+------+------+-----+\n *   /│\\\n *    │\n * The first \"hole\" (at index 0) item is permanently removed and replaced by a new item.\n * The hole index is taken from the hole collection which act as FIFO (First In First Out).\n */\n/* eslint-enable jsdoc/require-description-complete-sentence */\nclass LazyFactoryMap {\n  constructor(valueFactory) {\n    /**\n     * The data factory function.\n     *\n     * @type {Function}\n     */\n    _defineProperty(this, \"valueFactory\", void 0);\n    /**\n     * An array which contains data.\n     *\n     * @type {Array}\n     */\n    _defineProperty(this, \"data\", []);\n    /**\n     * An array of indexes where the key of the array is mapped to the value which points to the\n     * specific position of the data array.\n     *\n     * @type {number[]}\n     */\n    _defineProperty(this, \"index\", []);\n    /**\n     * The collection of indexes that points to the data items which can be replaced by obtaining new\n     * ones. The \"holes\" are an intended effect of deleting entries.\n     *\n     * The idea of \"holes\" generally allows us to not modify the \"data\" structure while removing\n     * items from the collection.\n     *\n     * @type {Set<number>}\n     */\n    _defineProperty(this, \"holes\", new Set());\n    this.valueFactory = valueFactory;\n  }\n\n  /**\n   * Gets or if data not exist creates and returns new data.\n   *\n   * @param {number} key The item key as zero-based index.\n   * @returns {*}\n   */\n  obtain(key) {\n    Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_10__[\"assert\"])(() => Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_10__[\"isUnsignedNumber\"])(key), 'Expecting an unsigned number.');\n    const dataIndex = this._getStorageIndexByKey(key);\n    let result;\n    if (dataIndex >= 0) {\n      result = this.data[dataIndex];\n      if (result === undefined) {\n        result = this.valueFactory(key);\n        this.data[dataIndex] = result;\n      }\n    } else {\n      result = this.valueFactory(key);\n      if (this.holes.size > 0) {\n        const reuseIndex = this.holes.values().next().value; // Gets first item from the collection\n\n        this.holes.delete(reuseIndex);\n        this.data[reuseIndex] = result;\n        this.index[key] = reuseIndex;\n      } else {\n        this.data.push(result);\n        this.index[key] = this.data.length - 1;\n      }\n    }\n    return result;\n  }\n\n  /**\n   * Inserts an empty data to the map. This method creates an empty space for obtaining\n   * new data.\n   *\n   * @param {number} key The key as volatile zero-based index at which to begin inserting space for new data.\n   * @param {number} [amount=1] Ammount of data to insert.\n   */\n  insert(key) {\n    let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n    Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_10__[\"assert\"])(() => Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_10__[\"isUnsignedNumber\"])(key) || Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_10__[\"isNullish\"])(key), 'Expecting an unsigned number or null/undefined argument.');\n    const newIndexes = [];\n    const dataLength = this.data.length;\n    for (let i = 0; i < amount; i++) {\n      newIndexes.push(dataLength + i);\n      this.data.push(undefined);\n    }\n    const insertionIndex = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_10__[\"isNullish\"])(key) ? this.index.length : key;\n    this.index = [...this.index.slice(0, insertionIndex), ...newIndexes, ...this.index.slice(insertionIndex)];\n  }\n\n  /**\n   * Removes (soft remove) data from \"index\" and according to the amount of data.\n   *\n   * @param {number} key The key as volatile zero-based index at which to begin removing the data.\n   * @param {number} [amount=1] Ammount data to remove.\n   */\n  remove(key) {\n    let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n    Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_10__[\"assert\"])(() => Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_10__[\"isUnsignedNumber\"])(key) || Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_10__[\"isNullish\"])(key), 'Expecting an unsigned number or null/undefined argument.');\n    const removed = this.index.splice(Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_10__[\"isNullish\"])(key) ? this.index.length - amount : key, amount);\n    for (let i = 0; i < removed.length; i++) {\n      const removedIndex = removed[i];\n      if (typeof removedIndex === 'number') {\n        this.holes.add(removedIndex);\n      }\n    }\n  }\n\n  /**\n   * Returns the size of the data which this map holds.\n   *\n   * @returns {number}\n   */\n  size() {\n    return this.data.length - this.holes.size;\n  }\n\n  /**\n   * Returns a new Iterator object that contains the values for each item in the LazyMap object.\n   *\n   * @returns {Iterator}\n   */\n  values() {\n    return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_9__[\"arrayFilter\"])(this.data, (_, index) => !this.holes.has(index))[Symbol.iterator]();\n  }\n\n  /**\n   * Returns a new Iterator object that contains an array of `[index, value]` for each item in the LazyMap object.\n   *\n   * @returns {Iterator}\n   */\n  entries() {\n    const validEntries = [];\n    for (let i = 0; i < this.data.length; i++) {\n      const keyIndex = this._getKeyByStorageIndex(i);\n      if (keyIndex !== -1) {\n        validEntries.push([keyIndex, this.data[i]]);\n      }\n    }\n    let dataIndex = 0;\n    return {\n      next: () => {\n        if (dataIndex < validEntries.length) {\n          const value = validEntries[dataIndex];\n          dataIndex += 1;\n          return {\n            value,\n            done: false\n          };\n        }\n        return {\n          done: true\n        };\n      }\n    };\n  }\n\n  /**\n   * Clears the map.\n   */\n  clear() {\n    this.data = [];\n    this.index = [];\n    this.holes.clear();\n  }\n\n  /**\n   * Gets storage index calculated from the key associated with the specified value.\n   *\n   * @param {number} key Volatile zero-based index.\n   * @returns {number} Returns index 0-N or -1 if no storage index found.\n   */\n  _getStorageIndexByKey(key) {\n    return this.index.length > key ? this.index[key] : -1;\n  }\n\n  /**\n   * Gets the key associated with the specified value calculated from storage index.\n   *\n   * @param {number} dataIndex Zero-based storage index.\n   * @returns {number} Returns index 0-N or -1 if no key found.\n   */\n  _getKeyByStorageIndex(dataIndex) {\n    return this.index.indexOf(dataIndex);\n  }\n\n  /**\n   * Makes this object iterable.\n   *\n   * @returns {Iterator}\n   */\n  [Symbol.iterator]() {\n    return this.entries();\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/dataMap/metaManager/lazyFactoryMap.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/dataMap/metaManager/metaLayers/cellMeta.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/dataMap/metaManager/metaLayers/cellMeta.mjs ***!
  \*******************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CellMeta; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/dataMap/metaManager/utils.mjs\");\n/* harmony import */ var _lazyFactoryMap_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../lazyFactoryMap.mjs */ \"./node_modules/handsontable/dataMap/metaManager/lazyFactoryMap.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * @class CellMeta\n *\n * The cell meta object is a root of all settings defined for the specific cell rendered by the\n * Handsontable. Each cell meta inherits settings from higher layers. When a property doesn't\n * exist in that layer, it is looked up through a prototype to the highest layer. Starting\n * from CellMeta -> ColumnMeta and ending to GlobalMeta, which stores default settings. Adding,\n * removing, or changing property in that object has no direct reflection on any other layers.\n *\n * +-------------+\n * │ GlobalMeta  │\n * │ (prototype) │\n * +-------------+\\\n *       │         \\\n *       │          \\\n *      \\│/         _\\|\n * +-------------+    +-------------+\n * │ TableMeta   │    │ ColumnMeta  │\n * │ (instance)  │    │ (prototype) │\n * +-------------+    +-------------+\n *                         │\n *                         │\n *                        \\│/\n *                    +-------------+\n *                    │  CellMeta   │\n *                    │ (instance)  │\n *                    +-------------+\n */\n/* eslint-enable jsdoc/require-description-complete-sentence */\nclass CellMeta {\n  constructor(columnMeta) {\n    /**\n     * Reference to the ColumnMeta layer. While creating new cell meta objects, all new objects\n     * inherit properties from the ColumnMeta layer.\n     *\n     * @type {ColumnMeta}\n     */\n    _defineProperty(this, \"columnMeta\", void 0);\n    /**\n     * Holder for cell meta objects, organized as a grid of LazyFactoryMap of LazyFactoryMaps.\n     * The access to the cell meta object is done through access to the row defined by the physical\n     * row index and then by accessing the second LazyFactory Map under the physical column index.\n     *\n     * @type {LazyFactoryMap<number, LazyFactoryMap<number, object>>}\n     */\n    _defineProperty(this, \"metas\", new _lazyFactoryMap_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"](() => this._createRow()));\n    this.columnMeta = columnMeta;\n  }\n\n  /**\n   * Updates cell meta object by merging settings with the current state.\n   *\n   * @param {number} physicalRow The physical row index which points what cell meta object is updated.\n   * @param {number} physicalColumn The physical column index which points what cell meta object is updated.\n   * @param {object} settings An object to merge with.\n   */\n  updateMeta(physicalRow, physicalColumn, settings) {\n    const meta = this.getMeta(physicalRow, physicalColumn);\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"extend\"])(meta, settings);\n    Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_3__[\"extendByMetaType\"])(meta, settings);\n  }\n\n  /**\n   * Creates one or more rows at specific position.\n   *\n   * @param {number} physicalRow The physical row index which points from what position the row is added.\n   * @param {number} amount An amount of rows to add.\n   */\n  createRow(physicalRow, amount) {\n    this.metas.insert(physicalRow, amount);\n  }\n\n  /**\n   * Creates one or more columns at specific position.\n   *\n   * @param {number} physicalColumn The physical column index which points from what position the column is added.\n   * @param {number} amount An amount of columns to add.\n   */\n  createColumn(physicalColumn, amount) {\n    for (let i = 0; i < this.metas.size(); i++) {\n      this.metas.obtain(i).insert(physicalColumn, amount);\n    }\n  }\n\n  /**\n   * Removes one or more rows from the collection.\n   *\n   * @param {number} physicalRow The physical row index which points from what position the row is removed.\n   * @param {number} amount An amount of rows to remove.\n   */\n  removeRow(physicalRow, amount) {\n    this.metas.remove(physicalRow, amount);\n  }\n\n  /**\n   * Removes one or more columns from the collection.\n   *\n   * @param {number} physicalColumn The physical column index which points from what position the column is removed.\n   * @param {number} amount An amount of columns to remove.\n   */\n  removeColumn(physicalColumn, amount) {\n    for (let i = 0; i < this.metas.size(); i++) {\n      this.metas.obtain(i).remove(physicalColumn, amount);\n    }\n  }\n\n  /**\n   * Gets settings object for this layer.\n   *\n   * @param {number} physicalRow The physical row index.\n   * @param {number} physicalColumn The physical column index.\n   * @param {string} [key] If the key exists its value will be returned, otherwise the whole cell meta object.\n   * @returns {object}\n   */\n  getMeta(physicalRow, physicalColumn, key) {\n    const cellMeta = this.metas.obtain(physicalRow).obtain(physicalColumn);\n    if (key === undefined) {\n      return cellMeta;\n    }\n    return cellMeta[key];\n  }\n\n  /**\n   * Sets settings object for this layer defined by \"key\" property.\n   *\n   * @param {number} physicalRow The physical row index.\n   * @param {number} physicalColumn The physical column index.\n   * @param {string} key The property name to set.\n   * @param {*} value Value to save.\n   */\n  setMeta(physicalRow, physicalColumn, key, value) {\n    var _cellMeta$_automatica;\n    const cellMeta = this.metas.obtain(physicalRow).obtain(physicalColumn);\n    (_cellMeta$_automatica = cellMeta._automaticallyAssignedMetaProps) === null || _cellMeta$_automatica === void 0 || _cellMeta$_automatica.delete(key);\n    cellMeta[key] = value;\n  }\n\n  /**\n   * Removes a property defined by the \"key\" argument from the cell meta object.\n   *\n   * @param {number} physicalRow The physical row index.\n   * @param {number} physicalColumn The physical column index.\n   * @param {string} key The property name to remove.\n   */\n  removeMeta(physicalRow, physicalColumn, key) {\n    const cellMeta = this.metas.obtain(physicalRow).obtain(physicalColumn);\n    delete cellMeta[key];\n  }\n\n  /**\n   * Returns all cell meta objects that were created during the Handsontable operation. As cell meta\n   * objects are created lazy, the length of the returned collection depends on how and when the\n   * table has asked for access to that meta objects.\n   *\n   * @returns {object[]}\n   */\n  getMetas() {\n    const metas = [];\n    const rows = Array.from(this.metas.values());\n    for (let row = 0; row < rows.length; row++) {\n      // Getting a meta for already added row (new row already exist - it has been added using `createRow` method).\n      // However, is not ready until the first `getMeta` call (lazy loading).\n      if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isDefined\"])(rows[row])) {\n        metas.push(...rows[row].values());\n      }\n    }\n    return metas;\n  }\n\n  /**\n   * Returns all cell meta objects that were created during the Handsontable operation but for\n   * specific row index.\n   *\n   * @param {number} physicalRow The physical row index.\n   * @returns {object[]}\n   */\n  getMetasAtRow(physicalRow) {\n    Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_3__[\"assert\"])(() => Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isUnsignedNumber\"])(physicalRow), 'Expecting an unsigned number.');\n    const rowsMeta = new Map(this.metas);\n    return rowsMeta.has(physicalRow) ? Array.from(rowsMeta.get(physicalRow).values()) : [];\n  }\n\n  /**\n   * Clears all saved cell meta objects.\n   */\n  clearCache() {\n    this.metas.clear();\n  }\n\n  /**\n   * Creates and returns new structure for cell meta objects stored in columnar axis.\n   *\n   * @private\n   * @returns {object}\n   */\n  _createRow() {\n    return new _lazyFactoryMap_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"](physicalColumn => this._createMeta(physicalColumn));\n  }\n\n  /**\n   * Creates and returns new cell meta object with properties inherited from the column meta layer.\n   *\n   * @private\n   * @param {number} physicalColumn The physical column index.\n   * @returns {object}\n   */\n  _createMeta(physicalColumn) {\n    const ColumnMeta = this.columnMeta.getMetaConstructor(physicalColumn);\n    return new ColumnMeta();\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/dataMap/metaManager/metaLayers/cellMeta.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/dataMap/metaManager/metaLayers/columnMeta.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/dataMap/metaManager/metaLayers/columnMeta.mjs ***!
  \*********************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ColumnMeta; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/dataMap/metaManager/utils.mjs\");\n/* harmony import */ var _lazyFactoryMap_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lazyFactoryMap.mjs */ \"./node_modules/handsontable/dataMap/metaManager/lazyFactoryMap.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n/**\n * List of props which have to be cleared in the column meta-layer. That props have a\n * different meaning when using in column meta.\n *\n * @type {string[]}\n */\nconst COLUMNS_PROPS_CONFLICTS = ['data', 'width'];\n\n/**\n * The column meta object is a root of all settings defined in the column property of the Handsontable\n * settings. Each column in the Handsontable is associated with a unique meta object which is managed by\n * this layer. Adding, removing, or changing property in that object has a direct reflection only for\n * the CellMeta layer. The reflection will be visible only if the property doesn't exist in the lower\n * layers (prototype lookup).\n *\n * +-------------+.\n * │ GlobalMeta  │\n * │ (prototype) │\n * +-------------+\\\n *       │         \\\n *       │          \\\n *      \\│/         _\\|\n * +-------------+    +-------------+.\n * │ TableMeta   │    │ ColumnMeta  │\n * │ (instance)  │    │ (prototype) │\n * +-------------+    +-------------+.\n *                         │\n *                         │\n *                        \\│/\n *                    +-------------+.\n *                    │  CellMeta   │\n *                    │ (instance)  │\n *                    +-------------+.\n */\nclass ColumnMeta {\n  constructor(globalMeta) {\n    /**\n     * Reference to the GlobalMeta layer. While creating new column meta objects, all new objects\n     * inherit properties from the GlobalMeta layer.\n     *\n     * @type {GlobalMeta}\n     */\n    _defineProperty(this, \"globalMeta\", void 0);\n    /**\n     * The LazyFactoryMap structure, holder for column meta objects where each column meta is\n     * stored under the physical column index.\n     *\n     * @type {LazyFactoryMap}\n     */\n    _defineProperty(this, \"metas\", new _lazyFactoryMap_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"](() => this._createMeta()));\n    this.globalMeta = globalMeta;\n    this.metas = new _lazyFactoryMap_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"](() => this._createMeta());\n  }\n\n  /**\n   * Updates column meta object by merging settings with the current state.\n   *\n   * @param {number} physicalColumn The physical column index which points what column meta object is updated.\n   * @param {object} settings An object to merge with.\n   */\n  updateMeta(physicalColumn, settings) {\n    const meta = this.getMeta(physicalColumn);\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"extend\"])(meta, settings);\n    Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_2__[\"extendByMetaType\"])(meta, settings);\n  }\n\n  /**\n   * Creates one or more columns at specific position.\n   *\n   * @param {number} physicalColumn The physical column index which points from what position the column is added.\n   * @param {number} amount An amount of columns to add.\n   */\n  createColumn(physicalColumn, amount) {\n    this.metas.insert(physicalColumn, amount);\n  }\n\n  /**\n   * Removes one or more columns from the collection.\n   *\n   * @param {number} physicalColumn The physical column index which points from what position the column is removed.\n   * @param {number} amount An amount columns to remove.\n   */\n  removeColumn(physicalColumn, amount) {\n    this.metas.remove(physicalColumn, amount);\n  }\n\n  /**\n   * Gets settings object for this layer.\n   *\n   * @param {number} physicalColumn The physical column index.\n   * @returns {object}\n   */\n  getMeta(physicalColumn) {\n    return this.metas.obtain(physicalColumn);\n  }\n\n  /**\n   * Gets constructor of the column meta object. Necessary for inheritance - creating the next meta layers.\n   *\n   * @param {number} physicalColumn The physical column index.\n   * @returns {Function}\n   */\n  getMetaConstructor(physicalColumn) {\n    return this.metas.obtain(physicalColumn).constructor;\n  }\n\n  /**\n   * Clears all saved column meta objects.\n   */\n  clearCache() {\n    this.metas.clear();\n  }\n\n  /**\n   * Creates and returns new column meta object with properties inherited from the global meta layer.\n   *\n   * @private\n   * @returns {object}\n   */\n  _createMeta() {\n    return Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_2__[\"columnFactory\"])(this.globalMeta.getMetaConstructor(), COLUMNS_PROPS_CONFLICTS).prototype;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/dataMap/metaManager/metaLayers/columnMeta.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/dataMap/metaManager/metaLayers/globalMeta.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/dataMap/metaManager/metaLayers/globalMeta.mjs ***!
  \*********************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return GlobalMeta; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/dataMap/metaManager/utils.mjs\");\n/* harmony import */ var _metaSchema_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../metaSchema.mjs */ \"./node_modules/handsontable/dataMap/metaManager/metaSchema.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n/**\n * @typedef {Options} TableMeta\n */\n/**\n * @returns {TableMeta} Returns an empty object. The holder for global meta object.\n */\nfunction createTableMetaEmptyClass() {\n  return class TableMeta {};\n}\n\n/**\n * The global meta object is a root of all default settings, which are recognizable by Handsontable.\n * Other layers are inherited from this object. Adding, removing, or changing property in that\n * object has a direct reflection to all layers such as: TableMeta, ColumnMeta, or CellMeta layers.\n *\n * +-------------+.\n * │ GlobalMeta  │\n * │ (prototype) │\n * +-------------+\\\n *       │         \\\n *       │          \\\n *      \\│/         _\\|\n * +-------------+    +-------------+.\n * │ TableMeta   │    │ ColumnMeta  │\n * │ (instance)  │    │ (prototype) │\n * +-------------+    +-------------+.\n *                         │\n *                         │\n *                        \\│/\n *                    +-------------+.\n *                    │  CellMeta   │\n *                    │ (instance)  │\n *                    +-------------+.\n */\nclass GlobalMeta {\n  constructor(hot) {\n    /**\n     * An alias for the constructor. Necessary for inheritance for creating new layers.\n     *\n     * @type {TableMeta}\n     */\n    _defineProperty(this, \"metaCtor\", createTableMetaEmptyClass());\n    /**\n     * Main object (prototype of the internal TableMeta class), holder for all default settings.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"meta\", void 0);\n    this.meta = this.metaCtor.prototype;\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"extend\"])(this.meta, Object(_metaSchema_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"])());\n    this.meta.instance = hot;\n  }\n\n  /**\n   * Gets constructor of the global meta object. Necessary for inheritance for creating the next meta layers.\n   *\n   * @returns {Function}\n   */\n  getMetaConstructor() {\n    return this.metaCtor;\n  }\n\n  /**\n   * Gets settings object for this layer.\n   *\n   * @returns {object}\n   */\n  getMeta() {\n    return this.meta;\n  }\n\n  /**\n   * Updates global settings object by merging settings with the current state.\n   *\n   * @param {object} settings An object to merge with.\n   */\n  updateMeta(settings) {\n    var _settings$type;\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"extend\"])(this.meta, settings);\n    Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_2__[\"extendByMetaType\"])(this.meta, {\n      ...settings,\n      type: (_settings$type = settings.type) !== null && _settings$type !== void 0 ? _settings$type : this.meta.type\n    }, settings);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/dataMap/metaManager/metaLayers/globalMeta.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/dataMap/metaManager/metaLayers/tableMeta.mjs":
/*!********************************************************************************!*\
  !*** ./node_modules/handsontable/dataMap/metaManager/metaLayers/tableMeta.mjs ***!
  \********************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return TableMeta; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/dataMap/metaManager/utils.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n/**\n * The table meta object is a layer that keeps all settings of the Handsontable that was passed in\n * the constructor. That layer contains all default settings inherited from the GlobalMeta layer\n * merged with settings passed by the developer. Adding, removing, or changing property in that\n * object has no direct reflection on any other layers.\n *\n * +-------------+.\n * │ GlobalMeta  │\n * │ (prototype) │\n * +-------------+\\\n *       │         \\\n *       │          \\\n *      \\│/         _\\|\n * +-------------+    +-------------+.\n * │ TableMeta   │    │ ColumnMeta  │\n * │ (instance)  │    │ (prototype) │\n * +-------------+    +-------------+.\n *                         │\n *                         │\n *                        \\│/\n *                    +-------------+.\n *                    │  CellMeta   │\n *                    │ (instance)  │\n *                    +-------------+.\n */\nclass TableMeta {\n  constructor(globalMeta) {\n    /**\n     * Main object (instance of the internal TableMeta class from GlobalMeta), holder for all settings defined in the table scope.\n     *\n     * @type {TableMeta}\n     */\n    _defineProperty(this, \"meta\", void 0);\n    const MetaCtor = globalMeta.getMetaConstructor();\n    this.meta = new MetaCtor();\n  }\n\n  /**\n   * Gets settings object for this layer.\n   *\n   * @returns {TableMeta}\n   */\n  getMeta() {\n    return this.meta;\n  }\n\n  /**\n   * Updates table settings object by merging settings with the current state.\n   *\n   * @param {object} settings An object to merge with.\n   */\n  updateMeta(settings) {\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"extend\"])(this.meta, settings);\n    Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_2__[\"extendByMetaType\"])(this.meta, settings, settings);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/dataMap/metaManager/metaLayers/tableMeta.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/dataMap/metaManager/metaSchema.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/dataMap/metaManager/metaSchema.mjs ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * @alias Options\n * @class Options\n * @description\n *\n * [Configuration options](@/guides/getting-started/configuration-options/configuration-options.md) let you heavily customize your Handsontable instance. For example, you can:\n *\n * - Enable and disable built-in features\n * - Enable and configure additional [plugins](@/api/plugins.md)\n * - Personalize Handsontable's look\n * - Adjust Handsontable's behavior\n * - Implement your own custom features\n *\n * ::: only-for javascript\n *\n * To apply [configuration options](@/guides/getting-started/configuration-options/configuration-options.md), pass them as\n * a second argument of the [Handsontable constructor](@/guides/getting-started/installation/installation.md#initialize-handsontable),\n * using the [object literal notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer):\n *\n * Read more on the [Configuration options](@/guides/getting-started/configuration-options/configuration-options.md) page.\n *\n * ```js\n * const container = document.getElementById('example');\n *\n * const hot = new Handsontable(container, {\n *   // configuration options, in the object literal notation\n *   licenseKey: 'non-commercial-and-evaluation',\n *   data: [\n *     ['A1', 'B1', 'C1', 'D1', 'E1'],\n *     ['A2', 'B2', 'C2', 'D2', 'E2'],\n *     ['A3', 'B3', 'C3', 'D3', 'E3'],\n *     ['A4', 'B4', 'C4', 'D4', 'E4'],\n *     ['A5', 'B5', 'C5', 'D5', 'E5'],\n *   ],\n *   width: 400,\n *   height: 300,\n *   colHeaders: true,\n *   rowHeaders: true,\n *   customBorders: true,\n *   dropdownMenu: true,\n *   multiColumnSorting: true,\n *   filters: true,\n *   manualRowMove: true,\n * });\n * ```\n * :::\n *\n * ::: only-for react\n *\n * To apply configuration options, pass them as individual props\n * of the [`HotTable`](@/guides/getting-started/installation/installation.md#_4-use-the-hottable-component)\n * or [`HotColumn`](@/guides/columns/react-hot-column/react-hot-column.md) components.\n *\n * Read more on the [Configuration options](@/guides/getting-started/configuration-options/configuration-options.md) page.\n *\n * ```jsx\n * <HotTable\n *   // configuration options, in the object literal notation\n *   licenseKey='non-commercial-and-evaluation'\n *   data={[\n *     ['A1', 'B1', 'C1', 'D1', 'E1'],\n *     ['A2', 'B2', 'C2', 'D2', 'E2'],\n *     ['A3', 'B3', 'C3', 'D3', 'E3'],\n *     ['A4', 'B4', 'C4', 'D4', 'E4'],\n *     ['A5', 'B5', 'C5', 'D5', 'E5'],\n *   ]}\n *   width={400}\n *   height={300}\n *   colHeaders={true}\n *   rowHeaders={true}\n *   customBorders={true}\n *   dropdownMenu={true}\n *   multiColumnSorting={true}\n *   filters={true}\n *   manualRowMove={true}\n * />\n * ```\n * :::\n *\n * Depending on your needs, you can apply [configuration options](@/api/options.md) to different elements of your grid:\n * - [The entire grid](@/guides/getting-started/configuration-options/configuration-options.md#set-grid-options)\n * - [Individual columns](@/guides/getting-started/configuration-options/configuration-options.md#set-column-options)\n * - [Individual rows](@/guides/getting-started/configuration-options/configuration-options.md#set-row-options)\n * - [Individual cells](@/guides/getting-started/configuration-options/configuration-options.md#set-cell-options)\n * - [Individual grid elements, based on any logic you implement](@/guides/getting-started/configuration-options/configuration-options.md#implementing-custom-logic)\n *\n * Read more:\n * - [Configuration options](@/guides/getting-started/configuration-options/configuration-options.md)\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = (() => {\n  return {\n    /* eslint-disable jsdoc/require-description-complete-sentence */\n\n    /**\n     * Information on which of the meta properties were added automatically.\n     * For example: setting the `renderer` property directly won't extend the `_automaticallyAssignedMetaProps`\n     * entry, but setting a `type` will modify it to `Set(3) {'renderer', 'editor', 'validator', ...}`.\n     *\n     * @private\n     * @type {Set}\n     * @default undefined\n     */\n    _automaticallyAssignedMetaProps: undefined,\n    /**\n     * The `activeHeaderClassName` option lets you add a CSS class name\n     * to every currently-active, currently-selected header (when a whole column or row is selected).\n     *\n     * Read more:\n     * - [`currentRowClassName`](#currentRowClassName)\n     * - [`currentColClassName`](#currentColClassName)\n     * - [`currentHeaderClassName`](#currentHeaderClassName)\n     * - [`invalidCellClassName`](#invalidCellClassName)\n     * - [`readOnlyCellClassName`](#readOnlyCellClassName)\n     * - [`commentedCellClassName`](#commentedCellClassName)\n     * - [`noWordWrapClassName`](#noWordWrapClassName)\n     * - [`TableClassName`](#TableClassName)\n     * - [`className`](#className)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @since 0.38.2\n     * @default 'ht__active_highlight'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // add an `ht__active_highlight` CSS class name\n     * // to every currently-active, currently-selected header\n     * activeHeaderClassName: 'ht__active_highlight',\n     * ```\n     */\n    activeHeaderClassName: 'ht__active_highlight',\n    /**\n     * The `allowEmpty` option determines whether Handsontable accepts the following values:\n     * - `null`\n     * - `undefined`\n     * - `''`\n     *\n     * You can set the `allowEmpty` option to one of the following:\n     *\n     * | Setting          | Description                                                                                                                          |\n     * | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------ |\n     * | `true` (default) | - Accept `null`, `undefined` and `''` values<br>- Mark cells that contain `null`, `undefined` or `''` values as `valid`              |\n     * | `false`          | - Don't accept `null`, `undefined` and `''` values<br>- Mark cells that contain `null`, `undefined` or `''` values with as `invalid` |\n     *\n     * ::: tip\n     * To use the [`allowEmpty`](#allowempty) option, you need to set the [`validator`](#validator) option (or the [`type`](#type) option).\n     * :::\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // allow empty values in each cell of the entire grid\n     * allowEmpty: true,\n     *\n     * // or\n     * columns: [\n     *   {\n     *     type: 'date',\n     *     dateFormat: 'DD/MM/YYYY',\n     *     // allow empty values in each cell of the 'date' column\n     *     allowEmpty: true\n     *   }\n     * ],\n     * ```\n     */\n    allowEmpty: true,\n    /**\n     * The `allowHtml` option configures whether [`autocomplete`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)\n     * and [`dropdown`](@/guides/cell-types/dropdown-cell-type/dropdown-cell-type.md) cells' [`source`](#source) data\n     * is treated as HTML.\n     *\n     * You can set the `allowHtml` option to one of the following:\n     *\n     * | Setting           | Description                                         |\n     * | ----------------- | --------------------------------------------------- |\n     * | `false` (default) | The [`source`](#source) data is not treated as HTML |\n     * | `true`            | The [`source`](#source) data is treated as HTML     |\n     *\n     * __Warning:__ Setting the `allowHtml` option to `true` can cause serious XSS vulnerabilities.\n     *\n     * Read more:\n     * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)\n     * - [Dropdown cell type](@/guides/cell-types/dropdown-cell-type/dropdown-cell-type.md)\n     * - [`source`](#source)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *   // set the `type` of each cell in this column to `autocomplete`\n     *   type: 'autocomplete',\n     *   // set options available in every `autocomplete` cell of this column\n     *   source: ['<strong>foo</strong>', '<strong>bar</strong>']\n     *   // use HTML in the `source` list\n     *   allowHtml: true,\n     *   },\n     * ],\n     * ```\n     */\n    allowHtml: false,\n    /**\n     * If set to `true`, the `allowInsertColumn` option adds the following menu items to the [context menu](@/guides/accessories-and-menus/context-menu/context-menu.md):\n     * - **Insert column left**\n     * - **Insert column right**\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // hide the 'Insert column left' and 'Insert column right' menu items from the context menu\n     * allowInsertColumn: false,\n     * ```\n     */\n    allowInsertColumn: true,\n    /**\n     * If set to `true`, the `allowInsertRow` option adds the following menu items to the [context menu](@/guides/accessories-and-menus/context-menu/context-menu.md):\n     * - **Insert row above**\n     * - **Insert row below**\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // hide the 'Insert row above' and 'Insert row below' menu items from the context menu\n     * allowInsertRow: false,\n     * ```\n     */\n    allowInsertRow: true,\n    /**\n     * The `allowInvalid` option determines whether Handsontable accepts values\n     * that were marked as `invalid` by the [cell validator](@/guides/cell-functions/cell-validator/cell-validator.md).\n     *\n     * You can set the `allowInvalid` option to one of the following:\n     *\n     * | Setting          | Description                                                                                                                                                                        |\n     * | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `true` (default) | - Accept `invalid` values<br>- Allow the user to close the [cell editor](@/guides/cell-functions/cell-editor/cell-editor.md) with `invalid` values<br>- Save `invalid` values into the data source                   |\n     * | `false`          | - Don't accept `invalid` values<br>- Don't allow the user to close the [cell editor](@/guides/cell-functions/cell-editor/cell-editor.md) with `invalid` values<br>- Don't save `invalid` values into the data source |\n     *\n     * Setting the `allowInvalid` option to `false` can be useful when used with the [Autocomplete strict mode](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md#autocomplete-strict-mode).\n     *\n     * Read more:\n     * - [Cell validator](@/guides/cell-functions/cell-validator/cell-validator.md)\n     * - [Cell editor](@/guides/cell-functions/cell-editor/cell-editor.md)\n     * - [Autocomplete strict mode](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md#autocomplete-strict-mode)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // don't accept `invalid` values\n     * // don't allow the user to close the cell editor\n     * // don't save `invalid` values into the data source\n     * allowInvalid: false,\n     * ```\n     */\n    allowInvalid: true,\n    /**\n     * If set to `true`, the `allowRemoveColumn` option adds the following menu items to the [context menu](@/guides/accessories-and-menus/context-menu/context-menu.md):\n     * - **Remove column**\n     *\n     * Read more:\n     * - [Context menu](@/guides/accessories-and-menus/context-menu/context-menu.md)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // hide the 'Remove column' menu item from the context menu\n     * allowRemoveColumn: false,\n     * ```\n     */\n    allowRemoveColumn: true,\n    /**\n     * If set to `true`, the `allowRemoveRow` option adds the following menu items to the [context menu](@/guides/accessories-and-menus/context-menu/context-menu.md):\n     * - **Remove row**\n     *\n     * Read more:\n     * - [Context menu](@/guides/accessories-and-menus/context-menu/context-menu.md)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // hide the 'Remove row' menu item from the context menu\n     * allowRemoveRow: false,\n     * ```\n     */\n    allowRemoveRow: true,\n    /**\n     * If set to `true`, the accessibility-related ARIA tags will be added to the table. If set to `false`, they\n     * will be omitted.\n     * Defaults to `true`.\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     * @since 14.0.0\n     */\n    ariaTags: true,\n    /**\n     * The `autoColumnSize` option configures the [`AutoColumnSize`](@/api/autoColumnSize.md) plugin.\n     *\n     * You can set the `autoColumnSize` option to one of the following:\n     *\n     * | Setting   | Description                                                                                  |\n     * | --------- | -------------------------------------------------------------------------------------------- |\n     * | `false`   | Disable the [`AutoColumnSize`](@/api/autoColumnSize.md) plugin                               |\n     * | `true`    | Enable the [`AutoColumnSize`](@/api/autoColumnSize.md) plugin with the default configuration |\n     * | An object | Enable the [`AutoColumnSize`](@/api/autoColumnSize.md) plugin and modify the plugin options  |\n     *\n     * If you set the `autoColumnSize` option to an object, you can set the following [`AutoColumnSize`](@/api/autoColumnSize.md) plugin options:\n     *\n     * | Property                | Possible values                 | Description                                                                                                    |\n     * | ----------------------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------- |\n     * | `syncLimit`             | A number \\| A percentage string | The number/percentage of columns to keep in sync<br>(default: `50`)                                            |\n     * | `useHeaders`            | `true` \\| `false`               | When calculating column widths:<br>`true`: use column headers<br>`false`: don't use column headers          |\n     * | `samplingRatio`         | A number                        | The number of samples of the same length to be used in column width calculations                               |\n     * | `allowSampleDuplicates` | `true` \\| `false`               | When calculating column widths:<br>`true`: Allow duplicate samples<br>`false`: Don't allow duplicate samples |\n     *\n     * By default, the `autoColumnSize` option is set to `undefined`,\n     * but the [`AutoColumnSize`](@/api/autoColumnSize.md) plugin acts as enabled.\n     * To disable the [`AutoColumnSize`](@/api/autoColumnSize.md) plugin completely,\n     * set the `autoColumnSize` option to `false`.\n     *\n     * Using the [`colWidths`](#colWidths) option forcibly disables the [`AutoColumnSize`](@/api/autoColumnSize.md) plugin.\n     *\n     * Read more:\n     * - [Plugins: `AutoColumnSize`](@/api/autoColumnSize.md)\n     *\n     * @memberof Options#\n     * @type {object|boolean}\n     * @default undefined\n     * @category AutoColumnSize\n     *\n     * @example\n     * ```js\n     * autoColumnSize: {\n     *   // keep 40% of columns in sync (the rest of columns: async)\n     *   syncLimit: '40%',\n     *   // when calculating column widths, use column headers\n     *   useHeaders: true,\n     *   // when calculating column widths, use 10 samples of the same length\n     *   samplingRatio: 10,\n     *   // when calculating column widths, allow duplicate samples\n     *   allowSampleDuplicates: true\n     * },\n     * ```\n     */\n    autoColumnSize: undefined,\n    /**\n     * The `autoRowSize` option configures the [`AutoRowSize`](@/api/autoRowSize.md) plugin.\n     *\n     * You can set the `autoRowSize` option to one of the following:\n     *\n     * | Setting   | Description                                                                            |\n     * | --------- | -------------------------------------------------------------------------------------- |\n     * | `false`   | Disable the [`AutoRowSize`](@/api/autoRowSize.md) plugin                               |\n     * | `true`    | Enable the [`AutoRowSize`](@/api/autoRowSize.md) plugin with the default configuration |\n     * | An object | Enable the [`AutoRowSize`](@/api/autoRowSize.md) plugin and modify the plugin options  |\n     *\n     * To give Handsontable's [scrollbar](https://handsontable.com/docs/8.0.0/demo-scrolling.html)\n     * a proper size, set the `autoRowSize` option to `true`.\n     *\n     * If you set the `autoRowSize` option to an object, you can set the following [`AutoRowSize`](@/api/autoRowSize.md) plugin options:\n     *\n     * | Property    | Possible values                 | Description                                                       |\n     * | ----------- | ------------------------------- | ----------------------------------------------------------------- |\n     * | `syncLimit` | A number \\| A percentage string | The number/percentage of rows to keep in sync<br>(default: `500`) |\n     *\n     * Using the [`rowHeights`](#rowHeights) option forcibly disables the [`AutoRowSize`](@/api/autoRowSize.md) plugin.\n     *\n     * Read more:\n     * - [Plugins: `AutoRowSize`](@/api/autoRowSize.md)\n     *\n     * @memberof Options#\n     * @type {object|boolean}\n     * @default undefined\n     * @category AutoRowSize\n     *\n     * @example\n     * ```js\n     * autoRowSize: {\n     *   // keep 40% of rows in sync (the rest of rows: async)\n     *   syncLimit: '40%'\n     * },\n     * ```\n     */\n    autoRowSize: undefined,\n    /**\n     * | Setting           | Description                                                                                                                                                                                                                                  |\n     * | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `false` (default) | When you select a bottom-most cell, pressing <kbd>**↓**</kbd> doesn't do anything.<br><br>When you select a top-most cell, pressing <kbd>**↑**</kbd> doesn't do anything.                                                                    |\n     * | `true`            | When you select a bottom-most cell, pressing <kbd>**↓**</kbd> takes you to the top-most cell of the next column.<br><br>When you select a top-most cell, pressing <kbd>**↑**</kbd> takes you to the bottom-most cell of the previous column. |\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // when you select a bottom-most cell, pressing ⬇ doesn't do anything\n     * // when you select a top-most cell, pressing ⬆ doesn't do anything\n     * autoWrapCol: false, // default setting\n     *\n     * // when you select a bottom-most cell, pressing ⬇ takes you to the top-most cell of the next column\n     * // when you select a top-most cell, pressing ⬆ takes you to the bottom-most cell of the previous column\n     * autoWrapCol: true,\n     * ```\n     */\n    autoWrapCol: false,\n    /**\n     * | Setting           | Description                                                                                                                                                                                                                                                                                                        |\n     * | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n     * | `false` (default) | When you select the first cell of a row, pressing <kbd>**←**</kbd>* (or <kbd>**Shift**</kbd>+<kbd>**Tab**</kbd>\\*\\*) doesn't do anything.<br><br>When you select the last cell of a row, pressing <kbd>**→**</kbd>* (or <kbd>**Tab**</kbd>**) doesn't do anything.                                                  |\n     * | `true`            | When you select the first cell of a row, pressing <kbd>**←**</kbd>* (or <kbd>**Shift**</kbd>+<kbd>**Tab**</kbd>\\*\\*) takes you to the last cell of the row above.<br><br>When you select the last cell of a row, pressing <kbd>**→**</kbd>* (or <kbd>**Tab**</kbd>**) takes you to the first cell of the row below. |\n     *\n     * \\* The exact key depends on your [`layoutDirection`](#layoutdirection) configuration.<br>\n     * \\*\\* Unless [`tabNavigation`](#tabnavigation) is set to `false`.\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // when you select the first cell of a row, pressing ⬅ (or Shift+Tab) doesn't do anything\n     * // when you select the last cell of a row, pressing ➡ (or Tab) doesn't do anything\n     * autoWrapRow: false, // default setting\n     *\n     * // when you select the first cell of a row, pressing ⬅ (or Shift+Tab) takes you to the last cell of the row above\n     * // when you select the last cell of a row, pressing ➡ (or Tab) takes you to the first cell of the row below\n     * autoWrapRow: true,\n     * ```\n     */\n    autoWrapRow: false,\n    /**\n     * @description\n     * The `bindRowsWithHeaders` option configures the [`BindRowsWithHeaders`](@/api/bindRowsWithHeaders.md) plugin.\n     *\n     * You can set the `bindRowsWithHeaders` option to one of the following:\n     *\n     * | Setting | Description                                                                  |\n     * | ------- | ---------------------------------------------------------------------------- |\n     * | `false` | Disable the the [`BindRowsWithHeaders`](@/api/bindRowsWithHeaders.md) plugin |\n     * | `true`  | Enable the the [`BindRowsWithHeaders`](@/api/bindRowsWithHeaders.md) plugin  |\n     *\n     * Read more:\n     * - [Plugins: `BindRowsWithHeaders`](@/api/bindRowsWithHeaders.md)\n     *\n     * @memberof Options#\n     * @type {boolean|string}\n     * @default undefined\n     * @category BindRowsWithHeaders\n     *\n     * @example\n     * ```js\n     * // enable the `BindRowsWithHeaders` plugin\n     * bindRowsWithHeaders: true\n     * ```\n     */\n    bindRowsWithHeaders: undefined,\n    /**\n     * The `cell` option lets you apply [configuration options](@/guides/getting-started/configuration-options/configuration-options.md) to individual cells.\n     *\n     * The `cell` option overwrites the [top-level grid options](@/guides/getting-started/configuration-options/configuration-options.md#set-grid-options),\n     * and the [`columns`](#columns) options.\n     *\n     * Read more:\n     * - [Configuration options: Setting cell options](@/guides/getting-started/configuration-options/configuration-options.md#set-cell-options)\n     * - [`columns`](#columns)\n     *\n     * @memberof Options#\n     * @type {Array[]}\n     * @default []\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set the `cell` option to an array of objects\n     * cell: [\n     *   // make the cell with coordinates (0, 0) read-only\n     *   {\n     *     row: 0,\n     *     col: 0,\n     *     readOnly: true\n     *   }\n     * ],\n     * ```\n     */\n    cell: [],\n    /**\n     * @description\n     * The `cells` option lets you apply any other [configuration options](@/guides/getting-started/configuration-options/configuration-options.md) to\n     * individual grid elements (columns, rows, cells), based on any logic you implement.\n     *\n     * The `cells` option overwrites all other options (including options set by [`columns`](#columns) and [`cell`](#cell)).\n     * It takes the following parameters:\n     *\n     * | Parameter | Required | Type             | Description                                                                                                                                                                                                                                                                                                                             |\n     * | --------- | -------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `row`     | Yes      | Number           | A physical row index                                                                                                                                                                                                                                                                                                                    |\n     * | `column`  | Yes      | Number           | A physical column index                                                                                                                                                                                                                                                                                                                 |\n     * | `prop`    | No       | String \\| Number | If [`data`](#data) is set to an [array of arrays](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-arrays), `prop` is the same number as `column`.<br><br>If [`data`](#data) is set to an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects), `prop` is a property name for the column's data object. |\n     *\n     * Read more:\n     * - [Configuration options: Implementing custom logic](@/guides/getting-started/configuration-options/configuration-options.md#implement-custom-logic)\n     * - [Configuration options: Setting row options](@/guides/getting-started/configuration-options/configuration-options.md#set-row-options)\n     * - [`columns`](#columns)\n     * - [`cell`](#cell)\n     *\n     * @memberof Options#\n     * @type {Function}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set the `cells` option to your custom function\n     * cells(row, column, prop) {\n     *   const cellProperties = { readOnly: false };\n     *   const visualRowIndex = this.instance.toVisualRow(row);\n     *   const visualColIndex = this.instance.toVisualColumn(column);\n     *\n     *   if (visualRowIndex === 0 && visualColIndex === 0) {\n     *     cellProperties.readOnly = true;\n     *   }\n     *\n     *   return cellProperties;\n     * },\n     * ```\n     */\n    cells: undefined,\n    /**\n     * The `checkedTemplate` option lets you configure what value\n     * a checked [`checkbox`](@/guides/cell-types/checkbox-cell-type/checkbox-cell-type.md) cell has.\n     *\n     * You can set the `checkedTemplate` option to one of the following:\n     *\n     * | Setting          | Description                                                                                                                                                                              |\n     * | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `true` (default) | If a [`checkbox`](@/guides/cell-types/checkbox-cell-type/checkbox-cell-type.md) cell is checked,<br>the [`getDataAtCell`](@/api/core.md#getDataAtCell) method for this cell returns `true`                  |\n     * | A string         | If a [`checkbox`](@/guides/cell-types/checkbox-cell-type/checkbox-cell-type.md) cell is checked,<br>the [`getDataAtCell`](@/api/core.md#getDataAtCell) method for this cell returns a string of your choice |\n     *\n     * Read more:\n     * - [Checkbox cell type: Checkbox template](@/guides/cell-types/checkbox-cell-type/checkbox-cell-type.md#checkbox-template)\n     * - [`getDataAtCell()`](@/api/core.md#getDataAtCell)\n     * - [`uncheckedTemplate`](#uncheckedTemplate)\n     *\n     * @memberof Options#\n     * @type {boolean|string|number}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *     // set the `type` of each cell in this column to `checkbox`\n     *     // when checked, the cell's value is `true`\n     *     // when unchecked, the cell's value is `false`\n     *     type: 'checkbox',\n     *   },\n     *   {\n     *     // set the `type` of each cell in this column to `checkbox`\n     *     type: 'checkbox',\n     *     // when checked, the cell's value is `'Yes'`\n     *     checkedTemplate: 'Yes',\n     *     // when unchecked, the cell's value is `'No'`\n     *     uncheckedTemplate: 'No'\n     *  }\n     * ],\n     * ```\n     */\n    checkedTemplate: undefined,\n    /**\n     * The `className` option lets you add CSS class names to every currently-selected element.\n     *\n     * You can set the `className` option to one of the following:\n     *\n     * | Setting             | Description                                                      |\n     * | ------------------- | ---------------------------------------------------------------- |\n     * | A string            | Add a single CSS class name to every currently-selected element  |\n     * | An array of strings | Add multiple CSS class names to every currently-selected element |\n     *\n     * ::: tip\n     * Don't change the `className` metadata of the [column summary](@/guides/columns/column-summary/column-summary.md) row.\n     * To style the summary row, use the class name assigned automatically by the [`ColumnSummary`](@/api/columnSummary.md) plugin: `columnSummaryResult`.\n     * :::\n     *\n     * To apply different CSS class names on different levels, use Handsontable's [cascading configuration](@/guides/getting-started/configuration-options/configuration-options.md#cascading-configuration).\n     *\n     * Read more:\n     * - [Configuration options: Cascading configuration](@/guides/getting-started/configuration-options/configuration-options.md#cascading-configuration)\n     * - [`currentRowClassName`](#currentRowClassName)\n     * - [`currentColClassName`](#currentColClassName)\n     * - [`currentHeaderClassName`](#currentHeaderClassName)\n     * - [`activeHeaderClassName`](#activeHeaderClassName)\n     * - [`invalidCellClassName`](#invalidCellClassName)\n     * - [`placeholderCellClassName`](#placeholderCellClassName)\n     * - [`commentedCellClassName`](#commentedCellClassName)\n     * - [`noWordWrapClassName`](#noWordWrapClassName)\n     * - [`readOnlyCellClassName`](#readOnlyCellClassName)\n     * - [`TableClassName`](#TableClassName)\n     *\n     * @memberof Options#\n     * @type {string|string[]}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // add a `your-class-name` CSS class name\n     * // to every currently-selected element\n     * className: 'your-class-name',\n     *\n     * // add `first-class-name` and `second-class-name` CSS class names\n     * // to every currently-selected element\n     * className: ['first-class-name', 'second-class-name'],\n     * ```\n     */\n    className: undefined,\n    /**\n     * The `colHeaders` option configures your grid's column headers.\n     *\n     * You can set the `colHeaders` option to one of the following:\n     *\n     * | Setting  | Description                                                          |\n     * | -------- | -------------------------------------------------------------------- |\n     * | `true`   | Enable the default column headers ('A', 'B', 'C', ...)               |\n     * | `false`  | Disable column headers                                               |\n     * | An array | Define your own column headers (e.g. `['One', 'Two', 'Three', ...]`) |\n     * | A function | Define your own column headers, using a function                     |\n     *\n     * Read more:\n     * - [Column header](@/guides/columns/column-header/column-header.md)\n     *\n     * @memberof Options#\n     * @type {boolean|string[]|Function}\n     * @default null\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // enable the default column headers\n     * colHeaders: true,\n     *\n     * // set your own column headers\n     * colHeaders: ['One', 'Two', 'Three'],\n     *\n     * // set your own column headers, using a function\n     * colHeaders: function(visualColumnIndex) {\n     *   return `${visualColumnIndex} + : AB`;\n     * },\n     * ```\n     */\n    colHeaders: null,\n    /**\n     * @description\n     * The `collapsibleColumns` option configures the [`CollapsibleColumns`](@/api/collapsibleColumns.md) plugin.\n     *\n     * You can set the `collapsibleColumns` option to one of the following:\n     *\n     * | Setting              | Description                                                                                       |\n     * | -------------------- | ------------------------------------------------------------------------------------------------- |\n     * | `false`              | Disable the [`CollapsibleColumns`](@/api/collapsibleColumns.md) plugin                            |\n     * | `true`               | Enable the [`CollapsibleColumns`](@/api/collapsibleColumns.md) plugin                             |\n     * | An array of objects  | Enable the [`CollapsibleColumns`](@/api/collapsibleColumns.md) plugin for selected column headers |\n     *\n     * Read more:\n     * - [Plugins: `CollapsibleColumns`](@/api/collapsibleColumns.md)\n     *\n     * @memberof Options#\n     * @type {boolean|object[]}\n     * @default undefined\n     * @category CollapsibleColumns\n     *\n     * @example\n     * ```js\n     * // enable column collapsing for all headers\n     * collapsibleColumns: true,\n     *\n     * // enable column collapsing for selected headers\n     * collapsibleColumns: [\n     *   {row: -4, col: 1, collapsible: true},\n     *   {row: -3, col: 5, collapsible: true}\n     * ],\n     * ```\n     */\n    collapsibleColumns: undefined,\n    /**\n     * @description\n     * The `columnHeaderHeight` option configures the height of column headers.\n     *\n     * You can set the `columnHeaderHeight` option to one of the following:\n     *\n     * | Setting  | Description                                         |\n     * | -------- | --------------------------------------------------- |\n     * | A number | Set the same height for every column header         |\n     * | An array | Set different heights for individual column headers |\n     *\n     * @memberof Options#\n     * @type {number|number[]}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set the same height for every column header\n     * columnHeaderHeight: 25,\n     *\n     * // set different heights for individual column headers\n     * columnHeaderHeight: [25, 30, 55],\n     * ```\n     */\n    columnHeaderHeight: undefined,\n    /**\n     * @description\n     * The `columns` option lets you apply any other [configuration options](@/guides/getting-started/configuration-options/configuration-options.md) to individual columns (or ranges of columns).\n     *\n     * You can set the `columns` option to one of the following:\n     * - An array of objects (each object represents one column)\n     * - A function that returns an array of objects\n     *\n     * The `columns` option overwrites the [top-level grid options](@/guides/getting-started/configuration-options/configuration-options.md#set-grid-options).\n     *\n     * When you use `columns`, the [`startCols`](#startCols), [`minCols`](#minCols), and [`maxCols`](#maxCols) options are ignored.\n     *\n     * Read more:\n     * - [Configuration options: Setting column options](@/guides/getting-started/configuration-options/configuration-options.md#set-column-options)\n     * - [`startCols`](#startCols)\n     * - [`minCols`](#minCols)\n     * - [`maxCols`](#maxCols)\n     * - [`data`](#data)\n     *\n     * @memberof Options#\n     * @type {object[]|Function}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set the `columns` option to an array of objects\n     * // each object represents one column\n     * columns: [\n     *   {\n     *     // column options for the first (by physical index) column\n     *     type: 'numeric',\n     *     numericFormat: {\n     *       pattern: '0,0.00 $'\n     *     }\n     *   },\n     *   {\n     *     // column options for the second (by physical index) column\n     *     type: 'text',\n     *     readOnly: true\n     *   }\n     * ],\n     *\n     * // or set the `columns` option to a function, based on physical indexes\n     * columns(index) {\n     *   return {\n     *     type: index > 0 ? 'numeric' : 'text',\n     *     readOnly: index < 1\n     *   }\n     * }\n     * ```\n     */\n    columns: undefined,\n    /**\n     * @description\n     * The `columnSorting` option configures the [`ColumnSorting`](@/api/columnSorting.md) plugin.\n     *\n     * You can set the `columnSorting` option to one of the following:\n     *\n     * | Setting    | Description                                                                                                                            |\n     * | ---------- | -------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `true`     | Enable the [`ColumnSorting`](@/api/columnSorting.md) plugin with the default configuration                                             |\n     * | `false`    | Disable the [`ColumnSorting`](@/api/columnSorting.md) plugin                                                                           |\n     * | An object  | - Enable the [`ColumnSorting`](@/api/columnSorting.md) plugin<br>- Modify the [`ColumnSorting`](@/api/columnSorting.md) plugin options |\n     *\n     * If you set the `columnSorting` option to an object,\n     * you can set the following [`ColumnSorting`](@/api/columnSorting.md) plugin options:\n     *\n     * | Option                   | Possible settings                                                                                                                                |\n     * | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |\n     * | `indicator`              | `true`: Display the arrow icon in the column header, to indicate a sortable column<br>`false`: Don't display the arrow icon in the column header  |\n     * | `headerAction`           | `true`: Enable clicking on the column header to sort the column<br>`false`: Disable clicking on the column header to sort the column             |\n     * | `sortEmptyCells`         | `true`: Sort empty cells as well<br>`false`: Place empty cells at the end                                                                        |\n     * | `compareFunctionFactory` | A [custom compare function](@/guides/rows/rows-sorting/rows-sorting.md#add-a-custom-comparator)                                                                |\n     *\n     * If you set the `columnSorting` option to an object,\n     * you can also sort individual columns at Handsontable's initialization.\n     * In the `columnSorting` object, add an object named `initialConfig`,\n     * with the following properties:\n     *\n     * | Option      | Possible settings   | Description                                                      |\n     * | ----------- | ------------------- | ---------------------------------------------------------------- |\n     * | `column`    | A number            | The index of the column that you want to sort at initialization  |\n     * | `sortOrder` | `'asc'` \\| `'desc'` | The sorting order:<br>`'asc'`: ascending<br>`'desc'`: descending |\n     *\n     * Read more:\n     * - [Rows sorting](@/guides/rows/rows-sorting/rows-sorting.md)\n     * - [Rows sorting: Custom compare functions](@/guides/rows/rows-sorting/rows-sorting.md#add-a-custom-comparator)\n     * - [`multiColumnSorting`](#multiColumnSorting)\n     *\n     * @memberof Options#\n     * @type {boolean|object}\n     * @default undefined\n     * @category ColumnSorting\n     *\n     * @example\n     * ```js\n     * // enable the `ColumnSorting` plugin\n     * columnSorting: true\n     *\n     * // enable the `ColumnSorting` plugin with custom configuration\n     * columnSorting: {\n     *   // sort empty cells as well\n     *   sortEmptyCells: true,\n     *   // display the arrow icon in the column header\n     *   indicator: true,\n     *   // disable clicking on the column header to sort the column\n     *   headerAction: false,\n     *   // add a custom compare function\n     *   compareFunctionFactory(sortOrder, columnMeta) {\n     *     return function(value, nextValue) {\n     *       // some value comparisons which will return -1, 0 or 1...\n     *     }\n     *   }\n     * }\n     *\n     * // enable the `ColumnSorting` plugin\n     * columnSorting: {\n     *   // at initialization, sort column 1 in ascending order\n     *   initialConfig: {\n     *     column: 1,\n     *     sortOrder: 'asc'\n     *   },\n     *   // at initialization, sort column 2 in descending order\n     *   initialConfig: {\n     *     column: 2,\n     *     sortOrder: 'desc'\n     *   }\n     * }\n     * ```\n     */\n    columnSorting: undefined,\n    /**\n     * @description\n     * The `columnSummary` option configures the [`ColumnSummary`](@/api/columnSummary.md) plugin.\n     *\n     * You can set the `columnSummary` option to an array of objects.\n     * Each object configures a single column summary, using the following properties:\n     *\n     * | Property                 | Possible values                                                         | Description                                                                                                                  |\n     * | ------------------------ | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |\n     * | `sourceColumn`           | A number                                                                | [Column to summarize](@/guides/columns/column-summary/column-summary.md#step-2-select-cells-that-you-want-to-summarize)                     |\n     * | `ranges`                 | An array                                                                | [Ranges of rows to summarize](@/guides/columns/column-summary/column-summary.md#step-2-select-cells-that-you-want-to-summarize)             |\n     * | `type`                   | `'sum'` \\| `'min'` \\| `'max'` \\| `'count'` \\| `'average'` \\| `'custom'` | [Summary function](@/guides/columns/column-summary/column-summary.md#step-3-calculate-your-summary)                                         |\n     * | `destinationRow`         | A number                                                                | [Destination cell's row coordinate](@/guides/columns/column-summary/column-summary.md#step-4-provide-the-destination-cell-s-coordinates)    |\n     * | `destinationColumn`      | A number                                                                | [Destination cell's column coordinate](@/guides/columns/column-summary/column-summary.md#step-4-provide-the-destination-cell-s-coordinates) |\n     * | `forceNumeric`           | `true`  \\| `false`                                                      | [Treat non-numerics as numerics](@/guides/columns/column-summary/column-summary.md#force-numeric-values)                                  |\n     * | `reversedRowCoords`      | `true`  \\| `false`                                                      | [Reverse row coordinates](@/guides/columns/column-summary/column-summary.md#step-5-make-room-for-the-destination-cell)                      |\n     * | `suppressDataTypeErrors` | `true`  \\| `false`                                                      | [Suppress data type errors](@/guides/columns/column-summary/column-summary.md#throw-data-type-errors)                                    |\n     * | `readOnly`               | `true`  \\| `false`                                                      | Make summary cell read-only                                                                                                  |\n     * | `roundFloat`             | `true`  \\| `false`  \\| A number                                         | [Round summary result](@/guides/columns/column-summary/column-summary.md#round-a-column-summary-result)                                  |\n     * | `customFunction`         | A function                                                              | [Custom summary function](@/guides/columns/column-summary/column-summary.md#implement-a-custom-summary-function)                         |\n     *\n     * Read more:\n     * - [Column summary](@/guides/columns/column-summary/column-summary.md)\n     * - [Plugins: `ColumnSummary`](@/api/columnSummary.md)\n     *\n     * @memberof Options#\n     * @type {object[]|Function}\n     * @default undefined\n     * @category ColumnSummary\n     *\n     * @example\n     * ```js\n     * columnSummary: [\n     *   {\n     *     sourceColumn: 0,\n     *     ranges: [\n     *       [0, 2], [4], [6, 8]\n     *     ],\n     *     type: 'custom',\n     *     destinationRow: 4,\n     *     destinationColumn: 1,\n     *     forceNumeric: true,\n     *     reversedRowCoords: true,\n     *     suppressDataTypeErrors: false,\n     *     readOnly: true,\n     *     roundFloat: false,\n     *     customFunction(endpoint) {\n     *        return 100;\n     *     }\n     *   }\n     * ],\n     * ```\n     */\n    columnSummary: undefined,\n    /**\n     * The `colWidths` option sets columns' widths, in pixels.\n     *\n     * The default column width is 50px. To change it, set the `colWidths` option to one of the following:\n     *\n     * | Setting     | Description                                                                                          | Example                                                           |\n     * | ----------- | ---------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |\n     * | A number    | Set the same width for every column                                                                  | `colWidths: 100`                                                  |\n     * | A string    | Set the same width for every column                                                                  | `colWidths: '100px'`                                              |\n     * | An array    | Set widths separately for each column                                                                | `colWidths: [100, 120, undefined]`                                |\n     * | A function  | Set column widths dynamically,<br>on each render                                                     | `colWidths(visualColumnIndex) { return visualColumnIndex * 10; }` |\n     * | `undefined` | Used by the [modifyColWidth](@/api/hooks.md#modifyColWidth) hook,<br>to detect column width changes. | `colWidths: undefined`                                            |\n     *\n     * Setting `colWidths` even for a single column disables the {@link AutoColumnSize} plugin\n     * for all columns. For this reason, if you use `colWidths`, we recommend you set a width for each one\n     * of your columns. Otherwise, every column with an undefined width defaults back to 50px,\n     * which may cut longer columns names.\n     *\n     * Read more:\n     * - [Column width](@/guides/columns/column-width/column-width.md)\n     * - [Hooks: `modifyColWidth`](@/api/hooks.md#modifyColWidth)\n     * - [`autoColumnSize`](#autoColumnSize)\n     *\n     * @memberof Options#\n     * @type {number|number[]|string|string[]|Array<undefined>|Function}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set every column's width to 100px\n     * colWidths: 100,\n     *\n     * // set every column's width to 100px\n     * colWidths: '100px',\n     *\n     * // set the first (by visual index) column's width to 100\n     * // set the second (by visual index) column's width to 120\n     * // set the third (by visual index) column's width to `undefined`, so that it defaults to 50px\n     * // set any other column's width to the default 50px (note that longer cell values and column names can get cut)\n     * colWidths: [100, 120, undefined],\n     *\n     * // set each column's width individually, using a function\n     * colWidths(visualColumnIndex) {\n     *   return visualColumnIndex * 10;\n     * },\n     * ```\n     */\n    colWidths: undefined,\n    /**\n     * The `commentedCellClassName` option lets you add a CSS class name to cells\n     * that have comments.\n     *\n     * Read more:\n     * - [Comments](@/guides/cell-features/comments/comments.md)\n     * - [`comments`](#comments)\n     * - [`readOnlyCellClassName`](#readOnlyCellClassName)\n     * - [`currentRowClassName`](#currentRowClassName)\n     * - [`currentHeaderClassName`](#currentHeaderClassName)\n     * - [`activeHeaderClassName`](#activeHeaderClassName)\n     * - [`invalidCellClassName`](#invalidCellClassName)\n     * - [`placeholderCellClassName`](#placeholderCellClassName)\n     * - [`readOnlyCellClassName`](#readOnlyCellClassName)\n     * - [`noWordWrapClassName`](#noWordWrapClassName)\n     * - [`TableClassName`](#TableClassName)\n     * - [`className`](#className)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default 'htCommentCell'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // add a `has-comment` CSS class name\n     * // to each cell that has a comment\n     * commentedCellClassName: 'has-comment',\n     * ```\n     */\n    commentedCellClassName: 'htCommentCell',\n    /**\n     * @description\n     * The `comments` option configures the [`Comments`](@/api/comments.md) plugin.\n     *\n     * You can set the `comments` option to one of the following:\n     *\n     * | Setting   | Description                                                                                                                                                                           |\n     * | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `true`    | - Enable the [`Comments`](@/api/comments.md) plugin<br>- Add comment menu items to the [context menu](@/guides/accessories-and-menus/context-menu/context-menu.md)                                 |\n     * | `false`   | Disable the [`Comments`](@/api/comments.md) plugin                                                                                                                                    |\n     * | An object | - Enable the [`Comments`](@/api/comments.md) plugin<br>- Add comment menu items to the [context menu](@/guides/accessories-and-menus/context-menu/context-menu.md)<br>- Configure comment settings |\n     *\n     * If you set the `comments` option to an object, you can configure the following comment options:\n     *\n     * | Option         | Possible settings           | Description                                         |\n     * | -------------- | --------------------------- | --------------------------------------------------- |\n     * | `displayDelay` | A number (default: `250`)   | Display comments after a delay (in milliseconds)    |\n     * | `readOnly`     | `true` \\| `false` (default) | `true`: Make comments read-only                     |\n     * | `style`        | An object                   | Set comment boxes' `width` and `height` (in pixels) |\n     *\n     * Read more:\n     * - [Comments](@/guides/cell-features/comments/comments.md)\n     * - [Context menu](@/guides/accessories-and-menus/context-menu/context-menu.md)\n     * - [`width`](#width)\n     * - [`height`](#height)\n     * - [`readOnly`](#readOnly)\n     * - [`commentedCellClassName`](#commentedCellClassName)\n     *\n     * @memberof Options#\n     * @type {boolean|object[]}\n     * @default false\n     * @category Comments\n     *\n     * @example\n     * ```js\n     * // enable the `Comments` plugin\n     * comments: true,\n     *\n     * // enable the `Comments` plugin\n     * // and configure its settings\n     * comments: {\n     *   // display all comments with a 1-second delay\n     *   displayDelay: 1000,\n     *   // make all comments read-only\n     *   readOnly: true,\n     *   // set the default size of all comment boxes\n     *   style: {\n     *     width: 300,\n     *     height: 100\n     *   }\n     * }\n     * ```\n     */\n    comments: false,\n    /**\n     * @description\n     * The `contextMenu` option configures the [`ContextMenu`](@/api/contextMenu.md) plugin.\n     *\n     * You can set the `contextMenu` option to one of the following:\n     *\n     * | Setting   | Description                                                                                                                                                                                             |\n     * | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `false`   | Disable the [`ContextMenu`](@/api/contextMenu.md) plugin                                                                                                                                                |\n     * | `true`    | - Enable the [`ContextMenu`](@/api/contextMenu.md) plugin<br>- Use the [default context menu options](@/guides/accessories-and-menus/context-menu/context-menu.md#context-menu-with-default-options)                 |\n     * | An array  | - Enable the [`ContextMenu`](@/api/contextMenu.md) plugin<br>- Modify [individual context menu options](@/guides/accessories-and-menus/context-menu/context-menu.md#context-menu-with-specific-options)              |\n     * | An object | - Enable the [`ContextMenu`](@/api/contextMenu.md) plugin<br>- Apply a [custom context menu configuration](@/guides/accessories-and-menus/context-menu/context-menu.md#context-menu-with-a-fully-custom-configuration) |\n     *\n     * Read more:\n     * - [Context menu](@/guides/accessories-and-menus/context-menu/context-menu.md)\n     * - [Context menu: Context menu with default options](@/guides/accessories-and-menus/context-menu/context-menu.md#context-menu-with-default-options)\n     * - [Context menu: Context menu with specific options](@/guides/accessories-and-menus/context-menu/context-menu.md#context-menu-with-specific-options)\n     * - [Context menu: Context menu with fully custom configuration options](@/guides/accessories-and-menus/context-menu/context-menu.md#context-menu-with-a-fully-custom-configuration)\n     * - [Plugins: `ContextMenu`](@/api/contextMenu.md)\n     *\n     * @memberof Options#\n     * @type {boolean|string[]|object}\n     * @default undefined\n     * @category ContextMenu\n     *\n     * @example\n     * ```js\n     * // enable the `ContextMenu` plugin\n     * // use the default context menu options\n     * contextMenu: true,\n     *\n     * // enable the `ContextMenu` plugin\n     * // and modify individual context menu options\n     * contextMenu: ['row_above', 'row_below', '---------', 'undo', 'redo'],\n     *\n     * // enable the `ContextMenu` plugin\n     * // and apply a custom context menu configuration\n     * contextMenu: {\n     *   items: {\n     *     'option1': {\n     *       name: 'Option 1'\n     *     },\n     *     'option2': {\n     *       name: 'Option 2',\n     *       submenu: {\n     *         items: [\n     *           {\n     *             key: 'option2:suboption1',\n     *             name: 'Suboption 1',\n     *             callback: function(key, options) {\n     *               ...\n     *             }\n     *           },\n     *           ...\n     *         ]\n     *       }\n     *     }\n     *   }\n     * },\n     * ```\n     */\n    contextMenu: undefined,\n    /**\n     * @description\n     * The `copyable` option determines whether a cell's value can be copied to the clipboard or not.\n     *\n     * You can set the `copyable` option to one of the following:\n     *\n     * | Setting                                                                                                        | Description                                                                                                            |\n     * | -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |\n     * | `true` (default)                                                                                               | - On pressing <kbd>**Ctrl**</kbd>/<kbd>**Cmd**</kbd>+<kbd>**C**</kbd>, add the cell's value to the clipboard         |\n     * | `false`<br>(default for the [`password`](@/guides/cell-types/password-cell-type/password-cell-type.md) [cell type](#type))        | - On pressing <kbd>**Ctrl**</kbd>/<kbd>**Cmd**</kbd>+<kbd>**C**</kbd>, add an empty string (`\"\"`) to the clipboard   |\n     *\n     * Read more:\n     * - [Clipboard](@/guides/cell-features/clipboard/clipboard.md)\n     * - [Configuration options: Cascading configuration](@/guides/getting-started/configuration-options/configuration-options.md#cascading-configuration)\n     * - [Password cell type](@/guides/cell-types/password-cell-type/password-cell-type.md)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // enable copying for each cell of the entire grid\n     * copyable: true,\n     *\n     * // enable copying for individual columns\n     * columns: [\n     *   {\n     *     // enable copying for each cell of this column\n     *     copyable: true\n     *   },\n     *   {\n     *     // disable copying for each cell of this column\n     *     copyable: false\n     *   }\n     * ]\n     *\n     * // enable copying for specific cells\n     * cell: [\n     *   {\n     *     col: 0,\n     *     row: 0,\n     *     // disable copying for cell (0, 0)\n     *     copyable: false,\n     *   }\n     * ],\n     * ```\n     */\n    copyable: true,\n    /**\n     * The `copyPaste` option configures the [`CopyPaste`](@/api/copyPaste.md) plugin.\n     *\n     * You can set the `copyPaste` option to one of the following:\n     *\n     * | Setting           | Description                                                                                                            |\n     * | ----------------- | ---------------------------------------------------------------------------------------------------------------------- |\n     * | `true` (default)  | Enable the [`CopyPaste`](@/api/copyPaste.md) plugin with the default configuration                                     |\n     * | `false`           | Disable the [`CopyPaste`](@/api/copyPaste.md) plugin                                                                   |\n     * | An object         | - Enable the [`CopyPaste`](@/api/copyPaste.md) plugin<br>- Modify the [`CopyPaste`](@/api/copyPaste.md) plugin options |\n     *\n     * ##### copyPaste: Additional options\n     *\n     * If you set the `copyPaste` option to an object, you can set the following `CopyPaste` plugin options:\n     *\n     * | Option                   | Possible settings                                  | Description                                                                                                                                                                                         |\n     * | ------------------------ | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `columnsLimit`           | A number (default: `Infinity`)                     | The maximum number of columns that can be copied                                                                                                                                                    |\n     * | `rowsLimit`              | A number (default: `Infinity`)                     | The maximum number of columns that can be copied                                                                                                                                                    |\n     * | `pasteMode`              | `'overwrite'` \\| `'shift_down'` \\| `'shift_right'` | When pasting:<br>`'overwrite'`: overwrite the currently-selected cells<br>`'shift_down'`: move the currently-selected cells down<br>`'shift_right'`: move the currently-selected cells to the right |\n     * | `copyColumnHeaders`      | Boolean (default: `false`)                         | `true`: add a context menu option for copying cells along with their nearest column headers                                                                                                         |\n     * | `copyColumnGroupHeaders` | Boolean (default: `false`)                         | `true`: add a context menu option for copying cells along with all their related columns headers                                                                                                    |\n     * | `copyColumnHeadersOnly`  | Boolean (default: `false`)                         | `true`: add a context menu option for copying column headers nearest to the selected cells (without copying cells)                                                                    |\n     * | `uiContainer`            | An HTML element                                    | The UI container for the secondary focusable element                                                                                                                                                |\n     *\n     * Read more:\n     * - [Plugins: `CopyPaste`](@/api/copyPaste.md)\n     * - [Guides: Clipboard](@/guides/cell-features/clipboard/clipboard.md)\n     *\n     * @memberof Options#\n     * @type {object|boolean}\n     * @default true\n     * @category CopyPaste\n     *\n     * @example\n     * ```js\n     * // enable the plugin with the default configuration\n     * copyPaste: true // set by default\n     *\n     * // disable the plugin\n     * copyPaste: false,\n     *\n     * // enable the plugin with a custom configuration\n     * copyPaste: {\n     *   // set a maximum number of columns that can be copied\n     *   columnsLimit: 25,\n     *\n     *   // set a maximum number of rows that can be copied\n     *   rowsLimit: 50,\n     *\n     *   // set the paste behavior\n     *   pasteMode: 'shift_down',\n     *\n     *   // add the option to copy cells along with their nearest column headers\n     *   copyColumnHeaders: true,\n     *\n     *   // add the option to copy cells along with all their related columns headers\n     *   copyColumnGroupHeaders: true,\n     *\n     *   // add the option to copy just column headers (without copying cells)\n     *   copyColumnHeadersOnly: true,\n     *\n     *   // set a UI container\n     *   uiContainer: document.body,\n     * },\n     * ```\n     */\n    copyPaste: true,\n    /**\n     * The `correctFormat` option configures whether incorrectly-formatted times and dates are amended or not.\n     *\n     * When the user enters dates and times, Handsontable can automatically adjust their format\n     * to match the [`dateFormat`](#dateFormat) and [`timeFormat`](@/guides/cell-types/time-cell-type/time-cell-type.md) settings.\n     *\n     * You can set the `correctFormat` option to one of the following:\n     *\n     * | Setting           | Description                                                                                                                                               |\n     * | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `false` (default) | Don't correct the format of the entered date or time (treat the entered date or time as invalid)                                                          |\n     * | `true`            | Correct the format of the entered date or time to match the [`dateFormat`](#dateFormat) or [`timeFormat`](@/guides/cell-types/time-cell-type/time-cell-type.md) settings |\n     *\n     * Read more:\n     * - [Date cell type](@/guides/cell-types/date-cell-type/date-cell-type.md)\n     * - [Time cell type](@/guides/cell-types/time-cell-type/time-cell-type.md)\n     * - [`dateFormat`](#dateFormat)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *   // set the `type` of each cell in this column to `date`\n     *   type: 'date',\n     *   // for every `date` cell of this column, set the date format to `YYYY-MM-DD`\n     *   dateFormat: 'YYYY-MM-DD',\n     *   // enforce the `YYYY-MM-DD` date format\n     *   correctFormat: true\n     *   },\n     *\n     *   {\n     *   // set the `type` of each cell in this column to `time`\n     *   type: 'time',\n     *   // for every `time` cell of this column, set the time format to `h:mm:ss a`\n     *   timeFormat: 'h:mm:ss a',\n     *   // enforce the `h:mm:ss a` time format\n     *   correctFormat: true\n     *   },\n     * ],\n     * ```\n     */\n    correctFormat: false,\n    /**\n     * The `currentColClassName` option lets you add a CSS class name\n     * to each cell of the currently-visible, currently-selected columns.\n     *\n     * Read more:\n     * - [`currentRowClassName`](#currentRowClassName)\n     * - [`currentHeaderClassName`](#currentHeaderClassName)\n     * - [`activeHeaderClassName`](#activeHeaderClassName)\n     * - [`invalidCellClassName`](#invalidCellClassName)\n     * - [`placeholderCellClassName`](#placeholderCellClassName)\n     * - [`readOnlyCellClassName`](#readOnlyCellClassName)\n     * - [`commentedCellClassName`](#commentedCellClassName)\n     * - [`noWordWrapClassName`](#noWordWrapClassName)\n     * - [`TableClassName`](#TableClassName)\n     * - [`className`](#className)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // add a `your-class-name` CSS class name\n     * // to each cell of the currently-visible, currently-selected columns\n     * currentColClassName: 'your-class-name',\n     * ```\n     */\n    currentColClassName: undefined,\n    /**\n     * The `currentHeaderClassName` option lets you add a CSS class name\n     * to every currently-visible, currently-selected header.\n     *\n     * Read more:\n     * - [`currentRowClassName`](#currentRowClassName)\n     * - [`currentColClassName`](#currentColClassName)\n     * - [`activeHeaderClassName`](#activeHeaderClassName)\n     * - [`invalidCellClassName`](#invalidCellClassName)\n     * - [`readOnlyCellClassName`](#readOnlyCellClassName)\n     * - [`commentedCellClassName`](#commentedCellClassName)\n     * - [`noWordWrapClassName`](#noWordWrapClassName)\n     * - [`TableClassName`](#TableClassName)\n     * - [`className`](#className)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default 'ht__highlight'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // add an `ht__highlight` CSS class name\n     * // to every currently-visible, currently-selected header\n     * currentHeaderClassName: 'ht__highlight',\n     * ```\n     */\n    currentHeaderClassName: 'ht__highlight',\n    /**\n     * The `currentRowClassName` option lets you add a CSS class name\n     * to each cell of the currently-visible, currently-selected rows.\n     *\n     * Read more:\n     * - [`currentColClassName`](#currentColClassName)\n     * - [`currentHeaderClassName`](#currentHeaderClassName)\n     * - [`activeHeaderClassName`](#activeHeaderClassName)\n     * - [`invalidCellClassName`](#invalidCellClassName)\n     * - [`placeholderCellClassName`](#placeholderCellClassName)\n     * - [`readOnlyCellClassName`](#readOnlyCellClassName)\n     * - [`commentedCellClassName`](#commentedCellClassName)\n     * - [`noWordWrapClassName`](#noWordWrapClassName)\n     * - [`TableClassName`](#TableClassName)\n     * - [`className`](#className)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // add a `your-class-name` CSS class name\n     * // to each cell of the currently-visible, currently-selected rows\n     * currentRowClassName: 'your-class-name',\n     * ```\n     */\n    currentRowClassName: undefined,\n    /**\n     * @description\n     * The `customBorders` option configures the [`CustomBorders`](@/api/customBorders.md) plugin.\n     *\n     * To enable the [`CustomBorders`](@/api/customBorders.md) plugin\n     * (and add its menu items to the [context menu](@/guides/accessories-and-menus/context-menu/context-menu.md)),\n     * set the `customBorders` option to `true`.\n     *\n     * To enable the [`CustomBorders`](@/api/customBorders.md) plugin\n     * and add a predefined border around a particular cell,\n     * set the `customBorders` option to an array of objects.\n     * Each object represents a border configuration for one cell, and has the following properties:\n     *\n     * | Property | Sub-properties     | Types                              | Description                                                       |\n     * | -------- | ------------------ | ---------------------------------- | ----------------------------------------------------------------- |\n     * | `row`    | -                  | `row`: Number                      | The cell's row coordinate.                                        |\n     * | `col`    | -                  | `col`: Number                      | The cell's column coordinate.                                     |\n     * | `start`  | `width`<br>`color` | `width`: Number<br>`color`: String | If the [layout direction](@/guides/internationalization/layout-direction/layout-direction.md) is LTR (default): `start` sets the width (`width`) and color (`color`) of the left-hand border.<br><br>If the [layout direction](@/guides/internationalization/layout-direction/layout-direction.md) is RTL: `start` sets the width (`width`) and color (`color`) of the right-hand border. |\n     * | `end`    | `width`<br>`color` | `width`: Number<br>`color`: String | If the [layout direction](@/guides/internationalization/layout-direction/layout-direction.md) is LTR (default): `end` sets the width (`width`) and color (`color`) of the right-hand border.<br><br>If the [layout direction](@/guides/internationalization/layout-direction/layout-direction.md) is RTL: `end` sets the width (`width`) and color (`color`) of the left-hand border. |\n     * | `top`    | `width`<br>`color` | `width`: Number<br>`color`: String | Sets the width (`width`) and color (`color`) of the top border. |\n     * | `bottom` | `width`<br>`color` | `width`: Number<br>`color`: String | Sets the width (`width`) and color (`color`) of the bottom border. |\n     *\n     * To enable the [`CustomBorders`](@/api/customBorders.md) plugin\n     * and add a predefined border around a range of cells,\n     * set the `customBorders` option to an array of objects.\n     * Each object represents a border configuration for a single range of cells, and has the following properties:\n     *\n     * | Property | Sub-properties                               | Types                                                            | Description                                                                                  |\n     * | -------- | -------------------------------------------- | ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |\n     * | `range`  | `from` {`row`, `col`}<br>`to` {`row`, `col`} | `from`: Object<br>`to`: Object<br>`row`: Number<br>`col`: Number | If the [layout direction](@/guides/internationalization/layout-direction/layout-direction.md) is LTR (default):<br>- `from` selects the range's top-left corner.<br>- `to` selects the range's bottom-right corner.<br><br>If the [layout direction](@/guides/internationalization/layout-direction/layout-direction.md) is RTL: <br>- `from` selects the range's top-right corner.<br>- `to` selects the range's bottom-left corner. |\n     * | `start`  | `width`<br>`color` | `width`: Number<br>`color`: String | If the [layout direction](@/guides/internationalization/layout-direction/layout-direction.md) is LTR (default): `start` sets the width (`width`) and color (`color`) of the left-hand border.<br><br>If the [layout direction](@/guides/internationalization/layout-direction/layout-direction.md) is RTL: `start` sets the width (`width`) and color (`color`) of the right-hand border. |\n     * | `end`    | `width`<br>`color` | `width`: Number<br>`color`: String | If the [layout direction](@/guides/internationalization/layout-direction/layout-direction.md) is LTR (default): `end` sets the width (`width`) and color (`color`) of the right-hand border.<br><br>If the [layout direction](@/guides/internationalization/layout-direction/layout-direction.md) is RTL: `end` sets the width (`width`) and color (`color`) of the left-hand border. |\n     * | `top`    | `width`<br>`color`                           | `width`: Number<br>`color`: String                               | Sets the width (`width`) and color (`color`) of the top border. |\n     * | `bottom` | `width`<br>`color`                           | `width`: Number<br>`color`: String                               | Sets the width (`width`) and color (`color`) of the bottom border. |\n     *\n     * Read more:\n     * - [Formatting cells: Custom cell borders](@/guides/cell-features/formatting-cells/formatting-cells.md#custom-cell-borders)\n     * - [Context menu](@/guides/accessories-and-menus/context-menu/context-menu.md)\n     * - [Plugins: `CustomBorders`](@/api/customBorders.md)\n     * - [Layout direction](@/guides/internationalization/layout-direction/layout-direction.md)\n     * - [`layoutDirection`](#layoutDirection)\n     *\n     * @memberof Options#\n     * @type {boolean|object[]}\n     * @default false\n     * @category CustomBorders\n     *\n     * @example\n     * ```js\n     * // enable the `CustomBorders` plugin\n     * customBorders: true,\n     *\n     * // enable the `CustomBorders` plugin\n     * // and add a predefined border for a particular cell\n     * customBorders: [\n     *   // add an object with a border configuration for one cell\n     *   {\n     *     // set the cell's row coordinate\n     *     row: 2,\n     *     // set the cell's column coordinate\n     *     col: 2,\n     *     // set the left/right border's width and color\n     *     start: {\n     *       width: 2,\n     *       color: 'red'\n     *     },\n     *     // set the right/left border's width and color\n     *     end: {\n     *       width: 1,\n     *       color: 'green'\n     *     },\n     *     // set the top border's width and color\n     *     top: '',\n     *     // set the bottom border's width and color\n     *     bottom: ''\n     *   }\n     * ],\n     *\n     * // enable the `CustomBorders` plugin\n     * // and add a predefined border for a range of cells\n     * customBorders: [\n     *   // add an object with a border configuration for one range of cells\n     *   {\n     *     // select a range of cells\n     *     range: {\n     *       // set the range's top-left corner\n     *       from: {\n     *         row: 1,\n     *         col: 1\n     *       },\n     *       // set the range's bottom-right corner\n     *       to: {\n     *         row: 3,\n     *         col: 4\n     *       }\n     *     },\n     *     // set the left/right border's width and color\n     *     start: {\n     *       width: 2,\n     *       color: 'red'\n     *     },\n     *     // set the right/left border's width and color\n     *     end: {},\n     *     // set the top border's width and color\n     *     top: {},\n     *     // set the bottom border's width and color\n     *     bottom: {}\n     *   }\n     * ],\n     * ```\n     */\n    customBorders: false,\n    /**\n     * @description\n     * The `data` option sets the initial [data](@/guides/getting-started/binding-to-data/binding-to-data.md) of your Handsontable instance.\n     *\n     * Handsontable's data is bound to your source data by reference (i.e. when you edit Handsontable's data, your source data alters as well).\n     *\n     * You can set the `data` option:\n     * - Either to an [array of arrays](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-arrays).\n     * - Or to an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects).\n     *\n     * If you don't set the `data` option (or set it to `null`), Handsontable renders as an empty 5x5 grid by default.\n     *\n     * Read more:\n     * - [Binding to data](@/guides/getting-started/binding-to-data/binding-to-data.md)\n     * - [`dataSchema`](#dataSchema)\n     * - [`startRows`](#startRows)\n     * - [`startCols`](#startCols)\n     *\n     * @memberof Options#\n     * @type {Array[]|object[]}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // as an array of arrays\n     * data: [\n     *   ['A', 'B', 'C'],\n     *   ['D', 'E', 'F'],\n     *   ['G', 'H', 'J']\n     * ]\n     *\n     * // as an array of objects\n     * data: [\n     *   {id: 1, name: 'Ted Right'},\n     *   {id: 2, name: 'Frank Honest'},\n     *   {id: 3, name: 'Joan Well'},\n     *   {id: 4, name: 'Gail Polite'},\n     *   {id: 5, name: 'Michael Fair'},\n     * ]\n     * ```\n     */\n    data: undefined,\n    /**\n     * @description\n     * If `true`, Handsontable will interpret the dots in the columns mapping as a nested object path. If your dataset contains\n     * the dots in the object keys and you don't want Handsontable to interpret them as a nested object path, set this option to `false`.\n     *\n     * The option only works when defined in the global table settings.\n     *\n     * @since 14.4.0\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // All dots are interpreted as nested object paths\n     * dataDotNotation: true,\n     * data: [\n     *   { id: 1, name: { first: 'Ted', last: 'Right' }, user: { address: '1234 Any Street' } },\n     * ],\n     * columns={[\n     *   { data: 'name.first' },\n     *   { data: 'user.address' },\n     * ]},\n     * ```\n     * ```js\n     * // All dots are interpreted as simple object keys\n     * dataDotNotation: false,\n     * data: [\n     *   { id: 1, 'name.first': 'Ted', 'user.address': '1234 Any Street' },\n     * ],\n     * columns={[\n     *   { data: 'name.first' },\n     *   { data: 'user.address' },\n     * ]},\n     * ```\n     */\n    dataDotNotation: true,\n    /**\n     * @description\n     * When the [`data`](#data) option is set to an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects)\n     * (or is empty), the `dataSchema` option defines the structure of new rows.\n     *\n     * Using the `dataSchema` option, you can start out with an empty grid.\n     *\n     * You can set the `dataSchema` option to one of the following:\n     * - An object\n     * - A function\n     *\n     * Read more:\n     * - [Binding to data: Array of objects with custom data schema](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects-with-custom-data-schema)\n     * - [Binding to data: Function data source and schema](@/guides/getting-started/binding-to-data/binding-to-data.md#function-data-source-and-schema)\n     * - [`data`](#data)\n     *\n     * @memberof Options#\n     * @type {object|Function}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // with `dataSchema`, you can start with an empty grid\n     * data: null,\n     * dataSchema: {id: null, name: {first: null, last: null}, address: null},\n     * colHeaders: ['ID', 'First Name', 'Last Name', 'Address'],\n     * columns: [\n     *   {data: 'id'},\n     *   {data: 'name.first'},\n     *   {data: 'name.last'},\n     *   {data: 'address'}\n     * ],\n     * startRows: 5,\n     * minSpareRows: 1\n     * ```\n     */\n    dataSchema: undefined,\n    /**\n     * The `dateFormat` option configures the date format accepted by [`date`](@/guides/cell-types/date-cell-type/date-cell-type.md) cells.\n     *\n     * You can set the `dateFormat` option to a string with a proper date format. The default value is: `'DD/MM/YYYY'`.\n     *\n     * To automatically correct dates whose format doesn't match the `dateFormat` setting, use the [`correctFormat`](#correctFormat) option.\n     *\n     * Read more:\n     * - [Date cell type](@/guides/cell-types/date-cell-type/date-cell-type.md)\n     * - [`correctFormat`](#correctFormat)\n     * - [`defaultDate`](#defaultDate)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default 'DD/MM/YYYY'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *   // set the `type` of each cell in this column to `date`\n     *   type: 'date',\n     *   // for every `date` cell of this column, set the date format to `YYYY-MM-DD`\n     *   dateFormat: 'YYYY-MM-DD',\n     *   },\n     * ],\n     * ```\n     */\n    dateFormat: 'DD/MM/YYYY',\n    /**\n     * The `timeFormat` option configures the time format accepted by [`time`](@/guides/cell-types/time-cell-type/time-cell-type.md) cells.\n     *\n     * You can set the `timeFormat` option to a string with a proper time format. The default value is: `'h:mm:ss a'`.\n     *\n     * To automatically correct times whose format doesn't match the `timeFormat` setting, use the [`correctFormat`](#correctFormat) option.\n     *\n     * Read more:\n     * - [Time cell type](@/guides/cell-types/time-cell-type/time-cell-type.md)\n     * - [`correctFormat`](#correctFormat)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default 'h:mm:ss a'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *   // set the `type` of each cell in this column to `time`\n     *   type: 'time',\n     *   // for every `time` cell of this column, set the time format to `h:mm:ss a`\n     *   timeFormat: 'h:mm:ss a',\n     *   },\n     * ],\n     * ```\n     */\n    timeFormat: 'h:mm:ss a',\n    /**\n     * The `datePickerConfig` option configures the `date` [cell editor](@/guides/cell-functions/cell-editor/cell-editor.md)'s date picker, which uses an external dependency: [Pikaday](https://github.com/Pikaday/Pikaday/tree/1.8.2).\n     *\n     * You can set the `datePickerConfig` option to an object with any of the available [Pikaday options](https://github.com/Pikaday/Pikaday/tree/1.8.2#configuration),\n     * except for the following, which are always overwritten by the `date` [cell editor](@/guides/cell-functions/cell-editor/cell-editor.md):\n     * - `bound`\n     * - `container`\n     * - `field`\n     * - `trigger`\n     *\n     * If the `datePickerConfig` option is not defined, the `date` [cell editor](@/guides/cell-functions/cell-editor/cell-editor.md) overwrites the following [Pikaday options](https://github.com/Pikaday/Pikaday/tree/1.8.2#configuration) as well:\n     *\n     * | Pikaday option       | Handsontable's setting |\n     * | -------------------- | ---------------------- |\n     * | `format`             | `'DD/MM/YYYY'`         |\n     * | `reposition`         | `false`                |\n     *\n     * Read more:\n     * - [`editor`](#editor)\n     * - [`dateFormat`](#dateFormat)\n     * - [Cell editor](@/guides/cell-functions/cell-editor/cell-editor.md)\n     * - [All Pikaday options &#8594;](https://github.com/Pikaday/Pikaday/tree/1.8.2#configuration)\n     *\n     * @memberof Options#\n     * @type {object}\n     * @default undefined\n     * @category Core\n     */\n    datePickerConfig: undefined,\n    /**\n     * The `defaultDate` option configures the date displayed\n     * in empty [`date`](@/guides/cell-types/date-cell-type/date-cell-type.md) cells.\n     *\n     * You can set the `defaultDate` option to a string.\n     *\n     * Read more:\n     * - [Date cell type](@/guides/cell-types/date-cell-type/date-cell-type.md)\n     * - [`dateFormat`](#dateFormat)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *     // set the `type` of each cell in this column to `date`\n     *     type: 'date',\n     *     // in every empty `date` cell of this column, display `2015-02-02`\n     *     defaultDate: '2015-02-02'\n     *   }\n     * ],\n     * ```\n     */\n    defaultDate: undefined,\n    /**\n     * @description\n     * The `disableVisualSelection` option configures how\n     * [selection](@/guides/cell-features/selection/selection.md) is shown.\n     *\n     * You can set the `disableVisualSelection` option to one of the following:\n     *\n     * | Setting           | Description                                                                                         |\n     * | ----------------- | --------------------------------------------------------------------------------------------------- |\n     * | `false` (default) | - Show single-cell selection<br>- Show range selection<br>- Show header selection                   |\n     * | `true`            | - Don't show single-cell selection<br>- Don't show range selection<br>- Don't show header selection |\n     * | `'current'`       | - Don't show single-cell selection<br>- Show range selection<br>- Show header selection             |\n     * | `'area'`          | - Show single-cell selection<br>- Don't show range selection<br>- Show header selection             |\n     * | `'header'`        | - Show single-cell selection<br>- Show range selection<br>- Don't show header selection             |\n     * | An array          | A combination of `'current'`, `'area'`, and/or `'header'`                                           |\n     *\n     * Read more:\n     * - [Selection](@/guides/cell-features/selection/selection.md)\n     *\n     * @memberof Options#\n     * @type {boolean|string|string[]}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // don't show single-cell selection\n     * // don't show range selection\n     * // don't show header selection\n     * disableVisualSelection: true,\n     *\n     * // don't show single-cell selection\n     * // show range selection\n     * // show header selection\n     * disableVisualSelection: 'current',\n     *\n     * // don't show single-cell selection\n     * // don't show range selection\n     * // show header selection\n     * disableVisualSelection: ['current', 'area'],\n     * ```\n     */\n    disableVisualSelection: false,\n    /**\n     * @description\n     * The `dragToScroll` option configures the [`DragToScroll`](@/api/dragToScroll.md) plugin.\n     *\n     * You can set the `dragToScroll` option to one of the following:\n     *\n     * | Setting          | Description                                                                 |\n     * | ---------------- | --------------------------------------------------------------------------- |\n     * | `true` (default) | When selection reaches the edge of the grid's viewport, scroll the viewport |\n     * | `false`          | Don't scroll the viewport                                                   |\n     *\n     * Read more:\n     * - [Plugins: `DragToScroll`](@/api/dragToScroll.md)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category DragToScroll\n     *\n     * @example\n     * ```js\n     * // when selection reaches the edge of the grid's viewport, scroll the viewport\n     * dragToScroll: true,\n     * ```\n     */\n    dragToScroll: true,\n    /**\n     * The `dropdownMenu` option configures the [`DropdownMenu`](@/api/dropdownMenu.md) plugin.\n     *\n     * You can set the `dropdownMenu` option to one of the following:\n     *\n     * | Setting   | Description                                                                                                                                                                                  |\n     * | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `false`   | Disable the [`DropdownMenu`](@/api/dropdownMenu.md) plugin                                                                                                                                   |\n     * | `true`    | - Enable the [`DropdownMenu`](@/api/dropdownMenu.md) plugin<br>- Use the [default context menu options](@/guides/accessories-and-menus/context-menu/context-menu.md#context-menu-with-default-options)    |\n     * | An array  | - Enable the [`DropdownMenu`](@/api/dropdownMenu.md) plugin<br>- Modify [individual context menu options](@/guides/accessories-and-menus/context-menu/context-menu.md#context-menu-with-specific-options) |\n     * | An object | - Enable the [`DropdownMenu`](@/api/dropdownMenu.md) plugin<br>- Apply a custom dropdown menu configuration                                                                                  |\n     *\n     * Read more:\n     * - [Context menu](@/guides/accessories-and-menus/context-menu/context-menu.md)\n     * - [Plugins: `DropdownMenu`](@/api/dropdownMenu.md)\n     *\n     * @memberof Options#\n     * @type {boolean|object|string[]}\n     * @default undefined\n     * @category DropdownMenu\n     *\n     * @example\n     * ```js\n     * // enable the `DropdownMenu` plugin\n     * // use the default context menu options\n     * dropdownMenu: true,\n     *\n     * // enable the `DropdownMenu` plugin\n     * // and modify individual context menu options\n     * dropdownMenu: ['---------', 'undo', 'redo'],\n     *\n     * // enable the `DropdownMenu` plugin\n     * // and apply a custom dropdown menu configuration\n     * dropdownMenu: {\n     *   items: {\n     *     'option1': {\n     *       name: 'Option 1'\n     *     },\n     *     'option2': {\n     *       name: 'Option 2',\n     *       submenu: {\n     *         items: [\n     *           {\n     *             key: 'option2:suboption1',\n     *             name: 'Suboption 1',\n     *             callback(key, options) {\n     *               ...\n     *             }\n     *           },\n     *           ...\n     *         ]\n     *       }\n     *     }\n     *   }\n     * },\n     * ```\n     */\n    dropdownMenu: undefined,\n    /**\n     * The `editor` option sets a [cell editor](@/guides/cell-functions/cell-editor/cell-editor.md) for a cell.\n     *\n     * You can set the `editor` option to one of the following [cell editor aliases](@/guides/cell-functions/cell-editor/cell-editor.md):\n     *\n     * | Alias               | Cell editor function                                                       |\n     * | ------------------- | -------------------------------------------------------------------------- |\n     * | A custom alias      | Your [custom cell editor](@/guides/cell-functions/cell-editor/cell-editor.md) function |\n     * | `'autocomplete'`    | `AutocompleteEditor`                                                       |\n     * | `'base'`            | `BaseEditor`                                                               |\n     * | `'checkbox'`        | `CheckboxEditor`                                                           |\n     * | `'date'`            | `DateEditor`                                                               |\n     * | `'dropdown'`        | `DropdownEditor`                                                           |\n     * | `'handsontable'`    | `HandsontableEditor`                                                       |\n     * | `'numeric'`         | `NumericEditor`                                                            |\n     * | `'password'`        | `PasswordEditor`                                                           |\n     * | `'select'`          | `SelectEditor`                                                             |\n     * | `'text'`            | `TextEditor`                                                               |\n     * | `'time'`            | `TimeEditor`                                                               |\n     *\n     * To disable editing cells through cell editors,\n     * set the `editor` option to `false`.\n     * You'll still be able to change cells' content through Handsontable's API\n     * or through plugins (e.g. [`CopyPaste`](@/api/copyPaste.md)), though.\n     *\n     * To set the [`editor`](#editor), [`renderer`](#renderer), and [`validator`](#validator)\n     * options all at once, use the [`type`](#type) option.\n     *\n     * Read more:\n     * - [Cell editor](@/guides/cell-functions/cell-editor/cell-editor.md)\n     * - [Cell type](@/guides/cell-types/cell-type/cell-type.md)\n     * - [Configuration options: Cascading configuration](@/guides/getting-started/configuration-options/configuration-options.md#cascading-configuration)\n     * - [`type`](#type)\n     *\n     * @memberof Options#\n     * @type {string|Function|boolean}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // use the `numeric` editor for each cell of the entire grid\n     * editor: 'numeric',\n     *\n     * // apply the `editor` option to individual columns\n     * columns: [\n     *   {\n     *     // use the `autocomplete` editor for each cell of this column\n     *     editor: 'autocomplete'\n     *   },\n     *   {\n     *     // disable editing cells through cell editors for each cell of this column\n     *     editor: false\n     *   }\n     * ]\n     * ```\n     */\n    editor: undefined,\n    /**\n     * The `enterBeginsEditing` option configures the action of the <kbd>**Enter**</kbd> key.\n     *\n     * You can set the `enterBeginsEditing` option to one of the following:\n     *\n     * | Setting          | Description                                                                                                                                                                                               |\n     * | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `true` (default) | - On pressing <kbd>**Enter**</kbd> once, enter the editing mode of the active cell<br>- On pressing <kbd>**Enter**</kbd> twice, move to another cell,<br>as configured by the [`enterMoves`](#enterMoves) setting |\n     * | `false`          | - On pressing <kbd>**Enter**</kbd> once, move to another cell,<br>as configured by the [`enterMoves`](#enterMoves) setting                                                                                    |\n     *\n     * Read more:\n     * - [`enterMoves`](#enterMoves)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // press Enter once to start editing\n     * // press Enter twice to move to another cell\n     * enterBeginsEditing: true,\n     *\n     * // press Enter once to move to another cell\n     * enterBeginsEditing: false,\n     * ```\n     */\n    enterBeginsEditing: true,\n    /**\n     * The `enterMoves` option configures the action of the <kbd>**Enter**</kbd> key.\n     *\n     * If the [`enterBeginsEditing`](#enterBeginsEditing) option is set to `true`,\n     * the `enterMoves` setting applies to the **second** pressing of the <kbd>**Enter**</kbd> key.\n     *\n     * If the [`enterBeginsEditing`](#enterBeginsEditing) option is set to `false`,\n     * the `enterMoves` setting applies to the **first** pressing of the <kbd>**Enter**</kbd> key.\n     *\n     * You can set the `enterMoves` option to an object with the following properties\n     * (or to a function that returns such an object):\n     *\n     * | Property | Type   | Description                                                                                                                                              |\n     * | -------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `col`    | Number | - On pressing <kbd>**Enter**</kbd>, move selection `col` columns right<br>- On pressing <kbd>**Shift**</kbd>+<kbd>**Enter**</kbd>, move selection `col` columns left |\n     * | `row`    | Number | - On pressing <kbd>**Enter**</kbd>, move selection `row` rows down<br>- On pressing <kbd>**Shift**</kbd>+<kbd>**Enter**</kbd>, move selection `row` rows up          |\n     *\n     * Read more:\n     * - [`enterBeginsEditing`](#enterBeginsEditing)\n     *\n     * @memberof Options#\n     * @type {object|Function}\n     * @default {col: 0, row: 1}\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // on pressing Enter, move selection 1 column right and 1 row down\n     * // on pressing Shift+Enter, move selection 1 column left and 1 row up\n     * enterMoves: {col: 1, row: 1},\n     *\n     * // the same setting, as a function\n     * // `event` is a DOM Event object received on pressing Enter\n     * // you can use it to check whether the user pressed Enter or Shift+Enter\n     * enterMoves(event) {\n     *   return {col: 1, row: 1};\n     * },\n     * ```\n     */\n    enterMoves: {\n      col: 0,\n      row: 1\n    },\n    /**\n     * The `fillHandle` option configures the [Autofill](@/api/autofill.md) plugin.\n     *\n     * You can set the `fillHandle` option to one the following:\n     *\n     * | Setting        | Description                                                                |\n     * | -------------- | -------------------------------------------------------------------------- |\n     * | `true`         | - Enable autofill in all directions<br>- Add the fill handle               |\n     * | `false`        | Disable autofill                                                           |\n     * | `'vertical'`   | - Enable vertical autofill<br>- Add the fill handle                        |\n     * | `'horizontal'` | - Enable horizontal autofill<br>- Add the fill handle                      |\n     * | An object      | - Enable autofill<br>- Add the fill handle<br>- Configure autofill options |\n     *\n     * If you set the `fillHandle` option to an object, you can configure the following autofill options:\n     *\n     * | Option          | Possible settings              | Description                                                                                               |\n     * | --------------- | ------------------------------ | --------------------------------------------------------------------------------------------------------- |\n     * | `autoInsertRow` | `true` (default) \\| `false`    | `true`: When you reach the grid's bottom, add new rows<br>`false`: When you reach the grid's bottom, stop |\n     * | `direction`     | `'vertical'` \\| `'horizontal'` | `'vertical'`: Enable vertical autofill<br>`'horizontal'`: Enable horizontal autofill                      |\n     *\n     * Read more:\n     * - [AutoFill values](@/guides/cell-features/autofill-values/autofill-values.md)\n     *\n     * @memberof Options#\n     * @type {boolean|string|object}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // enable autofill in all directions\n     * // with `autoInsertRow` enabled\n     * fillHandle: true,\n     *\n     * // enable vertical autofill\n     * // with `autoInsertRow` enabled\n     * fillHandle: 'vertical',\n     *\n     * // enable horizontal autofill\n     * // with `autoInsertRow` enabled\n     * fillHandle: 'horizontal',\n     *\n     * // enable autofill in all directions\n     * // with `autoInsertRow` disabled\n     * fillHandle: {\n     *   autoInsertRow: false,\n     * },\n     *\n     * // enable vertical autofill\n     * // with `autoInsertRow` disabled\n     * fillHandle: {\n     *   autoInsertRow: false,\n     *   direction: 'vertical'\n     * },\n     * ```\n     */\n    fillHandle: {\n      autoInsertRow: false\n    },\n    /**\n     * The `filter` option configures whether [`autocomplete`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md) cells'\n     * lists are updated by the end user's input.\n     *\n     * You can set the `filter` option to one of the following:\n     *\n     * | Setting          | Description                                                                                                           |\n     * | ---------------- | --------------------------------------------------------------------------------------------------------------------- |\n     * | `true` (default) | When the end user types into the input area, only options matching the input are displayed                            |\n     * | `false`          | When the end user types into the input area, all options are displayed<br>(options matching the input are put in bold |\n     *\n     * Read more:\n     * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)\n     * - [`source`](#source)\n     * - [`filteringCaseSensitive`](#filteringCaseSensitive)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [{\n     *   // set the `type` of each cell in this column to `autocomplete`\n     *   type: 'autocomplete',\n     *   // set options available in every `autocomplete` cell of this column\n     *   source: ['A', 'B', 'C'],\n     *   // when the end user types in `A`, display only the A option\n     *   // when the end user types in `B`, display only the B option\n     *   // when the end user types in `C`, display only the C option\n     *   filter: true\n     * }],\n     * ```\n     */\n    filter: true,\n    /**\n     * The `filteringCaseSensitive` option configures whether [`autocomplete`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md) cells'\n     * input is case-sensitive.\n     *\n     * You can set the `filteringCaseSensitive` option to one of the following:\n     *\n     * | Setting           | Description                                                                                        |\n     * | ----------------- | -------------------------------------------------------------------------------------------------- |\n     * | `false` (default) | [`autocomplete`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md) cells' input is not case-sensitive |\n     * | `true`            | [`autocomplete`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md) cells' input is case-sensitive     |\n     *\n     * Read more:\n     * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)\n     * - [`source`](#source)\n     * - [`filter`](#filter)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *     type: 'autocomplete',\n     *     source: [ ... ],\n     *     // match case while searching autocomplete options\n     *     filteringCaseSensitive: true\n     *   }\n     * ],\n     * ```\n     */\n    filteringCaseSensitive: false,\n    /**\n     * The `filters` option configures the [`Filters`](@/api/filters.md) plugin.\n     *\n     * You can set the `filters` option to one of the following:\n     *\n     * | Setting | Description                                      |\n     * | ------- | ------------------------------------------------ |\n     * | `false` | Disable the [`Filters`](@/api/filters.md) plugin |\n     * | `true`  | Enable the [`Filters`](@/api/filters.md) plugin  |\n     *\n     * Read more:\n     * - [Column filter](@/guides/columns/column-filter/column-filter.md)\n     * - [Plugins: `Filters`](@/api/filters.md)\n     * - [`dropdownMenu`](#dropdownMenu)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default undefined\n     * @category Filters\n     *\n     * @example\n     * ```js\n     * // enable the `Filters` plugin\n     * filters: true,\n     * ```\n     */\n    filters: undefined,\n    /**\n     * `fixedColumnsLeft` is a legacy option.\n     *\n     * If your grid's [layout direction](@/guides/internationalization/layout-direction/layout-direction.md) is LTR (default), `fixedColumnsLeft` acts like the [`fixedColumnsStart`](#fixedColumnsStart) option.\n     *\n     * If your grid's [layout direction](@/guides/internationalization/layout-direction/layout-direction.md) is RTL, using `fixedColumnsLeft` throws an error.\n     *\n     * Use [`fixedColumnsStart`](#fixedColumnsStart), which works in any layout direction.\n     *\n     * Read more:\n     * - [`fixedColumnsStart`](#fixedcolumnsstart)\n     *\n     * @memberof Options#\n     * @type {number}\n     * @default 0\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // freeze the first 3 columns from the left\n     * fixedColumnsLeft: 3,\n     * ```\n     */\n    fixedColumnsLeft: 0,\n    /**\n     * If your grid's [layout direction](@/guides/internationalization/layout-direction/layout-direction.md) is LTR (default), the `fixedColumnsStart` option sets the number of [frozen columns](@/guides/columns/column-freezing/column-freezing.md) at the left-hand edge of the grid.\n     *\n     * If your grid's [layout direction](@/guides/internationalization/layout-direction/layout-direction.md) is RTL, the `fixedColumnsStart` option sets the number of [frozen columns](@/guides/columns/column-freezing/column-freezing.md) at the right-hand edge of the grid.\n     *\n     * Read more:\n     * - [Column freezing](@/guides/columns/column-freezing/column-freezing.md)\n     * - [Layout direction](@/guides/internationalization/layout-direction/layout-direction.md)\n     * - [`fixedColumnsLeft`](#fixedcolumnsleft)\n     * - [`layoutDirection`](#layoutDirection)\n     *\n     * @memberof Options#\n     * @type {number}\n     * @default 0\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // when `layoutDirection` is set to `inherit` (default)\n     * // freeze the first 3 columns from the left or from the right\n     * // depending on your HTML document's `dir` attribute\n     * layoutDirection: 'inherit',\n     * fixedColumnsStart: 3,\n     *\n     * // when `layoutDirection` is set to `rtl`\n     * // freeze the first 3 columns from the right\n     * // regardless of your HTML document's `dir` attribute\n     * layoutDirection: 'rtl',\n     * fixedColumnsStart: 3,\n     *\n     * // when `layoutDirection` is set to `ltr`\n     * // freeze the first 3 columns from the left\n     * // regardless of your HTML document's `dir` attribute\n     * layoutDirection: 'ltr',\n     * fixedColumnsStart: 3,\n     * ```\n     */\n    fixedColumnsStart: 0,\n    /**\n     * The `fixedRowsBottom` option sets the number of [frozen rows](@/guides/rows/row-freezing/row-freezing.md)\n     * at the bottom of the grid.\n     *\n     * Read more:\n     * - [Row freezing](@/guides/rows/row-freezing/row-freezing.md)\n     *\n     * @memberof Options#\n     * @type {number}\n     * @default 0\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // freeze the bottom 3 rows\n     * fixedRowsBottom: 3,\n     * ```\n     */\n    fixedRowsBottom: 0,\n    /**\n     * The `fixedRowsTop` option sets the number of [frozen rows](@/guides/rows/row-freezing/row-freezing.md) at the top of the grid.\n     *\n     * Read more:\n     * - [Row freezing](@/guides/rows/row-freezing/row-freezing.md)\n     *\n     * @memberof Options#\n     * @type {number}\n     * @default 0\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // freeze the top 3 rows\n     * fixedRowsTop: 3,\n     * ```\n     */\n    fixedRowsTop: 0,\n    /**\n     * The `formulas` option configures the [`Formulas`](@/api/formulas.md) plugin.\n     *\n     * The [`Formulas`](@/api/formulas.md) plugin uses the [HyperFormula](https://handsontable.github.io/hyperformula/) calculation engine.\n     * To install [HyperFormula](https://handsontable.github.io/hyperformula/), read the following:\n     * - [Formula calculation: Initialization methods](@/guides/formulas/formula-calculation/formula-calculation.md#initialization-methods)\n     *\n     * You can set the `formulas` option to an object with the following properties:\n     *\n     * | Property    | Possible values                                                                                                                                                                                                        |\n     * | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `engine`    | `HyperFormula` \\|<br>A [HyperFormula](https://handsontable.github.io/hyperformula/) instance \\|<br>A [HyperFormula configuration](https://handsontable.github.io/hyperformula/api/interfaces/configparams.html) object |\n     * | `sheetId`   | A number                                                                                                                                                                                                               |\n     * | `sheetName` | A string                                                                                                                                                                                                               |\n     *\n     * Read more:\n     * - [Plugins: `Formulas`](@/api/formulas.md)\n     * - [Formula calculation](@/guides/formulas/formula-calculation/formula-calculation.md)\n     * - [HyperFormula documentation: Client-side installation](https://handsontable.github.io/hyperformula/guide/client-side-installation)\n     * - [HyperFormula documentation: Configuration options](https://handsontable.github.io/hyperformula/api/interfaces/configparams.html)\n     *\n     * @memberof Options#\n     * @type {object}\n     * @default undefined\n     * @category Formulas\n     *\n     * @example\n     * ```js\n     * // either add the `HyperFormula` class\n     * formulas: {\n     *   // set `engine` to `HyperFormula`\n     *   engine: HyperFormula,\n     *   sheetId: 1,\n     *   sheetName: 'Sheet 1'\n     * }\n     *\n     * // or, add a HyperFormula instance\n     * // initialized with the `'internal-use-in-handsontable'` license key\n     * const hyperformulaInstance = HyperFormula.buildEmpty({\n     *   licenseKey: 'internal-use-in-handsontable',\n     * });\n     *\n     * formulas: {\n     *   // set `engine` to a HyperFormula instance\n     *   engine: hyperformulaInstance,\n     *   sheetId: 1,\n     *   sheetName: 'Sheet 1'\n     * }\n     *\n     * // or, add a HyperFormula configuration object\n     * formulas: {\n     *   // set `engine` to a HyperFormula configuration object\n     *   engine: {\n     *     hyperformula: HyperFormula // or `engine: hyperformulaInstance`\n     *     leapYear1900: false,       // this option comes from HyperFormula\n     *     // add more HyperFormula configuration options\n     *   },\n     *   sheetId: 1,\n     *   sheetName: 'Sheet 1'\n     * }\n     *\n     * // use the same HyperFormula instance in multiple Handsontable instances\n     *\n     * // a Handsontable instance `hot1`\n     * formulas: {\n     *   engine: HyperFormula,\n     *   sheetId: 1,\n     *   sheetName: 'Sheet 1'\n     * }\n     *\n     * // a Handsontable instance `hot2`\n     * formulas: {\n     *   engine: hot1.getPlugin('formulas').engine,\n     *   sheetId: 1,\n     *   sheetName: 'Sheet 1'\n     * }\n     * ```\n     */\n    formulas: undefined,\n    /**\n     * The `fragmentSelection` option configures text selection settings.\n     *\n     * You can set the `fragmentSelection` option to one of the following:\n     *\n     * | Setting           | Description                                        |\n     * | ----------------- | ------------------------------------------------- |\n     * | `false` (default) | Disable text selection                            |\n     * | `true`            | Enable text selection in multiple cells at a time |\n     * | `'cell'`          | Enable text selection in one cell at a time       |\n     *\n     * @memberof Options#\n     * @type {boolean|string}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // enable text selection in multiple cells at a time\n     * fragmentSelection: true,\n     *\n     * // enable text selection in one cell a time\n     * fragmentSelection: 'cell',\n     * ```\n     */\n    fragmentSelection: false,\n    /**\n     * The `headerClassName` option allows adding one or more class names to the column headers' inner `div` element.\n     * It can be used to align the labels in the column headers to left, center or right by setting this option to\n     * `htLeft`, `htCenter`, or `htRight` respectively.\n     *\n     * @since 14.5.0\n     * @memberof Options#\n     * @type {string}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // Adding class names to all column headers\n     * headerClassName: 'htRight my-class',\n     *\n     * columns: [\n     *  {\n     *    // Adding class names to the column header of a single column\n     *    headerClassName: 'htRight my-class',\n     *  }\n     * ]\n     * ```\n     */\n    headerClassName: undefined,\n    /**\n     * The `height` option configures the height of your grid.\n     *\n     * You can set `height` option to one of the following:\n     *\n     * | Setting                                                                    | Example                    |\n     * | -------------------------------------------------------------------------- | -------------------------- |\n     * | A number of pixels                                                         | `height: 500`              |\n     * | A string with a [CSS unit](https://www.w3schools.com/cssref/css_units.asp) | `height: '75vw'`           |\n     * | A function that returns a valid number or string                           | `height() { return 500; }` |\n     *\n     * Read more:\n     * - [Grid size](@/guides/getting-started/grid-size/grid-size.md)\n     *\n     * @memberof Options#\n     * @type {number|string|Function}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set the grid's height to 500px\n     * height: 500,\n     *\n     * // set the grid's height to 75vh\n     * height: '75vh',\n     *\n     * // set the grid's height to 500px, using a function\n     * height() {\n     *   return 500;\n     * },\n     * ```\n     */\n    height: undefined,\n    /**\n     * The `hiddenColumns` option configures the [`HiddenColumns`](@/api/hiddenColumns.md) plugin.\n     *\n     * You can set the `hiddenColumns` option to one of the following:\n     *\n     * | Setting   | Description                                                                                  |\n     * | --------- | -------------------------------------------------------------------------------------------- |\n     * | `false`   | Disable the [`HiddenColumns`](@/api/hiddenColumns.md) plugin                                 |\n     * | `true`    | Enable the [`HiddenColumns`](@/api/hiddenColumns.md) plugin with the default plugin options  |\n     * | An object | - Enable the [`HiddenColumns`](@/api/hiddenColumns.md) plugin<br>- Modify the plugin options |\n     *\n     * If you set the `hiddenColumns` to an object, you can set the following [`HiddenColumns`](@/api/hiddenColumns.md) plugin options:\n     *\n     * | Property           | Possible values     | Description                                                                                                                                             |\n     * | ------------------ | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `columns`          | An array of indexes | An array of indexes of columns that are hidden at initialization                                                                                        |\n     * | `copyPasteEnabled` | `true` \\| `false`   | `true`: when copying or pasting data, take hidden columns into account<br>`false`: when copying or pasting data, don't take hidden columns into account |\n     * | `indicators`       | `true` \\| `false`   | `true`: display UI markers to indicate the presence of hidden columns<br>`false`: display UI markers                                                    |\n     *\n     * Read more:\n     * - [Plugins: `HiddenColumns`](@/api/hiddenColumns.md)\n     * - [Column hiding](@/guides/columns/column-hiding/column-hiding.md)\n     *\n     * @memberof Options#\n     * @type {boolean|object}\n     * @default undefined\n     * @category HiddenColumns\n     *\n     * @example\n     * ```js\n     * // enable the `HiddenColumns` plugin\n     * hiddenColumns: true,\n     *\n     * // enable `HiddenColumns` plugin, and modify the plugin options\n     * hiddenColumns: {\n     *   // set columns that are hidden by default\n     *   columns: [5, 10, 15],\n     *   // when copying or pasting data, take hidden columns into account\n     *   copyPasteEnabled: true,\n     *   // show where hidden columns are\n     *   indicators: true\n     * }\n     * ```\n     */\n    hiddenColumns: undefined,\n    /**\n     * The `hiddenRows` option configures the [`HiddenRows`](@/api/hiddenRows.md) plugin.\n     *\n     * You can set the `hiddenRows` option to one of the following:\n     *\n     * | Setting   | Description                                                                            |\n     * | --------- | -------------------------------------------------------------------------------------- |\n     * | `false`   | Disable the [`HiddenRows`](@/api/hiddenRows.md) plugin                                 |\n     * | `true`    | Enable the [`HiddenRows`](@/api/hiddenRows.md) plugin with the default plugin options  |\n     * | An object | - Enable the [`HiddenRows`](@/api/hiddenRows.md) plugin<br>- Modify the plugin options |\n     *\n     * If you set the `hiddenRows` to an object, you can set the following [`HiddenRows`](@/api/hiddenRows.md) plugin options:\n     *\n     * | Property           | Possible values     | Description                                                                                                                                       |\n     * | ------------------ | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `rows   `          | An array of indexes | An array of indexes of rows that are hidden at initialization                                                                                     |\n     * | `copyPasteEnabled` | `true` \\| `false`   | `true`: when copying or pasting data, take hidden rows into account<br>`false`: when copying or pasting data, don't take hidden rows into account |\n     * | `indicators`       | `true` \\| `false`   | `true`: display UI markers to indicate the presence of hidden rows<br>`false`: display UI markers                                                 |\n     *\n     * Read more:\n     * - [Plugins: `HiddenRows`](@/api/hiddenRows.md)\n     * - [Row hiding](@/guides/rows/row-hiding/row-hiding.md)\n     *\n     * @memberof Options#\n     * @type {boolean|object}\n     * @default undefined\n     * @category HiddenRows\n     *\n     * @example\n     * ```js\n     * // enable the `HiddenRows` plugin\n     * hiddenRows: true,\n     *\n     * // enable `HiddenRows` plugin, and modify the plugin options\n     * hiddenRows: {\n     *   // set rows that are hidden by default\n     *   rows: [5, 10, 15],\n     *   // when copying or pasting data, take hidden rows into account\n     *   copyPasteEnabled: true,\n     *   // show where hidden rows are\n     *   indicators: true\n     * }\n     * ```\n     */\n    hiddenRows: undefined,\n    /**\n     * The `invalidCellClassName` option lets you add a CSS class name to cells\n     * that were marked as `invalid` by the [cell validator](@/guides/cell-functions/cell-validator/cell-validator.md).\n     *\n     * Read more:\n     * - [Cell validator](@/guides/cell-functions/cell-validator/cell-validator.md)\n     * - [`currentRowClassName`](#currentRowClassName)\n     * - [`currentHeaderClassName`](#currentHeaderClassName)\n     * - [`activeHeaderClassName`](#activeHeaderClassName)\n     * - [`currentColClassName`](#currentColClassName)\n     * - [`readOnlyCellClassName`](#readOnlyCellClassName)\n     * - [`commentedCellClassName`](#commentedCellClassName)\n     * - [`noWordWrapClassName`](#noWordWrapClassName)\n     * - [`TableClassName`](#TableClassName)\n     * - [`className`](#className)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default 'htInvalid'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // add a `highlight-error` CSS class name\n     * // to every `invalid` cell`\n     * invalidCellClassName: 'highlight-error',\n     * ```\n     */\n    invalidCellClassName: 'htInvalid',\n    /**\n     * The `imeFastEdit` option allows using the \"fast edit\" feature for the IME users. It's disabled by default\n     * because of its incompatibility with some of the accessibility features.\n     *\n     * Enabling this option can make a negative impact on how some screen readers handle reading the table cells.\n     *\n     * @since 14.0.0\n     * @memberof Options#\n     * @type {boolean}\n     * @category Core\n     */\n    imeFastEdit: false,\n    /**\n     * The `isEmptyCol` option lets you define your own custom method\n     * for checking if a column at a given visual index is empty.\n     *\n     * The `isEmptyCol` setting overwrites the built-in [`isEmptyCol`](@/api/core.md#isEmptyCol) method.\n     *\n     * @memberof Options#\n     * @type {Function}\n     * @param {number} col Visual column index.\n     * @returns {boolean}\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // overwrite the built-in `isEmptyCol` method\n     * isEmptyCol(visualColumnIndex) {\n     *    // your custom method\n     *    ...\n     * },\n     * ```\n     */\n    isEmptyCol(col) {\n      let row;\n      let rowLen;\n      let value;\n      for (row = 0, rowLen = this.countRows(); row < rowLen; row++) {\n        value = this.getDataAtCell(row, col);\n        if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isEmpty\"])(value) === false) {\n          return false;\n        }\n      }\n      return true;\n    },\n    /**\n     * The `isEmptyRow` option lets you define your own custom method\n     * for checking if a row at a given visual index is empty.\n     *\n     * The `isEmptyRow` setting overwrites the built-in [`isEmptyRow`](@/api/core.md#isEmptyRow) method.\n     *\n     * @memberof Options#\n     * @type {Function}\n     * @param {number} row Visual row index.\n     * @returns {boolean}\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // overwrite the built-in `isEmptyRow` method\n     * isEmptyRow(visualRowIndex) {\n     *    // your custom method\n     *    ...\n     * },\n     * ```\n     */\n    isEmptyRow(row) {\n      let col;\n      let colLen;\n      let value;\n      let meta;\n      for (col = 0, colLen = this.countCols(); col < colLen; col++) {\n        value = this.getDataAtCell(row, col);\n        if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isEmpty\"])(value) === false) {\n          if (typeof value === 'object') {\n            meta = this.getCellMeta(row, col);\n            return Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isObjectEqual\"])(this.getSchema()[meta.prop], value);\n          }\n          return false;\n        }\n      }\n      return true;\n    },\n    /**\n     * @description\n     * The `label` option configures [`checkbox`](@/guides/cell-types/checkbox-cell-type/checkbox-cell-type.md) cells` labels.\n     *\n     * You can set the `label` option to an object with the following properties:\n     *\n     * | Property    | Possible values                   | Description                                                                                                                                                                                                             |\n     * | ----------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `position`  | `'after'` (default) \\| `'before'` | `'after'`: place the label to the right of the checkbox<br>`'before'`: place the label to the left of the checkbox                                                                                                      |\n     * | `value`     | A string \\| A function            | The label's text                                                                                                                                                                                                        |\n     * | `separated` | `false` (default) \\| `true`       | `false`: don't separate the label from the checkbox<br>`true`: separate the label from the checkbox                                                                                                                     |\n     * | `property`  | A string                          | - A [`data`](#data) object property name that's used as the label's text <br>- Works only when the [`data`](#data) option is set to an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects) |\n     *\n     * Read more:\n     * - [Checkbox cell type: Checkbox labels](@/guides/cell-types/checkbox-cell-type/checkbox-cell-type.md#checkbox-labels)\n     *\n     * @memberof Options#\n     * @type {object}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [{\n     *   type: 'checkbox',\n     *   // add 'My label:' after the checkbox\n     *   label: { position: 'after', value: 'My label: ', separated: true }\n     * }],\n     * ```\n     */\n    label: undefined,\n    /**\n     * The `language` option configures Handsontable's [language](@/guides/internationalization/language/language.md) settings.\n     *\n     * You can set the `language` option to one of the following:\n     *\n     * | Setting             | Description                 |\n     * | ------------------- | --------------------------- |\n     * | `'en-US'` (default) | English - United States     |\n     * | `'ar-AR'`           | Arabic - Global<br><br>To properly render this language, set the [layout direction](@/guides/internationalization/layout-direction/layout-direction.md) to RTL. |\n     * | `'cs-CZ'`           | Czech - Czech Republic      |\n     * | `'de-CH'`           | German - Switzerland        |\n     * | `'de-DE'`           | German - Germany            |\n     * | `'es-MX'`           | Spanish - Mexico            |\n     * | `'fr-FR'`           | French - France             |\n     * | `'hr-HR'`           | Croatian - Croatia          |\n     * | `'it-IT'`           | Italian - Italy             |\n     * | `'ja-JP'`           | Japanese - Japan            |\n     * | `'ko-KR'`           | Korean - Korea              |\n     * | `'lv-LV'`           | Latvian - Latvia            |\n     * | `'nb-NO'`           | Norwegian (Bokmål) - Norway |\n     * | `'nl-NL'`           | Dutch - Netherlands         |\n     * | `'pl-PL'`           | Polish - Poland             |\n     * | `'pt-BR'`           | Portuguese - Brazil         |\n     * | `'ru-RU'`           | Russian - Russia            |\n     * | `'sr-SP'`           | Serbian (Latin) - Serbia    |\n     * | `'zh-CN'`           | Chinese - China             |\n     * | `'zh-TW'`           | Chinese - Taiwan            |\n     *\n     * Read more:\n     * - [Language](@/guides/internationalization/language/language.md)\n     * - [`locale`](#locale)\n     * - [`layoutDirection`](#layoutdirection)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default 'en-US'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set Handsontable's language to Polish\n     * language: 'pl-PL',\n     * ```\n     */\n    language: 'en-US',\n    /**\n     * The `layoutDirection` option configures whether Handsontable renders from the left to the right, or from the right to the left.\n     *\n     * You can set the layout direction only at Handsontable's [initialization](@/guides/getting-started/installation/installation.md#initialize-handsontable). Any change of the `layoutDirection` option after the initialization (e.g. using the [`updateSettings()`](@/api/core.md#updatesettings) method) is ignored.\n     *\n     * You can set the `layoutDirection` option only [for the entire grid](@/guides/getting-started/configuration-options/configuration-options.md#set-grid-options).\n     * You can't set it for individual columns, rows, or cells.\n     *\n     * You can set the `layoutDirection` option to one of the following strings:\n     *\n     * | Setting             | Description                                                                                                                                                                                  |\n     * | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `inherit` (default) | Set Handsontable's layout direction automatically,<br>based on the value of your HTML document's [`dir`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir) attribute  |\n     * | `rtl`               | Render Handsontable from the right to the left,<br>even when your HTML document's [`dir`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir) attribute is set to `ltr` |\n     * | `ltr`               | Render Handsontable from the left to the right,<br>even when your HTML document's [`dir`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir) attribute is set to `rtl` |\n     *\n     * Read more:\n     * - [Layout direction](@/guides/internationalization/layout-direction/layout-direction.md)\n     * - [Language](@/guides/internationalization/language/language.md)\n     * - [`language`](#language)\n     * - [`locale`](#locale)\n     * - [`fixedColumnsStart`](#fixedcolumnsstart)\n     * - [`customBorders`](#customBorders)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default 'inherit'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // inherit Handsontable's layout direction\n     * // from the value of your HTML document's `dir` attribute\n     * layoutDirection: 'inherit',\n     *\n     * // render Handsontable from the right to the left\n     * // regardless of your HTML document's `dir`\n     * layoutDirection: 'rtl',\n     *\n     * // render Handsontable from the left to the right\n     * // regardless of your HTML document's `dir`\n     * layoutDirection: 'ltr',\n     * ```\n     */\n    layoutDirection: 'inherit',\n    /**\n     * The `licenseKey` option sets your Handsontable license key.\n     *\n     * You can set the `licenseKey` option to one of the following:\n     *\n     * | Setting                                                                                                 | Description                                                                                       |\n     * | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |\n     * | A string with your [commercial license key](@/guides/getting-started/license-key/license-key.md#commercial-license) | For [commercial use](@/guides/technical-specification/software-license/software-license.md#commercial-use)         |\n     * | `'non-commercial-and-evaluation'`                                                                       | For [non-commercial use](@/guides/technical-specification/software-license/software-license.md#non-commercial-use) |\n     *\n     * Read more:\n     * - [License key](@/guides/getting-started/license-key/license-key.md)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // for commercial use\n     * licenseKey: 'xxxxx-xxxxx-xxxxx-xxxxx-xxxxx', // your commercial license key\n     *\n     * // for non-commercial use\n     * licenseKey: 'non-commercial-and-evaluation',\n     * ```\n     */\n    licenseKey: undefined,\n    /**\n     * The `locale` option configures Handsontable's [locale](@/guides/internationalization/locale/locale.md) settings.\n     *\n     * You can set the `locale` option to any valid and canonicalized Unicode BCP 47 locale tag,\n     * both for the [entire grid](@/guides/internationalization/locale/locale.md#set-the-grid-s-locale),\n     * and for [individual columns](@/guides/internationalization/locale/locale.md#set-a-column-s-locale).\n     *\n     * Read more:\n     * - [Locale](@/guides/internationalization/locale/locale.md)\n     * - [`language`](#language)\n     * - [`layoutDirection`](#layoutdirection)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default 'en-US'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set the entire grid's locale to Polish\n     * locale: 'pl-PL',\n     *\n     * // set individual columns' locales\n     * columns: [\n     *   {\n     *     // set the first column's locale to Polish\n     *     locale: 'pl-PL',\n     *   },\n     *   {\n     *     // set the second column's locale to German\n     *     locale: 'de-DE',\n     *   },\n     * ],\n     * ```\n     */\n    locale: 'en-US',\n    /**\n     * The `manualColumnFreeze` option configures the [`ManualColumnFreeze`](@/api/manualColumnFreeze.md) plugin.\n     *\n     * You can set the `manualColumnFreeze` option to one of the following:\n     *\n     * | Setting  | Description                                                            |\n     * | -------- | ---------------------------------------------------------------------- |\n     * | `true`   | Enable the [`ManualColumnFreeze`](@/api/manualColumnFreeze.md) plugin  |\n     * | `false`  | Disable the [`ManualColumnFreeze`](@/api/manualColumnFreeze.md) plugin |\n     *\n     * Read more:\n     * - [Column freezing](@/guides/columns/column-freezing/column-freezing.md#user-triggered-freeze)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default undefined\n     * @category ManualColumnFreeze\n     *\n     * @example\n     * ```js\n     * // enable the `ManualColumnFreeze` plugin\n     * manualColumnFreeze: true,\n     * ```\n     */\n    manualColumnFreeze: undefined,\n    /**\n     * The `manualColumnMove` option configures the [`ManualColumnMove`](@/api/manualColumnMove.md) plugin.\n     *\n     * You can set the `manualColumnMove` option to one of the following:\n     *\n     * | Setting  | Description                                                                                                        |\n     * | -------- | ------------------------------------------------------------------------------------------------------------------ |\n     * | `true`   | Enable the [`ManualColumnMove`](@/api/manualColumnMove.md) plugin                                                  |\n     * | `false`  | Disable the [`ManualColumnMove`](@/api/manualColumnMove.md) plugin                                                 |\n     * | An array | - Enable the [`ManualColumnMove`](@/api/manualColumnMove.md) plugin<br>- Move individual columns at initialization |\n     *\n     * Read more:\n     * - [Column moving](@/guides/columns/column-moving/column-moving.md)\n     *\n     * @memberof Options#\n     * @type {boolean|number[]}\n     * @default undefined\n     * @category ManualColumnMove\n     *\n     * @example\n     * ```js\n     * // enable the `ManualColumnMove` plugin\n     * manualColumnMove: true,\n     *\n     * // enable the `ManualColumnMove` plugin\n     * // at initialization, move column 0 to 1\n     * // at initialization, move column 1 to 4\n     * // at initialization, move column 2 to 6\n     * manualColumnMove: [1, 4, 6],\n     * ```\n     */\n    manualColumnMove: undefined,\n    /**\n     * @description\n     * The `manualColumnResize` option configures the [`ManualColumnResize`](@/api/manualColumnResize.md) plugin.\n     *\n     * You can set the `manualColumnResize` option to one of the following:\n     *\n     * | Setting  | Description                                                                                                           |\n     * | -------- | --------------------------------------------------------------------------------------------------------------------- |\n     * | `true`   | Enable the [`ManualColumnResize`](@/api/manualColumnResize.md) plugin                                                 |\n     * | `false`  | Disable the [`ManualColumnResize`](@/api/manualColumnResize.md) plugin                                                |\n     * | An array | - Enable the [`ManualColumnResize`](@/api/manualColumnResize.md) plugin<br>- Set initial widths of individual columns |\n     *\n     * Read more:\n     * - [Column width: Column stretching](@/guides/columns/column-width/column-width.md#column-stretching)\n     *\n     * @memberof Options#\n     * @type {boolean|number[]}\n     * @default undefined\n     * @category ManualColumnResize\n     *\n     * @example\n     * ```js\n     * // enable the `manualColumnResize` plugin\n     * manualColumnResize: true,\n     *\n     * // enable the `manualColumnResize` plugin\n     * // set the initial width of column 0 to 40 pixels\n     * // set the initial width of column 1 to 50 pixels\n     * // set the initial width of column 2 to 60 pixels\n     * manualColumnResize: [40, 50, 60],\n     * ```\n     */\n    manualColumnResize: undefined,\n    /**\n     * @description\n     * The `manualRowMove` option configures the [`ManualRowMove`](@/api/manualRowMove.md) plugin.\n     *\n     * You can set the `manualRowMove` option to one of the following:\n     *\n     * | Setting  | Description                                                                                               |\n     * | -------- | --------------------------------------------------------------------------------------------------------- |\n     * | `true`   | Enable the [`ManualRowMove`](@/api/manualRowMove.md) plugin                                               |\n     * | `false`  | Disable the [`ManualRowMove`](@/api/manualRowMove.md) plugin                                              |\n     * | An array | - Enable the [`ManualRowMove`](@/api/manualRowMove.md) plugin<br>- Move individual rows at initialization |\n     *\n     * Read more:\n     * - [Row moving](@/guides/rows/row-moving/row-moving.md)\n     *\n     * @memberof Options#\n     * @type {boolean|number[]}\n     * @default undefined\n     * @category ManualRowMove\n     *\n     * @example\n     * ```js\n     * // enable the `ManualRowMove` plugin\n     * manualRowMove: true,\n     *\n     * // enable the `ManualRowMove` plugin\n     * // at initialization, move row 0 to 1\n     * // at initialization, move row 1 to 4\n     * // at initialization, move row 2 to 6\n     * manualColumnMove: [1, 4, 6],\n     * ```\n     */\n    manualRowMove: undefined,\n    /**\n     * @description\n     * The `manualRowResize` option configures the [`ManualRowResize`](@/api/manualRowResize.md) plugin.\n     *\n     * You can set the `manualRowResize` option to one of the following:\n     *\n     * | Setting  | Description                                                                                                   |\n     * | -------- | ------------------------------------------------------------------------------------------------------------- |\n     * | `true`   | Enable the [`ManualRowResize`](@/api/manualRowResize.md) plugin                                               |\n     * | `false`  | Disable the [`ManualRowResize`](@/api/manualRowResize.md) plugin                                              |\n     * | An array | - Enable the [`ManualRowResize`](@/api/manualRowResize.md) plugin<br>- Set initial heights of individual rows |\n     *\n     * Read more:\n     * - [Row height: Adjust the row height manually](@/guides/rows/row-height/row-height.md#adjust-the-row-height-manually)\n     *\n     * @memberof Options#\n     * @type {boolean|number[]}\n     * @default undefined\n     * @category ManualRowResize\n     *\n     * @example\n     * ```js\n     * // enable the `ManualRowResize` plugin\n     * manualRowResize: true,\n     *\n     * // enable the `ManualRowResize` plugin\n     * // set the initial height of row 0 to 40 pixels\n     * // set the initial height of row 1 to 50 pixels\n     * // set the initial height of row 2 to 60 pixels\n     * manualRowResize: [40, 50, 60],\n     * ```\n     */\n    manualRowResize: undefined,\n    /**\n     * The `maxCols` option sets a maximum number of columns.\n     *\n     * The `maxCols` option is used:\n     * - At initialization: if the `maxCols` value is lower than the initial number of columns,\n     * Handsontable trims columns from the right.\n     * - At runtime: for example, when inserting columns.\n     *\n     * @memberof Options#\n     * @type {number}\n     * @default Infinity\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set the maximum number of columns to 300\n     * maxCols: 300,\n     * ```\n     */\n    maxCols: Infinity,\n    /**\n     * The `maxRows` option sets a maximum number of rows.\n     *\n     * The `maxRows` option is used:\n     * - At initialization: if the `maxRows` value is lower than the initial number of rows,\n     * Handsontable trims rows from the bottom.\n     * - At runtime: for example, when inserting rows.\n     *\n     * @memberof Options#\n     * @type {number}\n     * @default Infinity\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set the maximum number of rows to 300\n     * maxRows: 300,\n     * ```\n     */\n    maxRows: Infinity,\n    /**\n     * @description\n     * The `mergeCells` option configures the [`MergeCells`](@/api/mergeCells.md) plugin.\n     *\n     * You can set the `mergeCells` option to one of the following:\n     *\n     * | Setting             | Description                                                                                         |\n     * | ------------------- | --------------------------------------------------------------------------------------------------- |\n     * | `true`              | Enable the [`MergeCells`](@/api/mergeCells.md) plugin                                               |\n     * | `false`             | Disable the [`MergeCells`](@/api/mergeCells.md) plugin                                              |\n     * | An array of objects | - Enable the [`MergeCells`](@/api/mergeCells.md) plugin<br>- Merge specific cells at initialization |\n     *\n     * To merge specific cells at Handsontable's initialization,\n     * set the `mergeCells` option to an array of objects, with the following properties:\n     *\n     * | Property  | Description                                                |\n     * | --------- | ---------------------------------------------------------- |\n     * | `row`     | The row index of the merged section's beginning            |\n     * | `col`     | The column index of the merged section's beginning         |\n     * | `rowspan` | The width (as a number of rows) of the merged section      |\n     * | `colspan` | The height (as a number of columns ) of the merged section |\n     *\n     * Read more:\n     * - [Merge cells](@/guides/cell-features/merge-cells/merge-cells.md)\n     *\n     * @memberof Options#\n     * @type {boolean|object[]}\n     * @default false\n     * @category MergeCells\n     *\n     * @example\n     * ```js\n     * // enable the `MergeCells` plugin\n     * mergeCells: true,\n     *\n     * // enable the `MergeCells` plugin\n     * // and merge specific cells at initialization\n     * mergeCells: [\n     *   // merge cells from cell (1,1) to cell (3,3)\n     *   {row: 1, col: 1, rowspan: 3, colspan: 3},\n     *   // merge cells from cell (3,4) to cell (2,2)\n     *   {row: 3, col: 4, rowspan: 2, colspan: 2},\n     *   // merge cells from cell (5,6) to cell (3,3)\n     *   {row: 5, col: 6, rowspan: 3, colspan: 3}\n     * ],\n     * ```\n     */\n    mergeCells: false,\n    /**\n     * The `minCols` option sets a minimum number of columns.\n     *\n     * The `minCols` option is used:\n     * - At initialization: if the `minCols` value is higher than the initial number of columns,\n     * Handsontable adds empty columns to the right.\n     * - At runtime: for example, when removing columns.\n     *\n     * The `minCols` option works only when your [`data`](#data) is an [array of arrays](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-arrays).\n     * When your [`data`](#data) is an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects),\n     * you can only have as many columns as defined in:\n     * - The first data row\n     * - The [`dataSchema`](#dataSchema) option\n     * - The [`columns`](#columns) option\n     *\n     * @memberof Options#\n     * @type {number}\n     * @default 0\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set the minimum number of columns to 10\n     * minCols: 10,\n     * ```\n     */\n    minCols: 0,\n    /**\n     * The `minRows` option sets a minimum number of rows.\n     *\n     * The `minRows` option is used:\n     * - At initialization: if the `minRows` value is higher than the initial number of rows,\n     * Handsontable adds empty rows at the bottom.\n     * - At runtime: for example, when removing rows.\n     *\n     * @memberof Options#\n     * @type {number}\n     * @default 0\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set the minimum number of rows to 10\n     * minRows: 10,\n     * ```\n     */\n    minRows: 0,\n    /**\n     * The `minSpareCols` option sets a minimum number of empty columns\n     * at the grid's right-hand end.\n     *\n     * If there already are other empty columns at the grid's right-hand end,\n     * they are counted into the `minSpareCols` value.\n     *\n     * The total number of columns can't exceed the [`maxCols`](#maxCols) value.\n     *\n     * The `minSpareCols` option works only when your [`data`](#data) is an [array of arrays](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-arrays).\n     * When your [`data`](#data) is an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects),\n     * you can only have as many columns as defined in:\n     * - The first data row\n     * - The [`dataSchema`](#dataSchema) option\n     * - The [`columns`](#columns) option\n     *\n     * @memberof Options#\n     * @type {number}\n     * @default 0\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // at Handsontable's initialization, add at least 3 empty columns on the right\n     * minSpareCols: 3,\n     * ```\n     */\n    minSpareCols: 0,\n    /**\n     * The `minSpareRows` option sets a minimum number of empty rows\n     * at the bottom of the grid.\n     *\n     * If there already are other empty rows at the bottom,\n     * they are counted into the `minSpareRows` value.\n     *\n     * The total number of rows can't exceed the [`maxRows`](#maxRows) value.\n     *\n     * @memberof Options#\n     * @type {number}\n     * @default 0\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // at Handsontable's initialization, add at least 3 empty rows at the bottom\n     * minSpareRows: 3,\n     * ```\n     */\n    minSpareRows: 0,\n    /**\n     * @description\n     * The `multiColumnSorting` option configures the [`MultiColumnSorting`](@/api/columnSorting.md) plugin.\n     *\n     * You can set the `multiColumnSorting` option to one of the following:\n     *\n     * | Setting    | Description                                                                                                                                                |\n     * | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `true`     | Enable the [`MultiColumnSorting`](@/api/multiColumnSorting.md) plugin with the default configuration                                                       |\n     * | `false`    | Disable the [`MultiColumnSorting`](@/api/multiColumnSorting.md) plugin                                                                                     |\n     * | An object  | - Enable the [`MultiColumnSorting`](@/api/multiColumnSorting.md) plugin<br>- Modify the [`MultiColumnSorting`](@/api/multiColumnSorting.md) plugin options |\n     *\n     * If you set the `multiColumnSorting` option to an object,\n     * you can set the following [`MultiColumnSorting`](@/api/multiColumnSorting.md) plugin options:\n     *\n     * | Option                   | Possible settings                                                                                                                                |\n     * | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |\n     * | `indicator`              | `true`: Display the arrow icon in the column header, to indicate a sortable column<br>`false`: Don't display the arrow icon in the column header |\n     * | `headerAction`           | `true`: Enable clicking on the column header to sort the column<br>`false`: Disable clicking on the column header to sort the column             |\n     * | `sortEmptyCells`         | `true`: Sort empty cells as well<br>`false`: Place empty cells at the end                                                                        |\n     * | `compareFunctionFactory` | A [custom compare function](@/guides/rows/rows-sorting/rows-sorting.md#add-a-custom-comparator)                                                               |\n     *\n     * If you set the `multiColumnSorting` option to an object,\n     * you can also sort individual columns at Handsontable's initialization.\n     * In the `multiColumnSorting` object, add an object named `initialConfig`,\n     * with the following properties:\n     *\n     * | Option      | Possible settings   | Description                                                      |\n     * | ----------- | ------------------- | ---------------------------------------------------------------- |\n     * | `column`    | A number            | The index of the column that you want to sort at initialization  |\n     * | `sortOrder` | `'asc'` \\| `'desc'` | The sorting order:<br>`'asc'`: ascending<br>`'desc'`: descending |\n     *\n     * Read more:\n     * - [Rows sorting](@/guides/rows/rows-sorting/rows-sorting.md)\n     * - [`columnSorting`](#columnSorting)\n     *\n     * @memberof Options#\n     * @type {boolean|object}\n     * @default undefined\n     * @category MultiColumnSorting\n     *\n     * @example\n     * ```js\n     * // enable the `MultiColumnSorting` plugin\n     * multiColumnSorting: true\n     *\n     * // enable the `MultiColumnSorting` plugin with custom configuration\n     * multiColumnSorting: {\n     *   // sort empty cells as well\n     *   sortEmptyCells: true,\n     *   // display the arrow icon in the column header\n     *   indicator: true,\n     *   // disable clicking on the column header to sort the column\n     *   headerAction: false,\n     *   // add a custom compare function\n     *   compareFunctionFactory(sortOrder, columnMeta) {\n     *     return function(value, nextValue) {\n     *       // some value comparisons which will return -1, 0 or 1...\n     *     }\n     *   }\n     * }\n     *\n     * // enable the `MultiColumnSorting` plugin\n     * multiColumnSorting: {\n     *   // at initialization, sort column 1 in ascending order\n     *   initialConfig: {\n     *     column: 1,\n     *     sortOrder: 'asc'\n     *   },\n     *   // at initialization, sort column 2 in descending order\n     *   initialConfig: {\n     *     column: 2,\n     *     sortOrder: 'desc'\n     *   }\n     * }\n     * ```\n     */\n    multiColumnSorting: undefined,\n    /**\n     * When set to `true`, the `navigableHeaders` option lets you navigate [row headers](@/guides/rows/row-header/row-header.md) and [column headers](@/guides/columns/column-header/column-header.md), using the arrow keys or the <kbd>**Tab**</kbd> key (if the [`tabNavigation`](#tabNavigation) option is set to `true`).\n     *\n     * @since 14.0.0\n     * @memberof Options#\n     * @type {boolean}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // you can navigate row and column headers with the keyboard\n     * navigableHeaders: true,\n     *\n     * // default behavior: you can't navigate row and column headers with the keyboard\n     * navigableHeaders: false,\n     * ```\n     */\n    navigableHeaders: false,\n    /**\n     * When set to `false`, the `tabNavigation` option changes the behavior of the\n     * <kbd>Tab</kbd> and <kbd>Shift</kbd>+<kbd>Tab</kbd> keyboard shortcuts. The Handsontable\n     * no more captures that shortcuts to make the grid navigation available (`tabNavigation: true`)\n     * but returns control to the browser so the native page navigation is possible.\n     *\n     * @since 14.0.0\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // you can't navigate row and column headers using <kbd>Tab</kbd> or <kbd>Shift</kbd>+<kbd>Tab</kbd> keyboard shortcuts\n     * tabNavigation: false,\n     *\n     * // default behavior: you can navigate row and column headers using <kbd>Tab</kbd> or <kbd>Shift</kbd>+<kbd>Tab</kbd> keyboard shortcuts\n     * tabNavigation: true,\n     * ```\n     */\n    tabNavigation: true,\n    /**\n     * @description\n     * The `nestedHeaders` option configures the [`NestedHeaders`](@/api/nestedHeaders.md) plugin.\n     *\n     * You can set the `nestedHeaders` option to one of the following:\n     *\n     * | Setting           | Description                                                                                                                           |\n     * | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `false` (default) | Disable the [`NestedHeaders`](@/api/nestedHeaders.md) plugin                                                                          |\n     * | `true`            | - Enable the [`NestedHeaders`](@/api/nestedHeaders.md) plugin<br>- Don't configure any nested headers                                 |\n     * | Array of arrays   | - Enable the [`NestedHeaders`](@/api/nestedHeaders.md) plugin<br>- Configure headers that are nested on Handsontable's initialization |\n     *\n     * If you set the `nestedHeaders` option to an array of arrays, each array configures one set of nested headers.\n     *\n     * Each array element configures one header, and can be one of the following:\n     *\n     * | Array element | Description                                                                                  |\n     * | ------------- | -------------------------------------------------------------------------------------------- |\n     * | A string      | The header's label                                                                           |\n     * | An object     | Properties:<br>`label` (string): the header's label<br>`colspan` (integer): the column width |\n     *\n     * Read more:\n     * - [Plugins: `NestedHeaders`](@/api/nestedHeaders.md)\n     * - [Column groups: Nested headers](@/guides/columns/column-groups/column-groups.md#nested-headers)\n     *\n     * @memberof Options#\n     * @type {boolean|Array[]}\n     * @default undefined\n     * @category NestedHeaders\n     *\n     * @example\n     * ```js\n     * nestedHeaders: [\n     *   ['A', {label: 'B', colspan: 8}, 'C'],\n     *   ['D', {label: 'E', colspan: 4}, {label: 'F', colspan: 4}, 'G'],\n     *   ['H', 'I', 'J', 'K', 'L', 'M', 'N', 'R', 'S', 'T']\n     * ],\n     * ```\n     */\n    nestedHeaders: undefined,\n    /**\n     * @description\n     * The `nestedRows` option configures the [`NestedRows`](@/api/nestedRows.md) plugin.\n     *\n     * You can set the `nestedRows` option to one of the following:\n     *\n     * | Setting           | Description                                            |\n     * | ----------------- | ------------------------------------------------------ |\n     * | `false` (default) | Disable the [`NestedRows`](@/api/nestedRows.md) plugin |\n     * | `true`            | Enable the [`NestedRows`](@/api/nestedRows.md) plugin  |\n     *\n     * Read more:\n     * - [Plugins: `NestedRows`](@/guides/rows/row-parent-child/row-parent-child.md)\n     *\n     * @example\n     * ```js\n     * // enable the `NestedRows` plugin\n     * nestedRows: true,\n     * ```\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default false\n     * @category NestedRows\n     */\n    nestedRows: undefined,\n    /**\n     * The `noWordWrapClassName` option lets you add a CSS class name\n     * to each cell that has the [`wordWrap`](#wordWrap) option set to `false`.\n     *\n     * Read more:\n     * - [`wordWrap`](#wordWrap)\n     * - [`currentRowClassName`](#currentRowClassName)\n     * - [`currentColClassName`](#currentColClassName)\n     * - [`currentHeaderClassName`](#currentHeaderClassName)\n     * - [`invalidCellClassName`](#invalidCellClassName)\n     * - [`readOnlyCellClassName`](#readOnlyCellClassName)\n     * - [`commentedCellClassName`](#commentedCellClassName)\n     * - [`noWordWrapClassName`](#noWordWrapClassName)\n     * - [`TableClassName`](#TableClassName)\n     * - [`className`](#className)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default 'htNoWrap'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // add an `is-noWrapCell` CSS class name\n     * // to each cell that doesn't wrap content\n     * noWordWrapClassName: 'is-noWrapCell',\n     * ```\n     */\n    noWordWrapClassName: 'htNoWrap',\n    /**\n     * The `numericFormat` option configures the number format and the currency format\n     * of [`numeric`](@/guides/cell-types/numeric-cell-type/numeric-cell-type.md) cells` displayed output\n     * in the numeric cell renderer.\n     *\n     * You can set the `numericFormat` option to an object with the following properties:\n     *\n     * | Property    | Possible values                                                               | Description     |\n     * | ----------- | ----------------------------------------------------------------------------- | --------------- |\n     * | `pattern`   | All [`numbro.js` number formats](https://numbrojs.com/format.html#numbers)    | Number format   |\n     * | `culture`   | All [`numbro.js` currency formats](https://numbrojs.com/format.html#currency) | Currency format |\n     *\n     * The `numericFormat` option as no effect on the numeric cell editor.\n     *\n     * In the source data, numeric data is stored as JavaScript numbers.\n     *\n     * Read more:\n     * - [Numeric cell type](@/guides/cell-types/numeric-cell-type/numeric-cell-type.md)\n     * - [Third-party licenses](@/guides/technical-specification/third-party-licenses/third-party-licenses.md)\n     *\n     * @memberof Options#\n     * @since 0.35.0\n     * @type {object}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *     // set the `type` of each cell in this column to `numeric`\n     *     type: 'numeric',\n     *     // set the `numericFormat` option for every `numeric` cell of this column\n     *     numericFormat: {\n     *       // set the number format\n     *       pattern: '0,00',\n     *       // set the currency format\n     *       culture: 'en-US'\n     *     }\n     *   }\n     * ],\n     * ```\n     */\n    numericFormat: undefined,\n    /**\n     * If the `observeDOMVisibility` option is set to `true`,\n     * Handsontable rerenders every time it detects that the grid was made visible in the DOM.\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // don't rerender the grid on visibility changes\n     * observeDOMVisibility: false,\n     * ```\n     */\n    observeDOMVisibility: true,\n    /**\n     * The `outsideClickDeselects` option determines what happens to the current [selection](@/guides/cell-features/selection/selection.md)\n     * when you click outside of the grid.\n     *\n     * You can set the `outsideClickDeselects` option to one of the following:\n     *\n     * | Setting          | Description                                                                                              |\n     * | ---------------- | -------------------------------------------------------------------------------------------------------- |\n     * | `true` (default) | On a mouse click outside of the grid, clear the current [selection](@/guides/cell-features/selection/selection.md) |\n     * | `false`          | On a mouse click outside of the grid, keep the current [selection](@/guides/cell-features/selection/selection.md)  |\n     * | A function       | A function that takes the click event target and returns a boolean                                       |\n     *\n     * @memberof Options#\n     * @type {boolean|Function}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // on a mouse click outside of the grid, clear the current selection\n     * outsideClickDeselects: true,\n     *\n     * // on a mouse click outside of the grid, keep the current selection\n     * outsideClickDeselects: false,\n     *\n     * // take the click event target and return `false`\n     * outsideClickDeselects(event) {\n     *   return false;\n     * }\n     *\n     * // take the click event target and return `true`\n     * outsideClickDeselects(event) {\n     *   return false;\n     * }\n     * ```\n     */\n    outsideClickDeselects: true,\n    /**\n     * @description\n     * The `persistentState` option configures the [`PersistentState`](@/api/persistentState.md) plugin.\n     *\n     * You can set the `persistentState` to one of the following:\n     *\n     * | Setting           | Description                                                      |\n     * | ----------------- | ---------------------------------------------------------------- |\n     * | `false` (default) | Disable the [`PersistentState`](@/api/persistentState.md) plugin |\n     * | `true`            | Enable the [`PersistentState`](@/api/persistentState.md) plugin  |\n     *\n     * Read more:\n     * - [Saving data: Saving data locally](@/guides/getting-started/saving-data/saving-data.md#save-data-locally)\n     * - [Plugins: `PersistentState`](@/api/persistentState.md)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default false\n     * @category PersistentState\n     *\n     * @example\n     * ```js\n     * // enable the `PersistentState` plugin\n     * persistentState: true,\n     * ```\n     */\n    persistentState: undefined,\n    /**\n     * The `placeholder` option lets you display placeholder text in every empty cell.\n     *\n     * You can set the `placeholder` option to one of the following:\n     *\n     * | Setting            | Example        | Description                                                           |\n     * | ------------------ | -------------- | --------------------------------------------------------------------- |\n     * | A non-empty string | `'Empty cell'` | Display `Empty cell` text in empty cells                              |\n     * | A non-string value | `000`          | Display `000` text in empty cells (non-string values get stringified) |\n     *\n     * Read more:\n     * - [`placeholderCellClassName`](#placeholderCellClassName)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // display 'Empty cell' text\n     * // in every empty cell of the entire grid\n     * placeholder: 'Empty cell',\n     *\n     * // or\n     * columns: [\n     *   {\n     *     data: 'date',\n     *     dateFormat: 'DD/MM/YYYY',\n     *     // display 'Empty date cell' text\n     *     // in every empty cell of the `date` column\n     *     placeholder: 'Empty date cell'\n     *   }\n     * ],\n     * ```\n     */\n    placeholder: undefined,\n    /**\n     * The `placeholderCellClassName` option lets you add a CSS class name to cells\n     * that contain [`placeholder`](#placeholder) text.\n     *\n     * Read more:\n     * - [Cell validator](@/guides/cell-functions/cell-validator/cell-validator.md)\n     * - [`placeholder`](#placeholder)\n     * - [`currentRowClassName`](#currentRowClassName)\n     * - [`currentHeaderClassName`](#currentHeaderClassName)\n     * - [`activeHeaderClassName`](#activeHeaderClassName)\n     * - [`currentColClassName`](#currentColClassName)\n     * - [`readOnlyCellClassName`](#readOnlyCellClassName)\n     * - [`commentedCellClassName`](#commentedCellClassName)\n     * - [`noWordWrapClassName`](#noWordWrapClassName)\n     * - [`TableClassName`](#TableClassName)\n     * - [`className`](#className)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default 'htPlaceholder'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // add a `has-placeholder` CSS class name\n     * // to each cell that contains `placeholder` text\n     * placeholderCellClassName: 'has-placeholder',\n     * ```\n     */\n    placeholderCellClassName: 'htPlaceholder',\n    /**\n     * The `preventOverflow` option configures preventing Handsontable\n     * from overflowing outside of its parent element.\n     *\n     * You can set the `preventOverflow` option to one of the following:\n     *\n     * | Setting           | Description                      |\n     * | ----------------- | -------------------------------- |\n     * | `false` (default) | Don't prevent overflowing        |\n     * | `'horizontal'`      | Prevent horizontal overflowing |\n     * | `'vertical'`        | Prevent vertical overflowing   |\n     *\n     * @memberof Options#\n     * @type {string|boolean}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // prevent horizontal overflowing\n     * preventOverflow: 'horizontal',\n     * ```\n     */\n    preventOverflow: false,\n    /**\n     * The `preventWheel` option configures preventing the `wheel` event's default action\n     * on overlays.\n     *\n     * You can set the `preventWheel` option to one of the following:\n     *\n     * | Setting           | Description                                      |\n     * | ----------------- | ------------------------------------------------ |\n     * | `false` (default) | Don't prevent the `wheel` event's default action |\n     * | `true`            | Prevent the `wheel` event's default action       |\n     *\n     * @memberof Options#\n     * @private\n     * @type {boolean}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // don't prevent the `wheel` event's default action\n     * preventWheel: false,\n     * ```\n     */\n    preventWheel: false,\n    /**\n     * @description\n     * The `readOnly` option determines whether a [cell](@/guides/cell-features/disabled-cells/disabled-cells.md#read-only-specific-cells),\n     * [comment](@/guides/cell-features/comments/comments.md#make-a-comment-read-only), [column](@/guides/cell-features/disabled-cells/disabled-cells.md#read-only-columns)\n     * or the [entire grid](@/guides/cell-features/disabled-cells/disabled-cells.md#read-only-grid) is editable or not. You can configure it as follows:\n     *\n     * | Setting           | Description                                                                                                                |\n     * | ----------------- | ------------------------------------------------------------------------------------------------------------------------- |\n     * | `false` (default) | Set as editable                                                                                                           |\n     * | `true`            | - Set as read-only<br>- Add the [`readOnlyCellClassName`](#readOnlyCellClassName) CSS class name (by default: `htDimmed`) |\n     *\n     * `readOnly` cells can't be changed by the [`populateFromArray()`](@/api/core.md#populatefromarray) method.\n     *\n     * Read more:\n     * - [Disabled cells](@/guides/cell-features/disabled-cells/disabled-cells.md)\n     * - [Configuration options: Cascading configuration](@/guides/getting-started/configuration-options/configuration-options.md#cascading-configuration)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // make the entire grid read-only\n     * const configurationOptions = {\n     *   columnSorting: true,\n     * };\n     *\n     * // make the third column read-only\n     * const configurationOptions = {\n     *   columns: [\n     *     {},\n     *     {},\n     *     {\n     *       readOnly: true,\n     *     },\n     *   ],\n     * };\n     *\n     * // make a specific cell read-only\n     * const configurationOptions = {\n     *   cell: [\n     *     {\n     *       row: 0,\n     *       col: 0,\n     *       readOnly: true,\n     *     },\n     * };\n     * ```\n     */\n    readOnly: false,\n    /**\n     * The `readOnlyCellClassName` option lets you add a CSS class name to [read-only](#readOnly) cells.\n     *\n     * Read more:\n     * - [`currentRowClassName`](#currentRowClassName)\n     * - [`currentColClassName`](#currentColClassName)\n     * - [`currentHeaderClassName`](#currentHeaderClassName)\n     * - [`activeHeaderClassName`](#activeHeaderClassName)\n     * - [`invalidCellClassName`](#invalidCellClassName)\n     * - [`placeholderCellClassName`](#placeholderCellClassName)\n     * - [`commentedCellClassName`](#commentedCellClassName)\n     * - [`noWordWrapClassName`](#noWordWrapClassName)\n     * - [`readOnlyCellClassName`](#readOnlyCellClassName)\n     * - [`TableClassName`](#TableClassName)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default 'htDimmed'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // add a `is-readOnly` CSS class name\n     * // to every read-only cell\n     * readOnlyCellClassName: 'is-readOnly',\n     * ```\n     */\n    readOnlyCellClassName: 'htDimmed',\n    /**\n     * The `renderAllRows` option controls Handsontable's [row virtualization](@/guides/rows/row-virtualization/row-virtualization.md).\n     * You can configure it as follows:\n     *\n     * | Setting           | Description                                                                                                                                                                                     |\n     * | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `false` (default) | Enable [row virtualization](@/guides/rows/row-virtualization/row-virtualization.md), rendering only the visible rows for optimal performance with large datasets.                                                  |\n     * | `true`            | Disable [row virtualization](@/guides/rows/row-virtualization/row-virtualization.md)<br>(render all rows of the grid), rendering all rows in the dataset for consistent rendering and screen reader accessibility. |\n     *\n     * Setting `renderAllRows` to `true` overwrites the [`viewportRowRenderingOffset`](#viewportRowRenderingOffset) setting.\n     *\n     * Read more:\n     * - [Row virtualization](@/guides/rows/row-virtualization/row-virtualization.md)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // disable row virtualization\n     * renderAllRows: true,\n     * ```\n     */\n    renderAllRows: false,\n    /**\n     * The `renderAllColumns` option configures Handsontable's [column virtualization](@/guides/columns/column-virtualization/column-virtualization.md).\n     *\n     * You can set the `renderAllColumns` option to one of the following:\n     *\n     * | Setting           | Description                                                                                                                                                                                                                      |\n     * | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `false` (default) | Enable [column virtualization](@/guides/columns/column-virtualization/column-virtualization.md), rendering only visible columns for better performance with many columns.                                                                              |\n     * | `true`            | Disable [column virtualization](@/guides/columns/column-virtualization/column-virtualization.md)<br>(render all columns of the grid), rendering all columns in the dataset, and ensuring all columns are available regardless of horizontal scrolling. |\n     *\n     * Setting `renderAllColumns` to `true` overwrites the [`viewportColumnRenderingOffset`](#viewportColumnRenderingOffset) setting.\n     *\n     * Read more:\n     * - [Column virtualization](@/guides/columns/column-virtualization/column-virtualization.md)\n     *\n     * @since 14.1.0\n     * @memberof Options#\n     * @type {boolean}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // disable column virtualization\n     * renderAllColumns: true,\n     * ```\n     */\n    renderAllColumns: false,\n    /**\n     * @description\n     * The `renderer` option sets a [cell renderer](@/guides/cell-functions/cell-renderer/cell-renderer.md) for a cell.\n     *\n     * You can set the `renderer` option to one of the following:\n     * - A custom renderer function\n     * - One of the following [cell renderer aliases](@/guides/cell-functions/cell-renderer/cell-renderer.md):\n     *\n     * | Alias               | Cell renderer function                                                         |\n     * | ------------------- | ------------------------------------------------------------------------------ |\n     * | A custom alias      | Your [custom cell renderer](@/guides/cell-functions/cell-renderer/cell-renderer.md) function |\n     * | `'autocomplete'`    | `AutocompleteRenderer`                                                         |\n     * | `'base'`            | `BaseRenderer`                                                                 |\n     * | `'checkbox'`        | `CheckboxRenderer`                                                             |\n     * | `'date'`            | `DateRenderer`                                                                 |\n     * | `'dropdown'`        | `DropdownRenderer`                                                             |\n     * | `'html'`            | `HtmlRenderer`                                                                 |\n     * | `'numeric'`         | `NumericRenderer`                                                              |\n     * | `'password'`        | `PasswordRenderer`                                                             |\n     * | `'text'`            | `TextRenderer`                                                                 |\n     * | `'time'`            | `TimeRenderer`                                                                 |\n     *\n     * To set the [`renderer`](#renderer), [`editor`](#editor), and [`validator`](#validator)\n     * options all at once, use the [`type`](#type) option.\n     *\n     * Read more:\n     * - [Cell renderer](@/guides/cell-functions/cell-renderer/cell-renderer.md)\n     * - [Cell type](@/guides/cell-types/cell-type/cell-type.md)\n     * - [Configuration options: Cascading configuration](@/guides/getting-started/configuration-options/configuration-options.md#cascading-configuration)\n     * - [`type`](#type)\n     *\n     * @memberof Options#\n     * @type {string|Function}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // use the `numeric` renderer for each cell of the entire grid\n     * renderer: `'numeric'`,\n     *\n     * // add a custom renderer function\n     * renderer(hotInstance, td, row, column, prop, value, cellProperties) {\n     *   // your custom renderer's logic\n     *   ...\n     * }\n     *\n     * // apply the `renderer` option to individual columns\n     * columns: [\n     *   {\n     *     // use the `autocomplete` renderer for each cell of this column\n     *     renderer: 'autocomplete'\n     *   },\n     *   {\n     *     // use the `myCustomRenderer` renderer for each cell of this column\n     *     renderer: 'myCustomRenderer'\n     *   }\n     * ]\n     * ```\n     */\n    renderer: undefined,\n    /**\n     * The `rowHeaders` option configures your grid's row headers.\n     *\n     * You can set the `rowHeaders` option to one of the following:\n     *\n     * | Setting    | Description                                                       |\n     * | ---------- | ----------------------------------------------------------------- |\n     * | `true`     | Enable the default row headers ('1', '2', '3', ...)               |\n     * | `false`    | Disable row headers                                               |\n     * | An array   | Define your own row headers (e.g. `['One', 'Two', 'Three', ...]`) |\n     * | A function | Define your own row headers, using a function                     |\n     *\n     * Read more:\n     * - [Row header](@/guides/rows/row-header/row-header.md)\n     *\n     * @memberof Options#\n     * @type {boolean|string[]|Function}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // enable the default row headers\n     * rowHeaders: true,\n     *\n     * // set your own row headers\n     * rowHeaders: ['One', 'Two', 'Three'],\n     *\n     * // set your own row headers, using a function\n     * rowHeaders: function(visualRowIndex) {\n     *   return `${visualRowIndex}: AB`;\n     * },\n     * ```\n     */\n    rowHeaders: undefined,\n    /**\n     * @description\n     * The `rowHeaderWidth` option configures the width of row headers.\n     *\n     * You can set the `rowHeaderWidth` option to one of the following:\n     *\n     * | Setting  | Description                                     |\n     * | -------- | ----------------------------------------------- |\n     * | A number | Set the same width for every row header         |\n     * | An array | Set different widths for individual row headers |\n     *\n     * @memberof Options#\n     * @type {number|number[]}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set the same width for every row header\n     * rowHeaderWidth: 25,\n     *\n     * // set different widths for individual row headers\n     * rowHeaderWidth: [25, 30, 55],\n     * ```\n     */\n    rowHeaderWidth: undefined,\n    /**\n     * The `rowHeights` option sets rows' heights, in pixels.\n     *\n     * In the rendering process, the default row height is 23 px (22 px + 1 px of the row's bottom border).\n     * You can change it to equal or greater than 23px, by setting the `rowHeights` option to one of the following:\n     *\n     * | Setting     | Description                                                                                         | Example                                                      |\n     * | ----------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |\n     * | A number    | Set the same height for every row                                                                   | `rowHeights: 100`                                            |\n     * | A string    | Set the same height for every row                                                                   | `rowHeights: '100px'`                                        |\n     * | An array    | Set heights separately for each row                                                                 | `rowHeights: [100, 120, undefined]`                          |\n     * | A function  | Set row heights dynamically,<br>on each render                                                      | `rowHeights(visualRowIndex) { return visualRowIndex * 10; }` |\n     * | `undefined` | Used by the [modifyRowHeight](@/api/hooks.md#modifyRowHeight) hook,<br>to detect row height changes | `rowHeights: undefined`                                      |\n     *\n     * The `rowHeights` option also sets the minimum row height that can be set\n     * via the {@link ManualRowResize} and {@link AutoRowSize} plugins (if they are enabled).\n     *\n     * Read more:\n     * - [Row height](@/guides/rows/row-height/row-height.md)\n     *\n     * @memberof Options#\n     * @type {number|number[]|string|string[]|Array<undefined>|Function}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set every row's height to 100px\n     * rowHeights: 100,\n     *\n     * // set every row's height to 100px\n     * rowHeights: '100px',\n     *\n     * // set the first (by visual index) row's height to 100\n     * // set the second (by visual index) row's height to 120\n     * // set the third (by visual index) row's height to `undefined`\n     * // set any other row's height to the default 23px\n     * rowHeights: [100, 120, undefined],\n     *\n     * // set each row's height individually, using a function\n     * rowHeights(visualRowIndex) {\n     *   return visualRowIndex * 10;\n     * },\n     * ```\n     */\n    rowHeights: undefined,\n    /**\n     * @description\n     * The `search` option configures the [`Search`](@/api/search.md) plugin.\n     *\n     * You can set the `search` option to one of the following:\n     *\n     * | Setting           | Description                                                                          |\n     * | ----------------- | ------------------------------------------------------------------------------------ |\n     * | `false` (default) | Disable the [`Search`](@/api/search.md) plugin                                       |\n     * | `true`            | Enable the [`Search`](@/api/search.md) plugin with the default configuration         |\n     * | An object         | - Enable the [`Search`](@/api/search.md) plugin<br>- Apply your custom configuration |\n     *\n     * If you set the `search` option to an object, you can configure the following search options:\n     *\n     * | Option              | Possible settings | Description                                                                                          |\n     * | ------------------- | ----------------- | ---------------------------------------------------------------------------------------------------- |\n     * | `searchResultClass` | A string          | Add a custom CSS class name to search results                                                        |\n     * | `queryMethod`       | A function        | Add a [custom query method](@/guides/navigation/searching-values/searching-values.md#custom-query-method)  |\n     * | `callback`          | A function        | Add a [custom callback function](@/guides/navigation/searching-values/searching-values.md#custom-callback) |\n     *\n     * Read more:\n     * - [Searching values](@/guides/navigation/searching-values/searching-values.md)\n     * - [Searching values: Custom query method](@/guides/navigation/searching-values/searching-values.md#custom-query-method)\n     * - [Searching values: Custom callback](@/guides/navigation/searching-values/searching-values.md#custom-callback)\n     *\n     * @memberof Options#\n     * @type {boolean|object}\n     * @default false\n     * @category Search\n     *\n     * @example\n     * ```js\n     * // enable the `Search` plugin with the default configuration\n     * search: true,\n     *\n     * // enable the `Search` plugin with a custom configuration\n     * search: {\n     *   // add a `customClass` CSS class name to search results\n     *   searchResultClass: 'customClass',\n     *   // add a custom query method\n     *   queryMethod(queryStr, value) {\n     *     ...\n     *   },\n     *   // add a custom callback function\n     *   callback(instance, row, column, value, result) {\n     *     ...\n     *   }\n     * }\n     * ```\n     */\n    search: false,\n    /**\n     * @description\n     * The `selectionMode` option configures how [selection](@/guides/cell-features/selection/selection.md) works.\n     *\n     * You can set the `selectionMode` option to one of the following:\n     *\n     * | Setting      | Description                                                  |\n     * | ------------ | ------------------------------------------------------------ |\n     * | `'single'`   | Allow the user to select only one cell at a time.            |\n     * | `'range'`    | Allow the user to select one range of cells at a time.       |\n     * | `'multiple'` | Allow the user to select multiple ranges of cells at a time. |\n     *\n     * Read more:\n     * - [Selection: Selecting ranges](@/guides/cell-features/selection/selection.md#select-ranges)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default 'multiple'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // you can only select one cell at at a time\n     * selectionMode: 'single',\n     *\n     * // you can select one range of cells at a time\n     * selectionMode: 'range',\n     *\n     * // you can select multiple ranges of cells at a time\n     * selectionMode: 'multiple',\n     * ```\n     */\n    selectionMode: 'multiple',\n    /**\n     * The `selectOptions` option configures options that the end user can choose from in [`select`](@/guides/cell-types/select-cell-type/select-cell-type.md) cells.\n     *\n     * You can set the `selectOptions` option to one of the following:\n     *\n     * | Setting                         | Description                                                                   |\n     * | ------------------------------- | ----------------------------------------------------------------------------- |\n     * | An array of strings             | Each string is one option's value and label                                   |\n     * | An object with key-string pairs | - Each key is one option's value<br>- The key's string is that option's label |\n     * | A function                      | A function that returns an object with key-string pairs                       |\n     *\n     * Read more:\n     * - [Select cell type](@/guides/cell-types/select-cell-type/select-cell-type.md)\n     *\n     * @memberof Options#\n     * @type {string[]|object|Function}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *     // set the `type` of each cell in this column to `select`\n     *     type: 'select',\n     *     // set the first option's value and label to `A`\n     *     // set the second option's value and label to `B`\n     *     // set the third option's value and label to `C`\n     *     selectOptions: ['A', 'B', 'C'],\n     *   },\n     *   {\n     *     // set the `type` of each cell in this column to `select`\n     *     type: 'select',\n     *     selectOptions: {\n     *       // set the first option's value to `value1` and label to `Label 1`\n     *       value1: 'Label 1',\n     *       // set the second option's value to `value2` and label to `Label 2`\n     *       value2: 'Label 2',\n     *       // set the third option's value to `value3` and label to `Label 3`\n     *       value3: 'Label 3',\n     *     },\n     *   },\n     *   {\n     *     // set the `type` of each cell in this column to `select`\n     *     type: 'select',\n     *     // set `selectOption` to a function that returns available options as an object\n     *     selectOptions(visualRow, visualColumn, prop) {\n     *       return {\n     *         value1: 'Label 1',\n     *         value2: 'Label 2',\n     *         value3: 'Label 3',\n     *       };\n     *   },\n     * ],\n     * ```\n     */\n    selectOptions: undefined,\n    /**\n     * @description\n     * The `skipColumnOnPaste` option determines whether you can paste data into a given column.\n     *\n     * You can only apply the `skipColumnOnPaste` option to an entire column, using the [`columns`](#columns) option.\n     *\n     * You can set the `skipColumnOnPaste` option to one of the following:\n     *\n     * | Setting           | Description                                                                                           |\n     * | ----------------- | ----------------------------------------------------------------------------------------------------- |\n     * | `false` (default) | Enable pasting data into this column                                                                  |\n     * | `true`            | - Disable pasting data into this column<br>- On pasting, paste data into the next column to the right |\n     *\n     * Read more:\n     * - [Configuration options: Setting column options](@/guides/getting-started/configuration-options/configuration-options.md#set-column-options)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *     // disable pasting data into this column\n     *     skipColumnOnPaste: true\n     *   }\n     * ],\n     * ```\n     */\n    skipColumnOnPaste: false,\n    /**\n     * @description\n     *\n     * The `skipRowOnPaste` option determines whether you can paste data into a given row.\n     *\n     * You can only apply the `skipRowOnPaste` option to an entire row, using the [`cells`](#cells) option.\n     *\n     * You can set the `skipRowOnPaste` option to one of the following:\n     *\n     * | Setting           | Description                                                                         |\n     * | ----------------- | ----------------------------------------------------------------------------------- |\n     * | `false` (default) | Enable pasting data into this row                                                   |\n     * | `true`            | - Disable pasting data into this row<br>- On pasting, paste data into the row below |\n     *\n     * Read more:\n     * - [Configuration options: Setting row options](@/guides/getting-started/configuration-options/configuration-options.md#set-row-options)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * cells(row, column) {\n     *  const cellProperties = {};\n     *\n     *  // disable pasting data into row 1\n     *  if (row === 1) {\n     *    cellProperties.skipRowOnPaste = true;\n     *  }\n     *\n     *  return cellProperties;\n     * }\n     * ```\n     */\n    skipRowOnPaste: false,\n    /**\n     * The `sortByRelevance` option configures whether [`autocomplete`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md) cells'\n     * lists are sorted in the same order as provided in the [`source`](#source) option.\n     *\n     * You can set the `sortByRelevance` option to one of the following:\n     *\n     * | Setting          | Description                                                                  |\n     * | ---------------- | ---------------------------------------------------------------------------- |\n     * | `true` (default) | Sort options in the same order as provided in the [`source`](#source) option |\n     * | `false`          | Sort options alphabetically                                                  |\n     *\n     * Read more:\n     * - [`source`](#source)\n     * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [{\n     *   // set the `type` of each cell in this column to `autocomplete`\n     *   type: 'autocomplete',\n     *   // set options available in every `autocomplete` cell of this column\n     *   source: ['D', 'C', 'B', 'A'],\n     *   // sort the `autocomplete` option in this order: D, C, B, A\n     *   sortByRelevance: true\n     * }],\n     * ```\n     */\n    sortByRelevance: true,\n    /**\n     * The `source` option sets options available in [`autocomplete`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)\n     * and [`dropdown`](@/guides/cell-types/dropdown-cell-type/dropdown-cell-type.md) cells.\n     *\n     * You can set the `source` option to one of the following:\n     *\n     * - An array\n     * - A function\n     *\n     * Read more:\n     * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)\n     * - [Dropdown cell type](@/guides/cell-types/dropdown-cell-type/dropdown-cell-type.md)\n     * - [`strict`](#strict)\n     * - [`allowHtml`](#allowHtml)\n     * - [`filter`](#filter)\n     * - [`sortByRelevance`](#sortByRelevance)\n     *\n     * @memberof Options#\n     * @type {Array|Function}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set `source` to an array\n     * columns: [{\n     *   // set the `type` of each cell in this column to `autocomplete`\n     *   type: 'autocomplete',\n     *   // set options available in every `autocomplete` cell of this column\n     *   source: ['A', 'B', 'C', 'D']\n     * }],\n     *\n     * // set `source` to a function\n     * columns: [{\n     *   // set the `type` of each cell in this column to `autocomplete`\n     *   type: 'autocomplete',\n     *   // for every `autocomplete` cell in this column, fetch data from an external source\n     *   source(query, callback) {\n     *     fetch('https://example.com/query?q=' + query, function(response) {\n     *       callback(response.items);\n     *     })\n     *   }\n     * }],\n     * ```\n     */\n    source: undefined,\n    /**\n     * @description\n     * If the [`data`](#data) option is not set, the `startCols` option sets the initial number of empty columns.\n     *\n     * The `startCols` option works only in Handsontable's constructor.\n     *\n     * @memberof Options#\n     * @type {number}\n     * @default 5\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // start with 15 empty columns\n     * startCols: 15,\n     * ```\n     */\n    startCols: 5,\n    /**\n     * @description\n     * If the [`data`](#data) option is not set, the `startRows` option sets the initial number of empty rows.\n     *\n     * The `startRows` option works only in Handsontable's constructor.\n     *\n     * @memberof Options#\n     * @type {number}\n     * @default 5\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // start with 15 empty rows\n     * startRows: 15,\n     * ```\n     */\n    startRows: 5,\n    /**\n     * @description\n     * The `stretchH` option determines what happens when the declared grid width\n     * is different from the calculated sum of all column widths.\n     *\n     * You can set the `stretchH` option to one of the following:\n     *\n     * | Setting            | Description                                                       |\n     * | ------------------ | ----------------------------------------------------------------- |\n     * | `'none'` (default) | Don't fit the grid to the container (disable column stretching)   |\n     * | `'last'`           | Fit the grid to the container, by stretching only the last column |\n     * | `'all'`            | Fit the grid to the container, by stretching all columns evenly   |\n     *\n     * Read more:\n     * - [Column width: Column stretching](@/guides/columns/column-width/column-width.md#column-stretching)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default 'none'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // fit the grid to the container\n     * // by stretching all columns evenly\n     * stretchH: 'all',\n     * ```\n     */\n    stretchH: 'none',\n    /**\n     * The `strict` option configures the behavior of [`autocomplete`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md) cells.\n     *\n     * You can set the `strict` option to one of the following:\n     *\n     * | Setting | Mode                                                                                          | Description                                                                                |\n     * | ------- | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |\n     * | `true`  | [Strict mode](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md#autocomplete-strict-mode)         | The end user:<br>- Can only choose one of suggested values<br>- Can't enter a custom value |\n     * | `false` | [Flexible mode](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md#autocomplete-flexible-mode)     | The end user:<br>- Can choose one of suggested values<br>- Can enter a custom value        |\n     *\n     * Read more:\n     * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)\n     * - [`source`](#source)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *   // set the `type` of each cell in this column to `autocomplete`\n     *   type: 'autocomplete',\n     *   // set options available in every `autocomplete` cell of this column\n     *   source: ['A', 'B', 'C'],\n     *   // values entered must match `A`, `B`, or `C`\n     *   strict: true\n     *   },\n     * ],\n     * ```\n     */\n    strict: undefined,\n    /**\n     * The `tableClassName` option lets you add CSS class names\n     * to every Handsontable instance inside the `container` element.\n     *\n     * You can set the `tableClassName` option to one of the following:\n     *\n     * | Setting             | Description                                                                                |\n     * | ------------------- | ------------------------------------------------------------------------------------------ |\n     * | A string            | Add a single CSS class name to every Handsontable instance inside the `container` element  |\n     * | An array of strings | Add multiple CSS class names to every Handsontable instance inside the `container` element |\n     *\n     * Read more:\n     * - [`currentRowClassName`](#currentRowClassName)\n     * - [`currentColClassName`](#currentColClassName)\n     * - [`currentHeaderClassName`](#currentHeaderClassName)\n     * - [`activeHeaderClassName`](#activeHeaderClassName)\n     * - [`invalidCellClassName`](#invalidCellClassName)\n     * - [`placeholderCellClassName`](#placeholderCellClassName)\n     * - [`readOnlyCellClassName`](#readOnlyCellClassName)\n     * - [`noWordWrapClassName`](#noWordWrapClassName)\n     * - [`commentedCellClassName`](#commentedCellClassName)\n     * - [`className`](#className)\n     *\n     * @memberof Options#\n     * @type {string|string[]}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // add a `your-class-name` CSS class name\n     * // to every Handsontable instance inside the `container` element\n     * tableClassName: 'your-class-name',\n     *\n     * // add `first-class-name` and `second-class-name` CSS class names\n     * // to every Handsontable instance inside the `container` element\n     * tableClassName: ['first-class-name', 'second-class-name'],\n     * ```\n     */\n    tableClassName: undefined,\n    /**\n     * The `tabMoves` option configures the action of the <kbd>**Tab**</kbd> key.\n     *\n     * You can set the `tabMoves` option to an object with the following properties\n     * (or to a function that returns such an object):\n     *\n     * | Property | Type   | Description                                                                                                                                              |\n     * | -------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | `row`    | Number | - On pressing <kbd>**Tab**</kbd>, move selection `row` rows down<br>- On pressing <kbd>**Shift**</kbd>+<kbd>**Tab**</kbd>, move selection `row` rows up              |\n     * | `col`    | Number | - On pressing <kbd>**Tab**</kbd>, move selection `col` columns right<br>- On pressing <kbd>**Shift**</kbd>+<kbd>**Tab**</kbd>, move selection `col` columns left     |\n     *\n     * @memberof Options#\n     * @type {object|Function}\n     * @default {row: 0, col: 1}\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // on pressing Tab, move selection 2 rows down and 2 columns right\n     * // on pressing Shift+Tab, move selection 2 rows up and 2 columns left\n     * tabMoves: {row: 2, col: 2},\n     *\n     * // the same setting, as a function\n     * // `event` is a DOM Event object received on pressing Tab\n     * // you can use it to check whether the user pressed Tab or Shift+Tab\n     * tabMoves(event) {\n     *   return {row: 2, col: 2};\n     * },\n     * ```\n     */\n    tabMoves: {\n      row: 0,\n      col: 1\n    },\n    /**\n     * @description\n     * The `title` option configures [column header](@/guides/columns/column-header/column-header.md) names.\n     *\n     * You can set the `title` option to a string.\n     *\n     * Read more:\n     * - [Column header](@/guides/columns/column-header/column-header.md)\n     * - [`columns`](#columns)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *     // set the first column header name to `First name`\n     *     title: 'First name',\n     *     type: 'text',\n     *   },\n     *   {\n     *     // set the second column header name to `Last name`\n     *     title: 'Last name',\n     *     type: 'text',\n     *   }\n     * ],\n     * ```\n     */\n    title: undefined,\n    /**\n     * The `trimDropdown` option configures the width of the [`autocomplete`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)\n     * and [`dropdown`](@/guides/cell-types/dropdown-cell-type/dropdown-cell-type.md) lists.\n     *\n     * You can set the `trimDropdown` option to one of the following:\n     *\n     * | Setting          | Description                                                                     |\n     * | ---------------- | ------------------------------------------------------------------------------- |\n     * | `true` (default) | Make the dropdown/autocomplete list's width the same as the edited cell's width |\n     * | `false`          | Scale the dropdown/autocomplete list's width to the list's content              |\n     *\n     * Read more:\n     * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)\n     * - [Dropdown cell type](@/guides/cell-types/dropdown-cell-type/dropdown-cell-type.md)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *     type: 'autocomplete',\n     *     // for each cell of this column\n     *     // make the `autocomplete` list's width the same as the edited cell's width\n     *     trimDropdown: true,\n     *   },\n     *   {\n     *     type: 'dropdown',\n     *     // for each cell of this column\n     *     // scale the `dropdown` list's width to the list's content\n     *     trimDropdown: false,\n     *   }\n     * ],\n     * ```\n     */\n    trimDropdown: true,\n    /**\n     * @description\n     * The `trimRows` option configures the [`TrimRows`](@/api/trimRows.md) plugin.\n     *\n     * You can set the `trimRows` option to one of the following:\n     *\n     * | Setting                          | Description                                                                                   |\n     * | -------------------------------- | --------------------------------------------------------------------------------------------- |\n     * | `false`                          | Disable the [`TrimRows`](@/api/trimRows.md) plugin                                            |\n     * | `true`                           | Enable the [`TrimRows`](@/api/trimRows.md) plugin                                             |\n     * | An array of physical row indexes | - Enable the [`TrimRows`](@/api/trimRows.md) plugin<br>- Trim selected rows at initialization |\n     *\n     * Read more:\n     * - [Plugins: `TrimRows`](@/api/trimRows.md)\n     * - [Row trimming](@/guides/rows/row-trimming/row-trimming.md)\n     *\n     * @memberof Options#\n     * @type {boolean|number[]}\n     * @default undefined\n     * @category TrimRows\n     *\n     * @example\n     * ```js\n     * // enable the `TrimRows` plugin\n     * trimRows: true,\n     *\n     * // enable the `TrimRows` plugin\n     * // at Handsontable's initialization, trim rows 5, 10, and 15\n     * trimRows: [5, 10, 15],\n     * ```\n     */\n    trimRows: undefined,\n    /**\n     * The `trimWhitespace` option configures automatic whitespace removal. This option\n     * affects the cell renderer and the cell editor.\n     *\n     * You can set the `trimWhitespace` option to one of the following:\n     *\n     * | Setting          | Description                                                     |\n     * | ---------------- | --------------------------------------------------------------- |\n     * | `true` (default) | Remove whitespace at the beginning and at the end of each cell |\n     * | `false`          | Don't remove whitespace                                         |\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *     // don't remove whitespace\n     *     // from any cell of this column\n     *     trimWhitespace: false\n     *   }\n     * ]\n     * ```\n     */\n    trimWhitespace: true,\n    /**\n     * @description\n     * The `type` option lets you set the [`renderer`](#renderer), [`editor`](#editor), and [`validator`](#validator)\n     * options all at once, by selecting a [cell type](@/guides/cell-types/cell-type/cell-type.md).\n     *\n     * You can set the `type` option to one of the following:\n     *\n     * | Cell type                                                         | Renderer, editor & validator                                                                                                                                                                                                                       |\n     * | ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n     * | A [custom cell type](@/guides/cell-types/cell-type/cell-type.md)            | Renderer: your [custom cell renderer](@/guides/cell-functions/cell-renderer/cell-renderer.md)<br>Editor: your [custom cell editor](@/guides/cell-functions/cell-editor/cell-editor.md)<br>Validator: your [custom cell validator](@/guides/cell-functions/cell-validator/cell-validator.md) |\n     * | [`'autocomplete'`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md) | Renderer: `AutocompleteRenderer`<br>Editor: `AutocompleteEditor`<br>Validator: `AutocompleteValidator`                                                                         |\n     * | [`'checkbox'`](@/guides/cell-types/checkbox-cell-type/checkbox-cell-type.md)         | Renderer: `CheckboxRenderer`<br>Editor: `CheckboxEditor`<br>Validator: -                                                                                                                               |\n     * | [`'date'`](@/guides/cell-types/date-cell-type/date-cell-type.md)                 | Renderer: `DateRenderer`<br>Editor: `DateEditor`<br>Validator: `DateValidator`                                                                                                 |\n     * | [`'dropdown'`](@/guides/cell-types/dropdown-cell-type/dropdown-cell-type.md)         | Renderer: `DropdownRenderer`<br>Editor: `DropdownEditor`<br>Validator: `DropdownValidator`                                                                                     |\n     * | [`'handsontable'`](@/guides/cell-types/handsontable-cell-type/handsontable-cell-type.md) | Renderer: `AutocompleteRenderer`<br>Editor: `HandsontableEditor`<br>Validator: -                                                                                                                       |\n     * | [`'numeric'`](@/guides/cell-types/numeric-cell-type/numeric-cell-type.md)           | Renderer: `NumericRenderer`<br>Editor: `NumericEditor`<br>Validator: `NumericValidator`                                                                                        |\n     * | [`'password'`](@/guides/cell-types/password-cell-type/password-cell-type.md)         | Renderer: `PasswordRenderer`<br>Editor: `PasswordEditor`<br>Validator: -                                                                                                                               |\n     * | `'text'`                                                          | Renderer: `TextRenderer`<br>Editor: `TextEditor`<br>Validator: -                                                                                                                                       |\n     * | [`'time`'](@/guides/cell-types/time-cell-type/time-cell-type.md)                 | Renderer: `TimeRenderer`<br>Editor: `TimeEditor`<br>Validator: `TimeValidator`                                                                                                 |\n     *\n     * Read more:\n     * - [Cell type](@/guides/cell-types/cell-type/cell-type.md)\n     * - [Cell renderer](@/guides/cell-functions/cell-renderer/cell-renderer.md)\n     * - [Cell editor](@/guides/cell-functions/cell-editor/cell-editor.md)\n     * - [Cell validator](@/guides/cell-functions/cell-validator/cell-validator.md)\n     * - [Configuration options: Cascading configuration](@/guides/getting-started/configuration-options/configuration-options.md#cascading-configuration)\n     * - [`renderer`](#renderer)\n     * - [`editor`](#editor)\n     * - [`validator`](#validator)\n     *\n     * @memberof Options#\n     * @type {string}\n     * @default 'text'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set the `numeric` cell type for each cell of the entire grid\n     * type: `'numeric'`,\n     *\n     * // apply the `type` option to individual columns\n     * columns: [\n     *   {\n     *     // set the `autocomplete` cell type for each cell of this column\n     *     type: 'autocomplete'\n     *   },\n     *   {\n     *     // set the `myCustomCellType` cell type for each cell of this column\n     *     type: 'myCustomCellType'\n     *   }\n     * ]\n     * ```\n     */\n    type: 'text',\n    /**\n     * The `uncheckedTemplate` option lets you configure what value\n     * an unchecked [`checkbox`](@/guides/cell-types/checkbox-cell-type/checkbox-cell-type.md) cell has.\n     *\n     * You can set the `uncheckedTemplate` option to one of the following:\n     *\n     * | Setting           | Description                                                                                                                                                                                |\n     * | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n     * | `false` (default) | If a [`checkbox`](@/guides/cell-types/checkbox-cell-type/checkbox-cell-type.md) cell is unchecked,<br>the [`getDataAtCell`](@/api/core.md#getDataAtCell) method for this cell returns `false`                 |\n     * | A string          | If a [`checkbox`](@/guides/cell-types/checkbox-cell-type/checkbox-cell-type.md) cell is unchecked,<br>the [`getDataAtCell`](@/api/core.md#getDataAtCell) method for this cell returns a string of your choice |\n     *\n     * Read more:\n     * - [Checkbox cell type: Checkbox template](@/guides/cell-types/checkbox-cell-type/checkbox-cell-type.md#checkbox-template)\n     * - [`getDataAtCell()`](@/api/core.md#getDataAtCell)\n     * - [`checkedTemplate`](#checkedTemplate)\n     *\n     * @memberof Options#\n     * @type {boolean|string|number}\n     * @default false\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *     // set the `type` of each cell in this column to `checkbox`\n     *     // when unchecked, the cell's value is `false`\n     *     // when checked, the cell's value is `true`\n     *     type: 'checkbox',\n     *   },\n     *   {\n     *     // set the `type` of each cell in this column to `checkbox`\n     *     // when unchecked, the cell's value is `'No'`\n     *     // when checked, the cell's value is `'Yes'`\n     *     type: 'checkbox',\n     *     uncheckedTemplate: 'No'\n     *     checkedTemplate: 'Yes',\n     *  }\n     * ],\n     * ```\n     */\n    uncheckedTemplate: undefined,\n    /**\n     * The `undo` option configures the [`UndoRedo`](@/api/undoRedo.md) plugin.\n     *\n     * You can set the `undo` option to one of the following:\n     *\n     * | Setting | Description                                        |\n     * | ------- | -------------------------------------------------- |\n     * | `true`  | Enable the [`UndoRedo`](@/api/undoRedo.md) plugin  |\n     * | `false` | Disable the [`UndoRedo`](@/api/undoRedo.md) plugin |\n     *\n     * By default, the `undo` option is set to `undefined`,\n     * but the [`UndoRedo`](@/api/undoRedo.md) plugin acts as enabled.\n     * To disable the [`UndoRedo`](@/api/undoRedo.md) plugin completely,\n     * set the `undo` option to `false`.\n     *\n     * Read more:\n     * - [Undo and redo](@/guides/accessories-and-menus/undo-redo/undo-redo.md)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default undefined\n     * @category UndoRedo\n     *\n     * @example\n     * ```js\n     * // enable the `UndoRedo` plugin\n     * undo: true,\n     * ```\n     */\n    undo: undefined,\n    /**\n     * @description\n     * The `validator` option sets a [cell validator](@/guides/cell-functions/cell-validator/cell-validator.md) for a cell.\n     *\n     * You can set the `validator` option to one of the following:\n     *\n     * | Setting              | Description                                                                      |\n     * | -------------------- | -------------------------------------------------------------------------------- |\n     * | A string             | A [cell validator alias](@/guides/cell-functions/cell-validator/cell-validator.md)              |\n     * | A function           | Your [custom cell validator function](@/guides/cell-functions/cell-validator/cell-validator.md) |\n     * | A regular expression | A regular expression used for cell validation                                    |\n     *\n     * By setting the `validator` option to a string,\n     * you can use one of the following [cell validator aliases](@/guides/cell-functions/cell-validator/cell-validator.md):\n     *\n     * | Alias               | Cell validator function                                                 |\n     * | ------------------- | ----------------------------------------------------------------------- |\n     * | A custom alias      | Your [custom cell validator](@/guides/cell-functions/cell-validator/cell-validator.md) |\n     * | `'autocomplete'`    | `AutocompleteValidator`                                                 |\n     * | `'date'`            | `DateValidator`                                                         |\n     * | `'dropdown'`        | `DropdownValidator`                                                     |\n     * | `'numeric'`         | `NumericValidator`                                                      |\n     * | `'time'`            | `TimeValidator`                                                         |\n     *\n     * To set the [`editor`](#editor), [`renderer`](#renderer), and [`validator`](#validator)\n     * options all at once, use the [`type`](#type) option.\n     *\n     * Read more:\n     * - [Cell validator](@/guides/cell-functions/cell-validator/cell-validator.md)\n     * - [Cell type](@/guides/cell-types/cell-type/cell-type.md)\n     * - [Configuration options: Cascading configuration](@/guides/getting-started/configuration-options/configuration-options.md#cascading-configuration)\n     * - [`type`](#type)\n     *\n     * @memberof Options#\n     * @type {Function|RegExp|string}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *    {\n     *      // use a built-in `numeric` cell validator\n     *      validator: 'numeric'\n     *    },\n     *    {\n     *      // validate against a regular expression\n     *      validator: /^[0-9]$/\n     *    },\n     *    {\n     *      // add a custom cell validator function\n     *      validator(value, callback) {\n     *          ...\n     *      }\n     *    },\n     * ],\n     * ```\n     */\n    validator: undefined,\n    /**\n     * @description\n     * The `viewportColumnRenderingOffset` option configures the number of columns\n     * to be rendered outside of the grid's viewport.\n     *\n     * You can set the `viewportColumnRenderingOffset` option to one of the following:\n     *\n     * | Setting            | Description                                             |\n     * | ------------------ | ------------------------------------------------------- |\n     * | `auto` (default)   | Use the offset calculated automatically by Handsontable |\n     * | A number           | Set the offset manually                                 |\n     *\n     * The `viewportColumnRenderingOffset` setting is ignored when [`renderAllColumns`](#renderAllColumns) is set to `true`.\n     *\n     * Read more:\n     * - [Performance: Define the number of pre-rendered rows and columns](@/guides/optimization/performance/performance.md#define-the-number-of-pre-rendered-rows-and-columns)\n     *\n     * @memberof Options#\n     * @type {number|string}\n     * @default 'auto'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // render 70 columns outside of the grid's viewport\n     * viewportColumnRenderingOffset: 70,\n     * ```\n     */\n    viewportColumnRenderingOffset: 'auto',\n    /**\n     * @description\n     * The `viewportRowRenderingOffset` option configures the number of rows\n     * to be rendered outside of the grid's viewport.\n     *\n     * You can set the `viewportRowRenderingOffset` option to one of the following:\n     *\n     * | Setting            | Description                                             |\n     * | ------------------ | ------------------------------------------------------- |\n     * | `auto` (default)   | Use the offset calculated automatically by Handsontable |\n     * | A number           | Set the offset manually                                 |\n     *\n     * The `viewportRowRenderingOffset` setting is ignored when [`renderAllRows`](#renderAllRows) is set to `true`.\n     *\n     * Read more:\n     * - [Performance: Define the number of pre-rendered rows and columns](@/guides/optimization/performance/performance.md#define-the-number-of-pre-rendered-rows-and-columns)\n     * - [Column virtualization](@/guides/columns/column-virtualization/column-virtualization.md)\n     *\n     * @memberof Options#\n     * @type {number|string}\n     * @default 'auto'\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // render 70 rows outside of the grid's viewport\n     * viewportRowRenderingOffset: 70,\n     * ```\n     */\n    viewportRowRenderingOffset: 'auto',\n    /**\n     * The `visibleRows` option sets the height of the [`autocomplete`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)\n     * and [`dropdown`](@/guides/cell-types/dropdown-cell-type/dropdown-cell-type.md) lists.\n     *\n     * When the number of list options exceeds the `visibleRows` number, a scrollbar appears.\n     *\n     * Read more:\n     * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)\n     * - [Dropdown cell type](@/guides/cell-types/dropdown-cell-type/dropdown-cell-type.md)\n     *\n     * @memberof Options#\n     * @type {number}\n     * @default 10\n     * @category Core\n     *\n     * @example\n     * ```js\n     * columns: [\n     *   {\n     *     type: 'autocomplete',\n     *     // set the `autocomplete` list's height to 15 options\n     *     // for each cell of this column\n     *     visibleRows: 15,\n     *   },\n     *   {\n     *     type: 'dropdown',\n     *     // set the `dropdown` list's height to 5 options\n     *     // for each cell of this column\n     *     visibleRows: 5,\n     *   }\n     * ],\n     * ```\n     */\n    visibleRows: 10,\n    /**\n     * The `width` option configures the width of your grid.\n     *\n     * You can set the `width` option to one of the following:\n     *\n     * | Setting                                                                    | Example                   |\n     * | -------------------------------------------------------------------------- | ------------------------- |\n     * | A number of pixels                                                         | `width: 500`              |\n     * | A string with a [CSS unit](https://www.w3schools.com/cssref/css_units.asp) | `width: '75vw'`           |\n     * | A function that returns a valid number or string                           | `width() { return 500; }` |\n     *\n     * Read more:\n     * - [Grid size](@/guides/getting-started/grid-size/grid-size.md)\n     *\n     * @memberof Options#\n     * @type {number|string|Function}\n     * @default undefined\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set the grid's width to 500px\n     * width: 500,\n     *\n     * // set the grid's width to 75vw\n     * width: '75vw',\n     *\n     * // set the grid's width to 500px, using a function\n     * width() {\n     *   return 500;\n     * },\n     * ```\n     */\n    width: undefined,\n    /**\n     * The `wordWrap` option configures whether content that exceeds a column's width is wrapped or not.\n     *\n     * You can set the `wordWrap` option to one of the following:\n     *\n     * | Setting          | Description                                             |\n     * | ---------------- | ------------------------------------------------------- |\n     * | `true` (default) | If content exceeds the column's width, wrap the content |\n     * | `false`          | Don't wrap content                                      |\n     *\n     * To style cells that don't wrap content, use the [`noWordWrapClassName`](#noWordWrapClassName) option.\n     *\n     * Read more:\n     * - [`noWordWrapClassName`](#noWordWrapClassName)\n     *\n     * @memberof Options#\n     * @type {boolean}\n     * @default true\n     * @category Core\n     *\n     * @example\n     * ```js\n     * // set column width for every column of the entire grid\n     * colWidths: 100,\n     *\n     * columns: [\n     *   {\n     *     // don't wrap content in this column\n     *     wordWrap: false,\n     *   },\n     *   {\n     *     // if content exceeds this column's width, wrap the content\n     *     wordWrap: true,\n     *   }\n     * ],\n     * ```\n     */\n    wordWrap: true\n\n    /* eslint-enable jsdoc/require-description-complete-sentence */\n  };\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/dataMap/metaManager/metaSchema.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/dataMap/metaManager/mods/dynamicCellMeta.mjs":
/*!********************************************************************************!*\
  !*** ./node_modules/handsontable/dataMap/metaManager/mods/dynamicCellMeta.mjs ***!
  \********************************************************************************/
/*! exports provided: DynamicCellMetaMod */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DynamicCellMetaMod\", function() { return DynamicCellMetaMod; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n\n\n\n\n\n\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n/**\n * @class DynamicCellMetaMod\n *\n * The `DynamicCellMetaMod` modifier allows for extending cell meta objects\n * (returned by `getCellMeta()` from `MetaManager`)\n * by user-specific properties.\n *\n * The user-specific properties can be added and changed dynamically,\n * either by Handsontable's hooks (`beforeGetCellMeta` and`afterGetCellMeta`),\n * or by Handsontable's `cells` option.\n *\n * The `getCellMeta()` method is used widely throughout the source code.\n * To boost the method's execution time,\n * the logic is triggered only once per one Handsontable slow render cycle.\n */\nclass DynamicCellMetaMod {\n  constructor(metaManager) {\n    /**\n     * @type {MetaManager}\n     */\n    _defineProperty(this, \"metaManager\", void 0);\n    /**\n     * @type {Map}\n     */\n    _defineProperty(this, \"metaSyncMemo\", new Map());\n    this.metaManager = metaManager;\n    metaManager.addLocalHook('afterGetCellMeta', cellMeta => this.extendCellMeta(cellMeta));\n    _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_8__[\"default\"].getSingleton().add('beforeRender', forceFullRender => {\n      if (forceFullRender) {\n        this.metaSyncMemo.clear();\n      }\n    }, this.metaManager.hot);\n  }\n\n  /**\n   * Extends the cell meta object by user-specific properties.\n   *\n   * The cell meta object can be extended dynamically,\n   * either by Handsontable's hooks (`beforeGetCellMeta` and`afterGetCellMeta`),\n   * or by Handsontable's `cells` option.\n   *\n   * To boost performance, the extending process is triggered only once per one slow Handsontable render cycle.\n   *\n   * @param {object} cellMeta The cell meta object.\n   */\n  extendCellMeta(cellMeta) {\n    var _this$metaSyncMemo$ge;\n    const {\n      row: physicalRow,\n      col: physicalColumn\n    } = cellMeta;\n    if ((_this$metaSyncMemo$ge = this.metaSyncMemo.get(physicalRow)) !== null && _this$metaSyncMemo$ge !== void 0 && _this$metaSyncMemo$ge.has(physicalColumn)) {\n      return;\n    }\n    const {\n      visualRow,\n      visualCol\n    } = cellMeta;\n    const hot = this.metaManager.hot;\n    const prop = hot.colToProp(visualCol);\n    cellMeta.prop = prop;\n    hot.runHooks('beforeGetCellMeta', visualRow, visualCol, cellMeta);\n\n    // extend a `type` value, added or changed in the `beforeGetCellMeta` hook\n    const cellType = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_9__[\"hasOwnProperty\"])(cellMeta, 'type') ? cellMeta.type : null;\n    let cellSettings = Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_10__[\"isFunction\"])(cellMeta.cells) ? cellMeta.cells(physicalRow, physicalColumn, prop) : null;\n    if (cellType) {\n      if (cellSettings) {\n        var _cellSettings$type;\n        cellSettings.type = (_cellSettings$type = cellSettings.type) !== null && _cellSettings$type !== void 0 ? _cellSettings$type : cellType;\n      } else {\n        cellSettings = {\n          type: cellType\n        };\n      }\n    }\n    if (cellSettings) {\n      this.metaManager.updateCellMeta(physicalRow, physicalColumn, cellSettings);\n    }\n    hot.runHooks('afterGetCellMeta', visualRow, visualCol, cellMeta);\n    if (!this.metaSyncMemo.has(physicalRow)) {\n      this.metaSyncMemo.set(physicalRow, new Set());\n    }\n    this.metaSyncMemo.get(physicalRow).add(physicalColumn);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/dataMap/metaManager/mods/dynamicCellMeta.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/dataMap/metaManager/mods/extendMetaProperties.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/dataMap/metaManager/mods/extendMetaProperties.mjs ***!
  \*************************************************************************************/
/*! exports provided: ExtendMetaPropertiesMod */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExtendMetaPropertiesMod\", function() { return ExtendMetaPropertiesMod; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n\n\n\n\n\n\n\n\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\nvar _initOnlyCallback = /*#__PURE__*/new WeakMap();\n/**\n * @class ExtendMetaPropertiesMod\n */\nclass ExtendMetaPropertiesMod {\n  constructor(metaManager) {\n    /**\n     * @type {MetaManager}\n     */\n    _defineProperty(this, \"metaManager\", void 0);\n    /**\n     * @type {Set}\n     */\n    _defineProperty(this, \"usageTracker\", new Set());\n    /**\n     * @type {Map}\n     */\n    _defineProperty(this, \"propDescriptors\", new Map([['ariaTags', {\n      initOnly: true\n    }], ['fixedColumnsLeft', {\n      target: 'fixedColumnsStart',\n      onChange(propName) {\n        const isRtl = this.metaManager.hot.isRtl();\n        if (isRtl && propName === 'fixedColumnsLeft') {\n          throw new Error('The `fixedColumnsLeft` is not supported for RTL. Please use option `fixedColumnsStart`.');\n        }\n        if (this.usageTracker.has('fixedColumnsLeft') && this.usageTracker.has('fixedColumnsStart')) {\n          throw new Error('The `fixedColumnsLeft` and `fixedColumnsStart` should not be used together. ' + 'Please use only the option `fixedColumnsStart`.');\n        }\n      }\n    }], ['layoutDirection', {\n      initOnly: true\n    }], ['renderAllColumns', {\n      initOnly: true\n    }], ['renderAllRows', {\n      initOnly: true\n    }]]));\n    /**\n     * Callback called when the prop is marked as `initOnly`.\n     *\n     * @param {string} propName The property name.\n     * @param {*} value The new value.\n     * @param {boolean} isInitialChange Is the change initial.\n     */\n    _classPrivateFieldInitSpec(this, _initOnlyCallback, (propName, value, isInitialChange) => {\n      if (!isInitialChange) {\n        throw new Error(`The \\`${propName}\\` option can not be updated after the Handsontable is initialized.`);\n      }\n    });\n    this.metaManager = metaManager;\n    this.extendMetaProps();\n  }\n  /**\n   * Extends the meta options based on the object descriptors from the `propDescriptors` list.\n   */\n  extendMetaProps() {\n    this.propDescriptors.forEach((descriptor, alias) => {\n      const {\n        initOnly,\n        target,\n        onChange\n      } = descriptor;\n      const hasTarget = typeof target === 'string';\n      const targetProp = hasTarget ? target : alias;\n      const origProp = `_${targetProp}`;\n      this.metaManager.globalMeta.meta[origProp] = this.metaManager.globalMeta.meta[targetProp];\n      if (onChange) {\n        this.installPropWatcher(alias, origProp, onChange);\n        if (hasTarget) {\n          this.installPropWatcher(target, origProp, onChange);\n        }\n      } else if (initOnly) {\n        this.installPropWatcher(alias, origProp, _classPrivateFieldGet(_initOnlyCallback, this));\n        if (!this.metaManager.globalMeta.meta._initOnlySettings) {\n          this.metaManager.globalMeta.meta._initOnlySettings = [];\n        }\n        this.metaManager.globalMeta.meta._initOnlySettings.push(alias);\n      }\n    });\n  }\n\n  /**\n   * Installs the property watcher to the `propName` option and forwards getter and setter to\n   * the new one.\n   *\n   * @param {string} propName The property to watch.\n   * @param {string} origProp The property from/to the value is forwarded.\n   * @param {Function} onChange The callback.\n   */\n  installPropWatcher(propName, origProp, onChange) {\n    const self = this;\n    Object.defineProperty(this.metaManager.globalMeta.meta, propName, {\n      get() {\n        return this[origProp];\n      },\n      set(value) {\n        const isInitialChange = !self.usageTracker.has(propName);\n        self.usageTracker.add(propName);\n        onChange.call(self, propName, value, isInitialChange);\n        this[origProp] = value;\n      },\n      enumerable: true,\n      configurable: true\n    });\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/dataMap/metaManager/mods/extendMetaProperties.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/dataMap/metaManager/utils.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/dataMap/metaManager/utils.mjs ***!
  \*****************************************************************/
/*! exports provided: extendByMetaType, columnFactory, isUnsignedNumber, assert, isNullish */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendByMetaType\", function() { return extendByMetaType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"columnFactory\", function() { return columnFactory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isUnsignedNumber\", function() { return isUnsignedNumber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assert\", function() { return assert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNullish\", function() { return isNullish; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _cellTypes_registry_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../cellTypes/registry.mjs */ \"./node_modules/handsontable/cellTypes/registry.mjs\");\n\n\n\n\n\n\n\n\n\n\n/**\n * Checks if the given property can be overwritten.\n *\n * @param {string} propertyName The property name to check.\n * @param {object} metaObject The current object meta settings.\n * @returns {boolean}\n */\nfunction canBeOverwritten(propertyName, metaObject) {\n  var _metaObject$_automati;\n  if (propertyName === 'CELL_TYPE') {\n    return false;\n  }\n  return ((_metaObject$_automati = metaObject._automaticallyAssignedMetaProps) === null || _metaObject$_automati === void 0 ? void 0 : _metaObject$_automati.has(propertyName)) || !Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_8__[\"hasOwnProperty\"])(metaObject, propertyName);\n}\n\n/**\n * Expands \"type\" property of the meta object to single values. For example `type: 'numeric'` sets\n * \"renderer\", \"editor\", \"validator\" properties to specific functions designed for numeric values.\n * If \"type\" is passed as an object that object will be returned, excluding properties that\n * already exist in the \"metaObject\".\n *\n * The function utilizes `_automaticallyAssignedMetaProps` meta property that allows tracking what\n * properties are changed by the \"type\" expanding feature. That properties can be always overwritten by\n * the user.\n *\n * @param {object} metaObject The meta object.\n * @param {object} settings The settings object with the \"type\" setting.\n * @param {object} settingsToCompareWith The object to compare which properties need to be updated.\n */\nfunction extendByMetaType(metaObject, settings) {\n  let settingsToCompareWith = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : metaObject;\n  const validType = typeof settings.type === 'string' ? Object(_cellTypes_registry_mjs__WEBPACK_IMPORTED_MODULE_9__[\"getCellType\"])(settings.type) : settings.type;\n  if (metaObject._automaticallyAssignedMetaProps) {\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_8__[\"objectEach\"])(settings, (value, key) => void metaObject._automaticallyAssignedMetaProps.delete(key));\n  }\n  if (!Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_8__[\"isObject\"])(validType)) {\n    return;\n  }\n  if (settingsToCompareWith === metaObject && !metaObject._automaticallyAssignedMetaProps) {\n    metaObject._automaticallyAssignedMetaProps = new Set();\n  }\n  const expandedType = {};\n  Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_8__[\"objectEach\"])(validType, (value, property) => {\n    if (canBeOverwritten(property, settingsToCompareWith)) {\n      var _metaObject$_automati2;\n      expandedType[property] = value;\n      (_metaObject$_automati2 = metaObject._automaticallyAssignedMetaProps) === null || _metaObject$_automati2 === void 0 || _metaObject$_automati2.add(property);\n    }\n  });\n  Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_8__[\"extend\"])(metaObject, expandedType);\n}\n\n/**\n * Creates new class which extends properties from TableMeta layer class.\n *\n * @param {TableMeta} TableMeta The TableMeta which the new ColumnMeta is created from.\n * @param {string[]} [conflictList] List of the properties which are conflicted with the column meta layer.\n *                                  Conflicted properties are overwritten by `undefined` value, to separate them\n *                                  from the TableMeta layer.\n * @returns {ColumnMeta} Returns constructor ready to initialize with `new` operator.\n */\nfunction columnFactory(TableMeta) {\n  let conflictList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  // Do not use ES6 \"class extends\" syntax here. It seems that the babel produces code\n  // which drastically decreases the performance of the ColumnMeta class creation.\n\n  /**\n   * Base \"class\" for column meta.\n   */\n  function ColumnMeta() {}\n  Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_8__[\"inherit\"])(ColumnMeta, TableMeta);\n\n  // Clear conflict settings\n  for (let i = 0; i < conflictList.length; i++) {\n    ColumnMeta.prototype[conflictList[i]] = undefined;\n  }\n  return ColumnMeta;\n}\n\n/**\n * Helper which checks if the provided argument is an unsigned number.\n *\n * @param {*} value Value to check.\n * @returns {boolean}\n */\nfunction isUnsignedNumber(value) {\n  return Number.isInteger(value) && value >= 0;\n}\n\n/**\n * Function which makes assertion by custom condition. Function throws an error when assertion doesn't meet the spec.\n *\n * @param {Function} condition Function with custom logic. The condition has to return boolean values.\n * @param {string} errorMessage String which describes assertion error.\n */\nfunction assert(condition, errorMessage) {\n  if (!condition()) {\n    throw new Error(`Assertion failed: ${errorMessage}`);\n  }\n}\n\n/**\n * Check if given variable is null or undefined.\n *\n * @param {*} variable Variable to check.\n * @returns {boolean}\n */\nfunction isNullish(variable) {\n  return variable === null || variable === undefined;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/dataMap/metaManager/utils.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/dataMap/replaceData.mjs":
/*!***********************************************************!*\
  !*** ./node_modules/handsontable/dataMap/replaceData.mjs ***!
  \***********************************************************/
/*! exports provided: replaceData */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"replaceData\", function() { return replaceData; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_string_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers/string.mjs */ \"./node_modules/handsontable/helpers/string.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n/* harmony import */ var _dataMap_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dataMap.mjs */ \"./node_modules/handsontable/dataMap/dataMap.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\n\n\n\n\n\n\n/**\n * Loads new data to Handsontable.\n *\n * @private\n * @param {Array} data Array of arrays or array of objects containing data.\n * @param {Function} setDataMapFunction Function that updates the datamap instance.\n * @param {Function} callbackFunction Function that takes care of updating Handsontable to the new dataset. Called\n * right before the `after-` hooks.\n * @param {object} config The configuration object containing all the needed dependency references and information.\n * @param {Handsontable.Core} config.hotInstance The Handsontable instance.\n * @param {DataMap} config.dataMap The current `dataMap` instance.\n * @param {DataSource} config.dataSource The current `dataSource` instance.\n * @param {string} config.internalSource The immediate internal source of the `replaceData` call.\n * @param {string} config.source The source of the call.\n * @param {boolean} config.firstRun `true` if it's a first call in the Handsontable lifecycle, `false` otherwise.\n * @fires Hooks#beforeLoadData\n * @fires Hooks#beforeUpdateData\n * @fires Hooks#afterLoadData\n * @fires Hooks#afterUpdateData\n * @fires Hooks#afterChange\n */\nfunction replaceData(data, setDataMapFunction, callbackFunction, config) {\n  const {\n    hotInstance,\n    dataMap,\n    dataSource,\n    internalSource,\n    source,\n    metaManager,\n    firstRun\n  } = config;\n  const capitalizedInternalSource = Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_2__[\"toUpperCaseFirst\"])(internalSource);\n  const tableMeta = hotInstance.getSettings();\n  if (Array.isArray(tableMeta.dataSchema)) {\n    hotInstance.dataType = 'array';\n  } else if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isFunction\"])(tableMeta.dataSchema)) {\n    hotInstance.dataType = 'function';\n  } else {\n    hotInstance.dataType = 'object';\n  }\n  if (dataMap) {\n    dataMap.destroy();\n  }\n  data = hotInstance.runHooks(`before${capitalizedInternalSource}`, data, firstRun, source);\n  const newDataMap = new _dataMap_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"](hotInstance, data, metaManager);\n\n  // We need to apply the new dataMap immediately, because of some asynchronous logic in the\n  // `autoRowSize`/`autoColumnSize` plugins.\n  setDataMapFunction(newDataMap);\n  if (typeof data === 'object' && data !== null) {\n    if (!(data.push && data.splice)) {\n      // check if data is array. Must use duck-type check so Backbone Collections also pass it\n      // when data is not an array, attempt to make a single-row array of it\n      // eslint-disable-next-line no-param-reassign\n      data = [data];\n    }\n  } else if (data === null) {\n    const dataSchema = newDataMap.getSchema();\n\n    // eslint-disable-next-line no-param-reassign\n    data = [];\n    let row;\n    let r = 0;\n    let rlen = 0;\n    for (r = 0, rlen = tableMeta.startRows; r < rlen; r++) {\n      if ((hotInstance.dataType === 'object' || hotInstance.dataType === 'function') && tableMeta.dataSchema) {\n        row = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"deepClone\"])(dataSchema);\n        data.push(row);\n      } else if (hotInstance.dataType === 'array') {\n        row = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"deepClone\"])(dataSchema[0]);\n        data.push(row);\n      } else {\n        row = [];\n        for (let c = 0, clen = tableMeta.startCols; c < clen; c++) {\n          row.push(null);\n        }\n        data.push(row);\n      }\n    }\n  } else {\n    throw new Error(`${internalSource} only accepts array of objects or array of arrays (${typeof data} given)`);\n  }\n  if (Array.isArray(data[0])) {\n    hotInstance.dataType = 'array';\n  }\n  tableMeta.data = data;\n  newDataMap.dataSource = data;\n  dataSource.data = data;\n  dataSource.dataType = hotInstance.dataType;\n  dataSource.colToProp = newDataMap.colToProp.bind(newDataMap);\n  dataSource.propToCol = newDataMap.propToCol.bind(newDataMap);\n  dataSource.countCachedColumns = newDataMap.countCachedColumns.bind(newDataMap);\n\n  // Run the logic for reassuring that the table structure fits the new dataset.\n  callbackFunction(newDataMap);\n  hotInstance.runHooks(`after${capitalizedInternalSource}`, data, firstRun, source);\n\n  // TODO: rethink the way the `afterChange` hook is being run here in the core `init` method.\n  if (!firstRun) {\n    hotInstance.runHooks('afterChange', null, internalSource);\n    hotInstance.render();\n  }\n  if (hotInstance.getSettings().ariaTags) {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"setAttribute\"])(hotInstance.rootElement, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_7__[\"A11Y_ROWCOUNT\"])(-1),\n    // If run after initialization, add the number of row headers.\n    Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_7__[\"A11Y_COLCOUNT\"])(hotInstance.countCols() + (hotInstance.view ? hotInstance.countRowHeaders() : 0))]);\n  }\n}\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/dataMap/replaceData.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/dist/handsontable.full.min.css":
/*!******************************************************************!*\
  !*** ./node_modules/handsontable/dist/handsontable.full.min.css ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../css-loader/dist/cjs.js??ref--6-oneOf-3-1!../../postcss-loader/src??ref--6-oneOf-3-2!./handsontable.full.min.css */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/handsontable/dist/handsontable.full.min.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1e3d99e6\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./node_modules/handsontable/dist/handsontable.full.min.css?");

/***/ }),

/***/ "./node_modules/handsontable/editorManager.mjs":
/*!*****************************************************!*\
  !*** ./node_modules/handsontable/editorManager.mjs ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers/unicode.mjs */ \"./node_modules/handsontable/helpers/unicode.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _editors_registry_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./editors/registry.mjs */ \"./node_modules/handsontable/editors/registry.mjs\");\n/* harmony import */ var _eventManager_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./eventManager.mjs */ \"./node_modules/handsontable/eventManager.mjs\");\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\nvar _EditorManager_brand = /*#__PURE__*/new WeakSet();\nclass EditorManager {\n  /**\n   * @param {Core} hotInstance The Handsontable instance.\n   * @param {TableMeta} tableMeta The table meta instance.\n   * @param {Selection} selection The selection instance.\n   */\n  constructor(hotInstance, tableMeta, _selection) {\n    /**\n     * OnAfterDocumentKeyDown callback.\n     *\n     * @param {KeyboardEvent} event The keyboard event object.\n     */\n    _classPrivateMethodInitSpec(this, _EditorManager_brand);\n    /**\n     * Instance of {@link Handsontable}.\n     *\n     * @private\n     * @type {Handsontable}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * Reference to an instance's private GridSettings object.\n     *\n     * @private\n     * @type {GridSettings}\n     */\n    _defineProperty(this, \"tableMeta\", void 0);\n    /**\n     * Instance of {@link Selection}.\n     *\n     * @private\n     * @type {Selection}\n     */\n    _defineProperty(this, \"selection\", void 0);\n    /**\n     * Instance of {@link EventManager}.\n     *\n     * @private\n     * @type {EventManager}\n     */\n    _defineProperty(this, \"eventManager\", void 0);\n    /**\n     * Determines if EditorManager is destroyed.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _defineProperty(this, \"destroyed\", false);\n    /**\n     * A reference to an instance of the activeEditor.\n     *\n     * @private\n     * @type {BaseEditor}\n     */\n    _defineProperty(this, \"activeEditor\", void 0);\n    /**\n     * Keeps a reference to the cell's properties object.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"cellProperties\", void 0);\n    this.hot = hotInstance;\n    this.tableMeta = tableMeta;\n    this.selection = _selection;\n    this.eventManager = new _eventManager_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"](hotInstance);\n    this.hot.addHook('afterDocumentKeyDown', event => _assertClassBrand(_EditorManager_brand, this, _onAfterDocumentKeyDown).call(this, event));\n\n    // Open editor when text composition is started (IME editor)\n    this.eventManager.addEventListener(this.hot.rootDocument.documentElement, 'compositionstart', event => {\n      if (!this.destroyed && this.hot.isListening()) {\n        this.openEditor('', event);\n      }\n    });\n    this.hot.view._wt.update('onCellDblClick', (event, coords, elem) => _assertClassBrand(_EditorManager_brand, this, _onCellDblClick).call(this, event, coords, elem));\n  }\n\n  /**\n   * Get active editor.\n   *\n   * @returns {BaseEditor}\n   */\n  getActiveEditor() {\n    return this.activeEditor;\n  }\n\n  /**\n   * Prepare text input to be displayed at given grid cell.\n   */\n  prepareEditor() {\n    var _this$hot$getSelected;\n    if (this.activeEditor && this.activeEditor.isWaiting()) {\n      this.closeEditor(false, false, dataSaved => {\n        if (dataSaved) {\n          this.prepareEditor();\n        }\n      });\n      return;\n    }\n    const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;\n    if (!highlight || highlight.isHeader()) {\n      return;\n    }\n    const {\n      row,\n      col\n    } = highlight;\n    const modifiedCellCoords = this.hot.runHooks('modifyGetCellCoords', row, col);\n    let visualRowToCheck = row;\n    let visualColumnToCheck = col;\n    if (Array.isArray(modifiedCellCoords)) {\n      [visualRowToCheck, visualColumnToCheck] = modifiedCellCoords;\n    }\n\n    // Getting values using the modified coordinates.\n    this.cellProperties = this.hot.getCellMeta(visualRowToCheck, visualColumnToCheck);\n    if (!this.isCellEditable()) {\n      this.clearActiveEditor();\n      return;\n    }\n    const td = this.hot.getCell(row, col, true);\n\n    // Skip the preparation when the cell is not rendered in the DOM. The cell is scrolled out of\n    // the table's viewport.\n    if (td) {\n      const editorClass = this.hot.getCellEditor(this.cellProperties);\n      const prop = this.hot.colToProp(visualColumnToCheck);\n      const originalValue = this.hot.getSourceDataAtCell(this.hot.toPhysicalRow(visualRowToCheck), visualColumnToCheck);\n      this.activeEditor = Object(_editors_registry_mjs__WEBPACK_IMPORTED_MODULE_3__[\"getEditorInstance\"])(editorClass, this.hot);\n      // Using not modified coordinates, as we need to get the table element using selection coordinates.\n      // There is an extra translation in the editor for saving value.\n      this.activeEditor.prepare(row, col, prop, td, originalValue, this.cellProperties);\n    }\n  }\n\n  /**\n   * Check is editor is opened/showed.\n   *\n   * @returns {boolean}\n   */\n  isEditorOpened() {\n    return this.activeEditor && this.activeEditor.isOpened();\n  }\n\n  /**\n   * Open editor with initial value.\n   *\n   * @param {null|string} newInitialValue New value from which editor will start if handled property it's not the `null`.\n   * @param {Event} event The event object.\n   * @param {boolean} [enableFullEditMode=false] When true, an editor works in full editing mode. Mode disallows closing an editor\n   *                                             when arrow keys are pressed.\n   */\n  openEditor(newInitialValue, event) {\n    let enableFullEditMode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    if (!this.isCellEditable()) {\n      this.clearActiveEditor();\n      return;\n    }\n    const selection = this.hot.getSelectedRangeLast();\n    let allowOpening = this.hot.runHooks('beforeBeginEditing', selection.highlight.row, selection.highlight.col, newInitialValue, event, enableFullEditMode);\n\n    // If the above hook does not return boolean apply default behavior which disallows opening\n    // an editor after double mouse click for non-contiguous selection (while pressing Ctrl/Cmd) and\n    // for multiple selected cells (while pressing SHIFT).\n    if (event instanceof MouseEvent && typeof allowOpening !== 'boolean') {\n      allowOpening = this.hot.selection.getLayerLevel() === 0 && selection.isSingle();\n    }\n    if (allowOpening === false) {\n      this.clearActiveEditor();\n      return;\n    }\n    if (!this.activeEditor) {\n      this.hot.scrollToFocusedCell();\n      this.prepareEditor();\n    }\n    if (this.activeEditor) {\n      if (enableFullEditMode) {\n        this.activeEditor.enableFullEditMode();\n      }\n      this.activeEditor.beginEditing(newInitialValue, event);\n    }\n  }\n\n  /**\n   * Close editor, finish editing cell.\n   *\n   * @param {boolean} restoreOriginalValue If `true`, then closes editor without saving value from the editor into a cell.\n   * @param {boolean} isCtrlPressed If `true`, then editor will save value to each cell in the last selected range.\n   * @param {Function} callback The callback function, fired after editor closing.\n   */\n  closeEditor(restoreOriginalValue, isCtrlPressed, callback) {\n    if (this.activeEditor) {\n      this.activeEditor.finishEditing(restoreOriginalValue, isCtrlPressed, callback);\n    } else if (callback) {\n      callback(false);\n    }\n  }\n\n  /**\n   * Close editor and save changes.\n   *\n   * @param {boolean} isCtrlPressed If `true`, then editor will save value to each cell in the last selected range.\n   */\n  closeEditorAndSaveChanges(isCtrlPressed) {\n    this.closeEditor(false, isCtrlPressed);\n  }\n\n  /**\n   * Close editor and restore original value.\n   *\n   * @param {boolean} isCtrlPressed Indication of whether the CTRL button is pressed.\n   */\n  closeEditorAndRestoreOriginalValue(isCtrlPressed) {\n    this.closeEditor(true, isCtrlPressed);\n  }\n\n  /**\n   * Clears reference to an instance of the active editor.\n   *\n   * @private\n   */\n  clearActiveEditor() {\n    this.activeEditor = undefined;\n  }\n\n  /**\n   * Checks if the currently selected cell (pointed by selection highlight coords) is editable.\n   * Editable cell is when:\n   *   - the cell has defined an editor type;\n   *   - the cell is not marked as read-only;\n   *   - the cell is not hidden.\n   *\n   * @private\n   * @returns {boolean}\n   */\n  isCellEditable() {\n    const selection = this.hot.getSelectedRangeLast();\n    if (!selection) {\n      return false;\n    }\n    const editorClass = this.hot.getCellEditor(this.cellProperties);\n    const {\n      row,\n      col\n    } = selection.highlight;\n    const {\n      rowIndexMapper,\n      columnIndexMapper\n    } = this.hot;\n    const isCellHidden = rowIndexMapper.isHidden(this.hot.toPhysicalRow(row)) || columnIndexMapper.isHidden(this.hot.toPhysicalColumn(col));\n    if (this.cellProperties.readOnly || !editorClass || isCellHidden) {\n      return false;\n    }\n    return true;\n  }\n\n  /**\n   * Controls selection's behavior after clicking `Enter`.\n   *\n   * @private\n   * @param {KeyboardEvent} event The keyboard event object.\n   */\n  moveSelectionAfterEnter(event) {\n    const enterMoves = {\n      ...(typeof this.tableMeta.enterMoves === 'function' ? this.tableMeta.enterMoves(event) : this.tableMeta.enterMoves)\n    };\n    if (event.shiftKey) {\n      enterMoves.row = -enterMoves.row;\n      enterMoves.col = -enterMoves.col;\n    }\n    if (this.hot.selection.isMultiple()) {\n      this.selection.transformFocus(enterMoves.row, enterMoves.col);\n    } else {\n      this.selection.transformStart(enterMoves.row, enterMoves.col, true);\n    }\n  }\n  /**\n   * Destroy the instance.\n   */\n  destroy() {\n    this.destroyed = true;\n    this.eventManager.destroy();\n  }\n}\nfunction _onAfterDocumentKeyDown(event) {\n  const selection = this.hot.getSelectedRangeLast();\n  if (!this.hot.isListening() || !selection || selection.highlight.isHeader() || Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isImmediatePropagationStopped\"])(event)) {\n    return;\n  }\n  const {\n    keyCode\n  } = event;\n\n  // catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)\n  const isCtrlPressed = (event.ctrlKey || event.metaKey) && !event.altKey;\n  if (!this.activeEditor || this.activeEditor && !this.activeEditor.isWaiting()) {\n    if (!Object(_helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isFunctionKey\"])(keyCode) && !Object(_helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isCtrlMetaKey\"])(keyCode) && !isCtrlPressed && !this.isEditorOpened()) {\n      this.openEditor('', event);\n    }\n  }\n}\n/**\n * OnCellDblClick callback.\n *\n * @param {MouseEvent} event The mouse event object.\n * @param {object} coords The cell coordinates.\n */\nfunction _onCellDblClick(event, coords) {\n  if (coords.isCell()) {\n    this.openEditor(null, event, true);\n  }\n}\nconst instances = new WeakMap();\n\n/**\n * @param {Core} hotInstance The Handsontable instance.\n * @param {TableMeta} tableMeta The table meta class instance.\n * @param {Selection} selection The selection instance.\n * @returns {EditorManager}\n */\nEditorManager.getInstance = function (hotInstance, tableMeta, selection) {\n  let editorManager = instances.get(hotInstance);\n  if (!editorManager) {\n    editorManager = new EditorManager(hotInstance, tableMeta, selection);\n    instances.set(hotInstance, editorManager);\n  }\n  return editorManager;\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (EditorManager);\n\n//# sourceURL=webpack:///./node_modules/handsontable/editorManager.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/autocompleteEditor/autocompleteEditor.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/editors/autocompleteEditor/autocompleteEditor.mjs ***!
  \*************************************************************************************/
/*! exports provided: EDITOR_TYPE, AutocompleteEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return EDITOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AutocompleteEditor\", function() { return AutocompleteEditor; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _handsontableEditor_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../handsontableEditor/index.mjs */ \"./node_modules/handsontable/editors/handsontableEditor/index.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _helpers_string_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/string.mjs */ \"./node_modules/handsontable/helpers/string.mjs\");\n/* harmony import */ var _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/unicode.mjs */ \"./node_modules/handsontable/helpers/unicode.mjs\");\n/* harmony import */ var _helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../helpers/browser.mjs */ \"./node_modules/handsontable/helpers/browser.mjs\");\n/* harmony import */ var _renderers_textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../renderers/textRenderer/index.mjs */ \"./node_modules/handsontable/renderers/textRenderer/index.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\nconst EDITOR_TYPE = 'autocomplete';\n\n/**\n * @private\n * @class AutocompleteEditor\n */\nvar _idPrefix = /*#__PURE__*/new WeakMap();\nclass AutocompleteEditor extends _handsontableEditor_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"HandsontableEditor\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * Query string to turn available values over.\n     *\n     * @type {string}\n     */\n    _defineProperty(this, \"query\", null);\n    /**\n     * Contains stripped choices.\n     *\n     * @type {string[]}\n     */\n    _defineProperty(this, \"strippedChoices\", []);\n    /**\n     * Contains raw choices.\n     *\n     * @type {Array}\n     */\n    _defineProperty(this, \"rawChoices\", []);\n    /**\n     * Holds the prefix of the editor's id.\n     *\n     * @type {string}\n     */\n    _classPrivateFieldInitSpec(this, _idPrefix, this.hot.guid.slice(0, 9));\n    /**\n     * Filters and sorts by relevance.\n     *\n     * @param {*} value The selected value.\n     * @param {string[]} choices The list of available choices.\n     * @param {boolean} caseSensitive Indicates if it's sorted by case.\n     * @returns {number[]} Array of indexes in original choices array.\n     */\n    _defineProperty(this, \"sortByRelevance\", function (value, choices, caseSensitive) {\n      const choicesRelevance = [];\n      const result = [];\n      const valueLength = value.length;\n      let choicesCount = choices.length;\n      let charsLeft;\n      let currentItem;\n      let i;\n      let valueIndex;\n      if (valueLength === 0) {\n        for (i = 0; i < choicesCount; i++) {\n          result.push(i);\n        }\n        return result;\n      }\n      for (i = 0; i < choicesCount; i++) {\n        currentItem = Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_6__[\"stripTags\"])(Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_5__[\"stringify\"])(choices[i]));\n        if (caseSensitive) {\n          valueIndex = currentItem.indexOf(value);\n        } else {\n          const locale = this.cellProperties.locale;\n          valueIndex = currentItem.toLocaleLowerCase(locale).indexOf(value.toLocaleLowerCase(locale));\n        }\n        if (valueIndex !== -1) {\n          charsLeft = currentItem.length - valueIndex - valueLength;\n          choicesRelevance.push({\n            baseIndex: i,\n            index: valueIndex,\n            charsLeft,\n            value: currentItem\n          });\n        }\n      }\n      choicesRelevance.sort((a, b) => {\n        if (b.index === -1) {\n          return -1;\n        }\n        if (a.index === -1) {\n          return 1;\n        }\n        if (a.index < b.index) {\n          return -1;\n        } else if (b.index < a.index) {\n          return 1;\n        } else if (a.index === b.index) {\n          if (a.charsLeft < b.charsLeft) {\n            return -1;\n          } else if (a.charsLeft > b.charsLeft) {\n            return 1;\n          }\n        }\n        return 0;\n      });\n      for (i = 0, choicesCount = choicesRelevance.length; i < choicesCount; i++) {\n        result.push(choicesRelevance[i].baseIndex);\n      }\n      return result;\n    });\n  }\n  static get EDITOR_TYPE() {\n    return EDITOR_TYPE;\n  }\n  /**\n   * Gets current value from editable element.\n   *\n   * @returns {string}\n   */\n  getValue() {\n    const selectedValue = this.rawChoices.find(value => {\n      const strippedValue = this.stripValueIfNeeded(value);\n      return strippedValue === this.TEXTAREA.value;\n    });\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isDefined\"])(selectedValue)) {\n      return selectedValue;\n    }\n    return this.TEXTAREA.value;\n  }\n\n  /**\n   * Creates an editor's elements and adds necessary CSS classnames.\n   */\n  createElements() {\n    super.createElements();\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"addClass\"])(this.htContainer, 'autocompleteEditor');\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"addClass\"])(this.htContainer, this.hot.rootWindow.navigator.platform.indexOf('Mac') === -1 ? '' : 'htMacScroll');\n    if (this.hot.getSettings().ariaTags) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"setAttribute\"])(this.TEXTAREA, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_TEXT\"])(), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_COMBOBOX\"])(), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_HASPOPUP\"])('listbox'), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_AUTOCOMPLETE\"])()]);\n    }\n  }\n\n  /**\n   * Prepares editor's metadata and configuration of the internal Handsontable's instance.\n   *\n   * @param {number} row The visual row index.\n   * @param {number} col The visual column index.\n   * @param {number|string} prop The column property (passed when datasource is an array of objects).\n   * @param {HTMLTableCellElement} td The rendered cell element.\n   * @param {*} value The rendered value.\n   * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n   */\n  prepare(row, col, prop, td, value, cellProperties) {\n    super.prepare(row, col, prop, td, value, cellProperties);\n    if (this.hot.getSettings().ariaTags) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"setAttribute\"])(this.TEXTAREA, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_EXPANDED\"])('false'), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_CONTROLS\"])(`${_classPrivateFieldGet(_idPrefix, this)}-listbox-${row}-${col}`)]);\n    }\n  }\n\n  /**\n   * Opens the editor and adjust its size and internal Handsontable's instance.\n   */\n  open() {\n    super.open();\n    const trimDropdown = this.cellProperties.trimDropdown === undefined ? true : this.cellProperties.trimDropdown;\n    const rootInstanceAriaTagsEnabled = this.hot.getSettings().ariaTags;\n    const sourceArray = Array.isArray(this.cellProperties.source) ? this.cellProperties.source : null;\n    const sourceSize = sourceArray === null || sourceArray === void 0 ? void 0 : sourceArray.length;\n    const {\n      row: rowIndex,\n      col: colIndex\n    } = this;\n    this.showEditableElement();\n    this.focus();\n    let scrollbarWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getScrollbarWidth\"])();\n    if (scrollbarWidth === 0 && Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_8__[\"isMacOS\"])()) {\n      scrollbarWidth += 15; // default scroll bar width if scroll bars are visible only when scrolling\n    }\n    this.addHook('beforeKeyDown', event => this.onBeforeKeyDown(event));\n    this.htEditor.updateSettings({\n      colWidths: trimDropdown ? [Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"outerWidth\"])(this.TEXTAREA) - 2] : undefined,\n      width: trimDropdown ? Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"outerWidth\"])(this.TEXTAREA) + scrollbarWidth : undefined,\n      autoColumnSize: true,\n      renderer: (hotInstance, TD, row, col, prop, value, cellProperties) => {\n        Object(_renderers_textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"textRenderer\"])(hotInstance, TD, row, col, prop, value, cellProperties);\n        const {\n          filteringCaseSensitive,\n          allowHtml,\n          locale\n        } = this.cellProperties;\n        const query = this.query;\n        let cellValue = Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_5__[\"stringify\"])(value);\n        let indexOfMatch;\n        let match;\n        if (cellValue && !allowHtml) {\n          indexOfMatch = filteringCaseSensitive === true ? cellValue.indexOf(query) : cellValue.toLocaleLowerCase(locale).indexOf(query.toLocaleLowerCase(locale));\n          if (indexOfMatch !== -1) {\n            match = cellValue.substr(indexOfMatch, query.length);\n            cellValue = cellValue.replace(match, `<strong>${match}</strong>`);\n          }\n        }\n        if (rootInstanceAriaTagsEnabled) {\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"setAttribute\"])(TD, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_OPTION\"])(),\n          // Add `setsize` and `posinset` only if the source is an array.\n          ...(sourceArray ? [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_SETSIZE\"])(sourceSize)] : []), ...(sourceArray ? [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_POSINSET\"])(sourceArray.indexOf(value) + 1)] : []), ['id', `${this.htEditor.rootElement.id}_${row}-${col}`]]);\n        }\n        TD.innerHTML = cellValue;\n      },\n      afterSelectionEnd: (startRow, startCol) => {\n        if (rootInstanceAriaTagsEnabled) {\n          const TD = this.htEditor.getCell(startRow, startCol, true);\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"setAttribute\"])(TD, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_SELECTED\"])()]);\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"setAttribute\"])(this.TEXTAREA, ...Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_ACTIVEDESCENDANT\"])(TD.id));\n        }\n      }\n    });\n    if (rootInstanceAriaTagsEnabled) {\n      // Add `role=presentation` to the main table to prevent the readers from treating the option list as a table.\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"setAttribute\"])(this.htEditor.view._wt.wtOverlays.wtTable.TABLE, ...Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_PRESENTATION\"])());\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"setAttribute\"])(this.htEditor.rootElement, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_LISTBOX\"])(), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_LIVE\"])('polite'), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_RELEVANT\"])('text'), ['id', `${_classPrivateFieldGet(_idPrefix, this)}-listbox-${rowIndex}-${colIndex}`]]);\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"setAttribute\"])(this.TEXTAREA, ...Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_EXPANDED\"])('true'));\n    }\n    this.hot._registerTimeout(() => {\n      this.queryChoices(this.TEXTAREA.value);\n    });\n  }\n\n  /**\n   * Closes the editor.\n   */\n  close() {\n    this.removeHooksByKey('beforeKeyDown');\n    super.close();\n    if (this.hot.getSettings().ariaTags) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"setAttribute\"])(this.TEXTAREA, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_10__[\"A11Y_EXPANDED\"])('false')]);\n    }\n  }\n\n  /**\n   * Verifies result of validation or closes editor if user's cancelled changes.\n   *\n   * @param {boolean|undefined} result If `false` and the cell using allowInvalid option,\n   *                                   then an editor won't be closed until validation is passed.\n   */\n  discardEditor(result) {\n    super.discardEditor(result);\n    this.hot.view.render();\n  }\n\n  /**\n   * Prepares choices list based on applied argument.\n   *\n   * @private\n   * @param {string} query The query.\n   */\n  queryChoices(query) {\n    const source = this.cellProperties.source;\n    this.query = query;\n    if (typeof source === 'function') {\n      source.call(this.cellProperties, query, choices => {\n        this.rawChoices = choices;\n        this.updateChoicesList(this.stripValuesIfNeeded(choices));\n      });\n    } else if (Array.isArray(source)) {\n      this.rawChoices = source;\n      this.updateChoicesList(this.stripValuesIfNeeded(source));\n    } else {\n      this.updateChoicesList([]);\n    }\n  }\n\n  /**\n   * Updates list of the possible completions to choose.\n   *\n   * @private\n   * @param {Array} choicesList The choices list to process.\n   */\n  updateChoicesList(choicesList) {\n    const pos = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getCaretPosition\"])(this.TEXTAREA);\n    const endPos = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getSelectionEndPosition\"])(this.TEXTAREA);\n    const sortByRelevanceSetting = this.cellProperties.sortByRelevance;\n    const filterSetting = this.cellProperties.filter;\n    let orderByRelevance = null;\n    let highlightIndex = null;\n    let choices = choicesList;\n    if (sortByRelevanceSetting) {\n      orderByRelevance = this.sortByRelevance(this.stripValueIfNeeded(this.getValue()), choices, this.cellProperties.filteringCaseSensitive);\n    }\n    const orderByRelevanceLength = Array.isArray(orderByRelevance) ? orderByRelevance.length : 0;\n    if (filterSetting === false) {\n      if (orderByRelevanceLength) {\n        highlightIndex = orderByRelevance[0];\n      }\n    } else {\n      const sorted = [];\n      for (let i = 0, choicesCount = choices.length; i < choicesCount; i++) {\n        if (sortByRelevanceSetting && orderByRelevanceLength <= i) {\n          break;\n        }\n        if (orderByRelevanceLength) {\n          sorted.push(choices[orderByRelevance[i]]);\n        } else {\n          sorted.push(choices[i]);\n        }\n      }\n      highlightIndex = 0;\n      choices = sorted;\n    }\n    this.strippedChoices = choices;\n    if (choices.length === 0) {\n      this.htEditor.rootElement.style.display = 'none';\n    } else {\n      this.htEditor.rootElement.style.display = '';\n    }\n    this.htEditor.loadData(Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"pivot\"])([choices]));\n    if (choices.length > 0) {\n      this.updateDropdownDimensions();\n      this.flipDropdownIfNeeded();\n      if (this.cellProperties.strict === true) {\n        this.highlightBestMatchingChoice(highlightIndex);\n      }\n    }\n    this.hot.listen();\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"setCaretPosition\"])(this.TEXTAREA, pos, pos === endPos ? undefined : endPos);\n  }\n\n  /**\n   * Checks where is enough place to open editor.\n   *\n   * @private\n   * @returns {boolean}\n   */\n  flipDropdownIfNeeded() {\n    const trimmingContainer = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getTrimmingContainer\"])(this.hot.view._wt.wtTable.TABLE);\n    const isWindowAsScrollableElement = trimmingContainer === this.hot.rootWindow;\n    const preventOverflow = this.cellProperties.preventOverflow;\n    if (isWindowAsScrollableElement || !isWindowAsScrollableElement && (preventOverflow || preventOverflow === 'horizontal')) {\n      return false;\n    }\n    const textareaOffset = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"offset\"])(this.TEXTAREA);\n    const textareaHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"outerHeight\"])(this.TEXTAREA);\n    const dropdownHeight = this.getDropdownHeight();\n    const trimmingContainerScrollTop = trimmingContainer.scrollTop;\n    const headersHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"outerHeight\"])(this.hot.view._wt.wtTable.THEAD);\n    const containerOffset = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"offset\"])(trimmingContainer);\n    const spaceAbove = textareaOffset.top - containerOffset.top - headersHeight + trimmingContainerScrollTop;\n    const spaceBelow = trimmingContainer.scrollHeight - spaceAbove - headersHeight - textareaHeight;\n    const flipNeeded = dropdownHeight > spaceBelow && spaceAbove > spaceBelow;\n    if (flipNeeded) {\n      this.flipDropdown(dropdownHeight);\n    } else {\n      this.unflipDropdown();\n    }\n    this.limitDropdownIfNeeded(flipNeeded ? spaceAbove : spaceBelow, dropdownHeight);\n    return flipNeeded;\n  }\n\n  /**\n   * Checks if the internal table should generate scrollbar or could be rendered without it.\n   *\n   * @private\n   * @param {number} spaceAvailable The free space as height defined in px available for dropdown list.\n   * @param {number} dropdownHeight The dropdown height.\n   */\n  limitDropdownIfNeeded(spaceAvailable, dropdownHeight) {\n    if (dropdownHeight > spaceAvailable) {\n      let tempHeight = 0;\n      let i = 0;\n      let lastRowHeight = 0;\n      let height = null;\n      do {\n        lastRowHeight = this.htEditor.getRowHeight(i) || this.htEditor.view._wt.getSetting('defaultRowHeight');\n        tempHeight += lastRowHeight;\n        i += 1;\n      } while (tempHeight < spaceAvailable);\n      height = tempHeight - lastRowHeight;\n      if (this.htEditor.flipped) {\n        this.htEditor.rootElement.style.top = `${parseInt(this.htEditor.rootElement.style.top, 10) + dropdownHeight - height}px`;\n      }\n      this.setDropdownHeight(tempHeight - lastRowHeight);\n    }\n  }\n\n  /**\n   * Configures editor to open it at the top.\n   *\n   * @private\n   * @param {number} dropdownHeight The dropdown height.\n   */\n  flipDropdown(dropdownHeight) {\n    const dropdownStyle = this.htEditor.rootElement.style;\n    dropdownStyle.position = 'absolute';\n    dropdownStyle.top = `${-dropdownHeight}px`;\n    this.htEditor.flipped = true;\n  }\n\n  /**\n   * Configures editor to open it at the bottom.\n   *\n   * @private\n   */\n  unflipDropdown() {\n    const dropdownStyle = this.htEditor.rootElement.style;\n    dropdownStyle.position = 'absolute';\n    dropdownStyle.top = '';\n    this.htEditor.flipped = undefined;\n  }\n\n  /**\n   * Updates width and height of the internal Handsontable's instance.\n   *\n   * @private\n   */\n  updateDropdownDimensions() {\n    const currentDropdownWidth = this.htEditor.getColWidth(0) + Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getScrollbarWidth\"])(this.hot.rootDocument) + 2;\n    const trimDropdown = this.cellProperties.trimDropdown;\n    this.htEditor.updateSettings({\n      height: this.getDropdownHeight(),\n      width: trimDropdown ? undefined : currentDropdownWidth\n    });\n    this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer();\n  }\n\n  /**\n   * Sets new height of the internal Handsontable's instance.\n   *\n   * @private\n   * @param {number} height The new dropdown height.\n   */\n  setDropdownHeight(height) {\n    this.htEditor.updateSettings({\n      height\n    });\n  }\n\n  /**\n   * Creates new selection on specified row index, or deselects selected cells.\n   *\n   * @private\n   * @param {number|undefined} index The visual row index.\n   */\n  highlightBestMatchingChoice(index) {\n    if (typeof index === 'number') {\n      this.htEditor.selectCell(index, 0, undefined, undefined, undefined, false);\n    } else {\n      this.htEditor.deselectCell();\n    }\n  }\n\n  /**\n   * Calculates and return the internal Handsontable's height.\n   *\n   * @private\n   * @returns {number}\n   */\n  getDropdownHeight() {\n    const firstRowHeight = this.htEditor.getRowHeight(0) || 23;\n    const visibleRows = this.cellProperties.visibleRows;\n    return this.strippedChoices.length >= visibleRows ? visibleRows * firstRowHeight : this.strippedChoices.length * firstRowHeight + 8; // eslint-disable-line max-len\n  }\n\n  /**\n   * Sanitizes value from potential dangerous tags.\n   *\n   * @private\n   * @param {string} value The value to sanitize.\n   * @returns {string}\n   */\n  stripValueIfNeeded(value) {\n    return this.stripValuesIfNeeded([value])[0];\n  }\n\n  /**\n   * Sanitizes an array of the values from potential dangerous tags.\n   *\n   * @private\n   * @param {string[]} values The value to sanitize.\n   * @returns {string[]}\n   */\n  stripValuesIfNeeded(values) {\n    const {\n      allowHtml\n    } = this.cellProperties;\n    const stringifiedValues = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayMap\"])(values, value => Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_5__[\"stringify\"])(value));\n    const strippedValues = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayMap\"])(stringifiedValues, value => allowHtml ? value : Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_6__[\"stripTags\"])(value));\n    return strippedValues;\n  }\n\n  /**\n   * Captures use of arrow down and up to control their behaviour.\n   *\n   * @private\n   * @param {number} keyCode The keyboard keycode.\n   * @returns {boolean}\n   */\n  allowKeyEventPropagation(keyCode) {\n    const selectedRange = this.htEditor.getSelectedRangeLast();\n    const selected = {\n      row: selectedRange ? selectedRange.from.row : -1\n    };\n    let allowed = false;\n    if (keyCode === _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_7__[\"KEY_CODES\"].ARROW_DOWN && selected.row > 0 && selected.row < this.htEditor.countRows() - 1) {\n      allowed = true;\n    }\n    if (keyCode === _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_7__[\"KEY_CODES\"].ARROW_UP && selected.row > -1) {\n      allowed = true;\n    }\n    return allowed;\n  }\n\n  /**\n   * OnBeforeKeyDown callback.\n   *\n   * @private\n   * @param {KeyboardEvent} event The keyboard event object.\n   */\n  onBeforeKeyDown(event) {\n    if (Object(_helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_7__[\"isPrintableChar\"])(event.keyCode) || event.keyCode === _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_7__[\"KEY_CODES\"].BACKSPACE || event.keyCode === _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_7__[\"KEY_CODES\"].DELETE || event.keyCode === _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_7__[\"KEY_CODES\"].INSERT) {\n      // for Windows 10 + FF86 there is need to add delay to make sure that the value taken from\n      // the textarea is the freshest value. Otherwise the list of choices does not update correctly (see #7570).\n      // On the more modern version of the FF (~ >=91) it seems that the issue is not present or it is\n      // more difficult to induce.\n      let timeOffset = 10;\n\n      // on ctl+c / cmd+c don't update suggestion list\n      if (event.keyCode === _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_7__[\"KEY_CODES\"].C && (event.ctrlKey || event.metaKey)) {\n        return;\n      }\n      if (!this.isOpened()) {\n        timeOffset += 10;\n      }\n      if (this.htEditor) {\n        this.hot._registerTimeout(() => {\n          this.queryChoices(this.TEXTAREA.value);\n        }, timeOffset);\n      }\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/autocompleteEditor/autocompleteEditor.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/autocompleteEditor/index.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/editors/autocompleteEditor/index.mjs ***!
  \************************************************************************/
/*! exports provided: EDITOR_TYPE, AutocompleteEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _autocompleteEditor_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./autocompleteEditor.mjs */ \"./node_modules/handsontable/editors/autocompleteEditor/autocompleteEditor.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return _autocompleteEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AutocompleteEditor\", function() { return _autocompleteEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"AutocompleteEditor\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/autocompleteEditor/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/baseEditor/baseEditor.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/editors/baseEditor/baseEditor.mjs ***!
  \*********************************************************************/
/*! exports provided: EDITOR_TYPE, EDITOR_STATE, BaseEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return EDITOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_STATE\", function() { return EDITOR_STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BaseEditor\", function() { return BaseEditor; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _mixins_hooksRefRegisterer_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/hooksRefRegisterer.mjs */ \"./node_modules/handsontable/mixins/hooksRefRegisterer.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\nconst EDITOR_TYPE = 'base';\nconst EDITOR_STATE = Object.freeze({\n  VIRGIN: 'STATE_VIRGIN',\n  // before editing\n  EDITING: 'STATE_EDITING',\n  WAITING: 'STATE_WAITING',\n  // waiting for async validation\n  FINISHED: 'STATE_FINISHED'\n});\n\n/**\n * @class BaseEditor\n */\nclass BaseEditor {\n  static get EDITOR_TYPE() {\n    return EDITOR_TYPE;\n  }\n\n  /**\n   * A reference to the source instance of the Handsontable.\n   *\n   * @type {Handsontable}\n   */\n\n  /**\n   * @param {Handsontable} hotInstance A reference to the source instance of the Handsontable.\n   */\n  constructor(hotInstance) {\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * Editor's state.\n     *\n     * @type {string}\n     */\n    _defineProperty(this, \"state\", EDITOR_STATE.VIRGIN);\n    /**\n     * Flag to store information about editor's opening status.\n     *\n     * @private\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"_opened\", false);\n    /**\n     * Defines the editor's editing mode. When false, then an editor works in fast editing mode.\n     *\n     * @private\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"_fullEditMode\", false);\n    /**\n     * Callback to call after closing editor.\n     *\n     * @type {Function}\n     */\n    _defineProperty(this, \"_closeCallback\", null);\n    /**\n     * Currently rendered cell's TD element.\n     *\n     * @type {HTMLTableCellElement}\n     */\n    _defineProperty(this, \"TD\", null);\n    /**\n     * Visual row index.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"row\", null);\n    /**\n     * Visual column index.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"col\", null);\n    /**\n     * Column property name or a column index, if datasource is an array of arrays.\n     *\n     * @type {number|string}\n     */\n    _defineProperty(this, \"prop\", null);\n    /**\n     * Original cell's value.\n     *\n     * @type {*}\n     */\n    _defineProperty(this, \"originalValue\", null);\n    /**\n     * Object containing the cell's properties.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"cellProperties\", null);\n    this.hot = hotInstance;\n    this.init();\n  }\n\n  /**\n   * Fires callback after closing editor.\n   *\n   * @private\n   * @param {boolean} result The editor value.\n   */\n  _fireCallbacks(result) {\n    if (this._closeCallback) {\n      this._closeCallback(result);\n      this._closeCallback = null;\n    }\n  }\n\n  /**\n   * Initializes an editor's intance.\n   */\n  init() {}\n\n  /**\n   * Required method to get current value from editable element.\n   */\n  getValue() {\n    throw Error('Editor getValue() method unimplemented');\n  }\n\n  /**\n   * Required method to set new value into editable element.\n   */\n  setValue() {\n    throw Error('Editor setValue() method unimplemented');\n  }\n\n  /**\n   * Required method to open editor.\n   */\n  open() {\n    throw Error('Editor open() method unimplemented');\n  }\n\n  /**\n   * Required method to close editor.\n   */\n  close() {\n    throw Error('Editor close() method unimplemented');\n  }\n\n  /**\n   * Prepares editor's meta data.\n   *\n   * @param {number} row The visual row index.\n   * @param {number} col The visual column index.\n   * @param {number|string} prop The column property (passed when datasource is an array of objects).\n   * @param {HTMLTableCellElement} td The rendered cell element.\n   * @param {*} value The rendered value.\n   * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n   */\n  prepare(row, col, prop, td, value, cellProperties) {\n    this.TD = td;\n    this.row = row;\n    this.col = col;\n    this.prop = prop;\n    this.originalValue = value;\n    this.cellProperties = cellProperties;\n    this.state = this.isOpened() ? this.state : EDITOR_STATE.VIRGIN;\n  }\n\n  /**\n   * Fallback method to provide extendable editors in ES5.\n   *\n   * @returns {Function}\n   */\n  extend() {\n    return class Editor extends this.constructor {};\n  }\n\n  /**\n   * Saves value from editor into data storage.\n   *\n   * @param {*} value The editor value.\n   * @param {boolean} ctrlDown If `true`, applies value to each cell in the last selected range.\n   */\n  saveValue(value, ctrlDown) {\n    let visualRowFrom;\n    let visualColumnFrom;\n    let visualRowTo;\n    let visualColumnTo;\n\n    // if ctrl+enter and multiple cells selected, behave like Excel (finish editing and apply to all cells)\n    if (ctrlDown) {\n      const selectedLast = this.hot.getSelectedLast();\n      visualRowFrom = Math.max(Math.min(selectedLast[0], selectedLast[2]), 0); // Math.max eliminate headers coords.\n      visualColumnFrom = Math.max(Math.min(selectedLast[1], selectedLast[3]), 0); // Math.max eliminate headers coords.\n      visualRowTo = Math.max(selectedLast[0], selectedLast[2]);\n      visualColumnTo = Math.max(selectedLast[1], selectedLast[3]);\n    } else {\n      [visualRowFrom, visualColumnFrom, visualRowTo, visualColumnTo] = [this.row, this.col, null, null];\n    }\n    const modifiedCellCoords = this.hot.runHooks('modifyGetCellCoords', visualRowFrom, visualColumnFrom);\n    if (Array.isArray(modifiedCellCoords)) {\n      [visualRowFrom, visualColumnFrom] = modifiedCellCoords;\n    }\n\n    // Saving values using the modified coordinates.\n    this.hot.populateFromArray(visualRowFrom, visualColumnFrom, value, visualRowTo, visualColumnTo, 'edit');\n  }\n\n  /**\n   * Begins editing on a highlighted cell and hides fillHandle corner if was present.\n   *\n   * @param {*} newInitialValue The initial editor value.\n   * @param {Event} event The keyboard event object.\n   */\n  beginEditing(newInitialValue, event) {\n    if (this.state !== EDITOR_STATE.VIRGIN) {\n      return;\n    }\n    const hotInstance = this.hot;\n    // We have to convert visual indexes into renderable indexes\n    // due to hidden columns don't participate in the rendering process\n    const renderableRowIndex = hotInstance.rowIndexMapper.getRenderableFromVisualIndex(this.row);\n    const renderableColumnIndex = hotInstance.columnIndexMapper.getRenderableFromVisualIndex(this.col);\n    hotInstance.view.scrollViewport(hotInstance._createCellCoords(renderableRowIndex, renderableColumnIndex));\n    this.state = EDITOR_STATE.EDITING;\n\n    // Set the editor value only in the full edit mode. In other mode the focusable element has to be empty,\n    // otherwise IME (editor for Asia users) doesn't work.\n    if (this.isInFullEditMode()) {\n      const stringifiedInitialValue = typeof newInitialValue === 'string' ? newInitialValue : Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(this.originalValue);\n      this.setValue(stringifiedInitialValue);\n    }\n    this.open(event);\n    this._opened = true;\n    this.focus();\n\n    // only rerender the selections (FillHandle should disappear when beginEditing is triggered)\n    hotInstance.view.render();\n    hotInstance.runHooks('afterBeginEditing', this.row, this.col);\n  }\n\n  /**\n   * Finishes editing and start saving or restoring process for editing cell or last selected range.\n   *\n   * @param {boolean} restoreOriginalValue If true, then closes editor without saving value from the editor into a cell.\n   * @param {boolean} ctrlDown If true, then saveValue will save editor's value to each cell in the last selected range.\n   * @param {Function} callback The callback function, fired after editor closing.\n   */\n  finishEditing(restoreOriginalValue, ctrlDown, callback) {\n    let val;\n    if (callback) {\n      const previousCloseCallback = this._closeCallback;\n      this._closeCallback = result => {\n        if (previousCloseCallback) {\n          previousCloseCallback(result);\n        }\n        callback(result);\n        this.hot.view.render();\n      };\n    }\n    if (this.isWaiting()) {\n      return;\n    }\n    if (this.state === EDITOR_STATE.VIRGIN) {\n      this.hot._registerTimeout(() => {\n        this._fireCallbacks(true);\n      });\n      return;\n    }\n    if (this.state === EDITOR_STATE.EDITING) {\n      if (restoreOriginalValue) {\n        this.cancelChanges();\n        this.hot.view.render();\n        return;\n      }\n      const value = this.getValue();\n      if (this.cellProperties.trimWhitespace) {\n        // We trim only string values\n        val = [[typeof value === 'string' ? String.prototype.trim.call(value || '') : value]];\n      } else {\n        val = [[value]];\n      }\n      this.state = EDITOR_STATE.WAITING;\n      this.saveValue(val, ctrlDown);\n      if (this.hot.getCellValidator(this.cellProperties)) {\n        this.hot.addHookOnce('postAfterValidate', result => {\n          this.state = EDITOR_STATE.FINISHED;\n          this.discardEditor(result);\n        });\n      } else {\n        this.state = EDITOR_STATE.FINISHED;\n        this.discardEditor(true);\n      }\n    }\n  }\n\n  /**\n   * Finishes editing without singout saving value.\n   */\n  cancelChanges() {\n    this.state = EDITOR_STATE.FINISHED;\n    this.discardEditor();\n  }\n\n  /**\n   * Verifies result of validation or closes editor if user's cancelled changes.\n   *\n   * @param {boolean|undefined} result If `false` and the cell using allowInvalid option,\n   *                                   then an editor won't be closed until validation is passed.\n   */\n  discardEditor(result) {\n    if (this.state !== EDITOR_STATE.FINISHED) {\n      return;\n    }\n\n    // validator was defined and failed\n    if (result === false && this.cellProperties.allowInvalid !== true) {\n      this.hot.selectCell(this.row, this.col);\n      this.focus();\n      this.state = EDITOR_STATE.EDITING;\n      this._fireCallbacks(false);\n    } else {\n      this.close();\n      this._opened = false;\n      this._fullEditMode = false;\n      this.state = EDITOR_STATE.VIRGIN;\n      this._fireCallbacks(true);\n      const shortcutManager = this.hot.getShortcutManager();\n      shortcutManager.setActiveContextName('grid');\n    }\n  }\n\n  /**\n   * Switch editor into full edit mode. In this state navigation keys don't close editor. This mode is activated\n   * automatically after hit ENTER or F2 key on the cell or while editing cell press F2 key.\n   */\n  enableFullEditMode() {\n    this._fullEditMode = true;\n  }\n\n  /**\n   * Checks if editor is in full edit mode.\n   *\n   * @returns {boolean}\n   */\n  isInFullEditMode() {\n    return this._fullEditMode;\n  }\n\n  /**\n   * Returns information whether the editor is open.\n   *\n   * @returns {boolean}\n   */\n  isOpened() {\n    return this._opened;\n  }\n\n  /**\n   * Returns information whether the editor is waiting, eg.: for async validation.\n   *\n   * @returns {boolean}\n   */\n  isWaiting() {\n    return this.state === EDITOR_STATE.WAITING;\n  }\n\n  /* eslint-disable jsdoc/require-description-complete-sentence */\n  /**\n   * Gets the object that provides information about the edited cell size and its position\n   * relative to the table viewport.\n   *\n   * The rectangle has six integer properties:\n   *  - `top` The top position relative to the table viewport\n   *  - `start` The left (or right in RTL) position relative to the table viewport\n   *  - `width` The cell's current width;\n   *  - `maxWidth` The maximum cell's width after which the editor goes out of the table viewport\n   *  - `height` The cell's current height;\n   *  - `maxHeight` The maximum cell's height after which the editor goes out of the table viewport\n   *\n   * @returns {{top: number, start: number, width: number, maxWidth: number, height: number, maxHeight: number} | undefined}\n   */\n  getEditedCellRect() {\n    var _wtOverlays$getParent;\n    const TD = this.getEditedCell();\n\n    // TD is outside of the viewport.\n    if (!TD) {\n      return;\n    }\n    const {\n      wtOverlays,\n      wtViewport\n    } = this.hot.view._wt;\n    const rootWindow = this.hot.rootWindow;\n    const currentOffset = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"offset\"])(TD);\n    const cellWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"outerWidth\"])(TD);\n    const containerOffset = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"offset\"])(this.hot.rootElement);\n    const containerWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"outerWidth\"])(this.hot.rootElement);\n    const scrollableContainerTop = wtOverlays.topOverlay.holder;\n    const scrollableContainerLeft = wtOverlays.inlineStartOverlay.holder;\n    const containerScrollTop = scrollableContainerTop !== rootWindow ? scrollableContainerTop.scrollTop : 0;\n    const containerScrollLeft = scrollableContainerLeft !== rootWindow ? scrollableContainerLeft.scrollLeft : 0;\n    const gridMostRightPos = rootWindow.innerWidth - containerOffset.left - containerWidth;\n    const {\n      wtTable: overlayTable\n    } = (_wtOverlays$getParent = wtOverlays.getParentOverlay(TD)) !== null && _wtOverlays$getParent !== void 0 ? _wtOverlays$getParent : this.hot.view._wt;\n    const overlayName = overlayTable.name;\n    const scrollTop = ['master', 'inline_start'].includes(overlayName) ? containerScrollTop : 0;\n    const scrollLeft = ['master', 'top', 'bottom'].includes(overlayName) ? containerScrollLeft : 0;\n\n    // If colHeaders is disabled, cells in the first row have border-top\n    const editTopModifier = currentOffset.top === containerOffset.top ? 0 : 1;\n    let topPos = currentOffset.top - containerOffset.top - editTopModifier - scrollTop;\n    let inlineStartPos = 0;\n    if (this.hot.isRtl()) {\n      inlineStartPos = rootWindow.innerWidth - currentOffset.left - cellWidth - gridMostRightPos - 1 + scrollLeft;\n    } else {\n      inlineStartPos = currentOffset.left - containerOffset.left - 1 - scrollLeft;\n    }\n\n    // When the scrollable element is Window object then the editor position needs to be compensated\n    // by the overlays' position (position relative to the table viewport). In other cases, the overlay's\n    // position always returns 0.\n    if (['top', 'top_inline_start_corner'].includes(overlayName)) {\n      topPos += wtOverlays.topOverlay.getOverlayOffset();\n    }\n    if (['inline_start', 'top_inline_start_corner'].includes(overlayName)) {\n      inlineStartPos += Math.abs(wtOverlays.inlineStartOverlay.getOverlayOffset());\n    }\n    const hasColumnHeaders = this.hot.hasColHeaders();\n    const renderableRow = this.hot.rowIndexMapper.getRenderableFromVisualIndex(this.row);\n    const renderableColumn = this.hot.columnIndexMapper.getRenderableFromVisualIndex(this.col);\n    const nrOfRenderableRowIndexes = this.hot.rowIndexMapper.getRenderableIndexesLength();\n    const firstRowIndexOfTheBottomOverlay = nrOfRenderableRowIndexes - this.hot.view._wt.getSetting('fixedRowsBottom');\n    if (hasColumnHeaders && renderableRow <= 0 || renderableRow === firstRowIndexOfTheBottomOverlay) {\n      topPos += 1;\n    }\n    if (renderableColumn <= 0) {\n      inlineStartPos += 1;\n    }\n    const firstRowOffset = wtViewport.rowsRenderCalculator.startPosition;\n    const firstColumnOffset = wtViewport.columnsRenderCalculator.startPosition;\n    const horizontalScrollPosition = Math.abs(wtOverlays.inlineStartOverlay.getScrollPosition());\n    const verticalScrollPosition = wtOverlays.topOverlay.getScrollPosition();\n    const scrollbarWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getScrollbarWidth\"])(this.hot.rootDocument);\n    let cellTopOffset = TD.offsetTop;\n    if (['inline_start', 'master'].includes(overlayName)) {\n      cellTopOffset += firstRowOffset - verticalScrollPosition;\n    }\n    if (['bottom', 'bottom_inline_start_corner'].includes(overlayName)) {\n      const {\n        wtViewport: bottomWtViewport,\n        wtTable: bottomWtTable\n      } = wtOverlays.bottomOverlay.clone;\n      cellTopOffset += bottomWtViewport.getWorkspaceHeight() - bottomWtTable.getHeight() - scrollbarWidth;\n    }\n    let cellStartOffset = TD.offsetLeft;\n    if (this.hot.isRtl()) {\n      if (cellStartOffset >= 0) {\n        cellStartOffset = overlayTable.getWidth() - TD.offsetLeft;\n      } else {\n        // The `offsetLeft` returns negative values when the parent offset element has position relative\n        // (it happens when on the cell the selection is applied - the `area` CSS class).\n        // When it happens the `offsetLeft` value is calculated from the right edge of the parent element.\n        cellStartOffset = Math.abs(cellStartOffset);\n      }\n      cellStartOffset += firstColumnOffset - horizontalScrollPosition - cellWidth;\n    } else if (['top', 'master', 'bottom'].includes(overlayName)) {\n      cellStartOffset += firstColumnOffset - horizontalScrollPosition;\n    }\n    const cellComputedStyle = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getComputedStyle\"])(this.TD, this.hot.rootWindow);\n    const borderPhysicalWidthProp = this.hot.isRtl() ? 'borderRightWidth' : 'borderLeftWidth';\n    const inlineStartBorderCompensation = parseInt(cellComputedStyle[borderPhysicalWidthProp], 10) > 0 ? 0 : 1;\n    const topBorderCompensation = parseInt(cellComputedStyle.borderTopWidth, 10) > 0 ? 0 : 1;\n    const width = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"outerWidth\"])(TD) + inlineStartBorderCompensation;\n    const height = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"outerHeight\"])(TD) + topBorderCompensation;\n    const actualVerticalScrollbarWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"hasVerticalScrollbar\"])(scrollableContainerTop) ? scrollbarWidth : 0;\n    const actualHorizontalScrollbarWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"hasHorizontalScrollbar\"])(scrollableContainerLeft) ? scrollbarWidth : 0;\n    const maxWidth = this.hot.view.maximumVisibleElementWidth(cellStartOffset) - actualVerticalScrollbarWidth + inlineStartBorderCompensation;\n    const maxHeight = Math.max(this.hot.view.maximumVisibleElementHeight(cellTopOffset) - actualHorizontalScrollbarWidth + topBorderCompensation, 23);\n    return {\n      top: topPos,\n      start: inlineStartPos,\n      height,\n      maxHeight,\n      width,\n      maxWidth\n    };\n  }\n  /* eslint-enable jsdoc/require-description-complete-sentence */\n\n  /**\n   * Gets className of the edited cell if exist.\n   *\n   * @returns {string}\n   */\n  getEditedCellsLayerClass() {\n    const editorSection = this.checkEditorSection();\n    switch (editorSection) {\n      case 'inline-start':\n        return 'ht_clone_left ht_clone_inline_start';\n      case 'bottom':\n        return 'ht_clone_bottom';\n      case 'bottom-inline-start-corner':\n        return 'ht_clone_bottom_left_corner ht_clone_bottom_inline_start_corner';\n      case 'top':\n        return 'ht_clone_top';\n      case 'top-inline-start-corner':\n        return 'ht_clone_top_left_corner ht_clone_top_inline_start_corner';\n      default:\n        return 'ht_clone_master';\n    }\n  }\n\n  /**\n   * Gets HTMLTableCellElement of the edited cell if exist.\n   *\n   * @returns {HTMLTableCellElement|null}\n   */\n  getEditedCell() {\n    return this.hot.getCell(this.row, this.col, true);\n  }\n\n  /**\n   * Returns name of the overlay, where editor is placed.\n   *\n   * @private\n   * @returns {string}\n   */\n  checkEditorSection() {\n    const totalRows = this.hot.countRows();\n    let section = '';\n    if (this.row < this.hot.getSettings().fixedRowsTop) {\n      if (this.col < this.hot.getSettings().fixedColumnsStart) {\n        section = 'top-inline-start-corner';\n      } else {\n        section = 'top';\n      }\n    } else if (this.hot.getSettings().fixedRowsBottom && this.row >= totalRows - this.hot.getSettings().fixedRowsBottom) {\n      if (this.col < this.hot.getSettings().fixedColumnsStart) {\n        section = 'bottom-inline-start-corner';\n      } else {\n        section = 'bottom';\n      }\n    } else if (this.col < this.hot.getSettings().fixedColumnsStart) {\n      section = 'inline-start';\n    }\n    return section;\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"mixin\"])(BaseEditor, _mixins_hooksRefRegisterer_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/baseEditor/baseEditor.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/baseEditor/index.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/editors/baseEditor/index.mjs ***!
  \****************************************************************/
/*! exports provided: EDITOR_STATE, EDITOR_TYPE, BaseEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseEditor_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./baseEditor.mjs */ \"./node_modules/handsontable/editors/baseEditor/baseEditor.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_STATE\", function() { return _baseEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_STATE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return _baseEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BaseEditor\", function() { return _baseEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"BaseEditor\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/baseEditor/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/checkboxEditor/checkboxEditor.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/editors/checkboxEditor/checkboxEditor.mjs ***!
  \*****************************************************************************/
/*! exports provided: EDITOR_TYPE, CheckboxEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return EDITOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CheckboxEditor\", function() { return CheckboxEditor; });\n/* harmony import */ var _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../baseEditor/index.mjs */ \"./node_modules/handsontable/editors/baseEditor/index.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n\n\nconst EDITOR_TYPE = 'checkbox';\n\n/**\n * @private\n * @class CheckboxEditor\n */\nclass CheckboxEditor extends _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"BaseEditor\"] {\n  static get EDITOR_TYPE() {\n    return EDITOR_TYPE;\n  }\n  beginEditing(initialValue, event) {\n    // Just some events connected with the checkbox editor are delegated here. Some `keydown` events like `enter` and\n    // `space` key presses are handled inside `checkboxRenderer`. Some events come here from `editorManager`. The below\n    // `if` statement was created by the author for the purpose of handling only the `doubleclick` event on the TD\n    // element with a checkbox.\n\n    if (event && event.type === 'mouseup' && event.target.nodeName === 'TD') {\n      const checkbox = this.TD.querySelector('input[type=\"checkbox\"]');\n      if (!Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"hasClass\"])(checkbox, 'htBadValue')) {\n        checkbox.click();\n      }\n    }\n  }\n  finishEditing() {}\n  init() {}\n  open() {}\n  close() {}\n  getValue() {}\n  setValue() {}\n  focus() {}\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/checkboxEditor/checkboxEditor.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/checkboxEditor/index.mjs":
/*!********************************************************************!*\
  !*** ./node_modules/handsontable/editors/checkboxEditor/index.mjs ***!
  \********************************************************************/
/*! exports provided: EDITOR_TYPE, CheckboxEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _checkboxEditor_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./checkboxEditor.mjs */ \"./node_modules/handsontable/editors/checkboxEditor/checkboxEditor.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return _checkboxEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CheckboxEditor\", function() { return _checkboxEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CheckboxEditor\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/checkboxEditor/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/dateEditor/dateEditor.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/editors/dateEditor/dateEditor.mjs ***!
  \*********************************************************************/
/*! exports provided: EDITOR_TYPE, DateEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return EDITOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DateEditor\", function() { return DateEditor; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var _handsontable_pikaday__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @handsontable/pikaday */ \"./node_modules/@handsontable/pikaday/pikaday.mjs\");\n/* harmony import */ var _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../baseEditor/index.mjs */ \"./node_modules/handsontable/editors/baseEditor/index.mjs\");\n/* harmony import */ var _textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../textEditor/index.mjs */ \"./node_modules/handsontable/editors/textEditor/index.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/unicode.mjs */ \"./node_modules/handsontable/helpers/unicode.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\nconst EDITOR_TYPE = 'date';\nconst SHORTCUTS_GROUP_EDITOR = 'dateEditor';\n\n/**\n * @private\n * @class DateEditor\n */\nclass DateEditor extends _textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"TextEditor\"] {\n  constructor() {\n    super(...arguments);\n    // TODO: Move this option to general settings\n    /**\n     * @type {string}\n     */\n    _defineProperty(this, \"defaultDateFormat\", 'DD/MM/YYYY');\n    /**\n     * @type {boolean}\n     */\n    _defineProperty(this, \"parentDestroyed\", false);\n    /**\n     * @type {Pikaday}\n     */\n    _defineProperty(this, \"$datePicker\", null);\n  }\n  static get EDITOR_TYPE() {\n    return EDITOR_TYPE;\n  }\n  init() {\n    if (typeof moment__WEBPACK_IMPORTED_MODULE_1__ !== 'function') {\n      throw new Error('You need to include moment.js to your project.');\n    }\n    if (typeof _handsontable_pikaday__WEBPACK_IMPORTED_MODULE_2__[\"default\"] !== 'function') {\n      throw new Error('You need to include Pikaday to your project.');\n    }\n    super.init();\n    this.hot.addHook('afterDestroy', () => {\n      this.parentDestroyed = true;\n      this.destroyElements();\n    });\n  }\n\n  /**\n   * Create data picker instance.\n   */\n  createElements() {\n    super.createElements();\n    this.datePicker = this.hot.rootDocument.createElement('DIV');\n    this.datePickerStyle = this.datePicker.style;\n    this.datePickerStyle.position = 'absolute';\n    this.datePickerStyle.top = 0;\n    this.datePickerStyle.left = 0;\n    this.datePickerStyle.zIndex = 9999;\n    this.datePicker.setAttribute('dir', this.hot.isRtl() ? 'rtl' : 'ltr');\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"addClass\"])(this.datePicker, 'htDatepickerHolder');\n    this.hot.rootDocument.body.appendChild(this.datePicker);\n\n    /**\n     * Prevent recognizing clicking on datepicker as clicking outside of table.\n     */\n    this.eventManager.addEventListener(this.datePicker, 'mousedown', event => {\n      if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"hasClass\"])(event.target, 'pika-day')) {\n        this.hideDatepicker();\n      }\n      event.stopPropagation();\n    });\n  }\n\n  /**\n   * Destroy data picker instance.\n   */\n  destroyElements() {\n    const datePickerParentElement = this.datePicker.parentNode;\n    if (this.$datePicker) {\n      this.$datePicker.destroy();\n    }\n    if (datePickerParentElement) {\n      datePickerParentElement.removeChild(this.datePicker);\n    }\n  }\n\n  /**\n   * Prepare editor to appear.\n   *\n   * @param {number} row The visual row index.\n   * @param {number} col The visual column index.\n   * @param {number|string} prop The column property (passed when datasource is an array of objects).\n   * @param {HTMLTableCellElement} td The rendered cell element.\n   * @param {*} value The rendered value.\n   * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n   */\n  prepare(row, col, prop, td, value, cellProperties) {\n    super.prepare(row, col, prop, td, value, cellProperties);\n  }\n\n  /**\n   * Open editor.\n   *\n   * @param {Event} [event=null] The event object.\n   */\n  open() {\n    let event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    const shortcutManager = this.hot.getShortcutManager();\n    const editorContext = shortcutManager.getContext('editor');\n    this.showDatepicker(event);\n    super.open();\n    editorContext.addShortcuts([{\n      keys: [['ArrowLeft']],\n      callback: () => {\n        this.$datePicker.adjustDate('subtract', 1);\n      }\n    }, {\n      keys: [['ArrowRight']],\n      callback: () => {\n        this.$datePicker.adjustDate('add', 1);\n      }\n    }, {\n      keys: [['ArrowUp']],\n      callback: () => {\n        this.$datePicker.adjustDate('subtract', 7);\n      }\n    }, {\n      keys: [['ArrowDown']],\n      callback: () => {\n        this.$datePicker.adjustDate('add', 7);\n      }\n    }], {\n      group: SHORTCUTS_GROUP_EDITOR\n    });\n  }\n\n  /**\n   * Close editor.\n   */\n  close() {\n    var _this$$datePicker;\n    this._opened = false;\n\n    // If the date picker was never initialized (e.g. during autofill), there's nothing to destroy.\n    if ((_this$$datePicker = this.$datePicker) !== null && _this$$datePicker !== void 0 && _this$$datePicker.destroy) {\n      this.$datePicker.destroy();\n    }\n    this.hot._registerTimeout(() => {\n      const editorManager = this.hot._getEditorManager();\n      editorManager.closeEditor();\n      this.hot.view.render();\n      editorManager.prepareEditor();\n    });\n    const shortcutManager = this.hot.getShortcutManager();\n    const editorContext = shortcutManager.getContext('editor');\n    editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP_EDITOR);\n    super.close();\n  }\n\n  /**\n   * Finishes editing and start saving or restoring process for editing cell or last selected range.\n   *\n   * @param {boolean} restoreOriginalValue If true, then closes editor without saving value from the editor into a cell.\n   * @param {boolean} ctrlDown If true, then saveValue will save editor's value to each cell in the last selected range.\n   */\n  finishEditing() {\n    let restoreOriginalValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    let ctrlDown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    super.finishEditing(restoreOriginalValue, ctrlDown);\n  }\n\n  /**\n   * Show data picker.\n   *\n   * @param {Event} event The event object.\n   */\n  showDatepicker(event) {\n    const dateFormat = this.cellProperties.dateFormat || this.defaultDateFormat;\n    const isMouseDown = this.hot.view.isMouseDown();\n    const isMeta = event ? Object(_helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_7__[\"isFunctionKey\"])(event.keyCode) : false;\n    let dateStr;\n    this.datePicker.style.display = 'block';\n    this.$datePicker = new _handsontable_pikaday__WEBPACK_IMPORTED_MODULE_2__[\"default\"](this.getDatePickerConfig());\n    if (typeof this.$datePicker.useMoment === 'function') {\n      this.$datePicker.useMoment(moment__WEBPACK_IMPORTED_MODULE_1__);\n    }\n    this.$datePicker._onInputFocus = function () {};\n    if (this.originalValue) {\n      dateStr = this.originalValue;\n      if (moment__WEBPACK_IMPORTED_MODULE_1__(dateStr, dateFormat, true).isValid()) {\n        this.$datePicker.setMoment(moment__WEBPACK_IMPORTED_MODULE_1__(dateStr, dateFormat), true);\n      }\n\n      // workaround for date/time cells - pikaday resets the cell value to 12:00 AM by default, this will overwrite the value.\n      if (this.getValue() !== this.originalValue) {\n        this.setValue(this.originalValue);\n      }\n      if (!isMeta && !isMouseDown) {\n        this.setValue('');\n      }\n    } else if (this.cellProperties.defaultDate) {\n      dateStr = this.cellProperties.defaultDate;\n      if (moment__WEBPACK_IMPORTED_MODULE_1__(dateStr, dateFormat, true).isValid()) {\n        this.$datePicker.setMoment(moment__WEBPACK_IMPORTED_MODULE_1__(dateStr, dateFormat), true);\n      }\n      if (!isMeta && !isMouseDown) {\n        this.setValue('');\n      }\n    } else {\n      // if a default date is not defined, set a soft-default-date: display the current day and month in the\n      // datepicker, but don't fill the editor input\n      this.$datePicker.gotoToday();\n    }\n  }\n\n  /**\n   * Hide data picker.\n   */\n  hideDatepicker() {\n    this.datePickerStyle.display = 'none';\n    this.$datePicker.hide();\n  }\n\n  /**\n   * Get date picker options.\n   *\n   * @returns {object}\n   */\n  getDatePickerConfig() {\n    const htInput = this.TEXTAREA;\n    const options = {};\n    if (this.cellProperties && this.cellProperties.datePickerConfig) {\n      Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_6__[\"deepExtend\"])(options, this.cellProperties.datePickerConfig);\n    }\n    const origOnSelect = options.onSelect;\n    const origOnClose = options.onClose;\n    options.field = htInput;\n    options.trigger = htInput;\n    options.container = this.datePicker;\n    options.bound = false;\n    options.keyboardInput = false;\n    options.format = options.format || this.defaultDateFormat;\n    options.reposition = options.reposition || false;\n    // Set the RTL to `false`. Due to the https://github.com/Pikaday/Pikaday/issues/647 bug, the layout direction\n    // of the date picker is controlled by juggling the \"dir\" attribute of the root date picker element.\n    // See line @64 of this file.\n    options.isRTL = false;\n    options.onSelect = value => {\n      let dateStr = value;\n      if (!isNaN(dateStr.getTime())) {\n        dateStr = moment__WEBPACK_IMPORTED_MODULE_1__(dateStr).format(this.cellProperties.dateFormat || this.defaultDateFormat);\n      }\n      this.setValue(dateStr);\n      if (origOnSelect) {\n        origOnSelect();\n      }\n    };\n    options.onClose = () => {\n      if (!this.parentDestroyed) {\n        this.finishEditing(false);\n      }\n      if (origOnClose) {\n        origOnClose();\n      }\n    };\n    return options;\n  }\n\n  /**\n   * Refreshes datepicker's size and position. The method is called internally by Handsontable.\n   *\n   * @private\n   * @param {boolean} force Indicates if the refreshing editor dimensions should be triggered.\n   */\n  refreshDimensions(force) {\n    var _wtOverlays$getParent;\n    super.refreshDimensions(force);\n    if (this.state !== _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"EDITOR_STATE\"].EDITING) {\n      return;\n    }\n    this.TD = this.getEditedCell();\n    if (!this.TD) {\n      this.hideDatepicker();\n      return;\n    }\n    const {\n      rowIndexMapper,\n      columnIndexMapper\n    } = this.hot;\n    const {\n      wtOverlays\n    } = this.hot.view._wt;\n    const {\n      wtTable\n    } = (_wtOverlays$getParent = wtOverlays.getParentOverlay(this.TD)) !== null && _wtOverlays$getParent !== void 0 ? _wtOverlays$getParent : this.hot.view._wt;\n    const firstVisibleRow = rowIndexMapper.getVisualFromRenderableIndex(wtTable.getFirstPartiallyVisibleRow());\n    const lastVisibleRow = rowIndexMapper.getVisualFromRenderableIndex(wtTable.getLastPartiallyVisibleRow());\n    const firstVisibleColumn = columnIndexMapper.getVisualFromRenderableIndex(wtTable.getFirstPartiallyVisibleColumn());\n    const lastVisibleColumn = columnIndexMapper.getVisualFromRenderableIndex(wtTable.getLastPartiallyVisibleColumn());\n    if (this.row >= firstVisibleRow && this.row <= lastVisibleRow && this.col >= firstVisibleColumn && this.col <= lastVisibleColumn) {\n      const offset = this.TD.getBoundingClientRect();\n      this.datePickerStyle.top = `${this.hot.rootWindow.pageYOffset + offset.top + Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"outerHeight\"])(this.TD)}px`;\n      let pickerLeftPosition = this.hot.rootWindow.pageXOffset;\n      if (this.hot.isRtl()) {\n        pickerLeftPosition += offset.right - Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"outerWidth\"])(this.datePicker);\n      } else {\n        pickerLeftPosition += offset.left;\n      }\n      this.datePickerStyle.left = `${pickerLeftPosition}px`;\n    } else {\n      this.hideDatepicker();\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/dateEditor/dateEditor.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/dateEditor/index.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/editors/dateEditor/index.mjs ***!
  \****************************************************************/
/*! exports provided: EDITOR_TYPE, DateEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dateEditor_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dateEditor.mjs */ \"./node_modules/handsontable/editors/dateEditor/dateEditor.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return _dateEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DateEditor\", function() { return _dateEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"DateEditor\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/dateEditor/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/dropdownEditor/dropdownEditor.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/editors/dropdownEditor/dropdownEditor.mjs ***!
  \*****************************************************************************/
/*! exports provided: EDITOR_TYPE, DropdownEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return EDITOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DropdownEditor\", function() { return DropdownEditor; });\n/* harmony import */ var _autocompleteEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../autocompleteEditor/index.mjs */ \"./node_modules/handsontable/editors/autocompleteEditor/index.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n\n\nconst EDITOR_TYPE = 'dropdown';\n\n/**\n * @private\n * @class DropdownEditor\n */\nclass DropdownEditor extends _autocompleteEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"AutocompleteEditor\"] {\n  static get EDITOR_TYPE() {\n    return EDITOR_TYPE;\n  }\n\n  /**\n   * @param {number} row The visual row index.\n   * @param {number} col The visual column index.\n   * @param {number|string} prop The column property (passed when datasource is an array of objects).\n   * @param {HTMLTableCellElement} td The rendered cell element.\n   * @param {*} value The rendered value.\n   * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n   */\n  prepare(row, col, prop, td, value, cellProperties) {\n    super.prepare(row, col, prop, td, value, cellProperties);\n    this.cellProperties.filter = false;\n    this.cellProperties.strict = true;\n  }\n}\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getSingleton().add('beforeValidate', function (value, row, col) {\n  const visualColumnIndex = this.propToCol(col);\n  if (Number.isInteger(visualColumnIndex)) {\n    const cellMeta = this.getCellMeta(row, visualColumnIndex);\n    if (cellMeta.editor === DropdownEditor) {\n      if (cellMeta.strict === undefined) {\n        cellMeta.filter = false;\n        cellMeta.strict = true;\n      }\n    }\n  }\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/dropdownEditor/dropdownEditor.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/dropdownEditor/index.mjs":
/*!********************************************************************!*\
  !*** ./node_modules/handsontable/editors/dropdownEditor/index.mjs ***!
  \********************************************************************/
/*! exports provided: EDITOR_TYPE, DropdownEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dropdownEditor_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dropdownEditor.mjs */ \"./node_modules/handsontable/editors/dropdownEditor/dropdownEditor.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return _dropdownEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DropdownEditor\", function() { return _dropdownEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"DropdownEditor\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/dropdownEditor/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/handsontableEditor/handsontableEditor.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/editors/handsontableEditor/handsontableEditor.mjs ***!
  \*************************************************************************************/
/*! exports provided: EDITOR_TYPE, HandsontableEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return EDITOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HandsontableEditor\", function() { return HandsontableEditor; });\n/* harmony import */ var _textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../textEditor/index.mjs */ \"./node_modules/handsontable/editors/textEditor/index.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shortcutContexts/index.mjs */ \"./node_modules/handsontable/shortcutContexts/index.mjs\");\n\n\n\n\n\nconst SHORTCUTS_GROUP = 'handsontableEditor';\nconst EDITOR_TYPE = 'handsontable';\n\n/**\n * @private\n * @class HandsontableEditor\n */\nclass HandsontableEditor extends _textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"TextEditor\"] {\n  static get EDITOR_TYPE() {\n    return EDITOR_TYPE;\n  }\n\n  /**\n   * Opens the editor and adjust its size.\n   */\n  open() {\n    super.open();\n    if (this.htEditor) {\n      this.htEditor.destroy();\n    }\n    if (this.htContainer.style.display === 'none') {\n      this.htContainer.style.display = '';\n    }\n\n    // Constructs and initializes a new Handsontable instance\n    this.htEditor = new this.hot.constructor(this.htContainer, this.htOptions);\n    this.htEditor.init();\n    this.htEditor.rootElement.style.display = '';\n    if (this.cellProperties.strict) {\n      this.htEditor.selectCell(0, 0);\n    } else {\n      this.htEditor.deselectCell();\n    }\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"setCaretPosition\"])(this.TEXTAREA, 0, this.TEXTAREA.value.length);\n    this.refreshDimensions();\n  }\n\n  /**\n   * Closes the editor.\n   */\n  close() {\n    if (this.htEditor) {\n      this.htEditor.rootElement.style.display = 'none';\n    }\n    this.removeHooksByKey('beforeKeyDown');\n    super.close();\n  }\n\n  /**\n   * Prepares editor's meta data and configuration of the internal Handsontable's instance.\n   *\n   * @param {number} row The visual row index.\n   * @param {number} col The visual column index.\n   * @param {number|string} prop The column property (passed when datasource is an array of objects).\n   * @param {HTMLTableCellElement} td The rendered cell element.\n   * @param {*} value The rendered value.\n   * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n   */\n  prepare(row, col, prop, td, value, cellProperties) {\n    super.prepare(row, col, prop, td, value, cellProperties);\n    const parent = this;\n    const options = {\n      startRows: 0,\n      startCols: 0,\n      minRows: 0,\n      minCols: 0,\n      className: 'listbox',\n      copyPaste: false,\n      autoColumnSize: false,\n      autoRowSize: false,\n      readOnly: true,\n      fillHandle: false,\n      autoWrapCol: false,\n      autoWrapRow: false,\n      ariaTags: false,\n      afterOnCellMouseDown(_, coords) {\n        const sourceValue = this.getSourceData(coords.row, coords.col);\n\n        // if the value is undefined then it means we don't want to set the value\n        if (sourceValue !== undefined) {\n          parent.setValue(sourceValue);\n        }\n        parent.hot.destroyEditor();\n      },\n      preventWheel: true,\n      layoutDirection: this.hot.isRtl() ? 'rtl' : 'ltr'\n    };\n    if (this.cellProperties.handsontable) {\n      Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"extend\"])(options, cellProperties.handsontable);\n    }\n    this.htOptions = options;\n  }\n\n  /**\n   * Begins editing on a highlighted cell and hides fillHandle corner if was present.\n   *\n   * @param {*} newInitialValue The editor initial value.\n   * @param {*} event The keyboard event object.\n   */\n  beginEditing(newInitialValue, event) {\n    const onBeginEditing = this.hot.getSettings().onBeginEditing;\n    if (onBeginEditing && onBeginEditing() === false) {\n      return;\n    }\n    super.beginEditing(newInitialValue, event);\n  }\n\n  /**\n   * Creates an editor's elements and adds necessary CSS classnames.\n   */\n  createElements() {\n    super.createElements();\n    const DIV = this.hot.rootDocument.createElement('DIV');\n    DIV.className = 'handsontableEditor';\n    this.TEXTAREA_PARENT.appendChild(DIV);\n    this.htContainer = DIV;\n    this.assignHooks();\n  }\n\n  /**\n   * Finishes editing and start saving or restoring process for editing cell or last selected range.\n   *\n   * @param {boolean} restoreOriginalValue If true, then closes editor without saving value from the editor into a cell.\n   * @param {boolean} ctrlDown If true, then saveValue will save editor's value to each cell in the last selected range.\n   * @param {Function} callback The callback function, fired after editor closing.\n   */\n  finishEditing(restoreOriginalValue, ctrlDown, callback) {\n    if (this.htEditor && this.htEditor.isListening()) {\n      // if focus is still in the HOT editor\n      this.hot.listen(); // return the focus to the parent HOT instance\n    }\n    if (this.htEditor && this.htEditor.getSelectedLast()) {\n      const value = this.htEditor.getValue();\n      if (value !== undefined) {\n        // if the value is undefined then it means we don't want to set the value\n        this.setValue(value);\n      }\n    }\n    super.finishEditing(restoreOriginalValue, ctrlDown, callback);\n  }\n\n  /**\n   * Assigns afterDestroy callback to prevent memory leaks.\n   *\n   * @private\n   */\n  assignHooks() {\n    this.hot.addHook('afterDestroy', () => {\n      if (this.htEditor) {\n        this.htEditor.destroy();\n      }\n    });\n  }\n\n  /**\n   * Register shortcuts responsible for handling editor.\n   *\n   * @private\n   */\n  registerShortcuts() {\n    const shortcutManager = this.hot.getShortcutManager();\n    const editorContext = shortcutManager.getContext('editor');\n    super.registerShortcuts();\n    const contextConfig = {\n      group: SHORTCUTS_GROUP,\n      relativeToGroup: _shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"EDITOR_EDIT_GROUP\"],\n      position: 'before'\n    };\n    const action = (rowToSelect, event) => {\n      const innerHOT = this.htEditor;\n      if (rowToSelect !== undefined) {\n        if (rowToSelect < 0 || innerHOT.flipped && rowToSelect > innerHOT.countRows() - 1) {\n          innerHOT.deselectCell();\n        } else {\n          innerHOT.selectCell(rowToSelect, 0);\n        }\n        if (innerHOT.getData().length) {\n          event.preventDefault();\n          Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_2__[\"stopImmediatePropagation\"])(event);\n          this.hot.listen();\n          this.TEXTAREA.focus();\n          return false;\n        }\n      }\n    };\n    editorContext.addShortcuts([{\n      keys: [['ArrowUp']],\n      callback: event => {\n        const innerHOT = this.htEditor;\n        let rowToSelect;\n        let selectedRow;\n        if (!innerHOT.getSelectedLast() && innerHOT.flipped) {\n          rowToSelect = innerHOT.countRows() - 1;\n        } else if (innerHOT.getSelectedLast()) {\n          if (innerHOT.flipped) {\n            selectedRow = innerHOT.getSelectedLast()[0];\n            rowToSelect = Math.max(0, selectedRow - 1);\n          } else {\n            selectedRow = innerHOT.getSelectedLast()[0];\n            rowToSelect = selectedRow - 1;\n          }\n        }\n        return action(rowToSelect, event);\n      },\n      preventDefault: false // Doesn't block default behaviour (navigation) for a `textArea` HTMLElement.\n    }, {\n      keys: [['ArrowDown']],\n      callback: event => {\n        const innerHOT = this.htEditor;\n        let rowToSelect;\n        let selectedRow;\n        if (!innerHOT.getSelectedLast() && !innerHOT.flipped) {\n          rowToSelect = 0;\n        } else if (innerHOT.getSelectedLast()) {\n          if (innerHOT.flipped) {\n            rowToSelect = innerHOT.getSelectedLast()[0] + 1;\n          } else if (!innerHOT.flipped) {\n            const lastRow = innerHOT.countRows() - 1;\n            selectedRow = innerHOT.getSelectedLast()[0];\n            rowToSelect = Math.min(lastRow, selectedRow + 1);\n          }\n        }\n        return action(rowToSelect, event);\n      },\n      preventDefault: false // Doesn't block default behaviour (navigation) for a `textArea` HTMLElement.\n    }], contextConfig);\n  }\n\n  /**\n   * Unregister shortcuts responsible for handling editor.\n   *\n   * @private\n   */\n  unregisterShortcuts() {\n    super.unregisterShortcuts();\n    const shortcutManager = this.hot.getShortcutManager();\n    const editorContext = shortcutManager.getContext('editor');\n    editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/handsontableEditor/handsontableEditor.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/handsontableEditor/index.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/editors/handsontableEditor/index.mjs ***!
  \************************************************************************/
/*! exports provided: EDITOR_TYPE, HandsontableEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _handsontableEditor_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./handsontableEditor.mjs */ \"./node_modules/handsontable/editors/handsontableEditor/handsontableEditor.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return _handsontableEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HandsontableEditor\", function() { return _handsontableEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"HandsontableEditor\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/handsontableEditor/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/index.mjs":
/*!*****************************************************!*\
  !*** ./node_modules/handsontable/editors/index.mjs ***!
  \*****************************************************/
/*! exports provided: registerAllEditors, AutocompleteEditor, AUTOCOMPLETE_EDITOR, BaseEditor, BASE_EDITOR, CheckboxEditor, CHECKBOX_EDITOR, DateEditor, DATE_EDITOR, DropdownEditor, DROPDOWN_EDITOR, HandsontableEditor, HANDSONTABLE_EDITOR, NumericEditor, NUMERIC_EDITOR, PasswordEditor, PASSWORD_EDITOR, SelectEditor, SELECT_EDITOR, TextEditor, TEXT_EDITOR, TimeEditor, TIME_EDITOR, RegisteredEditor, _getEditorInstance, getEditor, getEditorInstance, getRegisteredEditorNames, getRegisteredEditors, hasEditor, registerEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerAllEditors\", function() { return registerAllEditors; });\n/* harmony import */ var _autocompleteEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./autocompleteEditor/index.mjs */ \"./node_modules/handsontable/editors/autocompleteEditor/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AutocompleteEditor\", function() { return _autocompleteEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"AutocompleteEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AUTOCOMPLETE_EDITOR\", function() { return _autocompleteEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_TYPE\"]; });\n\n/* harmony import */ var _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./baseEditor/index.mjs */ \"./node_modules/handsontable/editors/baseEditor/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BaseEditor\", function() { return _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"BaseEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BASE_EDITOR\", function() { return _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"EDITOR_TYPE\"]; });\n\n/* harmony import */ var _checkboxEditor_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./checkboxEditor/index.mjs */ \"./node_modules/handsontable/editors/checkboxEditor/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CheckboxEditor\", function() { return _checkboxEditor_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CheckboxEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CHECKBOX_EDITOR\", function() { return _checkboxEditor_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"EDITOR_TYPE\"]; });\n\n/* harmony import */ var _dateEditor_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dateEditor/index.mjs */ \"./node_modules/handsontable/editors/dateEditor/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DateEditor\", function() { return _dateEditor_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"DateEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DATE_EDITOR\", function() { return _dateEditor_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"EDITOR_TYPE\"]; });\n\n/* harmony import */ var _dropdownEditor_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dropdownEditor/index.mjs */ \"./node_modules/handsontable/editors/dropdownEditor/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DropdownEditor\", function() { return _dropdownEditor_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"DropdownEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DROPDOWN_EDITOR\", function() { return _dropdownEditor_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"EDITOR_TYPE\"]; });\n\n/* harmony import */ var _handsontableEditor_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./handsontableEditor/index.mjs */ \"./node_modules/handsontable/editors/handsontableEditor/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HandsontableEditor\", function() { return _handsontableEditor_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"HandsontableEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HANDSONTABLE_EDITOR\", function() { return _handsontableEditor_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"EDITOR_TYPE\"]; });\n\n/* harmony import */ var _numericEditor_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./numericEditor/index.mjs */ \"./node_modules/handsontable/editors/numericEditor/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NumericEditor\", function() { return _numericEditor_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"NumericEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NUMERIC_EDITOR\", function() { return _numericEditor_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"EDITOR_TYPE\"]; });\n\n/* harmony import */ var _passwordEditor_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./passwordEditor/index.mjs */ \"./node_modules/handsontable/editors/passwordEditor/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PasswordEditor\", function() { return _passwordEditor_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"PasswordEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PASSWORD_EDITOR\", function() { return _passwordEditor_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"EDITOR_TYPE\"]; });\n\n/* harmony import */ var _selectEditor_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./selectEditor/index.mjs */ \"./node_modules/handsontable/editors/selectEditor/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SelectEditor\", function() { return _selectEditor_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"SelectEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SELECT_EDITOR\", function() { return _selectEditor_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"EDITOR_TYPE\"]; });\n\n/* harmony import */ var _textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./textEditor/index.mjs */ \"./node_modules/handsontable/editors/textEditor/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TextEditor\", function() { return _textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"TextEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TEXT_EDITOR\", function() { return _textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"EDITOR_TYPE\"]; });\n\n/* harmony import */ var _timeEditor_index_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./timeEditor/index.mjs */ \"./node_modules/handsontable/editors/timeEditor/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TimeEditor\", function() { return _timeEditor_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"TimeEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TIME_EDITOR\", function() { return _timeEditor_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"EDITOR_TYPE\"]; });\n\n/* harmony import */ var _registry_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./registry.mjs */ \"./node_modules/handsontable/editors/registry.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RegisteredEditor\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"RegisteredEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"_getEditorInstance\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"_getEditorInstance\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getEditor\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"getEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getEditorInstance\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"getEditorInstance\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredEditorNames\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"getRegisteredEditorNames\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredEditors\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"getRegisteredEditors\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasEditor\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"hasEditor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"registerEditor\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerEditor\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Registers all available editors.\n */\nfunction registerAllEditors() {\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerEditor\"])(_baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"BaseEditor\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerEditor\"])(_autocompleteEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"AutocompleteEditor\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerEditor\"])(_checkboxEditor_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CheckboxEditor\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerEditor\"])(_dateEditor_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"DateEditor\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerEditor\"])(_dropdownEditor_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"DropdownEditor\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerEditor\"])(_handsontableEditor_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"HandsontableEditor\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerEditor\"])(_numericEditor_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"NumericEditor\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerEditor\"])(_passwordEditor_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"PasswordEditor\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerEditor\"])(_selectEditor_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"SelectEditor\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerEditor\"])(_textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"TextEditor\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerEditor\"])(_timeEditor_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"TimeEditor\"]);\n}\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/numericEditor/index.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/editors/numericEditor/index.mjs ***!
  \*******************************************************************/
/*! exports provided: EDITOR_TYPE, NumericEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _numericEditor_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numericEditor.mjs */ \"./node_modules/handsontable/editors/numericEditor/numericEditor.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return _numericEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NumericEditor\", function() { return _numericEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"NumericEditor\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/numericEditor/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/numericEditor/numericEditor.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/editors/numericEditor/numericEditor.mjs ***!
  \***************************************************************************/
/*! exports provided: EDITOR_TYPE, NumericEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return EDITOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NumericEditor\", function() { return NumericEditor; });\n/* harmony import */ var _textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../textEditor/index.mjs */ \"./node_modules/handsontable/editors/textEditor/index.mjs\");\n\nconst EDITOR_TYPE = 'numeric';\n\n/**\n * @private\n * @class NumericEditor\n */\nclass NumericEditor extends _textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"TextEditor\"] {\n  static get EDITOR_TYPE() {\n    return EDITOR_TYPE;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/numericEditor/numericEditor.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/passwordEditor/index.mjs":
/*!********************************************************************!*\
  !*** ./node_modules/handsontable/editors/passwordEditor/index.mjs ***!
  \********************************************************************/
/*! exports provided: EDITOR_TYPE, PasswordEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _passwordEditor_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./passwordEditor.mjs */ \"./node_modules/handsontable/editors/passwordEditor/passwordEditor.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return _passwordEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PasswordEditor\", function() { return _passwordEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PasswordEditor\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/passwordEditor/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/passwordEditor/passwordEditor.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/editors/passwordEditor/passwordEditor.mjs ***!
  \*****************************************************************************/
/*! exports provided: EDITOR_TYPE, PasswordEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return EDITOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PasswordEditor\", function() { return PasswordEditor; });\n/* harmony import */ var _textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../textEditor/index.mjs */ \"./node_modules/handsontable/editors/textEditor/index.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\n\nconst EDITOR_TYPE = 'password';\n\n/**\n * @private\n * @class PasswordEditor\n */\nclass PasswordEditor extends _textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"TextEditor\"] {\n  static get EDITOR_TYPE() {\n    return EDITOR_TYPE;\n  }\n  createElements() {\n    super.createElements();\n    this.TEXTAREA = this.hot.rootDocument.createElement('input');\n    this.TEXTAREA.setAttribute('type', 'password');\n    this.TEXTAREA.setAttribute('data-hot-input', ''); // Makes the element recognizable by Hot as its own component's element.\n    this.TEXTAREA.className = 'handsontableInput';\n    this.textareaStyle = this.TEXTAREA.style;\n    this.textareaStyle.width = 0;\n    this.textareaStyle.height = 0;\n    if (this.hot.getSettings().ariaTags) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"setAttribute\"])(this.TEXTAREA, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_HIDDEN\"])()]);\n    }\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"empty\"])(this.TEXTAREA_PARENT);\n    this.TEXTAREA_PARENT.appendChild(this.TEXTAREA);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/passwordEditor/passwordEditor.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/registry.mjs":
/*!********************************************************!*\
  !*** ./node_modules/handsontable/editors/registry.mjs ***!
  \********************************************************/
/*! exports provided: RegisteredEditor, _getEditorInstance, registerEditor, getEditor, getEditorInstance, hasEditor, getRegisteredEditorNames, getRegisteredEditors */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RegisteredEditor\", function() { return RegisteredEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getEditorInstance\", function() { return _getEditorInstance; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerEditor\", function() { return _register; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getEditor\", function() { return _getItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getEditorInstance\", function() { return _getEditorInstance; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasEditor\", function() { return hasItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredEditorNames\", function() { return getNames; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredEditors\", function() { return getValues; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/staticRegister.mjs */ \"./node_modules/handsontable/utils/staticRegister.mjs\");\n\n/**\n * Utility to register editors and common namespace for keeping reference to all editor classes.\n */\n\n\nconst registeredEditorClasses = new WeakMap();\nconst {\n  register,\n  getItem,\n  hasItem,\n  getNames,\n  getValues\n} = Object(_utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('editors');\n\n/**\n * @param {BaseEditor} editorClass The editor constructor.\n */\nfunction RegisteredEditor(editorClass) {\n  const instances = {};\n  const Clazz = editorClass;\n  this.getConstructor = function () {\n    return editorClass;\n  };\n  this.getInstance = function (hotInstance) {\n    if (!(hotInstance.guid in instances)) {\n      instances[hotInstance.guid] = new Clazz(hotInstance);\n    }\n    return instances[hotInstance.guid];\n  };\n  _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getSingleton().add('afterDestroy', function () {\n    instances[this.guid] = null;\n  });\n}\n\n/**\n * Returns instance (singleton) of editor class.\n *\n * @param {string} name Name of an editor under which it has been stored.\n * @param {object} hotInstance Instance of Handsontable.\n * @returns {Function} Returns instance of editor.\n */\nfunction _getEditorInstance(name, hotInstance) {\n  let editor;\n  if (typeof name === 'function') {\n    if (!registeredEditorClasses.get(name)) {\n      _register(null, name);\n    }\n    editor = registeredEditorClasses.get(name);\n  } else if (typeof name === 'string') {\n    editor = getItem(name);\n  } else {\n    throw Error('Only strings and functions can be passed as \"editor\" parameter');\n  }\n  if (!editor) {\n    throw Error(`No editor registered under name \"${name}\"`);\n  }\n  return editor.getInstance(hotInstance);\n}\n\n/**\n * Retrieve editor class.\n *\n * @param {string} name Editor identification.\n * @returns {Function} Returns editor class.\n */\nfunction _getItem(name) {\n  if (typeof name === 'function') {\n    return name;\n  }\n  if (!hasItem(name)) {\n    throw Error(`No registered editor found under \"${name}\" name`);\n  }\n  return getItem(name).getConstructor();\n}\n\n/**\n * Register editor class under specified name.\n *\n * @param {string} name Editor identification.\n * @param {Function} editorClass Editor class.\n */\nfunction _register(name, editorClass) {\n  if (name && typeof name !== 'string') {\n    editorClass = name;\n    name = editorClass.EDITOR_TYPE;\n  }\n  const editorWrapper = new RegisteredEditor(editorClass);\n  if (typeof name === 'string') {\n    register(name, editorWrapper);\n  }\n  registeredEditorClasses.set(editorClass, editorWrapper);\n}\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/registry.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/selectEditor/index.mjs":
/*!******************************************************************!*\
  !*** ./node_modules/handsontable/editors/selectEditor/index.mjs ***!
  \******************************************************************/
/*! exports provided: EDITOR_TYPE, SelectEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _selectEditor_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selectEditor.mjs */ \"./node_modules/handsontable/editors/selectEditor/selectEditor.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return _selectEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SelectEditor\", function() { return _selectEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"SelectEditor\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/selectEditor/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/selectEditor/selectEditor.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/editors/selectEditor/selectEditor.mjs ***!
  \*************************************************************************/
/*! exports provided: EDITOR_TYPE, SelectEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return EDITOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SelectEditor\", function() { return SelectEditor; });\n/* harmony import */ var _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../baseEditor/index.mjs */ \"./node_modules/handsontable/editors/baseEditor/index.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n\n\n\nconst EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';\nconst SHORTCUTS_GROUP = 'selectEditor';\nconst EDITOR_TYPE = 'select';\n\n/**\n * @private\n * @class SelectEditor\n */\nclass SelectEditor extends _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"BaseEditor\"] {\n  static get EDITOR_TYPE() {\n    return EDITOR_TYPE;\n  }\n\n  /**\n   * Initializes editor instance, DOM Element and mount hooks.\n   */\n  init() {\n    this.select = this.hot.rootDocument.createElement('select');\n    this.select.setAttribute('data-hot-input', 'true');\n    this.select.style.display = 'none';\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(this.select, 'htSelectEditor');\n    this.hot.rootElement.appendChild(this.select);\n    this.registerHooks();\n  }\n\n  /**\n   * Returns select's value.\n   *\n   * @returns {*}\n   */\n  getValue() {\n    return this.select.value;\n  }\n\n  /**\n   * Sets value in the select element.\n   *\n   * @param {*} value A new select's value.\n   */\n  setValue(value) {\n    this.select.value = value;\n  }\n\n  /**\n   * Opens the editor and adjust its size.\n   */\n  open() {\n    this._opened = true;\n    this.refreshDimensions();\n    this.select.style.display = '';\n    const shortcutManager = this.hot.getShortcutManager();\n    shortcutManager.setActiveContextName('editor');\n    this.registerShortcuts();\n  }\n\n  /**\n   * Closes the editor.\n   */\n  close() {\n    this._opened = false;\n    this.select.style.display = 'none';\n    if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"hasClass\"])(this.select, EDITOR_VISIBLE_CLASS_NAME)) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"removeClass\"])(this.select, EDITOR_VISIBLE_CLASS_NAME);\n    }\n    this.unregisterShortcuts();\n    this.clearHooks();\n  }\n\n  /**\n   * Sets focus state on the select element.\n   */\n  focus() {\n    this.select.focus();\n  }\n\n  /**\n   * Binds hooks to refresh editor's size after scrolling of the viewport or resizing of columns/rows.\n   *\n   * @private\n   */\n  registerHooks() {\n    this.addHook('afterScrollHorizontally', () => this.refreshDimensions());\n    this.addHook('afterScrollVertically', () => this.refreshDimensions());\n    this.addHook('afterColumnResize', () => this.refreshDimensions());\n    this.addHook('afterRowResize', () => this.refreshDimensions());\n  }\n\n  /**\n   * Prepares editor's meta data and a list of available options.\n   *\n   * @param {number} row The visual row index.\n   * @param {number} col The visual column index.\n   * @param {number|string} prop The column property (passed when datasource is an array of objects).\n   * @param {HTMLTableCellElement} td The rendered cell element.\n   * @param {*} value The rendered value.\n   * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n   */\n  prepare(row, col, prop, td, value, cellProperties) {\n    super.prepare(row, col, prop, td, value, cellProperties);\n    const selectOptions = this.cellProperties.selectOptions;\n    let options;\n    if (typeof selectOptions === 'function') {\n      options = this.prepareOptions(selectOptions(this.row, this.col, this.prop));\n    } else {\n      options = this.prepareOptions(selectOptions);\n    }\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"empty\"])(this.select);\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"objectEach\"])(options, (optionValue, key) => {\n      const optionElement = this.hot.rootDocument.createElement('OPTION');\n      optionElement.value = key;\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"fastInnerHTML\"])(optionElement, optionValue);\n      this.select.appendChild(optionElement);\n    });\n  }\n\n  /**\n   * Creates consistent list of available options.\n   *\n   * @private\n   * @param {Array|object} optionsToPrepare The list of the values to render in the select eleemnt.\n   * @returns {object}\n   */\n  prepareOptions(optionsToPrepare) {\n    let preparedOptions = {};\n    if (Array.isArray(optionsToPrepare)) {\n      for (let i = 0, len = optionsToPrepare.length; i < len; i++) {\n        preparedOptions[optionsToPrepare[i]] = optionsToPrepare[i];\n      }\n    } else if (typeof optionsToPrepare === 'object') {\n      preparedOptions = optionsToPrepare;\n    }\n    return preparedOptions;\n  }\n\n  /**\n   * Refreshes editor's value using source data.\n   *\n   * @private\n   */\n  refreshValue() {\n    const sourceData = this.hot.getSourceDataAtCell(this.row, this.prop);\n    this.originalValue = sourceData;\n    this.setValue(sourceData);\n    this.refreshDimensions();\n  }\n\n  /**\n   * Refreshes editor's size and position.\n   *\n   * @private\n   */\n  refreshDimensions() {\n    if (this.state !== _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_STATE\"].EDITING) {\n      return;\n    }\n    this.TD = this.getEditedCell();\n\n    // TD is outside of the viewport.\n    if (!this.TD) {\n      this.close();\n      return;\n    }\n    const {\n      top,\n      start,\n      width,\n      height\n    } = this.getEditedCellRect();\n    const selectStyle = this.select.style;\n    selectStyle.height = `${height}px`;\n    selectStyle.width = `${width}px`;\n    selectStyle.top = `${top}px`;\n    selectStyle[this.hot.isRtl() ? 'right' : 'left'] = `${start}px`;\n    selectStyle.margin = '0px';\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(this.select, EDITOR_VISIBLE_CLASS_NAME);\n  }\n\n  /**\n   * Register shortcuts responsible for handling editor.\n   *\n   * @private\n   */\n  registerShortcuts() {\n    const shortcutManager = this.hot.getShortcutManager();\n    const editorContext = shortcutManager.getContext('editor');\n    const contextConfig = {\n      group: SHORTCUTS_GROUP\n    };\n    if (this.isInFullEditMode()) {\n      // The arrow-related shortcuts should work only in full edit mode.\n      editorContext.addShortcuts([{\n        keys: [['ArrowUp']],\n        callback: () => {\n          const previousOptionIndex = this.select.selectedIndex - 1;\n          if (previousOptionIndex >= 0) {\n            this.select[previousOptionIndex].selected = true;\n          }\n        }\n      }, {\n        keys: [['ArrowDown']],\n        callback: () => {\n          const nextOptionIndex = this.select.selectedIndex + 1;\n          if (nextOptionIndex <= this.select.length - 1) {\n            this.select[nextOptionIndex].selected = true;\n          }\n        }\n      }], contextConfig);\n    }\n  }\n\n  /**\n   * Unregister shortcuts responsible for handling editor.\n   *\n   * @private\n   */\n  unregisterShortcuts() {\n    const shortcutManager = this.hot.getShortcutManager();\n    const editorContext = shortcutManager.getContext('editor');\n    editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/selectEditor/selectEditor.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/textEditor/caretPositioner.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/editors/textEditor/caretPositioner.mjs ***!
  \**************************************************************************/
/*! exports provided: updateCaretPosition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"updateCaretPosition\", function() { return updateCaretPosition; });\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n\n/**\n * Updates the textarea caret position depends on the action executed on that element.\n *\n * The following actions are supported:\n *  - 'home': Move the caret to the beginning of the current line;\n *  - 'end': Move the caret to the end of the current line.\n *\n * @param {'home'|'end'} actionName The action to perform that modifies the caret behavior.\n * @param {HTMLTextAreaElement} textareaElement The textarea element where the action is supposed to happen.\n */\nfunction updateCaretPosition(actionName, textareaElement) {\n  const caretPosition = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getCaretPosition\"])(textareaElement);\n  const textLines = textareaElement.value.split('\\n');\n  let newCaretPosition = caretPosition;\n  let lineStartIndex = 0;\n  for (let i = 0; i < textLines.length; i++) {\n    const textLine = textLines[i];\n    if (i !== 0) {\n      lineStartIndex += textLines[i - 1].length + 1;\n    }\n    const lineEndIndex = lineStartIndex + textLine.length;\n    if (actionName === 'home') {\n      newCaretPosition = lineStartIndex;\n    } else if (actionName === 'end') {\n      newCaretPosition = lineEndIndex;\n    }\n    if (caretPosition <= lineEndIndex) {\n      break;\n    }\n  }\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_0__[\"setCaretPosition\"])(textareaElement, newCaretPosition);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/textEditor/caretPositioner.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/textEditor/index.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/editors/textEditor/index.mjs ***!
  \****************************************************************/
/*! exports provided: EDITOR_TYPE, TextEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _textEditor_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./textEditor.mjs */ \"./node_modules/handsontable/editors/textEditor/textEditor.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return _textEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TextEditor\", function() { return _textEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"TextEditor\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/textEditor/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/textEditor/textEditor.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/editors/textEditor/textEditor.mjs ***!
  \*********************************************************************/
/*! exports provided: EDITOR_TYPE, TextEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return EDITOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TextEditor\", function() { return TextEditor; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../baseEditor/index.mjs */ \"./node_modules/handsontable/editors/baseEditor/index.mjs\");\n/* harmony import */ var _eventManager_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../eventManager.mjs */ \"./node_modules/handsontable/eventManager.mjs\");\n/* harmony import */ var _helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/browser.mjs */ \"./node_modules/handsontable/helpers/browser.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _utils_autoResize_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/autoResize.mjs */ \"./node_modules/handsontable/utils/autoResize.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _caretPositioner_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./caretPositioner.mjs */ \"./node_modules/handsontable/editors/textEditor/caretPositioner.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n\n\nconst EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';\nconst EDITOR_HIDDEN_CLASS_NAME = 'ht_editor_hidden';\nconst SHORTCUTS_GROUP = 'textEditor';\nconst EDITOR_TYPE = 'text';\n\n/**\n * @private\n * @class TextEditor\n */\nclass TextEditor extends _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"BaseEditor\"] {\n  static get EDITOR_TYPE() {\n    return EDITOR_TYPE;\n  }\n\n  /**\n   * Instance of {@link EventManager}.\n   *\n   * @private\n   * @type {EventManager}\n   */\n\n  /**\n   * @param {Core} hotInstance The Handsontable instance.\n   */\n  constructor(hotInstance) {\n    super(hotInstance);\n    _defineProperty(this, \"eventManager\", new _eventManager_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"](this));\n    /**\n     * Autoresize instance. Automagically resizes editor after changes.\n     *\n     * @private\n     * @type {Function}\n     */\n    _defineProperty(this, \"autoResize\", Object(_utils_autoResize_mjs__WEBPACK_IMPORTED_MODULE_6__[\"createInputElementResizer\"])(this.hot.rootDocument));\n    /**\n     * An TEXTAREA element.\n     *\n     * @private\n     * @type {HTMLTextAreaElement}\n     */\n    _defineProperty(this, \"TEXTAREA\", void 0);\n    /**\n     * Style declaration object of the TEXTAREA element.\n     *\n     * @private\n     * @type {CSSStyleDeclaration}\n     */\n    _defineProperty(this, \"textareaStyle\", void 0);\n    /**\n     * Parent element of the TEXTAREA.\n     *\n     * @private\n     * @type {HTMLDivElement}\n     */\n    _defineProperty(this, \"TEXTAREA_PARENT\", void 0);\n    /**\n     * Style declaration object of the TEXTAREA_PARENT element.\n     *\n     * @private\n     * @type {CSSStyleDeclaration}\n     */\n    _defineProperty(this, \"textareaParentStyle\", void 0);\n    /**\n     * Z-index class style for the editor.\n     *\n     * @private\n     * @type {string}\n     */\n    _defineProperty(this, \"layerClass\", void 0);\n    this.eventManager = new _eventManager_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"](this);\n    this.createElements();\n    this.bindEvents();\n    this.hot.addHookOnce('afterDestroy', () => this.destroy());\n  }\n\n  /**\n   * Gets current value from editable element.\n   *\n   * @returns {number}\n   */\n  getValue() {\n    return this.TEXTAREA.value;\n  }\n\n  /**\n   * Sets new value into editable element.\n   *\n   * @param {*} newValue The editor value.\n   */\n  setValue(newValue) {\n    this.TEXTAREA.value = newValue;\n  }\n\n  /**\n   * Opens the editor and adjust its size.\n   */\n  open() {\n    this.refreshDimensions(); // need it instantly, to prevent https://github.com/handsontable/handsontable/issues/348\n    this.showEditableElement();\n    this.hot.getShortcutManager().setActiveContextName('editor');\n    this.registerShortcuts();\n  }\n\n  /**\n   * Closes the editor.\n   */\n  close() {\n    this.autoResize.unObserve();\n    if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isThisHotChild\"])(this.hot.rootDocument.activeElement, this.hot.rootElement)) {\n      this.hot.listen(); // don't refocus the table if user focused some cell outside of HT on purpose\n    }\n    this.hideEditableElement();\n    this.unregisterShortcuts();\n  }\n\n  /**\n   * Prepares editor's meta data.\n   *\n   * @param {number} row The visual row index.\n   * @param {number} col The visual column index.\n   * @param {number|string} prop The column property (passed when datasource is an array of objects).\n   * @param {HTMLTableCellElement} td The rendered cell element.\n   * @param {*} value The rendered value.\n   * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n   */\n  prepare(row, col, prop, td, value, cellProperties) {\n    const previousState = this.state;\n    super.prepare(row, col, prop, td, value, cellProperties);\n    if (!cellProperties.readOnly) {\n      this.refreshDimensions(true);\n      const {\n        allowInvalid\n      } = cellProperties;\n      if (allowInvalid && !this.isOpened()) {\n        // Remove an empty space from textarea (added by copyPaste plugin to make copy/paste\n        // functionality work with IME)\n        this.TEXTAREA.value = '';\n      }\n      if (previousState !== _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"EDITOR_STATE\"].FINISHED && !this.isOpened()) {\n        this.hideEditableElement();\n      }\n    }\n  }\n\n  /**\n   * Begins editing on a highlighted cell and hides fillHandle corner if was present.\n   *\n   * @param {*} newInitialValue The editor initial value.\n   * @param {Event} event The keyboard event object.\n   */\n  beginEditing(newInitialValue, event) {\n    if (this.state !== _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"EDITOR_STATE\"].VIRGIN) {\n      return;\n    }\n    this.TEXTAREA.value = ''; // Remove an empty space from textarea (added by copyPaste plugin to make copy/paste functionality work with IME).\n    super.beginEditing(newInitialValue, event);\n  }\n\n  /**\n   * Sets focus state on the select element.\n   */\n  focus() {\n    // For IME editor textarea element must be focused using \".select\" method.\n    // Using \".focus\" browser automatically scroll into the focused element which\n    // is undesired effect.\n    this.TEXTAREA.select();\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"setCaretPosition\"])(this.TEXTAREA, this.TEXTAREA.value.length);\n  }\n\n  /**\n   * Creates an editor's elements and adds necessary CSS classnames.\n   */\n  createElements() {\n    const {\n      rootDocument\n    } = this.hot;\n    this.TEXTAREA = rootDocument.createElement('TEXTAREA');\n\n    // Makes the element recognizable by Hot as its own\n    // component's element.\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"setAttribute\"])(this.TEXTAREA, [['data-hot-input', ''], Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_9__[\"A11Y_TABINDEX\"])(-1)]);\n    if (this.hot.getSettings().ariaTags) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"setAttribute\"])(this.TEXTAREA, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_9__[\"A11Y_HIDDEN\"])()]);\n    }\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"addClass\"])(this.TEXTAREA, 'handsontableInput');\n    this.textareaStyle = this.TEXTAREA.style;\n    this.textareaStyle.width = 0;\n    this.textareaStyle.height = 0;\n    this.textareaStyle.overflowY = 'visible';\n    this.TEXTAREA_PARENT = rootDocument.createElement('DIV');\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"addClass\"])(this.TEXTAREA_PARENT, 'handsontableInputHolder');\n    if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"hasClass\"])(this.TEXTAREA_PARENT, this.layerClass)) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"removeClass\"])(this.TEXTAREA_PARENT, this.layerClass);\n    }\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"addClass\"])(this.TEXTAREA_PARENT, EDITOR_HIDDEN_CLASS_NAME);\n    this.textareaParentStyle = this.TEXTAREA_PARENT.style;\n    this.TEXTAREA_PARENT.appendChild(this.TEXTAREA);\n    this.hot.rootElement.appendChild(this.TEXTAREA_PARENT);\n  }\n\n  /**\n   * Moves an editable element out of the viewport, but element must be able to hold focus for IME support.\n   *\n   * @private\n   */\n  hideEditableElement() {\n    if (Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isEdge\"])()) {\n      this.textareaStyle.textIndent = '-99999px';\n    }\n    this.textareaStyle.overflowY = 'visible';\n    this.textareaParentStyle.opacity = '0';\n    this.textareaParentStyle.height = '1px';\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"removeClass\"])(this.TEXTAREA_PARENT, this.layerClass);\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"addClass\"])(this.TEXTAREA_PARENT, EDITOR_HIDDEN_CLASS_NAME);\n  }\n\n  /**\n   * Resets an editable element position.\n   *\n   * @private\n   */\n  showEditableElement() {\n    this.textareaParentStyle.height = '';\n    this.textareaParentStyle.overflow = '';\n    this.textareaParentStyle.position = '';\n    this.textareaParentStyle[this.hot.isRtl() ? 'left' : 'right'] = 'auto';\n    this.textareaParentStyle.opacity = '1';\n    this.textareaStyle.textIndent = '';\n    const childNodes = this.TEXTAREA_PARENT.childNodes;\n    let hasClassHandsontableEditor = false;\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_5__[\"rangeEach\"])(childNodes.length - 1, index => {\n      const childNode = childNodes[index];\n      if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"hasClass\"])(childNode, 'handsontableEditor')) {\n        hasClassHandsontableEditor = true;\n        return false;\n      }\n    });\n    if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"hasClass\"])(this.TEXTAREA_PARENT, EDITOR_HIDDEN_CLASS_NAME)) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"removeClass\"])(this.TEXTAREA_PARENT, EDITOR_HIDDEN_CLASS_NAME);\n    }\n    if (hasClassHandsontableEditor) {\n      this.layerClass = EDITOR_VISIBLE_CLASS_NAME;\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"addClass\"])(this.TEXTAREA_PARENT, this.layerClass);\n    } else {\n      this.layerClass = this.getEditedCellsLayerClass();\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"addClass\"])(this.TEXTAREA_PARENT, this.layerClass);\n    }\n  }\n\n  /**\n   * Refreshes editor's value using source data.\n   *\n   * @private\n   */\n  refreshValue() {\n    const physicalRow = this.hot.toPhysicalRow(this.row);\n    const sourceData = this.hot.getSourceDataAtCell(physicalRow, this.col);\n    this.originalValue = sourceData;\n    this.setValue(sourceData);\n    this.refreshDimensions();\n  }\n\n  /**\n   * Refreshes editor's size and position.\n   *\n   * @private\n   * @param {boolean} force Indicates if the refreshing editor dimensions should be triggered.\n   */\n  refreshDimensions() {\n    let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    if (this.state !== _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"EDITOR_STATE\"].EDITING && !force) {\n      return;\n    }\n    this.TD = this.getEditedCell();\n\n    // TD is outside of the viewport.\n    if (!this.TD) {\n      if (!force) {\n        this.close(); // TODO shouldn't it be this.finishEditing() ?\n      }\n      return;\n    }\n    const {\n      top,\n      start,\n      width,\n      maxWidth,\n      height,\n      maxHeight\n    } = this.getEditedCellRect();\n    this.textareaParentStyle.top = `${top}px`;\n    this.textareaParentStyle[this.hot.isRtl() ? 'right' : 'left'] = `${start}px`;\n    this.showEditableElement();\n    const cellComputedStyle = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getComputedStyle\"])(this.TD, this.hot.rootWindow);\n    this.TEXTAREA.style.fontSize = cellComputedStyle.fontSize;\n    this.TEXTAREA.style.fontFamily = cellComputedStyle.fontFamily;\n    this.TEXTAREA.style.backgroundColor = this.TD.style.backgroundColor;\n    const textareaComputedStyle = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getComputedStyle\"])(this.TEXTAREA);\n    const horizontalPadding = parseInt(textareaComputedStyle.paddingLeft, 10) + parseInt(textareaComputedStyle.paddingRight, 10);\n    const verticalPadding = parseInt(textareaComputedStyle.paddingTop, 10) + parseInt(textareaComputedStyle.paddingBottom, 10);\n    const finalWidth = width - horizontalPadding;\n    const finalHeight = height - verticalPadding;\n    const finalMaxWidth = maxWidth - horizontalPadding;\n    const finalMaxHeight = maxHeight - verticalPadding;\n    this.autoResize.init(this.TEXTAREA, {\n      minWidth: Math.min(finalWidth, finalMaxWidth),\n      minHeight: Math.min(finalHeight, finalMaxHeight),\n      // TEXTAREA should never be wider than visible part of the viewport (should not cover the scrollbar)\n      maxWidth: finalMaxWidth,\n      maxHeight: finalMaxHeight\n    }, true);\n  }\n\n  /**\n   * Binds events and hooks.\n   *\n   * @private\n   */\n  bindEvents() {\n    if (Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isIOS\"])()) {\n      // on iOS after click \"Done\" the edit isn't hidden by default, so we need to handle it manually.\n      this.eventManager.addEventListener(this.TEXTAREA, 'focusout', () => this.finishEditing(false));\n    }\n    this.addHook('afterScrollHorizontally', () => this.refreshDimensions());\n    this.addHook('afterScrollVertically', () => this.refreshDimensions());\n    this.addHook('afterColumnResize', () => {\n      this.refreshDimensions();\n      if (this.state === _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"EDITOR_STATE\"].EDITING) {\n        this.focus();\n      }\n    });\n    this.addHook('afterRowResize', () => {\n      this.refreshDimensions();\n      if (this.state === _baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"EDITOR_STATE\"].EDITING) {\n        this.focus();\n      }\n    });\n  }\n\n  /**\n   * Ugly hack for autocompleteEditor.\n   *\n   * @private\n   */\n  allowKeyEventPropagation() {}\n\n  /**\n   * Destroys the internal event manager and clears attached hooks.\n   *\n   * @private\n   */\n  destroy() {\n    this.eventManager.destroy();\n    this.clearHooks();\n  }\n\n  /**\n   * Register shortcuts responsible for handling editor.\n   *\n   * @private\n   */\n  registerShortcuts() {\n    const shortcutManager = this.hot.getShortcutManager();\n    const editorContext = shortcutManager.getContext('editor');\n    const contextConfig = {\n      runOnlyIf: () => Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_7__[\"isDefined\"])(this.hot.getSelected()),\n      group: SHORTCUTS_GROUP\n    };\n    const insertNewLine = () => {\n      this.hot.rootDocument.execCommand('insertText', false, '\\n');\n    };\n    editorContext.addShortcuts([{\n      keys: [['Control', 'Enter']],\n      callback: () => {\n        insertNewLine();\n        return false; // Will block closing editor.\n      },\n      runOnlyIf: event => !this.hot.selection.isMultiple() &&\n      // We trigger a data population for multiple selection.\n      // catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)\n      !event.altKey\n    }, {\n      keys: [['Meta', 'Enter']],\n      callback: () => {\n        insertNewLine();\n        return false; // Will block closing editor.\n      },\n      runOnlyIf: () => !this.hot.selection.isMultiple() // We trigger a data population for multiple selection.\n    }, {\n      keys: [['Alt', 'Enter']],\n      callback: () => {\n        insertNewLine();\n        return false; // Will block closing editor.\n      }\n    }, {\n      keys: [['Home']],\n      callback: (event, _ref) => {\n        let [keyName] = _ref;\n        Object(_caretPositioner_mjs__WEBPACK_IMPORTED_MODULE_8__[\"updateCaretPosition\"])(keyName, this.TEXTAREA);\n      }\n    }, {\n      keys: [['End']],\n      callback: (event, _ref2) => {\n        let [keyName] = _ref2;\n        Object(_caretPositioner_mjs__WEBPACK_IMPORTED_MODULE_8__[\"updateCaretPosition\"])(keyName, this.TEXTAREA);\n      }\n    }], contextConfig);\n  }\n\n  /**\n   * Unregister shortcuts responsible for handling editor.\n   *\n   * @private\n   */\n  unregisterShortcuts() {\n    const shortcutManager = this.hot.getShortcutManager();\n    const editorContext = shortcutManager.getContext('editor');\n    editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/textEditor/textEditor.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/timeEditor/index.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/editors/timeEditor/index.mjs ***!
  \****************************************************************/
/*! exports provided: EDITOR_TYPE, TimeEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _timeEditor_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timeEditor.mjs */ \"./node_modules/handsontable/editors/timeEditor/timeEditor.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return _timeEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TimeEditor\", function() { return _timeEditor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"TimeEditor\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/timeEditor/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/editors/timeEditor/timeEditor.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/editors/timeEditor/timeEditor.mjs ***!
  \*********************************************************************/
/*! exports provided: EDITOR_TYPE, TimeEditor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_TYPE\", function() { return EDITOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TimeEditor\", function() { return TimeEditor; });\n/* harmony import */ var _textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../textEditor/index.mjs */ \"./node_modules/handsontable/editors/textEditor/index.mjs\");\n\nconst EDITOR_TYPE = 'time';\n\n/**\n * @private\n * @class TimeEditor\n */\nclass TimeEditor extends _textEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"TextEditor\"] {\n  static get EDITOR_TYPE() {\n    return EDITOR_TYPE;\n  }\n\n  /**\n   * Prepares editor's meta data.\n   *\n   * @param {number} row The visual row index.\n   * @param {number} col The visual column index.\n   * @param {number|string} prop The column property (passed when datasource is an array of objects).\n   * @param {HTMLTableCellElement} td The rendered cell element.\n   * @param {*} value The rendered value.\n   * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n   */\n  prepare(row, col, prop, td, value, cellProperties) {\n    super.prepare(row, col, prop, td, value, cellProperties);\n    this.TEXTAREA.dir = 'ltr';\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/editors/timeEditor/timeEditor.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/eventManager.mjs":
/*!****************************************************!*\
  !*** ./node_modules/handsontable/eventManager.mjs ***!
  \****************************************************/
/*! exports provided: default, getListenersCounter */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getListenersCounter\", function() { return getListenersCounter; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n/**\n * Counter which tracks unregistered listeners (useful for detecting memory leaks).\n *\n * @type {number}\n */\nlet listenersCounter = 0;\n\n/**\n * Event DOM manager for internal use in Handsontable.\n *\n * @class EventManager\n */\nclass EventManager {\n  /**\n   * @param {object} [context=null] An object to which event listeners will be stored.\n   * @private\n   */\n  constructor() {\n    let context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    /**\n     * @type {object}\n     */\n    _defineProperty(this, \"context\", void 0);\n    this.context = context || this;\n\n    // TODO it modify external object. Rethink that.\n    if (!this.context.eventListeners) {\n      this.context.eventListeners = []; // TODO perf It would be more performant if every instance of EventManager tracked its own listeners only\n    }\n  }\n\n  /**\n   * Register specified listener (`eventName`) to the element.\n   *\n   * @param {Element} element Target element.\n   * @param {string} eventName Event name.\n   * @param {Function} callback Function which will be called after event occur.\n   * @param {AddEventListenerOptions|boolean} [options] Listener options if object or useCapture if boolean.\n   * @returns {Function} Returns function which you can easily call to remove that event.\n   */\n  addEventListener(element, eventName, callback) {\n    let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n    /**\n     * @private\n     * @param {Event} event The event object.\n     */\n    function callbackProxy(event) {\n      callback.call(this, extendEvent(event));\n    }\n    this.context.eventListeners.push({\n      element,\n      event: eventName,\n      callback,\n      callbackProxy,\n      options,\n      eventManager: this\n    });\n    element.addEventListener(eventName, callbackProxy, options);\n    listenersCounter += 1;\n    return () => {\n      this.removeEventListener(element, eventName, callback);\n    };\n  }\n\n  /**\n   * Remove the event listener previously registered.\n   *\n   * @param {Element} element Target element.\n   * @param {string} eventName Event name.\n   * @param {Function} callback Function to remove from the event target. It must be the same as during registration listener.\n   * @param {boolean} [onlyOwnEvents] Whether whould remove only events registered using this instance of EventManager.\n   */\n  removeEventListener(element, eventName, callback) {\n    let onlyOwnEvents = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n    let len = this.context.eventListeners.length;\n    let tmpEvent;\n    while (len) {\n      len -= 1;\n      tmpEvent = this.context.eventListeners[len];\n      if (tmpEvent.event === eventName && tmpEvent.element === element) {\n        if (callback && callback !== tmpEvent.callback) {\n          /* eslint-disable no-continue */\n          continue;\n        }\n        // TODO rethink that, main bulk is that it needs multi instances to handle same context, but with a different scopes.\n        // TODO I suppose much more efficient way will be comparing string with scope id, or any similar approach.\n        if (onlyOwnEvents && tmpEvent.eventManager !== this) {\n          continue;\n        }\n        this.context.eventListeners.splice(len, 1);\n        tmpEvent.element.removeEventListener(tmpEvent.event, tmpEvent.callbackProxy, tmpEvent.options);\n        listenersCounter -= 1;\n      }\n    }\n  }\n\n  /**\n   * Clear all previously registered events.\n   *\n   * @private\n   * @since 0.15.0-beta3\n   * @param {boolean} [onlyOwnEvents] Whether whould remove only events registered using this instance of EventManager.\n   */\n  clearEvents() {\n    let onlyOwnEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    if (!this.context) {\n      return;\n    }\n    let len = this.context.eventListeners.length;\n    while (len) {\n      len -= 1;\n      const event = this.context.eventListeners[len];\n      if (onlyOwnEvents && event.eventManager !== this) {\n        continue;\n      }\n      this.context.eventListeners.splice(len, 1);\n      event.element.removeEventListener(event.event, event.callbackProxy, event.options);\n      listenersCounter -= 1;\n    }\n  }\n\n  /**\n   * Clear all previously registered events.\n   */\n  clear() {\n    this.clearEvents();\n  }\n\n  /**\n   * Destroy instance of EventManager, clearing all events of the context.\n   */\n  destroy() {\n    this.clearEvents();\n    this.context = null;\n  }\n\n  /**\n   * Destroy instance of EventManager, clearing only the own events.\n   */\n  destroyWithOwnEventsOnly() {\n    this.clearEvents(true);\n    this.context = null;\n  }\n\n  /**\n   * Trigger event at the specified target element.\n   *\n   * @param {Element} element Target element.\n   * @param {string} eventName Event name.\n   */\n  fireEvent(element, eventName) {\n    let rootDocument = element.document;\n    let rootWindow = element;\n    if (!rootDocument) {\n      rootDocument = element.ownerDocument ? element.ownerDocument : element;\n      rootWindow = rootDocument.defaultView;\n    }\n    const options = {\n      bubbles: true,\n      cancelable: eventName !== 'mousemove',\n      view: rootWindow,\n      detail: 0,\n      screenX: 0,\n      screenY: 0,\n      clientX: 1,\n      clientY: 1,\n      ctrlKey: false,\n      altKey: false,\n      shiftKey: false,\n      metaKey: false,\n      button: 0,\n      relatedTarget: undefined\n    };\n    let event;\n    if (rootDocument.createEvent) {\n      event = rootDocument.createEvent('MouseEvents');\n      event.initMouseEvent(eventName, options.bubbles, options.cancelable, options.view, options.detail, options.screenX, options.screenY, options.clientX, options.clientY, options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, options.relatedTarget || rootDocument.body.parentNode);\n    } else {\n      event = rootDocument.createEventObject();\n    }\n    if (element.dispatchEvent) {\n      element.dispatchEvent(event);\n    } else {\n      element.fireEvent(`on${eventName}`, event);\n    }\n  }\n}\n\n/**\n * @private\n * @param {Event} event The event object.\n * @returns {Event}\n */\nfunction extendEvent(event) {\n  const nativeStopImmediatePropagation = event.stopImmediatePropagation;\n  event.stopImmediatePropagation = function () {\n    nativeStopImmediatePropagation.apply(this);\n    Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_2__[\"stopImmediatePropagation\"])(this);\n  };\n  return event;\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (EventManager);\n\n/**\n * @private\n * @returns {number}\n */\nfunction getListenersCounter() {\n  return listenersCounter;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/eventManager.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/focusManager.mjs":
/*!****************************************************!*\
  !*** ./node_modules/handsontable/focusManager.mjs ***!
  \****************************************************/
/*! exports provided: FocusManager */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FocusManager\", function() { return FocusManager; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n/**\n * Possible focus modes.\n * - CELL - The browser's focus stays on the lastly selected cell element.\n * - MIXED - The browser's focus switches from the lastly selected cell element to the currently active editor's\n * `TEXTAREA` element after a delay defined in the manager.\n *\n * @type {{CELL: string, MIXED: string}}\n */\nconst FOCUS_MODES = Object.freeze({\n  CELL: 'cell',\n  MIXED: 'mixed'\n});\n\n/**\n * Manages the browser's focus in the table.\n */\nvar _hot = /*#__PURE__*/new WeakMap();\nvar _focusMode = /*#__PURE__*/new WeakMap();\nvar _refocusDelay = /*#__PURE__*/new WeakMap();\nvar _refocusElementGetter = /*#__PURE__*/new WeakMap();\nvar _debouncedSelect = /*#__PURE__*/new WeakMap();\nvar _FocusManager_brand = /*#__PURE__*/new WeakSet();\nclass FocusManager {\n  constructor(hotInstance) {\n    var _this = this;\n    /**\n     * Get and return the currently selected and highlighted cell/header element.\n     *\n     * @param {Function} callback Callback function to be called after the cell element is retrieved.\n     */\n    _classPrivateMethodInitSpec(this, _FocusManager_brand);\n    /**\n     * The Handsontable instance.\n     */\n    _classPrivateFieldInitSpec(this, _hot, void 0);\n    /**\n     * The currently enabled focus mode.\n     * Can be either:\n     *\n     * - 'cell' - The browser's focus stays on the lastly selected cell element.\n     * - 'mixed' - The browser's focus switches from the lastly selected cell element to the currently active editor's\n     * `TEXTAREA` element after a delay defined in the manager.\n     *\n     * @type {'cell' | 'mixed'}\n     */\n    _classPrivateFieldInitSpec(this, _focusMode, void 0);\n    /**\n     * The delay after which the focus switches from the lastly selected cell to the active editor's `TEXTAREA`\n     * element if the focus mode is set to 'mixed'.\n     *\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _refocusDelay, 1);\n    /**\n     * Getter function for the element to be used when refocusing the browser after a delay. If `null`, the active\n     * editor's `TEXTAREA` element will be used.\n     *\n     * @type {null|Function}\n     */\n    _classPrivateFieldInitSpec(this, _refocusElementGetter, null);\n    /**\n     * Map of the debounced `select` functions.\n     *\n     * @type {Map<number, Function>}\n     */\n    _classPrivateFieldInitSpec(this, _debouncedSelect, new Map());\n    const hotSettings = hotInstance.getSettings();\n    _classPrivateFieldSet(_hot, this, hotInstance);\n    _classPrivateFieldSet(_focusMode, this, hotSettings.imeFastEdit ? FOCUS_MODES.MIXED : FOCUS_MODES.CELL);\n    _classPrivateFieldGet(_hot, this).addHook('afterUpdateSettings', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_FocusManager_brand, _this, _onUpdateSettings).call(_this, ...args);\n    });\n    _classPrivateFieldGet(_hot, this).addHook('afterSelection', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_FocusManager_brand, _this, _focusCell).call(_this, ...args);\n    });\n    _classPrivateFieldGet(_hot, this).addHook('afterSelectionFocusSet', function () {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n      return _assertClassBrand(_FocusManager_brand, _this, _focusCell).call(_this, ...args);\n    });\n    _classPrivateFieldGet(_hot, this).addHook('afterSelectionEnd', function () {\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n      return _assertClassBrand(_FocusManager_brand, _this, _focusEditorElement).call(_this, ...args);\n    });\n  }\n\n  /**\n   * Get the current focus mode.\n   *\n   * @returns {'cell' | 'mixed'}\n   */\n  getFocusMode() {\n    return _classPrivateFieldGet(_focusMode, this);\n  }\n\n  /**\n   * Set the focus mode.\n   *\n   * @param {'cell' | 'mixed'} focusMode The new focus mode.\n   */\n  setFocusMode(focusMode) {\n    if (Object.values(FOCUS_MODES).includes(focusMode)) {\n      _classPrivateFieldSet(_focusMode, this, focusMode);\n    } else {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_1__[\"warn\"])(`\"${focusMode}\" is not a valid focus mode.`);\n    }\n  }\n\n  /**\n   * Get the delay after which the focus will change from the cell elements to the active editor's `TEXTAREA`\n   * element if the focus mode is set to 'mixed'.\n   *\n   * @returns {number} Delay in milliseconds.\n   */\n  getRefocusDelay() {\n    return _classPrivateFieldGet(_refocusDelay, this);\n  }\n\n  /**\n   * Set the delay after which the focus will change from the cell elements to the active editor's `TEXTAREA`\n   * element if the focus mode is set to 'mixed'.\n   *\n   * @param {number} delay Delay in milliseconds.\n   */\n  setRefocusDelay(delay) {\n    _classPrivateFieldSet(_refocusDelay, this, delay);\n  }\n\n  /**\n   * Set the function to be used as the \"refocus element\" getter. It should return a focusable HTML element.\n   *\n   * @param {Function} getRefocusElementFunction The refocus element getter.\n   */\n  setRefocusElementGetter(getRefocusElementFunction) {\n    _classPrivateFieldSet(_refocusElementGetter, this, getRefocusElementFunction);\n  }\n\n  /**\n   * Get the element to be used when refocusing the browser after a delay in case of the focus mode being 'mixed'.\n   *\n   * @returns {HTMLTextAreaElement|HTMLElement|undefined}\n   */\n  getRefocusElement() {\n    if (typeof _classPrivateFieldGet(_refocusElementGetter, this) === 'function') {\n      return _classPrivateFieldGet(_refocusElementGetter, this).call(this);\n    } else {\n      var _classPrivateFieldGet2;\n      return (_classPrivateFieldGet2 = _classPrivateFieldGet(_hot, this).getActiveEditor()) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.TEXTAREA;\n    }\n  }\n\n  /**\n   * Set the browser's focus to the highlighted cell of the last selection.\n   *\n   * @param {HTMLTableCellElement} [selectedCell] The highlighted cell/header element.\n   */\n  focusOnHighlightedCell(selectedCell) {\n    const focusElement = element => {\n      var _classPrivateFieldGet3, _classPrivateFieldGet4;\n      const currentHighlightCoords = (_classPrivateFieldGet3 = _classPrivateFieldGet(_hot, this).getSelectedRangeLast()) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.highlight;\n      if (!currentHighlightCoords) {\n        return;\n      }\n      let elementToBeFocused = _classPrivateFieldGet(_hot, this).runHooks('modifyFocusedElement', currentHighlightCoords.row, currentHighlightCoords.col, element);\n      if (!(elementToBeFocused instanceof HTMLElement)) {\n        elementToBeFocused = element;\n      }\n      if (elementToBeFocused && !((_classPrivateFieldGet4 = _classPrivateFieldGet(_hot, this).getActiveEditor()) !== null && _classPrivateFieldGet4 !== void 0 && _classPrivateFieldGet4.isOpened())) {\n        elementToBeFocused.focus({\n          preventScroll: true\n        });\n      }\n    };\n    if (selectedCell) {\n      focusElement(selectedCell);\n    } else {\n      _assertClassBrand(_FocusManager_brand, this, _getSelectedCell).call(this, element => focusElement(element));\n    }\n  }\n\n  /**\n   * Set the focus to the active editor's `TEXTAREA` element after the provided delay. If no delay is provided, it\n   * will be taken from the manager's configuration.\n   *\n   * @param {number} [delay] Delay in milliseconds.\n   */\n  refocusToEditorTextarea() {\n    var _classPrivateFieldGet5;\n    let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _classPrivateFieldGet(_refocusDelay, this);\n    const refocusElement = this.getRefocusElement();\n\n    // Re-focus on the editor's `TEXTAREA` element (or a predefined element) if the `imeFastEdit` option is enabled.\n    if (_classPrivateFieldGet(_hot, this).getSettings().imeFastEdit && !((_classPrivateFieldGet5 = _classPrivateFieldGet(_hot, this).getActiveEditor()) !== null && _classPrivateFieldGet5 !== void 0 && _classPrivateFieldGet5.isOpened()) && !!refocusElement) {\n      if (!_classPrivateFieldGet(_debouncedSelect, this).has(delay)) {\n        _classPrivateFieldGet(_debouncedSelect, this).set(delay, Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_3__[\"debounce\"])(() => {\n          refocusElement.select();\n        }, delay));\n      }\n      _classPrivateFieldGet(_debouncedSelect, this).get(delay)();\n    }\n  }\n}\nfunction _getSelectedCell(callback) {\n  var _classPrivateFieldGet6;\n  const highlight = (_classPrivateFieldGet6 = _classPrivateFieldGet(_hot, this).getSelectedRangeLast()) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.highlight;\n  if (!highlight || !_classPrivateFieldGet(_hot, this).selection.isCellVisible(highlight)) {\n    callback(null);\n    return;\n  }\n  const cell = _classPrivateFieldGet(_hot, this).getCell(highlight.row, highlight.col, true);\n  if (cell === null) {\n    _classPrivateFieldGet(_hot, this).addHookOnce('afterScroll', () => {\n      callback(_classPrivateFieldGet(_hot, this).getCell(highlight.row, highlight.col, true));\n    });\n  } else {\n    callback(cell);\n  }\n}\n/**\n * Manage the browser's focus after each cell selection change.\n */\nfunction _focusCell() {\n  _assertClassBrand(_FocusManager_brand, this, _getSelectedCell).call(this, selectedCell => {\n    const {\n      activeElement\n    } = _classPrivateFieldGet(_hot, this).rootDocument;\n\n    // Blurring the `activeElement` removes the unwanted border around the focusable element (#6877)\n    // and resets the `document.activeElement` property. The blurring should happen only when the\n    // previously selected input element has not belonged to the Handsontable editor. If blurring is\n    // triggered for all elements, there is a problem with the disappearing IME editor (#9672).\n    if (activeElement && Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isOutsideInput\"])(activeElement)) {\n      activeElement.blur();\n    }\n    this.focusOnHighlightedCell(selectedCell);\n  });\n}\n/**\n * Manage the browser's focus after cell selection end.\n */\nfunction _focusEditorElement() {\n  _assertClassBrand(_FocusManager_brand, this, _getSelectedCell).call(this, selectedCell => {\n    if (this.getFocusMode() === FOCUS_MODES.MIXED && selectedCell.nodeName === 'TD') {\n      this.refocusToEditorTextarea();\n    }\n  });\n}\n/**\n * Update the manager configuration after calling `updateSettings`.\n *\n * @param {object} newSettings The new settings passed to the `updateSettings` method.\n */\nfunction _onUpdateSettings(newSettings) {\n  if (typeof newSettings.imeFastEdit === 'boolean') {\n    this.setFocusMode(newSettings.imeFastEdit ? FOCUS_MODES.MIXED : FOCUS_MODES.CELL);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/focusManager.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/a11y.mjs":
/*!****************************************************!*\
  !*** ./node_modules/handsontable/helpers/a11y.mjs ***!
  \****************************************************/
/*! exports provided: A11Y_TABINDEX, A11Y_TREEGRID, A11Y_PRESENTATION, A11Y_GRIDCELL, A11Y_ROWHEADER, A11Y_ROWGROUP, A11Y_COLUMNHEADER, A11Y_ROW, A11Y_MENU, A11Y_MENU_ITEM, A11Y_COMBOBOX, A11Y_LISTBOX, A11Y_OPTION, A11Y_CHECKBOX, A11Y_SCOPE_COL, A11Y_SCOPE_ROW, A11Y_TEXT, A11Y_LABEL, A11Y_HIDDEN, A11Y_DISABLED, A11Y_MULTISELECTABLE, A11Y_HASPOPUP, A11Y_ROWCOUNT, A11Y_COLCOUNT, A11Y_ROWINDEX, A11Y_COLINDEX, A11Y_EXPANDED, A11Y_SORT, A11Y_READONLY, A11Y_INVALID, A11Y_CHECKED, A11Y_SELECTED, A11Y_AUTOCOMPLETE, A11Y_CONTROLS, A11Y_ACTIVEDESCENDANT, A11Y_LIVE, A11Y_RELEVANT, A11Y_SETSIZE, A11Y_POSINSET */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_TABINDEX\", function() { return A11Y_TABINDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_TREEGRID\", function() { return A11Y_TREEGRID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_PRESENTATION\", function() { return A11Y_PRESENTATION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_GRIDCELL\", function() { return A11Y_GRIDCELL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_ROWHEADER\", function() { return A11Y_ROWHEADER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_ROWGROUP\", function() { return A11Y_ROWGROUP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_COLUMNHEADER\", function() { return A11Y_COLUMNHEADER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_ROW\", function() { return A11Y_ROW; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_MENU\", function() { return A11Y_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_MENU_ITEM\", function() { return A11Y_MENU_ITEM; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_COMBOBOX\", function() { return A11Y_COMBOBOX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_LISTBOX\", function() { return A11Y_LISTBOX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_OPTION\", function() { return A11Y_OPTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_CHECKBOX\", function() { return A11Y_CHECKBOX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_SCOPE_COL\", function() { return A11Y_SCOPE_COL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_SCOPE_ROW\", function() { return A11Y_SCOPE_ROW; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_TEXT\", function() { return A11Y_TEXT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_LABEL\", function() { return A11Y_LABEL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_HIDDEN\", function() { return A11Y_HIDDEN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_DISABLED\", function() { return A11Y_DISABLED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_MULTISELECTABLE\", function() { return A11Y_MULTISELECTABLE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_HASPOPUP\", function() { return A11Y_HASPOPUP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_ROWCOUNT\", function() { return A11Y_ROWCOUNT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_COLCOUNT\", function() { return A11Y_COLCOUNT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_ROWINDEX\", function() { return A11Y_ROWINDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_COLINDEX\", function() { return A11Y_COLINDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_EXPANDED\", function() { return A11Y_EXPANDED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_SORT\", function() { return A11Y_SORT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_READONLY\", function() { return A11Y_READONLY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_INVALID\", function() { return A11Y_INVALID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_CHECKED\", function() { return A11Y_CHECKED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_SELECTED\", function() { return A11Y_SELECTED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_AUTOCOMPLETE\", function() { return A11Y_AUTOCOMPLETE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_CONTROLS\", function() { return A11Y_CONTROLS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_ACTIVEDESCENDANT\", function() { return A11Y_ACTIVEDESCENDANT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_LIVE\", function() { return A11Y_LIVE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_RELEVANT\", function() { return A11Y_RELEVANT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_SETSIZE\", function() { return A11Y_SETSIZE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"A11Y_POSINSET\", function() { return A11Y_POSINSET; });\nconst A11Y_TABINDEX = val => ['tabindex', val];\nconst A11Y_TREEGRID = () => ['role', 'treegrid'];\nconst A11Y_PRESENTATION = () => ['role', 'presentation'];\nconst A11Y_GRIDCELL = () => ['role', 'gridcell'];\nconst A11Y_ROWHEADER = () => ['role', 'rowheader'];\nconst A11Y_ROWGROUP = () => ['role', 'rowgroup'];\nconst A11Y_COLUMNHEADER = () => ['role', 'columnheader'];\nconst A11Y_ROW = () => ['role', 'row'];\nconst A11Y_MENU = () => ['role', 'menu'];\nconst A11Y_MENU_ITEM = () => ['role', 'menuitem'];\nconst A11Y_COMBOBOX = () => ['role', 'combobox'];\nconst A11Y_LISTBOX = () => ['role', 'listbox'];\nconst A11Y_OPTION = () => ['role', 'option'];\nconst A11Y_CHECKBOX = () => ['role', 'checkbox'];\nconst A11Y_SCOPE_COL = () => ['scope', 'col'];\nconst A11Y_SCOPE_ROW = () => ['scope', 'row'];\nconst A11Y_TEXT = () => ['type', 'text'];\nconst A11Y_LABEL = val => ['aria-label', val];\nconst A11Y_HIDDEN = () => ['aria-hidden', 'true'];\nconst A11Y_DISABLED = () => ['aria-disabled', 'true'];\nconst A11Y_MULTISELECTABLE = () => ['aria-multiselectable', 'true'];\nconst A11Y_HASPOPUP = val => ['aria-haspopup', val];\nconst A11Y_ROWCOUNT = val => ['aria-rowcount', val];\nconst A11Y_COLCOUNT = val => ['aria-colcount', val];\nconst A11Y_ROWINDEX = val => ['aria-rowindex', val];\nconst A11Y_COLINDEX = val => ['aria-colindex', val];\nconst A11Y_EXPANDED = val => ['aria-expanded', val];\nconst A11Y_SORT = val => ['aria-sort', val];\nconst A11Y_READONLY = () => ['aria-readonly', 'true'];\nconst A11Y_INVALID = () => ['aria-invalid', 'true'];\nconst A11Y_CHECKED = val => ['aria-checked', val];\nconst A11Y_SELECTED = () => ['aria-selected', 'true'];\nconst A11Y_AUTOCOMPLETE = () => ['aria-autocomplete', 'list'];\nconst A11Y_CONTROLS = val => ['aria-controls', val];\nconst A11Y_ACTIVEDESCENDANT = val => ['aria-activedescendant', val];\nconst A11Y_LIVE = val => ['aria-live', val];\nconst A11Y_RELEVANT = val => ['aria-relevant', val];\nconst A11Y_SETSIZE = val => ['aria-setsize', val];\nconst A11Y_POSINSET = val => ['aria-posinset', val];\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/a11y.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/array.mjs":
/*!*****************************************************!*\
  !*** ./node_modules/handsontable/helpers/array.mjs ***!
  \*****************************************************/
/*! exports provided: to2dArray, extendArray, pivot, arrayReduce, arrayFilter, arrayMap, arrayEach, arraySum, arrayMax, arrayMin, arrayAvg, arrayFlatten, arrayUnique, getDifferenceOfArrays, getIntersectionOfArrays, getUnionOfArrays, stringToArray */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"to2dArray\", function() { return to2dArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendArray\", function() { return extendArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pivot\", function() { return pivot; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arrayReduce\", function() { return arrayReduce; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arrayFilter\", function() { return arrayFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arrayMap\", function() { return arrayMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arrayEach\", function() { return arrayEach; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arraySum\", function() { return arraySum; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arrayMax\", function() { return arrayMax; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arrayMin\", function() { return arrayMin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arrayAvg\", function() { return arrayAvg; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arrayFlatten\", function() { return arrayFlatten; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arrayUnique\", function() { return arrayUnique; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDifferenceOfArrays\", function() { return getDifferenceOfArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getIntersectionOfArrays\", function() { return getIntersectionOfArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getUnionOfArrays\", function() { return getUnionOfArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stringToArray\", function() { return stringToArray; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n\n\n\n\n\n\n\n\n/**\n * @param {Array} arr An array to process.\n */\nfunction to2dArray(arr) {\n  const ilen = arr.length;\n  let i = 0;\n  while (i < ilen) {\n    arr[i] = [arr[i]];\n    i += 1;\n  }\n}\n\n/**\n * @param {Array} arr An array to extend.\n * @param {Array} extension The data to extend from.\n */\nfunction extendArray(arr, extension) {\n  const ilen = extension.length;\n  let i = 0;\n  while (i < ilen) {\n    arr.push(extension[i]);\n    i += 1;\n  }\n}\n\n/**\n * @param {Array} arr An array to pivot.\n * @returns {Array}\n */\nfunction pivot(arr) {\n  const pivotedArr = [];\n  if (!arr || arr.length === 0 || !arr[0] || arr[0].length === 0) {\n    return pivotedArr;\n  }\n  const rowCount = arr.length;\n  const colCount = arr[0].length;\n  for (let i = 0; i < rowCount; i++) {\n    for (let j = 0; j < colCount; j++) {\n      if (!pivotedArr[j]) {\n        pivotedArr[j] = [];\n      }\n      pivotedArr[j][i] = arr[i][j];\n    }\n  }\n  return pivotedArr;\n}\n\n/**\n * A specialized version of `.reduce` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * {@link https://github.com/lodash/lodash/blob/master/lodash.js}.\n *\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initFromArray] Specify using the first element of `array` as the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initFromArray) {\n  let index = -1;\n  let iterable = array;\n  let result = accumulator;\n  if (!Array.isArray(array)) {\n    iterable = Array.from(array);\n  }\n  const length = iterable.length;\n  if (initFromArray && length) {\n    index += 1;\n    result = iterable[index];\n  }\n  index += 1;\n  while (index < length) {\n    result = iteratee(result, iterable[index], index, iterable);\n    index += 1;\n  }\n  return result;\n}\n\n/**\n * A specialized version of `.filter` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * {@link https://github.com/lodash/lodash/blob/master/lodash.js}.\n *\n * @param {Array} array The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n  let index = 0;\n  let iterable = array;\n  if (!Array.isArray(array)) {\n    iterable = Array.from(array);\n  }\n  const length = iterable.length;\n  const result = [];\n  let resIndex = -1;\n  while (index < length) {\n    const value = iterable[index];\n    if (predicate(value, index, iterable)) {\n      resIndex += 1;\n      result[resIndex] = value;\n    }\n    index += 1;\n  }\n  return result;\n}\n\n/**\n * A specialized version of `.map` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayMap(array, iteratee) {\n  let index = 0;\n  let iterable = array;\n  if (!Array.isArray(array)) {\n    iterable = Array.from(array);\n  }\n  const length = iterable.length;\n  const result = [];\n  let resIndex = -1;\n  while (index < length) {\n    const value = iterable[index];\n    resIndex += 1;\n    result[resIndex] = iteratee(value, index, iterable);\n    index += 1;\n  }\n  return result;\n}\n\n/**\n * A specialized version of `.forEach` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * {@link https://github.com/lodash/lodash/blob/master/lodash.js}.\n *\n * @param {Array|*} array The array to iterate over or an any element with implemented iterator protocol.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n  let index = 0;\n  let iterable = array;\n  if (!Array.isArray(array)) {\n    iterable = Array.from(array);\n  }\n  const length = iterable.length;\n  while (index < length) {\n    if (iteratee(iterable[index], index, iterable) === false) {\n      break;\n    }\n    index += 1;\n  }\n  return array;\n}\n\n/**\n * Calculate sum value for each item of the array.\n *\n * @param {Array} array The array to process.\n * @returns {number} Returns calculated sum value.\n */\nfunction arraySum(array) {\n  return arrayReduce(array, (a, b) => a + b, 0);\n}\n\n/**\n * Returns the highest value from an array. Can be array of numbers or array of strings.\n * NOTICE: Mixed values is not supported.\n *\n * @param {Array} array The array to process.\n * @returns {number} Returns the highest value from an array.\n */\nfunction arrayMax(array) {\n  return arrayReduce(array, (a, b) => a > b ? a : b, Array.isArray(array) ? array[0] : undefined);\n}\n\n/**\n * Returns the lowest value from an array. Can be array of numbers or array of strings.\n * NOTICE: Mixed values is not supported.\n *\n * @param {Array} array The array to process.\n * @returns {number} Returns the lowest value from an array.\n */\nfunction arrayMin(array) {\n  return arrayReduce(array, (a, b) => a < b ? a : b, Array.isArray(array) ? array[0] : undefined);\n}\n\n/**\n * Calculate average value for each item of the array.\n *\n * @param {Array} array The array to process.\n * @returns {number} Returns calculated average value.\n */\nfunction arrayAvg(array) {\n  if (!array.length) {\n    return 0;\n  }\n  return arraySum(array) / array.length;\n}\n\n/**\n * Flatten multidimensional array.\n *\n * @param {Array} array Array of Arrays.\n * @returns {Array}\n */\nfunction arrayFlatten(array) {\n  return arrayReduce(array, (initial, value) => initial.concat(Array.isArray(value) ? arrayFlatten(value) : value), []);\n}\n\n/**\n * Unique values in the array.\n *\n * @param {Array} array The array to process.\n * @returns {Array}\n */\nfunction arrayUnique(array) {\n  const unique = [];\n  arrayEach(array, value => {\n    if (unique.indexOf(value) === -1) {\n      unique.push(value);\n    }\n  });\n  return unique;\n}\n\n/**\n * Differences from two or more arrays.\n *\n * @param {...Array} arrays Array of strings or array of numbers.\n * @returns {Array} Returns the difference between arrays.\n */\nfunction getDifferenceOfArrays() {\n  for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n    arrays[_key] = arguments[_key];\n  }\n  const [first, ...rest] = [...arrays];\n  let filteredFirstArray = first;\n  arrayEach(rest, array => {\n    filteredFirstArray = filteredFirstArray.filter(value => !array.includes(value));\n  });\n  return filteredFirstArray;\n}\n\n/**\n * Intersection of two or more arrays.\n *\n * @param {...Array} arrays Array of strings or array of numbers.\n * @returns {Array} Returns elements that exists in every array.\n */\nfunction getIntersectionOfArrays() {\n  for (var _len2 = arguments.length, arrays = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    arrays[_key2] = arguments[_key2];\n  }\n  const [first, ...rest] = [...arrays];\n  let filteredFirstArray = first;\n  arrayEach(rest, array => {\n    filteredFirstArray = filteredFirstArray.filter(value => array.includes(value));\n  });\n  return filteredFirstArray;\n}\n\n/**\n * Union of two or more arrays.\n *\n * @param {...Array} arrays Array of strings or array of numbers.\n * @returns {Array} Returns the elements that exist in any of the arrays, without duplicates.\n */\nfunction getUnionOfArrays() {\n  for (var _len3 = arguments.length, arrays = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n    arrays[_key3] = arguments[_key3];\n  }\n  const [first, ...rest] = [...arrays];\n  const set = new Set(first);\n  arrayEach(rest, array => {\n    arrayEach(array, value => {\n      if (!set.has(value)) {\n        set.add(value);\n      }\n    });\n  });\n  return Array.from(set);\n}\n\n/**\n * Convert a separated strings to an array of strings.\n *\n * @param {string} value A string of class name(s).\n * @param {string|RegExp} delimiter The pattern describing where each split should occur.\n * @returns {string[]} Returns array of string or empty array.\n */\nfunction stringToArray(value) {\n  let delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ' ';\n  return value.split(delimiter);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/array.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/browser.mjs":
/*!*******************************************************!*\
  !*** ./node_modules/handsontable/helpers/browser.mjs ***!
  \*******************************************************/
/*! exports provided: setBrowserMeta, setPlatformMeta, isChrome, isChromeWebKit, isFirefox, isFirefoxWebKit, isSafari, isEdge, isEdgeWebKit, isMobileBrowser, isIOS, isIpadOS, isWindowsOS, isMacOS, isLinuxOS */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setBrowserMeta\", function() { return setBrowserMeta; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setPlatformMeta\", function() { return setPlatformMeta; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isChrome\", function() { return isChrome; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isChromeWebKit\", function() { return isChromeWebKit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFirefox\", function() { return isFirefox; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFirefoxWebKit\", function() { return isFirefoxWebKit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSafari\", function() { return isSafari; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isEdge\", function() { return isEdge; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isEdgeWebKit\", function() { return isEdgeWebKit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isMobileBrowser\", function() { return isMobileBrowser; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isIOS\", function() { return isIOS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isIpadOS\", function() { return isIpadOS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isWindowsOS\", function() { return isWindowsOS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isMacOS\", function() { return isMacOS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLinuxOS\", function() { return isLinuxOS; });\n/* harmony import */ var _object_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _feature_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./feature.mjs */ \"./node_modules/handsontable/helpers/feature.mjs\");\n\n\nconst tester = testerFunc => {\n  const result = {\n    value: false\n  };\n  result.test = (ua, vendor) => {\n    result.value = testerFunc(ua, vendor);\n  };\n  return result;\n};\nconst browsers = {\n  chrome: tester((ua, vendor) => /Chrome/.test(ua) && /Google/.test(vendor)),\n  chromeWebKit: tester(ua => /CriOS/.test(ua)),\n  edge: tester(ua => /Edge/.test(ua)),\n  edgeWebKit: tester(ua => /EdgiOS/.test(ua)),\n  firefox: tester(ua => /Firefox/.test(ua)),\n  firefoxWebKit: tester(ua => /FxiOS/.test(ua)),\n  mobile: tester(ua => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(ua)),\n  safari: tester((ua, vendor) => /Safari/.test(ua) && /Apple Computer/.test(vendor))\n};\nconst platforms = {\n  mac: tester(platform => /^Mac/.test(platform)),\n  win: tester(platform => /^Win/.test(platform)),\n  linux: tester(platform => /^Linux/.test(platform)),\n  ios: tester(ua => /iPhone|iPad|iPod/i.test(ua))\n};\n\n/**\n * @param {object} [metaObject] The browser identity collection.\n * @param {object} [metaObject.userAgent] The user agent reported by browser.\n * @param {object} [metaObject.vendor] The vendor name reported by browser.\n */\nfunction setBrowserMeta() {\n  let {\n    userAgent = navigator.userAgent,\n    vendor = navigator.vendor\n  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  Object(_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"objectEach\"])(browsers, _ref => {\n    let {\n      test\n    } = _ref;\n    return void test(userAgent, vendor);\n  });\n}\n\n/**\n * @param {object} [metaObject] The platform identity collection.\n * @param {object} [metaObject.platform] The platform ID.\n */\nfunction setPlatformMeta() {\n  let {\n    platform = navigator.platform\n  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  Object(_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"objectEach\"])(platforms, _ref2 => {\n    let {\n      test\n    } = _ref2;\n    return void test(platform);\n  });\n}\nif (Object(_feature_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isCSR\"])()) {\n  setBrowserMeta();\n  setPlatformMeta();\n}\n\n/**\n * @returns {boolean}\n */\nfunction isChrome() {\n  return browsers.chrome.value;\n}\n\n/**\n * @returns {boolean}\n */\nfunction isChromeWebKit() {\n  return browsers.chromeWebKit.value;\n}\n\n/**\n * @returns {boolean}\n */\nfunction isFirefox() {\n  return browsers.firefox.value;\n}\n\n/**\n * @returns {boolean}\n */\nfunction isFirefoxWebKit() {\n  return browsers.firefoxWebKit.value;\n}\n\n/**\n * @returns {boolean}\n */\nfunction isSafari() {\n  return browsers.safari.value;\n}\n\n/**\n * @returns {boolean}\n */\nfunction isEdge() {\n  return browsers.edge.value;\n}\n\n/**\n * @returns {boolean}\n */\nfunction isEdgeWebKit() {\n  return browsers.edgeWebKit.value;\n}\n\n/**\n * @returns {boolean}\n */\nfunction isMobileBrowser() {\n  return browsers.mobile.value;\n}\n\n/**\n * @returns {boolean}\n */\nfunction isIOS() {\n  return platforms.ios.value;\n}\n\n/**\n * A hacky way to recognize the iPad. Since iOS 13, the iPad on Safari mimics macOS behavior and user agent.\n *\n * @see {@https://stackoverflow.com/a/57838385}\n * @param {object} [metaObject] The browser identity collection.\n * @param {number} [metaObject.maxTouchPoints] The maximum number of simultanous touch points.\n * @returns {boolean}\n */\nfunction isIpadOS() {\n  let {\n    maxTouchPoints\n  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : navigator;\n  return maxTouchPoints > 2 && platforms.mac.value;\n}\n\n/**\n * @returns {boolean}\n */\nfunction isWindowsOS() {\n  return platforms.win.value;\n}\n\n/**\n * @returns {boolean}\n */\nfunction isMacOS() {\n  return platforms.mac.value;\n}\n\n/**\n * @returns {boolean}\n */\nfunction isLinuxOS() {\n  return platforms.linux.value;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/browser.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/console.mjs":
/*!*******************************************************!*\
  !*** ./node_modules/handsontable/helpers/console.mjs ***!
  \*******************************************************/
/*! exports provided: log, warn, info, error */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"log\", function() { return log; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"warn\", function() { return warn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"info\", function() { return info; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"error\", function() { return error; });\n/* harmony import */ var _mixed_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* eslint-disable no-console */\n/* eslint-disable no-restricted-globals */\n/**\n * \"In Internet Explorer 9 (and 8), the console object is only exposed when the developer tools are opened\n * for a particular tab.\".\n *\n * Source: https://stackoverflow.com/a/5473193.\n */\n\n/**\n * Logs message to the console if the `console` object is exposed.\n *\n * @param {...*} args Values which will be logged.\n */\nfunction log() {\n  if (Object(_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isDefined\"])(console)) {\n    console.log(...arguments);\n  }\n}\n\n/**\n * Logs warn to the console if the `console` object is exposed.\n *\n * @param {...*} args Values which will be logged.\n */\nfunction warn() {\n  if (Object(_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isDefined\"])(console)) {\n    console.warn(...arguments);\n  }\n}\n\n/**\n * Logs info to the console if the `console` object is exposed.\n *\n * @param {...*} args Values which will be logged.\n */\nfunction info() {\n  if (Object(_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isDefined\"])(console)) {\n    console.info(...arguments);\n  }\n}\n\n/**\n * Logs error to the console if the `console` object is exposed.\n *\n * @param {...*} args Values which will be logged.\n */\nfunction error() {\n  if (Object(_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isDefined\"])(console)) {\n    console.error(...arguments);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/console.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/data.mjs":
/*!****************************************************!*\
  !*** ./node_modules/handsontable/helpers/data.mjs ***!
  \****************************************************/
/*! exports provided: spreadsheetColumnLabel, spreadsheetColumnIndex, createSpreadsheetData, createSpreadsheetObjectData, createEmptySpreadsheetData, dataRowToChangesArray, countFirstRowKeys, isArrayOfArrays, isArrayOfObjects */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spreadsheetColumnLabel\", function() { return spreadsheetColumnLabel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spreadsheetColumnIndex\", function() { return spreadsheetColumnIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createSpreadsheetData\", function() { return createSpreadsheetData; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createSpreadsheetObjectData\", function() { return createSpreadsheetObjectData; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createEmptySpreadsheetData\", function() { return createEmptySpreadsheetData; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dataRowToChangesArray\", function() { return dataRowToChangesArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"countFirstRowKeys\", function() { return countFirstRowKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isArrayOfArrays\", function() { return isArrayOfArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isArrayOfObjects\", function() { return isArrayOfObjects; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n\n\nconst COLUMN_LABEL_BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\nconst COLUMN_LABEL_BASE_LENGTH = COLUMN_LABEL_BASE.length;\n\n/**\n * Generates spreadsheet-like column names: A, B, C, ..., Z, AA, AB, etc.\n *\n * @param {number} index Column index.\n * @returns {string}\n */\nfunction spreadsheetColumnLabel(index) {\n  let dividend = index + 1;\n  let columnLabel = '';\n  let modulo;\n  while (dividend > 0) {\n    modulo = (dividend - 1) % COLUMN_LABEL_BASE_LENGTH;\n    columnLabel = String.fromCharCode(65 + modulo) + columnLabel;\n    dividend = parseInt((dividend - modulo) / COLUMN_LABEL_BASE_LENGTH, 10);\n  }\n  return columnLabel;\n}\n\n/**\n * Generates spreadsheet-like column index from theirs labels: A, B, C ...., Z, AA, AB, etc.\n *\n * @param {string} label Column label.\n * @returns {number}\n */\nfunction spreadsheetColumnIndex(label) {\n  let result = 0;\n  if (label) {\n    for (let i = 0, j = label.length - 1; i < label.length; i += 1, j -= 1) {\n      result += COLUMN_LABEL_BASE_LENGTH ** j * (COLUMN_LABEL_BASE.indexOf(label[i]) + 1);\n    }\n  }\n  result -= 1;\n  return result;\n}\n\n/**\n * Creates 2D array of Excel-like values \"A1\", \"A2\", ...\n *\n * @param {number} rows Number of rows to generate.\n * @param {number} columns Number of columns to generate.\n * @returns {Array}\n */\nfunction createSpreadsheetData() {\n  let rows = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 100;\n  let columns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4;\n  const _rows = [];\n  let i;\n  let j;\n  for (i = 0; i < rows; i++) {\n    const row = [];\n    for (j = 0; j < columns; j++) {\n      row.push(spreadsheetColumnLabel(j) + (i + 1));\n    }\n    _rows.push(row);\n  }\n  return _rows;\n}\n\n/**\n * Creates 2D array of Excel-like values \"A1\", \"A2\", as an array of objects.\n *\n * @param {number} rows Number of rows to generate.\n * @param {number} colCount Number of columns to generate.\n * @returns {Array}\n */\nfunction createSpreadsheetObjectData() {\n  let rows = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 100;\n  let colCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4;\n  const _rows = [];\n  let i;\n  let j;\n  for (i = 0; i < rows; i++) {\n    const row = {};\n    for (j = 0; j < colCount; j++) {\n      row[`prop${j}`] = spreadsheetColumnLabel(j) + (i + 1);\n    }\n    _rows.push(row);\n  }\n  return _rows;\n}\n\n/**\n * Generates an empty data object.\n *\n * @param {number} rows Number of rows to generate.\n * @param {number} columns Number of columns to generate.\n * @returns {Array}\n */\nfunction createEmptySpreadsheetData(rows, columns) {\n  const data = [];\n  let row;\n  for (let i = 0; i < rows; i++) {\n    row = [];\n    for (let j = 0; j < columns; j++) {\n      row.push('');\n    }\n    data.push(row);\n  }\n  return data;\n}\n\n/**\n * Transform a data row (either an array or an object) or an array of data rows to array of changes in a form of `[row,\n * prop/col, value]`. Convenient to use with `setDataAtRowProp` and `setSourceDataAtCell` methods.\n *\n * @param {Array|object} dataRow Object of row data, array of row data or an array of either.\n * @param {number} rowOffset Row offset to be passed to the resulting change list. Defaults to `0`.\n * @returns {Array} Array of changes (in a form of an array).\n */\nfunction dataRowToChangesArray(dataRow) {\n  let rowOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  let dataRows = dataRow;\n  const changesArray = [];\n  if (!Array.isArray(dataRow) || !Array.isArray(dataRow[0])) {\n    dataRows = [dataRow];\n  }\n  dataRows.forEach((row, rowIndex) => {\n    if (Array.isArray(row)) {\n      row.forEach((value, column) => {\n        changesArray.push([rowIndex + rowOffset, column, value]);\n      });\n    } else {\n      Object.keys(row).forEach(propName => {\n        changesArray.push([rowIndex + rowOffset, propName, row[propName]]);\n      });\n    }\n  });\n  return changesArray;\n}\n\n/**\n * Count the number of keys (or, basically, columns when the data is an array or arrays) in the first row of the\n * provided dataset.\n *\n * @param {Array} data The dataset.\n * @returns {number} Number of keys in the first row of the dataset.\n */\nfunction countFirstRowKeys(data) {\n  let result = 0;\n  if (Array.isArray(data)) {\n    if (data[0] && Array.isArray(data[0])) {\n      result = data[0].length;\n    } else if (data[0] && Object(_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isObject\"])(data[0])) {\n      result = Object(_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"deepObjectSize\"])(data[0]);\n    }\n  }\n  return result;\n}\n\n/**\n * Check whether the provided dataset is a *non-empty* array of arrays.\n *\n * @param {Array} data Dataset to be checked.\n * @returns {boolean} `true` if data is an array of arrays, `false` otherwise.\n */\nfunction isArrayOfArrays(data) {\n  return !!(Array.isArray(data) && data.length && data.every(el => Array.isArray(el)));\n}\n\n/**\n * Check whether the provided dataset is a *non-empty* array of objects.\n *\n * @param {Array} data Dataset to be checked.\n * @returns {boolean} `true` if data is an array of objects, `false` otherwise.\n */\nfunction isArrayOfObjects(data) {\n  return !!(Array.isArray(data) && data.length && data.every(el => typeof el === 'object' && !Array.isArray(el) && el !== null));\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/data.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/date.mjs":
/*!****************************************************!*\
  !*** ./node_modules/handsontable/helpers/date.mjs ***!
  \****************************************************/
/*! exports provided: getNormalizedDate */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getNormalizedDate\", function() { return getNormalizedDate; });\n/**\n * Get normalized Date object for the ISO formatted date strings.\n * Natively, the date object parsed from a ISO 8601 string will be offsetted by the timezone difference, which may result in returning a wrong date.\n * See: Github issue #3338.\n *\n * @param {string} dateString String representing the date.\n * @returns {Date} The proper Date object.\n */\nfunction getNormalizedDate(dateString) {\n  const nativeDate = new Date(dateString);\n\n  // NaN if dateString is not in ISO format\n  if (!isNaN(new Date(`${dateString}T00:00`).getDate())) {\n    // Compensate timezone offset\n    return new Date(nativeDate.getTime() + nativeDate.getTimezoneOffset() * 60000);\n  }\n  return nativeDate;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/date.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/dom/element.mjs":
/*!***********************************************************!*\
  !*** ./node_modules/handsontable/helpers/dom/element.mjs ***!
  \***********************************************************/
/*! exports provided: getParent, isThisHotChild, getFrameElement, getParentWindow, hasAccessToParentWindow, closest, closestDown, isChildOf, index, overlayContainsElement, hasClass, addClass, removeClass, setAttribute, removeAttribute, removeTextNodes, empty, HTML_CHARACTERS, fastInnerHTML, fastInnerText, isVisible, offset, getWindowScrollTop, getWindowScrollLeft, getScrollTop, getScrollLeft, getScrollableElement, getMaximumScrollTop, getMaximumScrollLeft, getTrimmingContainer, getStyle, matchesCSSRules, getComputedStyle, outerWidth, outerHeight, innerHeight, innerWidth, addEvent, removeEvent, getCaretPosition, getSelectionEndPosition, getSelectionText, clearTextSelection, setCaretPosition, getScrollbarWidth, hasVerticalScrollbar, hasHorizontalScrollbar, setOverlayPosition, getCssTransform, resetCssTransform, isInput, isOutsideInput, selectElementIfAllowed, isDetached, observeVisibilityChangeOnce, makeElementContentEditableAndSelectItsContent, removeContentEditableFromElementAndDeselect, runWithSelectedContendEditableElement */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getParent\", function() { return getParent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isThisHotChild\", function() { return isThisHotChild; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFrameElement\", function() { return getFrameElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getParentWindow\", function() { return getParentWindow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasAccessToParentWindow\", function() { return hasAccessToParentWindow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"closest\", function() { return closest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"closestDown\", function() { return closestDown; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isChildOf\", function() { return isChildOf; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"index\", function() { return index; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"overlayContainsElement\", function() { return overlayContainsElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasClass\", function() { return hasClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addClass\", function() { return addClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeClass\", function() { return removeClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setAttribute\", function() { return setAttribute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeAttribute\", function() { return removeAttribute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeTextNodes\", function() { return removeTextNodes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"empty\", function() { return empty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HTML_CHARACTERS\", function() { return HTML_CHARACTERS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fastInnerHTML\", function() { return fastInnerHTML; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fastInnerText\", function() { return fastInnerText; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isVisible\", function() { return isVisible; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"offset\", function() { return offset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getWindowScrollTop\", function() { return getWindowScrollTop; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getWindowScrollLeft\", function() { return getWindowScrollLeft; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getScrollTop\", function() { return getScrollTop; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getScrollLeft\", function() { return getScrollLeft; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getScrollableElement\", function() { return getScrollableElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMaximumScrollTop\", function() { return getMaximumScrollTop; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMaximumScrollLeft\", function() { return getMaximumScrollLeft; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getTrimmingContainer\", function() { return getTrimmingContainer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getStyle\", function() { return getStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"matchesCSSRules\", function() { return matchesCSSRules; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getComputedStyle\", function() { return getComputedStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"outerWidth\", function() { return outerWidth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"outerHeight\", function() { return outerHeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"innerHeight\", function() { return innerHeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"innerWidth\", function() { return innerWidth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addEvent\", function() { return addEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeEvent\", function() { return removeEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getCaretPosition\", function() { return getCaretPosition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSelectionEndPosition\", function() { return getSelectionEndPosition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSelectionText\", function() { return getSelectionText; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"clearTextSelection\", function() { return clearTextSelection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setCaretPosition\", function() { return setCaretPosition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getScrollbarWidth\", function() { return getScrollbarWidth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasVerticalScrollbar\", function() { return hasVerticalScrollbar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasHorizontalScrollbar\", function() { return hasHorizontalScrollbar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setOverlayPosition\", function() { return setOverlayPosition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getCssTransform\", function() { return getCssTransform; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetCssTransform\", function() { return resetCssTransform; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isInput\", function() { return isInput; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isOutsideInput\", function() { return isOutsideInput; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"selectElementIfAllowed\", function() { return selectElementIfAllowed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDetached\", function() { return isDetached; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observeVisibilityChangeOnce\", function() { return observeVisibilityChangeOnce; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeElementContentEditableAndSelectItsContent\", function() { return makeElementContentEditableAndSelectItsContent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeContentEditableFromElementAndDeselect\", function() { return removeContentEditableFromElementAndDeselect; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"runWithSelectedContendEditableElement\", function() { return runWithSelectedContendEditableElement; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _string_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../string.mjs */ \"./node_modules/handsontable/helpers/string.mjs\");\n/* harmony import */ var _a11y_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\n\n\n/**\n * Get the parent of the specified node in the DOM tree.\n *\n * @param {HTMLElement} element Element from which traversing is started.\n * @param {number} [level=0] Traversing deep level.\n * @returns {HTMLElement|null}\n */\nfunction getParent(element) {\n  let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  let iteration = -1;\n  let parent = null;\n  let elementToCheck = element;\n  while (elementToCheck !== null) {\n    if (iteration === level) {\n      parent = elementToCheck;\n      break;\n    }\n    if (elementToCheck.host && elementToCheck.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n      elementToCheck = elementToCheck.host;\n    } else {\n      iteration += 1;\n      elementToCheck = elementToCheck.parentNode;\n    }\n  }\n  return parent;\n}\n\n/**\n * Check if the provided element is a child of the provided Handsontable container.\n *\n * @param {HTMLElement} element Element to be analyzed.\n * @param {HTMLElement} thisHotContainer The Handsontable container.\n * @returns {boolean}\n */\nfunction isThisHotChild(element, thisHotContainer) {\n  const closestHandsontableContainer = element.closest('.handsontable');\n  return !!closestHandsontableContainer && (closestHandsontableContainer.parentNode === thisHotContainer || closestHandsontableContainer === thisHotContainer);\n}\n\n/**\n * Gets `frameElement` of the specified frame. Returns null if it is a top frame or if script has no access to read property.\n *\n * @param {Window} frame Frame from which should be get frameElement in safe way.\n * @returns {HTMLIFrameElement|null}\n */\nfunction getFrameElement(frame) {\n  return Object.getPrototypeOf(frame.parent) && frame.frameElement;\n}\n\n/**\n * Gets parent frame of the specified frame. Returns null if it is a top frame or if script has no access to read property.\n *\n * @param {Window} frame Frame from which should get frameElement in a safe way.\n * @returns {Window|null}\n */\nfunction getParentWindow(frame) {\n  return getFrameElement(frame) && frame.parent;\n}\n\n/**\n * Checks if script has access to read from parent frame of specified frame.\n *\n * @param {Window} frame Frame from which should get frameElement in a safe way.\n * @returns {boolean}\n */\nfunction hasAccessToParentWindow(frame) {\n  return !!Object.getPrototypeOf(frame.parent);\n}\n\n/**\n * Goes up the DOM tree (including given element) until it finds an parent element that matches the nodes or nodes name.\n * This method goes up through web components.\n *\n * @param {Node} element Element from which traversing is started.\n * @param {Array<string|Node>} [nodes] Array of elements or Array of elements name (in uppercase form).\n * @param {Node} [until] The element until the traversing ends.\n * @returns {Node|null}\n */\nfunction closest(element) {\n  let nodes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  let until = arguments.length > 2 ? arguments[2] : undefined;\n  const {\n    ELEMENT_NODE,\n    DOCUMENT_FRAGMENT_NODE\n  } = Node;\n  let elementToCheck = element;\n  while (elementToCheck !== null && elementToCheck !== undefined && elementToCheck !== until) {\n    const {\n      nodeType,\n      nodeName\n    } = elementToCheck;\n    if (nodeType === ELEMENT_NODE && (nodes.includes(nodeName) || nodes.includes(elementToCheck))) {\n      return elementToCheck;\n    }\n    const {\n      host\n    } = elementToCheck;\n    if (host && nodeType === DOCUMENT_FRAGMENT_NODE) {\n      elementToCheck = host;\n    } else {\n      elementToCheck = elementToCheck.parentNode;\n    }\n  }\n  return null;\n}\n\n/**\n * Goes \"down\" the DOM tree (including given element) until it finds an element that matches the nodes or nodes name.\n *\n * @param {HTMLElement} element Element from which traversing is started.\n * @param {Array} nodes Array of elements or Array of elements name.\n * @param {HTMLElement} [until] The list of elements until the traversing ends.\n * @returns {HTMLElement|null}\n */\nfunction closestDown(element, nodes, until) {\n  const matched = [];\n  let elementToCheck = element;\n  while (elementToCheck) {\n    elementToCheck = closest(elementToCheck, nodes, until);\n    if (!elementToCheck || until && !until.contains(elementToCheck)) {\n      break;\n    }\n    matched.push(elementToCheck);\n    if (elementToCheck.host && elementToCheck.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n      elementToCheck = elementToCheck.host;\n    } else {\n      elementToCheck = elementToCheck.parentNode;\n    }\n  }\n  const length = matched.length;\n  return length ? matched[length - 1] : null;\n}\n\n/**\n * Goes up the DOM tree and checks if element is child of another element.\n *\n * @param {HTMLElement} child Child element An element to check.\n * @param {object|string} parent Parent element OR selector of the parent element.\n *                               If string provided, function returns `true` for the first occurrence of element with that class.\n * @returns {boolean}\n */\nfunction isChildOf(child, parent) {\n  let node = child.parentNode;\n  let queriedParents = [];\n  if (typeof parent === 'string') {\n    if (child.defaultView) {\n      queriedParents = Array.prototype.slice.call(child.querySelectorAll(parent), 0);\n    } else {\n      queriedParents = Array.prototype.slice.call(child.ownerDocument.querySelectorAll(parent), 0);\n    }\n  } else {\n    queriedParents.push(parent);\n  }\n  while (node !== null) {\n    if (queriedParents.indexOf(node) > -1) {\n      return true;\n    }\n    node = node.parentNode;\n  }\n  return false;\n}\n\n/**\n * Counts index of element within its parent.\n * WARNING: for performance reasons, assumes there are only element nodes (no text nodes). This is true\n * for Walkotnable, otherwise would need to check for nodeType or use previousElementSibling.\n *\n * @see http://jsperf.com/sibling-index/10\n * @param {Element} element The element to check.\n * @returns {number}\n */\nfunction index(element) {\n  let i = 0;\n  let elementToCheck = element;\n  if (elementToCheck.previousSibling) {\n    /* eslint-disable no-cond-assign */\n    while (elementToCheck = elementToCheck.previousSibling) {\n      i += 1;\n    }\n  }\n  return i;\n}\n\n/**\n * Check if the provided overlay contains the provided element.\n *\n * @param {string} overlayType The type of the overlay.\n * @param {HTMLElement} element An element to check.\n * @param {HTMLElement} root The root element.\n * @returns {boolean}\n */\nfunction overlayContainsElement(overlayType, element, root) {\n  const overlayElement = root.parentElement.querySelector(`.ht_clone_${overlayType}`);\n  return overlayElement ? overlayElement.contains(element) : null;\n}\n\n/**\n * @param {string[]} classNames The element \"class\" attribute string.\n * @returns {string[]}\n */\nfunction filterEmptyClassNames(classNames) {\n  if (!classNames || !classNames.length) {\n    return [];\n  }\n  return classNames.filter(x => !!x);\n}\n\n/**\n * Filter out the RegExp entries from an array.\n *\n * @param {(string|RegExp)[]} list Array of either strings, Regexes or a mix of both.\n * @param {boolean} [returnBoth] If `true`, both the array without regexes and an array of regexes will be returned.\n * @returns {string[]|{regexFree: string[], regexes: RegExp[]}}\n */\nfunction filterRegexes(list, returnBoth) {\n  if (!list || !list.length) {\n    return returnBoth ? {\n      regexFree: [],\n      regexes: []\n    } : [];\n  }\n  const regexes = [];\n  const regexFree = [];\n  regexFree.push(...list.filter(entry => {\n    const isRegex = entry instanceof RegExp;\n    if (isRegex && returnBoth) {\n      regexes.push(entry);\n    }\n    return !isRegex;\n  }));\n  return returnBoth ? {\n    regexFree,\n    regexes\n  } : regexFree;\n}\n\n/**\n * Checks if element has class name.\n *\n * @param {HTMLElement} element An element to check.\n * @param {string} className Class name to check.\n * @returns {boolean}\n */\nfunction hasClass(element, className) {\n  if (element.classList === undefined || typeof className !== 'string' || className === '') {\n    return false;\n  }\n  return element.classList.contains(className);\n}\n\n/**\n * Add class name to an element.\n *\n * @param {HTMLElement} element An element to process.\n * @param {string|Array} className Class name as string or array of strings.\n */\nfunction addClass(element, className) {\n  if (typeof className === 'string') {\n    className = className.split(' ');\n  }\n  className = filterEmptyClassNames(className);\n  if (className.length > 0) {\n    element.classList.add(...className);\n  }\n}\n\n/**\n * Remove class name from an element.\n *\n * @param {HTMLElement} element An element to process.\n * @param {string|Array<string|RegExp>} className Class name as string or array of strings.\n */\nfunction removeClass(element, className) {\n  if (typeof className === 'string') {\n    className = className.split(' ');\n  } else if (className instanceof RegExp) {\n    className = [className];\n  }\n  let {\n    regexFree: stringClasses,\n    // eslint-disable-next-line prefer-const\n    regexes: regexClasses\n  } = filterRegexes(className, true);\n  stringClasses = filterEmptyClassNames(stringClasses);\n  if (stringClasses.length > 0) {\n    element.classList.remove(...stringClasses);\n  }\n  regexClasses.forEach(regexClassName => {\n    element.classList.forEach(currentClassName => {\n      if (regexClassName.test(currentClassName)) {\n        element.classList.remove(currentClassName);\n      }\n    });\n  });\n}\n\n/**\n * Set a single attribute or multiple attributes at once.\n *\n * @param {HTMLElement} domElement The HTML element to be modified.\n * @param {Array[]|string} attributes If setting multiple attributes at once, `attributes` holds an array containing the\n * attributes to be added. Each element of the array should be an array in a form of `[attributeName,\n * attributeValue]`. If setting a single attribute, `attributes` holds the name of the attribute.\n * @param {string|number|undefined} [attributeValue] If setting a single attribute, `attributeValue` holds the attribute\n * value.\n */\nfunction setAttribute(domElement) {\n  let attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  let attributeValue = arguments.length > 2 ? arguments[2] : undefined;\n  if (!Array.isArray(attributes)) {\n    attributes = [[attributes, attributeValue]];\n  }\n  attributes.forEach(attributeInfo => {\n    if (Array.isArray(attributeInfo) && attributeInfo[0] !== '') {\n      domElement.setAttribute(...attributeInfo);\n    }\n  });\n}\n\n/**\n * Remove a single attribute or multiple attributes from the provided element at once.\n *\n * @param {HTMLElement} domElement The HTML element to be processed.\n * @param {Array<string|RegExp>|string} attributesToRemove If removing multiple attributes, `attributesToRemove`\n * holds an array of attribute names to be removed from the provided element. If removing a single attribute, it\n * holds the attribute name.\n */\nfunction removeAttribute(domElement) {\n  let attributesToRemove = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  if (typeof attributesToRemove === 'string') {\n    attributesToRemove = attributesToRemove.split(' ');\n  } else if (attributesToRemove instanceof RegExp) {\n    attributesToRemove = [attributesToRemove];\n  }\n  const {\n    regexFree: stringAttributes,\n    regexes: regexAttributes\n  } = filterRegexes(attributesToRemove, true);\n  stringAttributes.forEach(attributeNameToRemove => {\n    if (attributeNameToRemove !== '') {\n      domElement.removeAttribute(attributeNameToRemove);\n    }\n  });\n  regexAttributes.forEach(attributeRegex => {\n    domElement.getAttributeNames().forEach(attributeName => {\n      if (attributeRegex.test(attributeName)) {\n        domElement.removeAttribute(attributeName);\n      }\n    });\n  });\n}\n\n/**\n * @param {HTMLElement} element An element from the text is removed.\n */\nfunction removeTextNodes(element) {\n  if (element.nodeType === 3) {\n    element.parentNode.removeChild(element); // bye text nodes!\n  } else if (['TABLE', 'THEAD', 'TBODY', 'TFOOT', 'TR'].indexOf(element.nodeName) > -1) {\n    const childs = element.childNodes;\n    for (let i = childs.length - 1; i >= 0; i--) {\n      removeTextNodes(childs[i]);\n    }\n  }\n}\n\n/**\n * Remove children function\n * WARNING - this doesn't unload events and data attached by jQuery\n * http://jsperf.com/jquery-html-vs-empty-vs-innerhtml/9\n * http://jsperf.com/jquery-html-vs-empty-vs-innerhtml/11 - no siginificant improvement with Chrome remove() method.\n *\n * @param {HTMLElement} element An element to clear.\n */\nfunction empty(element) {\n  let child;\n\n  /* eslint-disable no-cond-assign */\n  while (child = element.lastChild) {\n    element.removeChild(child);\n  }\n}\nconst HTML_CHARACTERS = /(<(.*)>|&(.*);)/;\n\n/**\n * Insert content into element trying to avoid innerHTML method.\n *\n * @param {HTMLElement} element An element to write into.\n * @param {string} content The text to write.\n * @param {boolean} [sanitizeContent=true] If `true`, the content will be sanitized before writing to the element.\n */\nfunction fastInnerHTML(element, content) {\n  let sanitizeContent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n  if (HTML_CHARACTERS.test(content)) {\n    element.innerHTML = sanitizeContent ? Object(_string_mjs__WEBPACK_IMPORTED_MODULE_2__[\"sanitize\"])(content) : content;\n  } else {\n    fastInnerText(element, content);\n  }\n}\n\n/**\n * Insert text content into element.\n *\n * @param {HTMLElement} element An element to write into.\n * @param {string} content The text to write.\n */\nfunction fastInnerText(element, content) {\n  const child = element.firstChild;\n  if (child && child.nodeType === 3 && child.nextSibling === null) {\n    // fast lane - replace existing text node\n    child.textContent = content;\n  } else {\n    // slow lane - empty element and insert a text node\n    empty(element);\n    element.appendChild(element.ownerDocument.createTextNode(content));\n  }\n}\n\n/**\n * Returns true if element is attached to the DOM and visible, false otherwise.\n *\n * @param {HTMLElement} element An element to check.\n * @returns {boolean}\n */\nfunction isVisible(element) {\n  const documentElement = element.ownerDocument.documentElement;\n  let next = element;\n  while (next !== documentElement) {\n    // until <html> reached\n    if (next === null) {\n      // parent detached from DOM\n      return false;\n    } else if (next.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n      if (next.host) {\n        // this is Web Components Shadow DOM\n        // see: http://w3c.github.io/webcomponents/spec/shadow/#encapsulation\n        // according to spec, should be if (next.ownerDocument !== window.document), but that doesn't work yet\n        if (next.host.impl) {\n          // Chrome 33.0.1723.0 canary (2013-11-29) Web Platform features disabled\n          return isVisible(next.host.impl);\n        } else if (next.host) {\n          // Chrome 33.0.1723.0 canary (2013-11-29) Web Platform features enabled\n          return isVisible(next.host);\n        }\n        throw new Error('Lost in Web Components world');\n      } else {\n        return false; // this is a node detached from document in IE8\n      }\n    } else if (getComputedStyle(next).display === 'none') {\n      return false;\n    }\n    next = next.parentNode;\n  }\n  return true;\n}\n\n/**\n * Returns elements top and left offset relative to the document. Function is not compatible with jQuery offset.\n *\n * @param {HTMLElement} element An element to get the offset position from.\n * @returns {object} Returns object with `top` and `left` props.\n */\nfunction offset(element) {\n  const rootDocument = element.ownerDocument;\n  const rootWindow = rootDocument.defaultView;\n  const documentElement = rootDocument.documentElement;\n  let elementToCheck = element;\n  let offsetLeft;\n  let offsetTop;\n  let lastElem;\n  offsetLeft = elementToCheck.offsetLeft;\n  offsetTop = elementToCheck.offsetTop;\n  lastElem = elementToCheck;\n\n  /* eslint-disable no-cond-assign */\n  while (elementToCheck = elementToCheck.offsetParent) {\n    // from my observation, document.body always has scrollLeft/scrollTop == 0\n    if (elementToCheck === rootDocument.body) {\n      break;\n    }\n    // If the element is inside an SVG context, the `offsetParent` can be\n    // a <foreignObject> that does not have properties `offsetLeft` and `offsetTop` defined.\n    if (!('offsetLeft' in elementToCheck)) {\n      break;\n    }\n    offsetLeft += elementToCheck.offsetLeft;\n    offsetTop += elementToCheck.offsetTop;\n    lastElem = elementToCheck;\n  }\n\n  // slow - http://jsperf.com/offset-vs-getboundingclientrect/6\n  if (lastElem && lastElem.style.position === 'fixed') {\n    // if(lastElem !== document.body) { //faster but does gives false positive in Firefox\n    offsetLeft += rootWindow.pageXOffset || documentElement.scrollLeft;\n    offsetTop += rootWindow.pageYOffset || documentElement.scrollTop;\n  }\n  return {\n    left: offsetLeft,\n    top: offsetTop\n  };\n}\n\n/**\n * Returns the document's scrollTop property.\n *\n * @param {Window} [rootWindow] The document window owner.\n * @returns {number}\n */\n// eslint-disable-next-line no-restricted-globals\nfunction getWindowScrollTop() {\n  let rootWindow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;\n  return rootWindow.scrollY;\n}\n\n/**\n * Returns the document's scrollLeft property.\n *\n * @param {Window} [rootWindow] The document window owner.\n * @returns {number}\n */\n// eslint-disable-next-line no-restricted-globals\nfunction getWindowScrollLeft() {\n  let rootWindow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;\n  return rootWindow.scrollX;\n}\n\n/**\n * Returns the provided element's scrollTop property.\n *\n * @param {HTMLElement} element An element to get the scroll top position from.\n * @param {Window} [rootWindow] The document window owner.\n * @returns {number}\n */\n// eslint-disable-next-line no-restricted-globals\nfunction getScrollTop(element) {\n  let rootWindow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;\n  if (element === rootWindow) {\n    return getWindowScrollTop(rootWindow);\n  }\n  return element.scrollTop;\n}\n\n/**\n * Returns the provided element's scrollLeft property.\n *\n * @param {HTMLElement} element An element to get the scroll left position from.\n * @param {Window} [rootWindow] The document window owner.\n * @returns {number}\n */\n// eslint-disable-next-line no-restricted-globals\nfunction getScrollLeft(element) {\n  let rootWindow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;\n  if (element === rootWindow) {\n    return getWindowScrollLeft(rootWindow);\n  }\n  return element.scrollLeft;\n}\n\n/**\n * Returns a DOM element responsible for scrolling of the provided element.\n *\n * @param {HTMLElement} element An element to get the scrollable element from.\n * @returns {HTMLElement} Element's scrollable parent.\n */\nfunction getScrollableElement(element) {\n  let rootDocument = element.ownerDocument;\n  let rootWindow = rootDocument ? rootDocument.defaultView : undefined;\n  if (!rootDocument) {\n    rootDocument = element.document ? element.document : element;\n    rootWindow = rootDocument.defaultView;\n  }\n  const props = ['auto', 'scroll'];\n  let el = element.parentNode;\n  while (el && el.style && rootDocument.body !== el) {\n    let {\n      overflow,\n      overflowX,\n      overflowY\n    } = el.style;\n    if ([overflow, overflowX, overflowY].includes('scroll')) {\n      return el;\n    } else {\n      ({\n        overflow,\n        overflowX,\n        overflowY\n      } = rootWindow.getComputedStyle(el));\n      if (props.includes(overflow) || props.includes(overflowX) || props.includes(overflowY)) {\n        return el;\n      }\n    }\n\n    // The '+ 1' after the scrollHeight/scrollWidth is to prevent problems with zoomed out Chrome.\n    if (el.clientHeight <= el.scrollHeight + 1 && (props.includes(overflowY) || props.includes(overflow))) {\n      return el;\n    }\n    if (el.clientWidth <= el.scrollWidth + 1 && (props.includes(overflowX) || props.includes(overflow))) {\n      return el;\n    }\n    el = el.parentNode;\n  }\n  return rootWindow;\n}\n\n/**\n * Get the maximum available `scrollTop` value for the provided element.\n *\n * @param {HTMLElement} element The element to get the maximum scroll top value from.\n * @returns {number} The maximum scroll top value.\n */\nfunction getMaximumScrollTop(element) {\n  return element.scrollHeight - element.clientHeight;\n}\n\n/**\n * Get the maximum available `scrollLeft` value for the provided element.\n *\n * @param {HTMLElement} element The element to get the maximum scroll left value from.\n * @returns {number} The maximum scroll left value.\n */\nfunction getMaximumScrollLeft(element) {\n  return element.scrollWidth - element.clientWidth;\n}\n\n/**\n * Returns a DOM element responsible for trimming the provided element.\n *\n * @param {HTMLElement} base Base element.\n * @returns {HTMLElement} Base element's trimming parent.\n */\nfunction getTrimmingContainer(base) {\n  const rootDocument = base.ownerDocument;\n  const rootWindow = rootDocument.defaultView;\n  let el = base.parentNode;\n  while (el && el.style && rootDocument.body !== el) {\n    if (el.style.overflow !== 'visible' && el.style.overflow !== '') {\n      return el;\n    }\n    const computedStyle = getComputedStyle(el, rootWindow);\n    const allowedProperties = ['scroll', 'hidden', 'auto'];\n    const property = computedStyle.getPropertyValue('overflow');\n    const propertyY = computedStyle.getPropertyValue('overflow-y');\n    const propertyX = computedStyle.getPropertyValue('overflow-x');\n    if (allowedProperties.includes(property) || allowedProperties.includes(propertyY) || allowedProperties.includes(propertyX)) {\n      return el;\n    }\n    el = el.parentNode;\n  }\n  return rootWindow;\n}\n\n/**\n * Returns a style property for the provided element. (Be it an inline or external style).\n *\n * @param {HTMLElement} element An element to get the style from.\n * @param {string} prop Wanted property.\n * @param {Window} [rootWindow] The document window owner.\n * @returns {string|undefined} Element's style property.\n */\n// eslint-disable-next-line no-restricted-globals\nfunction getStyle(element, prop) {\n  let rootWindow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : window;\n  if (!element) {\n    return;\n  } else if (element === rootWindow) {\n    if (prop === 'width') {\n      return `${rootWindow.innerWidth}px`;\n    } else if (prop === 'height') {\n      return `${rootWindow.innerHeight}px`;\n    }\n    return;\n  }\n  const styleProp = element.style[prop];\n  if (styleProp !== '' && styleProp !== undefined) {\n    return styleProp;\n  }\n  const computedStyle = getComputedStyle(element, rootWindow);\n  if (computedStyle[prop] !== '' && computedStyle[prop] !== undefined) {\n    return computedStyle[prop];\n  }\n}\n\n/**\n * Verifies if element fit to provided CSSRule.\n *\n * @param {Element} element Element to verify with selector text.\n * @param {CSSRule} rule Selector text from CSSRule.\n * @returns {boolean}\n */\nfunction matchesCSSRules(element, rule) {\n  const {\n    selectorText\n  } = rule;\n  let result = false;\n  if (rule.type === CSSRule.STYLE_RULE && selectorText) {\n    if (element.msMatchesSelector) {\n      result = element.msMatchesSelector(selectorText);\n    } else if (element.matches) {\n      result = element.matches(selectorText);\n    }\n  }\n  return result;\n}\n\n/**\n * Returns a computed style object for the provided element. (Needed if style is declared in external stylesheet).\n *\n * @param {HTMLElement} element An element to get style from.\n * @param {Window} [rootWindow] The document window owner.\n * @returns {IEElementStyle|CssStyle} Elements computed style object.\n */\n// eslint-disable-next-line no-restricted-globals\nfunction getComputedStyle(element) {\n  let rootWindow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;\n  return element.currentStyle || rootWindow.getComputedStyle(element);\n}\n\n/**\n * Returns the element's outer width.\n *\n * @param {HTMLElement} element An element to get the width from.\n * @returns {number} Element's outer width.\n */\nfunction outerWidth(element) {\n  return element.offsetWidth;\n}\n\n/**\n * Returns the element's outer height.\n *\n * @param {HTMLElement} element An element to get the height from.\n * @returns {number} Element's outer height.\n */\nfunction outerHeight(element) {\n  return element.offsetHeight;\n}\n\n/**\n * Returns the element's inner height.\n *\n * @param {HTMLElement} element An element to get the height from.\n * @returns {number} Element's inner height.\n */\nfunction innerHeight(element) {\n  return element.clientHeight || element.innerHeight;\n}\n\n/**\n * Returns the element's inner width.\n *\n * @param {HTMLElement} element An element to get the width from.\n * @returns {number} Element's inner width.\n */\nfunction innerWidth(element) {\n  return element.clientWidth || element.innerWidth;\n}\n\n/**\n * @param {HTMLElement} element An element to which the event is added.\n * @param {string} event The event name.\n * @param {Function} callback The callback to add.\n */\nfunction addEvent(element, event, callback) {\n  element.addEventListener(event, callback, false);\n}\n\n/**\n * @param {HTMLElement} element An element from which the event is removed.\n * @param {string} event The event name.\n * @param {Function} callback The function reference to remove.\n */\nfunction removeEvent(element, event, callback) {\n  element.removeEventListener(event, callback, false);\n}\n\n/**\n * Returns caret position in text input.\n *\n * @author https://stackoverflow.com/questions/263743/how-to-get-caret-position-in-textarea\n * @param {HTMLElement} el An element to check.\n * @returns {number}\n */\nfunction getCaretPosition(el) {\n  if (el.selectionStart) {\n    return el.selectionStart;\n  }\n  return 0;\n}\n\n/**\n * Returns end of the selection in text input.\n *\n * @param {HTMLElement} el An element to check.\n * @returns {number}\n */\nfunction getSelectionEndPosition(el) {\n  if (el.selectionEnd) {\n    return el.selectionEnd;\n  }\n  return 0;\n}\n\n/**\n * Returns text under selection.\n *\n * @param {Window} [rootWindow] The document window owner.\n * @returns {string}\n */\n// eslint-disable-next-line no-restricted-globals\nfunction getSelectionText() {\n  let rootWindow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;\n  const rootDocument = rootWindow.document;\n  let text = '';\n  if (rootWindow.getSelection) {\n    text = rootWindow.getSelection().toString();\n  } else if (rootDocument.selection && rootDocument.selection.type !== 'Control') {\n    text = rootDocument.selection.createRange().text;\n  }\n  return text;\n}\n\n/**\n * Cross-platform helper to clear text selection.\n *\n * @param {Window} [rootWindow] The document window owner.\n */\n// eslint-disable-next-line no-restricted-globals\nfunction clearTextSelection() {\n  let rootWindow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;\n  // http://stackoverflow.com/questions/3169786/clear-text-selection-with-javascript\n  if (rootWindow.getSelection) {\n    if (rootWindow.getSelection().empty) {\n      // Chrome\n      rootWindow.getSelection().empty();\n    } else if (rootWindow.getSelection().removeAllRanges) {\n      // Firefox\n      rootWindow.getSelection().removeAllRanges();\n    }\n  }\n}\n\n/**\n * Sets caret position in text input.\n *\n * @author http://blog.vishalon.net/index.php/javascript-getting-and-setting-caret-position-in-textarea/\n * @param {Element} element An element to process.\n * @param {number} pos The selection start position.\n * @param {number} endPos The selection end position.\n */\nfunction setCaretPosition(element, pos, endPos) {\n  if (endPos === undefined) {\n    endPos = pos;\n  }\n  if (element.setSelectionRange) {\n    element.focus();\n    try {\n      element.setSelectionRange(pos, endPos);\n    } catch (err) {\n      const elementParent = element.parentNode;\n      const parentDisplayValue = elementParent.style.display;\n      elementParent.style.display = 'block';\n      element.setSelectionRange(pos, endPos);\n      elementParent.style.display = parentDisplayValue;\n    }\n  }\n}\nlet cachedScrollbarWidth;\n\n/**\n * Helper to calculate scrollbar width.\n * Source: https://stackoverflow.com/questions/986937/how-can-i-get-the-browsers-scrollbar-sizes.\n *\n * @private\n * @param {Document} rootDocument The onwer of the document.\n * @returns {number}\n */\n// eslint-disable-next-line no-restricted-globals\nfunction walkontableCalculateScrollbarWidth() {\n  let rootDocument = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n  const inner = rootDocument.createElement('div');\n  inner.style.height = '200px';\n  inner.style.width = '100%';\n  const outer = rootDocument.createElement('div');\n  outer.style.boxSizing = 'content-box';\n  outer.style.height = '150px';\n  outer.style.left = '0px';\n  outer.style.overflow = 'hidden';\n  outer.style.position = 'absolute';\n  outer.style.top = '0px';\n  outer.style.width = '200px';\n  outer.style.visibility = 'hidden';\n  outer.appendChild(inner);\n  (rootDocument.body || rootDocument.documentElement).appendChild(outer);\n  const w1 = inner.offsetWidth;\n  outer.style.overflow = 'scroll';\n  let w2 = inner.offsetWidth;\n  if (w1 === w2) {\n    w2 = outer.clientWidth;\n  }\n  (rootDocument.body || rootDocument.documentElement).removeChild(outer);\n  return w1 - w2;\n}\n\n/**\n * Returns the computed width of the native browser scroll bar.\n *\n * @param {Document} [rootDocument] The owner of the document.\n * @returns {number} Width.\n */\n// eslint-disable-next-line no-restricted-globals\nfunction getScrollbarWidth() {\n  let rootDocument = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n  if (cachedScrollbarWidth === undefined) {\n    cachedScrollbarWidth = walkontableCalculateScrollbarWidth(rootDocument);\n  }\n  return cachedScrollbarWidth;\n}\n\n/**\n * Checks if the provided element has a vertical scrollbar.\n *\n * @param {HTMLElement} element An element to check.\n * @returns {boolean}\n */\nfunction hasVerticalScrollbar(element) {\n  return element.offsetWidth !== element.clientWidth;\n}\n\n/**\n * Checks if the provided element has a vertical scrollbar.\n *\n * @param {HTMLElement} element An element to check.\n * @returns {boolean}\n */\nfunction hasHorizontalScrollbar(element) {\n  return element.offsetHeight !== element.clientHeight;\n}\n\n/**\n * Sets overlay position depending on it's type and used browser.\n *\n * @param {HTMLElement} overlayElem An element to process.\n * @param {number|string} left The left position of the overlay.\n * @param {number|string} top The top position of the overlay.\n */\nfunction setOverlayPosition(overlayElem, left, top) {\n  overlayElem.style.transform = `translate3d(${left},${top},0)`;\n}\n\n/**\n * @param {HTMLElement} element An element to process.\n * @returns {number|Array}\n */\nfunction getCssTransform(element) {\n  let transform;\n  if (element.style.transform && (transform = element.style.transform) !== '') {\n    return ['transform', transform];\n  }\n  return -1;\n}\n\n/**\n * @param {HTMLElement} element An element to process.\n */\nfunction resetCssTransform(element) {\n  if (element.style.transform && element.style.transform !== '') {\n    element.style.transform = '';\n  }\n}\n\n/**\n * Determines if the given DOM element is an input field.\n * Notice: By 'input' we mean input, textarea and select nodes.\n *\n * @param {HTMLElement} element - DOM element.\n * @returns {boolean}\n */\nfunction isInput(element) {\n  const inputs = ['INPUT', 'SELECT', 'TEXTAREA'];\n  return element && (inputs.indexOf(element.nodeName) > -1 || element.contentEditable === 'true');\n}\n\n/**\n * Determines if the given DOM element is an input field placed OUTSIDE of HOT.\n * Notice: By 'input' we mean input, textarea and select nodes which have defined 'data-hot-input' attribute.\n *\n * @param {HTMLElement} element - DOM element.\n * @returns {boolean}\n */\nfunction isOutsideInput(element) {\n  return isInput(element) && element.hasAttribute('data-hot-input') === false;\n}\n\n/**\n * Check if the given DOM element can be focused (by using \"select\" method).\n *\n * @param {HTMLElement} element - DOM element.\n */\nfunction selectElementIfAllowed(element) {\n  const activeElement = element.ownerDocument.activeElement;\n  if (!isOutsideInput(activeElement)) {\n    element.select();\n  }\n}\n\n/**\n * Check if the provided element is detached from DOM.\n *\n * @param {HTMLElement} element HTML element to be checked.\n * @returns {boolean} `true` if the element is detached, `false` otherwise.\n */\nfunction isDetached(element) {\n  return !element.parentNode;\n}\n\n/**\n * Set up an observer to recognize when the provided element first becomes visible and trigger a callback when it\n * happens.\n *\n * @param {HTMLElement} elementToBeObserved Element to be observed.\n * @param {Function} callback The callback function.\n */\nfunction observeVisibilityChangeOnce(elementToBeObserved, callback) {\n  const visibilityObserver = new IntersectionObserver((entries, observer) => {\n    entries.forEach(entry => {\n      if (entry.isIntersecting && elementToBeObserved.offsetParent !== null) {\n        callback();\n        observer.unobserve(elementToBeObserved);\n      }\n    });\n  }, {\n    root: elementToBeObserved.ownerDocument.body\n  });\n  visibilityObserver.observe(elementToBeObserved);\n}\n\n/**\n * Add a `contenteditable` attribute, select the contents and optionally add the `invisibleSelection`\n * class to the provided element.\n *\n * @param {HTMLElement} element Element to be processed.\n * @param {boolean} [invisibleSelection=true] `true` if the class should be added to the element.\n * @param {boolean} [ariaHidden=true] `true` if the `aria-hidden` attribute should be added to the processed element.\n */\nfunction makeElementContentEditableAndSelectItsContent(element) {\n  let invisibleSelection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  let ariaHidden = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n  const ownerDocument = element.ownerDocument;\n  const range = ownerDocument.createRange();\n  const sel = ownerDocument.defaultView.getSelection();\n  setAttribute(element, 'contenteditable', true);\n  if (ariaHidden) {\n    setAttribute(element, ...Object(_a11y_mjs__WEBPACK_IMPORTED_MODULE_3__[\"A11Y_HIDDEN\"])());\n  }\n  if (invisibleSelection) {\n    addClass(element, 'invisibleSelection');\n  }\n  range.selectNodeContents(element);\n  sel.removeAllRanges();\n  sel.addRange(range);\n}\n\n/**\n * Remove the `contenteditable` attribute, deselect the contents and optionally remove the `invisibleSelection`\n * class from the provided element.\n *\n * @param {HTMLElement} selectedElement The element to be deselected.\n * @param {boolean} [removeInvisibleSelectionClass=true] `true` if the class should be removed from the element.\n */\nfunction removeContentEditableFromElementAndDeselect(selectedElement) {\n  let removeInvisibleSelectionClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  const sel = selectedElement.ownerDocument.defaultView.getSelection();\n  if (selectedElement.hasAttribute('aria-hidden')) {\n    selectedElement.removeAttribute('aria-hidden');\n  }\n  sel.removeAllRanges();\n  if (removeInvisibleSelectionClass) {\n    removeClass(selectedElement, 'invisibleSelection');\n  }\n  selectedElement.removeAttribute('contenteditable');\n}\n\n/**\n * Run the provided callback while the provided element is selected and modified to have the `contenteditable`\n * attribute added. Optionally, the selection can be configured to be invisible.\n *\n * @param {HTMLElement} element Element to be selected.\n * @param {Function} callback Callback to be called.\n * @param {boolean} [invisibleSelection=true] `true` if the selection should be invisible.\n */\nfunction runWithSelectedContendEditableElement(element, callback) {\n  let invisibleSelection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n  makeElementContentEditableAndSelectItsContent(element, invisibleSelection);\n  callback();\n  removeContentEditableFromElementAndDeselect(element, invisibleSelection);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/dom/element.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/dom/event.mjs":
/*!*********************************************************!*\
  !*** ./node_modules/handsontable/helpers/dom/event.mjs ***!
  \*********************************************************/
/*! exports provided: stopImmediatePropagation, isImmediatePropagationStopped, isRightClick, isLeftClick, isTouchEvent, offsetRelativeTo */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stopImmediatePropagation\", function() { return stopImmediatePropagation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isImmediatePropagationStopped\", function() { return isImmediatePropagationStopped; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isRightClick\", function() { return isRightClick; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLeftClick\", function() { return isLeftClick; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isTouchEvent\", function() { return isTouchEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"offsetRelativeTo\", function() { return offsetRelativeTo; });\n/**\n * Prevent other listeners of the same event from being called.\n *\n * @param {Event} event The mouse event object.\n */\nfunction stopImmediatePropagation(event) {\n  event.isImmediatePropagationEnabled = false;\n  event.cancelBubble = true;\n}\n\n/**\n * Check if event was stopped by `stopImmediatePropagation`.\n *\n * @param {Event} event The mouse event object.\n * @returns {boolean}\n */\nfunction isImmediatePropagationStopped(event) {\n  return event.isImmediatePropagationEnabled === false;\n}\n\n/**\n * Check if provided event was triggered by clicking the right mouse button.\n *\n * @param {Event} event The mouse event object.\n * @returns {boolean}\n */\nfunction isRightClick(event) {\n  return event.button === 2;\n}\n\n/**\n * Check if provided event was triggered by clicking the left mouse button.\n *\n * @param {Event} event The mouse event object.\n * @returns {boolean}\n */\nfunction isLeftClick(event) {\n  return event.button === 0;\n}\n\n/**\n * Check if the provided event is a touch event.\n *\n * @param {Event} event The event object.\n * @returns {boolean}\n */\nfunction isTouchEvent(event) {\n  return event instanceof TouchEvent;\n}\n\n/**\n * Calculates the event offset until reaching the element defined by `relativeElement` argument.\n *\n * @param {Event} event The mouse event object.\n * @param {HTMLElement|undefined} [untilElement] The element to which the offset will be calculated.\n * @returns {{ x: number, y: number }}\n */\nfunction offsetRelativeTo(event, untilElement) {\n  const offset = {\n    x: event.offsetX,\n    y: event.offsetY\n  };\n  let element = event.target;\n  if (!(untilElement instanceof HTMLElement) || element !== untilElement && element.contains(untilElement)) {\n    return offset;\n  }\n  while (element !== untilElement) {\n    offset.x += element.offsetLeft;\n    offset.y += element.offsetTop;\n    element = element.offsetParent;\n  }\n  return offset;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/dom/event.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/feature.mjs":
/*!*******************************************************!*\
  !*** ./node_modules/handsontable/helpers/feature.mjs ***!
  \*******************************************************/
/*! exports provided: requestAnimationFrame, cancelAnimationFrame, isTouchSupported, isCSR, getComparisonFunction */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"requestAnimationFrame\", function() { return requestAnimationFrame; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cancelAnimationFrame\", function() { return cancelAnimationFrame; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isTouchSupported\", function() { return isTouchSupported; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isCSR\", function() { return isCSR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getComparisonFunction\", function() { return getComparisonFunction; });\n/* eslint-disable no-restricted-globals */\n/**\n * Polyfill for requestAnimationFrame.\n *\n * @param {Function} callback The function to call when it's time.\n * @returns {number}\n */\nfunction requestAnimationFrame(callback) {\n  return window.requestAnimationFrame(callback);\n}\n\n/**\n * Polyfill for cancelAnimationFrame.\n *\n * @param {number} id The request Id, generated by `requestAnimationFrame`.\n */\nfunction cancelAnimationFrame(id) {\n  window.cancelAnimationFrame(id);\n}\n\n/**\n * @returns {boolean}\n */\nfunction isTouchSupported() {\n  return 'ontouchstart' in window;\n}\n\n/**\n * Checks if the environment that the code runs in is a browser.\n *\n * @returns {boolean}\n */\nfunction isCSR() {\n  return typeof window !== 'undefined';\n}\nlet comparisonFunction;\n\n/**\n * Get string comparison function for sorting purposes. It supports multilingual string comparison base on Internationalization API.\n *\n * @param {string} [language] The language code used for phrases sorting.\n * @param {object} [options] Additional options for sort comparator.\n * @returns {*}\n */\nfunction getComparisonFunction(language) {\n  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  if (comparisonFunction) {\n    return comparisonFunction;\n  }\n  if (typeof Intl === 'object') {\n    comparisonFunction = new Intl.Collator(language, options).compare;\n  } else if (typeof String.prototype.localeCompare === 'function') {\n    comparisonFunction = (a, b) => `${a}`.localeCompare(b);\n  } else {\n    comparisonFunction = (a, b) => {\n      if (a === b) {\n        return 0;\n      }\n      return a > b ? -1 : 1;\n    };\n  }\n  return comparisonFunction;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/feature.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/function.mjs":
/*!********************************************************!*\
  !*** ./node_modules/handsontable/helpers/function.mjs ***!
  \********************************************************/
/*! exports provided: isFunction, throttle, throttleAfterHits, debounce, pipe, partial, curry, curryRight, fastCall */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFunction\", function() { return isFunction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throttle\", function() { return throttle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throttleAfterHits\", function() { return throttleAfterHits; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return debounce; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pipe\", function() { return pipe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"partial\", function() { return partial; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"curry\", function() { return curry; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"curryRight\", function() { return curryRight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fastCall\", function() { return fastCall; });\n/* harmony import */ var _array_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _mixed_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n\n\n/**\n * Checks if given variable is function.\n *\n * @param {*} func Variable to check.\n * @returns {boolean}\n */\nfunction isFunction(func) {\n  return typeof func === 'function';\n}\n\n/**\n * Creates throttle function that enforces a maximum number of times a function (`func`) can be called over time (`wait`).\n *\n * @param {Function} func Function to invoke.\n * @param {number} wait Delay in miliseconds.\n * @returns {Function}\n */\nfunction throttle(func) {\n  let wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 200;\n  let lastCalled = 0;\n  const result = {\n    lastCallThrottled: true\n  };\n  let lastTimer = null;\n\n  /**\n   * @param {...*} args The list of arguments passed during the function invocation.\n   * @returns {object}\n   */\n  function _throttle() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    const stamp = Date.now();\n    let needCall = false;\n    result.lastCallThrottled = true;\n    if (!lastCalled) {\n      lastCalled = stamp;\n      needCall = true;\n    }\n    const remaining = wait - (stamp - lastCalled);\n    if (needCall) {\n      result.lastCallThrottled = false;\n      func.apply(this, args);\n    } else {\n      if (lastTimer) {\n        clearTimeout(lastTimer);\n      }\n      lastTimer = setTimeout(() => {\n        result.lastCallThrottled = false;\n        func.apply(this, args);\n        lastCalled = 0;\n        lastTimer = undefined;\n      }, remaining);\n    }\n    return result;\n  }\n  return _throttle;\n}\n\n/**\n * Creates throttle function that enforces a maximum number of times a function (`func`) can be called over\n * time (`wait`) after specified hits.\n *\n * @param {Function} func Function to invoke.\n * @param {number} wait Delay in miliseconds.\n * @param {number} hits Number of hits after throttling will be applied.\n * @returns {Function}\n */\nfunction throttleAfterHits(func) {\n  let wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 200;\n  let hits = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;\n  const funcThrottle = throttle(func, wait);\n  let remainHits = hits;\n\n  /**\n   *\n   */\n  function _clearHits() {\n    remainHits = hits;\n  }\n  /**\n   * @param {*} args The list of arguments passed during the function invocation.\n   * @returns {*}\n   */\n  function _throttleAfterHits() {\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n    if (remainHits) {\n      remainHits -= 1;\n      return func.apply(this, args);\n    }\n    return funcThrottle.apply(this, args);\n  }\n  _throttleAfterHits.clearHits = _clearHits;\n  return _throttleAfterHits;\n}\n\n/**\n * Creates debounce function that enforces a function (`func`) not be called again until a certain amount of time (`wait`)\n * has passed without it being called.\n *\n * @param {Function} func Function to invoke.\n * @param {number} wait Delay in milliseconds.\n * @returns {Function}\n */\nfunction debounce(func) {\n  let wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 200;\n  let lastTimer = null;\n  let result;\n\n  /**\n   * @param {*} args The list of arguments passed during the function invocation.\n   * @returns {*}\n   */\n  function _debounce() {\n    for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      args[_key3] = arguments[_key3];\n    }\n    if (lastTimer) {\n      clearTimeout(lastTimer);\n    }\n    lastTimer = setTimeout(() => {\n      result = func.apply(this, args);\n    }, wait);\n    return result;\n  }\n  return _debounce;\n}\n\n/**\n * Creates the function that returns the result of calling the given functions. Result of the first function is passed to\n * the second as an argument and so on. Only first function in the chain can handle multiple arguments.\n *\n * @param {Function} functions Functions to compose.\n * @returns {Function}\n */\nfunction pipe() {\n  for (var _len4 = arguments.length, functions = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n    functions[_key4] = arguments[_key4];\n  }\n  const [firstFunc, ...restFunc] = functions;\n  return function _pipe() {\n    for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n      args[_key5] = arguments[_key5];\n    }\n    return Object(_array_mjs__WEBPACK_IMPORTED_MODULE_0__[\"arrayReduce\"])(restFunc, (acc, fn) => fn(acc), firstFunc.apply(this, args));\n  };\n}\n\n/**\n * Creates the function that returns the function with cached arguments.\n *\n * @param {Function} func Function to partialization.\n * @param {Array} params Function arguments to cache.\n * @returns {Function}\n */\nfunction partial(func) {\n  for (var _len6 = arguments.length, params = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n    params[_key6 - 1] = arguments[_key6];\n  }\n  return function _partial() {\n    for (var _len7 = arguments.length, restParams = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n      restParams[_key7] = arguments[_key7];\n    }\n    return func.apply(this, params.concat(restParams));\n  };\n}\n\n/**\n * Creates the functions that returns the function with cached arguments. If count if passed arguments will be matched\n * to the arguments defined in `func` then function will be invoked.\n * Arguments are added to the stack in direction from the left to the right.\n *\n * @example\n * ```\n * var replace = curry(function(find, replace, string) {\n *   return string.replace(find, replace);\n * });\n *\n * // returns function with bounded first argument\n * var replace = replace('foo')\n *\n * // returns replaced string - all arguments was passed so function was invoked\n * replace('bar', 'Some test with foo...');\n *\n * ```\n *\n * @param {Function} func Function to currying.\n * @returns {Function}\n */\nfunction curry(func) {\n  const argsLength = func.length;\n\n  /**\n   * @param {*} argsSoFar The list of arguments passed during the function invocation.\n   * @returns {Function}\n   */\n  function given(argsSoFar) {\n    return function _curry() {\n      for (var _len8 = arguments.length, params = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n        params[_key8] = arguments[_key8];\n      }\n      const passedArgsSoFar = argsSoFar.concat(params);\n      let result;\n      if (passedArgsSoFar.length >= argsLength) {\n        result = func.apply(this, passedArgsSoFar);\n      } else {\n        result = given(passedArgsSoFar);\n      }\n      return result;\n    };\n  }\n  return given([]);\n}\n\n/**\n * Creates the functions that returns the function with cached arguments. If count if passed arguments will be matched\n * to the arguments defined in `func` then function will be invoked.\n * Arguments are added to the stack in direction from the right to the left.\n *\n * @example\n * ```\n * var replace = curry(function(find, replace, string) {\n *   return string.replace(find, replace);\n * });\n *\n * // returns function with bounded first argument\n * var replace = replace('Some test with foo...')\n *\n * // returns replaced string - all arguments was passed so function was invoked\n * replace('bar', 'foo');\n *\n * ```\n *\n * @param {Function} func Function to currying.\n * @returns {Function}\n */\nfunction curryRight(func) {\n  const argsLength = func.length;\n\n  /**\n   * @param {*} argsSoFar The list of arguments passed during the function invocation.\n   * @returns {Function}\n   */\n  function given(argsSoFar) {\n    return function _curry() {\n      for (var _len9 = arguments.length, params = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n        params[_key9] = arguments[_key9];\n      }\n      const passedArgsSoFar = argsSoFar.concat(params.reverse());\n      let result;\n      if (passedArgsSoFar.length >= argsLength) {\n        result = func.apply(this, passedArgsSoFar);\n      } else {\n        result = given(passedArgsSoFar);\n      }\n      return result;\n    };\n  }\n  return given([]);\n}\n\n/**\n * Calls a function in the quickest way available.\n *\n * In contrast to the `apply()` method that passes arguments as an array,\n * the `call()` method passes arguments directly, to avoid garbage collection costs.\n *\n * @param {Function} func The function to call.\n * @param {*} context The value to use as `this` when calling the `func` function.\n * @param {*} [arg1] An argument passed to the `func` function.\n * @param {*} [arg2] An argument passed to `func` function.\n * @param {*} [arg3] An argument passed to `func` function.\n * @param {*} [arg4] An argument passed to `func` function.\n * @param {*} [arg5] An argument passed to `func` function.\n * @param {*} [arg6] An argument passed to `func` function.\n * @returns {*}\n */\nfunction fastCall(func, context, arg1, arg2, arg3, arg4, arg5, arg6) {\n  if (Object(_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(arg6)) {\n    return func.call(context, arg1, arg2, arg3, arg4, arg5, arg6);\n  } else if (Object(_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(arg5)) {\n    return func.call(context, arg1, arg2, arg3, arg4, arg5);\n  } else if (Object(_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(arg4)) {\n    return func.call(context, arg1, arg2, arg3, arg4);\n  } else if (Object(_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(arg3)) {\n    return func.call(context, arg1, arg2, arg3);\n  } else if (Object(_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(arg2)) {\n    return func.call(context, arg1, arg2);\n  } else if (Object(_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(arg1)) {\n    return func.call(context, arg1);\n  }\n  return func.call(context);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/function.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/mixed.mjs":
/*!*****************************************************!*\
  !*** ./node_modules/handsontable/helpers/mixed.mjs ***!
  \*****************************************************/
/*! exports provided: stringify, isDefined, isUndefined, isEmpty, isRegExp, _injectProductInfo */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stringify\", function() { return stringify; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDefined\", function() { return isDefined; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isUndefined\", function() { return isUndefined; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isEmpty\", function() { return isEmpty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isRegExp\", function() { return isRegExp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_injectProductInfo\", function() { return _injectProductInfo; });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var _templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n\n\n/**\n * Converts any value to string.\n *\n * @param {*} value The value to stringify.\n * @returns {string}\n */\nfunction stringify(value) {\n  let result;\n  switch (typeof value) {\n    case 'string':\n    case 'number':\n      result = `${value}`;\n      break;\n    case 'object':\n      result = value === null ? '' : value.toString();\n      break;\n    case 'undefined':\n      result = '';\n      break;\n    default:\n      result = value.toString();\n      break;\n  }\n  return result;\n}\n\n/**\n * Checks if given variable is defined.\n *\n * @param {*} variable Variable to check.\n * @returns {boolean}\n */\nfunction isDefined(variable) {\n  return typeof variable !== 'undefined';\n}\n\n/**\n * Checks if given variable is undefined.\n *\n * @param {*} variable Variable to check.\n * @returns {boolean}\n */\nfunction isUndefined(variable) {\n  return typeof variable === 'undefined';\n}\n\n/**\n * Check if given variable is null, empty string or undefined.\n *\n * @param {*} variable Variable to check.\n * @returns {boolean}\n */\nfunction isEmpty(variable) {\n  return variable === null || variable === '' || isUndefined(variable);\n}\n\n/**\n * Check if given variable is a regular expression.\n *\n * @param {*} variable Variable to check.\n * @returns {boolean}\n */\nfunction isRegExp(variable) {\n  return Object.prototype.toString.call(variable) === '[object RegExp]';\n}\n\n/* eslint-disable */\nconst _m = '\\x6C\\x65\\x6E\\x67\\x74\\x68';\nconst _hd = v => parseInt(v, 16);\nconst _pi = v => parseInt(v, 10);\nconst _ss = (v, s, l) => v['\\x73\\x75\\x62\\x73\\x74\\x72'](s, l);\nconst _cp = v => v['\\x63\\x6F\\x64\\x65\\x50\\x6F\\x69\\x6E\\x74\\x41\\x74'](0) - 65;\nconst _norm = v => `${v}`.replace(/\\-/g, '');\nconst _extractTime = v => _hd(_ss(_norm(v), _hd('12'), _cp('\\x46'))) / (_hd(_ss(_norm(v), _cp('\\x42'), ~~![][_m])) || 9);\nconst _ignored = () => typeof location !== 'undefined' && /^([a-z0-9\\-]+\\.)?\\x68\\x61\\x6E\\x64\\x73\\x6F\\x6E\\x74\\x61\\x62\\x6C\\x65\\x2E\\x63\\x6F\\x6D$/i.test(location.host);\nlet _notified = false;\nconst consoleMessages = {\n  invalid: () => _templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__[\"toSingleLine\"]`\n    The license key for Handsontable is invalid.\\x20\n    If you need any help, contact us at support@handsontable.com.`,\n  expired: _ref => {\n    let {\n      keyValidityDate,\n      hotVersion\n    } = _ref;\n    return _templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__[\"toSingleLine\"]`\n    The license key for Handsontable expired on ${keyValidityDate}, and is not valid for the installed\\x20\n    version ${hotVersion}. Renew your license key at handsontable.com or downgrade to a version released prior\\x20\n    to ${keyValidityDate}. If you need any help, contact us at sales@handsontable.com.`;\n  },\n  missing: () => _templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__[\"toSingleLine\"]`\n    The license key for Handsontable is missing. Use your purchased key to activate the product.\\x20\n    Alternatively, you can activate Handsontable to use for non-commercial purposes by\\x20\n    passing the key: 'non-commercial-and-evaluation'. If you need any help, contact\\x20\n    us at support@handsontable.com.`,\n  non_commercial: () => ''\n};\nconst domMessages = {\n  invalid: () => _templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__[\"toSingleLine\"]`\n    The license key for Handsontable is invalid.\\x20\n    <a href=\"https://handsontable.com/docs/tutorial-license-key.html\" target=\"_blank\">Read more</a> on how to\\x20\n    install it properly or contact us at <a href=\"mailto:support@handsontable.com\">support@handsontable.com</a>.`,\n  expired: _ref2 => {\n    let {\n      keyValidityDate,\n      hotVersion\n    } = _ref2;\n    return _templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__[\"toSingleLine\"]`\n    The license key for Handsontable expired on ${keyValidityDate}, and is not valid for the installed\\x20\n    version ${hotVersion}. <a href=\"https://handsontable.com/pricing\" target=\"_blank\">Renew</a> your\\x20\n    license key or downgrade to a version released prior to ${keyValidityDate}. If you need any\\x20\n    help, contact us at <a href=\"mailto:sales@handsontable.com\">sales@handsontable.com</a>.`;\n  },\n  missing: () => _templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__[\"toSingleLine\"]`\n    The license key for Handsontable is missing. Use your purchased key to activate the product.\\x20\n    Alternatively, you can activate Handsontable to use for non-commercial purposes by\\x20\n    passing the key: 'non-commercial-and-evaluation'.\\x20\n    <a href=\"https://handsontable.com/docs/tutorial-license-key.html\" target=\"_blank\">Read more</a> about it in\\x20\n    the documentation or contact us at <a href=\"mailto:support@handsontable.com\">support@handsontable.com</a>.`,\n  non_commercial: () => ''\n};\nfunction _injectProductInfo(key, element) {\n  const hasValidType = !isEmpty(key);\n  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';\n  const hotVersion = \"14.5.0\";\n  let keyValidityDate;\n  let consoleMessageState = 'invalid';\n  let domMessageState = 'invalid';\n  key = _norm(key || '');\n  const schemaValidity = _checkKeySchema(key);\n  if (hasValidType || isNonCommercial || schemaValidity) {\n    if (schemaValidity) {\n      const releaseDate = moment__WEBPACK_IMPORTED_MODULE_0__(\"30/07/2024\", 'DD/MM/YYYY');\n      const releaseDays = Math.floor(releaseDate.toDate().getTime() / 8.64e7);\n      const keyValidityDays = _extractTime(key);\n      keyValidityDate = moment__WEBPACK_IMPORTED_MODULE_0__((keyValidityDays + 1) * 8.64e7, 'x').format('MMMM DD, YYYY');\n      if (releaseDays > keyValidityDays) {\n        consoleMessageState = 'expired';\n        domMessageState = 'expired';\n      } else {\n        consoleMessageState = 'valid';\n        domMessageState = 'valid';\n      }\n    } else if (isNonCommercial) {\n      consoleMessageState = 'non_commercial';\n      domMessageState = 'valid';\n    } else {\n      consoleMessageState = 'invalid';\n      domMessageState = 'invalid';\n    }\n  } else {\n    consoleMessageState = 'missing';\n    domMessageState = 'missing';\n  }\n  if (_ignored()) {\n    consoleMessageState = 'valid';\n    domMessageState = 'valid';\n  }\n  if (!_notified && consoleMessageState !== 'valid') {\n    const message = consoleMessages[consoleMessageState]({\n      keyValidityDate,\n      hotVersion\n    });\n    if (message) {\n      console[consoleMessageState === 'non_commercial' ? 'info' : 'warn'](consoleMessages[consoleMessageState]({\n        keyValidityDate,\n        hotVersion\n      }));\n    }\n    _notified = true;\n  }\n  if (domMessageState !== 'valid' && element.parentNode) {\n    const message = domMessages[domMessageState]({\n      keyValidityDate,\n      hotVersion\n    });\n    if (message) {\n      const messageNode = document.createElement('div');\n      messageNode.className = 'hot-display-license-info';\n      messageNode.innerHTML = domMessages[domMessageState]({\n        keyValidityDate,\n        hotVersion\n      });\n      element.parentNode.insertBefore(messageNode, element.nextSibling);\n    }\n  }\n}\nfunction _checkKeySchema(v) {\n  let z = [][_m];\n  let p = z;\n  if (v[_m] !== _cp('\\x5A')) {\n    return false;\n  }\n  for (let c = '', i = '\\x42\\x3C\\x48\\x34\\x50\\x2B'.split(''), j = _cp(i.shift()); j; j = _cp(i.shift() || 'A')) {\n    --j < ''[_m] ? p = p | (_pi(`${_pi(_hd(c) + (_hd(_ss(v, Math.abs(j), 2)) + []).padStart(2, '0'))}`) % 97 || 2) >> 1 : c = _ss(v, j, !j ? 6 : i[_m] === 1 ? 9 : 8);\n  }\n  return p === z;\n}\n/* eslint-enable */\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/mixed.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/moves.mjs":
/*!*****************************************************!*\
  !*** ./node_modules/handsontable/helpers/moves.mjs ***!
  \*****************************************************/
/*! exports provided: getMoves */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMoves\", function() { return getMoves; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n\n/**\n * Gets first position where to move element (respecting the fact that some element will be sooner or later\n * taken out of the dataset in order to move them).\n *\n * @param {Array<number>} movedIndexes Sequence of moved indexes for certain axis.\n * @param {number} finalIndex Final place where to move rows.\n * @param {number} numberOfIndexes Number of indexes in a dataset.\n * @returns {number} Index informing where to move the first element.\n */\nfunction getMoveLine(movedIndexes, finalIndex, numberOfIndexes) {\n  const notMovedElements = Array.from(Array(numberOfIndexes).keys()).filter(index => movedIndexes.includes(index) === false);\n  if (finalIndex === 0) {\n    var _notMovedElements$fin;\n    return (_notMovedElements$fin = notMovedElements[finalIndex]) !== null && _notMovedElements$fin !== void 0 ? _notMovedElements$fin : 0; // Moving before the first dataset's element.\n  }\n  return notMovedElements[finalIndex - 1] + 1; // Moving before another element.\n}\n\n/**\n * Gets initially calculated move positions.\n *\n * @param {Array<number>} movedIndexes Sequence of moved indexes for certain axis.\n * @param {number} moveLine Final place where to move rows.\n * @returns {Array<{from: number, to: number}>} Initially calculated move positions.\n */\nfunction getInitiallyCalculatedMoves(movedIndexes, moveLine) {\n  const moves = [];\n  movedIndexes.forEach(movedIndex => {\n    const move = {\n      from: movedIndex,\n      to: moveLine\n    };\n    moves.forEach(previouslyMovedIndex => {\n      const isMovingFromEndToStart = previouslyMovedIndex.from > previouslyMovedIndex.to;\n      const isMovingElementBefore = previouslyMovedIndex.to <= move.from;\n      const isMovingAfterElement = previouslyMovedIndex.from > move.from;\n      if (isMovingAfterElement && isMovingElementBefore && isMovingFromEndToStart) {\n        move.from += 1;\n      }\n    });\n\n    // Moved element from right to left (or bottom to top).\n    if (move.from >= moveLine) {\n      moveLine += 1;\n    }\n    moves.push(move);\n  });\n  return moves;\n}\n\n/**\n * Gets finally calculated move positions (after adjusting).\n *\n * @param {Array<{from: number, to: number}>} moves Initially calculated move positions.\n * @returns {Array<{from: number, to: number}>} Finally calculated move positions (after adjusting).\n */\nfunction adjustedCalculatedMoves(moves) {\n  moves.forEach((move, index) => {\n    const nextMoved = moves.slice(index + 1);\n    nextMoved.forEach(nextMovedIndex => {\n      const isMovingFromStartToEnd = nextMovedIndex.from < nextMovedIndex.to;\n      if (nextMovedIndex.from > move.from && isMovingFromStartToEnd) {\n        nextMovedIndex.from -= 1;\n      }\n    });\n  });\n  return moves;\n}\n\n/**\n * Get list of move positions.\n *\n * @param {Array<number>} movedIndexes Sequence of moved indexes for certain axis.\n * @param {number} finalIndex Final place where to move rows.\n * @param {number} numberOfIndexes Number of indexes in a dataset.\n * @returns {Array<{from: number, to: number}>}\n */\nfunction getMoves(movedIndexes, finalIndex, numberOfIndexes) {\n  const moves = getInitiallyCalculatedMoves(movedIndexes, getMoveLine(movedIndexes, finalIndex, numberOfIndexes));\n  return adjustedCalculatedMoves(moves);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/moves.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/number.mjs":
/*!******************************************************!*\
  !*** ./node_modules/handsontable/helpers/number.mjs ***!
  \******************************************************/
/*! exports provided: isNumeric, isNumericLike, rangeEach, rangeEachReverse, valueAccordingPercent, clamp */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNumeric\", function() { return isNumeric; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNumericLike\", function() { return isNumericLike; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rangeEach\", function() { return rangeEach; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rangeEachReverse\", function() { return rangeEachReverse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"valueAccordingPercent\", function() { return valueAccordingPercent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"clamp\", function() { return clamp; });\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n\n\n\n\n\n\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * Checks if the passed value is numeric one. For example these values (passed as string or number)\n * are considered as numeric values:\n *  - 0.001\n *  - .001\n *  - 10000\n *  - 1e+26\n *  - 22e-26\n *  - .45e+26\n *  - 0xabcdef (hex)\n *  - 0x1 (hex)\n *\n * these values are not considered as numeric:\n *  - - 1000\n *  - 100 000\n *\n * @param {*} value The value to check.\n * @param {string[]} additionalDelimiters An additional delimiters to be used while checking the numeric value.\n * @returns {boolean}\n */\nfunction isNumeric(value) {\n  let additionalDelimiters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  const type = typeof value;\n  if (type === 'number') {\n    return !isNaN(value) && isFinite(value);\n  } else if (type === 'string') {\n    if (value.length === 0) {\n      return false;\n    } else if (value.length === 1) {\n      return /\\d/.test(value);\n    }\n    const delimiter = Array.from(new Set(['.', ...additionalDelimiters])).map(d => `\\\\${d}`).join('|');\n    return new RegExp(`^[+-]?(((${delimiter})?\\\\d+((${delimiter})\\\\d+)?(e[+-]?\\\\d+)?)|(0x[a-f\\\\d]+))$`, 'i').test(value.trim());\n  } else if (type === 'object') {\n    return !!value && typeof value.valueOf() === 'number' && !(value instanceof Date);\n  }\n  return false;\n}\n/* eslint-enable jsdoc/require-description-complete-sentence */\n\n/**\n * Checks if the passed value is numeric-like value. The helper returns `true` for the same\n * values as for the `isNumeric` function plus `true` for numbers delimited by comma.\n *\n * @param {*} value The value to check.\n * @returns {boolean}\n */\nfunction isNumericLike(value) {\n  return isNumeric(value, [',']);\n}\n\n/**\n * A specialized version of `.forEach` defined by ranges.\n *\n * @param {number} rangeFrom The number from start iterate.\n * @param {number|Function} rangeTo The number where finish iterate or function as a iteratee.\n * @param {Function} [iteratee] The function invoked per iteration.\n */\nfunction rangeEach(rangeFrom, rangeTo, iteratee) {\n  let index = -1;\n  if (typeof rangeTo === 'function') {\n    iteratee = rangeTo;\n    rangeTo = rangeFrom;\n  } else {\n    index = rangeFrom - 1;\n  }\n\n  /* eslint-disable-next-line no-plusplus */\n  while (++index <= rangeTo) {\n    if (iteratee(index) === false) {\n      break;\n    }\n  }\n}\n\n/**\n * A specialized version of `.forEach` defined by ranges iterable in reverse order.\n *\n * @param {number} rangeFrom The number from start iterate.\n * @param {number|Function} rangeTo The number where finish iterate or function as a iteratee.\n * @param {Function} [iteratee] The function invoked per iteration.\n */\nfunction rangeEachReverse(rangeFrom, rangeTo, iteratee) {\n  let index = rangeFrom + 1;\n  if (typeof rangeTo === 'function') {\n    iteratee = rangeTo;\n    rangeTo = 0;\n  }\n  /* eslint-disable-next-line no-plusplus */\n  while (--index >= rangeTo) {\n    if (iteratee(index) === false) {\n      break;\n    }\n  }\n}\n\n/**\n * Calculate value from percent.\n *\n * @param {number} value Base value from percent will be calculated.\n * @param {string|number} percent Can be number or string (eq. `'33%'`).\n * @returns {number}\n */\nfunction valueAccordingPercent(value, percent) {\n  percent = parseInt(percent.toString().replace('%', ''), 10);\n  percent = isNaN(percent) ? 0 : percent;\n  return parseInt(value * percent / 100, 10);\n}\n\n/**\n * Clamps the value between min and max.\n *\n * @param {number} value The base number value.\n * @param {number} minValue The max number value.\n * @param {number} maxValue The min number value.\n * @returns {number}\n */\nfunction clamp(value, minValue, maxValue) {\n  if (Math.min(value, minValue) === value) {\n    return minValue;\n  } else if (Math.max(value, maxValue) === value) {\n    return maxValue;\n  }\n  return value;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/number.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/object.mjs":
/*!******************************************************!*\
  !*** ./node_modules/handsontable/helpers/object.mjs ***!
  \******************************************************/
/*! exports provided: duckSchema, inherit, extend, deepExtend, deepClone, clone, mixin, isObjectEqual, isObject, defineGetter, objectEach, getProperty, setProperty, deepObjectSize, createObjectPropListener, hasOwnProperty */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"duckSchema\", function() { return duckSchema; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"inherit\", function() { return inherit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extend\", function() { return extend; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deepExtend\", function() { return deepExtend; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deepClone\", function() { return deepClone; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"clone\", function() { return clone; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mixin\", function() { return mixin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObjectEqual\", function() { return isObjectEqual; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObject\", function() { return isObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineGetter\", function() { return defineGetter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"objectEach\", function() { return objectEach; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getProperty\", function() { return getProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setProperty\", function() { return setProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deepObjectSize\", function() { return deepObjectSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createObjectPropListener\", function() { return createObjectPropListener; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasOwnProperty\", function() { return hasOwnProperty; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var _array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n\n\n\n/**\n * Generate schema for passed object.\n *\n * @param {Array|object} object An object to analyze.\n * @returns {Array|object}\n */\nfunction duckSchema(object) {\n  let schema;\n  if (Array.isArray(object)) {\n    schema = object.length ? new Array(object.length).fill(null) : [];\n  } else {\n    schema = {};\n    objectEach(object, (value, key) => {\n      if (key === '__children') {\n        return;\n      }\n      if (value && typeof value === 'object' && !Array.isArray(value)) {\n        schema[key] = duckSchema(value);\n      } else if (Array.isArray(value)) {\n        if (value.length && typeof value[0] === 'object' && !Array.isArray(value[0])) {\n          schema[key] = [duckSchema(value[0])];\n        } else {\n          schema[key] = [];\n        }\n      } else {\n        schema[key] = null;\n      }\n    });\n  }\n  return schema;\n}\n\n/**\n * Inherit without without calling parent constructor, and setting `Child.prototype.constructor` to `Child` instead of `Parent`.\n * Creates temporary dummy function to call it as constructor.\n * Described in ticket: https://github.com/handsontable/handsontable/pull/516.\n *\n * @param {object} Child The child class.\n * @param {object} Parent The parent class.\n * @returns {object}\n */\nfunction inherit(Child, Parent) {\n  Parent.prototype.constructor = Parent;\n  Child.prototype = new Parent();\n  Child.prototype.constructor = Child;\n  return Child;\n}\n\n/**\n * Perform shallow extend of a target object with extension's own properties.\n *\n * @param {object} target An object that will receive the new properties.\n * @param {object} extension An object containing additional properties to merge into the target.\n * @param {string[]} [writableKeys] An array of keys that are writable to target object.\n * @returns {object}\n */\nfunction extend(target, extension, writableKeys) {\n  const hasWritableKeys = Array.isArray(writableKeys);\n  objectEach(extension, (value, key) => {\n    if (hasWritableKeys === false || writableKeys.includes(key)) {\n      target[key] = value;\n    }\n  });\n  return target;\n}\n\n/**\n * Perform deep extend of a target object with extension's own properties.\n *\n * @param {object} target An object that will receive the new properties.\n * @param {object} extension An object containing additional properties to merge into the target.\n */\nfunction deepExtend(target, extension) {\n  objectEach(extension, (value, key) => {\n    if (extension[key] && typeof extension[key] === 'object') {\n      if (!target[key]) {\n        if (Array.isArray(extension[key])) {\n          target[key] = [];\n        } else if (Object.prototype.toString.call(extension[key]) === '[object Date]') {\n          target[key] = extension[key];\n        } else {\n          target[key] = {};\n        }\n      }\n      deepExtend(target[key], extension[key]);\n    } else {\n      target[key] = extension[key];\n    }\n  });\n}\n\n/**\n * Perform deep clone of an object.\n * WARNING! Only clones JSON properties. Will cause error when `obj` contains a function, Date, etc.\n *\n * @param {object} obj An object that will be cloned.\n * @returns {object}\n */\nfunction deepClone(obj) {\n  if (typeof obj === 'object') {\n    return JSON.parse(JSON.stringify(obj));\n  }\n  return obj;\n}\n\n/**\n * Shallow clone object.\n *\n * @param {object} object An object to clone.\n * @returns {object}\n */\nfunction clone(object) {\n  const result = {};\n  objectEach(object, (value, key) => {\n    result[key] = value;\n  });\n  return result;\n}\n\n/**\n * Extend the Base object (usually prototype) of the functionality the `mixins` objects.\n *\n * @param {object} Base Base object which will be extended.\n * @param {object} mixins The object of the functionality will be \"copied\".\n * @returns {object}\n */\nfunction mixin(Base) {\n  if (!Base.MIXINS) {\n    Base.MIXINS = [];\n  }\n  for (var _len = arguments.length, mixins = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    mixins[_key - 1] = arguments[_key];\n  }\n  Object(_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(mixins, mixinItem => {\n    Base.MIXINS.push(mixinItem.MIXIN_NAME);\n    objectEach(mixinItem, (value, key) => {\n      if (Base.prototype[key] !== undefined) {\n        throw new Error(`Mixin conflict. Property '${key}' already exist and cannot be overwritten.`);\n      }\n      if (typeof value === 'function') {\n        Base.prototype[key] = value;\n      } else {\n        const getter = function _getter(property, initialValue) {\n          const propertyName = `_${property}`;\n          const initValue = newValue => {\n            let result = newValue;\n            if (Array.isArray(result) || isObject(result)) {\n              result = deepClone(result);\n            }\n            return result;\n          };\n          return function () {\n            if (this[propertyName] === undefined) {\n              this[propertyName] = initValue(initialValue);\n            }\n            return this[propertyName];\n          };\n        };\n        const setter = function _setter(property) {\n          const propertyName = `_${property}`;\n          return function (newValue) {\n            this[propertyName] = newValue;\n          };\n        };\n        Object.defineProperty(Base.prototype, key, {\n          get: getter(key, value),\n          set: setter(key),\n          configurable: true\n        });\n      }\n    });\n  });\n  return Base;\n}\n\n/**\n * Checks if two objects or arrays are (deep) equal.\n *\n * @param {object|Array} object1 The first object to compare.\n * @param {object|Array} object2 The second object to compare.\n * @returns {boolean}\n */\nfunction isObjectEqual(object1, object2) {\n  return JSON.stringify(object1) === JSON.stringify(object2);\n}\n\n/**\n * Determines whether given object is a plain Object.\n * Note: String and Array are not plain Objects.\n *\n * @param {*} object An object to check.\n * @returns {boolean}\n */\nfunction isObject(object) {\n  return Object.prototype.toString.call(object) === '[object Object]';\n}\n\n/**\n * @param {object} object The object on which to define the property.\n * @param {string} property The name of the property to be defined or modified.\n * @param {*} value The value associated with the property.\n * @param {object} options The descriptor for the property being defined or modified.\n */\nfunction defineGetter(object, property, value, options) {\n  options.value = value;\n  options.writable = options.writable !== false;\n  options.enumerable = options.enumerable !== false;\n  options.configurable = options.configurable !== false;\n  Object.defineProperty(object, property, options);\n}\n\n/**\n * A specialized version of `.forEach` for objects.\n *\n * @param {object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {object} Returns `object`.\n */\nfunction objectEach(object, iteratee) {\n  // eslint-disable-next-line no-restricted-syntax\n  for (const key in object) {\n    if (!object.hasOwnProperty || object.hasOwnProperty && Object.prototype.hasOwnProperty.call(object, key)) {\n      if (iteratee(object[key], key, object) === false) {\n        break;\n      }\n    }\n  }\n  return object;\n}\n\n/**\n * Get object property by its name. Access to sub properties can be achieved by dot notation (e.q. `'foo.bar.baz'`).\n *\n * @param {object} object Object which value will be exported.\n * @param {string} name Object property name.\n * @returns {*}\n */\nfunction getProperty(object, name) {\n  const names = name.split('.');\n  let result = object;\n  objectEach(names, nameItem => {\n    result = result[nameItem];\n    if (result === undefined) {\n      result = undefined;\n      return false;\n    }\n  });\n  return result;\n}\n\n/**\n * Set a property value on the provided object. Works on nested object prop names as well (e.g. `first.name`).\n *\n * @param {object} object Object to work on.\n * @param {string} name Prop name.\n * @param {*} value Value to be assigned at the provided property.\n */\nfunction setProperty(object, name, value) {\n  const names = name.split('.');\n  let workingObject = object;\n  names.forEach((propName, index) => {\n    if (index !== names.length - 1) {\n      if (!hasOwnProperty(workingObject, propName)) {\n        workingObject[propName] = {};\n      }\n      workingObject = workingObject[propName];\n    } else {\n      workingObject[propName] = value;\n    }\n  });\n}\n\n/**\n * Return object length (recursively).\n *\n * @param {*} object Object for which we want get length.\n * @returns {number}\n */\nfunction deepObjectSize(object) {\n  if (!isObject(object)) {\n    return 0;\n  }\n  const recursObjLen = function (obj) {\n    let result = 0;\n    if (isObject(obj)) {\n      objectEach(obj, (value, key) => {\n        if (key === '__children') {\n          return;\n        }\n        result += recursObjLen(value);\n      });\n    } else {\n      result += 1;\n    }\n    return result;\n  };\n  return recursObjLen(object);\n}\n\n/**\n * Create object with property where its value change will be observed.\n *\n * @param {*} [defaultValue=undefined] Default value.\n * @param {string} [propertyToListen='value'] Property to listen.\n * @returns {object}\n */\nfunction createObjectPropListener(defaultValue) {\n  let propertyToListen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'value';\n  const privateProperty = `_${propertyToListen}`;\n  const holder = {\n    _touched: false,\n    [privateProperty]: defaultValue,\n    isTouched() {\n      return this._touched;\n    }\n  };\n  Object.defineProperty(holder, propertyToListen, {\n    get() {\n      return this[privateProperty];\n    },\n    set(value) {\n      this._touched = true;\n      this[privateProperty] = value;\n    },\n    enumerable: true,\n    configurable: true\n  });\n  return holder;\n}\n\n/**\n * Check if at specified `key` there is any value for `object`.\n *\n * @param {object} object Object to search value at specific key.\n * @param {string} key String key to check.\n * @returns {boolean}\n */\nfunction hasOwnProperty(object, key) {\n  return Object.prototype.hasOwnProperty.call(object, key);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/object.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/string.mjs":
/*!******************************************************!*\
  !*** ./node_modules/handsontable/helpers/string.mjs ***!
  \******************************************************/
/*! exports provided: toUpperCaseFirst, equalsIgnoreCase, randomString, isPercentValue, substitute, stripTags, sanitize */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toUpperCaseFirst\", function() { return toUpperCaseFirst; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"equalsIgnoreCase\", function() { return equalsIgnoreCase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"randomString\", function() { return randomString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPercentValue\", function() { return isPercentValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"substitute\", function() { return substitute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stripTags\", function() { return stripTags; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sanitize\", function() { return sanitize; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dompurify */ \"./node_modules/dompurify/dist/purify.js\");\n/* harmony import */ var _mixed_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n\n\n\n/**\n * Convert string to upper case first letter.\n *\n * @param {string} string String to convert.\n * @returns {string}\n */\nfunction toUpperCaseFirst(string) {\n  return string[0].toUpperCase() + string.substr(1);\n}\n\n/**\n * Compare strings case insensitively.\n *\n * @param {...string} strings Strings to compare.\n * @returns {boolean}\n */\nfunction equalsIgnoreCase() {\n  const unique = [];\n  for (var _len = arguments.length, strings = new Array(_len), _key = 0; _key < _len; _key++) {\n    strings[_key] = arguments[_key];\n  }\n  let length = strings.length;\n  while (length) {\n    length -= 1;\n    const string = Object(_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__[\"stringify\"])(strings[length]).toLowerCase();\n    if (unique.indexOf(string) === -1) {\n      unique.push(string);\n    }\n  }\n  return unique.length === 1;\n}\n\n/**\n * Generates a random hex string. Used as namespace for Handsontable instance events.\n *\n * @returns {string} Returns 16-long character random string (eq. `'92b1bfc74ec4'`).\n */\nfunction randomString() {\n  /**\n   * @returns {string}\n   */\n  function s4() {\n    return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);\n  }\n  return s4() + s4() + s4() + s4();\n}\n\n/**\n * Checks if value is valid percent.\n *\n * @param {string} value The value to check.\n * @returns {boolean}\n */\nfunction isPercentValue(value) {\n  return /^([0-9][0-9]?%$)|(^100%$)/.test(value);\n}\n\n/**\n * Substitute strings placed beetwen square brackets into value defined in `variables` object. String names defined in\n * square brackets must be the same as property name of `variables` object.\n *\n * @param {string} template Template string.\n * @param {object} variables Object which contains all available values which can be injected into template.\n * @returns {string}\n */\nfunction substitute(template) {\n  let variables = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return `${template}`.replace(/(?:\\\\)?\\[([^[\\]]+)]/g, (match, name) => {\n    if (match.charAt(0) === '\\\\') {\n      return match.substr(1, match.length - 1);\n    }\n    return variables[name] === undefined ? '' : variables[name];\n  });\n}\n\n/**\n * Strip any HTML tag from the string.\n *\n * @param {string} string String to cut HTML from.\n * @returns {string}\n */\nfunction stripTags(string) {\n  return sanitize(`${string}`, {\n    ALLOWED_TAGS: []\n  });\n}\n\n/**\n * Sanitizes string from potential security vulnerabilities.\n *\n * @param {string} string String to sanitize.\n * @param {object} [options] DOMPurify's configuration object.\n * @returns {string}\n */\nfunction sanitize(string, options) {\n  return dompurify__WEBPACK_IMPORTED_MODULE_1__.sanitize(string, options);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/string.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/templateLiteralTag.mjs":
/*!******************************************************************!*\
  !*** ./node_modules/handsontable/helpers/templateLiteralTag.mjs ***!
  \******************************************************************/
/*! exports provided: toSingleLine */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toSingleLine\", function() { return toSingleLine; });\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n/**\n * Tags a multiline string and return new one without line break characters and following spaces.\n *\n * @param {Array} strings Parts of the entire string without expressions.\n * @param {...string} expressions Expressions converted to strings, which are added to the entire string.\n * @returns {string}\n */\nfunction toSingleLine(strings) {\n  for (var _len = arguments.length, expressions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    expressions[_key - 1] = arguments[_key];\n  }\n  const result = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__[\"arrayReduce\"])(strings, (previousValue, currentValue, index) => {\n    const valueWithoutWhiteSpaces = currentValue.replace(/\\r?\\n\\s*/g, '');\n    const expressionForIndex = expressions[index] ? expressions[index] : '';\n    return previousValue + valueWithoutWhiteSpaces + expressionForIndex;\n  }, '');\n  return result.trim();\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/templateLiteralTag.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/unicode.mjs":
/*!*******************************************************!*\
  !*** ./node_modules/handsontable/helpers/unicode.mjs ***!
  \*******************************************************/
/*! exports provided: KEY_CODES, isPrintableChar, isFunctionKey, isCtrlKey, isCtrlMetaKey, isKey */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KEY_CODES\", function() { return KEY_CODES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPrintableChar\", function() { return isPrintableChar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFunctionKey\", function() { return isFunctionKey; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isCtrlKey\", function() { return isCtrlKey; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isCtrlMetaKey\", function() { return isCtrlMetaKey; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isKey\", function() { return isKey; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _array_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _browser_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./browser.mjs */ \"./node_modules/handsontable/helpers/browser.mjs\");\n\n\n\nconst KEY_CODES = {\n  ALT: 18,\n  ARROW_DOWN: 40,\n  ARROW_LEFT: 37,\n  ARROW_RIGHT: 39,\n  ARROW_UP: 38,\n  AUDIO_DOWN: Object(_browser_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isFirefox\"])() ? 182 : 174,\n  AUDIO_MUTE: Object(_browser_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isFirefox\"])() ? 181 : 173,\n  AUDIO_UP: Object(_browser_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isFirefox\"])() ? 183 : 175,\n  BACKSPACE: 8,\n  CAPS_LOCK: 20,\n  COMMA: 188,\n  COMMAND_LEFT: 91,\n  COMMAND_RIGHT: 93,\n  COMMAND_FIREFOX: 224,\n  CONTROL: 17,\n  DELETE: 46,\n  END: 35,\n  ENTER: 13,\n  ESCAPE: 27,\n  F1: 112,\n  F2: 113,\n  F3: 114,\n  F4: 115,\n  F5: 116,\n  F6: 117,\n  F7: 118,\n  F8: 119,\n  F9: 120,\n  F10: 121,\n  F11: 122,\n  F12: 123,\n  F13: 124,\n  F14: 125,\n  F15: 126,\n  F16: 127,\n  F17: 128,\n  F18: 129,\n  F19: 130,\n  HOME: 36,\n  INSERT: 45,\n  MEDIA_NEXT: 176,\n  MEDIA_PLAY_PAUSE: 179,\n  MEDIA_PREV: 177,\n  MEDIA_STOP: 178,\n  NULL: 0,\n  NUM_LOCK: 144,\n  PAGE_DOWN: 34,\n  PAGE_UP: 33,\n  PAUSE: 19,\n  PERIOD: 190,\n  SCROLL_LOCK: 145,\n  SHIFT: 16,\n  SPACE: 32,\n  TAB: 9,\n  A: 65,\n  C: 67,\n  D: 68,\n  F: 70,\n  L: 76,\n  O: 79,\n  P: 80,\n  S: 83,\n  V: 86,\n  X: 88,\n  Y: 89,\n  Z: 90\n};\nconst FUNCTION_KEYS = [KEY_CODES.ALT, KEY_CODES.ARROW_DOWN, KEY_CODES.ARROW_LEFT, KEY_CODES.ARROW_RIGHT, KEY_CODES.ARROW_UP, KEY_CODES.AUDIO_DOWN, KEY_CODES.AUDIO_MUTE, KEY_CODES.AUDIO_UP, KEY_CODES.BACKSPACE, KEY_CODES.CAPS_LOCK, KEY_CODES.DELETE, KEY_CODES.END, KEY_CODES.ENTER, KEY_CODES.ESCAPE, KEY_CODES.F1, KEY_CODES.F2, KEY_CODES.F3, KEY_CODES.F4, KEY_CODES.F5, KEY_CODES.F6, KEY_CODES.F7, KEY_CODES.F8, KEY_CODES.F9, KEY_CODES.F10, KEY_CODES.F11, KEY_CODES.F12, KEY_CODES.F13, KEY_CODES.F14, KEY_CODES.F15, KEY_CODES.F16, KEY_CODES.F17, KEY_CODES.F18, KEY_CODES.F19, KEY_CODES.HOME, KEY_CODES.INSERT, KEY_CODES.MEDIA_NEXT, KEY_CODES.MEDIA_PLAY_PAUSE, KEY_CODES.MEDIA_PREV, KEY_CODES.MEDIA_STOP, KEY_CODES.NULL, KEY_CODES.NUM_LOCK, KEY_CODES.PAGE_DOWN, KEY_CODES.PAGE_UP, KEY_CODES.PAUSE, KEY_CODES.SCROLL_LOCK, KEY_CODES.SHIFT, KEY_CODES.TAB];\n\n/**\n * Returns true if keyCode represents a printable character.\n *\n * @param {number} keyCode The keyboard key code.\n * @returns {boolean}\n */\nfunction isPrintableChar(keyCode) {\n  return keyCode === 32 ||\n  // space\n  keyCode >= 48 && keyCode <= 57 ||\n  // 0-9\n  keyCode >= 96 && keyCode <= 111 ||\n  // numpad\n  keyCode >= 186 && keyCode <= 192 ||\n  // ;=,-./`\n  keyCode >= 219 && keyCode <= 222 ||\n  // []{}\\|\"'\n  keyCode >= 226 ||\n  // special chars (229 for Asian chars)\n  keyCode >= 65 && keyCode <= 90; // a-z\n}\n\n/**\n * @param {number} keyCode The keyboard key code.\n * @returns {boolean}\n */\nfunction isFunctionKey(keyCode) {\n  return FUNCTION_KEYS.includes(keyCode);\n}\n\n/**\n * Checks if passed key code is ctrl or cmd key. Depends on what OS the code runs it check key code based on\n * different meta key codes.\n *\n * @param {number} keyCode The keyboard key code.\n * @returns {boolean}\n */\nfunction isCtrlKey(keyCode) {\n  const keys = [];\n  if (Object(_browser_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isMacOS\"])()) {\n    keys.push(KEY_CODES.COMMAND_LEFT, KEY_CODES.COMMAND_RIGHT, KEY_CODES.COMMAND_FIREFOX);\n  } else {\n    keys.push(KEY_CODES.CONTROL);\n  }\n  return keys.includes(keyCode);\n}\n\n/**\n * Checks if passed key code is ctrl or cmd key. This helper checks if the key code matches to meta keys\n * regardless of the OS on which it is running.\n *\n * @param {number} keyCode The keyboard key code.\n * @returns {boolean}\n */\nfunction isCtrlMetaKey(keyCode) {\n  return [KEY_CODES.CONTROL, KEY_CODES.COMMAND_LEFT, KEY_CODES.COMMAND_RIGHT, KEY_CODES.COMMAND_FIREFOX].includes(keyCode);\n}\n\n/**\n * @param {number} keyCode The keyboard key code.\n * @param {string} baseCode The list of the key codes to compare with.\n * @returns {boolean}\n */\nfunction isKey(keyCode, baseCode) {\n  const keys = baseCode.split('|');\n  let result = false;\n  Object(_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayEach\"])(keys, key => {\n    if (keyCode === KEY_CODES[key]) {\n      result = true;\n      return false;\n    }\n  });\n  return result;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/unicode.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/helpers/wrappers/jquery.mjs":
/*!***************************************************************!*\
  !*** ./node_modules/handsontable/helpers/wrappers/jquery.mjs ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return jQueryWrapper; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\n/**\n * @param {Core} Handsontable The Handsontable instance.\n */\nfunction jQueryWrapper(Handsontable) {\n  // eslint-disable-next-line\n  const jQuery = typeof window === 'undefined' ? false : window.jQuery;\n  if (!jQuery) {\n    return;\n  }\n  jQuery.fn.handsontable = function (action) {\n    const $this = this.first(); // Use only first element from list\n    let instance = $this.data('handsontable');\n\n    // Init case\n    if (typeof action !== 'string') {\n      const userSettings = action || {};\n      if (instance) {\n        instance.updateSettings(userSettings);\n      } else {\n        instance = new Handsontable.Core($this[0], userSettings);\n        $this.data('handsontable', instance);\n        instance.init();\n      }\n      return $this;\n    }\n    let output;\n\n    // Action case\n    if (instance) {\n      if (typeof instance[action] !== 'undefined') {\n        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          args[_key - 1] = arguments[_key];\n        }\n        output = instance[action].call(instance, ...args);\n        if (action === 'destroy') {\n          $this.removeData();\n        }\n      } else {\n        throw new Error(`Handsontable do not provide action: ${action}`);\n      }\n    }\n    return output;\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/helpers/wrappers/jquery.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/constants.mjs":
/*!******************************************************!*\
  !*** ./node_modules/handsontable/i18n/constants.mjs ***!
  \******************************************************/
/*! exports provided: CONTEXT_MENU_ITEMS_NAMESPACE, CONTEXTMENU_ITEMS_NO_ITEMS, CONTEXTMENU_ITEMS_ROW_ABOVE, CONTEXTMENU_ITEMS_ROW_BELOW, CONTEXTMENU_ITEMS_INSERT_LEFT, CONTEXTMENU_ITEMS_INSERT_RIGHT, CONTEXTMENU_ITEMS_REMOVE_ROW, CONTEXTMENU_ITEMS_REMOVE_COLUMN, CONTEXTMENU_ITEMS_UNDO, CONTEXTMENU_ITEMS_REDO, CONTEXTMENU_ITEMS_READ_ONLY, CONTEXTMENU_ITEMS_CLEAR_COLUMN, CONTEXTMENU_ITEMS_COPY, CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS, CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS, CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY, CONTEXTMENU_ITEMS_CUT, CONTEXTMENU_ITEMS_FREEZE_COLUMN, CONTEXTMENU_ITEMS_UNFREEZE_COLUMN, CONTEXTMENU_ITEMS_MERGE_CELLS, CONTEXTMENU_ITEMS_UNMERGE_CELLS, CONTEXTMENU_ITEMS_ADD_COMMENT, CONTEXTMENU_ITEMS_EDIT_COMMENT, CONTEXTMENU_ITEMS_REMOVE_COMMENT, CONTEXTMENU_ITEMS_READ_ONLY_COMMENT, CONTEXTMENU_ITEMS_ALIGNMENT, CONTEXTMENU_ITEMS_ALIGNMENT_LEFT, CONTEXTMENU_ITEMS_ALIGNMENT_CENTER, CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT, CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY, CONTEXTMENU_ITEMS_ALIGNMENT_TOP, CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE, CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM, CONTEXTMENU_ITEMS_BORDERS, CONTEXTMENU_ITEMS_BORDERS_TOP, CONTEXTMENU_ITEMS_BORDERS_RIGHT, CONTEXTMENU_ITEMS_BORDERS_BOTTOM, CONTEXTMENU_ITEMS_BORDERS_LEFT, CONTEXTMENU_ITEMS_REMOVE_BORDERS, CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD, CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD, CONTEXTMENU_ITEMS_HIDE_COLUMN, CONTEXTMENU_ITEMS_SHOW_COLUMN, CONTEXTMENU_ITEMS_HIDE_ROW, CONTEXTMENU_ITEMS_SHOW_ROW, FILTERS_NAMESPACE, FILTERS_CONDITIONS_NAMESPACE, FILTERS_CONDITIONS_NONE, FILTERS_CONDITIONS_EMPTY, FILTERS_CONDITIONS_NOT_EMPTY, FILTERS_CONDITIONS_EQUAL, FILTERS_CONDITIONS_NOT_EQUAL, FILTERS_CONDITIONS_BEGINS_WITH, FILTERS_CONDITIONS_ENDS_WITH, FILTERS_CONDITIONS_CONTAINS, FILTERS_CONDITIONS_NOT_CONTAIN, FILTERS_CONDITIONS_BY_VALUE, FILTERS_CONDITIONS_GREATER_THAN, FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL, FILTERS_CONDITIONS_LESS_THAN, FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL, FILTERS_CONDITIONS_BETWEEN, FILTERS_CONDITIONS_NOT_BETWEEN, FILTERS_CONDITIONS_AFTER, FILTERS_CONDITIONS_BEFORE, FILTERS_CONDITIONS_TODAY, FILTERS_CONDITIONS_TOMORROW, FILTERS_CONDITIONS_YESTERDAY, FILTERS_DIVS_FILTER_BY_CONDITION, FILTERS_DIVS_FILTER_BY_VALUE, FILTERS_LABELS_CONJUNCTION, FILTERS_LABELS_DISJUNCTION, FILTERS_VALUES_BLANK_CELLS, FILTERS_BUTTONS_SELECT_ALL, FILTERS_BUTTONS_CLEAR, FILTERS_BUTTONS_OK, FILTERS_BUTTONS_CANCEL, FILTERS_BUTTONS_PLACEHOLDER_SEARCH, FILTERS_BUTTONS_PLACEHOLDER_VALUE, FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE, CHECKBOX_RENDERER_NAMESPACE, CHECKBOX_CHECKED, CHECKBOX_UNCHECKED */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXT_MENU_ITEMS_NAMESPACE\", function() { return CONTEXT_MENU_ITEMS_NAMESPACE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_NO_ITEMS\", function() { return CONTEXTMENU_ITEMS_NO_ITEMS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_ROW_ABOVE\", function() { return CONTEXTMENU_ITEMS_ROW_ABOVE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_ROW_BELOW\", function() { return CONTEXTMENU_ITEMS_ROW_BELOW; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_INSERT_LEFT\", function() { return CONTEXTMENU_ITEMS_INSERT_LEFT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_INSERT_RIGHT\", function() { return CONTEXTMENU_ITEMS_INSERT_RIGHT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_REMOVE_ROW\", function() { return CONTEXTMENU_ITEMS_REMOVE_ROW; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_REMOVE_COLUMN\", function() { return CONTEXTMENU_ITEMS_REMOVE_COLUMN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_UNDO\", function() { return CONTEXTMENU_ITEMS_UNDO; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_REDO\", function() { return CONTEXTMENU_ITEMS_REDO; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_READ_ONLY\", function() { return CONTEXTMENU_ITEMS_READ_ONLY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_CLEAR_COLUMN\", function() { return CONTEXTMENU_ITEMS_CLEAR_COLUMN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_COPY\", function() { return CONTEXTMENU_ITEMS_COPY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS\", function() { return CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS\", function() { return CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY\", function() { return CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_CUT\", function() { return CONTEXTMENU_ITEMS_CUT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_FREEZE_COLUMN\", function() { return CONTEXTMENU_ITEMS_FREEZE_COLUMN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\", function() { return CONTEXTMENU_ITEMS_UNFREEZE_COLUMN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_MERGE_CELLS\", function() { return CONTEXTMENU_ITEMS_MERGE_CELLS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_UNMERGE_CELLS\", function() { return CONTEXTMENU_ITEMS_UNMERGE_CELLS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_ADD_COMMENT\", function() { return CONTEXTMENU_ITEMS_ADD_COMMENT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_EDIT_COMMENT\", function() { return CONTEXTMENU_ITEMS_EDIT_COMMENT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_REMOVE_COMMENT\", function() { return CONTEXTMENU_ITEMS_REMOVE_COMMENT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\", function() { return CONTEXTMENU_ITEMS_READ_ONLY_COMMENT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_ALIGNMENT\", function() { return CONTEXTMENU_ITEMS_ALIGNMENT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\", function() { return CONTEXTMENU_ITEMS_ALIGNMENT_LEFT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\", function() { return CONTEXTMENU_ITEMS_ALIGNMENT_CENTER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\", function() { return CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\", function() { return CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\", function() { return CONTEXTMENU_ITEMS_ALIGNMENT_TOP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\", function() { return CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\", function() { return CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_BORDERS\", function() { return CONTEXTMENU_ITEMS_BORDERS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_BORDERS_TOP\", function() { return CONTEXTMENU_ITEMS_BORDERS_TOP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_BORDERS_RIGHT\", function() { return CONTEXTMENU_ITEMS_BORDERS_RIGHT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\", function() { return CONTEXTMENU_ITEMS_BORDERS_BOTTOM; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_BORDERS_LEFT\", function() { return CONTEXTMENU_ITEMS_BORDERS_LEFT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_REMOVE_BORDERS\", function() { return CONTEXTMENU_ITEMS_REMOVE_BORDERS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\", function() { return CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\", function() { return CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_HIDE_COLUMN\", function() { return CONTEXTMENU_ITEMS_HIDE_COLUMN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_SHOW_COLUMN\", function() { return CONTEXTMENU_ITEMS_SHOW_COLUMN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_HIDE_ROW\", function() { return CONTEXTMENU_ITEMS_HIDE_ROW; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTEXTMENU_ITEMS_SHOW_ROW\", function() { return CONTEXTMENU_ITEMS_SHOW_ROW; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_NAMESPACE\", function() { return FILTERS_NAMESPACE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_NAMESPACE\", function() { return FILTERS_CONDITIONS_NAMESPACE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_NONE\", function() { return FILTERS_CONDITIONS_NONE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_EMPTY\", function() { return FILTERS_CONDITIONS_EMPTY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_NOT_EMPTY\", function() { return FILTERS_CONDITIONS_NOT_EMPTY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_EQUAL\", function() { return FILTERS_CONDITIONS_EQUAL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_NOT_EQUAL\", function() { return FILTERS_CONDITIONS_NOT_EQUAL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_BEGINS_WITH\", function() { return FILTERS_CONDITIONS_BEGINS_WITH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_ENDS_WITH\", function() { return FILTERS_CONDITIONS_ENDS_WITH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_CONTAINS\", function() { return FILTERS_CONDITIONS_CONTAINS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_NOT_CONTAIN\", function() { return FILTERS_CONDITIONS_NOT_CONTAIN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_BY_VALUE\", function() { return FILTERS_CONDITIONS_BY_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_GREATER_THAN\", function() { return FILTERS_CONDITIONS_GREATER_THAN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\", function() { return FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_LESS_THAN\", function() { return FILTERS_CONDITIONS_LESS_THAN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\", function() { return FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_BETWEEN\", function() { return FILTERS_CONDITIONS_BETWEEN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_NOT_BETWEEN\", function() { return FILTERS_CONDITIONS_NOT_BETWEEN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_AFTER\", function() { return FILTERS_CONDITIONS_AFTER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_BEFORE\", function() { return FILTERS_CONDITIONS_BEFORE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_TODAY\", function() { return FILTERS_CONDITIONS_TODAY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_TOMORROW\", function() { return FILTERS_CONDITIONS_TOMORROW; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_CONDITIONS_YESTERDAY\", function() { return FILTERS_CONDITIONS_YESTERDAY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_DIVS_FILTER_BY_CONDITION\", function() { return FILTERS_DIVS_FILTER_BY_CONDITION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_DIVS_FILTER_BY_VALUE\", function() { return FILTERS_DIVS_FILTER_BY_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_LABELS_CONJUNCTION\", function() { return FILTERS_LABELS_CONJUNCTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_LABELS_DISJUNCTION\", function() { return FILTERS_LABELS_DISJUNCTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_VALUES_BLANK_CELLS\", function() { return FILTERS_VALUES_BLANK_CELLS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_BUTTONS_SELECT_ALL\", function() { return FILTERS_BUTTONS_SELECT_ALL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_BUTTONS_CLEAR\", function() { return FILTERS_BUTTONS_CLEAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_BUTTONS_OK\", function() { return FILTERS_BUTTONS_OK; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_BUTTONS_CANCEL\", function() { return FILTERS_BUTTONS_CANCEL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\", function() { return FILTERS_BUTTONS_PLACEHOLDER_SEARCH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_BUTTONS_PLACEHOLDER_VALUE\", function() { return FILTERS_BUTTONS_PLACEHOLDER_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\", function() { return FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CHECKBOX_RENDERER_NAMESPACE\", function() { return CHECKBOX_RENDERER_NAMESPACE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CHECKBOX_CHECKED\", function() { return CHECKBOX_CHECKED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CHECKBOX_UNCHECKED\", function() { return CHECKBOX_UNCHECKED; });\n/**\n * Constants for parts of translation.\n */\n\nconst CONTEXT_MENU_ITEMS_NAMESPACE = 'ContextMenu:items';\nconst CM_ALIAS = CONTEXT_MENU_ITEMS_NAMESPACE;\nconst CONTEXTMENU_ITEMS_NO_ITEMS = `${CM_ALIAS}.noItems`;\nconst CONTEXTMENU_ITEMS_ROW_ABOVE = `${CM_ALIAS}.insertRowAbove`;\nconst CONTEXTMENU_ITEMS_ROW_BELOW = `${CM_ALIAS}.insertRowBelow`;\nconst CONTEXTMENU_ITEMS_INSERT_LEFT = `${CM_ALIAS}.insertColumnOnTheLeft`;\nconst CONTEXTMENU_ITEMS_INSERT_RIGHT = `${CM_ALIAS}.insertColumnOnTheRight`;\nconst CONTEXTMENU_ITEMS_REMOVE_ROW = `${CM_ALIAS}.removeRow`;\nconst CONTEXTMENU_ITEMS_REMOVE_COLUMN = `${CM_ALIAS}.removeColumn`;\nconst CONTEXTMENU_ITEMS_UNDO = `${CM_ALIAS}.undo`;\nconst CONTEXTMENU_ITEMS_REDO = `${CM_ALIAS}.redo`;\nconst CONTEXTMENU_ITEMS_READ_ONLY = `${CM_ALIAS}.readOnly`;\nconst CONTEXTMENU_ITEMS_CLEAR_COLUMN = `${CM_ALIAS}.clearColumn`;\nconst CONTEXTMENU_ITEMS_COPY = `${CM_ALIAS}.copy`;\nconst CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS = `${CM_ALIAS}.copyWithHeaders`;\nconst CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS = `${CM_ALIAS}.copyWithGroupHeaders`;\nconst CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY = `${CM_ALIAS}.copyHeadersOnly`;\nconst CONTEXTMENU_ITEMS_CUT = `${CM_ALIAS}.cut`;\nconst CONTEXTMENU_ITEMS_FREEZE_COLUMN = `${CM_ALIAS}.freezeColumn`;\nconst CONTEXTMENU_ITEMS_UNFREEZE_COLUMN = `${CM_ALIAS}.unfreezeColumn`;\nconst CONTEXTMENU_ITEMS_MERGE_CELLS = `${CM_ALIAS}.mergeCells`;\nconst CONTEXTMENU_ITEMS_UNMERGE_CELLS = `${CM_ALIAS}.unmergeCells`;\nconst CONTEXTMENU_ITEMS_ADD_COMMENT = `${CM_ALIAS}.addComment`;\nconst CONTEXTMENU_ITEMS_EDIT_COMMENT = `${CM_ALIAS}.editComment`;\nconst CONTEXTMENU_ITEMS_REMOVE_COMMENT = `${CM_ALIAS}.removeComment`;\nconst CONTEXTMENU_ITEMS_READ_ONLY_COMMENT = `${CM_ALIAS}.readOnlyComment`;\nconst CONTEXTMENU_ITEMS_ALIGNMENT = `${CM_ALIAS}.align`;\nconst CONTEXTMENU_ITEMS_ALIGNMENT_LEFT = `${CM_ALIAS}.align.left`;\nconst CONTEXTMENU_ITEMS_ALIGNMENT_CENTER = `${CM_ALIAS}.align.center`;\nconst CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT = `${CM_ALIAS}.align.right`;\nconst CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY = `${CM_ALIAS}.align.justify`;\nconst CONTEXTMENU_ITEMS_ALIGNMENT_TOP = `${CM_ALIAS}.align.top`;\nconst CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE = `${CM_ALIAS}.align.middle`;\nconst CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM = `${CM_ALIAS}.align.bottom`;\nconst CONTEXTMENU_ITEMS_BORDERS = `${CM_ALIAS}.borders`;\nconst CONTEXTMENU_ITEMS_BORDERS_TOP = `${CM_ALIAS}.borders.top`;\nconst CONTEXTMENU_ITEMS_BORDERS_RIGHT = `${CM_ALIAS}.borders.right`;\nconst CONTEXTMENU_ITEMS_BORDERS_BOTTOM = `${CM_ALIAS}.borders.bottom`;\nconst CONTEXTMENU_ITEMS_BORDERS_LEFT = `${CM_ALIAS}.borders.left`;\nconst CONTEXTMENU_ITEMS_REMOVE_BORDERS = `${CM_ALIAS}.borders.remove`;\nconst CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD = `${CM_ALIAS}.nestedHeaders.insertChildRow`; // eslint-disable-line max-len\nconst CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD = `${CM_ALIAS}.nestedHeaders.detachFromParent`; // eslint-disable-line max-len\n\nconst CONTEXTMENU_ITEMS_HIDE_COLUMN = `${CM_ALIAS}.hideColumn`;\nconst CONTEXTMENU_ITEMS_SHOW_COLUMN = `${CM_ALIAS}.showColumn`;\nconst CONTEXTMENU_ITEMS_HIDE_ROW = `${CM_ALIAS}.hideRow`;\nconst CONTEXTMENU_ITEMS_SHOW_ROW = `${CM_ALIAS}.showRow`;\nconst FILTERS_NAMESPACE = 'Filters:';\nconst FILTERS_CONDITIONS_NAMESPACE = `${FILTERS_NAMESPACE}conditions`;\nconst FILTERS_CONDITIONS_NONE = `${FILTERS_CONDITIONS_NAMESPACE}.none`;\nconst FILTERS_CONDITIONS_EMPTY = `${FILTERS_CONDITIONS_NAMESPACE}.isEmpty`;\nconst FILTERS_CONDITIONS_NOT_EMPTY = `${FILTERS_CONDITIONS_NAMESPACE}.isNotEmpty`;\nconst FILTERS_CONDITIONS_EQUAL = `${FILTERS_CONDITIONS_NAMESPACE}.isEqualTo`;\nconst FILTERS_CONDITIONS_NOT_EQUAL = `${FILTERS_CONDITIONS_NAMESPACE}.isNotEqualTo`;\nconst FILTERS_CONDITIONS_BEGINS_WITH = `${FILTERS_CONDITIONS_NAMESPACE}.beginsWith`;\nconst FILTERS_CONDITIONS_ENDS_WITH = `${FILTERS_CONDITIONS_NAMESPACE}.endsWith`;\nconst FILTERS_CONDITIONS_CONTAINS = `${FILTERS_CONDITIONS_NAMESPACE}.contains`;\nconst FILTERS_CONDITIONS_NOT_CONTAIN = `${FILTERS_CONDITIONS_NAMESPACE}.doesNotContain`;\nconst FILTERS_CONDITIONS_BY_VALUE = `${FILTERS_CONDITIONS_NAMESPACE}.byValue`;\nconst FILTERS_CONDITIONS_GREATER_THAN = `${FILTERS_CONDITIONS_NAMESPACE}.greaterThan`;\nconst FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL = `${FILTERS_CONDITIONS_NAMESPACE}.greaterThanOrEqualTo`;\nconst FILTERS_CONDITIONS_LESS_THAN = `${FILTERS_CONDITIONS_NAMESPACE}.lessThan`;\nconst FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL = `${FILTERS_CONDITIONS_NAMESPACE}.lessThanOrEqualTo`;\nconst FILTERS_CONDITIONS_BETWEEN = `${FILTERS_CONDITIONS_NAMESPACE}.isBetween`;\nconst FILTERS_CONDITIONS_NOT_BETWEEN = `${FILTERS_CONDITIONS_NAMESPACE}.isNotBetween`;\nconst FILTERS_CONDITIONS_AFTER = `${FILTERS_CONDITIONS_NAMESPACE}.after`;\nconst FILTERS_CONDITIONS_BEFORE = `${FILTERS_CONDITIONS_NAMESPACE}.before`;\nconst FILTERS_CONDITIONS_TODAY = `${FILTERS_CONDITIONS_NAMESPACE}.today`;\nconst FILTERS_CONDITIONS_TOMORROW = `${FILTERS_CONDITIONS_NAMESPACE}.tomorrow`;\nconst FILTERS_CONDITIONS_YESTERDAY = `${FILTERS_CONDITIONS_NAMESPACE}.yesterday`;\nconst FILTERS_DIVS_FILTER_BY_CONDITION = `${FILTERS_NAMESPACE}labels.filterByCondition`;\nconst FILTERS_DIVS_FILTER_BY_VALUE = `${FILTERS_NAMESPACE}labels.filterByValue`;\nconst FILTERS_LABELS_CONJUNCTION = `${FILTERS_NAMESPACE}labels.conjunction`;\nconst FILTERS_LABELS_DISJUNCTION = `${FILTERS_NAMESPACE}labels.disjunction`;\nconst FILTERS_VALUES_BLANK_CELLS = `${FILTERS_NAMESPACE}values.blankCells`;\nconst FILTERS_BUTTONS_SELECT_ALL = `${FILTERS_NAMESPACE}buttons.selectAll`;\nconst FILTERS_BUTTONS_CLEAR = `${FILTERS_NAMESPACE}buttons.clear`;\nconst FILTERS_BUTTONS_OK = `${FILTERS_NAMESPACE}buttons.ok`;\nconst FILTERS_BUTTONS_CANCEL = `${FILTERS_NAMESPACE}buttons.cancel`;\nconst FILTERS_BUTTONS_PLACEHOLDER_SEARCH = `${FILTERS_NAMESPACE}buttons.placeholder.search`;\nconst FILTERS_BUTTONS_PLACEHOLDER_VALUE = `${FILTERS_NAMESPACE}buttons.placeholder.value`;\nconst FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE = `${FILTERS_NAMESPACE}buttons.placeholder.secondValue`;\nconst CHECKBOX_RENDERER_NAMESPACE = 'CheckboxRenderer:';\nconst CHECKBOX_CHECKED = `${CHECKBOX_RENDERER_NAMESPACE}checked`;\nconst CHECKBOX_UNCHECKED = `${CHECKBOX_RENDERER_NAMESPACE}unchecked`;\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/constants.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/index.mjs":
/*!**************************************************!*\
  !*** ./node_modules/handsontable/i18n/index.mjs ***!
  \**************************************************/
/*! exports provided: arAR, csCZ, deCH, deDE, enUS, esMX, frFR, hrHR, itIT, jaJP, koKR, lvLV, nbNO, nlNL, plPL, ptBR, ruRU, srSP, zhCN, zhTW, dictionaryKeys, DEFAULT_LANGUAGE_CODE, registerLanguageDictionary, getLanguageDictionary, hasLanguageDictionary, getDefaultLanguageDictionary, getLanguagesDictionaries, getTranslatedPhrase, getValidLanguageCode */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./languages/index.mjs */ \"./node_modules/handsontable/i18n/languages/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"arAR\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"arAR\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"csCZ\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"csCZ\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deCH\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"deCH\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deDE\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"deDE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"enUS\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"enUS\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"esMX\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"esMX\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"frFR\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"frFR\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hrHR\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"hrHR\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"itIT\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"itIT\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"jaJP\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"jaJP\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"koKR\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"koKR\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lvLV\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"lvLV\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nbNO\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"nbNO\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nlNL\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"nlNL\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"plPL\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"plPL\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ptBR\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"ptBR\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ruRU\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"ruRU\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"srSP\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"srSP\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zhCN\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"zhCN\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zhTW\", function() { return _languages_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"zhTW\"]; });\n\n/* harmony import */ var _registry_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./registry.mjs */ \"./node_modules/handsontable/i18n/registry.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dictionaryKeys\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_1__[\"dictionaryKeys\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_LANGUAGE_CODE\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_1__[\"DEFAULT_LANGUAGE_CODE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"registerLanguageDictionary\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerLanguageDictionary\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLanguageDictionary\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getLanguageDictionary\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasLanguageDictionary\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_1__[\"hasLanguageDictionary\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getDefaultLanguageDictionary\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getDefaultLanguageDictionary\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLanguagesDictionaries\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getLanguagesDictionaries\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getTranslatedPhrase\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getTranslatedPhrase\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getValidLanguageCode\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getValidLanguageCode\"]; });\n\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/ar-AR.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/ar-AR.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Handsoncode\n * Last updated: Feb 9, 2022\n *\n * Description: Definition file for Arabic - Without a specific country.\n */\n\nconst dictionary = {\n  languageCode: 'ar-AR',\n  languageDirection: 'rtl',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NO_ITEMS\"]]: 'لا توجد خيارات متوفرة',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'إدراج صف للأعلى',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'إدراج صف للأسفل',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'إدراج عمود لليسار',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'إدراج عمود لليمين',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['احدف الصف', 'احذف الصفوف'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['احدف العمود', 'احدف الأعمدة'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'تراجع',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'إلغاء التراجع',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'للقراءة فقط',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'افرغ العمود',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'المحاذاة',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'يسار',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'وسط',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'يمين',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'بالتساوي',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'أعلى',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'متوسط',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'أسفل',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'تجميد العمود',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'إلغاء تجميد العمود',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'الحدود',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'أعلى',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'يمين',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'أسفل',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'يسار',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'أحذف الحد(ود)',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'أضف تعليقاً',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'تعديل التعليق',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'احذف التعليق',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'تعليق للقراءة فقط',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'ادمج الخلايا',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'إلغاء دمج الخلايا',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'نسخ',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'قص',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'أدخل صفاً فرعياً',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'افصل عن الصف الأصلي',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['إخفاء العمود', 'إخفاء الأعمدة'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['إظهار العمود', 'إظهار الأعمدة'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['إخفاء السطر', 'إخفاء السطور'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['إظهار السطر', 'إظهار السطور'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'بلا',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'فارغ',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'غير فارغ',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'يساوي',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'لا يساوي',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'يبداً بـ',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'ينتهي بـ',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'يحتوي',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'لا يحتوي',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'أكبر من',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'أكبر أو يساوي',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'أصغر',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'أصغر أو يساوي',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'بين',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'خارج المجال',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'بعد',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'قبل',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'اليوم',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'غداً',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'البارحة',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'خلايا فارغة',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'تصفية حسب الشرط',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'تصفية حسب القيمة',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'و',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'أو',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'اختيار الكل',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'إلغاء',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'موافق',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'إلغاء',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'البحث',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'القيمة',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'القيمة الثانية'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/ar-AR.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/cs-CZ.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/cs-CZ.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Ashus\n * Last updated: Mar 22, 2022\n *\n * Description: Definition file for Czech - Czechia language-country.\n */\n\nconst dictionary = {\n  languageCode: 'cs-CZ',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NO_ITEMS\"]]: 'Žádné volby nejsou dostupné',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'Vložit řádek nad',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'Vložit řádek pod',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'Vložit sloupec vlevo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'Vložit sloupec vpravo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['Smazat řádek', 'Smazat řádky'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['Smazat sloupec', 'Smazat sloupce'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'Zpět',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'Znovu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'Pouze pro čtení',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'Vymazat obsah sloupce',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'Zarovnat',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'Vlevo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'Na střed',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'Vpravo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'Do bloku',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'Nahoru',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'Na střed',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'Dolů',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'Zmrazit sloupec',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'Zrušit zmrazení sloupce',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'Ohraničení',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'Nahoře',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'Vpravo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'Dole',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'Vlevo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'Zrušit ohraničení',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'Přidat komentář',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'Upravit komentář',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'Vymazat komentář',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'Komenář pouze pro čtení',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'Sloučit buňky',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'Zrušit sloučení buněk',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'Kopírovat',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'Vyjmout',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'Vložit podřízený řádek',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'Oddělit od nadřízeného',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['Skrýt sloupec', 'Skrýt sloupce'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['Zobrazit sloupec', 'Zobrazit sloupce'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['Skrýt řádek', 'Skrýt řádky'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['Zobrazit řádek', 'Zobrazit řádky'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'Žádné',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'Prázdné',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'Neprázdné',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'Rovná se',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'Nerovná se',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'Začíná na',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'Končí na',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'Obsahuje',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'Neobsahuje',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'Větší než',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'Větší nebo se rovná',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'Menší než',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'Menší nebo se rovná',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'Je v rozsahu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'Není v rozsahu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'Po',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'Před',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'Dnes',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'Zítra',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'Včera',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'Prádné buňky',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'Filtrovat dle stavu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'Filtrovat dle hodnoty',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'A',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'Nebo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'Vybrat vše',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'Smazat',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'OK',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'Storno',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'Hledat',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'Hodnota',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'Druhá hodnota'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/cs-CZ.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/de-CH.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/de-CH.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Stefan Salzl\n * Last updated: Jan 08, 2018\n *\n * Description: Definition file for German - Switzerland language-country.\n */\n\nconst dictionary = {\n  languageCode: 'de-CH',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'Zeile einfügen oberhalb',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'Zeile einfügen unterhalb',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'Spalte einfügen links',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'Spalte einfügen rechts',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['Zeile löschen', 'Zeilen löschen'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['Spalte löschen', 'Spalten löschen'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'Rückgangig',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'Wiederholen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'Nur Lesezugriff',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'Spalteninhalt löschen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'Ausrichtung',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'Linksbündig',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'Zentriert',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'Rechtsbündig',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'Blocksatz',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'Oben',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'Mitte',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'Unten',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'Spalte fixieren',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'Spaltenfixierung aufheben',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'Rahmen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'Oben',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'Rechts',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'Unten',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'Links',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'Kein Rahmen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'Kommentar hinzufügen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'Kommentar bearbeiten',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'Kommentar löschen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'Schreibschutz Kommentar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'Zellen verbinden',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'Zellen teilen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'Kopieren',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'Ausschneiden',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'Nachfolgerzeile einfügen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'Von Vorgängerzeile abkoppeln',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['Spalte ausblenden', 'Spalten ausblenden'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['Spalte einblenden', 'Spalten einblenden'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['Zeile ausblenden', 'Zeilen ausblenden'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['Zeile einblenden', 'Zeilen einblenden'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'Kein Filter',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'Ist leer',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'Ist nicht leer',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'Ist gleich',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'Ist ungleich',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'Beginnt mit',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'Endet mit',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'Enthält',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'Enthält nicht',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'Grösser als',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'Grösser gleich',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'Kleiner als',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'Kleiner gleich',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'Zwischen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'Ausserhalb',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'Nach',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'Vor',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'Heute',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'Morgen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'Gestern',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'Leere Zellen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'Per Bedingung filtern',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'Nach Zahlen filtern',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'Und',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'Oder',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'Alles auswählen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'Auswahl aufheben',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'OK',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'Abbrechen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'Suchen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'Wert',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'Alternativwert'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/de-CH.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/de-DE.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/de-DE.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Stefan Salzl\n * Last updated: Jan 08, 2018\n *\n * Description: Definition file for German - Germany language-country.\n */\n\nconst dictionary = {\n  languageCode: 'de-DE',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'Zeile einfügen oberhalb',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'Zeile einfügen unterhalb',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'Spalte einfügen links',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'Spalte einfügen rechts',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['Zeile löschen', 'Zeilen löschen'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['Spalte löschen', 'Spalten löschen'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'Rückgangig',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'Wiederholen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'Nur Lesezugriff',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'Spalteninhalt löschen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'Ausrichtung',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'Linksbündig',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'Zentriert',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'Rechtsbündig',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'Blocksatz',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'Oben',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'Mitte',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'Unten',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'Spalte fixieren',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'Spaltenfixierung aufheben',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'Rahmen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'Oben',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'Rechts',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'Unten',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'Links',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'Kein Rahmen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'Kommentar hinzufügen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'Kommentar bearbeiten',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'Kommentar löschen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'Schreibschutz Kommentar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'Zellen verbinden',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'Zellen teilen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'Kopieren',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'Ausschneiden',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'Nachfolgerzeile einfügen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'Von Vorgängerzeile abkoppeln',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['Spalte ausblenden', 'Spalten ausblenden'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['Spalte einblenden', 'Spalten einblenden'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['Zeile ausblenden', 'Zeilen ausblenden'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['Zeile einblenden', 'Zeilen einblenden'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'Kein Filter',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'Ist leer',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'Ist nicht leer',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'Ist gleich',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'Ist ungleich',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'Beginnt mit',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'Endet mit',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'Enthält',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'Enthält nicht',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'Größer als',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'Größer gleich',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'Kleiner als',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'Kleiner gleich',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'Zwischen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'Außerhalb',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'Nach',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'Vor',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'Heute',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'Morgen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'Gestern',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'Leere Zellen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'Per Bedingung filtern',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'Nach Zahlen filtern',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'Und',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'Oder',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'Alles auswählen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'Auswahl aufheben',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'OK',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'Abbrechen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'Suchen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'Wert',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'Alternativwert'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/de-DE.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/en-US.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/en-US.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Handsoncode\n * Last updated: Nov 15, 2017\n *\n * Description: Definition file for English - United States language-country.\n */\n\nconst dictionary = {\n  languageCode: 'en-US',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NO_ITEMS\"]]: 'No available options',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'Insert row above',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'Insert row below',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'Insert column left',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'Insert column right',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['Remove row', 'Remove rows'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['Remove column', 'Remove columns'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'Undo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'Redo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'Read only',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'Clear column',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'Alignment',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'Left',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'Center',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'Right',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'Justify',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'Top',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'Middle',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'Bottom',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'Freeze column',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'Unfreeze column',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'Borders',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'Top',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'Right',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'Bottom',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'Left',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'Remove border(s)',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'Add comment',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'Edit comment',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'Delete comment',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'Read-only comment',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'Merge cells',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'Unmerge cells',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'Copy',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS\"]]: ['Copy with header', 'Copy with headers'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS\"]]: ['Copy with group header', 'Copy with group headers'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY\"]]: ['Copy header only', 'Copy headers only'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'Cut',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'Insert child row',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'Detach from parent',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['Hide column', 'Hide columns'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['Show column', 'Show columns'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['Hide row', 'Hide rows'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['Show row', 'Show rows'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'None',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'Is empty',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'Is not empty',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'Is equal to',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'Is not equal to',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'Begins with',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'Ends with',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'Contains',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'Does not contain',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'Greater than',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'Greater than or equal to',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'Less than',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'Less than or equal to',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'Is between',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'Is not between',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'After',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'Before',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'Today',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'Tomorrow',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'Yesterday',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'Blank cells',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'Filter by condition',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'Filter by value',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'And',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'Or',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'Select all',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'Clear',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'OK',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'Cancel',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'Search',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'Value',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'Second value',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CHECKBOX_CHECKED\"]]: 'Checked',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CHECKBOX_UNCHECKED\"]]: 'Unchecked'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/en-US.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/es-MX.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/es-MX.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Handsoncode, Enrique Enciso\n * Last updated: Nov 18, 2022\n *\n * Description: Definition file for Spanish - Mexico language-country.\n */\n\nconst dictionary = {\n  languageCode: 'es-MX',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'Insertar fila arriba',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'Insertar fila abajo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'Insertar columna izquierda',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'Insertar columna derecha',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['Eliminar fila', 'Eliminar filas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['Eliminar columna', 'Eliminar columnas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'Deshacer',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'Rehacer',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'Solo lectura',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'Limpiar columna',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'Alineación',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'Izquierda',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'Centro',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'Derecha',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'Justificar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'Superior',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'Medio',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'Inferior',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'Congelar columna',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'Descongelar columna',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'Bordes',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'Superior',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'Derecho',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'Inferior',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'Izquierdo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'Quitar borde(s)',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'Agregar comentario',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'Editar comentario',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'Borrar comentario',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'Comentario Solo de lectura',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'Unir celdas',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'Separar celdas',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'Copiar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS\"]]: ['Copiar con encabezado', 'Copiar con encabezados'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS\"]]: ['Copiar con encabezado de grupo', 'Copiar con encabezados de grupos'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY\"]]: ['Copiar solo el encabezado', 'Copiar solo los encabezados'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'Cortar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'Insertar fila hija',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'Separar del padre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['Esconder columna', 'Esconder columnas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['Mostrar columna', 'Mostrar columnas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['Esconder fila', 'Esconder filas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['Mostrar fila', 'Mostrar filas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'Ninguna',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'Está vacío',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'No está vacío',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'Es igual a',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'No es igual a',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'Comienza con',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'Termina con',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'Contiene',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'No contiene',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'Mayor que',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'Mayor o igual que',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'Menor que',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'Menor o igual que',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'Es entre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'No es entre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'Después',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'Antes',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'Hoy',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'Mañana',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'Ayer',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'Celdas vacías',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'Filtrar por condición',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'Filtrar por valor',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'Y',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'O',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'Seleccionar todo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'Borrar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'OK',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'Cancelar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'Buscar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'Valor',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'Valor secundario'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/es-MX.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/fr-FR.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/fr-FR.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Stefan Salzl, Thomas Senn\n * Last updated: Feb 05, 2018\n *\n * Description: Definition file for French - France language-country.\n */\n\nconst dictionary = {\n  languageCode: 'fr-FR',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'Insérer une ligne en haut',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'Insérer une ligne en bas',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'Insérer une colonne à gauche',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'Insérer une colonne à droite',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['Supprimer une ligne', 'Supprimer les lignes'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['Supprimer une colonne', 'Supprimer les colonnes'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'Annuler',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'Rétablir',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'Lecture seule',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'Effacer la colonne',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'Alignement',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'Gauche',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'Centre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'Droite',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'Justifié',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'En haut',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'Au milieu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'En bas',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'Figer la colonne',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'Libérer la colonne',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'Bordures',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'Supérieure',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'Droite',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'Inférieure',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'Gauche',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'Pas de bordure',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'Ajouter commentaire',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'Modifier commentaire',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'Supprimer commentaire',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'Commentaire en lecture seule',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'Fusionner les cellules',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'Séparer les cellules',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'Copier',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'Couper',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'Insérer une sous-ligne',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'Détacher de la ligne précédente',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['Masquer colonne', 'Masquer les colonnes'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['Afficher colonne', 'Afficher les colonnes'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['Masquer ligne', 'Masquer les lignes'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['Afficher ligne', 'Afficher les lignes'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'Aucun',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'Est vide',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'N\\'est pas vide',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'Egal à',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'Est différent de',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'Commence par',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'Finit par',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'Contient',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'Ne contient pas',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'Supérieur à',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'Supérieur ou égal à',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'Inférieur à',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'Inférieur ou égal à',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'Est compris entre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'N\\'est pas compris entre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'Après le',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'Avant le',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'Aujourd\\'hui',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'Demain',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'Hier',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'Cellules vides',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'Filtrer par conditions',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'Filtrer par valeurs',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'Et',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'Ou',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'Tout sélectionner',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'Effacer la sélection',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'OK',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'Annuler',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'Chercher',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'Valeur',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'Valeur de remplacement'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/fr-FR.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/hr-HR.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/hr-HR.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Domagoj Lončarić & Ante Živković\n * Last updated: Jan 31, 2024\n *\n * Description: Definition file for Croatian - Croatia language-country.\n */\n\nconst dictionary = {\n  languageCode: 'hr-HR',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NO_ITEMS\"]]: 'Nema dostupnih mogućnosti',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'Umetni redak iznad',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'Umetni redak ispod',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'Umetni stupac lijevo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'Umetni stupac desno',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['Ukloni redak', 'Ukloni retke'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['Ukloni stupac', 'Ukloni stupce'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'Poništi',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'Ponovi',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'Samo za čitanje',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'Očisti stupac',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'Poravnanje',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'Lijevo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'Centar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'Desno',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'Obostrano',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'Gore',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'Sredina',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'Dolje',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'Zamrzni stupac',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'Odmrzni stupac',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'Granice',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'Gore',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'Desno',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'Dolje',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'Lijevo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'Ukloni granicu(e)',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'Dodaj komentar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'Uredi komentar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'Izbriši komentar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'Komentar samo za čitanje',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'Spoji čelije',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'Razdijeli čelije',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'Kopiraj',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS\"]]: ['Kopiraj sa zaglavljem', 'Kopiraj sa zaglavljima'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS\"]]: ['Kopiraj sa grupnim zaglavljem', 'Kopiraj sa grupnim zaglavljima'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY\"]]: ['Kopiraj samo zaglavlje', 'Kopiraj samo zaglavlja'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'Izreži',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'Umetni ugniježđeni redak',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'Odvoji ugniježđeni redak',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['Sakrij stupac', 'Sakrij stupce'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['Prikaži stupac', 'Prikaži stupce'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['Sakrij redak', 'Sakrij retke'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['Prikaži redak', 'Prikaži retke'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'Ništa',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'Prazno',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'Nije prazno',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'Jednako',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'Nije jednako',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'Počinje s',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'Završava s',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'Sadrži',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'Ne sadrži',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'Veće od',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'Veće ili jednako od',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'Manje od',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'Manje ili jednako od',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'Između',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'Nije između',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'Nakon',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'Prije',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'Danas',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'Sutra',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'Jučer',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'Prazna polja',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'Filtriraj po uvjetu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'Filtriraj po vrijednosti',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'I',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'Ili',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'Odaberi sve',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'Očisti',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'U redu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'Odustani',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'Pretraži',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'Vrijednost',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'Druga vrijednost',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CHECKBOX_CHECKED\"]]: 'Označeno',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CHECKBOX_UNCHECKED\"]]: 'Nije označeno'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/hr-HR.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/index.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/index.mjs ***!
  \************************************************************/
/*! exports provided: arAR, csCZ, deCH, deDE, enUS, esMX, frFR, hrHR, itIT, jaJP, koKR, lvLV, nbNO, nlNL, plPL, ptBR, ruRU, srSP, zhCN, zhTW */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ar_AR_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ar-AR.mjs */ \"./node_modules/handsontable/i18n/languages/ar-AR.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"arAR\", function() { return _ar_AR_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _cs_CZ_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cs-CZ.mjs */ \"./node_modules/handsontable/i18n/languages/cs-CZ.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"csCZ\", function() { return _cs_CZ_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _de_CH_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./de-CH.mjs */ \"./node_modules/handsontable/i18n/languages/de-CH.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deCH\", function() { return _de_CH_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _de_DE_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./de-DE.mjs */ \"./node_modules/handsontable/i18n/languages/de-DE.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deDE\", function() { return _de_DE_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _en_US_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./en-US.mjs */ \"./node_modules/handsontable/i18n/languages/en-US.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"enUS\", function() { return _en_US_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _es_MX_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./es-MX.mjs */ \"./node_modules/handsontable/i18n/languages/es-MX.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"esMX\", function() { return _es_MX_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _fr_FR_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./fr-FR.mjs */ \"./node_modules/handsontable/i18n/languages/fr-FR.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"frFR\", function() { return _fr_FR_mjs__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _hr_HR_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./hr-HR.mjs */ \"./node_modules/handsontable/i18n/languages/hr-HR.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hrHR\", function() { return _hr_HR_mjs__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _it_IT_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./it-IT.mjs */ \"./node_modules/handsontable/i18n/languages/it-IT.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"itIT\", function() { return _it_IT_mjs__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _ja_JP_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ja-JP.mjs */ \"./node_modules/handsontable/i18n/languages/ja-JP.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"jaJP\", function() { return _ja_JP_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _ko_KR_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ko-KR.mjs */ \"./node_modules/handsontable/i18n/languages/ko-KR.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"koKR\", function() { return _ko_KR_mjs__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _lv_LV_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./lv-LV.mjs */ \"./node_modules/handsontable/i18n/languages/lv-LV.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lvLV\", function() { return _lv_LV_mjs__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _nb_NO_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./nb-NO.mjs */ \"./node_modules/handsontable/i18n/languages/nb-NO.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nbNO\", function() { return _nb_NO_mjs__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _nl_NL_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./nl-NL.mjs */ \"./node_modules/handsontable/i18n/languages/nl-NL.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nlNL\", function() { return _nl_NL_mjs__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony import */ var _pl_PL_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./pl-PL.mjs */ \"./node_modules/handsontable/i18n/languages/pl-PL.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"plPL\", function() { return _pl_PL_mjs__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony import */ var _pt_BR_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./pt-BR.mjs */ \"./node_modules/handsontable/i18n/languages/pt-BR.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ptBR\", function() { return _pt_BR_mjs__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; });\n\n/* harmony import */ var _ru_RU_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ru-RU.mjs */ \"./node_modules/handsontable/i18n/languages/ru-RU.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ruRU\", function() { return _ru_RU_mjs__WEBPACK_IMPORTED_MODULE_16__[\"default\"]; });\n\n/* harmony import */ var _sr_SP_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./sr-SP.mjs */ \"./node_modules/handsontable/i18n/languages/sr-SP.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"srSP\", function() { return _sr_SP_mjs__WEBPACK_IMPORTED_MODULE_17__[\"default\"]; });\n\n/* harmony import */ var _zh_CN_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./zh-CN.mjs */ \"./node_modules/handsontable/i18n/languages/zh-CN.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zhCN\", function() { return _zh_CN_mjs__WEBPACK_IMPORTED_MODULE_18__[\"default\"]; });\n\n/* harmony import */ var _zh_TW_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./zh-TW.mjs */ \"./node_modules/handsontable/i18n/languages/zh-TW.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zhTW\", function() { return _zh_TW_mjs__WEBPACK_IMPORTED_MODULE_19__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/it-IT.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/it-IT.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Andrea Cattaneo\n * Last updated: Sep 14, 2018\n *\n * Description: Definition file for Italian - Italy language-country.\n */\n\nconst dictionary = {\n  languageCode: 'it-IT',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'Inserisci riga sopra',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'Inserisci riga sotto',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'Inserisci colonna a sinistra',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'Inserisci colonna a destra',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['Rimuovi riga', 'Rimuovi righe'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['Rimuovi colonna', 'Rimuovi colonne'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'Annulla',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'Ripeti',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'Sola lettura',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'Svuota colonna',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'Allineamento',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'Sinistra',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'Centro',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'Destra',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'Giustificato',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'In alto',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'A metà',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'In basso',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'Blocca colonna',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'Sblocca colonna',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'Bordi',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'Sopra',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'Destra',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'Sotto',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'Sinistra',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'Rimuovi bordo(i)',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'Aggiungi commento',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'Modifica commento',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'Rimuovi commento',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'Commento in sola lettura',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'Unisci celle',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'Separa celle',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'Copia',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'Taglia',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'Inserisci riga figlia',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'Scollega da riga madre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['Nascondi colonna', 'Nascondi colonne'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['Mostra colonna', 'Mostra colonne'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['Nascondi riga', 'Nascondi righe'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['Mostra riga', 'Mostra righe'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'Nessuna',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'È vuoto',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'Non è vuoto',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'È uguale a',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'È diverso da',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'Inizia con',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'Termina con',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'Contiene',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'Non contiene',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'Maggiore',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'Maggiore o uguale',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'Minore',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'Minore o uguale',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'È compreso tra',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'Non è compreso tra',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'Dopo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'Prima',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'Oggi',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'Domani',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'Ieri',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'Celle vuote',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'Filtra per condizione',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'Filtra per valore',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'E',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'O',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'Seleziona tutto',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'Pulisci',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'OK',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'Annulla',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'Cerca',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'Valore',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'Sostituisci con'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/it-IT.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/ja-JP.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/ja-JP.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: hand-dot\n * Last updated: Jan 9, 2023\n *\n * Description: Definition file for Japanese - Japan language-country.\n */\n\nconst dictionary = {\n  languageCode: 'ja-JP',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: '行を上に挿入',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: '行を下に挿入',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: '列を左に挿入',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: '列を右に挿入',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['行を削除', '行を削除'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['列を削除', '列を削除'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: '元に戻す',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'やり直し',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: '読み取り専用',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: '列をクリア',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: '配置',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: '左揃え',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: '中央揃え',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: '右揃え',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: '両端揃え',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: '上揃え',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: '中央揃え(垂直)',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: '下揃え',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: '列を固定',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: '列の固定を解除',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: '枠線',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: '上',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: '右',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: '下',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: '左',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: '枠線を削除',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'コメントを追加',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'コメントを編集',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'コメントを削除',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: '読み取り専用コメント',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'セルを結合',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'セルの結合を解除',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'コピー',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS\"]]: ['ヘッダ付きでコピー', 'ヘッダ付きでコピー'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS\"]]: ['グループヘッダ付きでコピー', 'グループヘッダ付きでコピー'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY\"]]: ['ヘッダのみコピー', 'ヘッダのみコピー'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: '切り取り',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: '子の行を挿入',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: '親の行と切り離す',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['列を非表示', '列を非表示'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['列を表示', '列を表示'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['行を非表示', '行を非表示'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['行を表示', '行を表示'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'なし',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: '空白',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: '空白ではない',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: '次と等しい',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: '次と等しくない',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: '次で始まる',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: '次で終わる',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: '次を含む',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: '次を含まない',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: '次より大きい',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: '以上',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: '次より小さい',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: '以下',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: '次の間にある',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: '次の間にない',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: '次より後の日付',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: '次より前の日付',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: '今日',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: '明日',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: '昨日',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: '空白のセル',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: '条件でフィルタ',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: '値でフィルタ',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'かつ',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'もしくは',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'すべて選択',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'クリア',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'OK',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'キャンセル',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: '検索',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: '値',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: '値2'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/ja-JP.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/ko-KR.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/ko-KR.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Hwang, Gun-gu\n * Last updated: Aug 20, 2018\n *\n * Description: Definition file for Korean - Korea language-country.\n */\n\nconst dictionary = {\n  languageCode: 'ko-KR',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: '위쪽에 행 삽입',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: '아래쪽에 행 삽입',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: '왼쪽에 열 삽입',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: '오른쪽에 열 삽입',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['행 삭제', '여러 행 삭제'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['열 삭제', '여러 열 삭제'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: '되돌리기',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: '다시하기',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: '읽기 전용',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: '열 지우기',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: '정렬',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: '왼쪽',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: '중앙',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: '오른쪽',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: '자동',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: '위쪽',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: '가운데',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: '아래쪽',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: '열 고정',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: '열 고정 해제',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: '테두리',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: '위쪽',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: '오른쪽',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: '아래쪽',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: '왼쪽',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: '테두리 지우기',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: '댓글 달기',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: '댓글 편집',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: '댓글 삭제',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: '읽기 전용 댓글',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: '셀 병합',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: '셀 병합 해제',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: '복사',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: '잘라내기',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: '자녀 행 추가',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: '부모행에서 제거',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['열 숨기기', '여러 열 숨기기'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['열 숨기기 해제', '여러 열 숨기기 해제'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['행 숨기기', '여러 행 숨기기'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['행 숨기기 해제', '여러 행 숨기기 해제'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: '조건없음',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: '비어있음',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: '비어있지 않음',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: '같',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: '같지 않음',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: '시작 문자',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: '끝 문자',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: '포함',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: '포함하지 않음',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: '보다 큼',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: '크거나 같음',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: '보다 작',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: '작거나 같음',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: '사이',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: '사이 제외',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: '다음',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: '전',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: '오늘',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: '내일',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: '어제',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: '공란',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: '조건부 필터',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: '값 필터',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: '그리고',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: '또는',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: '전체선택',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: '지우기',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: '확인',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: '취소',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: '찾기',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: '값',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: '두번째 값'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/ko-KR.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/lv-LV.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/lv-LV.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Edgars Voroboks, NullIsNot0\n * Last updated: Dec 5, 2022\n *\n * Description: Definition file for Latvian - Latvia language-country.\n */\n\nconst dictionary = {\n  languageCode: 'lv-LV',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NO_ITEMS\"]]: 'Nav pieejamu opciju',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'Ievietot rindu augšā',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'Ievietot rindu apakšā',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'Ievietot kolonnu pa kreisi',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'Ievietot kolonnu pa labi',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['Dzēst rindu', 'Dzēst rindas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['Dzēst kolonnu', 'Dzēst kolonnas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'Atsaukt',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'Pārtaisīt',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'Lasīšanas režīms',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'Notīrīt kolonnu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'Izvietojums',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'Pa kreisi',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'Centrēts',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'Pa labi',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'Izlīdzināts',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'Augšā',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'Pa vidu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'Apakšā',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'Iesaldēt kolonnu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'Atsaldēt kolonnu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'Robežas',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'Augšā',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'Pa labi',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'Apakšā',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'Pa kreisi',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'Noņemt robežu(-as)',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'Pievienot komentāru',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'Labot komentāru',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'Dzēst komentāru',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'Tikai lasāms komentārs',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'Apvienot šūnas',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'Atvienot šunas',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'Kopēt',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS\"]]: ['Kopēt ar galveni', 'Kopēt ar galvenēm'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS\"]]: ['Kopēt ar grupas galveni', 'Kopēt ar grupas galvenēm'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY\"]]: ['Kopēt tikai galveni', 'Kopēt tikai galvenes'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'Izgriezt',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'Ievietot pakārtoto rindu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'Atdalīt no vecāka',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['Palēpt kolonnu', 'Palēpt kolonnas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['Rādīt kolonnu', 'Rādīt kolonnas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['Palēpt rindu', 'Paslēpt rindas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['Rādīt rindu', 'Rādīt rindas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'Nekas',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'Ir tukšs',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'Nav tukšs',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'Vienāds ar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'Nav vienāds ar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'Sākas ar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'Beidzas ar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'Satur',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'Nesatur',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'Lielāks par',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'Lielāks vai vienāds ar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'Mazāks par',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'Mazāks vai vienāds ar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'Ir starp',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'Nav starp',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'Pēc',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'Pirms',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'Šodien',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'Rītdien',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'Vakar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'Tukšas šūnas',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'Filtrēt pēc nosacījuma',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'Filtrēt pēc vērtības',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'Un',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'Vai',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'Izvēlēties visu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'Notīrīt',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'Labi',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'Atcelt',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'Meklēt',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'Vērtība',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'Otra vērtība'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/lv-LV.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/nb-NO.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/nb-NO.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Simon Borøy-Johnsen (TheSimoms)\n * Last updated: Dec 19, 2017\n *\n * Description: Definition file for Norwegian Bokmål - Norway language-country.\n */\n\nconst dictionary = {\n  languageCode: 'nb-NO',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'Sett inn over',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'Sett inn under',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'Sett inn til venstre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'Sett inn til høyre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['Fjern rad', 'Fjern rader'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['Fjern kolonne', 'Fjern kolonner'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'Angre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'Gjør om',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'Skrivebeskyttet',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'Tøm kolonne',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'Juster',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'Venstre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'Midtstill',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'Høyre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'Tilpasset',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'Øverst',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'På midten',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'Nederst',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'Frys kolonne',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'Frigi kolonne',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'Kantlinjer',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'Over',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'Til høyre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'Under',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'Til venstre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'Fjern kantlinje(r)',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'Legg til kommentar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'Endre kommentar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'Fjern kommentar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'Skrivebeskytt kommentar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'Slå sammen celler',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'Opphev sammenslåing',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'Kopier',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'Klipp ut',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'Sett inn underrad',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'Frigi fra gruppe',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['Skjul kolonne', 'Skjul kolonner'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['Vis kolonne', 'Vis kolonner'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['Skjul rad', 'Skjul rader'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['Vis rad', 'Vis rader'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'Ingen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'Er tom',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'Er ikke tom',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'Er lik',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'Er ikke lik',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'Begynner med',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'Slutter med',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'Inneholder',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'Inneholder ikke',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'Større enn',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'Større enn eller lik',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'Mindre enn',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'Mindre enn eller lik',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'Er mellom',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'Er ikke mellom',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'Etter',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'Før',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'I dag',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'I morgen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'I går',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'Tomme celler',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'Filtrer etter betingelse',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'Filtrer etter verdi',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'Og',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'Eller',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'Velg alle',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'Tøm',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'OK',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'Avbryt',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'Søk',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'Verdi',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'Andre verdi'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/nb-NO.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/nl-NL.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/nl-NL.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Tomas Rapkauskas, Anton Brouwer, webjazznl\n * Last updated: Dec 5, 2022\n *\n * Description: Definition file for Dutch - The Netherlands language-country.\n */\n\nconst dictionary = {\n  languageCode: 'nl-NL',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'Rij boven invoegen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'Rij onder invoegen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'Kolom links invoegen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'Kolom rechts invoegen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['Rij verwijderen', 'Rijen verwijderen'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['Kolom verwijderen', 'Kolommen verwijderen'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'Ongedaan maken',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'Opnieuw uitvoeren',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'Alleen lezen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'Kolom leegmaken',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'Uitlijning',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'Links',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'Gecentreerd',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'Rechts',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'Uitvullen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'Boven',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'Midden',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'Onder',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'Kolom blokkeren',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'Kolom blokkering opheffen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'Randen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'Boven',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'Rechts',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'Onder',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'Links',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'Rand(en) verwijderen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'Opmerking toevoegen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'Opmerking bewerken',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'Opmerking verwijderen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'Opmerking Alleen-lezen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'Cellen samenvoegen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'Samenvoeging van cellen opheffen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'Kopiëren',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS\"]]: ['Kopiëren met koptekst', 'Kopiëren met kopteksten'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS\"]]: ['Kopiëren met groepskoptekst', 'Kopiëren met groepskopteksten'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY\"]]: ['Kopiëren koptekst', 'Kopiëren kopteksten'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'Knippen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'Geneste rij invoegen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'Geneste rij ontkoppelen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['Kolom verbergen', 'Kolommen verbergen'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['Kolom zichbaar maken', 'Kolommen zichtbaar maken'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['Rij verbergen', 'Rijen verbergen'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['Rij zichtbaar maken', 'Rijen zichtbaar maken'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'Geen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'Is leeg',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'Is niet leeg',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'Is gelijk aan',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'Is niet gelijk aan',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'Begint met',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'Eindigt op',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'Bevat',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'Bevat niet',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'Is groter',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'Is groter of gelijk aan',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'Is kleiner dan',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'Is kleiner dan of gelijk aan',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'Is tussen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'Ligt niet tussen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'Na',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'Voor',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'Vandaag',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'Morgen',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'Gisteren',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'Cellen leegmaken',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'Filteren op conditie',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'Filteren op waarde',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'En',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'Of',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'Alles selecteren',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'Leeg maken',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'OK',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'Annuleren',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'Zoeken',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'Waarde',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'Tweede waarde'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/nl-NL.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/pl-PL.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/pl-PL.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Handsoncode\n * Last updated: Dec 5, 2022\n *\n * Description: Definition file for Polish - Poland language-country.\n */\n\nconst dictionary = {\n  languageCode: 'pl-PL',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NO_ITEMS\"]]: 'Brak dostępnych opcji',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'Wstaw wiersz powyżej',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'Wstaw wiersz poniżej',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'Wstaw kolumnę z lewej',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'Wstaw kolumnę z prawej',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['Usuń wiersz', 'Usuń wiersze'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['Usuń kolumnę', 'Usuń kolumny'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'Cofnij',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'Ponów',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'Tylko do odczytu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'Wyczyść kolumnę',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'Wyrównanie',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'Do lewej',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'Do środka',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'Do prawej',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'Wyjustuj',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'Do góry',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'Wyśrodkuj',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'Do dołu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'Zablokuj kolumnę',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'Odblokuj kolumnę',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'Obramowanie',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'Krawędź górna',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'Krawędź prawa',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'Krawędź dolna',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'Krawędź lewa',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'Usuń obramowanie(a)',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'Dodaj komentarz',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'Edytuj komentarz',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'Usuń komentarz',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'Komentarz tylko do odczytu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'Scal komórki',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'Rozdziel komórki',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'Kopiuj',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS\"]]: ['Kopiuj z nagłówkiem', 'Kopiuj z nagłówkami'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS\"]]: ['Kopiuj z nagłówkiem grupowym', 'Kopiuj z nagłówkami grupowymi'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY\"]]: ['Kopiuj sam nagłówek', 'Kopiuj same nagłówki'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'Wytnij',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'Wstaw wiersz podrzędny',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'Odłącz od nadrzędnego',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['Ukryj kolumnę', 'Ukryj kolumny'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['Pokaż kolumnę', 'Pokaż kolumny'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['Ukryj wiersz', 'Ukryj wiersze'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['Pokaż wiersz', 'Pokaż wiersze'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'Brak',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'Komórka jest pusta',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'Komórka nie jest pusta',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'Jest równe',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'Jest różne od',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'Tekst zaczyna się od',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'Tekst kończy się na',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'Tekst zawiera fragment',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'Tekst nie zawiera fragmentu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'Większe niż',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'Większe lub równe',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'Mniejsze niż',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'Mniejsze lub równe',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'Jest pomiędzy',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'Nie jest pomiędzy',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'Data późniejsza niż',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'Data wcześniejsza niż',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'Dzisiaj',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'Jutro',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'Wczoraj',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'Puste miejsca',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'Filtruj wg warunku',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'Filtruj wg wartości',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'Oraz',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'Lub',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'Zaznacz wszystko',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'Wyczyść',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'OK',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'Anuluj',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'Szukaj',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'Wartość',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'Druga wartość',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CHECKBOX_CHECKED\"]]: 'Zaznaczony',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CHECKBOX_UNCHECKED\"]]: 'Odznaczony'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/pl-PL.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/pt-BR.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/pt-BR.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Júlio C. Zuppa\n * Last updated: Jan 12, 2018\n *\n * Description: Definition file for Portuguese - Brazil language-country.\n */\n\nconst dictionary = {\n  languageCode: 'pt-BR',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'Inserir linha acima',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'Inserir linha abaixo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'Inserir coluna esquerda',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'Inserir coluna direita',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['Excluir linha', 'Excluir linhas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['Excluir coluna', 'Excluir colunas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'Desfazer',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'Refazer',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'Somente leitura',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'Limpar coluna',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'Alinhamento',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'Esquerda',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'Centralizado',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'Direita',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'Justificado',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'Superior',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'Meio',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'Inferior',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'Congelar coluna',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'Descongelar coluna',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'Bordas',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'Superior',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'Direita',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'Inferior',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'Esquerda',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'Excluir bordas(s)',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'Incluir comentário',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'Editar comentário',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'Remover comentário',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'Comentário somente leitura',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'Mesclar células',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'Desfazer mesclagem de células',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'Copiar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'Recortar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'Inserir linha filha',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'Desanexar da linha pai',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['Ocultar coluna', 'Ocultar colunas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['Exibir coluna', 'Exibir colunas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['Ocultar linha', 'Ocultar linhas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['Exibir linha', 'Exibir linhas'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'Nenhum',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'É vazio',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'Não é vazio',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'É igual a',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'É diferente de',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'Começa com',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'Termina com',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'Contém',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'Não contém',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'Maior que',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'Maior ou igual a',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'Menor que',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'Maior ou igual a',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'Está entre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'Não está entre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'Depois',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'Antes',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'Hoje',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'Amanhã',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'Ontem',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'Células vazias',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'Filtrar por condição',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'Filtrar por valor',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'E',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'Ou',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'Selecionar tudo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'Limpar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'OK',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'Cancelar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'Localizar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'Valor',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'Segundo valor'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/pt-BR.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/ru-RU.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/ru-RU.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Alexey Rogachev\n * Last updated: Feb 28, 2018\n *\n * Description: Definition file for Russian - Russia language-country.\n */\n\nconst dictionary = {\n  languageCode: 'ru-RU',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'Вставить строку выше',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'Вставить строку ниже',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'Вставить столбец слева',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'Вставить столбец справа',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['Удалить строку', 'Удалить строки'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['Удалить столбец', 'Удалить столбцы'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'Отменить',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'Повторить',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'Только для чтения',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'Очистить столбец',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'Выравнивание',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'По левому краю',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'По центру',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'По правому краю',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'По ширине',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'По верхнему краю',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'По центру',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'По нижнему краю',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'Закрепить столбец',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'Открепить столбец',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'Границы',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'Сверху',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'Справа',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'Снизу',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'Слева',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'Удалить границу(ы)',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'Добавить комментарий',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'Редактировать комментарий',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'Удалить комментарий',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'Комментарий только для чтения',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'Объединить ячейки',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'Разделить ячейки',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'Копировать',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'Вырезать',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'Вставить дочернюю строку',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'Отделить от родителя',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['Скрыть столбец', 'Скрыть столбцы'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['Показать столбец', 'Показать столбцы'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['Скрыть строку', 'Скрыть строки'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['Показать строку', 'Показать строки'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'Отсутствует',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'Пусто',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'Не пусто',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'Равно',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'Не равно',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'Начинается на',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'Заканчивается на',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'Содержит',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'Не содержит',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'Больше чем',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'Больше или равно',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'Меньше чем',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'Меньше или равно',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'Между',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'Не между',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'После',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'До',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'Сегодня',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'Завтра',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'Вчера',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'Пустые ячейки',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'Фильтр по условию',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'Фильтр по значению',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'И',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'Или',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'Выбрать все',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'Убрать',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'OK',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'Отмена',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'Поиск',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'Значение',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'Второе значение'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/ru-RU.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/sr-SP.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/sr-SP.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Author: Ivan Zarkovic\n * Last updated: May 9, 2022\n *\n * Description: Definition file for Serbian - Republic of Serbia language-country.\n */\n\nconst dictionary = {\n  languageCode: 'sr-SP',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NO_ITEMS\"]]: 'Nema dostupnih opcija',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: 'Unesi red iznad',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: 'Unesi red ispod',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: 'Unesi kolonu levo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: 'Insert kolonu desno',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['Ukloni red', 'Ukloni redove'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['Ukloni kolonu', 'Ukloni kolone'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: 'Poništi',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: 'Ponovi',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: 'Samo za čitanje',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: 'Obriši kolonu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: 'Poravnanje',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: 'Levo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: 'Centar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: 'Desno',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: 'Složeno',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: 'Gore',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: 'Sredina',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: 'Dole',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: 'Zamrzni kolonu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: 'Odmrzni kolonu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: 'Ivica',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: 'Gore',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: 'Desno',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: 'Dole',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: 'Levo',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: 'Ukloni ivicu(e)',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: 'Dodaj komentar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: 'Izmeni komentar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: 'Obriši komentar',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: 'Komentar samo za čitanje',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: 'Spoji ćelije',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: 'Odvoji ćelije',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: 'Kopiraj',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: 'Iseci',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: 'Unesi ugnježdeni red',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: 'Odvoji ugnježdeni red',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['Sakrij kolonu', 'Sakrij kolone'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['Prikaži kolonu', 'Prikaži kolone'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['Sakrij red', 'Sakrij redove'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['Prikaži red', 'Prikaži redove'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: 'Nema',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: 'Je prazno',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: 'Nije prazno',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: 'Je jednako',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: 'Nije jednako',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: 'Počinje sa',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: 'Završava se sa',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: 'Sadrži',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: 'Ne sadrži',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: 'Veće od',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: 'Veće od ili jednako',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: 'Manje od',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: 'Manje od ili jednako',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: 'Je između',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: 'Nije između',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: 'Posle',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: 'Pre',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: 'Danas',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: 'Sutra',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: 'Juče',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: 'Prazne ćelije',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: 'Filtriraj po uslovu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: 'Filtriraj po vrednosti',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: 'I',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: 'Ili',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: 'Selektuj sve',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: 'Očisti',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: 'U redu',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: 'Otkaži',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: 'Pretraga',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: 'Vrednost',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: 'Druga vrednost'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/sr-SP.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/zh-CN.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/zh-CN.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: soakit, HChenZi\n * Last updated: Mar 09, 2023\n *\n * Description: Definition file for Chinese - China language-country.\n */\n\nconst dictionary = {\n  languageCode: 'zh-CN',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: '上方插入行',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: '下方插入行',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: '左方插入列',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: '右方插入列',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['移除该行', '移除多行'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['移除该列', '移除多列'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: '撤销',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: '恢复',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: '只读',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: '清空该列',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: '对齐',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: '左对齐',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: '水平居中',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: '右对齐',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: '两端对齐',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: '顶端对齐',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: '垂直居中',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: '底端对齐',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: '冻结该列',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: '取消冻结',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: '边框',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: '上',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: '右',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: '下',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: '左',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: '移除边框',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: '插入批注',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: '编辑批注',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: '删除批注',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: '只读批注',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: '合并',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: '取消合并',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: '复制',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS\"]]: '带标题的复制',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS\"]]: '带标题组的复制',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY\"]]: '仅复制标题',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: '剪切',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: '插入子行',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: '与母行分离',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['隐藏该列', '隐藏多列'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['显示该列', '显示多列'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['隐藏该行', '隐藏多行'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['显示该行', '显示多行'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: '无',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: '为空',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: '不为空',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: '等于',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: '不等于',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: '开头是',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: '结尾是',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: '包含',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: '不包含',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: '大于',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: '大于或等于',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: '小于',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: '小于或等于',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: '在此范围',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: '不在此范围',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: '之后',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: '之前',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: '今天',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: '明天',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: '昨天',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: '空白单元格',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: '按条件过滤',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: '按值过滤',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: '且',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: '或',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: '全选',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: '清除',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: '确认',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: '取消',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: '搜索',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: '值',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: '第二值'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/zh-CN.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/languages/zh-TW.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/i18n/languages/zh-TW.mjs ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/**\n * @preserve\n * Authors: Phyllis Yen\n * Last updated: Mar 9, 2018\n *\n * Description: Definition file for Chinese - Taiwan language-country.\n */\n\nconst dictionary = {\n  languageCode: 'zh-TW',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]]: '上方插入列',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]]: '下方插入列',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]]: '左方插入欄',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]]: '右方插入欄',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"]]: ['移除該列', '移除多列'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"]]: ['移除該欄', '移除多欄'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]]: '復原',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]]: '取消復原',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]]: '唯讀',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]]: '清空該欄',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]]: '對齊',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]]: '靠左',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]]: '水平置中',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]]: '靠右',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]]: '左右對齊',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]]: '靠上',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]]: '垂直置中',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]]: '靠下',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]]: '凍結欄位',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]]: '取消凍結欄位',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS\"]]: '邊界',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]]: '上',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]]: '右',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]]: '下',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]]: '左',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]]: '移除邊界',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]]: '加入評論',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]]: '編輯評論',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]]: '刪除評論',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]]: '唯讀評論',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]]: '合併欄位',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]]: '取消合併欄位',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]]: '複製',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]]: '剪下',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]]: '插入子列',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]]: '與母列分離',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"]]: ['隱藏該欄', '隱藏多欄'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"]]: ['顯示該欄', '顯示多欄'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"]]: ['隱藏該列', '隱藏多列'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"]]: ['顯示該列', '顯示多列'],\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"]]: '無',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"]]: '為空',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"]]: '不為空',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"]]: '等於',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"]]: '不等於',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"]]: '開頭是',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"]]: '結尾是',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"]]: '包含',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"]]: '不包含',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"]]: '大於',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"]]: '大於或等於',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"]]: '小於',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"]]: '小於或等於',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"]]: '在此範圍',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"]]: '不在此範圍',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_AFTER\"]]: '之後',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEFORE\"]]: '之前',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TODAY\"]]: '今天',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_TOMORROW\"]]: '明天',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_YESTERDAY\"]]: '昨天',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_VALUES_BLANK_CELLS\"]]: '空白格',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"]]: '依條件過濾',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_DIVS_FILTER_BY_VALUE\"]]: '依值過濾',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"]]: '且',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"]]: '或',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_SELECT_ALL\"]]: '全選',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CLEAR\"]]: '清除',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_OK\"]]: '確認',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_CANCEL\"]]: '取消',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"]]: '搜尋',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]]: '值',\n  [_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]]: '第二值'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (dictionary);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/languages/zh-TW.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/phraseFormatters/index.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/i18n/phraseFormatters/index.mjs ***!
  \*******************************************************************/
/*! exports provided: register, getAll, registerPhraseFormatter, getPhraseFormatters */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"register\", function() { return register; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAll\", function() { return getAll; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerPhraseFormatter\", function() { return register; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getPhraseFormatters\", function() { return getAll; });\n/* harmony import */ var _utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../../utils/staticRegister.mjs */ \"./node_modules/handsontable/utils/staticRegister.mjs\");\n/* harmony import */ var _pluralize_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pluralize.mjs */ \"./node_modules/handsontable/i18n/phraseFormatters/pluralize.mjs\");\n\n\nconst {\n  register: registerGloballyPhraseFormatter,\n  getValues: getGlobalPhraseFormatters\n} = Object(_utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('phraseFormatters');\n\n/**\n * Register phrase formatter.\n *\n * @param {string} name Name of formatter.\n * @param {Function} formatterFn Function which will be applied on phrase propositions. It will transform them if it's possible.\n */\nfunction register(name, formatterFn) {\n  registerGloballyPhraseFormatter(name, formatterFn);\n}\n\n/**\n * Get all registered previously formatters.\n *\n * @returns {Array}\n */\nfunction getAll() {\n  return getGlobalPhraseFormatters();\n}\n\nregister('pluralize', _pluralize_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/phraseFormatters/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/phraseFormatters/pluralize.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/i18n/phraseFormatters/pluralize.mjs ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return pluralize; });\n/**\n * Try to choose plural form from available phrase propositions.\n *\n * @param {Array} phrasePropositions List of phrases propositions.\n * @param {number} pluralForm Number determining which phrase form should be used.\n *\n * @returns {string|Array} One particular phrase if it's possible, list of unchanged phrase propositions otherwise.\n */\nfunction pluralize(phrasePropositions, pluralForm) {\n  const isPluralizable = Array.isArray(phrasePropositions) && Number.isInteger(pluralForm);\n  if (isPluralizable) {\n    return phrasePropositions[pluralForm];\n  }\n  return phrasePropositions;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/phraseFormatters/pluralize.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/registry.mjs":
/*!*****************************************************!*\
  !*** ./node_modules/handsontable/i18n/registry.mjs ***!
  \*****************************************************/
/*! exports provided: dictionaryKeys, DEFAULT_LANGUAGE_CODE, registerLanguageDictionary, getLanguageDictionary, hasLanguageDictionary, getDefaultLanguageDictionary, getLanguagesDictionaries, getTranslatedPhrase, getValidLanguageCode */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dictionaryKeys\", function() { return dictionaryKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_LANGUAGE_CODE\", function() { return DEFAULT_LANGUAGE_CODE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerLanguageDictionary\", function() { return registerLanguageDictionary; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLanguageDictionary\", function() { return getLanguageDictionary; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasLanguageDictionary\", function() { return hasLanguageDictionary; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDefaultLanguageDictionary\", function() { return getDefaultLanguageDictionary; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLanguagesDictionaries\", function() { return getLanguagesDictionaries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getTranslatedPhrase\", function() { return getTranslatedPhrase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getValidLanguageCode\", function() { return getValidLanguageCode; });\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/i18n/utils.mjs\");\n/* harmony import */ var _utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/staticRegister.mjs */ \"./node_modules/handsontable/utils/staticRegister.mjs\");\n/* harmony import */ var _phraseFormatters_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./phraseFormatters/index.mjs */ \"./node_modules/handsontable/i18n/phraseFormatters/index.mjs\");\n/* harmony import */ var _languages_en_US_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./languages/en-US.mjs */ \"./node_modules/handsontable/i18n/languages/en-US.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n\n\n\n\n\n\n\nconst dictionaryKeys = _constants_mjs__WEBPACK_IMPORTED_MODULE_7__;\nconst DEFAULT_LANGUAGE_CODE = _languages_en_US_mjs__WEBPACK_IMPORTED_MODULE_6__[\"default\"].languageCode;\nconst {\n  register: registerGloballyLanguageDictionary,\n  getItem: getGlobalLanguageDictionary,\n  hasItem: hasGlobalLanguageDictionary,\n  getValues: getGlobalLanguagesDictionaries\n} = Object(_utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('languagesDictionaries');\n\n/**\n * Register automatically the default language dictionary.\n */\nregisterLanguageDictionary(_languages_en_US_mjs__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n\n/**\n * Register language dictionary for specific language code.\n *\n * @param {string|object} languageCodeOrDictionary Language code for specific language i.e. 'en-US', 'pt-BR', 'de-DE' or object representing dictionary.\n * @param {object} dictionary Dictionary for specific language (optional if first parameter has already dictionary).\n * @returns {object}\n */\nfunction registerLanguageDictionary(languageCodeOrDictionary, dictionary) {\n  let languageCode = languageCodeOrDictionary;\n  let dictionaryObject = dictionary;\n\n  // Dictionary passed as first argument.\n  if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(languageCodeOrDictionary)) {\n    dictionaryObject = languageCodeOrDictionary;\n    languageCode = dictionaryObject.languageCode;\n  }\n  extendLanguageDictionary(languageCode, dictionaryObject);\n  registerGloballyLanguageDictionary(languageCode, Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"deepClone\"])(dictionaryObject));\n\n  // We do not allow user to work with dictionary by reference, it can cause lot of bugs.\n  return Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"deepClone\"])(dictionaryObject);\n}\n\n/**\n * Extend handled dictionary by default language dictionary. As result, if any dictionary key isn't defined for specific language, it will be filled with default language value (\"dictionary gaps\" are supplemented).\n *\n * @private\n * @param {string} languageCode Language code.\n * @param {object} dictionary Dictionary which is extended.\n */\nfunction extendLanguageDictionary(languageCode, dictionary) {\n  if (languageCode !== DEFAULT_LANGUAGE_CODE) {\n    Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_3__[\"extendNotExistingKeys\"])(dictionary, getGlobalLanguageDictionary(DEFAULT_LANGUAGE_CODE));\n  }\n}\n\n/**\n * Get language dictionary for specific language code.\n *\n * @param {string} languageCode Language code.\n * @returns {object} Object with constants representing identifiers for translation (as keys) and corresponding translation phrases (as values).\n */\nfunction getLanguageDictionary(languageCode) {\n  if (!hasLanguageDictionary(languageCode)) {\n    return null;\n  }\n  return Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"deepClone\"])(getGlobalLanguageDictionary(languageCode));\n}\n\n/**\n *\n * Get if language with specified language code was registered.\n *\n * @param {string} languageCode Language code for specific language i.e. 'en-US', 'pt-BR', 'de-DE'.\n * @returns {boolean}\n */\nfunction hasLanguageDictionary(languageCode) {\n  return hasGlobalLanguageDictionary(languageCode);\n}\n\n/**\n * Get default language dictionary.\n *\n * @returns {object} Object with constants representing identifiers for translation (as keys) and corresponding translation phrases (as values).\n */\nfunction getDefaultLanguageDictionary() {\n  return _languages_en_US_mjs__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\n}\n\n/**\n * Get registered language dictionaries.\n *\n * @returns {Array}\n */\nfunction getLanguagesDictionaries() {\n  return getGlobalLanguagesDictionaries();\n}\n\n/**\n * Get phrase for specified dictionary key.\n *\n * @param {string} languageCode Language code for specific language i.e. 'en-US', 'pt-BR', 'de-DE'.\n * @param {string} dictionaryKey Constant which is dictionary key.\n * @param {*} argumentsForFormatters Arguments which will be handled by formatters.\n *\n * @returns {string}\n */\nfunction getTranslatedPhrase(languageCode, dictionaryKey, argumentsForFormatters) {\n  const languageDictionary = getLanguageDictionary(languageCode);\n  if (languageDictionary === null) {\n    return null;\n  }\n  const phrasePropositions = languageDictionary[dictionaryKey];\n  if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isUndefined\"])(phrasePropositions)) {\n    return null;\n  }\n  const formattedPhrase = getFormattedPhrase(phrasePropositions, argumentsForFormatters);\n  if (Array.isArray(formattedPhrase)) {\n    return formattedPhrase[0];\n  }\n  return formattedPhrase;\n}\n\n/**\n * Get formatted phrase from phrases propositions for specified dictionary key.\n *\n * @private\n * @param {Array|string} phrasePropositions List of phrase propositions.\n * @param {*} argumentsForFormatters Arguments which will be handled by formatters.\n *\n * @returns {Array|string}\n */\nfunction getFormattedPhrase(phrasePropositions, argumentsForFormatters) {\n  let formattedPhrasePropositions = phrasePropositions;\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayEach\"])(Object(_phraseFormatters_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"getPhraseFormatters\"])(), formatter => {\n    formattedPhrasePropositions = formatter(phrasePropositions, argumentsForFormatters);\n  });\n  return formattedPhrasePropositions;\n}\n\n/**\n * Returns valid language code. If the passed language code doesn't exist default one will be used.\n *\n * @param {string} languageCode Language code for specific language i.e. 'en-US', 'pt-BR', 'de-DE'.\n * @returns {string}\n */\nfunction getValidLanguageCode(languageCode) {\n  let normalizedLanguageCode = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_3__[\"normalizeLanguageCode\"])(languageCode);\n  if (!hasLanguageDictionary(normalizedLanguageCode)) {\n    normalizedLanguageCode = DEFAULT_LANGUAGE_CODE;\n    Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_3__[\"warnUserAboutLanguageRegistration\"])(languageCode);\n  }\n  return normalizedLanguageCode;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/registry.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/i18n/utils.mjs":
/*!**************************************************!*\
  !*** ./node_modules/handsontable/i18n/utils.mjs ***!
  \**************************************************/
/*! exports provided: extendNotExistingKeys, createCellHeadersRange, normalizeLanguageCode, warnUserAboutLanguageRegistration */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendNotExistingKeys\", function() { return extendNotExistingKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createCellHeadersRange\", function() { return createCellHeadersRange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeLanguageCode\", function() { return normalizeLanguageCode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"warnUserAboutLanguageRegistration\", function() { return warnUserAboutLanguageRegistration; });\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n\n\n\n\n/**\n * Perform shallow extend of a target object with only this extension's properties which doesn't exist in the target.\n *\n * TODO: Maybe it should be moved to global helpers? It's changed `extend` function.\n *\n * @param {object} target An object that will receive the new properties.\n * @param {object} extension An object containing additional properties to merge into the target.\n * @returns {object}\n */\nfunction extendNotExistingKeys(target, extension) {\n  Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"objectEach\"])(extension, (value, key) => {\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isUndefined\"])(target[key])) {\n      target[key] = value;\n    }\n  });\n  return target;\n}\n\n/**\n * Create range of values basing on cell indexes. For example, it will create below ranges for specified function arguments:\n *\n * createCellHeadersRange(2, 7) => `2-7`\n * createCellHeadersRange(7, 2) => `2-7`\n * createCellHeadersRange(0, 4, 'A', 'D') => `A-D`\n * createCellHeadersRange(4, 0, 'D', 'A') => `A-D`.\n *\n * @param {number} firstRowIndex Index of \"first\" cell.\n * @param {number} nextRowIndex Index of \"next\" cell.\n * @param {*} fromValue Value which will represent \"first\" cell.\n * @param {*} toValue Value which will represent \"next\" cell.\n * @returns {string} Value representing range i.e. A-Z, 11-15.\n */\nfunction createCellHeadersRange(firstRowIndex, nextRowIndex) {\n  let fromValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : firstRowIndex;\n  let toValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : nextRowIndex;\n  // Will swap `fromValue` with `toValue` if it's necessary.\n  let [from, to] = [fromValue, toValue];\n  if (firstRowIndex > nextRowIndex) {\n    [from, to] = [to, from];\n  }\n  return `${from}-${to}`;\n}\n\n/**\n * Normalize language code. It takes handled languageCode proposition and change it to proper languageCode.\n * For example, when it takes `eN-us` as parameter it return `en-US`.\n *\n * @param {string} languageCode Language code for specific language i.e. 'en-US', 'pt-BR', 'de-DE'.\n * @returns {string}\n */\nfunction normalizeLanguageCode(languageCode) {\n  const languageCodePattern = /^([a-zA-Z]{2})-([a-zA-Z]{2})$/;\n  const partsOfLanguageCode = languageCodePattern.exec(languageCode);\n  if (partsOfLanguageCode) {\n    return `${partsOfLanguageCode[1].toLowerCase()}-${partsOfLanguageCode[2].toUpperCase()}`;\n  }\n  return languageCode;\n}\n\n/**\n *\n * Warn user if there is no registered language.\n *\n * @param {string} languageCode Language code for specific language i.e. 'en-US', 'pt-BR', 'de-DE'.\n */\nfunction warnUserAboutLanguageRegistration(languageCode) {\n  if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isDefined\"])(languageCode)) {\n    Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_2__[\"error\"])(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_3__[\"toSingleLine\"]`Language with code \"${languageCode}\" was not found. You should register particular language\\x20\n    before using it. Read more about this issue at: https://docs.handsontable.com/i18n/missing-language-code.`);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/i18n/utils.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/index.mjs":
/*!*********************************************!*\
  !*** ./node_modules/handsontable/index.mjs ***!
  \*********************************************/
/*! exports provided: CellCoords, CellRange, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base.mjs */ \"./node_modules/handsontable/base.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CellCoords\", function() { return _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CellCoords\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CellRange\", function() { return _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CellRange\"]; });\n\n/* harmony import */ var _registry_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./registry.mjs */ \"./node_modules/handsontable/registry.mjs\");\n/* harmony import */ var _eventManager_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./eventManager.mjs */ \"./node_modules/handsontable/eventManager.mjs\");\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n/* harmony import */ var _helpers_wrappers_jquery_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helpers/wrappers/jquery.mjs */ \"./node_modules/handsontable/helpers/wrappers/jquery.mjs\");\n/* harmony import */ var _utils_ghostTable_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/ghostTable.mjs */ \"./node_modules/handsontable/utils/ghostTable.mjs\");\n/* harmony import */ var _utils_parseTable_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/parseTable.mjs */ \"./node_modules/handsontable/utils/parseTable.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./helpers/browser.mjs */ \"./node_modules/handsontable/helpers/browser.mjs\");\n/* harmony import */ var _helpers_data_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./helpers/data.mjs */ \"./node_modules/handsontable/helpers/data.mjs\");\n/* harmony import */ var _helpers_date_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./helpers/date.mjs */ \"./node_modules/handsontable/helpers/date.mjs\");\n/* harmony import */ var _helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./helpers/feature.mjs */ \"./node_modules/handsontable/helpers/feature.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_string_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./helpers/string.mjs */ \"./node_modules/handsontable/helpers/string.mjs\");\n/* harmony import */ var _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./helpers/unicode.mjs */ \"./node_modules/handsontable/helpers/unicode.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _editors_registry_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./editors/registry.mjs */ \"./node_modules/handsontable/editors/registry.mjs\");\n/* harmony import */ var _renderers_registry_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./renderers/registry.mjs */ \"./node_modules/handsontable/renderers/registry.mjs\");\n/* harmony import */ var _validators_registry_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./validators/registry.mjs */ \"./node_modules/handsontable/validators/registry.mjs\");\n/* harmony import */ var _cellTypes_registry_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./cellTypes/registry.mjs */ \"./node_modules/handsontable/cellTypes/registry.mjs\");\n/* harmony import */ var _plugins_registry_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./plugins/registry.mjs */ \"./node_modules/handsontable/plugins/registry.mjs\");\n/* harmony import */ var _plugins_base_index_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./plugins/base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\nvar _Handsontable$cellTyp, _Handsontable$editors, _Handsontable$rendere, _Handsontable$validat, _Handsontable$plugins;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nObject(_registry_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerAllModules\"])();\nObject(_helpers_wrappers_jquery_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n// TODO: Remove this exports after rewrite tests about this module\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].__GhostTable = _utils_ghostTable_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]._getListenersCounter = _eventManager_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getListenersCounter\"]; // For MemoryLeak tests\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]._getRegisteredMapsCounter = _translations_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"getRegisteredMapsCounter\"]; // For MemoryLeak tests\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EventManager = _eventManager_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\n// Export all helpers to the Handsontable object\nconst HELPERS = [_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_7__, _helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_8__, _helpers_data_mjs__WEBPACK_IMPORTED_MODULE_9__, _helpers_date_mjs__WEBPACK_IMPORTED_MODULE_10__, _helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_11__, _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_12__, _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_13__, _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_14__, _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_15__, _helpers_string_mjs__WEBPACK_IMPORTED_MODULE_16__, _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_17__, _utils_parseTable_mjs__WEBPACK_IMPORTED_MODULE_6__];\nconst DOM = [_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_18__, _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_19__];\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].helper = {};\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].dom = {};\n\n// Fill general helpers.\n_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_7__[\"arrayEach\"](HELPERS, helper => {\n  _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_7__[\"arrayEach\"](Object.getOwnPropertyNames(helper), key => {\n    if (key.charAt(0) !== '_') {\n      _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].helper[key] = helper[key];\n    }\n  });\n});\n\n// Fill DOM helpers.\n_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_7__[\"arrayEach\"](DOM, helper => {\n  _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_7__[\"arrayEach\"](Object.getOwnPropertyNames(helper), key => {\n    if (key.charAt(0) !== '_') {\n      _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].dom[key] = helper[key];\n    }\n  });\n});\n\n// Export cell types.\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].cellTypes = (_Handsontable$cellTyp = _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].cellTypes) !== null && _Handsontable$cellTyp !== void 0 ? _Handsontable$cellTyp : {};\n_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_7__[\"arrayEach\"](Object(_cellTypes_registry_mjs__WEBPACK_IMPORTED_MODULE_23__[\"getRegisteredCellTypeNames\"])(), cellTypeName => {\n  _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].cellTypes[cellTypeName] = Object(_cellTypes_registry_mjs__WEBPACK_IMPORTED_MODULE_23__[\"getCellType\"])(cellTypeName);\n});\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].cellTypes.registerCellType = _cellTypes_registry_mjs__WEBPACK_IMPORTED_MODULE_23__[\"registerCellType\"];\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].cellTypes.getCellType = _cellTypes_registry_mjs__WEBPACK_IMPORTED_MODULE_23__[\"getCellType\"];\n\n// Export all registered editors from the Handsontable.\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors = (_Handsontable$editors = _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors) !== null && _Handsontable$editors !== void 0 ? _Handsontable$editors : {};\n_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_7__[\"arrayEach\"](Object(_editors_registry_mjs__WEBPACK_IMPORTED_MODULE_20__[\"getRegisteredEditorNames\"])(), editorName => {\n  _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors[`${_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_16__[\"toUpperCaseFirst\"](editorName)}Editor`] = Object(_editors_registry_mjs__WEBPACK_IMPORTED_MODULE_20__[\"getEditor\"])(editorName);\n});\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.registerEditor = _editors_registry_mjs__WEBPACK_IMPORTED_MODULE_20__[\"registerEditor\"];\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].editors.getEditor = _editors_registry_mjs__WEBPACK_IMPORTED_MODULE_20__[\"getEditor\"];\n\n// Export all registered renderers from the Handsontable.\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].renderers = (_Handsontable$rendere = _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].renderers) !== null && _Handsontable$rendere !== void 0 ? _Handsontable$rendere : {};\n_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_7__[\"arrayEach\"](Object(_renderers_registry_mjs__WEBPACK_IMPORTED_MODULE_21__[\"getRegisteredRendererNames\"])(), rendererName => {\n  const renderer = Object(_renderers_registry_mjs__WEBPACK_IMPORTED_MODULE_21__[\"getRenderer\"])(rendererName);\n  if (rendererName === 'base') {\n    _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].renderers.cellDecorator = renderer;\n  }\n  _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].renderers[`${_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_16__[\"toUpperCaseFirst\"](rendererName)}Renderer`] = renderer;\n});\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].renderers.registerRenderer = _renderers_registry_mjs__WEBPACK_IMPORTED_MODULE_21__[\"registerRenderer\"];\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].renderers.getRenderer = _renderers_registry_mjs__WEBPACK_IMPORTED_MODULE_21__[\"getRenderer\"];\n\n// Export all registered validators from the Handsontable.\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].validators = (_Handsontable$validat = _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].validators) !== null && _Handsontable$validat !== void 0 ? _Handsontable$validat : {};\n_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_7__[\"arrayEach\"](Object(_validators_registry_mjs__WEBPACK_IMPORTED_MODULE_22__[\"getRegisteredValidatorNames\"])(), validatorName => {\n  _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].validators[`${_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_16__[\"toUpperCaseFirst\"](validatorName)}Validator`] = Object(_validators_registry_mjs__WEBPACK_IMPORTED_MODULE_22__[\"getValidator\"])(validatorName);\n});\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].validators.registerValidator = _validators_registry_mjs__WEBPACK_IMPORTED_MODULE_22__[\"registerValidator\"];\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].validators.getValidator = _validators_registry_mjs__WEBPACK_IMPORTED_MODULE_22__[\"getValidator\"];\n\n// Export all registered plugins from the Handsontable.\n// Make sure to initialize the plugin dictionary as an empty object. Otherwise, while\n// transpiling the files into ES and CommonJS format, the injected CoreJS helper\n// `import \"core-js/modules/es.object.get-own-property-names\";` won't be processed\n// by the `./config/plugin/babel/add-import-extension` babel plugin. Thus, the distribution\n// files will be broken. The reason is not known right now (probably it's caused by bug in\n// the Babel or missing something in the plugin).\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].plugins = (_Handsontable$plugins = _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].plugins) !== null && _Handsontable$plugins !== void 0 ? _Handsontable$plugins : {};\n_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_7__[\"arrayEach\"](Object(_plugins_registry_mjs__WEBPACK_IMPORTED_MODULE_24__[\"getPluginsNames\"])(), pluginName => {\n  _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].plugins[pluginName] = Object(_plugins_registry_mjs__WEBPACK_IMPORTED_MODULE_24__[\"getPlugin\"])(pluginName);\n});\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].plugins[`${_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_16__[\"toUpperCaseFirst\"](_plugins_base_index_mjs__WEBPACK_IMPORTED_MODULE_25__[\"BasePlugin\"].PLUGIN_KEY)}Plugin`] = _plugins_base_index_mjs__WEBPACK_IMPORTED_MODULE_25__[\"BasePlugin\"];\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].plugins.registerPlugin = _plugins_registry_mjs__WEBPACK_IMPORTED_MODULE_24__[\"registerPlugin\"];\n_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"].plugins.getPlugin = _plugins_registry_mjs__WEBPACK_IMPORTED_MODULE_24__[\"getPlugin\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n//# sourceURL=webpack:///./node_modules/handsontable/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/mixins/hooksRefRegisterer.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/mixins/hooksRefRegisterer.mjs ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n\n\n\nconst MIXIN_NAME = 'hooksRefRegisterer';\n\n/**\n * Mixin object to extend objects functionality for auto registering hooks in an Handsontable instance.\n *\n * @type {object}\n */\nconst hooksRefRegisterer = {\n  /**\n   * Internal hooks storage.\n   */\n  _hooksStorage: Object.create(null),\n  /**\n   * Add hook to the collection.\n   *\n   * @param {string} key The hook name.\n   * @param {Function} callback The hook callback.\n   * @returns {object}\n   */\n  addHook(key, callback) {\n    if (!this._hooksStorage[key]) {\n      this._hooksStorage[key] = [];\n    }\n    this.hot.addHook(key, callback);\n    this._hooksStorage[key].push(callback);\n    return this;\n  },\n  /**\n   * Remove all hooks listeners by hook name.\n   *\n   * @param {string} key The hook name.\n   */\n  removeHooksByKey(key) {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayEach\"])(this._hooksStorage[key] || [], callback => {\n      this.hot.removeHook(key, callback);\n    });\n  },\n  /**\n   * Clear all added hooks.\n   */\n  clearHooks() {\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"objectEach\"])(this._hooksStorage, (callbacks, name) => this.removeHooksByKey(name));\n    this._hooksStorage = {};\n  }\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"defineGetter\"])(hooksRefRegisterer, 'MIXIN_NAME', MIXIN_NAME, {\n  writable: false,\n  enumerable: false\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (hooksRefRegisterer);\n\n//# sourceURL=webpack:///./node_modules/handsontable/mixins/hooksRefRegisterer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/mixins/localHooks.mjs":
/*!*********************************************************!*\
  !*** ./node_modules/handsontable/mixins/localHooks.mjs ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n\n\n\nconst MIXIN_NAME = 'localHooks';\n\n/**\n * Mixin object to extend objects functionality for local hooks.\n *\n * @type {object}\n */\nconst localHooks = {\n  /**\n   * Internal hooks storage.\n   */\n  _localHooks: Object.create(null),\n  /**\n   * Add hook to the collection.\n   *\n   * @param {string} key The hook name.\n   * @param {Function} callback The hook callback.\n   * @returns {object}\n   */\n  addLocalHook(key, callback) {\n    if (!this._localHooks[key]) {\n      this._localHooks[key] = [];\n    }\n    this._localHooks[key].push(callback);\n    return this;\n  },\n  /**\n   * Run hooks.\n   *\n   * @param {string} key The name of the hook to run.\n   * @param {*} [arg1] An additional parameter passed to the callback function.\n   * @param {*} [arg2] An additional parameter passed to the callback function.\n   * @param {*} [arg3] An additional parameter passed to the callback function.\n   * @param {*} [arg4] An additional parameter passed to the callback function.\n   * @param {*} [arg5] An additional parameter passed to the callback function.\n   * @param {*} [arg6] An additional parameter passed to the callback function.\n   */\n  runLocalHooks(key, arg1, arg2, arg3, arg4, arg5, arg6) {\n    if (this._localHooks[key]) {\n      const length = this._localHooks[key].length;\n\n      // don't optimize this loop with the `arrayEach()` method or arrow functions\n      // otherwise, performance will decrease because of garbage collection\n      // using the `...rest` syntax (ES6 and later) will decrease performance as well\n      for (let i = 0; i < length; i++) {\n        Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_2__[\"fastCall\"])(this._localHooks[key][i], this, arg1, arg2, arg3, arg4, arg5, arg6);\n      }\n    }\n  },\n  /**\n   * Clear all added hooks.\n   *\n   * @returns {object}\n   */\n  clearLocalHooks() {\n    this._localHooks = {};\n    return this;\n  }\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"defineGetter\"])(localHooks, 'MIXIN_NAME', MIXIN_NAME, {\n  writable: false,\n  enumerable: false\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (localHooks);\n\n//# sourceURL=webpack:///./node_modules/handsontable/mixins/localHooks.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/pluginHooks.mjs":
/*!***************************************************!*\
  !*** ./node_modules/handsontable/pluginHooks.mjs ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_unscopables_flat_map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.unscopables.flat-map.js */ \"./node_modules/core-js/modules/es.array.unscopables.flat-map.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_string_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./helpers/string.mjs */ \"./node_modules/handsontable/helpers/string.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * @description\n *\n * ::: only-for javascript\n * Handsontable events are the common interface that function in 2 ways: as __callbacks__ and as __hooks__.\n * :::\n *\n * ::: only-for react\n * This page lists all the **Handsontable hooks** – callbacks that let you react before or after an action occurs.\n *\n * Read more on the [Events and hooks](@/guides/getting-started/events-and-hooks/events-and-hooks.md) page.\n * :::\n *\n * @example\n *\n * ::: only-for javascript\n * ```js\n * // using events as callbacks\n * ...\n * const hot1 = new Handsontable(document.getElementById('example1'), {\n *   afterChange: function(changes, source) {\n *     $.ajax({\n *       url: \"save.php',\n *       data: change\n *     });\n *   }\n * });\n * ...\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * <HotTable\n *   afterChange={(changes, source) => {\n *     fetch('save.php', {\n *       method: 'POST',\n *       headers: {\n *         'Accept': 'application/json',\n *         'Content-Type': 'application/json'\n *       },\n *       body: JSON.stringify(changes)\n *     });\n *   }}\n * />\n * :::\n *\n * ::: only-for javascript\n * ```js\n * // using events as plugin hooks\n * ...\n * const hot1 = new Handsontable(document.getElementById('example1'), {\n *   myPlugin: true\n * });\n *\n * const hot2 = new Handsontable(document.getElementById('example2'), {\n *   myPlugin: false\n * });\n *\n * // global hook\n * Handsontable.hooks.add('afterChange', function() {\n *   // Fired twice - for hot1 and hot2\n *   if (this.getSettings().myPlugin) {\n *     // function body - will only run for hot1\n *   }\n * });\n *\n * // local hook (has same effect as a callback)\n * hot2.addHook('afterChange', function() {\n *   // function body - will only run in #example2\n * });\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * const hotRef1 = useRef(null);\n * const hotRef2 = useRef(null);\n *\n * // Using events as plugin hooks:\n * ...\n *\n * <HotTable\n *   ref={hotRef1}\n *   myPlugin={true}\n * });\n *\n * <HotTable\n *   ref={hotRef2}\n *   myPlugin={false}\n * });\n *\n * ...\n *\n * const hot2 = hotRef2.current.hotInstance;\n * // local hook (has same effect as a callback)\n * hot2.addHook('afterChange', function() {\n *   // function body - will only run in #example2\n * });\n *\n * // global hook\n * Handsontable.hooks.add('afterChange', function() {\n *   // Fired twice - for hot1 and hot2\n *   if (this.getSettings().myPlugin) {\n *     // function body - will only run for first instance\n *   }\n * });\n * :::\n * ...\n */\n// @TODO: Move plugin description hooks to plugin?\nconst REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * Fired after resetting a cell's meta. This happens when the {@link Core#updateSettings} method is called.\n *\n * @event Hooks#afterCellMetaReset\n */\n'afterCellMetaReset',\n/**\n * Fired after one or more cells has been changed. The changes are triggered in any situation when the\n * value is entered using an editor or changed using API (e.q [`setDataAtCell`](@/api/core.md#setdataatcell) method).\n *\n * __Note:__ For performance reasons, the `changes` array is null for `\"loadData\"` source.\n *\n * @event Hooks#afterChange\n * @param {Array[]} changes 2D array containing information about each of the edited cells `[[row, prop, oldVal, newVal], ...]`. `row` is a visual row index.\n * @param {string} [source] String that identifies source of hook call ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n * @example\n * ::: only-for javascript\n * ```js\n * new Handsontable(element, {\n *   afterChange: (changes) => {\n *     changes?.forEach(([row, prop, oldValue, newValue]) => {\n *       // Some logic...\n *     });\n *   }\n * })\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * <HotTable\n *   afterChange={(changes, source) => {\n *     changes?.forEach(([row, prop, oldValue, newValue]) => {\n *       // Some logic...\n *     });\n *   }}\n * />\n * ```\n * :::\n */\n'afterChange',\n/**\n * Fired each time user opens {@link ContextMenu} and after setting up the Context Menu's default options. These options are a collection\n * which user can select by setting an array of keys or an array of objects in {@link Options#contextMenu} option.\n *\n * @event Hooks#afterContextMenuDefaultOptions\n * @param {Array} predefinedItems An array of objects containing information about the pre-defined Context Menu items.\n */\n'afterContextMenuDefaultOptions',\n/**\n * Fired each time user opens {@link ContextMenu} plugin before setting up the Context Menu's items but after filtering these options by\n * user ([`contextMenu`](@/api/options.md#contextmenu) option). This hook can by helpful to determine if user use specified menu item or to set up\n * one of the menu item to by always visible.\n *\n * @event Hooks#beforeContextMenuSetItems\n * @param {object[]} menuItems An array of objects containing information about to generated Context Menu items.\n */\n'beforeContextMenuSetItems',\n/**\n * Fired by {@link DropdownMenu} plugin after setting up the Dropdown Menu's default options. These options are a\n * collection which user can select by setting an array of keys or an array of objects in {@link Options#dropdownMenu}\n * option.\n *\n * @event Hooks#afterDropdownMenuDefaultOptions\n * @param {object[]} predefinedItems An array of objects containing information about the pre-defined Context Menu items.\n */\n'afterDropdownMenuDefaultOptions',\n/**\n * Fired by {@link DropdownMenu} plugin before setting up the Dropdown Menu's items but after filtering these options\n * by user ([`dropdownMenu`](@/api/options.md#dropdownmenu) option). This hook can by helpful to determine if user use specified menu item or to set\n * up one of the menu item to by always visible.\n *\n * @event Hooks#beforeDropdownMenuSetItems\n * @param {object[]} menuItems An array of objects containing information about to generated Dropdown Menu items.\n */\n'beforeDropdownMenuSetItems',\n/**\n * Fired by {@link ContextMenu} plugin after hiding the Context Menu. This hook is fired when {@link Options#contextMenu}\n * option is enabled.\n *\n * @event Hooks#afterContextMenuHide\n * @param {object} context The Context Menu plugin instance.\n */\n'afterContextMenuHide',\n/**\n * Fired by {@link ContextMenu} plugin before opening the Context Menu. This hook is fired when {@link Options#contextMenu}\n * option is enabled.\n *\n * @event Hooks#beforeContextMenuShow\n * @param {object} context The Context Menu instance.\n */\n'beforeContextMenuShow',\n/**\n * Fired by {@link ContextMenu} plugin after opening the Context Menu. This hook is fired when {@link Options#contextMenu}\n * option is enabled.\n *\n * @event Hooks#afterContextMenuShow\n * @param {object} context The Context Menu plugin instance.\n */\n'afterContextMenuShow',\n/**\n * Fired by {@link CopyPaste} plugin after reaching the copy limit while copying data. This hook is fired when\n * {@link Options#copyPaste} option is enabled.\n *\n * @event Hooks#afterCopyLimit\n * @param {number} selectedRows Count of selected copyable rows.\n * @param {number} selectedColumns Count of selected copyable columns.\n * @param {number} copyRowsLimit Current copy rows limit.\n * @param {number} copyColumnsLimit Current copy columns limit.\n */\n'afterCopyLimit',\n/**\n * Fired before created a new column.\n *\n * @event Hooks#beforeCreateCol\n * @param {number} index Represents the visual index of first newly created column in the data source array.\n * @param {number} amount Number of newly created columns in the data source array.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n * @returns {*} If `false` then creating columns is cancelled.\n * @example\n * ::: only-for javascript\n * ```js\n * // Return `false` to cancel column inserting.\n * new Handsontable(element, {\n *   beforeCreateCol: function(data, coords) {\n *     return false;\n *   }\n * });\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * // Return `false` to cancel column inserting.\n * <HotTable\n *   beforeCreateCol={(data, coords) => {\n *     return false;\n *   }}\n * />\n * ```\n * :::\n */\n'beforeCreateCol',\n/**\n * Fired after the order of columns has changed.\n * This hook is fired by changing column indexes of any type supported by the {@link IndexMapper}.\n *\n * @event Hooks#afterColumnSequenceChange\n * @param {'init'|'remove'|'insert'|'move'|'update'} [source] A string that indicates what caused the change to the order of columns.\n */\n'afterColumnSequenceChange',\n/**\n * Fired after created a new column.\n *\n * @event Hooks#afterCreateCol\n * @param {number} index Represents the visual index of first newly created column in the data source.\n * @param {number} amount Number of newly created columns in the data source.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n */\n'afterCreateCol',\n/**\n * Fired before created a new row.\n *\n * @event Hooks#beforeCreateRow\n * @param {number} index Represents the visual index of first newly created row in the data source array.\n * @param {number} amount Number of newly created rows in the data source array.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n * @returns {*|boolean} If false is returned the action is canceled.\n */\n'beforeCreateRow',\n/**\n * Fired after created a new row.\n *\n * @event Hooks#afterCreateRow\n * @param {number} index Represents the visual index of first newly created row in the data source array.\n * @param {number} amount Number of newly created rows in the data source array.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n */\n'afterCreateRow',\n/**\n * Fired after all selected cells are deselected.\n *\n * @event Hooks#afterDeselect\n */\n'afterDeselect',\n/**\n * Fired after destroying the Handsontable instance.\n *\n * @event Hooks#afterDestroy\n */\n'afterDestroy',\n/**\n * Hook fired after `keydown` event is handled.\n *\n * @event Hooks#afterDocumentKeyDown\n * @param {Event} event A native `keydown` event object.\n */\n'afterDocumentKeyDown',\n/**\n * Fired inside the Walkontable's selection `draw` method. Can be used to add additional class names to cells, depending on the current selection.\n *\n * @event Hooks#afterDrawSelection\n * @param {number} currentRow Row index of the currently processed cell.\n * @param {number} currentColumn Column index of the currently cell.\n * @param {number[]} cornersOfSelection Array of the current selection in a form of `[startRow, startColumn, endRow, endColumn]`.\n * @param {number|undefined} layerLevel Number indicating which layer of selection is currently processed.\n * @since 0.38.1\n * @returns {string|undefined} Can return a `String`, which will act as an additional `className` to be added to the currently processed cell.\n */\n'afterDrawSelection',\n/**\n * Fired inside the Walkontable's `refreshSelections` method. Can be used to remove additional class names from all cells in the table.\n *\n * @event Hooks#beforeRemoveCellClassNames\n * @since 0.38.1\n * @returns {string[]|undefined} Can return an `Array` of `String`s. Each of these strings will act like class names to be removed from all the cells in the table.\n */\n'beforeRemoveCellClassNames',\n/**\n * Fired after getting the cell settings.\n *\n * @event Hooks#afterGetCellMeta\n * @param {number} row Visual row index.\n * @param {number} column Visual column index.\n * @param {object} cellProperties Object containing the cell properties.\n */\n'afterGetCellMeta',\n/**\n * Fired after retrieving information about a column header and appending it to the table header.\n *\n * @event Hooks#afterGetColHeader\n * @param {number} column Visual column index.\n * @param {HTMLTableCellElement} TH Header's TH element.\n * @param {number} [headerLevel=0] (Since 12.2.0) Header level index. Accepts positive (0 to n)\n *                                 and negative (-1 to -n) values. For positive values, 0 points to the\n *                                 topmost header. For negative values, -1 points to the bottom-most\n *                                 header (the header closest to the cells).\n */\n'afterGetColHeader',\n/**\n * Fired after retrieving information about a row header and appending it to the table header.\n *\n * @event Hooks#afterGetRowHeader\n * @param {number} row Visual row index.\n * @param {HTMLTableCellElement} TH Header's TH element.\n */\n'afterGetRowHeader',\n/**\n * Fired after the Handsontable instance is initiated.\n *\n * @event Hooks#afterInit\n */\n'afterInit',\n/**\n * Fired after Handsontable's [`data`](@/api/options.md#data)\n * gets modified by the [`loadData()`](@/api/core.md#loaddata) method\n * or the [`updateSettings()`](@/api/core.md#updatesettings) method.\n *\n * Read more:\n * - [Binding to data](@/guides/getting-started/binding-to-data/binding-to-data.md)\n * - [Saving data](@/guides/getting-started/saving-data/saving-data.md)\n *\n * @event Hooks#afterLoadData\n * @param {Array} sourceData An [array of arrays](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects), that contains Handsontable's data\n * @param {boolean} initialLoad A flag that indicates whether the data was loaded at Handsontable's initialization (`true`) or later (`false`)\n * @param {string} source The source of the call\n */\n'afterLoadData',\n/**\n * Fired after the [`updateData()`](@/api/core.md#updatedata) method\n * modifies Handsontable's [`data`](@/api/options.md#data).\n *\n * Read more:\n * - [Binding to data](@/guides/getting-started/binding-to-data/binding-to-data.md)\n * - [Saving data](@/guides/getting-started/saving-data/saving-data.md)\n *\n * @event Hooks#afterUpdateData\n * @since 11.1.0\n * @param {Array} sourceData An [array of arrays](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects), that contains Handsontable's data\n * @param {boolean} initialLoad A flag that indicates whether the data was loaded at Handsontable's initialization (`true`) or later (`false`)\n * @param {string} source The source of the call\n */\n'afterUpdateData',\n/**\n * Fired after a scroll event, which is identified as a momentum scroll (e.g. on an iPad).\n *\n * @event Hooks#afterMomentumScroll\n */\n'afterMomentumScroll',\n/**\n * Fired after a `mousedown` event is triggered on the cell corner (the drag handle).\n *\n * @event Hooks#afterOnCellCornerMouseDown\n * @param {Event} event `mousedown` event object.\n */\n'afterOnCellCornerMouseDown',\n/**\n * Fired after a `dblclick` event is triggered on the cell corner (the drag handle).\n *\n * @event Hooks#afterOnCellCornerDblClick\n * @param {Event} event `dblclick` event object.\n */\n'afterOnCellCornerDblClick',\n/**\n * Fired after clicking on a cell or row/column header. In case the row/column header was clicked, the coordinate\n * indexes are negative.\n *\n * For example clicking on the row header of cell (0, 0) results with `afterOnCellMouseDown` called\n * with coordinates `{row: 0, col: -1}`.\n *\n * @event Hooks#afterOnCellMouseDown\n * @param {Event} event `mousedown` event object.\n * @param {CellCoords} coords Coordinates object containing the visual row and visual column indexes of the clicked cell.\n * @param {HTMLTableCellElement} TD Cell's TD (or TH) element.\n */\n'afterOnCellMouseDown',\n/**\n * Fired after clicking on a cell or row/column header. In case the row/column header was clicked, the coordinate\n * indexes are negative.\n *\n * For example clicking on the row header of cell (0, 0) results with `afterOnCellMouseUp` called\n * with coordinates `{row: 0, col: -1}`.\n *\n * @event Hooks#afterOnCellMouseUp\n * @param {Event} event `mouseup` event object.\n * @param {CellCoords} coords Coordinates object containing the visual row and visual column indexes of the clicked cell.\n * @param {HTMLTableCellElement} TD Cell's TD (or TH) element.\n */\n'afterOnCellMouseUp',\n/**\n * Fired after clicking right mouse button on a cell or row/column header.\n *\n * For example clicking on the row header of cell (0, 0) results with `afterOnCellContextMenu` called\n * with coordinates `{row: 0, col: -1}`.\n *\n * @event Hooks#afterOnCellContextMenu\n * @since 4.1.0\n * @param {Event} event `contextmenu` event object.\n * @param {CellCoords} coords Coordinates object containing the visual row and visual column indexes of the clicked cell.\n * @param {HTMLTableCellElement} TD Cell's TD (or TH) element.\n */\n'afterOnCellContextMenu',\n/**\n * Fired after hovering a cell or row/column header with the mouse cursor. In case the row/column header was\n * hovered, the index is negative.\n *\n * For example, hovering over the row header of cell (0, 0) results with `afterOnCellMouseOver` called\n * with coords `{row: 0, col: -1}`.\n *\n * @event Hooks#afterOnCellMouseOver\n * @param {Event} event `mouseover` event object.\n * @param {CellCoords} coords Hovered cell's visual coordinate object.\n * @param {HTMLTableCellElement} TD Cell's TD (or TH) element.\n */\n'afterOnCellMouseOver',\n/**\n * Fired after leaving a cell or row/column header with the mouse cursor.\n *\n * @event Hooks#afterOnCellMouseOut\n * @param {Event} event `mouseout` event object.\n * @param {CellCoords} coords Leaved cell's visual coordinate object.\n * @param {HTMLTableCellElement} TD Cell's TD (or TH) element.\n */\n'afterOnCellMouseOut',\n/**\n * Fired after one or more columns are removed.\n *\n * @event Hooks#afterRemoveCol\n * @param {number} index Visual index of starter column.\n * @param {number} amount An amount of removed columns.\n * @param {number[]} physicalColumns An array of physical columns removed from the data source.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n */\n'afterRemoveCol',\n/**\n * Fired after one or more rows are removed.\n *\n * @event Hooks#afterRemoveRow\n * @param {number} index Visual index of starter row.\n * @param {number} amount An amount of removed rows.\n * @param {number[]} physicalRows An array of physical rows removed from the data source.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n */\n'afterRemoveRow',\n/**\n * Fired before starting rendering the cell.\n *\n * @event Hooks#beforeRenderer\n * @param {HTMLTableCellElement} TD Currently rendered cell's TD element.\n * @param {number} row Visual row index.\n * @param {number} column Visual column index.\n * @param {string|number} prop Column property name or a column index, if datasource is an array of arrays.\n * @param {*} value Value of the rendered cell.\n * @param {object} cellProperties Object containing the cell's properties.\n */\n'beforeRenderer',\n/**\n * Fired after finishing rendering the cell (after the renderer finishes).\n *\n * @event Hooks#afterRenderer\n * @param {HTMLTableCellElement} TD Currently rendered cell's TD element.\n * @param {number} row Visual row index.\n * @param {number} column Visual column index.\n * @param {string|number} prop Column property name or a column index, if datasource is an array of arrays.\n * @param {*} value Value of the rendered cell.\n * @param {object} cellProperties Object containing the cell's properties.\n */\n'afterRenderer',\n/**\n * Fired after the order of rows has changed.\n * This hook is fired by changing row indexes of any type supported by the {@link IndexMapper}.\n *\n * @event Hooks#afterRowSequenceChange\n * @param {'init'|'remove'|'insert'|'move'|'update'} [source] A string that indicates what caused the change to the order of rows.\n */\n'afterRowSequenceChange',\n/**\n * Fired before the vertical viewport scroll. Triggered by the [`scrollViewportTo()`](@/api/core.md#scrollviewportto)\n * method or table internals.\n *\n * @since 14.0.0\n * @event Hooks#beforeViewportScrollVertically\n * @param {number} visualRow Visual row index.\n * @returns {number | boolean} Returns modified row index (or the same as passed in the method argument) to which\n * the viewport will be scrolled. If the returned value is `false`, the scrolling will be canceled.\n */\n'beforeViewportScrollVertically',\n/**\n * Fired before the horizontal viewport scroll. Triggered by the [`scrollViewportTo()`](@/api/core.md#scrollviewportto)\n * method or table internals.\n *\n * @since 14.0.0\n * @event Hooks#beforeViewportScrollHorizontally\n * @param {number} visualColumn Visual column index.\n * @returns {number | boolean} Returns modified column index (or the same as passed in the method argument) to which\n * the viewport will be scrolled. If the returned value is `false`, the scrolling will be canceled.\n */\n'beforeViewportScrollHorizontally',\n/**\n * Fired before the vertical or horizontal viewport scroll. Triggered by the [`scrollViewportTo()`](@/api/core.md#scrollviewportto)\n * method or table internals.\n *\n * @since 14.0.0\n * @event Hooks#beforeViewportScroll\n */\n'beforeViewportScroll',\n/**\n * Fired after the horizontal scroll event.\n *\n * @event Hooks#afterScrollHorizontally\n */\n'afterScrollHorizontally',\n/**\n * Fired after the vertical scroll event.\n *\n * @event Hooks#afterScrollVertically\n */\n'afterScrollVertically',\n/**\n * Fired after the vertical or horizontal scroll event.\n *\n * @since 14.0.0\n * @event Hooks#afterScroll\n */\n'afterScroll',\n/**\n * Fired after one or more cells are selected (e.g. during mouse move).\n *\n * @event Hooks#afterSelection\n * @param {number} row Selection start visual row index.\n * @param {number} column Selection start visual column index.\n * @param {number} row2 Selection end visual row index.\n * @param {number} column2 Selection end visual column index.\n * @param {object} preventScrolling A reference to the observable object with the `value` property.\n *                                  Property `preventScrolling.value` expects a boolean value that\n *                                  Handsontable uses to control scroll behavior after selection.\n * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.\n * @example\n * ::: only-for javascript\n * ```js\n * new Handsontable(element, {\n *   afterSelection: (row, column, row2, column2, preventScrolling, selectionLayerLevel) => {\n *     // If set to `false` (default): when cell selection is outside the viewport,\n *     // Handsontable scrolls the viewport to cell selection's end corner.\n *     // If set to `true`: when cell selection is outside the viewport,\n *     // Handsontable doesn't scroll to cell selection's end corner.\n *     preventScrolling.value = true;\n *   }\n * })\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * <HotTable\n *   afterSelection={(row, column, row2, column2, preventScrolling, selectionLayerLevel) => {\n *     // If set to `false` (default): when cell selection is outside the viewport,\n *     // Handsontable scrolls the viewport to cell selection's end corner.\n *     // If set to `true`: when cell selection is outside the viewport,\n *     // Handsontable doesn't scroll to cell selection's end corner.\n *     preventScrolling.value = true;\n *   }}\n * />\n * ```\n * :::\n */\n'afterSelection',\n/**\n * Fired after one or more cells are selected.\n *\n * The `prop` and `prop2` arguments represent the source object property name instead of the column number.\n *\n * @event Hooks#afterSelectionByProp\n * @param {number} row Selection start visual row index.\n * @param {string} prop Selection start data source object property name.\n * @param {number} row2 Selection end visual row index.\n * @param {string} prop2 Selection end data source object property name.\n * @param {object} preventScrolling A reference to the observable object with the `value` property.\n *                                  Property `preventScrolling.value` expects a boolean value that\n *                                  Handsontable uses to control scroll behavior after selection.\n * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.\n * @example\n * ```js\n * ::: only-for javascript\n * new Handsontable(element, {\n *   afterSelectionByProp: (row, column, row2, column2, preventScrolling, selectionLayerLevel) => {\n *     // setting if prevent scrolling after selection\n *     preventScrolling.value = true;\n *   }\n * })\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * <HotTable\n *   afterSelectionByProp={(row, column, row2, column2, preventScrolling, selectionLayerLevel) => {\n *     // setting if prevent scrolling after selection\n *     preventScrolling.value = true;\n *   }}\n * />\n * ```\n * :::\n */\n'afterSelectionByProp',\n/**\n * Fired after one or more cells are selected (e.g. on mouse up).\n *\n * @event Hooks#afterSelectionEnd\n * @param {number} row Selection start visual row index.\n * @param {number} column Selection start visual column index.\n * @param {number} row2 Selection end visual row index.\n * @param {number} column2 Selection end visual column index.\n * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.\n */\n'afterSelectionEnd',\n/**\n * Fired after one or more cells are selected (e.g. on mouse up).\n *\n * The `prop` and `prop2` arguments represent the source object property name instead of the column number.\n *\n * @event Hooks#afterSelectionEndByProp\n * @param {number} row Selection start visual row index.\n * @param {string} prop Selection start data source object property index.\n * @param {number} row2 Selection end visual row index.\n * @param {string} prop2 Selection end data source object property index.\n * @param {number} selectionLayerLevel The number which indicates what selection layer is currently modified.\n */\n'afterSelectionEndByProp',\n/**\n * Fired after the focus position within a selected range is changed.\n *\n * @since 14.3.0\n * @event Hooks#afterSelectionFocusSet\n * @param {number} row The focus visual row index position.\n * @param {number} column The focus visual column index position.\n * @param {object} preventScrolling A reference to the observable object with the `value` property.\n *                                  Property `preventScrolling.value` expects a boolean value that\n *                                  Handsontable uses to control scroll behavior after selection.\n * @example\n * ```js\n * ::: only-for javascript\n * new Handsontable(element, {\n *   afterSelectionFocusSet: (row, column, preventScrolling) => {\n *     // If set to `false` (default): when focused cell selection is outside the viewport,\n *     // Handsontable scrolls the viewport to that cell.\n *     // If set to `true`: when focused cell selection is outside the viewport,\n *     // Handsontable doesn't scroll the viewport.\n *     preventScrolling.value = true;\n *   }\n * })\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * <HotTable\n *   afterSelectionFocusSet={(row, column, preventScrolling) => {\n *     // If set to `false` (default): when focused cell selection is outside the viewport,\n *     // Handsontable scrolls the viewport to that cell.\n *     // If set to `true`: when focused cell selection is outside the viewport,\n *     // Handsontable doesn't scroll the viewport.\n *     preventScrolling.value = true;\n *   }}\n * />\n * ```\n * :::\n */\n'afterSelectionFocusSet',\n/**\n * Fired before one or more columns are selected (e.g. During mouse header click or {@link Core#selectColumns} API call).\n *\n * @since 14.0.0\n * @event Hooks#beforeSelectColumns\n * @param {CellCoords} from Selection start coords object.\n * @param {CellCoords} to Selection end coords object.\n * @param {CellCoords} highlight Selection cell focus coords object.\n * @example\n * ::: only-for javascript\n * ```js\n * new Handsontable(element, {\n *   beforeSelectColumns: (from, to, highlight) => {\n *     // Extend the column selection by one column left and one column right.\n *     from.col = Math.max(from.col - 1, 0);\n *     to.col = Math.min(to.col + 1, this.countCols() - 1);\n *   }\n * })\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * <HotTable\n *   beforeSelectColumns={(from, to, highlight) => {\n *     // Extend the column selection by one column left and one column right.\n *     from.col = Math.max(from.col - 1, 0);\n *     to.col = Math.min(to.col + 1, this.countCols() - 1);\n *   }}\n * />\n * ```\n * :::\n */\n'beforeSelectColumns',\n/**\n * Fired after one or more columns are selected (e.g. during mouse header click or {@link Core#selectColumns} API call).\n *\n * @since 14.0.0\n * @event Hooks#afterSelectColumns\n * @param {CellCoords} from Selection start coords object.\n * @param {CellCoords} to Selection end coords object.\n * @param {CellCoords} highlight Selection cell focus coords object.\n */\n'afterSelectColumns',\n/**\n * Fired before one or more rows are selected (e.g. during mouse header click or {@link Core#selectRows} API call).\n *\n * @since 14.0.0\n * @event Hooks#beforeSelectRows\n * @param {CellCoords} from Selection start coords object.\n * @param {CellCoords} to Selection end coords object.\n * @param {CellCoords} highlight Selection cell focus coords object.\n * @example\n * ::: only-for javascript\n * ```js\n * new Handsontable(element, {\n *   beforeSelectRows: (from, to, highlight) => {\n *     // Extend the row selection by one row up and one row bottom more.\n *     from.row = Math.max(from.row - 1, 0);\n *     to.row = Math.min(to.row + 1, this.countRows() - 1);\n *   }\n * })\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * <HotTable\n *   beforeSelectRows={(from, to, highlight) => {\n *     // Extend the row selection by one row up and one row bottom more.\n *     from.row = Math.max(from.row - 1, 0);\n *     to.row = Math.min(to.row + 1, this.countRows() - 1);\n *   }}\n * />\n * ```\n * :::\n */\n'beforeSelectRows',\n/**\n * Fired after one or more rows are selected (e.g. during mouse header click or {@link Core#selectRows} API call).\n *\n * @since 14.0.0\n * @event Hooks#afterSelectRows\n * @param {CellCoords} from Selection start coords object.\n * @param {CellCoords} to Selection end coords object.\n * @param {CellCoords} highlight Selection cell focus coords object.\n */\n'afterSelectRows',\n/**\n * Fired after cell meta is changed.\n *\n * @event Hooks#afterSetCellMeta\n * @param {number} row Visual row index.\n * @param {number} column Visual column index.\n * @param {string} key The updated meta key.\n * @param {*} value The updated meta value.\n */\n'afterSetCellMeta',\n/**\n * Fired after cell meta is removed.\n *\n * @event Hooks#afterRemoveCellMeta\n * @param {number} row Visual row index.\n * @param {number} column Visual column index.\n * @param {string} key The removed meta key.\n * @param {*} value Value which was under removed key of cell meta.\n */\n'afterRemoveCellMeta',\n/**\n * Fired after cell data was changed.\n *\n * @event Hooks#afterSetDataAtCell\n * @param {Array} changes An array of changes in format `[[row, column, oldValue, value], ...]`.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n */\n'afterSetDataAtCell',\n/**\n * Fired after cell data was changed.\n * Called only when [`setDataAtRowProp`](@/api/core.md#setdataatrowprop) was executed.\n *\n * @event Hooks#afterSetDataAtRowProp\n * @param {Array} changes An array of changes in format `[[row, prop, oldValue, value], ...]`.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n */\n'afterSetDataAtRowProp',\n/**\n * Fired after cell source data was changed.\n *\n * @event Hooks#afterSetSourceDataAtCell\n * @since 8.0.0\n * @param {Array} changes An array of changes in format `[[row, column, oldValue, value], ...]`.\n * @param {string} [source] String that identifies source of hook call.\n */\n'afterSetSourceDataAtCell',\n/**\n * Fired after calling the [`updateSettings`](@/api/core.md#updatesettings) method.\n *\n * @event Hooks#afterUpdateSettings\n * @param {object} newSettings New settings object.\n */\n'afterUpdateSettings',\n/**\n * @description\n * A plugin hook executed after validator function, only if validator function is defined.\n * Validation result is the first parameter. This can be used to determinate if validation passed successfully or not.\n *\n * __Returning false from the callback will mark the cell as invalid__.\n *\n * @event Hooks#afterValidate\n * @param {boolean} isValid `true` if valid, `false` if not.\n * @param {*} value The value in question.\n * @param {number} row Visual row index.\n * @param {string|number} prop Property name / visual column index.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n * @returns {undefined | boolean} If `false` the cell will be marked as invalid, `true` otherwise.\n */\n'afterValidate',\n/**\n * Fired before successful change of language (when proper language code was set).\n *\n * @event Hooks#beforeLanguageChange\n * @since 0.35.0\n * @param {string} languageCode New language code.\n */\n'beforeLanguageChange',\n/**\n * Fired after successful change of language (when proper language code was set).\n *\n * @event Hooks#afterLanguageChange\n * @since 0.35.0\n * @param {string} languageCode New language code.\n */\n'afterLanguageChange',\n/**\n * Fired by {@link Autofill} plugin before populating the data in the autofill feature. This hook is fired when\n * {@link Options#fillHandle} option is enabled.\n *\n * @event Hooks#beforeAutofill\n * @param {Array[]} selectionData Data the autofill operation will start from.\n * @param {CellRange} sourceRange The range values will be filled from.\n * @param {CellRange} targetRange The range new values will be filled into.\n * @param {string} direction Declares the direction of the autofill. Possible values: `up`, `down`, `left`, `right`.\n *\n * @returns {boolean|Array[]} If false, the operation is cancelled. If array of arrays, the returned data\n *                              will be passed into [`populateFromArray`](@/api/core.md#populatefromarray) instead of the default autofill\n *                              algorithm's result.\n */\n'beforeAutofill',\n/**\n * Fired by {@link Autofill} plugin after populating the data in the autofill feature. This hook is fired when\n * {@link Options#fillHandle} option is enabled.\n *\n * @event Hooks#afterAutofill\n * @since 8.0.0\n * @param {Array[]} fillData The data that was used to fill the `targetRange`. If `beforeAutofill` was used\n *                            and returned `[[]]`, this will be the same object that was returned from `beforeAutofill`.\n * @param {CellRange} sourceRange The range values will be filled from.\n * @param {CellRange} targetRange The range new values will be filled into.\n * @param {string} direction Declares the direction of the autofill. Possible values: `up`, `down`, `left`, `right`.\n */\n'afterAutofill',\n/**\n * Fired before aligning the cell contents.\n *\n * @event Hooks#beforeCellAlignment\n * @param {object} stateBefore An object with class names defining the cell alignment.\n * @param {CellRange[]} range An array of `CellRange` coordinates where the alignment will be applied.\n * @param {string} type Type of the alignment - either `horizontal` or `vertical`.\n * @param {string} alignmentClass String defining the alignment class added to the cell.\n * Possible values: `htLeft` , `htCenter`, `htRight`, `htJustify`, `htTop`, `htMiddle`, `htBottom`.\n */\n'beforeCellAlignment',\n/**\n * Fired before one or more cells are changed.\n *\n * Use this hook to silently alter the user's changes before Handsontable re-renders.\n *\n * To ignore the user's changes, use a nullified array or return `false`.\n *\n * @event Hooks#beforeChange\n * @param {Array[]} changes 2D array containing information about each of the edited cells `[[row, prop, oldVal, newVal], ...]`. `row` is a visual row index.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n * @returns {undefined | boolean} If `false` all changes were cancelled, `true` otherwise.\n * @example\n * ::: only-for javascript\n * ```js\n * // to alter a single change, overwrite the value with `changes[i][3]`\n * new Handsontable(element, {\n *   beforeChange: (changes, source) => {\n *     // [[row, prop, oldVal, newVal], ...]\n *     changes[0][3] = 10;\n *   }\n * });\n *\n * // to ignore a single change, set `changes[i]` to `null`\n * // or remove `changes[i]` from the array, by using `changes.splice(i, 1)`\n * new Handsontable(element, {\n *   beforeChange: (changes, source) => {\n *     // [[row, prop, oldVal, newVal], ...]\n *     changes[0] = null;\n *   }\n * });\n *\n * // to ignore all changes, return `false`\n * // or set the array's length to 0, by using `changes.length = 0`\n * new Handsontable(element, {\n *   beforeChange: (changes, source) => {\n *     // [[row, prop, oldVal, newVal], ...]\n *     return false;\n *   }\n * });\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * // to alter a single change, overwrite the desired value with `changes[i][3]`\n * <HotTable\n *   beforeChange={(changes, source) => {\n *     // [[row, prop, oldVal, newVal], ...]\n *     changes[0][3] = 10;\n *   }}\n * />\n *\n * // to ignore a single change, set `changes[i]` to `null`\n * // or remove `changes[i]` from the array, by using changes.splice(i, 1).\n * <HotTable\n *   beforeChange={(changes, source) => {\n *     // [[row, prop, oldVal, newVal], ...]\n *     changes[0] = null;\n *   }}\n * />\n *\n * // to ignore all changes, return `false`\n * // or set the array's length to 0 (`changes.length = 0`)\n * <HotTable\n *   beforeChange={(changes, source) => {\n *     // [[row, prop, oldVal, newVal], ...]\n *     return false;\n *   }}\n * />\n * ```\n * :::\n */\n'beforeChange',\n/**\n * Fired right before rendering the changes.\n *\n * @event Hooks#beforeChangeRender\n * @param {Array[]} changes Array in form of `[row, prop, oldValue, newValue]`.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n */\n'beforeChangeRender',\n/**\n * Fired before drawing the borders.\n *\n * @event Hooks#beforeDrawBorders\n * @param {Array} corners Array specifying the current selection borders.\n * @param {string} borderClassName Specifies the border class name.\n */\n'beforeDrawBorders',\n/**\n * Fired before getting cell settings.\n *\n * @event Hooks#beforeGetCellMeta\n * @param {number} row Visual row index.\n * @param {number} column Visual column index.\n * @param {object} cellProperties Object containing the cell's properties.\n */\n'beforeGetCellMeta',\n/**\n * Fired before cell meta is removed.\n *\n * @event Hooks#beforeRemoveCellMeta\n * @param {number} row Visual row index.\n * @param {number} column Visual column index.\n * @param {string} key The removed meta key.\n * @param {*} value Value which is under removed key of cell meta.\n * @returns {*|boolean} If false is returned the action is canceled.\n */\n'beforeRemoveCellMeta',\n/**\n * Fired before the Handsontable instance is initiated.\n *\n * @event Hooks#beforeInit\n */\n'beforeInit',\n/**\n * Fired before the Walkontable instance is initiated.\n *\n * @event Hooks#beforeInitWalkontable\n * @param {object} walkontableConfig Walkontable configuration object.\n */\n'beforeInitWalkontable',\n/**\n * Fired before Handsontable's [`data`](@/api/options.md#data)\n * gets modified by the [`loadData()`](@/api/core.md#loaddata) method\n * or the [`updateSettings()`](@/api/core.md#updatesettings) method.\n *\n * Read more:\n * - [Binding to data](@/guides/getting-started/binding-to-data/binding-to-data.md)\n * - [Saving data](@/guides/getting-started/saving-data/saving-data.md)\n *\n * @event Hooks#beforeLoadData\n * @since 8.0.0\n * @param {Array} sourceData An [array of arrays](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects), that contains Handsontable's data\n * @param {boolean} initialLoad A flag that indicates whether the data was loaded at Handsontable's initialization (`true`) or later (`false`)\n * @param {string} source The source of the call\n * @returns {Array} The returned array will be used as Handsontable's new dataset.\n */\n'beforeLoadData',\n/**\n * Fired before the [`updateData()`](@/api/core.md#updatedata) method\n * modifies Handsontable's [`data`](@/api/options.md#data).\n *\n * Read more:\n * - [Binding to data](@/guides/getting-started/binding-to-data/binding-to-data.md)\n * - [Saving data](@/guides/getting-started/saving-data/saving-data.md)\n *\n * @event Hooks#beforeUpdateData\n * @since 11.1.0\n * @param {Array} sourceData An [array of arrays](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data/binding-to-data.md#array-of-objects), that contains Handsontable's data\n * @param {boolean} initialLoad A flag that indicates whether the data was loaded at Handsontable's initialization (`true`) or later (`false`)\n * @param {string} source The source of the call\n * @returns {Array} The returned array will be used as Handsontable's new dataset.\n */\n'beforeUpdateData',\n/**\n * Hook fired before `keydown` event is handled. It can be used to stop default key bindings.\n *\n * __Note__: To prevent default behavior you need to call `false` in your `beforeKeyDown` handler.\n *\n * @event Hooks#beforeKeyDown\n * @param {Event} event Original DOM event.\n */\n'beforeKeyDown',\n/**\n * Fired after the user clicked a cell, but before all the calculations related with it.\n *\n * @event Hooks#beforeOnCellMouseDown\n * @param {Event} event The `mousedown` event object.\n * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.\n * @param {HTMLTableCellElement} TD TD element.\n * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains\n *                            a boolean value that allows or disallows changing the selection for that particular area.\n */\n'beforeOnCellMouseDown',\n/**\n * Fired after the user clicked a cell.\n *\n * @event Hooks#beforeOnCellMouseUp\n * @param {Event} event The `mouseup` event object.\n * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.\n * @param {HTMLTableCellElement} TD TD element.\n */\n'beforeOnCellMouseUp',\n/**\n * Fired after the user clicked a cell, but before all the calculations related with it.\n *\n * @event Hooks#beforeOnCellContextMenu\n * @since 4.1.0\n * @param {Event} event The `contextmenu` event object.\n * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.\n * @param {HTMLTableCellElement} TD TD element.\n */\n'beforeOnCellContextMenu',\n/**\n * Fired after the user moved cursor over a cell, but before all the calculations related with it.\n *\n * @event Hooks#beforeOnCellMouseOver\n * @param {Event} event The `mouseover` event object.\n * @param {CellCoords} coords CellCoords object containing the visual coordinates of the clicked cell.\n * @param {HTMLTableCellElement} TD TD element.\n * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains\n *                            a boolean value that allows or disallows changing the selection for that particular area.\n */\n'beforeOnCellMouseOver',\n/**\n * Fired after the user moved cursor out from a cell, but before all the calculations related with it.\n *\n * @event Hooks#beforeOnCellMouseOut\n * @param {Event} event The `mouseout` event object.\n * @param {CellCoords} coords CellCoords object containing the visual coordinates of the leaved cell.\n * @param {HTMLTableCellElement} TD TD element.\n */\n'beforeOnCellMouseOut',\n/**\n * Fired before one or more columns are about to be removed.\n *\n * @event Hooks#beforeRemoveCol\n * @param {number} index Visual index of starter column.\n * @param {number} amount Amount of columns to be removed.\n * @param {number[]} physicalColumns An array of physical columns removed from the data source.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n * @returns {*|boolean} If false is returned the action is canceled.\n */\n'beforeRemoveCol',\n/**\n * Fired when one or more rows are about to be removed.\n *\n * @event Hooks#beforeRemoveRow\n * @param {number} index Visual index of starter row.\n * @param {number} amount Amount of rows to be removed.\n * @param {number[]} physicalRows An array of physical rows removed from the data source.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n * @returns {*|boolean} If false is returned the action is canceled.\n */\n'beforeRemoveRow',\n/**\n * Fired before Handsontable's view-rendering engine is rendered.\n *\n * __Note:__ In Handsontable 9.x and earlier, the `beforeViewRender` hook was named `beforeRender`.\n *\n * @event Hooks#beforeViewRender\n * @since 10.0.0\n * @param {boolean} isForced If set to `true`, the rendering gets triggered by a change of settings, a change of\n *                           data, or a logic that needs a full Handsontable render cycle.\n *                           If set to `false`, the rendering gets triggered by scrolling or moving the selection.\n * @param {object} skipRender Object with `skipRender` property, if it is set to `true ` the next rendering cycle will be skipped.\n */\n'beforeViewRender',\n/**\n * Fired after Handsontable's view-rendering engine is rendered,\n * but before redrawing the selection borders and before scroll syncing.\n *\n * __Note:__ In Handsontable 9.x and earlier, the `afterViewRender` hook was named `afterRender`.\n *\n * @event Hooks#afterViewRender\n * @since 10.0.0\n * @param {boolean} isForced If set to `true`, the rendering gets triggered by a change of settings, a change of\n *                           data, or a logic that needs a full Handsontable render cycle.\n *                           If set to `false`, the rendering gets triggered by scrolling or moving the selection.\n */\n'afterViewRender',\n/**\n * Fired before Handsontable's view-rendering engine updates the view.\n *\n * The `beforeRender` event is fired right after the Handsontable\n * business logic is executed and right before the rendering engine starts calling\n * the Core logic, renderers, cell meta objects etc. to update the view.\n *\n * @event Hooks#beforeRender\n * @param {boolean} isForced If set to `true`, the rendering gets triggered by a change of settings, a change of\n *                           data, or a logic that needs a full Handsontable render cycle.\n *                           If set to `false`, the rendering gets triggered by scrolling or moving the selection.\n */\n'beforeRender',\n/**\n * Fired after Handsontable's view-rendering engine updates the view.\n *\n * @event Hooks#afterRender\n * @param {boolean} isForced If set to `true`, the rendering gets triggered by a change of settings, a change of\n *                           data, or a logic that needs a full Handsontable render cycle.\n *                           If set to `false`, the rendering gets triggered by scrolling or moving the selection.\n */\n'afterRender',\n/**\n * When the focus position is moved to the next or previous row caused by the {@link Options#autoWrapRow} option\n * the hook is triggered.\n *\n * @since 14.0.0\n * @event Hooks#beforeRowWrap\n * @param {boolean} isWrapEnabled Tells whether the row wrapping is going to happen.\n * There may be situations where the option does not work even though it is enabled.\n * This is due to the priority of other options that may block the feature.\n * For example, when the {@link Options#minSpareCols} is defined, the {@link Options#autoWrapRow} option is not checked.\n * Thus, row wrapping is off.\n * @param {CellCoords} newCoords The new focus position. It is an object with keys `row` and `col`, where a value of `-1` indicates a header.\n * @param {boolean} isFlipped `true` if the row index was flipped, `false` otherwise.\n * Flipped index means that the user reached the last row and the focus is moved to the first row or vice versa.\n */\n'beforeRowWrap',\n/**\n * When the focus position is moved to the next or previous column caused by the {@link Options#autoWrapCol} option\n * the hook is triggered.\n *\n * @since 14.0.0\n * @event Hooks#beforeColumnWrap\n * @param {boolean} isWrapEnabled Tells whether the column wrapping is going to happen.\n * There may be situations where the option does not work even though it is enabled.\n * This is due to the priority of other options that may block the feature.\n * For example, when the {@link Options#minSpareRows} is defined, the {@link Options#autoWrapCol} option is not checked.\n * Thus, column wrapping is off.\n * @param {CellCoords} newCoords The new focus position. It is an object with keys `row` and `col`, where a value of `-1` indicates a header.\n * @param {boolean} isFlipped `true` if the column index was flipped, `false` otherwise.\n * Flipped index means that the user reached the last column and the focus is moved to the first column or vice versa.\n */\n'beforeColumnWrap',\n/**\n * Fired before cell meta is changed.\n *\n * @event Hooks#beforeSetCellMeta\n * @since 8.0.0\n * @param {number} row Visual row index.\n * @param {number} column Visual column index.\n * @param {string} key The updated meta key.\n * @param {*} value The updated meta value.\n * @returns {boolean|undefined} If false is returned the action is canceled.\n */\n'beforeSetCellMeta',\n/**\n * Fired before setting focus selection.\n *\n * @since 14.3.0\n * @event Hooks#beforeSelectionFocusSet\n * @param {CellCoords} coords CellCoords instance.\n */\n'beforeSelectionFocusSet',\n/**\n * Fired before setting range is started but not finished yet.\n *\n * @event Hooks#beforeSetRangeStartOnly\n * @param {CellCoords} coords `CellCoords` instance.\n */\n'beforeSetRangeStartOnly',\n/**\n * Fired before setting range is started.\n *\n * @event Hooks#beforeSetRangeStart\n * @param {CellCoords} coords `CellCoords` instance.\n */\n'beforeSetRangeStart',\n/**\n * Fired before setting range is ended.\n *\n * @event Hooks#beforeSetRangeEnd\n * @param {CellCoords} coords `CellCoords` instance.\n */\n'beforeSetRangeEnd',\n/**\n * Fired before applying selection coordinates to the renderable coordinates for Walkontable (rendering engine).\n * It occurs even when cell coordinates remain unchanged and activates during cell selection and drag selection.\n * The behavior of Shift+Tab differs from Arrow Left when there's no further movement possible.\n *\n * @since 14.0.0\n * @event Hooks#beforeSelectionHighlightSet\n */\n'beforeSelectionHighlightSet',\n/**\n * Fired before the logic of handling a touch scroll, when user started scrolling on a touch-enabled device.\n *\n * @event Hooks#beforeTouchScroll\n */\n'beforeTouchScroll',\n/**\n * Fired before cell validation, only if validator function is defined. This can be used to manipulate the value\n * of changed cell before it is applied to the validator function.\n *\n * __Note:__ this will not affect values of changes. This will change value *ONLY* for validation.\n *\n * @event Hooks#beforeValidate\n * @param {*} value Value of the cell.\n * @param {number} row Visual row index.\n * @param {string|number} prop Property name / column index.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n */\n'beforeValidate',\n/**\n * Fired before cell value is rendered into the DOM (through renderer function). This can be used to manipulate the\n * value which is passed to the renderer without modifying the renderer itself.\n *\n * @event Hooks#beforeValueRender\n * @param {*} value Cell value to render.\n * @param {object} cellProperties An object containing the cell properties.\n */\n'beforeValueRender',\n/**\n * Fired after Handsontable instance is constructed (using `new` operator).\n *\n * @event Hooks#construct\n */\n'construct',\n/**\n * Fired after Handsontable instance is initiated but before table is rendered.\n *\n * @event Hooks#init\n */\n'init',\n/**\n * Fired when a column header index is about to be modified by a callback function.\n *\n * @event Hooks#modifyColHeader\n * @param {number} column Visual column header index.\n */\n'modifyColHeader',\n/**\n * Fired when a column width is about to be modified by a callback function.\n *\n * @event Hooks#modifyColWidth\n * @param {number} width Current column width.\n * @param {number} column Visual column index.\n */\n'modifyColWidth',\n/**\n * Fired when rendering the list of values in the multiple-selection component of the Filters dropdown.\n * The hook allows modifying the displayed values in that component.\n *\n * @since 14.2.0\n * @event Hooks#modifyFiltersMultiSelectValue\n * @param {object} item The item in the list of values.\n * @param {object} meta The cell properties object.\n */\n'modifyFiltersMultiSelectValue',\n/**\n * Fired when focusing a cell or a header element. Allows replacing the element to be focused by returning a\n * different HTML element.\n *\n * @since 14.0.0\n * @event Hooks#modifyFocusedElement\n * @param {number} row Row index.\n * @param {number} column Column index.\n * @param {HTMLElement|undefined} focusedElement The element to be focused. `null` for focusedElement is intended when focused cell is hidden.\n */\n'modifyFocusedElement',\n/**\n * Fired when a row header index is about to be modified by a callback function.\n *\n * @event Hooks#modifyRowHeader\n * @param {number} row Visual row header index.\n */\n'modifyRowHeader',\n/**\n * Fired when a row height is about to be modified by a callback function.\n *\n * @event Hooks#modifyRowHeight\n * @param {number} height Row height.\n * @param {number} row Visual row index.\n */\n'modifyRowHeight',\n/**\n * Fired when a row height is about to be modified by a callback function. The hook allows to change the row height\n * for the specified overlay type.\n *\n * @since 14.5.0\n * @event Hooks#modifyRowHeightByOverlayName\n * @param {number} height Row height.\n * @param {number} row Visual row index.\n * @param {'inline_start'|'top'|'top_inline_start_corner'|'bottom'|'bottom_inline_start_corner'|'master'} overlayName Overlay name.\n */\n'modifyRowHeightByOverlayName',\n/**\n * Fired when a data was retrieved or modified.\n *\n * @event Hooks#modifyData\n * @param {number} row Physical row index.\n * @param {number} column Visual column index.\n * @param {object} valueHolder Object which contains original value which can be modified by overwriting `.value` property.\n * @param {string} ioMode String which indicates for what operation hook is fired (`get` or `set`).\n */\n'modifyData',\n/**\n * Fired when a data was retrieved or modified from the source data set.\n *\n * @event Hooks#modifySourceData\n * @since 8.0.0\n * @param {number} row Physical row index.\n * @param {number} column Physical column index or property name.\n * @param {object} valueHolder Object which contains original value which can be modified by overwriting `.value` property.\n * @param {string} ioMode String which indicates for what operation hook is fired (`get` or `set`).\n */\n'modifySourceData',\n/**\n * Fired when a data was retrieved or modified.\n *\n * @event Hooks#modifyRowData\n * @param {number} row Physical row index.\n */\n'modifyRowData',\n/**\n * Used to modify the cell coordinates when using the [`getCell`](@/api/core.md#getcell) method, opening editor, getting value from the editor\n * and saving values from the closed editor.\n *\n * @event Hooks#modifyGetCellCoords\n * @since 0.36.0\n * @param {number} row Visual row index.\n * @param {number} column Visual column index.\n * @param {boolean} topmost If set to `true`, it returns the TD element from the topmost overlay. For example,\n *                          if the wanted cell is in the range of fixed rows, it will return a TD element\n *                          from the `top` overlay.\n * @returns {undefined|number[]}\n */\n'modifyGetCellCoords',\n/**\n * Used to modify the cell coordinates when the table is activated (going into the listen mode).\n *\n * @event Hooks#modifyFocusOnTabNavigation\n * @since 14.0.0\n * @param {'from_above' | 'from_below'} tabActivationDir The browsers Tab navigation direction. Depending on\n * whether the user activated the table from the element above or below, another cell can be selected.\n * @param {CellCoords} visualCoords The coords that will be used to select a cell.\n */\n'modifyFocusOnTabNavigation',\n/**\n * Allows modify the visual row index that is used to retrieve the row header element (TH) before it's\n * highlighted (proper CSS class names are added). Modifying the visual row index allows building a custom\n * implementation of the nested headers feature or other features that require highlighting other DOM\n * elements than that the rendering engine, by default, would have highlighted.\n *\n * @event Hooks#beforeHighlightingRowHeader\n * @since 8.4.0\n * @param {number} row Visual row index.\n * @param {number} headerLevel Column header level (0 = most distant to the table).\n * @param {object} highlightMeta An object that contains additional information about processed selection.\n * @returns {number|undefined}\n */\n'beforeHighlightingRowHeader',\n/**\n * Allows modify the visual column index that is used to retrieve the column header element (TH) before it's\n * highlighted (proper CSS class names are added). Modifying the visual column index allows building a custom\n * implementation of the nested headers feature or other features that require highlighting other DOM\n * elements than that the rendering engine, by default, would have highlighted.\n *\n * @event Hooks#beforeHighlightingColumnHeader\n * @since 8.4.0\n * @param {number} column Visual column index.\n * @param {number} headerLevel Row header level (0 = most distant to the table).\n * @param {object} highlightMeta An object that contains additional information about processed selection.\n * @returns {number|undefined}\n */\n'beforeHighlightingColumnHeader',\n/**\n * Fired by {@link PersistentState} plugin, after loading value, saved under given key, from browser local storage.\n *\n * The `persistentStateLoad` hook is fired even when the {@link Options#persistentState} option is disabled.\n *\n * @event Hooks#persistentStateLoad\n * @param {string} key Key.\n * @param {object} valuePlaceholder Object containing the loaded value under `valuePlaceholder.value` (if no value have been saved, `value` key will be undefined).\n */\n'persistentStateLoad',\n/**\n * Fired by {@link PersistentState} plugin after resetting data from local storage. If no key is given, all values associated with table will be cleared.\n * This hook is fired when {@link Options#persistentState} option is enabled.\n *\n * @event Hooks#persistentStateReset\n * @param {string} [key] Key.\n */\n'persistentStateReset',\n/**\n * Fired by {@link PersistentState} plugin, after saving value under given key in browser local storage.\n *\n * The `persistentStateSave` hook is fired even when the {@link Options#persistentState} option is disabled.\n *\n * @event Hooks#persistentStateSave\n * @param {string} key Key.\n * @param {Mixed} value Value to save.\n */\n'persistentStateSave',\n/**\n * Fired by {@link ColumnSorting} and {@link MultiColumnSorting} plugins before sorting the column. If you return `false` value inside callback for hook, then sorting\n * will be not applied by the Handsontable (useful for server-side sorting).\n *\n * This hook is fired when {@link Options#columnSorting} or {@link Options#multiColumnSorting} option is enabled.\n *\n * @event Hooks#beforeColumnSort\n * @param {Array} currentSortConfig Current sort configuration (for all sorted columns).\n * @param {Array} destinationSortConfigs Destination sort configuration (for all sorted columns).\n * @returns {boolean | undefined} If `false` the column will not be sorted, `true` otherwise.\n */\n'beforeColumnSort',\n/**\n * Fired by {@link ColumnSorting} and {@link MultiColumnSorting} plugins after sorting the column. This hook is fired when {@link Options#columnSorting}\n * or {@link Options#multiColumnSorting} option is enabled.\n *\n * @event Hooks#afterColumnSort\n * @param {Array} currentSortConfig Current sort configuration (for all sorted columns).\n * @param {Array} destinationSortConfigs Destination sort configuration (for all sorted columns).\n */\n'afterColumnSort',\n/**\n * Fired by {@link Autofill} plugin after setting range of autofill. This hook is fired when {@link Options#fillHandle}\n * option is enabled.\n *\n * @event Hooks#modifyAutofillRange\n * @param {Array} startArea Array of visual coordinates of the starting point for the drag-down operation (`[startRow, startColumn, endRow, endColumn]`).\n * @param {Array} entireArea Array of visual coordinates of the entire area of the drag-down operation (`[startRow, startColumn, endRow, endColumn]`).\n */\n'modifyAutofillRange',\n/**\n * Fired to allow modifying the copyable range with a callback function.\n *\n * @event Hooks#modifyCopyableRange\n * @param {Array[]} copyableRanges Array of objects defining copyable cells.\n */\n'modifyCopyableRange',\n/**\n * Fired by {@link CopyPaste} plugin before copying the values to the clipboard and before clearing values of\n * the selected cells. This hook is fired when {@link Options#copyPaste} option is enabled.\n *\n * @event Hooks#beforeCut\n * @param {Array[]} data An array of arrays which contains data to cut.\n * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)\n *                       which will be cut out.\n * @returns {*} If returns `false` then operation of the cutting out is canceled.\n * @example\n * ::: only-for javascript\n * ```js\n * // To disregard a single row, remove it from the array using data.splice(i, 1).\n * new Handsontable(element, {\n *   beforeCut: function(data, coords) {\n *     // data -> [[1, 2, 3], [4, 5, 6]]\n *     data.splice(0, 1);\n *     // data -> [[4, 5, 6]]\n *     // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]\n *   }\n * });\n * // To cancel a cutting action, just return `false`.\n * new Handsontable(element, {\n *   beforeCut: function(data, coords) {\n *     return false;\n *   }\n * });\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * // To disregard a single row, remove it from the array using data.splice(i, 1).\n * <HotTable\n *   beforeCut={(data, coords) => {\n *     // data -> [[1, 2, 3], [4, 5, 6]]\n *     data.splice(0, 1);\n *     // data -> [[4, 5, 6]]\n *     // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]\n *   }}\n * />\n * // To cancel a cutting action, just return `false`.\n * <HotTable\n *   beforeCut={(data, coords) => {\n *     return false;\n *   }}\n * />\n * ```\n * :::\n */\n'beforeCut',\n/**\n * Fired by {@link CopyPaste} plugin after data was cut out from the table. This hook is fired when\n * {@link Options#copyPaste} option is enabled.\n *\n * @event Hooks#afterCut\n * @param {Array[]} data An array of arrays with the cut data.\n * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)\n *                       which was cut out.\n */\n'afterCut',\n/**\n * Fired before values are copied to the clipboard.\n *\n * @event Hooks#beforeCopy\n * @param {Array[]} data An array of arrays which contains data to copied.\n * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)\n *                         which will copied.\n * @param {{ columnHeadersCount: number }} copiedHeadersCount (Since 12.3.0) The number of copied column headers.\n * @returns {*} If returns `false` then copying is canceled.\n *\n * @example\n * ::: only-for javascript\n * ```js\n * // To disregard a single row, remove it from array using data.splice(i, 1).\n * ...\n * new Handsontable(document.getElementById('example'), {\n *   beforeCopy: (data, coords) => {\n *     // data -> [[1, 2, 3], [4, 5, 6]]\n *     data.splice(0, 1);\n *     // data -> [[4, 5, 6]]\n *     // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]\n *   }\n * });\n * ...\n *\n * // To cancel copying, return false from the callback.\n * ...\n * new Handsontable(document.getElementById('example'), {\n *   beforeCopy: (data, coords) => {\n *     return false;\n *   }\n * });\n * ...\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * // To disregard a single row, remove it from array using data.splice(i, 1).\n * ...\n * <HotTable\n *   beforeCopy={(data, coords) => {\n *     // data -> [[1, 2, 3], [4, 5, 6]]\n *     data.splice(0, 1);\n *     // data -> [[4, 5, 6]]\n *     // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]\n *   }}\n * />\n * ...\n *\n * // To cancel copying, return false from the callback.\n * ...\n * <HotTable\n *   beforeCopy={(data, coords) => {\n *     return false;\n *   }}\n * />\n * ...\n * ```\n * :::\n */\n'beforeCopy',\n/**\n * Fired by {@link CopyPaste} plugin after data are pasted into table. This hook is fired when {@link Options#copyPaste}\n * option is enabled.\n *\n * @event Hooks#afterCopy\n * @param {Array[]} data An array of arrays which contains the copied data.\n * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)\n *                         which was copied.\n * @param {{ columnHeadersCount: number }} copiedHeadersCount (Since 12.3.0) The number of copied column headers.\n */\n'afterCopy',\n/**\n * Fired by {@link CopyPaste} plugin before values are pasted into table. This hook is fired when\n * {@link Options#copyPaste} option is enabled.\n *\n * @event Hooks#beforePaste\n * @param {Array[]} data An array of arrays which contains data to paste.\n * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)\n *                       that correspond to the previously selected area.\n * @returns {*} If returns `false` then pasting is canceled.\n * @example\n * ```js\n * ::: only-for javascript\n * // To disregard a single row, remove it from array using data.splice(i, 1).\n * new Handsontable(example, {\n *   beforePaste: (data, coords) => {\n *     // data -> [[1, 2, 3], [4, 5, 6]]\n *     data.splice(0, 1);\n *     // data -> [[4, 5, 6]]\n *     // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]\n *   }\n * });\n * // To cancel pasting, return false from the callback.\n * new Handsontable(example, {\n *   beforePaste: (data, coords) => {\n *     return false;\n *   }\n * });\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * // To disregard a single row, remove it from array using data.splice(i, 1).\n * <HotTable\n *   beforePaste={(data, coords) => {\n *     // data -> [[1, 2, 3], [4, 5, 6]]\n *     data.splice(0, 1);\n *     // data -> [[4, 5, 6]]\n *     // coords -> [{startRow: 0, startCol: 0, endRow: 1, endCol: 2}]\n *   }}\n * />\n * // To cancel pasting, return false from the callback.\n * <HotTable\n *   beforePaste={(data, coords) => {\n *     return false;\n *   }}\n * />\n * ```\n * :::\n */\n'beforePaste',\n/**\n * Fired by {@link CopyPaste} plugin after values are pasted into table. This hook is fired when\n * {@link Options#copyPaste} option is enabled.\n *\n * @event Hooks#afterPaste\n * @param {Array[]} data An array of arrays with the pasted data.\n * @param {object[]} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)\n *                       that correspond to the previously selected area.\n */\n'afterPaste',\n/**\n * Fired by the {@link ManualColumnFreeze} plugin, before freezing a column.\n *\n * @event Hooks#beforeColumnFreeze\n * @since 12.1.0\n * @param {number} column The visual index of the column that is going to freeze.\n * @param {boolean} freezePerformed If `true`: the column is going to freeze. If `false`: the column is not going to freeze (which might happen if the column is already frozen).\n * @returns {boolean|undefined} If `false`: the column is not going to freeze, and the `afterColumnFreeze` hook won't fire.\n */\n'beforeColumnFreeze',\n/**\n * Fired by the {@link ManualColumnFreeze} plugin, right after freezing a column.\n *\n * @event Hooks#afterColumnFreeze\n * @since 12.1.0\n * @param {number} column The visual index of the frozen column.\n * @param {boolean} freezePerformed If `true`: the column got successfully frozen. If `false`: the column didn't get frozen.\n */\n'afterColumnFreeze',\n/**\n * Fired by {@link ManualColumnMove} plugin before change order of the visual indexes. This hook is fired when\n * {@link Options#manualColumnMove} option is enabled.\n *\n * @event Hooks#beforeColumnMove\n * @param {Array} movedColumns Array of visual column indexes to be moved.\n * @param {number} finalIndex Visual column index, being a start index for the moved columns.\n *                            Points to where the elements will be placed after the moving action.\n *                            To check visualization of final index please take a look at\n *                            [documentation](@/guides/columns/column-moving/column-moving.md).\n * @param {number|undefined} dropIndex Visual column index, being a drop index for the moved columns.\n *                                     Points to where we are going to drop the moved elements. To check\n *                                     visualization of drop index please take a look at\n *                                     [documentation](@/guides/columns/column-moving/column-moving.md).\n *                                     It's `undefined` when `dragColumns` function wasn't called.\n * @param {boolean} movePossible Indicates if it's possible to move rows to the desired position.\n * @returns {undefined | boolean} If `false` the column will not be moved, `true` otherwise.\n */\n'beforeColumnMove',\n/**\n * Fired by {@link ManualColumnMove} plugin after changing order of the visual indexes.\n * This hook is fired when {@link Options#manualColumnMove} option is enabled.\n *\n * @event Hooks#afterColumnMove\n * @param {Array} movedColumns Array of visual column indexes to be moved.\n * @param {number} finalIndex Visual column index, being a start index for the moved columns.\n *                            Points to where the elements will be placed after the moving action.\n *                            To check visualization of final index please take a look at\n *                            [documentation](@/guides/columns/column-moving/column-moving.md).\n * @param {number|undefined} dropIndex Visual column index, being a drop index for the moved columns.\n *                                     Points to where we are going to drop the moved elements.\n *                                     To check visualization of drop index please take a look at\n *                                     [documentation](@/guides/columns/column-moving/column-moving.md).\n *                                     It's `undefined` when `dragColumns` function wasn't called.\n * @param {boolean} movePossible Indicates if it was possible to move columns to the desired position.\n * @param {boolean} orderChanged Indicates if order of columns was changed by move.\n */\n'afterColumnMove',\n/**\n * Fired by the {@link ManualColumnFreeze} plugin, before unfreezing a column.\n *\n * @event Hooks#beforeColumnUnfreeze\n * @since 12.1.0\n * @param {number} column The visual index of the column that is going to unfreeze.\n * @param {boolean} unfreezePerformed If `true`: the column is going to unfreeze. If `false`: the column is not going to unfreeze (which might happen if the column is already unfrozen).\n * @returns {boolean|undefined} If `false`: the column is not going to unfreeze, and the `afterColumnUnfreeze` hook won't fire.\n */\n'beforeColumnUnfreeze',\n/**\n * Fired by the {@link ManualColumnFreeze} plugin, right after unfreezing a column.\n *\n * @event Hooks#afterColumnUnfreeze\n * @since 12.1.0\n * @param {number} column The visual index of the unfrozen column.\n * @param {boolean} unfreezePerformed If `true`: the column got successfully unfrozen. If `false`: the column didn't get unfrozen.\n */\n'afterColumnUnfreeze',\n/**\n * Fired by {@link ManualRowMove} plugin before changing the order of the visual indexes. This hook is fired when\n * {@link Options#manualRowMove} option is enabled.\n *\n * @event Hooks#beforeRowMove\n * @param {Array} movedRows Array of visual row indexes to be moved.\n * @param {number} finalIndex Visual row index, being a start index for the moved rows.\n *                            Points to where the elements will be placed after the moving action.\n *                            To check visualization of final index please take a look at\n *                            [documentation](@/guides/rows/row-moving/row-moving.md).\n * @param {number|undefined} dropIndex Visual row index, being a drop index for the moved rows.\n *                                     Points to where we are going to drop the moved elements.\n *                                     To check visualization of drop index please take a look at\n *                                     [documentation](@/guides/rows/row-moving/row-moving.md).\n *                                     It's `undefined` when `dragRows` function wasn't called.\n * @param {boolean} movePossible Indicates if it's possible to move rows to the desired position.\n * @returns {*|boolean} If false is returned the action is canceled.\n */\n'beforeRowMove',\n/**\n * Fired by {@link ManualRowMove} plugin after changing the order of the visual indexes.\n * This hook is fired when {@link Options#manualRowMove} option is enabled.\n *\n * @event Hooks#afterRowMove\n * @param {Array} movedRows Array of visual row indexes to be moved.\n * @param {number} finalIndex Visual row index, being a start index for the moved rows.\n *                            Points to where the elements will be placed after the moving action.\n *                            To check visualization of final index please take a look at\n *                            [documentation](@/guides/rows/row-moving/row-moving.md).\n * @param {number|undefined} dropIndex Visual row index, being a drop index for the moved rows.\n *                                     Points to where we are going to drop the moved elements.\n *                                     To check visualization of drop index please take a look at\n *                                     [documentation](@/guides/rows/row-moving/row-moving.md).\n *                                     It's `undefined` when `dragRows` function wasn't called.\n * @param {boolean} movePossible Indicates if it was possible to move rows to the desired position.\n * @param {boolean} orderChanged Indicates if order of rows was changed by move.\n */\n'afterRowMove',\n/**\n * Fired by {@link ManualColumnResize} plugin before rendering the table with modified column sizes. This hook is\n * fired when {@link Options#manualColumnResize} option is enabled.\n *\n * @event Hooks#beforeColumnResize\n * @param {number} newSize Calculated new column width.\n * @param {number} column Visual index of the resized column.\n * @param {boolean} isDoubleClick Flag that determines whether there was a double-click.\n * @returns {number} Returns a new column size or `undefined`, if column size should be calculated automatically.\n */\n'beforeColumnResize',\n/**\n * Fired by {@link ManualColumnResize} plugin after rendering the table with modified column sizes. This hook is\n * fired when {@link Options#manualColumnResize} option is enabled.\n *\n * @event Hooks#afterColumnResize\n * @param {number} newSize Calculated new column width.\n * @param {number} column Visual index of the resized column.\n * @param {boolean} isDoubleClick Flag that determines whether there was a double-click.\n */\n'afterColumnResize',\n/**\n * Fired by {@link ManualRowResize} plugin before rendering the table with modified row sizes. This hook is\n * fired when {@link Options#manualRowResize} option is enabled.\n *\n * @event Hooks#beforeRowResize\n * @param {number} newSize Calculated new row height.\n * @param {number} row Visual index of the resized row.\n * @param {boolean} isDoubleClick Flag that determines whether there was a double-click.\n * @returns {number|undefined} Returns the new row size or `undefined` if row size should be calculated automatically.\n */\n'beforeRowResize',\n/**\n * Fired by {@link ManualRowResize} plugin after rendering the table with modified row sizes. This hook is\n * fired when {@link Options#manualRowResize} option is enabled.\n *\n * @event Hooks#afterRowResize\n * @param {number} newSize Calculated new row height.\n * @param {number} row Visual index of the resized row.\n * @param {boolean} isDoubleClick Flag that determines whether there was a double-click.\n */\n'afterRowResize',\n/**\n * Fired after getting the column header renderers.\n *\n * @event Hooks#afterGetColumnHeaderRenderers\n * @param {Function[]} renderers An array of the column header renderers.\n */\n'afterGetColumnHeaderRenderers',\n/**\n * Fired after getting the row header renderers.\n *\n * @event Hooks#afterGetRowHeaderRenderers\n * @param {Function[]} renderers An array of the row header renderers.\n */\n'afterGetRowHeaderRenderers',\n/**\n * Fired before applying stretched column width to column.\n *\n * @event Hooks#beforeStretchingColumnWidth\n * @param {number} stretchedWidth Calculated width.\n * @param {number} column Visual column index.\n * @returns {number|undefined} Returns new width which will be applied to the column element.\n */\n'beforeStretchingColumnWidth',\n/**\n * Fired by the [`Filters`](@/api/filters.md) plugin,\n * before a [column filter](@/guides/columns/column-filter/column-filter.md) gets applied.\n *\n * [`beforeFilter`](#beforefilter) takes one argument (`conditionsStack`), which is an array of objects.\n * Each object represents one of your [column filters](@/api/filters.md#addcondition),\n * and consists of the following properties:\n *\n * | Property     | Possible values                                                         | Description                                                                                                              |\n * | ------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |\n * | `column`     | Number                                                                  | A visual index of the column to which the filter will be applied.                                                        |\n * | `conditions` | Array of objects                                                        | Each object represents one condition. For details, see [`addCondition()`](@/api/filters.md#addcondition).                |\n * | `operation`  | `'conjunction'` \\| `'disjunction'` \\| `'disjunctionWithExtraCondition'` | An operation to perform on your set of `conditions`. For details, see [`addCondition()`](@/api/filters.md#addcondition). |\n *\n * An example of the format of the `conditionsStack` argument:\n *\n * ```js\n * [\n *   {\n *     column: 2,\n *     conditions: [\n *       {name: 'begins_with', args: [['S']]}\n *     ],\n *     operation: 'conjunction'\n *   },\n *   {\n *     column: 4,\n *     conditions: [\n *       {name: 'not_empty', args: []}\n *     ],\n *     operation: 'conjunction'\n *   },\n * ]\n * ```\n *\n * To perform server-side filtering (i.e., to not apply filtering to Handsontable's UI),\n * set [`beforeFilter`](#beforefilter) to return `false`:\n *\n * ```js\n * new Handsontable(document.getElementById('example'), {\n *   beforeFilter: (conditionsStack) => {\n *     return false;\n *   }\n * });\n *```\n *\n * Read more:\n * - [Guides: Column filter](@/guides/columns/column-filter/column-filter.md)\n * - [Hooks: `afterFilter`](#afterfilter)\n * - [Options: `filters`](@/api/options.md#filters)\n * - [Plugins: `Filters`](@/api/filters.md)\n * – [Plugin methods: `addCondition()`](@/api/filters.md#addcondition)\n *\n * @event Hooks#beforeFilter\n * @param {object[]} conditionsStack An array of objects with your [column filters](@/api/filters.md#addcondition).\n * @returns {boolean} To perform server-side filtering (i.e., to not apply filtering to Handsontable's UI), return `false`.\n */\n'beforeFilter',\n/**\n * Fired by the [`Filters`](@/api/filters.md) plugin,\n * after a [column filter](@/guides/columns/column-filter/column-filter.md) gets applied.\n *\n * [`afterFilter`](#afterfilter) takes one argument (`conditionsStack`), which is an array of objects.\n * Each object represents one of your [column filters](@/api/filters.md#addcondition),\n * and consists of the following properties:\n *\n * | Property     | Possible values                                                         | Description                                                                                                              |\n * | ------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |\n * | `column`     | Number                                                                  | A visual index of the column to which the filter was applied.                                                            |\n * | `conditions` | Array of objects                                                        | Each object represents one condition. For details, see [`addCondition()`](@/api/filters.md#addcondition).                |\n * | `operation`  | `'conjunction'` \\| `'disjunction'` \\| `'disjunctionWithExtraCondition'` | An operation to perform on your set of `conditions`. For details, see [`addCondition()`](@/api/filters.md#addcondition). |\n *\n * An example of the format of the `conditionsStack` argument:\n *\n * ```js\n * [\n *   {\n *     column: 2,\n *     conditions: [\n *       {name: 'begins_with', args: [['S']]}\n *     ],\n *     operation: 'conjunction'\n *   },\n *   {\n *     column: 4,\n *     conditions: [\n *       {name: 'not_empty', args: []}\n *     ],\n *     operation: 'conjunction'\n *   },\n * ]\n * ```\n *\n * Read more:\n * - [Guides: Column filter](@/guides/columns/column-filter/column-filter.md)\n * - [Hooks: `beforeFilter`](#beforefilter)\n * - [Options: `filters`](@/api/options.md#filters)\n * - [Plugins: `Filters`](@/api/filters.md)\n * – [Plugin methods: `addCondition()`](@/api/filters.md#addcondition)\n *\n * @event Hooks#afterFilter\n * @param {object[]} conditionsStack An array of objects with your [column filters](@/api/filters.md#addcondition).\n */\n'afterFilter',\n/**\n * Fired by the {@link Formulas} plugin, when any cell value changes.\n *\n * Returns an array of objects that contains:\n * - The addresses (`sheet`, `row`, `col`) and new values (`newValue`) of the changed cells.\n * - The addresses and new values of any cells that had to be recalculated (because their formulas depend on the cells that changed).\n *\n * This hook gets also fired on Handsontable's initialization, returning the addresses and values of all cells.\n *\n * Read more:\n * - [Guides: Formula calculation](@/guides/formulas/formula-calculation/formula-calculation.md)\n * - [HyperFormula documentation: `valuesUpdated`](https://hyperformula.handsontable.com/api/interfaces/listeners.html#valuesupdated)\n *\n * @since 9.0.0\n * @event Hooks#afterFormulasValuesUpdate\n * @param {Array} changes The addresses and new values of all the changed and recalculated cells.\n */\n'afterFormulasValuesUpdate',\n/**\n * Fired when a named expression is added to the Formulas' engine instance.\n *\n * @since 9.0.0\n * @event Hooks#afterNamedExpressionAdded\n * @param {string} namedExpressionName The name of the added expression.\n * @param {Array} changes The values and location of applied changes.\n */\n'afterNamedExpressionAdded',\n/**\n * Fired when a named expression is removed from the Formulas' engine instance.\n *\n * @since 9.0.0\n * @event Hooks#afterNamedExpressionRemoved\n * @param {string} namedExpressionName The name of the removed expression.\n * @param {Array} changes The values and location of applied changes.\n */\n'afterNamedExpressionRemoved',\n/**\n * Fired when a new sheet is added to the Formulas' engine instance.\n *\n * @since 9.0.0\n * @event Hooks#afterSheetAdded\n * @param {string} addedSheetDisplayName The name of the added sheet.\n */\n'afterSheetAdded',\n/**\n * Fired when a sheet in the Formulas' engine instance is renamed.\n *\n * @since 9.0.0\n * @event Hooks#afterSheetRenamed\n * @param {string} oldDisplayName The old name of the sheet.\n * @param {string} newDisplayName The new name of the sheet.\n */\n'afterSheetRenamed',\n/**\n * Fired when a sheet is removed from the Formulas' engine instance.\n *\n * @since 9.0.0\n * @event Hooks#afterSheetRemoved\n * @param {string} removedSheetDisplayName The removed sheet name.\n * @param {Array} changes The values and location of applied changes.\n */\n'afterSheetRemoved',\n/**\n * Fired while retrieving the column header height.\n *\n * @event Hooks#modifyColumnHeaderHeight\n */\n'modifyColumnHeaderHeight',\n/**\n * Fired while retrieving a column header's value.\n *\n * @since 12.3.0\n * @event Hooks#modifyColumnHeaderValue\n * @param {string} value A column header value.\n * @param {number} visualColumnIndex A visual column index.\n * @param {number} [headerLevel=0] Header level index. Accepts positive (`0` to `n`)\n *                                 and negative (`-1` to `-n`) values. For positive values, `0` points to the\n *                                 topmost header. For negative values, `-1` points to the bottom-most\n *                                 header (the header closest to the cells).\n * @returns {string} The column header value to be updated.\n */\n'modifyColumnHeaderValue',\n/**\n * Fired by {@link UndoRedo} plugin before the undo action. Contains information about the action that is being undone.\n * This hook is fired when {@link Options#undo} option is enabled.\n *\n * @event Hooks#beforeUndo\n * @param {object} action The action object. Contains information about the action being undone. The `actionType`\n *                        property of the object specifies the type of the action in a String format. (e.g. `'remove_row'`).\n * @returns {*|boolean} If false is returned the action is canceled.\n */\n'beforeUndo',\n/**\n * Fired by {@link UndoRedo} plugin before changing undo stack.\n *\n * @event Hooks#beforeUndoStackChange\n * @since 8.4.0\n * @param {Array} doneActions Stack of actions which may be undone.\n * @param {string} [source] String that identifies source of action\n *                          ([list of all available sources](@/guides/getting-started/events-and-hooks/events-and-hooks.md#definition-for-source-argument)).\n * @returns {*|boolean} If false is returned the action of changing undo stack is canceled.\n */\n'beforeUndoStackChange',\n/**\n * Fired by {@link UndoRedo} plugin after the undo action. Contains information about the action that is being undone.\n * This hook is fired when {@link Options#undo} option is enabled.\n *\n * @event Hooks#afterUndo\n * @param {object} action The action object. Contains information about the action being undone. The `actionType`\n *                        property of the object specifies the type of the action in a String format. (e.g. `'remove_row'`).\n */\n'afterUndo',\n/**\n * Fired by {@link UndoRedo} plugin after changing undo stack.\n *\n * @event Hooks#afterUndoStackChange\n * @since 8.4.0\n * @param {Array} doneActionsBefore Stack of actions which could be undone before performing new action.\n * @param {Array} doneActionsAfter Stack of actions which can be undone after performing new action.\n */\n'afterUndoStackChange',\n/**\n * Fired by {@link UndoRedo} plugin before the redo action. Contains information about the action that is being redone.\n * This hook is fired when {@link Options#undo} option is enabled.\n *\n * @event Hooks#beforeRedo\n * @param {object} action The action object. Contains information about the action being redone. The `actionType`\n *                        property of the object specifies the type of the action in a String format (e.g. `'remove_row'`).\n * @returns {*|boolean} If false is returned the action is canceled.\n */\n'beforeRedo',\n/**\n * Fired by {@link UndoRedo} plugin before changing redo stack.\n *\n * @event Hooks#beforeRedoStackChange\n * @since 8.4.0\n * @param {Array} undoneActions Stack of actions which may be redone.\n */\n'beforeRedoStackChange',\n/**\n * Fired by {@link UndoRedo} plugin after the redo action. Contains information about the action that is being redone.\n * This hook is fired when {@link Options#undo} option is enabled.\n *\n * @event Hooks#afterRedo\n * @param {object} action The action object. Contains information about the action being redone. The `actionType`\n *                        property of the object specifies the type of the action in a String format (e.g. `'remove_row'`).\n */\n'afterRedo',\n/**\n * Fired by {@link UndoRedo} plugin after changing redo stack.\n *\n * @event Hooks#afterRedoStackChange\n * @since 8.4.0\n * @param {Array} undoneActionsBefore Stack of actions which could be redone before performing new action.\n * @param {Array} undoneActionsAfter Stack of actions which can be redone after performing new action.\n */\n'afterRedoStackChange',\n/**\n * Fired while retrieving the row header width.\n *\n * @event Hooks#modifyRowHeaderWidth\n * @param {number} rowHeaderWidth Row header width.\n */\n'modifyRowHeaderWidth',\n/**\n * Fired when the focus of the selection is being modified (e.g. Moving the focus with the enter/tab keys).\n *\n * @since 14.3.0\n * @event Hooks#modifyTransformFocus\n * @param {CellCoords} delta Cell coords object declaring the delta of the new selection relative to the previous one.\n */\n'modifyTransformFocus',\n/**\n * Fired when the start of the selection is being modified (e.g. Moving the selection with the arrow keys).\n *\n * @event Hooks#modifyTransformStart\n * @param {CellCoords} delta Cell coords object declaring the delta of the new selection relative to the previous one.\n */\n'modifyTransformStart',\n/**\n * Fired when the end of the selection is being modified (e.g. Moving the selection with the arrow keys).\n *\n * @event Hooks#modifyTransformEnd\n * @param {CellCoords} delta Cell coords object declaring the delta of the new selection relative to the previous one.\n */\n'modifyTransformEnd',\n/**\n * Fired after the focus of the selection is being modified (e.g. Moving the focus with the enter/tab keys).\n *\n * @since 14.3.0\n * @event Hooks#afterModifyTransformFocus\n * @param {CellCoords} coords Coords of the freshly focused cell.\n * @param {number} rowTransformDir `-1` if trying to focus a cell with a negative row index. `0` otherwise.\n * @param {number} colTransformDir `-1` if trying to focus a cell with a negative column index. `0` otherwise.\n */\n'afterModifyTransformFocus',\n/**\n * Fired after the start of the selection is being modified (e.g. Moving the selection with the arrow keys).\n *\n * @event Hooks#afterModifyTransformStart\n * @param {CellCoords} coords Coords of the freshly selected cell.\n * @param {number} rowTransformDir `-1` if trying to select a cell with a negative row index. `0` otherwise.\n * @param {number} colTransformDir `-1` if trying to select a cell with a negative column index. `0` otherwise.\n */\n'afterModifyTransformStart',\n/**\n * Fired after the end of the selection is being modified (e.g. Moving the selection with the arrow keys).\n *\n * @event Hooks#afterModifyTransformEnd\n * @param {CellCoords} coords Visual coords of the freshly selected cell.\n * @param {number} rowTransformDir `-1` if trying to select a cell with a negative row index. `0` otherwise.\n * @param {number} colTransformDir `-1` if trying to select a cell with a negative column index. `0` otherwise.\n */\n'afterModifyTransformEnd',\n/**\n * Fired inside the `viewportRowCalculatorOverride` method. Allows modifying the row calculator parameters.\n *\n * @event Hooks#afterViewportRowCalculatorOverride\n * @param {object} calc The row calculator.\n */\n'afterViewportRowCalculatorOverride',\n/**\n * Fired inside the `viewportColumnCalculatorOverride` method. Allows modifying the row calculator parameters.\n *\n * @event Hooks#afterViewportColumnCalculatorOverride\n * @param {object} calc The row calculator.\n */\n'afterViewportColumnCalculatorOverride',\n/**\n * Fired after initializing all the plugins.\n * This hook should be added before Handsontable is initialized.\n *\n * @event Hooks#afterPluginsInitialized\n *\n * @example\n * ```js\n * Handsontable.hooks.add('afterPluginsInitialized', myCallback);\n * ```\n */\n'afterPluginsInitialized',\n/**\n * Fired by {@link HiddenRows} plugin before marking the rows as hidden. Fired only if the {@link Options#hiddenRows} option is enabled.\n * Returning `false` in the callback will prevent the hiding action from completing.\n *\n * @event Hooks#beforeHideRows\n * @param {Array} currentHideConfig Current hide configuration - a list of hidden physical row indexes.\n * @param {Array} destinationHideConfig Destination hide configuration - a list of hidden physical row indexes.\n * @param {boolean} actionPossible `true`, if provided row indexes are valid, `false` otherwise.\n * @returns {undefined|boolean} If the callback returns `false`, the hiding action will not be completed.\n */\n'beforeHideRows',\n/**\n * Fired by {@link HiddenRows} plugin after marking the rows as hidden. Fired only if the {@link Options#hiddenRows} option is enabled.\n *\n * @event Hooks#afterHideRows\n * @param {Array} currentHideConfig Current hide configuration - a list of hidden physical row indexes.\n * @param {Array} destinationHideConfig Destination hide configuration - a list of hidden physical row indexes.\n * @param {boolean} actionPossible `true`, if provided row indexes are valid, `false` otherwise.\n * @param {boolean} stateChanged `true`, if the action affected any non-hidden rows, `false` otherwise.\n */\n'afterHideRows',\n/**\n * Fired by {@link HiddenRows} plugin before marking the rows as not hidden. Fired only if the {@link Options#hiddenRows} option is enabled.\n * Returning `false` in the callback will prevent the row revealing action from completing.\n *\n * @event Hooks#beforeUnhideRows\n * @param {Array} currentHideConfig Current hide configuration - a list of hidden physical row indexes.\n * @param {Array} destinationHideConfig Destination hide configuration - a list of hidden physical row indexes.\n * @param {boolean} actionPossible `true`, if provided row indexes are valid, `false` otherwise.\n * @returns {undefined|boolean} If the callback returns `false`, the revealing action will not be completed.\n */\n'beforeUnhideRows',\n/**\n * Fired by {@link HiddenRows} plugin after marking the rows as not hidden. Fired only if the {@link Options#hiddenRows} option is enabled.\n *\n * @event Hooks#afterUnhideRows\n * @param {Array} currentHideConfig Current hide configuration - a list of hidden physical row indexes.\n * @param {Array} destinationHideConfig Destination hide configuration - a list of hidden physical row indexes.\n * @param {boolean} actionPossible `true`, if provided row indexes are valid, `false` otherwise.\n * @param {boolean} stateChanged `true`, if the action affected any hidden rows, `false` otherwise.\n */\n'afterUnhideRows',\n/**\n * Fired by {@link HiddenColumns} plugin before marking the columns as hidden. Fired only if the {@link Options#hiddenColumns} option is enabled.\n * Returning `false` in the callback will prevent the hiding action from completing.\n *\n * @event Hooks#beforeHideColumns\n * @param {Array} currentHideConfig Current hide configuration - a list of hidden physical column indexes.\n * @param {Array} destinationHideConfig Destination hide configuration - a list of hidden physical column indexes.\n * @param {boolean} actionPossible `true`, if the provided column indexes are valid, `false` otherwise.\n * @returns {undefined|boolean} If the callback returns `false`, the hiding action will not be completed.\n */\n'beforeHideColumns',\n/**\n * Fired by {@link HiddenColumns} plugin after marking the columns as hidden. Fired only if the {@link Options#hiddenColumns} option is enabled.\n *\n * @event Hooks#afterHideColumns\n * @param {Array} currentHideConfig Current hide configuration - a list of hidden physical column indexes.\n * @param {Array} destinationHideConfig Destination hide configuration - a list of hidden physical column indexes.\n * @param {boolean} actionPossible `true`, if the provided column indexes are valid, `false` otherwise.\n * @param {boolean} stateChanged `true`, if the action affected any non-hidden columns, `false` otherwise.\n */\n'afterHideColumns',\n/**\n * Fired by {@link HiddenColumns} plugin before marking the columns as not hidden. Fired only if the {@link Options#hiddenColumns} option is enabled.\n * Returning `false` in the callback will prevent the column revealing action from completing.\n *\n * @event Hooks#beforeUnhideColumns\n * @param {Array} currentHideConfig Current hide configuration - a list of hidden physical column indexes.\n * @param {Array} destinationHideConfig Destination hide configuration - a list of hidden physical column indexes.\n * @param {boolean} actionPossible `true`, if the provided column indexes are valid, `false` otherwise.\n * @returns {undefined|boolean} If the callback returns `false`, the hiding action will not be completed.\n */\n'beforeUnhideColumns',\n/**\n * Fired by {@link HiddenColumns} plugin after marking the columns as not hidden. Fired only if the {@link Options#hiddenColumns} option is enabled.\n *\n * @event Hooks#afterUnhideColumns\n * @param {Array} currentHideConfig Current hide configuration - a list of hidden physical column indexes.\n * @param {Array} destinationHideConfig Destination hide configuration - a list of hidden physical column indexes.\n * @param {boolean} actionPossible `true`, if the provided column indexes are valid, `false` otherwise.\n * @param {boolean} stateChanged `true`, if the action affected any hidden columns, `false` otherwise.\n */\n'afterUnhideColumns',\n/**\n * Fired by {@link TrimRows} plugin before trimming rows. This hook is fired when {@link Options#trimRows} option is enabled.\n *\n * @event Hooks#beforeTrimRow\n * @param {Array} currentTrimConfig Current trim configuration - a list of trimmed physical row indexes.\n * @param {Array} destinationTrimConfig Destination trim configuration - a list of trimmed physical row indexes.\n * @param {boolean} actionPossible `true`, if all of the row indexes are withing the bounds of the table, `false` otherwise.\n * @returns {undefined|boolean} If the callback returns `false`, the trimming action will not be completed.\n */\n'beforeTrimRow',\n/**\n * Fired by {@link TrimRows} plugin after trimming rows. This hook is fired when {@link Options#trimRows} option is enabled.\n *\n * @event Hooks#afterTrimRow\n * @param {Array} currentTrimConfig Current trim configuration - a list of trimmed physical row indexes.\n * @param {Array} destinationTrimConfig Destination trim configuration - a list of trimmed physical row indexes.\n * @param {boolean} actionPossible `true`, if all of the row indexes are withing the bounds of the table, `false` otherwise.\n * @param {boolean} stateChanged `true`, if the action affected any non-trimmed rows, `false` otherwise.\n * @returns {undefined|boolean} If the callback returns `false`, the trimming action will not be completed.\n */\n'afterTrimRow',\n/**\n * Fired by {@link TrimRows} plugin before untrimming rows. This hook is fired when {@link Options#trimRows} option is enabled.\n *\n * @event Hooks#beforeUntrimRow\n * @param {Array} currentTrimConfig Current trim configuration - a list of trimmed physical row indexes.\n * @param {Array} destinationTrimConfig Destination trim configuration - a list of trimmed physical row indexes.\n * @param {boolean} actionPossible `true`, if all of the row indexes are withing the bounds of the table, `false` otherwise.\n * @returns {undefined|boolean} If the callback returns `false`, the untrimming action will not be completed.\n */\n'beforeUntrimRow',\n/**\n * Fired by {@link TrimRows} plugin after untrimming rows. This hook is fired when {@link Options#trimRows} option is enabled.\n *\n * @event Hooks#afterUntrimRow\n * @param {Array} currentTrimConfig Current trim configuration - a list of trimmed physical row indexes.\n * @param {Array} destinationTrimConfig Destination trim configuration - a list of trimmed physical row indexes.\n * @param {boolean} actionPossible `true`, if all of the row indexes are withing the bounds of the table, `false` otherwise.\n * @param {boolean} stateChanged `true`, if the action affected any trimmed rows, `false` otherwise.\n * @returns {undefined|boolean} If the callback returns `false`, the untrimming action will not be completed.\n */\n'afterUntrimRow',\n/**\n * Fired by {@link DropdownMenu} plugin before opening the dropdown menu. This hook is fired when {@link Options#dropdownMenu}\n * option is enabled.\n *\n * @event Hooks#beforeDropdownMenuShow\n * @param {DropdownMenu} dropdownMenu The `DropdownMenu` instance.\n */\n'beforeDropdownMenuShow',\n/**\n * Fired by {@link DropdownMenu} plugin after opening the Dropdown Menu. This hook is fired when {@link Options#dropdownMenu}\n * option is enabled.\n *\n * @event Hooks#afterDropdownMenuShow\n * @param {DropdownMenu} dropdownMenu The `DropdownMenu` instance.\n */\n'afterDropdownMenuShow',\n/**\n * Fired by {@link DropdownMenu} plugin after hiding the Dropdown Menu. This hook is fired when {@link Options#dropdownMenu}\n * option is enabled.\n *\n * @event Hooks#afterDropdownMenuHide\n * @param {DropdownMenu} instance The `DropdownMenu` instance.\n */\n'afterDropdownMenuHide',\n/**\n * Fired by {@link NestedRows} plugin before adding a children to the `NestedRows` structure. This hook is fired when\n * {@link Options#nestedRows} option is enabled.\n *\n * @event Hooks#beforeAddChild\n * @param {object} parent The parent object.\n * @param {object|undefined} element The element added as a child. If `undefined`, a blank child was added.\n * @param {number|undefined} index The index within the parent where the new child was added. If `undefined`, the element was added as the last child.\n */\n'beforeAddChild',\n/**\n * Fired by {@link NestedRows} plugin after adding a children to the `NestedRows` structure. This hook is fired when\n * {@link Options#nestedRows} option is enabled.\n *\n * @event Hooks#afterAddChild\n * @param {object} parent The parent object.\n * @param {object|undefined} element The element added as a child. If `undefined`, a blank child was added.\n * @param {number|undefined} index The index within the parent where the new child was added. If `undefined`, the element was added as the last child.\n */\n'afterAddChild',\n/**\n * Fired by {@link NestedRows} plugin before detaching a child from its parent. This hook is fired when\n * {@link Options#nestedRows} option is enabled.\n *\n * @event Hooks#beforeDetachChild\n * @param {object} parent An object representing the parent from which the element is to be detached.\n * @param {object} element The detached element.\n */\n'beforeDetachChild',\n/**\n * Fired by {@link NestedRows} plugin after detaching a child from its parent. This hook is fired when\n * {@link Options#nestedRows} option is enabled.\n *\n * @event Hooks#afterDetachChild\n * @param {object} parent An object representing the parent from which the element was detached.\n * @param {object} element The detached element.\n * @param {number} finalElementPosition The final row index of the detached element.\n */\n'afterDetachChild',\n/**\n * Fired before the editor is opened and rendered.\n *\n * @since 14.2.0\n * @event Hooks#beforeBeginEditing\n * @param {number} row Visual row index of the edited cell.\n * @param {number} column Visual column index of the edited cell.\n * @param {*} initialValue The initial editor value.\n * @param {MouseEvent | KeyboardEvent} event The event which was responsible for opening the editor.\n * @param {boolean} fullEditMode `true` if the editor is opened in full edit mode, `false` otherwise.\n * Editor opened in full edit mode does not close after pressing Arrow keys.\n * @returns {boolean | undefined} If the callback returns `false,` the editor won't be opened after\n * the mouse double click or after pressing the Enter key. Returning `undefined` (or other value\n * than boolean) will result in default behavior, which disallows opening an editor for non-contiguous\n * selection (while pressing Ctrl/Cmd) and for multiple selected cells (while pressing SHIFT).\n * Returning `true` removes those restrictions.\n */\n'beforeBeginEditing',\n/**\n * Fired after the editor is opened and rendered.\n *\n * @event Hooks#afterBeginEditing\n * @param {number} row Visual row index of the edited cell.\n * @param {number} column Visual column index of the edited cell.\n */\n'afterBeginEditing',\n/**\n * Fired by {@link MergeCells} plugin before cell merging. This hook is fired when {@link Options#mergeCells}\n * option is enabled.\n *\n * @event Hooks#beforeMergeCells\n * @param {CellRange} cellRange Selection cell range.\n * @param {boolean} [auto=false] `true` if called automatically by the plugin.\n */\n'beforeMergeCells',\n/**\n * Fired by {@link MergeCells} plugin after cell merging. This hook is fired when {@link Options#mergeCells}\n * option is enabled.\n *\n * @event Hooks#afterMergeCells\n * @param {CellRange} cellRange Selection cell range.\n * @param {object} mergeParent The parent collection of the provided cell range.\n * @param {boolean} [auto=false] `true` if called automatically by the plugin.\n */\n'afterMergeCells',\n/**\n * Fired by {@link MergeCells} plugin before unmerging the cells. This hook is fired when {@link Options#mergeCells}\n * option is enabled.\n *\n * @event Hooks#beforeUnmergeCells\n * @param {CellRange} cellRange Selection cell range.\n * @param {boolean} [auto=false] `true` if called automatically by the plugin.\n */\n'beforeUnmergeCells',\n/**\n * Fired by {@link MergeCells} plugin after unmerging the cells. This hook is fired when {@link Options#mergeCells}\n * option is enabled.\n *\n * @event Hooks#afterUnmergeCells\n * @param {CellRange} cellRange Selection cell range.\n * @param {boolean} [auto=false] `true` if called automatically by the plugin.\n */\n'afterUnmergeCells',\n/**\n * Fired after the table was switched into listening mode. This allows Handsontable to capture keyboard events and\n * respond in the right way.\n *\n * @event Hooks#afterListen\n */\n'afterListen',\n/**\n * Fired after the table was switched off from the listening mode. This makes the Handsontable inert for any\n * keyboard events.\n *\n * @event Hooks#afterUnlisten\n */\n'afterUnlisten',\n/**\n * Fired after the window was resized or the size of the Handsontable root element was changed.\n *\n * @event Hooks#afterRefreshDimensions\n * @param {{ width: number, height: number }} previousDimensions Previous dimensions of the container.\n * @param {{ width: number, height: number }} currentDimensions Current dimensions of the container.\n * @param {boolean} stateChanged `true`, if the container was re-render, `false` otherwise.\n */\n'afterRefreshDimensions',\n/**\n * Cancellable hook, called after resizing a window or after detecting size change of the\n * Handsontable root element, but before redrawing a table.\n *\n * @event Hooks#beforeRefreshDimensions\n * @param {{ width: number, height: number }} previousDimensions Previous dimensions of the container.\n * @param {{ width: number, height: number }} currentDimensions Current dimensions of the container.\n * @param {boolean} actionPossible `true`, if current and previous dimensions are different, `false` otherwise.\n * @returns {undefined|boolean} If the callback returns `false`, the refresh action will not be completed.\n */\n'beforeRefreshDimensions',\n/**\n * Fired by {@link CollapsibleColumns} plugin before columns collapse. This hook is fired when {@link Options#collapsibleColumns} option is enabled.\n *\n * @event Hooks#beforeColumnCollapse\n * @since 8.0.0\n * @param {Array} currentCollapsedColumns Current collapsible configuration - a list of collapsible physical column indexes.\n * @param {Array} destinationCollapsedColumns Destination collapsible configuration - a list of collapsible physical column indexes.\n * @param {boolean} collapsePossible `true`, if all of the column indexes are withing the bounds of the collapsed sections, `false` otherwise.\n * @returns {undefined|boolean} If the callback returns `false`, the collapsing action will not be completed.\n */\n'beforeColumnCollapse',\n/**\n * Fired by {@link CollapsibleColumns} plugin before columns collapse. This hook is fired when {@link Options#collapsibleColumns} option is enabled.\n *\n * @event Hooks#afterColumnCollapse\n * @since 8.0.0\n * @param {Array} currentCollapsedColumns Current collapsible configuration - a list of collapsible physical column indexes.\n * @param {Array} destinationCollapsedColumns Destination collapsible configuration - a list of collapsible physical column indexes.\n * @param {boolean} collapsePossible `true`, if all of the column indexes are withing the bounds of the collapsed sections, `false` otherwise.\n * @param {boolean} successfullyCollapsed `true`, if the action affected any non-collapsible column, `false` otherwise.\n */\n'afterColumnCollapse',\n/**\n * Fired by {@link CollapsibleColumns} plugin before columns expand. This hook is fired when {@link Options#collapsibleColumns} option is enabled.\n *\n * @event Hooks#beforeColumnExpand\n * @since 8.0.0\n * @param {Array} currentCollapsedColumns Current collapsible configuration - a list of collapsible physical column indexes.\n * @param {Array} destinationCollapsedColumns Destination collapsible configuration - a list of collapsible physical column indexes.\n * @param {boolean} expandPossible `true`, if all of the column indexes are withing the bounds of the collapsed sections, `false` otherwise.\n * @returns {undefined|boolean} If the callback returns `false`, the expanding action will not be completed.\n */\n'beforeColumnExpand',\n/**\n * Fired by {@link CollapsibleColumns} plugin before columns expand. This hook is fired when {@link Options#collapsibleColumns} option is enabled.\n *\n * @event Hooks#afterColumnExpand\n * @since 8.0.0\n * @param {Array} currentCollapsedColumns Current collapsible configuration - a list of collapsible physical column indexes.\n * @param {Array} destinationCollapsedColumns Destination collapsible configuration - a list of collapsible physical column indexes.\n * @param {boolean} expandPossible `true`, if all of the column indexes are withing the bounds of the collapsed sections, `false` otherwise.\n * @param {boolean} successfullyExpanded `true`, if the action affected any non-collapsible column, `false` otherwise.\n */\n'afterColumnExpand',\n/**\n * Fired by {@link AutoColumnSize} plugin within SampleGenerator utility.\n *\n * @event Hooks#modifyAutoColumnSizeSeed\n * @since 8.4.0\n * @param {string|undefined} seed Seed ID, unique name to categorize samples.\n * @param {object} cellProperties Object containing the cell properties.\n * @param {*} cellValue Value of the cell.\n */\n'modifyAutoColumnSizeSeed'];\n\n/**\n * Template warning message for removed hooks.\n *\n * @type {string}\n */\nconst REMOVED_MESSAGE = _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_7__[\"toSingleLine\"]`The plugin hook \"[hookName]\" was removed in Handsontable [removedInVersion].\\x20\n  Please consult release notes https://github.com/handsontable/handsontable/releases/tag/[removedInVersion] to\\x20\n  learn about the migration path.`;\n\n/**\n * The list of the hooks which are removed from the API. The warning message is printed out in\n * the developer console when the hook is used.\n *\n * The Map key is represented by hook name and its value points to the Handsontable version\n * in which it was removed.\n *\n * @type {Map<string, string>}\n */\nconst REMOVED_HOOKS = new Map([['modifyRow', '8.0.0'], ['modifyCol', '8.0.0'], ['unmodifyRow', '8.0.0'], ['unmodifyCol', '8.0.0'], ['skipLengthCache', '8.0.0'], ['hiddenColumn', '8.0.0'], ['hiddenRow', '8.0.0']]);\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * The list of the hooks which are deprecated. The warning message is printed out in\n * the developer console when the hook is used.\n *\n * The Map key is represented by hook name and its value keeps message which whould be\n * printed out when the hook is used.\n *\n * Usage:\n * ```js\n * ...\n * New Map([\n *   ['beforeColumnExpand', 'The plugin hook \"beforeColumnExpand\" is deprecated. Use \"beforeColumnExpand2\" instead.'],\n * ])\n * ...\n * ```\n *\n *\n * @type {Map<string, string>}\n */\n/* eslint-enable jsdoc/require-description-complete-sentence */\nconst DEPRECATED_HOOKS = new Map([[]]);\nconst callbackOrder = new WeakMap();\nclass Hooks {\n  static getSingleton() {\n    return getGlobalSingleton();\n  }\n\n  /**\n   * @type {object}\n   */\n\n  /**\n   *\n   */\n  constructor() {\n    _defineProperty(this, \"globalBucket\", void 0);\n    this.globalBucket = this.createEmptyBucket();\n  }\n\n  /**\n   * Returns a new object with empty handlers related to every registered hook name.\n   *\n   * @returns {object} The empty bucket object.\n   *\n   * @example\n   * ```js\n   * Handsontable.hooks.createEmptyBucket();\n   * // Results:\n   * {\n   * ...\n   * afterCreateCol: [],\n   * afterCreateRow: [],\n   * beforeInit: [],\n   * ...\n   * }\n   * ```\n   */\n  createEmptyBucket() {\n    const bucket = Object.create(null);\n\n    // eslint-disable-next-line no-return-assign\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(REGISTERED_HOOKS, hook => {\n      bucket[hook] = [];\n      this.initOrderMap(bucket, hook);\n    });\n    return bucket;\n  }\n\n  /**\n   * Get hook bucket based on the context of the object or if argument is `undefined`, get the global hook bucket.\n   *\n   * @param {object} [context=null] A Handsontable instance.\n   * @returns {object} Returns a global or Handsontable instance bucket.\n   */\n  getBucket() {\n    let context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    if (context) {\n      if (!context.pluginHookBucket) {\n        context.pluginHookBucket = this.createEmptyBucket();\n      }\n      return context.pluginHookBucket;\n    }\n    return this.globalBucket;\n  }\n\n  /**\n   * Adds a listener (globally or locally) to a specified hook name.\n   * If the `context` parameter is provided, the hook will be added only to the instance it references.\n   * Otherwise, the callback will be used everytime the hook fires on any Handsontable instance.\n   * You can provide an array of callback functions as the `callback` argument, this way they will all be fired\n   * once the hook is triggered.\n   *\n   * @see Core#addHook\n   * @param {string} key Hook name.\n   * @param {Function|Array} callback Callback function or an array of functions.\n   * @param {object} [context=null] The context for the hook callback to be added - a Handsontable instance or leave empty.\n   * @param {number} [orderIndex] Order index of the callback.\n   *                              If > 0, the callback will be added after the others, for example, with an index of 1, the callback will be added before the ones with an index of 2, 3, etc., but after the ones with an index of 0 and lower.\n   *                              If < 0, the callback will be added before the others, for example, with an index of -1, the callback will be added after the ones with an index of -2, -3, etc., but before the ones with an index of 0 and higher.\n   *                              If 0 or no order index is provided, the callback will be added between the \"negative\" and \"positive\" indexes.\n   * @returns {Hooks} Instance of Hooks.\n   *\n   * @example\n   * ```js\n   * // single callback, added locally\n   * Handsontable.hooks.add('beforeInit', myCallback, hotInstance);\n   *\n   * // single callback, added globally\n   * Handsontable.hooks.add('beforeInit', myCallback);\n   *\n   * // multiple callbacks, added locally\n   * Handsontable.hooks.add('beforeInit', [myCallback, anotherCallback], hotInstance);\n   *\n   * // multiple callbacks, added globally\n   * Handsontable.hooks.add('beforeInit', [myCallback, anotherCallback]);\n   * ```\n   */\n  add(key, callback) {\n    let context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n    let orderIndex = arguments.length > 3 ? arguments[3] : undefined;\n    if (Array.isArray(callback)) {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(callback, c => this.add(key, c, context));\n    } else {\n      if (REMOVED_HOOKS.has(key)) {\n        Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_6__[\"warn\"])(Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_5__[\"substitute\"])(REMOVED_MESSAGE, {\n          hookName: key,\n          removedInVersion: REMOVED_HOOKS.get(key)\n        }));\n      }\n      if (DEPRECATED_HOOKS.has(key)) {\n        Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_6__[\"warn\"])(DEPRECATED_HOOKS.get(key));\n      }\n      const bucket = this.getBucket(context);\n      if (typeof bucket[key] === 'undefined') {\n        this.register(key);\n        bucket[key] = [];\n        this.initOrderMap(bucket, key);\n      }\n      callback.skip = false;\n      if (bucket[key].indexOf(callback) === -1) {\n        // only add a hook if it has not already been added (adding the same hook twice is now silently ignored)\n        let foundInitialHook = false;\n        if (callback.initialHook) {\n          Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(bucket[key], (cb, i) => {\n            if (cb.initialHook) {\n              bucket[key][i] = callback;\n              foundInitialHook = true;\n              return false;\n            }\n          });\n        }\n        if (!foundInitialHook) {\n          bucket[key].push(callback);\n        }\n      }\n      this.setCallbackOrderIndex(bucket, key, callback, orderIndex);\n      this.orderBucketByOrderIndex(bucket, key);\n    }\n    return this;\n  }\n\n  /**\n   * Adds a listener to a specified hook. After the hook runs this listener will be automatically removed from the bucket.\n   *\n   * @see Core#addHookOnce\n   * @param {string} key Hook/Event name.\n   * @param {Function|Array} callback Callback function.\n   * @param {object} [context=null] A Handsontable instance.\n   * @param {number} [orderIndex] Order index of the callback.\n   *                              If > 0, the callback will be added after the others, for example, with an index of 1, the callback will be added before the ones with an index of 2, 3, etc., but after the ones with an index of 0 and lower.\n   *                              If < 0, the callback will be added before the others, for example, with an index of -1, the callback will be added after the ones with an index of -2, -3, etc., but before the ones with an index of 0 and higher.\n   *                              If 0 or no order index is provided, the callback will be added between the \"negative\" and \"positive\" indexes.\n   *\n   * @example\n   * ```js\n   * Handsontable.hooks.once('beforeInit', myCallback, hotInstance);\n   * ```\n   */\n  once(key, callback) {\n    let context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n    let orderIndex = arguments.length > 3 ? arguments[3] : undefined;\n    if (Array.isArray(callback)) {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(callback, c => this.once(key, c, context));\n    } else {\n      callback.runOnce = true;\n      this.add(key, callback, context, orderIndex);\n    }\n  }\n\n  /**\n   * Removes a listener from a hook with a given name. If the `context` argument is provided, it removes a listener from a local hook assigned to the given Handsontable instance.\n   *\n   * @see Core#removeHook\n   * @param {string} key Hook/Event name.\n   * @param {Function} callback Callback function (needs the be the function that was previously added to the hook).\n   * @param {object} [context=null] Handsontable instance.\n   * @returns {boolean} Returns `true` if hook was removed, `false` otherwise.\n   *\n   * @example\n   * ```js\n   * Handsontable.hooks.remove('beforeInit', myCallback);\n   * ```\n   */\n  remove(key, callback) {\n    let context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n    const bucket = this.getBucket(context);\n    if (typeof bucket[key] !== 'undefined') {\n      if (bucket[key].indexOf(callback) >= 0) {\n        callback.skip = true;\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   * Checks whether there are any registered listeners for the provided hook name.\n   * If the `context` parameter is provided, it only checks for listeners assigned to the given Handsontable instance.\n   *\n   * @param {string} key Hook name.\n   * @param {object} [context=null] A Handsontable instance.\n   * @returns {boolean} `true` for success, `false` otherwise.\n   */\n  has(key) {\n    let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    const bucket = this.getBucket(context);\n    return !!(bucket[key] !== undefined && bucket[key].length);\n  }\n\n  /**\n   * Runs all local and global callbacks assigned to the hook identified by the `key` parameter.\n   * It returns either a return value from the last called callback or the first parameter (`p1`) passed to the `run` function.\n   *\n   * @see Core#runHooks\n   * @param {object} context Handsontable instance.\n   * @param {string} key Hook/Event name.\n   * @param {*} [p1] Parameter to be passed as an argument to the callback function.\n   * @param {*} [p2] Parameter to be passed as an argument to the callback function.\n   * @param {*} [p3] Parameter to be passed as an argument to the callback function.\n   * @param {*} [p4] Parameter to be passed as an argument to the callback function.\n   * @param {*} [p5] Parameter to be passed as an argument to the callback function.\n   * @param {*} [p6] Parameter to be passed as an argument to the callback function.\n   * @returns {*} Either a return value from the last called callback or `p1`.\n   *\n   * @example\n   * ```js\n   * Handsontable.hooks.run(hot, 'beforeInit');\n   * ```\n   */\n  run(context, key, p1, p2, p3, p4, p5, p6) {\n    {\n      const globalHandlers = this.globalBucket[key];\n      const length = globalHandlers ? globalHandlers.length : 0;\n      let index = 0;\n      if (length) {\n        // Do not optimise this loop with arrayEach or arrow function! If you do You'll decrease perf because of GC.\n        while (index < length) {\n          if (!globalHandlers[index] || globalHandlers[index].skip) {\n            index += 1;\n            /* eslint-disable no-continue */\n            continue;\n          }\n          const res = Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_8__[\"fastCall\"])(globalHandlers[index], context, p1, p2, p3, p4, p5, p6);\n          if (res !== undefined) {\n            // eslint-disable-next-line no-param-reassign\n            p1 = res;\n          }\n          if (globalHandlers[index] && globalHandlers[index].runOnce) {\n            this.remove(key, globalHandlers[index]);\n          }\n          index += 1;\n        }\n      }\n    }\n    {\n      const localHandlers = this.getBucket(context)[key];\n      const length = localHandlers ? localHandlers.length : 0;\n      let index = 0;\n      if (length) {\n        // Do not optimise this loop with arrayEach or arrow function! If you do You'll decrease perf because of GC.\n        while (index < length) {\n          if (!localHandlers[index] || localHandlers[index].skip) {\n            index += 1;\n            /* eslint-disable no-continue */\n            continue;\n          }\n          const res = Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_8__[\"fastCall\"])(localHandlers[index], context, p1, p2, p3, p4, p5, p6);\n          if (res !== undefined) {\n            // eslint-disable-next-line no-param-reassign\n            p1 = res;\n          }\n          if (localHandlers[index] && localHandlers[index].runOnce) {\n            this.remove(key, localHandlers[index], context);\n          }\n          index += 1;\n        }\n      }\n    }\n    return p1;\n  }\n\n  /**\n   * Destroy all listeners connected to the context. If no context is provided, the global listeners will be destroyed.\n   *\n   * @param {object} [context=null] A Handsontable instance.\n   * @example\n   * ```js\n   * // destroy the global listeners\n   * Handsontable.hooks.destroy();\n   *\n   * // destroy the local listeners\n   * Handsontable.hooks.destroy(hotInstance);\n   * ```\n   */\n  destroy() {\n    let context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    // eslint-disable-next-line no-return-assign\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"objectEach\"])(this.getBucket(context), (value, key, bucket) => bucket[key].length = 0);\n  }\n\n  /**\n   * Registers a hook name (adds it to the list of the known hook names). Used by plugins.\n   * It is not necessary to call register, but if you use it, your plugin hook will be used returned by\n   * the `getRegistered` method. (which itself is used in the [demo](@/guides/getting-started/events-and-hooks/events-and-hooks.md)).\n   *\n   * @param {string} key The hook name.\n   *\n   * @example\n   * ```js\n   * Handsontable.hooks.register('myHook');\n   * ```\n   */\n  register(key) {\n    if (!this.isRegistered(key)) {\n      REGISTERED_HOOKS.push(key);\n    }\n  }\n\n  /**\n   * Deregisters a hook name (removes it from the list of known hook names).\n   *\n   * @param {string} key The hook name.\n   *\n   * @example\n   * ```js\n   * Handsontable.hooks.deregister('myHook');\n   * ```\n   */\n  deregister(key) {\n    if (this.isRegistered(key)) {\n      REGISTERED_HOOKS.splice(REGISTERED_HOOKS.indexOf(key), 1);\n    }\n  }\n\n  /**\n   * Returns a boolean value depending on if a hook by such name has been removed or deprecated.\n   *\n   * @param {string} hookName The hook name to check.\n   * @returns {boolean} Returns `true` if the provided hook name was marked as deprecated or\n   * removed from API, `false` otherwise.\n   * @example\n   * ```js\n   * Handsontable.hooks.isDeprecated('skipLengthCache');\n   *\n   * // Results:\n   * true\n   * ```\n   */\n  isDeprecated(hookName) {\n    return DEPRECATED_HOOKS.has(hookName) || REMOVED_HOOKS.has(hookName);\n  }\n\n  /**\n   * Returns a boolean depending on if a hook by such name has been registered.\n   *\n   * @param {string} hookName The hook name to check.\n   * @returns {boolean} `true` for success, `false` otherwise.\n   * @example\n   * ```js\n   * Handsontable.hooks.isRegistered('beforeInit');\n   *\n   * // Results:\n   * true\n   * ```\n   */\n  isRegistered(hookName) {\n    return REGISTERED_HOOKS.indexOf(hookName) >= 0;\n  }\n\n  /**\n   * Returns an array of registered hooks.\n   *\n   * @returns {Array} An array of registered hooks.\n   *\n   * @example\n   * ```js\n   * Handsontable.hooks.getRegistered();\n   *\n   * // Results:\n   * [\n   * ...\n   *   'beforeInit',\n   *   'beforeRender',\n   *   'beforeSetRangeEnd',\n   *   'beforeDrawBorders',\n   *   'beforeChange',\n   * ...\n   * ]\n   * ```\n   */\n  getRegistered() {\n    return REGISTERED_HOOKS;\n  }\n\n  /**\n   * Sets the order index of the callback in the bucket object.\n   *\n   * @private\n   * @param {object} bucket The bucket object.\n   * @param {string} key Hook name.\n   * @param {Function} callback Callback function.\n   * @param {number|undefined} orderIndex Order index of the callback.\n   */\n  setCallbackOrderIndex(bucket, key, callback, orderIndex) {\n    const normalizedOrderIndex = Number.isInteger(orderIndex) ? orderIndex : 0;\n    const orderMap = this.getCallbackOrderMap(bucket, key);\n    orderMap.set(normalizedOrderIndex, [...(orderMap.get(normalizedOrderIndex) || []), callback]);\n  }\n\n  /**\n   * Reorders the callbacks in the bucket object by their order index.\n   *\n   * @private\n   * @param {objcet} bucket The bucket object.\n   * @param {string} key Hook name.\n   */\n  orderBucketByOrderIndex(bucket, key) {\n    const orderMap = this.getCallbackOrderMap(bucket, key);\n    if (orderMap === undefined || orderMap.size === 0 || orderMap.size === 1 && orderMap.has(0)) {\n      return;\n    }\n    bucket[key] = [...orderMap].sort((a, b) => a[0] - b[0]).flatMap(_ref => {\n      let [, callbacks] = _ref;\n      return callbacks;\n    });\n  }\n\n  /**\n   * Extends the bucket object with the order property.\n   *\n   * @private\n   * @param {object} bucket The bucket object.\n   * @param {string} hook The hook name.\n   */\n  initOrderMap(bucket, hook) {\n    if (!callbackOrder.has(bucket)) {\n      callbackOrder.set(bucket, []);\n    }\n    callbackOrder.get(bucket)[hook] = new Map();\n  }\n\n  /**\n   * Returns the order map for the provided hook.\n   *\n   * @private\n   * @param {object} bucket The bucket object.\n   * @param {string} hook The hook name.\n   * @returns {Map<number, Array<Function>>} Returns the order map for the provided hook.\n   */\n  getCallbackOrderMap(bucket, hook) {\n    return callbackOrder.get(bucket)[hook];\n  }\n}\nconst globalSingleton = new Hooks();\n\n/**\n * @returns {Hooks}\n */\nfunction getGlobalSingleton() {\n  return globalSingleton;\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (Hooks);\n\n//# sourceURL=webpack:///./node_modules/handsontable/pluginHooks.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/autoColumnSize/autoColumnSize.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/autoColumnSize/autoColumnSize.mjs ***!
  \*****************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, AutoColumnSize */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AutoColumnSize\", function() { return AutoColumnSize; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/feature.mjs */ \"./node_modules/handsontable/helpers/feature.mjs\");\n/* harmony import */ var _utils_ghostTable_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/ghostTable.mjs */ \"./node_modules/handsontable/utils/ghostTable.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _utils_samplesGenerator_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/samplesGenerator.mjs */ \"./node_modules/handsontable/utils/samplesGenerator.mjs\");\n/* harmony import */ var _helpers_string_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../helpers/string.mjs */ \"./node_modules/handsontable/helpers/string.mjs\");\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"].getSingleton().register('modifyAutoColumnSizeSeed');\nconst PLUGIN_KEY = 'autoColumnSize';\nconst PLUGIN_PRIORITY = 10;\nconst COLUMN_SIZE_MAP_NAME = 'autoColumnSize';\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * @plugin AutoColumnSize\n * @class AutoColumnSize\n *\n * @description\n * This plugin allows to set column widths based on their widest cells.\n *\n * By default, the plugin is declared as `undefined`, which makes it enabled (same as if it was declared as `true`).\n * Enabling this plugin may decrease the overall table performance, as it needs to calculate the widths of all cells to\n * resize the columns accordingly.\n * If you experience problems with the performance, try turning this feature off and declaring the column widths manually.\n *\n * Column width calculations are divided into sync and async part. Each of this parts has their own advantages and\n * disadvantages. Synchronous calculations are faster but they block the browser UI, while the slower asynchronous\n * operations don't block the browser UI.\n *\n * To configure the sync/async distribution, you can pass an absolute value (number of columns) or a percentage value to a config object:\n *\n * ```js\n * // as a number (300 columns in sync, rest async)\n * autoColumnSize: {syncLimit: 300},\n *\n * // as a string (percent)\n * autoColumnSize: {syncLimit: '40%'},\n * ```\n *\n * The plugin uses {@link GhostTable} and {@link SamplesGenerator} for calculations.\n * First, {@link SamplesGenerator} prepares samples of data with its coordinates.\n * Next {@link GhostTable} uses coordinates to get cells' renderers and append all to the DOM through DocumentFragment.\n *\n * Sampling accepts additional options:\n * - *samplingRatio* - Defines how many samples for the same length will be used to calculate. Default is `3`.\n *\n * ```js\n *   autoColumnSize: {\n *     samplingRatio: 10,\n *   }\n * ```\n *\n * - *allowSampleDuplicates* - Defines if duplicated values might be used in sampling. Default is `false`.\n *\n * ```js\n *   autoColumnSize: {\n *     allowSampleDuplicates: true,\n *   }\n * ```\n *\n * To configure this plugin see {@link Options#autoColumnSize}.\n *\n * @example\n *\n * ::: only-for javascript\n * ```js\n * const hot = new Handsontable(document.getElementById('example'), {\n *   data: getData(),\n *   autoColumnSize: true\n * });\n * // Access to plugin instance:\n * const plugin = hot.getPlugin('autoColumnSize');\n *\n * plugin.getColumnWidth(4);\n *\n * if (plugin.isEnabled()) {\n *   // code...\n * }\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * const hotRef = useRef(null);\n *\n * ...\n *\n * // First, let's contruct Handsontable\n * <HotTable\n *   ref={hotRef}\n *   data={getData()}\n *   autoColumnSize={true}\n * />\n *\n * ...\n *\n * // Access to plugin instance:\n * const hot = hotRef.current.hotInstance;\n * const plugin = hot.getPlugin('autoColumnSize');\n *\n * plugin.getColumnWidth(4);\n *\n * if (plugin.isEnabled()) {\n *   // code...\n * }\n * ```\n * :::\n */\n/* eslint-enable jsdoc/require-description-complete-sentence */\nvar _cachedColumnHeaders = /*#__PURE__*/new WeakMap();\nvar _visualColumnsToRefresh = /*#__PURE__*/new WeakMap();\nvar _AutoColumnSize_brand = /*#__PURE__*/new WeakSet();\nclass AutoColumnSize extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BasePlugin\"] {\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  static get SETTING_KEYS() {\n    return true;\n  }\n  static get CALCULATION_STEP() {\n    return 50;\n  }\n  static get SYNC_CALCULATION_LIMIT() {\n    return 50;\n  }\n\n  /**\n   * Instance of {@link GhostTable} for rows and columns size calculations.\n   *\n   * @private\n   * @type {GhostTable}\n   */\n\n  constructor(hotInstance) {\n    super(hotInstance);\n    /**\n     * Calculates specific columns width (overwrite cache values).\n     *\n     * @param {number[]} visualColumns List of visual columns to calculate.\n     */\n    _classPrivateMethodInitSpec(this, _AutoColumnSize_brand);\n    _defineProperty(this, \"ghostTable\", new _utils_ghostTable_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"](this.hot));\n    /**\n     * Instance of {@link SamplesGenerator} for generating samples necessary for columns width calculations.\n     *\n     * @private\n     * @type {SamplesGenerator}\n     * @fires Hooks#modifyAutoColumnSizeSeed\n     */\n    _defineProperty(this, \"samplesGenerator\", new _utils_samplesGenerator_mjs__WEBPACK_IMPORTED_MODULE_8__[\"default\"]((row, column) => {\n      const physicalRow = this.hot.toPhysicalRow(row);\n      const physicalColumn = this.hot.toPhysicalColumn(column);\n      if (this.hot.rowIndexMapper.isHidden(physicalRow) || this.hot.columnIndexMapper.isHidden(physicalColumn)) {\n        return false;\n      }\n      const cellMeta = this.hot.getCellMeta(row, column);\n      let cellValue = '';\n      if (!cellMeta.spanned) {\n        cellValue = this.hot.getDataAtCell(row, column);\n      }\n      let bundleSeed = '';\n      if (this.hot.hasHook('modifyAutoColumnSizeSeed')) {\n        bundleSeed = this.hot.runHooks('modifyAutoColumnSizeSeed', bundleSeed, cellMeta, cellValue);\n      }\n      return {\n        value: cellValue,\n        bundleSeed\n      };\n    }));\n    /**\n     * `true` if the size calculation is in progress.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"inProgress\", false);\n    /**\n     * Number of already measured columns (we already know their sizes).\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"measuredColumns\", 0);\n    /**\n     * PhysicalIndexToValueMap to keep and track widths for physical column indexes.\n     *\n     * @private\n     * @type {PhysicalIndexToValueMap}\n     */\n    _defineProperty(this, \"columnWidthsMap\", new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"PhysicalIndexToValueMap\"]());\n    /**\n     * Cached column header names. It is used to diff current column headers with previous state and detect which\n     * columns width should be updated.\n     *\n     * @type {Array}\n     */\n    _classPrivateFieldInitSpec(this, _cachedColumnHeaders, []);\n    /**\n     * An array of column indexes whose width will be recalculated.\n     *\n     * @type {number[]}\n     */\n    _classPrivateFieldInitSpec(this, _visualColumnsToRefresh, []);\n    this.hot.columnIndexMapper.registerMap(COLUMN_SIZE_MAP_NAME, this.columnWidthsMap);\n\n    // Leave the listener active to allow auto-sizing the columns when the plugin is disabled.\n    // This is necessary for width recalculation for resize handler doubleclick (ManualColumnResize).\n    this.addHook('beforeColumnResize', (size, column, isDblClick) => _assertClassBrand(_AutoColumnSize_brand, this, _onBeforeColumnResize).call(this, size, column, isDblClick));\n  }\n\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link #enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return this.hot.getSettings()[PLUGIN_KEY] !== false && !this.hot.getSettings().colWidths;\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    const setting = this.hot.getSettings()[PLUGIN_KEY];\n    if (setting && setting.useHeaders !== null && setting.useHeaders !== undefined) {\n      this.ghostTable.setSetting('useHeaders', setting.useHeaders);\n    }\n    this.setSamplingOptions();\n    this.addHook('afterLoadData', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_AutoColumnSize_brand, _this, _onAfterLoadData).call(_this, ...args);\n    });\n    this.addHook('beforeChangeRender', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_AutoColumnSize_brand, _this, _onBeforeChange).call(_this, ...args);\n    });\n    this.addHook('afterFormulasValuesUpdate', function () {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n      return _assertClassBrand(_AutoColumnSize_brand, _this, _onAfterFormulasValuesUpdate).call(_this, ...args);\n    });\n    this.addHook('beforeRender', () => _assertClassBrand(_AutoColumnSize_brand, this, _onBeforeRender).call(this));\n    this.addHook('modifyColWidth', (width, col) => this.getColumnWidth(col, width));\n    this.addHook('init', () => _assertClassBrand(_AutoColumnSize_brand, this, _onInit).call(this));\n    super.enablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state. This method is executed when {@link Core#updateSettings} is invoked.\n   */\n  updatePlugin() {\n    _classPrivateFieldSet(_visualColumnsToRefresh, this, this.findColumnsWhereHeaderWasChanged());\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    super.disablePlugin();\n\n    // Leave the listener active to allow auto-sizing the columns when the plugin is disabled.\n    // This is necessary for width recalculation for resize handler doubleclick (ManualColumnResize).\n    this.addHook('beforeColumnResize', (size, column, isDblClick) => _assertClassBrand(_AutoColumnSize_brand, this, _onBeforeColumnResize).call(this, size, column, isDblClick));\n  }\n\n  /**\n   * Calculates widths for visible columns in the viewport only.\n   */\n  calculateVisibleColumnsWidth() {\n    // Keep last column widths unchanged for situation when all rows was deleted or trimmed (pro #6)\n    if (!this.hot.countRows()) {\n      return;\n    }\n    const firstVisibleColumn = this.getFirstVisibleColumn();\n    const lastVisibleColumn = this.getLastVisibleColumn();\n    if (firstVisibleColumn === -1 || lastVisibleColumn === -1) {\n      return;\n    }\n    const overwriteCache = this.hot.renderCall;\n    this.calculateColumnsWidth({\n      from: firstVisibleColumn,\n      to: lastVisibleColumn\n    }, undefined, overwriteCache);\n  }\n\n  /**\n   * Calculates a columns width.\n   *\n   * @param {number|object} colRange Visual column index or an object with `from` and `to` visual indexes as a range.\n   * @param {number|object} rowRange Visual row index or an object with `from` and `to` visual indexes as a range.\n   * @param {boolean} [overwriteCache=false] If `true` the calculation will be processed regardless of whether the width exists in the cache.\n   */\n  calculateColumnsWidth() {\n    let colRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n      from: 0,\n      to: this.hot.countCols() - 1\n    };\n    let rowRange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n      from: 0,\n      to: this.hot.countRows() - 1\n    };\n    let overwriteCache = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    const columnsRange = typeof colRange === 'number' ? {\n      from: colRange,\n      to: colRange\n    } : colRange;\n    const rowsRange = typeof rowRange === 'number' ? {\n      from: rowRange,\n      to: rowRange\n    } : rowRange;\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_7__[\"rangeEach\"])(columnsRange.from, columnsRange.to, visualColumn => {\n      let physicalColumn = this.hot.toPhysicalColumn(visualColumn);\n      if (physicalColumn === null) {\n        physicalColumn = visualColumn;\n      }\n      if (overwriteCache || this.columnWidthsMap.getValueAtIndex(physicalColumn) === null && !this.hot._getColWidthFromSettings(physicalColumn)) {\n        const samples = this.samplesGenerator.generateColumnSamples(visualColumn, rowsRange);\n        samples.forEach((sample, column) => this.ghostTable.addColumn(column, sample));\n      }\n    });\n    if (this.ghostTable.columns.length) {\n      this.hot.batchExecution(() => {\n        this.ghostTable.getWidths((visualColumn, width) => {\n          const physicalColumn = this.hot.toPhysicalColumn(visualColumn);\n          this.columnWidthsMap.setValueAtIndex(physicalColumn, width);\n        });\n      }, true);\n      this.measuredColumns = columnsRange.to + 1;\n      this.ghostTable.clean();\n    }\n  }\n\n  /**\n   * Calculates all columns width. The calculated column will be cached in the {@link AutoColumnSize#widths} property.\n   * To retrieve width for specified column use {@link AutoColumnSize#getColumnWidth} method.\n   *\n   * @param {object|number} rowRange Row index or an object with `from` and `to` properties which define row range.\n   * @param {boolean} [overwriteCache] If `true` the calculation will be processed regardless of whether the width exists in the cache.\n   */\n  calculateAllColumnsWidth() {\n    let rowRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n      from: 0,\n      to: this.hot.countRows() - 1\n    };\n    let overwriteCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    let current = 0;\n    const length = this.hot.countCols() - 1;\n    let timer = null;\n    this.inProgress = true;\n    const loop = () => {\n      // When hot was destroyed after calculating finished cancel frame\n      if (!this.hot) {\n        Object(_helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_3__[\"cancelAnimationFrame\"])(timer);\n        this.inProgress = false;\n        return;\n      }\n      this.calculateColumnsWidth({\n        from: current,\n        to: Math.min(current + AutoColumnSize.CALCULATION_STEP, length)\n      }, rowRange, overwriteCache);\n      current = current + AutoColumnSize.CALCULATION_STEP + 1;\n      if (current < length) {\n        timer = Object(_helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_3__[\"requestAnimationFrame\"])(loop);\n      } else {\n        Object(_helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_3__[\"cancelAnimationFrame\"])(timer);\n        this.inProgress = false;\n\n        // @TODO Should call once per render cycle, currently fired separately in different plugins\n        this.hot.view.adjustElementsSize();\n      }\n    };\n    const syncLimit = this.getSyncCalculationLimit();\n\n    // sync\n    if (syncLimit >= 0) {\n      this.calculateColumnsWidth({\n        from: 0,\n        to: syncLimit\n      }, rowRange, overwriteCache);\n      current = syncLimit + 1;\n    }\n    // async\n    if (current < length) {\n      loop();\n    } else {\n      this.inProgress = false;\n    }\n  }\n  /**\n   * Sets the sampling options.\n   *\n   * @private\n   */\n  setSamplingOptions() {\n    const setting = this.hot.getSettings()[PLUGIN_KEY];\n    const samplingRatio = setting && Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_6__[\"hasOwnProperty\"])(setting, 'samplingRatio') ? setting.samplingRatio : undefined;\n    const allowSampleDuplicates = setting && Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_6__[\"hasOwnProperty\"])(setting, 'allowSampleDuplicates') ? setting.allowSampleDuplicates : undefined;\n    if (samplingRatio && !isNaN(samplingRatio)) {\n      this.samplesGenerator.setSampleCount(parseInt(samplingRatio, 10));\n    }\n    if (allowSampleDuplicates) {\n      this.samplesGenerator.setAllowDuplicates(allowSampleDuplicates);\n    }\n  }\n\n  /**\n   * Recalculates all columns width (overwrite cache values).\n   */\n  recalculateAllColumnsWidth() {\n    if (this.hot.view.isVisible()) {\n      this.calculateAllColumnsWidth({\n        from: 0,\n        to: this.hot.countRows() - 1\n      }, true);\n    }\n  }\n\n  /**\n   * Gets value which tells how many columns should be calculated synchronously (rest of the columns will be calculated\n   * asynchronously). The limit is calculated based on `syncLimit` set to `autoColumnSize` option (see {@link Options#autoColumnSize}).\n   *\n   * @returns {number}\n   */\n  getSyncCalculationLimit() {\n    const settings = this.hot.getSettings()[PLUGIN_KEY];\n    /* eslint-disable no-bitwise */\n    let limit = AutoColumnSize.SYNC_CALCULATION_LIMIT;\n    const colsLimit = this.hot.countCols() - 1;\n    if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_6__[\"isObject\"])(settings)) {\n      limit = settings.syncLimit;\n      if (Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_9__[\"isPercentValue\"])(limit)) {\n        limit = Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_7__[\"valueAccordingPercent\"])(colsLimit, limit);\n      } else {\n        // Force to Number\n        limit >>= 0;\n      }\n    }\n    return Math.min(limit, colsLimit);\n  }\n\n  /**\n   * Gets the calculated column width.\n   *\n   * @param {number} column Visual column index.\n   * @param {number} [defaultWidth] Default column width. It will be picked up if no calculated width found.\n   * @param {boolean} [keepMinimum=true] If `true` then returned value won't be smaller then 50 (default column width).\n   * @returns {number}\n   */\n  getColumnWidth(column, defaultWidth) {\n    let keepMinimum = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n    let width = defaultWidth;\n    if (width === undefined) {\n      width = this.columnWidthsMap.getValueAtIndex(this.hot.toPhysicalColumn(column));\n      if (keepMinimum && typeof width === 'number') {\n        width = Math.max(width, _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"DEFAULT_COLUMN_WIDTH\"]);\n      }\n    }\n    return width;\n  }\n\n  /**\n   * Gets the first visible column.\n   *\n   * @returns {number} Returns visual column index, -1 if table is not rendered or if there are no columns to base the the calculations on.\n   */\n  getFirstVisibleColumn() {\n    var _this$hot$view$getFir;\n    return (_this$hot$view$getFir = this.hot.view.getFirstRenderedVisibleColumn()) !== null && _this$hot$view$getFir !== void 0 ? _this$hot$view$getFir : -1;\n  }\n\n  /**\n   * Gets the last visible column.\n   *\n   * @returns {number} Returns visual column index or -1 if table is not rendered.\n   */\n  getLastVisibleColumn() {\n    var _this$hot$view$getLas;\n    return (_this$hot$view$getLas = this.hot.view.getLastRenderedVisibleColumn()) !== null && _this$hot$view$getLas !== void 0 ? _this$hot$view$getLas : -1;\n  }\n\n  /**\n   * Collects all columns which titles has been changed in comparison to the previous state.\n   *\n   * @private\n   * @returns {Array} It returns an array of visual column indexes.\n   */\n  findColumnsWhereHeaderWasChanged() {\n    const columnHeaders = this.hot.getColHeader();\n    const changedColumns = columnHeaders.reduce((acc, columnTitle, physicalColumn) => {\n      const cachedColumnsLength = _classPrivateFieldGet(_cachedColumnHeaders, this).length;\n      if (cachedColumnsLength - 1 < physicalColumn || _classPrivateFieldGet(_cachedColumnHeaders, this)[physicalColumn] !== columnTitle) {\n        acc.push(this.hot.toVisualColumn(physicalColumn));\n      }\n      if (cachedColumnsLength - 1 < physicalColumn) {\n        _classPrivateFieldGet(_cachedColumnHeaders, this).push(columnTitle);\n      } else {\n        _classPrivateFieldGet(_cachedColumnHeaders, this)[physicalColumn] = columnTitle;\n      }\n      return acc;\n    }, []);\n    return changedColumns;\n  }\n\n  /**\n   * Clears cache of calculated column widths. If you want to clear only selected columns pass an array with their indexes.\n   * Otherwise whole cache will be cleared.\n   *\n   * @param {number[]} [physicalColumns] List of physical column indexes to clear.\n   */\n  clearCache(physicalColumns) {\n    if (Array.isArray(physicalColumns)) {\n      this.hot.batchExecution(() => {\n        physicalColumns.forEach(physicalIndex => {\n          this.columnWidthsMap.setValueAtIndex(physicalIndex, null);\n        });\n      }, true);\n    } else {\n      this.columnWidthsMap.clear();\n    }\n  }\n\n  /**\n   * Checks if all widths were calculated. If not then return `true` (need recalculate).\n   *\n   * @returns {boolean}\n   */\n  isNeedRecalculate() {\n    return !!this.columnWidthsMap.getValues().slice(0, this.measuredColumns).filter(item => item === null).length;\n  }\n\n  /**\n   * On before view render listener.\n   */\n\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    this.ghostTable.clean();\n    super.destroy();\n  }\n}\nfunction _calculateSpecificColumnsWidth(visualColumns) {\n  const rowsRange = {\n    from: 0,\n    to: this.hot.countRows() - 1\n  };\n  visualColumns.forEach(visualColumn => {\n    const physicalColumn = this.hot.toPhysicalColumn(visualColumn);\n    if (physicalColumn === null) {\n      return;\n    }\n    if (!this.hot._getColWidthFromSettings(physicalColumn)) {\n      const samples = this.samplesGenerator.generateColumnSamples(visualColumn, rowsRange);\n      samples.forEach((sample, column) => this.ghostTable.addColumn(column, sample));\n    }\n  });\n  if (this.ghostTable.columns.length) {\n    this.hot.batchExecution(() => {\n      this.ghostTable.getWidths((visualColumn, width) => {\n        const physicalColumn = this.hot.toPhysicalColumn(visualColumn);\n        this.columnWidthsMap.setValueAtIndex(physicalColumn, width);\n      });\n    }, true);\n    this.ghostTable.clean();\n  }\n}\nfunction _onBeforeRender() {\n  this.calculateVisibleColumnsWidth();\n  if (!this.inProgress) {\n    _assertClassBrand(_AutoColumnSize_brand, this, _calculateSpecificColumnsWidth).call(this, _classPrivateFieldGet(_visualColumnsToRefresh, this));\n    _classPrivateFieldSet(_visualColumnsToRefresh, this, []);\n  }\n}\n/**\n * On after load data listener.\n *\n * @param {Array} sourceData Source data.\n * @param {boolean} isFirstLoad `true` if this is the first load.\n */\nfunction _onAfterLoadData(sourceData, isFirstLoad) {\n  if (!isFirstLoad) {\n    this.recalculateAllColumnsWidth();\n  }\n}\n/**\n * On before change listener.\n *\n * @param {Array} changes An array of modified data.\n */\nfunction _onBeforeChange(changes) {\n  const changedColumns = changes.reduce((acc, _ref) => {\n    let [, columnProperty] = _ref;\n    const visualColumn = this.hot.propToCol(columnProperty);\n    if (Number.isInteger(visualColumn) && acc.indexOf(visualColumn) === -1) {\n      acc.push(visualColumn);\n    }\n    return acc;\n  }, []);\n  _classPrivateFieldGet(_visualColumnsToRefresh, this).push(...changedColumns);\n}\n/**\n * On before column resize listener.\n *\n * @param {number} size Calculated new column width.\n * @param {number} column Visual index of the resized column.\n * @param {boolean} isDblClick  Flag that determines whether there was a double-click.\n * @returns {number}\n */\nfunction _onBeforeColumnResize(size, column, isDblClick) {\n  let newSize = size;\n  if (isDblClick) {\n    this.calculateColumnsWidth(column, undefined, true);\n    newSize = this.getColumnWidth(column, undefined, false);\n  }\n  return newSize;\n}\n/**\n * On after Handsontable init fill plugin with all necessary values.\n */\nfunction _onInit() {\n  _classPrivateFieldSet(_cachedColumnHeaders, this, this.hot.getColHeader());\n  this.recalculateAllColumnsWidth();\n}\n/**\n * After formulas values updated listener.\n *\n * @param {Array} changes An array of modified data.\n */\nfunction _onAfterFormulasValuesUpdate(changes) {\n  const changedColumns = changes.reduce((acc, change) => {\n    var _change$address;\n    const physicalColumn = (_change$address = change.address) === null || _change$address === void 0 ? void 0 : _change$address.col;\n    if (Number.isInteger(physicalColumn)) {\n      const visualColumn = this.hot.toVisualColumn(physicalColumn);\n      if (acc.indexOf(visualColumn) === -1) {\n        acc.push(visualColumn);\n      }\n    }\n    return acc;\n  }, []);\n  _classPrivateFieldGet(_visualColumnsToRefresh, this).push(...changedColumns);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/autoColumnSize/autoColumnSize.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/autoColumnSize/index.mjs":
/*!********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/autoColumnSize/index.mjs ***!
  \********************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, AutoColumnSize */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _autoColumnSize_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./autoColumnSize.mjs */ \"./node_modules/handsontable/plugins/autoColumnSize/autoColumnSize.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _autoColumnSize_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _autoColumnSize_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AutoColumnSize\", function() { return _autoColumnSize_mjs__WEBPACK_IMPORTED_MODULE_0__[\"AutoColumnSize\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/autoColumnSize/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/autoRowSize/autoRowSize.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/autoRowSize/autoRowSize.mjs ***!
  \***********************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, AutoRowSize */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AutoRowSize\", function() { return AutoRowSize; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/feature.mjs */ \"./node_modules/handsontable/helpers/feature.mjs\");\n/* harmony import */ var _utils_ghostTable_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/ghostTable.mjs */ \"./node_modules/handsontable/utils/ghostTable.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _utils_samplesGenerator_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/samplesGenerator.mjs */ \"./node_modules/handsontable/utils/samplesGenerator.mjs\");\n/* harmony import */ var _helpers_string_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../helpers/string.mjs */ \"./node_modules/handsontable/helpers/string.mjs\");\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\nconst PLUGIN_KEY = 'autoRowSize';\nconst PLUGIN_PRIORITY = 40;\nconst ROW_WIDTHS_MAP_NAME = 'autoRowSize';\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * @plugin AutoRowSize\n * @class AutoRowSize\n * @description\n * The `AutoRowSize` plugin allows you to set row heights based on their highest cells.\n *\n * By default, the plugin is declared as `undefined`, which makes it disabled (same as if it was declared as `false`).\n * Enabling this plugin may decrease the overall table performance, as it needs to calculate the heights of all cells to\n * resize the rows accordingly.\n * If you experience problems with the performance, try turning this feature off and declaring the row heights manually.\n *\n * But, to display Handsontable's [scrollbar](https://handsontable.com/docs/8.0.0/demo-scrolling.html)\n * in a proper size, you need to enable the `AutoRowSize` plugin,\n * by setting the [`autoRowSize`](@/api/options.md#autoRowSize) option to `true`.\n *\n * Row height calculations are divided into sync and async part. Each of this parts has their own advantages and\n * disadvantages. Synchronous calculations are faster but they block the browser UI, while the slower asynchronous\n * operations don't block the browser UI.\n *\n * To configure the sync/async distribution, you can pass an absolute value (number of rows) or a percentage value to a config object:\n * ```js\n * // as a number (300 rows in sync, rest async)\n * autoRowSize: {syncLimit: 300},\n *\n * // as a string (percent)\n * autoRowSize: {syncLimit: '40%'},\n *\n * // allow sample duplication\n * autoRowSize: {syncLimit: '40%', allowSampleDuplicates: true},\n * ```\n *\n * You can also use the `allowSampleDuplicates` option to allow sampling duplicate values when calculating the row\n * height. __Note__, that this might have a negative impact on performance.\n *\n * To configure this plugin see {@link Options#autoRowSize}.\n *\n * @example\n *\n * ::: only-for javascript\n * ```js\n * const hot = new Handsontable(document.getElementById('example'), {\n *   data: getData(),\n *   autoRowSize: true\n * });\n * // Access to plugin instance:\n * const plugin = hot.getPlugin('autoRowSize');\n *\n * plugin.getRowHeight(4);\n *\n * if (plugin.isEnabled()) {\n *   // code...\n * }\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * const hotRef = useRef(null);\n *\n * ...\n *\n * // First, let's contruct Handsontable\n * <HotTable\n *   ref={hotRef}\n *   data={getData()}\n *   autoRowSize={true}\n * />\n *\n * ...\n *\n * // Access to plugin instance:\n * const hot = hotRef.current.hotInstance;\n * const plugin = hot.getPlugin('autoRowSize');\n *\n * plugin.getRowHeight(4);\n *\n * if (plugin.isEnabled()) {\n *   // code...\n * }\n * ```\n * :::\n */\n/* eslint-enable jsdoc/require-description-complete-sentence */\nvar _visualRowsToRefresh = /*#__PURE__*/new WeakMap();\nvar _AutoRowSize_brand = /*#__PURE__*/new WeakSet();\nclass AutoRowSize extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BasePlugin\"] {\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  static get SETTING_KEYS() {\n    return true;\n  }\n  static get CALCULATION_STEP() {\n    return 50;\n  }\n  static get SYNC_CALCULATION_LIMIT() {\n    return 500;\n  }\n\n  /**\n   * Columns header's height cache.\n   *\n   * @private\n   * @type {number}\n   */\n\n  constructor(hotInstance) {\n    super(hotInstance);\n    /**\n     * Calculates specific rows height (overwrite cache values).\n     *\n     * @param {number[]} visualRows List of visual rows to calculate.\n     */\n    _classPrivateMethodInitSpec(this, _AutoRowSize_brand);\n    _defineProperty(this, \"headerHeight\", null);\n    /**\n     * Instance of {@link GhostTable} for rows and columns size calculations.\n     *\n     * @private\n     * @type {GhostTable}\n     */\n    _defineProperty(this, \"ghostTable\", new _utils_ghostTable_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"](this.hot));\n    /**\n     * Instance of {@link SamplesGenerator} for generating samples necessary for rows height calculations.\n     *\n     * @private\n     * @type {SamplesGenerator}\n     */\n    _defineProperty(this, \"samplesGenerator\", new _utils_samplesGenerator_mjs__WEBPACK_IMPORTED_MODULE_7__[\"default\"]((row, column) => {\n      const physicalRow = this.hot.toPhysicalRow(row);\n      const physicalColumn = this.hot.toPhysicalColumn(column);\n      if (this.hot.rowIndexMapper.isHidden(physicalRow) || this.hot.columnIndexMapper.isHidden(physicalColumn)) {\n        return false;\n      }\n      if (row >= 0 && column >= 0) {\n        const cellMeta = this.hot.getCellMeta(row, column);\n        if (cellMeta.hidden) {\n          // do not generate samples for cells that are covered by merged cell (null values)\n          return false;\n        }\n      }\n      let cellValue;\n      if (row >= 0) {\n        cellValue = this.hot.getDataAtCell(row, column);\n      } else if (row === -1) {\n        cellValue = this.hot.getColHeader(column);\n      }\n      return {\n        value: cellValue\n      };\n    }));\n    /**\n     * `true` if the size calculation is in progress.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"inProgress\", false);\n    /**\n     * Number of already measured rows (we already know their sizes).\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"measuredRows\", 0);\n    /**\n     * PhysicalIndexToValueMap to keep and track heights for physical row indexes.\n     *\n     * @private\n     * @type {PhysicalIndexToValueMap}\n     */\n    _defineProperty(this, \"rowHeightsMap\", new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"PhysicalIndexToValueMap\"]());\n    /**\n     * An array of row indexes whose height will be recalculated.\n     *\n     * @type {number[]}\n     */\n    _classPrivateFieldInitSpec(this, _visualRowsToRefresh, []);\n    this.hot.rowIndexMapper.registerMap(ROW_WIDTHS_MAP_NAME, this.rowHeightsMap);\n\n    // Leave the listener active to allow auto-sizing the rows when the plugin is disabled.\n    // This is necessary for height recalculation for resize handler doubleclick (ManualRowResize).\n    this.addHook('beforeRowResize', (size, row, isDblClick) => _assertClassBrand(_AutoRowSize_brand, this, _onBeforeRowResize).call(this, size, row, isDblClick));\n  }\n\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link AutoRowSize#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    const settings = this.hot.getSettings()[PLUGIN_KEY];\n    return settings === true || Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isObject\"])(settings);\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    this.setSamplingOptions();\n    this.addHook('afterLoadData', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_AutoRowSize_brand, _this, _onAfterLoadData).call(_this, ...args);\n    });\n    this.addHook('beforeChangeRender', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_AutoRowSize_brand, _this, _onBeforeChange).call(_this, ...args);\n    });\n    this.addHook('beforeColumnResize', () => this.recalculateAllRowsHeight());\n    this.addHook('afterFormulasValuesUpdate', function () {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n      return _assertClassBrand(_AutoRowSize_brand, _this, _onAfterFormulasValuesUpdate).call(_this, ...args);\n    });\n    this.addHook('beforeRender', () => _assertClassBrand(_AutoRowSize_brand, this, _onBeforeRender).call(this));\n    this.addHook('modifyRowHeight', (height, row) => this.getRowHeight(row, height));\n    this.addHook('init', () => _assertClassBrand(_AutoRowSize_brand, this, _onInit).call(this));\n    this.addHook('modifyColumnHeaderHeight', () => this.getColumnHeaderHeight());\n    super.enablePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.headerHeight = null;\n    super.disablePlugin();\n\n    // Leave the listener active to allow auto-sizing the rows when the plugin is disabled.\n    // This is necessary for height recalculation for resize handler doubleclick (ManualRowResize).\n    this.addHook('beforeRowResize', (size, row, isDblClick) => _assertClassBrand(_AutoRowSize_brand, this, _onBeforeRowResize).call(this, size, row, isDblClick));\n  }\n\n  /**\n   * Calculates heights for visible rows in the viewport only.\n   */\n  calculateVisibleRowsHeight() {\n    // Keep last row heights unchanged for situation when all columns was deleted or trimmed\n    if (!this.hot.countCols()) {\n      return;\n    }\n    const firstVisibleRow = this.getFirstVisibleRow();\n    const lastVisibleRow = this.getLastVisibleRow();\n    if (firstVisibleRow === -1 || lastVisibleRow === -1) {\n      return;\n    }\n    const overwriteCache = this.hot.renderCall;\n    this.calculateRowsHeight({\n      from: firstVisibleRow,\n      to: lastVisibleRow\n    }, undefined, overwriteCache);\n  }\n\n  /**\n   * Calculate a given rows height.\n   *\n   * @param {number|object} rowRange Row index or an object with `from` and `to` indexes as a range.\n   * @param {number|object} colRange Column index or an object with `from` and `to` indexes as a range.\n   * @param {boolean} [overwriteCache=false] If `true` the calculation will be processed regardless of whether the width exists in the cache.\n   */\n  calculateRowsHeight() {\n    let rowRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n      from: 0,\n      to: this.hot.countRows() - 1\n    };\n    let colRange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n      from: 0,\n      to: this.hot.countCols() - 1\n    };\n    let overwriteCache = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    const rowsRange = typeof rowRange === 'number' ? {\n      from: rowRange,\n      to: rowRange\n    } : rowRange;\n    const columnsRange = typeof colRange === 'number' ? {\n      from: colRange,\n      to: colRange\n    } : colRange;\n    if (this.hot.getColHeader(0) !== null) {\n      const samples = this.samplesGenerator.generateRowSamples(-1, columnsRange);\n      this.ghostTable.addColumnHeadersRow(samples.get(-1));\n    }\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_6__[\"rangeEach\"])(rowsRange.from, rowsRange.to, visualRow => {\n      let physicalRow = this.hot.toPhysicalRow(visualRow);\n      if (physicalRow === null) {\n        physicalRow = visualRow;\n      }\n\n      // For rows we must calculate row height even when user had set height value manually.\n      // We can shrink column but cannot shrink rows!\n      if (overwriteCache || this.rowHeightsMap.getValueAtIndex(physicalRow) === null) {\n        const samples = this.samplesGenerator.generateRowSamples(visualRow, columnsRange);\n        samples.forEach((sample, row) => this.ghostTable.addRow(row, sample));\n      }\n    });\n    if (this.ghostTable.rows.length) {\n      this.hot.batchExecution(() => {\n        this.ghostTable.getHeights((row, height) => {\n          if (row < 0) {\n            this.headerHeight = height;\n          } else {\n            this.rowHeightsMap.setValueAtIndex(this.hot.toPhysicalRow(row), height);\n          }\n        });\n      }, true);\n      this.measuredRows = rowsRange.to + 1;\n      this.ghostTable.clean();\n    }\n  }\n\n  /**\n   * Calculate all rows heights. The calculated row will be cached in the {@link AutoRowSize#heights} property.\n   * To retrieve height for specified row use {@link AutoRowSize#getRowHeight} method.\n   *\n   * @param {object|number} colRange Row index or an object with `from` and `to` properties which define row range.\n   * @param {boolean} [overwriteCache] If `true` the calculation will be processed regardless of whether the width exists in the cache.\n   */\n  calculateAllRowsHeight() {\n    let colRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n      from: 0,\n      to: this.hot.countCols() - 1\n    };\n    let overwriteCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    let current = 0;\n    const length = this.hot.countRows() - 1;\n    let timer = null;\n    this.inProgress = true;\n    const loop = () => {\n      // When hot was destroyed after calculating finished cancel frame\n      if (!this.hot) {\n        Object(_helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_3__[\"cancelAnimationFrame\"])(timer);\n        this.inProgress = false;\n        return;\n      }\n      this.calculateRowsHeight({\n        from: current,\n        to: Math.min(current + AutoRowSize.CALCULATION_STEP, length)\n      }, colRange, overwriteCache);\n      current = current + AutoRowSize.CALCULATION_STEP + 1;\n      if (current < length) {\n        timer = Object(_helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_3__[\"requestAnimationFrame\"])(loop);\n      } else {\n        Object(_helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_3__[\"cancelAnimationFrame\"])(timer);\n        this.inProgress = false;\n\n        // @TODO Should call once per render cycle, currently fired separately in different plugins\n        this.hot.view.adjustElementsSize();\n\n        // tmp\n        if (this.hot.view._wt.wtOverlays.inlineStartOverlay.needFullRender) {\n          this.hot.view._wt.wtOverlays.inlineStartOverlay.clone.draw();\n        }\n      }\n    };\n    const syncLimit = this.getSyncCalculationLimit();\n\n    // sync\n    if (syncLimit >= 0) {\n      this.calculateRowsHeight({\n        from: 0,\n        to: syncLimit\n      }, colRange, overwriteCache);\n      current = syncLimit + 1;\n    }\n    // async\n    if (current < length) {\n      loop();\n    } else {\n      this.inProgress = false;\n      this.hot.view.adjustElementsSize();\n    }\n  }\n  /**\n   * Sets the sampling options.\n   *\n   * @private\n   */\n  setSamplingOptions() {\n    const setting = this.hot.getSettings()[PLUGIN_KEY];\n    const samplingRatio = setting && Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"hasOwnProperty\"])(setting, 'samplingRatio') ? setting.samplingRatio : undefined;\n    const allowSampleDuplicates = setting && Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"hasOwnProperty\"])(setting, 'allowSampleDuplicates') ? setting.allowSampleDuplicates : undefined;\n    if (samplingRatio && !isNaN(samplingRatio)) {\n      this.samplesGenerator.setSampleCount(parseInt(samplingRatio, 10));\n    }\n    if (allowSampleDuplicates) {\n      this.samplesGenerator.setAllowDuplicates(allowSampleDuplicates);\n    }\n  }\n\n  /**\n   * Recalculates all rows height (overwrite cache values).\n   */\n  recalculateAllRowsHeight() {\n    if (this.hot.view.isVisible()) {\n      this.calculateAllRowsHeight({\n        from: 0,\n        to: this.hot.countCols() - 1\n      }, true);\n    }\n  }\n\n  /**\n   * Gets value which tells how many rows should be calculated synchronously (rest of the rows will be calculated\n   * asynchronously). The limit is calculated based on `syncLimit` set to autoRowSize option (see {@link Options#autoRowSize}).\n   *\n   * @returns {number}\n   */\n  getSyncCalculationLimit() {\n    const settings = this.hot.getSettings()[PLUGIN_KEY];\n    /* eslint-disable no-bitwise */\n    let limit = AutoRowSize.SYNC_CALCULATION_LIMIT;\n    const rowsLimit = this.hot.countRows() - 1;\n    if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isObject\"])(settings)) {\n      limit = settings.syncLimit;\n      if (Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_8__[\"isPercentValue\"])(limit)) {\n        limit = Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_6__[\"valueAccordingPercent\"])(rowsLimit, limit);\n      } else {\n        // Force to Number\n        limit >>= 0;\n      }\n    }\n    return Math.min(limit, rowsLimit);\n  }\n\n  /**\n   * Get a row's height, as measured in the DOM.\n   *\n   * The height returned includes 1 px of the row's bottom border.\n   *\n   * Mind that this method is different from the\n   * [`getRowHeight()`](@/api/core.md#getrowheight) method\n   * of Handsontable's [Core](@/api/core.md).\n   *\n   * @param {number} row A visual row index.\n   * @param {number} [defaultHeight] If no height is found, `defaultHeight` is returned instead.\n   * @returns {number} The height of the specified row, in pixels.\n   */\n  getRowHeight(row, defaultHeight) {\n    const cachedHeight = row < 0 ? this.headerHeight : this.rowHeightsMap.getValueAtIndex(this.hot.toPhysicalRow(row));\n    let height = defaultHeight;\n    if (cachedHeight !== null && cachedHeight > (defaultHeight || 0)) {\n      height = cachedHeight;\n    }\n    return height;\n  }\n\n  /**\n   * Get the calculated column header height.\n   *\n   * @returns {number|undefined}\n   */\n  getColumnHeaderHeight() {\n    return this.headerHeight;\n  }\n\n  /**\n   * Get the first visible row.\n   *\n   * @returns {number} Returns row index, -1 if table is not rendered or if there are no rows to base the the calculations on.\n   */\n  getFirstVisibleRow() {\n    var _this$hot$view$getFir;\n    return (_this$hot$view$getFir = this.hot.view.getFirstRenderedVisibleRow()) !== null && _this$hot$view$getFir !== void 0 ? _this$hot$view$getFir : -1;\n  }\n\n  /**\n   * Gets the last visible row.\n   *\n   * @returns {number} Returns row index or -1 if table is not rendered.\n   */\n  getLastVisibleRow() {\n    var _this$hot$view$getLas;\n    return (_this$hot$view$getLas = this.hot.view.getLastRenderedVisibleRow()) !== null && _this$hot$view$getLas !== void 0 ? _this$hot$view$getLas : -1;\n  }\n\n  /**\n   * Clears cache of calculated row heights. If you want to clear only selected rows pass an array with their indexes.\n   * Otherwise whole cache will be cleared.\n   *\n   * @param {number[]} [physicalRows] List of physical row indexes to clear.\n   */\n  clearCache(physicalRows) {\n    this.headerHeight = null;\n    if (Array.isArray(physicalRows)) {\n      this.hot.batchExecution(() => {\n        physicalRows.forEach(physicalIndex => {\n          this.rowHeightsMap.setValueAtIndex(physicalIndex, null);\n        });\n      }, true);\n    } else {\n      this.rowHeightsMap.clear();\n    }\n  }\n\n  /**\n   * Clears cache by range.\n   *\n   * @param {object|number} range Row index or an object with `from` and `to` properties which define row range.\n   */\n  clearCacheByRange(range) {\n    const {\n      from,\n      to\n    } = typeof range === 'number' ? {\n      from: range,\n      to: range\n    } : range;\n    this.hot.batchExecution(() => {\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_6__[\"rangeEach\"])(Math.min(from, to), Math.max(from, to), row => {\n        this.rowHeightsMap.setValueAtIndex(row, null);\n      });\n    }, true);\n  }\n\n  /**\n   * Checks if all heights were calculated. If not then return `true` (need recalculate).\n   *\n   * @returns {boolean}\n   */\n  isNeedRecalculate() {\n    return !!this.rowHeightsMap.getValues().slice(0, this.measuredRows).filter(item => item === null).length;\n  }\n\n  /**\n   * On before view render listener.\n   */\n\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    this.ghostTable.clean();\n    super.destroy();\n  }\n}\nfunction _calculateSpecificRowsHeight(visualRows) {\n  const columnsRange = {\n    from: 0,\n    to: this.hot.countCols() - 1\n  };\n  visualRows.forEach(visualRow => {\n    // For rows we must calculate row height even when user had set height value manually.\n    // We can shrink column but cannot shrink rows!\n    const samples = this.samplesGenerator.generateRowSamples(visualRow, columnsRange);\n    samples.forEach((sample, row) => this.ghostTable.addRow(row, sample));\n  });\n  if (this.ghostTable.rows.length) {\n    this.hot.batchExecution(() => {\n      this.ghostTable.getHeights((visualRow, height) => {\n        const physicalRow = this.hot.toPhysicalRow(visualRow);\n        this.rowHeightsMap.setValueAtIndex(physicalRow, height);\n      });\n    }, true);\n    this.ghostTable.clean();\n  }\n}\nfunction _onBeforeRender() {\n  this.calculateVisibleRowsHeight();\n  if (!this.inProgress) {\n    _assertClassBrand(_AutoRowSize_brand, this, _calculateSpecificRowsHeight).call(this, _classPrivateFieldGet(_visualRowsToRefresh, this));\n    _classPrivateFieldSet(_visualRowsToRefresh, this, []);\n  }\n}\n/**\n * On before row resize listener.\n *\n * @param {number} size The size of the current row index.\n * @param {number} row Current row index.\n * @param {boolean} isDblClick Indicates if the resize was triggered by doubleclick.\n * @returns {number}\n */\nfunction _onBeforeRowResize(size, row, isDblClick) {\n  let newSize = size;\n  if (isDblClick) {\n    this.calculateRowsHeight(row, undefined, true);\n    newSize = this.getRowHeight(row);\n  }\n  return newSize;\n}\n/**\n * On after load data listener.\n *\n * @param {Array} sourceData Source data.\n * @param {boolean} isFirstLoad `true` if this is the first load.\n */\nfunction _onAfterLoadData(sourceData, isFirstLoad) {\n  if (!isFirstLoad) {\n    this.recalculateAllRowsHeight();\n  }\n}\n/**\n * On before change listener.\n *\n * @param {Array} changes 2D array containing information about each of the edited cells.\n */\nfunction _onBeforeChange(changes) {\n  const changedRows = changes.reduce((acc, _ref) => {\n    let [row] = _ref;\n    if (acc.indexOf(row) === -1) {\n      acc.push(row);\n    }\n    return acc;\n  }, []);\n  _classPrivateFieldGet(_visualRowsToRefresh, this).push(...changedRows);\n}\n/**\n * On after Handsontable init plugin with all necessary values.\n */\nfunction _onInit() {\n  this.recalculateAllRowsHeight();\n}\n/**\n * After formulas values updated listener.\n *\n * @param {Array} changes An array of modified data.\n */\nfunction _onAfterFormulasValuesUpdate(changes) {\n  const changedRows = changes.reduce((acc, change) => {\n    var _change$address;\n    const physicalRow = (_change$address = change.address) === null || _change$address === void 0 ? void 0 : _change$address.row;\n    if (Number.isInteger(physicalRow)) {\n      const visualRow = this.hot.toVisualRow(physicalRow);\n      if (acc.indexOf(visualRow) === -1) {\n        acc.push(visualRow);\n      }\n    }\n    return acc;\n  }, []);\n  _classPrivateFieldGet(_visualRowsToRefresh, this).push(...changedRows);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/autoRowSize/autoRowSize.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/autoRowSize/index.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/autoRowSize/index.mjs ***!
  \*****************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, AutoRowSize */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _autoRowSize_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./autoRowSize.mjs */ \"./node_modules/handsontable/plugins/autoRowSize/autoRowSize.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _autoRowSize_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _autoRowSize_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AutoRowSize\", function() { return _autoRowSize_mjs__WEBPACK_IMPORTED_MODULE_0__[\"AutoRowSize\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/autoRowSize/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/autofill/autofill.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/autofill/autofill.mjs ***!
  \*****************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, Autofill */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Autofill\", function() { return Autofill; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/plugins/autofill/utils.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('modifyAutofillRange');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('beforeAutofill');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('afterAutofill');\nconst PLUGIN_KEY = 'autofill';\nconst PLUGIN_PRIORITY = 20;\nconst SETTING_KEYS = ['fillHandle'];\nconst INSERT_ROW_ALTER_ACTION_NAME = 'insert_row_below';\nconst INTERVAL_FOR_ADDING_ROW = 200;\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * This plugin provides \"drag-down\" and \"copy-down\" functionalities, both operated using the small square in the right\n * bottom of the cell selection.\n *\n * \"Drag-down\" expands the value of the selected cells to the neighbouring cells when you drag the small\n * square in the corner.\n *\n * \"Copy-down\" copies the value of the selection to all empty cells below when you double click the small square.\n *\n * @class Autofill\n * @plugin Autofill\n */\nvar _Autofill_brand = /*#__PURE__*/new WeakSet();\nclass Autofill extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * On cell corner double click callback.\n     *\n     * @private\n     */\n    _classPrivateMethodInitSpec(this, _Autofill_brand);\n    /**\n     * Specifies if adding new row started.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _defineProperty(this, \"addingStarted\", false);\n    /**\n     * Specifies if there was mouse down on the cell corner.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _defineProperty(this, \"mouseDownOnCellCorner\", false);\n    /**\n     * Specifies if mouse was dragged outside Handsontable.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _defineProperty(this, \"mouseDragOutside\", false);\n    /**\n     * Specifies how many cell levels were dragged using the handle.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _defineProperty(this, \"handleDraggedCells\", 0);\n    /**\n     * Specifies allowed directions of drag (`'horizontal'` or '`vertical`').\n     *\n     * @private\n     * @type {string[]}\n     */\n    _defineProperty(this, \"directions\", []);\n    /**\n     * Specifies if can insert new rows if needed.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _defineProperty(this, \"autoInsertRow\", false);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  static get SETTING_KEYS() {\n    return [PLUGIN_KEY, ...SETTING_KEYS];\n  }\n  /**\n   * Checks if the plugin is enabled in the Handsontable settings.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return this.hot.getSettings().fillHandle;\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    if (this.enabled) {\n      return;\n    }\n    this.mapSettings();\n    this.registerEvents();\n    this.addHook('afterOnCellCornerMouseDown', event => _assertClassBrand(_Autofill_brand, this, _onAfterCellCornerMouseDown).call(this, event));\n    this.addHook('afterOnCellCornerDblClick', event => _assertClassBrand(_Autofill_brand, this, _onCellCornerDblClick).call(this, event));\n    this.addHook('beforeOnCellMouseOver', (_, coords) => _assertClassBrand(_Autofill_brand, this, _onBeforeCellMouseOver).call(this, coords));\n    super.enablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - `autofill`\n   *  - [`fillHandle`](@/api/options.md#fillhandle)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.clearMappedSettings();\n    super.disablePlugin();\n  }\n\n  /**\n   * Gets selection data.\n   *\n   * @private\n   * @returns {object[]} Ranges Array of objects with properties `startRow`, `startCol`, `endRow` and `endCol`.\n   */\n  getSelectionData() {\n    const selection = this.hot.getSelectedRangeLast();\n    const {\n      row: startRow,\n      col: startCol\n    } = selection.getTopStartCorner();\n    const {\n      row: endRow,\n      col: endCol\n    } = selection.getBottomEndCorner();\n    const copyableRanges = this.hot.runHooks('modifyCopyableRange', [{\n      startRow,\n      startCol,\n      endRow,\n      endCol\n    }]);\n    const copyableRows = [];\n    const copyableColumns = [];\n    const data = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(copyableRanges, range => {\n      for (let visualRow = range.startRow; visualRow <= range.endRow; visualRow += 1) {\n        if (copyableRows.indexOf(visualRow) === -1) {\n          copyableRows.push(visualRow);\n        }\n      }\n      for (let visualColumn = range.startCol; visualColumn <= range.endCol; visualColumn += 1) {\n        if (copyableColumns.indexOf(visualColumn) === -1) {\n          copyableColumns.push(visualColumn);\n        }\n      }\n    });\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(copyableRows, row => {\n      const rowSet = [];\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(copyableColumns, column => {\n        rowSet.push(this.hot.getCopyableData(row, column));\n      });\n      data.push(rowSet);\n    });\n    return data;\n  }\n\n  /**\n   * Try to apply fill values to the area in fill border, omitting the selection border.\n   *\n   * @private\n   * @returns {boolean} Reports if fill was applied.\n   *\n   * @fires Hooks#modifyAutofillRange\n   * @fires Hooks#beforeAutofill\n   * @fires Hooks#afterAutofill\n   */\n  fillIn() {\n    if (this.hot.selection.highlight.getFill().isEmpty()) {\n      return false;\n    }\n\n    // Fill area may starts or ends with invisible cell. There won't be any information about it as highlighted\n    // selection store just renderable indexes (It's part of Walkontable). I extrapolate where the start or/and\n    // the end is.\n    const [fillStartRow, fillStartColumn, fillEndRow, fillEndColumn] = this.hot.selection.highlight.getFill().getVisualCorners();\n    const selectionRangeLast = this.hot.getSelectedRangeLast();\n    const topStartCorner = selectionRangeLast.getTopStartCorner();\n    const bottomEndCorner = selectionRangeLast.getBottomEndCorner();\n    this.resetSelectionOfDraggedArea();\n    const cornersOfSelectedCells = [topStartCorner.row, topStartCorner.col, bottomEndCorner.row, bottomEndCorner.col];\n    const cornersOfSelectionAndDragAreas = this.hot.runHooks('modifyAutofillRange', [Math.min(topStartCorner.row, fillStartRow), Math.min(topStartCorner.col, fillStartColumn), Math.max(bottomEndCorner.row, fillEndRow), Math.max(bottomEndCorner.col, fillEndColumn)], cornersOfSelectedCells);\n    const {\n      directionOfDrag,\n      startOfDragCoords,\n      endOfDragCoords\n    } = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_7__[\"getDragDirectionAndRange\"])(cornersOfSelectedCells, cornersOfSelectionAndDragAreas, (row, column) => this.hot._createCellCoords(row, column));\n    if (startOfDragCoords && startOfDragCoords.row > -1 && startOfDragCoords.col > -1) {\n      const selectionData = this.getSelectionData();\n      const sourceRange = selectionRangeLast.clone();\n      const targetRange = this.hot._createCellRange(startOfDragCoords, startOfDragCoords, endOfDragCoords);\n      const beforeAutofillHookResult = this.hot.runHooks('beforeAutofill', selectionData, sourceRange, targetRange, directionOfDrag);\n      if (beforeAutofillHookResult === false) {\n        this.hot.selection.highlight.getFill().clear();\n        this.hot.render();\n        return false;\n      }\n      let fillData = beforeAutofillHookResult;\n      const res = beforeAutofillHookResult;\n      if (['up', 'left'].indexOf(directionOfDrag) > -1 && !(res.length === 1 && res[0].length === 0)) {\n        fillData = [];\n        if (directionOfDrag === 'up') {\n          const dragLength = endOfDragCoords.row - startOfDragCoords.row + 1;\n          const fillOffset = dragLength % res.length;\n          for (let i = 0; i < dragLength; i++) {\n            fillData.push(res[(i + (res.length - fillOffset)) % res.length]);\n          }\n        } else {\n          const dragLength = endOfDragCoords.col - startOfDragCoords.col + 1;\n          const fillOffset = dragLength % res[0].length;\n          for (let i = 0; i < res.length; i++) {\n            fillData.push([]);\n            for (let j = 0; j < dragLength; j++) {\n              fillData[i].push(res[i][(j + (res[i].length - fillOffset)) % res[i].length]);\n            }\n          }\n        }\n      }\n      this.hot.populateFromArray(startOfDragCoords.row, startOfDragCoords.col, fillData, endOfDragCoords.row, endOfDragCoords.col, `${this.pluginName}.fill`, null);\n      this.setSelection(cornersOfSelectionAndDragAreas);\n      this.hot.runHooks('afterAutofill', fillData, sourceRange, targetRange, directionOfDrag);\n      this.hot.render();\n    } else {\n      // reset to avoid some range bug\n      this.hot.view.render();\n    }\n    return true;\n  }\n\n  /**\n   * Reduces the selection area if the handle was dragged outside of the table or on headers.\n   *\n   * @private\n   * @param {CellCoords} coords Indexes of selection corners.\n   * @returns {CellCoords}\n   */\n  reduceSelectionAreaIfNeeded(coords) {\n    if (coords.row < 0) {\n      coords.row = 0;\n    }\n    if (coords.col < 0) {\n      coords.col = 0;\n    }\n    return coords;\n  }\n\n  /**\n   * Gets the coordinates of the drag & drop borders.\n   *\n   * @private\n   * @param {CellCoords} coordsOfSelection `CellCoords` coord object.\n   * @returns {CellCoords}\n   */\n  getCoordsOfDragAndDropBorders(coordsOfSelection) {\n    const currentSelection = this.hot.getSelectedRangeLast();\n    const bottomRightCorner = currentSelection.getBottomEndCorner();\n    let coords = coordsOfSelection;\n    if (this.directions.includes(_utils_mjs__WEBPACK_IMPORTED_MODULE_7__[\"DIRECTIONS\"].vertical) && this.directions.includes(_utils_mjs__WEBPACK_IMPORTED_MODULE_7__[\"DIRECTIONS\"].horizontal)) {\n      const topStartCorner = currentSelection.getTopStartCorner();\n      if (bottomRightCorner.col <= coordsOfSelection.col || topStartCorner.col >= coordsOfSelection.col) {\n        coords = this.hot._createCellCoords(bottomRightCorner.row, coordsOfSelection.col);\n      }\n      if (bottomRightCorner.row < coordsOfSelection.row || topStartCorner.row > coordsOfSelection.row) {\n        coords = this.hot._createCellCoords(coordsOfSelection.row, bottomRightCorner.col);\n      }\n    } else if (this.directions.includes(_utils_mjs__WEBPACK_IMPORTED_MODULE_7__[\"DIRECTIONS\"].vertical)) {\n      coords = this.hot._createCellCoords(coordsOfSelection.row, bottomRightCorner.col);\n    } else if (this.directions.includes(_utils_mjs__WEBPACK_IMPORTED_MODULE_7__[\"DIRECTIONS\"].horizontal)) {\n      coords = this.hot._createCellCoords(bottomRightCorner.row, coordsOfSelection.col);\n    } else {\n      // wrong direction\n      return;\n    }\n    return this.reduceSelectionAreaIfNeeded(coords);\n  }\n\n  /**\n   * Show the fill border.\n   *\n   * @private\n   * @param {CellCoords} coordsOfSelection `CellCoords` coord object.\n   */\n  showBorder(coordsOfSelection) {\n    const coordsOfDragAndDropBorders = this.getCoordsOfDragAndDropBorders(coordsOfSelection);\n    if (coordsOfDragAndDropBorders) {\n      this.redrawBorders(coordsOfDragAndDropBorders);\n    }\n  }\n\n  /**\n   * Add new row.\n   *\n   * @private\n   */\n  addRow() {\n    this.hot._registerTimeout(() => {\n      this.hot.alter(INSERT_ROW_ALTER_ACTION_NAME, undefined, 1, `${this.pluginName}.fill`);\n      this.addingStarted = false;\n    }, INTERVAL_FOR_ADDING_ROW);\n  }\n\n  /**\n   * Add new rows if they are needed to continue auto-filling values.\n   *\n   * @private\n   */\n  addNewRowIfNeeded() {\n    if (!this.hot.selection.highlight.getFill().isEmpty() && this.addingStarted === false && this.autoInsertRow) {\n      const cornersOfSelectedCells = this.hot.getSelectedLast();\n      const cornersOfSelectedDragArea = this.hot.selection.highlight.getFill().getVisualCorners();\n      const nrOfTableRows = this.hot.countRows();\n      if (cornersOfSelectedCells[2] < nrOfTableRows - 1 && cornersOfSelectedDragArea[2] === nrOfTableRows - 1) {\n        this.addingStarted = true;\n        this.addRow();\n      }\n    }\n  }\n\n  /**\n   * Get index of last adjacent filled in row.\n   *\n   * @private\n   * @param {Array} cornersOfSelectedCells Indexes of selection corners.\n   * @returns {number} Gives number greater than or equal to zero when selection adjacent can be applied.\n   *                   Or -1 when selection adjacent can't be applied.\n   */\n  getIndexOfLastAdjacentFilledInRow(cornersOfSelectedCells) {\n    const data = this.hot.getData();\n    const nrOfTableRows = this.hot.countRows();\n    let lastFilledInRowIndex;\n    for (let rowIndex = cornersOfSelectedCells[2] + 1; rowIndex < nrOfTableRows; rowIndex++) {\n      for (let columnIndex = cornersOfSelectedCells[1]; columnIndex <= cornersOfSelectedCells[3]; columnIndex++) {\n        const dataInCell = data[rowIndex][columnIndex];\n        if (!Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_6__[\"isEmpty\"])(dataInCell)) {\n          return -1;\n        }\n      }\n      const dataInNextLeftCell = data[rowIndex][cornersOfSelectedCells[1] - 1];\n      const dataInNextRightCell = data[rowIndex][cornersOfSelectedCells[3] + 1];\n      if (!Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_6__[\"isEmpty\"])(dataInNextLeftCell) || !Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_6__[\"isEmpty\"])(dataInNextRightCell)) {\n        lastFilledInRowIndex = rowIndex;\n      }\n    }\n    return lastFilledInRowIndex;\n  }\n\n  /**\n   * Adds a selection from the start area to the specific row index.\n   *\n   * @private\n   * @param {Array} selectStartArea Selection area from which we start to create more comprehensive selection.\n   * @param {number} rowIndex The row index into the selection will be added.\n   */\n  addSelectionFromStartAreaToSpecificRowIndex(selectStartArea, rowIndex) {\n    this.hot.selection.highlight.getFill().clear().add(this.hot._createCellCoords(selectStartArea[0], selectStartArea[1])).add(this.hot._createCellCoords(rowIndex, selectStartArea[3])).commit();\n  }\n\n  /**\n   * Sets selection based on passed corners.\n   *\n   * @private\n   * @param {Array} cornersOfArea An array witch defines selection.\n   */\n  setSelection(cornersOfArea) {\n    this.hot.selectCell(...Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayMap\"])(cornersOfArea, index => Math.max(index, 0)), false, false);\n  }\n\n  /**\n   * Try to select cells down to the last row in the left column and then returns if selection was applied.\n   *\n   * @private\n   * @returns {boolean}\n   */\n  selectAdjacent() {\n    const cornersOfSelectedCells = this.hot.getSelectedLast();\n    const lastFilledInRowIndex = this.getIndexOfLastAdjacentFilledInRow(cornersOfSelectedCells);\n    if (lastFilledInRowIndex === -1 || lastFilledInRowIndex === undefined) {\n      return false;\n    }\n    this.addSelectionFromStartAreaToSpecificRowIndex(cornersOfSelectedCells, lastFilledInRowIndex);\n    return true;\n  }\n\n  /**\n   * Resets selection of dragged area.\n   *\n   * @private\n   */\n  resetSelectionOfDraggedArea() {\n    this.handleDraggedCells = 0;\n    this.hot.selection.highlight.getFill().clear();\n  }\n\n  /**\n   * Redraws borders.\n   *\n   * @private\n   * @param {CellCoords} coords `CellCoords` coord object.\n   */\n  redrawBorders(coords) {\n    this.hot.selection.highlight.getFill().clear().add(this.hot.getSelectedRangeLast().from).add(this.hot.getSelectedRangeLast().to).add(coords).commit();\n    this.hot.view.render();\n  }\n\n  /**\n   * Get if mouse was dragged outside.\n   *\n   * @private\n   * @param {MouseEvent} event `mousemove` event properties.\n   * @returns {boolean}\n   */\n  getIfMouseWasDraggedOutside(event) {\n    const {\n      documentElement\n    } = this.hot.rootDocument;\n    const tableBottom = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"offset\"])(this.hot.table).top - (this.hot.rootWindow.pageYOffset || documentElement.scrollTop) + Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"outerHeight\"])(this.hot.table);\n    const tableRight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"offset\"])(this.hot.table).left - (this.hot.rootWindow.pageXOffset || documentElement.scrollLeft) + Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"outerWidth\"])(this.hot.table);\n    return event.clientY > tableBottom && event.clientX <= tableRight;\n  }\n\n  /**\n   * Bind the events used by the plugin.\n   *\n   * @private\n   */\n  registerEvents() {\n    const {\n      documentElement\n    } = this.hot.rootDocument;\n    this.eventManager.addEventListener(documentElement, 'mouseup', () => _assertClassBrand(_Autofill_brand, this, _onMouseUp).call(this));\n    this.eventManager.addEventListener(documentElement, 'mousemove', event => _assertClassBrand(_Autofill_brand, this, _onMouseMove).call(this, event));\n  }\n  /**\n   * Clears mapped settings.\n   *\n   * @private\n   */\n  clearMappedSettings() {\n    this.directions.length = 0;\n    this.autoInsertRow = false;\n  }\n\n  /**\n   * Map settings.\n   *\n   * @private\n   */\n  mapSettings() {\n    const mappedSettings = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_7__[\"getMappedFillHandleSetting\"])(this.hot.getSettings().fillHandle);\n    this.directions = mappedSettings.directions;\n    this.autoInsertRow = mappedSettings.autoInsertRow;\n  }\n\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    super.destroy();\n  }\n}\nfunction _onCellCornerDblClick() {\n  const selectionApplied = this.selectAdjacent();\n  if (selectionApplied) {\n    this.fillIn();\n  }\n}\n/**\n * On after cell corner mouse down listener.\n */\nfunction _onAfterCellCornerMouseDown() {\n  this.handleDraggedCells = 1;\n  this.mouseDownOnCellCorner = true;\n}\n/**\n * On before cell mouse over listener.\n *\n * @param {CellCoords} coords `CellCoords` coord object.\n */\nfunction _onBeforeCellMouseOver(coords) {\n  if (this.mouseDownOnCellCorner && !this.hot.view.isMouseDown() && this.handleDraggedCells) {\n    this.handleDraggedCells += 1;\n    this.showBorder(coords);\n    this.addNewRowIfNeeded();\n  }\n}\n/**\n * On mouse up listener.\n */\nfunction _onMouseUp() {\n  if (this.handleDraggedCells) {\n    if (this.handleDraggedCells > 1) {\n      this.fillIn();\n    }\n    this.handleDraggedCells = 0;\n    this.mouseDownOnCellCorner = false;\n  }\n}\n/**\n * On mouse move listener.\n *\n * @param {MouseEvent} event `mousemove` event properties.\n */\nfunction _onMouseMove(event) {\n  const mouseWasDraggedOutside = this.getIfMouseWasDraggedOutside(event);\n  if (this.addingStarted === false && this.handleDraggedCells > 0 && mouseWasDraggedOutside) {\n    this.mouseDragOutside = true;\n    this.addingStarted = true;\n  } else {\n    this.mouseDragOutside = false;\n  }\n  if (this.mouseDragOutside && this.autoInsertRow) {\n    this.addRow();\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/autofill/autofill.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/autofill/index.mjs":
/*!**************************************************************!*\
  !*** ./node_modules/handsontable/plugins/autofill/index.mjs ***!
  \**************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, Autofill */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _autofill_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./autofill.mjs */ \"./node_modules/handsontable/plugins/autofill/autofill.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _autofill_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _autofill_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Autofill\", function() { return _autofill_mjs__WEBPACK_IMPORTED_MODULE_0__[\"Autofill\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/autofill/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/autofill/utils.mjs":
/*!**************************************************************!*\
  !*** ./node_modules/handsontable/plugins/autofill/utils.mjs ***!
  \**************************************************************/
/*! exports provided: DIRECTIONS, getDragDirectionAndRange, getMappedFillHandleSetting */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DIRECTIONS\", function() { return DIRECTIONS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDragDirectionAndRange\", function() { return getDragDirectionAndRange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMappedFillHandleSetting\", function() { return getMappedFillHandleSetting; });\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n\n\nconst DIRECTIONS = {\n  horizontal: 'horizontal',\n  vertical: 'vertical'\n};\n\n/**\n * Get direction between positions and cords of selections difference (drag area).\n *\n * @param {Array} startSelection The coordinates where the selection starts.\n * @param {Array} endSelection The coordinates where the selection ends.\n * @param {Function} cellCoordsFactory The function factory for CellCoords objects.\n * @returns {{direction: string, start: CellCoords, end: CellCoords}}\n */\nfunction getDragDirectionAndRange(startSelection, endSelection, cellCoordsFactory) {\n  let startOfDragCoords;\n  let endOfDragCoords;\n  let directionOfDrag;\n  if (endSelection[0] === startSelection[0] && endSelection[1] < startSelection[1]) {\n    directionOfDrag = 'left';\n    startOfDragCoords = cellCoordsFactory(endSelection[0], endSelection[1]);\n    endOfDragCoords = cellCoordsFactory(endSelection[2], startSelection[1] - 1);\n  } else if (endSelection[2] === startSelection[2] && endSelection[0] === startSelection[0] && endSelection[3] > startSelection[3]) {\n    directionOfDrag = 'right';\n    startOfDragCoords = cellCoordsFactory(endSelection[0], startSelection[3] + 1);\n    endOfDragCoords = cellCoordsFactory(endSelection[2], endSelection[3]);\n  } else if (endSelection[0] < startSelection[0] && endSelection[1] === startSelection[1]) {\n    directionOfDrag = 'up';\n    startOfDragCoords = cellCoordsFactory(endSelection[0], endSelection[1]);\n    endOfDragCoords = cellCoordsFactory(startSelection[0] - 1, endSelection[3]);\n  } else if (endSelection[2] > startSelection[2] && endSelection[1] === startSelection[1]) {\n    directionOfDrag = 'down';\n    startOfDragCoords = cellCoordsFactory(startSelection[2] + 1, endSelection[1]);\n    endOfDragCoords = cellCoordsFactory(endSelection[2], endSelection[3]);\n  }\n  if (startOfDragCoords) {\n    startOfDragCoords.normalize();\n  }\n  if (endOfDragCoords) {\n    endOfDragCoords.normalize();\n  }\n  return {\n    directionOfDrag,\n    startOfDragCoords,\n    endOfDragCoords\n  };\n}\n\n/**\n * Get mapped FillHandle setting containing information about\n * allowed FillHandle directions and if allowed is automatic insertion of rows on drag.\n *\n * @param {boolean|object} fillHandle Property of Handsontable settings.\n * @returns {{directions: Array, autoInsertRow: boolean}} Object allowing access to information\n * about FillHandle in more useful way.\n */\nfunction getMappedFillHandleSetting(fillHandle) {\n  const mappedSettings = {};\n  if (fillHandle === true) {\n    mappedSettings.directions = Object.keys(DIRECTIONS);\n    mappedSettings.autoInsertRow = true;\n  } else if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(fillHandle)) {\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(fillHandle.autoInsertRow)) {\n      // autoInsertRow for horizontal direction will be always false\n\n      if (fillHandle.direction === DIRECTIONS.horizontal) {\n        mappedSettings.autoInsertRow = false;\n      } else {\n        mappedSettings.autoInsertRow = fillHandle.autoInsertRow;\n      }\n    } else {\n      mappedSettings.autoInsertRow = false;\n    }\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(fillHandle.direction)) {\n      mappedSettings.directions = [fillHandle.direction];\n    } else {\n      mappedSettings.directions = Object.keys(DIRECTIONS);\n    }\n  } else if (typeof fillHandle === 'string') {\n    mappedSettings.directions = [fillHandle];\n    mappedSettings.autoInsertRow = true;\n  } else {\n    mappedSettings.directions = [];\n    mappedSettings.autoInsertRow = false;\n  }\n  return mappedSettings;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/autofill/utils.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/base/base.mjs":
/*!*********************************************************!*\
  !*** ./node_modules/handsontable/plugins/base/base.mjs ***!
  \*********************************************************/
/*! exports provided: PLUGIN_KEY, BasePlugin */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BasePlugin\", function() { return BasePlugin; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _registry_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../registry.mjs */ \"./node_modules/handsontable/plugins/registry.mjs\");\n/* harmony import */ var _cellTypes_registry_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../cellTypes/registry.mjs */ \"./node_modules/handsontable/cellTypes/registry.mjs\");\n/* harmony import */ var _editors_registry_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../editors/registry.mjs */ \"./node_modules/handsontable/editors/registry.mjs\");\n/* harmony import */ var _renderers_registry_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../renderers/registry.mjs */ \"./node_modules/handsontable/renderers/registry.mjs\");\n/* harmony import */ var _validators_registry_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../validators/registry.mjs */ \"./node_modules/handsontable/validators/registry.mjs\");\n/* harmony import */ var _eventManager_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../eventManager.mjs */ \"./node_modules/handsontable/eventManager.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\nconst DEPS_TYPE_CHECKERS = new Map([['plugin', _registry_mjs__WEBPACK_IMPORTED_MODULE_4__[\"hasPlugin\"]], ['cell-type', _cellTypes_registry_mjs__WEBPACK_IMPORTED_MODULE_5__[\"hasCellType\"]], ['editor', _editors_registry_mjs__WEBPACK_IMPORTED_MODULE_6__[\"hasEditor\"]], ['renderer', _renderers_registry_mjs__WEBPACK_IMPORTED_MODULE_7__[\"hasRenderer\"]], ['validator', _validators_registry_mjs__WEBPACK_IMPORTED_MODULE_8__[\"hasValidator\"]]]);\nconst PLUGIN_KEY = 'base';\nconst missingDepsMsgs = [];\nlet initializedPlugins = null;\n\n/**\n * @util\n * @property {Core} hot Handsontable instance.\n */\nvar _hooks = /*#__PURE__*/new WeakMap();\nvar _BasePlugin_brand = /*#__PURE__*/new WeakSet();\nclass BasePlugin {\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n\n  /**\n   * The `SETTING_KEYS` getter defines the keys that, when present in the config object, trigger the plugin update\n   * after the `updateSettings` calls.\n   * - When it returns `true`, the plugin updates after all `updateSettings` calls, regardless of the contents of the\n   * config object.\n   * - When it returns `false`, the plugin never updates on `updateSettings` calls.\n   *\n   * @returns {string[] | boolean}\n   */\n  static get SETTING_KEYS() {\n    return [this.PLUGIN_KEY];\n  }\n\n  /**\n   * The instance of the {@link EventManager} class.\n   *\n   * @type {EventManager}\n   */\n\n  /**\n   * @param {object} hotInstance Handsontable instance.\n   */\n  constructor(hotInstance) {\n    /**\n     * Check if any of the keys defined in `SETTING_KEYS` configuration of the plugin is present in the provided\n     * config object, or if the `SETTING_KEYS` configuration states that the plugin is relevant to the config object\n     * regardless of its contents.\n     *\n     * @private\n     * @param {Handsontable.DefaultSettings} settings The config object passed to `updateSettings`.\n     * @returns {boolean}\n     */\n    _classPrivateMethodInitSpec(this, _BasePlugin_brand);\n    _defineProperty(this, \"eventManager\", new _eventManager_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"](this));\n    /**\n     * @type {string}\n     */\n    _defineProperty(this, \"pluginName\", null);\n    /**\n     * @type {Function[]}\n     */\n    _defineProperty(this, \"pluginsInitializedCallbacks\", []);\n    /**\n     * @type {boolean}\n     */\n    _defineProperty(this, \"isPluginsReady\", false);\n    /**\n     * @type {boolean}\n     */\n    _defineProperty(this, \"enabled\", false);\n    /**\n     * @type {boolean}\n     */\n    _defineProperty(this, \"initialized\", false);\n    /**\n     * Collection of the reference to the plugins hooks.\n     */\n    _classPrivateFieldInitSpec(this, _hooks, {});\n    /**\n     * Handsontable instance.\n     *\n     * @type {Core}\n     */\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"defineGetter\"])(this, 'hot', hotInstance, {\n      writable: false\n    });\n    initializedPlugins = null;\n    this.hot.addHook('afterPluginsInitialized', () => this.onAfterPluginsInitialized());\n    this.hot.addHook('afterUpdateSettings', newSettings => this.onUpdateSettings(newSettings));\n    this.hot.addHook('beforeInit', () => this.init());\n  }\n  init() {\n    this.pluginName = this.hot.getPluginName(this);\n    const pluginDeps = this.constructor.PLUGIN_DEPS;\n    const deps = Array.isArray(pluginDeps) ? pluginDeps : [];\n    if (deps.length > 0) {\n      const missingDependencies = [];\n      deps.forEach(dependency => {\n        const [type, moduleName] = dependency.split(':');\n        if (!DEPS_TYPE_CHECKERS.has(type)) {\n          throw new Error(`Unknown plugin dependency type \"${type}\" was found.`);\n        }\n        if (!DEPS_TYPE_CHECKERS.get(type)(moduleName)) {\n          missingDependencies.push(` - ${moduleName} (${type})`);\n        }\n      });\n      if (missingDependencies.length > 0) {\n        const errorMsg = [`The ${this.pluginName} plugin requires the following modules:\\n`, `${missingDependencies.join('\\n')}\\n`].join('');\n        missingDepsMsgs.push(errorMsg);\n      }\n    }\n    if (!initializedPlugins) {\n      initializedPlugins = Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getPluginsNames\"])();\n    }\n\n    // Workaround for the UndoRedo plugin which, currently doesn't follow the plugin architecture.\n    // Without this line the `callOnPluginsReady` callback won't be triggered after all plugin\n    // initialization.\n    if (initializedPlugins.indexOf('UndoRedo') >= 0) {\n      initializedPlugins.splice(initializedPlugins.indexOf('UndoRedo'), 1);\n    }\n    if (initializedPlugins.indexOf(this.pluginName) >= 0) {\n      initializedPlugins.splice(initializedPlugins.indexOf(this.pluginName), 1);\n    }\n    this.hot.addHookOnce('afterPluginsInitialized', () => {\n      if (this.isEnabled && this.isEnabled()) {\n        this.enablePlugin();\n      }\n    });\n    const isAllPluginsAreInitialized = initializedPlugins.length === 0;\n    if (isAllPluginsAreInitialized) {\n      if (missingDepsMsgs.length > 0) {\n        const errorMsg = [`${missingDepsMsgs.join('\\n')}\\n`, 'You have to import and register them manually.'].join('');\n        throw new Error(errorMsg);\n      }\n      this.hot.runHooks('afterPluginsInitialized');\n    }\n    this.initialized = true;\n  }\n\n  /**\n   * Enable plugin for this Handsontable instance.\n   */\n  enablePlugin() {\n    this.enabled = true;\n  }\n\n  /**\n   * Disable plugin for this Handsontable instance.\n   */\n  disablePlugin() {\n    var _this$eventManager;\n    (_this$eventManager = this.eventManager) === null || _this$eventManager === void 0 || _this$eventManager.clear();\n    this.clearHooks();\n    this.enabled = false;\n  }\n\n  /**\n   * Add listener to plugin hooks system.\n   *\n   * @param {string} name The hook name.\n   * @param {Function} callback The listener function to add.\n   * @param {number} [orderIndex] Order index of the callback.\n   *                              If > 0, the callback will be added after the others, for example, with an index of 1, the callback will be added before the ones with an index of 2, 3, etc., but after the ones with an index of 0 and lower.\n   *                              If < 0, the callback will be added before the others, for example, with an index of -1, the callback will be added after the ones with an index of -2, -3, etc., but before the ones with an index of 0 and higher.\n   *                              If 0 or no order index is provided, the callback will be added between the \"negative\" and \"positive\" indexes.\n   */\n  addHook(name, callback, orderIndex) {\n    _classPrivateFieldGet(_hooks, this)[name] = _classPrivateFieldGet(_hooks, this)[name] || [];\n    const hooks = _classPrivateFieldGet(_hooks, this)[name];\n    this.hot.addHook(name, callback, orderIndex);\n    hooks.push(callback);\n    _classPrivateFieldGet(_hooks, this)[name] = hooks;\n  }\n\n  /**\n   * Remove all hooks listeners by hook name.\n   *\n   * @param {string} name The hook name.\n   */\n  removeHooks(name) {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(_classPrivateFieldGet(_hooks, this)[name] || [], callback => {\n      this.hot.removeHook(name, callback);\n    });\n  }\n\n  /**\n   * Clear all hooks.\n   */\n  clearHooks() {\n    const hooks = _classPrivateFieldGet(_hooks, this);\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"objectEach\"])(hooks, (callbacks, name) => this.removeHooks(name));\n    hooks.length = 0;\n  }\n\n  /**\n   * Register function which will be immediately called after all plugins initialized.\n   *\n   * @param {Function} callback The listener function to call.\n   */\n  callOnPluginsReady(callback) {\n    if (this.isPluginsReady) {\n      callback();\n    } else {\n      this.pluginsInitializedCallbacks.push(callback);\n    }\n  }\n  /**\n   * On after plugins initialized listener.\n   *\n   * @private\n   */\n  onAfterPluginsInitialized() {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(this.pluginsInitializedCallbacks, callback => callback());\n    this.pluginsInitializedCallbacks.length = 0;\n    this.isPluginsReady = true;\n  }\n\n  /**\n   * On update settings listener.\n   *\n   * @private\n   * @param {object} newSettings New set of settings passed to the `updateSettings` method.\n   */\n  onUpdateSettings(newSettings) {\n    const relevantToSettings = _assertClassBrand(_BasePlugin_brand, this, _isRelevantToSettings).call(this, newSettings);\n    if (this.isEnabled) {\n      if (this.enabled && !this.isEnabled()) {\n        this.disablePlugin();\n      }\n      if (!this.enabled && this.isEnabled()) {\n        this.enablePlugin();\n      }\n      if (this.enabled && this.isEnabled() && relevantToSettings) {\n        this.updatePlugin(newSettings);\n      }\n    }\n  }\n\n  /**\n   * Updates the plugin to use the latest options you have specified.\n   *\n   * @private\n   */\n  updatePlugin() {}\n\n  /**\n   * Destroy plugin.\n   */\n  destroy() {\n    var _this$eventManager2;\n    (_this$eventManager2 = this.eventManager) === null || _this$eventManager2 === void 0 || _this$eventManager2.destroy();\n    this.clearHooks();\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"objectEach\"])(this, (value, property) => {\n      if (property !== 'hot') {\n        this[property] = null;\n      }\n    });\n    delete this.t;\n    delete this.hot;\n  }\n}\nfunction _isRelevantToSettings(settings) {\n  if (!settings) {\n    return false;\n  }\n  const settingKeys = this.constructor.SETTING_KEYS;\n\n  // If SETTING_KEYS is declared as `true` -> update the plugin regardless of the settings declared in\n  // `updateSettings`.\n  // If SETTING_KEYS is declared as `false` -> DON'T update the plugin regardless of the settings declared in\n  // `updateSettings`.\n  if (typeof settingKeys === 'boolean') {\n    return settingKeys;\n  }\n  for (let i = 0; i < settingKeys.length; i++) {\n    if (settings[settingKeys[i]] !== undefined) {\n      return true;\n    }\n  }\n  return false;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/base/base.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/base/index.mjs":
/*!**********************************************************!*\
  !*** ./node_modules/handsontable/plugins/base/index.mjs ***!
  \**********************************************************/
/*! exports provided: PLUGIN_KEY, BasePlugin */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base.mjs */ \"./node_modules/handsontable/plugins/base/base.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BasePlugin\", function() { return _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"BasePlugin\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/base/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs":
/*!***************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs ***!
  \***************************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, BindRowsWithHeaders */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BindRowsWithHeaders\", function() { return BindRowsWithHeaders; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _maps_looseBindsMap_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./maps/looseBindsMap.mjs */ \"./node_modules/handsontable/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs\");\n/* harmony import */ var _maps_strictBindsMap_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./maps/strictBindsMap.mjs */ \"./node_modules/handsontable/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs\");\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\nconst PLUGIN_KEY = 'bindRowsWithHeaders';\nconst PLUGIN_PRIORITY = 210;\nconst DEFAULT_BIND = 'loose';\nconst bindTypeToMapStrategy = new Map([['loose', _maps_looseBindsMap_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]], ['strict', _maps_strictBindsMap_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"]]]);\n\n/**\n * @plugin BindRowsWithHeaders\n * @class BindRowsWithHeaders\n *\n * @description\n * Plugin allows binding the table rows with their headers.\n *\n * If the plugin is enabled, the table row headers will \"stick\" to the rows, when they are hidden/moved. Basically, if\n * at the initialization row 0 has a header titled \"A\", it will have it no matter what you do with the table.\n *\n * @example\n * ::: only-for javascript\n * ```js\n * const container = document.getElementById('example');\n * const hot = new Handsontable(container, {\n *   data: getData(),\n *   // enable plugin\n *   bindRowsWithHeaders: true\n * });\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * <HotTable\n *   data={getData()}\n *   // enable plugin\n *   bindRowsWithHeaders={true}\n * />\n * ```\n * :::\n */\nvar _BindRowsWithHeaders_brand = /*#__PURE__*/new WeakSet();\nclass BindRowsWithHeaders extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * On modify row header listener.\n     *\n     * @param {number} row Row index.\n     * @returns {number}\n     */\n    _classPrivateMethodInitSpec(this, _BindRowsWithHeaders_brand);\n    /**\n     * Plugin indexes cache.\n     *\n     * @private\n     * @type {null|IndexMap}\n     */\n    _defineProperty(this, \"headerIndexes\", null);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link BindRowsWithHeaders#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    if (this.enabled) {\n      return;\n    }\n    let bindType = this.hot.getSettings()[PLUGIN_KEY];\n    if (typeof bindType !== 'string') {\n      bindType = DEFAULT_BIND;\n    }\n    const MapStrategy = bindTypeToMapStrategy.get(bindType);\n    this.headerIndexes = this.hot.rowIndexMapper.registerMap('bindRowsWithHeaders', new MapStrategy());\n    this.addHook('modifyRowHeader', row => _assertClassBrand(_BindRowsWithHeaders_brand, this, _onModifyRowHeader).call(this, row));\n    super.enablePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.hot.rowIndexMapper.unregisterMap('bindRowsWithHeaders');\n    super.disablePlugin();\n  }\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    super.destroy();\n  }\n}\nfunction _onModifyRowHeader(row) {\n  return this.headerIndexes.getValueAtIndex(this.hot.toPhysicalRow(row));\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/bindRowsWithHeaders/index.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/bindRowsWithHeaders/index.mjs ***!
  \*************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, BindRowsWithHeaders */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bindRowsWithHeaders_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bindRowsWithHeaders.mjs */ \"./node_modules/handsontable/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _bindRowsWithHeaders_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _bindRowsWithHeaders_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BindRowsWithHeaders\", function() { return _bindRowsWithHeaders_mjs__WEBPACK_IMPORTED_MODULE_0__[\"BindRowsWithHeaders\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/bindRowsWithHeaders/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs":
/*!**************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs ***!
  \**************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n\nconst {\n  getListWithInsertedItems,\n  getListWithRemovedItems\n} = Object(_translations_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"alterUtilsFactory\"])('physicallyIndexed');\n\n/**\n * Map from physical index to another index.\n */\nclass LooseBindsMap extends _translations_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"IndexMap\"] {\n  constructor() {\n    super(index => index);\n  }\n\n  /**\n   * Add values to list and reorganize.\n   *\n   * @private\n   * @param {number} insertionIndex Position inside the list.\n   * @param {Array} insertedIndexes List of inserted indexes.\n   */\n  insert(insertionIndex, insertedIndexes) {\n    const listAfterUpdate = Object(_translations_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getIncreasedIndexes\"])(this.indexedValues, insertedIndexes);\n    this.indexedValues = getListWithInsertedItems(listAfterUpdate, insertionIndex, insertedIndexes, this.initValueOrFn);\n    super.insert(insertionIndex, insertedIndexes);\n  }\n\n  /**\n   * Remove values from the list and reorganize.\n   *\n   * @private\n   * @param {Array} removedIndexes List of removed indexes.\n   */\n  remove(removedIndexes) {\n    const listAfterUpdate = getListWithRemovedItems(this.indexedValues, removedIndexes);\n    this.indexedValues = Object(_translations_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getDecreasedIndexes\"])(listAfterUpdate, removedIndexes);\n    super.remove(removedIndexes);\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (LooseBindsMap);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs":
/*!***************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs ***!
  \***************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n\nconst {\n  getListWithInsertedItems,\n  getListWithRemovedItems\n} = Object(_translations_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"alterUtilsFactory\"])('physicallyIndexed');\n\n/**\n * Map from physical index to another index.\n */\nclass StrictBindsMap extends _translations_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"IndexMap\"] {\n  constructor() {\n    super(index => index);\n  }\n\n  /**\n   * Add values to list and reorganize.\n   *\n   * @private\n   * @param {number} insertionIndex Position inside the list.\n   * @param {Array} insertedIndexes List of inserted indexes.\n   */\n  insert(insertionIndex, insertedIndexes) {\n    this.indexedValues = getListWithInsertedItems(this.indexedValues, insertionIndex, insertedIndexes, (_, ordinalNumber) => this.getNextValue(ordinalNumber));\n    super.insert(insertionIndex, insertedIndexes);\n  }\n\n  /**\n   * Remove values from the list and reorganize.\n   *\n   * @private\n   * @param {Array} removedIndexes List of removed indexes.\n   */\n  remove(removedIndexes) {\n    this.indexedValues = getListWithRemovedItems(this.indexedValues, removedIndexes);\n    super.remove(removedIndexes);\n  }\n\n  /**\n   * Get next values, which should be greater than actual maximum value in the list.\n   *\n   * @param {number} ordinalNumber Position in the list.\n   * @returns {number}\n   */\n  getNextValue(ordinalNumber) {\n    return Math.max(...this.getValues()) + 1 + ordinalNumber;\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (StrictBindsMap);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/collapsibleColumns/collapsibleColumns.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/collapsibleColumns/collapsibleColumns.mjs ***!
  \*************************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, CollapsibleColumns */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CollapsibleColumns\", function() { return CollapsibleColumns; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../shortcutContexts/index.mjs */ \"./node_modules/handsontable/shortcutContexts/index.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\nconst PLUGIN_KEY = 'collapsibleColumns';\nconst PLUGIN_PRIORITY = 290;\nconst SETTING_KEYS = ['nestedHeaders'];\nconst COLLAPSIBLE_ELEMENT_CLASS = 'collapsibleIndicator';\nconst SHORTCUTS_GROUP = PLUGIN_KEY;\nconst actionDictionary = new Map([['collapse', {\n  hideColumn: true,\n  beforeHook: 'beforeColumnCollapse',\n  afterHook: 'afterColumnCollapse'\n}], ['expand', {\n  hideColumn: false,\n  beforeHook: 'beforeColumnExpand',\n  afterHook: 'afterColumnExpand'\n}]]);\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @plugin CollapsibleColumns\n * @class CollapsibleColumns\n *\n * @description\n * The _CollapsibleColumns_ plugin allows collapsing of columns, covered by a header with the `colspan` property defined.\n *\n * Clicking the \"collapse/expand\" button collapses (or expands) all \"child\" headers except the first one.\n *\n * Setting the {@link Options#collapsiblecolumns} property to `true` will display a \"collapse/expand\" button in every header\n * with a defined `colspan` property.\n *\n * To limit this functionality to a smaller group of headers, define the `collapsibleColumns` property as an array\n * of objects, as in the example below.\n *\n * @example\n * ::: only-for javascript\n * ```js\n * const container = document.getElementById('example');\n * const hot = new Handsontable(container, {\n *   data: generateDataObj(),\n *   colHeaders: true,\n *   rowHeaders: true,\n *   nestedHeaders: true,\n *   // enable plugin\n *   collapsibleColumns: true,\n * });\n *\n * // or\n * const hot = new Handsontable(container, {\n *   data: generateDataObj(),\n *   colHeaders: true,\n *   rowHeaders: true,\n *   nestedHeaders: true,\n *   // enable and configure which columns can be collapsed\n *   collapsibleColumns: [\n *     {row: -4, col: 1, collapsible: true},\n *     {row: -3, col: 5, collapsible: true}\n *   ],\n * });\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * <HotTable\n *   data={generateDataObj()}\n *   colHeaders={true}\n *   rowHeaders={true}\n *   nestedHeaders={true}\n *   // enable plugin\n *   collapsibleColumns={true}\n * />\n *\n * // or\n * <HotTable\n *   data={generateDataObj()}\n *   colHeaders={true}\n *   rowHeaders={true}\n *   nestedHeaders={true}\n *   // enable and configure which columns can be collapsed\n *   collapsibleColumns={[\n *     {row: -4, col: 1, collapsible: true},\n *     {row: -3, col: 5, collapsible: true}\n *   ]}\n * />\n * ```\n * :::\n */\nvar _collapsedColumnsMap = /*#__PURE__*/new WeakMap();\nvar _CollapsibleColumns_brand = /*#__PURE__*/new WeakSet();\nclass CollapsibleColumns extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * Adds the indicator to the headers.\n     *\n     * @param {number} column Column index.\n     * @param {HTMLElement} TH TH element.\n     * @param {number} headerLevel The index of header level counting from the top (positive\n     *                             values counting from 0 to N).\n     */\n    _classPrivateMethodInitSpec(this, _CollapsibleColumns_brand);\n    /**\n     * Cached reference to the NestedHeaders plugin.\n     *\n     * @private\n     * @type {NestedHeaders}\n     */\n    _defineProperty(this, \"nestedHeadersPlugin\", null);\n    /**\n     * The NestedHeaders plugin StateManager instance.\n     *\n     * @private\n     * @type {StateManager}\n     */\n    _defineProperty(this, \"headerStateManager\", null);\n    /**\n     * Map of collapsed columns by the plugin.\n     *\n     * @private\n     * @type {HidingMap|null}\n     */\n    _classPrivateFieldInitSpec(this, _collapsedColumnsMap, null);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  static get PLUGIN_DEPS() {\n    return ['plugin:NestedHeaders'];\n  }\n  static get SETTING_KEYS() {\n    return [PLUGIN_KEY, ...SETTING_KEYS];\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link CollapsibleColumns#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    const {\n      nestedHeaders\n    } = this.hot.getSettings();\n    if (!nestedHeaders) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_5__[\"warn\"])('You need to configure the Nested Headers plugin in order to use collapsible headers.');\n    }\n    _classPrivateFieldSet(_collapsedColumnsMap, this, this.hot.columnIndexMapper.createAndRegisterIndexMap(this.pluginName, 'hiding'));\n    this.nestedHeadersPlugin = this.hot.getPlugin('nestedHeaders');\n    this.headerStateManager = this.nestedHeadersPlugin.getStateManager();\n    this.addHook('init', () => _assertClassBrand(_CollapsibleColumns_brand, this, _onInit).call(this));\n    this.addHook('afterLoadData', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_CollapsibleColumns_brand, _this, _onAfterLoadData).call(_this, ...args);\n    });\n    this.addHook('afterGetColHeader', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_CollapsibleColumns_brand, _this, _onAfterGetColHeader).call(_this, ...args);\n    });\n    this.addHook('beforeOnCellMouseDown', (event, coords, TD) => _assertClassBrand(_CollapsibleColumns_brand, this, _onBeforeOnCellMouseDown).call(this, event, coords, TD));\n    this.registerShortcuts();\n    super.enablePlugin();\n    // @TODO: Workaround for broken plugin initialization abstraction (#6806).\n    this.updatePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *   - [`collapsibleColumns`](@/api/options.md#collapsiblecolumns)\n   *   - [`nestedHeaders`](@/api/options.md#nestedheaders)\n   */\n  updatePlugin() {\n    // @TODO: Workaround for broken plugin initialization abstraction (#6806).\n    if (!this.hot.view) {\n      return;\n    }\n    if (!this.nestedHeadersPlugin.detectedOverlappedHeaders) {\n      const {\n        collapsibleColumns\n      } = this.hot.getSettings();\n      if (typeof collapsibleColumns === 'boolean') {\n        // Add `collapsible: true` attribute to all headers with colspan higher than 1.\n        this.headerStateManager.mapState(headerSettings => {\n          return {\n            collapsible: headerSettings.origColspan > 1\n          };\n        });\n      } else if (Array.isArray(collapsibleColumns)) {\n        this.headerStateManager.mapState(() => {\n          return {\n            collapsible: false\n          };\n        });\n        this.headerStateManager.mergeStateWith(collapsibleColumns);\n      }\n    }\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.hot.columnIndexMapper.unregisterMap(this.pluginName);\n    _classPrivateFieldSet(_collapsedColumnsMap, this, null);\n    this.nestedHeadersPlugin = null;\n    this.unregisterShortcuts();\n    this.clearButtons();\n    super.disablePlugin();\n  }\n\n  /**\n   * Register shortcuts responsible for toggling collapsible columns.\n   *\n   * @private\n   */\n  registerShortcuts() {\n    this.hot.getShortcutManager().getContext('grid').addShortcut({\n      keys: [['Enter']],\n      callback: () => {\n        var _this$headerStateMana;\n        const {\n          row,\n          col\n        } = this.hot.getSelectedRangeLast().highlight;\n        const {\n          collapsible,\n          isCollapsed,\n          columnIndex\n        } = (_this$headerStateMana = this.headerStateManager.getHeaderTreeNodeData(row, col)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {};\n        if (!collapsible) {\n          return;\n        }\n        if (isCollapsed) {\n          this.expandSection({\n            row,\n            col: columnIndex\n          });\n        } else {\n          this.collapseSection({\n            row,\n            col: columnIndex\n          });\n        }\n\n        // prevent default Enter behavior (move to the next row within a selection range)\n        return false;\n      },\n      runOnlyIf: () => {\n        var _this$hot$getSelected, _this$hot$getSelected2;\n        return ((_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.isSingle()) && ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight.isHeader());\n      },\n      group: SHORTCUTS_GROUP,\n      relativeToGroup: _shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"EDITOR_EDIT_GROUP\"],\n      position: 'before'\n    });\n  }\n\n  /**\n   * Unregister shortcuts responsible for toggling collapsible columns.\n   *\n   * @private\n   */\n  unregisterShortcuts() {\n    this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);\n  }\n\n  /**\n   * Clears the expand/collapse buttons.\n   *\n   * @private\n   */\n  clearButtons() {\n    if (!this.hot.view) {\n      return;\n    }\n    const headerLevels = this.hot.view._wt.getSetting('columnHeaders').length;\n    const mainHeaders = this.hot.view._wt.wtTable.THEAD;\n    const topHeaders = this.hot.view._wt.wtOverlays.topOverlay.clone.wtTable.THEAD;\n    const topLeftCornerHeaders = this.hot.view._wt.wtOverlays.topInlineStartCornerOverlay ? this.hot.view._wt.wtOverlays.topInlineStartCornerOverlay.clone.wtTable.THEAD : null;\n    const removeButton = function (button) {\n      if (button) {\n        button.parentNode.removeChild(button);\n      }\n    };\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(0, headerLevels - 1, i => {\n      const masterLevel = mainHeaders.childNodes[i];\n      const topLevel = topHeaders.childNodes[i];\n      const topLeftCornerLevel = topLeftCornerHeaders ? topLeftCornerHeaders.childNodes[i] : null;\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(0, masterLevel.childNodes.length - 1, j => {\n        let button = masterLevel.childNodes[j].querySelector(`.${COLLAPSIBLE_ELEMENT_CLASS}`);\n        removeButton(button);\n        if (topLevel && topLevel.childNodes[j]) {\n          button = topLevel.childNodes[j].querySelector(`.${COLLAPSIBLE_ELEMENT_CLASS}`);\n          removeButton(button);\n        }\n        if (topLeftCornerHeaders && topLeftCornerLevel && topLeftCornerLevel.childNodes[j]) {\n          button = topLeftCornerLevel.childNodes[j].querySelector(`.${COLLAPSIBLE_ELEMENT_CLASS}`);\n          removeButton(button);\n        }\n      });\n    }, true);\n  }\n\n  /**\n   * Expands section at the provided coords.\n   *\n   * @param {object} coords Contains coordinates information. (`coords.row`, `coords.col`).\n   */\n  expandSection(coords) {\n    this.toggleCollapsibleSection([coords], 'expand');\n  }\n\n  /**\n   * Collapses section at the provided coords.\n   *\n   * @param {object} coords Contains coordinates information. (`coords.row`, `coords.col`).\n   */\n  collapseSection(coords) {\n    this.toggleCollapsibleSection([coords], 'collapse');\n  }\n\n  /**\n   * Collapses or expand all collapsible sections, depending on the action parameter.\n   *\n   * @param {string} action 'collapse' or 'expand'.\n   */\n  toggleAllCollapsibleSections(action) {\n    const coords = this.headerStateManager.mapNodes(headerSettings => {\n      const {\n        collapsible,\n        origColspan,\n        headerLevel,\n        columnIndex,\n        isCollapsed\n      } = headerSettings;\n      if (collapsible === true && origColspan > 1 && (isCollapsed && action === 'expand' || !isCollapsed && action === 'collapse')) {\n        return {\n          row: this.headerStateManager.levelToRowCoords(headerLevel),\n          col: columnIndex\n        };\n      }\n    });\n    this.toggleCollapsibleSection(coords, action);\n  }\n\n  /**\n   * Collapses all collapsible sections.\n   */\n  collapseAll() {\n    this.toggleAllCollapsibleSections('collapse');\n  }\n\n  /**\n   * Expands all collapsible sections.\n   */\n  expandAll() {\n    this.toggleAllCollapsibleSections('expand');\n  }\n\n  /**\n   * Collapses/Expands a section.\n   *\n   * @param {Array} coords Array of coords - section coordinates.\n   * @param {string} [action] Action definition ('collapse' or 'expand').\n   * @fires Hooks#beforeColumnCollapse\n   * @fires Hooks#beforeColumnExpand\n   * @fires Hooks#afterColumnCollapse\n   * @fires Hooks#afterColumnExpand\n   */\n  toggleCollapsibleSection(coords, action) {\n    if (!actionDictionary.has(action)) {\n      throw new Error(`Unsupported action is passed (${action}).`);\n    }\n    if (!Array.isArray(coords)) {\n      return;\n    }\n\n    // Ignore coordinates which points to the cells range.\n    const filteredCoords = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayFilter\"])(coords, _ref => {\n      let {\n        row\n      } = _ref;\n      return row < 0;\n    });\n    let isActionPossible = filteredCoords.length > 0;\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(filteredCoords, _ref2 => {\n      var _this$headerStateMana2;\n      let {\n        row,\n        col: column\n      } = _ref2;\n      const {\n        collapsible,\n        isCollapsed\n      } = (_this$headerStateMana2 = this.headerStateManager.getHeaderSettings(row, column)) !== null && _this$headerStateMana2 !== void 0 ? _this$headerStateMana2 : {};\n      if (!collapsible || isCollapsed && action === 'collapse' || !isCollapsed && action === 'expand') {\n        isActionPossible = false;\n        return false;\n      }\n    });\n    const nodeModRollbacks = [];\n    const affectedColumnsIndexes = [];\n    if (isActionPossible) {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(filteredCoords, _ref3 => {\n        let {\n          row,\n          col: column\n        } = _ref3;\n        const {\n          colspanCompensation,\n          affectedColumns,\n          rollbackModification\n        } = this.headerStateManager.triggerNodeModification(action, row, column);\n        if (colspanCompensation > 0) {\n          affectedColumnsIndexes.push(...affectedColumns);\n          nodeModRollbacks.push(rollbackModification);\n        }\n      });\n    }\n    const currentCollapsedColumns = this.getCollapsedColumns();\n    let destinationCollapsedColumns = [];\n    if (action === 'collapse') {\n      destinationCollapsedColumns = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayUnique\"])([...currentCollapsedColumns, ...affectedColumnsIndexes]);\n    } else if (action === 'expand') {\n      destinationCollapsedColumns = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayFilter\"])(currentCollapsedColumns, index => !affectedColumnsIndexes.includes(index));\n    }\n    const actionTranslator = actionDictionary.get(action);\n    const isActionAllowed = this.hot.runHooks(actionTranslator.beforeHook, currentCollapsedColumns, destinationCollapsedColumns, isActionPossible);\n    if (isActionAllowed === false) {\n      // Rollback all header nodes modification (collapse or expand).\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(nodeModRollbacks, nodeModRollback => {\n        nodeModRollback();\n      });\n      return;\n    }\n    this.hot.batchExecution(() => {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(affectedColumnsIndexes, visualColumn => {\n        _classPrivateFieldGet(_collapsedColumnsMap, this).setValueAtIndex(this.hot.toPhysicalColumn(visualColumn), actionTranslator.hideColumn);\n      });\n    }, true);\n    const isActionPerformed = this.getCollapsedColumns().length !== currentCollapsedColumns.length;\n    const selectionRange = this.hot.getSelectedRangeLast();\n    if (action === 'collapse' && isActionPerformed && selectionRange) {\n      const {\n        row,\n        col\n      } = selectionRange.highlight;\n      const isHidden = this.hot.rowIndexMapper.isHidden(row) || this.hot.columnIndexMapper.isHidden(col);\n      if (isHidden && affectedColumnsIndexes.includes(col)) {\n        const nextRow = row >= 0 ? this.hot.rowIndexMapper.getNearestNotHiddenIndex(row, 1, true) : row;\n        const nextColumn = col >= 0 ? this.hot.columnIndexMapper.getNearestNotHiddenIndex(col, 1, true) : col;\n        if (nextRow !== null && nextColumn !== null) {\n          this.hot.selectCell(nextRow, nextColumn);\n        }\n      }\n    }\n    this.hot.runHooks(actionTranslator.afterHook, currentCollapsedColumns, destinationCollapsedColumns, isActionPossible, isActionPerformed);\n    this.hot.render();\n    this.hot.view.adjustElementsSize();\n  }\n\n  /**\n   * Gets an array of physical indexes of collapsed columns.\n   *\n   * @private\n   * @returns {number[]}\n   */\n  getCollapsedColumns() {\n    return _classPrivateFieldGet(_collapsedColumnsMap, this).getHiddenIndexes();\n  }\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    _classPrivateFieldSet(_collapsedColumnsMap, this, null);\n    super.destroy();\n  }\n}\nfunction _onAfterGetColHeader(column, TH, headerLevel) {\n  var _this$headerStateMana3;\n  const {\n    collapsible,\n    origColspan,\n    isCollapsed\n  } = (_this$headerStateMana3 = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana3 !== void 0 ? _this$headerStateMana3 : {};\n  const isNodeCollapsible = collapsible && origColspan > 1 && column >= this.hot.getSettings().fixedColumnsStart;\n  const isAriaTagsEnabled = this.hot.getSettings().ariaTags;\n  let collapsibleElement = TH.querySelector(`.${COLLAPSIBLE_ELEMENT_CLASS}`);\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"removeAttribute\"])(TH, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_9__[\"A11Y_EXPANDED\"])('')[0]]);\n  if (isNodeCollapsible) {\n    if (!collapsibleElement) {\n      collapsibleElement = this.hot.rootDocument.createElement('div');\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"addClass\"])(collapsibleElement, COLLAPSIBLE_ELEMENT_CLASS);\n      TH.querySelector('div:first-child').appendChild(collapsibleElement);\n    }\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"removeClass\"])(collapsibleElement, ['collapsed', 'expanded']);\n    if (isCollapsed) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"addClass\"])(collapsibleElement, 'collapsed');\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"fastInnerText\"])(collapsibleElement, '+');\n\n      // Add ARIA tags\n      if (isAriaTagsEnabled) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"setAttribute\"])(TH, ...Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_9__[\"A11Y_EXPANDED\"])(false));\n      }\n    } else {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"addClass\"])(collapsibleElement, 'expanded');\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"fastInnerText\"])(collapsibleElement, '-');\n\n      // Add ARIA tags\n      if (isAriaTagsEnabled) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"setAttribute\"])(TH, ...Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_9__[\"A11Y_EXPANDED\"])(true));\n      }\n    }\n    if (isAriaTagsEnabled) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"setAttribute\"])(collapsibleElement, ...Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_9__[\"A11Y_HIDDEN\"])());\n    }\n  } else {\n    var _collapsibleElement;\n    (_collapsibleElement = collapsibleElement) === null || _collapsibleElement === void 0 || _collapsibleElement.remove();\n  }\n}\n/**\n * Indicator mouse event callback.\n *\n * @param {object} event Mouse event.\n * @param {object} coords Event coordinates.\n */\nfunction _onBeforeOnCellMouseDown(event, coords) {\n  if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"hasClass\"])(event.target, COLLAPSIBLE_ELEMENT_CLASS)) {\n    if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"hasClass\"])(event.target, 'expanded')) {\n      this.eventManager.fireEvent(event.target, 'mouseup');\n      this.toggleCollapsibleSection([coords], 'collapse');\n    } else if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"hasClass\"])(event.target, 'collapsed')) {\n      this.eventManager.fireEvent(event.target, 'mouseup');\n      this.toggleCollapsibleSection([coords], 'expand');\n    }\n    Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_7__[\"stopImmediatePropagation\"])(event);\n  }\n}\n/**\n * Updates the plugin state after HoT initialization.\n */\nfunction _onInit() {\n  // @TODO: Workaround for broken plugin initialization abstraction (#6806).\n  this.updatePlugin();\n}\n/**\n * Updates the plugin state after new dataset load.\n *\n * @param {Array[]} sourceData Array of arrays or array of objects containing data.\n * @param {boolean} initialLoad Flag that determines whether the data has been loaded\n *                              during the initialization.\n */\nfunction _onAfterLoadData(sourceData, initialLoad) {\n  if (!initialLoad) {\n    this.updatePlugin();\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/collapsibleColumns/collapsibleColumns.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/collapsibleColumns/index.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/collapsibleColumns/index.mjs ***!
  \************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, CollapsibleColumns */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _collapsibleColumns_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./collapsibleColumns.mjs */ \"./node_modules/handsontable/plugins/collapsibleColumns/collapsibleColumns.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _collapsibleColumns_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _collapsibleColumns_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CollapsibleColumns\", function() { return _collapsibleColumns_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CollapsibleColumns\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/collapsibleColumns/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSorting/columnSorting.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSorting/columnSorting.mjs ***!
  \***************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, APPEND_COLUMN_CONFIG_STRATEGY, REPLACE_COLUMN_CONFIG_STRATEGY, ColumnSorting */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"APPEND_COLUMN_CONFIG_STRATEGY\", function() { return APPEND_COLUMN_CONFIG_STRATEGY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"REPLACE_COLUMN_CONFIG_STRATEGY\", function() { return REPLACE_COLUMN_CONFIG_STRATEGY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ColumnSorting\", function() { return ColumnSorting; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _columnStatesManager_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./columnStatesManager.mjs */ \"./node_modules/handsontable/plugins/columnSorting/columnStatesManager.mjs\");\n/* harmony import */ var _shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../shortcutContexts/index.mjs */ \"./node_modules/handsontable/shortcutContexts/index.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/plugins/columnSorting/utils.mjs\");\n/* harmony import */ var _domHelpers_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./domHelpers.mjs */ \"./node_modules/handsontable/plugins/columnSorting/domHelpers.mjs\");\n/* harmony import */ var _rootComparator_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./rootComparator.mjs */ \"./node_modules/handsontable/plugins/columnSorting/rootComparator.mjs\");\n/* harmony import */ var _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./sortService/index.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortService/index.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst PLUGIN_KEY = 'columnSorting';\nconst PLUGIN_PRIORITY = 50;\nconst APPEND_COLUMN_CONFIG_STRATEGY = 'append';\nconst REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';\nconst SHORTCUTS_GROUP = PLUGIN_KEY;\nObject(_sortService_index_mjs__WEBPACK_IMPORTED_MODULE_15__[\"registerRootComparator\"])(PLUGIN_KEY, _rootComparator_mjs__WEBPACK_IMPORTED_MODULE_14__[\"rootComparator\"]);\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"].getSingleton().register('beforeColumnSort');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"].getSingleton().register('afterColumnSort');\n\n// DIFF - MultiColumnSorting & ColumnSorting: changed configuration documentation.\n/**\n * @plugin ColumnSorting\n * @class ColumnSorting\n *\n * @description\n * This plugin sorts the view by columns (but does not sort the data source!). To enable the plugin, set the\n * {@link Options#columnSorting} property to the correct value (see the examples below).\n *\n * @example\n * ```js\n * // as boolean\n * columnSorting: true\n *\n * // as an object with initial sort config (sort ascending for column at index 1)\n * columnSorting: {\n *   initialConfig: {\n *     column: 1,\n *     sortOrder: 'asc'\n *   }\n * }\n *\n * // as an object which define specific sorting options for all columns\n * columnSorting: {\n *   sortEmptyCells: true, // true = the table sorts empty cells, false = the table moves all empty cells to the end of the table (by default)\n *   indicator: true, // true = shows indicator for all columns (by default), false = don't show indicator for columns\n *   headerAction: true, // true = allow to click on the headers to sort (by default), false = turn off possibility to click on the headers to sort\n *   compareFunctionFactory: function(sortOrder, columnMeta) {\n *     return function(value, nextValue) {\n *       // Some value comparisons which will return -1, 0 or 1...\n *     }\n *   }\n * }\n *\n * // as an object passed to the `column` property, allows specifying a custom options for the desired column.\n * // please take a look at documentation of `column` property: https://handsontable.com/docs/Options.html#columns\n * columns: [{\n *   columnSorting: {\n *     indicator: false, // disable indicator for the first column,\n *     sortEmptyCells: true,\n *     headerAction: false, // clicks on the first column won't sort\n *     compareFunctionFactory: function(sortOrder, columnMeta) {\n *       return function(value, nextValue) {\n *         return 0; // Custom compare function for the first column (don't sort)\n *       }\n *     }\n *   }\n * }]\n * ```\n */\nvar _ColumnSorting_brand = /*#__PURE__*/new WeakSet();\nclass ColumnSorting extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * Load saved settings or sort by predefined plugin configuration.\n     */\n    _classPrivateMethodInitSpec(this, _ColumnSorting_brand);\n    /**\n     * Instance of column state manager.\n     *\n     * @private\n     * @type {null|ColumnStatesManager}\n     */\n    _defineProperty(this, \"columnStatesManager\", null);\n    /**\n     * Cached column properties from plugin like i.e. `indicator`, `headerAction`.\n     *\n     * @private\n     * @type {null|PhysicalIndexToValueMap}\n     */\n    _defineProperty(this, \"columnMetaCache\", null);\n    /**\n     * Main settings key designed for the plugin.\n     *\n     * @private\n     * @type {string}\n     */\n    _defineProperty(this, \"pluginKey\", PLUGIN_KEY);\n    /**\n     * Plugin indexes cache.\n     *\n     * @private\n     * @type {null|IndexesSequence}\n     */\n    _defineProperty(this, \"indexesSequenceCache\", null);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the Handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link ColumnSorting#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[this.pluginKey];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    this.columnStatesManager = new _columnStatesManager_mjs__WEBPACK_IMPORTED_MODULE_10__[\"ColumnStatesManager\"](this.hot, `${this.pluginKey}.sortingStates`);\n    this.columnMetaCache = new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"PhysicalIndexToValueMap\"](physicalIndex => {\n      let visualIndex = this.hot.toVisualColumn(physicalIndex);\n      if (visualIndex === null) {\n        visualIndex = physicalIndex;\n      }\n      return this.getMergedPluginSettings(visualIndex);\n    });\n    this.hot.columnIndexMapper.registerMap(`${this.pluginKey}.columnMeta`, this.columnMetaCache);\n    this.addHook('afterGetColHeader', (column, TH) => _assertClassBrand(_ColumnSorting_brand, this, _onAfterGetColHeader).call(this, column, TH));\n    this.addHook('beforeOnCellMouseDown', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_ColumnSorting_brand, _this, _onBeforeOnCellMouseDown).call(_this, ...args);\n    });\n    this.addHook('afterOnCellMouseDown', (event, target) => this.onAfterOnCellMouseDown(event, target));\n    this.addHook('afterInit', () => _assertClassBrand(_ColumnSorting_brand, this, _loadOrSortBySettings).call(this));\n    this.addHook('afterLoadData', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_ColumnSorting_brand, _this, _onAfterLoadData).call(_this, ...args);\n    });\n\n    // TODO: Workaround? It should be refactored / described.\n    if (this.hot.view) {\n      _assertClassBrand(_ColumnSorting_brand, this, _loadOrSortBySettings).call(this);\n    }\n    this.registerShortcuts();\n    super.enablePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    const clearColHeader = (column, TH) => {\n      const headerSpanElement = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_12__[\"getHeaderSpanElement\"])(TH);\n      if (Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isFirstLevelColumnHeader\"])(column, TH) === false || headerSpanElement === null) {\n        return;\n      }\n      this.updateHeaderClasses(headerSpanElement);\n    };\n\n    // Changing header width and removing indicator.\n    this.hot.addHook('afterGetColHeader', clearColHeader);\n    this.hot.addHookOnce('afterViewRender', () => {\n      this.hot.removeHook('afterGetColHeader', clearColHeader);\n    });\n    this.hot.batchExecution(() => {\n      if (this.indexesSequenceCache !== null) {\n        this.hot.rowIndexMapper.setIndexesSequence(this.indexesSequenceCache.getValues());\n        this.hot.rowIndexMapper.unregisterMap(this.pluginKey);\n        this.indexesSequenceCache = null;\n      }\n    }, true);\n    this.hot.columnIndexMapper.unregisterMap(`${this.pluginKey}.columnMeta`);\n    this.columnStatesManager.destroy();\n    this.columnMetaCache = null;\n    this.columnStatesManager = null;\n    this.unregisterShortcuts();\n    super.disablePlugin();\n  }\n\n  /**\n   * Register shortcuts responsible for toggling column sorting functionality.\n   *\n   * @private\n   */\n  registerShortcuts() {\n    this.hot.getShortcutManager().getContext('grid').addShortcut({\n      keys: [['Enter']],\n      callback: () => {\n        const {\n          highlight\n        } = this.hot.getSelectedRangeLast();\n        this.sort(this.getColumnNextConfig(highlight.col));\n\n        // prevent default Enter behavior (move to the next row within a selection range)\n        return false;\n      },\n      runOnlyIf: () => {\n        var _this$hot$getSelected, _this$hot$getSelected2;\n        const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;\n        return highlight && ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.isSingle()) && this.hot.selection.isCellVisible(highlight) && highlight.row === -1 && highlight.col >= 0;\n      },\n      relativeToGroup: _shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"EDITOR_EDIT_GROUP\"],\n      position: 'before',\n      group: SHORTCUTS_GROUP\n    });\n  }\n\n  /**\n   * Unregister shortcuts responsible for toggling column sorting functionality.\n   *\n   * @private\n   */\n  unregisterShortcuts() {\n    this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);\n  }\n\n  // DIFF - MultiColumnSorting & ColumnSorting: changed function documentation.\n  /**\n   * Sorts the table by chosen columns and orders.\n   *\n   * @param {undefined|object} sortConfig Single column sort configuration. The configuration object contains `column` and `sortOrder` properties.\n   * First of them contains visual column index, the second one contains sort order (`asc` for ascending, `desc` for descending).\n   *\n   * **Note**: Please keep in mind that every call of `sort` function set an entirely new sort order. Previous sort configs aren't preserved.\n   *\n   * @example\n   * ```js\n   * // sort ascending first visual column\n   * hot.getPlugin('columnSorting').sort({ column: 0, sortOrder: 'asc' });\n   * ```\n   *\n   * @fires Hooks#beforeColumnSort\n   * @fires Hooks#afterColumnSort\n   */\n  sort(sortConfig) {\n    const currentSortConfig = this.getSortConfig();\n\n    // We always pass configs defined as an array to `beforeColumnSort` and `afterColumnSort` hooks.\n    const destinationSortConfigs = this.getNormalizedSortConfigs(sortConfig);\n    const sortPossible = this.areValidSortConfigs(destinationSortConfigs);\n    const allowSort = this.hot.runHooks('beforeColumnSort', currentSortConfig, destinationSortConfigs, sortPossible);\n    if (allowSort === false) {\n      return;\n    }\n    if (currentSortConfig.length === 0 && this.indexesSequenceCache === null) {\n      this.indexesSequenceCache = this.hot.rowIndexMapper.registerMap(this.pluginKey, new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"IndexesSequence\"]());\n      this.indexesSequenceCache.setValues(this.hot.rowIndexMapper.getIndexesSequence());\n    }\n    if (sortPossible) {\n      this.columnStatesManager.setSortStates(destinationSortConfigs);\n      this.sortByPresetSortStates(destinationSortConfigs);\n      this.saveAllSortSettings(destinationSortConfigs);\n    }\n    this.hot.runHooks('afterColumnSort', currentSortConfig, sortPossible ? destinationSortConfigs : currentSortConfig, sortPossible);\n    if (sortPossible) {\n      this.hot.render();\n      // TODO: Workaround? This triggers fast redraw. One test won't pass after removal.\n      // It should be refactored / described.\n      this.hot.forceFullRender = false;\n      this.hot.view.render();\n    }\n  }\n\n  /**\n   * Clear the sort performed on the table.\n   */\n  clearSort() {\n    this.sort([]);\n  }\n\n  /**\n   * Checks if the table is sorted (any column have to be sorted).\n   *\n   * @returns {boolean}\n   */\n  isSorted() {\n    return this.enabled && !this.columnStatesManager.isListOfSortedColumnsEmpty();\n  }\n\n  /**\n   * Get sort configuration for particular column or for all sorted columns. Objects contain `column` and `sortOrder` properties.\n   *\n   * **Note**: Please keep in mind that returned objects expose **visual** column index under the `column` key. They are handled by the `sort` function.\n   *\n   * @param {number} [column] Visual column index.\n   * @returns {undefined|object|Array}\n   */\n  getSortConfig(column) {\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isDefined\"])(column)) {\n      return this.columnStatesManager.getColumnSortState(column);\n    }\n    return this.columnStatesManager.getSortStates();\n  }\n\n  /**\n   * @description\n   * Warn: Useful mainly for providing server side sort implementation (see in the example below). It doesn't sort the data set. It just sets sort configuration for all sorted columns.\n   * Note: Please keep in mind that this method doesn't re-render the table.\n   *\n   * @example\n   * ```js\n   * beforeColumnSort: function(currentSortConfig, destinationSortConfigs) {\n   *   const columnSortPlugin = this.getPlugin('columnSorting');\n   *\n   *   columnSortPlugin.setSortConfig(destinationSortConfigs);\n   *\n   *   // const newData = ... // Calculated data set, ie. from an AJAX call.\n   *\n   *   this.loadData(newData); // Load new data set and re-render the table.\n   *\n   *   return false; // The blockade for the default sort action.\n   * }\n   * ```\n   *\n   * @param {undefined|object|Array} sortConfig Single column sort configuration or full sort configuration (for all sorted columns).\n   * The configuration object contains `column` and `sortOrder` properties. First of them contains visual column index, the second one contains\n   * sort order (`asc` for ascending, `desc` for descending).\n   */\n  setSortConfig(sortConfig) {\n    // We always set configs defined as an array.\n    const destinationSortConfigs = this.getNormalizedSortConfigs(sortConfig);\n    if (this.areValidSortConfigs(destinationSortConfigs)) {\n      this.columnStatesManager.setSortStates(destinationSortConfigs);\n    }\n  }\n\n  /**\n   * Get normalized sort configs.\n   *\n   * @private\n   * @param {object|Array} [sortConfig=[]] Single column sort configuration or full sort configuration (for all sorted columns).\n   * The configuration object contains `column` and `sortOrder` properties. First of them contains visual column index, the second one contains\n   * sort order (`asc` for ascending, `desc` for descending).\n   * @returns {Array}\n   */\n  getNormalizedSortConfigs() {\n    let sortConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    if (Array.isArray(sortConfig)) {\n      return sortConfig.slice(0, 1);\n    }\n    return [sortConfig];\n  }\n\n  /**\n   * Get if sort configs are valid.\n   *\n   * @private\n   * @param {Array} sortConfigs Sort configuration for all sorted columns. Objects contain `column` and `sortOrder` properties.\n   * @returns {boolean}\n   */\n  areValidSortConfigs(sortConfigs) {\n    const numberOfColumns = this.hot.countCols();\n\n    // We don't translate visual indexes to physical indexes.\n    return Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_12__[\"areValidSortStates\"])(sortConfigs) && sortConfigs.every(_ref => {\n      let {\n        column\n      } = _ref;\n      return column <= numberOfColumns && column >= 0;\n    });\n  }\n\n  /**\n   * Saves all sorting settings. Saving works only when {@link Options#persistentState} option is enabled.\n   *\n   * @param {Array} sortConfigs Sort configuration for all sorted columns. Objects contain `column` and `sortOrder` properties.\n   *\n   * @private\n   * @fires Hooks#persistentStateSave\n   */\n  saveAllSortSettings(sortConfigs) {\n    const allSortSettings = this.columnStatesManager.getAllColumnsProperties();\n    const translateColumnToPhysical = _ref2 => {\n      let {\n        column: visualColumn,\n        ...restOfProperties\n      } = _ref2;\n      return {\n        column: this.hot.toPhysicalColumn(visualColumn),\n        ...restOfProperties\n      };\n    };\n    allSortSettings.initialConfig = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_6__[\"arrayMap\"])(sortConfigs, translateColumnToPhysical);\n    this.hot.runHooks('persistentStateSave', 'columnSorting', allSortSettings);\n  }\n\n  /**\n   * Get all saved sorting settings. Loading works only when {@link Options#persistentState} option is enabled.\n   *\n   * @private\n   * @returns {object} Previously saved sort settings.\n   *\n   * @fires Hooks#persistentStateLoad\n   */\n  getAllSavedSortSettings() {\n    const storedAllSortSettings = {};\n    this.hot.runHooks('persistentStateLoad', 'columnSorting', storedAllSortSettings);\n    const allSortSettings = storedAllSortSettings.value;\n    const translateColumnToVisual = _ref3 => {\n      let {\n        column: physicalColumn,\n        ...restOfProperties\n      } = _ref3;\n      return {\n        column: this.hot.toVisualColumn(physicalColumn),\n        ...restOfProperties\n      };\n    };\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isDefined\"])(allSortSettings) && Array.isArray(allSortSettings.initialConfig)) {\n      allSortSettings.initialConfig = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_6__[\"arrayMap\"])(allSortSettings.initialConfig, translateColumnToVisual);\n    }\n    return allSortSettings;\n  }\n\n  /**\n   * Get next sort configuration for particular column. Object contain `column` and `sortOrder` properties.\n   *\n   * **Note**: Please keep in mind that returned object expose **visual** column index under the `column` key.\n   *\n   * @private\n   * @param {number} column Visual column index.\n   * @returns {undefined|object}\n   */\n  getColumnNextConfig(column) {\n    const sortOrder = this.columnStatesManager.getSortOrderOfColumn(column);\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isDefined\"])(sortOrder)) {\n      const nextSortOrder = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_12__[\"getNextSortOrder\"])(sortOrder);\n      if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isDefined\"])(nextSortOrder)) {\n        return {\n          column,\n          sortOrder: nextSortOrder\n        };\n      }\n      return;\n    }\n    const nrOfColumns = this.hot.countCols();\n    if (Number.isInteger(column) && column >= 0 && column < nrOfColumns) {\n      return {\n        column,\n        sortOrder: Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_12__[\"getNextSortOrder\"])()\n      };\n    }\n  }\n\n  /**\n   * Get sort configuration with \"next order\" for particular column.\n   *\n   * @private\n   * @param {number} columnToChange Visual column index of column which order will be changed.\n   * @param {string} strategyId ID of strategy. Possible values: 'append' and 'replace'. The first one\n   * change order of particular column and change it's position in the sort queue to the last one. The second one\n   * just change order of particular column.\n   *\n   * **Note**: Please keep in mind that returned objects expose **visual** column index under the `column` key.\n   *\n   * @returns {Array}\n   */\n  getNextSortConfig(columnToChange) {\n    let strategyId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : APPEND_COLUMN_CONFIG_STRATEGY;\n    const indexOfColumnToChange = this.columnStatesManager.getIndexOfColumnInSortQueue(columnToChange);\n    const isColumnSorted = indexOfColumnToChange !== -1;\n    const currentSortConfig = this.getSortConfig();\n    const nextColumnConfig = this.getColumnNextConfig(columnToChange);\n    if (isColumnSorted) {\n      if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isUndefined\"])(nextColumnConfig)) {\n        return [...currentSortConfig.slice(0, indexOfColumnToChange), ...currentSortConfig.slice(indexOfColumnToChange + 1)];\n      }\n      if (strategyId === APPEND_COLUMN_CONFIG_STRATEGY) {\n        return [...currentSortConfig.slice(0, indexOfColumnToChange), ...currentSortConfig.slice(indexOfColumnToChange + 1), nextColumnConfig];\n      } else if (strategyId === REPLACE_COLUMN_CONFIG_STRATEGY) {\n        return [...currentSortConfig.slice(0, indexOfColumnToChange), nextColumnConfig, ...currentSortConfig.slice(indexOfColumnToChange + 1)];\n      }\n    }\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isDefined\"])(nextColumnConfig)) {\n      return currentSortConfig.concat(nextColumnConfig);\n    }\n    return currentSortConfig;\n  }\n\n  /**\n   * Get plugin's column config for the specified column index.\n   *\n   * @private\n   * @param {object} columnConfig Configuration inside `columns` property for the specified column index.\n   * @returns {object}\n   */\n  getPluginColumnConfig(columnConfig) {\n    if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isObject\"])(columnConfig)) {\n      const pluginColumnConfig = columnConfig[this.pluginKey];\n      if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isObject\"])(pluginColumnConfig)) {\n        return pluginColumnConfig;\n      }\n    }\n    return {};\n  }\n\n  /**\n   * Get plugin settings related properties, properly merged from cascade settings.\n   *\n   * @private\n   * @param {number} column Visual column index.\n   * @returns {object}\n   */\n  getMergedPluginSettings(column) {\n    const pluginMainSettings = this.hot.getSettings()[this.pluginKey];\n    const storedColumnProperties = this.columnStatesManager.getAllColumnsProperties();\n    const cellMeta = this.hot.getCellMeta(0, column);\n    const columnMeta = Object.getPrototypeOf(cellMeta);\n    if (Array.isArray(columnMeta.columns)) {\n      return Object.assign(storedColumnProperties, pluginMainSettings, this.getPluginColumnConfig(columnMeta.columns[column]));\n    } else if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isFunction\"])(columnMeta.columns)) {\n      return Object.assign(storedColumnProperties, pluginMainSettings, this.getPluginColumnConfig(columnMeta.columns(column)));\n    }\n    return Object.assign(storedColumnProperties, pluginMainSettings);\n  }\n\n  /**\n   * Get copy of settings for first cell in the column.\n   *\n   * @private\n   * @param {number} column Visual column index.\n   * @returns {object}\n   */\n  // TODO: Workaround. Inheriting of non-primitive cell meta values doesn't work. Instead of getting properties from column meta we call this function.\n  // TODO: Remove test named: \"should not break the dataset when inserted new row\" (#5431).\n  getFirstCellSettings(column) {\n    const cellMeta = this.hot.getCellMeta(0, column);\n    const cellMetaCopy = Object.create(cellMeta);\n    cellMetaCopy[this.pluginKey] = this.columnMetaCache.getValueAtIndex(this.hot.toPhysicalColumn(column));\n    return cellMetaCopy;\n  }\n\n  /**\n   * Get number of rows which should be sorted.\n   *\n   * @private\n   * @param {number} numberOfRows Total number of displayed rows.\n   * @returns {number}\n   */\n  getNumberOfRowsToSort(numberOfRows) {\n    const settings = this.hot.getSettings();\n\n    // `maxRows` option doesn't take into account `minSpareRows` option in this case.\n    if (settings.maxRows <= numberOfRows) {\n      return settings.maxRows;\n    }\n    return numberOfRows - settings.minSpareRows;\n  }\n\n  /**\n   * Performs the sorting using a stable sort function basing on internal state of sorting.\n   *\n   * @param {Array} sortConfigs Sort configuration for all sorted columns. Objects contain `column` and `sortOrder` properties.\n   * @private\n   */\n  sortByPresetSortStates(sortConfigs) {\n    this.hot.rowIndexMapper.setIndexesSequence(this.indexesSequenceCache.getValues());\n    if (sortConfigs.length === 0) {\n      return;\n    }\n    const indexesWithData = [];\n    const numberOfRows = this.hot.countRows();\n    const getDataForSortedColumns = visualRowIndex => Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_6__[\"arrayMap\"])(sortConfigs, sortConfig => this.hot.getDataAtCell(visualRowIndex, sortConfig.column));\n    for (let visualRowIndex = 0; visualRowIndex < this.getNumberOfRowsToSort(numberOfRows); visualRowIndex += 1) {\n      indexesWithData.push([this.hot.toPhysicalRow(visualRowIndex)].concat(getDataForSortedColumns(visualRowIndex)));\n    }\n    const indexesBefore = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_6__[\"arrayMap\"])(indexesWithData, indexWithData => indexWithData[0]);\n    Object(_sortService_index_mjs__WEBPACK_IMPORTED_MODULE_15__[\"sort\"])(indexesWithData, this.pluginKey, Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_6__[\"arrayMap\"])(sortConfigs, sortConfig => sortConfig.sortOrder), Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_6__[\"arrayMap\"])(sortConfigs, sortConfig => this.getFirstCellSettings(sortConfig.column)));\n\n    // Append spareRows\n    for (let visualRowIndex = indexesWithData.length; visualRowIndex < numberOfRows; visualRowIndex += 1) {\n      indexesWithData.push([visualRowIndex].concat(getDataForSortedColumns(visualRowIndex)));\n    }\n    const indexesAfter = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_6__[\"arrayMap\"])(indexesWithData, indexWithData => indexWithData[0]);\n    const indexMapping = new Map(Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_6__[\"arrayMap\"])(indexesBefore, (indexBefore, indexInsideArray) => [indexBefore, indexesAfter[indexInsideArray]]));\n    const newIndexesSequence = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_6__[\"arrayMap\"])(this.hot.rowIndexMapper.getIndexesSequence(), physicalIndex => {\n      if (indexMapping.has(physicalIndex)) {\n        return indexMapping.get(physicalIndex);\n      }\n      return physicalIndex;\n    });\n    this.hot.rowIndexMapper.setIndexesSequence(newIndexesSequence);\n  }\n  /**\n   * Sort the table by provided configuration.\n   *\n   * @private\n   * @param {object} allSortSettings All sort config settings. Object may contain `initialConfig`, `indicator`,\n   * `sortEmptyCells`, `headerAction` and `compareFunctionFactory` properties.\n   */\n  sortBySettings(allSortSettings) {\n    if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isObject\"])(allSortSettings)) {\n      this.columnStatesManager.updateAllColumnsProperties(allSortSettings);\n      const initialConfig = allSortSettings.initialConfig;\n      if (Array.isArray(initialConfig) || Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isObject\"])(initialConfig)) {\n        this.sort(initialConfig);\n      }\n    } else {\n      // Extra render for headers. Their width may change.\n      this.hot.render();\n    }\n  }\n\n  /**\n   * Callback for the `onAfterGetColHeader` hook. Adds column sorting CSS classes.\n   *\n   * @param {number} column Visual column index.\n   * @param {Element} TH TH HTML element.\n   */\n\n  /**\n   * Update header classes.\n   *\n   * @private\n   * @param {HTMLElement} headerSpanElement Header span element.\n   * @param {...*} args Extra arguments for helpers.\n   */\n  updateHeaderClasses(headerSpanElement) {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"removeClass\"])(headerSpanElement, Object(_domHelpers_mjs__WEBPACK_IMPORTED_MODULE_13__[\"getClassesToRemove\"])(headerSpanElement));\n    if (this.enabled !== false) {\n      for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n        args[_key3 - 1] = arguments[_key3];\n      }\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(headerSpanElement, Object(_domHelpers_mjs__WEBPACK_IMPORTED_MODULE_13__[\"getClassesToAdd\"])(...args));\n    }\n  }\n\n  /**\n   * Overwriting base plugin's `onUpdateSettings` method. Please keep in mind that `onAfterUpdateSettings` isn't called\n   * for `updateSettings` in specific situations.\n   *\n   * @private\n   * @param {object} newSettings New settings object.\n   */\n  onUpdateSettings(newSettings) {\n    super.onUpdateSettings();\n    if (this.columnMetaCache !== null) {\n      // Column meta cache base on settings, thus we should re-init the map.\n      this.columnMetaCache.init(this.hot.columnIndexMapper.getNumberOfIndexes());\n    }\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isDefined\"])(newSettings[this.pluginKey])) {\n      this.sortBySettings(newSettings[this.pluginKey]);\n    }\n  }\n\n  /**\n   * Callback for the `afterLoadData` hook.\n   *\n   * @param {boolean} initialLoad Flag that determines whether the data has been loaded during the initialization.\n   */\n\n  /**\n   * Indicates if clickable header was clicked.\n   *\n   * @private\n   * @param {MouseEvent} event The `mousedown` event.\n   * @param {number} column Visual column index.\n   * @returns {boolean}\n   */\n  wasClickableHeaderClicked(event, column) {\n    const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];\n    const headerActionEnabled = pluginSettingsForColumn.headerAction;\n    return headerActionEnabled && Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasClass\"])(event.target, _utils_mjs__WEBPACK_IMPORTED_MODULE_12__[\"HEADER_SPAN_CLASS\"]);\n  }\n\n  /**\n   * Changes the behavior of selection / dragging.\n   *\n   * @param {MouseEvent} event The `mousedown` event.\n   * @param {CellCoords} coords Visual coordinates.\n   * @param {HTMLElement} TD The cell element.\n   * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains\n   *                            a boolean value that allows or disallows changing the selection for that particular area.\n   */\n\n  /**\n   * Callback for the `onAfterOnCellMouseDown` hook.\n   *\n   * @private\n   * @param {Event} event Event which are provided by hook.\n   * @param {CellCoords} coords Visual coords of the selected cell.\n   */\n  onAfterOnCellMouseDown(event, coords) {\n    if (Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_12__[\"wasHeaderClickedProperly\"])(coords.row, coords.col, event) === false) {\n      return;\n    }\n    if (this.wasClickableHeaderClicked(event, coords.col)) {\n      if (this.hot.getShortcutManager().isCtrlPressed()) {\n        this.hot.deselectCell();\n        this.hot.selectColumns(coords.col);\n      }\n      this.sort(this.getColumnNextConfig(coords.col));\n    }\n  }\n\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    var _this$columnStatesMan;\n    // TODO: Probably not supported yet by ESLint: https://github.com/eslint/eslint/issues/11045\n    // eslint-disable-next-line no-unused-expressions\n    (_this$columnStatesMan = this.columnStatesManager) === null || _this$columnStatesMan === void 0 || _this$columnStatesMan.destroy();\n    super.destroy();\n  }\n}\nfunction _loadOrSortBySettings() {\n  const storedAllSortSettings = this.getAllSavedSortSettings();\n  if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isObject\"])(storedAllSortSettings)) {\n    this.sortBySettings(storedAllSortSettings);\n  } else {\n    const allSortSettings = this.hot.getSettings()[this.pluginKey];\n    this.sortBySettings(allSortSettings);\n  }\n}\nfunction _onAfterGetColHeader(column, TH) {\n  const headerSpanElement = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_12__[\"getHeaderSpanElement\"])(TH);\n  if (Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isFirstLevelColumnHeader\"])(column, TH) === false || headerSpanElement === null) {\n    return;\n  }\n  const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];\n  const showSortIndicator = pluginSettingsForColumn.indicator;\n  const headerActionEnabled = pluginSettingsForColumn.headerAction;\n  this.updateHeaderClasses(headerSpanElement, this.columnStatesManager, column, showSortIndicator, headerActionEnabled);\n  if (this.hot.getSettings().ariaTags) {\n    const currentSortState = this.columnStatesManager.getSortOrderOfColumn(column);\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setAttribute\"])(TH, ...Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_16__[\"A11Y_SORT\"])(currentSortState ? `${currentSortState}ending` : 'none'));\n  }\n}\nfunction _onAfterLoadData(initialLoad) {\n  if (initialLoad === true) {\n    // TODO: Workaround? It should be refactored / described.\n    if (this.hot.view) {\n      _assertClassBrand(_ColumnSorting_brand, this, _loadOrSortBySettings).call(this);\n    }\n  }\n}\nfunction _onBeforeOnCellMouseDown(event, coords, TD, controller) {\n  if (Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_12__[\"wasHeaderClickedProperly\"])(coords.row, coords.col, event) === false) {\n    return;\n  }\n  if (this.wasClickableHeaderClicked(event, coords.col) && this.hot.getShortcutManager().isCtrlPressed()) {\n    controller.column = true;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSorting/columnSorting.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSorting/columnStatesManager.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSorting/columnStatesManager.mjs ***!
  \*********************************************************************************/
/*! exports provided: ColumnStatesManager */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ColumnStatesManager\", function() { return ColumnStatesManager; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\nconst inheritedColumnProperties = ['sortEmptyCells', 'indicator', 'headerAction', 'compareFunctionFactory'];\nconst SORT_EMPTY_CELLS_DEFAULT = false;\nconst SHOW_SORT_INDICATOR_DEFAULT = true;\nconst HEADER_ACTION_DEFAULT = true;\n\n/**\n * Store and manages states of sorted columns.\n *\n * @private\n * @class ColumnStatesManager\n */\nclass ColumnStatesManager {\n  constructor(hot, mapName) {\n    /**\n     * Handsontable instance.\n     *\n     * @type {Core}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * Index map storing sorting states for every column. ColumnStatesManager write and read to/from this element.\n     *\n     * @type {LinkedPhysicalIndexToValueMap}\n     */\n    _defineProperty(this, \"sortingStates\", new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"LinkedPhysicalIndexToValueMap\"]());\n    /**\n     * Determines whether we should sort empty cells.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"sortEmptyCells\", SORT_EMPTY_CELLS_DEFAULT);\n    /**\n     * Determines whether indicator should be visible (for sorted columns).\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"indicator\", SHOW_SORT_INDICATOR_DEFAULT);\n    /**\n     * Determines whether click on the header perform sorting.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"headerAction\", HEADER_ACTION_DEFAULT);\n    /**\n     * Determines compare function factory. Method get as parameters `sortOder` and `columnMeta` and return compare function.\n     */\n    _defineProperty(this, \"compareFunctionFactory\", void 0);\n    /**\n     * Name of map storing sorting states. Required for unique name (PR #7440 introduced it). It's needed as\n     * both ColumnSorting and MultiColumnSorting plugins create state manager and as a consequence register maps.\n     * Objects are destroyed in strange order as the updateSettings doesn't work well.\n     */\n    _defineProperty(this, \"mapName\", void 0);\n    this.hot = hot;\n    this.mapName = mapName;\n    this.hot.columnIndexMapper.registerMap(mapName, this.sortingStates);\n  }\n\n  /**\n   * Update column properties which affect the sorting result.\n   *\n   * **Note**: All column properties can be overwritten by {@link Options#columns} option.\n   *\n   * @param {object} allSortSettings Column sorting plugin's configuration object.\n   */\n  updateAllColumnsProperties(allSortSettings) {\n    if (!Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isObject\"])(allSortSettings)) {\n      return;\n    }\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"objectEach\"])(allSortSettings, (newValue, propertyName) => {\n      if (inheritedColumnProperties.includes(propertyName)) {\n        this[propertyName] = newValue;\n      }\n    });\n  }\n\n  /**\n   * Get all column properties which affect the sorting result.\n   *\n   * @returns {object}\n   */\n  getAllColumnsProperties() {\n    const columnProperties = {\n      sortEmptyCells: this.sortEmptyCells,\n      indicator: this.indicator,\n      headerAction: this.headerAction\n    };\n    if (typeof this.compareFunctionFactory === 'function') {\n      columnProperties.compareFunctionFactory = this.compareFunctionFactory;\n    }\n    return columnProperties;\n  }\n\n  /**\n   * Get sort order of column.\n   *\n   * @param {number} searchedColumn Visual column index.\n   * @returns {string|undefined} Sort order (`asc` for ascending, `desc` for descending and undefined for not sorted).\n   */\n  getSortOrderOfColumn(searchedColumn) {\n    var _this$sortingStates$g;\n    return (_this$sortingStates$g = this.sortingStates.getValueAtIndex(this.hot.toPhysicalColumn(searchedColumn))) === null || _this$sortingStates$g === void 0 ? void 0 : _this$sortingStates$g.sortOrder;\n  }\n\n  /**\n   * Get order of particular column in the states queue.\n   *\n   * @param {number} column Visual column index.\n   * @returns {number}\n   */\n  getIndexOfColumnInSortQueue(column) {\n    column = this.hot.toPhysicalColumn(column);\n    return this.sortingStates.getEntries().findIndex(_ref => {\n      let [physicalColumn] = _ref;\n      return physicalColumn === column;\n    });\n  }\n\n  /**\n   * Get number of sorted columns.\n   *\n   * @returns {number}\n   */\n  getNumberOfSortedColumns() {\n    return this.sortingStates.getLength();\n  }\n\n  /**\n   * Get if list of sorted columns is empty.\n   *\n   * @returns {boolean}\n   */\n  isListOfSortedColumnsEmpty() {\n    return this.getNumberOfSortedColumns() === 0;\n  }\n\n  /**\n   * Get if particular column is sorted.\n   *\n   * @param {number} column Visual column index.\n   * @returns {boolean}\n   */\n  isColumnSorted(column) {\n    return Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isObject\"])(this.sortingStates.getValueAtIndex(this.hot.toPhysicalColumn(column)));\n  }\n\n  /**\n   * Queue of sort states containing sorted columns and their orders (Array of objects containing `column` and `sortOrder` properties).\n   *\n   * **Note**: Please keep in mind that returned objects expose **visual** column index under the `column` key.\n   *\n   * @returns {Array<object>}\n   */\n  getSortStates() {\n    if (this.sortingStates === null) {\n      return [];\n    }\n    const sortingStatesQueue = this.sortingStates.getEntries();\n    return sortingStatesQueue.map(_ref2 => {\n      let [physicalColumn, value] = _ref2;\n      return {\n        column: this.hot.toVisualColumn(physicalColumn),\n        ...value\n      };\n    });\n  }\n\n  /**\n   * Get sort state for particular column. Object contains `column` and `sortOrder` properties.\n   *\n   * **Note**: Please keep in mind that returned objects expose **visual** column index under the `column` key.\n   *\n   * @param {number} column Visual column index.\n   * @returns {object|undefined}\n   */\n  getColumnSortState(column) {\n    const sortOrder = this.getSortOrderOfColumn(column);\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isDefined\"])(sortOrder)) {\n      return {\n        column,\n        sortOrder\n      };\n    }\n  }\n\n  /**\n   * Set all column states.\n   *\n   * @param {Array} sortStates Sort states.\n   */\n  setSortStates(sortStates) {\n    this.sortingStates.clear();\n    for (let i = 0; i < sortStates.length; i += 1) {\n      this.sortingStates.setValueAtIndex(this.hot.toPhysicalColumn(sortStates[i].column), {\n        sortOrder: sortStates[i].sortOrder\n      });\n    }\n  }\n\n  /**\n   * Destroy the state manager.\n   */\n  destroy() {\n    this.hot.columnIndexMapper.unregisterMap(this.mapName);\n    this.sortingStates = null;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSorting/columnStatesManager.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSorting/domHelpers.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSorting/domHelpers.mjs ***!
  \************************************************************************/
/*! exports provided: getClassesToAdd, getClassesToRemove */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getClassesToAdd\", function() { return getClassesToAdd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getClassesToRemove\", function() { return getClassesToRemove; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/plugins/columnSorting/utils.mjs\");\n\n\n\nconst HEADER_CLASS_ASC_SORT = 'ascending';\nconst HEADER_CLASS_DESC_SORT = 'descending';\nconst HEADER_CLASS_INDICATOR_DISABLED = 'indicatorDisabled';\nconst HEADER_SORT_CLASS = 'columnSorting';\nconst HEADER_ACTION_CLASS = 'sortAction';\nconst orderToCssClass = new Map([[_utils_mjs__WEBPACK_IMPORTED_MODULE_2__[\"ASC_SORT_STATE\"], HEADER_CLASS_ASC_SORT], [_utils_mjs__WEBPACK_IMPORTED_MODULE_2__[\"DESC_SORT_STATE\"], HEADER_CLASS_DESC_SORT]]);\n\n/**\n * Get CSS classes which should be added to particular column header.\n *\n * @param {object} columnStatesManager Instance of column state manager.\n * @param {number} column Visual column index.\n * @param {boolean} showSortIndicator Indicates if indicator should be shown for the particular column.\n * @param {boolean} headerAction Indicates if header click to sort should be possible.\n * @returns {Array} Array of CSS classes.\n */\nfunction getClassesToAdd(columnStatesManager, column, showSortIndicator, headerAction) {\n  const cssClasses = [HEADER_SORT_CLASS];\n  if (headerAction) {\n    cssClasses.push(HEADER_ACTION_CLASS);\n  }\n  if (showSortIndicator === false) {\n    cssClasses.push(HEADER_CLASS_INDICATOR_DISABLED);\n    return cssClasses;\n  }\n  const columnOrder = columnStatesManager.getSortOrderOfColumn(column);\n  if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(columnOrder)) {\n    cssClasses.push(orderToCssClass.get(columnOrder));\n  }\n  return cssClasses;\n}\n\n/**\n * Get CSS classes which should be removed from column header.\n *\n * @returns {Array} Array of CSS classes.\n */\nfunction getClassesToRemove() {\n  return Array.from(orderToCssClass.values()).concat(HEADER_ACTION_CLASS, HEADER_CLASS_INDICATOR_DISABLED, HEADER_SORT_CLASS);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSorting/domHelpers.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSorting/index.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSorting/index.mjs ***!
  \*******************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ColumnSorting, APPEND_COLUMN_CONFIG_STRATEGY, REPLACE_COLUMN_CONFIG_STRATEGY */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _columnSorting_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./columnSorting.mjs */ \"./node_modules/handsontable/plugins/columnSorting/columnSorting.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _columnSorting_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _columnSorting_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ColumnSorting\", function() { return _columnSorting_mjs__WEBPACK_IMPORTED_MODULE_0__[\"ColumnSorting\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"APPEND_COLUMN_CONFIG_STRATEGY\", function() { return _columnSorting_mjs__WEBPACK_IMPORTED_MODULE_0__[\"APPEND_COLUMN_CONFIG_STRATEGY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"REPLACE_COLUMN_CONFIG_STRATEGY\", function() { return _columnSorting_mjs__WEBPACK_IMPORTED_MODULE_0__[\"REPLACE_COLUMN_CONFIG_STRATEGY\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSorting/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSorting/rootComparator.mjs":
/*!****************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSorting/rootComparator.mjs ***!
  \****************************************************************************/
/*! exports provided: rootComparator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rootComparator\", function() { return rootComparator; });\n/* harmony import */ var _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sortService/index.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortService/index.mjs\");\n\n/**\n * Sort comparator handled by conventional sort algorithm.\n *\n * @param {Array} sortingOrders Sort orders (`asc` for ascending, `desc` for descending).\n * @param {Array} columnMetas Column meta objects.\n * @returns {Function}\n */\nfunction rootComparator(sortingOrders, columnMetas) {\n  return function (rowIndexWithValues, nextRowIndexWithValues) {\n    // We sort array of arrays. Single array is in form [rowIndex, ...values].\n    // We compare just values, stored at second index of array.\n    const [, ...values] = rowIndexWithValues;\n    const [, ...nextValues] = nextRowIndexWithValues;\n    return function getCompareResult(column) {\n      const sortingOrder = sortingOrders[column];\n      const columnMeta = columnMetas[column];\n      const value = values[column];\n      const nextValue = nextValues[column];\n      const pluginSettings = columnMeta.columnSorting;\n      const compareFunctionFactory = pluginSettings.compareFunctionFactory ? pluginSettings.compareFunctionFactory : Object(_sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getCompareFunctionFactory\"])(columnMeta.type);\n      const compareResult = compareFunctionFactory(sortingOrder, columnMeta, pluginSettings)(value, nextValue);\n\n      // DIFF - MultiColumnSorting & ColumnSorting: removed iteration through next sorted columns.\n\n      return compareResult;\n    }(0);\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSorting/rootComparator.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSorting/sortFunction/checkbox.mjs":
/*!***********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSorting/sortFunction/checkbox.mjs ***!
  \***********************************************************************************/
/*! exports provided: compareFunctionFactory, COLUMN_DATA_TYPE */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"compareFunctionFactory\", function() { return compareFunctionFactory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COLUMN_DATA_TYPE\", function() { return COLUMN_DATA_TYPE; });\n/* harmony import */ var _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../sortService/index.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortService/index.mjs\");\n/* harmony import */ var _sortFunction_default_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../sortFunction/default.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortFunction/default.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n\n\n\n/**\n * Checkbox sorting compare function factory. Method get as parameters `sortOrder` and `columnMeta` and return compare function.\n *\n * @param {string} sortOrder Sort order (`asc` for ascending, `desc` for descending).\n * @param {object} columnMeta Column meta object.\n * @param {object} columnPluginSettings Plugin settings for the column.\n * @returns {Function} The compare function.\n */\nfunction compareFunctionFactory(sortOrder, columnMeta, columnPluginSettings) {\n  const checkedTemplate = columnMeta.checkedTemplate;\n  const uncheckedTemplate = columnMeta.uncheckedTemplate;\n  const {\n    sortEmptyCells\n  } = columnPluginSettings;\n  return function (value, nextValue) {\n    const isEmptyValue = Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isEmpty\"])(value);\n    const isEmptyNextValue = Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isEmpty\"])(nextValue);\n    const unifiedValue = isEmptyValue ? uncheckedTemplate : value;\n    const unifiedNextValue = isEmptyNextValue ? uncheckedTemplate : nextValue;\n    const isValueFromTemplate = unifiedValue === uncheckedTemplate || unifiedValue === checkedTemplate;\n    const isNextValueFromTemplate = unifiedNextValue === uncheckedTemplate || unifiedNextValue === checkedTemplate;\n\n    // As an empty cell we recognize cells with undefined, null and '' values.\n    if (sortEmptyCells === false) {\n      if (isEmptyValue && isEmptyNextValue === false) {\n        return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FIRST_AFTER_SECOND\"];\n      }\n      if (isEmptyValue === false && isEmptyNextValue) {\n        return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FIRST_BEFORE_SECOND\"];\n      }\n    }\n\n    // 1st value === #BAD_VALUE#\n    if (isValueFromTemplate === false && isNextValueFromTemplate) {\n      return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FIRST_BEFORE_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FIRST_AFTER_SECOND\"];\n    }\n\n    // 2nd value === #BAD_VALUE#\n    if (isValueFromTemplate && isNextValueFromTemplate === false) {\n      return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FIRST_AFTER_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FIRST_BEFORE_SECOND\"];\n    }\n\n    // 1st value === #BAD_VALUE# && 2nd value === #BAD_VALUE#\n    if (isValueFromTemplate === false && isNextValueFromTemplate === false) {\n      // Sorting by values (not just by visual representation).\n      return Object(_sortFunction_default_mjs__WEBPACK_IMPORTED_MODULE_1__[\"compareFunctionFactory\"])(sortOrder, columnMeta, columnPluginSettings)(value, nextValue);\n    }\n    if (unifiedValue === uncheckedTemplate && unifiedNextValue === checkedTemplate) {\n      return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FIRST_BEFORE_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FIRST_AFTER_SECOND\"];\n    }\n    if (unifiedValue === checkedTemplate && unifiedNextValue === uncheckedTemplate) {\n      return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FIRST_AFTER_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FIRST_BEFORE_SECOND\"];\n    }\n    return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"DO_NOT_SWAP\"];\n  };\n}\nconst COLUMN_DATA_TYPE = 'checkbox';\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSorting/sortFunction/checkbox.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSorting/sortFunction/date.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSorting/sortFunction/date.mjs ***!
  \*******************************************************************************/
/*! exports provided: compareFunctionFactory, COLUMN_DATA_TYPE */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"compareFunctionFactory\", function() { return compareFunctionFactory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COLUMN_DATA_TYPE\", function() { return COLUMN_DATA_TYPE; });\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/plugins/columnSorting/utils.mjs\");\n\n/**\n * Date sorting compare function factory. Method get as parameters `sortOrder` and `columnMeta` and return compare function.\n *\n * @param {string} sortOrder Sort order (`asc` for ascending, `desc` for descending).\n * @param {object} columnMeta Column meta object.\n * @param {object} columnPluginSettings Plugin settings for the column.\n * @returns {Function} The compare function.\n */\nfunction compareFunctionFactory(sortOrder, columnMeta, columnPluginSettings) {\n  return Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"createDateTimeCompareFunction\"])(sortOrder, columnMeta.dateFormat, columnPluginSettings);\n}\nconst COLUMN_DATA_TYPE = 'date';\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSorting/sortFunction/date.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSorting/sortFunction/default.mjs":
/*!**********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSorting/sortFunction/default.mjs ***!
  \**********************************************************************************/
/*! exports provided: compareFunctionFactory, COLUMN_DATA_TYPE */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"compareFunctionFactory\", function() { return compareFunctionFactory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COLUMN_DATA_TYPE\", function() { return COLUMN_DATA_TYPE; });\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../sortService/index.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortService/index.mjs\");\n\n\n/**\n * Default sorting compare function factory. Method get as parameters `sortOrder` and `columnMeta` and return compare function.\n *\n * @param {string} sortOrder Sort order (`asc` for ascending, `desc` for descending).\n * @param {object} columnMeta Column meta object.\n * @param {object} columnPluginSettings Plugin settings for the column.\n * @returns {Function} The compare function.\n */\nfunction compareFunctionFactory(sortOrder, columnMeta, columnPluginSettings) {\n  const locale = columnMeta.locale;\n  return function (value, nextValue) {\n    const {\n      sortEmptyCells\n    } = columnPluginSettings;\n    if (typeof value === 'string') {\n      value = value.toLocaleLowerCase(locale);\n    }\n    if (typeof nextValue === 'string') {\n      nextValue = nextValue.toLocaleLowerCase(locale);\n    }\n    if (value === nextValue) {\n      return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"DO_NOT_SWAP\"];\n    }\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isEmpty\"])(value)) {\n      if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isEmpty\"])(nextValue)) {\n        return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"DO_NOT_SWAP\"];\n      }\n\n      // Just fist value is empty and `sortEmptyCells` option was set\n      if (sortEmptyCells) {\n        return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_BEFORE_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_AFTER_SECOND\"];\n      }\n      return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_AFTER_SECOND\"];\n    }\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isEmpty\"])(nextValue)) {\n      // Just second value is empty and `sortEmptyCells` option was set\n      if (sortEmptyCells) {\n        return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_AFTER_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_BEFORE_SECOND\"];\n      }\n      return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_BEFORE_SECOND\"];\n    }\n    if (isNaN(value) && !isNaN(nextValue)) {\n      return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_AFTER_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_BEFORE_SECOND\"];\n    } else if (!isNaN(value) && isNaN(nextValue)) {\n      return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_BEFORE_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_AFTER_SECOND\"];\n    } else if (!(isNaN(value) || isNaN(nextValue))) {\n      value = parseFloat(value);\n      nextValue = parseFloat(nextValue);\n    }\n    if (value < nextValue) {\n      return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_BEFORE_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_AFTER_SECOND\"];\n    }\n    if (value > nextValue) {\n      return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_AFTER_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_BEFORE_SECOND\"];\n    }\n    return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"DO_NOT_SWAP\"];\n  };\n}\nconst COLUMN_DATA_TYPE = 'default';\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSorting/sortFunction/default.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSorting/sortFunction/numeric.mjs":
/*!**********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSorting/sortFunction/numeric.mjs ***!
  \**********************************************************************************/
/*! exports provided: compareFunctionFactory, COLUMN_DATA_TYPE */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"compareFunctionFactory\", function() { return compareFunctionFactory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COLUMN_DATA_TYPE\", function() { return COLUMN_DATA_TYPE; });\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../sortService/index.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortService/index.mjs\");\n\n\n/**\n * Numeric sorting compare function factory. Method get as parameters `sortOrder` and `columnMeta` and return compare function.\n *\n * @param {string} sortOrder Sort order (`asc` for ascending, `desc` for descending).\n * @param {object} columnMeta Column meta object.\n * @param {object} columnPluginSettings Plugin settings for the column.\n * @returns {Function} The compare function.\n */\nfunction compareFunctionFactory(sortOrder, columnMeta, columnPluginSettings) {\n  return function (value, nextValue) {\n    const parsedFirstValue = parseFloat(value);\n    const parsedSecondValue = parseFloat(nextValue);\n    const {\n      sortEmptyCells\n    } = columnPluginSettings;\n\n    // Watch out when changing this part of code! Check below returns 0 (as expected) when comparing empty string, null, undefined\n    if (parsedFirstValue === parsedSecondValue || isNaN(parsedFirstValue) && isNaN(parsedSecondValue)) {\n      return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"DO_NOT_SWAP\"];\n    }\n    if (sortEmptyCells) {\n      if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isEmpty\"])(value)) {\n        return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_BEFORE_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_AFTER_SECOND\"];\n      }\n      if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isEmpty\"])(nextValue)) {\n        return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_AFTER_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_BEFORE_SECOND\"];\n      }\n    }\n    if (isNaN(parsedFirstValue)) {\n      return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_AFTER_SECOND\"];\n    }\n    if (isNaN(parsedSecondValue)) {\n      return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_BEFORE_SECOND\"];\n    }\n    if (parsedFirstValue < parsedSecondValue) {\n      return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_BEFORE_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_AFTER_SECOND\"];\n    } else if (parsedFirstValue > parsedSecondValue) {\n      return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_AFTER_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_BEFORE_SECOND\"];\n    }\n    return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"DO_NOT_SWAP\"];\n  };\n}\nconst COLUMN_DATA_TYPE = 'numeric';\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSorting/sortFunction/numeric.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSorting/sortFunction/time.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSorting/sortFunction/time.mjs ***!
  \*******************************************************************************/
/*! exports provided: compareFunctionFactory, COLUMN_DATA_TYPE */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"compareFunctionFactory\", function() { return compareFunctionFactory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COLUMN_DATA_TYPE\", function() { return COLUMN_DATA_TYPE; });\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/plugins/columnSorting/utils.mjs\");\n\n/**\n * Date sorting compare function factory. Method get as parameters `sortOrder` and `columnMeta` and return compare function.\n *\n * @param {string} sortOrder Sort order (`asc` for ascending, `desc` for descending).\n * @param {object} columnMeta Column meta object.\n * @param {object} columnPluginSettings Plugin settings for the column.\n * @returns {Function} The compare function.\n */\nfunction compareFunctionFactory(sortOrder, columnMeta, columnPluginSettings) {\n  return Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"createDateTimeCompareFunction\"])(sortOrder, columnMeta.timeFormat, columnPluginSettings);\n}\nconst COLUMN_DATA_TYPE = 'time';\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSorting/sortFunction/time.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSorting/sortService/engine.mjs":
/*!********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSorting/sortService/engine.mjs ***!
  \********************************************************************************/
/*! exports provided: DO_NOT_SWAP, FIRST_BEFORE_SECOND, FIRST_AFTER_SECOND, sort */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DO_NOT_SWAP\", function() { return DO_NOT_SWAP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FIRST_BEFORE_SECOND\", function() { return FIRST_BEFORE_SECOND; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FIRST_AFTER_SECOND\", function() { return FIRST_AFTER_SECOND; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sort\", function() { return sort; });\n/* harmony import */ var _registry_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./registry.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortService/registry.mjs\");\n\nconst DO_NOT_SWAP = 0;\nconst FIRST_BEFORE_SECOND = -1;\nconst FIRST_AFTER_SECOND = 1;\n\n/**\n * @param {Array} indexesWithData The data to sort.\n * @param {string} rootComparatorId The comparator logic to use.\n * @param {Array} argsForRootComparator Additional arguments for comparator function.\n */\nfunction sort(indexesWithData, rootComparatorId) {\n  const rootComparator = Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getRootComparator\"])(rootComparatorId);\n  for (var _len = arguments.length, argsForRootComparator = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    argsForRootComparator[_key - 2] = arguments[_key];\n  }\n  indexesWithData.sort(rootComparator(...argsForRootComparator));\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSorting/sortService/engine.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSorting/sortService/index.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSorting/sortService/index.mjs ***!
  \*******************************************************************************/
/*! exports provided: registerRootComparator, getRootComparator, getCompareFunctionFactory, FIRST_AFTER_SECOND, FIRST_BEFORE_SECOND, DO_NOT_SWAP, sort */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _registry_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./registry.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortService/registry.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"registerRootComparator\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_0__[\"registerRootComparator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRootComparator\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getRootComparator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getCompareFunctionFactory\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getCompareFunctionFactory\"]; });\n\n/* harmony import */ var _engine_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./engine.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortService/engine.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FIRST_AFTER_SECOND\", function() { return _engine_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_AFTER_SECOND\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FIRST_BEFORE_SECOND\", function() { return _engine_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FIRST_BEFORE_SECOND\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DO_NOT_SWAP\", function() { return _engine_mjs__WEBPACK_IMPORTED_MODULE_1__[\"DO_NOT_SWAP\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sort\", function() { return _engine_mjs__WEBPACK_IMPORTED_MODULE_1__[\"sort\"]; });\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSorting/sortService/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSorting/sortService/registry.mjs":
/*!**********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSorting/sortService/registry.mjs ***!
  \**********************************************************************************/
/*! exports provided: getCompareFunctionFactory, registerRootComparator, getRootComparator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getCompareFunctionFactory\", function() { return getCompareFunctionFactory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerRootComparator\", function() { return registerRootComparator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRootComparator\", function() { return getRootComparator; });\n/* harmony import */ var _sortFunction_default_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../sortFunction/default.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortFunction/default.mjs\");\n/* harmony import */ var _sortFunction_numeric_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../sortFunction/numeric.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortFunction/numeric.mjs\");\n/* harmony import */ var _sortFunction_checkbox_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../sortFunction/checkbox.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortFunction/checkbox.mjs\");\n/* harmony import */ var _sortFunction_date_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sortFunction/date.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortFunction/date.mjs\");\n/* harmony import */ var _sortFunction_time_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../sortFunction/time.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortFunction/time.mjs\");\n/* harmony import */ var _utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../utils/staticRegister.mjs */ \"./node_modules/handsontable/utils/staticRegister.mjs\");\n\n\n\n\n\n\nconst {\n  register: registerCompareFunctionFactory,\n  getItem: getGloballyCompareFunctionFactory,\n  hasItem: hasGloballyCompareFunctionFactory\n} = Object(_utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('sorting.compareFunctionFactory');\nconst {\n  register: registerRootComparator,\n  getItem: getRootComparator\n} = Object(_utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('sorting.mainSortComparator');\n\n/**\n * Gets sort function for the particular column basing on it's data type.\n *\n * @param {string} type The data type.\n * @returns {Function}\n */\nfunction getCompareFunctionFactory(type) {\n  if (hasGloballyCompareFunctionFactory(type)) {\n    return getGloballyCompareFunctionFactory(type);\n  }\n  return getGloballyCompareFunctionFactory(_sortFunction_default_mjs__WEBPACK_IMPORTED_MODULE_0__[\"COLUMN_DATA_TYPE\"]);\n}\nregisterCompareFunctionFactory(_sortFunction_checkbox_mjs__WEBPACK_IMPORTED_MODULE_2__[\"COLUMN_DATA_TYPE\"], _sortFunction_checkbox_mjs__WEBPACK_IMPORTED_MODULE_2__[\"compareFunctionFactory\"]);\nregisterCompareFunctionFactory(_sortFunction_date_mjs__WEBPACK_IMPORTED_MODULE_3__[\"COLUMN_DATA_TYPE\"], _sortFunction_date_mjs__WEBPACK_IMPORTED_MODULE_3__[\"compareFunctionFactory\"]);\nregisterCompareFunctionFactory(_sortFunction_default_mjs__WEBPACK_IMPORTED_MODULE_0__[\"COLUMN_DATA_TYPE\"], _sortFunction_default_mjs__WEBPACK_IMPORTED_MODULE_0__[\"compareFunctionFactory\"]);\nregisterCompareFunctionFactory(_sortFunction_numeric_mjs__WEBPACK_IMPORTED_MODULE_1__[\"COLUMN_DATA_TYPE\"], _sortFunction_numeric_mjs__WEBPACK_IMPORTED_MODULE_1__[\"compareFunctionFactory\"]);\nregisterCompareFunctionFactory(_sortFunction_time_mjs__WEBPACK_IMPORTED_MODULE_4__[\"COLUMN_DATA_TYPE\"], _sortFunction_time_mjs__WEBPACK_IMPORTED_MODULE_4__[\"compareFunctionFactory\"]);\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSorting/sortService/registry.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSorting/utils.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSorting/utils.mjs ***!
  \*******************************************************************/
/*! exports provided: ASC_SORT_STATE, DESC_SORT_STATE, HEADER_SPAN_CLASS, areValidSortStates, getNextSortOrder, getHeaderSpanElement, isFirstLevelColumnHeader, wasHeaderClickedProperly, createDateTimeCompareFunction */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ASC_SORT_STATE\", function() { return ASC_SORT_STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DESC_SORT_STATE\", function() { return DESC_SORT_STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HEADER_SPAN_CLASS\", function() { return HEADER_SPAN_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"areValidSortStates\", function() { return areValidSortStates; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getNextSortOrder\", function() { return getNextSortOrder; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getHeaderSpanElement\", function() { return getHeaderSpanElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFirstLevelColumnHeader\", function() { return isFirstLevelColumnHeader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wasHeaderClickedProperly\", function() { return wasHeaderClickedProperly; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createDateTimeCompareFunction\", function() { return createDateTimeCompareFunction; });\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./sortService/index.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortService/index.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\nconst ASC_SORT_STATE = 'asc';\nconst DESC_SORT_STATE = 'desc';\nconst HEADER_SPAN_CLASS = 'colHeader';\n\n/**\n * Get if column state is valid.\n *\n * @param {number} columnState Particular column state.\n * @returns {boolean}\n */\nfunction isValidColumnState(columnState) {\n  if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_8__[\"isObject\"])(columnState) === false) {\n    return false;\n  }\n  const {\n    column,\n    sortOrder\n  } = columnState;\n  return Number.isInteger(column) && [ASC_SORT_STATE, DESC_SORT_STATE].includes(sortOrder);\n}\n\n/**\n * Get if all sorted columns states are valid.\n *\n * @param {Array} sortStates The sort state collection.\n * @returns {boolean}\n */\nfunction areValidSortStates(sortStates) {\n  if (sortStates.some(columnState => isValidColumnState(columnState) === false)) {\n    return false;\n  }\n  const sortedColumns = sortStates.map(_ref => {\n    let {\n      column\n    } = _ref;\n    return column;\n  });\n\n  // Indexes occurs only once.\n  return new Set(sortedColumns).size === sortedColumns.length;\n}\n\n/**\n * Get next sort order for particular column. The order sequence looks as follows: 'asc' -> 'desc' -> undefined -> 'asc'.\n *\n * @param {string|undefined} sortOrder Sort order (`asc` for ascending, `desc` for descending and undefined for not sorted).\n * @returns {string|undefined} Next sort order (`asc` for ascending, `desc` for descending and undefined for not sorted).\n */\nfunction getNextSortOrder(sortOrder) {\n  if (sortOrder === DESC_SORT_STATE) {\n    return;\n  } else if (sortOrder === ASC_SORT_STATE) {\n    return DESC_SORT_STATE;\n  }\n  return ASC_SORT_STATE;\n}\n\n/**\n * Get `span` DOM element inside `th` DOM element.\n *\n * @param {Element} TH Th HTML element.\n * @returns {Element | null}\n */\nfunction getHeaderSpanElement(TH) {\n  const headerSpanElement = TH.querySelector(`.${HEADER_SPAN_CLASS}`);\n  return headerSpanElement;\n}\n\n/**\n *\n * Get if handled header is first level column header.\n *\n * @param {number} column Visual column index.\n * @param {Element} TH Th HTML element.\n * @returns {boolean}\n */\nfunction isFirstLevelColumnHeader(column, TH) {\n  if (column < 0 || !TH.parentNode) {\n    return false;\n  }\n  const TRs = TH.parentNode.parentNode.childNodes;\n  const headerLevel = Array.from(TRs).indexOf(TH.parentNode) - TRs.length;\n  if (headerLevel !== -1) {\n    return false;\n  }\n  return true;\n}\n\n/**\n *  Get if header was clicked properly. Click on column header and NOT done by right click return `true`.\n *\n * @param {number} row Visual row index.\n * @param {number} column Visual column index.\n * @param {Event} clickEvent Click event.\n * @returns {boolean}\n */\nfunction wasHeaderClickedProperly(row, column, clickEvent) {\n  return row === -1 && column >= 0 && Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_9__[\"isRightClick\"])(clickEvent) === false;\n}\n\n/**\n * Creates date or time sorting compare function.\n *\n * @param {string} sortOrder Sort order (`asc` for ascending, `desc` for descending).\n * @param {string} format Date or time format.\n * @param {object} columnPluginSettings Plugin settings for the column.\n * @returns {Function} The compare function.\n */\nfunction createDateTimeCompareFunction(sortOrder, format, columnPluginSettings) {\n  return function (value, nextValue) {\n    const {\n      sortEmptyCells\n    } = columnPluginSettings;\n    if (value === nextValue) {\n      return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"DO_NOT_SWAP\"];\n    }\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_10__[\"isEmpty\"])(value)) {\n      if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_10__[\"isEmpty\"])(nextValue)) {\n        return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"DO_NOT_SWAP\"];\n      }\n\n      // Just fist value is empty and `sortEmptyCells` option was set\n      if (sortEmptyCells) {\n        return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"FIRST_BEFORE_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"FIRST_AFTER_SECOND\"];\n      }\n      return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"FIRST_AFTER_SECOND\"];\n    }\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_10__[\"isEmpty\"])(nextValue)) {\n      // Just second value is empty and `sortEmptyCells` option was set\n      if (sortEmptyCells) {\n        return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"FIRST_AFTER_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"FIRST_BEFORE_SECOND\"];\n      }\n      return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"FIRST_BEFORE_SECOND\"];\n    }\n    const firstDate = moment__WEBPACK_IMPORTED_MODULE_7__(value, format);\n    const nextDate = moment__WEBPACK_IMPORTED_MODULE_7__(nextValue, format);\n    if (!firstDate.isValid()) {\n      return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"FIRST_AFTER_SECOND\"];\n    }\n    if (!nextDate.isValid()) {\n      return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"FIRST_BEFORE_SECOND\"];\n    }\n    if (nextDate.isAfter(firstDate)) {\n      return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"FIRST_BEFORE_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"FIRST_AFTER_SECOND\"];\n    }\n    if (nextDate.isBefore(firstDate)) {\n      return sortOrder === 'asc' ? _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"FIRST_AFTER_SECOND\"] : _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"FIRST_BEFORE_SECOND\"];\n    }\n    return _sortService_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"DO_NOT_SWAP\"];\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSorting/utils.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSummary/columnSummary.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSummary/columnSummary.mjs ***!
  \***************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ColumnSummary */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ColumnSummary\", function() { return ColumnSummary; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _endpoints_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./endpoints.mjs */ \"./node_modules/handsontable/plugins/columnSummary/endpoints.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/plugins/columnSummary/utils.mjs\");\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\nconst PLUGIN_KEY = 'columnSummary';\nconst PLUGIN_PRIORITY = 220;\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @plugin ColumnSummary\n * @class ColumnSummary\n *\n * @description\n * The `ColumnSummary` plugin lets you [easily summarize your columns](@/guides/columns/column-summary/column-summary.md).\n *\n * You can use the [built-in summary functions](@/guides/columns/column-summary/column-summary.md#built-in-summary-functions),\n * or implement a [custom summary function](@/guides/columns/column-summary/column-summary.md#implement-a-custom-summary-function).\n *\n * For each column summary, you can set the following configuration options:\n *\n * | Option | Required | Type | Default | Description |\n * |---|---|---|---|---|\n * | `sourceColumn` | No | Number | Same as `destinationColumn` | [Selects a column to summarize](@/guides/columns/column-summary/column-summary.md#step-2-select-cells-that-you-want-to-summarize) |\n * | `ranges` | No | Array | - | [Selects ranges of rows to summarize](@/guides/columns/column-summary/column-summary.md#step-2-select-cells-that-you-want-to-summarize) |\n * | `type` | Yes | String | - | [Sets a summary function](@/guides/columns/column-summary/column-summary.md#step-3-calculate-your-summary) |\n * | `destinationRow` | Yes | Number | - | [Sets the destination cell's row coordinate](@/guides/columns/column-summary/column-summary.md#step-4-provide-the-destination-cell-s-coordinates) |\n * | `destinationColumn` | Yes | Number | - | [Sets the destination cell's column coordinate](@/guides/columns/column-summary/column-summary.md#step-4-provide-the-destination-cell-s-coordinates) |\n * | `forceNumeric` | No | Boolean | `false` | [Forces the summary to treat non-numerics as numerics](@/guides/columns/column-summary/column-summary.md#force-numeric-values) |\n * | `reversedRowCoords` | No | Boolean | `false` | [Reverses row coordinates](@/guides/columns/column-summary/column-summary.md#step-5-make-room-for-the-destination-cell) |\n * | `suppressDataTypeErrors` | No | Boolean | `true` | [Suppresses data type errors](@/guides/columns/column-summary/column-summary.md#throw-data-type-errors) |\n * | `readOnly` | No | Boolean | `true` | Makes summary cell read-only |\n * | `roundFloat` | No | Number/<br>Boolean | - | [Rounds summary result](@/guides/columns/column-summary/column-summary.md#round-a-column-summary-result) |\n * | `customFunction` | No | Function | - | [Lets you add a custom summary function](@/guides/columns/column-summary/column-summary.md#implement-a-custom-summary-function) |\n *\n * @example\n * ::: only-for javascript\n * ```js\n * const container = document.getElementById('example');\n * const hot = new Handsontable(container, {\n *   data: getData(),\n *   colHeaders: true,\n *   rowHeaders: true,\n *   columnSummary: [\n *     {\n *       type: 'min',\n *       destinationRow: 4,\n *       destinationColumn: 1,\n *     },\n *     {\n *       type: 'max',\n *       destinationRow: 0,\n *       destinationColumn: 3,\n *       reversedRowCoords: true\n *     },\n *     {\n *       type: 'sum',\n *       destinationRow: 4,\n *       destinationColumn: 5,\n *       forceNumeric: true\n *     }\n *   ]\n * });\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * <HotTable\n *   data={getData()}\n *   colHeaders={true}\n *   rowHeaders={true}\n *   columnSummary={[\n *     {\n *       type: 'min',\n *       destinationRow: 4,\n *       destinationColumn: 1,\n *     },\n *     {\n *       type: 'max',\n *       destinationRow: 0,\n *       destinationColumn: 3,\n *       reversedRowCoords: true\n *     },\n *     {\n *       type: 'sum',\n *       destinationRow: 4,\n *       destinationColumn: 5,\n *       forceNumeric: true\n *     }\n *   ]}\n * />\n * ```\n * :::\n */\nvar _ColumnSummary_brand = /*#__PURE__*/new WeakSet();\nclass ColumnSummary extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * `afterInit` hook callback.\n     */\n    _classPrivateMethodInitSpec(this, _ColumnSummary_brand);\n    /**\n     * The Endpoints class instance. Used to make all endpoint-related operations.\n     *\n     * @private\n     * @type {null|Endpoints}\n     */\n    _defineProperty(this, \"endpoints\", null);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link ColumnSummary#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    this.settings = this.hot.getSettings()[PLUGIN_KEY];\n    this.endpoints = new _endpoints_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this, this.settings);\n    this.addHook('afterInit', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_ColumnSummary_brand, _this, _onAfterInit).call(_this, ...args);\n    });\n    this.addHook('afterChange', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_ColumnSummary_brand, _this, _onAfterChange).call(_this, ...args);\n    });\n    this.addHook('afterUpdateSettings', function () {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n      return _assertClassBrand(_ColumnSummary_brand, _this, _onAfterUpdateSettings).call(_this, ...args);\n    });\n    this.addHook('beforeCreateRow', (index, amount, source) => this.endpoints.resetSetupBeforeStructureAlteration('insert_row', index, amount, null, source)); // eslint-disable-line max-len\n    this.addHook('beforeCreateCol', (index, amount, source) => this.endpoints.resetSetupBeforeStructureAlteration('insert_col', index, amount, null, source)); // eslint-disable-line max-len\n    this.addHook('beforeRemoveRow', function () {\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n      return _this.endpoints.resetSetupBeforeStructureAlteration('remove_row', ...args);\n    });\n    this.addHook('beforeRemoveCol', function () {\n      for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n        args[_key5] = arguments[_key5];\n      }\n      return _this.endpoints.resetSetupBeforeStructureAlteration('remove_col', ...args);\n    });\n    this.addHook('afterCreateRow', (index, amount, source) => this.endpoints.resetSetupAfterStructureAlteration('insert_row', index, amount, null, source)); // eslint-disable-line max-len\n    this.addHook('afterCreateCol', (index, amount, source) => this.endpoints.resetSetupAfterStructureAlteration('insert_col', index, amount, null, source)); // eslint-disable-line max-len\n    this.addHook('afterRemoveRow', function () {\n      for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n        args[_key6] = arguments[_key6];\n      }\n      return _this.endpoints.resetSetupAfterStructureAlteration('remove_row', ...args);\n    });\n    this.addHook('afterRemoveCol', function () {\n      for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n        args[_key7] = arguments[_key7];\n      }\n      return _this.endpoints.resetSetupAfterStructureAlteration('remove_col', ...args);\n    });\n    this.addHook('afterRowMove', function () {\n      for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n        args[_key8] = arguments[_key8];\n      }\n      return _assertClassBrand(_ColumnSummary_brand, _this, _onAfterRowMove).call(_this, ...args);\n    });\n    super.enablePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.endpoints = null;\n    this.settings = null;\n    this.currentEndpoint = null;\n    super.disablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`columnSummary`](@/api/options.md#columnsummary)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    this.endpoints.initEndpoints();\n    super.updatePlugin();\n  }\n\n  /**\n   * Calculates math for a single endpoint.\n   *\n   * @private\n   * @param {object} endpoint Contains information about the endpoint.\n   */\n  calculate(endpoint) {\n    switch (endpoint.type.toLowerCase()) {\n      case 'sum':\n        endpoint.result = this.calculateSum(endpoint);\n        break;\n      case 'min':\n        endpoint.result = this.calculateMinMax(endpoint, endpoint.type);\n        break;\n      case 'max':\n        endpoint.result = this.calculateMinMax(endpoint, endpoint.type);\n        break;\n      case 'count':\n        endpoint.result = this.countEntries(endpoint);\n        break;\n      case 'average':\n        endpoint.result = this.calculateAverage(endpoint);\n        break;\n      case 'custom':\n        endpoint.result = endpoint.customFunction.call(this, endpoint);\n        break;\n      default:\n        break;\n    }\n  }\n\n  /**\n   * Calculates sum of the values contained in ranges provided in the plugin config.\n   *\n   * @private\n   * @param {object} endpoint Contains the endpoint information.\n   * @returns {number} Sum for the selected range.\n   */\n  calculateSum(endpoint) {\n    let sum = 0;\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"objectEach\"])(endpoint.ranges, range => {\n      sum += this.getPartialSum(range, endpoint.sourceColumn);\n    });\n    return sum;\n  }\n\n  /**\n   * Returns partial sum of values from a single row range.\n   *\n   * @private\n   * @param {Array} rowRange Range for the sum.\n   * @param {number} col Column index.\n   * @returns {number} The partial sum.\n   */\n  getPartialSum(rowRange, col) {\n    let sum = 0;\n    let i = rowRange[1] || rowRange[0];\n    let cellValue = null;\n    let biggestDecimalPlacesCount = 0;\n    do {\n      cellValue = this.getCellValue(i, col);\n      cellValue = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isNullishOrNaN\"])(cellValue) ? null : cellValue;\n      if (cellValue !== null) {\n        const decimalPlaces = (`${cellValue}`.split('.')[1] || []).length || 1;\n        if (decimalPlaces > biggestDecimalPlacesCount) {\n          biggestDecimalPlacesCount = decimalPlaces;\n        }\n      }\n      sum += cellValue || 0;\n      i -= 1;\n    } while (i >= rowRange[0]);\n\n    // Workaround for e.g. 802.2 + 1.1 = 803.3000000000001\n    return Math.round(sum * 10 ** biggestDecimalPlacesCount) / 10 ** biggestDecimalPlacesCount;\n  }\n\n  /**\n   * Calculates the minimal value for the selected ranges.\n   *\n   * @private\n   * @param {object} endpoint Contains the endpoint information.\n   * @param {string} type `'min'` or `'max'`.\n   * @returns {number} Min or Max value.\n   */\n  calculateMinMax(endpoint, type) {\n    let result = null;\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"objectEach\"])(endpoint.ranges, range => {\n      const partialResult = this.getPartialMinMax(range, endpoint.sourceColumn, type);\n      if (result === null && partialResult !== null) {\n        result = partialResult;\n      }\n      if (partialResult !== null) {\n        switch (type) {\n          case 'min':\n            result = Math.min(result, partialResult);\n            break;\n          case 'max':\n            result = Math.max(result, partialResult);\n            break;\n          default:\n            break;\n        }\n      }\n    });\n    return result === null ? 'Not enough data' : result;\n  }\n\n  /**\n   * Returns a local minimum of the provided sub-range.\n   *\n   * @private\n   * @param {Array} rowRange Range for the calculation.\n   * @param {number} col Column index.\n   * @param {string} type `'min'` or `'max'`.\n   * @returns {number|null} Min or max value.\n   */\n  getPartialMinMax(rowRange, col, type) {\n    let result = null;\n    let i = rowRange[1] || rowRange[0];\n    let cellValue;\n    do {\n      cellValue = this.getCellValue(i, col);\n      cellValue = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isNullishOrNaN\"])(cellValue) ? null : cellValue;\n      if (result === null) {\n        result = cellValue;\n      } else if (cellValue !== null) {\n        switch (type) {\n          case 'min':\n            result = Math.min(result, cellValue);\n            break;\n          case 'max':\n            result = Math.max(result, cellValue);\n            break;\n          default:\n            break;\n        }\n      }\n      i -= 1;\n    } while (i >= rowRange[0]);\n    return result;\n  }\n\n  /**\n   * Counts empty cells in the provided row range.\n   *\n   * @private\n   * @param {Array} rowRange Row range for the calculation.\n   * @param {number} col Column index.\n   * @returns {number} Empty cells count.\n   */\n  countEmpty(rowRange, col) {\n    let cellValue;\n    let counter = 0;\n    let i = rowRange[1] || rowRange[0];\n    do {\n      cellValue = this.getCellValue(i, col);\n      cellValue = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isNullishOrNaN\"])(cellValue) ? null : cellValue;\n      if (cellValue === null) {\n        counter += 1;\n      }\n      i -= 1;\n    } while (i >= rowRange[0]);\n    return counter;\n  }\n\n  /**\n   * Counts non-empty cells in the provided row range.\n   *\n   * @private\n   * @param {object} endpoint Contains the endpoint information.\n   * @returns {number} Entry count.\n   */\n  countEntries(endpoint) {\n    let result = 0;\n    const ranges = endpoint.ranges;\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"objectEach\"])(ranges, range => {\n      const partial = range[1] === undefined ? 1 : range[1] - range[0] + 1;\n      const emptyCount = this.countEmpty(range, endpoint.sourceColumn);\n      result += partial;\n      result -= emptyCount;\n    });\n    return result;\n  }\n\n  /**\n   * Calculates the average value from the cells in the range.\n   *\n   * @private\n   * @param {object} endpoint Contains the endpoint information.\n   * @returns {number} Avarage value.\n   */\n  calculateAverage(endpoint) {\n    const sum = this.calculateSum(endpoint);\n    const entriesCount = this.countEntries(endpoint);\n    return sum / entriesCount;\n  }\n\n  /**\n   * Returns a cell value, taking into consideration a basic validation.\n   *\n   * @private\n   * @param {number} row Row index.\n   * @param {number} col Column index.\n   * @returns {string} The cell value.\n   */\n  getCellValue(row, col) {\n    const visualRowIndex = this.hot.toVisualRow(row);\n    const visualColumnIndex = this.hot.toVisualColumn(col);\n    let cellValue = this.hot.getSourceDataAtCell(row, col);\n    let cellClassName = '';\n    if (visualRowIndex !== null && visualColumnIndex !== null) {\n      cellClassName = this.hot.getCellMeta(visualRowIndex, visualColumnIndex).className || '';\n    }\n    if (cellClassName.indexOf('columnSummaryResult') > -1) {\n      return null;\n    }\n    if (this.endpoints.currentEndpoint.forceNumeric) {\n      if (typeof cellValue === 'string') {\n        cellValue = cellValue.replace(/,/, '.');\n      }\n      cellValue = parseFloat(cellValue);\n    }\n    if (isNaN(cellValue)) {\n      if (!this.endpoints.currentEndpoint.suppressDataTypeErrors) {\n        throw new Error(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_4__[\"toSingleLine\"]`ColumnSummary plugin: cell at (${row}, ${col}) is not in a\\x20\n          numeric format. Cannot do the calculation.`);\n      }\n    }\n    return cellValue;\n  }\n}\nfunction _onAfterInit() {\n  this.endpoints.initEndpoints();\n}\n/**\n * Called after the settings were updated. There is a need to refresh cell metas after the settings update with\n * the `columns` property as the Core resets the cell metas to their initial state.\n *\n * @param {object} settings The settings object.\n */\nfunction _onAfterUpdateSettings(settings) {\n  if (settings.columns !== undefined) {\n    this.endpoints.refreshCellMetas();\n  }\n}\n/**\n * `afterChange` hook callback.\n *\n * @param {Array} changes 2D array containing information about each of the edited cells.\n * @param {string} source The string that identifies source of changes.\n */\nfunction _onAfterChange(changes, source) {\n  if (changes && source !== 'ColumnSummary.reset' && source !== 'ColumnSummary.set' && source !== 'loadData') {\n    this.endpoints.refreshChangedEndpoints(changes);\n  }\n}\n/**\n * `beforeRowMove` hook callback.\n *\n * @param {Array} rows Array of visual row indexes to be moved.\n * @param {number} finalIndex Visual row index, being a start index for the moved rows. Points to where the elements will be placed after the moving action.\n * To check the visualization of the final index, please take a look at [documentation](@/guides/rows/row-moving/row-moving.md).\n */\nfunction _onAfterRowMove(rows, finalIndex) {\n  this.endpoints.resetSetupBeforeStructureAlteration('move_row', rows[0], rows.length, rows, this.pluginName);\n  this.endpoints.resetSetupAfterStructureAlteration('move_row', finalIndex, rows.length, rows, this.pluginName);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSummary/columnSummary.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSummary/endpoints.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSummary/endpoints.mjs ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n/**\n * Class used to make all endpoint-related operations.\n *\n * @private\n * @class Endpoints\n */\nclass Endpoints {\n  constructor(plugin, settings) {\n    /**\n     * The main plugin instance.\n     */\n    _defineProperty(this, \"plugin\", void 0);\n    /**\n     * Handsontable instance.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * Array of declared plugin endpoints (calculation destination points).\n     *\n     * @type {Array}\n     * @default {Array} Empty array.\n     */\n    _defineProperty(this, \"endpoints\", []);\n    /**\n     * The plugin settings, taken from Handsontable configuration.\n     *\n     * @type {object|Function}\n     * @default null\n     */\n    _defineProperty(this, \"settings\", void 0);\n    /**\n     * Settings type. Can be either 'array' or 'function'.\n     *\n     * @type {string}\n     * @default {'array'}\n     */\n    _defineProperty(this, \"settingsType\", 'array');\n    /**\n     * The current endpoint (calculation destination point) in question.\n     *\n     * @type {object}\n     * @default null\n     */\n    _defineProperty(this, \"currentEndpoint\", null);\n    /**\n     * Array containing a list of changes to be applied.\n     *\n     * @private\n     * @type {Array}\n     * @default {[]}\n     */\n    _defineProperty(this, \"cellsToSetCache\", []);\n    this.plugin = plugin;\n    this.hot = this.plugin.hot;\n    this.settings = settings;\n  }\n\n  /**\n   * Initialize the endpoints provided in the settings.\n   */\n  initEndpoints() {\n    this.endpoints = this.parseSettings();\n    this.refreshAllEndpoints();\n  }\n\n  /**\n   * Get a single endpoint object.\n   *\n   * @param {number} index Index of the endpoint.\n   * @returns {object}\n   */\n  getEndpoint(index) {\n    if (this.settingsType === 'function') {\n      return this.fillMissingEndpointData(this.settings)[index];\n    }\n    return this.endpoints[index];\n  }\n\n  /**\n   * Get an array with all the endpoints.\n   *\n   * @returns {Array}\n   */\n  getAllEndpoints() {\n    if (this.settingsType === 'function') {\n      return this.fillMissingEndpointData(this.settings);\n    }\n    return this.endpoints;\n  }\n\n  /**\n   * Used to fill the blanks in the endpoint data provided by a settings function.\n   *\n   * @private\n   * @param {Function} func Function provided in the HOT settings.\n   * @returns {Array} An array of endpoints.\n   */\n  fillMissingEndpointData(func) {\n    return this.parseSettings(func.call(this));\n  }\n\n  /**\n   * Parse plugin's settings.\n   *\n   * @param {Array} settings The settings array.\n   * @returns {object[]}\n   */\n  parseSettings(settings) {\n    const endpointsArray = [];\n    let settingsArray = settings;\n    if (!settingsArray && typeof this.settings === 'function') {\n      this.settingsType = 'function';\n      return;\n    }\n    if (!settingsArray) {\n      settingsArray = this.settings;\n    }\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(settingsArray, val => {\n      const newEndpoint = {};\n      this.assignSetting(val, newEndpoint, 'ranges', [[0, this.hot.countRows() - 1]]);\n      this.assignSetting(val, newEndpoint, 'reversedRowCoords', false);\n      this.assignSetting(val, newEndpoint, 'destinationRow', new Error(`\n        You must provide a destination row for the Column Summary plugin in order to work properly!\n      `));\n      this.assignSetting(val, newEndpoint, 'destinationColumn', new Error(`\n        You must provide a destination column for the Column Summary plugin in order to work properly!\n      `));\n      this.assignSetting(val, newEndpoint, 'sourceColumn', val.destinationColumn);\n      this.assignSetting(val, newEndpoint, 'type', 'sum');\n      this.assignSetting(val, newEndpoint, 'forceNumeric', false);\n      this.assignSetting(val, newEndpoint, 'suppressDataTypeErrors', true);\n      this.assignSetting(val, newEndpoint, 'customFunction', null);\n      this.assignSetting(val, newEndpoint, 'readOnly', true);\n      this.assignSetting(val, newEndpoint, 'roundFloat', false);\n      endpointsArray.push(newEndpoint);\n    });\n    return endpointsArray;\n  }\n\n  /**\n   * Setter for the internal setting objects.\n   *\n   * @param {object} settings Object with the settings.\n   * @param {object} endpoint Contains information about the endpoint for the the calculation.\n   * @param {string} name Settings name.\n   * @param {object} defaultValue Default value for the settings.\n   */\n  assignSetting(settings, endpoint, name, defaultValue) {\n    if (name === 'ranges' && settings[name] === undefined) {\n      endpoint[name] = defaultValue;\n      return;\n    } else if (name === 'ranges' && settings[name].length === 0) {\n      return;\n    }\n    if (settings[name] === undefined) {\n      if (defaultValue instanceof Error) {\n        throw defaultValue;\n      }\n      endpoint[name] = defaultValue;\n    } else {\n      /* eslint-disable no-lonely-if */\n      if (name === 'destinationRow' && endpoint.reversedRowCoords) {\n        endpoint[name] = this.hot.countRows() - settings[name] - 1;\n      } else {\n        endpoint[name] = settings[name];\n      }\n    }\n  }\n\n  /**\n   * Resets the endpoint setup before the structure alteration (like inserting or removing rows/columns). Used for settings provided as a function.\n   *\n   * @private\n   * @param {string} action Type of the action performed.\n   * @param {number} index Row/column index.\n   * @param {number} number Number of rows/columns added/removed.\n   */\n  resetSetupBeforeStructureAlteration(action, index, number) {\n    if (this.settingsType !== 'function') {\n      return;\n    }\n    const type = action.indexOf('row') > -1 ? 'row' : 'col';\n    const endpoints = this.getAllEndpoints();\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(endpoints, val => {\n      if (type === 'row' && val.destinationRow >= index) {\n        if (action === 'insert_row') {\n          val.alterRowOffset = number;\n        } else if (action === 'remove_row') {\n          val.alterRowOffset = -1 * number;\n        }\n      }\n      if (type === 'col' && val.destinationColumn >= index) {\n        if (action === 'insert_col') {\n          val.alterColumnOffset = number;\n        } else if (action === 'remove_col') {\n          val.alterColumnOffset = -1 * number;\n        }\n      }\n    });\n    this.resetAllEndpoints(endpoints, false);\n  }\n\n  /**\n   * AfterCreateRow/afterCreateRow/afterRemoveRow/afterRemoveCol hook callback. Reset and reenables the summary functionality\n   * after changing the table structure.\n   *\n   * @private\n   * @param {string} action Type of the action performed.\n   * @param {number} index Row/column index.\n   * @param {number} number Number of rows/columns added/removed.\n   * @param {Array} [logicRows] Array of the logical indexes.\n   * @param {string} [source] Source of change.\n   * @param {boolean} [forceRefresh] `true` of the endpoints should refresh after completing the function.\n   */\n  resetSetupAfterStructureAlteration(action, index, number, logicRows, source) {\n    let forceRefresh = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n    if (this.settingsType === 'function') {\n      // We need to run it on a next avaiable hook, because the TrimRows' `afterCreateRow` hook triggers after this one,\n      // and it needs to be run to properly calculate the endpoint value.\n      const beforeViewRenderCallback = () => {\n        this.hot.removeHook('beforeViewRender', beforeViewRenderCallback);\n        return this.refreshAllEndpoints();\n      };\n      this.hot.addHookOnce('beforeViewRender', beforeViewRenderCallback);\n      return;\n    }\n    const type = action.indexOf('row') > -1 ? 'row' : 'col';\n    const multiplier = action.indexOf('remove') > -1 ? -1 : 1;\n    const endpoints = this.getAllEndpoints();\n    const rowMoving = action.indexOf('move_row') === 0;\n    const placeOfAlteration = index;\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(endpoints, val => {\n      if (type === 'row' && val.destinationRow >= placeOfAlteration) {\n        val.alterRowOffset = multiplier * number;\n      }\n      if (type === 'col' && val.destinationColumn >= placeOfAlteration) {\n        val.alterColumnOffset = multiplier * number;\n      }\n    });\n    this.resetAllEndpoints(endpoints, !rowMoving);\n    if (rowMoving) {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(endpoints, endpoint => {\n        this.extendEndpointRanges(endpoint, placeOfAlteration, logicRows[0], logicRows.length);\n        this.recreatePhysicalRanges(endpoint);\n        this.clearOffsetInformation(endpoint);\n      });\n    } else {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(endpoints, endpoint => {\n        this.shiftEndpointCoordinates(endpoint, placeOfAlteration);\n      });\n    }\n    if (forceRefresh) {\n      this.refreshAllEndpoints();\n    }\n  }\n\n  /**\n   * Clear the offset information from the endpoint object.\n   *\n   * @private\n   * @param {object} endpoint And endpoint object.\n   */\n  clearOffsetInformation(endpoint) {\n    endpoint.alterRowOffset = undefined;\n    endpoint.alterColumnOffset = undefined;\n  }\n\n  /**\n   * Extend the row ranges for the provided endpoint.\n   *\n   * @private\n   * @param {object} endpoint The endpoint object.\n   * @param {number} placeOfAlteration Index of the row where the alteration takes place.\n   * @param {number} previousPosition Previous endpoint result position.\n   * @param {number} offset Offset generated by the alteration.\n   */\n  extendEndpointRanges(endpoint, placeOfAlteration, previousPosition, offset) {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(endpoint.ranges, range => {\n      // is a range, not a single row\n      if (range[1]) {\n        if (placeOfAlteration >= range[0] && placeOfAlteration <= range[1]) {\n          if (previousPosition > range[1]) {\n            range[1] += offset;\n          } else if (previousPosition < range[0]) {\n            range[0] -= offset;\n          }\n        } else if (previousPosition >= range[0] && previousPosition <= range[1]) {\n          range[1] -= offset;\n          if (placeOfAlteration <= range[0]) {\n            range[0] += 1;\n            range[1] += 1;\n          }\n        }\n      }\n    });\n  }\n\n  /**\n   * Recreate the physical ranges for the provided endpoint. Used (for example) when a row gets moved and extends an existing range.\n   *\n   * @private\n   * @param {object} endpoint An endpoint object.\n   */\n  recreatePhysicalRanges(endpoint) {\n    const ranges = endpoint.ranges;\n    const newRanges = [];\n    const allIndexes = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(ranges, range => {\n      const newRange = [];\n      if (range[1]) {\n        for (let i = range[0]; i <= range[1]; i++) {\n          newRange.push(this.hot.toPhysicalRow(i));\n        }\n      } else {\n        newRange.push(this.hot.toPhysicalRow(range[0]));\n      }\n      allIndexes.push(newRange);\n    });\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(allIndexes, range => {\n      let newRange = [];\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(range, (coord, index) => {\n        if (index === 0) {\n          newRange.push(coord);\n        } else if (range[index] !== range[index - 1] + 1) {\n          newRange.push(range[index - 1]);\n          newRanges.push(newRange);\n          newRange = [];\n          newRange.push(coord);\n        }\n        if (index === range.length - 1) {\n          newRange.push(coord);\n          newRanges.push(newRange);\n        }\n      });\n    });\n    endpoint.ranges = newRanges;\n  }\n\n  /**\n   * Shifts the endpoint coordinates by the defined offset.\n   *\n   * @private\n   * @param {object} endpoint Endpoint object.\n   * @param {number} offsetStartIndex Index of the performed change (if the change is located after the endpoint, nothing about the endpoint has to be changed.\n   */\n  shiftEndpointCoordinates(endpoint, offsetStartIndex) {\n    if (endpoint.alterRowOffset && endpoint.alterRowOffset !== 0) {\n      endpoint.destinationRow += endpoint.alterRowOffset || 0;\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(endpoint.ranges, element => {\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(element, (subElement, j) => {\n          if (subElement >= offsetStartIndex) {\n            element[j] += endpoint.alterRowOffset || 0;\n          }\n        });\n      });\n    } else if (endpoint.alterColumnOffset && endpoint.alterColumnOffset !== 0) {\n      endpoint.destinationColumn += endpoint.alterColumnOffset || 0;\n      endpoint.sourceColumn += endpoint.alterColumnOffset || 0;\n    }\n  }\n\n  /**\n   * Resets (removes) the endpoints from the table.\n   *\n   * @param {Array} [endpoints] Array containing the endpoints.\n   * @param {boolean} [useOffset=true] Use the cell offset value.\n   */\n  resetAllEndpoints() {\n    let endpoints = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getAllEndpoints();\n    let useOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    const anyEndpointOutOfRange = endpoints.some(endpoint => {\n      const alterRowOffset = endpoint.alterRowOffset || 0;\n      const alterColOffset = endpoint.alterColumnOffset || 0;\n      if (endpoint.destinationRow + alterRowOffset >= this.hot.countRows() || endpoint.destinationColumn + alterColOffset >= this.hot.countCols()) {\n        return true;\n      }\n      return false;\n    });\n    if (anyEndpointOutOfRange) {\n      return;\n    }\n    this.cellsToSetCache = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(endpoints, endpoint => {\n      this.resetEndpointValue(endpoint, useOffset);\n    });\n    this.hot.setDataAtCell(this.cellsToSetCache, 'ColumnSummary.reset');\n    this.cellsToSetCache = [];\n  }\n\n  /**\n   * Calculate and refresh all defined endpoints.\n   */\n  refreshAllEndpoints() {\n    this.cellsToSetCache = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(this.getAllEndpoints(), value => {\n      this.currentEndpoint = value;\n      this.plugin.calculate(value);\n      this.setEndpointValue(value, 'init');\n    });\n    this.currentEndpoint = null;\n    this.hot.setDataAtCell(this.cellsToSetCache, 'ColumnSummary.reset');\n    this.cellsToSetCache = [];\n  }\n\n  /**\n   * Calculate and refresh endpoints only in the changed columns.\n   *\n   * @param {Array} changes Array of changes from the `afterChange` hook.\n   */\n  refreshChangedEndpoints(changes) {\n    const needToRefresh = [];\n    this.cellsToSetCache = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(changes, (value, key, changesObj) => {\n      // if nothing changed, dont update anything\n      if (`${value[2] || ''}` === `${value[3]}`) {\n        return;\n      }\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(this.getAllEndpoints(), (endpoint, j) => {\n        if (this.hot.propToCol(changesObj[key][1]) === endpoint.sourceColumn && needToRefresh.indexOf(j) === -1) {\n          needToRefresh.push(j);\n        }\n      });\n    });\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(needToRefresh, value => {\n      this.refreshEndpoint(this.getEndpoint(value));\n    });\n    this.hot.setDataAtCell(this.cellsToSetCache, 'ColumnSummary.reset');\n    this.cellsToSetCache = [];\n  }\n\n  /**\n   * Refreshes the cell meta information for the all endpoints after the `updateSettings` method call which in some\n   * cases (call with `columns` option) can reset the cell metas to the initial state.\n   */\n  refreshCellMetas() {\n    this.endpoints.forEach(endpoint => {\n      const destinationVisualRow = this.hot.toVisualRow(endpoint.destinationRow);\n      if (destinationVisualRow !== null) {\n        const cellMeta = this.hot.getCellMeta(destinationVisualRow, endpoint.destinationColumn);\n        cellMeta.readOnly = endpoint.readOnly;\n        cellMeta.className = 'columnSummaryResult';\n      }\n    });\n  }\n\n  /**\n   * Calculate and refresh a single endpoint.\n   *\n   * @param {object} endpoint Contains the endpoint information.\n   */\n  refreshEndpoint(endpoint) {\n    this.currentEndpoint = endpoint;\n    this.plugin.calculate(endpoint);\n    this.setEndpointValue(endpoint);\n    this.currentEndpoint = null;\n  }\n\n  /**\n   * Reset the endpoint value.\n   *\n   * @param {object} endpoint Contains the endpoint information.\n   * @param {boolean} [useOffset=true] Use the cell offset value.\n   */\n  resetEndpointValue(endpoint) {\n    let useOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    const alterRowOffset = endpoint.alterRowOffset || 0;\n    const alterColOffset = endpoint.alterColumnOffset || 0;\n    this.cellsToSetCache.push([this.hot.toVisualRow(endpoint.destinationRow + (useOffset ? alterRowOffset : 0)), this.hot.toVisualColumn(endpoint.destinationColumn + (useOffset ? alterColOffset : 0)), '']);\n  }\n\n  /**\n   * Set the endpoint value.\n   *\n   * @param {object} endpoint Contains the endpoint information.\n   * @param {string} [source] Source of the call information.\n   * @param {boolean} [render=false] `true` if it needs to render the table afterwards.\n   */\n  setEndpointValue(endpoint, source) {\n    let render = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    const visualEndpointRowIndex = this.hot.toVisualRow(endpoint.destinationRow);\n    if (endpoint.destinationRow >= this.hot.countRows() || endpoint.destinationColumn >= this.hot.countCols()) {\n      this.throwOutOfBoundsWarning();\n      return;\n    }\n    const destinationVisualRow = this.hot.toVisualRow(endpoint.destinationRow);\n    if (destinationVisualRow !== null) {\n      const cellMeta = this.hot.getCellMeta(destinationVisualRow, endpoint.destinationColumn);\n      if (source === 'init' || cellMeta.readOnly !== endpoint.readOnly) {\n        cellMeta.readOnly = endpoint.readOnly;\n        cellMeta.className = 'columnSummaryResult';\n      }\n    }\n    if ((endpoint.roundFloat === true || Number.isInteger(endpoint.roundFloat)) && !isNaN(endpoint.result)) {\n      const roundFloatValue = endpoint.roundFloat;\n      let decimalPlacesCount = 0;\n\n      // `toFixed` method accepts only values between 0 and 100\n      if (Number.isInteger(roundFloatValue)) {\n        decimalPlacesCount = Math.min(Math.max(0, roundFloatValue), 100);\n      }\n      endpoint.result = endpoint.result.toFixed(decimalPlacesCount);\n    }\n    if (render) {\n      this.hot.setDataAtCell(visualEndpointRowIndex, endpoint.destinationColumn, endpoint.result, 'ColumnSummary.set');\n    } else {\n      this.cellsToSetCache.push([visualEndpointRowIndex, endpoint.destinationColumn, endpoint.result]);\n    }\n    endpoint.alterRowOffset = undefined;\n    endpoint.alterColumnOffset = undefined;\n  }\n\n  /**\n   * Throw an error for the calculation range being out of boundaries.\n   *\n   * @private\n   */\n  throwOutOfBoundsWarning() {\n    Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_3__[\"warn\"])('One of the Column Summary plugins\\' destination points you provided is beyond the table boundaries!');\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (Endpoints);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSummary/endpoints.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSummary/index.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSummary/index.mjs ***!
  \*******************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ColumnSummary */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _columnSummary_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./columnSummary.mjs */ \"./node_modules/handsontable/plugins/columnSummary/columnSummary.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _columnSummary_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _columnSummary_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ColumnSummary\", function() { return _columnSummary_mjs__WEBPACK_IMPORTED_MODULE_0__[\"ColumnSummary\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSummary/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/columnSummary/utils.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/plugins/columnSummary/utils.mjs ***!
  \*******************************************************************/
/*! exports provided: isNullishOrNaN */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNullishOrNaN\", function() { return isNullishOrNaN; });\n/**\n * Returns `true` if the value is one of the type: `null`, `undefined` or `NaN`.\n *\n * @param {*} value The value to check.\n * @returns {boolean}\n */\nfunction isNullishOrNaN(value) {\n  return value === null || value === undefined || isNaN(value);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/columnSummary/utils.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/comments/commentEditor.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/comments/commentEditor.mjs ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n/* harmony import */ var _editorResizeObserver_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./editorResizeObserver.mjs */ \"./node_modules/handsontable/plugins/comments/editorResizeObserver.mjs\");\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n/**\n * Comment editor for the Comments plugin.\n *\n * @private\n * @class CommentEditor\n */\nvar _rootDocument = /*#__PURE__*/new WeakMap();\nvar _isRtl = /*#__PURE__*/new WeakMap();\nvar _container = /*#__PURE__*/new WeakMap();\nvar _editor = /*#__PURE__*/new WeakMap();\nvar _editorStyle = /*#__PURE__*/new WeakMap();\nvar _hidden = /*#__PURE__*/new WeakMap();\nvar _resizeObserver = /*#__PURE__*/new WeakMap();\nclass CommentEditor {\n  static get CLASS_EDITOR_CONTAINER() {\n    return 'htCommentsContainer';\n  }\n  static get CLASS_EDITOR() {\n    return 'htComments';\n  }\n  static get CLASS_INPUT() {\n    return 'htCommentTextArea';\n  }\n  static get CLASS_CELL() {\n    return 'htCommentCell';\n  }\n\n  /**\n   * @type {Document}\n   */\n\n  constructor(rootDocument, isRtl) {\n    var _this = this;\n    _classPrivateFieldInitSpec(this, _rootDocument, void 0);\n    /**\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _isRtl, false);\n    /**\n     * @type {HTMLElement}\n     */\n    _classPrivateFieldInitSpec(this, _container, null);\n    /**\n     * @type {HTMLElement}\n     */\n    _classPrivateFieldInitSpec(this, _editor, void 0);\n    /**\n     * @type {CSSStyleDeclaration}\n     */\n    _classPrivateFieldInitSpec(this, _editorStyle, void 0);\n    /**\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _hidden, true);\n    /**\n     * @type {EditorResizeObserver}\n     */\n    _classPrivateFieldInitSpec(this, _resizeObserver, new _editorResizeObserver_mjs__WEBPACK_IMPORTED_MODULE_4__[\"EditorResizeObserver\"]());\n    _classPrivateFieldSet(_rootDocument, this, rootDocument);\n    _classPrivateFieldSet(_isRtl, this, isRtl);\n    _classPrivateFieldSet(_editor, this, this.createEditor());\n    _classPrivateFieldSet(_editorStyle, this, _classPrivateFieldGet(_editor, this).style);\n    _classPrivateFieldGet(_resizeObserver, this).setObservedElement(this.getInputElement());\n    _classPrivateFieldGet(_resizeObserver, this).addLocalHook('resize', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _this.runLocalHooks('resize', ...args);\n    });\n    this.hide();\n  }\n\n  /**\n   * Set position of the comments editor according to the  provided x and y coordinates.\n   *\n   * @param {number} x X position (in pixels).\n   * @param {number} y Y position (in pixels).\n   */\n  setPosition(x, y) {\n    _classPrivateFieldGet(_editorStyle, this).left = `${x}px`;\n    _classPrivateFieldGet(_editorStyle, this).top = `${y}px`;\n  }\n\n  /**\n   * Set the editor size according to the provided arguments.\n   *\n   * @param {number} width Width in pixels.\n   * @param {number} height Height in pixels.\n   */\n  setSize(width, height) {\n    if (width && height) {\n      const input = this.getInputElement();\n      input.style.width = `${width}px`;\n      input.style.height = `${height}px`;\n    }\n  }\n\n  /**\n   * Returns the size of the comments editor.\n   *\n   * @returns {{ width: number, height: number }}\n   */\n  getSize() {\n    return {\n      width: Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"outerWidth\"])(this.getInputElement()),\n      height: Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"outerHeight\"])(this.getInputElement())\n    };\n  }\n\n  /**\n   * Starts observing the editor size.\n   */\n  observeSize() {\n    _classPrivateFieldGet(_resizeObserver, this).observe();\n  }\n\n  /**\n   * Reset the editor size to its initial state.\n   */\n  resetSize() {\n    const input = this.getInputElement();\n    input.style.width = '';\n    input.style.height = '';\n  }\n\n  /**\n   * Set the read-only state for the comments editor.\n   *\n   * @param {boolean} state The new read only state.\n   */\n  setReadOnlyState(state) {\n    const input = this.getInputElement();\n    input.readOnly = state;\n  }\n\n  /**\n   * Show the comments editor.\n   */\n  show() {\n    _classPrivateFieldGet(_editorStyle, this).display = 'block';\n    _classPrivateFieldSet(_hidden, this, false);\n  }\n\n  /**\n   * Hide the comments editor.\n   */\n  hide() {\n    _classPrivateFieldGet(_resizeObserver, this).unobserve();\n    if (!_classPrivateFieldGet(_hidden, this)) {\n      _classPrivateFieldGet(_editorStyle, this).display = 'none';\n    }\n    _classPrivateFieldSet(_hidden, this, true);\n  }\n\n  /**\n   * Checks if the editor is visible.\n   *\n   * @returns {boolean}\n   */\n  isVisible() {\n    return _classPrivateFieldGet(_editorStyle, this).display === 'block';\n  }\n\n  /**\n   * Set the comment value.\n   *\n   * @param {string} [value] The value to use.\n   */\n  setValue() {\n    let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n    const comment = value || '';\n    this.getInputElement().value = comment;\n  }\n\n  /**\n   * Get the comment value.\n   *\n   * @returns {string}\n   */\n  getValue() {\n    return this.getInputElement().value;\n  }\n\n  /**\n   * Checks if the comment input element is focused.\n   *\n   * @returns {boolean}\n   */\n  isFocused() {\n    return _classPrivateFieldGet(_rootDocument, this).activeElement === this.getInputElement();\n  }\n\n  /**\n   * Focus the comments input element.\n   */\n  focus() {\n    this.getInputElement().focus();\n  }\n\n  /**\n   * Create the `textarea` to be used as a comments editor.\n   *\n   * @returns {HTMLElement}\n   */\n  createEditor() {\n    const editor = _classPrivateFieldGet(_rootDocument, this).createElement('div');\n    const textarea = _classPrivateFieldGet(_rootDocument, this).createElement('textarea');\n    editor.style.display = 'none';\n    _classPrivateFieldSet(_container, this, _classPrivateFieldGet(_rootDocument, this).createElement('div'));\n    _classPrivateFieldGet(_container, this).setAttribute('dir', _classPrivateFieldGet(_isRtl, this) ? 'rtl' : 'ltr');\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(_classPrivateFieldGet(_container, this), CommentEditor.CLASS_EDITOR_CONTAINER);\n    _classPrivateFieldGet(_rootDocument, this).body.appendChild(_classPrivateFieldGet(_container, this));\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(editor, CommentEditor.CLASS_EDITOR);\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(textarea, CommentEditor.CLASS_INPUT);\n    textarea.setAttribute('data-hot-input', true);\n    editor.appendChild(textarea);\n    _classPrivateFieldGet(_container, this).appendChild(editor);\n    return editor;\n  }\n\n  /**\n   * Get the input element.\n   *\n   * @returns {HTMLElement}\n   */\n  getInputElement() {\n    return _classPrivateFieldGet(_editor, this).querySelector(`.${CommentEditor.CLASS_INPUT}`);\n  }\n\n  /**\n   * Destroy the comments editor.\n   */\n  destroy() {\n    const containerParentElement = _classPrivateFieldGet(_container, this) ? _classPrivateFieldGet(_container, this).parentNode : null;\n    _classPrivateFieldGet(_editor, this).parentNode.removeChild(_classPrivateFieldGet(_editor, this));\n    _classPrivateFieldSet(_editor, this, null);\n    _classPrivateFieldSet(_editorStyle, this, null);\n    _classPrivateFieldGet(_resizeObserver, this).destroy();\n    if (containerParentElement) {\n      containerParentElement.removeChild(_classPrivateFieldGet(_container, this));\n    }\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"mixin\"])(CommentEditor, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (CommentEditor);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/comments/commentEditor.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/comments/comments.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/comments/comments.mjs ***!
  \*****************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, META_COMMENT, META_COMMENT_VALUE, META_STYLE, META_READONLY, Comments */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"META_COMMENT\", function() { return META_COMMENT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"META_COMMENT_VALUE\", function() { return META_COMMENT_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"META_STYLE\", function() { return META_STYLE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"META_READONLY\", function() { return META_READONLY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Comments\", function() { return Comments; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _commentEditor_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./commentEditor.mjs */ \"./node_modules/handsontable/plugins/comments/commentEditor.mjs\");\n/* harmony import */ var _displaySwitch_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./displaySwitch.mjs */ \"./node_modules/handsontable/plugins/comments/displaySwitch.mjs\");\n/* harmony import */ var _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../contextMenu/predefinedItems/index.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/index.mjs\");\n/* harmony import */ var _contextMenuItem_addEditComment_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./contextMenuItem/addEditComment.mjs */ \"./node_modules/handsontable/plugins/comments/contextMenuItem/addEditComment.mjs\");\n/* harmony import */ var _contextMenuItem_removeComment_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./contextMenuItem/removeComment.mjs */ \"./node_modules/handsontable/plugins/comments/contextMenuItem/removeComment.mjs\");\n/* harmony import */ var _contextMenuItem_readOnlyComment_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./contextMenuItem/readOnlyComment.mjs */ \"./node_modules/handsontable/plugins/comments/contextMenuItem/readOnlyComment.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\nconst PLUGIN_KEY = 'comments';\nconst PLUGIN_PRIORITY = 60;\nconst META_COMMENT = 'comment';\nconst META_COMMENT_VALUE = 'value';\nconst META_STYLE = 'style';\nconst META_READONLY = 'readOnly';\nconst SHORTCUTS_GROUP = PLUGIN_KEY;\nconst SHORTCUTS_CONTEXT_NAME = `plugin:${PLUGIN_KEY}`;\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * @plugin Comments\n * @class Comments\n *\n * @description\n * This plugin allows setting and managing cell comments by either an option in the context menu or with the use of\n * the API.\n *\n * To enable the plugin, you'll need to set the comments property of the config object to `true`:\n * ```js\n * comments: true\n * ```\n *\n * or an object with extra predefined plugin config:\n *\n * ```js\n * comments: {\n *   displayDelay: 1000,\n *   readOnly: true,\n *   style: {\n *     width: 300,\n *     height: 100\n *   }\n * }\n * ```\n *\n * To add comments at the table initialization, define the `comment` property in the `cell` config array as in an example below.\n *\n * @example\n * ::: only-for javascript\n * ```js\n * const hot = new Handsontable(document.getElementById('example'), {\n *   data: getData(),\n *   comments: true,\n *   cell: [\n *     {row: 1, col: 1, comment: {value: 'Foo'}},\n *     {row: 2, col: 2, comment: {value: 'Bar'}}\n *   ]\n * });\n *\n * // Access to the Comments plugin instance:\n * const commentsPlugin = hot.getPlugin('comments');\n *\n * // Manage comments programmatically:\n * commentsPlugin.setCommentAtCell(1, 6, 'Comment contents');\n * commentsPlugin.showAtCell(1, 6);\n * commentsPlugin.removeCommentAtCell(1, 6);\n *\n * // You can also set range once and use proper methods:\n * commentsPlugin.setRange({from: {row: 1, col: 6}});\n * commentsPlugin.setComment('Comment contents');\n * commentsPlugin.show();\n * commentsPlugin.removeComment();\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * const hotRef = useRef(null);\n *\n * ...\n *\n * <HotTable\n *   ref={hotRef}\n *   data={getData()}\n *   comments={true}\n *   cell={[\n *     {row: 1, col: 1, comment: {value: 'Foo'}},\n *     {row: 2, col: 2, comment: {value: 'Bar'}}\n *   ]}\n * />\n *\n * // Access to the Comments plugin instance:\n * const hot = hotRef.current.hotInstance;\n * const commentsPlugin = hot.getPlugin('comments');\n *\n * // Manage comments programmatically:\n * commentsPlugin.setCommentAtCell(1, 6, 'Comment contents');\n * commentsPlugin.showAtCell(1, 6);\n * commentsPlugin.removeCommentAtCell(1, 6);\n *\n * // You can also set range once and use proper methods:\n * commentsPlugin.setRange({from: {row: 1, col: 6}});\n * commentsPlugin.setComment('Comment contents');\n * commentsPlugin.show();\n * commentsPlugin.removeComment();\n * ```\n * :::\n */\nvar _editor = /*#__PURE__*/new WeakMap();\nvar _displaySwitch = /*#__PURE__*/new WeakMap();\nvar _preventEditorAutoSwitch = /*#__PURE__*/new WeakMap();\nvar _preventEditorHiding = /*#__PURE__*/new WeakMap();\nvar _cellBelowCursor = /*#__PURE__*/new WeakMap();\nvar _commentValueBeforeSave = /*#__PURE__*/new WeakMap();\nvar _Comments_brand = /*#__PURE__*/new WeakSet();\nclass Comments extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * `mousedown` event callback.\n     *\n     * @param {MouseEvent} event The `mousedown` event.\n     */\n    _classPrivateMethodInitSpec(this, _Comments_brand);\n    /**\n     * Current cell range, an object with `from` property, with `row` and `col` properties (e.q. `{from: {row: 1, col: 6}}`).\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"range\", {});\n    /**\n     * Instance of {@link CommentEditor}.\n     *\n     * @private\n     * @type {CommentEditor}\n     */\n    _classPrivateFieldInitSpec(this, _editor, null);\n    /**\n     * Instance of {@link DisplaySwitch}.\n     *\n     * @private\n     * @type {DisplaySwitch}\n     */\n    _classPrivateFieldInitSpec(this, _displaySwitch, null);\n    /**\n     * Prevents showing/hiding editor that reacts on the logic triggered by the \"mouseover\" events.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _preventEditorAutoSwitch, false);\n    /**\n     * Prevents hiding editor when the table viewport is scrolled and that scroll is triggered by the\n     * keyboard shortcut that insert or edits the comment.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _preventEditorHiding, false);\n    /**\n     * The flag that allows processing mousedown event correctly when comments editor is triggered.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _cellBelowCursor, null);\n    /**\n     * Holds the comment value before it's actually saved to the cell meta.\n     *\n     * @private\n     * @type {string}\n     */\n    _classPrivateFieldInitSpec(this, _commentValueBeforeSave, '');\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link Comments#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    if (!_classPrivateFieldGet(_editor, this)) {\n      _classPrivateFieldSet(_editor, this, new _commentEditor_mjs__WEBPACK_IMPORTED_MODULE_6__[\"default\"](this.hot.rootDocument, this.hot.isRtl()));\n      _classPrivateFieldGet(_editor, this).addLocalHook('resize', function () {\n        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n          args[_key] = arguments[_key];\n        }\n        return _assertClassBrand(_Comments_brand, _this, _onEditorResize).call(_this, ...args);\n      });\n    }\n    if (!_classPrivateFieldGet(_displaySwitch, this)) {\n      _classPrivateFieldSet(_displaySwitch, this, new _displaySwitch_mjs__WEBPACK_IMPORTED_MODULE_7__[\"default\"](this.getDisplayDelaySetting()));\n    }\n    this.addHook('afterContextMenuDefaultOptions', options => this.addToContextMenu(options));\n    this.addHook('afterRenderer', (TD, row, col, prop, value, cellProperties) => _assertClassBrand(_Comments_brand, this, _onAfterRenderer).call(this, TD, cellProperties));\n    this.addHook('afterScroll', () => _assertClassBrand(_Comments_brand, this, _onAfterScroll).call(this));\n    this.addHook('afterBeginEditing', () => this.hide());\n    this.addHook('afterDocumentKeyDown', event => _assertClassBrand(_Comments_brand, this, _onAfterDocumentKeyDown).call(this, event));\n    _classPrivateFieldGet(_displaySwitch, this).addLocalHook('hide', () => this.hide());\n    _classPrivateFieldGet(_displaySwitch, this).addLocalHook('show', (row, col) => this.showAtCell(row, col));\n    this.registerShortcuts();\n    this.registerListeners();\n    super.enablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *   - [`comments`](@/api/options.md#comments)\n   */\n  updatePlugin() {\n    _classPrivateFieldGet(_displaySwitch, this).updateDelay(this.getDisplayDelaySetting());\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.unregisterShortcuts();\n    super.disablePlugin();\n  }\n\n  /**\n   * Register shortcuts responsible for toggling context menu.\n   *\n   * @private\n   */\n  registerShortcuts() {\n    const manager = this.hot.getShortcutManager();\n    const gridContext = manager.getContext('grid');\n    const pluginContext = manager.addContext(SHORTCUTS_CONTEXT_NAME);\n    gridContext.addShortcut({\n      keys: [['Control', 'Alt', 'M']],\n      callback: () => {\n        const range = this.hot.getSelectedRangeLast();\n        _classPrivateFieldSet(_preventEditorHiding, this, true);\n        this.hot.scrollToFocusedCell(() => {\n          this.setRange(range);\n          this.show();\n          this.focusEditor();\n          manager.setActiveContextName(SHORTCUTS_CONTEXT_NAME);\n          this.hot._registerTimeout(() => {\n            _classPrivateFieldSet(_preventEditorHiding, this, false);\n          });\n        });\n      },\n      stopPropagation: true,\n      runOnlyIf: () => {\n        var _this$hot$getSelected;\n        return ((_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isCell()) && !_classPrivateFieldGet(_editor, this).isVisible();\n      },\n      group: SHORTCUTS_GROUP\n    });\n    pluginContext.addShortcut({\n      keys: [['Escape']],\n      callback: () => {\n        _classPrivateFieldGet(_editor, this).setValue(_classPrivateFieldGet(_commentValueBeforeSave, this));\n        this.hide();\n        manager.setActiveContextName('grid');\n      },\n      runOnlyIf: () => _classPrivateFieldGet(_editor, this).isVisible() && _classPrivateFieldGet(_editor, this).isFocused(),\n      group: SHORTCUTS_GROUP\n    });\n    pluginContext.addShortcut({\n      keys: [['Control/Meta', 'Enter']],\n      callback: () => {\n        this.hide();\n        manager.setActiveContextName('grid');\n      },\n      runOnlyIf: () => _classPrivateFieldGet(_editor, this).isVisible() && _classPrivateFieldGet(_editor, this).isFocused(),\n      group: SHORTCUTS_GROUP\n    });\n  }\n\n  /**\n   * Unregister shortcuts responsible for toggling context menu.\n   *\n   * @private\n   */\n  unregisterShortcuts() {\n    this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);\n  }\n\n  /**\n   * Registers all necessary DOM listeners.\n   *\n   * @private\n   */\n  registerListeners() {\n    const {\n      rootDocument\n    } = this.hot;\n    const editorElement = this.getEditorInputElement();\n    this.eventManager.addEventListener(rootDocument, 'mouseover', event => _assertClassBrand(_Comments_brand, this, _onMouseOver).call(this, event));\n    this.eventManager.addEventListener(rootDocument, 'mousedown', event => _assertClassBrand(_Comments_brand, this, _onMouseDown).call(this, event));\n    this.eventManager.addEventListener(rootDocument, 'mouseup', () => _assertClassBrand(_Comments_brand, this, _onMouseUp).call(this));\n    this.eventManager.addEventListener(editorElement, 'focus', () => _assertClassBrand(_Comments_brand, this, _onEditorFocus).call(this));\n    this.eventManager.addEventListener(editorElement, 'blur', () => _assertClassBrand(_Comments_brand, this, _onEditorBlur).call(this));\n  }\n\n  /**\n   * Sets the current cell range to be able to use general methods like {@link Comments#setComment}, {@link Comments#removeComment}, {@link Comments#show}.\n   *\n   * @param {object} range Object with `from` property, each with `row` and `col` properties.\n   */\n  setRange(range) {\n    this.range = range;\n  }\n\n  /**\n   * Clears the currently selected cell.\n   */\n  clearRange() {\n    this.range = {};\n  }\n\n  /**\n   * Checks if the event target is a cell containing a comment.\n   *\n   * @private\n   * @param {Event} event DOM event.\n   * @returns {boolean}\n   */\n  targetIsCellWithComment(event) {\n    const closestCell = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"closest\"])(event.target, 'TD', 'TBODY');\n    return !!(closestCell && Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasClass\"])(closestCell, 'htCommentCell') && Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"closest\"])(closestCell, [this.hot.rootElement]));\n  }\n\n  /**\n   * Checks if the event target is a comment textarea.\n   *\n   * @private\n   * @param {Event} event DOM event.\n   * @returns {boolean}\n   */\n  targetIsCommentTextArea(event) {\n    return this.getEditorInputElement() === event.target;\n  }\n\n  /**\n   * Sets a comment for a cell according to the previously set range (see {@link Comments#setRange}).\n   *\n   * @param {string} value Comment contents.\n   */\n  setComment(value) {\n    if (!this.range.from) {\n      throw new Error('Before using this method, first set cell range (hot.getPlugin(\"comment\").setRange())');\n    }\n    const editorValue = _classPrivateFieldGet(_editor, this).getValue();\n    let comment = '';\n    if (value !== null && value !== undefined) {\n      comment = value;\n    } else if (editorValue !== null && editorValue !== undefined) {\n      comment = editorValue;\n    }\n    const row = this.range.from.row;\n    const col = this.range.from.col;\n    this.updateCommentMeta(row, col, {\n      [META_COMMENT_VALUE]: comment\n    });\n    this.hot.render();\n  }\n\n  /**\n   * Sets a comment for a specified cell.\n   *\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @param {string} value Comment contents.\n   */\n  setCommentAtCell(row, column, value) {\n    this.setRange({\n      from: this.hot._createCellCoords(row, column)\n    });\n    this.setComment(value);\n  }\n\n  /**\n   * Removes a comment from a cell according to previously set range (see {@link Comments#setRange}).\n   *\n   * @param {boolean} [forceRender=true] If set to `true`, the table will be re-rendered at the end of the operation.\n   */\n  removeComment() {\n    let forceRender = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n    if (!this.range.from) {\n      throw new Error('Before using this method, first set cell range (hot.getPlugin(\"comment\").setRange())');\n    }\n    this.hot.setCellMeta(this.range.from.row, this.range.from.col, META_COMMENT);\n    if (forceRender) {\n      this.hot.render();\n    }\n    this.hide();\n  }\n\n  /**\n   * Removes a comment from a specified cell.\n   *\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @param {boolean} [forceRender=true] If `true`, the table will be re-rendered at the end of the operation.\n   */\n  removeCommentAtCell(row, column) {\n    let forceRender = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n    this.setRange({\n      from: this.hot._createCellCoords(row, column)\n    });\n    this.removeComment(forceRender);\n  }\n\n  /**\n   * Gets comment from a cell according to previously set range (see {@link Comments#setRange}).\n   *\n   * @returns {string|undefined} Returns a content of the comment.\n   */\n  getComment() {\n    const row = this.range.from.row;\n    const column = this.range.from.col;\n    return this.getCommentMeta(row, column, META_COMMENT_VALUE);\n  }\n\n  /**\n   * Gets comment from a cell at the provided coordinates.\n   *\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @returns {string|undefined} Returns a content of the comment.\n   */\n  getCommentAtCell(row, column) {\n    return this.getCommentMeta(row, column, META_COMMENT_VALUE);\n  }\n\n  /**\n   * Shows the comment editor accordingly to the previously set range (see {@link Comments#setRange}).\n   *\n   * @returns {boolean} Returns `true` if comment editor was shown.\n   */\n  show() {\n    var _ref;\n    if (!this.range.from) {\n      throw new Error('Before using this method, first set cell range (hot.getPlugin(\"comment\").setRange())');\n    }\n    const {\n      from: {\n        row,\n        col\n      }\n    } = this.range;\n    if (row < 0 || row > this.hot.countSourceRows() - 1 || col < 0 || col > this.hot.countSourceCols() - 1) {\n      return false;\n    }\n    const meta = this.hot.getCellMeta(this.range.from.row, this.range.from.col);\n    _classPrivateFieldGet(_displaySwitch, this).cancelHiding();\n    _classPrivateFieldGet(_editor, this).setValue((_ref = meta[META_COMMENT] ? meta[META_COMMENT][META_COMMENT_VALUE] : null) !== null && _ref !== void 0 ? _ref : '');\n    _classPrivateFieldGet(_editor, this).show();\n    this.refreshEditor(true);\n    return true;\n  }\n\n  /**\n   * Shows comment editor according to cell coordinates.\n   *\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @returns {boolean} Returns `true` if comment editor was shown.\n   */\n  showAtCell(row, column) {\n    this.setRange({\n      from: this.hot._createCellCoords(row, column)\n    });\n    return this.show();\n  }\n\n  /**\n   * Hides the comment editor.\n   */\n  hide() {\n    _classPrivateFieldGet(_editor, this).hide();\n  }\n\n  /**\n   * Refreshes comment editor position and styling.\n   *\n   * @param {boolean} [force=false] If `true` then recalculation will be forced.\n   */\n  refreshEditor() {\n    var _renderableRow, _renderableColumn;\n    let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    if (!force && (!this.range.from || !_classPrivateFieldGet(_editor, this).isVisible())) {\n      return;\n    }\n    const {\n      rowIndexMapper,\n      columnIndexMapper\n    } = this.hot;\n    const {\n      row: visualRow,\n      col: visualColumn\n    } = this.range.from;\n    let renderableRow = rowIndexMapper.getRenderableFromVisualIndex(visualRow);\n    let renderableColumn = columnIndexMapper.getRenderableFromVisualIndex(visualColumn);\n    // Used when the requested row is hidden, and the editor needs to be positioned on the previous row's coords.\n    const targetingPreviousRow = renderableRow === null;\n\n    // Reset the editor position to (0, 0) so the opening direction calculation wouldn't be influenced by its\n    // previous position\n    _classPrivateFieldGet(_editor, this).setPosition(0, 0);\n    if (renderableRow === null) {\n      renderableRow = rowIndexMapper.getRenderableFromVisualIndex(rowIndexMapper.getNearestNotHiddenIndex(visualRow, -1));\n    }\n    if (renderableColumn === null) {\n      renderableColumn = columnIndexMapper.getRenderableFromVisualIndex(columnIndexMapper.getNearestNotHiddenIndex(visualColumn, -1));\n    }\n    const isBeforeRenderedRows = renderableRow === null;\n    const isBeforeRenderedColumns = renderableColumn === null;\n    renderableRow = (_renderableRow = renderableRow) !== null && _renderableRow !== void 0 ? _renderableRow : 0;\n    renderableColumn = (_renderableColumn = renderableColumn) !== null && _renderableColumn !== void 0 ? _renderableColumn : 0;\n    const {\n      rootWindow,\n      view: {\n        _wt: wt\n      }\n    } = this.hot;\n    const {\n      wtTable\n    } = wt;\n    // TODO: Probably using `hot.getCell` would be the best. However, case for showing comment editor for hidden cell\n    // potentially should be removed with that change (currently a test for it is passing).\n    const TD = wt.getCell({\n      row: renderableRow,\n      col: renderableColumn\n    }, true);\n    const commentStyle = this.getCommentMeta(visualRow, visualColumn, META_STYLE);\n    if (commentStyle) {\n      _classPrivateFieldGet(_editor, this).setSize(commentStyle.width, commentStyle.height);\n    } else {\n      _classPrivateFieldGet(_editor, this).resetSize();\n    }\n    const lastColWidth = isBeforeRenderedColumns ? 0 : wtTable.getStretchedColumnWidth(renderableColumn);\n    const lastRowHeight = targetingPreviousRow && !isBeforeRenderedRows ? Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"outerHeight\"])(TD) : 0;\n    const {\n      left,\n      top,\n      width: cellWidth,\n      height: cellHeight\n    } = TD.getBoundingClientRect();\n    const {\n      width: editorWidth,\n      height: editorHeight\n    } = _classPrivateFieldGet(_editor, this).getSize();\n    const {\n      innerWidth,\n      innerHeight\n    } = this.hot.rootWindow;\n    const documentElement = this.hot.rootDocument.documentElement;\n    let x = left + rootWindow.scrollX + lastColWidth;\n    let y = top + rootWindow.scrollY + lastRowHeight;\n    if (this.hot.isRtl()) {\n      x -= editorWidth + lastColWidth;\n    }\n\n    // flip to the right or left the comments editor position when it goes out of browser viewport\n    if (this.hot.isLtr() && left + cellWidth + editorWidth > innerWidth) {\n      x = left + rootWindow.scrollX - editorWidth - 1;\n    } else if (this.hot.isRtl() && x < -(documentElement.scrollWidth - documentElement.clientWidth)) {\n      x = left + rootWindow.scrollX + lastColWidth + 1;\n    }\n    if (top + editorHeight > innerHeight) {\n      y -= editorHeight - cellHeight + 1;\n    }\n    _classPrivateFieldGet(_editor, this).setPosition(x, y);\n    _classPrivateFieldGet(_editor, this).setReadOnlyState(this.getCommentMeta(visualRow, visualColumn, META_READONLY));\n    _classPrivateFieldGet(_editor, this).observeSize();\n  }\n\n  /**\n   * Focuses the comments editor element.\n   */\n  focusEditor() {\n    _classPrivateFieldGet(_editor, this).focus();\n  }\n\n  /**\n   * Sets or update the comment-related cell meta.\n   *\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @param {object} metaObject Object defining all the comment-related meta information.\n   */\n  updateCommentMeta(row, column, metaObject) {\n    const oldComment = this.hot.getCellMeta(row, column)[META_COMMENT];\n    let newComment;\n    if (oldComment) {\n      newComment = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"deepClone\"])(oldComment);\n      Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"deepExtend\"])(newComment, metaObject);\n    } else {\n      newComment = metaObject;\n    }\n    this.hot.setCellMeta(row, column, META_COMMENT, newComment);\n  }\n\n  /**\n   * Gets the comment related meta information.\n   *\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @param {string} property Cell meta property.\n   * @returns {Mixed}\n   */\n  getCommentMeta(row, column, property) {\n    const cellMeta = this.hot.getCellMeta(row, column);\n    if (!cellMeta[META_COMMENT]) {\n      return undefined;\n    }\n    return cellMeta[META_COMMENT][property];\n  }\n  /**\n   * Add Comments plugin options to the Context Menu.\n   *\n   * @private\n   * @param {object} options The menu options.\n   */\n  addToContextMenu(options) {\n    options.items.push({\n      name: _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"SEPARATOR\"]\n    }, Object(_contextMenuItem_addEditComment_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(this), Object(_contextMenuItem_removeComment_mjs__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(this), Object(_contextMenuItem_readOnlyComment_mjs__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(this));\n  }\n\n  /**\n   * Get `displayDelay` setting of comment plugin.\n   *\n   * @private\n   * @returns {number|undefined}\n   */\n  getDisplayDelaySetting() {\n    const commentSetting = this.hot.getSettings()[PLUGIN_KEY];\n    if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isObject\"])(commentSetting)) {\n      return commentSetting.displayDelay;\n    }\n  }\n\n  /**\n   * Gets the editors input element.\n   *\n   * @private\n   * @returns {HTMLTextAreaElement}\n   */\n  getEditorInputElement() {\n    return _classPrivateFieldGet(_editor, this).getInputElement();\n  }\n\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    var _classPrivateFieldGet2, _classPrivateFieldGet3;\n    (_classPrivateFieldGet2 = _classPrivateFieldGet(_editor, this)) === null || _classPrivateFieldGet2 === void 0 || _classPrivateFieldGet2.destroy();\n    (_classPrivateFieldGet3 = _classPrivateFieldGet(_displaySwitch, this)) === null || _classPrivateFieldGet3 === void 0 || _classPrivateFieldGet3.destroy();\n    super.destroy();\n  }\n}\nfunction _onMouseDown(event) {\n  if (!this.hot.view || !this.hot.view._wt) {\n    return;\n  }\n  if (!_classPrivateFieldGet(_preventEditorAutoSwitch, this) && !this.targetIsCommentTextArea(event)) {\n    const eventCell = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"closest\"])(event.target, 'TD', 'TBODY');\n    let coordinates = null;\n    if (eventCell) {\n      coordinates = this.hot.getCoords(eventCell);\n    }\n    if (!eventCell || this.range.from && coordinates && (this.range.from.row !== coordinates.row || this.range.from.col !== coordinates.col)) {\n      this.hide();\n    }\n  }\n}\n/**\n * `mouseover` event callback.\n *\n * @param {MouseEvent} event The `mouseover` event.\n */\nfunction _onMouseOver(event) {\n  const {\n    rootDocument\n  } = this.hot;\n  if (_classPrivateFieldGet(_preventEditorAutoSwitch, this) || _classPrivateFieldGet(_editor, this).isFocused() || Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasClass\"])(event.target, 'wtBorder') || _classPrivateFieldGet(_cellBelowCursor, this) === event.target || !_classPrivateFieldGet(_editor, this)) {\n    return;\n  }\n  _classPrivateFieldSet(_cellBelowCursor, this, rootDocument.elementFromPoint(event.clientX, event.clientY));\n  if (this.targetIsCellWithComment(event)) {\n    const range = this.hot._createCellRange(this.hot.getCoords(event.target));\n    _classPrivateFieldGet(_displaySwitch, this).show(range);\n  } else if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isChildOf\"])(event.target, rootDocument) && !this.targetIsCommentTextArea(event)) {\n    _classPrivateFieldGet(_displaySwitch, this).hide();\n  }\n}\n/**\n * `mouseup` event callback.\n */\nfunction _onMouseUp() {\n  _classPrivateFieldSet(_preventEditorAutoSwitch, this, false);\n}\n/**\n * The `afterRenderer` hook callback.\n *\n * @param {HTMLTableCellElement} TD The rendered `TD` element.\n * @param {object} cellProperties The rendered cell's property object.\n */\nfunction _onAfterRenderer(TD, cellProperties) {\n  if (cellProperties[META_COMMENT] && cellProperties[META_COMMENT][META_COMMENT_VALUE]) {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(TD, cellProperties.commentedCellClassName);\n  }\n}\n/**\n * Hook observer the \"blur\" event from the comments editor element. The hook clears the\n * editor content and gives back the keyboard shortcuts control by switching to the \"grid\" context.\n */\nfunction _onEditorBlur() {\n  _classPrivateFieldSet(_commentValueBeforeSave, this, '');\n  this.hot.getShortcutManager().setActiveContextName('grid');\n  this.setComment();\n}\n/**\n * Hook observer the \"focus\" event from the comments editor element. The hook takes the control of\n * the keyboard shortcuts by switching the context to plugins one.\n */\nfunction _onEditorFocus() {\n  _classPrivateFieldSet(_commentValueBeforeSave, this, this.getComment());\n  this.hot.listen();\n  this.hot.getShortcutManager().setActiveContextName(SHORTCUTS_CONTEXT_NAME);\n}\n/**\n * Saves the comments editor size to the cell meta.\n *\n * @param {number} width The new width of the editor.\n * @param {number} height The new height of the editor.\n */\nfunction _onEditorResize(width, height) {\n  this.updateCommentMeta(this.range.from.row, this.range.from.col, {\n    [META_STYLE]: {\n      width,\n      height\n    }\n  });\n}\n/**\n * Observes the pressed keys and if there is already opened the comment editor prevents open\n * the table editor into the fast edit mode.\n *\n * @param {Event} event The keydown event.\n */\nfunction _onAfterDocumentKeyDown(event) {\n  if (_classPrivateFieldGet(_editor, this).isVisible()) {\n    Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_3__[\"stopImmediatePropagation\"])(event);\n  }\n}\n/**\n * Observes the changes in the scroll position if triggered it hides the comment editor.\n */\nfunction _onAfterScroll() {\n  if (!_classPrivateFieldGet(_preventEditorHiding, this)) {\n    this.hide();\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/comments/comments.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/comments/contextMenuItem/addEditComment.mjs":
/*!***************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/comments/contextMenuItem/addEditComment.mjs ***!
  \***************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return addEditCommentItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n/**\n * @param {Comments} plugin The Comments plugin instance.\n * @returns {object}\n */\nfunction addEditCommentItem(plugin) {\n  return {\n    key: 'commentsAddEdit',\n    name() {\n      var _this$getSelectedRang;\n      const highlight = (_this$getSelectedRang = this.getSelectedRangeLast()) === null || _this$getSelectedRang === void 0 ? void 0 : _this$getSelectedRang.highlight;\n      if (highlight !== null && highlight !== void 0 && highlight.isCell() && plugin.getCommentAtCell(highlight.row, highlight.col)) {\n        return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_EDIT_COMMENT\"]);\n      }\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ADD_COMMENT\"]);\n    },\n    callback() {\n      const range = this.getSelectedRangeLast();\n      plugin.setRange(range);\n      plugin.show();\n      plugin.focusEditor();\n    },\n    disabled() {\n      const range = this.getSelectedRangeLast();\n      if (!range || range.highlight.isHeader() || this.selection.isEntireRowSelected() && this.selection.isEntireColumnSelected() || this.countRenderedRows() === 0 || this.countRenderedCols() === 0) {\n        return true;\n      }\n      return false;\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/comments/contextMenuItem/addEditComment.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/comments/contextMenuItem/readOnlyComment.mjs":
/*!****************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/comments/contextMenuItem/readOnlyComment.mjs ***!
  \****************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return readOnlyCommentItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _contextMenu_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../contextMenu/utils.mjs */ \"./node_modules/handsontable/plugins/contextMenu/utils.mjs\");\n/* harmony import */ var _comments_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../comments.mjs */ \"./node_modules/handsontable/plugins/comments/comments.mjs\");\n\n\n\n/**\n * @param {Comments} plugin The Comments plugin instance.\n * @returns {object}\n */\nfunction readOnlyCommentItem(plugin) {\n  return {\n    key: 'commentsReadOnly',\n    name() {\n      const label = this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_READ_ONLY_COMMENT\"]);\n      const areReadOnly = Object(_contextMenu_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"checkSelectionConsistency\"])(this.getSelectedRange(), (row, col) => {\n        return plugin.getCommentMeta(row, col, _comments_mjs__WEBPACK_IMPORTED_MODULE_2__[\"META_READONLY\"]);\n      });\n      return areReadOnly ? Object(_contextMenu_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"markLabelAsSelected\"])(label) : label;\n    },\n    callback() {\n      const range = this.getSelectedRangeLast();\n      range.forAll((row, column) => {\n        if (row >= 0 && column >= 0) {\n          const currentState = !!plugin.getCommentMeta(row, column, _comments_mjs__WEBPACK_IMPORTED_MODULE_2__[\"META_READONLY\"]);\n          plugin.updateCommentMeta(row, column, {\n            [_comments_mjs__WEBPACK_IMPORTED_MODULE_2__[\"META_READONLY\"]]: !currentState\n          });\n        }\n      });\n    },\n    disabled() {\n      const range = this.getSelectedRangeLast();\n      if (!range || range.highlight.isHeader() || !plugin.getCommentAtCell(range.highlight.row, range.highlight.col) || this.selection.isEntireRowSelected() && this.selection.isEntireColumnSelected() || this.countRenderedRows() === 0 || this.countRenderedCols() === 0) {\n        return true;\n      }\n      return false;\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/comments/contextMenuItem/readOnlyComment.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/comments/contextMenuItem/removeComment.mjs":
/*!**************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/comments/contextMenuItem/removeComment.mjs ***!
  \**************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return removeCommentItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n/**\n * @param {Comments} plugin The Comments plugin instance.\n * @returns {object}\n */\nfunction removeCommentItem(plugin) {\n  return {\n    key: 'commentsRemove',\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_COMMENT\"]);\n    },\n    callback() {\n      const range = this.getSelectedRangeLast();\n      range.forAll((row, column) => {\n        if (row >= 0 && column >= 0) {\n          plugin.removeCommentAtCell(row, column, false);\n        }\n      });\n      this.render();\n    },\n    disabled() {\n      const range = this.getSelectedRangeLast();\n      if (!range || range.highlight.isHeader() || this.selection.isEntireRowSelected() && this.selection.isEntireColumnSelected() || this.countRenderedRows() === 0 || this.countRenderedCols() === 0) {\n        return true;\n      }\n      return false;\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/comments/contextMenuItem/removeComment.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/comments/displaySwitch.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/comments/displaySwitch.mjs ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\nconst DEFAULT_DISPLAY_DELAY = 250;\nconst DEFAULT_HIDE_DELAY = 250;\n\n/**\n * Display switch for the Comments plugin. Manages the time of delayed displaying / hiding comments.\n *\n * @private\n * @class DisplaySwitch\n */\nclass DisplaySwitch {\n  constructor(displayDelay) {\n    /**\n     * Flag to determine if comment can be showed or hidden. State `true` mean that last performed action\n     * was an attempt to show comment element. State `false` mean that it was attempt to hide comment element.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"wasLastActionShow\", true);\n    /**\n     * Show comment after predefined delay. It keeps reference to immutable `debounce` function.\n     *\n     * @type {Function}\n     */\n    _defineProperty(this, \"showDebounced\", null);\n    /**\n     * Reference to timer, run by `setTimeout`, which is hiding comment.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"hidingTimer\", null);\n    this.updateDelay(displayDelay);\n  }\n\n  /**\n   * Responsible for hiding comment after proper delay.\n   */\n  hide() {\n    this.wasLastActionShow = false;\n    this.hidingTimer = setTimeout(() => {\n      if (this.wasLastActionShow === false) {\n        this.runLocalHooks('hide');\n      }\n    }, DEFAULT_HIDE_DELAY);\n  }\n\n  /**\n   * Responsible for showing comment after proper delay.\n   *\n   * @param {object} range Coordinates of selected cell.\n   */\n  show(range) {\n    this.wasLastActionShow = true;\n    this.showDebounced(range);\n  }\n\n  /**\n   * Cancel hiding comment.\n   */\n  cancelHiding() {\n    this.wasLastActionShow = true;\n    clearTimeout(this.hidingTimer);\n    this.hidingTimer = null;\n  }\n\n  /**\n   * Update the switch settings.\n   *\n   * @param {number} displayDelay Delay of showing the comments (in milliseconds).\n   */\n  updateDelay() {\n    let displayDelay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_DISPLAY_DELAY;\n    this.showDebounced = Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_1__[\"debounce\"])(range => {\n      if (this.wasLastActionShow) {\n        this.runLocalHooks('show', range.from.row, range.from.col);\n      }\n    }, displayDelay);\n  }\n\n  /**\n   * Destroy the switcher.\n   */\n  destroy() {\n    this.clearLocalHooks();\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"mixin\"])(DisplaySwitch, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (DisplaySwitch);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/comments/displaySwitch.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/comments/editorResizeObserver.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/comments/editorResizeObserver.mjs ***!
  \*****************************************************************************/
/*! exports provided: EditorResizeObserver */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EditorResizeObserver\", function() { return EditorResizeObserver; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n/**\n * Module that observes the editor size after it has been resized by the user.\n *\n * @private\n * @class EditorResizeObserver\n */\nvar _ignoreInitialCall = /*#__PURE__*/new WeakMap();\nvar _observedElement = /*#__PURE__*/new WeakMap();\nvar _observer = /*#__PURE__*/new WeakMap();\nvar _EditorResizeObserver_brand = /*#__PURE__*/new WeakSet();\nclass EditorResizeObserver {\n  constructor() {\n    /**\n     * Listens for event from the ResizeObserver and forwards the through the local hooks.\n     *\n     * @param {*} entries The entries from the ResizeObserver.\n     */\n    _classPrivateMethodInitSpec(this, _EditorResizeObserver_brand);\n    /**\n     * The flag that indicates if the initial call should be ignored. It is used to prevent the initial call\n     * that happens after the observer is attached to the element.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _ignoreInitialCall, true);\n    /**\n     * The element that is observed by the observer.\n     *\n     * @type {HTMLElement}\n     */\n    _classPrivateFieldInitSpec(this, _observedElement, null);\n    /**\n     * The ResizeObserver instance.\n     *\n     * @type {ResizeObserver}\n     */\n    _classPrivateFieldInitSpec(this, _observer, new ResizeObserver(entries => _assertClassBrand(_EditorResizeObserver_brand, this, _onResize).call(this, entries)));\n  }\n  /**\n   * Sets the observed element.\n   *\n   * @param {HTMLElement} element The element to observe.\n   */\n  setObservedElement(element) {\n    _classPrivateFieldSet(_observedElement, this, element);\n  }\n\n  /**\n   * Stops observing the element.\n   */\n  unobserve() {\n    _classPrivateFieldGet(_observer, this).unobserve(_classPrivateFieldGet(_observedElement, this));\n  }\n\n  /**\n   * Starts observing the element.\n   */\n  observe() {\n    _classPrivateFieldSet(_ignoreInitialCall, this, true);\n    _classPrivateFieldGet(_observer, this).observe(_classPrivateFieldGet(_observedElement, this));\n  }\n\n  /**\n   * Destroys the observer.\n   */\n  destroy() {\n    _classPrivateFieldGet(_observer, this).disconnect();\n  }\n}\nfunction _onResize(entries) {\n  if (_classPrivateFieldGet(_ignoreInitialCall, this) || !Array.isArray(entries) || !entries.length) {\n    _classPrivateFieldSet(_ignoreInitialCall, this, false);\n    return;\n  }\n  entries.forEach(_ref => {\n    let {\n      borderBoxSize\n    } = _ref;\n    const {\n      inlineSize,\n      blockSize\n    } = borderBoxSize[0];\n    this.runLocalHooks('resize', inlineSize, blockSize);\n  });\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"mixin\"])(EditorResizeObserver, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/comments/editorResizeObserver.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/comments/index.mjs":
/*!**************************************************************!*\
  !*** ./node_modules/handsontable/plugins/comments/index.mjs ***!
  \**************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, Comments */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _comments_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./comments.mjs */ \"./node_modules/handsontable/plugins/comments/comments.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _comments_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _comments_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Comments\", function() { return _comments_mjs__WEBPACK_IMPORTED_MODULE_0__[\"Comments\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/comments/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/commandExecutor.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/commandExecutor.mjs ***!
  \***************************************************************************/
/*! exports provided: CommandExecutor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CommandExecutor\", function() { return CommandExecutor; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_unshift_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.unshift.js */ \"./node_modules/core-js/modules/es.array.unshift.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n/**\n * Command executor for ContextMenu.\n *\n * @private\n * @class CommandExecutor\n */\nclass CommandExecutor {\n  constructor(hotInstance) {\n    /**\n     * @type {Core}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * @type {object}\n     */\n    _defineProperty(this, \"commands\", {});\n    /**\n     * @type {Function}\n     */\n    _defineProperty(this, \"commonCallback\", null);\n    this.hot = hotInstance;\n  }\n\n  /**\n   * Register command.\n   *\n   * @param {string} name Command name.\n   * @param {object} commandDescriptor Command descriptor object with properties like `key` (command id),\n   *                                   `callback` (task to execute), `name` (command name), `disabled` (command availability).\n   */\n  registerCommand(name, commandDescriptor) {\n    this.commands[name] = commandDescriptor;\n  }\n\n  /**\n   * Set common callback which will be trigger on every executed command.\n   *\n   * @param {Function} callback Function which will be fired on every command execute.\n   */\n  setCommonCallback(callback) {\n    this.commonCallback = callback;\n  }\n\n  /**\n   * Execute command by its name.\n   *\n   * @param {string} commandName Command id.\n   * @param {*} params Arguments passed to command task.\n   */\n  execute(commandName) {\n    for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      params[_key - 1] = arguments[_key];\n    }\n    const commandSplit = commandName.split(':');\n    const commandNamePrimary = commandSplit[0];\n    const subCommandName = commandSplit.length === 2 ? commandSplit[1] : null;\n    let command = this.commands[commandNamePrimary];\n    if (!command) {\n      throw new Error(`Menu command '${commandNamePrimary}' not exists.`);\n    }\n    if (subCommandName && command.submenu) {\n      command = findSubCommand(subCommandName, command.submenu.items);\n    }\n    if (command.disabled === true) {\n      return;\n    }\n    if (typeof command.disabled === 'function' && command.disabled.call(this.hot) === true) {\n      return;\n    }\n    if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"hasOwnProperty\"])(command, 'submenu')) {\n      return;\n    }\n    const callbacks = [];\n    if (typeof command.callback === 'function') {\n      callbacks.push(command.callback);\n    }\n    if (typeof this.commonCallback === 'function') {\n      callbacks.push(this.commonCallback);\n    }\n    params.unshift(commandSplit.join(':'));\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(callbacks, callback => callback.apply(this.hot, params));\n  }\n}\n\n/**\n * @param {string} subCommandName The subcommand name.\n * @param {string[]} subCommands The collection of the commands.\n * @returns {boolean}\n */\nfunction findSubCommand(subCommandName, subCommands) {\n  let command;\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(subCommands, cmd => {\n    const cmds = cmd.key ? cmd.key.split(':') : null;\n    if (Array.isArray(cmds) && cmds[1] === subCommandName) {\n      command = cmd;\n      return false;\n    }\n  });\n  return command;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/commandExecutor.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/contextMenu.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/contextMenu.mjs ***!
  \***********************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ContextMenu */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ContextMenu\", function() { return ContextMenu; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _commandExecutor_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./commandExecutor.mjs */ \"./node_modules/handsontable/plugins/contextMenu/commandExecutor.mjs\");\n/* harmony import */ var _itemsFactory_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./itemsFactory.mjs */ \"./node_modules/handsontable/plugins/contextMenu/itemsFactory.mjs\");\n/* harmony import */ var _menu_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./menu/index.mjs */ \"./node_modules/handsontable/plugins/contextMenu/menu/index.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/plugins/contextMenu/utils.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./predefinedItems/index.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/index.mjs\");\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\nconst PLUGIN_KEY = 'contextMenu';\nconst PLUGIN_PRIORITY = 70;\nconst SHORTCUTS_GROUP = PLUGIN_KEY;\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getSingleton().register('afterContextMenuDefaultOptions');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getSingleton().register('beforeContextMenuShow');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getSingleton().register('afterContextMenuShow');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getSingleton().register('afterContextMenuHide');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getSingleton().register('afterContextMenuExecute');\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * @class ContextMenu\n * @description\n * This plugin creates the Handsontable Context Menu. It allows to create a new row or column at any place in the\n * grid among [other features](@/guides/accessories-and-menus/context-menu/context-menu.md#context-menu-with-specific-options).\n * Possible values:\n * * `true` (to enable default options),\n * * `false` (to disable completely)\n * * `{ uiContainer: containerDomElement }` (to declare a container for all of the Context Menu's dom elements to be placed in).\n * * An array of [the available strings](@/guides/accessories-and-menus/context-menu/context-menu.md#context-menu-with-specific-options)\n *\n * See [the context menu demo](@/guides/accessories-and-menus/context-menu/context-menu.md) for examples.\n *\n * @example\n * ```js\n * // as a boolean\n * contextMenu: true\n * // as a array\n * contextMenu: ['row_above', 'row_below', '---------', 'undo', 'redo']\n * ```\n *\n * @plugin ContextMenu\n */\nvar _ContextMenu_brand = /*#__PURE__*/new WeakSet();\nclass ContextMenu extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * On contextmenu listener.\n     *\n     * @param {Event} event The mouse event object.\n     */\n    _classPrivateMethodInitSpec(this, _ContextMenu_brand);\n    /**\n     * Instance of {@link CommandExecutor}.\n     *\n     * @private\n     * @type {CommandExecutor}\n     */\n    _defineProperty(this, \"commandExecutor\", new _commandExecutor_mjs__WEBPACK_IMPORTED_MODULE_5__[\"CommandExecutor\"](this.hot));\n    /**\n     * Instance of {@link ItemsFactory}.\n     *\n     * @private\n     * @type {ItemsFactory}\n     */\n    _defineProperty(this, \"itemsFactory\", null);\n    /**\n     * Instance of {@link Menu}.\n     *\n     * @private\n     * @type {Menu}\n     */\n    _defineProperty(this, \"menu\", null);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  static get PLUGIN_DEPS() {\n    return ['plugin:AutoColumnSize'];\n  }\n\n  /**\n   * Context menu default items order when `contextMenu` options is set as `true`.\n   *\n   * @returns {string[]}\n   */\n  static get DEFAULT_ITEMS() {\n    return [_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"ROW_ABOVE\"], _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"ROW_BELOW\"], _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"SEPARATOR\"], _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"COLUMN_LEFT\"], _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"COLUMN_RIGHT\"], _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"SEPARATOR\"], _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"REMOVE_ROW\"], _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"REMOVE_COLUMN\"], _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"SEPARATOR\"], _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"UNDO\"], _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"REDO\"], _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"SEPARATOR\"], _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"READ_ONLY\"], _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"SEPARATOR\"], _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"ALIGNMENT\"]];\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link ContextMenu#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    const settings = this.hot.getSettings()[PLUGIN_KEY];\n    if (typeof settings.callback === 'function') {\n      this.commandExecutor.setCommonCallback(settings.callback);\n    }\n    this.menu = new _menu_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"Menu\"](this.hot, {\n      className: 'htContextMenu',\n      keepInViewport: true,\n      container: settings.uiContainer || this.hot.rootDocument.body\n    });\n    this.menu.addLocalHook('beforeOpen', () => _assertClassBrand(_ContextMenu_brand, this, _onMenuBeforeOpen).call(this));\n    this.menu.addLocalHook('afterOpen', () => _assertClassBrand(_ContextMenu_brand, this, _onMenuAfterOpen).call(this));\n    this.menu.addLocalHook('afterClose', () => _assertClassBrand(_ContextMenu_brand, this, _onMenuAfterClose).call(this));\n    this.menu.addLocalHook('executeCommand', function () {\n      for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n        params[_key] = arguments[_key];\n      }\n      return _this.executeCommand.call(_this, ...params);\n    });\n    this.addHook('afterOnCellContextMenu', event => _assertClassBrand(_ContextMenu_brand, this, _onAfterOnCellContextMenu).call(this, event));\n    this.registerShortcuts();\n    super.enablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`contextMenu`](@/api/options.md#contextmenu)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.close();\n    if (this.menu) {\n      this.menu.destroy();\n      this.menu = null;\n    }\n    this.unregisterShortcuts();\n    super.disablePlugin();\n  }\n\n  /**\n   * Register shortcuts responsible for toggling context menu.\n   *\n   * @private\n   */\n  registerShortcuts() {\n    this.hot.getShortcutManager().getContext('grid').addShortcut({\n      keys: [['Control/Meta', 'Shift', 'Backslash'], ['Shift', 'F10']],\n      callback: () => {\n        const {\n          highlight\n        } = this.hot.getSelectedRangeLast();\n        this.hot.scrollToFocusedCell();\n        const rect = this.hot.getCell(highlight.row, highlight.col, true).getBoundingClientRect();\n        const offset = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"getDocumentOffsetByElement\"])(this.menu.container, this.hot.rootDocument);\n        this.open({\n          left: rect.left + offset.left,\n          top: rect.top + offset.top - 1 + rect.height\n        }, {\n          left: rect.width,\n          above: -rect.height\n        });\n        // Make sure the first item is selected (role=menuitem). Otherwise, screen readers\n        // will block the Esc key for the whole menu.\n        this.menu.getNavigator().toFirstItem();\n      },\n      runOnlyIf: () => {\n        var _this$hot$getSelected;\n        const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;\n        return highlight && this.hot.selection.isCellVisible(highlight) && !this.menu.isOpened();\n      },\n      group: SHORTCUTS_GROUP\n    });\n  }\n\n  /**\n   * Unregister shortcuts responsible for toggling context menu.\n   *\n   * @private\n   */\n  unregisterShortcuts() {\n    this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);\n  }\n\n  /**\n   * Opens menu and re-position it based on the passed coordinates.\n   *\n   * @param {{ top: number, left: number }|Event} position An object with `top` and `left` properties\n   * which contains coordinates relative to the browsers viewport (without included scroll offsets).\n   * Or if the native event is passed the menu will be positioned based on the `pageX` and `pageY`\n   * coordinates.\n   * @param {{ above: number, below: number, left: number, right: number }} offset An object allows applying\n   * the offset to the menu position.\n   * @fires Hooks#beforeContextMenuShow\n   * @fires Hooks#afterContextMenuShow\n   */\n  open(position) {\n    var _this$menu;\n    let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n      above: 0,\n      below: 0,\n      left: 0,\n      right: 0\n    };\n    if ((_this$menu = this.menu) !== null && _this$menu !== void 0 && _this$menu.isOpened()) {\n      return;\n    }\n    this.prepareMenuItems();\n    this.menu.open();\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_4__[\"objectEach\"])(offset, (value, key) => {\n      this.menu.setOffset(key, value);\n    });\n    this.menu.setPosition(position);\n  }\n\n  /**\n   * Closes the menu.\n   */\n  close() {\n    var _this$menu2;\n    (_this$menu2 = this.menu) === null || _this$menu2 === void 0 || _this$menu2.close();\n    this.itemsFactory = null;\n  }\n\n  /**\n   * Execute context menu command.\n   *\n   * The `executeCommand()` method works only for selected cells.\n   *\n   * When no cells are selected, `executeCommand()` doesn't do anything.\n   *\n   * You can execute all predefined commands:\n   *  * `'row_above'` - Insert row above\n   *  * `'row_below'` - Insert row below\n   *  * `'col_left'` - Insert column left\n   *  * `'col_right'` - Insert column right\n   *  * `'clear_column'` - Clear selected column\n   *  * `'remove_row'` - Remove row\n   *  * `'remove_col'` - Remove column\n   *  * `'undo'` - Undo last action\n   *  * `'redo'` - Redo last action\n   *  * `'make_read_only'` - Make cell read only\n   *  * `'alignment:left'` - Alignment to the left\n   *  * `'alignment:top'` - Alignment to the top\n   *  * `'alignment:right'` - Alignment to the right\n   *  * `'alignment:bottom'` - Alignment to the bottom\n   *  * `'alignment:middle'` - Alignment to the middle\n   *  * `'alignment:center'` - Alignment to the center (justify).\n   *\n   * Or you can execute command registered in settings where `key` is your command name.\n   *\n   * @param {string} commandName The command name to be executed.\n   * @param {*} params Additional parameters passed to command executor module.\n   */\n  executeCommand(commandName) {\n    if (this.itemsFactory === null) {\n      this.prepareMenuItems();\n    }\n    for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n      params[_key2 - 1] = arguments[_key2];\n    }\n    this.commandExecutor.execute(commandName, ...params);\n  }\n\n  /**\n   * Prepares available contextMenu's items list and registers them in commandExecutor.\n   *\n   * @private\n   * @fires Hooks#afterContextMenuDefaultOptions\n   * @fires Hooks#beforeContextMenuSetItems\n   */\n  prepareMenuItems() {\n    this.itemsFactory = new _itemsFactory_mjs__WEBPACK_IMPORTED_MODULE_6__[\"ItemsFactory\"](this.hot, ContextMenu.DEFAULT_ITEMS);\n    const settings = this.hot.getSettings()[PLUGIN_KEY];\n    const predefinedItems = {\n      items: this.itemsFactory.getItems(settings)\n    };\n    this.hot.runHooks('afterContextMenuDefaultOptions', predefinedItems);\n    this.itemsFactory.setPredefinedItems(predefinedItems.items);\n    const menuItems = this.itemsFactory.getItems(settings);\n    this.hot.runHooks('beforeContextMenuSetItems', menuItems);\n    this.menu.setMenuItems(menuItems);\n\n    // Register all commands. Predefined and added by user or by plugins\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(menuItems, command => this.commandExecutor.registerCommand(command.key, command));\n  }\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    this.close();\n    if (this.menu) {\n      this.menu.destroy();\n    }\n    super.destroy();\n  }\n}\nfunction _onAfterOnCellContextMenu(event) {\n  const settings = this.hot.getSettings();\n  const showRowHeaders = settings.rowHeaders;\n  const showColHeaders = settings.colHeaders;\n\n  /**\n   * @private\n   * @param {HTMLElement} element The element to validate.\n   * @returns {boolean}\n   */\n  function isValidElement(element) {\n    return element.nodeName === 'TD' || element.parentNode.nodeName === 'TD';\n  }\n  const element = event.target;\n  this.close();\n  if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_9__[\"hasClass\"])(element, 'handsontableInput')) {\n    return;\n  }\n  event.preventDefault();\n  event.stopPropagation();\n  if (!(showRowHeaders || showColHeaders)) {\n    if (!isValidElement(element) && !(Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_9__[\"hasClass\"])(element, 'current') && Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_9__[\"hasClass\"])(element, 'wtBorder'))) {\n      return;\n    }\n  }\n  const offset = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"getDocumentOffsetByElement\"])(this.menu.container, this.hot.rootDocument);\n  this.open({\n    top: event.clientY + offset.top,\n    left: event.clientX + offset.left\n  });\n}\n/**\n * On menu before open listener.\n */\nfunction _onMenuBeforeOpen() {\n  this.hot.runHooks('beforeContextMenuShow', this);\n}\n/**\n * On menu after open listener.\n */\nfunction _onMenuAfterOpen() {\n  this.hot.runHooks('afterContextMenuShow', this);\n}\n/**\n * On menu after close listener.\n */\nfunction _onMenuAfterClose() {\n  this.hot.listen();\n  this.hot.runHooks('afterContextMenuHide', this);\n}\nContextMenu.SEPARATOR = {\n  name: _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"SEPARATOR\"]\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/contextMenu.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/index.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/index.mjs ***!
  \*****************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ContextMenu */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _contextMenu_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./contextMenu.mjs */ \"./node_modules/handsontable/plugins/contextMenu/contextMenu.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _contextMenu_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _contextMenu_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ContextMenu\", function() { return _contextMenu_mjs__WEBPACK_IMPORTED_MODULE_0__[\"ContextMenu\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/itemsFactory.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/itemsFactory.mjs ***!
  \************************************************************************/
/*! exports provided: ItemsFactory */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ItemsFactory\", function() { return ItemsFactory; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./predefinedItems/index.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/index.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n/**\n * Predefined items class factory for menu items.\n *\n * @private\n * @class ItemsFactory\n */\nclass ItemsFactory {\n  constructor(hotInstance) {\n    let orderPattern = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    /**\n     * @type {Core}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * @type {object}\n     */\n    _defineProperty(this, \"predefinedItems\", Object(_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"predefinedItems\"])());\n    /**\n     * @type {Array}\n     */\n    _defineProperty(this, \"defaultOrderPattern\", void 0);\n    this.hot = hotInstance;\n    this.defaultOrderPattern = orderPattern;\n  }\n\n  /**\n   * Set predefined items.\n   *\n   * @param {Array} predefinedItemsCollection Array of predefined items.\n   */\n  setPredefinedItems(predefinedItemsCollection) {\n    const items = {};\n    this.defaultOrderPattern.length = 0;\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"objectEach\"])(predefinedItemsCollection, (value, key) => {\n      let menuItemKey = '';\n      if (value.name === _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"SEPARATOR\"]) {\n        items[_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"SEPARATOR\"]] = value;\n        menuItemKey = _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"SEPARATOR\"];\n\n        // Menu item added as a property to array\n      } else if (isNaN(parseInt(key, 10))) {\n        value.key = value.key === undefined ? key : value.key;\n        items[key] = value;\n        menuItemKey = value.key;\n      } else {\n        items[value.key] = value;\n        menuItemKey = value.key;\n      }\n      this.defaultOrderPattern.push(menuItemKey);\n    });\n    this.predefinedItems = items;\n  }\n\n  /**\n   * Get all menu items based on pattern.\n   *\n   * @param {Array|object|boolean} pattern Pattern which you can define by displaying menu items order. If `true` default\n   *                                       pattern will be used.\n   * @returns {Array}\n   */\n  getItems() {\n    let pattern = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    return getItems(pattern, this.defaultOrderPattern, this.predefinedItems);\n  }\n}\n\n/**\n * @param {object[]} itemsPattern The user defined menu items collection.\n * @param {object[]} defaultPattern The menu default items collection.\n * @param {object} items Additional options.\n * @returns {object[]} Returns parsed and merged menu items collection ready to render.\n */\nfunction getItems() {\n  let itemsPattern = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n  let defaultPattern = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  let items = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  const result = [];\n  let pattern = itemsPattern;\n  if (pattern && pattern.items) {\n    pattern = pattern.items;\n  } else if (!Array.isArray(pattern)) {\n    pattern = defaultPattern;\n  }\n  if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isObject\"])(pattern)) {\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"objectEach\"])(pattern, (value, key) => {\n      let item = items[typeof value === 'string' ? value : key];\n      if (!item) {\n        item = value;\n      }\n      if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isObject\"])(value)) {\n        Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"extend\"])(item, value);\n      } else if (typeof item === 'string') {\n        item = {\n          name: item\n        };\n      }\n      if (item.key === undefined) {\n        item.key = key;\n      }\n      result.push(item);\n    });\n  } else {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(pattern, (name, key) => {\n      let item = items[name];\n\n      // Item deleted from settings `allowInsertRow: false` etc.\n      if (!item && _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"ITEMS\"].indexOf(name) >= 0) {\n        return;\n      }\n      if (!item) {\n        item = {\n          name,\n          key: `${key}`\n        };\n      }\n      if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isObject\"])(name)) {\n        Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"extend\"])(item, name);\n      }\n      if (item.key === undefined) {\n        item.key = key;\n      }\n      result.push(item);\n    });\n  }\n  return result;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/itemsFactory.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/menu/cursor.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/menu/cursor.mjs ***!
  \***********************************************************************/
/*! exports provided: Cursor */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Cursor\", function() { return Cursor; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * Helper class for checking if element will fit at the desired side of cursor.\n *\n * @private\n * @class Cursor\n */\nclass Cursor {\n  constructor(object, rootWindow) {\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"top\", void 0);\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"topRelative\", void 0);\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"left\", void 0);\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"leftRelative\", void 0);\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"scrollTop\", void 0);\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"scrollLeft\", void 0);\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"cellHeight\", void 0);\n    /**\n     * @type {number}\n     */\n    _defineProperty(this, \"cellWidth\", void 0);\n    const windowScrollTop = rootWindow.scrollY;\n    const windowScrollLeft = rootWindow.scrollX;\n    let top;\n    let topRelative;\n    let left;\n    let leftRelative;\n    let cellHeight;\n    let cellWidth;\n    this.rootWindow = rootWindow;\n    this.type = this.getSourceType(object);\n    if (this.type === 'literal') {\n      top = parseInt(object.top, 10);\n      left = parseInt(object.left, 10);\n      cellHeight = object.height || 0;\n      cellWidth = object.width || 0;\n      topRelative = top;\n      leftRelative = left;\n      top += windowScrollTop;\n      left += windowScrollLeft;\n    } else if (this.type === 'event') {\n      top = parseInt(object.pageY, 10);\n      left = parseInt(object.pageX, 10);\n      cellHeight = object.target.clientHeight;\n      cellWidth = object.target.clientWidth;\n      topRelative = top - windowScrollTop;\n      leftRelative = left - windowScrollLeft;\n    }\n    this.top = top;\n    this.topRelative = topRelative;\n    this.left = left;\n    this.leftRelative = leftRelative;\n    this.scrollTop = windowScrollTop;\n    this.scrollLeft = windowScrollLeft;\n    this.cellHeight = cellHeight;\n    this.cellWidth = cellWidth;\n  }\n\n  /**\n   * Get source type name.\n   *\n   * @param {*} object Event or Object with coordinates.\n   * @returns {string} Returns one of this values: `'literal'`, `'event'`.\n   */\n  getSourceType(object) {\n    let type = 'literal';\n    if (object instanceof Event) {\n      type = 'event';\n    }\n    return type;\n  }\n\n  /**\n   * Checks if element can be placed above the cursor.\n   *\n   * @param {HTMLElement} element Element to check if it's size will fit above the cursor.\n   * @returns {boolean}\n   */\n  fitsAbove(element) {\n    return this.topRelative >= element.offsetHeight;\n  }\n\n  /**\n   * Checks if element can be placed below the cursor.\n   *\n   * @param {HTMLElement} element Element to check if it's size will fit below the cursor.\n   * @param {number} [viewportHeight] The viewport height.\n   * @returns {boolean}\n   */\n  fitsBelow(element) {\n    let viewportHeight = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rootWindow.innerHeight;\n    return this.topRelative + element.offsetHeight <= viewportHeight;\n  }\n\n  /**\n   * Checks if element can be placed on the right of the cursor.\n   *\n   * @param {HTMLElement} element Element to check if it's size will fit on the right of the cursor.\n   * @param {number} [viewportWidth] The viewport width.\n   * @returns {boolean}\n   */\n  fitsOnRight(element) {\n    let viewportWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rootWindow.innerWidth;\n    return this.leftRelative + this.cellWidth + element.offsetWidth <= viewportWidth;\n  }\n\n  /**\n   * Checks if element can be placed on the left on the cursor.\n   *\n   * @param {HTMLElement} element Element to check if it's size will fit on the left of the cursor.\n   * @returns {boolean}\n   */\n  fitsOnLeft(element) {\n    return this.leftRelative >= element.offsetWidth;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/menu/cursor.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/menu/defaultShortcutsList.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/menu/defaultShortcutsList.mjs ***!
  \*************************************************************************************/
/*! exports provided: createDefaultShortcutsList */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createDefaultShortcutsList\", function() { return createDefaultShortcutsList; });\n/**\n * Creates a keyboard shortcuts list with default keyboards binds.\n *\n * @param {Menu} menu The main menu instance.\n * @returns {KeyboardShortcut[]}\n */\nfunction createDefaultShortcutsList(menu) {\n  const {\n    hot,\n    hotMenu\n  } = menu;\n  return [{\n    keys: [['Control/Meta', 'A']],\n    forwardToContext: hot.getShortcutManager().getContext('grid'),\n    callback: () => menu.close(true)\n  }, {\n    keys: [['Tab'], ['Shift', 'Tab']],\n    callback: (event, keys) => {\n      const settings = hot.getSettings();\n      const tabMoves = typeof settings.tabMoves === 'function' ? settings.tabMoves(event) : settings.tabMoves;\n      if (keys.includes('shift')) {\n        hot.selection.transformStart(-tabMoves.row, -tabMoves.col);\n      } else {\n        hot.selection.transformStart(tabMoves.row, tabMoves.col);\n      }\n      menu.close(true);\n    }\n  }, {\n    keys: [['Escape']],\n    callback: () => menu.close()\n  }, {\n    keys: [['ArrowDown']],\n    callback: () => menu.getNavigator().toNextItem()\n  }, {\n    keys: [['ArrowUp']],\n    callback: () => menu.getNavigator().toPreviousItem()\n  }, {\n    keys: [['ArrowRight']],\n    callback: () => {\n      const selection = hotMenu.getSelectedLast();\n      if (selection) {\n        const subMenu = menu.openSubMenu(selection[0]);\n        if (subMenu) {\n          subMenu.getNavigator().toFirstItem();\n        }\n      }\n    }\n  }, {\n    keys: [['ArrowLeft']],\n    callback: () => {\n      const selection = hotMenu.getSelectedLast();\n      if (selection && menu.isSubMenu()) {\n        menu.close();\n        if (menu.isSubMenu()) {\n          menu.parentMenu.hotMenu.listen();\n        }\n      }\n    }\n  }, {\n    keys: [['Control/Meta', 'ArrowUp'], ['Home']],\n    callback: () => menu.getNavigator().toFirstItem()\n  }, {\n    keys: [['Control/Meta', 'ArrowDown'], ['End']],\n    callback: () => menu.getNavigator().toLastItem()\n  }, {\n    keys: [['Enter'], ['Space']],\n    callback: event => {\n      const selection = hotMenu.getSelectedLast();\n      if (!selection) {\n        return;\n      }\n      if (hotMenu.getSourceDataAtRow(selection[0]).submenu) {\n        menu.openSubMenu(selection[0]).getNavigator().toFirstItem();\n      } else {\n        menu.executeCommand(event);\n        menu.close(true);\n      }\n    }\n  }, {\n    keys: [['PageUp']],\n    callback: () => {\n      const selection = hotMenu.getSelectedLast();\n      if (selection) {\n        hotMenu.selection.transformStart(-hotMenu.countVisibleRows(), 0);\n      } else {\n        menu.getNavigator().toFirstItem();\n      }\n    }\n  }, {\n    keys: [['PageDown']],\n    callback: () => {\n      const selection = hotMenu.getSelectedLast();\n      if (selection) {\n        hotMenu.selection.transformStart(hotMenu.countVisibleRows(), 0);\n      } else {\n        menu.getNavigator().toLastItem();\n      }\n    }\n  }];\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/menu/defaultShortcutsList.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/menu/index.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/menu/index.mjs ***!
  \**********************************************************************/
/*! exports provided: Menu */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _menu_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./menu.mjs */ \"./node_modules/handsontable/plugins/contextMenu/menu/menu.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Menu\", function() { return _menu_mjs__WEBPACK_IMPORTED_MODULE_0__[\"Menu\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/menu/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/menu/menu.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/menu/menu.mjs ***!
  \*********************************************************************/
/*! exports provided: Menu */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Menu\", function() { return Menu; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _positioner_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./positioner.mjs */ \"./node_modules/handsontable/plugins/contextMenu/menu/positioner.mjs\");\n/* harmony import */ var _navigator_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./navigator.mjs */ \"./node_modules/handsontable/plugins/contextMenu/menu/navigator.mjs\");\n/* harmony import */ var _shortcuts_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./shortcuts.mjs */ \"./node_modules/handsontable/plugins/contextMenu/menu/shortcuts.mjs\");\n/* harmony import */ var _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../predefinedItems/index.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/index.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/plugins/contextMenu/menu/utils.mjs\");\n/* harmony import */ var _eventManager_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../eventManager.mjs */ \"./node_modules/handsontable/eventManager.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../helpers/browser.mjs */ \"./node_modules/handsontable/helpers/browser.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n/* harmony import */ var _menuItemRenderer_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./menuItemRenderer.mjs */ \"./node_modules/handsontable/plugins/contextMenu/menu/menuItemRenderer.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst MIN_WIDTH = 215;\n\n/**\n * @typedef MenuOptions\n * @property {Menu} [parent=null] Instance of {@link Menu}.\n * @property {string} [name=null] Name of the menu.\n * @property {string} [className=''] Custom class name.\n * @property {boolean} [keepInViewport=true] Determine if should be kept in viewport.\n * @property {boolean} [standalone] Enabling closing menu when clicked element is not belongs to menu itself.\n * @property {number} [minWidth=MIN_WIDTH] The minimum width.\n * @property {HTMLElement} [container] The container.\n */\n\n/**\n * @private\n * @class Menu\n */\nvar _navigator = /*#__PURE__*/new WeakMap();\nvar _shortcutsCtrl = /*#__PURE__*/new WeakMap();\nclass Menu {\n  /**\n   * @param {Core} hotInstance Handsontable instance.\n   * @param {MenuOptions} [options] Menu options.\n   */\n  constructor(hotInstance, options) {\n    var _this = this;\n    /**\n     * The Handsontable instance.\n     *\n     * @type {Core}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * The Menu options.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"options\", void 0);\n    /**\n     * @type {EventManager}\n     */\n    _defineProperty(this, \"eventManager\", new _eventManager_mjs__WEBPACK_IMPORTED_MODULE_7__[\"default\"](this));\n    /**\n     * The Menu container element.\n     *\n     * @type {HTMLElement}\n     */\n    _defineProperty(this, \"container\", void 0);\n    /**\n     * @type {Positioner}\n     */\n    _defineProperty(this, \"positioner\", void 0);\n    /**\n     * The instance of the Handsontable that is used as a menu.\n     *\n     * @type {Core}\n     */\n    _defineProperty(this, \"hotMenu\", null);\n    /**\n     * The collection of the Handsontable instances that are used as sub-menus.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"hotSubMenus\", {});\n    /**\n     * If the menu acts as the sub-menu then this property contains the reference to the parent menu.\n     *\n     * @type {Menu}\n     */\n    _defineProperty(this, \"parentMenu\", void 0);\n    /**\n     * The menu items entries.\n     *\n     * @type {object[]}\n     */\n    _defineProperty(this, \"menuItems\", null);\n    /**\n     * @type {boolean}\n     */\n    _defineProperty(this, \"origOutsideClickDeselects\", null);\n    /**\n     * The controller module that allows modifying the menu item selection positions.\n     *\n     * @type {Paginator}\n     */\n    _classPrivateFieldInitSpec(this, _navigator, void 0);\n    /**\n     * The controller module that allows extending the keyboard shortcuts for the menu.\n     *\n     * @type {KeyboardShortcutsMenuController}\n     */\n    _classPrivateFieldInitSpec(this, _shortcutsCtrl, void 0);\n    this.hot = hotInstance;\n    this.options = options || {\n      parent: null,\n      name: null,\n      className: '',\n      keepInViewport: true,\n      standalone: false,\n      minWidth: MIN_WIDTH,\n      container: this.hot.rootDocument.documentElement\n    };\n    this.container = this.createContainer(this.options.name);\n    this.positioner = new _positioner_mjs__WEBPACK_IMPORTED_MODULE_2__[\"Positioner\"](this.options.keepInViewport);\n    this.parentMenu = this.options.parent || null;\n    this.registerEvents();\n    if (this.isSubMenu()) {\n      this.addLocalHook('afterSelectionChange', function () {\n        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n          args[_key] = arguments[_key];\n        }\n        return _this.parentMenu.runLocalHooks('afterSelectionChange', ...args);\n      });\n    }\n  }\n\n  /**\n   * Register event listeners.\n   *\n   * @private\n   */\n  registerEvents() {\n    let frame = this.hot.rootWindow;\n    while (frame) {\n      this.eventManager.addEventListener(frame.document, 'mousedown', event => this.onDocumentMouseDown(event));\n      this.eventManager.addEventListener(frame.document, 'touchstart', event => this.onDocumentMouseDown(event));\n      this.eventManager.addEventListener(frame.document, 'contextmenu', event => this.onDocumentContextMenu(event));\n      frame = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"getParentWindow\"])(frame);\n    }\n  }\n\n  /**\n   * Set array of objects which defines menu items.\n   *\n   * @param {Array} menuItems Menu items to display.\n   */\n  setMenuItems(menuItems) {\n    this.menuItems = menuItems;\n  }\n\n  /**\n   * Gets the controller object that allows modifying the the menu item selection.\n   *\n   * @returns {Paginator | undefined}\n   */\n  getNavigator() {\n    return _classPrivateFieldGet(_navigator, this);\n  }\n\n  /**\n   * Gets the controller object that allows extending the keyboard shortcuts of the menu.\n   *\n   * @returns {KeyboardShortcutsMenuController | undefined}\n   */\n  getKeyboardShortcutsCtrl() {\n    return _classPrivateFieldGet(_shortcutsCtrl, this);\n  }\n\n  /**\n   * Returns currently selected menu item. Returns `null` if no item was selected.\n   *\n   * @returns {object|null}\n   */\n  getSelectedItem() {\n    return this.hasSelectedItem() ? this.hotMenu.getSourceDataAtRow(this.hotMenu.getSelectedLast()[0]) : null;\n  }\n\n  /**\n   * Checks if the menu has selected (highlighted) any item from the menu list.\n   *\n   * @returns {boolean}\n   */\n  hasSelectedItem() {\n    return Array.isArray(this.hotMenu.getSelectedLast());\n  }\n\n  /**\n   * Check if menu is using as sub-menu.\n   *\n   * @returns {boolean}\n   */\n  isSubMenu() {\n    return this.parentMenu !== null;\n  }\n\n  /**\n   * Open menu.\n   *\n   * @fires Hooks#beforeContextMenuShow\n   * @fires Hooks#afterContextMenuShow\n   */\n  open() {\n    this.runLocalHooks('beforeOpen');\n    this.container.removeAttribute('style');\n    this.container.style.display = 'block';\n    const delayedOpenSubMenu = Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_12__[\"debounce\"])(row => this.openSubMenu(row), 300);\n    const minWidthOfMenu = this.options.minWidth || MIN_WIDTH;\n    let noItemsDefined = false;\n    let filteredItems = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_8__[\"arrayFilter\"])(this.menuItems, item => {\n      if (item.key === _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"NO_ITEMS\"]) {\n        noItemsDefined = true;\n      }\n      return Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_6__[\"isItemHidden\"])(item, this.hot);\n    });\n    if (filteredItems.length < 1 && !noItemsDefined) {\n      filteredItems.push(Object(_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"predefinedItems\"])()[_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"NO_ITEMS\"]]);\n    } else if (filteredItems.length === 0) {\n      return;\n    }\n    filteredItems = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_6__[\"filterSeparators\"])(filteredItems, _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"SEPARATOR\"]);\n    let shouldAutoCloseMenu = false;\n    const settings = {\n      data: filteredItems,\n      colHeaders: false,\n      autoColumnSize: true,\n      autoWrapRow: false,\n      modifyColWidth(width) {\n        if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_13__[\"isDefined\"])(width) && width < minWidthOfMenu) {\n          return minWidthOfMenu;\n        }\n        return width;\n      },\n      autoRowSize: false,\n      readOnly: true,\n      editor: false,\n      copyPaste: false,\n      hiddenRows: true,\n      maxCols: 1,\n      columns: [{\n        data: 'name',\n        renderer: Object(_menuItemRenderer_mjs__WEBPACK_IMPORTED_MODULE_16__[\"createMenuItemRenderer\"])(this.hot)\n      }],\n      renderAllRows: true,\n      fragmentSelection: false,\n      outsideClickDeselects: false,\n      disableVisualSelection: 'area',\n      layoutDirection: this.hot.isRtl() ? 'rtl' : 'ltr',\n      ariaTags: false,\n      beforeOnCellMouseOver: (event, coords) => {\n        _classPrivateFieldGet(_navigator, this).setCurrentPage(coords.row);\n      },\n      afterOnCellMouseOver: (event, coords) => {\n        if (this.isAllSubMenusClosed()) {\n          delayedOpenSubMenu(coords.row);\n        } else {\n          this.openSubMenu(coords.row);\n        }\n      },\n      rowHeights: row => filteredItems[row].name === _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"SEPARATOR\"] ? 1 : 23,\n      afterOnCellContextMenu: event => {\n        event.preventDefault();\n\n        // On the Windows platform, the \"contextmenu\" is triggered after the \"mouseup\" so that's\n        // why the closing menu is here. (#6507#issuecomment-582392301).\n        if (Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_9__[\"isWindowsOS\"])() && shouldAutoCloseMenu && this.hasSelectedItem()) {\n          this.close(true);\n        }\n      },\n      afterSelection: (row, column, row2, column2, preventScrolling) => {\n        // do not scroll the viewport when mouse clicks on partially visible menu item\n        if (this.hotMenu.view.isMouseDown()) {\n          preventScrolling.value = true;\n        }\n        this.runLocalHooks('afterSelectionChange', this.getSelectedItem());\n      },\n      beforeOnCellMouseUp: event => {\n        if (this.hasSelectedItem()) {\n          shouldAutoCloseMenu = !this.isCommandPassive(this.getSelectedItem());\n          this.executeCommand(event);\n        }\n      },\n      afterOnCellMouseUp: event => {\n        // If the code runs on the other platform than Windows, the \"mouseup\" is triggered\n        // after the \"contextmenu\". So then \"mouseup\" closes the menu. Otherwise, the closing\n        // menu responsibility is forwarded to \"afterOnCellContextMenu\" callback (#6507#issuecomment-582392301).\n        if ((!Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_9__[\"isWindowsOS\"])() || !Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_11__[\"isRightClick\"])(event)) && shouldAutoCloseMenu && this.hasSelectedItem()) {\n          // The timeout is necessary only for mobile devices. For desktop, the click event that is fired\n          // right after the mouseup event gets the event element target the same as the mouseup event.\n          // For mobile devices, the click event is triggered with native delay (~300ms), so when the mouseup\n          // event hides the tapped element, the click event grabs the element below. As a result, the filter\n          // by condition menu is closed and immediately open on tapping the \"None\" item.\n          if (Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_9__[\"isMobileBrowser\"])() || Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_9__[\"isIpadOS\"])()) {\n            this.hot._registerTimeout(() => this.close(true), 325);\n          } else {\n            this.close(true);\n          }\n        }\n      },\n      afterUnlisten: () => {\n        // Restore menu focus, fix for `this.instance.unlisten();` call in the tableView.js@260 file.\n        // This prevents losing table responsiveness for keyboard events when filter select menu is closed (#6497).\n        if (!this.hasSelectedItem() && this.isOpened()) {\n          this.hotMenu.listen();\n        }\n      }\n    };\n    this.origOutsideClickDeselects = this.hot.getSettings().outsideClickDeselects;\n    this.hot.getSettings().outsideClickDeselects = false;\n    this.hotMenu = new this.hot.constructor(this.container, settings);\n    this.hotMenu.addHook('afterInit', () => this.onAfterInit());\n    this.hotMenu.init();\n    _classPrivateFieldSet(_navigator, this, Object(_navigator_mjs__WEBPACK_IMPORTED_MODULE_3__[\"createMenuNavigator\"])(this.hotMenu));\n    _classPrivateFieldSet(_shortcutsCtrl, this, Object(_shortcuts_mjs__WEBPACK_IMPORTED_MODULE_4__[\"createKeyboardShortcutsCtrl\"])(this));\n    _classPrivateFieldGet(_shortcutsCtrl, this).listen();\n    this.focus();\n    if (this.isSubMenu()) {\n      this.addLocalHook('afterOpen', () => this.parentMenu.runLocalHooks('afterSubmenuOpen', this));\n    }\n    this.runLocalHooks('afterOpen', this);\n  }\n\n  /**\n   * Close menu.\n   *\n   * @param {boolean} [closeParent=false] If `true` try to close parent menu if exists.\n   */\n  close() {\n    let closeParent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    if (!this.isOpened()) {\n      return;\n    }\n    if (closeParent && this.isSubMenu()) {\n      this.parentMenu.close();\n    } else {\n      _classPrivateFieldGet(_navigator, this).clear();\n      this.closeAllSubMenus();\n      this.container.style.display = 'none';\n      this.hotMenu.destroy();\n      this.hotMenu = null;\n      this.hot.getSettings().outsideClickDeselects = this.origOutsideClickDeselects;\n      this.runLocalHooks('afterClose');\n      if (this.isSubMenu()) {\n        if (this.hot.getSettings().ariaTags) {\n          const selection = this.parentMenu.hotMenu.getSelectedLast();\n          if (selection) {\n            const cell = this.parentMenu.hotMenu.getCell(selection[0], 0);\n            Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"setAttribute\"])(cell, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_17__[\"A11Y_EXPANDED\"])(false)]);\n          }\n        }\n        this.parentMenu.hotMenu.listen();\n      }\n    }\n  }\n\n  /**\n   * Open sub menu at the provided row index.\n   *\n   * @param {number} row Row index.\n   * @returns {Menu|boolean} Returns created menu or `false` if no one menu was created.\n   */\n  openSubMenu(row) {\n    if (!this.hotMenu) {\n      return false;\n    }\n    const cell = this.hotMenu.getCell(row, 0);\n    this.closeAllSubMenus();\n    if (!cell || !Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_6__[\"hasSubMenu\"])(cell)) {\n      return false;\n    }\n    const dataItem = this.hotMenu.getSourceDataAtRow(row);\n    const subMenu = new Menu(this.hot, {\n      parent: this,\n      name: dataItem.name,\n      className: this.options.className,\n      keepInViewport: true,\n      container: this.options.container\n    });\n    subMenu.setMenuItems(dataItem.submenu.items);\n    subMenu.open();\n    subMenu.setPosition(cell.getBoundingClientRect());\n    this.hotSubMenus[dataItem.key] = subMenu;\n\n    // Update the accessibility tags on the cell being the base for the submenu.\n    if (this.hot.getSettings().ariaTags) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"setAttribute\"])(cell, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_17__[\"A11Y_EXPANDED\"])(true)]);\n    }\n    return subMenu;\n  }\n\n  /**\n   * Close sub menu at row index.\n   *\n   * @param {number} row Row index.\n   */\n  closeSubMenu(row) {\n    const dataItem = this.hotMenu.getSourceDataAtRow(row);\n    const menus = this.hotSubMenus[dataItem.key];\n    if (menus) {\n      menus.destroy();\n      delete this.hotSubMenus[dataItem.key];\n      const cell = this.hotMenu.getCell(row, 0);\n\n      // Update the accessibility tags on the cell being the base for the submenu.\n      if (this.hot.getSettings().ariaTags) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"setAttribute\"])(cell, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_17__[\"A11Y_EXPANDED\"])(false)]);\n      }\n    }\n  }\n\n  /**\n   * Close all opened sub menus.\n   */\n  closeAllSubMenus() {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_8__[\"arrayEach\"])(this.hotMenu.getData(), (value, row) => this.closeSubMenu(row));\n  }\n\n  /**\n   * Checks if all created and opened sub menus are closed.\n   *\n   * @returns {boolean}\n   */\n  isAllSubMenusClosed() {\n    return Object.keys(this.hotSubMenus).length === 0;\n  }\n\n  /**\n   * Focus the menu so all keyboard shortcuts become active.\n   */\n  focus() {\n    if (this.isOpened()) {\n      this.hotMenu.rootElement.focus({\n        preventScroll: true\n      });\n      this.getKeyboardShortcutsCtrl().listen();\n      this.hotMenu.listen();\n    }\n  }\n\n  /**\n   * Destroy instance.\n   */\n  destroy() {\n    const menuContainerParentElement = this.container.parentNode;\n    this.clearLocalHooks();\n    this.close();\n    this.parentMenu = null;\n    this.eventManager.destroy();\n    if (menuContainerParentElement) {\n      menuContainerParentElement.removeChild(this.container);\n    }\n  }\n\n  /**\n   * Checks if menu was opened.\n   *\n   * @returns {boolean} Returns `true` if menu was opened.\n   */\n  isOpened() {\n    return this.hotMenu !== null;\n  }\n\n  /**\n   * Execute menu command.\n   *\n   * The `executeCommand()` method works only for selected cells.\n   *\n   * When no cells are selected, `executeCommand()` doesn't do anything.\n   *\n   * @param {Event} [event] The mouse event object.\n   */\n  executeCommand(event) {\n    if (!this.isOpened() || !this.hasSelectedItem()) {\n      return;\n    }\n    const selectedItem = this.getSelectedItem();\n    this.runLocalHooks('select', selectedItem, event);\n    if (this.isCommandPassive(selectedItem)) {\n      return;\n    }\n    const selRanges = this.hot.getSelectedRange();\n    const normalizedSelection = selRanges ? Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_6__[\"normalizeSelection\"])(selRanges) : [];\n    this.runLocalHooks('executeCommand', selectedItem.key, normalizedSelection, event);\n    if (this.isSubMenu()) {\n      this.parentMenu.runLocalHooks('executeCommand', selectedItem.key, normalizedSelection, event);\n    }\n  }\n\n  /**\n   * Checks if the passed command is passive or not. The command is passive when it's marked as\n   * disabled, the descriptor object contains `isCommand` property set to `false`, command\n   * is a separator, or the item is recognized as submenu. For passive items the menu is not\n   * closed automatically after the user trigger the command through the UI.\n   *\n   * @param {object} commandDescriptor Selected menu item from the menu data source.\n   * @returns {boolean}\n   */\n  isCommandPassive(commandDescriptor) {\n    return commandDescriptor.isCommand === false || Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_6__[\"isItemSeparator\"])(commandDescriptor) || Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_6__[\"isItemDisabled\"])(commandDescriptor, this.hot) || Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_6__[\"isItemSubMenu\"])(commandDescriptor);\n  }\n\n  /**\n   * Set offset menu position for specified area (`above`, `below`, `left` or `right`).\n   *\n   * @param {string} area Specified area name (`above`, `below`, `left` or `right`).\n   * @param {number} offset Offset value.\n   */\n  setOffset(area) {\n    let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    this.positioner.setOffset(area, offset);\n  }\n\n  /**\n   * Set menu position based on dom event or based on literal object.\n   *\n   * @param {Event|object} coords Event or literal Object with coordinates.\n   */\n  setPosition(coords) {\n    if (this.isSubMenu()) {\n      this.positioner.setParentElement(this.parentMenu.container);\n    }\n    this.positioner.setElement(this.container).updatePosition(coords);\n  }\n\n  /**\n   * Create container/wrapper for handsontable.\n   *\n   * @private\n   * @param {string} [name] Class name.\n   * @returns {HTMLElement}\n   */\n  createContainer() {\n    let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    const doc = this.options.container.ownerDocument;\n    let className = name;\n    let container;\n    if (className) {\n      if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isFunction\"])(className)) {\n        className = className.call(this.hot);\n        if (className === null || Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_13__[\"isUndefined\"])(className)) {\n          className = '';\n        } else {\n          className = className.toString();\n        }\n      }\n      className = className.replace(/[^A-z0-9]/g, '_');\n      className = `${this.options.className}Sub_${className}`;\n      container = doc.querySelector(`.${this.options.className}.${className}`);\n    }\n    if (!container) {\n      container = doc.createElement('div');\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"addClass\"])(container, `htMenu ${this.options.className}`);\n      if (className) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"addClass\"])(container, className);\n      }\n      this.options.container.appendChild(container);\n    }\n    return container;\n  }\n\n  /**\n   * On after init listener.\n   *\n   * @private\n   */\n  onAfterInit() {\n    const {\n      wtTable\n    } = this.hotMenu.view._wt;\n    const data = this.hotMenu.getSettings().data;\n    const hiderStyle = wtTable.hider.style;\n    const holderStyle = wtTable.holder.style;\n    const currentHiderWidth = parseInt(hiderStyle.width, 10);\n    const realHeight = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_8__[\"arrayReduce\"])(data, (accumulator, value) => accumulator + (value.name === _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"SEPARATOR\"] ? 1 : 26), 0);\n\n    // Additional 3px to menu's size because of additional border around its `table.htCore`.\n    holderStyle.width = `${currentHiderWidth + 3}px`;\n    holderStyle.height = `${realHeight + 3}px`;\n    hiderStyle.height = holderStyle.height;\n\n    // Replace the default accessibility tags with the context menu's\n    if (this.hot.getSettings().ariaTags) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"setAttribute\"])(this.hotMenu.rootElement, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_17__[\"A11Y_MENU\"])(), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_17__[\"A11Y_TABINDEX\"])(-1)]);\n    }\n  }\n\n  /**\n   * Document mouse down listener.\n   *\n   * @private\n   * @param {Event} event The mouse event object.\n   */\n  onDocumentMouseDown(event) {\n    if (!this.isOpened()) {\n      return;\n    }\n\n    // Close menu when clicked element is not belongs to menu itself\n    if (this.options.standalone && this.hotMenu && !Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"isChildOf\"])(event.target, this.hotMenu.rootElement)) {\n      this.close(true);\n\n      // Automatically close menu when clicked element is not belongs to menu or submenu (not necessarily to itself)\n    } else if ((this.isAllSubMenusClosed() || this.isSubMenu()) && !Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"isChildOf\"])(event.target, '.htMenu')) {\n      this.close(true);\n    }\n  }\n\n  /**\n   * Document's contextmenu listener.\n   *\n   * @private\n   * @param {MouseEvent} event The mouse event object.\n   */\n  onDocumentContextMenu(event) {\n    if (!this.isOpened()) {\n      return;\n    }\n    if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"hasClass\"])(event.target, 'htCore') && Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"isChildOf\"])(event.target, this.hotMenu.rootElement)) {\n      event.preventDefault();\n    }\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_14__[\"mixin\"])(Menu, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_15__[\"default\"]);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/menu/menu.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/menu/menuItemRenderer.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/menu/menuItemRenderer.mjs ***!
  \*********************************************************************************/
/*! exports provided: createMenuItemRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createMenuItemRenderer\", function() { return createMenuItemRenderer; });\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/plugins/contextMenu/menu/utils.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\n\n/**\n * Creates the menu renderer function.\n *\n * @private\n * @param {Core} mainTableHot The main table Handsontable instance.\n * @returns {Function}\n */\nfunction createMenuItemRenderer(mainTableHot) {\n  /**\n   * Menu item renderer.\n   *\n   * @private\n   * @param {Core} menuHot The Handsontable instance.\n   * @param {HTMLCellElement} TD The rendered cell element.\n   * @param {number} row The visual index.\n   * @param {number} col The visual index.\n   * @param {string} prop The column property if used.\n   * @param {string} value The cell value.\n   */\n  return (menuHot, TD, row, col, prop, value) => {\n    if (TD.hasAttribute('ghost-table')) {\n      return;\n    }\n    const item = menuHot.getSourceDataAtRow(row);\n    const wrapper = mainTableHot.rootDocument.createElement('div');\n    const itemValue = typeof value === 'function' ? value.call(mainTableHot) : value;\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"empty\"])(TD);\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(wrapper, 'htItemWrapper');\n    if (mainTableHot.getSettings().ariaTags) {\n      const isFocusable = !Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isItemDisabled\"])(item, mainTableHot) && !Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isItemSelectionDisabled\"])(item) && !Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isItemSeparator\"])(item);\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"setAttribute\"])(TD, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_MENU_ITEM\"])(), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_LABEL\"])(itemValue), ...(isFocusable ? [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_TABINDEX\"])(-1)] : []), ...(Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isItemDisabled\"])(item, mainTableHot) ? [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_DISABLED\"])()] : []), ...(Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isItemSubMenu\"])(item) ? [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_EXPANDED\"])(false)] : [])]);\n    }\n    TD.className = '';\n    TD.appendChild(wrapper);\n    if (Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isItemSeparator\"])(item)) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(TD, 'htSeparator');\n    } else if (typeof item.renderer === 'function') {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(TD, 'htCustomMenuRenderer');\n      TD.appendChild(item.renderer(menuHot, wrapper, row, col, prop, itemValue));\n    } else {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"fastInnerHTML\"])(wrapper, itemValue);\n    }\n    if (Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isItemDisabled\"])(item, mainTableHot)) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(TD, 'htDisabled');\n    } else if (Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isItemSelectionDisabled\"])(item)) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(TD, 'htSelectionDisabled');\n    } else if (Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isItemSubMenu\"])(item)) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(TD, 'htSubmenu');\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/menu/menuItemRenderer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/menu/navigator.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/menu/navigator.mjs ***!
  \**************************************************************************/
/*! exports provided: createMenuNavigator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createMenuNavigator\", function() { return createMenuNavigator; });\n/* harmony import */ var _utils_paginator_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../utils/paginator.mjs */ \"./node_modules/handsontable/utils/paginator.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/plugins/contextMenu/menu/utils.mjs\");\n\n\n/**\n * Creates navigator for menus and submenus.\n *\n * @param {Handsontable} hotMenu The Handsontable instance of the menu.\n * @returns {Paginator}\n */\nfunction createMenuNavigator(hotMenu) {\n  return Object(_utils_paginator_mjs__WEBPACK_IMPORTED_MODULE_0__[\"createPaginator\"])({\n    size: () => hotMenu.countRows(),\n    onItemSelect(currentItem, directItemChange) {\n      const cell = hotMenu.getCell(currentItem, 0);\n      if (!cell || Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isSeparator\"])(cell) || Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDisabled\"])(cell) || Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isSelectionDisabled\"])(cell)) {\n        return false;\n      }\n      hotMenu.selectCell(currentItem, 0, ...(directItemChange ? [currentItem, 0, false, false] : []));\n    },\n    onClear() {\n      hotMenu.deselectCell();\n    }\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/menu/navigator.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/menu/positioner.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/menu/positioner.mjs ***!
  \***************************************************************************/
/*! exports provided: Positioner */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Positioner\", function() { return Positioner; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _cursor_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cursor.mjs */ \"./node_modules/handsontable/plugins/contextMenu/menu/cursor.mjs\");\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n/**\n * Helper class for positioning the menu and submenus in the correct place relative to the\n * cursor position (DOM element or mouse coordinates).\n *\n * @private\n * @class Positioner\n */\nvar _container = /*#__PURE__*/new WeakMap();\nvar _parentContainer = /*#__PURE__*/new WeakMap();\nvar _cursor = /*#__PURE__*/new WeakMap();\nvar _keepInViewport = /*#__PURE__*/new WeakMap();\nvar _offset = /*#__PURE__*/new WeakMap();\nclass Positioner {\n  constructor(keepInViewport) {\n    /**\n     * The menu container element the positioning will be applied to.\n     *\n     * @type {HTMLElement}\n     */\n    _classPrivateFieldInitSpec(this, _container, void 0);\n    /**\n     * For positioning the submenu, the parent element is used to calculate offsets to ensure that submenu\n     * is positioned right next to the parent menu.\n     *\n     * @type {HTMLElement}\n     */\n    _classPrivateFieldInitSpec(this, _parentContainer, void 0);\n    /**\n     * The instance of the Cursor class.\n     *\n     * @type {Cursor}\n     */\n    _classPrivateFieldInitSpec(this, _cursor, void 0);\n    /**\n     * Enabling the option allows changing the position calculation so that the menus (or submenus)\n     * are always placed within the visible viewport of the browser.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _keepInViewport, false);\n    /**\n     * Allows apply the position offset for directions.\n     *\n     * @type {{above: number, below: number, left: number, right: number}}\n     */\n    _classPrivateFieldInitSpec(this, _offset, {\n      above: 0,\n      below: 0,\n      left: 0,\n      right: 0\n    });\n    _classPrivateFieldSet(_keepInViewport, this, keepInViewport);\n  }\n\n  /**\n   * Sets offset position for specified directions (`above`, `below`, `left` or `right`).\n   *\n   * @param {'above' | 'below' | 'left' | 'right'} direction A direction name.\n   * @param {number} [offset=0] Offset value.\n   * @returns {Positioner}\n   */\n  setOffset(direction) {\n    let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    _classPrivateFieldGet(_offset, this)[direction] = offset;\n    return this;\n  }\n\n  /**\n   * Sets the menu element to work with. The element can be owned by the main menu or the submenu.\n   *\n   * @param {HTMLElement} container The menu container element.\n   * @returns {Positioner}\n   */\n  setElement(container) {\n    _classPrivateFieldSet(_container, this, container);\n    return this;\n  }\n\n  /**\n   * Sets the parent menu element to work with.\n   *\n   * @param {HTMLElement} container The parent menu container element.\n   * @returns {Positioner}\n   */\n  setParentElement(container) {\n    _classPrivateFieldSet(_parentContainer, this, container);\n    return this;\n  }\n\n  /**\n   * Updates the menu position.\n   *\n   * @param {object|MouseEvent} coords The literal object with `top`, `left`, `width` and `height` props or a\n   * mouse event object.\n   */\n  updatePosition(coords) {\n    _classPrivateFieldSet(_cursor, this, new _cursor_mjs__WEBPACK_IMPORTED_MODULE_1__[\"Cursor\"](coords, _classPrivateFieldGet(_container, this).ownerDocument.defaultView));\n    if (_classPrivateFieldGet(_keepInViewport, this)) {\n      if (_classPrivateFieldGet(_cursor, this).fitsBelow(_classPrivateFieldGet(_container, this))) {\n        this.setPositionBelowCursor();\n      } else if (_classPrivateFieldGet(_cursor, this).fitsAbove(_classPrivateFieldGet(_container, this))) {\n        this.setPositionAboveCursor();\n      } else {\n        this.setPositionBelowCursor();\n      }\n      this.updateHorizontalPosition();\n    } else {\n      this.setPositionBelowCursor();\n      this.setPositionOnRightOfCursor();\n    }\n  }\n\n  /**\n   * Updates the menu horizontal position.\n   */\n  updateHorizontalPosition() {\n    if (_classPrivateFieldGet(_container, this).dir === 'rtl') {\n      if (_classPrivateFieldGet(_cursor, this).fitsOnLeft(_classPrivateFieldGet(_container, this))) {\n        this.setPositionOnLeftOfCursor();\n      } else {\n        this.setPositionOnRightOfCursor();\n      }\n    } else if (_classPrivateFieldGet(_cursor, this).fitsOnRight(_classPrivateFieldGet(_container, this))) {\n      this.setPositionOnRightOfCursor();\n    } else {\n      this.setPositionOnLeftOfCursor();\n    }\n  }\n\n  /**\n   * Sets the menu position above the cursor object.\n   */\n  setPositionAboveCursor() {\n    let top = _classPrivateFieldGet(_offset, this).above + _classPrivateFieldGet(_cursor, this).top - _classPrivateFieldGet(_container, this).offsetHeight;\n    if (_classPrivateFieldGet(_parentContainer, this)) {\n      top = _classPrivateFieldGet(_cursor, this).top + _classPrivateFieldGet(_cursor, this).cellHeight - _classPrivateFieldGet(_container, this).offsetHeight + 3;\n    }\n    _classPrivateFieldGet(_container, this).style.top = `${top}px`;\n  }\n\n  /**\n   * Sets the menu position below the cursor object.\n   */\n  setPositionBelowCursor() {\n    let top = _classPrivateFieldGet(_offset, this).below + _classPrivateFieldGet(_cursor, this).top + 1;\n    if (_classPrivateFieldGet(_parentContainer, this)) {\n      top = _classPrivateFieldGet(_cursor, this).top - 1;\n    }\n    _classPrivateFieldGet(_container, this).style.top = `${top}px`;\n  }\n\n  /**\n   * Sets the menu position on the right of the cursor object.\n   */\n  setPositionOnRightOfCursor() {\n    let left = _classPrivateFieldGet(_cursor, this).left;\n    if (_classPrivateFieldGet(_parentContainer, this)) {\n      const {\n        right: parentMenuRight\n      } = _classPrivateFieldGet(_parentContainer, this).getBoundingClientRect();\n\n      // move the sub menu by the width of the parent's border (usually by 1-2 pixels)\n      left += _classPrivateFieldGet(_cursor, this).cellWidth + parentMenuRight - (_classPrivateFieldGet(_cursor, this).left + _classPrivateFieldGet(_cursor, this).cellWidth);\n    } else {\n      left += _classPrivateFieldGet(_offset, this).right;\n    }\n    _classPrivateFieldGet(_container, this).style.left = `${left}px`;\n  }\n\n  /**\n   * Sets the menu position on the left of the cursor object.\n   */\n  setPositionOnLeftOfCursor() {\n    let left = _classPrivateFieldGet(_offset, this).left + _classPrivateFieldGet(_cursor, this).left - _classPrivateFieldGet(_container, this).offsetWidth;\n    if (_classPrivateFieldGet(_parentContainer, this)) {\n      const {\n        left: parentMenuLeft\n      } = _classPrivateFieldGet(_parentContainer, this).getBoundingClientRect();\n\n      // move the sub menu by the width of the parent's border (usually by 1-2 pixels)\n      left -= _classPrivateFieldGet(_cursor, this).left - parentMenuLeft;\n    }\n    _classPrivateFieldGet(_container, this).style.left = `${left}px`;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/menu/positioner.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/menu/shortcuts.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/menu/shortcuts.mjs ***!
  \**************************************************************************/
/*! exports provided: createKeyboardShortcutsCtrl */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createKeyboardShortcutsCtrl\", function() { return createKeyboardShortcutsCtrl; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _defaultShortcutsList_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultShortcutsList.mjs */ \"./node_modules/handsontable/plugins/contextMenu/menu/defaultShortcutsList.mjs\");\n\n\nconst SHORTCUTS_CONTEXT = 'menu';\nconst SHORTCUTS_GROUP = SHORTCUTS_CONTEXT;\n\n/**\n * @typedef KeyboardShortcutsMenuController\n * @property {function(KeyboardShortcut[]): void} addCustomShortcuts Adds (by replacing) new keyboard shortcuts to the menu.\n * @property {function(string): number} getContext Gets the keyboard shortcuts context by name.\n * @property {function(string): void} listen Sets the active keyboard shortcuts context of the menu.\n */\n/**\n * Creates the controller object that allows extending the keyboard shortcuts of the menu.\n *\n * @param {Menu} menu The menu instance.\n * @param {Array<{ shortcuts: KeyboardShortcut, contextName: string }>} [customKeyboardShortcuts] The list of the custom keyboard shortcuts.\n * @returns {KeyboardShortcutsMenuController}\n */\nfunction createKeyboardShortcutsCtrl(menu) {\n  let customKeyboardShortcuts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  const customShortcuts = [];\n  _addShortcuts(Object(_defaultShortcutsList_mjs__WEBPACK_IMPORTED_MODULE_1__[\"createDefaultShortcutsList\"])(menu));\n  customKeyboardShortcuts.forEach(_ref => {\n    let {\n      shortcuts,\n      contextName\n    } = _ref;\n    addCustomShortcuts(shortcuts, contextName);\n  });\n\n  /**\n   * Adds keyboard shortcuts to the menu.\n   *\n   * @param {KeyboardShortcut[]} shortcuts Keyboard shortcuts to add.\n   * @param {string} [contextName] The context name to create or use.\n   */\n  function _addShortcuts(shortcuts, contextName) {\n    getContext(contextName).addShortcuts(shortcuts, {\n      group: SHORTCUTS_CONTEXT\n    });\n  }\n\n  /**\n   * Adds custom keyboard shortcuts to the menu.\n   *\n   * @param {KeyboardShortcut[]} shortcuts Keyboard shortcuts to add.\n   * @param {string} [contextName] The context name to create or use.\n   */\n  function addCustomShortcuts(shortcuts, contextName) {\n    const context = getContext(contextName);\n    shortcuts.forEach(_ref2 => {\n      let {\n        keys\n      } = _ref2;\n      keys.forEach(k => context.removeShortcutsByKeys(k));\n    });\n    customShortcuts.push({\n      shortcuts,\n      contextName\n    });\n    _addShortcuts(shortcuts, contextName);\n  }\n\n  /**\n   * Gets all registered custom keyboard shortcuts.\n   *\n   * @returns {Array<{ shortcuts: KeyboardShortcut, contextName: string }>}\n   */\n  function getCustomShortcuts() {\n    return [...customShortcuts];\n  }\n\n  /**\n   * Gets the context name.\n   *\n   * @param {string} contextName The context name.\n   * @returns {string}\n   */\n  function _getContextName(contextName) {\n    return contextName ? `${SHORTCUTS_GROUP}:${contextName}` : SHORTCUTS_GROUP;\n  }\n\n  /**\n   * Gets the keyboard shortcut context by its name.\n   *\n   * @param {string} contextName The context name.\n   * @returns {object}\n   */\n  function getContext(contextName) {\n    var _manager$getContext;\n    const manager = menu.hotMenu.getShortcutManager();\n    const name = _getContextName(contextName);\n    return (_manager$getContext = manager.getContext(name)) !== null && _manager$getContext !== void 0 ? _manager$getContext : manager.addContext(name);\n  }\n\n  /**\n   * Makes the specified context active.\n   *\n   * @param {string} contextName The context name.\n   */\n  function listen(contextName) {\n    menu.hotMenu.getShortcutManager().setActiveContextName(_getContextName(contextName));\n  }\n  return {\n    addCustomShortcuts,\n    getCustomShortcuts,\n    getContext,\n    listen\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/menu/shortcuts.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/menu/utils.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/menu/utils.mjs ***!
  \**********************************************************************/
/*! exports provided: normalizeSelection, isItemSubMenu, isItemSeparator, isItemDisabled, isItemSelectionDisabled, isSeparator, hasSubMenu, isDisabled, isSelectionDisabled, isItemHidden, filterSeparators */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeSelection\", function() { return normalizeSelection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isItemSubMenu\", function() { return isItemSubMenu; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isItemSeparator\", function() { return isItemSeparator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isItemDisabled\", function() { return isItemDisabled; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isItemSelectionDisabled\", function() { return isItemSelectionDisabled; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSeparator\", function() { return isSeparator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasSubMenu\", function() { return hasSubMenu; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDisabled\", function() { return isDisabled; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSelectionDisabled\", function() { return isSelectionDisabled; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isItemHidden\", function() { return isItemHidden; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"filterSeparators\", function() { return filterSeparators; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../predefinedItems/index.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/index.mjs\");\n\n\n\n\n\n/**\n * @param {CellRange[]} selRanges An array of the cell ranges.\n * @returns {object[]}\n */\nfunction normalizeSelection(selRanges) {\n  return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayMap\"])(selRanges, range => ({\n    start: range.getTopStartCorner(),\n    end: range.getBottomEndCorner()\n  }));\n}\n\n/**\n * Check if the provided element is a submenu opener.\n *\n * @param {object} itemToTest Item element.\n * @returns {boolean}\n */\nfunction isItemSubMenu(itemToTest) {\n  return Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasOwnProperty\"])(itemToTest, 'submenu');\n}\n\n/**\n * Check if the provided element is a menu separator.\n *\n * @param {object} itemToTest Item element.\n * @returns {boolean}\n */\nfunction isItemSeparator(itemToTest) {\n  return new RegExp(_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"SEPARATOR\"], 'i').test(itemToTest.name);\n}\n\n/**\n * Check if the provided element presents the disabled menu item.\n *\n * @param {object} itemToTest Item element.\n * @param {object} hot The context for the item function.\n * @returns {boolean}\n */\nfunction isItemDisabled(itemToTest, hot) {\n  return itemToTest.disabled === true || typeof itemToTest.disabled === 'function' && itemToTest.disabled.call(hot) === true;\n}\n\n/**\n * Check if the provided element presents the disabled selection menu item.\n *\n * @param {object} itemToTest Item element.\n * @returns {boolean}\n */\nfunction isItemSelectionDisabled(itemToTest) {\n  return Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasOwnProperty\"])(itemToTest, 'disableSelection');\n}\n\n/**\n * @param {HTMLElement} cell The HTML cell element to check.\n * @returns {boolean}\n */\nfunction isSeparator(cell) {\n  return Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"hasClass\"])(cell, 'htSeparator');\n}\n\n/**\n * @param {HTMLElement} cell The HTML cell element to check.\n * @returns {boolean}\n */\nfunction hasSubMenu(cell) {\n  return Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"hasClass\"])(cell, 'htSubmenu');\n}\n\n/**\n * @param {HTMLElement} cell The HTML cell element to check.\n * @returns {boolean}\n */\nfunction isDisabled(cell) {\n  return Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"hasClass\"])(cell, 'htDisabled');\n}\n\n/**\n * @param {HTMLElement} cell The HTML cell element to check.\n * @returns {boolean}\n */\nfunction isSelectionDisabled(cell) {\n  return Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"hasClass\"])(cell, 'htSelectionDisabled');\n}\n\n/**\n * @param {object} item The object which describes the context menu item properties.\n * @param {Core} instance The Handsontable instance.\n * @returns {boolean}\n */\nfunction isItemHidden(item, instance) {\n  return !item.hidden || !(typeof item.hidden === 'function' && item.hidden.call(instance));\n}\n\n/**\n * @param {object[]} items The context menu items collection.\n * @param {string} separator The string which identifies the context menu separator item.\n * @returns {object[]}\n */\nfunction shiftSeparators(items, separator) {\n  const result = items.slice(0);\n  for (let i = 0; i < result.length;) {\n    if (result[i].name === separator) {\n      result.shift();\n    } else {\n      break;\n    }\n  }\n  return result;\n}\n\n/**\n * @param {object[]} items The context menu items collection.\n * @param {string} separator The string which identifies the context menu separator item.\n * @returns {object[]}\n */\nfunction popSeparators(items, separator) {\n  let result = items.slice(0);\n  result.reverse();\n  result = shiftSeparators(result, separator);\n  result.reverse();\n  return result;\n}\n\n/**\n * Removes duplicated menu separators from the context menu items collection.\n *\n * @param {object[]} items The context menu items collection.\n * @returns {object[]}\n */\nfunction removeDuplicatedSeparators(items) {\n  const result = [];\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayEach\"])(items, (value, index) => {\n    if (index > 0) {\n      if (result[result.length - 1].name !== value.name) {\n        result.push(value);\n      }\n    } else {\n      result.push(value);\n    }\n  });\n  return result;\n}\n\n/**\n * Removes menu separators from the context menu items collection.\n *\n * @param {object[]} items The context menu items collection.\n * @param {string} separator The string which identifies the context menu separator item.\n * @returns {object[]}\n */\nfunction filterSeparators(items) {\n  let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"SEPARATOR\"];\n  let result = items.slice(0);\n  result = shiftSeparators(result, separator);\n  result = popSeparators(result, separator);\n  result = removeDuplicatedSeparators(result);\n  return result;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/menu/utils.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/predefinedItems/alignment.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/predefinedItems/alignment.mjs ***!
  \*************************************************************************************/
/*! exports provided: KEY, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KEY\", function() { return KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return alignmentItem; });\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/plugins/contextMenu/utils.mjs\");\n/* harmony import */ var _separator_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./separator.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/separator.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n\n\nconst KEY = 'alignment';\n\n/**\n * @returns {object}\n */\nfunction alignmentItem() {\n  return {\n    key: KEY,\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONTEXTMENU_ITEMS_ALIGNMENT\"]);\n    },\n    disabled() {\n      if (this.countRows() === 0 || this.countCols() === 0) {\n        return true;\n      }\n      const range = this.getSelectedRangeLast();\n      if (!range) {\n        return true;\n      }\n      if (range.isSingleHeader()) {\n        return true;\n      }\n      return !(this.getSelectedRange() && !this.selection.isSelectedByCorner());\n    },\n    submenu: {\n      items: [{\n        key: `${KEY}:left`,\n        name() {\n          let label = this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONTEXTMENU_ITEMS_ALIGNMENT_LEFT\"]);\n          const hasClass = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"checkSelectionConsistency\"])(this.getSelectedRange(), (row, col) => {\n            const className = this.getCellMeta(row, col).className;\n            if (className && className.indexOf('htLeft') !== -1) {\n              return true;\n            }\n          });\n          if (hasClass) {\n            label = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"markLabelAsSelected\"])(label);\n          }\n          return label;\n        },\n        callback() {\n          const selectedRange = this.getSelectedRange();\n          const stateBefore = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getAlignmentClasses\"])(selectedRange, (row, col) => this.getCellMeta(row, col).className);\n          const type = 'horizontal';\n          const alignment = 'htLeft';\n          this.runHooks('beforeCellAlignment', stateBefore, selectedRange, type, alignment);\n          Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"align\"])(selectedRange, type, alignment, (row, col) => this.getCellMeta(row, col), (row, col, key, value) => this.setCellMeta(row, col, key, value));\n          this.render();\n        },\n        disabled: false\n      }, {\n        key: `${KEY}:center`,\n        name() {\n          let label = this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONTEXTMENU_ITEMS_ALIGNMENT_CENTER\"]);\n          const hasClass = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"checkSelectionConsistency\"])(this.getSelectedRange(), (row, col) => {\n            const className = this.getCellMeta(row, col).className;\n            if (className && className.indexOf('htCenter') !== -1) {\n              return true;\n            }\n          });\n          if (hasClass) {\n            label = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"markLabelAsSelected\"])(label);\n          }\n          return label;\n        },\n        callback() {\n          const selectedRange = this.getSelectedRange();\n          const stateBefore = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getAlignmentClasses\"])(selectedRange, (row, col) => this.getCellMeta(row, col).className);\n          const type = 'horizontal';\n          const alignment = 'htCenter';\n          this.runHooks('beforeCellAlignment', stateBefore, selectedRange, type, alignment);\n          Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"align\"])(selectedRange, type, alignment, (row, col) => this.getCellMeta(row, col), (row, col, key, value) => this.setCellMeta(row, col, key, value));\n          this.render();\n        },\n        disabled: false\n      }, {\n        key: `${KEY}:right`,\n        name() {\n          let label = this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT\"]);\n          const hasClass = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"checkSelectionConsistency\"])(this.getSelectedRange(), (row, col) => {\n            const className = this.getCellMeta(row, col).className;\n            if (className && className.indexOf('htRight') !== -1) {\n              return true;\n            }\n          });\n          if (hasClass) {\n            label = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"markLabelAsSelected\"])(label);\n          }\n          return label;\n        },\n        callback() {\n          const selectedRange = this.getSelectedRange();\n          const stateBefore = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getAlignmentClasses\"])(selectedRange, (row, col) => this.getCellMeta(row, col).className);\n          const type = 'horizontal';\n          const alignment = 'htRight';\n          this.runHooks('beforeCellAlignment', stateBefore, selectedRange, type, alignment);\n          Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"align\"])(selectedRange, type, alignment, (row, col) => this.getCellMeta(row, col), (row, col, key, value) => this.setCellMeta(row, col, key, value));\n          this.render();\n        },\n        disabled: false\n      }, {\n        key: `${KEY}:justify`,\n        name() {\n          let label = this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY\"]);\n          const hasClass = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"checkSelectionConsistency\"])(this.getSelectedRange(), (row, col) => {\n            const className = this.getCellMeta(row, col).className;\n            if (className && className.indexOf('htJustify') !== -1) {\n              return true;\n            }\n          });\n          if (hasClass) {\n            label = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"markLabelAsSelected\"])(label);\n          }\n          return label;\n        },\n        callback() {\n          const selectedRange = this.getSelectedRange();\n          const stateBefore = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getAlignmentClasses\"])(selectedRange, (row, col) => this.getCellMeta(row, col).className);\n          const type = 'horizontal';\n          const alignment = 'htJustify';\n          this.runHooks('beforeCellAlignment', stateBefore, selectedRange, type, alignment);\n          Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"align\"])(selectedRange, type, alignment, (row, col) => this.getCellMeta(row, col), (row, col, key, value) => this.setCellMeta(row, col, key, value));\n          this.render();\n        },\n        disabled: false\n      }, {\n        name: _separator_mjs__WEBPACK_IMPORTED_MODULE_1__[\"KEY\"]\n      }, {\n        key: `${KEY}:top`,\n        name() {\n          let label = this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONTEXTMENU_ITEMS_ALIGNMENT_TOP\"]);\n          const hasClass = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"checkSelectionConsistency\"])(this.getSelectedRange(), (row, col) => {\n            const className = this.getCellMeta(row, col).className;\n            if (className && className.indexOf('htTop') !== -1) {\n              return true;\n            }\n          });\n          if (hasClass) {\n            label = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"markLabelAsSelected\"])(label);\n          }\n          return label;\n        },\n        callback() {\n          const selectedRange = this.getSelectedRange();\n          const stateBefore = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getAlignmentClasses\"])(selectedRange, (row, col) => this.getCellMeta(row, col).className);\n          const type = 'vertical';\n          const alignment = 'htTop';\n          this.runHooks('beforeCellAlignment', stateBefore, selectedRange, type, alignment);\n          Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"align\"])(selectedRange, type, alignment, (row, col) => this.getCellMeta(row, col), (row, col, key, value) => this.setCellMeta(row, col, key, value));\n          this.render();\n        },\n        disabled: false\n      }, {\n        key: `${KEY}:middle`,\n        name() {\n          let label = this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE\"]);\n          const hasClass = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"checkSelectionConsistency\"])(this.getSelectedRange(), (row, col) => {\n            const className = this.getCellMeta(row, col).className;\n            if (className && className.indexOf('htMiddle') !== -1) {\n              return true;\n            }\n          });\n          if (hasClass) {\n            label = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"markLabelAsSelected\"])(label);\n          }\n          return label;\n        },\n        callback() {\n          const selectedRange = this.getSelectedRange();\n          const stateBefore = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getAlignmentClasses\"])(selectedRange, (row, col) => this.getCellMeta(row, col).className);\n          const type = 'vertical';\n          const alignment = 'htMiddle';\n          this.runHooks('beforeCellAlignment', stateBefore, selectedRange, type, alignment);\n          Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"align\"])(selectedRange, type, alignment, (row, col) => this.getCellMeta(row, col), (row, col, key, value) => this.setCellMeta(row, col, key, value));\n          this.render();\n        },\n        disabled: false\n      }, {\n        key: `${KEY}:bottom`,\n        name() {\n          let label = this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM\"]);\n          const hasClass = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"checkSelectionConsistency\"])(this.getSelectedRange(), (row, col) => {\n            const className = this.getCellMeta(row, col).className;\n            if (className && className.indexOf('htBottom') !== -1) {\n              return true;\n            }\n          });\n          if (hasClass) {\n            label = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"markLabelAsSelected\"])(label);\n          }\n          return label;\n        },\n        callback() {\n          const selectedRange = this.getSelectedRange();\n          const stateBefore = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getAlignmentClasses\"])(selectedRange, (row, col) => this.getCellMeta(row, col).className);\n          const type = 'vertical';\n          const alignment = 'htBottom';\n          this.runHooks('beforeCellAlignment', stateBefore, selectedRange, type, alignment);\n          Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"align\"])(selectedRange, type, alignment, (row, col) => this.getCellMeta(row, col), (row, col, key, value) => this.setCellMeta(row, col, key, value));\n          this.render();\n        },\n        disabled: false\n      }]\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/predefinedItems/alignment.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/predefinedItems/clearColumn.mjs":
/*!***************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/predefinedItems/clearColumn.mjs ***!
  \***************************************************************************************/
/*! exports provided: KEY, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KEY\", function() { return KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return clearColumnItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\nconst KEY = 'clear_column';\n\n/**\n * @returns {object}\n */\nfunction clearColumnItem() {\n  return {\n    key: KEY,\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CLEAR_COLUMN\"]);\n    },\n    callback(key, selection) {\n      const startColumn = selection[0].start.col;\n      const endColumn = selection[0].end.col;\n      if (this.countRows()) {\n        this.populateFromArray(0, startColumn, [[null]], Math.max(selection[0].start.row, selection[0].end.row), endColumn, 'ContextMenu.clearColumn');\n      }\n    },\n    disabled() {\n      const range = this.getSelectedRangeLast();\n      if (!range) {\n        return true;\n      }\n      if (range.isSingleHeader() && range.highlight.col < 0) {\n        return true;\n      }\n      return !this.selection.isSelectedByColumnHeader();\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/predefinedItems/clearColumn.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/predefinedItems/columnLeft.mjs":
/*!**************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/predefinedItems/columnLeft.mjs ***!
  \**************************************************************************************/
/*! exports provided: KEY, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KEY\", function() { return KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return columnLeftItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\nconst KEY = 'col_left';\n\n/**\n * @returns {object}\n */\nfunction columnLeftItem() {\n  return {\n    key: KEY,\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_LEFT\"]);\n    },\n    callback() {\n      const latestSelection = this.getSelectedRangeLast().getTopLeftCorner();\n      const alterAction = this.isRtl() ? 'insert_col_end' : 'insert_col_start';\n      this.alter(alterAction, latestSelection.col, 1, 'ContextMenu.columnLeft');\n    },\n    disabled() {\n      if (!this.isColumnModificationAllowed()) {\n        return true;\n      }\n      const range = this.getSelectedRangeLast();\n      if (!range) {\n        return true;\n      }\n      if (range.isSingleHeader() && range.highlight.col < 0) {\n        return true;\n      }\n      if (this.selection.isSelectedByCorner()) {\n        const totalColumns = this.countCols();\n\n        // Enable \"Insert column left\" only when there is at least one column.\n        return totalColumns === 0;\n      }\n      return this.selection.isSelectedByRowHeader() || this.countCols() >= this.getSettings().maxCols;\n    },\n    hidden() {\n      return !this.getSettings().allowInsertColumn;\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/predefinedItems/columnLeft.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/predefinedItems/columnRight.mjs":
/*!***************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/predefinedItems/columnRight.mjs ***!
  \***************************************************************************************/
/*! exports provided: KEY, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KEY\", function() { return KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return columnRightItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\nconst KEY = 'col_right';\n\n/**\n * @returns {object}\n */\nfunction columnRightItem() {\n  return {\n    key: KEY,\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_INSERT_RIGHT\"]);\n    },\n    callback() {\n      const latestSelection = this.getSelectedRangeLast().getTopRightCorner();\n      const alterAction = this.isRtl() ? 'insert_col_start' : 'insert_col_end';\n      this.alter(alterAction, latestSelection.col, 1, 'ContextMenu.columnRight');\n    },\n    disabled() {\n      if (!this.isColumnModificationAllowed()) {\n        return true;\n      }\n      const range = this.getSelectedRangeLast();\n      if (!range) {\n        return true;\n      }\n      if (range.isSingleHeader() && range.highlight.col < 0) {\n        return true;\n      }\n      if (this.selection.isSelectedByCorner()) {\n        // Enable \"Insert column right\" always when the menu is triggered by corner click.\n        return false;\n      }\n      return this.selection.isSelectedByRowHeader() || this.countCols() >= this.getSettings().maxCols;\n    },\n    hidden() {\n      return !this.getSettings().allowInsertColumn;\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/predefinedItems/columnRight.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/predefinedItems/index.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/predefinedItems/index.mjs ***!
  \*********************************************************************************/
/*! exports provided: ALIGNMENT, CLEAR_COLUMN, COLUMN_LEFT, COLUMN_RIGHT, READ_ONLY, REDO, REMOVE_COLUMN, REMOVE_ROW, ROW_ABOVE, ROW_BELOW, SEPARATOR, NO_ITEMS, UNDO, ITEMS, predefinedItems, addItem */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ITEMS\", function() { return ITEMS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"predefinedItems\", function() { return predefinedItems; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addItem\", function() { return addItem; });\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _alignment_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./alignment.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/alignment.mjs\");\n/* harmony import */ var _clearColumn_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./clearColumn.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/clearColumn.mjs\");\n/* harmony import */ var _columnLeft_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./columnLeft.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/columnLeft.mjs\");\n/* harmony import */ var _columnRight_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./columnRight.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/columnRight.mjs\");\n/* harmony import */ var _readOnly_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./readOnly.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/readOnly.mjs\");\n/* harmony import */ var _redo_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./redo.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/redo.mjs\");\n/* harmony import */ var _removeColumn_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./removeColumn.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/removeColumn.mjs\");\n/* harmony import */ var _removeRow_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./removeRow.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/removeRow.mjs\");\n/* harmony import */ var _rowAbove_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./rowAbove.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/rowAbove.mjs\");\n/* harmony import */ var _rowBelow_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./rowBelow.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/rowBelow.mjs\");\n/* harmony import */ var _separator_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./separator.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/separator.mjs\");\n/* harmony import */ var _noItems_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./noItems.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/noItems.mjs\");\n/* harmony import */ var _undo_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./undo.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/undo.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ALIGNMENT\", function() { return _alignment_mjs__WEBPACK_IMPORTED_MODULE_1__[\"KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CLEAR_COLUMN\", function() { return _clearColumn_mjs__WEBPACK_IMPORTED_MODULE_2__[\"KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"COLUMN_LEFT\", function() { return _columnLeft_mjs__WEBPACK_IMPORTED_MODULE_3__[\"KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"COLUMN_RIGHT\", function() { return _columnRight_mjs__WEBPACK_IMPORTED_MODULE_4__[\"KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"READ_ONLY\", function() { return _readOnly_mjs__WEBPACK_IMPORTED_MODULE_5__[\"KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"REDO\", function() { return _redo_mjs__WEBPACK_IMPORTED_MODULE_6__[\"KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"REMOVE_COLUMN\", function() { return _removeColumn_mjs__WEBPACK_IMPORTED_MODULE_7__[\"KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"REMOVE_ROW\", function() { return _removeRow_mjs__WEBPACK_IMPORTED_MODULE_8__[\"KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ROW_ABOVE\", function() { return _rowAbove_mjs__WEBPACK_IMPORTED_MODULE_9__[\"KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ROW_BELOW\", function() { return _rowBelow_mjs__WEBPACK_IMPORTED_MODULE_10__[\"KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SEPARATOR\", function() { return _separator_mjs__WEBPACK_IMPORTED_MODULE_11__[\"KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NO_ITEMS\", function() { return _noItems_mjs__WEBPACK_IMPORTED_MODULE_12__[\"KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UNDO\", function() { return _undo_mjs__WEBPACK_IMPORTED_MODULE_13__[\"KEY\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst ITEMS = [_rowAbove_mjs__WEBPACK_IMPORTED_MODULE_9__[\"KEY\"], _rowBelow_mjs__WEBPACK_IMPORTED_MODULE_10__[\"KEY\"], _columnLeft_mjs__WEBPACK_IMPORTED_MODULE_3__[\"KEY\"], _columnRight_mjs__WEBPACK_IMPORTED_MODULE_4__[\"KEY\"], _clearColumn_mjs__WEBPACK_IMPORTED_MODULE_2__[\"KEY\"], _removeRow_mjs__WEBPACK_IMPORTED_MODULE_8__[\"KEY\"], _removeColumn_mjs__WEBPACK_IMPORTED_MODULE_7__[\"KEY\"], _undo_mjs__WEBPACK_IMPORTED_MODULE_13__[\"KEY\"], _redo_mjs__WEBPACK_IMPORTED_MODULE_6__[\"KEY\"], _readOnly_mjs__WEBPACK_IMPORTED_MODULE_5__[\"KEY\"], _alignment_mjs__WEBPACK_IMPORTED_MODULE_1__[\"KEY\"], _separator_mjs__WEBPACK_IMPORTED_MODULE_11__[\"KEY\"], _noItems_mjs__WEBPACK_IMPORTED_MODULE_12__[\"KEY\"]];\nconst _predefinedItems = {\n  [_separator_mjs__WEBPACK_IMPORTED_MODULE_11__[\"KEY\"]]: _separator_mjs__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n  [_noItems_mjs__WEBPACK_IMPORTED_MODULE_12__[\"KEY\"]]: _noItems_mjs__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n  [_rowAbove_mjs__WEBPACK_IMPORTED_MODULE_9__[\"KEY\"]]: _rowAbove_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n  [_rowBelow_mjs__WEBPACK_IMPORTED_MODULE_10__[\"KEY\"]]: _rowBelow_mjs__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n  [_columnLeft_mjs__WEBPACK_IMPORTED_MODULE_3__[\"KEY\"]]: _columnLeft_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n  [_columnRight_mjs__WEBPACK_IMPORTED_MODULE_4__[\"KEY\"]]: _columnRight_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n  [_clearColumn_mjs__WEBPACK_IMPORTED_MODULE_2__[\"KEY\"]]: _clearColumn_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  [_removeRow_mjs__WEBPACK_IMPORTED_MODULE_8__[\"KEY\"]]: _removeRow_mjs__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n  [_removeColumn_mjs__WEBPACK_IMPORTED_MODULE_7__[\"KEY\"]]: _removeColumn_mjs__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n  [_undo_mjs__WEBPACK_IMPORTED_MODULE_13__[\"KEY\"]]: _undo_mjs__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n  [_redo_mjs__WEBPACK_IMPORTED_MODULE_6__[\"KEY\"]]: _redo_mjs__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n  [_readOnly_mjs__WEBPACK_IMPORTED_MODULE_5__[\"KEY\"]]: _readOnly_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n  [_alignment_mjs__WEBPACK_IMPORTED_MODULE_1__[\"KEY\"]]: _alignment_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n};\n\n/**\n * Gets new object with all predefined menu items.\n *\n * @returns {object}\n */\nfunction predefinedItems() {\n  const items = {};\n  Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"objectEach\"])(_predefinedItems, (itemFactory, key) => {\n    items[key] = itemFactory();\n  });\n  return items;\n}\n\n/**\n * Add new predefined menu item to the collection.\n *\n * @param {string} key Menu command id.\n * @param {object} item Object command descriptor.\n */\nfunction addItem(key, item) {\n  if (ITEMS.indexOf(key) === -1) {\n    _predefinedItems[key] = item;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/predefinedItems/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/predefinedItems/noItems.mjs":
/*!***********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/predefinedItems/noItems.mjs ***!
  \***********************************************************************************/
/*! exports provided: KEY, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KEY\", function() { return KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return noItemsItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\nconst KEY = 'no_items';\n\n/**\n * @returns {object}\n */\nfunction noItemsItem() {\n  return {\n    key: KEY,\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_NO_ITEMS\"]);\n    },\n    disabled: true,\n    isCommand: false\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/predefinedItems/noItems.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/predefinedItems/readOnly.mjs":
/*!************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/predefinedItems/readOnly.mjs ***!
  \************************************************************************************/
/*! exports provided: KEY, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KEY\", function() { return KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return readOnlyItem; });\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/plugins/contextMenu/utils.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n\n\nconst KEY = 'make_read_only';\n\n/**\n * @returns {object}\n */\nfunction readOnlyItem() {\n  return {\n    key: KEY,\n    name() {\n      let label = this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONTEXTMENU_ITEMS_READ_ONLY\"]);\n      const atLeastOneReadOnly = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"checkSelectionConsistency\"])(this.getSelectedRange(), (row, col) => this.getCellMeta(row, col).readOnly);\n      if (atLeastOneReadOnly) {\n        label = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"markLabelAsSelected\"])(label);\n      }\n      return label;\n    },\n    callback() {\n      const ranges = this.getSelectedRange();\n      const atLeastOneReadOnly = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"checkSelectionConsistency\"])(ranges, (row, col) => this.getCellMeta(row, col).readOnly);\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayEach\"])(ranges, range => {\n        range.forAll((row, col) => {\n          if (row >= 0 && col >= 0) {\n            this.setCellMeta(row, col, 'readOnly', !atLeastOneReadOnly);\n          }\n        });\n      });\n      this.render();\n    },\n    disabled() {\n      const range = this.getSelectedRangeLast();\n      if (!range) {\n        return true;\n      }\n      if (range.isSingleHeader()) {\n        return true;\n      }\n      if (this.selection.isSelectedByCorner()) {\n        return true;\n      }\n      if (this.countRows() === 0 || this.countCols() === 0) {\n        return true;\n      }\n      if (!this.getSelectedRange() || this.getSelectedRange().length === 0) {\n        return true;\n      }\n      return false;\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/predefinedItems/readOnly.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/predefinedItems/redo.mjs":
/*!********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/predefinedItems/redo.mjs ***!
  \********************************************************************************/
/*! exports provided: KEY, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KEY\", function() { return KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return redoItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\nconst KEY = 'redo';\n\n/**\n * @returns {object}\n */\nfunction redoItem() {\n  return {\n    key: KEY,\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REDO\"]);\n    },\n    callback() {\n      this.redo();\n    },\n    hidden() {\n      const undoRedo = this.getPlugin('undoRedo');\n      return !undoRedo || !undoRedo.isEnabled();\n    },\n    disabled() {\n      return !this.getPlugin('undoRedo').isRedoAvailable();\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/predefinedItems/redo.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/predefinedItems/removeColumn.mjs":
/*!****************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/predefinedItems/removeColumn.mjs ***!
  \****************************************************************************************/
/*! exports provided: KEY, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KEY\", function() { return KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return removeColumnItem; });\n/* harmony import */ var _selection_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../selection/utils.mjs */ \"./node_modules/handsontable/selection/utils.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n\nconst KEY = 'remove_col';\n\n/**\n * @returns {object}\n */\nfunction removeColumnItem() {\n  return {\n    key: KEY,\n    name() {\n      const selection = this.getSelected();\n      let pluralForm = 0;\n      if (selection) {\n        if (selection.length > 1) {\n          pluralForm = 1;\n        } else {\n          const [, fromColumn,, toColumn] = selection[0];\n          if (fromColumn - toColumn !== 0) {\n            pluralForm = 1;\n          }\n        }\n      }\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"CONTEXTMENU_ITEMS_REMOVE_COLUMN\"], pluralForm);\n    },\n    callback() {\n      this.alter('remove_col', Object(_selection_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"transformSelectionToColumnDistance\"])(this), null, 'ContextMenu.removeColumn');\n    },\n    disabled() {\n      if (!this.isColumnModificationAllowed()) {\n        return true;\n      }\n      const range = this.getSelectedRangeLast();\n      if (!range) {\n        return true;\n      }\n      if (range.isSingleHeader() && range.highlight.col < 0) {\n        return true;\n      }\n      const totalColumns = this.countCols();\n      if (this.selection.isSelectedByCorner()) {\n        // Enable \"Remove column\" only when there is at least one column.\n        return totalColumns === 0;\n      }\n      return this.selection.isSelectedByRowHeader() || totalColumns === 0;\n    },\n    hidden() {\n      return !this.getSettings().allowRemoveColumn;\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/predefinedItems/removeColumn.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/predefinedItems/removeRow.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/predefinedItems/removeRow.mjs ***!
  \*************************************************************************************/
/*! exports provided: KEY, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KEY\", function() { return KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return removeRowItem; });\n/* harmony import */ var _selection_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../selection/utils.mjs */ \"./node_modules/handsontable/selection/utils.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n\nconst KEY = 'remove_row';\n\n/**\n * @returns {object}\n */\nfunction removeRowItem() {\n  return {\n    key: KEY,\n    name() {\n      const selection = this.getSelected();\n      let pluralForm = 0;\n      if (selection) {\n        if (selection.length > 1) {\n          pluralForm = 1;\n        } else {\n          const [fromRow,, toRow] = selection[0];\n          if (fromRow - toRow !== 0) {\n            pluralForm = 1;\n          }\n        }\n      }\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"CONTEXTMENU_ITEMS_REMOVE_ROW\"], pluralForm);\n    },\n    callback() {\n      // TODO: Please keep in mind that below `1` may be improper. The table's way of work, before change `f1747b3912ea3b21fe423fd102ca94c87db81379` was restored.\n      // There is still problem when removing more than one row.\n      this.alter('remove_row', Object(_selection_utils_mjs__WEBPACK_IMPORTED_MODULE_0__[\"transformSelectionToRowDistance\"])(this), 1, 'ContextMenu.removeRow');\n    },\n    disabled() {\n      const range = this.getSelectedRangeLast();\n      if (!range) {\n        return true;\n      }\n      if (range.isSingleHeader() && range.highlight.row < 0) {\n        return true;\n      }\n      const totalRows = this.countRows();\n      if (this.selection.isSelectedByCorner()) {\n        // Enable \"Remove row\" only when there is at least one row.\n        return totalRows === 0;\n      }\n      return this.selection.isSelectedByColumnHeader() || totalRows === 0;\n    },\n    hidden() {\n      return !this.getSettings().allowRemoveRow;\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/predefinedItems/removeRow.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/predefinedItems/rowAbove.mjs":
/*!************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/predefinedItems/rowAbove.mjs ***!
  \************************************************************************************/
/*! exports provided: KEY, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KEY\", function() { return KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return rowAboveItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\nconst KEY = 'row_above';\n\n/**\n * @returns {object}\n */\nfunction rowAboveItem() {\n  return {\n    key: KEY,\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_ABOVE\"]);\n    },\n    callback() {\n      const latestSelection = this.getSelectedRangeLast().getTopLeftCorner();\n      this.alter('insert_row_above', latestSelection.row, 1, 'ContextMenu.rowAbove');\n    },\n    disabled() {\n      const range = this.getSelectedRangeLast();\n      if (!range) {\n        return true;\n      }\n      if (range.isSingleHeader() && range.highlight.row < 0) {\n        return true;\n      }\n      if (this.selection.isSelectedByCorner()) {\n        const totalRows = this.countRows();\n\n        // Enable \"Insert row above\" only when there is at least one row.\n        return totalRows === 0;\n      }\n      return this.selection.isSelectedByColumnHeader() || this.countRows() >= this.getSettings().maxRows;\n    },\n    hidden() {\n      return !this.getSettings().allowInsertRow;\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/predefinedItems/rowAbove.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/predefinedItems/rowBelow.mjs":
/*!************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/predefinedItems/rowBelow.mjs ***!
  \************************************************************************************/
/*! exports provided: KEY, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KEY\", function() { return KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return rowBelowItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\nconst KEY = 'row_below';\n\n/**\n * @returns {object}\n */\nfunction rowBelowItem() {\n  return {\n    key: KEY,\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_ROW_BELOW\"]);\n    },\n    callback() {\n      const latestSelection = this.getSelectedRangeLast().getBottomRightCorner();\n      this.alter('insert_row_below', latestSelection.row, 1, 'ContextMenu.rowBelow');\n    },\n    disabled() {\n      const range = this.getSelectedRangeLast();\n      if (!range) {\n        return true;\n      }\n      if (range.isSingleHeader() && range.highlight.row < 0) {\n        return true;\n      }\n      if (this.selection.isSelectedByCorner()) {\n        // Enable \"Insert row below\" always when the menu is triggered by corner click.\n        return false;\n      }\n      return this.selection.isSelectedByColumnHeader() || this.countRows() >= this.getSettings().maxRows;\n    },\n    hidden() {\n      return !this.getSettings().allowInsertRow;\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/predefinedItems/rowBelow.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/predefinedItems/separator.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/predefinedItems/separator.mjs ***!
  \*************************************************************************************/
/*! exports provided: KEY, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KEY\", function() { return KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return separatorItem; });\nconst KEY = '---------';\n\n/**\n * @returns {object}\n */\nfunction separatorItem() {\n  return {\n    name: KEY\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/predefinedItems/separator.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/predefinedItems/undo.mjs":
/*!********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/predefinedItems/undo.mjs ***!
  \********************************************************************************/
/*! exports provided: KEY, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KEY\", function() { return KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return undoItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\nconst KEY = 'undo';\n\n/**\n * @returns {object}\n */\nfunction undoItem() {\n  return {\n    key: KEY,\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNDO\"]);\n    },\n    callback() {\n      this.undo();\n    },\n    hidden() {\n      const undoRedo = this.getPlugin('undoRedo');\n      return !undoRedo || !undoRedo.isEnabled();\n    },\n    disabled() {\n      return !this.getPlugin('undoRedo').isUndoAvailable();\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/predefinedItems/undo.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/contextMenu/utils.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/contextMenu/utils.mjs ***!
  \*****************************************************************/
/*! exports provided: prepareVerticalAlignClass, prepareHorizontalAlignClass, getAlignmentClasses, align, markLabelAsSelected, checkSelectionConsistency, getDocumentOffsetByElement */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"prepareVerticalAlignClass\", function() { return prepareVerticalAlignClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"prepareHorizontalAlignClass\", function() { return prepareHorizontalAlignClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAlignmentClasses\", function() { return getAlignmentClasses; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"align\", function() { return align; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"markLabelAsSelected\", function() { return markLabelAsSelected; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"checkSelectionConsistency\", function() { return checkSelectionConsistency; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDocumentOffsetByElement\", function() { return getDocumentOffsetByElement; });\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n/**\n * @param {string} className The full element class name to process.\n * @param {string} alignment The alignment class name to compare with.\n * @returns {string}\n */\nfunction prepareVerticalAlignClass(className, alignment) {\n  if (className.indexOf(alignment) !== -1) {\n    return className;\n  }\n  const replacedClassName = className.replace('htTop', '').replace('htMiddle', '').replace('htBottom', '').replace('  ', '');\n  return `${replacedClassName} ${alignment}`;\n}\n\n/**\n * @param {string} className The full element class name to process.\n * @param {string} alignment The alignment class name to compare with.\n * @returns {string}\n */\nfunction prepareHorizontalAlignClass(className, alignment) {\n  if (className.indexOf(alignment) !== -1) {\n    return className;\n  }\n  const replacedClassName = className.replace('htLeft', '').replace('htCenter', '').replace('htRight', '').replace('htJustify', '').replace('  ', '');\n  return `${replacedClassName} ${alignment}`;\n}\n\n/**\n * @param {CellRange[]} ranges An array of the cell ranges.\n * @param {Function} callback The callback function.\n * @returns {object}\n */\nfunction getAlignmentClasses(ranges, callback) {\n  const classes = {};\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__[\"arrayEach\"])(ranges, range => {\n    range.forAll((row, col) => {\n      // Alignment classes should only collected within cell ranges. We skip header coordinates.\n      if (row >= 0 && col >= 0) {\n        if (!classes[row]) {\n          classes[row] = [];\n        }\n        classes[row][col] = callback(row, col);\n      }\n    });\n  });\n  return classes;\n}\n\n/**\n * @param {CellRange[]} ranges An array of the cell ranges.\n * @param {string} type The type of the alignment axis ('horizontal' or 'vertical').\n * @param {string} alignment CSS class name to add.\n * @param {Function} cellDescriptor The function which fetches the cell meta object based in passed coordinates.\n * @param {Function} propertySetter The function which contains logic for added/removed alignment.\n */\nfunction align(ranges, type, alignment, cellDescriptor, propertySetter) {\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__[\"arrayEach\"])(ranges, range => {\n    range.forAll((row, col) => {\n      // Alignment classes should only collected within cell ranges. We skip header coordinates.\n      if (row >= 0 && col >= 0) {\n        applyAlignClassName(row, col, type, alignment, cellDescriptor, propertySetter);\n      }\n    });\n  });\n}\n\n/**\n * @param {number} row The visual row index.\n * @param {number} col The visual column index.\n * @param {string} type The type of the alignment axis ('horizontal' or 'vertical').\n * @param {string} alignment CSS class name to add.\n * @param {Function} cellDescriptor The function which fetches the cell meta object based in passed coordinates.\n * @param {Function} propertySetter The function which contains logic for added/removed alignment.\n */\nfunction applyAlignClassName(row, col, type, alignment, cellDescriptor, propertySetter) {\n  const cellMeta = cellDescriptor(row, col);\n  let className = alignment;\n  if (cellMeta.className) {\n    if (type === 'vertical') {\n      className = prepareVerticalAlignClass(cellMeta.className, alignment);\n    } else {\n      className = prepareHorizontalAlignClass(cellMeta.className, alignment);\n    }\n  }\n  propertySetter(row, col, 'className', className);\n}\n\n/**\n * @param {string} label The label text.\n * @returns {string}\n */\nfunction markLabelAsSelected(label) {\n  // workaround for https://github.com/handsontable/handsontable/issues/1946\n  return `<span class=\"selected\">${String.fromCharCode(10003)}</span>${label}`;\n}\n\n/**\n * @param {CellRange[]} ranges An array of the cell ranges.\n * @param {Function} comparator The comparator function.\n * @returns {boolean}\n */\nfunction checkSelectionConsistency(ranges, comparator) {\n  let result = false;\n  if (Array.isArray(ranges)) {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__[\"arrayEach\"])(ranges, range => {\n      range.forAll((row, col) => {\n        // Selection consistency should only check within cell ranges. We skip header coordinates.\n        if (row >= 0 && col >= 0 && comparator(row, col)) {\n          result = true;\n          return false;\n        }\n      });\n      return result;\n    });\n  }\n  return result;\n}\n\n/**\n * Returns document offset based on the passed element. If the document objects between element and the\n * base document are not the same the offset as top and left properties will be returned.\n *\n * @param {Element} elementToCheck The element to compare with Document object.\n * @param {Document} baseDocument The base Document object.\n * @returns {{ top: number, left: number }}\n */\nfunction getDocumentOffsetByElement(elementToCheck, baseDocument) {\n  const offset = {\n    top: 0,\n    left: 0\n  };\n  if (baseDocument !== elementToCheck.ownerDocument) {\n    const {\n      frameElement\n    } = baseDocument.defaultView;\n    const {\n      top,\n      left\n    } = frameElement.getBoundingClientRect();\n    offset.top = top;\n    offset.left = left;\n  }\n  return offset;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/contextMenu/utils.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/copyPaste/clipboardData.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/copyPaste/clipboardData.mjs ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ClipboardData; });\n/**\n * @private\n */\nclass ClipboardData {\n  constructor() {\n    this.data = {};\n  }\n  setData(type, value) {\n    this.data[type] = value;\n  }\n  getData(type) {\n    return this.data[type] || void 0;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/copyPaste/clipboardData.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copy.mjs":
/*!******************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copy.mjs ***!
  \******************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return copyItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n/**\n * @param {CopyPaste} copyPastePlugin The plugin instance.\n * @returns {object}\n */\nfunction copyItem(copyPastePlugin) {\n  return {\n    key: 'copy',\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY\"]);\n    },\n    callback() {\n      copyPastePlugin.copyCellsOnly();\n    },\n    disabled() {\n      if (this.countRows() === 0 || this.countCols() === 0) {\n        return true;\n      }\n      const range = this.getSelectedRangeLast();\n      if (!range) {\n        return true;\n      }\n      if (range.isSingleHeader()) {\n        return true;\n      }\n      const selected = this.getSelected();\n\n      // Disable for no selection or for non-contiguous selection.\n      if (!selected || selected.length > 1) {\n        return true;\n      }\n      return false;\n    },\n    hidden: false\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copy.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs":
/*!***********************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs ***!
  \***********************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return copyColumnHeadersOnlyItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n\n\n/**\n * @param {CopyPaste} copyPastePlugin The plugin instance.\n * @returns {object}\n */\nfunction copyColumnHeadersOnlyItem(copyPastePlugin) {\n  return {\n    key: 'copy_column_headers_only',\n    name() {\n      const selectedRange = this.getSelectedRangeLast();\n      const nounForm = selectedRange ? Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__[\"clamp\"])(selectedRange.getWidth() - 1, 0, 1) : 0;\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY\"], nounForm);\n    },\n    callback() {\n      copyPastePlugin.copyColumnHeadersOnly();\n    },\n    disabled() {\n      if (!this.hasColHeaders()) {\n        return true;\n      }\n      const range = this.getSelectedRangeLast();\n      if (!range) {\n        return true;\n      }\n      if (range.isSingleHeader()) {\n        return true;\n      }\n      const selected = this.getSelected();\n\n      // Disable for no selection or for non-contiguous selection.\n      if (!selected || selected.length > 1) {\n        return true;\n      }\n      return false;\n    },\n    hidden: false\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs":
/*!****************************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs ***!
  \****************************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return copyWithColumnGroupHeadersItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n\n\n/**\n * @param {CopyPaste} copyPastePlugin The plugin instance.\n * @returns {object}\n */\nfunction copyWithColumnGroupHeadersItem(copyPastePlugin) {\n  return {\n    key: 'copy_with_column_group_headers',\n    name() {\n      const selectedRange = this.getSelectedRangeLast();\n      const nounForm = selectedRange ? Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__[\"clamp\"])(selectedRange.getWidth() - 1, 0, 1) : 0;\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS\"], nounForm);\n    },\n    callback() {\n      copyPastePlugin.copyWithAllColumnHeaders();\n    },\n    disabled() {\n      if (!this.hasColHeaders() || !this.getSettings().nestedHeaders) {\n        return true;\n      }\n      const range = this.getSelectedRangeLast();\n      if (!range) {\n        return true;\n      }\n      if (range.isSingleHeader()) {\n        return true;\n      }\n      const selected = this.getSelected();\n\n      // Disable for no selection or for non-contiguous selection.\n      if (!selected || selected.length > 1) {\n        return true;\n      }\n      return false;\n    },\n    hidden: false\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs":
/*!***********************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs ***!
  \***********************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return copyWithColumnHeadersItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n\n\n/**\n * @param {CopyPaste} copyPastePlugin The plugin instance.\n * @returns {object}\n */\nfunction copyWithColumnHeadersItem(copyPastePlugin) {\n  return {\n    key: 'copy_with_column_headers',\n    name() {\n      const selectedRange = this.getSelectedRangeLast();\n      const nounForm = selectedRange ? Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__[\"clamp\"])(selectedRange.getWidth() - 1, 0, 1) : 0;\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS\"], nounForm);\n    },\n    callback() {\n      copyPastePlugin.copyWithColumnHeaders();\n    },\n    disabled() {\n      if (!this.hasColHeaders()) {\n        return true;\n      }\n      const range = this.getSelectedRangeLast();\n      if (!range) {\n        return true;\n      }\n      if (range.isSingleHeader()) {\n        return true;\n      }\n      const selected = this.getSelected();\n\n      // Disable for no selection or for non-contiguous selection.\n      if (!selected || selected.length > 1) {\n        return true;\n      }\n      return false;\n    },\n    hidden: false\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/copyPaste/contextMenuItem/cut.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/copyPaste/contextMenuItem/cut.mjs ***!
  \*****************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return cutItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n/**\n * @param {CopyPaste} copyPastePlugin The plugin instance.\n * @returns {object}\n */\nfunction cutItem(copyPastePlugin) {\n  return {\n    key: 'cut',\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_CUT\"]);\n    },\n    callback() {\n      copyPastePlugin.cut();\n    },\n    disabled() {\n      if (this.countRows() === 0 || this.countCols() === 0) {\n        return true;\n      }\n      const range = this.getSelectedRangeLast();\n      if (!range) {\n        return true;\n      }\n      if (range.isSingleHeader()) {\n        return true;\n      }\n      const selected = this.getSelected();\n\n      // Disable for no selection or for non-contiquous selection.\n      if (!selected || selected.length > 1) {\n        return true;\n      }\n      return false;\n    },\n    hidden: false\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/copyPaste/contextMenuItem/cut.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/copyPaste/copyPaste.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/plugins/copyPaste/copyPaste.mjs ***!
  \*******************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, CopyPaste */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CopyPaste\", function() { return CopyPaste; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _3rdparty_SheetClip_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../3rdparty/SheetClip/index.mjs */ \"./node_modules/handsontable/3rdparty/SheetClip/index.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_string_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/string.mjs */ \"./node_modules/handsontable/helpers/string.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../helpers/browser.mjs */ \"./node_modules/handsontable/helpers/browser.mjs\");\n/* harmony import */ var _contextMenuItem_copy_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./contextMenuItem/copy.mjs */ \"./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copy.mjs\");\n/* harmony import */ var _contextMenuItem_copyColumnHeadersOnly_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./contextMenuItem/copyColumnHeadersOnly.mjs */ \"./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs\");\n/* harmony import */ var _contextMenuItem_copyWithColumnGroupHeaders_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./contextMenuItem/copyWithColumnGroupHeaders.mjs */ \"./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs\");\n/* harmony import */ var _contextMenuItem_copyWithColumnHeaders_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./contextMenuItem/copyWithColumnHeaders.mjs */ \"./node_modules/handsontable/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs\");\n/* harmony import */ var _contextMenuItem_cut_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./contextMenuItem/cut.mjs */ \"./node_modules/handsontable/plugins/copyPaste/contextMenuItem/cut.mjs\");\n/* harmony import */ var _pasteEvent_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./pasteEvent.mjs */ \"./node_modules/handsontable/plugins/copyPaste/pasteEvent.mjs\");\n/* harmony import */ var _copyableRanges_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./copyableRanges.mjs */ \"./node_modules/handsontable/plugins/copyPaste/copyableRanges.mjs\");\n/* harmony import */ var _utils_parseTable_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../utils/parseTable.mjs */ \"./node_modules/handsontable/utils/parseTable.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('afterCopyLimit');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('modifyCopyableRange');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('beforeCut');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('afterCut');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('beforePaste');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('afterPaste');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('beforeCopy');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('afterCopy');\nconst PLUGIN_KEY = 'copyPaste';\nconst PLUGIN_PRIORITY = 80;\nconst SETTING_KEYS = ['fragmentSelection'];\nconst META_HEAD = ['<meta name=\"generator\" content=\"Handsontable\"/>', '<style type=\"text/css\">td{white-space:normal}br{mso-data-placement:same-cell}</style>'].join('');\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * @description\n * Copy, cut, and paste data by using the `CopyPaste` plugin.\n *\n * Control the `CopyPaste` plugin programmatically through its [API methods](#methods).\n *\n * The user can access the copy-paste features through:\n * - The [context menu](@/guides/cell-features/clipboard/clipboard.md#context-menu).\n * - The [keyboard shortcuts](@/guides/cell-features/clipboard/clipboard.md#related-keyboard-shortcuts).\n * - The browser's menu bar.\n *\n * Read more:\n * - [Guides: Clipboard](@/guides/cell-features/clipboard/clipboard.md)\n * - [Configuration options: `copyPaste`](@/api/options.md#copypaste)\n *\n * @example\n * ```js\n * // enable the plugin with the default configuration\n * copyPaste: true,\n *\n * // or, enable the plugin with a custom configuration\n * copyPaste: {\n *   columnsLimit: 25,\n *   rowsLimit: 50,\n *   pasteMode: 'shift_down',\n *   copyColumnHeaders: true,\n *   copyColumnGroupHeaders: true,\n *   copyColumnHeadersOnly: true,\n *   uiContainer: document.body,\n * },\n * ```\n * @class CopyPaste\n * @plugin CopyPaste\n */\nvar _enableCopyColumnHeaders = /*#__PURE__*/new WeakMap();\nvar _enableCopyColumnGroupHeaders = /*#__PURE__*/new WeakMap();\nvar _enableCopyColumnHeadersOnly = /*#__PURE__*/new WeakMap();\nvar _copyMode = /*#__PURE__*/new WeakMap();\nvar _isTriggeredByCopy = /*#__PURE__*/new WeakMap();\nvar _isTriggeredByCut = /*#__PURE__*/new WeakMap();\nvar _copyableRangesFactory = /*#__PURE__*/new WeakMap();\nvar _preventViewportScrollOnPaste = /*#__PURE__*/new WeakMap();\nvar _CopyPaste_brand = /*#__PURE__*/new WeakSet();\nclass CopyPaste extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * Ensure that the `copy`/`cut` events get triggered properly in Safari.\n     *\n     * @param {string} eventName Name of the event to get triggered.\n     */\n    _classPrivateMethodInitSpec(this, _CopyPaste_brand);\n    /**\n     * The maximum number of columns than can be copied to the clipboard.\n     *\n     * @type {number}\n     * @default Infinity\n     */\n    _defineProperty(this, \"columnsLimit\", Infinity);\n    /**\n     * The maximum number of rows than can be copied to the clipboard.\n     *\n     * @type {number}\n     * @default Infinity\n     */\n    _defineProperty(this, \"rowsLimit\", Infinity);\n    /**\n     * When pasting:\n     * - `'overwrite'` - overwrite the currently-selected cells\n     * - `'shift_down'` - move currently-selected cells down\n     * - `'shift_right'` - move currently-selected cells to the right\n     *\n     * @type {string}\n     * @default 'overwrite'\n     */\n    _defineProperty(this, \"pasteMode\", 'overwrite');\n    /**\n     * The UI container for the secondary focusable element.\n     *\n     * @type {HTMLElement}\n     */\n    _defineProperty(this, \"uiContainer\", this.hot.rootDocument.body);\n    /**\n     * Shows the \"Copy with headers\" item in the context menu and extends the context menu with the\n     * `'copy_with_column_headers'` option that can be used for creating custom menus arrangements.\n     *\n     * @type {boolean}\n     * @default false\n     */\n    _classPrivateFieldInitSpec(this, _enableCopyColumnHeaders, false);\n    /**\n     * Shows the \"Copy with group headers\" item in the context menu and extends the context menu with the\n     * `'copy_with_column_group headers'` option that can be used for creating custom menus arrangements.\n     *\n     * @type {boolean}\n     * @default false\n     */\n    _classPrivateFieldInitSpec(this, _enableCopyColumnGroupHeaders, false);\n    /**\n     * Shows the \"Copy headers only\" item in the context menu and extends the context menu with the\n     * `'copy_column_headers_only'` option that can be used for creating custom menus arrangements.\n     *\n     * @type {boolean}\n     * @default false\n     */\n    _classPrivateFieldInitSpec(this, _enableCopyColumnHeadersOnly, false);\n    /**\n     * Defines the data range to copy. Possible values:\n     *  * `'cells-only'` Copy selected cells only;\n     *  * `'column-headers-only'` Copy column headers only;\n     *  * `'with-column-group-headers'` Copy cells with all column headers;\n     *  * `'with-column-headers'` Copy cells with column headers;\n     *\n     * @type {'cells-only' | 'column-headers-only' | 'with-column-group-headers' | 'with-column-headers'}\n     */\n    _classPrivateFieldInitSpec(this, _copyMode, 'cells-only');\n    /**\n     * Flag that is used to prevent copying when the native shortcut was not pressed.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _isTriggeredByCopy, false);\n    /**\n     * Flag that is used to prevent cutting when the native shortcut was not pressed.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _isTriggeredByCut, false);\n    /**\n     * Class that helps generate copyable ranges based on the current selection for different copy mode\n     * types.\n     *\n     * @type {CopyableRangesFactory}\n     */\n    _classPrivateFieldInitSpec(this, _copyableRangesFactory, new _copyableRanges_mjs__WEBPACK_IMPORTED_MODULE_15__[\"CopyableRangesFactory\"]({\n      countRows: () => this.hot.countRows(),\n      countColumns: () => this.hot.countCols(),\n      rowsLimit: () => this.rowsLimit,\n      columnsLimit: () => this.columnsLimit,\n      countColumnHeaders: () => this.hot.view.getColumnHeadersCount()\n    }));\n    /**\n     * Flag that indicates if the viewport scroll should be prevented after pasting the data.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _preventViewportScrollOnPaste, false);\n    /**\n     * Ranges of the cells coordinates, which should be used to copy/cut/paste actions.\n     *\n     * @private\n     * @type {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>}\n     */\n    _defineProperty(this, \"copyableRanges\", []);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get SETTING_KEYS() {\n    return [PLUGIN_KEY, ...SETTING_KEYS];\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the [`CopyPaste`](#copypaste) plugin is enabled.\n   *\n   * This method gets called by Handsontable's [`beforeInit`](@/api/hooks.md#beforeinit) hook.\n   * If it returns `true`, the [`enablePlugin()`](#enableplugin) method gets called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the [`CopyPaste`](#copypaste) plugin for your Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    const {\n      [PLUGIN_KEY]: settings\n    } = this.hot.getSettings();\n    if (typeof settings === 'object') {\n      var _settings$pasteMode, _settings$uiContainer;\n      this.pasteMode = (_settings$pasteMode = settings.pasteMode) !== null && _settings$pasteMode !== void 0 ? _settings$pasteMode : this.pasteMode;\n      this.rowsLimit = isNaN(settings.rowsLimit) ? this.rowsLimit : settings.rowsLimit;\n      this.columnsLimit = isNaN(settings.columnsLimit) ? this.columnsLimit : settings.columnsLimit;\n      _classPrivateFieldSet(_enableCopyColumnHeaders, this, !!settings.copyColumnHeaders);\n      _classPrivateFieldSet(_enableCopyColumnGroupHeaders, this, !!settings.copyColumnGroupHeaders);\n      _classPrivateFieldSet(_enableCopyColumnHeadersOnly, this, !!settings.copyColumnHeadersOnly);\n      this.uiContainer = (_settings$uiContainer = settings.uiContainer) !== null && _settings$uiContainer !== void 0 ? _settings$uiContainer : this.uiContainer;\n    }\n    this.addHook('afterContextMenuDefaultOptions', options => _assertClassBrand(_CopyPaste_brand, this, _onAfterContextMenuDefaultOptions).call(this, options));\n    this.addHook('afterSelection', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_CopyPaste_brand, _this, _onAfterSelection).call(_this, ...args);\n    });\n    this.addHook('afterSelectionEnd', () => _assertClassBrand(_CopyPaste_brand, this, _onAfterSelectionEnd).call(this));\n    this.eventManager.addEventListener(this.hot.rootDocument, 'copy', function () {\n      return _this.onCopy(...arguments);\n    });\n    this.eventManager.addEventListener(this.hot.rootDocument, 'cut', function () {\n      return _this.onCut(...arguments);\n    });\n    this.eventManager.addEventListener(this.hot.rootDocument, 'paste', function () {\n      return _this.onPaste(...arguments);\n    });\n\n    // Without this workaround Safari (tested on Safari@16.5.2) does allow copying/cutting from the browser menu.\n    if (Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_8__[\"isSafari\"])()) {\n      this.eventManager.addEventListener(this.hot.rootDocument.body, 'mouseenter', function () {\n        for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n          args[_key2] = arguments[_key2];\n        }\n        return _assertClassBrand(_CopyPaste_brand, _this, _onSafariMouseEnter).call(_this, ...args);\n      });\n      this.eventManager.addEventListener(this.hot.rootDocument.body, 'mouseleave', function () {\n        for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n          args[_key3] = arguments[_key3];\n        }\n        return _assertClassBrand(_CopyPaste_brand, _this, _onSafariMouseLeave).call(_this, ...args);\n      });\n      this.addHook('afterSelection', () => _assertClassBrand(_CopyPaste_brand, this, _onSafariAfterSelection).call(this));\n    }\n    super.enablePlugin();\n  }\n\n  /**\n   * Updates the state of the [`CopyPaste`](#copypaste) plugin.\n   *\n   * Gets called when [`updateSettings()`](@/api/core.md#updatesettings)\n   * is invoked with any of the following configuration options:\n   *  - [`copyPaste`](@/api/options.md#copypaste)\n   *  - [`fragmentSelection`](@/api/options.md#fragmentselection)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the [`CopyPaste`](#copypaste) plugin for your Handsontable instance.\n   */\n  disablePlugin() {\n    super.disablePlugin();\n  }\n\n  /**\n   * Copies the contents of the selected cells (and/or their related column headers) to the system clipboard.\n   *\n   * Takes an optional parameter (`copyMode`) that defines the scope of copying:\n   *\n   * | `copyMode` value              | Description                                                     |\n   * | ----------------------------- | --------------------------------------------------------------- |\n   * | `'cells-only'` (default)      | Copy the selected cells                                         |\n   * | `'with-column-headers'`       | - Copy the selected cells<br>- Copy the nearest column headers  |\n   * | `'with-column-group-headers'` | - Copy the selected cells<br>- Copy all related columns headers |\n   * | `'column-headers-only'`       | Copy the nearest column headers (without copying cells)         |\n   *\n   * @param {string} [copyMode='cells-only'] Copy mode.\n   */\n  copy() {\n    let copyMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'cells-only';\n    _classPrivateFieldSet(_copyMode, this, copyMode);\n    _classPrivateFieldSet(_isTriggeredByCopy, this, true);\n    _assertClassBrand(_CopyPaste_brand, this, _ensureClipboardEventsGetTriggered).call(this, 'copy');\n  }\n\n  /**\n   * Copies the contents of the selected cells.\n   */\n  copyCellsOnly() {\n    this.copy('cells-only');\n  }\n  /**\n   * Copies the contents of column headers that are nearest to the selected cells.\n   */\n  copyColumnHeadersOnly() {\n    this.copy('column-headers-only');\n  }\n  /**\n   * Copies the contents of the selected cells and all their related column headers.\n   */\n  copyWithAllColumnHeaders() {\n    this.copy('with-column-group-headers');\n  }\n  /**\n   * Copies the contents of the selected cells and their nearest column headers.\n   */\n  copyWithColumnHeaders() {\n    this.copy('with-column-headers');\n  }\n\n  /**\n   * Cuts the contents of the selected cells to the system clipboard.\n   */\n  cut() {\n    _classPrivateFieldSet(_isTriggeredByCut, this, true);\n    _assertClassBrand(_CopyPaste_brand, this, _ensureClipboardEventsGetTriggered).call(this, 'cut');\n  }\n\n  /**\n   * Converts the contents of multiple ranges (`ranges`) into a single string.\n   *\n   * @param {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>} ranges Array of objects with properties `startRow`, `endRow`, `startCol` and `endCol`.\n   * @returns {string} A string that will be copied to the clipboard.\n   */\n  getRangedCopyableData(ranges) {\n    return Object(_3rdparty_SheetClip_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"stringify\"])(this.getRangedData(ranges));\n  }\n\n  /**\n   * Converts the contents of multiple ranges (`ranges`) into an array of arrays.\n   *\n   * @param {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>} ranges Array of objects with properties `startRow`, `startCol`, `endRow` and `endCol`.\n   * @returns {Array[]} An array of arrays that will be copied to the clipboard.\n   */\n  getRangedData(ranges) {\n    const data = [];\n    const {\n      rows,\n      columns\n    } = Object(_copyableRanges_mjs__WEBPACK_IMPORTED_MODULE_15__[\"normalizeRanges\"])(ranges);\n\n    // concatenate all rows and columns data defined in ranges into one copyable string\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(rows, row => {\n      const rowSet = [];\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(columns, column => {\n        if (row < 0) {\n          // `row` as the second argument acts here as the `headerLevel` argument\n          rowSet.push(this.hot.getColHeader(column, row));\n        } else {\n          rowSet.push(this.hot.getCopyableData(row, column));\n        }\n      });\n      data.push(rowSet);\n    });\n    return data;\n  }\n\n  /**\n   * Simulates the paste action.\n   *\n   * For security reasons, modern browsers don't allow reading from the system clipboard.\n   *\n   * @param {string} pastableText The value to paste, as a raw string.\n   * @param {string} [pastableHtml=''] The value to paste, as HTML.\n   */\n  paste() {\n    let pastableText = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n    let pastableHtml = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : pastableText;\n    if (!pastableText && !pastableHtml) {\n      return;\n    }\n    const pasteData = new _pasteEvent_mjs__WEBPACK_IMPORTED_MODULE_14__[\"default\"]();\n    if (pastableText) {\n      pasteData.clipboardData.setData('text/plain', pastableText);\n    }\n    if (pastableHtml) {\n      pasteData.clipboardData.setData('text/html', pastableHtml);\n    }\n    this.onPaste(pasteData);\n  }\n\n  /**\n   * Prepares copyable text from the cells selection in the invisible textarea.\n   */\n  setCopyableText() {\n    const selectionRange = this.hot.getSelectedRangeLast();\n    if (!selectionRange) {\n      return;\n    }\n    if (selectionRange.isSingleHeader()) {\n      this.copyableRanges = [];\n      return;\n    }\n    _classPrivateFieldGet(_copyableRangesFactory, this).setSelectedRange(selectionRange);\n    const groupedRanges = new Map([['headers', null], ['cells', null]]);\n    if (_classPrivateFieldGet(_copyMode, this) === 'column-headers-only') {\n      groupedRanges.set('headers', _classPrivateFieldGet(_copyableRangesFactory, this).getMostBottomColumnHeadersRange());\n    } else {\n      if (_classPrivateFieldGet(_copyMode, this) === 'with-column-headers') {\n        groupedRanges.set('headers', _classPrivateFieldGet(_copyableRangesFactory, this).getMostBottomColumnHeadersRange());\n      } else if (_classPrivateFieldGet(_copyMode, this) === 'with-column-group-headers') {\n        groupedRanges.set('headers', _classPrivateFieldGet(_copyableRangesFactory, this).getAllColumnHeadersRange());\n      }\n      groupedRanges.set('cells', _classPrivateFieldGet(_copyableRangesFactory, this).getCellsRange());\n    }\n    this.copyableRanges = Array.from(groupedRanges.values()).filter(range => range !== null).map(_ref => {\n      let {\n        startRow,\n        startCol,\n        endRow,\n        endCol\n      } = _ref;\n      return {\n        startRow,\n        startCol,\n        endRow,\n        endCol\n      };\n    });\n    this.copyableRanges = this.hot.runHooks('modifyCopyableRange', this.copyableRanges);\n    const cellsRange = groupedRanges.get('cells');\n    if (cellsRange !== null && cellsRange.isRangeTrimmed) {\n      const {\n        startRow,\n        startCol,\n        endRow,\n        endCol\n      } = cellsRange;\n      this.hot.runHooks('afterCopyLimit', endRow - startRow + 1, endCol - startCol + 1, this.rowsLimit, this.columnsLimit);\n    }\n  }\n\n  /**\n   * Verifies if editor exists and is open.\n   *\n   * @private\n   * @returns {boolean}\n   */\n  isEditorOpened() {\n    var _this$hot$getActiveEd;\n    return (_this$hot$getActiveEd = this.hot.getActiveEditor()) === null || _this$hot$getActiveEd === void 0 ? void 0 : _this$hot$getActiveEd.isOpened();\n  }\n  /**\n   * Prepares new values to populate them into datasource.\n   *\n   * @private\n   * @param {Array} inputArray An array of the data to populate.\n   * @param {Array} [selection] The selection which indicates from what position the data will be populated.\n   * @returns {Array} Range coordinates after populate data.\n   */\n  populateValues(inputArray) {\n    let selection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.hot.getSelectedRangeLast();\n    if (!inputArray.length) {\n      return;\n    }\n    const populatedRowsLength = inputArray.length;\n    const populatedColumnsLength = inputArray[0].length;\n    const newRows = [];\n    const {\n      row: startRow,\n      col: startColumn\n    } = selection.getTopStartCorner();\n    const {\n      row: endRowFromSelection,\n      col: endColumnFromSelection\n    } = selection.getBottomEndCorner();\n    let visualRowForPopulatedData = startRow;\n    let visualColumnForPopulatedData = startColumn;\n    let lastVisualRow = startRow;\n    let lastVisualColumn = startColumn;\n\n    // We try to populate just all copied data or repeat copied data within a selection. Please keep in mind that we\n    // don't know whether populated data is bigger than selection on start as there are some cells for which values\n    // should be not inserted (it's known right after getting cell meta).\n    while (newRows.length < populatedRowsLength || visualRowForPopulatedData <= endRowFromSelection) {\n      const {\n        skipRowOnPaste,\n        visualRow\n      } = this.hot.getCellMeta(visualRowForPopulatedData, startColumn);\n      visualRowForPopulatedData = visualRow + 1;\n      if (skipRowOnPaste === true) {\n        /* eslint-disable no-continue */\n        continue;\n      }\n      lastVisualRow = visualRow;\n      visualColumnForPopulatedData = startColumn;\n      const newRow = [];\n      const insertedRow = newRows.length % populatedRowsLength;\n      while (newRow.length < populatedColumnsLength || visualColumnForPopulatedData <= endColumnFromSelection) {\n        const {\n          skipColumnOnPaste,\n          visualCol\n        } = this.hot.getCellMeta(startRow, visualColumnForPopulatedData);\n        visualColumnForPopulatedData = visualCol + 1;\n        if (skipColumnOnPaste === true) {\n          /* eslint-disable no-continue */\n          continue;\n        }\n        lastVisualColumn = visualCol;\n        const insertedColumn = newRow.length % populatedColumnsLength;\n        newRow.push(inputArray[insertedRow][insertedColumn]);\n      }\n      newRows.push(newRow);\n    }\n    _classPrivateFieldSet(_preventViewportScrollOnPaste, this, true);\n    this.hot.populateFromArray(startRow, startColumn, newRows, undefined, undefined, 'CopyPaste.paste', this.pasteMode);\n    return [startRow, startColumn, lastVisualRow, lastVisualColumn];\n  }\n\n  /**\n   * Add the `contenteditable` attribute to the highlighted cell and select its content.\n   */\n\n  /**\n   * `copy` event callback on textarea element.\n   *\n   * @param {Event} event ClipboardEvent.\n   * @private\n   */\n  onCopy(event) {\n    if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCopy, this) || this.isEditorOpened()) {\n      return;\n    }\n    if (!this.hot.getSettings().outsideClickDeselects && event.target !== this.hot.rootDocument.body) {\n      return;\n    }\n    this.setCopyableText();\n    _classPrivateFieldSet(_isTriggeredByCopy, this, false);\n    const data = this.getRangedData(this.copyableRanges);\n    const copiedHeadersCount = _assertClassBrand(_CopyPaste_brand, this, _countCopiedHeaders).call(this, this.copyableRanges);\n    const allowCopying = !!this.hot.runHooks('beforeCopy', data, this.copyableRanges, copiedHeadersCount);\n    if (allowCopying) {\n      const textPlain = Object(_3rdparty_SheetClip_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"stringify\"])(data);\n      if (event && event.clipboardData) {\n        const textHTML = Object(_utils_parseTable_mjs__WEBPACK_IMPORTED_MODULE_16__[\"_dataToHTML\"])(data, this.hot.rootDocument);\n        event.clipboardData.setData('text/plain', textPlain);\n        event.clipboardData.setData('text/html', [META_HEAD, textHTML].join(''));\n      } else if (typeof ClipboardEvent === 'undefined') {\n        this.hot.rootWindow.clipboardData.setData('Text', textPlain);\n      }\n      this.hot.runHooks('afterCopy', data, this.copyableRanges, copiedHeadersCount);\n    }\n    _classPrivateFieldSet(_copyMode, this, 'cells-only');\n    event.preventDefault();\n  }\n\n  /**\n   * `cut` event callback on textarea element.\n   *\n   * @param {Event} event ClipboardEvent.\n   * @private\n   */\n  onCut(event) {\n    if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCut, this) || this.isEditorOpened()) {\n      return;\n    }\n    if (!this.hot.getSettings().outsideClickDeselects && event.target !== this.hot.rootDocument.body) {\n      return;\n    }\n    this.setCopyableText();\n    _classPrivateFieldSet(_isTriggeredByCut, this, false);\n    const rangedData = this.getRangedData(this.copyableRanges);\n    const allowCuttingOut = !!this.hot.runHooks('beforeCut', rangedData, this.copyableRanges);\n    if (allowCuttingOut) {\n      const textPlain = Object(_3rdparty_SheetClip_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"stringify\"])(rangedData);\n      if (event && event.clipboardData) {\n        const textHTML = Object(_utils_parseTable_mjs__WEBPACK_IMPORTED_MODULE_16__[\"_dataToHTML\"])(rangedData, this.hot.rootDocument);\n        event.clipboardData.setData('text/plain', textPlain);\n        event.clipboardData.setData('text/html', [META_HEAD, textHTML].join(''));\n      } else if (typeof ClipboardEvent === 'undefined') {\n        this.hot.rootWindow.clipboardData.setData('Text', textPlain);\n      }\n      this.hot.emptySelectedCells('CopyPaste.cut');\n      this.hot.runHooks('afterCut', rangedData, this.copyableRanges);\n    }\n    event.preventDefault();\n  }\n\n  /**\n   * `paste` event callback on textarea element.\n   *\n   * @param {Event} event ClipboardEvent or pseudo ClipboardEvent, if paste was called manually.\n   * @private\n   */\n  onPaste(event) {\n    if (!this.hot.isListening() || this.isEditorOpened() || !this.hot.getSelected()) {\n      return;\n    }\n    if (!this.hot.getSettings().outsideClickDeselects && event.target !== this.hot.rootDocument.body) {\n      return;\n    }\n    event.preventDefault();\n    let pastedData;\n    if (event && typeof event.clipboardData !== 'undefined') {\n      const textHTML = Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_6__[\"sanitize\"])(event.clipboardData.getData('text/html'), {\n        ADD_TAGS: ['meta'],\n        ADD_ATTR: ['content'],\n        FORCE_BODY: true\n      });\n      if (textHTML && /(<table)|(<TABLE)/g.test(textHTML)) {\n        const parsedConfig = Object(_utils_parseTable_mjs__WEBPACK_IMPORTED_MODULE_16__[\"htmlToGridSettings\"])(textHTML, this.hot.rootDocument);\n        pastedData = parsedConfig.data;\n      } else {\n        pastedData = event.clipboardData.getData('text/plain');\n      }\n    } else if (typeof ClipboardEvent === 'undefined' && typeof this.hot.rootWindow.clipboardData !== 'undefined') {\n      pastedData = this.hot.rootWindow.clipboardData.getData('Text');\n    }\n    if (typeof pastedData === 'string') {\n      pastedData = Object(_3rdparty_SheetClip_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"parse\"])(pastedData);\n    }\n    if (pastedData === void 0 || pastedData && pastedData.length === 0) {\n      return;\n    }\n    if (this.hot.runHooks('beforePaste', pastedData, this.copyableRanges) === false) {\n      return;\n    }\n    const [startRow, startColumn, endRow, endColumn] = this.populateValues(pastedData);\n    this.hot.selectCell(startRow, startColumn, Math.min(this.hot.countRows() - 1, endRow), Math.min(this.hot.countCols() - 1, endColumn));\n    this.hot.runHooks('afterPaste', pastedData, this.copyableRanges);\n  }\n\n  /**\n   * Add copy and cut options to the Context Menu.\n   *\n   * @param {object} options Contains default added options of the Context Menu.\n   */\n\n  /**\n   * Destroys the `CopyPaste` plugin instance.\n   */\n  destroy() {\n    super.destroy();\n  }\n}\nfunction _ensureClipboardEventsGetTriggered(eventName) {\n  // Without this workaround Safari (tested on Safari@16.5.2) does not trigger the 'copy' event.\n  if (Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_8__[\"isSafari\"])()) {\n    const lastSelectedRange = this.hot.getSelectedRangeLast();\n    if (lastSelectedRange) {\n      const {\n        row: highlightRow,\n        col: highlightColumn\n      } = lastSelectedRange.highlight;\n      const currentlySelectedCell = this.hot.getCell(highlightRow, highlightColumn, true);\n      if (currentlySelectedCell) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_7__[\"runWithSelectedContendEditableElement\"])(currentlySelectedCell, () => {\n          this.hot.rootDocument.execCommand(eventName);\n        });\n      }\n    }\n  } else {\n    this.hot.rootDocument.execCommand(eventName);\n  }\n}\n/**\n * Counts how many column headers will be copied based on the passed range.\n *\n * @private\n * @param {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>} ranges Array of objects with properties `startRow`, `startCol`, `endRow` and `endCol`.\n * @returns {{ columnHeadersCount: number }} Returns an object with keys that holds\n *                                           information with the number of copied headers.\n */\nfunction _countCopiedHeaders(ranges) {\n  const {\n    rows\n  } = Object(_copyableRanges_mjs__WEBPACK_IMPORTED_MODULE_15__[\"normalizeRanges\"])(ranges);\n  let columnHeadersCount = 0;\n  for (let row = 0; row < rows.length; row++) {\n    if (rows[row] >= 0) {\n      break;\n    }\n    columnHeadersCount += 1;\n  }\n  return {\n    columnHeadersCount\n  };\n}\nfunction _addContentEditableToHighlightedCell() {\n  if (this.hot.isListening()) {\n    const lastSelectedRange = this.hot.getSelectedRangeLast();\n    if (lastSelectedRange) {\n      const {\n        row: highlightRow,\n        col: highlightColumn\n      } = lastSelectedRange.highlight;\n      const currentlySelectedCell = this.hot.getCell(highlightRow, highlightColumn, true);\n      if (currentlySelectedCell) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_7__[\"makeElementContentEditableAndSelectItsContent\"])(currentlySelectedCell);\n      }\n    }\n  }\n}\n/**\n * Remove the `contenteditable` attribute from the highlighted cell and deselect its content.\n */\nfunction _removeContentEditableFromHighlightedCell() {\n  // If the instance is not listening, the workaround is not needed.\n  if (this.hot.isListening()) {\n    const lastSelectedRange = this.hot.getSelectedRangeLast();\n    if (lastSelectedRange) {\n      const {\n        row: highlightRow,\n        col: highlightColumn\n      } = lastSelectedRange.highlight;\n      const currentlySelectedCell = this.hot.getCell(highlightRow, highlightColumn, true);\n      if (currentlySelectedCell !== null && currentlySelectedCell !== void 0 && currentlySelectedCell.hasAttribute('contenteditable')) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_7__[\"removeContentEditableFromElementAndDeselect\"])(currentlySelectedCell);\n      }\n    }\n  }\n}\nfunction _onAfterContextMenuDefaultOptions(options) {\n  options.items.push({\n    name: '---------'\n  }, Object(_contextMenuItem_copy_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(this));\n  if (_classPrivateFieldGet(_enableCopyColumnHeaders, this)) {\n    options.items.push(Object(_contextMenuItem_copyWithColumnHeaders_mjs__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(this));\n  }\n  if (_classPrivateFieldGet(_enableCopyColumnGroupHeaders, this)) {\n    options.items.push(Object(_contextMenuItem_copyWithColumnGroupHeaders_mjs__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(this));\n  }\n  if (_classPrivateFieldGet(_enableCopyColumnHeadersOnly, this)) {\n    options.items.push(Object(_contextMenuItem_copyColumnHeadersOnly_mjs__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(this));\n  }\n  options.items.push(Object(_contextMenuItem_cut_mjs__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(this));\n}\n/**\n * Disables the viewport scroll after pasting the data.\n *\n * @param {number} fromRow Selection start row visual index.\n * @param {number} fromColumn Selection start column visual index.\n * @param {number} toRow Selection end row visual index.\n * @param {number} toColumn Selection end column visual index.\n * @param {object} preventScrolling Object with `value` property. If `true`, the viewport scroll will be prevented.\n */\nfunction _onAfterSelection(fromRow, fromColumn, toRow, toColumn, preventScrolling) {\n  if (_classPrivateFieldGet(_preventViewportScrollOnPaste, this)) {\n    preventScrolling.value = true;\n  }\n  _classPrivateFieldSet(_preventViewportScrollOnPaste, this, false);\n}\n/**\n * Force focus on focusableElement after end of the selection.\n */\nfunction _onAfterSelectionEnd() {\n  if (this.isEditorOpened()) {\n    return;\n  }\n  if (this.hot.getSettings().fragmentSelection) {\n    return;\n  }\n  this.setCopyableText();\n}\n/**\n * `document.body` `mouseenter` callback used to work around a Safari's problem with copying/cutting from the\n * browser's menu.\n */\nfunction _onSafariMouseEnter() {\n  _assertClassBrand(_CopyPaste_brand, this, _removeContentEditableFromHighlightedCell).call(this);\n}\n/**\n * `document.body` `mouseleave` callback used to work around a Safari's problem with copying/cutting from the\n * browser's menu.\n */\nfunction _onSafariMouseLeave() {\n  _assertClassBrand(_CopyPaste_brand, this, _addContentEditableToHighlightedCell).call(this);\n}\n/**\n * `afterSelection` hook callback triggered only on Safari.\n */\nfunction _onSafariAfterSelection() {\n  _assertClassBrand(_CopyPaste_brand, this, _removeContentEditableFromHighlightedCell).call(this);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/copyPaste/copyPaste.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/copyPaste/copyableRanges.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/copyPaste/copyableRanges.mjs ***!
  \************************************************************************/
/*! exports provided: CopyableRangesFactory, normalizeRanges */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CopyableRangesFactory\", function() { return CopyableRangesFactory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeRanges\", function() { return normalizeRanges; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n/**\n * The utils class produces the selection ranges in the `{startRow, startCol, endRow, endCol}` format\n * based on the current table selection. The CopyPaste plugin consumes that ranges to generate\n * appropriate data ready to copy to the clipboard.\n *\n * @private\n */\nvar _selectedRange = /*#__PURE__*/new WeakMap();\nvar _countRows = /*#__PURE__*/new WeakMap();\nvar _countColumns = /*#__PURE__*/new WeakMap();\nvar _rowsLimit = /*#__PURE__*/new WeakMap();\nvar _columnsLimit = /*#__PURE__*/new WeakMap();\nvar _countColumnHeaders = /*#__PURE__*/new WeakMap();\nvar _CopyableRangesFactory_brand = /*#__PURE__*/new WeakSet();\nclass CopyableRangesFactory {\n  /* eslint-disable jsdoc/require-description-complete-sentence */\n  /**\n   * @param {{\n   *   countRows: function(): number,\n   *   countColumns: function(): number,\n   *   rowsLimit: function(): number,\n   *   columnsLimit: function(): number,\n   *   countColumnHeaders: function(): number\n   * }} dependencies The utils class dependencies.\n   */\n  constructor(_ref) {\n    let {\n      countRows,\n      countColumns,\n      rowsLimit,\n      columnsLimit,\n      countColumnHeaders\n    } = _ref;\n    /**\n     * Trimmed the columns range to the limit.\n     *\n     * @param {*} startColumn The lowest column index in the range.\n     * @param {*} endColumn The highest column index in the range.\n     * @returns {number} Returns trimmed column index if it exceeds the limit.\n     */\n    _classPrivateMethodInitSpec(this, _CopyableRangesFactory_brand);\n    /**\n     * @type {CellRange}\n     */\n    _classPrivateFieldInitSpec(this, _selectedRange, void 0);\n    /**\n     * @type {function(): number}\n     */\n    _classPrivateFieldInitSpec(this, _countRows, void 0);\n    /**\n     * @type {function(): number}\n     */\n    _classPrivateFieldInitSpec(this, _countColumns, void 0);\n    /**\n     * @type {function(): number}\n     */\n    _classPrivateFieldInitSpec(this, _rowsLimit, void 0);\n    /**\n     * @type {function(): number}\n     */\n    _classPrivateFieldInitSpec(this, _columnsLimit, void 0);\n    /**\n     * @type {function(): number}\n     */\n    _classPrivateFieldInitSpec(this, _countColumnHeaders, void 0);\n    _classPrivateFieldSet(_countRows, this, countRows);\n    _classPrivateFieldSet(_countColumns, this, countColumns);\n    _classPrivateFieldSet(_rowsLimit, this, rowsLimit);\n    _classPrivateFieldSet(_columnsLimit, this, columnsLimit);\n    _classPrivateFieldSet(_countColumnHeaders, this, countColumnHeaders);\n  }\n  /* eslint-enable jsdoc/require-description-complete-sentence */\n\n  /**\n   * Sets the selection range to be processed.\n   *\n   * @param {CellRange} selectedRange The selection range represented by the CellRange class.\n   */\n  setSelectedRange(selectedRange) {\n    _classPrivateFieldSet(_selectedRange, this, selectedRange);\n  }\n\n  /**\n   * Returns a new coords object within the dataset range (cells) with `startRow`, `startCol`, `endRow`\n   * and `endCol` keys.\n   *\n   * @returns {{startRow: number, startCol: number, endRow: number, endCol: number} | null}\n   */\n  getCellsRange() {\n    if (_classPrivateFieldGet(_countRows, this).call(this) === 0 || _classPrivateFieldGet(_countColumns, this).call(this) === 0) {\n      return null;\n    }\n    const {\n      row: startRow,\n      col: startCol\n    } = _classPrivateFieldGet(_selectedRange, this).getTopStartCorner();\n    const {\n      row: endRow,\n      col: endCol\n    } = _classPrivateFieldGet(_selectedRange, this).getBottomEndCorner();\n    const finalEndRow = _assertClassBrand(_CopyableRangesFactory_brand, this, _trimRowsRange).call(this, startRow, endRow);\n    const finalEndCol = _assertClassBrand(_CopyableRangesFactory_brand, this, _trimColumnsRange).call(this, startCol, endCol);\n    const isRangeTrimmed = endRow !== finalEndRow || endCol !== finalEndCol;\n    return {\n      isRangeTrimmed,\n      startRow,\n      startCol,\n      endRow: finalEndRow,\n      endCol: finalEndCol\n    };\n  }\n\n  /**\n   * Returns a new coords object within the most-bottom column headers range with `startRow`,\n   * `startCol`, `endRow` and `endCol` keys.\n   *\n   * @returns {{startRow: number, startCol: number, endRow: number, endCol: number} | null}\n   */\n  getMostBottomColumnHeadersRange() {\n    if (_classPrivateFieldGet(_countColumns, this).call(this) === 0 || _classPrivateFieldGet(_countColumnHeaders, this).call(this) === 0) {\n      return null;\n    }\n    const {\n      col: startCol\n    } = _classPrivateFieldGet(_selectedRange, this).getTopStartCorner();\n    const {\n      col: endCol\n    } = _classPrivateFieldGet(_selectedRange, this).getBottomEndCorner();\n    const finalEndCol = _assertClassBrand(_CopyableRangesFactory_brand, this, _trimColumnsRange).call(this, startCol, endCol);\n    const isRangeTrimmed = endCol !== finalEndCol;\n    return {\n      isRangeTrimmed,\n      startRow: -1,\n      startCol,\n      endRow: -1,\n      endCol: finalEndCol\n    };\n  }\n\n  /**\n   * Returns a new coords object within all column headers layers (including nested headers) range with\n   * `startRow`, `startCol`, `endRow` and `endCol` keys.\n   *\n   * @returns {{startRow: number, startCol: number, endRow: number, endCol: number} | null}\n   */\n  getAllColumnHeadersRange() {\n    if (_classPrivateFieldGet(_countColumns, this).call(this) === 0 || _classPrivateFieldGet(_countColumnHeaders, this).call(this) === 0) {\n      return null;\n    }\n    const {\n      col: startCol\n    } = _classPrivateFieldGet(_selectedRange, this).getTopStartCorner();\n    const {\n      col: endCol\n    } = _classPrivateFieldGet(_selectedRange, this).getBottomEndCorner();\n    const finalEndCol = _assertClassBrand(_CopyableRangesFactory_brand, this, _trimColumnsRange).call(this, startCol, endCol);\n    const isRangeTrimmed = endCol !== finalEndCol;\n    return {\n      isRangeTrimmed,\n      startRow: -_classPrivateFieldGet(_countColumnHeaders, this).call(this),\n      startCol,\n      endRow: -1,\n      endCol: finalEndCol\n    };\n  }\n}\n\n/**\n * Returns an object with `rows` and `columns` keys. The arrays contains sorted indexes\n * generated according to the given `ranges` array.\n *\n * @param {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>} ranges The range to process.\n * @returns {{rows: number[], columns: number[]}}\n */\nfunction _trimColumnsRange(startColumn, endColumn) {\n  return Math.min(endColumn, Math.max(startColumn + _classPrivateFieldGet(_columnsLimit, this).call(this) - 1, startColumn));\n}\n/**\n * Trimmed the rows range to the limit.\n *\n * @param {*} startRow The lowest row index in the range.\n * @param {*} endRow The highest row index in the range.\n * @returns {number} Returns trimmed row index if it exceeds the limit.\n */\nfunction _trimRowsRange(startRow, endRow) {\n  return Math.min(endRow, Math.max(startRow + _classPrivateFieldGet(_rowsLimit, this).call(this) - 1, startRow));\n}\nfunction normalizeRanges(ranges) {\n  const rows = [];\n  const columns = [];\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(ranges, range => {\n    const minRow = Math.min(range.startRow, range.endRow);\n    const maxRow = Math.max(range.startRow, range.endRow);\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__[\"rangeEach\"])(minRow, maxRow, row => {\n      if (rows.indexOf(row) === -1) {\n        rows.push(row);\n      }\n    });\n    const minColumn = Math.min(range.startCol, range.endCol);\n    const maxColumn = Math.max(range.startCol, range.endCol);\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__[\"rangeEach\"])(minColumn, maxColumn, column => {\n      if (columns.indexOf(column) === -1) {\n        columns.push(column);\n      }\n    });\n  });\n  return {\n    rows,\n    columns\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/copyPaste/copyableRanges.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/copyPaste/index.mjs":
/*!***************************************************************!*\
  !*** ./node_modules/handsontable/plugins/copyPaste/index.mjs ***!
  \***************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, CopyPaste */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _copyPaste_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./copyPaste.mjs */ \"./node_modules/handsontable/plugins/copyPaste/copyPaste.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _copyPaste_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _copyPaste_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CopyPaste\", function() { return _copyPaste_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CopyPaste\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/copyPaste/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/copyPaste/pasteEvent.mjs":
/*!********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/copyPaste/pasteEvent.mjs ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PasteEvent; });\n/* harmony import */ var _clipboardData_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clipboardData.mjs */ \"./node_modules/handsontable/plugins/copyPaste/clipboardData.mjs\");\n\n/**\n * @private\n */\nclass PasteEvent {\n  constructor() {\n    this.clipboardData = new _clipboardData_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]();\n  }\n  preventDefault() {}\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/copyPaste/pasteEvent.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/customBorders/contextMenuItem/bottom.mjs":
/*!************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/customBorders/contextMenuItem/bottom.mjs ***!
  \************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return bottom; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/plugins/customBorders/utils.mjs\");\n\n\n/**\n * @param {CustomBorders} customBordersPlugin The plugin instance.\n * @returns {object}\n */\nfunction bottom(customBordersPlugin) {\n  return {\n    key: 'borders:bottom',\n    name() {\n      let label = this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_BOTTOM\"]);\n      const hasBorder = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"checkSelectionBorders\"])(this, 'bottom');\n      if (hasBorder) {\n        label = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"markSelected\"])(label);\n      }\n      return label;\n    },\n    callback(key, selected) {\n      const hasBorder = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"checkSelectionBorders\"])(this, 'bottom');\n      customBordersPlugin.prepareBorder(selected, 'bottom', hasBorder);\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/customBorders/contextMenuItem/bottom.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/customBorders/contextMenuItem/index.mjs":
/*!***********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/customBorders/contextMenuItem/index.mjs ***!
  \***********************************************************************************/
/*! exports provided: bottom, left, noBorders, right, top */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bottom_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bottom.mjs */ \"./node_modules/handsontable/plugins/customBorders/contextMenuItem/bottom.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bottom\", function() { return _bottom_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _left_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./left.mjs */ \"./node_modules/handsontable/plugins/customBorders/contextMenuItem/left.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"left\", function() { return _left_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _noBorders_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./noBorders.mjs */ \"./node_modules/handsontable/plugins/customBorders/contextMenuItem/noBorders.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"noBorders\", function() { return _noBorders_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _right_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./right.mjs */ \"./node_modules/handsontable/plugins/customBorders/contextMenuItem/right.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"right\", function() { return _right_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _top_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./top.mjs */ \"./node_modules/handsontable/plugins/customBorders/contextMenuItem/top.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"top\", function() { return _top_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/customBorders/contextMenuItem/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/customBorders/contextMenuItem/left.mjs":
/*!**********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/customBorders/contextMenuItem/left.mjs ***!
  \**********************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return left; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/plugins/customBorders/utils.mjs\");\n\n\n/**\n * @param {CustomBorders} customBordersPlugin The plugin instance.\n * @returns {object}\n */\nfunction left(customBordersPlugin) {\n  const borderDirection = customBordersPlugin.hot.isRtl() ? 'end' : 'start';\n  return {\n    key: 'borders:left',\n    name() {\n      let label = this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_LEFT\"]);\n      const hasBorder = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"checkSelectionBorders\"])(this, borderDirection);\n      if (hasBorder) {\n        label = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"markSelected\"])(label);\n      }\n      return label;\n    },\n    callback(key, selected) {\n      const hasBorder = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"checkSelectionBorders\"])(this, borderDirection);\n      customBordersPlugin.prepareBorder(selected, borderDirection, hasBorder);\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/customBorders/contextMenuItem/left.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/customBorders/contextMenuItem/noBorders.mjs":
/*!***************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/customBorders/contextMenuItem/noBorders.mjs ***!
  \***************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return noBorders; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/plugins/customBorders/utils.mjs\");\n\n\n/**\n * @param {CustomBorders} customBordersPlugin The plugin instance.\n * @returns {object}\n */\nfunction noBorders(customBordersPlugin) {\n  return {\n    key: 'borders:no_borders',\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_REMOVE_BORDERS\"]);\n    },\n    callback(key, selected) {\n      customBordersPlugin.prepareBorder(selected, 'noBorders');\n    },\n    disabled() {\n      return !Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"checkSelectionBorders\"])(this);\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/customBorders/contextMenuItem/noBorders.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/customBorders/contextMenuItem/right.mjs":
/*!***********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/customBorders/contextMenuItem/right.mjs ***!
  \***********************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return right; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/plugins/customBorders/utils.mjs\");\n\n\n/**\n * @param {CustomBorders} customBordersPlugin The plugin instance.\n * @returns {object}\n */\nfunction right(customBordersPlugin) {\n  const borderDirection = customBordersPlugin.hot.isRtl() ? 'start' : 'end';\n  return {\n    key: 'borders:right',\n    name() {\n      let label = this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_RIGHT\"]);\n      const hasBorder = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"checkSelectionBorders\"])(this, borderDirection);\n      if (hasBorder) {\n        label = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"markSelected\"])(label);\n      }\n      return label;\n    },\n    callback(key, selected) {\n      const hasBorder = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"checkSelectionBorders\"])(this, borderDirection);\n      customBordersPlugin.prepareBorder(selected, borderDirection, hasBorder);\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/customBorders/contextMenuItem/right.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/customBorders/contextMenuItem/top.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/customBorders/contextMenuItem/top.mjs ***!
  \*********************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return top; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/plugins/customBorders/utils.mjs\");\n\n\n/**\n * @param {CustomBorders} customBordersPlugin The plugin instance.\n * @returns {object}\n */\nfunction top(customBordersPlugin) {\n  return {\n    key: 'borders:top',\n    name() {\n      let label = this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_BORDERS_TOP\"]);\n      const hasBorder = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"checkSelectionBorders\"])(this, 'top');\n      if (hasBorder) {\n        label = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"markSelected\"])(label);\n      }\n      return label;\n    },\n    callback(key, selected) {\n      const hasBorder = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"checkSelectionBorders\"])(this, 'top');\n      customBordersPlugin.prepareBorder(selected, 'top', hasBorder);\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/customBorders/contextMenuItem/top.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/customBorders/customBorders.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/customBorders/customBorders.mjs ***!
  \***************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, CustomBorders */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CustomBorders\", function() { return CustomBorders; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _contextMenuItem_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./contextMenuItem/index.mjs */ \"./node_modules/handsontable/plugins/customBorders/contextMenuItem/index.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/plugins/customBorders/utils.mjs\");\n/* harmony import */ var _selection_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../selection/index.mjs */ \"./node_modules/handsontable/selection/index.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\nconst PLUGIN_KEY = 'customBorders';\nconst PLUGIN_PRIORITY = 90;\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @plugin CustomBorders\n * @class CustomBorders\n *\n * @description\n * This plugin enables an option to apply custom borders through the context menu (configurable with context menu key\n * `borders`).\n *\n * To initialize Handsontable with predefined custom borders, provide cell coordinates and border styles in a form\n * of an array.\n *\n * See [`customBorders` configuration option](@/api/options.md#customBorders) or go to\n * [Custom cell borders demo](@/guides/cell-features/formatting-cells/formatting-cells.md#custom-cell-borders) for more examples.\n *\n * @example\n * ```js\n * customBorders: [\n *   {\n *    range: {\n *      from: {\n *        row: 1,\n *        col: 1\n *      },\n *      to: {\n *        row: 3,\n *        col: 4\n *      },\n *    },\n *    start: {},\n *    end: {},\n *    top: {},\n *    bottom: {},\n *   },\n * ],\n *\n * // or\n * customBorders: [\n *   { row: 2,\n *     col: 2,\n *     start: {\n *       width: 2,\n *       color: 'red',\n *     },\n *     end: {\n *       width: 1,\n *       color: 'green',\n *     },\n *     top: '',\n *     bottom: '',\n *   }\n * ],\n * ```\n */\nvar _CustomBorders_brand = /*#__PURE__*/new WeakSet();\nclass CustomBorders extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * Add border options to context menu.\n     *\n     * @param {object} defaultOptions Context menu items.\n     */\n    _classPrivateMethodInitSpec(this, _CustomBorders_brand);\n    /**\n     * Saved borders.\n     *\n     * @private\n     * @type {Array}\n     */\n    _defineProperty(this, \"savedBorders\", []);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link CustomBorders#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    if (this.enabled) {\n      return;\n    }\n    this.addHook('afterContextMenuDefaultOptions', options => _assertClassBrand(_CustomBorders_brand, this, _onAfterContextMenuDefaultOptions).call(this, options));\n    this.addHook('init', () => _assertClassBrand(_CustomBorders_brand, this, _onAfterInit).call(this));\n    super.enablePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.hideBorders();\n    super.disablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`customBorders`](@/api/options.md#customborders)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    this.changeBorderSettings();\n    super.updatePlugin();\n  }\n\n  /**\n   * Set custom borders.\n   *\n   * @example\n   * ```js\n   * const customBordersPlugin = hot.getPlugin('customBorders');\n   *\n   * // Using an array of arrays (produced by `.getSelected()` method).\n   * customBordersPlugin.setBorders([[1, 1, 2, 2], [6, 2, 0, 2]], {start: {width: 2, color: 'blue'}});\n   *\n   * // Using an array of CellRange objects (produced by `.getSelectedRange()` method).\n   * //  Selecting a cell range.\n   * hot.selectCell(0, 0, 2, 2);\n   * // Returning selected cells' range with the getSelectedRange method.\n   * customBordersPlugin.setBorders(hot.getSelectedRange(), {start: {hide: false, width: 2, color: 'blue'}});\n   * ```\n   *\n   * @param {Array[]|CellRange[]} selectionRanges Array of selection ranges.\n   * @param {object} borderObject Object with `top`, `right`, `bottom` and `start` properties.\n   */\n  setBorders(selectionRanges, borderObject) {\n    let borderKeys = ['top', 'bottom', 'start', 'end'];\n    let normBorder = null;\n    if (borderObject) {\n      this.checkSettingsCohesion([borderObject]);\n      borderKeys = Object.keys(borderObject);\n      normBorder = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"normalizeBorder\"])(borderObject);\n    }\n    const selectionType = Object(_selection_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"detectSelectionType\"])(selectionRanges);\n    const selectionSchemaNormalizer = Object(_selection_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"normalizeSelectionFactory\"])(selectionType, {\n      createCellCoords: this.hot._createCellCoords.bind(this.hot),\n      createCellRange: this.hot._createCellRange.bind(this.hot)\n    });\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(selectionRanges, selection => {\n      selectionSchemaNormalizer(selection).forAll((row, col) => {\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(borderKeys, borderKey => {\n          this.prepareBorderFromCustomAdded(row, col, normBorder, Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"toInlinePropName\"])(borderKey));\n        });\n      });\n    });\n\n    /*\n    The line below triggers a re-render of Handsontable. This will be a \"fastDraw\"\n    render, because that is the default for the TableView class.\n     The re-render is needed for borders on cells that did not have a border before.\n    The way this call works is that it calls Table.refreshSelections, which calls\n    Selection.getBorder, which creates a new instance of Border.\n     Seems wise to keep this single-direction flow of creating new Borders\n    */\n    this.hot.view.render();\n  }\n\n  /**\n   * Get custom borders.\n   *\n   * @example\n   * ```js\n   * const customBordersPlugin = hot.getPlugin('customBorders');\n   *\n   * // Using an array of arrays (produced by `.getSelected()` method).\n   * customBordersPlugin.getBorders([[1, 1, 2, 2], [6, 2, 0, 2]]);\n   * // Using an array of CellRange objects (produced by `.getSelectedRange()` method).\n   * customBordersPlugin.getBorders(hot.getSelectedRange());\n   * // Using without param - return all customBorders.\n   * customBordersPlugin.getBorders();\n   * ```\n   *\n   * @param {Array[]|CellRange[]} selectionRanges Array of selection ranges.\n   * @returns {object[]} Returns array of border objects.\n   */\n  getBorders(selectionRanges) {\n    if (!Array.isArray(selectionRanges)) {\n      return this.savedBorders;\n    }\n    const selectionType = Object(_selection_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"detectSelectionType\"])(selectionRanges);\n    const selectionSchemaNormalizer = Object(_selection_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"normalizeSelectionFactory\"])(selectionType, {\n      createCellCoords: this.hot._createCellCoords.bind(this.hot),\n      createCellRange: this.hot._createCellRange.bind(this.hot)\n    });\n    const selectedBorders = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(selectionRanges, selection => {\n      selectionSchemaNormalizer(selection).forAll((row, col) => {\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(this.savedBorders, border => {\n          if (border.row === row && border.col === col) {\n            selectedBorders.push(Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"denormalizeBorder\"])(border));\n          }\n        });\n      });\n    });\n    return selectedBorders;\n  }\n\n  /**\n   * Clear custom borders.\n   *\n   * @example\n   * ```js\n   * const customBordersPlugin = hot.getPlugin('customBorders');\n   *\n   * // Using an array of arrays (produced by `.getSelected()` method).\n   * customBordersPlugin.clearBorders([[1, 1, 2, 2], [6, 2, 0, 2]]);\n   * // Using an array of CellRange objects (produced by `.getSelectedRange()` method).\n   * customBordersPlugin.clearBorders(hot.getSelectedRange());\n   * // Using without param - clear all customBorders.\n   * customBordersPlugin.clearBorders();\n   * ```\n   *\n   * @param {Array[]|CellRange[]} selectionRanges Array of selection ranges.\n   */\n  clearBorders(selectionRanges) {\n    if (selectionRanges) {\n      this.setBorders(selectionRanges);\n    } else {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(this.savedBorders, border => {\n        this.clearBordersFromSelectionSettings(border.id);\n        this.clearNullCellRange();\n        this.hot.removeCellMeta(border.row, border.col, 'borders');\n      });\n      this.savedBorders.length = 0;\n    }\n  }\n\n  /**\n   * Insert WalkontableSelection instance into Walkontable settings.\n   *\n   * @private\n   * @param {object} border Object with `row` and `col`, `start`, `end`, `top` and `bottom`, `id` and `border` ({Object} with `color`, `width` and `cornerVisible` property) properties.\n   * @param {string} [place] Coordinate where add/remove border - `top`, `bottom`, `start`, `end`.\n   */\n  insertBorderIntoSettings(border, place) {\n    const hasSavedBorders = this.checkSavedBorders(border);\n    if (!hasSavedBorders) {\n      this.savedBorders.push(border);\n    }\n    const visualCellRange = this.hot._createCellRange(this.hot._createCellCoords(border.row, border.col));\n    const hasCustomSelections = this.checkCustomSelections(border, visualCellRange, place);\n    if (!hasCustomSelections) {\n      this.hot.selection.highlight.addCustomSelection({\n        border,\n        visualCellRange\n      });\n    }\n  }\n\n  /**\n   * Prepare borders from setting (single cell).\n   *\n   * @private\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @param {object} borderDescriptor Object with `row` and `col`, `start`, `end`, `top` and `bottom` properties.\n   * @param {string} [place] Coordinate where add/remove border - `top`, `bottom`, `start`, `end`.\n   */\n  prepareBorderFromCustomAdded(row, column, borderDescriptor, place) {\n    const nrOfRows = this.hot.countRows();\n    const nrOfColumns = this.hot.countCols();\n    if (row >= nrOfRows || column >= nrOfColumns) {\n      return;\n    }\n    let border = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"createEmptyBorders\"])(row, column);\n    if (borderDescriptor) {\n      border = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"extendDefaultBorder\"])(border, borderDescriptor);\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(this.hot.selection.highlight.customSelections, customSelection => {\n        if (border.id === customSelection.settings.id) {\n          Object.assign(customSelection.settings, borderDescriptor);\n          border.id = customSelection.settings.id;\n          border.top = customSelection.settings.top;\n          border.bottom = customSelection.settings.bottom;\n          border.start = customSelection.settings.start;\n          border.end = customSelection.settings.end;\n          return false; // breaks forAll\n        }\n      });\n    }\n    this.hot.setCellMeta(row, column, 'borders', Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"denormalizeBorder\"])(border));\n    this.insertBorderIntoSettings(border, place);\n  }\n\n  /**\n   * Prepare borders from setting (object).\n   *\n   * @private\n   * @param {object} range {CellRange} The CellRange object.\n   * @param {object} customBorder Object with `start`, `end`, `top` and `bottom` properties.\n   */\n  prepareBorderFromCustomAddedRange(range, customBorder) {\n    const lastRowIndex = Math.min(range.to.row, this.hot.countRows() - 1);\n    const lastColumnIndex = Math.min(range.to.col, this.hot.countCols() - 1);\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(range.from.row, lastRowIndex, rowIndex => {\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(range.from.col, lastColumnIndex, colIndex => {\n        const border = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"createEmptyBorders\"])(rowIndex, colIndex);\n        let add = 0;\n        if (rowIndex === range.from.row) {\n          if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"hasOwnProperty\"])(customBorder, 'top')) {\n            add += 1;\n            border.top = customBorder.top;\n          }\n        }\n\n        // Please keep in mind that `range.to.row` may be beyond the table boundaries. The border won't be rendered.\n        if (rowIndex === range.to.row) {\n          if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"hasOwnProperty\"])(customBorder, 'bottom')) {\n            add += 1;\n            border.bottom = customBorder.bottom;\n          }\n        }\n        if (colIndex === range.from.col) {\n          if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"hasOwnProperty\"])(customBorder, 'start')) {\n            add += 1;\n            border.start = customBorder.start;\n          }\n        }\n\n        // Please keep in mind that `range.to.col` may be beyond the table boundaries. The border won't be rendered.\n        if (colIndex === range.to.col) {\n          if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"hasOwnProperty\"])(customBorder, 'end')) {\n            add += 1;\n            border.end = customBorder.end;\n          }\n        }\n        if (add > 0) {\n          this.hot.setCellMeta(rowIndex, colIndex, 'borders', Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"denormalizeBorder\"])(border));\n          this.insertBorderIntoSettings(border);\n        } else {\n          // TODO sometimes it enters here. Why?\n        }\n      });\n    });\n  }\n\n  /**\n   * Remove border (triggered from context menu).\n   *\n   * @private\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   */\n  removeAllBorders(row, column) {\n    const borderId = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"createId\"])(row, column);\n    this.spliceBorder(borderId);\n    this.clearBordersFromSelectionSettings(borderId);\n    this.clearNullCellRange();\n    this.hot.removeCellMeta(row, column, 'borders');\n  }\n\n  /**\n   * Set borders for each cell re. To border position.\n   *\n   * @private\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @param {string} place Coordinate where add/remove border - `top`, `bottom`, `start`, `end` and `noBorders`.\n   * @param {boolean} remove True when remove borders, and false when add borders.\n   */\n  setBorder(row, column, place, remove) {\n    let bordersMeta = this.hot.getCellMeta(row, column).borders;\n    if (!bordersMeta || bordersMeta.border === undefined) {\n      bordersMeta = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"createEmptyBorders\"])(row, column);\n    } else {\n      bordersMeta = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"normalizeBorder\"])(bordersMeta);\n    }\n    if (remove) {\n      bordersMeta[place] = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"createSingleEmptyBorder\"])();\n      const hideCount = this.countHide(bordersMeta);\n      if (hideCount === 4) {\n        this.removeAllBorders(row, column);\n      } else {\n        const customSelectionsChecker = this.checkCustomSelectionsFromContextMenu(bordersMeta, place, remove);\n        if (!customSelectionsChecker) {\n          this.insertBorderIntoSettings(bordersMeta);\n        }\n        this.hot.setCellMeta(row, column, 'borders', Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"denormalizeBorder\"])(bordersMeta));\n      }\n    } else {\n      bordersMeta[place] = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"createDefaultCustomBorder\"])();\n      const customSelectionsChecker = this.checkCustomSelectionsFromContextMenu(bordersMeta, place, remove);\n      if (!customSelectionsChecker) {\n        this.insertBorderIntoSettings(bordersMeta);\n      }\n      this.hot.setCellMeta(row, column, 'borders', Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"denormalizeBorder\"])(bordersMeta));\n    }\n  }\n\n  /**\n   * Prepare borders based on cell and border position.\n   *\n   * @private\n   * @param {CellRange[]} selected An array of CellRange objects.\n   * @param {string} place Coordinate where add/remove border - `top`, `bottom`, `left`, `right` and `noBorders`.\n   * @param {boolean} remove True when remove borders, and false when add borders.\n   */\n  prepareBorder(selected, place, remove) {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(selected, _ref => {\n      let {\n        start,\n        end\n      } = _ref;\n      if (start.row === end.row && start.col === end.col) {\n        if (place === 'noBorders') {\n          this.removeAllBorders(start.row, start.col);\n        } else {\n          this.setBorder(start.row, start.col, place, remove);\n        }\n      } else {\n        switch (place) {\n          case 'noBorders':\n            Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(start.col, end.col, colIndex => {\n              Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(start.row, end.row, rowIndex => {\n                this.removeAllBorders(rowIndex, colIndex);\n              });\n            });\n            break;\n          case 'top':\n            Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(start.col, end.col, topCol => {\n              this.setBorder(start.row, topCol, place, remove);\n            });\n            break;\n          case 'bottom':\n            Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(start.col, end.col, bottomCol => {\n              this.setBorder(end.row, bottomCol, place, remove);\n            });\n            break;\n          case 'start':\n            Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(start.row, end.row, rowStart => {\n              this.setBorder(rowStart, start.col, place, remove);\n            });\n            break;\n          case 'end':\n            Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(start.row, end.row, rowEnd => {\n              this.setBorder(rowEnd, end.col, place, remove);\n            });\n            break;\n          default:\n            break;\n        }\n      }\n    });\n  }\n\n  /**\n   * Create borders from settings.\n   *\n   * @private\n   * @param {Array} customBorders Object with `row` and `col`, `start`, `end`, `top` and `bottom` properties.\n   */\n  createCustomBorders(customBorders) {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(customBorders, customBorder => {\n      const normCustomBorder = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"normalizeBorder\"])(customBorder);\n      if (customBorder.range) {\n        this.prepareBorderFromCustomAddedRange(customBorder.range, normCustomBorder);\n      } else {\n        this.prepareBorderFromCustomAdded(customBorder.row, customBorder.col, normCustomBorder);\n      }\n    });\n  }\n\n  /**\n   * Count hide property in border object.\n   *\n   * @private\n   * @param {object} border Object with `row` and `col`, `start`, `end`, `top` and `bottom`, `id` and\n   *                        `border` ({Object} with `color`, `width` and `cornerVisible` property) properties.\n   * @returns {number}\n   */\n  countHide(border) {\n    const {\n      top,\n      bottom,\n      start,\n      end\n    } = border;\n    const values = [top, bottom, start, end];\n    return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayReduce\"])(values, (accumulator, value) => {\n      let result = accumulator;\n      if (value && value.hide) {\n        result += 1;\n      }\n      return result;\n    }, 0);\n  }\n\n  /**\n   * Clear borders settings from custom selections.\n   *\n   * @private\n   * @param {string} borderId Border id name as string.\n   */\n  clearBordersFromSelectionSettings(borderId) {\n    const index = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayMap\"])(this.hot.selection.highlight.customSelections, customSelection => customSelection.settings.id).indexOf(borderId);\n    if (index > -1) {\n      this.hot.selection.highlight.customSelections[index].clear();\n    }\n  }\n\n  /**\n   * Clear cellRange with null value.\n   *\n   * @private\n   */\n  clearNullCellRange() {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(this.hot.selection.highlight.customSelections, (customSelection, index) => {\n      if (customSelection.cellRange === null) {\n        this.hot.selection.highlight.customSelections[index].destroy();\n        this.hot.selection.highlight.customSelections.splice(index, 1);\n        return false; // breaks forAll\n      }\n    });\n  }\n\n  /**\n   * Hide custom borders.\n   *\n   * @private\n   */\n  hideBorders() {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(this.savedBorders, border => {\n      this.clearBordersFromSelectionSettings(border.id);\n      this.clearNullCellRange();\n    });\n  }\n\n  /**\n   * Splice border from savedBorders.\n   *\n   * @private\n   * @param {string} borderId Border id name as string.\n   */\n  spliceBorder(borderId) {\n    const index = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayMap\"])(this.savedBorders, border => border.id).indexOf(borderId);\n    if (index > -1) {\n      this.savedBorders.splice(index, 1);\n    }\n  }\n\n  /**\n   * Check if an border already exists in the savedBorders array, and if true update border in savedBorders.\n   *\n   * @private\n   * @param {object} border Object with `row` and `col`, `start`, `end`, `top` and `bottom`, `id` and\n   *                        `border` ({Object} with `color`, `width` and `cornerVisible` property) properties.\n   *\n   * @returns {boolean}\n   */\n  checkSavedBorders(border) {\n    let check = false;\n    const hideCount = this.countHide(border);\n    if (hideCount === 4) {\n      this.spliceBorder(border.id);\n      check = true;\n    } else {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(this.savedBorders, (savedBorder, index) => {\n        if (border.id === savedBorder.id) {\n          this.savedBorders[index] = border;\n          check = true;\n          return false; // breaks forAll\n        }\n      });\n    }\n    return check;\n  }\n\n  /**\n   * Check if an border already exists in the customSelections, and if true call toggleHiddenClass method.\n   *\n   * @private\n   * @param {object} border Object with `row` and `col`, `start`, `end`, `top` and `bottom`, `id` and\n   *                        `border` ({Object} with `color`, `width` and `cornerVisible` property) properties.\n   * @param {string} place Coordinate where add/remove border - `top`, `bottom`, `start`, `end` and `noBorders`.\n   * @param {boolean} remove True when remove borders, and false when add borders.\n   *\n   * @returns {boolean}\n   */\n  checkCustomSelectionsFromContextMenu(border, place, remove) {\n    let check = false;\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(this.hot.selection.highlight.customSelections, customSelection => {\n      if (border.id === customSelection.settings.id) {\n        const borders = this.hot.view._wt.selectionManager.getBorderInstances(customSelection);\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(borders, borderObject => {\n          borderObject.toggleHiddenClass(place, remove); // TODO this also bad?\n        });\n        check = true;\n        return false; // breaks forAll\n      }\n    });\n    return check;\n  }\n\n  /**\n   * Check if an border already exists in the customSelections, and if true reset cellRange.\n   *\n   * @private\n   * @param {object} border Object with `row` and `col`, `start`, `end`, `top` and `bottom`, `id` and\n   *                        `border` ({Object} with `color`, `width` and `cornerVisible` property) properties.\n   * @param {CellRange} cellRange The selection range to check.\n   * @param {string} [place] Coordinate where add/remove border - `top`, `bottom`, `start`, `end`.\n   * @returns {boolean}\n   */\n  checkCustomSelections(border, cellRange, place) {\n    const hideCount = this.countHide(border);\n    let check = false;\n    if (hideCount === 4) {\n      this.removeAllBorders(border.row, border.col);\n      check = true;\n    } else {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(this.hot.selection.highlight.customSelections, customSelection => {\n        if (border.id === customSelection.settings.id) {\n          customSelection.visualCellRange = cellRange;\n          customSelection.commit();\n          if (place) {\n            const borders = this.hot.view._wt.selectionManager.getBorderInstances(customSelection);\n            Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(borders, borderObject => {\n              borderObject.changeBorderStyle(place, border);\n            });\n          }\n          check = true;\n          return false; // breaks forAll\n        }\n      });\n    }\n    return check;\n  }\n\n  /**\n   * Change borders from settings.\n   *\n   * @private\n   */\n  changeBorderSettings() {\n    const customBorders = this.hot.getSettings()[PLUGIN_KEY];\n    if (Array.isArray(customBorders)) {\n      const bordersClone = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"deepClone\"])(customBorders);\n      this.checkSettingsCohesion(bordersClone);\n      if (!bordersClone.length) {\n        this.savedBorders = bordersClone;\n      }\n      this.createCustomBorders(bordersClone);\n    } else if (customBorders !== undefined) {\n      this.createCustomBorders(this.savedBorders);\n    }\n  }\n\n  /**\n   * Checks the settings cohesion. The properties such like \"left\"/\"right\" are supported only\n   * in the LTR mode and the \"left\"/\"right\" options can not be used together with \"start\"/\"end\" properties.\n   *\n   * @private\n   * @param {object[]} customBorders The user defined custom border objects array.\n   */\n  checkSettingsCohesion(customBorders) {\n    const hasLeftOrRight = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"hasLeftRightTypeOptions\"])(customBorders);\n    const hasStartOrEnd = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"hasStartEndTypeOptions\"])(customBorders);\n    if (hasLeftOrRight && hasStartOrEnd) {\n      throw new Error('The \"left\"/\"right\" and \"start\"/\"end\" options should not be used together. ' + 'Please use only the option \"start\"/\"end\".');\n    }\n    if (this.hot.isRtl() && hasLeftOrRight) {\n      throw new Error('The \"left\"/\"right\" properties are not supported for RTL. Please use option \"start\"/\"end\".');\n    }\n  }\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    super.destroy();\n  }\n}\nfunction _onAfterContextMenuDefaultOptions(defaultOptions) {\n  if (!this.hot.getSettings()[PLUGIN_KEY]) {\n    return;\n  }\n  defaultOptions.items.push({\n    name: '---------'\n  }, {\n    key: 'borders',\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_6__[\"CONTEXTMENU_ITEMS_BORDERS\"]);\n    },\n    disabled() {\n      const range = this.getSelectedRangeLast();\n      if (!range) {\n        return true;\n      }\n      if (range.isSingleHeader()) {\n        return true;\n      }\n      return this.selection.isSelectedByCorner();\n    },\n    submenu: {\n      items: [Object(_contextMenuItem_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"top\"])(this), Object(_contextMenuItem_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"right\"])(this), Object(_contextMenuItem_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"bottom\"])(this), Object(_contextMenuItem_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"left\"])(this), Object(_contextMenuItem_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"noBorders\"])(this)]\n    }\n  });\n}\n/**\n * `afterInit` hook callback.\n */\nfunction _onAfterInit() {\n  this.changeBorderSettings();\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/customBorders/customBorders.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/customBorders/index.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/plugins/customBorders/index.mjs ***!
  \*******************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, CustomBorders */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _customBorders_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./customBorders.mjs */ \"./node_modules/handsontable/plugins/customBorders/customBorders.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _customBorders_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _customBorders_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CustomBorders\", function() { return _customBorders_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CustomBorders\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/customBorders/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/customBorders/utils.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/plugins/customBorders/utils.mjs ***!
  \*******************************************************************/
/*! exports provided: createId, createDefaultCustomBorder, createSingleEmptyBorder, createDefaultHtBorder, normalizeBorder, denormalizeBorder, createEmptyBorders, extendDefaultBorder, checkSelectionBorders, markSelected, hasLeftRightTypeOptions, hasStartEndTypeOptions, toInlinePropName */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createId\", function() { return createId; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createDefaultCustomBorder\", function() { return createDefaultCustomBorder; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createSingleEmptyBorder\", function() { return createSingleEmptyBorder; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createDefaultHtBorder\", function() { return createDefaultHtBorder; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeBorder\", function() { return normalizeBorder; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"denormalizeBorder\", function() { return denormalizeBorder; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createEmptyBorders\", function() { return createEmptyBorders; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extendDefaultBorder\", function() { return extendDefaultBorder; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"checkSelectionBorders\", function() { return checkSelectionBorders; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"markSelected\", function() { return markSelected; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasLeftRightTypeOptions\", function() { return hasLeftRightTypeOptions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasStartEndTypeOptions\", function() { return hasStartEndTypeOptions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toInlinePropName\", function() { return toInlinePropName; });\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n\n\n/**\n * Create separated id for borders for each cell.\n *\n * @param {number} row Visual row index.\n * @param {number} col Visual column index.\n * @returns {string}\n */\nfunction createId(row, col) {\n  return `border_row${row}col${col}`;\n}\n\n/**\n * Create default single border for each position (top/right/bottom/left).\n *\n * @returns {object} `{{width: number, color: string}}`.\n */\nfunction createDefaultCustomBorder() {\n  return {\n    width: 1,\n    color: '#000'\n  };\n}\n\n/**\n * Create default object for empty border.\n *\n * @returns {object} `{{hide: boolean}}`.\n */\nfunction createSingleEmptyBorder() {\n  return {\n    hide: true\n  };\n}\n\n/**\n * Create default Handsontable border object.\n *\n * @returns {object} `{{width: number, color: string, cornerVisible: boolean}}`.\n */\nfunction createDefaultHtBorder() {\n  return {\n    width: 1,\n    color: '#000',\n    cornerVisible: false\n  };\n}\n\n/**\n * Normalizes the border object to be compatible with the Border API from the Walkontable.\n * The function translates the \"left\"/\"right\" properties to \"start\"/\"end\" prop names.\n *\n * @param {object} border The configuration object of the border.\n * @returns {object}\n */\nfunction normalizeBorder(border) {\n  if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(border.start) || Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(border.left)) {\n    var _border$start;\n    border.start = (_border$start = border.start) !== null && _border$start !== void 0 ? _border$start : border.left;\n  }\n  if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(border.end) || Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(border.right)) {\n    var _border$end;\n    border.end = (_border$end = border.end) !== null && _border$end !== void 0 ? _border$end : border.right;\n  }\n  delete border.left;\n  delete border.right;\n  return border;\n}\n\n/**\n * Denormalizes the border object to be backward compatible with the previous version of the CustomBorders\n * plugin API. The function extends the border configuration object for the backward compatible \"left\"/\"right\"\n * properties.\n *\n * @param {object} border The configuration object of the border.\n * @returns {object}\n */\nfunction denormalizeBorder(border) {\n  if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(border.start)) {\n    border.left = border.start;\n  }\n  if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(border.end)) {\n    border.right = border.end;\n  }\n  return border;\n}\n\n/**\n * Prepare empty border for each cell with all custom borders hidden.\n *\n * @param {number} row Visual row index.\n * @param {number} col Visual column index.\n * @returns {{id: string, border: any, row: number, col: number, top: {hide: boolean}, bottom: {hide: boolean}, start: {hide: boolean}, end: {hide: boolean}}} Returns border configuration containing visual indexes.\n */\nfunction createEmptyBorders(row, col) {\n  return {\n    id: createId(row, col),\n    border: createDefaultHtBorder(),\n    row,\n    col,\n    top: createSingleEmptyBorder(),\n    bottom: createSingleEmptyBorder(),\n    start: createSingleEmptyBorder(),\n    end: createSingleEmptyBorder()\n  };\n}\n\n/**\n * @param {object} defaultBorder The default border object.\n * @param {object} customBorder The border object with custom settings.\n * @returns {object}\n */\nfunction extendDefaultBorder(defaultBorder, customBorder) {\n  if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(customBorder, 'border') && customBorder.border) {\n    defaultBorder.border = customBorder.border;\n  }\n  if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(customBorder, 'top') && Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(customBorder.top)) {\n    if (customBorder.top) {\n      if (!Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(customBorder.top)) {\n        customBorder.top = createDefaultCustomBorder();\n      }\n      defaultBorder.top = customBorder.top;\n    } else {\n      customBorder.top = createSingleEmptyBorder();\n      defaultBorder.top = customBorder.top;\n    }\n  }\n  if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(customBorder, 'bottom') && Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(customBorder.bottom)) {\n    if (customBorder.bottom) {\n      if (!Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(customBorder.bottom)) {\n        customBorder.bottom = createDefaultCustomBorder();\n      }\n      defaultBorder.bottom = customBorder.bottom;\n    } else {\n      customBorder.bottom = createSingleEmptyBorder();\n      defaultBorder.bottom = customBorder.bottom;\n    }\n  }\n  if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(customBorder, 'start') && Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(customBorder.start)) {\n    if (customBorder.start) {\n      if (!Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(customBorder.start)) {\n        customBorder.start = createDefaultCustomBorder();\n      }\n      defaultBorder.start = customBorder.start;\n    } else {\n      customBorder.start = createSingleEmptyBorder();\n      defaultBorder.start = customBorder.start;\n    }\n  }\n  if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(customBorder, 'end') && Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(customBorder.end)) {\n    if (customBorder.end) {\n      if (!Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(customBorder.end)) {\n        customBorder.end = createDefaultCustomBorder();\n      }\n      defaultBorder.end = customBorder.end;\n    } else {\n      customBorder.end = createSingleEmptyBorder();\n      defaultBorder.end = customBorder.end;\n    }\n  }\n  return defaultBorder;\n}\n\n/**\n * Check if selection has border.\n *\n * @param {Core} hot The Handsontable instance.\n * @param {string} [direction] If set ('left' or 'top') then only the specified border side will be checked.\n * @returns {boolean}\n */\nfunction checkSelectionBorders(hot, direction) {\n  let atLeastOneHasBorder = false;\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(hot.getSelectedRange(), range => {\n    range.forAll((r, c) => {\n      if (r < 0 || c < 0) {\n        return;\n      }\n      const metaBorders = hot.getCellMeta(r, c).borders;\n      if (metaBorders) {\n        if (direction) {\n          if (!Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(metaBorders[direction], 'hide') || metaBorders[direction].hide === false) {\n            atLeastOneHasBorder = true;\n            return false; // breaks forAll\n          }\n        } else {\n          atLeastOneHasBorder = true;\n          return false; // breaks forAll\n        }\n      }\n    });\n  });\n  return atLeastOneHasBorder;\n}\n\n/**\n * Mark label in contextMenu as selected.\n *\n * @param {string} label The label text.\n * @returns {string}\n */\nfunction markSelected(label) {\n  return `<span class=\"selected\">${String.fromCharCode(10003)}</span>${label}`; // workaround for https://github.com/handsontable/handsontable/issues/1946\n}\n\n/**\n * Checks if in the borders config there are defined \"left\" or \"right\" border properties.\n *\n * @param {object[]} borders The custom border plugin's options.\n * @returns {boolean}\n */\nfunction hasLeftRightTypeOptions(borders) {\n  return borders.some(border => Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(border.left) || Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(border.right));\n}\n\n/**\n * Checks if in the borders config there are defined \"start\" or \"end\" border properties.\n *\n * @param {object[]} borders The custom border plugin's options.\n * @returns {boolean}\n */\nfunction hasStartEndTypeOptions(borders) {\n  return borders.some(border => Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(border.start) || Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(border.end));\n}\nconst physicalToInlinePropNames = new Map([['left', 'start'], ['right', 'end']]);\n\n/**\n * Translates the physical horizontal direction to logical ones. If not known property name is\n * passed it will be returned without modification.\n *\n * @param {string} propName The physical direction property name (\"left\" or \"right\").\n * @returns {string}\n */\nfunction toInlinePropName(propName) {\n  var _physicalToInlineProp;\n  return (_physicalToInlineProp = physicalToInlinePropNames.get(propName)) !== null && _physicalToInlineProp !== void 0 ? _physicalToInlineProp : propName;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/customBorders/utils.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/dragToScroll/dragToScroll.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/dragToScroll/dragToScroll.mjs ***!
  \*************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, DragToScroll */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DragToScroll\", function() { return DragToScroll; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\nconst PLUGIN_KEY = 'dragToScroll';\nconst PLUGIN_PRIORITY = 100;\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @description\n * Plugin used to scroll Handsontable by selecting a cell and dragging outside of the visible viewport.\n *\n *\n * @class DragToScroll\n * @plugin DragToScroll\n */\nvar _DragToScroll_brand = /*#__PURE__*/new WeakSet();\nclass DragToScroll extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * On after on cell/cellCorner mouse down listener.\n     *\n     * @param {MouseEvent} event The mouse event object.\n     */\n    _classPrivateMethodInitSpec(this, _DragToScroll_brand);\n    /**\n     * Size of an element and its position relative to the viewport,\n     * e.g. {bottom: 449, height: 441, left: 8, right: 814, top: 8, width: 806, x: 8, y:8}.\n     *\n     * @type {DOMRect}\n     */\n    _defineProperty(this, \"boundaries\", null);\n    /**\n     * Callback function.\n     *\n     * @private\n     * @type {Function}\n     */\n    _defineProperty(this, \"callback\", null);\n    /**\n     * Flag indicates mouseDown/mouseUp.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _defineProperty(this, \"listening\", false);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link DragToScroll#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    if (this.enabled) {\n      return;\n    }\n    this.addHook('afterOnCellMouseDown', event => _assertClassBrand(_DragToScroll_brand, this, _setupListening).call(this, event));\n    this.addHook('afterOnCellCornerMouseDown', event => _assertClassBrand(_DragToScroll_brand, this, _setupListening).call(this, event));\n    this.registerEvents();\n    super.enablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`dragToScroll`](@/api/options.md#dragtoscroll)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.unregisterEvents();\n    super.disablePlugin();\n  }\n\n  /**\n   * Sets the boundaries/dimensions of the scrollable viewport.\n   *\n   * @param {DOMRect|{left: number, right: number, top: number, bottom: number}} [boundaries] An object with\n   * coordinates. Contains the window boundaries by default. The object is compatible with DOMRect.\n   */\n  setBoundaries() {\n    let boundaries = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n      left: 0,\n      right: this.hot.rootWindow.innerWidth,\n      top: 0,\n      bottom: this.hot.rootWindow.innerHeight\n    };\n    this.boundaries = boundaries;\n  }\n\n  /**\n   * Changes callback function.\n   *\n   * @param {Function} callback The callback function.\n   */\n  setCallback(callback) {\n    this.callback = callback;\n  }\n\n  /**\n   * Checks if the mouse position (X, Y) is outside the viewport and fires a callback with calculated X an Y diffs\n   * between passed boundaries.\n   *\n   * @param {number} x Mouse X coordinate to check.\n   * @param {number} y Mouse Y coordinate to check.\n   */\n  check(x, y) {\n    let diffX = 0;\n    let diffY = 0;\n    if (y < this.boundaries.top) {\n      // y is less than top\n      diffY = y - this.boundaries.top;\n    } else if (y > this.boundaries.bottom) {\n      // y is more than bottom\n      diffY = y - this.boundaries.bottom;\n    }\n    if (x < this.boundaries.left) {\n      // x is less than left\n      diffX = x - this.boundaries.left;\n    } else if (x > this.boundaries.right) {\n      // x is more than right\n      diffX = x - this.boundaries.right;\n    }\n    this.callback(diffX, diffY);\n  }\n\n  /**\n   * Enables listening on `mousemove` event.\n   *\n   * @private\n   */\n  listen() {\n    this.listening = true;\n  }\n\n  /**\n   * Disables listening on `mousemove` event.\n   *\n   * @private\n   */\n  unlisten() {\n    this.listening = false;\n  }\n\n  /**\n   * Returns current state of listening.\n   *\n   * @private\n   * @returns {boolean}\n   */\n  isListening() {\n    return this.listening;\n  }\n\n  /**\n   * Registers dom listeners.\n   *\n   * @private\n   */\n  registerEvents() {\n    const {\n      rootWindow\n    } = this.hot;\n    let frame = rootWindow;\n    while (frame) {\n      this.eventManager.addEventListener(frame.document, 'contextmenu', () => this.unlisten());\n      this.eventManager.addEventListener(frame.document, 'mouseup', () => this.unlisten());\n      this.eventManager.addEventListener(frame.document, 'mousemove', event => this.onMouseMove(event));\n      frame = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"getParentWindow\"])(frame);\n    }\n  }\n\n  /**\n   * Unbinds the events used by the plugin.\n   *\n   * @private\n   */\n  unregisterEvents() {\n    this.eventManager.clear();\n  }\n  /**\n   * 'mouseMove' event callback.\n   *\n   * @private\n   * @param {MouseEvent} event `mousemove` event properties.\n   */\n  onMouseMove(event) {\n    if (!this.isListening()) {\n      return;\n    }\n    this.check(event.clientX, event.clientY);\n  }\n\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    super.destroy();\n  }\n}\nfunction _setupListening(event) {\n  if (Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isRightClick\"])(event)) {\n    return;\n  }\n  const scrollHandler = this.hot.view._wt.wtOverlays.topOverlay.mainTableScrollableElement;\n  this.setBoundaries(scrollHandler !== this.hot.rootWindow ? scrollHandler.getBoundingClientRect() : undefined);\n  this.setCallback((scrollX, scrollY) => {\n    var _scrollHandler$scroll, _scrollHandler$scroll2;\n    const horizontalScrollValue = (_scrollHandler$scroll = scrollHandler.scrollLeft) !== null && _scrollHandler$scroll !== void 0 ? _scrollHandler$scroll : scrollHandler.scrollX;\n    const verticalScrollValue = (_scrollHandler$scroll2 = scrollHandler.scrollTop) !== null && _scrollHandler$scroll2 !== void 0 ? _scrollHandler$scroll2 : scrollHandler.scrollY;\n    scrollHandler.scroll(horizontalScrollValue + Math.sign(scrollX) * 50, verticalScrollValue + Math.sign(scrollY) * 20);\n  });\n  this.listen();\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/dragToScroll/dragToScroll.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/dragToScroll/index.mjs":
/*!******************************************************************!*\
  !*** ./node_modules/handsontable/plugins/dragToScroll/index.mjs ***!
  \******************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, DragToScroll */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dragToScroll_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dragToScroll.mjs */ \"./node_modules/handsontable/plugins/dragToScroll/dragToScroll.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _dragToScroll_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _dragToScroll_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DragToScroll\", function() { return _dragToScroll_mjs__WEBPACK_IMPORTED_MODULE_0__[\"DragToScroll\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/dragToScroll/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/dropdownMenu/dropdownMenu.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/dropdownMenu/dropdownMenu.mjs ***!
  \*************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, DropdownMenu */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DropdownMenu\", function() { return DropdownMenu; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _contextMenu_commandExecutor_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../contextMenu/commandExecutor.mjs */ \"./node_modules/handsontable/plugins/contextMenu/commandExecutor.mjs\");\n/* harmony import */ var _contextMenu_utils_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../contextMenu/utils.mjs */ \"./node_modules/handsontable/plugins/contextMenu/utils.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _contextMenu_itemsFactory_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../contextMenu/itemsFactory.mjs */ \"./node_modules/handsontable/plugins/contextMenu/itemsFactory.mjs\");\n/* harmony import */ var _contextMenu_menu_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../contextMenu/menu/index.mjs */ \"./node_modules/handsontable/plugins/contextMenu/menu/index.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../contextMenu/predefinedItems/index.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/index.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\n\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"].getSingleton().register('afterDropdownMenuDefaultOptions');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"].getSingleton().register('beforeDropdownMenuShow');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"].getSingleton().register('afterDropdownMenuShow');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"].getSingleton().register('afterDropdownMenuHide');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"].getSingleton().register('afterDropdownMenuExecute');\nconst PLUGIN_KEY = 'dropdownMenu';\nconst PLUGIN_PRIORITY = 230;\nconst BUTTON_CLASS_NAME = 'changeType';\nconst SHORTCUTS_GROUP = PLUGIN_KEY;\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * @plugin DropdownMenu\n * @class DropdownMenu\n *\n * @description\n * This plugin creates the Handsontable Dropdown Menu. It allows to create a new column at any place in the grid\n * among [other features](@/guides/accessories-and-menus/context-menu/context-menu.md#context-menu-with-specific-options).\n * Possible values:\n * * `true` (to enable default options),\n * * `false` (to disable completely).\n *\n * or array of any available strings:\n * * `[\"col_left\", \"col_right\", \"remove_col\", \"---------\", \"undo\", \"redo\"]`.\n *\n * See [the dropdown menu demo](@/guides/columns/column-menu/column-menu.md) for examples.\n *\n * @example\n * ::: only-for javascript\n * ```js\n * const container = document.getElementById('example');\n * const hot = new Handsontable(container, {\n *   data: data,\n *   colHeaders: true,\n *   // enable dropdown menu\n *   dropdownMenu: true\n * });\n *\n * // or\n * const hot = new Handsontable(container, {\n *   data: data,\n *   colHeaders: true,\n *   // enable and configure dropdown menu\n *   dropdownMenu: ['remove_col', '---------', 'make_read_only', 'alignment']\n * });\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * <HotTable\n *   data={data}\n *   comments={true}\n *   // enable and configure dropdown menu\n *   dropdownMenu={['remove_col', '---------', 'make_read_only', 'alignment']}\n * />\n * ```\n * :::\n */\nvar _isButtonClicked = /*#__PURE__*/new WeakMap();\nvar _DropdownMenu_brand = /*#__PURE__*/new WeakSet();\nclass DropdownMenu extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"BasePlugin\"] {\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  static get PLUGIN_DEPS() {\n    return ['plugin:AutoColumnSize'];\n  }\n\n  /**\n   * Default menu items order when `dropdownMenu` is enabled by setting the config item to `true`.\n   *\n   * @returns {Array}\n   */\n  static get DEFAULT_ITEMS() {\n    return [_contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"COLUMN_LEFT\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"COLUMN_RIGHT\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"SEPARATOR\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"REMOVE_COLUMN\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"SEPARATOR\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"CLEAR_COLUMN\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"SEPARATOR\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"READ_ONLY\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"SEPARATOR\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"ALIGNMENT\"]];\n  }\n\n  /**\n   * Instance of {@link CommandExecutor}.\n   *\n   * @private\n   * @type {CommandExecutor}\n   */\n\n  constructor(hotInstance) {\n    super(hotInstance);\n\n    // One listener for enable/disable functionality\n    /**\n     * Add custom shortcuts to the provided menu instance.\n     *\n     * @param {Menu} menuInstance The menu instance.\n     */\n    _classPrivateMethodInitSpec(this, _DropdownMenu_brand);\n    _defineProperty(this, \"commandExecutor\", new _contextMenu_commandExecutor_mjs__WEBPACK_IMPORTED_MODULE_4__[\"CommandExecutor\"](this.hot));\n    /**\n     * Instance of {@link ItemsFactory}.\n     *\n     * @private\n     * @type {ItemsFactory}\n     */\n    _defineProperty(this, \"itemsFactory\", null);\n    /**\n     * Instance of {@link Menu}.\n     *\n     * @private\n     * @type {Menu}\n     */\n    _defineProperty(this, \"menu\", null);\n    /**\n     * Flag which determines if the button that opens the menu was clicked.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _isButtonClicked, false);\n    this.hot.addHook('afterGetColHeader', (col, TH) => _assertClassBrand(_DropdownMenu_brand, this, _onAfterGetColHeader).call(this, col, TH));\n  }\n\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link DropdownMenu#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   *\n   * @fires Hooks#afterDropdownMenuDefaultOptions\n   * @fires Hooks#beforeDropdownMenuSetItems\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    this.itemsFactory = new _contextMenu_itemsFactory_mjs__WEBPACK_IMPORTED_MODULE_7__[\"ItemsFactory\"](this.hot, DropdownMenu.DEFAULT_ITEMS);\n    this.addHook('beforeOnCellMouseDown', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_DropdownMenu_brand, _this, _onBeforeOnCellMouseDown).call(_this, ...args);\n    });\n    this.addHook('beforeViewportScrollHorizontally', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_DropdownMenu_brand, _this, _onBeforeViewportScrollHorizontally).call(_this, ...args);\n    });\n    const settings = this.hot.getSettings()[PLUGIN_KEY];\n    const predefinedItems = {\n      items: this.itemsFactory.getItems(settings)\n    };\n    this.registerEvents();\n    if (typeof settings.callback === 'function') {\n      this.commandExecutor.setCommonCallback(settings.callback);\n    }\n    this.registerShortcuts();\n    super.enablePlugin();\n    this.callOnPluginsReady(() => {\n      this.hot.runHooks('afterDropdownMenuDefaultOptions', predefinedItems);\n      this.itemsFactory.setPredefinedItems(predefinedItems.items);\n      const menuItems = this.itemsFactory.getItems(settings);\n      if (this.menu) {\n        this.menu.destroy();\n      }\n      this.menu = new _contextMenu_menu_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"Menu\"](this.hot, {\n        className: 'htDropdownMenu',\n        keepInViewport: true,\n        container: settings.uiContainer || this.hot.rootDocument.body\n      });\n      this.hot.runHooks('beforeDropdownMenuSetItems', menuItems);\n      this.menu.setMenuItems(menuItems);\n      this.menu.addLocalHook('beforeOpen', () => _assertClassBrand(_DropdownMenu_brand, this, _onMenuBeforeOpen).call(this));\n      this.menu.addLocalHook('afterOpen', () => _assertClassBrand(_DropdownMenu_brand, this, _onMenuAfterOpen).call(this));\n      this.menu.addLocalHook('afterSubmenuOpen', subMenuInstance => _assertClassBrand(_DropdownMenu_brand, this, _onSubMenuAfterOpen).call(this, subMenuInstance));\n      this.menu.addLocalHook('afterClose', () => _assertClassBrand(_DropdownMenu_brand, this, _onMenuAfterClose).call(this));\n      this.menu.addLocalHook('executeCommand', function () {\n        for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n          params[_key3] = arguments[_key3];\n        }\n        return _this.executeCommand.call(_this, ...params);\n      });\n\n      // Register all commands. Predefined and added by user or by plugins\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(menuItems, command => this.commandExecutor.registerCommand(command.key, command));\n    });\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`dropdownMenu`](@/api/options.md#dropdownmenu)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.close();\n    if (this.menu) {\n      this.menu.destroy();\n    }\n    this.unregisterShortcuts();\n    super.disablePlugin();\n  }\n\n  /**\n   * Register shortcuts responsible for toggling dropdown menu.\n   *\n   * @private\n   */\n  registerShortcuts() {\n    const gridContext = this.hot.getShortcutManager().getContext('grid');\n    const callback = () => {\n      const {\n        highlight\n      } = this.hot.getSelectedRangeLast();\n      if ((highlight.isHeader() && highlight.row === -1 || highlight.isCell()) && highlight.col >= 0) {\n        this.hot.selectColumns(highlight.col, highlight.col, -1);\n        const {\n          from\n        } = this.hot.getSelectedRangeLast();\n        const offset = Object(_contextMenu_utils_mjs__WEBPACK_IMPORTED_MODULE_5__[\"getDocumentOffsetByElement\"])(this.menu.container, this.hot.rootDocument);\n        const target = this.hot.getCell(-1, from.col, true);\n        const rect = target.getBoundingClientRect();\n        this.open({\n          left: rect.left + offset.left,\n          top: rect.top + target.offsetHeight + offset.top\n        }, {\n          left: rect.width\n        });\n        // Make sure the first item is selected (role=menuitem). Otherwise, screen readers\n        // will block the Esc key for the whole menu.\n        this.menu.getNavigator().toFirstItem();\n      }\n    };\n    gridContext.addShortcuts([{\n      keys: [['Shift', 'Alt', 'ArrowDown'], ['Control/Meta', 'Enter']],\n      callback,\n      runOnlyIf: () => {\n        var _this$hot$getSelected;\n        const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;\n        return highlight && this.hot.selection.isCellVisible(highlight) && highlight.isHeader() && !this.menu.isOpened();\n      },\n      captureCtrl: true,\n      group: SHORTCUTS_GROUP\n    }, {\n      keys: [['Shift', 'Alt', 'ArrowDown']],\n      callback,\n      runOnlyIf: () => {\n        var _this$hot$getSelected2;\n        const highlight = (_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight;\n        return highlight && this.hot.selection.isCellVisible(highlight) && highlight.isCell() && !this.menu.isOpened();\n      },\n      group: SHORTCUTS_GROUP\n    }]);\n  }\n\n  /**\n   * Unregister shortcuts responsible for toggling dropdown menu.\n   *\n   * @private\n   */\n  unregisterShortcuts() {\n    this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);\n  }\n\n  /**\n   * Registers the DOM listeners.\n   *\n   * @private\n   */\n  registerEvents() {\n    this.eventManager.addEventListener(this.hot.rootElement, 'click', event => _assertClassBrand(_DropdownMenu_brand, this, _onTableClick).call(this, event));\n  }\n\n  /**\n   * Opens menu and re-position it based on the passed coordinates.\n   *\n   * @param {{ top: number, left: number }|Event} position An object with `top` and `left` properties\n   * which contains coordinates relative to the browsers viewport (without included scroll offsets).\n   * Or if the native event is passed the menu will be positioned based on the `pageX` and `pageY`\n   * coordinates.\n   * @param {{ above: number, below: number, left: number, right: number }} offset An object allows applying\n   * the offset to the menu position.\n   * @fires Hooks#beforeDropdownMenuShow\n   * @fires Hooks#afterDropdownMenuShow\n   */\n  open(position) {\n    var _this$menu;\n    let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n      above: 0,\n      below: 0,\n      left: 0,\n      right: 0\n    };\n    if ((_this$menu = this.menu) !== null && _this$menu !== void 0 && _this$menu.isOpened()) {\n      return;\n    }\n    this.menu.open();\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"objectEach\"])(offset, (value, key) => {\n      this.menu.setOffset(key, value);\n    });\n    this.menu.setPosition(position);\n  }\n\n  /**\n   * Closes dropdown menu.\n   */\n  close() {\n    var _this$menu2;\n    (_this$menu2 = this.menu) === null || _this$menu2 === void 0 || _this$menu2.close();\n  }\n\n  /**\n   * Executes context menu command.\n   *\n   * The `executeCommand()` method works only for selected cells.\n   *\n   * When no cells are selected, `executeCommand()` doesn't do anything.\n   *\n   * You can execute all predefined commands:\n   *  * `'col_left'` - Insert column left\n   *  * `'col_right'` - Insert column right\n   *  * `'clear_column'` - Clear selected column\n   *  * `'remove_col'` - Remove column\n   *  * `'undo'` - Undo last action\n   *  * `'redo'` - Redo last action\n   *  * `'make_read_only'` - Make cell read only\n   *  * `'alignment:left'` - Alignment to the left\n   *  * `'alignment:top'` - Alignment to the top\n   *  * `'alignment:right'` - Alignment to the right\n   *  * `'alignment:bottom'` - Alignment to the bottom\n   *  * `'alignment:middle'` - Alignment to the middle\n   *  * `'alignment:center'` - Alignment to the center (justify).\n   *\n   * Or you can execute command registered in settings where `key` is your command name.\n   *\n   * @param {string} commandName Command name to execute.\n   * @param {*} params Additional parameters passed to the command executor.\n   */\n  executeCommand(commandName) {\n    for (var _len4 = arguments.length, params = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n      params[_key4 - 1] = arguments[_key4];\n    }\n    this.commandExecutor.execute(commandName, ...params);\n  }\n\n  /**\n   * Turns on / off listening on dropdown menu.\n   *\n   * @private\n   * @param {boolean} listen Turn on listening when value is set to true, otherwise turn it off.\n   */\n  setListening() {\n    let listen = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n    if (this.menu.isOpened()) {\n      if (listen) {\n        this.menu.hotMenu.listen();\n      } else {\n        this.menu.hotMenu.unlisten();\n      }\n    }\n  }\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    this.close();\n    if (this.menu) {\n      this.menu.destroy();\n    }\n    super.destroy();\n  }\n}\nfunction _addCustomShortcuts(menuInstance) {\n  menuInstance.getKeyboardShortcutsCtrl().addCustomShortcuts([{\n    keys: [['Control/Meta', 'A']],\n    callback: () => false\n  }]);\n}\n/**\n * Table click listener.\n *\n * @private\n * @param {Event} event The mouse event object.\n */\nfunction _onTableClick(event) {\n  if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"hasClass\"])(event.target, BUTTON_CLASS_NAME)) {\n    const offset = Object(_contextMenu_utils_mjs__WEBPACK_IMPORTED_MODULE_5__[\"getDocumentOffsetByElement\"])(this.menu.container, this.hot.rootDocument);\n    const rect = event.target.getBoundingClientRect();\n    event.stopPropagation();\n    _classPrivateFieldSet(_isButtonClicked, this, false);\n    this.open({\n      left: rect.left + offset.left,\n      top: rect.top + event.target.offsetHeight + 3 + offset.top\n    }, {\n      left: rect.width\n    });\n  }\n}\n/**\n * On after get column header listener.\n *\n * @private\n * @param {number} col Visual column index.\n * @param {HTMLTableCellElement} TH Header's TH element.\n */\nfunction _onAfterGetColHeader(col, TH) {\n  // Corner or a higher-level header\n  const headerRow = TH.parentNode;\n  if (!headerRow) {\n    return;\n  }\n  const headerRowList = headerRow.parentNode.childNodes;\n  const level = Array.prototype.indexOf.call(headerRowList, headerRow);\n  if (col < 0 || level !== headerRowList.length - 1) {\n    return;\n  }\n  const existingButton = TH.querySelector(`.${BUTTON_CLASS_NAME}`);\n\n  // Plugin enabled and buttons already exists, return.\n  if (this.enabled && existingButton) {\n    return;\n  }\n  // Plugin disabled and buttons still exists, so remove them.\n  if (!this.enabled) {\n    if (existingButton) {\n      existingButton.parentNode.removeChild(existingButton);\n    }\n    return;\n  }\n  const button = this.hot.rootDocument.createElement('button');\n  button.className = BUTTON_CLASS_NAME;\n  button.type = 'button';\n  button.tabIndex = -1;\n  if (this.hot.getSettings().ariaTags) {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"setAttribute\"])(button, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_11__[\"A11Y_HIDDEN\"])(), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_11__[\"A11Y_LABEL\"])(' ')]);\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"setAttribute\"])(TH, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_11__[\"A11Y_HASPOPUP\"])('menu')]);\n  }\n\n  // prevent page reload on button click\n  button.onclick = function () {\n    return false;\n  };\n  TH.firstChild.insertBefore(button, TH.firstChild.firstChild);\n}\n/**\n * On menu before open listener.\n *\n * @private\n * @fires Hooks#beforeDropdownMenuShow\n */\nfunction _onMenuBeforeOpen() {\n  this.hot.runHooks('beforeDropdownMenuShow', this);\n}\n/**\n * On menu after open listener.\n *\n * @private\n * @fires Hooks#afterDropdownMenuShow\n */\nfunction _onMenuAfterOpen() {\n  this.hot.runHooks('afterDropdownMenuShow', this);\n  _assertClassBrand(_DropdownMenu_brand, this, _addCustomShortcuts).call(this, this.menu);\n}\n/**\n * Listener for the `afterSubmenuOpen` hook.\n *\n * @private\n * @param {Menu} subMenuInstance The opened sub menu instance.\n */\nfunction _onSubMenuAfterOpen(subMenuInstance) {\n  _assertClassBrand(_DropdownMenu_brand, this, _addCustomShortcuts).call(this, subMenuInstance);\n}\n/**\n * On menu after close listener.\n *\n * @private\n * @fires Hooks#afterDropdownMenuHide\n */\nfunction _onMenuAfterClose() {\n  this.hot.listen();\n  this.hot.runHooks('afterDropdownMenuHide', this);\n}\n/**\n * Hook allows blocking horizontal scroll when the menu is opened by clicking on\n * the column header button. This prevents from scrolling the viewport (jump effect) when\n * the button is clicked.\n *\n * @param {number} visualColumn Visual column index.\n * @returns {number | null}\n */\nfunction _onBeforeViewportScrollHorizontally(visualColumn) {\n  return _classPrivateFieldGet(_isButtonClicked, this) ? null : visualColumn;\n}\n/**\n * Hook sets the internal flag to `true` when the button is clicked.\n *\n * @param {MouseEvent} event The mouse event object.\n */\nfunction _onBeforeOnCellMouseDown(event) {\n  if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_6__[\"hasClass\"])(event.target, BUTTON_CLASS_NAME)) {\n    _classPrivateFieldSet(_isButtonClicked, this, true);\n  }\n}\nDropdownMenu.SEPARATOR = {\n  name: _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"SEPARATOR\"]\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/dropdownMenu/dropdownMenu.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/dropdownMenu/index.mjs":
/*!******************************************************************!*\
  !*** ./node_modules/handsontable/plugins/dropdownMenu/index.mjs ***!
  \******************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, DropdownMenu */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dropdownMenu_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dropdownMenu.mjs */ \"./node_modules/handsontable/plugins/dropdownMenu/dropdownMenu.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _dropdownMenu_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _dropdownMenu_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DropdownMenu\", function() { return _dropdownMenu_mjs__WEBPACK_IMPORTED_MODULE_0__[\"DropdownMenu\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/dropdownMenu/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/exportFile/dataProvider.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/exportFile/dataProvider.mjs ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n/**\n * @private\n */\nclass DataProvider {\n  constructor(hotInstance) {\n    /**\n     * Handsontable instance.\n     *\n     * @type {Core}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * Format type class options.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"options\", {});\n    this.hot = hotInstance;\n  }\n\n  /**\n   * Set options for data provider.\n   *\n   * @param {object} options Object with specified options.\n   */\n  setOptions(options) {\n    this.options = options;\n  }\n\n  /**\n   * Get table data based on provided settings to the class constructor.\n   *\n   * @returns {Array}\n   */\n  getData() {\n    const {\n      startRow,\n      startCol,\n      endRow,\n      endCol\n    } = this._getDataRange();\n    const options = this.options;\n    const data = [];\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_2__[\"rangeEach\"])(startRow, endRow, rowIndex => {\n      const row = [];\n      if (!options.exportHiddenRows && this._isHiddenRow(rowIndex)) {\n        return;\n      }\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_2__[\"rangeEach\"])(startCol, endCol, colIndex => {\n        if (!options.exportHiddenColumns && this._isHiddenColumn(colIndex)) {\n          return;\n        }\n        row.push(this.hot.getDataAtCell(rowIndex, colIndex));\n      });\n      data.push(row);\n    });\n    return data;\n  }\n\n  /**\n   * Gets list of row headers.\n   *\n   * @returns {Array}\n   */\n  getRowHeaders() {\n    const headers = [];\n    if (this.options.rowHeaders) {\n      const {\n        startRow,\n        endRow\n      } = this._getDataRange();\n      const rowHeaders = this.hot.getRowHeader();\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_2__[\"rangeEach\"])(startRow, endRow, row => {\n        if (!this.options.exportHiddenRows && this._isHiddenRow(row)) {\n          return;\n        }\n        headers.push(rowHeaders[row]);\n      });\n    }\n    return headers;\n  }\n\n  /**\n   * Gets list of columns headers.\n   *\n   * @returns {Array}\n   */\n  getColumnHeaders() {\n    const headers = [];\n    if (this.options.columnHeaders) {\n      const {\n        startCol,\n        endCol\n      } = this._getDataRange();\n      const colHeaders = this.hot.getColHeader();\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_2__[\"rangeEach\"])(startCol, endCol, column => {\n        if (!this.options.exportHiddenColumns && this._isHiddenColumn(column)) {\n          return;\n        }\n        headers.push(colHeaders[column]);\n      });\n    }\n    return headers;\n  }\n\n  /**\n   * Get data range object based on settings provided in the class constructor.\n   *\n   * @private\n   * @returns {object} Returns object with keys `startRow`, `startCol`, `endRow` and `endCol`.\n   */\n  _getDataRange() {\n    const cols = this.hot.countCols() - 1;\n    const rows = this.hot.countRows() - 1;\n    let [startRow = 0, startCol = 0, endRow = rows, endCol = cols] = this.options.range;\n    startRow = Math.max(startRow, 0);\n    startCol = Math.max(startCol, 0);\n    endRow = Math.min(endRow, rows);\n    endCol = Math.min(endCol, cols);\n    return {\n      startRow,\n      startCol,\n      endRow,\n      endCol\n    };\n  }\n\n  /**\n   * Check if row at specified row index is hidden.\n   *\n   * @private\n   * @param {number} row Row index.\n   * @returns {boolean}\n   */\n  _isHiddenRow(row) {\n    return this.hot.rowIndexMapper.isHidden(this.hot.toPhysicalRow(row));\n  }\n\n  /**\n   * Check if column at specified column index is hidden.\n   *\n   * @private\n   * @param {number} column Visual column index.\n   * @returns {boolean}\n   */\n  _isHiddenColumn(column) {\n    return this.hot.columnIndexMapper.isHidden(this.hot.toPhysicalColumn(column));\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (DataProvider);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/exportFile/dataProvider.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/exportFile/exportFile.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/exportFile/exportFile.mjs ***!
  \*********************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ExportFile */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExportFile\", function() { return ExportFile; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _dataProvider_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataProvider.mjs */ \"./node_modules/handsontable/plugins/exportFile/dataProvider.mjs\");\n/* harmony import */ var _typeFactory_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./typeFactory.mjs */ \"./node_modules/handsontable/plugins/exportFile/typeFactory.mjs\");\n\n\n\n\nconst PLUGIN_KEY = 'exportFile';\nconst PLUGIN_PRIORITY = 240;\n\n/**\n * @plugin ExportFile\n * @class ExportFile\n *\n * @description\n * The `ExportFile` plugin lets you export table data as a string, blob, or downloadable CSV file.\n *\n * See [the export file demo](@/guides/accessories-and-menus/export-to-csv/export-to-csv.md) for examples.\n *\n * @example\n * ::: only-for javascript\n * ```js\n * const container = document.getElementById('example');\n * const hot = new Handsontable(container, {\n *   data: getData()\n * });\n *\n * // access to exportFile plugin instance\n * const exportPlugin = hot.getPlugin('exportFile');\n *\n * // export as a string\n * exportPlugin.exportAsString('csv');\n *\n * // export as a blob object\n * exportPlugin.exportAsBlob('csv');\n *\n * // export to downloadable file (named: MyFile.csv)\n * exportPlugin.downloadFile('csv', {filename: 'MyFile'});\n *\n * // export as a string (with specified data range):\n * exportPlugin.exportAsString('csv', {\n *   exportHiddenRows: true,     // default false\n *   exportHiddenColumns: true,  // default false\n *   columnHeaders: true,        // default false\n *   rowHeaders: true,           // default false\n *   columnDelimiter: ';',       // default ','\n *   range: [1, 1, 6, 6]         // [startRow, endRow, startColumn, endColumn]\n * });\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * const hotRef = useRef(null);\n *\n * ...\n *\n * <HotTable\n *   ref={hotRef}\n *   data={getData()}\n * />\n *\n * const hot = hotRef.current.hotInstance;\n * // access to exportFile plugin instance\n * const exportPlugin = hot.getPlugin('exportFile');\n *\n * // export as a string\n * exportPlugin.exportAsString('csv');\n *\n * // export as a blob object\n * exportPlugin.exportAsBlob('csv');\n *\n * // export to downloadable file (named: MyFile.csv)\n * exportPlugin.downloadFile('csv', {filename: 'MyFile'});\n *\n * // export as a string (with specified data range):\n * exportPlugin.exportAsString('csv', {\n *   exportHiddenRows: true,     // default false\n *   exportHiddenColumns: true,  // default false\n *   columnHeaders: true,        // default false\n *   rowHeaders: true,           // default false\n *   columnDelimiter: ';',       // default ','\n *   range: [1, 1, 6, 6]         // [startRow, endRow, startColumn, endColumn]\n * });\n * ```\n * :::\n */\nclass ExportFile extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"BasePlugin\"] {\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link ExportFile#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return true;\n  }\n\n  /**\n   * @typedef ExportOptions\n   * @memberof ExportFile\n   * @type {object}\n   * @property {boolean} [exportHiddenRows=false] Include hidden rows in the exported file.\n   * @property {boolean} [exportHiddenColumns=false] Include hidden columns in the exported file.\n   * @property {boolean} [columnHeaders=false] Include column headers in the exported file.\n   * @property {boolean} [rowHeaders=false] Include row headers in the exported file.\n   * @property {string} [columnDelimiter=','] Column delimiter.\n   * @property {string} [range=[]] Cell range that will be exported to file.\n   */\n\n  /**\n   * Exports table data as a string.\n   *\n   * @param {string} format Export format type eq. `'csv'`.\n   * @param {ExportOptions} options Export options.\n   * @returns {string}\n   */\n  exportAsString(format) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    return this._createTypeFormatter(format, options).export();\n  }\n\n  /**\n   * Exports table data as a blob object.\n   *\n   * @param {string} format Export format type eq. `'csv'`.\n   * @param {ExportOptions} options Export options.\n   * @returns {Blob}\n   */\n  exportAsBlob(format) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    return this._createBlob(this._createTypeFormatter(format, options));\n  }\n\n  /**\n   * Exports table data as a downloadable file.\n   *\n   * @param {string} format Export format type eq. `'csv'`.\n   * @param {ExportOptions} options Export options.\n   */\n  downloadFile(format) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    const {\n      rootDocument,\n      rootWindow\n    } = this.hot;\n    const formatter = this._createTypeFormatter(format, options);\n    const blob = this._createBlob(formatter);\n    const URL = rootWindow.URL || rootWindow.webkitURL;\n    const a = rootDocument.createElement('a');\n    const name = `${formatter.options.filename}.${formatter.options.fileExtension}`;\n    if (a.download !== undefined) {\n      const url = URL.createObjectURL(blob);\n      a.style.display = 'none';\n      a.setAttribute('href', url);\n      a.setAttribute('download', name);\n      rootDocument.body.appendChild(a);\n      a.dispatchEvent(new MouseEvent('click'));\n      rootDocument.body.removeChild(a);\n      setTimeout(() => {\n        URL.revokeObjectURL(url);\n      }, 100);\n    } else if (navigator.msSaveOrOpenBlob) {\n      // IE10+\n      navigator.msSaveOrOpenBlob(blob, name);\n    }\n  }\n\n  /**\n   * Creates and returns class formatter for specified export type.\n   *\n   * @private\n   * @param {string} format Export format type eq. `'csv'`.\n   * @param {ExportOptions} options Export options.\n   * @returns {BaseType}\n   */\n  _createTypeFormatter(format) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    if (!_typeFactory_mjs__WEBPACK_IMPORTED_MODULE_3__[\"EXPORT_TYPES\"][format]) {\n      throw new Error(`Export format type \"${format}\" is not supported.`);\n    }\n    return Object(_typeFactory_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(format, new _dataProvider_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"](this.hot), options);\n  }\n\n  /**\n   * Creates blob object based on provided type formatter class.\n   *\n   * @private\n   * @param {BaseType} typeFormatter The instance of the specyfic formatter/exporter.\n   * @returns {Blob}\n   */\n  _createBlob(typeFormatter) {\n    let formatter = null;\n    if (typeof Blob !== 'undefined') {\n      formatter = new Blob([typeFormatter.export()], {\n        type: `${typeFormatter.options.mimeType};charset=${typeFormatter.options.encoding}`\n      });\n    }\n    return formatter;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/exportFile/exportFile.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/exportFile/index.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/exportFile/index.mjs ***!
  \****************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ExportFile */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _exportFile_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exportFile.mjs */ \"./node_modules/handsontable/plugins/exportFile/exportFile.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _exportFile_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _exportFile_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ExportFile\", function() { return _exportFile_mjs__WEBPACK_IMPORTED_MODULE_0__[\"ExportFile\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/exportFile/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/exportFile/typeFactory.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/exportFile/typeFactory.mjs ***!
  \**********************************************************************/
/*! exports provided: TYPE_CSV, TYPE_EXCEL, TYPE_PDF, EXPORT_TYPES, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TYPE_CSV\", function() { return TYPE_CSV; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TYPE_EXCEL\", function() { return TYPE_EXCEL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TYPE_PDF\", function() { return TYPE_PDF; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPORT_TYPES\", function() { return EXPORT_TYPES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return typeFactory; });\n/* harmony import */ var _types_csv_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types/csv.mjs */ \"./node_modules/handsontable/plugins/exportFile/types/csv.mjs\");\n\nconst TYPE_CSV = 'csv';\nconst TYPE_EXCEL = 'excel'; // TODO\nconst TYPE_PDF = 'pdf'; // TODO\n\nconst EXPORT_TYPES = {\n  [TYPE_CSV]: _types_csv_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n};\n\n/**\n * @private\n * @param {string} type The exporter type.\n * @param {DataProvider} dataProvider The data provider.\n * @param {object} options Constructor options for exporter class.\n * @returns {BaseType|null}\n */\nfunction typeFactory(type, dataProvider, options) {\n  if (typeof EXPORT_TYPES[type] === 'function') {\n    return new EXPORT_TYPES[type](dataProvider, options);\n  }\n  return null;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/exportFile/typeFactory.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/exportFile/types/_base.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/exportFile/types/_base.mjs ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_string_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/string.mjs */ \"./node_modules/handsontable/helpers/string.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n/**\n * @private\n */\nclass BaseType {\n  /**\n   * Default options.\n   *\n   * @returns {object}\n   */\n  static get DEFAULT_OPTIONS() {\n    return {\n      mimeType: 'text/plain',\n      fileExtension: 'txt',\n      filename: 'Handsontable [YYYY]-[MM]-[DD]',\n      encoding: 'utf-8',\n      bom: false,\n      columnHeaders: false,\n      rowHeaders: false,\n      exportHiddenColumns: false,\n      exportHiddenRows: false,\n      range: []\n    };\n  }\n\n  /**\n   * Data provider.\n   *\n   * @type {DataProvider}\n   */\n\n  constructor(dataProvider, options) {\n    _defineProperty(this, \"dataProvider\", void 0);\n    /**\n     * Format type class options.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"options\", void 0);\n    this.dataProvider = dataProvider;\n    this.options = this._mergeOptions(options);\n    this.dataProvider.setOptions(this.options);\n  }\n\n  /**\n   * Merge options provided by users with defaults.\n   *\n   * @param {object} options An object with options to merge with.\n   * @returns {object} Returns new options object.\n   */\n  _mergeOptions(options) {\n    let _options = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"clone\"])(this.constructor.DEFAULT_OPTIONS);\n    const date = new Date();\n    _options = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"extend\"])(Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"clone\"])(BaseType.DEFAULT_OPTIONS), _options);\n    _options = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"extend\"])(_options, options);\n    _options.filename = Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_2__[\"substitute\"])(_options.filename, {\n      YYYY: date.getFullYear(),\n      MM: `${date.getMonth() + 1}`.padStart(2, '0'),\n      DD: `${date.getDate()}`.padStart(2, '0')\n    });\n    return _options;\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (BaseType);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/exportFile/types/_base.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/exportFile/types/csv.mjs":
/*!********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/exportFile/types/csv.mjs ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/exportFile/types/_base.mjs\");\n\n\n\nconst CHAR_CARRIAGE_RETURN = String.fromCharCode(13);\nconst CHAR_DOUBLE_QUOTES = String.fromCharCode(34);\nconst CHAR_LINE_FEED = String.fromCharCode(10);\n\n/**\n * @private\n */\nclass Csv extends _base_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n  /**\n   * Default options for exporting CSV format.\n   *\n   * @returns {object}\n   */\n  static get DEFAULT_OPTIONS() {\n    return {\n      mimeType: 'text/csv',\n      fileExtension: 'csv',\n      bom: true,\n      columnDelimiter: ',',\n      rowDelimiter: '\\r\\n'\n    };\n  }\n\n  /**\n   * Create string body in desired format.\n   *\n   * @returns {string}\n   */\n  export() {\n    const options = this.options;\n    const data = this.dataProvider.getData();\n    let columnHeaders = this.dataProvider.getColumnHeaders();\n    const hasColumnHeaders = columnHeaders.length > 0;\n    const rowHeaders = this.dataProvider.getRowHeaders();\n    const hasRowHeaders = rowHeaders.length > 0;\n    let result = options.bom ? String.fromCharCode(0xFEFF) : '';\n    if (hasColumnHeaders) {\n      columnHeaders = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__[\"arrayMap\"])(columnHeaders, value => this._escapeCell(value, true));\n      if (hasRowHeaders) {\n        result += options.columnDelimiter;\n      }\n      result += columnHeaders.join(options.columnDelimiter);\n      result += options.rowDelimiter;\n    }\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__[\"arrayEach\"])(data, (value, index) => {\n      if (index > 0) {\n        result += options.rowDelimiter;\n      }\n      if (hasRowHeaders) {\n        result += this._escapeCell(rowHeaders[index]) + options.columnDelimiter;\n      }\n      result += value.map(cellValue => this._escapeCell(cellValue)).join(options.columnDelimiter);\n    });\n    return result;\n  }\n\n  /**\n   * Escape cell value.\n   *\n   * @param {*} value Cell value.\n   * @param {boolean} [force=false] Indicates if cell value will be escaped forcefully.\n   * @returns {string}\n   */\n  _escapeCell(value) {\n    let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    let escapedValue = Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(value);\n    if (escapedValue !== '' && (force || escapedValue.indexOf(CHAR_CARRIAGE_RETURN) >= 0 || escapedValue.indexOf(CHAR_DOUBLE_QUOTES) >= 0 || escapedValue.indexOf(CHAR_LINE_FEED) >= 0 || escapedValue.indexOf(this.options.columnDelimiter) >= 0)) {\n      escapedValue = escapedValue.replace(new RegExp('\"', 'g'), '\"\"');\n      escapedValue = `\"${escapedValue}\"`;\n    }\n    return escapedValue;\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (Csv);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/exportFile/types/csv.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/component/_base.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/component/_base.mjs ***!
  \***********************************************************************/
/*! exports provided: BaseComponent */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BaseComponent\", function() { return BaseComponent; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n/**\n * @private\n * @class BaseComponent\n */\nclass BaseComponent {\n  constructor(hotInstance, _ref) {\n    let {\n      id,\n      stateless = true\n    } = _ref;\n    /**\n     * The Handsontable instance.\n     *\n     * @type {Core}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * The component uniq id.\n     *\n     * @type {string}\n     */\n    _defineProperty(this, \"id\", void 0);\n    /**\n     * List of registered component UI elements.\n     *\n     * @type {Array}\n     */\n    _defineProperty(this, \"elements\", []);\n    /**\n     * Flag which determines if element is hidden.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"hidden\", false);\n    /**\n     * The component states id.\n     *\n     * @type {string}\n     */\n    _defineProperty(this, \"stateId\", '');\n    /**\n     * Index map which stores component states for each column.\n     *\n     * @type {LinkedPhysicalIndexToValueMap|null}\n     */\n    _defineProperty(this, \"state\", void 0);\n    this.hot = hotInstance;\n    this.id = id;\n    this.stateId = `Filters.component.${this.id}`;\n    this.state = stateless ? null : this.hot.columnIndexMapper.registerMap(this.stateId, new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"LinkedPhysicalIndexToValueMap\"]());\n  }\n\n  /**\n   * Gets the list of elements from which the component is built.\n   *\n   * @returns {BaseUI[]}\n   */\n  getElements() {\n    return this.elements;\n  }\n\n  /**\n   * Reset elements to its initial state.\n   */\n  reset() {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayEach\"])(this.elements, ui => ui.reset());\n  }\n\n  /**\n   * Hide component.\n   */\n  hide() {\n    this.hidden = true;\n  }\n\n  /**\n   * Show component.\n   */\n  show() {\n    this.hidden = false;\n  }\n\n  /**\n   * Check if component is hidden.\n   *\n   * @returns {boolean}\n   */\n  isHidden() {\n    return this.hot === null || this.hidden;\n  }\n\n  /**\n   * Restores the component state from the given physical column index. The method\n   * internally calls the `setState` method. The state then is individually processed\n   * by each component.\n   *\n   * @param {number} physicalColumn The physical column index.\n   */\n  restoreState(physicalColumn) {\n    if (this.state) {\n      this.setState(this.state.getValueAtIndex(physicalColumn));\n    }\n  }\n\n  /**\n   * The custom logic for component state restoring.\n   */\n  setState() {\n    throw new Error('The state setting logic is not implemented');\n  }\n\n  /**\n   * Saves the component state to the given physical column index. The method\n   * internally calls the `getState` method, which returns the current state of\n   * the component.\n   *\n   * @param {number} physicalColumn The physical column index.\n   */\n  saveState(physicalColumn) {\n    if (this.state) {\n      this.state.setValueAtIndex(physicalColumn, this.getState());\n    }\n  }\n\n  /**\n   * The custom logic for component state gathering (for stateful components).\n   */\n  getState() {\n    throw new Error('The state gathering logic is not implemented');\n  }\n\n  /**\n   * Destroy element.\n   */\n  destroy() {\n    this.hot.columnIndexMapper.unregisterMap(this.stateId);\n    this.clearLocalHooks();\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayEach\"])(this.elements, ui => ui.destroy());\n    this.state = null;\n    this.elements = null;\n    this.hot = null;\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"mixin\"])(BaseComponent, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/component/_base.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/component/actionBar.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/component/actionBar.mjs ***!
  \***************************************************************************/
/*! exports provided: ActionBarComponent */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ActionBarComponent\", function() { return ActionBarComponent; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/filters/component/_base.mjs\");\n/* harmony import */ var _ui_input_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../ui/input.mjs */ \"./node_modules/handsontable/plugins/filters/ui/input.mjs\");\n\nvar _ActionBarComponent;\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n/**\n * @private\n * @class ActionBarComponent\n */\nvar _ActionBarComponent_brand = /*#__PURE__*/new WeakSet();\nclass ActionBarComponent extends _base_mjs__WEBPACK_IMPORTED_MODULE_5__[\"BaseComponent\"] {\n  static get BUTTON_OK() {\n    return 'ok';\n  }\n  static get BUTTON_CANCEL() {\n    return 'cancel';\n  }\n  constructor(hotInstance, options) {\n    super(hotInstance, {\n      id: options.id,\n      stateless: true\n    });\n    /**\n     * On button click listener.\n     *\n     * @param {Event} event DOM event.\n     * @param {InputUI} button InputUI object.\n     */\n    _classPrivateMethodInitSpec(this, _ActionBarComponent_brand);\n    /**\n     * The name of the component.\n     *\n     * @type {string}\n     */\n    _defineProperty(this, \"name\", '');\n    this.name = options.name;\n    this.elements.push(new _ui_input_mjs__WEBPACK_IMPORTED_MODULE_6__[\"InputUI\"](this.hot, {\n      type: 'button',\n      value: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_4__[\"FILTERS_BUTTONS_OK\"],\n      className: 'htUIButton htUIButtonOK',\n      identifier: ActionBarComponent.BUTTON_OK\n    }));\n    this.elements.push(new _ui_input_mjs__WEBPACK_IMPORTED_MODULE_6__[\"InputUI\"](this.hot, {\n      type: 'button',\n      value: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_4__[\"FILTERS_BUTTONS_CANCEL\"],\n      className: 'htUIButton htUIButtonCancel',\n      identifier: ActionBarComponent.BUTTON_CANCEL\n    }));\n    this.registerHooks();\n  }\n\n  /**\n   * Register all necessary hooks.\n   *\n   * @private\n   */\n  registerHooks() {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(this.elements, element => {\n      element.addLocalHook('click', (event, button) => _assertClassBrand(_ActionBarComponent_brand, this, _onButtonClick).call(this, event, button));\n    });\n  }\n\n  /**\n   * Get menu object descriptor.\n   *\n   * @returns {object}\n   */\n  getMenuItemDescriptor() {\n    return {\n      key: this.id,\n      name: this.name,\n      isCommand: false,\n      disableSelection: true,\n      hidden: () => this.isHidden(),\n      renderer: (hot, wrapper) => {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(wrapper.parentNode, 'htFiltersMenuActionBar');\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(this.elements, ui => wrapper.appendChild(ui.element));\n        return wrapper;\n      }\n    };\n  }\n\n  /**\n   * Fire accept event.\n   */\n  accept() {\n    this.runLocalHooks('accept');\n  }\n\n  /**\n   * Fire cancel event.\n   */\n  cancel() {\n    this.runLocalHooks('cancel');\n  }\n}\n_ActionBarComponent = ActionBarComponent;\nfunction _onButtonClick(event, button) {\n  if (button.options.identifier === _ActionBarComponent.BUTTON_OK) {\n    this.accept();\n  } else {\n    this.cancel();\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/component/actionBar.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/component/condition.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/component/condition.mjs ***!
  \***************************************************************************/
/*! exports provided: ConditionComponent */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConditionComponent\", function() { return ConditionComponent; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../helpers/unicode.mjs */ \"./node_modules/handsontable/helpers/unicode.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/filters/component/_base.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/plugins/filters/constants.mjs\");\n/* harmony import */ var _ui_input_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../ui/input.mjs */ \"./node_modules/handsontable/plugins/filters/ui/input.mjs\");\n/* harmony import */ var _ui_select_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../ui/select.mjs */ \"./node_modules/handsontable/plugins/filters/ui/select.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\n\n/**\n * @private\n * @class ConditionComponent\n */\nvar _ConditionComponent_brand = /*#__PURE__*/new WeakSet();\nclass ConditionComponent extends _base_mjs__WEBPACK_IMPORTED_MODULE_8__[\"BaseComponent\"] {\n  constructor(hotInstance, options) {\n    super(hotInstance, {\n      id: options.id,\n      stateless: false\n    });\n    /**\n     * On condition select listener.\n     *\n     * @param {object} command Menu item object (command).\n     */\n    _classPrivateMethodInitSpec(this, _ConditionComponent_brand);\n    /**\n     * The name of the component.\n     *\n     * @type {string}\n     */\n    _defineProperty(this, \"name\", '');\n    /**\n     * @type {boolean}\n     */\n    _defineProperty(this, \"addSeparator\", false);\n    this.name = options.name;\n    this.addSeparator = options.addSeparator;\n    this.elements.push(new _ui_select_mjs__WEBPACK_IMPORTED_MODULE_11__[\"SelectUI\"](this.hot, {\n      menuContainer: options.menuContainer\n    }));\n    this.elements.push(new _ui_input_mjs__WEBPACK_IMPORTED_MODULE_10__[\"InputUI\"](this.hot, {\n      placeholder: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_7__[\"FILTERS_BUTTONS_PLACEHOLDER_VALUE\"]\n    }));\n    this.elements.push(new _ui_input_mjs__WEBPACK_IMPORTED_MODULE_10__[\"InputUI\"](this.hot, {\n      placeholder: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_7__[\"FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE\"]\n    }));\n    this.registerHooks();\n  }\n\n  /**\n   * Register all necessary hooks.\n   *\n   * @private\n   */\n  registerHooks() {\n    this.getSelectElement().addLocalHook('select', command => _assertClassBrand(_ConditionComponent_brand, this, _onConditionSelect).call(this, command)).addLocalHook('afterClose', () => this.runLocalHooks('afterClose')).addLocalHook('tabKeydown', event => this.runLocalHooks('selectTabKeydown', event));\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(this.getInputElements(), input => {\n      input.addLocalHook('keydown', event => _assertClassBrand(_ConditionComponent_brand, this, _onInputKeyDown).call(this, event));\n    });\n  }\n\n  /**\n   * Set state of the component.\n   *\n   * @param {object} value State to restore.\n   */\n  setState(value) {\n    this.reset();\n    if (!value) {\n      return;\n    }\n    const copyOfCommand = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_6__[\"clone\"])(value.command);\n    if (copyOfCommand.name.startsWith(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_7__[\"FILTERS_CONDITIONS_NAMESPACE\"])) {\n      copyOfCommand.name = this.hot.getTranslatedPhrase(copyOfCommand.name);\n    }\n    this.getSelectElement().setValue(copyOfCommand);\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(value.args, (arg, index) => {\n      if (index > copyOfCommand.inputsCount - 1) {\n        return false;\n      }\n      const element = this.getInputElement(index);\n      element.setValue(arg);\n      element[copyOfCommand.inputsCount > index ? 'show' : 'hide']();\n      if (!index) {\n        this.hot._registerTimeout(() => element.focus(), 10);\n      }\n    });\n  }\n\n  /**\n   * Export state of the component (get selected filter and filter arguments).\n   *\n   * @returns {object} Returns object where `command` key keeps used condition filter and `args` key its arguments.\n   */\n  getState() {\n    const command = this.getSelectElement().getValue() || Object(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_12__[\"getConditionDescriptor\"])(_constants_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CONDITION_NONE\"]);\n    const args = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(this.getInputElements(), (element, index) => {\n      if (command.inputsCount > index) {\n        args.push(element.getValue());\n      }\n    });\n    return {\n      command,\n      args\n    };\n  }\n\n  /**\n   * Update state of component.\n   *\n   * @param {object} condition The condition object.\n   * @param {object} condition.command The command object with condition name as `key` property.\n   * @param {Array} condition.args An array of values to compare.\n   * @param {number} column Physical column index.\n   */\n  updateState(condition, column) {\n    const command = condition ? Object(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_12__[\"getConditionDescriptor\"])(condition.name) : Object(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_12__[\"getConditionDescriptor\"])(_constants_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CONDITION_NONE\"]);\n    this.state.setValueAtIndex(column, {\n      command,\n      args: condition ? condition.args : []\n    });\n    if (!condition) {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(this.getInputElements(), element => element.setValue(null));\n    }\n  }\n\n  /**\n   * Get select element.\n   *\n   * @returns {SelectUI}\n   */\n  getSelectElement() {\n    return this.elements.filter(element => element instanceof _ui_select_mjs__WEBPACK_IMPORTED_MODULE_11__[\"SelectUI\"])[0];\n  }\n\n  /**\n   * Get input element.\n   *\n   * @param {number} index Index an array of elements.\n   * @returns {InputUI}\n   */\n  getInputElement() {\n    let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n    return this.getInputElements()[index];\n  }\n\n  /**\n   * Get input elements.\n   *\n   * @returns {Array}\n   */\n  getInputElements() {\n    return this.elements.filter(element => element instanceof _ui_input_mjs__WEBPACK_IMPORTED_MODULE_10__[\"InputUI\"]);\n  }\n\n  /**\n   * Get menu object descriptor.\n   *\n   * @returns {object}\n   */\n  getMenuItemDescriptor() {\n    return {\n      key: this.id,\n      name: this.name,\n      isCommand: false,\n      disableSelection: true,\n      hidden: () => this.isHidden(),\n      renderer: (hot, wrapper, row, col, prop, value) => {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(wrapper.parentNode, 'htFiltersMenuCondition');\n        if (this.addSeparator) {\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(wrapper.parentNode, 'border');\n        }\n        const label = this.hot.rootDocument.createElement('div');\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(label, 'htFiltersMenuLabel');\n        label.textContent = value;\n        wrapper.appendChild(label);\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(this.elements, ui => wrapper.appendChild(ui.element));\n        return wrapper;\n      }\n    };\n  }\n\n  /**\n   * Reset elements to their initial state.\n   */\n  reset() {\n    const selectedColumn = this.hot.getPlugin('filters').getSelectedColumn();\n    let items = [Object(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_12__[\"getConditionDescriptor\"])(_constants_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CONDITION_NONE\"])];\n    if (selectedColumn !== null) {\n      const {\n        visualIndex\n      } = selectedColumn;\n      items = Object(_constants_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(this.hot.getDataType(0, visualIndex, this.hot.countRows(), visualIndex));\n    }\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(this.getInputElements(), element => element.hide());\n    this.getSelectElement().setItems(items);\n    super.reset();\n    // Select element as default 'None'\n    this.getSelectElement().setValue(items[0]);\n  }\n}\nfunction _onConditionSelect(command) {\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(this.getInputElements(), (element, index) => {\n    element[command.inputsCount > index ? 'show' : 'hide']();\n    if (index === 0) {\n      this.hot._registerTimeout(() => element.focus(), 10);\n    }\n  });\n  this.runLocalHooks('change', command);\n}\n/**\n * Key down listener.\n *\n * @param {Event} event The DOM event object.\n */\nfunction _onInputKeyDown(event) {\n  if (Object(_helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isKey\"])(event.keyCode, 'ESCAPE')) {\n    this.runLocalHooks('cancel');\n    Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_3__[\"stopImmediatePropagation\"])(event);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/component/condition.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/component/operators.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/component/operators.mjs ***!
  \***************************************************************************/
/*! exports provided: OperatorsComponent */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OperatorsComponent\", function() { return OperatorsComponent; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/filters/component/_base.mjs\");\n/* harmony import */ var _logicalOperationRegisterer_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../logicalOperationRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/logicalOperationRegisterer.mjs\");\n/* harmony import */ var _logicalOperations_conjunction_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../logicalOperations/conjunction.mjs */ \"./node_modules/handsontable/plugins/filters/logicalOperations/conjunction.mjs\");\n/* harmony import */ var _logicalOperations_disjunction_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../logicalOperations/disjunction.mjs */ \"./node_modules/handsontable/plugins/filters/logicalOperations/disjunction.mjs\");\n/* harmony import */ var _logicalOperations_disjunctionWithExtraCondition_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../logicalOperations/disjunctionWithExtraCondition.mjs */ \"./node_modules/handsontable/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs\");\n/* harmony import */ var _ui_radioInput_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../ui/radioInput.mjs */ \"./node_modules/handsontable/plugins/filters/ui/radioInput.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\nconst SELECTED_AT_START_ELEMENT_INDEX = 0;\n\n/**\n * @private\n * @class OperatorsComponent\n */\nvar _OperatorsComponent_brand = /*#__PURE__*/new WeakSet();\nclass OperatorsComponent extends _base_mjs__WEBPACK_IMPORTED_MODULE_5__[\"BaseComponent\"] {\n  constructor(hotInstance, options) {\n    super(hotInstance, {\n      id: options.id,\n      stateless: false\n    });\n    /**\n     * OnChange listener.\n     *\n     * @param {Event} event The DOM event object.\n     */\n    _classPrivateMethodInitSpec(this, _OperatorsComponent_brand);\n    /**\n     * The name of the component.\n     *\n     * @type {string}\n     */\n    _defineProperty(this, \"name\", '');\n    this.name = options.name;\n    this.buildOperatorsElement();\n  }\n\n  /**\n   * Get menu object descriptor.\n   *\n   * @returns {object}\n   */\n  getMenuItemDescriptor() {\n    return {\n      key: this.id,\n      name: this.name,\n      isCommand: false,\n      disableSelection: true,\n      hidden: () => this.isHidden(),\n      renderer: (hot, wrapper) => {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(wrapper.parentNode, 'htFiltersMenuOperators');\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(this.elements, ui => wrapper.appendChild(ui.element));\n        return wrapper;\n      }\n    };\n  }\n\n  /**\n   * Add RadioInputUI elements to component.\n   *\n   * @private\n   */\n  buildOperatorsElement() {\n    const operationKeys = [_logicalOperations_conjunction_mjs__WEBPACK_IMPORTED_MODULE_7__[\"OPERATION_ID\"], _logicalOperations_disjunction_mjs__WEBPACK_IMPORTED_MODULE_8__[\"OPERATION_ID\"]];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(operationKeys, operation => {\n      const radioInput = new _ui_radioInput_mjs__WEBPACK_IMPORTED_MODULE_10__[\"RadioInputUI\"](this.hot, {\n        name: 'operator',\n        label: {\n          htmlFor: operation,\n          textContent: Object(_logicalOperationRegisterer_mjs__WEBPACK_IMPORTED_MODULE_6__[\"getOperationName\"])(operation)\n        },\n        value: operation,\n        checked: operation === operationKeys[SELECTED_AT_START_ELEMENT_INDEX],\n        id: operation\n      });\n      radioInput.addLocalHook('change', event => _assertClassBrand(_OperatorsComponent_brand, this, _onRadioInputChange).call(this, event));\n      this.elements.push(radioInput);\n    });\n  }\n\n  /**\n   * Set state of operators component to check radio input at specific `index`.\n   *\n   * @param {number} searchedIndex Index of radio input to check.\n   */\n  setChecked(searchedIndex) {\n    if (this.elements.length < searchedIndex) {\n      throw Error(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_4__[\"toSingleLine\"]`Radio button with index ${searchedIndex} doesn't exist.`);\n    }\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(this.elements, (element, index) => {\n      element.setChecked(index === searchedIndex);\n    });\n  }\n\n  /**\n   * Get `id` of active operator.\n   *\n   * @returns {string}\n   */\n  getActiveOperationId() {\n    const operationElement = this.elements.find(element => element instanceof _ui_radioInput_mjs__WEBPACK_IMPORTED_MODULE_10__[\"RadioInputUI\"] && element.isChecked());\n    if (operationElement) {\n      return operationElement.getValue();\n    }\n    return _logicalOperations_conjunction_mjs__WEBPACK_IMPORTED_MODULE_7__[\"OPERATION_ID\"];\n  }\n\n  /**\n   * Export state of the component (get selected operator).\n   *\n   * @returns {string} Returns `id` of selected operator.\n   */\n  getState() {\n    return this.getActiveOperationId();\n  }\n\n  /**\n   * Set state of the component.\n   *\n   * @param {object} value State to restore.\n   */\n  setState(value) {\n    this.reset();\n    if (value && this.getActiveOperationId() !== value) {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(this.elements, element => {\n        element.setChecked(element.getValue() === value);\n      });\n    }\n  }\n\n  /**\n   * Update state of component.\n   *\n   * @param {string} [operationId='conjunction'] Id of selected operation.\n   * @param {number} column Physical column index.\n   */\n  updateState() {\n    let operationId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _logicalOperations_conjunction_mjs__WEBPACK_IMPORTED_MODULE_7__[\"OPERATION_ID\"];\n    let column = arguments.length > 1 ? arguments[1] : undefined;\n    let selectedOperationId = operationId;\n    if (selectedOperationId === _logicalOperations_disjunctionWithExtraCondition_mjs__WEBPACK_IMPORTED_MODULE_9__[\"OPERATION_ID\"]) {\n      selectedOperationId = _logicalOperations_disjunction_mjs__WEBPACK_IMPORTED_MODULE_8__[\"OPERATION_ID\"];\n    }\n    this.state.setValueAtIndex(column, selectedOperationId);\n  }\n\n  /**\n   * Reset elements to their initial state.\n   */\n  reset() {\n    this.setChecked(SELECTED_AT_START_ELEMENT_INDEX);\n  }\n}\nfunction _onRadioInputChange(event) {\n  this.setState(event.target.value);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/component/operators.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/component/value.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/component/value.mjs ***!
  \***********************************************************************/
/*! exports provided: ValueComponent */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ValueComponent\", function() { return ValueComponent; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../helpers/unicode.mjs */ \"./node_modules/handsontable/helpers/unicode.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/plugins/filters/utils.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/filters/component/_base.mjs\");\n/* harmony import */ var _ui_multipleSelect_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../ui/multipleSelect.mjs */ \"./node_modules/handsontable/plugins/filters/ui/multipleSelect.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/handsontable/plugins/filters/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n/* harmony import */ var _renderers_numericRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../renderers/numericRenderer/index.mjs */ \"./node_modules/handsontable/renderers/numericRenderer/index.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\n\n/**\n * @private\n * @class ValueComponent\n */\nvar _ValueComponent_brand = /*#__PURE__*/new WeakSet();\nclass ValueComponent extends _base_mjs__WEBPACK_IMPORTED_MODULE_8__[\"BaseComponent\"] {\n  constructor(hotInstance, options) {\n    super(hotInstance, {\n      id: options.id,\n      stateless: false\n    });\n    /**\n     * Key down listener.\n     *\n     * @param {Event} event The DOM event object.\n     */\n    _classPrivateMethodInitSpec(this, _ValueComponent_brand);\n    /**\n     * The name of the component.\n     *\n     * @type {string}\n     */\n    _defineProperty(this, \"name\", '');\n    this.name = options.name;\n    this.elements.push(new _ui_multipleSelect_mjs__WEBPACK_IMPORTED_MODULE_9__[\"MultipleSelectUI\"](this.hot));\n    this.registerHooks();\n  }\n\n  /**\n   * Register all necessary hooks.\n   *\n   * @private\n   */\n  registerHooks() {\n    this.getMultipleSelectElement().addLocalHook('keydown', event => _assertClassBrand(_ValueComponent_brand, this, _onInputKeyDown).call(this, event)).addLocalHook('listTabKeydown', event => this.runLocalHooks('listTabKeydown', event));\n    this.hot.addHook('modifyFiltersMultiSelectValue', (value, meta) => _assertClassBrand(_ValueComponent_brand, this, _onModifyDisplayedValue).call(this, value, meta));\n  }\n\n  /**\n   * Gets the list of elements from which the component is built.\n   *\n   * @returns {BaseUI[]}\n   */\n  getElements() {\n    const selectElement = this.getMultipleSelectElement();\n    return [selectElement.getSearchInputElement(), selectElement.getSelectAllElement(), selectElement.getClearAllElement(), this.getMultipleSelectElement()];\n  }\n\n  /**\n   * Set state of the component.\n   *\n   * @param {object} value The component value.\n   */\n  setState(value) {\n    this.reset();\n    if (value && value.command.key === _constants_mjs__WEBPACK_IMPORTED_MODULE_10__[\"CONDITION_BY_VALUE\"]) {\n      const select = this.getMultipleSelectElement();\n      select.setItems(value.itemsSnapshot);\n      select.setValue(value.args[0]);\n      select.setLocale(value.locale);\n    }\n  }\n\n  /**\n   * Export state of the component (get selected filter and filter arguments).\n   *\n   * @returns {object} Returns object where `command` key keeps used condition filter and `args` key its arguments.\n   */\n  getState() {\n    const select = this.getMultipleSelectElement();\n    const availableItems = select.getItems();\n    return {\n      command: {\n        key: select.isSelectedAllValues() || !availableItems.length ? _constants_mjs__WEBPACK_IMPORTED_MODULE_10__[\"CONDITION_NONE\"] : _constants_mjs__WEBPACK_IMPORTED_MODULE_10__[\"CONDITION_BY_VALUE\"]\n      },\n      args: [select.getValue()],\n      itemsSnapshot: availableItems\n    };\n  }\n\n  /**\n   * Update state of component.\n   *\n   * @param {object} stateInfo Information about state containing stack of edited column,\n   * stack of dependent conditions, data factory and optional condition arguments change. It's described by object containing keys:\n   * `editedConditionStack`, `dependentConditionStacks`, `visibleDataFactory` and `conditionArgsChange`.\n   */\n  updateState(stateInfo) {\n    const updateColumnState = (physicalColumn, conditions, conditionArgsChange, filteredRowsFactory, conditionsStack) => {\n      const [firstByValueCondition] = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayFilter\"])(conditions, condition => condition.name === _constants_mjs__WEBPACK_IMPORTED_MODULE_10__[\"CONDITION_BY_VALUE\"]);\n      const state = {};\n      const defaultBlankCellValue = this.hot.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_6__[\"FILTERS_VALUES_BLANK_CELLS\"]);\n      if (firstByValueCondition) {\n        const filteredRows = filteredRowsFactory(physicalColumn, conditionsStack);\n        const rowValues = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayMap\"])(filteredRows, row => row.value);\n        const rowMetaMap = new Map(filteredRows.map(row => [row.value, this.hot.getCellMeta(row.meta.visualRow, row.meta.visualCol)]));\n        const unifiedRowValues = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_7__[\"unifyColumnValues\"])(rowValues);\n        if (conditionArgsChange) {\n          firstByValueCondition.args[0] = conditionArgsChange;\n        }\n        const selectedValues = [];\n        const itemsSnapshot = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_7__[\"intersectValues\"])(unifiedRowValues, firstByValueCondition.args[0], defaultBlankCellValue, item => {\n          if (item.checked) {\n            selectedValues.push(item.value);\n          }\n          _assertClassBrand(_ValueComponent_brand, this, _triggerModifyMultipleSelectionValueHook).call(this, item, rowMetaMap);\n        });\n        const column = stateInfo.editedConditionStack.column;\n        state.locale = this.hot.getCellMeta(0, column).locale;\n        state.args = [selectedValues];\n        state.command = Object(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_11__[\"getConditionDescriptor\"])(_constants_mjs__WEBPACK_IMPORTED_MODULE_10__[\"CONDITION_BY_VALUE\"]);\n        state.itemsSnapshot = itemsSnapshot;\n      } else {\n        state.args = [];\n        state.command = Object(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_11__[\"getConditionDescriptor\"])(_constants_mjs__WEBPACK_IMPORTED_MODULE_10__[\"CONDITION_NONE\"]);\n      }\n      this.state.setValueAtIndex(physicalColumn, state);\n    };\n    updateColumnState(stateInfo.editedConditionStack.column, stateInfo.editedConditionStack.conditions, stateInfo.conditionArgsChange, stateInfo.filteredRowsFactory);\n\n    // Update the next \"by_value\" component (filter column conditions added after this condition).\n    // Its list of values has to be updated. As the new values by default are unchecked,\n    // the further component update is unnecessary.\n    if (stateInfo.dependentConditionStacks.length) {\n      updateColumnState(stateInfo.dependentConditionStacks[0].column, stateInfo.dependentConditionStacks[0].conditions, stateInfo.conditionArgsChange, stateInfo.filteredRowsFactory, stateInfo.editedConditionStack);\n    }\n  }\n\n  /**\n   * Get multiple select element.\n   *\n   * @returns {MultipleSelectUI}\n   */\n  getMultipleSelectElement() {\n    return this.elements.filter(element => element instanceof _ui_multipleSelect_mjs__WEBPACK_IMPORTED_MODULE_9__[\"MultipleSelectUI\"])[0];\n  }\n\n  /**\n   * Get object descriptor for menu item entry.\n   *\n   * @returns {object}\n   */\n  getMenuItemDescriptor() {\n    return {\n      key: this.id,\n      name: this.name,\n      isCommand: false,\n      disableSelection: true,\n      hidden: () => this.isHidden(),\n      renderer: (hot, wrapper, row, col, prop, value) => {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(wrapper.parentNode, 'htFiltersMenuValue');\n        const label = this.hot.rootDocument.createElement('div');\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(label, 'htFiltersMenuLabel');\n        label.textContent = value;\n        wrapper.appendChild(label);\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(this.elements, ui => wrapper.appendChild(ui.element));\n        return wrapper;\n      }\n    };\n  }\n\n  /**\n   * Reset elements to their initial state.\n   */\n  reset() {\n    const defaultBlankCellValue = this.hot.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_6__[\"FILTERS_VALUES_BLANK_CELLS\"]);\n    const rowEntries = this._getColumnVisibleValues();\n    const rowValues = rowEntries.map(entry => entry.value);\n    const rowMetaMap = new Map(rowEntries.map(row => [row.value, row.meta]));\n    const values = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_7__[\"unifyColumnValues\"])(rowValues);\n    const items = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_7__[\"intersectValues\"])(values, values, defaultBlankCellValue, item => {\n      _assertClassBrand(_ValueComponent_brand, this, _triggerModifyMultipleSelectionValueHook).call(this, item, rowMetaMap);\n    });\n    this.getMultipleSelectElement().setItems(items);\n    super.reset();\n    this.getMultipleSelectElement().setValue(values);\n    const selectedColumn = this.hot.getPlugin('filters').getSelectedColumn();\n    if (selectedColumn !== null) {\n      this.getMultipleSelectElement().setLocale(this.hot.getCellMeta(0, selectedColumn.visualIndex).locale);\n    }\n  }\n  /**\n   * Get data for currently selected column.\n   *\n   * @returns {Array}\n   * @private\n   */\n  _getColumnVisibleValues() {\n    const selectedColumn = this.hot.getPlugin('filters').getSelectedColumn();\n    if (selectedColumn === null) {\n      return [];\n    }\n    return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayMap\"])(this.hot.getDataAtCol(selectedColumn.visualIndex), (v, rowIndex) => {\n      return {\n        value: Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_7__[\"toEmptyString\"])(v),\n        meta: this.hot.getCellMeta(rowIndex, selectedColumn.visualIndex)\n      };\n    });\n  }\n}\nfunction _onInputKeyDown(event) {\n  if (Object(_helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isKey\"])(event.keyCode, 'ESCAPE')) {\n    this.runLocalHooks('cancel');\n    Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_3__[\"stopImmediatePropagation\"])(event);\n  }\n}\n/**\n * Trigger the `modifyFiltersMultiSelectValue` hook.\n *\n * @param {object} item Item from the multiple select list.\n * @param {Map} metaMap Map of row meta objects.\n */\nfunction _triggerModifyMultipleSelectionValueHook(item, metaMap) {\n  if (this.hot.hasHook('modifyFiltersMultiSelectValue')) {\n    item.visualValue = this.hot.runHooks('modifyFiltersMultiSelectValue', item.visualValue, metaMap.get(item.value));\n  }\n}\n/**\n * Modify the value displayed in the multiple select list.\n *\n * @param {*} value Cell value.\n * @param {object} meta The cell meta object.\n * @returns {*} Returns the modified value.\n */\nfunction _onModifyDisplayedValue(value, meta) {\n  switch (meta.type) {\n    case 'numeric':\n      return Object(_renderers_numericRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_12__[\"getRenderedValue\"])(value, meta);\n    default:\n      return value;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/component/value.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/beginsWith.mjs":
/*!****************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/beginsWith.mjs ***!
  \****************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\n\n\nconst CONDITION_NAME = 'begins_with';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @param {*} inputValues.\"0\" Value to check if it occurs at the beginning.\n * @returns {boolean}\n */\nfunction condition(dataRow, _ref) {\n  let [value] = _ref;\n  return Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(dataRow.value).toLocaleLowerCase(dataRow.meta.locale).startsWith(Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(value));\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BEGINS_WITH\"],\n  inputsCount: 1,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/beginsWith.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/between.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/between.mjs ***!
  \*************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n/* harmony import */ var _date_after_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./date/after.mjs */ \"./node_modules/handsontable/plugins/filters/condition/date/after.mjs\");\n/* harmony import */ var _date_before_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./date/before.mjs */ \"./node_modules/handsontable/plugins/filters/condition/date/before.mjs\");\n\n\n\n\nconst CONDITION_NAME = 'between';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @param {number} inputValues.\"0\" The minimum value of the range.\n * @param {number} inputValues.\"1\" The maximum value of the range.\n * @returns {boolean}\n */\nfunction condition(dataRow, _ref) {\n  let [from, to] = _ref;\n  let fromValue = from;\n  let toValue = to;\n  if (dataRow.meta.type === 'numeric') {\n    const _from = parseFloat(fromValue, 10);\n    const _to = parseFloat(toValue, 10);\n    fromValue = Math.min(_from, _to);\n    toValue = Math.max(_from, _to);\n  } else if (dataRow.meta.type === 'date') {\n    const dateBefore = Object(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getCondition\"])(_date_before_mjs__WEBPACK_IMPORTED_MODULE_3__[\"CONDITION_NAME\"], [toValue]);\n    const dateAfter = Object(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getCondition\"])(_date_after_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONDITION_NAME\"], [fromValue]);\n    return dateBefore(dataRow) && dateAfter(dataRow);\n  }\n  return dataRow.value >= fromValue && dataRow.value <= toValue;\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_BETWEEN\"],\n  inputsCount: 2,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/between.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/byValue.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/byValue.mjs ***!
  \*************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/plugins/filters/utils.mjs\");\n\n\nconst CONDITION_NAME = 'by_value';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @param {Function} inputValues.\"0\" A function to compare row's data.\n * @returns {boolean}\n */\nfunction condition(dataRow, _ref) {\n  let [value] = _ref;\n  return value(dataRow.value);\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: 'By value',\n  inputsCount: 0,\n  inputValuesDecorator(_ref2) {\n    let [data] = _ref2;\n    return [Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_1__[\"createArrayAssertion\"])(data)];\n  },\n  showOperators: false\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/byValue.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/contains.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/contains.mjs ***!
  \**************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\n\n\nconst CONDITION_NAME = 'contains';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @param {*} inputValues.\"0\" A value to check if it occurs in the row's data.\n * @returns {boolean}\n */\nfunction condition(dataRow, _ref) {\n  let [value] = _ref;\n  return Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(dataRow.value).toLocaleLowerCase(dataRow.meta.locale).indexOf(Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(value)) >= 0;\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_CONTAINS\"],\n  inputsCount: 1,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/contains.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/date/after.mjs":
/*!****************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/date/after.mjs ***!
  \****************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\n\n\nconst CONDITION_NAME = 'date_after';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @param {*} inputValues.\"0\" Minimum date of a range.\n * @returns {boolean}\n */\nfunction condition(dataRow, _ref) {\n  let [value] = _ref;\n  const date = moment__WEBPACK_IMPORTED_MODULE_0__(dataRow.value, dataRow.meta.dateFormat);\n  const inputDate = moment__WEBPACK_IMPORTED_MODULE_0__(value, dataRow.meta.dateFormat);\n  if (!date.isValid() || !inputDate.isValid()) {\n    return false;\n  }\n  return date.diff(inputDate) >= 0;\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FILTERS_CONDITIONS_AFTER\"],\n  inputsCount: 1,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/date/after.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/date/before.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/date/before.mjs ***!
  \*****************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\n\n\nconst CONDITION_NAME = 'date_before';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @param {*} inputValues.\"0\" Maximum date of a range.\n * @returns {boolean}\n */\nfunction condition(dataRow, _ref) {\n  let [value] = _ref;\n  const date = moment__WEBPACK_IMPORTED_MODULE_0__(dataRow.value, dataRow.meta.dateFormat);\n  const inputDate = moment__WEBPACK_IMPORTED_MODULE_0__(value, dataRow.meta.dateFormat);\n  if (!date.isValid() || !inputDate.isValid()) {\n    return false;\n  }\n  return date.diff(inputDate) <= 0;\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FILTERS_CONDITIONS_BEFORE\"],\n  inputsCount: 1,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/date/before.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/date/today.mjs":
/*!****************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/date/today.mjs ***!
  \****************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\n\n\nconst CONDITION_NAME = 'date_today';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @returns {boolean}\n */\nfunction condition(dataRow) {\n  const date = moment__WEBPACK_IMPORTED_MODULE_0__(dataRow.value, dataRow.meta.dateFormat);\n  if (!date.isValid()) {\n    return false;\n  }\n  return date.isSame(moment__WEBPACK_IMPORTED_MODULE_0__().startOf('day'), 'd');\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FILTERS_CONDITIONS_TODAY\"],\n  inputsCount: 0\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/date/today.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/date/tomorrow.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/date/tomorrow.mjs ***!
  \*******************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\n\n\nconst CONDITION_NAME = 'date_tomorrow';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @returns {boolean}\n */\nfunction condition(dataRow) {\n  const date = moment__WEBPACK_IMPORTED_MODULE_0__(dataRow.value, dataRow.meta.dateFormat);\n  if (!date.isValid()) {\n    return false;\n  }\n  return date.isSame(moment__WEBPACK_IMPORTED_MODULE_0__().subtract(-1, 'days').startOf('day'), 'd');\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FILTERS_CONDITIONS_TOMORROW\"],\n  inputsCount: 0\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/date/tomorrow.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/date/yesterday.mjs":
/*!********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/date/yesterday.mjs ***!
  \********************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\n\n\nconst CONDITION_NAME = 'date_yesterday';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @returns {boolean}\n */\nfunction condition(dataRow) {\n  const date = moment__WEBPACK_IMPORTED_MODULE_0__(dataRow.value, dataRow.meta.dateFormat);\n  if (!date.isValid()) {\n    return false;\n  }\n  return date.isSame(moment__WEBPACK_IMPORTED_MODULE_0__().subtract(1, 'days').startOf('day'), 'd');\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FILTERS_CONDITIONS_YESTERDAY\"],\n  inputsCount: 0\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/date/yesterday.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/empty.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/empty.mjs ***!
  \***********************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n\n\n\nconst CONDITION_NAME = 'empty';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @returns {boolean}\n */\nfunction condition(dataRow) {\n  return Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isEmpty\"])(dataRow.value);\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EMPTY\"],\n  inputsCount: 0,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/empty.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/endsWith.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/endsWith.mjs ***!
  \**************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\n\n\nconst CONDITION_NAME = 'ends_with';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @param {*} inputValues.\"0\" Value to check if it occurs at the end.\n * @returns {boolean}\n */\nfunction condition(dataRow, _ref) {\n  let [value] = _ref;\n  return Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(dataRow.value).toLocaleLowerCase(dataRow.meta.locale).endsWith(Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(value));\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_ENDS_WITH\"],\n  inputsCount: 1,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/endsWith.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/equal.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/equal.mjs ***!
  \***********************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\n\n\nconst CONDITION_NAME = 'eq';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @param {Array} inputValues.\"0\" Value to check if it same as row's data.\n * @returns {boolean}\n */\nfunction condition(dataRow, _ref) {\n  let [value] = _ref;\n  return Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(dataRow.value).toLocaleLowerCase(dataRow.meta.locale) === Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(value);\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_EQUAL\"],\n  inputsCount: 1,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/equal.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/false.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/false.mjs ***!
  \***********************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\nconst CONDITION_NAME = 'false';\n\n/**\n * @returns {boolean}\n */\nfunction condition() {\n  return false;\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: 'False'\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/false.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/greaterThan.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/greaterThan.mjs ***!
  \*****************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\n\nconst CONDITION_NAME = 'gt';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @param {any} inputValues.\"0\" Condition value to compare numbers.\n * @returns {boolean}\n */\nfunction condition(dataRow, _ref) {\n  let [value] = _ref;\n  let conditionValue = value;\n  if (dataRow.meta.type === 'numeric') {\n    conditionValue = parseFloat(conditionValue, 10);\n  }\n  return dataRow.value > conditionValue;\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN\"],\n  inputsCount: 1,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/greaterThan.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/greaterThanOrEqual.mjs":
/*!************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/greaterThanOrEqual.mjs ***!
  \************************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\n\nconst CONDITION_NAME = 'gte';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @param {*} inputValues.\"0\" Condition value to compare numbers.\n * @returns {boolean}\n */\nfunction condition(dataRow, _ref) {\n  let [value] = _ref;\n  let conditionValue = value;\n  if (dataRow.meta.type === 'numeric') {\n    conditionValue = parseFloat(conditionValue, 10);\n  }\n  return dataRow.value >= conditionValue;\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL\"],\n  inputsCount: 1,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/greaterThanOrEqual.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/lessThan.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/lessThan.mjs ***!
  \**************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\n\nconst CONDITION_NAME = 'lt';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @param {*} inputValues.\"0\" Condition value to compare numbers.\n * @returns {boolean}\n */\nfunction condition(dataRow, _ref) {\n  let [value] = _ref;\n  let conditionValue = value;\n  if (dataRow.meta.type === 'numeric') {\n    conditionValue = parseFloat(conditionValue, 10);\n  }\n  return dataRow.value < conditionValue;\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN\"],\n  inputsCount: 1,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/lessThan.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/lessThanOrEqual.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/lessThanOrEqual.mjs ***!
  \*********************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\n\nconst CONDITION_NAME = 'lte';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @param {*} inputValues.\"0\" Condition value to compare numbers.\n * @returns {boolean}\n */\nfunction condition(dataRow, _ref) {\n  let [value] = _ref;\n  let conditionValue = value;\n  if (dataRow.meta.type === 'numeric') {\n    conditionValue = parseFloat(conditionValue, 10);\n  }\n  return dataRow.value <= conditionValue;\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL\"],\n  inputsCount: 1,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/lessThanOrEqual.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/none.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/none.mjs ***!
  \**********************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\n\nconst CONDITION_NAME = 'none';\n\n/**\n * @returns {boolean}\n */\nfunction condition() {\n  return true;\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NONE\"],\n  inputsCount: 0,\n  showOperators: false\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/none.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/notBetween.mjs":
/*!****************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/notBetween.mjs ***!
  \****************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n/* harmony import */ var _between_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./between.mjs */ \"./node_modules/handsontable/plugins/filters/condition/between.mjs\");\n\n\n\nconst CONDITION_NAME = 'not_between';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @returns {boolean}\n */\nfunction condition(dataRow, inputValues) {\n  return !Object(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getCondition\"])(_between_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONDITION_NAME\"], inputValues)(dataRow);\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_BETWEEN\"],\n  inputsCount: 2,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/notBetween.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/notContains.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/notContains.mjs ***!
  \*****************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n/* harmony import */ var _contains_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./contains.mjs */ \"./node_modules/handsontable/plugins/filters/condition/contains.mjs\");\n\n\n\nconst CONDITION_NAME = 'not_contains';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @returns {boolean}\n */\nfunction condition(dataRow, inputValues) {\n  return !Object(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getCondition\"])(_contains_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONDITION_NAME\"], inputValues)(dataRow);\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_CONTAIN\"],\n  inputsCount: 1,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/notContains.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/notEmpty.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/notEmpty.mjs ***!
  \**************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n/* harmony import */ var _empty_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./empty.mjs */ \"./node_modules/handsontable/plugins/filters/condition/empty.mjs\");\n\n\n\nconst CONDITION_NAME = 'not_empty';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @returns {boolean}\n */\nfunction condition(dataRow, inputValues) {\n  return !Object(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getCondition\"])(_empty_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONDITION_NAME\"], inputValues)(dataRow);\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EMPTY\"],\n  inputsCount: 0,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/notEmpty.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/notEqual.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/notEqual.mjs ***!
  \**************************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n/* harmony import */ var _equal_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./equal.mjs */ \"./node_modules/handsontable/plugins/filters/condition/equal.mjs\");\n\n\n\nconst CONDITION_NAME = 'neq';\n\n/**\n * @param {object} dataRow The object which holds and describes the single cell value.\n * @param {Array} inputValues An array of values to compare with.\n * @returns {boolean}\n */\nfunction condition(dataRow, inputValues) {\n  return !Object(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getCondition\"])(_equal_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONDITION_NAME\"], inputValues)(dataRow);\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_CONDITIONS_NOT_EQUAL\"],\n  inputsCount: 1,\n  showOperators: true\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/notEqual.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/condition/true.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/condition/true.mjs ***!
  \**********************************************************************/
/*! exports provided: CONDITION_NAME, condition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NAME\", function() { return CONDITION_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"condition\", function() { return condition; });\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n\nconst CONDITION_NAME = 'true';\n\n/**\n * @returns {boolean}\n */\nfunction condition() {\n  return true;\n}\nObject(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"registerCondition\"])(CONDITION_NAME, condition, {\n  name: 'True'\n});\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/condition/true.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/conditionCollection.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/conditionCollection.mjs ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n/* harmony import */ var _logicalOperations_conjunction_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./logicalOperations/conjunction.mjs */ \"./node_modules/handsontable/plugins/filters/logicalOperations/conjunction.mjs\");\n/* harmony import */ var _logicalOperationRegisterer_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./logicalOperationRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/logicalOperationRegisterer.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n\n\nconst MAP_NAME = 'ConditionCollection.filteringStates';\n\n/**\n * @private\n * @class ConditionCollection\n */\nclass ConditionCollection {\n  constructor(hot) {\n    let isMapRegistrable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    /**\n     * Handsontable instance.\n     *\n     * @type {Core}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * Indicates whether the internal IndexMap should be registered or not. Generally,\n     * registered Maps responds to the index changes. Within that collection, sometimes\n     * this is not necessary.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"isMapRegistrable\", void 0);\n    /**\n     * Index map storing filtering states for every column. ConditionCollection write and read to/from element.\n     *\n     * @type {LinkedPhysicalIndexToValueMap}\n     */\n    _defineProperty(this, \"filteringStates\", new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"LinkedPhysicalIndexToValueMap\"]());\n    this.hot = hot;\n    this.isMapRegistrable = isMapRegistrable;\n    if (this.isMapRegistrable === true) {\n      this.hot.columnIndexMapper.registerMap(MAP_NAME, this.filteringStates);\n    } else {\n      this.filteringStates.init(this.hot.columnIndexMapper.getNumberOfIndexes());\n    }\n  }\n\n  /**\n   * Check if condition collection is empty (so no needed to filter data).\n   *\n   * @returns {boolean}\n   */\n  isEmpty() {\n    return this.getFilteredColumns().length === 0;\n  }\n\n  /**\n   * Check if value is matched to the criteria of conditions chain.\n   *\n   * @param {object} value Object with `value` and `meta` keys.\n   * @param {number} column The physical column index.\n   * @returns {boolean}\n   */\n  isMatch(value, column) {\n    var _stateForColumn$condi;\n    const stateForColumn = this.filteringStates.getValueAtIndex(column);\n    const conditions = (_stateForColumn$condi = stateForColumn === null || stateForColumn === void 0 ? void 0 : stateForColumn.conditions) !== null && _stateForColumn$condi !== void 0 ? _stateForColumn$condi : [];\n    const operation = stateForColumn === null || stateForColumn === void 0 ? void 0 : stateForColumn.operation;\n    return this.isMatchInConditions(conditions, value, operation);\n  }\n\n  /**\n   * Check if the value is matches the conditions.\n   *\n   * @param {Array} conditions List of conditions.\n   * @param {object} value Object with `value` and `meta` keys.\n   * @param {string} [operationType='conjunction'] Type of conditions operation.\n   * @returns {boolean}\n   */\n  isMatchInConditions(conditions, value) {\n    let operationType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _logicalOperations_conjunction_mjs__WEBPACK_IMPORTED_MODULE_7__[\"OPERATION_ID\"];\n    if (conditions.length) {\n      return Object(_logicalOperationRegisterer_mjs__WEBPACK_IMPORTED_MODULE_8__[\"getOperationFunc\"])(operationType)(conditions, value);\n    }\n    return true;\n  }\n\n  /**\n   * Add condition to the collection.\n   *\n   * @param {number} column The physical column index.\n   * @param {object} conditionDefinition Object with keys:\n   *  * `command` Object, Command object with condition name as `key` property.\n   *  * `args` Array, Condition arguments.\n   * @param {string} [operation='conjunction'] Type of conditions operation.\n   * @param {number} [position] Position to which condition will be added. When argument is undefined\n   * the condition will be processed as the last condition.\n   * @fires ConditionCollection#beforeAdd\n   * @fires ConditionCollection#afterAdd\n   */\n  addCondition(column, conditionDefinition) {\n    let operation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _logicalOperations_conjunction_mjs__WEBPACK_IMPORTED_MODULE_7__[\"OPERATION_ID\"];\n    let position = arguments.length > 3 ? arguments[3] : undefined;\n    const localeForColumn = this.hot.getCellMeta(0, column).locale;\n    const args = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayMap\"])(conditionDefinition.args, v => typeof v === 'string' ? v.toLocaleLowerCase(localeForColumn) : v);\n    const name = conditionDefinition.name || conditionDefinition.command.key;\n    this.runLocalHooks('beforeAdd', column);\n    const columnType = this.getOperation(column);\n    if (columnType) {\n      if (columnType !== operation) {\n        throw Error(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_4__[\"toSingleLine\"]`The column of index ${column} has been already applied with a \\`${columnType}\\`\\x20\n        filter operation. Use \\`removeConditions\\` to clear the current conditions and then add new ones.\\x20\n        Mind that you cannot mix different types of operations (for instance, if you use \\`conjunction\\`,\\x20\n        use it consequently for a particular column).`);\n      }\n    } else if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_9__[\"isUndefined\"])(_logicalOperationRegisterer_mjs__WEBPACK_IMPORTED_MODULE_8__[\"operations\"][operation])) {\n      throw new Error(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_4__[\"toSingleLine\"]`Unexpected operation named \\`${operation}\\`. Possible ones are\\x20\n        \\`disjunction\\` and \\`conjunction\\`.`);\n    }\n    const conditionsForColumn = this.getConditions(column);\n    if (conditionsForColumn.length === 0) {\n      // Create first condition for particular column.\n      this.filteringStates.setValueAtIndex(column, {\n        operation,\n        conditions: [{\n          name,\n          args,\n          func: Object(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_6__[\"getCondition\"])(name, args)\n        }]\n      }, position);\n    } else {\n      // Add next condition for particular column (by reference).\n      conditionsForColumn.push({\n        name,\n        args,\n        func: Object(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_6__[\"getCondition\"])(name, args)\n      });\n    }\n    this.runLocalHooks('afterAdd', column);\n  }\n\n  /**\n   * Get all added conditions from the collection at specified column index.\n   *\n   * @param {number} column The physical column index.\n   * @returns {Array} Returns conditions collection as an array.\n   */\n  getConditions(column) {\n    var _this$filteringStates, _this$filteringStates2;\n    return (_this$filteringStates = (_this$filteringStates2 = this.filteringStates.getValueAtIndex(column)) === null || _this$filteringStates2 === void 0 ? void 0 : _this$filteringStates2.conditions) !== null && _this$filteringStates !== void 0 ? _this$filteringStates : [];\n  }\n\n  /**\n   * Get operation for particular column.\n   *\n   * @param {number} column The physical column index.\n   * @returns {string|undefined}\n   */\n  getOperation(column) {\n    var _this$filteringStates3;\n    return (_this$filteringStates3 = this.filteringStates.getValueAtIndex(column)) === null || _this$filteringStates3 === void 0 ? void 0 : _this$filteringStates3.operation;\n  }\n\n  /**\n   * Get all filtered physical columns in the order in which actions are performed.\n   *\n   * @returns {Array}\n   */\n  getFilteredColumns() {\n    return this.filteringStates.getEntries().map(_ref => {\n      let [physicalColumn] = _ref;\n      return physicalColumn;\n    });\n  }\n\n  /**\n   * Gets position in the filtering states stack for the specific column.\n   *\n   * @param {number} column The physical column index.\n   * @returns {number} Returns -1 when the column doesn't exist in the stack.\n   */\n  getColumnStackPosition(column) {\n    return this.getFilteredColumns().indexOf(column);\n  }\n\n  /**\n   * Export all previously added conditions.\n   *\n   * @returns {Array}\n   */\n  exportAllConditions() {\n    return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayReduce\"])(this.filteringStates.getEntries(), (allConditions, _ref2) => {\n      let [column, {\n        operation,\n        conditions\n      }] = _ref2;\n      allConditions.push({\n        column,\n        operation,\n        conditions: Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayMap\"])(conditions, _ref3 => {\n          let {\n            name,\n            args\n          } = _ref3;\n          return {\n            name,\n            args\n          };\n        })\n      });\n      return allConditions;\n    }, []);\n  }\n\n  /**\n   * Import conditions to the collection.\n   *\n   * @param {Array} conditions The collection of the conditions.\n   */\n  importAllConditions(conditions) {\n    this.clean();\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(conditions, stack => {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(stack.conditions, condition => this.addCondition(stack.column, condition));\n    });\n  }\n\n  /**\n   * Remove conditions at given column index.\n   *\n   * @param {number} column The physical column index.\n   * @fires ConditionCollection#beforeRemove\n   * @fires ConditionCollection#afterRemove\n   */\n  removeConditions(column) {\n    this.runLocalHooks('beforeRemove', column);\n    this.filteringStates.clearValue(column);\n    this.runLocalHooks('afterRemove', column);\n  }\n\n  /**\n   * Clean all conditions collection and reset order stack.\n   *\n   * @fires ConditionCollection#beforeClean\n   * @fires ConditionCollection#afterClean\n   */\n  clean() {\n    this.runLocalHooks('beforeClean');\n    this.filteringStates.clear();\n    this.runLocalHooks('afterClean');\n  }\n\n  /**\n   * Check if at least one condition was added at specified column index. And if second parameter is passed then additionally\n   * check if condition exists under its name.\n   *\n   * @param {number} column The physical column index.\n   * @param {string} [name] Condition name.\n   * @returns {boolean}\n   */\n  hasConditions(column, name) {\n    const conditions = this.getConditions(column);\n    if (name) {\n      return conditions.some(condition => condition.name === name);\n    }\n    return conditions.length > 0;\n  }\n\n  /**\n   * Destroy object.\n   */\n  destroy() {\n    if (this.isMapRegistrable) {\n      this.hot.columnIndexMapper.unregisterMap(MAP_NAME);\n    }\n    this.filteringStates = null;\n    this.clearLocalHooks();\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"mixin\"])(ConditionCollection, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ConditionCollection);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/conditionCollection.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs ***!
  \***************************************************************************/
/*! exports provided: conditions, getCondition, getConditionDescriptor, registerCondition */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"conditions\", function() { return conditions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getCondition\", function() { return getCondition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getConditionDescriptor\", function() { return getConditionDescriptor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerCondition\", function() { return registerCondition; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nconst conditions = {};\n\n/**\n * Get condition closure with pre-bound arguments.\n *\n * @param {string} name Condition name.\n * @param {Array} args Condition arguments.\n * @returns {Function}\n */\nfunction getCondition(name, args) {\n  if (!conditions[name]) {\n    throw Error(`Filter condition \"${name}\" does not exist.`);\n  }\n  const {\n    condition,\n    descriptor\n  } = conditions[name];\n  let conditionArguments = args;\n  if (descriptor.inputValuesDecorator) {\n    conditionArguments = descriptor.inputValuesDecorator(conditionArguments);\n  }\n  return function (dataRow) {\n    return condition.apply(dataRow.meta.instance, [].concat([dataRow], [conditionArguments]));\n  };\n}\n\n/**\n * Get condition object descriptor which defines some additional informations about this condition.\n *\n * @param {string} name Condition name.\n * @returns {object}\n */\nfunction getConditionDescriptor(name) {\n  if (!conditions[name]) {\n    throw Error(`Filter condition \"${name}\" does not exist.`);\n  }\n  return conditions[name].descriptor;\n}\n\n/**\n * Condition registerer.\n *\n * @param {string} name Condition name.\n * @param {Function} condition Condition function.\n * @param {object} descriptor Condition descriptor.\n */\nfunction registerCondition(name, condition, descriptor) {\n  descriptor.key = name;\n  conditions[name] = {\n    condition,\n    descriptor\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/conditionUpdateObserver.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/conditionUpdateObserver.mjs ***!
  \*******************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n/* harmony import */ var _conditionCollection_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./conditionCollection.mjs */ \"./node_modules/handsontable/plugins/filters/conditionCollection.mjs\");\n/* harmony import */ var _dataFilter_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./dataFilter.mjs */ \"./node_modules/handsontable/plugins/filters/dataFilter.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/plugins/filters/utils.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n/**\n * Class which is designed for observing changes in condition collection. When condition is changed by user at specified\n * column it's necessary to update all conditions defined after this edited one.\n *\n * Object fires `update` hook for every column conditions change.\n *\n * @private\n * @class ConditionUpdateObserver\n */\nvar _ConditionUpdateObserver_brand = /*#__PURE__*/new WeakSet();\nclass ConditionUpdateObserver {\n  constructor(hot, conditionCollection) {\n    let columnDataFactory = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : () => [];\n    /**\n     * On before modify condition (add or remove from collection),.\n     *\n     * @param {number} column Column index.\n     * @private\n     */\n    _classPrivateMethodInitSpec(this, _ConditionUpdateObserver_brand);\n    /**\n     * Handsontable instance.\n     *\n     * @type {Core}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * Reference to the instance of {@link ConditionCollection}.\n     *\n     * @type {ConditionCollection}\n     */\n    _defineProperty(this, \"conditionCollection\", void 0);\n    /**\n     * Function which provide source data factory for specified column.\n     *\n     * @type {Function}\n     */\n    _defineProperty(this, \"columnDataFactory\", void 0);\n    /**\n     * Collected changes when grouping is enabled.\n     *\n     * @type {Array}\n     * @default []\n     */\n    _defineProperty(this, \"changes\", []);\n    /**\n     * Flag which determines if grouping events is enabled.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"grouping\", false);\n    /**\n     * The latest known position of edited conditions at specified column index.\n     *\n     * @type {number}\n     * @default -1\n     */\n    _defineProperty(this, \"latestEditedColumnPosition\", -1);\n    /**\n     * The latest known order of conditions stack.\n     *\n     * @type {Array}\n     */\n    _defineProperty(this, \"latestOrderStack\", []);\n    this.hot = hot;\n    this.conditionCollection = conditionCollection;\n    this.columnDataFactory = columnDataFactory;\n    this.conditionCollection.addLocalHook('beforeRemove', column => _assertClassBrand(_ConditionUpdateObserver_brand, this, _onConditionBeforeModify).call(this, column));\n    this.conditionCollection.addLocalHook('afterRemove', column => this.updateStatesAtColumn(column));\n    this.conditionCollection.addLocalHook('afterAdd', column => this.updateStatesAtColumn(column));\n    this.conditionCollection.addLocalHook('beforeClean', () => _assertClassBrand(_ConditionUpdateObserver_brand, this, _onConditionBeforeClean).call(this));\n    this.conditionCollection.addLocalHook('afterClean', () => _assertClassBrand(_ConditionUpdateObserver_brand, this, _onConditionAfterClean).call(this));\n  }\n\n  /**\n   * Enable grouping changes. Grouping is helpful in situations when a lot of conditions is added in one moment. Instead of\n   * trigger `update` hook for every condition by adding/removing you can group this changes and call `flush` method to trigger\n   * it once.\n   */\n  groupChanges() {\n    this.grouping = true;\n  }\n\n  /**\n   * Flush all collected changes. This trigger `update` hook for every previously collected change from condition collection.\n   */\n  flush() {\n    this.grouping = false;\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(this.changes, column => {\n      this.updateStatesAtColumn(column);\n    });\n    this.changes.length = 0;\n  }\n  /**\n   * Update all related states which should be changed after invoking changes applied to current column.\n   *\n   * @param {number} column The column index.\n   * @param {object} conditionArgsChange Object describing condition changes which can be handled by filters on `update` hook.\n   * It contains keys `conditionKey` and `conditionValue` which refers to change specified key of condition to specified value\n   * based on referred keys.\n   */\n  updateStatesAtColumn(column, conditionArgsChange) {\n    var _this = this;\n    if (this.grouping) {\n      if (this.changes.indexOf(column) === -1) {\n        this.changes.push(column);\n      }\n      return;\n    }\n    const allConditions = this.conditionCollection.exportAllConditions();\n    let editedColumnPosition = this.conditionCollection.getColumnStackPosition(column);\n    if (editedColumnPosition === -1) {\n      editedColumnPosition = this.latestEditedColumnPosition;\n    }\n\n    // Collection of all conditions defined before currently edited `column` (without edited one)\n    const conditionsBefore = allConditions.slice(0, editedColumnPosition);\n    // Collection of all conditions defined after currently edited `column` (with edited one)\n    const conditionsAfter = allConditions.slice(editedColumnPosition);\n\n    // Make sure that conditionAfter doesn't contain edited column conditions\n    if (conditionsAfter.length && conditionsAfter[0].column === column) {\n      conditionsAfter.shift();\n    }\n    const visibleDataFactory = Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_4__[\"curry\"])(function (curriedConditionsBefore, curriedColumn) {\n      let conditionsStack = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n      const splitConditionCollection = new _conditionCollection_mjs__WEBPACK_IMPORTED_MODULE_6__[\"default\"](_this.hot, false);\n      const curriedConditionsBeforeArray = [].concat(curriedConditionsBefore, conditionsStack);\n\n      // Create new condition collection to determine what rows should be visible in \"filter by value\" box\n      // in the next conditions in the chain\n      splitConditionCollection.importAllConditions(curriedConditionsBeforeArray);\n      const allRows = _this.columnDataFactory(curriedColumn);\n      let visibleRows;\n      if (splitConditionCollection.isEmpty()) {\n        visibleRows = allRows;\n      } else {\n        visibleRows = new _dataFilter_mjs__WEBPACK_IMPORTED_MODULE_7__[\"default\"](splitConditionCollection, columnData => _this.columnDataFactory(columnData)).filter();\n      }\n      visibleRows = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayMap\"])(visibleRows, rowData => rowData.meta.visualRow);\n      const visibleRowsAssertion = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_8__[\"createArrayAssertion\"])(visibleRows);\n      splitConditionCollection.destroy();\n      return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayFilter\"])(allRows, rowData => visibleRowsAssertion(rowData.meta.visualRow));\n    })(conditionsBefore);\n    const editedConditions = [].concat(this.conditionCollection.getConditions(column));\n    this.runLocalHooks('update', {\n      editedConditionStack: {\n        column,\n        conditions: editedConditions\n      },\n      dependentConditionStacks: conditionsAfter,\n      filteredRowsFactory: visibleDataFactory,\n      conditionArgsChange\n    });\n  }\n\n  /**\n   * On before conditions clean listener.\n   *\n   * @private\n   */\n\n  /**\n   * Destroy instance.\n   */\n  destroy() {\n    this.clearLocalHooks();\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"objectEach\"])(this, (value, property) => {\n      this[property] = null;\n    });\n  }\n}\nfunction _onConditionBeforeModify(column) {\n  this.latestEditedColumnPosition = this.conditionCollection.getColumnStackPosition(column);\n}\nfunction _onConditionBeforeClean() {\n  this.latestOrderStack = this.conditionCollection.getFilteredColumns();\n}\n/**\n * On after conditions clean listener.\n *\n * @private\n */\nfunction _onConditionAfterClean() {\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(this.latestOrderStack, column => {\n    this.updateStatesAtColumn(column);\n  });\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"mixin\"])(ConditionUpdateObserver, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ConditionUpdateObserver);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/conditionUpdateObserver.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/constants.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/constants.mjs ***!
  \*****************************************************************/
/*! exports provided: CONDITION_NONE, CONDITION_EMPTY, CONDITION_NOT_EMPTY, CONDITION_EQUAL, CONDITION_NOT_EQUAL, CONDITION_GREATER_THAN, CONDITION_GREATER_THAN_OR_EQUAL, CONDITION_LESS_THAN, CONDITION_LESS_THAN_OR_EQUAL, CONDITION_BETWEEN, CONDITION_NOT_BETWEEN, CONDITION_BEGINS_WITH, CONDITION_ENDS_WITH, CONDITION_CONTAINS, CONDITION_NOT_CONTAINS, CONDITION_DATE_BEFORE, CONDITION_DATE_AFTER, CONDITION_TOMORROW, CONDITION_TODAY, CONDITION_YESTERDAY, CONDITION_BY_VALUE, CONDITION_TRUE, CONDITION_FALSE, OPERATION_AND, OPERATION_OR, OPERATION_OR_THEN_VARIABLE, TYPE_NUMERIC, TYPE_TEXT, TYPE_DATE, TYPES, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TYPE_NUMERIC\", function() { return TYPE_NUMERIC; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TYPE_TEXT\", function() { return TYPE_TEXT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TYPE_DATE\", function() { return TYPE_DATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TYPES\", function() { return TYPES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return getOptionsList; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../contextMenu/predefinedItems/index.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/index.mjs\");\n/* harmony import */ var _conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./conditionRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/conditionRegisterer.mjs\");\n/* harmony import */ var _condition_none_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./condition/none.mjs */ \"./node_modules/handsontable/plugins/filters/condition/none.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NONE\", function() { return _condition_none_mjs__WEBPACK_IMPORTED_MODULE_5__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_empty_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./condition/empty.mjs */ \"./node_modules/handsontable/plugins/filters/condition/empty.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_EMPTY\", function() { return _condition_empty_mjs__WEBPACK_IMPORTED_MODULE_6__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_notEmpty_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./condition/notEmpty.mjs */ \"./node_modules/handsontable/plugins/filters/condition/notEmpty.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NOT_EMPTY\", function() { return _condition_notEmpty_mjs__WEBPACK_IMPORTED_MODULE_7__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_equal_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./condition/equal.mjs */ \"./node_modules/handsontable/plugins/filters/condition/equal.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_EQUAL\", function() { return _condition_equal_mjs__WEBPACK_IMPORTED_MODULE_8__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_notEqual_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./condition/notEqual.mjs */ \"./node_modules/handsontable/plugins/filters/condition/notEqual.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NOT_EQUAL\", function() { return _condition_notEqual_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_greaterThan_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./condition/greaterThan.mjs */ \"./node_modules/handsontable/plugins/filters/condition/greaterThan.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_GREATER_THAN\", function() { return _condition_greaterThan_mjs__WEBPACK_IMPORTED_MODULE_10__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_greaterThanOrEqual_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./condition/greaterThanOrEqual.mjs */ \"./node_modules/handsontable/plugins/filters/condition/greaterThanOrEqual.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_GREATER_THAN_OR_EQUAL\", function() { return _condition_greaterThanOrEqual_mjs__WEBPACK_IMPORTED_MODULE_11__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_lessThan_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./condition/lessThan.mjs */ \"./node_modules/handsontable/plugins/filters/condition/lessThan.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_LESS_THAN\", function() { return _condition_lessThan_mjs__WEBPACK_IMPORTED_MODULE_12__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_lessThanOrEqual_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./condition/lessThanOrEqual.mjs */ \"./node_modules/handsontable/plugins/filters/condition/lessThanOrEqual.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_LESS_THAN_OR_EQUAL\", function() { return _condition_lessThanOrEqual_mjs__WEBPACK_IMPORTED_MODULE_13__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_between_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./condition/between.mjs */ \"./node_modules/handsontable/plugins/filters/condition/between.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_BETWEEN\", function() { return _condition_between_mjs__WEBPACK_IMPORTED_MODULE_14__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_notBetween_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./condition/notBetween.mjs */ \"./node_modules/handsontable/plugins/filters/condition/notBetween.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NOT_BETWEEN\", function() { return _condition_notBetween_mjs__WEBPACK_IMPORTED_MODULE_15__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_beginsWith_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./condition/beginsWith.mjs */ \"./node_modules/handsontable/plugins/filters/condition/beginsWith.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_BEGINS_WITH\", function() { return _condition_beginsWith_mjs__WEBPACK_IMPORTED_MODULE_16__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_endsWith_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./condition/endsWith.mjs */ \"./node_modules/handsontable/plugins/filters/condition/endsWith.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_ENDS_WITH\", function() { return _condition_endsWith_mjs__WEBPACK_IMPORTED_MODULE_17__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_contains_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./condition/contains.mjs */ \"./node_modules/handsontable/plugins/filters/condition/contains.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_CONTAINS\", function() { return _condition_contains_mjs__WEBPACK_IMPORTED_MODULE_18__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_notContains_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./condition/notContains.mjs */ \"./node_modules/handsontable/plugins/filters/condition/notContains.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_NOT_CONTAINS\", function() { return _condition_notContains_mjs__WEBPACK_IMPORTED_MODULE_19__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_date_before_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./condition/date/before.mjs */ \"./node_modules/handsontable/plugins/filters/condition/date/before.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_DATE_BEFORE\", function() { return _condition_date_before_mjs__WEBPACK_IMPORTED_MODULE_20__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_date_after_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./condition/date/after.mjs */ \"./node_modules/handsontable/plugins/filters/condition/date/after.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_DATE_AFTER\", function() { return _condition_date_after_mjs__WEBPACK_IMPORTED_MODULE_21__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_date_tomorrow_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./condition/date/tomorrow.mjs */ \"./node_modules/handsontable/plugins/filters/condition/date/tomorrow.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_TOMORROW\", function() { return _condition_date_tomorrow_mjs__WEBPACK_IMPORTED_MODULE_22__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_date_today_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./condition/date/today.mjs */ \"./node_modules/handsontable/plugins/filters/condition/date/today.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_TODAY\", function() { return _condition_date_today_mjs__WEBPACK_IMPORTED_MODULE_23__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_date_yesterday_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./condition/date/yesterday.mjs */ \"./node_modules/handsontable/plugins/filters/condition/date/yesterday.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_YESTERDAY\", function() { return _condition_date_yesterday_mjs__WEBPACK_IMPORTED_MODULE_24__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_byValue_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./condition/byValue.mjs */ \"./node_modules/handsontable/plugins/filters/condition/byValue.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_BY_VALUE\", function() { return _condition_byValue_mjs__WEBPACK_IMPORTED_MODULE_25__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_true_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./condition/true.mjs */ \"./node_modules/handsontable/plugins/filters/condition/true.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_TRUE\", function() { return _condition_true_mjs__WEBPACK_IMPORTED_MODULE_26__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _condition_false_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./condition/false.mjs */ \"./node_modules/handsontable/plugins/filters/condition/false.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CONDITION_FALSE\", function() { return _condition_false_mjs__WEBPACK_IMPORTED_MODULE_27__[\"CONDITION_NAME\"]; });\n\n/* harmony import */ var _logicalOperations_conjunction_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./logicalOperations/conjunction.mjs */ \"./node_modules/handsontable/plugins/filters/logicalOperations/conjunction.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OPERATION_AND\", function() { return _logicalOperations_conjunction_mjs__WEBPACK_IMPORTED_MODULE_28__[\"OPERATION_ID\"]; });\n\n/* harmony import */ var _logicalOperations_disjunction_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./logicalOperations/disjunction.mjs */ \"./node_modules/handsontable/plugins/filters/logicalOperations/disjunction.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OPERATION_OR\", function() { return _logicalOperations_disjunction_mjs__WEBPACK_IMPORTED_MODULE_29__[\"OPERATION_ID\"]; });\n\n/* harmony import */ var _logicalOperations_disjunctionWithExtraCondition_mjs__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./logicalOperations/disjunctionWithExtraCondition.mjs */ \"./node_modules/handsontable/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OPERATION_OR_THEN_VARIABLE\", function() { return _logicalOperations_disjunctionWithExtraCondition_mjs__WEBPACK_IMPORTED_MODULE_30__[\"OPERATION_ID\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst TYPE_NUMERIC = 'numeric';\nconst TYPE_TEXT = 'text';\nconst TYPE_DATE = 'date';\n/**\n * Default types and order for filter conditions.\n *\n * @type {object}\n */\nconst TYPES = {\n  [TYPE_NUMERIC]: [_condition_none_mjs__WEBPACK_IMPORTED_MODULE_5__[\"CONDITION_NAME\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"SEPARATOR\"], _condition_empty_mjs__WEBPACK_IMPORTED_MODULE_6__[\"CONDITION_NAME\"], _condition_notEmpty_mjs__WEBPACK_IMPORTED_MODULE_7__[\"CONDITION_NAME\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"SEPARATOR\"], _condition_equal_mjs__WEBPACK_IMPORTED_MODULE_8__[\"CONDITION_NAME\"], _condition_notEqual_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CONDITION_NAME\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"SEPARATOR\"], _condition_greaterThan_mjs__WEBPACK_IMPORTED_MODULE_10__[\"CONDITION_NAME\"], _condition_greaterThanOrEqual_mjs__WEBPACK_IMPORTED_MODULE_11__[\"CONDITION_NAME\"], _condition_lessThan_mjs__WEBPACK_IMPORTED_MODULE_12__[\"CONDITION_NAME\"], _condition_lessThanOrEqual_mjs__WEBPACK_IMPORTED_MODULE_13__[\"CONDITION_NAME\"], _condition_between_mjs__WEBPACK_IMPORTED_MODULE_14__[\"CONDITION_NAME\"], _condition_notBetween_mjs__WEBPACK_IMPORTED_MODULE_15__[\"CONDITION_NAME\"]],\n  [TYPE_TEXT]: [_condition_none_mjs__WEBPACK_IMPORTED_MODULE_5__[\"CONDITION_NAME\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"SEPARATOR\"], _condition_empty_mjs__WEBPACK_IMPORTED_MODULE_6__[\"CONDITION_NAME\"], _condition_notEmpty_mjs__WEBPACK_IMPORTED_MODULE_7__[\"CONDITION_NAME\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"SEPARATOR\"], _condition_equal_mjs__WEBPACK_IMPORTED_MODULE_8__[\"CONDITION_NAME\"], _condition_notEqual_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CONDITION_NAME\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"SEPARATOR\"], _condition_beginsWith_mjs__WEBPACK_IMPORTED_MODULE_16__[\"CONDITION_NAME\"], _condition_endsWith_mjs__WEBPACK_IMPORTED_MODULE_17__[\"CONDITION_NAME\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"SEPARATOR\"], _condition_contains_mjs__WEBPACK_IMPORTED_MODULE_18__[\"CONDITION_NAME\"], _condition_notContains_mjs__WEBPACK_IMPORTED_MODULE_19__[\"CONDITION_NAME\"]],\n  [TYPE_DATE]: [_condition_none_mjs__WEBPACK_IMPORTED_MODULE_5__[\"CONDITION_NAME\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"SEPARATOR\"], _condition_empty_mjs__WEBPACK_IMPORTED_MODULE_6__[\"CONDITION_NAME\"], _condition_notEmpty_mjs__WEBPACK_IMPORTED_MODULE_7__[\"CONDITION_NAME\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"SEPARATOR\"], _condition_equal_mjs__WEBPACK_IMPORTED_MODULE_8__[\"CONDITION_NAME\"], _condition_notEqual_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CONDITION_NAME\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"SEPARATOR\"], _condition_date_before_mjs__WEBPACK_IMPORTED_MODULE_20__[\"CONDITION_NAME\"], _condition_date_after_mjs__WEBPACK_IMPORTED_MODULE_21__[\"CONDITION_NAME\"], _condition_between_mjs__WEBPACK_IMPORTED_MODULE_14__[\"CONDITION_NAME\"], _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"SEPARATOR\"], _condition_date_tomorrow_mjs__WEBPACK_IMPORTED_MODULE_22__[\"CONDITION_NAME\"], _condition_date_today_mjs__WEBPACK_IMPORTED_MODULE_23__[\"CONDITION_NAME\"], _condition_date_yesterday_mjs__WEBPACK_IMPORTED_MODULE_24__[\"CONDITION_NAME\"]]\n};\n\n/**\n * Get options list for conditional filter by data type (e.q: `'text'`, `'numeric'`, `'date'`).\n *\n * @private\n * @param {string} type The data type.\n * @returns {object}\n */\nfunction getOptionsList(type) {\n  const items = [];\n  let typeName = type;\n  if (!TYPES[typeName]) {\n    typeName = TYPE_TEXT;\n  }\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(TYPES[typeName], typeValue => {\n    let option;\n    if (typeValue === _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"SEPARATOR\"]) {\n      option = {\n        name: _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"SEPARATOR\"]\n      };\n    } else {\n      option = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"clone\"])(Object(_conditionRegisterer_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getConditionDescriptor\"])(typeValue));\n    }\n    items.push(option);\n  });\n  return items;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/constants.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/dataFilter.mjs":
/*!******************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/dataFilter.mjs ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n/**\n * @private\n * @class DataFilter\n */\nclass DataFilter {\n  constructor(conditionCollection) {\n    let columnDataFactory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : () => [];\n    /**\n     * Reference to the instance of {ConditionCollection}.\n     *\n     * @type {ConditionCollection}\n     */\n    _defineProperty(this, \"conditionCollection\", void 0);\n    /**\n     * Function which provide source data factory for specified column.\n     *\n     * @type {Function}\n     */\n    _defineProperty(this, \"columnDataFactory\", void 0);\n    this.conditionCollection = conditionCollection;\n    this.columnDataFactory = columnDataFactory;\n  }\n\n  /**\n   * Filter data based on the conditions collection.\n   *\n   * @returns {Array}\n   */\n  filter() {\n    let filteredData = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(this.conditionCollection.getFilteredColumns(), (physicalColumn, index) => {\n      let columnData = this.columnDataFactory(physicalColumn);\n      if (index) {\n        columnData = this._getIntersectData(columnData, filteredData);\n      }\n      filteredData = this.filterByColumn(physicalColumn, columnData);\n    });\n    return filteredData;\n  }\n\n  /**\n   * Filter data based on specified physical column index.\n   *\n   * @param {number} column The physical column index.\n   * @param {Array} [dataSource] Data source as array of objects with `value` and `meta` keys (e.g. `{value: 'foo', meta: {}}`).\n   * @returns {Array} Returns filtered data.\n   */\n  filterByColumn(column) {\n    let dataSource = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    const filteredData = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(dataSource, dataRow => {\n      if (dataRow !== undefined && this.conditionCollection.isMatch(dataRow, column)) {\n        filteredData.push(dataRow);\n      }\n    });\n    return filteredData;\n  }\n\n  /**\n   * Intersect data.\n   *\n   * @private\n   * @param {Array} data The data to intersect.\n   * @param {Array} needles The collection intersected rows with the data.\n   * @returns {Array}\n   */\n  _getIntersectData(data, needles) {\n    const result = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(needles, needleRow => {\n      const row = needleRow.meta.visualRow;\n      if (data[row] !== undefined) {\n        result[row] = data[row];\n      }\n    });\n    return result;\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (DataFilter);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/dataFilter.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/filters.mjs":
/*!***************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/filters.mjs ***!
  \***************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, Filters */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Filters\", function() { return Filters; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_unscopables_flat_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.unscopables.flat.js */ \"./node_modules/core-js/modules/es.array.unscopables.flat.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../helpers/unicode.mjs */ \"./node_modules/handsontable/helpers/unicode.mjs\");\n/* harmony import */ var _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../contextMenu/predefinedItems/index.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/index.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _component_condition_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./component/condition.mjs */ \"./node_modules/handsontable/plugins/filters/component/condition.mjs\");\n/* harmony import */ var _component_operators_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./component/operators.mjs */ \"./node_modules/handsontable/plugins/filters/component/operators.mjs\");\n/* harmony import */ var _component_value_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./component/value.mjs */ \"./node_modules/handsontable/plugins/filters/component/value.mjs\");\n/* harmony import */ var _component_actionBar_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./component/actionBar.mjs */ \"./node_modules/handsontable/plugins/filters/component/actionBar.mjs\");\n/* harmony import */ var _conditionCollection_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./conditionCollection.mjs */ \"./node_modules/handsontable/plugins/filters/conditionCollection.mjs\");\n/* harmony import */ var _dataFilter_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./dataFilter.mjs */ \"./node_modules/handsontable/plugins/filters/dataFilter.mjs\");\n/* harmony import */ var _conditionUpdateObserver_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./conditionUpdateObserver.mjs */ \"./node_modules/handsontable/plugins/filters/conditionUpdateObserver.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/plugins/filters/utils.mjs\");\n/* harmony import */ var _menu_focusController_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./menu/focusController.mjs */ \"./node_modules/handsontable/plugins/filters/menu/focusController.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/plugins/filters/constants.mjs\");\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../../translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst PLUGIN_KEY = 'filters';\nconst PLUGIN_PRIORITY = 250;\nconst SHORTCUTS_GROUP = PLUGIN_KEY;\n\n/**\n * @plugin Filters\n * @class Filters\n *\n * @description\n * The plugin allows filtering the table data either by the built-in component or with the API.\n *\n * See [the filtering demo](@/guides/columns/column-filter/column-filter.md) for examples.\n *\n * @example\n * ::: only-for javascript\n * ```js\n * const container = document.getElementById('example');\n * const hot = new Handsontable(container, {\n *   data: getData(),\n *   colHeaders: true,\n *   rowHeaders: true,\n *   dropdownMenu: true,\n *   filters: true\n * });\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * <HotTable\n *   data={getData()}\n *   colHeaders={true}\n *   rowHeaders={true}\n *   dropdownMenu={true}\n *   filters={true}\n * />\n * ```\n * :::\n */\nvar _menuFocusNavigator = /*#__PURE__*/new WeakMap();\nvar _Filters_brand = /*#__PURE__*/new WeakSet();\nclass Filters extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"BasePlugin\"] {\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  static get PLUGIN_DEPS() {\n    return ['plugin:DropdownMenu', 'plugin:HiddenRows', 'cell-type:checkbox'];\n  }\n\n  /**\n   * Instance of {@link DropdownMenu}.\n   *\n   * @private\n   * @type {DropdownMenu}\n   */\n\n  constructor(hotInstance) {\n    super(hotInstance);\n    // One listener for the enable/disable functionality\n    /**\n     * `afterChange` listener.\n     *\n     * @param {Array} changes Array of changes.\n     */\n    _classPrivateMethodInitSpec(this, _Filters_brand);\n    _defineProperty(this, \"dropdownMenuPlugin\", null);\n    /**\n     * Instance of {@link ConditionCollection}.\n     *\n     * @private\n     * @type {ConditionCollection}\n     */\n    _defineProperty(this, \"conditionCollection\", null);\n    /**\n     * Instance of {@link ConditionUpdateObserver}.\n     *\n     * @private\n     * @type {ConditionUpdateObserver}\n     */\n    _defineProperty(this, \"conditionUpdateObserver\", null);\n    /**\n     * Map, where key is component identifier and value represent `BaseComponent` element or it derivatives.\n     *\n     * @private\n     * @type {Map}\n     */\n    _defineProperty(this, \"components\", new Map([['filter_by_condition', null], ['filter_operators', null], ['filter_by_condition2', null], ['filter_by_value', null], ['filter_action_bar', null]]));\n    /**\n     * Map of skipped rows by plugin.\n     *\n     * @private\n     * @type {null|TrimmingMap}\n     */\n    _defineProperty(this, \"filtersRowsMap\", null);\n    /**\n     * Menu focus navigator allows switching the focus position through Tab and Shift Tab keys.\n     *\n     * @type {MenuFocusNavigator|undefined}\n     */\n    _classPrivateFieldInitSpec(this, _menuFocusNavigator, void 0);\n    this.hot.addHook('afterGetColHeader', (col, TH) => _assertClassBrand(_Filters_brand, this, _onAfterGetColHeader).call(this, col, TH));\n  }\n\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link Filters#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    /* eslint-disable no-unneeded-ternary */\n    return this.hot.getSettings()[PLUGIN_KEY] ? true : false;\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    if (this.enabled) {\n      return;\n    }\n    this.filtersRowsMap = this.hot.rowIndexMapper.registerMap(this.pluginName, new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_22__[\"TrimmingMap\"]());\n    this.dropdownMenuPlugin = this.hot.getPlugin('dropdownMenu');\n    const dropdownSettings = this.hot.getSettings().dropdownMenu;\n    const menuContainer = dropdownSettings && dropdownSettings.uiContainer || this.hot.rootDocument.body;\n    const addConfirmationHooks = component => {\n      component.addLocalHook('accept', () => _assertClassBrand(_Filters_brand, this, _onActionBarSubmit).call(this, 'accept'));\n      component.addLocalHook('cancel', () => _assertClassBrand(_Filters_brand, this, _onActionBarSubmit).call(this, 'cancel'));\n      component.addLocalHook('change', command => _assertClassBrand(_Filters_brand, this, _onComponentChange).call(this, component, command));\n      return component;\n    };\n    const filterByConditionLabel = () => `${this.hot.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_11__[\"FILTERS_DIVS_FILTER_BY_CONDITION\"])}:`;\n    const filterValueLabel = () => `${this.hot.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_11__[\"FILTERS_DIVS_FILTER_BY_VALUE\"])}:`;\n    if (!this.components.get('filter_by_condition')) {\n      const conditionComponent = new _component_condition_mjs__WEBPACK_IMPORTED_MODULE_12__[\"ConditionComponent\"](this.hot, {\n        id: 'filter_by_condition',\n        name: filterByConditionLabel,\n        addSeparator: false,\n        menuContainer\n      });\n      conditionComponent.addLocalHook('afterClose', () => _assertClassBrand(_Filters_brand, this, _onSelectUIClosed).call(this));\n      this.components.set('filter_by_condition', addConfirmationHooks(conditionComponent));\n    }\n    if (!this.components.get('filter_operators')) {\n      this.components.set('filter_operators', new _component_operators_mjs__WEBPACK_IMPORTED_MODULE_13__[\"OperatorsComponent\"](this.hot, {\n        id: 'filter_operators',\n        name: 'Operators'\n      }));\n    }\n    if (!this.components.get('filter_by_condition2')) {\n      const conditionComponent = new _component_condition_mjs__WEBPACK_IMPORTED_MODULE_12__[\"ConditionComponent\"](this.hot, {\n        id: 'filter_by_condition2',\n        name: '',\n        addSeparator: true,\n        menuContainer\n      });\n      conditionComponent.addLocalHook('afterClose', () => _assertClassBrand(_Filters_brand, this, _onSelectUIClosed).call(this));\n      this.components.set('filter_by_condition2', addConfirmationHooks(conditionComponent));\n    }\n    if (!this.components.get('filter_by_value')) {\n      this.components.set('filter_by_value', addConfirmationHooks(new _component_value_mjs__WEBPACK_IMPORTED_MODULE_14__[\"ValueComponent\"](this.hot, {\n        id: 'filter_by_value',\n        name: filterValueLabel\n      })));\n    }\n    if (!this.components.get('filter_action_bar')) {\n      this.components.set('filter_action_bar', addConfirmationHooks(new _component_actionBar_mjs__WEBPACK_IMPORTED_MODULE_15__[\"ActionBarComponent\"](this.hot, {\n        id: 'filter_action_bar',\n        name: 'Action bar'\n      })));\n    }\n    if (!this.conditionCollection) {\n      this.conditionCollection = new _conditionCollection_mjs__WEBPACK_IMPORTED_MODULE_16__[\"default\"](this.hot);\n    }\n    if (!this.conditionUpdateObserver) {\n      this.conditionUpdateObserver = new _conditionUpdateObserver_mjs__WEBPACK_IMPORTED_MODULE_18__[\"default\"](this.hot, this.conditionCollection, physicalColumn => this.getDataMapAtColumn(physicalColumn));\n      this.conditionUpdateObserver.addLocalHook('update', conditionState => _assertClassBrand(_Filters_brand, this, _updateComponents).call(this, conditionState));\n    }\n    this.components.forEach(component => component.show());\n    this.addHook('afterDropdownMenuDefaultOptions', defaultOptions => _assertClassBrand(_Filters_brand, this, _onAfterDropdownMenuDefaultOptions).call(this, defaultOptions));\n    this.addHook('afterDropdownMenuShow', () => _assertClassBrand(_Filters_brand, this, _onAfterDropdownMenuShow).call(this));\n    this.addHook('afterDropdownMenuHide', () => _assertClassBrand(_Filters_brand, this, _onAfterDropdownMenuHide).call(this));\n    this.addHook('afterChange', changes => _assertClassBrand(_Filters_brand, this, _onAfterChange).call(this, changes));\n\n    // Temp. solution (extending menu items bug in contextMenu/dropdownMenu)\n    if (this.hot.getSettings().dropdownMenu && this.dropdownMenuPlugin) {\n      this.dropdownMenuPlugin.disablePlugin();\n      this.dropdownMenuPlugin.enablePlugin();\n    }\n    if (!_classPrivateFieldGet(_menuFocusNavigator, this) && this.dropdownMenuPlugin.enabled) {\n      const mainMenu = this.dropdownMenuPlugin.menu;\n      const focusableItems = [\n      // A fake menu item that once focused allows escaping from the focus navigation (using Tab keys)\n      // to the menu navigation using arrow keys.\n      {\n        focus: () => {\n          const menuNavigator = mainMenu.getNavigator();\n          const lastSelectedMenuItem = _classPrivateFieldGet(_menuFocusNavigator, this).getLastMenuPage();\n          mainMenu.focus();\n          if (lastSelectedMenuItem > 0) {\n            menuNavigator.setCurrentPage(lastSelectedMenuItem);\n          } else {\n            menuNavigator.toFirstItem();\n          }\n        }\n      }, ...Array.from(this.components).map(_ref => {\n        let [, component] = _ref;\n        return component.getElements();\n      }).flat()];\n      _classPrivateFieldSet(_menuFocusNavigator, this, Object(_menu_focusController_mjs__WEBPACK_IMPORTED_MODULE_20__[\"createMenuFocusController\"])(mainMenu, focusableItems));\n      const forwardToFocusNavigation = event => {\n        _classPrivateFieldGet(_menuFocusNavigator, this).listen();\n        event.preventDefault();\n        if (Object(_helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_9__[\"isKey\"])(event.keyCode, 'TAB')) {\n          if (event.shiftKey) {\n            _classPrivateFieldGet(_menuFocusNavigator, this).toPreviousItem();\n          } else {\n            _classPrivateFieldGet(_menuFocusNavigator, this).toNextItem();\n          }\n        }\n      };\n      this.components.get('filter_by_value').addLocalHook('listTabKeydown', forwardToFocusNavigation);\n      this.components.get('filter_by_condition').addLocalHook('selectTabKeydown', forwardToFocusNavigation);\n    }\n    this.registerShortcuts();\n    super.enablePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    if (this.enabled) {\n      var _this$dropdownMenuPlu;\n      if ((_this$dropdownMenuPlu = this.dropdownMenuPlugin) !== null && _this$dropdownMenuPlu !== void 0 && _this$dropdownMenuPlu.enabled) {\n        this.dropdownMenuPlugin.menu.clearLocalHooks();\n      }\n      this.components.forEach((component, key) => {\n        component.destroy();\n        this.components.set(key, null);\n      });\n      this.conditionCollection.destroy();\n      this.conditionCollection = null;\n      this.hot.rowIndexMapper.unregisterMap(this.pluginName);\n    }\n    this.unregisterShortcuts();\n    super.disablePlugin();\n  }\n\n  /**\n   * Register shortcuts responsible for clearing the filters.\n   *\n   * @private\n   */\n  registerShortcuts() {\n    this.hot.getShortcutManager().getContext('grid').addShortcut({\n      keys: [['Alt', 'A']],\n      stopPropagation: true,\n      callback: () => {\n        const selection = this.hot.getSelected();\n        this.clearConditions();\n        this.filter();\n        if (selection) {\n          this.hot.selectCells(selection);\n        }\n      },\n      group: SHORTCUTS_GROUP\n    });\n  }\n\n  /**\n   * Unregister shortcuts responsible for clearing the filters.\n   *\n   * @private\n   */\n  unregisterShortcuts() {\n    this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);\n  }\n\n  /* eslint-disable jsdoc/require-description-complete-sentence */\n  /**\n   * @memberof Filters#\n   * @function addCondition\n   * @description\n   * Adds condition to the conditions collection at specified column index.\n   *\n   * Possible predefined conditions:\n   *  * `begins_with` - Begins with\n   *  * `between` - Between\n   *  * `by_value` - By value\n   *  * `contains` - Contains\n   *  * `date_after` - After a date\n   *  * `date_before` - Before a date\n   *  * `date_today` - Today\n   *  * `date_tomorrow` - Tomorrow\n   *  * `date_yesterday` - Yesterday\n   *  * `empty` - Empty\n   *  * `ends_with` - Ends with\n   *  * `eq` - Equal\n   *  * `gt` - Greater than\n   *  * `gte` - Greater than or equal\n   *  * `lt` - Less than\n   *  * `lte` - Less than or equal\n   *  * `none` - None (no filter)\n   *  * `not_between` - Not between\n   *  * `not_contains` - Not contains\n   *  * `not_empty` - Not empty\n   *  * `neq` - Not equal.\n   *\n   * Possible operations on collection of conditions:\n   *  * `conjunction` - [**Conjunction**](https://en.wikipedia.org/wiki/Logical_conjunction) on conditions collection (by default), i.e. for such operation: <br/> c1 AND c2 AND c3 AND c4 ... AND cn === TRUE, where c1 ... cn are conditions.\n   *  * `disjunction` - [**Disjunction**](https://en.wikipedia.org/wiki/Logical_disjunction) on conditions collection, i.e. for such operation: <br/> c1 OR c2 OR c3 OR c4 ... OR cn === TRUE, where c1, c2, c3, c4 ... cn are conditions.\n   *  * `disjunctionWithExtraCondition` - **Disjunction** on first `n - 1`\\* conditions from collection with an extra requirement computed from the last condition, i.e. for such operation: <br/> c1 OR c2 OR c3 OR c4 ... OR cn-1 AND cn === TRUE, where c1, c2, c3, c4 ... cn are conditions.\n   *\n   * \\* when `n` is collection size; it's used i.e. for one operation introduced from UI (when choosing from filter's drop-down menu two conditions with OR operator between them, mixed with choosing values from the multiple choice select)\n   *\n   * **Note**: Mind that you cannot mix different types of operations (for instance, if you use `conjunction`, use it consequently for a particular column).\n   *\n   * @example\n   * ::: only-for javascript\n   * ```js\n   * const container = document.getElementById('example');\n   * const hot = new Handsontable(container, {\n   *   data: getData(),\n   *   filters: true\n   * });\n   *\n   * // access to filters plugin instance\n   * const filtersPlugin = hot.getPlugin('filters');\n   *\n   * // add filter \"Greater than\" 95 to column at index 1\n   * filtersPlugin.addCondition(1, 'gt', [95]);\n   * filtersPlugin.filter();\n   *\n   * // add filter \"By value\" to column at index 1\n   * // in this case all value's that don't match will be filtered.\n   * filtersPlugin.addCondition(1, 'by_value', [['ing', 'ed', 'as', 'on']]);\n   * filtersPlugin.filter();\n   *\n   * // add filter \"Begins with\" with value \"de\" AND \"Not contains\" with value \"ing\"\n   * filtersPlugin.addCondition(1, 'begins_with', ['de'], 'conjunction');\n   * filtersPlugin.addCondition(1, 'not_contains', ['ing'], 'conjunction');\n   * filtersPlugin.filter();\n   *\n   * // add filter \"Begins with\" with value \"de\" OR \"Not contains\" with value \"ing\"\n   * filtersPlugin.addCondition(1, 'begins_with', ['de'], 'disjunction');\n   * filtersPlugin.addCondition(1, 'not_contains', ['ing'], 'disjunction');\n   * filtersPlugin.filter();\n   * ```\n   * :::\n   *\n   * ::: only-for react\n   * ```jsx\n   * const hotRef = useRef(null);\n   *\n   * ...\n   *\n   * <HotTable\n   *   ref={hotRef}\n   *   data={getData()}\n   *   filters={true}\n   * />\n   *\n   * // access to filters plugin instance\n   * const hot = hotRef.current.hotInstance;\n   * const filtersPlugin = hot.getPlugin('filters');\n   *\n   * // add filter \"Greater than\" 95 to column at index 1\n   * filtersPlugin.addCondition(1, 'gt', [95]);\n   * filtersPlugin.filter();\n   *\n   * // add filter \"By value\" to column at index 1\n   * // in this case all value's that don't match will be filtered.\n   * filtersPlugin.addCondition(1, 'by_value', [['ing', 'ed', 'as', 'on']]);\n   * filtersPlugin.filter();\n   *\n   * // add filter \"Begins with\" with value \"de\" AND \"Not contains\" with value \"ing\"\n   * filtersPlugin.addCondition(1, 'begins_with', ['de'], 'conjunction');\n   * filtersPlugin.addCondition(1, 'not_contains', ['ing'], 'conjunction');\n   * filtersPlugin.filter();\n   *\n   * // add filter \"Begins with\" with value \"de\" OR \"Not contains\" with value \"ing\"\n   * filtersPlugin.addCondition(1, 'begins_with', ['de'], 'disjunction');\n   * filtersPlugin.addCondition(1, 'not_contains', ['ing'], 'disjunction');\n   * filtersPlugin.filter();\n   * ```\n   * :::\n   *\n   * @param {number} column Visual column index.\n   * @param {string} name Condition short name.\n   * @param {Array} args Condition arguments.\n   * @param {string} [operationId=conjunction] `id` of operation which is performed on the column.\n   */\n  /* eslint-enable jsdoc/require-description-complete-sentence */\n  addCondition(column, name, args) {\n    let operationId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants_mjs__WEBPACK_IMPORTED_MODULE_21__[\"OPERATION_AND\"];\n    const physicalColumn = this.hot.toPhysicalColumn(column);\n    this.conditionCollection.addCondition(physicalColumn, {\n      command: {\n        key: name\n      },\n      args\n    }, operationId);\n  }\n\n  /**\n   * Removes conditions at specified column index.\n   *\n   * @param {number} column Visual column index.\n   */\n  removeConditions(column) {\n    const physicalColumn = this.hot.toPhysicalColumn(column);\n    this.conditionCollection.removeConditions(physicalColumn);\n  }\n\n  /**\n   * Clears all conditions previously added to the collection for the specified column index or, if the column index\n   * was not passed, clear the conditions for all columns.\n   *\n   * @param {number} [column] Visual column index.\n   */\n  clearConditions(column) {\n    if (column === undefined) {\n      this.conditionCollection.clean();\n    } else {\n      const physicalColumn = this.hot.toPhysicalColumn(column);\n      this.conditionCollection.removeConditions(physicalColumn);\n    }\n  }\n\n  /**\n   * Filters data based on added filter conditions.\n   *\n   * @fires Hooks#beforeFilter\n   * @fires Hooks#afterFilter\n   */\n  filter() {\n    const {\n      navigableHeaders\n    } = this.hot.getSettings();\n    const dataFilter = this._createDataFilter();\n    const needToFilter = !this.conditionCollection.isEmpty();\n    let visibleVisualRows = [];\n    const conditions = this.conditionCollection.exportAllConditions();\n    const allowFiltering = this.hot.runHooks('beforeFilter', conditions);\n    if (allowFiltering !== false) {\n      if (needToFilter) {\n        const trimmedRows = [];\n        this.hot.batchExecution(() => {\n          this.filtersRowsMap.clear();\n          visibleVisualRows = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayMap\"])(dataFilter.filter(), rowData => rowData.meta.visualRow);\n          const visibleVisualRowsAssertion = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_19__[\"createArrayAssertion\"])(visibleVisualRows);\n          Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_7__[\"rangeEach\"])(this.hot.countSourceRows() - 1, row => {\n            if (!visibleVisualRowsAssertion(row)) {\n              trimmedRows.push(row);\n            }\n          });\n          Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(trimmedRows, physicalRow => {\n            this.filtersRowsMap.setValueAtIndex(physicalRow, true);\n          });\n        }, true);\n        if (!navigableHeaders && !visibleVisualRows.length) {\n          this.hot.deselectCell();\n        }\n      } else {\n        this.filtersRowsMap.clear();\n      }\n    }\n    this.hot.runHooks('afterFilter', conditions);\n    this.hot.view.adjustElementsSize();\n    this.hot.render();\n    if (this.hot.selection.isSelected()) {\n      this.hot.selectCell(navigableHeaders ? -1 : 0, this.hot.getSelectedRangeLast().highlight.col);\n    }\n  }\n\n  /**\n   * Gets last selected column index.\n   *\n   * @returns {{visualIndex: number, physicalIndex: number} | null} Returns `null` when a column is\n   * not selected. Otherwise, returns an object with `visualIndex` and `physicalIndex` properties containing\n   * the index of the column.\n   */\n  getSelectedColumn() {\n    var _this$hot$getSelected;\n    const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;\n    if (!highlight) {\n      return null;\n    }\n    return {\n      visualIndex: highlight.col,\n      physicalIndex: this.hot.toPhysicalColumn(highlight.col)\n    };\n  }\n\n  /**\n   * Returns handsontable source data with cell meta based on current selection.\n   *\n   * @param {number} [column] The physical column index. By default column index accept the value of the selected column.\n   * @returns {Array} Returns array of objects where keys as row index.\n   */\n  getDataMapAtColumn(column) {\n    const visualColumn = this.hot.toVisualColumn(column);\n    const data = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(this.hot.getSourceDataAtCol(visualColumn), (value, rowIndex) => {\n      var _this$hot$getDataAtCe;\n      const {\n        row,\n        col,\n        visualCol,\n        visualRow,\n        type,\n        instance,\n        dateFormat,\n        locale\n      } = this.hot.getCellMeta(rowIndex, visualColumn);\n      const dataValue = (_this$hot$getDataAtCe = this.hot.getDataAtCell(this.hot.toVisualRow(rowIndex), visualColumn)) !== null && _this$hot$getDataAtCe !== void 0 ? _this$hot$getDataAtCe : value;\n      data.push({\n        meta: {\n          row,\n          col,\n          visualCol,\n          visualRow,\n          type,\n          instance,\n          dateFormat,\n          locale\n        },\n        value: Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_19__[\"toEmptyString\"])(dataValue)\n      });\n    });\n    return data;\n  }\n  /**\n   * Update the condition of ValueComponent, based on the handled changes.\n   *\n   * @private\n   * @param {number} columnIndex Column index of handled ValueComponent condition.\n   */\n  updateValueComponentCondition(columnIndex) {\n    const dataAtCol = this.hot.getDataAtCol(columnIndex);\n    const selectedValues = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_19__[\"unifyColumnValues\"])(dataAtCol);\n    this.conditionUpdateObserver.updateStatesAtColumn(columnIndex, selectedValues);\n  }\n\n  /**\n   * Restores components to its saved state.\n   *\n   * @private\n   * @param {Array} components List of components.\n   */\n  restoreComponents(components) {\n    var _this$getSelectedColu;\n    const physicalIndex = (_this$getSelectedColu = this.getSelectedColumn()) === null || _this$getSelectedColu === void 0 ? void 0 : _this$getSelectedColu.physicalIndex;\n    components.forEach(component => {\n      if (component.isHidden()) {\n        return;\n      }\n      component.restoreState(physicalIndex);\n    });\n    this.updateDependentComponentsVisibility();\n  }\n\n  /**\n   * After dropdown menu show listener.\n   */\n\n  /**\n   * Get an operation, based on the number and types of arguments (where arguments are states of components).\n   *\n   * @param {string} suggestedOperation Operation which was chosen by user from UI.\n   * @param {object} byConditionState1 State of first condition component.\n   * @param {object} byConditionState2 State of second condition component.\n   * @param {object} byValueState State of value component.\n   * @private\n   * @returns {string}\n   */\n  getOperationBasedOnArguments(suggestedOperation, byConditionState1, byConditionState2, byValueState) {\n    let operation = suggestedOperation;\n    if (operation === _constants_mjs__WEBPACK_IMPORTED_MODULE_21__[\"OPERATION_OR\"] && byConditionState1.command.key !== _constants_mjs__WEBPACK_IMPORTED_MODULE_21__[\"CONDITION_NONE\"] && byConditionState2.command.key !== _constants_mjs__WEBPACK_IMPORTED_MODULE_21__[\"CONDITION_NONE\"] && byValueState.command.key !== _constants_mjs__WEBPACK_IMPORTED_MODULE_21__[\"CONDITION_NONE\"]) {\n      operation = _constants_mjs__WEBPACK_IMPORTED_MODULE_21__[\"OPERATION_OR_THEN_VARIABLE\"];\n    } else if (byValueState.command.key !== _constants_mjs__WEBPACK_IMPORTED_MODULE_21__[\"CONDITION_NONE\"]) {\n      if (byConditionState1.command.key === _constants_mjs__WEBPACK_IMPORTED_MODULE_21__[\"CONDITION_NONE\"] || byConditionState2.command.key === _constants_mjs__WEBPACK_IMPORTED_MODULE_21__[\"CONDITION_NONE\"]) {\n        operation = _constants_mjs__WEBPACK_IMPORTED_MODULE_21__[\"OPERATION_AND\"];\n      }\n    }\n    return operation;\n  }\n\n  /**\n   * On action bar submit listener.\n   *\n   * @private\n   * @param {string} submitType The submit type.\n   */\n\n  /**\n   * Listen to the keyboard input on document body and forward events to instance of Handsontable\n   * created by DropdownMenu plugin.\n   *\n   * @private\n   */\n  setListeningDropdownMenu() {\n    if (this.dropdownMenuPlugin) {\n      this.dropdownMenuPlugin.setListening();\n    }\n  }\n\n  /**\n   * Updates visibility of some of the components, based on the state of the parent component.\n   *\n   * @private\n   */\n  updateDependentComponentsVisibility() {\n    const component = this.components.get('filter_by_condition');\n    const {\n      command\n    } = component.getState();\n    const componentsToShow = [this.components.get('filter_by_condition2'), this.components.get('filter_operators')];\n    if (command.showOperators) {\n      this.showComponents(...componentsToShow);\n    } else {\n      this.hideComponents(...componentsToShow);\n    }\n  }\n\n  /**\n   * On after get column header listener.\n   *\n   * @param {number} col Visual column index.\n   * @param {HTMLTableCellElement} TH Header's TH element.\n   */\n\n  /**\n   * Creates DataFilter instance based on condition collection.\n   *\n   * @private\n   * @param {ConditionCollection} conditionCollection Condition collection object.\n   * @returns {DataFilter}\n   */\n  _createDataFilter() {\n    let conditionCollection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.conditionCollection;\n    return new _dataFilter_mjs__WEBPACK_IMPORTED_MODULE_17__[\"default\"](conditionCollection, physicalColumn => this.getDataMapAtColumn(physicalColumn));\n  }\n\n  /**\n   * It updates the components state. The state is triggered by ConditionUpdateObserver, which\n   * reacts to any condition added to the condition collection. It may be added through the UI\n   * components or by API call.\n   *\n   * @param {object} conditionsState An object with the state generated by UI components.\n   */\n\n  /**\n   * Returns indexes of passed components inside list of `dropdownMenu` items.\n   *\n   * @private\n   * @param {...BaseComponent} components List of components.\n   * @returns {Array}\n   */\n  getIndexesOfComponents() {\n    const indexes = [];\n    if (!this.dropdownMenuPlugin) {\n      return indexes;\n    }\n    const menu = this.dropdownMenuPlugin.menu;\n    for (var _len = arguments.length, components = new Array(_len), _key = 0; _key < _len; _key++) {\n      components[_key] = arguments[_key];\n    }\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(components, component => {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(menu.menuItems, (item, index) => {\n        if (item.key === component.getMenuItemDescriptor().key) {\n          indexes.push(index);\n        }\n      });\n    });\n    return indexes;\n  }\n\n  /**\n   * Changes visibility of component.\n   *\n   * @private\n   * @param {boolean} visible Determine if components should be visible.\n   * @param {...BaseComponent} components List of components.\n   */\n  changeComponentsVisibility() {\n    let visible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n    if (!this.dropdownMenuPlugin) {\n      return;\n    }\n    const menu = this.dropdownMenuPlugin.menu;\n    const hotMenu = menu.hotMenu;\n    const hiddenRows = hotMenu.getPlugin('hiddenRows');\n    for (var _len2 = arguments.length, components = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n      components[_key2 - 1] = arguments[_key2];\n    }\n    const indexes = this.getIndexesOfComponents(...components);\n    if (visible) {\n      hiddenRows.showRows(indexes);\n    } else {\n      hiddenRows.hideRows(indexes);\n    }\n    hotMenu.render();\n  }\n\n  /**\n   * Hides components of filters `dropdownMenu`.\n   *\n   * @private\n   * @param {...BaseComponent} components List of components.\n   */\n  hideComponents() {\n    for (var _len3 = arguments.length, components = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      components[_key3] = arguments[_key3];\n    }\n    this.changeComponentsVisibility(false, ...components);\n  }\n\n  /**\n   * Shows components of filters `dropdownMenu`.\n   *\n   * @private\n   * @param {...BaseComponent} components List of components.\n   */\n  showComponents() {\n    for (var _len4 = arguments.length, components = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n      components[_key4] = arguments[_key4];\n    }\n    this.changeComponentsVisibility(true, ...components);\n  }\n\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    if (this.enabled) {\n      this.components.forEach((component, key) => {\n        if (component !== null) {\n          component.destroy();\n          this.components.set(key, null);\n        }\n      });\n      this.conditionCollection.destroy();\n      this.conditionUpdateObserver.destroy();\n      this.hot.rowIndexMapper.unregisterMap(this.pluginName);\n    }\n    super.destroy();\n  }\n}\nfunction _onAfterChange(changes) {\n  if (changes) {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(changes, change => {\n      const [, prop] = change;\n      const columnIndex = this.hot.propToCol(prop);\n      if (this.conditionCollection.hasConditions(columnIndex)) {\n        this.updateValueComponentCondition(columnIndex);\n      }\n    });\n  }\n}\nfunction _onAfterDropdownMenuShow() {\n  this.restoreComponents(Array.from(this.components.values()));\n}\n/**\n * After dropdown menu hide listener.\n */\nfunction _onAfterDropdownMenuHide() {\n  this.components.get('filter_by_condition').getSelectElement().closeOptions();\n  this.components.get('filter_by_condition2').getSelectElement().closeOptions();\n}\n/**\n * After dropdown menu default options listener.\n *\n * @param {object} defaultOptions ContextMenu default item options.\n */\nfunction _onAfterDropdownMenuDefaultOptions(defaultOptions) {\n  defaultOptions.items.push({\n    name: _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"SEPARATOR\"]\n  });\n  this.components.forEach(component => {\n    defaultOptions.items.push(component.getMenuItemDescriptor());\n  });\n}\nfunction _onActionBarSubmit(submitType) {\n  var _this$dropdownMenuPlu3;\n  if (submitType === 'accept') {\n    const selectedColumn = this.getSelectedColumn();\n    if (selectedColumn === null) {\n      var _this$dropdownMenuPlu2;\n      (_this$dropdownMenuPlu2 = this.dropdownMenuPlugin) === null || _this$dropdownMenuPlu2 === void 0 || _this$dropdownMenuPlu2.close();\n      return;\n    }\n    const {\n      physicalIndex\n    } = selectedColumn;\n    const byConditionState1 = this.components.get('filter_by_condition').getState();\n    const byConditionState2 = this.components.get('filter_by_condition2').getState();\n    const byValueState = this.components.get('filter_by_value').getState();\n    const operation = this.getOperationBasedOnArguments(this.components.get('filter_operators').getActiveOperationId(), byConditionState1, byConditionState2, byValueState);\n    this.conditionUpdateObserver.groupChanges();\n    let columnStackPosition = this.conditionCollection.getColumnStackPosition(physicalIndex);\n    if (columnStackPosition === -1) {\n      columnStackPosition = undefined;\n    }\n    this.conditionCollection.removeConditions(physicalIndex);\n    if (byConditionState1.command.key !== _constants_mjs__WEBPACK_IMPORTED_MODULE_21__[\"CONDITION_NONE\"]) {\n      this.conditionCollection.addCondition(physicalIndex, byConditionState1, operation, columnStackPosition);\n      if (byConditionState2.command.key !== _constants_mjs__WEBPACK_IMPORTED_MODULE_21__[\"CONDITION_NONE\"]) {\n        this.conditionCollection.addCondition(physicalIndex, byConditionState2, operation, columnStackPosition);\n      }\n    }\n    if (byValueState.command.key !== _constants_mjs__WEBPACK_IMPORTED_MODULE_21__[\"CONDITION_NONE\"]) {\n      this.conditionCollection.addCondition(physicalIndex, byValueState, operation, columnStackPosition);\n    }\n    this.conditionUpdateObserver.flush();\n    this.components.forEach(component => component.saveState(physicalIndex));\n    this.filtersRowsMap.clear();\n    this.filter();\n  }\n  (_this$dropdownMenuPlu3 = this.dropdownMenuPlugin) === null || _this$dropdownMenuPlu3 === void 0 || _this$dropdownMenuPlu3.close();\n}\n/**\n * On component change listener.\n *\n * @param {BaseComponent} component Component inheriting BaseComponent.\n * @param {object} command Menu item object (command).\n */\nfunction _onComponentChange(component, command) {\n  this.updateDependentComponentsVisibility();\n  if (component.constructor === _component_condition_mjs__WEBPACK_IMPORTED_MODULE_12__[\"ConditionComponent\"] && !command.inputsCount) {\n    this.setListeningDropdownMenu();\n  }\n}\n/**\n * On component SelectUI closed listener.\n */\nfunction _onSelectUIClosed() {\n  this.setListeningDropdownMenu();\n}\nfunction _onAfterGetColHeader(col, TH) {\n  const physicalColumn = this.hot.toPhysicalColumn(col);\n  if (this.enabled && this.conditionCollection.hasConditions(physicalColumn)) {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_8__[\"addClass\"])(TH, 'htFiltersActive');\n  } else {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_8__[\"removeClass\"])(TH, 'htFiltersActive');\n  }\n}\nfunction _updateComponents(conditionsState) {\n  var _this$dropdownMenuPlu4;\n  if (!((_this$dropdownMenuPlu4 = this.dropdownMenuPlugin) !== null && _this$dropdownMenuPlu4 !== void 0 && _this$dropdownMenuPlu4.enabled)) {\n    return;\n  }\n  const {\n    editedConditionStack: {\n      conditions,\n      column\n    }\n  } = conditionsState;\n  const conditionsByValue = conditions.filter(condition => condition.name === _constants_mjs__WEBPACK_IMPORTED_MODULE_21__[\"CONDITION_BY_VALUE\"]);\n  const conditionsWithoutByValue = conditions.filter(condition => condition.name !== _constants_mjs__WEBPACK_IMPORTED_MODULE_21__[\"CONDITION_BY_VALUE\"]);\n  if (conditionsByValue.length >= 2 || conditionsWithoutByValue.length >= 3) {\n    Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_6__[\"warn\"])(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_5__[\"toSingleLine\"]`The filter conditions have been applied properly, but couldn’t be displayed visually.\\x20\n        The overall amount of conditions exceed the capability of the dropdown menu.\\x20\n        For more details see the documentation.`);\n  } else {\n    const operationType = this.conditionCollection.getOperation(column);\n    this.components.get('filter_by_condition').updateState(conditionsWithoutByValue[0], column);\n    this.components.get('filter_by_condition2').updateState(conditionsWithoutByValue[1], column);\n    this.components.get('filter_operators').updateState(operationType, column);\n    this.components.get('filter_by_value').updateState(conditionsState);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/filters.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/index.mjs":
/*!*************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/index.mjs ***!
  \*************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, Filters */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _filters_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./filters.mjs */ \"./node_modules/handsontable/plugins/filters/filters.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _filters_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _filters_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Filters\", function() { return _filters_mjs__WEBPACK_IMPORTED_MODULE_0__[\"Filters\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/logicalOperationRegisterer.mjs":
/*!**********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/logicalOperationRegisterer.mjs ***!
  \**********************************************************************************/
/*! exports provided: operations, getOperationFunc, getOperationName, registerOperation */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"operations\", function() { return operations; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOperationFunc\", function() { return getOperationFunc; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOperationName\", function() { return getOperationName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerOperation\", function() { return registerOperation; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nconst operations = {};\n\n/**\n * Get operation closure with pre-bound arguments.\n *\n * @param {string} id Operator `id`.\n * @returns {Function}\n */\nfunction getOperationFunc(id) {\n  if (!operations[id]) {\n    throw Error(`Operation with id \"${id}\" does not exist.`);\n  }\n  const func = operations[id].func;\n  return function (conditions, value) {\n    return func(conditions, value);\n  };\n}\n\n/**\n * Return name of operation which is displayed inside UI component, basing on it's `id`.\n *\n * @param {string} id `Id` of operation.\n * @returns {string}\n */\nfunction getOperationName(id) {\n  return operations[id].name;\n}\n\n/**\n * Operator registerer.\n *\n * @param {string} id Operation `id`.\n * @param {string} name Operation name which is displayed inside UI component.\n * @param {Function} func Operation function.\n */\nfunction registerOperation(id, name, func) {\n  operations[id] = {\n    name,\n    func\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/logicalOperationRegisterer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/logicalOperations/conjunction.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/logicalOperations/conjunction.mjs ***!
  \*************************************************************************************/
/*! exports provided: OPERATION_ID, SHORT_NAME_FOR_COMPONENT, operationResult */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OPERATION_ID\", function() { return OPERATION_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHORT_NAME_FOR_COMPONENT\", function() { return SHORT_NAME_FOR_COMPONENT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"operationResult\", function() { return operationResult; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _logicalOperationRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../logicalOperationRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/logicalOperationRegisterer.mjs\");\n\n\nconst OPERATION_ID = 'conjunction';\nconst SHORT_NAME_FOR_COMPONENT = _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_CONJUNCTION\"];\n// p AND q AND w AND x AND... === TRUE?\n\n/**\n * @param {Array} conditions An array with values to check.\n * @param {*} value The comparable value.\n * @returns {boolean}\n */\nfunction operationResult(conditions, value) {\n  return conditions.every(condition => condition.func(value));\n}\nObject(_logicalOperationRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerOperation\"])(OPERATION_ID, SHORT_NAME_FOR_COMPONENT, operationResult);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/logicalOperations/conjunction.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/logicalOperations/disjunction.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/logicalOperations/disjunction.mjs ***!
  \*************************************************************************************/
/*! exports provided: OPERATION_ID, SHORT_NAME_FOR_COMPONENT, operationResult */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OPERATION_ID\", function() { return OPERATION_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHORT_NAME_FOR_COMPONENT\", function() { return SHORT_NAME_FOR_COMPONENT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"operationResult\", function() { return operationResult; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _logicalOperationRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../logicalOperationRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/logicalOperationRegisterer.mjs\");\n\n\nconst OPERATION_ID = 'disjunction';\nconst SHORT_NAME_FOR_COMPONENT = _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"FILTERS_LABELS_DISJUNCTION\"];\n// (p OR q OR w OR x OR...) === TRUE?\n\n/**\n * @param {Array} conditions An array with values to check.\n * @param {*} value The comparable value.\n * @returns {boolean}\n */\nfunction operationResult(conditions, value) {\n  return conditions.some(condition => condition.func(value));\n}\nObject(_logicalOperationRegisterer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerOperation\"])(OPERATION_ID, SHORT_NAME_FOR_COMPONENT, operationResult);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/logicalOperations/disjunction.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs":
/*!*******************************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs ***!
  \*******************************************************************************************************/
/*! exports provided: OPERATION_ID, SHORT_NAME_FOR_COMPONENT, operationResult */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OPERATION_ID\", function() { return OPERATION_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHORT_NAME_FOR_COMPONENT\", function() { return SHORT_NAME_FOR_COMPONENT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"operationResult\", function() { return operationResult; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _logicalOperationRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../logicalOperationRegisterer.mjs */ \"./node_modules/handsontable/plugins/filters/logicalOperationRegisterer.mjs\");\n\n\n\nconst OPERATION_ID = 'disjunctionWithExtraCondition';\nconst SHORT_NAME_FOR_COMPONENT = _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"FILTERS_LABELS_DISJUNCTION\"];\n// ((p OR q OR w OR x OR...) AND z) === TRUE?\n\n/**\n * @param {Array} conditions An array with values to check.\n * @param {*} value The comparable value.\n * @returns {boolean}\n */\nfunction operationResult(conditions, value) {\n  if (conditions.length < 3) {\n    throw Error('Operation doesn\\'t work on less then three conditions.');\n  }\n  return conditions.slice(0, conditions.length - 1).some(condition => condition.func(value)) && conditions[conditions.length - 1].func(value);\n}\nObject(_logicalOperationRegisterer_mjs__WEBPACK_IMPORTED_MODULE_2__[\"registerOperation\"])(OPERATION_ID, SHORT_NAME_FOR_COMPONENT, operationResult);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/menu/focusController.mjs":
/*!****************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/menu/focusController.mjs ***!
  \****************************************************************************/
/*! exports provided: createMenuFocusController */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createMenuFocusController\", function() { return createMenuFocusController; });\n/* harmony import */ var _focusNavigator_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./focusNavigator.mjs */ \"./node_modules/handsontable/plugins/filters/menu/focusNavigator.mjs\");\n/* harmony import */ var _ui_select_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ui/select.mjs */ \"./node_modules/handsontable/plugins/filters/ui/select.mjs\");\n/* harmony import */ var _ui_base_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/_base.mjs */ \"./node_modules/handsontable/plugins/filters/ui/_base.mjs\");\n/* harmony import */ var _ui_link_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui/link.mjs */ \"./node_modules/handsontable/plugins/filters/ui/link.mjs\");\n\n\n\n\nconst SHORTCUTS_MENU_CONTEXT = 'filters';\n\n/**\n * @typedef MenuFocusNavigator\n * @property {function(number): void} setCurrentPage Sets the current index of the selected focus.\n * @property {function(): number} getCurrentPage Gets the index of currently focus element.\n * @property {function(): void} toFirstItem Move the focus index to the first element in the list.\n * @property {function(): void} toLastItem Move the focus index to the last element in the list.\n * @property {function(): void} toNextItem Move the focus index to the next element in the list.\n * @property {function(): void} toPreviousItem Move the focus index to the previous element in the list.\n * @property {function(): void} clear Clear the internal state of the navigator.\n * @property {function(): void} listen Activate the navigator by listening the keyboard shortcuts.\n */\n/**\n * Creates navigator controller for filter subcomponents in the menu.\n *\n * @param {Menu} mainMenu The main Menu instance.\n * @param {BaseUI[]} menuItems The list of the component's elements to paginate to.\n * @returns {Paginator}\n */\nfunction createMenuFocusController(mainMenu, menuItems) {\n  /**\n   * @type {number} The last selected menu item (before clearing the the menu state after going\n   * into the focus mode triggered by the TAB or SHIFT+TAB keys).\n   */\n  let lastSelectedMenuItem = -1;\n  const focusNavigator = Object(_focusNavigator_mjs__WEBPACK_IMPORTED_MODULE_0__[\"createFocusNavigator\"])(menuItems);\n  const updateNavigatorPosition = element => () => {\n    if (mainMenu.isOpened()) {\n      mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);\n    }\n    focusNavigator.setCurrentPage(menuItems.indexOf(element));\n  };\n\n  // update navigator position (internal state) to element that was recently clicked or focused\n  menuItems.forEach(element => {\n    if (element instanceof _ui_base_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BaseUI\"]) {\n      element.addLocalHook('click', updateNavigatorPosition(element));\n      element.addLocalHook('focus', updateNavigatorPosition(element));\n      element.addLocalHook('afterClose', updateNavigatorPosition(element));\n    }\n  });\n  mainMenu.addLocalHook('afterSelectionChange', selectedItem => {\n    if (!selectedItem.key.startsWith('filter_')) {\n      focusNavigator.clear();\n    }\n  });\n\n  /**\n   * Extends the menu and submenus with new keyboard shortcuts.\n   *\n   * @param {*} menu The menu (as main menu or submenu) instance.\n   */\n  function addKeyboardShortcuts(menu) {\n    const mainMenuShortcutsCtrl = mainMenu.getKeyboardShortcutsCtrl();\n    const currentMenuShortcutsCtrl = menu.getKeyboardShortcutsCtrl();\n    focusNavigator.clear();\n    currentMenuShortcutsCtrl.addCustomShortcuts([{\n      keys: [['Tab'], ['Shift', 'Tab']],\n      forwardToContext: mainMenuShortcutsCtrl.getContext(SHORTCUTS_MENU_CONTEXT),\n      callback: () => {\n        if (menu.isSubMenu()) {\n          menu.close();\n        }\n        mainMenuShortcutsCtrl.listen(SHORTCUTS_MENU_CONTEXT);\n      }\n    }]);\n    if (menu.isSubMenu()) {\n      return;\n    }\n    mainMenuShortcutsCtrl.addCustomShortcuts([{\n      keys: [['Tab'], ['Shift', 'Tab']],\n      callback: event => {\n        const menuNavigator = mainMenu.getNavigator();\n        if (menuNavigator.getCurrentPage() > -1) {\n          lastSelectedMenuItem = menuNavigator.getCurrentPage();\n        }\n        menuNavigator.clear();\n        if (event.shiftKey) {\n          focusNavigator.toPreviousItem();\n        } else {\n          focusNavigator.toNextItem();\n        }\n      }\n    }, {\n      keys: [['Escape']],\n      callback: () => {\n        mainMenu.close();\n      }\n    }, {\n      keys: [['Enter'], ['Space']],\n      preventDefault: false,\n      callback: event => {\n        const element = menuItems[focusNavigator.getCurrentPage()];\n        if (element instanceof _ui_select_mjs__WEBPACK_IMPORTED_MODULE_1__[\"SelectUI\"]) {\n          element.openOptions();\n          event.preventDefault();\n        }\n        if (element instanceof _ui_link_mjs__WEBPACK_IMPORTED_MODULE_3__[\"LinkUI\"]) {\n          element.activate();\n          event.preventDefault();\n        }\n        if (!(element instanceof _ui_base_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BaseUI\"])) {\n          event.preventDefault();\n        }\n      }\n    }], SHORTCUTS_MENU_CONTEXT);\n  }\n  mainMenu.addLocalHook('afterSubmenuOpen', addKeyboardShortcuts);\n  mainMenu.addLocalHook('afterOpen', addKeyboardShortcuts);\n\n  /**\n   * Focuses the menu and switches its shortcut context to that one which controls\n   * the focus navigation.\n   */\n  function listen() {\n    mainMenu.focus();\n    mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);\n  }\n\n  /**\n   * Retrieves the last selected menu item (before clearing the state after going into the focus mode).\n   *\n   * @returns {number} The last selected menu item.\n   */\n  function getLastMenuPage() {\n    return lastSelectedMenuItem;\n  }\n  return {\n    ...focusNavigator,\n    listen,\n    getLastMenuPage\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/menu/focusController.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/menu/focusNavigator.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/menu/focusNavigator.mjs ***!
  \***************************************************************************/
/*! exports provided: createFocusNavigator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createFocusNavigator\", function() { return createFocusNavigator; });\n/* harmony import */ var _utils_paginator_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../utils/paginator.mjs */ \"./node_modules/handsontable/utils/paginator.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _ui_multipleSelect_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/multipleSelect.mjs */ \"./node_modules/handsontable/plugins/filters/ui/multipleSelect.mjs\");\n\n\n\n/**\n * Creates navigator for switching the focus of the filter's elements.\n *\n * @param {BaseUI[]} elements The elements to paginate to.\n * @returns {Paginator}\n */\nfunction createFocusNavigator(elements) {\n  const navigator = Object(_utils_paginator_mjs__WEBPACK_IMPORTED_MODULE_0__[\"createPaginator\"])({\n    initialPage: 0,\n    size: () => elements.length,\n    onItemSelect: (currentIndex, directItemChange) => {\n      const element = elements[currentIndex];\n      if (element instanceof _ui_multipleSelect_mjs__WEBPACK_IMPORTED_MODULE_2__[\"MultipleSelectUI\"]) {\n        return directItemChange;\n      }\n      if (element.element && !Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isVisible\"])(element.element)) {\n        return false;\n      }\n      element.focus();\n    }\n  });\n  return navigator;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/menu/focusNavigator.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/ui/_base.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/ui/_base.mjs ***!
  \****************************************************************/
/*! exports provided: BaseUI */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BaseUI\", function() { return BaseUI; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n/* harmony import */ var _eventManager_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../eventManager.mjs */ \"./node_modules/handsontable/eventManager.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\nconst STATE_BUILT = 'built';\nconst STATE_BUILDING = 'building';\nconst EVENTS_TO_REGISTER = ['click', 'input', 'keydown', 'keypress', 'keyup', 'focus', 'blur', 'change'];\n\n/**\n * @private\n */\nclass BaseUI {\n  static get DEFAULTS() {\n    return Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"clone\"])({\n      className: '',\n      value: '',\n      tagName: 'div',\n      children: [],\n      wrapIt: true\n    });\n  }\n\n  /**\n   * Instance of Handsontable.\n   *\n   * @type {Core}\n   */\n\n  constructor(hotInstance, options) {\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * Instance of EventManager.\n     *\n     * @type {EventManager}\n     */\n    _defineProperty(this, \"eventManager\", new _eventManager_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this));\n    /**\n     * List of element options.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"options\", void 0);\n    /**\n     * Build root DOM element.\n     *\n     * @type {Element}\n     * @private\n     */\n    _defineProperty(this, \"_element\", void 0);\n    /**\n     * Flag which determines build state of element.\n     *\n     * @type {string}\n     */\n    _defineProperty(this, \"buildState\", void 0);\n    this.hot = hotInstance;\n    this.options = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"extend\"])(BaseUI.DEFAULTS, options);\n    this._element = this.hot.rootDocument.createElement(this.options.wrapIt ? 'div' : this.options.tagName);\n  }\n\n  /**\n   * Set the element value.\n   *\n   * @param {*} value Set the component value.\n   */\n  setValue(value) {\n    this.options.value = value;\n    this.update();\n  }\n\n  /**\n   * Get the element value.\n   *\n   * @returns {*}\n   */\n  getValue() {\n    return this.options.value;\n  }\n\n  /**\n   * Get element as a DOM object.\n   *\n   * @returns {Element}\n   */\n  get element() {\n    if (this.buildState === STATE_BUILDING) {\n      return this._element;\n    }\n    if (this.buildState === STATE_BUILT) {\n      this.update();\n      return this._element;\n    }\n    this.buildState = STATE_BUILDING;\n    this.build();\n    this.buildState = STATE_BUILT;\n    return this._element;\n  }\n\n  /**\n   * Check if element was built (built whole DOM structure).\n   *\n   * @returns {boolean}\n   */\n  isBuilt() {\n    return this.buildState === STATE_BUILT;\n  }\n\n  /**\n   * Translate value if it is possible. It's checked if value belongs to namespace of translated phrases.\n   *\n   * @param {*} value Value which will may be translated.\n   * @returns {*} Translated value if translation was possible, original value otherwise.\n   */\n  translateIfPossible(value) {\n    if (typeof value === 'string' && value.startsWith(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_6__[\"FILTERS_NAMESPACE\"])) {\n      return this.hot.getTranslatedPhrase(value);\n    }\n    return value;\n  }\n\n  /**\n   * Build DOM structure.\n   */\n  build() {\n    const registerEvent = (element, eventName) => {\n      this.eventManager.addEventListener(element, eventName, event => this.runLocalHooks(eventName, event, this));\n    };\n    if (!this.buildState) {\n      this.buildState = STATE_BUILDING;\n    }\n\n    // prevents \"hot.unlisten()\" call when clicked\n    // (https://github.com/handsontable/handsontable/blob/master/handsontable/src/tableView.js#L317-L321)\n    this._element.setAttribute('data-hot-input', true);\n    if (this.options.tabIndex !== undefined) {\n      this._element.setAttribute('tabindex', this.options.tabIndex);\n    }\n    if (this.options.role !== undefined) {\n      this._element.setAttribute('role', this.options.role);\n    }\n    if (this.options.className) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"addClass\"])(this._element, this.options.className);\n    }\n    if (this.options.children.length) {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(this.options.children, element => this._element.appendChild(element.element));\n    } else if (this.options.wrapIt) {\n      const element = this.hot.rootDocument.createElement(this.options.tagName);\n\n      // prevents \"hot.unlisten()\" call when clicked\n      // (https://github.com/handsontable/handsontable/blob/master/handsontable/src/tableView.js#L317-L321)\n      element.setAttribute('data-hot-input', true);\n      Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"objectEach\"])(this.options, (value, key) => {\n        if (element[key] !== undefined && key !== 'className' && key !== 'tagName' && key !== 'children') {\n          element[key] = this.translateIfPossible(value);\n        }\n      });\n      this._element.appendChild(element);\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(EVENTS_TO_REGISTER, eventName => registerEvent(element, eventName));\n    } else {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_5__[\"arrayEach\"])(EVENTS_TO_REGISTER, eventName => registerEvent(this._element, eventName));\n    }\n  }\n\n  /**\n   * Update DOM structure.\n   */\n  update() {}\n\n  /**\n   * Reset to initial state.\n   */\n  reset() {\n    this.options.value = '';\n    this.update();\n  }\n\n  /**\n   * Show element.\n   */\n  show() {\n    this.element.style.display = '';\n  }\n\n  /**\n   * Hide element.\n   */\n  hide() {\n    this.element.style.display = 'none';\n  }\n\n  /**\n   * Focus element.\n   */\n  focus() {}\n  destroy() {\n    this.eventManager.destroy();\n    this.eventManager = null;\n    this.hot = null;\n    if (this._element.parentNode) {\n      this._element.parentNode.removeChild(this._element);\n    }\n    this._element = null;\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"mixin\"])(BaseUI, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/ui/_base.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/ui/input.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/ui/input.mjs ***!
  \****************************************************************/
/*! exports provided: InputUI */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InputUI\", function() { return InputUI; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/filters/ui/_base.mjs\");\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n/**\n * @private\n * @class InputUI\n */\nvar _input = /*#__PURE__*/new WeakMap();\nvar _InputUI_brand = /*#__PURE__*/new WeakSet();\nclass InputUI extends _base_mjs__WEBPACK_IMPORTED_MODULE_3__[\"BaseUI\"] {\n  static get DEFAULTS() {\n    return Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"clone\"])({\n      placeholder: '',\n      type: 'text',\n      tagName: 'input',\n      tabIndex: -1\n    });\n  }\n\n  /**\n   * The reference to the input element.\n   *\n   * @type {HTMLInputElement}\n   */\n\n  constructor(hotInstance, options) {\n    super(hotInstance, Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"extend\"])(InputUI.DEFAULTS, options));\n    /**\n     * OnKeyup listener.\n     *\n     * @param {Event} event The mouse event object.\n     */\n    _classPrivateMethodInitSpec(this, _InputUI_brand);\n    _classPrivateFieldInitSpec(this, _input, void 0);\n    this.registerHooks();\n  }\n\n  /**\n   * Register all necessary hooks.\n   */\n  registerHooks() {\n    this.addLocalHook('keyup', event => _assertClassBrand(_InputUI_brand, this, _onKeyup).call(this, event));\n  }\n\n  /**\n   * Build DOM structure.\n   */\n  build() {\n    super.build();\n    const icon = this.hot.rootDocument.createElement('div');\n    _classPrivateFieldSet(_input, this, this._element.firstChild);\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(this._element, 'htUIInput');\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(icon, 'htUIInputIcon');\n    this._element.appendChild(icon);\n    this.update();\n  }\n\n  /**\n   * Update element.\n   */\n  update() {\n    if (!this.isBuilt()) {\n      return;\n    }\n    _classPrivateFieldGet(_input, this).type = this.options.type;\n    _classPrivateFieldGet(_input, this).placeholder = this.translateIfPossible(this.options.placeholder);\n    _classPrivateFieldGet(_input, this).value = this.translateIfPossible(this.options.value);\n  }\n\n  /**\n   * Focus element.\n   */\n  focus() {\n    if (this.isBuilt()) {\n      _classPrivateFieldGet(_input, this).focus();\n    }\n  }\n}\nfunction _onKeyup(event) {\n  this.options.value = event.target.value;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/ui/input.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/ui/link.mjs":
/*!***************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/ui/link.mjs ***!
  \***************************************************************/
/*! exports provided: LinkUI */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LinkUI\", function() { return LinkUI; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/filters/ui/_base.mjs\");\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n/**\n * @private\n * @class LinkUI\n */\nvar _link = /*#__PURE__*/new WeakMap();\nclass LinkUI extends _base_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BaseUI\"] {\n  static get DEFAULTS() {\n    return Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"clone\"])({\n      href: '#',\n      tagName: 'a',\n      tabIndex: -1,\n      role: 'button'\n    });\n  }\n\n  /**\n   * The reference to the link element.\n   *\n   * @type {HTMLLinkElement}\n   */\n\n  constructor(hotInstance, options) {\n    super(hotInstance, Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"extend\"])(LinkUI.DEFAULTS, options));\n    _classPrivateFieldInitSpec(this, _link, void 0);\n  }\n\n  /**\n   * Build DOM structure.\n   */\n  build() {\n    super.build();\n    _classPrivateFieldSet(_link, this, this._element.firstChild);\n  }\n\n  /**\n   * Update element.\n   */\n  update() {\n    if (!this.isBuilt()) {\n      return;\n    }\n    _classPrivateFieldGet(_link, this).textContent = this.translateIfPossible(this.options.textContent);\n  }\n\n  /**\n   * Focus element.\n   */\n  focus() {\n    if (this.isBuilt()) {\n      _classPrivateFieldGet(_link, this).focus();\n    }\n  }\n\n  /**\n   * Activate the element.\n   */\n  activate() {\n    _classPrivateFieldGet(_link, this).click();\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/ui/link.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/ui/multipleSelect.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/ui/multipleSelect.mjs ***!
  \*************************************************************************/
/*! exports provided: MultipleSelectUI, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MultipleSelectUI\", function() { return MultipleSelectUI; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../helpers/unicode.mjs */ \"./node_modules/handsontable/helpers/unicode.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n/* harmony import */ var _helpers_data_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../helpers/data.mjs */ \"./node_modules/handsontable/helpers/data.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/filters/ui/_base.mjs\");\n/* harmony import */ var _input_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./input.mjs */ \"./node_modules/handsontable/plugins/filters/ui/input.mjs\");\n/* harmony import */ var _link_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./link.mjs */ \"./node_modules/handsontable/plugins/filters/ui/link.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils.mjs */ \"./node_modules/handsontable/plugins/filters/utils.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\n\nconst SHORTCUTS_GROUP = 'multipleSelect.itemBox';\n\n/**\n * @private\n * @class MultipleSelectUI\n */\nvar _items = /*#__PURE__*/new WeakMap();\nvar _itemsBox = /*#__PURE__*/new WeakMap();\nvar _locale = /*#__PURE__*/new WeakMap();\nvar _searchInput = /*#__PURE__*/new WeakMap();\nvar _selectAllUI = /*#__PURE__*/new WeakMap();\nvar _clearAllUI = /*#__PURE__*/new WeakMap();\nvar _MultipleSelectUI_brand = /*#__PURE__*/new WeakSet();\nclass MultipleSelectUI extends _base_mjs__WEBPACK_IMPORTED_MODULE_9__[\"BaseUI\"] {\n  static get DEFAULTS() {\n    return Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"clone\"])({\n      className: 'htUIMultipleSelect',\n      value: []\n    });\n  }\n\n  /**\n   * List of available select options.\n   *\n   * @type {Array}\n   */\n\n  constructor(hotInstance, options) {\n    super(hotInstance, Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"extend\"])(MultipleSelectUI.DEFAULTS, options));\n    /**\n     * 'input' event listener for input element.\n     *\n     * @param {Event} event DOM event.\n     */\n    _classPrivateMethodInitSpec(this, _MultipleSelectUI_brand);\n    _classPrivateFieldInitSpec(this, _items, []);\n    /**\n     * Handsontable instance used as items list element.\n     *\n     * @type {Handsontable}\n     */\n    _classPrivateFieldInitSpec(this, _itemsBox, void 0);\n    /**\n     * A locale for the component used to compare filtered values.\n     *\n     * @type {string}\n     */\n    _classPrivateFieldInitSpec(this, _locale, void 0);\n    /**\n     * Input element.\n     *\n     * @type {InputUI}\n     */\n    _classPrivateFieldInitSpec(this, _searchInput, void 0);\n    /**\n     * \"Select all\" UI element.\n     *\n     * @type {LinkUI}\n     */\n    _classPrivateFieldInitSpec(this, _selectAllUI, void 0);\n    /**\n     * \"Clear\" UI element.\n     *\n     * @type {LinkUI}\n     */\n    _classPrivateFieldInitSpec(this, _clearAllUI, void 0);\n    _classPrivateFieldSet(_searchInput, this, new _input_mjs__WEBPACK_IMPORTED_MODULE_10__[\"InputUI\"](this.hot, {\n      placeholder: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_7__[\"FILTERS_BUTTONS_PLACEHOLDER_SEARCH\"],\n      className: 'htUIMultipleSelectSearch'\n    }));\n    _classPrivateFieldSet(_selectAllUI, this, new _link_mjs__WEBPACK_IMPORTED_MODULE_11__[\"LinkUI\"](this.hot, {\n      textContent: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_7__[\"FILTERS_BUTTONS_SELECT_ALL\"],\n      className: 'htUISelectAll'\n    }));\n    _classPrivateFieldSet(_clearAllUI, this, new _link_mjs__WEBPACK_IMPORTED_MODULE_11__[\"LinkUI\"](this.hot, {\n      textContent: _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_7__[\"FILTERS_BUTTONS_CLEAR\"],\n      className: 'htUIClearAll'\n    }));\n    this.registerHooks();\n  }\n\n  /**\n   * Gets the instance of the internal Handsontable that acts here as a listbox component.\n   *\n   * @returns {Handsontable}\n   */\n  getItemsBox() {\n    return _classPrivateFieldGet(_itemsBox, this);\n  }\n\n  /**\n   * Register all necessary hooks.\n   */\n  registerHooks() {\n    _classPrivateFieldGet(_searchInput, this).addLocalHook('keydown', event => _assertClassBrand(_MultipleSelectUI_brand, this, _onInputKeyDown).call(this, event));\n    _classPrivateFieldGet(_searchInput, this).addLocalHook('input', event => _assertClassBrand(_MultipleSelectUI_brand, this, _onInput).call(this, event));\n    _classPrivateFieldGet(_selectAllUI, this).addLocalHook('click', event => _assertClassBrand(_MultipleSelectUI_brand, this, _onSelectAllClick).call(this, event));\n    _classPrivateFieldGet(_clearAllUI, this).addLocalHook('click', event => _assertClassBrand(_MultipleSelectUI_brand, this, _onClearAllClick).call(this, event));\n  }\n\n  /**\n   * Set available options.\n   *\n   * @param {Array} items Array of objects with `checked` and `label` property.\n   */\n  setItems(items) {\n    _classPrivateFieldSet(_items, this, items);\n    if (_classPrivateFieldGet(_itemsBox, this)) {\n      _classPrivateFieldGet(_itemsBox, this).loadData(_classPrivateFieldGet(_items, this));\n    }\n  }\n\n  /**\n   * Set a locale for the component.\n   *\n   * @param {string} locale Locale used for filter actions performed on data, ie. `en-US`.\n   */\n  setLocale(locale) {\n    _classPrivateFieldSet(_locale, this, locale);\n  }\n\n  /**\n   * Get a locale for the component.\n   *\n   * @returns {string}\n   */\n  getLocale() {\n    return _classPrivateFieldGet(_locale, this);\n  }\n\n  /**\n   * Get all available options.\n   *\n   * @returns {Array}\n   */\n  getItems() {\n    return [..._classPrivateFieldGet(_items, this)];\n  }\n\n  /**\n   * Get element value.\n   *\n   * @returns {Array} Array of selected values.\n   */\n  getValue() {\n    return itemsToValue(_classPrivateFieldGet(_items, this));\n  }\n\n  /**\n   * Gets the instance of the search input element.\n   *\n   * @returns {InputUI}\n   */\n  getSearchInputElement() {\n    return _classPrivateFieldGet(_searchInput, this);\n  }\n\n  /**\n   * Gets the instance of the \"select all\" link element.\n   *\n   * @returns {LinkUI}\n   */\n  getSelectAllElement() {\n    return _classPrivateFieldGet(_selectAllUI, this);\n  }\n\n  /**\n   * Gets the instance of the \"clear\" link element.\n   *\n   * @returns {LinkUI}\n   */\n  getClearAllElement() {\n    return _classPrivateFieldGet(_clearAllUI, this);\n  }\n\n  /**\n   * Check if all values listed in element are selected.\n   *\n   * @returns {boolean}\n   */\n  isSelectedAllValues() {\n    return _classPrivateFieldGet(_items, this).length === this.getValue().length;\n  }\n\n  /**\n   * Build DOM structure.\n   */\n  build() {\n    super.build();\n    const {\n      rootDocument\n    } = this.hot;\n    const itemsBoxWrapper = rootDocument.createElement('div');\n    const selectionControl = new _base_mjs__WEBPACK_IMPORTED_MODULE_9__[\"BaseUI\"](this.hot, {\n      className: 'htUISelectionControls',\n      children: [_classPrivateFieldGet(_selectAllUI, this), _classPrivateFieldGet(_clearAllUI, this)]\n    });\n    this._element.appendChild(_classPrivateFieldGet(_searchInput, this).element);\n    this._element.appendChild(selectionControl.element);\n    this._element.appendChild(itemsBoxWrapper);\n    const hotInitializer = wrapper => {\n      if (!this._element) {\n        return;\n      }\n      if (_classPrivateFieldGet(_itemsBox, this)) {\n        _classPrivateFieldGet(_itemsBox, this).destroy();\n      }\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(wrapper, 'htUIMultipleSelectHot');\n      // Constructs and initializes a new Handsontable instance\n      _classPrivateFieldSet(_itemsBox, this, new this.hot.constructor(wrapper, {\n        data: _classPrivateFieldGet(_items, this),\n        columns: [{\n          data: 'checked',\n          type: 'checkbox',\n          label: {\n            property: 'visualValue',\n            position: 'after'\n          }\n        }],\n        beforeRenderer: (TD, row, col, prop, value, cellProperties) => {\n          TD.title = cellProperties.instance.getDataAtRowProp(row, cellProperties.label.property);\n        },\n        afterListen: () => {\n          this.runLocalHooks('focus', this);\n        },\n        beforeOnCellMouseUp: () => {\n          _classPrivateFieldGet(_itemsBox, this).listen();\n        },\n        colWidths: () => _classPrivateFieldGet(_itemsBox, this).container.scrollWidth - Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getScrollbarWidth\"])(rootDocument),\n        maxCols: 1,\n        autoWrapCol: true,\n        height: 110,\n        copyPaste: false,\n        disableVisualSelection: 'area',\n        fillHandle: false,\n        fragmentSelection: 'cell',\n        tabMoves: {\n          row: 1,\n          col: 0\n        },\n        layoutDirection: this.hot.isRtl() ? 'rtl' : 'ltr'\n      }));\n      _classPrivateFieldGet(_itemsBox, this).init();\n      const shortcutManager = _classPrivateFieldGet(_itemsBox, this).getShortcutManager();\n      const gridContext = shortcutManager.getContext('grid');\n      gridContext.removeShortcutsByKeys(['Tab']);\n      gridContext.removeShortcutsByKeys(['Shift', 'Tab']);\n      gridContext.addShortcut({\n        keys: [['Escape']],\n        callback: event => {\n          this.runLocalHooks('keydown', event, this);\n        },\n        group: SHORTCUTS_GROUP\n      });\n      gridContext.addShortcut({\n        keys: [['Tab'], ['Shift', 'Tab']],\n        callback: event => {\n          _classPrivateFieldGet(_itemsBox, this).deselectCell();\n          this.runLocalHooks('keydown', event, this);\n          this.runLocalHooks('listTabKeydown', event, this);\n        },\n        group: SHORTCUTS_GROUP\n      });\n    };\n    hotInitializer(itemsBoxWrapper);\n    this.hot._registerTimeout(() => hotInitializer(itemsBoxWrapper), 100);\n  }\n\n  /**\n   * Focus element.\n   */\n  focus() {\n    if (this.isBuilt()) {\n      _classPrivateFieldGet(_itemsBox, this).listen();\n    }\n  }\n\n  /**\n   * Reset DOM structure.\n   */\n  reset() {\n    _classPrivateFieldGet(_searchInput, this).reset();\n    _classPrivateFieldGet(_selectAllUI, this).reset();\n    _classPrivateFieldGet(_clearAllUI, this).reset();\n  }\n\n  /**\n   * Update DOM structure.\n   */\n  update() {\n    if (!this.isBuilt()) {\n      return;\n    }\n    _classPrivateFieldGet(_itemsBox, this).loadData(valueToItems(_classPrivateFieldGet(_items, this), this.options.value));\n    super.update();\n  }\n\n  /**\n   * Destroy instance.\n   */\n  destroy() {\n    if (_classPrivateFieldGet(_itemsBox, this)) {\n      _classPrivateFieldGet(_itemsBox, this).destroy();\n    }\n    _classPrivateFieldGet(_searchInput, this).destroy();\n    _classPrivateFieldGet(_clearAllUI, this).destroy();\n    _classPrivateFieldGet(_selectAllUI, this).destroy();\n    _classPrivateFieldSet(_searchInput, this, null);\n    _classPrivateFieldSet(_clearAllUI, this, null);\n    _classPrivateFieldSet(_selectAllUI, this, null);\n    _classPrivateFieldSet(_itemsBox, this, null);\n    _classPrivateFieldSet(_items, this, null);\n    super.destroy();\n  }\n}\nfunction _onInput(event) {\n  const value = event.target.value.toLocaleLowerCase(this.getLocale());\n  let filteredItems;\n  if (value === '') {\n    filteredItems = [..._classPrivateFieldGet(_items, this)];\n  } else {\n    filteredItems = _classPrivateFieldGet(_items, this).filter(item => `${item.value}`.toLocaleLowerCase(this.getLocale()).indexOf(value) >= 0);\n  }\n  _classPrivateFieldGet(_itemsBox, this).loadData(filteredItems);\n}\n/**\n * 'keydown' event listener for input element.\n *\n * @param {Event} event DOM event.\n */\nfunction _onInputKeyDown(event) {\n  this.runLocalHooks('keydown', event, this);\n  const isKeyCode = Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_5__[\"partial\"])(_helpers_unicode_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isKey\"], event.keyCode);\n  if (isKeyCode('ARROW_DOWN')) {\n    event.preventDefault();\n    Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_8__[\"stopImmediatePropagation\"])(event);\n    _classPrivateFieldGet(_itemsBox, this).listen();\n    _classPrivateFieldGet(_itemsBox, this).selectCell(0, 0);\n  }\n}\n/**\n * On click listener for \"Select all\" link.\n *\n * @param {DOMEvent} event The mouse event object.\n */\nfunction _onSelectAllClick(event) {\n  const changes = [];\n  event.preventDefault();\n  _classPrivateFieldGet(_itemsBox, this).getSourceData().forEach((row, rowIndex) => {\n    row.checked = true;\n    changes.push(Object(_helpers_data_mjs__WEBPACK_IMPORTED_MODULE_6__[\"dataRowToChangesArray\"])(row, rowIndex)[0]);\n  });\n  _classPrivateFieldGet(_itemsBox, this).setSourceDataAtCell(changes);\n}\n/**\n * On click listener for \"Clear\" link.\n *\n * @param {DOMEvent} event The mouse event object.\n */\nfunction _onClearAllClick(event) {\n  const changes = [];\n  event.preventDefault();\n  _classPrivateFieldGet(_itemsBox, this).getSourceData().forEach((row, rowIndex) => {\n    row.checked = false;\n    changes.push(Object(_helpers_data_mjs__WEBPACK_IMPORTED_MODULE_6__[\"dataRowToChangesArray\"])(row, rowIndex)[0]);\n  });\n  _classPrivateFieldGet(_itemsBox, this).setSourceDataAtCell(changes);\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (MultipleSelectUI);\n\n/**\n * Pick up object items based on selected values.\n *\n * @param {Array} availableItems Base collection to compare values.\n * @param {Array} selectedValue Flat array with selected values.\n * @returns {Array}\n */\nfunction valueToItems(availableItems, selectedValue) {\n  const arrayAssertion = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_12__[\"createArrayAssertion\"])(selectedValue);\n  return availableItems.map(item => {\n    item.checked = arrayAssertion(item.value);\n    return item;\n  });\n}\n\n/**\n * Convert all checked items into flat array.\n *\n * @param {Array} availableItems Base collection.\n * @returns {Array}\n */\nfunction itemsToValue(availableItems) {\n  const items = [];\n  availableItems.forEach(item => {\n    if (item.checked) {\n      items.push(item.value);\n    }\n  });\n  return items;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/ui/multipleSelect.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/ui/radioInput.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/ui/radioInput.mjs ***!
  \*********************************************************************/
/*! exports provided: RadioInputUI */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RadioInputUI\", function() { return RadioInputUI; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/filters/ui/_base.mjs\");\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n/**\n * @private\n * @class RadioInputUI\n */\nvar _input = /*#__PURE__*/new WeakMap();\nvar _label = /*#__PURE__*/new WeakMap();\nclass RadioInputUI extends _base_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BaseUI\"] {\n  static get DEFAULTS() {\n    return Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"clone\"])({\n      type: 'radio',\n      tagName: 'input',\n      className: 'htUIRadio',\n      label: {}\n    });\n  }\n\n  /**\n   * The reference to the input element.\n   *\n   * @type {HTMLInputElement}\n   */\n\n  constructor(hotInstance, options) {\n    super(hotInstance, Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"extend\"])(RadioInputUI.DEFAULTS, options));\n    _classPrivateFieldInitSpec(this, _input, void 0);\n    /**\n     * The reference to the label element.\n     *\n     * @type {HTMLLabelElement}\n     */\n    _classPrivateFieldInitSpec(this, _label, void 0);\n  }\n\n  /**\n   * Build DOM structure.\n   */\n  build() {\n    super.build();\n    const label = this.hot.rootDocument.createElement('label');\n    label.textContent = this.translateIfPossible(this.options.label.textContent);\n    label.htmlFor = this.translateIfPossible(this.options.label.htmlFor);\n    _classPrivateFieldSet(_label, this, label);\n    _classPrivateFieldSet(_input, this, this._element.firstChild);\n    _classPrivateFieldGet(_input, this).checked = this.options.checked;\n    this._element.appendChild(label);\n    this.update();\n  }\n\n  /**\n   * Update element.\n   */\n  update() {\n    if (!this.isBuilt()) {\n      return;\n    }\n    _classPrivateFieldGet(_label, this).textContent = this.translateIfPossible(this.options.label.textContent);\n  }\n\n  /**\n   * Check if radio button is checked.\n   *\n   * @returns {boolean}\n   */\n  isChecked() {\n    return this.isBuilt() ? _classPrivateFieldGet(_input, this).checked : false;\n  }\n\n  /**\n   * Set input checked attribute.\n   *\n   * @param {boolean} value Set the component state.\n   */\n  setChecked() {\n    let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n    if (this.isBuilt()) {\n      _classPrivateFieldGet(_input, this).checked = value;\n    }\n  }\n\n  /**\n   * Focus element.\n   */\n  focus() {\n    if (this.isBuilt()) {\n      _classPrivateFieldGet(_input, this).focus();\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/ui/radioInput.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/ui/select.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/ui/select.mjs ***!
  \*****************************************************************/
/*! exports provided: SelectUI */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SelectUI\", function() { return SelectUI; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _plugins_contextMenu_menu_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../plugins/contextMenu/menu/index.mjs */ \"./node_modules/handsontable/plugins/contextMenu/menu/index.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _plugins_contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../plugins/contextMenu/predefinedItems/index.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/index.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/filters/ui/_base.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n/**\n * @private\n * @class SelectUI\n */\nvar _menu = /*#__PURE__*/new WeakMap();\nvar _items = /*#__PURE__*/new WeakMap();\nvar _caption = /*#__PURE__*/new WeakMap();\nvar _captionElement = /*#__PURE__*/new WeakMap();\nvar _dropdown = /*#__PURE__*/new WeakMap();\nvar _SelectUI_brand = /*#__PURE__*/new WeakSet();\nclass SelectUI extends _base_mjs__WEBPACK_IMPORTED_MODULE_7__[\"BaseUI\"] {\n  static get DEFAULTS() {\n    return Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"clone\"])({\n      className: 'htUISelect',\n      wrapIt: false,\n      tabIndex: -1\n    });\n  }\n\n  /**\n   * Instance of {@link Menu}.\n   *\n   * @type {Menu}\n   */\n\n  constructor(hotInstance, options) {\n    super(hotInstance, Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"extend\"])(SelectUI.DEFAULTS, options));\n    /**\n     * On menu selected listener.\n     *\n     * @param {object} command Selected item.\n     */\n    _classPrivateMethodInitSpec(this, _SelectUI_brand);\n    _classPrivateFieldInitSpec(this, _menu, null);\n    /**\n     * List of available select options.\n     *\n     * @type {Array}\n     */\n    _classPrivateFieldInitSpec(this, _items, []);\n    /**\n     * The reference to the BaseUI instance of the caption.\n     *\n     * @type {BaseUI}\n     */\n    _classPrivateFieldInitSpec(this, _caption, void 0);\n    /**\n     * The reference to the table caption element.\n     *\n     * @type {HTMLTableCaptionElement}\n     */\n    _classPrivateFieldInitSpec(this, _captionElement, void 0);\n    /**\n     * The reference to the BaseUI instance of the dropdown.\n     *\n     * @type {BaseUI}\n     */\n    _classPrivateFieldInitSpec(this, _dropdown, void 0);\n    this.registerHooks();\n  }\n\n  /**\n   * Gets the instance of the Menu.\n   *\n   * @returns {Menu}\n   */\n  getMenu() {\n    return _classPrivateFieldGet(_menu, this);\n  }\n\n  /**\n   * Register all necessary hooks.\n   */\n  registerHooks() {\n    this.addLocalHook('click', () => _assertClassBrand(_SelectUI_brand, this, _onClick).call(this));\n  }\n\n  /**\n   * Set options which can be selected in the list.\n   *\n   * @param {Array} items Array of objects with required keys `key` and `name`.\n   */\n  setItems(items) {\n    _classPrivateFieldSet(_items, this, this.translateNames(items));\n    if (_classPrivateFieldGet(_menu, this)) {\n      _classPrivateFieldGet(_menu, this).setMenuItems(_classPrivateFieldGet(_items, this));\n    }\n  }\n\n  /**\n   * Translate names of menu items.\n   *\n   * @param {Array} items Array of objects with required keys `key` and `name`.\n   * @returns {Array} Items with translated `name` keys.\n   */\n  translateNames(items) {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(items, item => {\n      item.name = this.translateIfPossible(item.name);\n    });\n    return items;\n  }\n\n  /**\n   * Build DOM structure.\n   */\n  build() {\n    super.build();\n    _classPrivateFieldSet(_menu, this, new _plugins_contextMenu_menu_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"Menu\"](this.hot, {\n      className: 'htSelectUI htFiltersConditionsMenu',\n      keepInViewport: false,\n      standalone: true,\n      container: this.options.menuContainer\n    }));\n    _classPrivateFieldGet(_menu, this).setMenuItems(_classPrivateFieldGet(_items, this));\n    const caption = new _base_mjs__WEBPACK_IMPORTED_MODULE_7__[\"BaseUI\"](this.hot, {\n      className: 'htUISelectCaption'\n    });\n    const dropdown = new _base_mjs__WEBPACK_IMPORTED_MODULE_7__[\"BaseUI\"](this.hot, {\n      className: 'htUISelectDropdown'\n    });\n    _classPrivateFieldSet(_caption, this, caption);\n    _classPrivateFieldSet(_captionElement, this, caption.element);\n    _classPrivateFieldSet(_dropdown, this, dropdown);\n    if (this.hot.getSettings().ariaTags) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"setAttribute\"])(dropdown.element, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_8__[\"A11Y_HIDDEN\"])()]);\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"setAttribute\"])(this._element, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_8__[\"A11Y_LISTBOX\"])()]);\n    }\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])([caption, dropdown], element => this._element.appendChild(element.element));\n    _classPrivateFieldGet(_menu, this).addLocalHook('select', command => _assertClassBrand(_SelectUI_brand, this, _onMenuSelect).call(this, command));\n    _classPrivateFieldGet(_menu, this).addLocalHook('afterClose', () => _assertClassBrand(_SelectUI_brand, this, _onMenuClosed).call(this));\n    this.update();\n  }\n\n  /**\n   * Update DOM structure.\n   */\n  update() {\n    if (!this.isBuilt()) {\n      return;\n    }\n    let conditionName;\n    if (this.options.value) {\n      conditionName = this.options.value.name;\n    } else {\n      conditionName = _classPrivateFieldGet(_menu, this).hot.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_5__[\"FILTERS_CONDITIONS_NONE\"]);\n    }\n    _classPrivateFieldGet(_captionElement, this).textContent = conditionName;\n    super.update();\n  }\n\n  /**\n   * Open select dropdown menu with available options.\n   */\n  openOptions() {\n    const rect = this.element.getBoundingClientRect();\n    if (_classPrivateFieldGet(_menu, this)) {\n      _classPrivateFieldGet(_menu, this).open();\n      _classPrivateFieldGet(_menu, this).setPosition({\n        left: this.hot.isLtr() ? rect.left - 5 : rect.left - 31,\n        top: rect.top - 1,\n        width: rect.width,\n        height: rect.height\n      });\n      _classPrivateFieldGet(_menu, this).getNavigator().toFirstItem();\n      _classPrivateFieldGet(_menu, this).getKeyboardShortcutsCtrl().addCustomShortcuts([{\n        keys: [['Tab'], ['Shift', 'Tab']],\n        callback: event => {\n          this.closeOptions();\n          this.runLocalHooks('tabKeydown', event);\n        }\n      }, {\n        keys: [['Control/Meta', 'A']],\n        callback: () => false\n      }]);\n    }\n  }\n\n  /**\n   * Close select dropdown menu.\n   */\n  closeOptions() {\n    if (_classPrivateFieldGet(_menu, this)) {\n      _classPrivateFieldGet(_menu, this).close();\n    }\n  }\n\n  /**\n   * Focus element.\n   */\n  focus() {\n    if (this.isBuilt()) {\n      this.element.focus();\n    }\n  }\n  /**\n   * Destroy instance.\n   */\n  destroy() {\n    if (_classPrivateFieldGet(_menu, this)) {\n      _classPrivateFieldGet(_menu, this).destroy();\n      _classPrivateFieldSet(_menu, this, null);\n    }\n    if (_classPrivateFieldGet(_caption, this)) {\n      _classPrivateFieldGet(_caption, this).destroy();\n    }\n    if (_classPrivateFieldGet(_dropdown, this)) {\n      _classPrivateFieldGet(_dropdown, this).destroy();\n    }\n    super.destroy();\n  }\n}\nfunction _onMenuSelect(command) {\n  if (command.name !== _plugins_contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"SEPARATOR\"]) {\n    this.options.value = command;\n    this.update();\n    this.runLocalHooks('select', this.options.value);\n  }\n}\n/**\n * On menu closed listener.\n */\nfunction _onMenuClosed() {\n  this.runLocalHooks('afterClose');\n}\n/**\n * On element click listener.\n *\n * @private\n */\nfunction _onClick() {\n  this.openOptions();\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/ui/select.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/filters/utils.mjs":
/*!*************************************************************!*\
  !*** ./node_modules/handsontable/plugins/filters/utils.mjs ***!
  \*************************************************************/
/*! exports provided: sortComparison, toVisualValue, createArrayAssertion, toEmptyString, unifyColumnValues, intersectValues */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sortComparison\", function() { return sortComparison; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toVisualValue\", function() { return toVisualValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createArrayAssertion\", function() { return createArrayAssertion; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toEmptyString\", function() { return toEmptyString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unifyColumnValues\", function() { return unifyColumnValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intersectValues\", function() { return intersectValues; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../helpers/feature.mjs */ \"./node_modules/handsontable/helpers/feature.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n\n\n\n\n\n\n\n\n\nconst sortCompare = Object(_helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_8__[\"getComparisonFunction\"])();\n\n/**\n * Comparison function for sorting purposes.\n *\n * @param {*} a The first value to compare.\n * @param {*} b The second value to compare.\n * @returns {number} Returns number from -1 to 1.\n */\nfunction sortComparison(a, b) {\n  if (typeof a === 'number' && typeof b === 'number') {\n    return a - b;\n  }\n  return sortCompare(a, b);\n}\n\n/**\n * Convert raw value into visual value.\n *\n * @param {*} value The value to convert.\n * @param {string} defaultEmptyValue Default value for empty cells.\n * @returns {*}\n */\nfunction toVisualValue(value, defaultEmptyValue) {\n  let visualValue = value;\n  if (visualValue === '') {\n    visualValue = `(${defaultEmptyValue})`;\n  }\n  return visualValue;\n}\nconst SUPPORT_SET_CONSTRUCTOR = new Set([1]).has(1);\nconst SUPPORT_FAST_DEDUPE = SUPPORT_SET_CONSTRUCTOR && typeof Array.from === 'function';\n\n/**\n * Create an array assertion to compare if an element exists in that array (in a more efficient way than .indexOf).\n *\n * @param {Array} initialData Values to compare.\n * @returns {Function}\n */\nfunction createArrayAssertion(initialData) {\n  let dataset = initialData;\n  if (SUPPORT_SET_CONSTRUCTOR) {\n    dataset = new Set(dataset);\n  }\n  return function (value) {\n    let result;\n    if (SUPPORT_SET_CONSTRUCTOR) {\n      result = dataset.has(value);\n    } else {\n      /* eslint-disable no-bitwise */\n      result = !!~dataset.indexOf(value);\n    }\n    return result;\n  };\n}\n\n/**\n * Convert empty-ish values like null and undefined to an empty string.\n *\n * @param {*} value Value to check.\n * @returns {string}\n */\nfunction toEmptyString(value) {\n  return value === null || value === undefined ? '' : value;\n}\n\n/**\n * Unify column values (remove duplicated values and sort them).\n *\n * @param {Array} values An array of values.\n * @returns {Array}\n */\nfunction unifyColumnValues(values) {\n  let unifiedValues = values;\n  if (SUPPORT_FAST_DEDUPE) {\n    unifiedValues = Array.from(new Set(unifiedValues));\n  } else {\n    unifiedValues = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_9__[\"arrayUnique\"])(unifiedValues);\n  }\n  unifiedValues = unifiedValues.sort((a, b) => {\n    if (typeof a === 'number' && typeof b === 'number') {\n      return a - b;\n    }\n    if (a === b) {\n      return 0;\n    }\n    return a > b ? 1 : -1;\n  });\n  return unifiedValues;\n}\n\n/**\n * Intersect 'base' values with 'selected' values and return an array of object.\n *\n * @param {Array} base An array of base values.\n * @param {Array} selected An array of selected values.\n * @param {string} defaultEmptyValue Default value for empty cells.\n * @param {Function} [callback] A callback function which is invoked for every item in an array.\n * @returns {Array}\n */\nfunction intersectValues(base, selected, defaultEmptyValue, callback) {\n  const result = [];\n  const same = base === selected;\n  let selectedItemsAssertion;\n  if (!same) {\n    selectedItemsAssertion = createArrayAssertion(selected);\n  }\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_9__[\"arrayEach\"])(base, value => {\n    let checked = false;\n    if (same || selectedItemsAssertion(value)) {\n      checked = true;\n    }\n    const item = {\n      checked,\n      value,\n      visualValue: toVisualValue(value, defaultEmptyValue)\n    };\n    if (callback) {\n      callback(item);\n    }\n    result.push(item);\n  });\n  return result;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/filters/utils.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/formulas/engine/register.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/formulas/engine/register.mjs ***!
  \************************************************************************/
/*! exports provided: setupEngine, registerEngine, getRegisteredHotInstances, unregisterEngine, registerCustomFunctions, registerLanguage, registerNamedExpressions, setupSheet */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupEngine\", function() { return setupEngine; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerEngine\", function() { return registerEngine; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredHotInstances\", function() { return getRegisteredHotInstances; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unregisterEngine\", function() { return unregisterEngine; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerCustomFunctions\", function() { return registerCustomFunctions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerLanguage\", function() { return registerLanguage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerNamedExpressions\", function() { return registerNamedExpressions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSheet\", function() { return setupSheet; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../utils/staticRegister.mjs */ \"./node_modules/handsontable/utils/staticRegister.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _formulas_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../formulas.mjs */ \"./node_modules/handsontable/plugins/formulas/formulas.mjs\");\n/* harmony import */ var _settings_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./settings.mjs */ \"./node_modules/handsontable/plugins/formulas/engine/settings.mjs\");\n\n\n\n\n\n\n\n\n/**\n * Prepares and returns the collection for the engine relationship with the HoT instances.\n *\n * @returns {Map}\n */\nfunction getEngineRelationshipRegistry() {\n  const registryKey = 'engine_relationship';\n  const pluginStaticRegistry = Object(_utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_formulas_mjs__WEBPACK_IMPORTED_MODULE_6__[\"PLUGIN_KEY\"]);\n  if (!pluginStaticRegistry.hasItem(registryKey)) {\n    pluginStaticRegistry.register(registryKey, new Map());\n  }\n  return pluginStaticRegistry.getItem(registryKey);\n}\n\n/**\n * Prepares and returns the collection for the engine shared usage.\n *\n * @returns {Map}\n */\nfunction getSharedEngineUsageRegistry() {\n  const registryKey = 'shared_engine_usage';\n  const pluginStaticRegistry = Object(_utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_formulas_mjs__WEBPACK_IMPORTED_MODULE_6__[\"PLUGIN_KEY\"]);\n  if (!pluginStaticRegistry.hasItem(registryKey)) {\n    pluginStaticRegistry.register(registryKey, new Map());\n  }\n  return pluginStaticRegistry.getItem(registryKey);\n}\n\n/**\n * Setups the engine instance. It either creates a new (possibly shared) engine instance, or attaches\n * the plugin to an already-existing instance.\n *\n * @param {Handsontable} hotInstance Handsontable instance.\n * @returns {null|object} Returns the engine instance if everything worked right and `null` otherwise.\n */\nfunction setupEngine(hotInstance) {\n  const hotSettings = hotInstance.getSettings();\n  const pluginSettings = hotSettings[_formulas_mjs__WEBPACK_IMPORTED_MODULE_6__[\"PLUGIN_KEY\"]];\n  const engineConfigItem = pluginSettings === null || pluginSettings === void 0 ? void 0 : pluginSettings.engine;\n  if (pluginSettings === true) {\n    return null;\n  }\n  if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isUndefined\"])(engineConfigItem)) {\n    return null;\n  }\n\n  // `engine.hyperformula` or `engine` is the engine class\n  if (typeof engineConfigItem.hyperformula === 'function' || typeof engineConfigItem === 'function') {\n    var _engineConfigItem$hyp;\n    return registerEngine((_engineConfigItem$hyp = engineConfigItem.hyperformula) !== null && _engineConfigItem$hyp !== void 0 ? _engineConfigItem$hyp : engineConfigItem, hotSettings, hotInstance);\n\n    // `engine` is the engine instance\n  } else if (typeof engineConfigItem === 'object' && Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isUndefined\"])(engineConfigItem.hyperformula)) {\n    const engineRelationship = getEngineRelationshipRegistry();\n    const sharedEngineUsage = getSharedEngineUsageRegistry().get(engineConfigItem);\n    if (!engineRelationship.has(engineConfigItem)) {\n      engineRelationship.set(engineConfigItem, []);\n    }\n    engineRelationship.get(engineConfigItem).push(hotInstance);\n    if (sharedEngineUsage) {\n      sharedEngineUsage.push(hotInstance.guid);\n    }\n    if (!engineConfigItem.getConfig().licenseKey) {\n      engineConfigItem.updateConfig({\n        licenseKey: _settings_mjs__WEBPACK_IMPORTED_MODULE_7__[\"DEFAULT_LICENSE_KEY\"]\n      });\n    }\n    if (engineConfigItem.getConfig().leapYear1900 !== _settings_mjs__WEBPACK_IMPORTED_MODULE_7__[\"DEFAULT_SETTINGS\"].leapYear1900 || Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isObjectEqual\"])(engineConfigItem.getConfig().nullDate, _settings_mjs__WEBPACK_IMPORTED_MODULE_7__[\"DEFAULT_SETTINGS\"].nullDate) === false) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_4__[\"warn\"])(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_3__[\"toSingleLine\"]`If you use HyperFormula with Handsontable, keep the default \\`leapYear1900\\` and \\`nullDate\\` \n      settings. Otherwise, HyperFormula's dates may not sync correctly with Handsontable's dates.`);\n    }\n    return engineConfigItem;\n  }\n  return null;\n}\n\n/**\n * Registers the engine in the global register and attaches the needed event listeners.\n *\n * @param {Function} engineClass The engine class.\n * @param {object} hotSettings The Handsontable settings.\n * @param {Handsontable} hotInstance Handsontable instance.\n * @returns {object} Returns the engine instance.\n */\nfunction registerEngine(engineClass, hotSettings, hotInstance) {\n  const pluginSettings = hotSettings[_formulas_mjs__WEBPACK_IMPORTED_MODULE_6__[\"PLUGIN_KEY\"]];\n  const engineSettings = Object(_settings_mjs__WEBPACK_IMPORTED_MODULE_7__[\"getEngineSettingsWithDefaultsAndOverrides\"])(hotSettings);\n  const engineRegistry = getEngineRelationshipRegistry();\n  const sharedEngineRegistry = getSharedEngineUsageRegistry();\n  registerCustomFunctions(engineClass, pluginSettings.functions);\n  registerLanguage(engineClass, pluginSettings.language);\n\n  // Create instance\n  const engineInstance = engineClass.buildEmpty(engineSettings);\n\n  // Add it to global registry\n  engineRegistry.set(engineInstance, [hotInstance]);\n  sharedEngineRegistry.set(engineInstance, [hotInstance.guid]);\n  registerNamedExpressions(engineInstance, pluginSettings.namedExpressions);\n\n  // Add hooks needed for cross-referencing sheets\n  engineInstance.on('sheetAdded', () => {\n    engineInstance.rebuildAndRecalculate();\n  });\n  engineInstance.on('sheetRemoved', () => {\n    engineInstance.rebuildAndRecalculate();\n  });\n  return engineInstance;\n}\n\n/**\n * Returns the list of the Handsontable instances linked to the specific engine instance.\n *\n * @param {object} engine The engine instance.\n * @returns {Map<number, Handsontable>} Returns Map with Handsontable instances.\n */\nfunction getRegisteredHotInstances(engine) {\n  var _engineRegistry$get;\n  const engineRegistry = getEngineRelationshipRegistry();\n  const hotInstances = engineRegistry.size === 0 ? [] : Array.from((_engineRegistry$get = engineRegistry.get(engine)) !== null && _engineRegistry$get !== void 0 ? _engineRegistry$get : []);\n  return new Map(hotInstances.map(hot => [hot.getPlugin('formulas').sheetId, hot]));\n}\n\n/**\n * Removes the HOT instance from the global register's engine usage array, and if there are no HOT instances left,\n * unregisters the engine itself.\n *\n * @param {object} engine The engine instance.\n * @param {string} hotInstance The Handsontable instance.\n */\nfunction unregisterEngine(engine, hotInstance) {\n  if (engine) {\n    const engineRegistry = getEngineRelationshipRegistry();\n    const engineHotRelationship = engineRegistry.get(engine);\n    const sharedEngineRegistry = getSharedEngineUsageRegistry();\n    const sharedEngineUsage = sharedEngineRegistry.get(engine);\n    if (engineHotRelationship && engineHotRelationship.includes(hotInstance)) {\n      engineHotRelationship.splice(engineHotRelationship.indexOf(hotInstance), 1);\n      if (engineHotRelationship.length === 0) {\n        engineRegistry.delete(engine);\n      }\n    }\n    if (sharedEngineUsage && sharedEngineUsage.includes(hotInstance.guid)) {\n      sharedEngineUsage.splice(sharedEngineUsage.indexOf(hotInstance.guid), 1);\n      if (sharedEngineUsage.length === 0) {\n        sharedEngineRegistry.delete(engine);\n        engine.destroy();\n      }\n    }\n  }\n}\n\n/**\n * Registers the custom functions for the engine.\n *\n * @param {Function} engineClass The engine class.\n * @param {Array} customFunctions The custom functions array.\n */\nfunction registerCustomFunctions(engineClass, customFunctions) {\n  if (customFunctions) {\n    customFunctions.forEach(func => {\n      const {\n        name,\n        plugin,\n        translations\n      } = func;\n      try {\n        engineClass.registerFunction(name, plugin, translations);\n      } catch (e) {\n        Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_4__[\"warn\"])(e.message);\n      }\n    });\n  }\n}\n\n/**\n * Registers the provided language for the engine.\n *\n * @param {Function} engineClass The engine class.\n * @param {object} languageSetting The engine's language object.\n */\nfunction registerLanguage(engineClass, languageSetting) {\n  if (languageSetting) {\n    const {\n      langCode\n    } = languageSetting;\n    try {\n      engineClass.registerLanguage(langCode, languageSetting);\n    } catch (e) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_4__[\"warn\"])(e.message);\n    }\n  }\n}\n\n/**\n * Registers the provided named expressions in the engine instance.\n *\n * @param {object} engineInstance The engine instance.\n * @param {Array} namedExpressions Array of the named expressions to be registered.\n */\nfunction registerNamedExpressions(engineInstance, namedExpressions) {\n  if (namedExpressions) {\n    engineInstance.suspendEvaluation();\n    namedExpressions.forEach(namedExp => {\n      const {\n        name,\n        expression,\n        scope,\n        options\n      } = namedExp;\n      try {\n        engineInstance.addNamedExpression(name, expression, scope, options);\n      } catch (e) {\n        Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_4__[\"warn\"])(e.message);\n      }\n    });\n    engineInstance.resumeEvaluation();\n  }\n}\n\n/**\n * Sets up a new sheet.\n *\n * @param {object} engineInstance The engine instance.\n * @param {string} sheetName The new sheet name.\n * @returns {*}\n */\nfunction setupSheet(engineInstance, sheetName) {\n  if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isUndefined\"])(sheetName) || !engineInstance.doesSheetExist(sheetName)) {\n    sheetName = engineInstance.addSheet(sheetName);\n  }\n  return sheetName;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/formulas/engine/register.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/formulas/engine/settings.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/formulas/engine/settings.mjs ***!
  \************************************************************************/
/*! exports provided: DEFAULT_LICENSE_KEY, DEFAULT_SETTINGS, getEngineSettingsOverrides, getEngineSettingsWithDefaultsAndOverrides, getEngineSettingsWithOverrides, haveEngineSettingsChanged */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_LICENSE_KEY\", function() { return DEFAULT_LICENSE_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_SETTINGS\", function() { return DEFAULT_SETTINGS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getEngineSettingsOverrides\", function() { return getEngineSettingsOverrides; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getEngineSettingsWithDefaultsAndOverrides\", function() { return getEngineSettingsWithDefaultsAndOverrides; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getEngineSettingsWithOverrides\", function() { return getEngineSettingsWithOverrides; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"haveEngineSettingsChanged\", function() { return haveEngineSettingsChanged; });\n/* harmony import */ var _formulas_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../formulas.mjs */ \"./node_modules/handsontable/plugins/formulas/formulas.mjs\");\n\nconst DEFAULT_LICENSE_KEY = 'internal-use-in-handsontable';\nconst DEFAULT_SETTINGS = {\n  licenseKey: DEFAULT_LICENSE_KEY,\n  useArrayArithmetic: true,\n  useColumnIndex: false,\n  useStats: false,\n  evaluateNullToZero: true,\n  precisionEpsilon: 1e-13,\n  precisionRounding: 14,\n  smartRounding: true,\n  leapYear1900: false,\n  nullDate: {\n    year: 1899,\n    month: 12,\n    day: 30\n  },\n  nullYear: 30,\n  dateFormats: ['DD/MM/YYYY', 'DD/MM/YY'],\n  timeFormats: ['hh:mm', 'hh:mm:ss.sss'],\n  matchWholeCell: true,\n  useRegularExpressions: false,\n  useWildcards: true,\n  functionArgSeparator: ',',\n  thousandSeparator: '',\n  decimalSeparator: '.',\n  language: 'enGB'\n};\n\n/**\n * Gets a set of engine settings to be applied on top of the provided settings, based on user's Handsontable settings.\n *\n * @param {object} hotSettings Handsontable settings object.\n * @returns {object} Object containing the overriding options.\n */\nfunction getEngineSettingsOverrides(hotSettings) {\n  var _hotSettings$PLUGIN_K;\n  return {\n    maxColumns: hotSettings.maxColumns,\n    maxRows: hotSettings.maxRows,\n    language: (_hotSettings$PLUGIN_K = hotSettings[_formulas_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]]) === null || _hotSettings$PLUGIN_K === void 0 || (_hotSettings$PLUGIN_K = _hotSettings$PLUGIN_K.language) === null || _hotSettings$PLUGIN_K === void 0 ? void 0 : _hotSettings$PLUGIN_K.langCode\n  };\n}\n\n/**\n * Drop `hyperformula` key from object if it exists.\n *\n * @param {object} pluginSettings Formulas plugin settings.\n * @returns {object}\n */\nfunction cleanEngineSettings(pluginSettings) {\n  return Object.keys(pluginSettings).reduce((obj, key) => {\n    if (key !== 'hyperformula') {\n      obj[key] = pluginSettings[key];\n    }\n    return obj;\n  }, {});\n}\n\n/**\n * Takes the default, user and overriding settings and merges them into a single object to be passed to the engine.\n *\n * The final object gets its parameters in the following order,\n * with properties attached to objects listed in the lower levels of the list overriding the\n * ones above them:\n *\n * 1. Default settings\n * 2. User settings\n * 3. Overrides.\n *\n * Meant to be used during *initialization* of the engine.\n *\n * @param {object} hotSettings The Handsontable settings.\n * @returns {object} The final engine settings.\n */\nfunction getEngineSettingsWithDefaultsAndOverrides(hotSettings) {\n  var _pluginSettings$engin;\n  const pluginSettings = hotSettings[_formulas_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]];\n  const userSettings = cleanEngineSettings(pluginSettings !== null && pluginSettings !== void 0 && (_pluginSettings$engin = pluginSettings.engine) !== null && _pluginSettings$engin !== void 0 && _pluginSettings$engin.hyperformula ? pluginSettings.engine : {});\n  const overrides = getEngineSettingsOverrides(hotSettings);\n  return {\n    ...DEFAULT_SETTINGS,\n    ...userSettings,\n    ...overrides\n  };\n}\n\n/**\n * Get engine settings from a Handsontable settings object with overrides.\n *\n * @param {object} hotSettings Handsontable settings object.\n * @returns {object}\n */\nfunction getEngineSettingsWithOverrides(hotSettings) {\n  var _pluginSettings$engin2;\n  const pluginSettings = hotSettings[_formulas_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]];\n  const userSettings = cleanEngineSettings(pluginSettings !== null && pluginSettings !== void 0 && (_pluginSettings$engin2 = pluginSettings.engine) !== null && _pluginSettings$engin2 !== void 0 && _pluginSettings$engin2.hyperformula ? pluginSettings.engine : {});\n  const overrides = getEngineSettingsOverrides(hotSettings);\n  return {\n    ...userSettings,\n    ...overrides\n  };\n}\n\n/**\n * Check if the new settings are defined and are different from the ones currently used by the engine.\n *\n * @param {object} currentEngineSettings Currently used engine settings.\n * @param {object} newEngineSettings New engine settings.\n * @returns {boolean}\n */\nfunction haveEngineSettingsChanged(currentEngineSettings, newEngineSettings) {\n  return Object.keys(newEngineSettings).some(settingOption => {\n    return newEngineSettings[settingOption] !== undefined && newEngineSettings[settingOption] !== currentEngineSettings[settingOption];\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/formulas/engine/settings.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/formulas/formulas.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/formulas/formulas.mjs ***!
  \*****************************************************************/
/*! exports provided: PLUGIN_KEY, SETTING_KEYS, PLUGIN_PRIORITY, Formulas */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SETTING_KEYS\", function() { return SETTING_KEYS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Formulas\", function() { return Formulas; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../utils/staticRegister.mjs */ \"./node_modules/handsontable/utils/staticRegister.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _engine_register_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./engine/register.mjs */ \"./node_modules/handsontable/plugins/formulas/engine/register.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/plugins/formulas/utils.mjs\");\n/* harmony import */ var _engine_settings_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./engine/settings.mjs */ \"./node_modules/handsontable/plugins/formulas/engine/settings.mjs\");\n/* harmony import */ var _helpers_data_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../helpers/data.mjs */ \"./node_modules/handsontable/helpers/data.mjs\");\n/* harmony import */ var _helpers_string_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../helpers/string.mjs */ \"./node_modules/handsontable/helpers/string.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _indexSyncer_index_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./indexSyncer/index.mjs */ \"./node_modules/handsontable/plugins/formulas/indexSyncer/index.mjs\");\n\n\n\n\n\n\n\n\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\n\n\nconst PLUGIN_KEY = 'formulas';\nconst SETTING_KEYS = ['maxRows', 'maxColumns', 'language'];\nconst PLUGIN_PRIORITY = 260;\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_20__[\"default\"].getSingleton().register('afterNamedExpressionAdded');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_20__[\"default\"].getSingleton().register('afterNamedExpressionRemoved');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_20__[\"default\"].getSingleton().register('afterSheetAdded');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_20__[\"default\"].getSingleton().register('afterSheetRemoved');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_20__[\"default\"].getSingleton().register('afterSheetRenamed');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_20__[\"default\"].getSingleton().register('afterFormulasValuesUpdate');\n\n// This function will be used for detecting changes coming from the `UndoRedo` plugin. This kind of change won't be\n// handled by whole body of listeners and therefore won't change undo/redo stack inside engine provided by HyperFormula.\n// HyperFormula's `undo` and `redo` methods will do it instead. Please keep in mind that undo/redo stacks inside\n// instances of Handsontable and HyperFormula should be synced (number of actions should be the same).\nconst isBlockedSource = source => source === 'UndoRedo.undo' || source === 'UndoRedo.redo' || source === 'auto';\n\n/**\n * This plugin allows you to perform Excel-like calculations in your business applications. It does it by an\n * integration with our other product, [HyperFormula](https://github.com/handsontable/hyperformula/), which is a\n * powerful calculation engine with an extensive number of features.\n *\n * To test out HyperFormula, see [this guide](@/guides/formulas/formula-calculation/formula-calculation.md#available-functions).\n *\n * @plugin Formulas\n * @class Formulas\n */\nvar _internalOperationPending = /*#__PURE__*/new WeakMap();\nvar _hotWasInitializedWithEmptyData = /*#__PURE__*/new WeakMap();\nvar _engineListeners = /*#__PURE__*/new WeakMap();\nvar _Formulas_brand = /*#__PURE__*/new WeakSet();\nclass Formulas extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"BasePlugin\"] {\n  constructor() {\n    var _this;\n    super(...arguments);\n    _this = this;\n    /**\n     * The hook allows to translate the formula value to calculated value before it goes to the\n     * validator function.\n     *\n     * @param {*} value The cell value to validate.\n     * @param {number} visualRow The visual row index.\n     * @param {number|string} prop The visual column index or property name of the column.\n     * @returns {*} Returns value to validate.\n     */\n    _classPrivateMethodInitSpec(this, _Formulas_brand);\n    /**\n     * Flag used to bypass hooks in internal operations.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _internalOperationPending, false);\n    /**\n     * Flag needed to mark if Handsontable was initialized with no data.\n     * (Required to work around the fact, that Handsontable auto-generates sample data, when no data is provided).\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _hotWasInitializedWithEmptyData, false);\n    /**\n     * The list of the HyperFormula listeners.\n     *\n     * @type {Array}\n     */\n    _classPrivateFieldInitSpec(this, _engineListeners, [['valuesUpdated', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_Formulas_brand, _this, _onEngineValuesUpdated).call(_this, ...args);\n    }], ['namedExpressionAdded', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_Formulas_brand, _this, _onEngineNamedExpressionsAdded).call(_this, ...args);\n    }], ['namedExpressionRemoved', function () {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n      return _assertClassBrand(_Formulas_brand, _this, _onEngineNamedExpressionsRemoved).call(_this, ...args);\n    }], ['sheetAdded', function () {\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n      return _assertClassBrand(_Formulas_brand, _this, _onEngineSheetAdded).call(_this, ...args);\n    }], ['sheetRenamed', function () {\n      for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n        args[_key5] = arguments[_key5];\n      }\n      return _assertClassBrand(_Formulas_brand, _this, _onEngineSheetRenamed).call(_this, ...args);\n    }], ['sheetRemoved', function () {\n      for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n        args[_key6] = arguments[_key6];\n      }\n      return _assertClassBrand(_Formulas_brand, _this, _onEngineSheetRemoved).call(_this, ...args);\n    }]]);\n    /**\n     * Static register used to set up one global HyperFormula instance.\n     * TODO: currently used in tests, might be removed later.\n     *\n     * @private\n     * @type {object}\n     */\n    _defineProperty(this, \"staticRegister\", Object(_utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('formulas'));\n    /**\n     * The engine instance that will be used for this instance of Handsontable.\n     *\n     * @type {HyperFormula|null}\n     */\n    _defineProperty(this, \"engine\", null);\n    /**\n     * HyperFormula's sheet name.\n     *\n     * @type {string|null}\n     */\n    _defineProperty(this, \"sheetName\", null);\n    /**\n     * Index synchronizer responsible for manipulating with some general options related to indexes synchronization.\n     *\n     * @type {IndexSyncer|null}\n     */\n    _defineProperty(this, \"indexSyncer\", null);\n    /**\n     * Index synchronizer responsible for syncing the order of HOT and HF's data for the axis of the rows.\n     *\n     * @type {AxisSyncer|null}\n     */\n    _defineProperty(this, \"rowAxisSyncer\", null);\n    /**\n     * Index synchronizer responsible for syncing the order of HOT and HF's data for the axis of the columns.\n     *\n     * @type {AxisSyncer|null}\n     */\n    _defineProperty(this, \"columnAxisSyncer\", null);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  static get SETTING_KEYS() {\n    return [PLUGIN_KEY, ...SETTING_KEYS];\n  }\n  /**\n   * HyperFormula's sheet id.\n   *\n   * @type {number|null}\n   */\n  get sheetId() {\n    return this.sheetName === null ? null : this.engine.getSheetId(this.sheetName);\n  }\n\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link Formulas#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    /* eslint-disable no-unneeded-ternary */\n    return this.hot.getSettings()[PLUGIN_KEY] ? true : false;\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _setupEngine,\n      _this2 = this;\n    if (this.enabled) {\n      return;\n    }\n    this.engine = (_setupEngine = Object(_engine_register_mjs__WEBPACK_IMPORTED_MODULE_15__[\"setupEngine\"])(this.hot)) !== null && _setupEngine !== void 0 ? _setupEngine : this.engine;\n    if (!this.engine) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_12__[\"warn\"])('Missing the required `engine` key in the Formulas settings. Please fill it with either an' + ' engine class or an engine instance.');\n      return;\n    }\n\n    // Useful for disabling -> enabling the plugin using `updateSettings` or the API.\n    if (this.sheetName !== null && !this.engine.doesSheetExist(this.sheetName)) {\n      const newSheetName = this.addSheet(this.sheetName, this.hot.getSourceDataArray());\n      if (newSheetName !== false) {\n        this.sheetName = newSheetName;\n      }\n    }\n    this.addHook('beforeLoadData', function () {\n      for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n        args[_key7] = arguments[_key7];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onBeforeLoadData).call(_this2, ...args);\n    });\n    this.addHook('afterLoadData', function () {\n      for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n        args[_key8] = arguments[_key8];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onAfterLoadData).call(_this2, ...args);\n    });\n\n    // The `updateData` hooks utilize the same logic as the `loadData` hooks.\n    this.addHook('beforeUpdateData', function () {\n      for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n        args[_key9] = arguments[_key9];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onBeforeLoadData).call(_this2, ...args);\n    });\n    this.addHook('afterUpdateData', function () {\n      for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n        args[_key10] = arguments[_key10];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onAfterLoadData).call(_this2, ...args);\n    });\n    this.addHook('modifyData', function () {\n      for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n        args[_key11] = arguments[_key11];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onModifyData).call(_this2, ...args);\n    });\n    this.addHook('modifySourceData', function () {\n      for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n        args[_key12] = arguments[_key12];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onModifySourceData).call(_this2, ...args);\n    });\n    this.addHook('beforeValidate', function () {\n      for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n        args[_key13] = arguments[_key13];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onBeforeValidate).call(_this2, ...args);\n    });\n    this.addHook('afterSetSourceDataAtCell', function () {\n      for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n        args[_key14] = arguments[_key14];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onAfterSetSourceDataAtCell).call(_this2, ...args);\n    });\n    this.addHook('afterSetDataAtCell', function () {\n      for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {\n        args[_key15] = arguments[_key15];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onAfterSetDataAtCell).call(_this2, ...args);\n    });\n    this.addHook('afterSetDataAtRowProp', function () {\n      for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {\n        args[_key16] = arguments[_key16];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onAfterSetDataAtCell).call(_this2, ...args);\n    });\n    this.addHook('beforeCreateRow', function () {\n      for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {\n        args[_key17] = arguments[_key17];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onBeforeCreateRow).call(_this2, ...args);\n    });\n    this.addHook('beforeCreateCol', function () {\n      for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {\n        args[_key18] = arguments[_key18];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onBeforeCreateCol).call(_this2, ...args);\n    });\n    this.addHook('afterCreateRow', function () {\n      for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {\n        args[_key19] = arguments[_key19];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onAfterCreateRow).call(_this2, ...args);\n    });\n    this.addHook('afterCreateCol', function () {\n      for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {\n        args[_key20] = arguments[_key20];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onAfterCreateCol).call(_this2, ...args);\n    });\n    this.addHook('beforeRemoveRow', function () {\n      for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {\n        args[_key21] = arguments[_key21];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onBeforeRemoveRow).call(_this2, ...args);\n    });\n    this.addHook('beforeRemoveCol', function () {\n      for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {\n        args[_key22] = arguments[_key22];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onBeforeRemoveCol).call(_this2, ...args);\n    });\n    this.addHook('afterRemoveRow', function () {\n      for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {\n        args[_key23] = arguments[_key23];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onAfterRemoveRow).call(_this2, ...args);\n    });\n    this.addHook('afterRemoveCol', function () {\n      for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {\n        args[_key24] = arguments[_key24];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onAfterRemoveCol).call(_this2, ...args);\n    });\n    this.indexSyncer = new _indexSyncer_index_mjs__WEBPACK_IMPORTED_MODULE_21__[\"default\"](this.hot.rowIndexMapper, this.hot.columnIndexMapper, postponedAction => {\n      this.hot.addHookOnce('init', () => {\n        // Engine is initialized after executing callback to `afterLoadData` hook. Thus, some actions on indexes should\n        // be postponed.\n        postponedAction();\n      });\n    });\n    this.rowAxisSyncer = this.indexSyncer.getForAxis('row');\n    this.columnAxisSyncer = this.indexSyncer.getForAxis('column');\n    this.hot.addHook('afterRowSequenceChange', this.rowAxisSyncer.getIndexesChangeSyncMethod());\n    this.hot.addHook('afterColumnSequenceChange', this.columnAxisSyncer.getIndexesChangeSyncMethod());\n    this.hot.addHook('beforeRowMove', (movedRows, finalIndex, _, movePossible) => {\n      this.rowAxisSyncer.storeMovesInformation(movedRows, finalIndex, movePossible);\n    });\n    this.hot.addHook('beforeColumnMove', (movedColumns, finalIndex, _, movePossible) => {\n      this.columnAxisSyncer.storeMovesInformation(movedColumns, finalIndex, movePossible);\n    });\n    this.hot.addHook('afterRowMove', (movedRows, finalIndex, dropIndex, movePossible, orderChanged) => {\n      this.rowAxisSyncer.calculateAndSyncMoves(movePossible, orderChanged);\n    });\n    this.hot.addHook('afterColumnMove', (movedColumns, finalIndex, dropIndex, movePossible, orderChanged) => {\n      this.columnAxisSyncer.calculateAndSyncMoves(movePossible, orderChanged);\n    });\n    this.hot.addHook('beforeColumnFreeze', (column, freezePerformed) => {\n      this.columnAxisSyncer.storeMovesInformation([column], this.hot.getSettings().fixedColumnsStart, freezePerformed);\n    });\n    this.hot.addHook('afterColumnFreeze', (_, freezePerformed) => {\n      this.columnAxisSyncer.calculateAndSyncMoves(freezePerformed, freezePerformed);\n    });\n    this.hot.addHook('beforeColumnUnfreeze', (column, unfreezePerformed) => {\n      this.columnAxisSyncer.storeMovesInformation([column], this.hot.getSettings().fixedColumnsStart - 1, unfreezePerformed);\n    });\n    this.hot.addHook('afterColumnUnfreeze', (_, unfreezePerformed) => {\n      this.columnAxisSyncer.calculateAndSyncMoves(unfreezePerformed, unfreezePerformed);\n    });\n\n    // TODO: Actions related to overwriting dates from HOT format to HF default format are done as callback to this\n    // hook, because some hooks, such as `afterLoadData` doesn't have information about composed cell properties.\n    // Another hooks are triggered to late for setting HF's engine data needed for some actions.\n    this.addHook('afterCellMetaReset', function () {\n      for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {\n        args[_key25] = arguments[_key25];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onAfterCellMetaReset).call(_this2, ...args);\n    });\n\n    // Handling undo actions on data just using HyperFormula's UndoRedo mechanism\n    this.addHook('beforeUndo', () => {\n      this.indexSyncer.setPerformUndo(true);\n      this.engine.undo();\n    });\n\n    // Handling redo actions on data just using HyperFormula's UndoRedo mechanism\n    this.addHook('beforeRedo', () => {\n      this.indexSyncer.setPerformRedo(true);\n      this.engine.redo();\n    });\n    this.addHook('afterUndo', () => {\n      this.indexSyncer.setPerformUndo(false);\n    });\n    this.addHook('afterUndo', () => {\n      this.indexSyncer.setPerformRedo(false);\n    });\n    this.addHook('afterDetachChild', function () {\n      for (var _len26 = arguments.length, args = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {\n        args[_key26] = arguments[_key26];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onAfterDetachChild).call(_this2, ...args);\n    });\n    this.addHook('beforeAutofill', function () {\n      for (var _len27 = arguments.length, args = new Array(_len27), _key27 = 0; _key27 < _len27; _key27++) {\n        args[_key27] = arguments[_key27];\n      }\n      return _assertClassBrand(_Formulas_brand, _this2, _onBeforeAutofill).call(_this2, ...args);\n    });\n    _classPrivateFieldGet(_engineListeners, this).forEach(_ref => {\n      let [eventName, listener] = _ref;\n      return this.engine.on(eventName, listener);\n    });\n    super.enablePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    _classPrivateFieldGet(_engineListeners, this).forEach(_ref2 => {\n      let [eventName, listener] = _ref2;\n      return this.engine.off(eventName, listener);\n    });\n    Object(_engine_register_mjs__WEBPACK_IMPORTED_MODULE_15__[\"unregisterEngine\"])(this.engine, this.hot);\n    this.engine = null;\n    super.disablePlugin();\n  }\n\n  /**\n   * Triggered on `updateSettings`.\n   *\n   * @private\n   * @param {object} newSettings New set of settings passed to the `updateSettings` method.\n   */\n  updatePlugin(newSettings) {\n    const newEngineSettings = Object(_engine_settings_mjs__WEBPACK_IMPORTED_MODULE_17__[\"getEngineSettingsWithOverrides\"])(this.hot.getSettings());\n    if (Object(_engine_settings_mjs__WEBPACK_IMPORTED_MODULE_17__[\"haveEngineSettingsChanged\"])(this.engine.getConfig(), newEngineSettings)) {\n      this.engine.updateConfig(newEngineSettings);\n    }\n    const pluginSettings = this.hot.getSettings()[PLUGIN_KEY];\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_14__[\"isDefined\"])(pluginSettings) && Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_14__[\"isDefined\"])(pluginSettings.sheetName) && pluginSettings.sheetName !== this.sheetName) {\n      this.switchSheet(pluginSettings.sheetName);\n    }\n\n    // If no data was passed to the `updateSettings` method and no sheet is connected to the instance -> create a\n    // new sheet using the currently used data. Otherwise, it will be handled by the `afterLoadData` call.\n    if (!newSettings.data && this.sheetName === null) {\n      const sheetName = this.hot.getSettings()[PLUGIN_KEY].sheetName;\n      if (sheetName && this.engine.doesSheetExist(sheetName)) {\n        this.switchSheet(this.sheetName);\n      } else {\n        this.sheetName = this.addSheet(sheetName !== null && sheetName !== void 0 ? sheetName : undefined, this.hot.getSourceDataArray());\n      }\n    }\n    super.updatePlugin(newSettings);\n  }\n\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    _classPrivateFieldGet(_engineListeners, this).forEach(_ref3 => {\n      var _this$engine;\n      let [eventName, listener] = _ref3;\n      return (_this$engine = this.engine) === null || _this$engine === void 0 ? void 0 : _this$engine.off(eventName, listener);\n    });\n    _classPrivateFieldSet(_engineListeners, this, null);\n    Object(_engine_register_mjs__WEBPACK_IMPORTED_MODULE_15__[\"unregisterEngine\"])(this.engine, this.hot);\n    this.engine = null;\n    super.destroy();\n  }\n\n  /**\n   * Add a sheet to the shared HyperFormula instance.\n   *\n   * @param {string|null} [sheetName] The new sheet name. If not provided (or a null is passed), will be\n   * auto-generated by HyperFormula.\n   * @param {Array} [sheetData] Data passed to the shared HyperFormula instance. Has to be declared as an array of\n   * arrays - array of objects is not supported in this scenario.\n   * @returns {boolean|string} `false` if the data format is unusable or it is impossible to add a new sheet to the\n   * engine, the created sheet name otherwise.\n   */\n  addSheet(sheetName, sheetData) {\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_14__[\"isDefined\"])(sheetData) && !Object(_helpers_data_mjs__WEBPACK_IMPORTED_MODULE_18__[\"isArrayOfArrays\"])(sheetData)) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_12__[\"warn\"])('The provided data should be an array of arrays.');\n      return false;\n    }\n    if (sheetName !== undefined && sheetName !== null && this.engine.doesSheetExist(sheetName)) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_12__[\"warn\"])('Sheet with the provided name already exists.');\n      return false;\n    }\n    try {\n      const actualSheetName = this.engine.addSheet(sheetName !== null && sheetName !== void 0 ? sheetName : undefined);\n      if (sheetData) {\n        this.engine.setSheetContent(this.engine.getSheetId(actualSheetName), sheetData);\n      }\n      return actualSheetName;\n    } catch (e) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_12__[\"warn\"])(e.message);\n      return false;\n    }\n  }\n\n  /**\n   * Switch the sheet used as data in the Handsontable instance (it loads the data from the shared HyperFormula\n   * instance).\n   *\n   * @param {string} sheetName Sheet name used in the shared HyperFormula instance.\n   */\n  switchSheet(sheetName) {\n    if (!this.engine.doesSheetExist(sheetName)) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_12__[\"error\"])(`The sheet named \\`${sheetName}\\` does not exist, switch aborted.`);\n      return;\n    }\n    this.sheetName = sheetName;\n    const serialized = this.engine.getSheetSerialized(this.sheetId);\n    if (serialized.length > 0) {\n      this.hot.loadData(serialized, `${Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_19__[\"toUpperCaseFirst\"])(PLUGIN_KEY)}.switchSheet`);\n    }\n  }\n\n  /**\n   * Get the cell type under specified visual coordinates.\n   *\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @param {number} [sheet] The target sheet id, defaults to the current sheet.\n   * @returns {string} Possible values: 'FORMULA' | 'VALUE' | 'ARRAYFORMULA' | 'EMPTY'.\n   */\n  getCellType(row, column) {\n    let sheet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.sheetId;\n    const physicalRow = this.hot.toPhysicalRow(row);\n    const physicalColumn = this.hot.toPhysicalColumn(column);\n    if (physicalRow !== null && physicalColumn !== null) {\n      return this.engine.getCellType({\n        sheet,\n        row: this.rowAxisSyncer.getHfIndexFromVisualIndex(row),\n        col: this.columnAxisSyncer.getHfIndexFromVisualIndex(column)\n      });\n    } else {\n      // Should return `EMPTY` when out of bounds (according to the test cases).\n      return 'EMPTY';\n    }\n  }\n\n  /**\n   * Returns `true` if under specified visual coordinates is formula.\n   *\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @param {number} [sheet] The target sheet id, defaults to the current sheet.\n   * @returns {boolean}\n   */\n  isFormulaCellType(row, column) {\n    let sheet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.sheetId;\n    return this.engine.doesCellHaveFormula({\n      sheet,\n      row: this.rowAxisSyncer.getHfIndexFromVisualIndex(row),\n      col: this.columnAxisSyncer.getHfIndexFromVisualIndex(column)\n    });\n  }\n\n  /**\n   * Renders dependent sheets (handsontable instances) based on the changes - list of the\n   * recalculated dependent cells.\n   *\n   * @private\n   * @param {object[]} dependentCells The values and location of applied changes within HF engine.\n   * @param {boolean} [renderSelf] `true` if it's supposed to render itself, `false` otherwise.\n   */\n  renderDependentSheets(dependentCells) {\n    let renderSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    const affectedSheetIds = new Set();\n    dependentCells.forEach(change => {\n      var _change$address;\n      // For the Named expression the address is empty, hence the `sheetId` is undefined.\n      const sheetId = change === null || change === void 0 || (_change$address = change.address) === null || _change$address === void 0 ? void 0 : _change$address.sheet;\n      if (sheetId !== undefined) {\n        if (!affectedSheetIds.has(sheetId)) {\n          affectedSheetIds.add(sheetId);\n        }\n      }\n    });\n    Object(_engine_register_mjs__WEBPACK_IMPORTED_MODULE_15__[\"getRegisteredHotInstances\"])(this.engine).forEach((relatedHot, sheetId) => {\n      if ((renderSelf || sheetId !== this.sheetId) && affectedSheetIds.has(sheetId)) {\n        var _relatedHot$view;\n        relatedHot.render();\n        (_relatedHot$view = relatedHot.view) === null || _relatedHot$view === void 0 || _relatedHot$view.adjustElementsSize();\n      }\n    });\n  }\n\n  /**\n   * Validates dependent cells based on the cells that are modified by the change.\n   *\n   * @private\n   * @param {object[]} dependentCells The values and location of applied changes within HF engine.\n   * @param {object[]} [changedCells] The values and location of applied changes by developer (through API or UI).\n   */\n  validateDependentCells(dependentCells) {\n    let changedCells = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    const stringifyAddress = change => {\n      var _change$address2;\n      const {\n        row,\n        col,\n        sheet\n      } = (_change$address2 = change === null || change === void 0 ? void 0 : change.address) !== null && _change$address2 !== void 0 ? _change$address2 : {};\n      return Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_14__[\"isDefined\"])(sheet) ? `${sheet}:${row}x${col}` : '';\n    };\n    const changedCellsSet = new Set(changedCells.map(change => stringifyAddress(change)));\n    dependentCells.forEach(change => {\n      var _change$address3, _change$address4;\n      const {\n        row,\n        col\n      } = (_change$address3 = change.address) !== null && _change$address3 !== void 0 ? _change$address3 : {};\n\n      // Don't try to validate cells outside of the visual part of the table.\n      if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_14__[\"isDefined\"])(row) === false || Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_14__[\"isDefined\"])(col) === false || row >= this.hot.countRows() || col >= this.hot.countCols()) {\n        return;\n      }\n\n      // For the Named expression the address is empty, hence the `sheetId` is undefined.\n      const sheetId = change === null || change === void 0 || (_change$address4 = change.address) === null || _change$address4 === void 0 ? void 0 : _change$address4.sheet;\n      const addressId = stringifyAddress(change);\n\n      // Validate the cells that depend on the calculated formulas. Skip that cells\n      // where the user directly changes the values - the Core triggers those validators.\n      if (sheetId !== undefined && !changedCellsSet.has(addressId)) {\n        const boundHot = Object(_engine_register_mjs__WEBPACK_IMPORTED_MODULE_15__[\"getRegisteredHotInstances\"])(this.engine).get(sheetId);\n\n        // if `sheetId` is not bound to any Handsontable instance, skip the validation process\n        if (!boundHot) {\n          return;\n        }\n\n        // It will just re-render certain cell when necessary.\n        boundHot.validateCell(boundHot.getDataAtCell(row, col), boundHot.getCellMeta(row, col), () => {});\n      }\n    });\n  }\n\n  /**\n   * Sync a change from the change-related hooks with the engine.\n   *\n   * @private\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @param {Handsontable.CellValue} newValue New value.\n   * @returns {Array} Array of changes exported from the engine.\n   */\n  syncChangeWithEngine(row, column, newValue) {\n    const address = {\n      row: this.rowAxisSyncer.getHfIndexFromVisualIndex(row),\n      col: this.columnAxisSyncer.getHfIndexFromVisualIndex(column),\n      sheet: this.sheetId\n    };\n    if (!this.engine.isItPossibleToSetCellContents(address)) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_12__[\"warn\"])(`Not possible to set cell data at ${JSON.stringify(address)}`);\n      return;\n    }\n    const cellMeta = this.hot.getCellMeta(row, column);\n    if (Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_16__[\"isDate\"])(newValue, cellMeta.type)) {\n      if (Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_16__[\"isDateValid\"])(newValue, cellMeta.dateFormat)) {\n        // Rewriting date in HOT format to HF format.\n        newValue = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_16__[\"getDateInHfFormat\"])(newValue, cellMeta.dateFormat);\n      } else if (Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_16__[\"isFormula\"])(newValue) === false) {\n        // Escaping value from date parsing using \"'\" sign (HF feature).\n        newValue = `'${newValue}`;\n      }\n    }\n    return this.engine.setCellContents(address, newValue);\n  }\n}\nfunction _onBeforeValidate(value, visualRow, prop) {\n  const visualColumn = this.hot.propToCol(prop);\n  if (this.isFormulaCellType(visualRow, visualColumn)) {\n    const address = {\n      row: this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow),\n      col: this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn),\n      sheet: this.sheetId\n    };\n    const cellMeta = this.hot.getCellMeta(visualRow, visualColumn);\n    let cellValue = this.engine.getCellValue(address); // Date as an integer (Excel-like date).\n\n    if (cellMeta.type === 'date' && Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"isNumeric\"])(cellValue)) {\n      cellValue = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_16__[\"getDateFromExcelDate\"])(cellValue, cellMeta.dateFormat);\n    }\n\n    // If `cellValue` is an object it is expected to be an error\n    return typeof cellValue === 'object' && cellValue !== null ? cellValue.value : cellValue;\n  }\n  return value;\n}\n/**\n * `onBeforeAutofill` hook callback.\n *\n * @param {Array[]} fillData The data that was used to fill the `targetRange`. If `beforeAutofill` was used\n * and returned `[[]]`, this will be the same object that was returned from `beforeAutofill`.\n * @param {CellRange} sourceRange The range values will be filled from.\n * @param {CellRange} targetRange The range new values will be filled into.\n * @returns {boolean|*}\n */\nfunction _onBeforeAutofill(fillData, sourceRange, targetRange) {\n  const {\n    row: sourceTopStartRow,\n    col: sourceTopStartColumn\n  } = sourceRange.getTopStartCorner();\n  const {\n    row: sourceBottomEndRow,\n    col: sourceBottomEndColumn\n  } = sourceRange.getBottomEndCorner();\n  const {\n    row: targetTopStartRow,\n    col: targetTopStartColumn\n  } = targetRange.getTopStartCorner();\n  const {\n    row: targetBottomEndRow,\n    col: targetBottomEndColumn\n  } = targetRange.getBottomEndCorner();\n  const engineSourceRange = {\n    start: {\n      row: this.rowAxisSyncer.getHfIndexFromVisualIndex(sourceTopStartRow),\n      col: this.columnAxisSyncer.getHfIndexFromVisualIndex(sourceTopStartColumn),\n      sheet: this.sheetId\n    },\n    end: {\n      row: this.rowAxisSyncer.getHfIndexFromVisualIndex(sourceBottomEndRow),\n      col: this.columnAxisSyncer.getHfIndexFromVisualIndex(sourceBottomEndColumn),\n      sheet: this.sheetId\n    }\n  };\n  const engineTargetRange = {\n    start: {\n      row: this.rowAxisSyncer.getHfIndexFromVisualIndex(targetTopStartRow),\n      col: this.columnAxisSyncer.getHfIndexFromVisualIndex(targetTopStartColumn),\n      sheet: this.sheetId\n    },\n    end: {\n      row: this.rowAxisSyncer.getHfIndexFromVisualIndex(targetBottomEndRow),\n      col: this.columnAxisSyncer.getHfIndexFromVisualIndex(targetBottomEndColumn),\n      sheet: this.sheetId\n    }\n  };\n\n  // Blocks the autofill operation if HyperFormula says that at least one of\n  // the underlying cell's contents cannot be set.\n  if (this.engine.isItPossibleToSetCellContents(engineTargetRange) === false) {\n    return false;\n  }\n  const fillRangeData = this.engine.getFillRangeData(engineSourceRange, engineTargetRange);\n  const {\n    row: sourceStartRow,\n    col: sourceStartColumn\n  } = engineSourceRange.start;\n  const {\n    row: sourceEndRow,\n    col: sourceEndColumn\n  } = engineSourceRange.end;\n  const populationRowLength = sourceEndRow - sourceStartRow + 1;\n  const populationColumnLength = sourceEndColumn - sourceStartColumn + 1;\n  for (let populatedRowIndex = 0; populatedRowIndex < fillRangeData.length; populatedRowIndex += 1) {\n    for (let populatedColumnIndex = 0; populatedColumnIndex < fillRangeData[populatedRowIndex].length; populatedColumnIndex += 1) {\n      const populatedValue = fillRangeData[populatedRowIndex][populatedColumnIndex];\n      const sourceRow = sourceStartRow + populatedRowIndex % populationRowLength;\n      const sourceColumn = sourceStartColumn + populatedColumnIndex % populationColumnLength;\n      const sourceCellMeta = this.hot.getCellMeta(sourceRow, sourceColumn);\n      if (Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_16__[\"isDate\"])(populatedValue, sourceCellMeta.type)) {\n        if (populatedValue.startsWith('\\'')) {\n          // Populating values on HOT side without apostrophe.\n          fillRangeData[populatedRowIndex][populatedColumnIndex] = populatedValue.slice(1);\n        } else if (this.isFormulaCellType(sourceRow, sourceColumn, this.sheetId) === false) {\n          // Populating date in proper format, coming from the source cell.\n          fillRangeData[populatedRowIndex][populatedColumnIndex] = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_16__[\"getDateInHotFormat\"])(populatedValue, sourceCellMeta.dateFormat);\n        }\n      }\n    }\n  }\n  return fillRangeData;\n}\n/**\n * `beforeLoadData` hook callback.\n *\n * @param {Array} sourceData Array of arrays or array of objects containing data.\n * @param {boolean} initialLoad Flag that determines whether the data has been loaded during the initialization.\n * @param {string} [source] Source of the call.\n */\nfunction _onBeforeLoadData(sourceData, initialLoad) {\n  let source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n  if (source.includes(Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_19__[\"toUpperCaseFirst\"])(PLUGIN_KEY))) {\n    return;\n  }\n\n  // This flag needs to be defined, because not passing data to HOT results in HOT auto-generating a `null`-filled\n  // initial dataset.\n  _classPrivateFieldSet(_hotWasInitializedWithEmptyData, this, Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_14__[\"isUndefined\"])(this.hot.getSettings().data));\n}\n/**\n * Callback to `afterCellMetaReset` hook which is triggered after setting cell meta.\n */\nfunction _onAfterCellMetaReset() {\n  const sourceDataArray = this.hot.getSourceDataArray();\n  let valueChanged = false;\n  sourceDataArray.forEach((rowData, rowIndex) => {\n    rowData.forEach((cellValue, columnIndex) => {\n      const cellMeta = this.hot.getCellMeta(rowIndex, columnIndex);\n      const dateFormat = cellMeta.dateFormat;\n      if (Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_16__[\"isDate\"])(cellValue, cellMeta.type)) {\n        valueChanged = true;\n        if (Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_16__[\"isDateValid\"])(cellValue, dateFormat)) {\n          // Rewriting date in HOT format to HF format.\n          sourceDataArray[rowIndex][columnIndex] = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_16__[\"getDateInHfFormat\"])(cellValue, dateFormat);\n        } else if (this.isFormulaCellType(rowIndex, columnIndex) === false) {\n          // Escaping value from date parsing using \"'\" sign (HF feature).\n          sourceDataArray[rowIndex][columnIndex] = `'${cellValue}`;\n        }\n      }\n    });\n  });\n  if (valueChanged === true) {\n    _classPrivateFieldSet(_internalOperationPending, this, true);\n    this.engine.setSheetContent(this.sheetId, sourceDataArray);\n    _classPrivateFieldSet(_internalOperationPending, this, false);\n  }\n}\n/**\n * `afterLoadData` hook callback.\n *\n * @param {Array} sourceData Array of arrays or array of objects containing data.\n * @param {boolean} initialLoad Flag that determines whether the data has been loaded during the initialization.\n * @param {string} [source] Source of the call.\n */\nfunction _onAfterLoadData(sourceData, initialLoad) {\n  let source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n  if (source.includes(Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_19__[\"toUpperCaseFirst\"])(PLUGIN_KEY))) {\n    return;\n  }\n  this.sheetName = Object(_engine_register_mjs__WEBPACK_IMPORTED_MODULE_15__[\"setupSheet\"])(this.engine, this.hot.getSettings()[PLUGIN_KEY].sheetName);\n  if (!_classPrivateFieldGet(_hotWasInitializedWithEmptyData, this)) {\n    const sourceDataArray = this.hot.getSourceDataArray();\n    if (this.engine.isItPossibleToReplaceSheetContent(this.sheetId, sourceDataArray)) {\n      _classPrivateFieldSet(_internalOperationPending, this, true);\n      const dependentCells = this.engine.setSheetContent(this.sheetId, sourceDataArray);\n      this.indexSyncer.setupSyncEndpoint(this.engine, this.sheetId);\n      this.renderDependentSheets(dependentCells);\n      _classPrivateFieldSet(_internalOperationPending, this, false);\n    }\n  } else {\n    this.switchSheet(this.sheetName);\n  }\n}\n/**\n * `modifyData` hook callback.\n *\n * @param {number} physicalRow Physical row index.\n * @param {number} visualColumn Visual column index.\n * @param {object} valueHolder Object which contains original value which can be modified by overwriting `.value`\n *   property.\n * @param {string} ioMode String which indicates for what operation hook is fired (`get` or `set`).\n */\nfunction _onModifyData(physicalRow, visualColumn, valueHolder, ioMode) {\n  if (ioMode !== 'get' || _classPrivateFieldGet(_internalOperationPending, this) || this.sheetName === null || !this.engine.doesSheetExist(this.sheetName)) {\n    return;\n  }\n  const visualRow = this.hot.toVisualRow(physicalRow);\n  if (visualRow === null || visualColumn === null) {\n    return;\n  }\n\n  // `column` is here as visual index because of inconsistencies related to hook execution in `src/dataMap`.\n  const isFormulaCellType = this.isFormulaCellType(visualRow, visualColumn);\n  if (!isFormulaCellType) {\n    const cellType = this.getCellType(visualRow, visualColumn);\n    if (cellType !== 'ARRAY') {\n      if (Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_16__[\"isEscapedFormulaExpression\"])(valueHolder.value)) {\n        valueHolder.value = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_16__[\"unescapeFormulaExpression\"])(valueHolder.value);\n      }\n      return;\n    }\n  }\n  const address = {\n    row: this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow),\n    col: this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn),\n    sheet: this.sheetId\n  };\n  let cellValue = this.engine.getCellValue(address); // Date as an integer (Excel like date).\n\n  // TODO: Workaround. We use HOT's `getCellsMeta` method instead of HOT's `getCellMeta` method. Getting cell meta\n  // using the second method lead to execution of the `cells` method. Using the `getDataAtCell` (which may be useful)\n  // in a callback to the `cells` method leads to triggering the `modifyData` hook. Thus, the `onModifyData` callback\n  // is executed once again and it cause creation of an infinite loop.\n  let cellMeta = this.hot.getCellsMeta().find(singleCellMeta => singleCellMeta.visualRow === visualRow && singleCellMeta.visualCol === visualColumn);\n  if (cellMeta === undefined) {\n    cellMeta = {};\n  }\n  if (cellMeta.type === 'date' && Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"isNumeric\"])(cellValue)) {\n    cellValue = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_16__[\"getDateFromExcelDate\"])(cellValue, cellMeta.dateFormat);\n  }\n\n  // If `cellValue` is an object it is expected to be an error\n  const value = typeof cellValue === 'object' && cellValue !== null ? cellValue.value : cellValue;\n  valueHolder.value = value;\n}\n/**\n * `modifySourceData` hook callback.\n *\n * @param {number} row Physical row index.\n * @param {number|string} columnOrProp Physical column index or prop.\n * @param {object} valueHolder Object which contains original value which can be modified by overwriting `.value`\n *   property.\n * @param {string} ioMode String which indicates for what operation hook is fired (`get` or `set`).\n */\nfunction _onModifySourceData(row, columnOrProp, valueHolder, ioMode) {\n  if (ioMode !== 'get' || _classPrivateFieldGet(_internalOperationPending, this) || this.sheetName === null || !this.engine.doesSheetExist(this.sheetName)) {\n    return;\n  }\n  const visualRow = this.hot.toVisualRow(row);\n  const visualColumn = this.hot.propToCol(columnOrProp);\n  if (visualRow === null || visualColumn === null) {\n    return;\n  }\n\n  // `column` is here as visual index because of inconsistencies related to hook execution in `src/dataMap`.\n  const isFormulaCellType = this.isFormulaCellType(visualRow, visualColumn);\n  if (!isFormulaCellType) {\n    const cellType = this.getCellType(visualRow, visualColumn);\n    if (cellType !== 'ARRAY') {\n      return;\n    }\n  }\n  const dimensions = this.engine.getSheetDimensions(this.engine.getSheetId(this.sheetName));\n\n  // Don't actually change the source data if HyperFormula is not\n  // initialized yet. This is done to allow the `afterLoadData` hook to\n  // load the existing source data with `Handsontable#getSourceDataArray`\n  // properly.\n  if (dimensions.width === 0 && dimensions.height === 0) {\n    return;\n  }\n  const address = {\n    row: this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow),\n    col: this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn),\n    sheet: this.sheetId\n  };\n  valueHolder.value = this.engine.getCellSerialized(address);\n}\n/**\n * `onAfterSetDataAtCell` hook callback.\n *\n * @param {Array[]} changes An array of changes in format [[row, prop, oldValue, value], ...].\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).\n */\nfunction _onAfterSetDataAtCell(changes, source) {\n  if (isBlockedSource(source)) {\n    return;\n  }\n  const outOfBoundsChanges = [];\n  const changedCells = [];\n  const dependentCells = this.engine.batch(() => {\n    changes.forEach(_ref4 => {\n      let [visualRow, prop,, newValue] = _ref4;\n      const visualColumn = this.hot.propToCol(prop);\n      const physicalRow = this.hot.toPhysicalRow(visualRow);\n      const physicalColumn = this.hot.toPhysicalColumn(visualColumn);\n      const address = {\n        row: this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow),\n        col: this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn),\n        sheet: this.sheetId\n      };\n      if (physicalRow !== null && physicalColumn !== null) {\n        this.syncChangeWithEngine(visualRow, visualColumn, newValue);\n      } else {\n        outOfBoundsChanges.push([visualRow, visualColumn, newValue]);\n      }\n      changedCells.push({\n        address\n      });\n    });\n  });\n  if (outOfBoundsChanges.length) {\n    // Workaround for rows/columns being created two times (by HOT and the engine).\n    // (unfortunately, this requires an extra re-render)\n    this.hot.addHookOnce('afterChange', () => {\n      const outOfBoundsDependentCells = this.engine.batch(() => {\n        outOfBoundsChanges.forEach(_ref5 => {\n          let [row, column, newValue] = _ref5;\n          this.syncChangeWithEngine(row, column, newValue);\n        });\n      });\n      this.renderDependentSheets(outOfBoundsDependentCells, true);\n    });\n  }\n  this.renderDependentSheets(dependentCells);\n  this.validateDependentCells(dependentCells, changedCells);\n}\n/**\n * `onAfterSetSourceDataAtCell` hook callback.\n *\n * @param {Array[]} changes An array of changes in format [[row, column, oldValue, value], ...].\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).\n */\nfunction _onAfterSetSourceDataAtCell(changes, source) {\n  if (isBlockedSource(source)) {\n    return;\n  }\n  const dependentCells = [];\n  const changedCells = [];\n  changes.forEach(_ref6 => {\n    let [visualRow, prop,, newValue] = _ref6;\n    const visualColumn = this.hot.propToCol(prop);\n    if (!Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"isNumeric\"])(visualColumn)) {\n      return;\n    }\n    const address = {\n      row: this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow),\n      col: this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn),\n      sheet: this.sheetId\n    };\n    if (!this.engine.isItPossibleToSetCellContents(address)) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_12__[\"warn\"])(`Not possible to set source cell data at ${JSON.stringify(address)}`);\n      return;\n    }\n    changedCells.push({\n      address\n    });\n    dependentCells.push(...this.engine.setCellContents(address, newValue));\n  });\n  this.renderDependentSheets(dependentCells);\n  this.validateDependentCells(dependentCells, changedCells);\n}\n/**\n * `beforeCreateRow` hook callback.\n *\n * @param {number} visualRow Represents the visual index of first newly created row in the data source array.\n * @param {number} amount Number of newly created rows in the data source array.\n * @returns {*|boolean} If false is returned the action is canceled.\n */\nfunction _onBeforeCreateRow(visualRow, amount) {\n  let hfRowIndex = this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow);\n  if (visualRow >= this.hot.countRows()) {\n    hfRowIndex = visualRow; // Row beyond the table boundaries.\n  }\n  if (this.sheetId === null || !this.engine.doesSheetExist(this.sheetName) || !this.engine.isItPossibleToAddRows(this.sheetId, [hfRowIndex, amount])) {\n    return false;\n  }\n}\n/**\n * `beforeCreateCol` hook callback.\n *\n * @param {number} visualColumn Represents the visual index of first newly created column in the data source.\n * @param {number} amount Number of newly created columns in the data source.\n * @returns {*|boolean} If false is returned the action is canceled.\n */\nfunction _onBeforeCreateCol(visualColumn, amount) {\n  let hfColumnIndex = this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn);\n  if (visualColumn >= this.hot.countCols()) {\n    hfColumnIndex = visualColumn; // Column beyond the table boundaries.\n  }\n  if (this.sheetId === null || !this.engine.doesSheetExist(this.sheetName) || !this.engine.isItPossibleToAddColumns(this.sheetId, [hfColumnIndex, amount])) {\n    return false;\n  }\n}\n/**\n * `beforeRemoveRow` hook callback.\n *\n * @param {number} row Visual index of starter row.\n * @param {number} amount Amount of rows to be removed.\n * @param {number[]} physicalRows An array of physical rows removed from the data source.\n * @returns {*|boolean} If false is returned the action is canceled.\n */\nfunction _onBeforeRemoveRow(row, amount, physicalRows) {\n  const hfRows = this.rowAxisSyncer.setRemovedHfIndexes(physicalRows);\n  const possible = hfRows.every(hfRow => {\n    return this.engine.isItPossibleToRemoveRows(this.sheetId, [hfRow, 1]);\n  });\n  return possible === false ? false : undefined;\n}\n/**\n * `beforeRemoveCol` hook callback.\n *\n * @param {number} col Visual index of starter column.\n * @param {number} amount Amount of columns to be removed.\n * @param {number[]} physicalColumns An array of physical columns removed from the data source.\n * @returns {*|boolean} If false is returned the action is canceled.\n */\nfunction _onBeforeRemoveCol(col, amount, physicalColumns) {\n  const hfColumns = this.columnAxisSyncer.setRemovedHfIndexes(physicalColumns);\n  const possible = hfColumns.every(hfColumn => {\n    return this.engine.isItPossibleToRemoveColumns(this.sheetId, [hfColumn, 1]);\n  });\n  return possible === false ? false : undefined;\n}\n/**\n * `afterCreateRow` hook callback.\n *\n * @param {number} visualRow Represents the visual index of first newly created row in the data source array.\n * @param {number} amount Number of newly created rows in the data source array.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).\n */\nfunction _onAfterCreateRow(visualRow, amount, source) {\n  if (isBlockedSource(source)) {\n    return;\n  }\n  const changes = this.engine.addRows(this.sheetId, [this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow), amount]);\n  this.renderDependentSheets(changes);\n}\n/**\n * `afterCreateCol` hook callback.\n *\n * @param {number} visualColumn Represents the visual index of first newly created column in the data source.\n * @param {number} amount Number of newly created columns in the data source.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).\n */\nfunction _onAfterCreateCol(visualColumn, amount, source) {\n  if (isBlockedSource(source)) {\n    return;\n  }\n  const changes = this.engine.addColumns(this.sheetId, [this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn), amount]);\n  this.renderDependentSheets(changes);\n}\n/**\n * `afterRemoveRow` hook callback.\n *\n * @param {number} row Visual index of starter row.\n * @param {number} amount An amount of removed rows.\n * @param {number[]} physicalRows An array of physical rows removed from the data source.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).\n */\nfunction _onAfterRemoveRow(row, amount, physicalRows, source) {\n  if (isBlockedSource(source)) {\n    return;\n  }\n  const descendingHfRows = this.rowAxisSyncer.getRemovedHfIndexes().sort((a, b) => b - a); // sort numeric values descending\n\n  const changes = this.engine.batch(() => {\n    descendingHfRows.forEach(hfRow => {\n      this.engine.removeRows(this.sheetId, [hfRow, 1]);\n    });\n  });\n  this.renderDependentSheets(changes);\n}\n/**\n * `afterRemoveCol` hook callback.\n *\n * @param {number} col Visual index of starter column.\n * @param {number} amount An amount of removed columns.\n * @param {number[]} physicalColumns An array of physical columns removed from the data source.\n * @param {string} [source] String that identifies source of hook call\n *                          ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).\n */\nfunction _onAfterRemoveCol(col, amount, physicalColumns, source) {\n  if (isBlockedSource(source)) {\n    return;\n  }\n  const descendingHfColumns = this.columnAxisSyncer.getRemovedHfIndexes().sort((a, b) => b - a); // sort numeric values descending\n\n  const changes = this.engine.batch(() => {\n    descendingHfColumns.forEach(hfColumn => {\n      this.engine.removeColumns(this.sheetId, [hfColumn, 1]);\n    });\n  });\n  this.renderDependentSheets(changes);\n}\n/**\n * `afterDetachChild` hook callback.\n * Used to sync the data of the rows detached in the Nested Rows plugin with the engine's dataset.\n *\n * @param {object} parent An object representing the parent from which the element was detached.\n * @param {object} element The detached element.\n * @param {number} finalElementRowIndex The final row index of the detached element.\n */\nfunction _onAfterDetachChild(parent, element, finalElementRowIndex) {\n  var _element$__children;\n  _classPrivateFieldSet(_internalOperationPending, this, true);\n  const rowsData = this.hot.getSourceDataArray(finalElementRowIndex, 0, finalElementRowIndex + (((_element$__children = element.__children) === null || _element$__children === void 0 ? void 0 : _element$__children.length) || 0), this.hot.countSourceCols());\n  _classPrivateFieldSet(_internalOperationPending, this, false);\n  rowsData.forEach((row, relativeRowIndex) => {\n    row.forEach((value, colIndex) => {\n      this.engine.setCellContents({\n        col: colIndex,\n        row: finalElementRowIndex + relativeRowIndex,\n        sheet: this.sheetId\n      }, [[value]]);\n    });\n  });\n}\n/**\n * Called when a value is updated in the engine.\n *\n * @fires Hooks#afterFormulasValuesUpdate\n * @param {Array} changes The values and location of applied changes.\n */\nfunction _onEngineValuesUpdated(changes) {\n  this.hot.runHooks('afterFormulasValuesUpdate', changes);\n}\n/**\n * Called when a named expression is added to the engine instance.\n *\n * @fires Hooks#afterNamedExpressionAdded\n * @param {string} namedExpressionName The name of the added expression.\n * @param {Array} changes The values and location of applied changes.\n */\nfunction _onEngineNamedExpressionsAdded(namedExpressionName, changes) {\n  this.hot.runHooks('afterNamedExpressionAdded', namedExpressionName, changes);\n}\n/**\n * Called when a named expression is removed from the engine instance.\n *\n * @fires Hooks#afterNamedExpressionRemoved\n * @param {string} namedExpressionName The name of the removed expression.\n * @param {Array} changes The values and location of applied changes.\n */\nfunction _onEngineNamedExpressionsRemoved(namedExpressionName, changes) {\n  this.hot.runHooks('afterNamedExpressionRemoved', namedExpressionName, changes);\n}\n/**\n * Called when a new sheet is added to the engine instance.\n *\n * @fires Hooks#afterSheetAdded\n * @param {string} addedSheetDisplayName The name of the added sheet.\n */\nfunction _onEngineSheetAdded(addedSheetDisplayName) {\n  this.hot.runHooks('afterSheetAdded', addedSheetDisplayName);\n}\n/**\n * Called when a sheet in the engine instance is renamed.\n *\n * @fires Hooks#afterSheetRenamed\n * @param {string} oldDisplayName The old name of the sheet.\n * @param {string} newDisplayName The new name of the sheet.\n */\nfunction _onEngineSheetRenamed(oldDisplayName, newDisplayName) {\n  this.sheetName = newDisplayName;\n  this.hot.runHooks('afterSheetRenamed', oldDisplayName, newDisplayName);\n}\n/**\n * Called when a sheet is removed from the engine instance.\n *\n * @fires Hooks#afterSheetRemoved\n * @param {string} removedSheetDisplayName The removed sheet name.\n * @param {Array} changes The values and location of applied changes.\n */\nfunction _onEngineSheetRemoved(removedSheetDisplayName, changes) {\n  this.hot.runHooks('afterSheetRemoved', removedSheetDisplayName, changes);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/formulas/formulas.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/formulas/index.mjs":
/*!**************************************************************!*\
  !*** ./node_modules/handsontable/plugins/formulas/index.mjs ***!
  \**************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, Formulas */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _formulas_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formulas.mjs */ \"./node_modules/handsontable/plugins/formulas/formulas.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _formulas_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _formulas_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Formulas\", function() { return _formulas_mjs__WEBPACK_IMPORTED_MODULE_0__[\"Formulas\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/formulas/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/formulas/indexSyncer/axisSyncer.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/formulas/indexSyncer/axisSyncer.mjs ***!
  \*******************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_string_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/string.mjs */ \"./node_modules/handsontable/helpers/string.mjs\");\n/* harmony import */ var _helpers_moves_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/moves.mjs */ \"./node_modules/handsontable/helpers/moves.mjs\");\n\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n/**\n * @private\n * @class IndexSyncer\n * @description\n *\n * Indexes synchronizer responsible for providing logic for particular axis. It respects an idea to represent trimmed\n * elements in HF's engine to perform formulas calculations on them. It also provides method for translation from visual\n * row/column indexes to HF's row/column indexes.\n */\nvar _axis = /*#__PURE__*/new WeakMap();\nvar _indexMapper = /*#__PURE__*/new WeakMap();\nvar _indexSyncer = /*#__PURE__*/new WeakMap();\nvar _indexesSequence = /*#__PURE__*/new WeakMap();\nvar _movedIndexes = /*#__PURE__*/new WeakMap();\nvar _finalIndex = /*#__PURE__*/new WeakMap();\nvar _removedIndexes = /*#__PURE__*/new WeakMap();\nclass AxisSyncer {\n  constructor(axis, indexMapper, indexSyncer) {\n    /**\n     * The axis for which the actions are performed.\n     *\n     * @private\n     * @type {'row'|'column'}\n     */\n    _classPrivateFieldInitSpec(this, _axis, void 0);\n    /**\n     * Reference to index mapper.\n     *\n     * @private\n     * @type {IndexMapper}\n     */\n    _classPrivateFieldInitSpec(this, _indexMapper, void 0);\n    /**\n     * The index synchronizer for both axis (is storing some more general information).\n     *\n     * @private\n     * @type {IndexSyncer}\n     */\n    _classPrivateFieldInitSpec(this, _indexSyncer, void 0);\n    /**\n     * Sequence of physical indexes stored for watching changes and calculating some transformations.\n     *\n     * @private\n     * @type {Array<number>}\n     */\n    _classPrivateFieldInitSpec(this, _indexesSequence, []);\n    /**\n     * List of moved HF indexes, stored before performing move on HOT to calculate transformation needed on HF's engine.\n     *\n     * @private\n     * @type {Array<number>}\n     */\n    _classPrivateFieldInitSpec(this, _movedIndexes, []);\n    /**\n     * Final HF's place where to move indexes, stored before performing move on HOT to calculate transformation needed on HF's engine.\n     *\n     * @private\n     * @type {number|undefined}\n     */\n    _classPrivateFieldInitSpec(this, _finalIndex, void 0);\n    /**\n     * List of removed HF indexes, stored before performing removal on HOT to calculate transformation needed on HF's engine.\n     *\n     * @private\n     * @type {Array<number>}\n     */\n    _classPrivateFieldInitSpec(this, _removedIndexes, []);\n    _classPrivateFieldSet(_axis, this, axis);\n    _classPrivateFieldSet(_indexMapper, this, indexMapper);\n    _classPrivateFieldSet(_indexSyncer, this, indexSyncer);\n  }\n\n  /**\n   * Sets removed HF indexes (it should be done right before performing move on HOT).\n   *\n   * @param {Array<number>} removedIndexes List of removed physical indexes.\n   * @returns {Array<number>} List of removed visual indexes.\n   */\n  setRemovedHfIndexes(removedIndexes) {\n    _classPrivateFieldSet(_removedIndexes, this, removedIndexes.map(physicalIndex => {\n      const visualIndex = _classPrivateFieldGet(_indexMapper, this).getVisualFromPhysicalIndex(physicalIndex);\n      return this.getHfIndexFromVisualIndex(visualIndex);\n    }));\n    return _classPrivateFieldGet(_removedIndexes, this);\n  }\n\n  /**\n   * Gets removed HF indexes (right before performing removal on HOT).\n   *\n   * @returns {Array<number>} List of removed HF indexes.\n   */\n  getRemovedHfIndexes() {\n    return _classPrivateFieldGet(_removedIndexes, this);\n  }\n\n  /**\n   * Gets corresponding HyperFormula index for particular visual index. It's respecting the idea that HF's engine\n   * is fed also with trimmed indexes (business requirements for formula result calculation also for trimmed elements).\n   *\n   * @param {number} visualIndex Visual index.\n   * @returns {number}\n   */\n  getHfIndexFromVisualIndex(visualIndex) {\n    const indexesSequence = _classPrivateFieldGet(_indexMapper, this).getIndexesSequence();\n    const notTrimmedIndexes = _classPrivateFieldGet(_indexMapper, this).getNotTrimmedIndexes();\n    return indexesSequence.indexOf(notTrimmedIndexes[visualIndex]);\n  }\n\n  /**\n   * Synchronizes moves done on HOT to HF engine (based on previously calculated positions).\n   *\n   * @private\n   * @param {Array<{from: number, to: number}>} moves Calculated HF's move positions.\n   */\n  syncMoves(moves) {\n    const NUMBER_OF_MOVED_INDEXES = 1;\n    const SYNC_MOVE_METHOD_NAME = `move${Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_2__[\"toUpperCaseFirst\"])(_classPrivateFieldGet(_axis, this))}s`;\n    _classPrivateFieldGet(_indexSyncer, this).getEngine().batch(() => {\n      moves.forEach(move => {\n        const moveToTheSamePosition = move.from !== move.to;\n        // Moving from left to right (or top to bottom) to a line (drop index) right after already moved element.\n        const anotherMoveWithoutEffect = move.from + 1 !== move.to;\n        if (moveToTheSamePosition && anotherMoveWithoutEffect) {\n          _classPrivateFieldGet(_indexSyncer, this).getEngine()[SYNC_MOVE_METHOD_NAME](_classPrivateFieldGet(_indexSyncer, this).getSheetId(), move.from, NUMBER_OF_MOVED_INDEXES, move.to);\n        }\n      });\n    });\n  }\n\n  /**\n   * Stores information about performed HOT moves for purpose of calculating where to move HF elements.\n   *\n   * @param {Array<number>} movedVisualIndexes Sequence of moved visual indexes for certain axis.\n   * @param {number} visualFinalIndex Final visual place where to move HOT indexes.\n   * @param {boolean} movePossible Indicates if it's possible to move HOT indexes to the desired position.\n   */\n  storeMovesInformation(movedVisualIndexes, visualFinalIndex, movePossible) {\n    if (movePossible === false) {\n      return;\n    }\n    _classPrivateFieldSet(_movedIndexes, this, movedVisualIndexes.map(index => this.getHfIndexFromVisualIndex(index)));\n    _classPrivateFieldSet(_finalIndex, this, this.getHfIndexFromVisualIndex(visualFinalIndex));\n  }\n\n  /**\n   * Calculating where to move HF elements and performing already calculated moves.\n   *\n   * @param {boolean} movePossible Indicates if it was possible to move HOT indexes to the desired position.\n   * @param {boolean} orderChanged Indicates if order of HOT indexes was changed by move.\n   */\n  calculateAndSyncMoves(movePossible, orderChanged) {\n    if (_classPrivateFieldGet(_indexSyncer, this).isPerformingUndoRedo()) {\n      return;\n    }\n    if (movePossible === false || orderChanged === false) {\n      return;\n    }\n    const calculatedMoves = Object(_helpers_moves_mjs__WEBPACK_IMPORTED_MODULE_3__[\"getMoves\"])(_classPrivateFieldGet(_movedIndexes, this), _classPrivateFieldGet(_finalIndex, this), _classPrivateFieldGet(_indexMapper, this).getNumberOfIndexes());\n    if (_classPrivateFieldGet(_indexSyncer, this).getSheetId() === null) {\n      _classPrivateFieldGet(_indexSyncer, this).getPostponeAction(() => this.syncMoves(calculatedMoves));\n    } else {\n      this.syncMoves(calculatedMoves);\n    }\n  }\n\n  /**\n   * Gets callback for hook triggered after performing change of indexes order.\n   *\n   * @returns {Function}\n   */\n  getIndexesChangeSyncMethod() {\n    const SYNC_ORDER_CHANGE_METHOD_NAME = `set${Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_2__[\"toUpperCaseFirst\"])(_classPrivateFieldGet(_axis, this))}Order`;\n    return source => {\n      if (_classPrivateFieldGet(_indexSyncer, this).isPerformingUndoRedo()) {\n        return;\n      }\n      const newSequence = _classPrivateFieldGet(_indexMapper, this).getIndexesSequence();\n      if (source === 'update' && newSequence.length > 0) {\n        const relativeTransformation = _classPrivateFieldGet(_indexesSequence, this).map(index => newSequence.indexOf(index));\n        const sheetDimensions = _classPrivateFieldGet(_indexSyncer, this).getEngine().getSheetDimensions(_classPrivateFieldGet(_indexSyncer, this).getSheetId());\n        let sizeForAxis;\n        if (_classPrivateFieldGet(_axis, this) === 'row') {\n          sizeForAxis = sheetDimensions.height;\n        } else {\n          sizeForAxis = sheetDimensions.width;\n        }\n        const numberOfReorganisedIndexes = relativeTransformation.length;\n\n        // Sheet dimension can be changed by HF's engine for purpose of calculating values. It extends dependency\n        // graph to calculate values outside of a defined dataset. This part of code could be removed after resolving\n        // feature request from HF issue board (handsontable/hyperformula#1179).\n        for (let i = numberOfReorganisedIndexes; i < sizeForAxis; i += 1) {\n          relativeTransformation.push(i);\n        }\n        _classPrivateFieldGet(_indexSyncer, this).getEngine()[SYNC_ORDER_CHANGE_METHOD_NAME](_classPrivateFieldGet(_indexSyncer, this).getSheetId(), relativeTransformation);\n      }\n      _classPrivateFieldSet(_indexesSequence, this, newSequence);\n    };\n  }\n\n  /**\n   * Initialize the AxisSyncer.\n   */\n  init() {\n    _classPrivateFieldSet(_indexesSequence, this, _classPrivateFieldGet(_indexMapper, this).getIndexesSequence());\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (AxisSyncer);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/formulas/indexSyncer/axisSyncer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/formulas/indexSyncer/index.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/formulas/indexSyncer/index.mjs ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _axisSyncer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./axisSyncer.mjs */ \"./node_modules/handsontable/plugins/formulas/indexSyncer/axisSyncer.mjs\");\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n/**\n * @private\n * @class IndexSyncer\n * @description\n *\n * Indexes synchronizer responsible for providing logic for syncing actions done on indexes for HOT to actions performed\n * on HF's.\n *\n */\nvar _rowIndexSyncer = /*#__PURE__*/new WeakMap();\nvar _columnIndexSyncer = /*#__PURE__*/new WeakMap();\nvar _postponeAction = /*#__PURE__*/new WeakMap();\nvar _isPerformingUndo = /*#__PURE__*/new WeakMap();\nvar _isPerformingRedo = /*#__PURE__*/new WeakMap();\nvar _engine = /*#__PURE__*/new WeakMap();\nvar _sheetId = /*#__PURE__*/new WeakMap();\nclass IndexSyncer {\n  constructor(rowIndexMapper, columnIndexMapper, postponeAction) {\n    /**\n     * Indexes synchronizer for the axis of the rows.\n     *\n     * @private\n     * @type {AxisSyncer}\n     */\n    _classPrivateFieldInitSpec(this, _rowIndexSyncer, void 0);\n    /**\n     * Indexes synchronizer for the axis of the columns.\n     *\n     * @private\n     * @type {AxisSyncer}\n     */\n    _classPrivateFieldInitSpec(this, _columnIndexSyncer, void 0);\n    /**\n     * Method which will postpone execution of some action (needed when synchronization endpoint isn't setup yet).\n     *\n     * @private\n     * @type {Function}\n     */\n    _classPrivateFieldInitSpec(this, _postponeAction, void 0);\n    /**\n     * Flag informing whether undo is already performed (we don't perform synchronization in such case).\n     *\n     * @private\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _isPerformingUndo, false);\n    /**\n     * Flag informing whether redo is already performed (we don't perform synchronization in such case).\n     *\n     * @private\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _isPerformingRedo, false);\n    /**\n     * The HF's engine instance which will be synced.\n     *\n     * @private\n     * @type {HyperFormula|null}\n     */\n    _classPrivateFieldInitSpec(this, _engine, null);\n    /**\n     * HyperFormula's sheet name.\n     *\n     * @private\n     * @type {string|null}\n     */\n    _classPrivateFieldInitSpec(this, _sheetId, null);\n    _classPrivateFieldSet(_rowIndexSyncer, this, new _axisSyncer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('row', rowIndexMapper, this));\n    _classPrivateFieldSet(_columnIndexSyncer, this, new _axisSyncer_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('column', columnIndexMapper, this));\n    _classPrivateFieldSet(_postponeAction, this, postponeAction);\n  }\n\n  /**\n   * Gets index synchronizer for a particular axis.\n   *\n   * @param {'row'|'column'} indexType Type of indexes.\n   * @returns {AxisSyncer}\n   */\n  getForAxis(indexType) {\n    if (indexType === 'row') {\n      return _classPrivateFieldGet(_rowIndexSyncer, this);\n    }\n    return _classPrivateFieldGet(_columnIndexSyncer, this);\n  }\n\n  /**\n   * Sets flag informing whether an undo action is already performed (we don't execute synchronization in such case).\n   *\n   * @param {boolean} flagValue Boolean value for the flag.\n   */\n  setPerformUndo(flagValue) {\n    _classPrivateFieldSet(_isPerformingUndo, this, flagValue);\n  }\n\n  /**\n   * Sets flag informing whether a redo action is already performed (we don't execute synchronization in such case).\n   *\n   * @param {boolean} flagValue Boolean value for the flag.\n   */\n  setPerformRedo(flagValue) {\n    _classPrivateFieldSet(_isPerformingRedo, this, flagValue);\n  }\n\n  /**\n   * Gets information whether redo or undo action is already performed (we don't execute synchronization in such case).\n   *\n   * @private\n   * @returns {boolean}\n   */\n  isPerformingUndoRedo() {\n    return _classPrivateFieldGet(_isPerformingUndo, this) || _classPrivateFieldGet(_isPerformingRedo, this);\n  }\n\n  /**\n   * Gets HyperFormula's sheet id.\n   *\n   * @returns {string|null}\n   */\n  getSheetId() {\n    return _classPrivateFieldGet(_sheetId, this);\n  }\n\n  /**\n   * Gets engine instance that will be used for handled instance of Handsontable.\n   *\n   * @type {HyperFormula|null}\n   */\n  getEngine() {\n    return _classPrivateFieldGet(_engine, this);\n  }\n\n  /**\n   * Gets method which will postpone execution of some action (needed when synchronization endpoint isn't setup yet).\n   *\n   * @returns {Function}\n   */\n  getPostponeAction() {\n    return _classPrivateFieldGet(_postponeAction, this);\n  }\n\n  /**\n   * Setups a synchronization endpoint.\n   *\n   * @param {HyperFormula|null} engine The HF's engine instance which will be synced.\n   * @param {string|null} sheetId HyperFormula's sheet name.\n   */\n  setupSyncEndpoint(engine, sheetId) {\n    _classPrivateFieldSet(_engine, this, engine);\n    _classPrivateFieldSet(_sheetId, this, sheetId);\n    _classPrivateFieldGet(_rowIndexSyncer, this).init();\n    _classPrivateFieldGet(_columnIndexSyncer, this).init();\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (IndexSyncer);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/formulas/indexSyncer/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/formulas/utils.mjs":
/*!**************************************************************!*\
  !*** ./node_modules/handsontable/plugins/formulas/utils.mjs ***!
  \**************************************************************/
/*! exports provided: isEscapedFormulaExpression, unescapeFormulaExpression, isFormula, isDate, isDateValid, getDateInHfFormat, getDateInHotFormat, getDateFromExcelDate */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isEscapedFormulaExpression\", function() { return isEscapedFormulaExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unescapeFormulaExpression\", function() { return unescapeFormulaExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFormula\", function() { return isFormula; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDate\", function() { return isDate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDateValid\", function() { return isDateValid; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDateInHfFormat\", function() { return getDateInHfFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDateInHotFormat\", function() { return getDateInHotFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDateFromExcelDate\", function() { return getDateFromExcelDate; });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n\nconst DEFAULT_DATE_FORMAT_HYPERFORMULA = 'DD/MM/YYYY';\n\n/**\n * Checks if provided formula expression is escaped.\n *\n * @param {*} expression Expression to check.\n * @returns {boolean}\n */\nfunction isEscapedFormulaExpression(expression) {\n  return typeof expression === 'string' && expression.charAt(0) === '\\'' && expression.charAt(1) === '=';\n}\n\n/**\n * Replaces escaped formula expression into valid non-unescaped string.\n *\n * @param {string} expression Expression to process.\n * @returns {string}\n */\nfunction unescapeFormulaExpression(expression) {\n  return isEscapedFormulaExpression(expression) ? expression.substr(1) : expression;\n}\n\n/**\n * Checks whether string looks like formula or not. Corresponds to {@link https://hyperformula.handsontable.com/api/globals.html#isformula|HyperFormula's implementation}.\n *\n * @param {string} value Checked value.\n * @returns {boolean}\n */\nfunction isFormula(value) {\n  return typeof value === 'string' && value.startsWith('=');\n}\n\n/**\n * Checks if provided value is a date according to cell meta.\n *\n * @param {*} value Checked value.\n * @param {string} cellType Type of a cell.\n * @returns {boolean}\n */\nfunction isDate(value, cellType) {\n  return typeof value === 'string' && cellType === 'date';\n}\n\n/**\n * Checks if provided date is a valid date according to cell date format.\n *\n * @param {*} date Checked date.\n * @param {object} dateFormat Handled format for a date.\n * @returns {boolean}\n */\nfunction isDateValid(date, dateFormat) {\n  return moment__WEBPACK_IMPORTED_MODULE_0__(date, dateFormat, true).isValid();\n}\n\n/**\n * Returns date formatted in HF's default format.\n *\n * @param {string} date Date formatted according to Handsontable cell date format.\n * @param {string} dateFormat The format used for the date passed.\n * @returns {string}\n */\nfunction getDateInHfFormat(date, dateFormat) {\n  return moment__WEBPACK_IMPORTED_MODULE_0__(date, dateFormat, true).format(DEFAULT_DATE_FORMAT_HYPERFORMULA);\n}\n\n/**\n * Returns date formatted in HF's default format.\n *\n * @param {string} date Date formatted according to Handsontable cell date format.\n * @param {string} dateFormat The format used for the date passed.\n * @returns {string}\n */\nfunction getDateInHotFormat(date, dateFormat) {\n  return moment__WEBPACK_IMPORTED_MODULE_0__(date, DEFAULT_DATE_FORMAT_HYPERFORMULA, true).format(dateFormat);\n}\n\n/**\n * Converts Excel-like dates into strings and formats them based on the handled date format.\n *\n * @param {number} numericDate An integer representing numbers of days from January 1, 1900.\n * @param {string} dateFormat The format used for parsing an output.\n * @returns {string}\n */\nfunction getDateFromExcelDate(numericDate, dateFormat) {\n  // To replicate the behavior from the HyperFormula. UTC starts from 31/12/1899, while HF from 30/12/1899.\n  const dateOffset = -1;\n\n  // Based on solution from: https://stackoverflow.com/a/67130235.\n  const dateForFormatting = new Date(Date.UTC(0, 0, numericDate + dateOffset));\n  return moment__WEBPACK_IMPORTED_MODULE_0__(dateForFormatting).format(dateFormat);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/formulas/utils.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs":
/*!****************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs ***!
  \****************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return hideColumnItem; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n\n/**\n * @param {HiddenColumns} hiddenColumnsPlugin The plugin instance.\n * @returns {object}\n */\nfunction hideColumnItem(hiddenColumnsPlugin) {\n  return {\n    key: 'hidden_columns_hide',\n    name() {\n      const selection = this.getSelectedLast();\n      let pluralForm = 0;\n      if (Array.isArray(selection)) {\n        const [, fromColumn,, toColumn] = selection;\n        if (fromColumn - toColumn !== 0) {\n          pluralForm = 1;\n        }\n      }\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"CONTEXTMENU_ITEMS_HIDE_COLUMN\"], pluralForm);\n    },\n    callback() {\n      const {\n        from,\n        to\n      } = this.getSelectedRangeLast();\n      const start = Math.max(Math.min(from.col, to.col), 0);\n      const end = Math.max(from.col, to.col);\n      const columnsToHide = [];\n      for (let visualColumn = start; visualColumn <= end; visualColumn += 1) {\n        columnsToHide.push(visualColumn);\n      }\n      hiddenColumnsPlugin.hideColumns(columnsToHide);\n      const lastHiddenColumn = columnsToHide[columnsToHide.length - 1];\n      const columnToSelect = this.columnIndexMapper.getNearestNotHiddenIndex(lastHiddenColumn, 1, true);\n      if (Number.isInteger(columnToSelect) && columnToSelect >= 0) {\n        this.selectColumns(columnToSelect);\n      } else {\n        this.deselectCell();\n      }\n      this.render();\n      this.view.adjustElementsSize();\n    },\n    disabled: false,\n    hidden() {\n      return !(this.selection.isSelectedByColumnHeader() || this.selection.isSelectedByCorner());\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/hiddenColumns/contextMenuItem/showColumn.mjs":
/*!****************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/hiddenColumns/contextMenuItem/showColumn.mjs ***!
  \****************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return showColumnItem; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n\n\n/**\n * @param {HiddenColumns} hiddenColumnsPlugin The plugin instance.\n * @returns {object}\n */\nfunction showColumnItem(hiddenColumnsPlugin) {\n  const columns = [];\n  return {\n    key: 'hidden_columns_show',\n    name() {\n      const pluralForm = columns.length > 1 ? 1 : 0;\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONTEXTMENU_ITEMS_SHOW_COLUMN\"], pluralForm);\n    },\n    callback() {\n      var _this$columnIndexMapp, _this$columnIndexMapp2;\n      if (columns.length === 0) {\n        return;\n      }\n      let startVisualColumn = columns[0];\n      let endVisualColumn = columns[columns.length - 1];\n\n      // Add to the selection one more visual column on the left.\n      startVisualColumn = (_this$columnIndexMapp = this.columnIndexMapper.getNearestNotHiddenIndex(startVisualColumn - 1, -1)) !== null && _this$columnIndexMapp !== void 0 ? _this$columnIndexMapp : 0;\n      // Add to the selection one more visual column on the right.\n      endVisualColumn = (_this$columnIndexMapp2 = this.columnIndexMapper.getNearestNotHiddenIndex(endVisualColumn + 1, 1)) !== null && _this$columnIndexMapp2 !== void 0 ? _this$columnIndexMapp2 : this.countCols() - 1;\n      hiddenColumnsPlugin.showColumns(columns);\n\n      // We render columns at first. It was needed for getting fixed columns.\n      // Please take a look at #6864 for broader description.\n      this.render();\n      this.view.adjustElementsSize();\n      const allColumnsSelected = endVisualColumn - startVisualColumn + 1 === this.countCols();\n\n      // When all headers needs to be selected then do nothing. The header selection is\n      // automatically handled by corner click.\n      if (!allColumnsSelected) {\n        this.selectColumns(startVisualColumn, endVisualColumn);\n      }\n    },\n    disabled: false,\n    hidden() {\n      const hiddenPhysicalColumns = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayMap\"])(hiddenColumnsPlugin.getHiddenColumns(), visualColumnIndex => {\n        return this.toPhysicalColumn(visualColumnIndex);\n      });\n      if (!(this.selection.isSelectedByColumnHeader() || this.selection.isSelectedByCorner()) || hiddenPhysicalColumns.length < 1) {\n        return true;\n      }\n      columns.length = 0;\n      const selectedRangeLast = this.getSelectedRangeLast();\n      const visualStartColumn = selectedRangeLast.getTopStartCorner().col;\n      const visualEndColumn = selectedRangeLast.getBottomEndCorner().col;\n      const columnIndexMapper = this.columnIndexMapper;\n      const renderableStartColumn = columnIndexMapper.getRenderableFromVisualIndex(visualStartColumn);\n      const renderableEndColumn = columnIndexMapper.getRenderableFromVisualIndex(visualEndColumn);\n      const notTrimmedColumnIndexes = columnIndexMapper.getNotTrimmedIndexes();\n      const physicalColumnIndexes = [];\n      if (visualStartColumn !== visualEndColumn) {\n        const visualColumnsInRange = visualEndColumn - visualStartColumn + 1;\n        const renderedColumnsInRange = renderableEndColumn - renderableStartColumn + 1;\n\n        // Collect not trimmed columns if there are some hidden columns in the selection range.\n        if (visualColumnsInRange > renderedColumnsInRange) {\n          const physicalIndexesInRange = notTrimmedColumnIndexes.slice(visualStartColumn, visualEndColumn + 1);\n          physicalColumnIndexes.push(...physicalIndexesInRange.filter(physicalIndex => hiddenPhysicalColumns.includes(physicalIndex)));\n        }\n\n        // Handled column is the first rendered index and there are some visual indexes before it.\n      } else if (renderableStartColumn === 0 && renderableStartColumn < visualStartColumn) {\n        // not trimmed indexes -> array of mappings from visual (native array's index) to physical indexes (value).\n        physicalColumnIndexes.push(...notTrimmedColumnIndexes.slice(0, visualStartColumn)); // physical indexes\n\n        // When all columns are hidden and the context menu is triggered using top-left corner.\n      } else if (renderableStartColumn === null) {\n        // Show all hidden columns.\n        physicalColumnIndexes.push(...notTrimmedColumnIndexes.slice(0, this.countCols()));\n      } else {\n        const lastVisualIndex = this.countCols() - 1;\n        const lastRenderableIndex = columnIndexMapper.getRenderableFromVisualIndex(columnIndexMapper.getNearestNotHiddenIndex(lastVisualIndex, -1));\n\n        // Handled column is the last rendered index and there are some visual indexes after it.\n        if (renderableEndColumn === lastRenderableIndex && lastVisualIndex > visualEndColumn) {\n          physicalColumnIndexes.push(...notTrimmedColumnIndexes.slice(visualEndColumn + 1));\n        }\n      }\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayEach\"])(physicalColumnIndexes, physicalColumnIndex => {\n        columns.push(this.toVisualColumn(physicalColumnIndex));\n      });\n      return columns.length === 0;\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/hiddenColumns/contextMenuItem/showColumn.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/hiddenColumns/hiddenColumns.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/hiddenColumns/hiddenColumns.mjs ***!
  \***************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, HiddenColumns */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HiddenColumns\", function() { return HiddenColumns; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../contextMenu/predefinedItems/index.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/index.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _contextMenuItem_hideColumn_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./contextMenuItem/hideColumn.mjs */ \"./node_modules/handsontable/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs\");\n/* harmony import */ var _contextMenuItem_showColumn_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./contextMenuItem/showColumn.mjs */ \"./node_modules/handsontable/plugins/hiddenColumns/contextMenuItem/showColumn.mjs\");\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n\n\n\n\n\n\n\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\n\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_16__[\"default\"].getSingleton().register('beforeHideColumns');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_16__[\"default\"].getSingleton().register('afterHideColumns');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_16__[\"default\"].getSingleton().register('beforeUnhideColumns');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_16__[\"default\"].getSingleton().register('afterUnhideColumns');\nconst PLUGIN_KEY = 'hiddenColumns';\nconst PLUGIN_PRIORITY = 310;\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @plugin HiddenColumns\n * @class HiddenColumns\n *\n * @description\n * The `HiddenColumns` plugin lets you [hide specified columns](@/guides/columns/column-hiding/column-hiding.md).\n *\n * \"Hiding a column\" means that the hidden column doesn't get rendered as a DOM element.\n *\n * The `HiddenColumns` plugin doesn't modify the source data,\n * and doesn't participate in data transformation\n * (the shape of the data returned by the [`getData*()` methods](@/api/core.md#getdata) stays intact).\n *\n * You can set the following configuration options:\n *\n * | Option | Required | Type | Default | Description |\n * |---|---|---|---|---|\n * | `columns` | No | Array | - | [Hides specified columns by default](@/guides/columns/column-hiding/column-hiding.md#step-1-specify-columns-hidden-by-default) |\n * | `indicators` | No | Boolean | `false` | [Shows UI indicators](@/guides/columns/column-hiding/column-hiding.md#step-2-show-ui-indicators) |\n * | `copyPasteEnabled` | No | Boolean | `true` | [Sets up copy/paste behavior](@/guides/columns/column-hiding/column-hiding.md#step-4-set-up-copy-and-paste-behavior) |\n *\n * @example\n *\n * ::: only-for javascript\n * ```js\n * const container = document.getElementById('example');\n * const hot = new Handsontable(container, {\n *   data: getData(),\n *   hiddenColumns: {\n *     copyPasteEnabled: true,\n *     indicators: true,\n *     columns: [1, 2, 5]\n *   }\n * });\n *\n * // access the `HiddenColumns` plugin's instance\n * const hiddenColumnsPlugin = hot.getPlugin('hiddenColumns');\n *\n * // hide a single column\n * hiddenColumnsPlugin.hideColumn(1);\n *\n * // hide multiple columns\n * hiddenColumnsPlugin.hideColumn(1, 2, 9);\n *\n * // hide multiple columns as an array\n * hiddenColumnsPlugin.hideColumns([1, 2, 9]);\n *\n * // unhide a single column\n * hiddenColumnsPlugin.showColumn(1);\n *\n * // unhide multiple columns\n * hiddenColumnsPlugin.showColumn(1, 2, 9);\n *\n * // unhide multiple columns as an array\n * hiddenColumnsPlugin.showColumns([1, 2, 9]);\n *\n * // to see your changes, re-render your Handsontable instance\n * hot.render();\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * const hotRef = useRef(null);\n *\n * ...\n *\n * <HotTable\n *   ref={hotRef}\n *   data={getData()}\n *   hiddenColumns={{\n *     copyPasteEnabled: true,\n *     indicators: true,\n *     columns: [1, 2, 5]\n *   }}\n * />\n *\n * // access the `HiddenColumns` plugin's instance\n * const hot = hotRef.current.hotInstance;\n * const hiddenColumnsPlugin = hot.getPlugin('hiddenColumns');\n *\n * // hide a single column\n * hiddenColumnsPlugin.hideColumn(1);\n *\n * // hide multiple columns\n * hiddenColumnsPlugin.hideColumn(1, 2, 9);\n *\n * // hide multiple columns as an array\n * hiddenColumnsPlugin.hideColumns([1, 2, 9]);\n *\n * // unhide a single column\n * hiddenColumnsPlugin.showColumn(1);\n *\n * // unhide multiple columns\n * hiddenColumnsPlugin.showColumn(1, 2, 9);\n *\n * // unhide multiple columns as an array\n * hiddenColumnsPlugin.showColumns([1, 2, 9]);\n *\n * // to see your changes, re-render your Handsontable instance\n * hot.render();\n * ```\n * :::\n */\nvar _settings = /*#__PURE__*/new WeakMap();\nvar _hiddenColumnsMap = /*#__PURE__*/new WeakMap();\nvar _HiddenColumns_brand = /*#__PURE__*/new WeakSet();\nclass HiddenColumns extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * Adds the additional column width for the hidden column indicators.\n     *\n     * @param {number|undefined} width Column width.\n     * @param {number} column Visual column index.\n     * @returns {number}\n     */\n    _classPrivateMethodInitSpec(this, _HiddenColumns_brand);\n    /**\n     * Cached plugin settings.\n     *\n     * @private\n     * @type {object}\n     */\n    _classPrivateFieldInitSpec(this, _settings, {});\n    /**\n     * Map of hidden columns by the plugin.\n     *\n     * @private\n     * @type {null|HidingMap}\n     */\n    _classPrivateFieldInitSpec(this, _hiddenColumnsMap, null);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link HiddenColumns#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    const pluginSettings = this.hot.getSettings()[PLUGIN_KEY];\n    if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_13__[\"isObject\"])(pluginSettings)) {\n      _classPrivateFieldSet(_settings, this, pluginSettings);\n      if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_14__[\"isUndefined\"])(pluginSettings.copyPasteEnabled)) {\n        pluginSettings.copyPasteEnabled = true;\n      }\n    }\n    _classPrivateFieldSet(_hiddenColumnsMap, this, new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_19__[\"HidingMap\"]());\n    _classPrivateFieldGet(_hiddenColumnsMap, this).addLocalHook('init', () => _assertClassBrand(_HiddenColumns_brand, this, _onMapInit).call(this));\n    this.hot.columnIndexMapper.registerMap(this.pluginName, _classPrivateFieldGet(_hiddenColumnsMap, this));\n    this.addHook('afterContextMenuDefaultOptions', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_HiddenColumns_brand, _this, _onAfterContextMenuDefaultOptions).call(_this, ...args);\n    });\n    this.addHook('afterGetCellMeta', (row, col, cellProperties) => _assertClassBrand(_HiddenColumns_brand, this, _onAfterGetCellMeta).call(this, row, col, cellProperties));\n    this.addHook('modifyColWidth', (width, col) => _assertClassBrand(_HiddenColumns_brand, this, _onModifyColWidth).call(this, width, col), 2);\n    this.addHook('afterGetColHeader', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_HiddenColumns_brand, _this, _onAfterGetColHeader).call(_this, ...args);\n    });\n    this.addHook('modifyCopyableRange', ranges => _assertClassBrand(_HiddenColumns_brand, this, _onModifyCopyableRange).call(this, ranges));\n    super.enablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`hiddenColumns`](@/api/options.md#hiddencolumns)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.hot.columnIndexMapper.unregisterMap(this.pluginName);\n    _classPrivateFieldSet(_settings, this, {});\n    super.disablePlugin();\n    this.resetCellsMeta();\n  }\n\n  /**\n   * Shows the provided columns.\n   *\n   * @param {number[]} columns Array of visual column indexes.\n   */\n  showColumns(columns) {\n    const currentHideConfig = this.getHiddenColumns();\n    const isValidConfig = this.isValidConfig(columns);\n    let destinationHideConfig = currentHideConfig;\n    const hidingMapValues = _classPrivateFieldGet(_hiddenColumnsMap, this).getValues().slice();\n    const isAnyColumnShowed = columns.length > 0;\n    if (isValidConfig && isAnyColumnShowed) {\n      const physicalColumns = columns.map(visualColumn => this.hot.toPhysicalColumn(visualColumn));\n\n      // Preparing new values for hiding map.\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(physicalColumns, physicalColumn => {\n        hidingMapValues[physicalColumn] = false;\n      });\n\n      // Preparing new hiding config.\n      destinationHideConfig = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayReduce\"])(hidingMapValues, (hiddenIndexes, isHidden, physicalIndex) => {\n        if (isHidden) {\n          hiddenIndexes.push(this.hot.toVisualColumn(physicalIndex));\n        }\n        return hiddenIndexes;\n      }, []);\n    }\n    const continueHiding = this.hot.runHooks('beforeUnhideColumns', currentHideConfig, destinationHideConfig, isValidConfig && isAnyColumnShowed);\n    if (continueHiding === false) {\n      return;\n    }\n    if (isValidConfig && isAnyColumnShowed) {\n      _classPrivateFieldGet(_hiddenColumnsMap, this).setValues(hidingMapValues);\n    }\n\n    // @TODO Should call once per render cycle, currently fired separately in different plugins\n    this.hot.view.adjustElementsSize();\n    this.hot.runHooks('afterUnhideColumns', currentHideConfig, destinationHideConfig, isValidConfig && isAnyColumnShowed, isValidConfig && destinationHideConfig.length < currentHideConfig.length);\n  }\n\n  /**\n   * Shows a single column.\n   *\n   * @param {...number} column Visual column index.\n   */\n  showColumn() {\n    for (var _len3 = arguments.length, column = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      column[_key3] = arguments[_key3];\n    }\n    this.showColumns(column);\n  }\n\n  /**\n   * Hides the columns provided in the array.\n   *\n   * @param {number[]} columns Array of visual column indexes.\n   */\n  hideColumns(columns) {\n    const currentHideConfig = this.getHiddenColumns();\n    const isConfigValid = this.isValidConfig(columns);\n    let destinationHideConfig = currentHideConfig;\n    if (isConfigValid) {\n      destinationHideConfig = Array.from(new Set(currentHideConfig.concat(columns)));\n    }\n    const continueHiding = this.hot.runHooks('beforeHideColumns', currentHideConfig, destinationHideConfig, isConfigValid);\n    if (continueHiding === false) {\n      return;\n    }\n    if (isConfigValid) {\n      this.hot.batchExecution(() => {\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(columns, visualColumn => {\n          _classPrivateFieldGet(_hiddenColumnsMap, this).setValueAtIndex(this.hot.toPhysicalColumn(visualColumn), true);\n        });\n      }, true);\n    }\n    this.hot.runHooks('afterHideColumns', currentHideConfig, destinationHideConfig, isConfigValid, isConfigValid && destinationHideConfig.length > currentHideConfig.length);\n  }\n\n  /**\n   * Hides a single column.\n   *\n   * @param {...number} column Visual column index.\n   */\n  hideColumn() {\n    for (var _len4 = arguments.length, column = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n      column[_key4] = arguments[_key4];\n    }\n    this.hideColumns(column);\n  }\n\n  /**\n   * Returns an array of visual indexes of hidden columns.\n   *\n   * @returns {number[]}\n   */\n  getHiddenColumns() {\n    return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayMap\"])(_classPrivateFieldGet(_hiddenColumnsMap, this).getHiddenIndexes(), physicalColumnIndex => {\n      return this.hot.toVisualColumn(physicalColumnIndex);\n    });\n  }\n\n  /**\n   * Checks if the provided column is hidden.\n   *\n   * @param {number} column Visual column index.\n   * @returns {boolean}\n   */\n  isHidden(column) {\n    return _classPrivateFieldGet(_hiddenColumnsMap, this).getValueAtIndex(this.hot.toPhysicalColumn(column)) || false;\n  }\n\n  /**\n   * Get if trim config is valid. Check whether all of the provided column indexes are within the bounds of the table.\n   *\n   * @param {Array} hiddenColumns List of hidden column indexes.\n   * @returns {boolean}\n   */\n  isValidConfig(hiddenColumns) {\n    const nrOfColumns = this.hot.countCols();\n    if (Array.isArray(hiddenColumns) && hiddenColumns.length > 0) {\n      return hiddenColumns.every(visualColumn => Number.isInteger(visualColumn) && visualColumn >= 0 && visualColumn < nrOfColumns);\n    }\n    return false;\n  }\n\n  /**\n   * Reset all rendered cells meta.\n   *\n   * @private\n   */\n  resetCellsMeta() {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(this.hot.getCellsMeta(), meta => {\n      if (meta) {\n        meta.skipColumnOnPaste = false;\n      }\n    });\n  }\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    _classPrivateFieldSet(_settings, this, null);\n    _classPrivateFieldSet(_hiddenColumnsMap, this, null);\n    super.destroy();\n  }\n}\nfunction _onModifyColWidth(width, column) {\n  // Hook is triggered internally only for the visible columns. Conditional will be handled for the API\n  // calls of the `getColWidth` function on not visible indexes.\n  if (this.isHidden(column)) {\n    return 0;\n  }\n  if (_classPrivateFieldGet(_settings, this).indicators && (this.isHidden(column + 1) || this.isHidden(column - 1))) {\n    // Add additional space for hidden column indicator.\n    if (typeof width === 'number' && this.hot.hasColHeaders()) {\n      return width + 15;\n    }\n  }\n}\n/**\n * Sets the copy-related cell meta.\n *\n * @param {number} row Visual row index.\n * @param {number} column Visual column index.\n * @param {object} cellProperties Object containing the cell properties.\n */\nfunction _onAfterGetCellMeta(row, column, cellProperties) {\n  if (_classPrivateFieldGet(_settings, this).copyPasteEnabled === false && this.isHidden(column)) {\n    // Cell property handled by the `Autofill` and the `CopyPaste` plugins.\n    cellProperties.skipColumnOnPaste = true;\n  }\n  if (this.isHidden(column - 1)) {\n    cellProperties.className = cellProperties.className || '';\n    if (cellProperties.className.indexOf('afterHiddenColumn') === -1) {\n      cellProperties.className += ' afterHiddenColumn';\n    }\n  } else if (cellProperties.className) {\n    const classArr = cellProperties.className.split(' ');\n    if (classArr.length > 0) {\n      const containAfterHiddenColumn = classArr.indexOf('afterHiddenColumn');\n      if (containAfterHiddenColumn > -1) {\n        classArr.splice(containAfterHiddenColumn, 1);\n      }\n      cellProperties.className = classArr.join(' ');\n    }\n  }\n}\n/**\n * Modifies the copyable range, accordingly to the provided config.\n *\n * @param {Array} ranges An array of objects defining copyable cells.\n * @returns {Array}\n */\nfunction _onModifyCopyableRange(ranges) {\n  // Ranges shouldn't be modified when `copyPasteEnabled` option is set to `true` (by default).\n  if (_classPrivateFieldGet(_settings, this).copyPasteEnabled) {\n    return ranges;\n  }\n  const newRanges = [];\n  const pushRange = (startRow, endRow, startCol, endCol) => {\n    newRanges.push({\n      startRow,\n      endRow,\n      startCol,\n      endCol\n    });\n  };\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(ranges, range => {\n    let isHidden = true;\n    let rangeStart = 0;\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_11__[\"rangeEach\"])(range.startCol, range.endCol, visualColumn => {\n      if (this.isHidden(visualColumn)) {\n        if (!isHidden) {\n          pushRange(range.startRow, range.endRow, rangeStart, visualColumn - 1);\n        }\n        isHidden = true;\n      } else {\n        if (isHidden) {\n          rangeStart = visualColumn;\n        }\n        if (visualColumn === range.endCol) {\n          pushRange(range.startRow, range.endRow, rangeStart, visualColumn);\n        }\n        isHidden = false;\n      }\n    });\n  });\n  return newRanges;\n}\n/**\n * Adds the needed classes to the headers.\n *\n * @param {number} column Visual column index.\n * @param {HTMLElement} TH Header's TH element.\n */\nfunction _onAfterGetColHeader(column, TH) {\n  if (!_classPrivateFieldGet(_settings, this).indicators || column < 0) {\n    return;\n  }\n  const classList = [];\n  if (column >= 1 && this.isHidden(column - 1)) {\n    classList.push('afterHiddenColumn');\n  }\n  if (column < this.hot.countCols() - 1 && this.isHidden(column + 1)) {\n    classList.push('beforeHiddenColumn');\n  }\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"addClass\"])(TH, classList);\n}\n/**\n * Add Show-hide columns to context menu.\n *\n * @param {object} options An array of objects containing information about the pre-defined Context Menu items.\n */\nfunction _onAfterContextMenuDefaultOptions(options) {\n  options.items.push({\n    name: _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_15__[\"SEPARATOR\"]\n  }, Object(_contextMenuItem_hideColumn_mjs__WEBPACK_IMPORTED_MODULE_17__[\"default\"])(this), Object(_contextMenuItem_showColumn_mjs__WEBPACK_IMPORTED_MODULE_18__[\"default\"])(this));\n}\n/**\n * On map initialized hook callback.\n */\nfunction _onMapInit() {\n  if (Array.isArray(_classPrivateFieldGet(_settings, this).columns)) {\n    this.hideColumns(_classPrivateFieldGet(_settings, this).columns);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/hiddenColumns/hiddenColumns.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/hiddenColumns/index.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/plugins/hiddenColumns/index.mjs ***!
  \*******************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, HiddenColumns */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _hiddenColumns_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hiddenColumns.mjs */ \"./node_modules/handsontable/plugins/hiddenColumns/hiddenColumns.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _hiddenColumns_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _hiddenColumns_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HiddenColumns\", function() { return _hiddenColumns_mjs__WEBPACK_IMPORTED_MODULE_0__[\"HiddenColumns\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/hiddenColumns/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/hiddenRows/contextMenuItem/hideRow.mjs":
/*!**********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/hiddenRows/contextMenuItem/hideRow.mjs ***!
  \**********************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return hideRowItem; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n\n/**\n * @param {HiddenRows} hiddenRowsPlugin The plugin instance.\n * @returns {object}\n */\nfunction hideRowItem(hiddenRowsPlugin) {\n  return {\n    key: 'hidden_rows_hide',\n    name() {\n      const selection = this.getSelectedLast();\n      let pluralForm = 0;\n      if (Array.isArray(selection)) {\n        const [fromRow,, toRow] = selection;\n        if (fromRow - toRow !== 0) {\n          pluralForm = 1;\n        }\n      }\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"CONTEXTMENU_ITEMS_HIDE_ROW\"], pluralForm);\n    },\n    callback() {\n      const {\n        from,\n        to\n      } = this.getSelectedRangeLast();\n      const start = Math.max(Math.min(from.row, to.row), 0);\n      const end = Math.max(from.row, to.row);\n      const rowsToHide = [];\n      for (let visualRow = start; visualRow <= end; visualRow += 1) {\n        rowsToHide.push(visualRow);\n      }\n      hiddenRowsPlugin.hideRows(rowsToHide);\n      const lastHiddenRow = rowsToHide[rowsToHide.length - 1];\n      const rowToSelect = this.rowIndexMapper.getNearestNotHiddenIndex(lastHiddenRow, 1, true);\n      if (Number.isInteger(rowToSelect) && rowToSelect >= 0) {\n        this.selectRows(rowToSelect);\n      } else {\n        this.deselectCell();\n      }\n      this.render();\n      this.view.adjustElementsSize();\n    },\n    disabled: false,\n    hidden() {\n      return !(this.selection.isSelectedByRowHeader() || this.selection.isSelectedByCorner());\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/hiddenRows/contextMenuItem/hideRow.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/hiddenRows/contextMenuItem/showRow.mjs":
/*!**********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/hiddenRows/contextMenuItem/showRow.mjs ***!
  \**********************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return showRowItem; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n\n\n/**\n * @param {HiddenRows} hiddenRowsPlugin The plugin instance.\n * @returns {object}\n */\nfunction showRowItem(hiddenRowsPlugin) {\n  const rows = [];\n  return {\n    key: 'hidden_rows_show',\n    name() {\n      const pluralForm = rows.length > 1 ? 1 : 0;\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"CONTEXTMENU_ITEMS_SHOW_ROW\"], pluralForm);\n    },\n    callback() {\n      var _this$rowIndexMapper$, _this$rowIndexMapper$2;\n      if (rows.length === 0) {\n        return;\n      }\n      let startVisualRow = rows[0];\n      let endVisualRow = rows[rows.length - 1];\n\n      // Add to the selection one more visual row on the top.\n      startVisualRow = (_this$rowIndexMapper$ = this.rowIndexMapper.getNearestNotHiddenIndex(startVisualRow - 1, -1)) !== null && _this$rowIndexMapper$ !== void 0 ? _this$rowIndexMapper$ : 0;\n      // Add to the selection one more visual row on the bottom.\n      endVisualRow = (_this$rowIndexMapper$2 = this.rowIndexMapper.getNearestNotHiddenIndex(endVisualRow + 1, 1)) !== null && _this$rowIndexMapper$2 !== void 0 ? _this$rowIndexMapper$2 : this.countRows() - 1;\n      hiddenRowsPlugin.showRows(rows);\n\n      // We render rows at first. It was needed for getting fixed rows.\n      // Please take a look at #6864 for broader description.\n      this.render();\n      this.view.adjustElementsSize();\n      const allRowsSelected = endVisualRow - startVisualRow + 1 === this.countRows();\n\n      // When all headers needs to be selected then do nothing. The header selection is\n      // automatically handled by corner click.\n      if (!allRowsSelected) {\n        this.selectRows(startVisualRow, endVisualRow);\n      }\n    },\n    disabled: false,\n    hidden() {\n      const hiddenPhysicalRows = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayMap\"])(hiddenRowsPlugin.getHiddenRows(), visualRowIndex => {\n        return this.toPhysicalRow(visualRowIndex);\n      });\n      if (!(this.selection.isSelectedByRowHeader() || this.selection.isSelectedByCorner()) || hiddenPhysicalRows.length < 1) {\n        return true;\n      }\n      rows.length = 0;\n      const selectedRangeLast = this.getSelectedRangeLast();\n      const visualStartRow = selectedRangeLast.getTopStartCorner().row;\n      const visualEndRow = selectedRangeLast.getBottomEndCorner().row;\n      const rowIndexMapper = this.rowIndexMapper;\n      const renderableStartRow = rowIndexMapper.getRenderableFromVisualIndex(visualStartRow);\n      const renderableEndRow = rowIndexMapper.getRenderableFromVisualIndex(visualEndRow);\n      const notTrimmedRowIndexes = rowIndexMapper.getNotTrimmedIndexes();\n      const physicalRowIndexes = [];\n      if (visualStartRow !== visualEndRow) {\n        const visualRowsInRange = visualEndRow - visualStartRow + 1;\n        const renderedRowsInRange = renderableEndRow - renderableStartRow + 1;\n\n        // Collect not trimmed rows if there are some hidden rows in the selection range.\n        if (visualRowsInRange > renderedRowsInRange) {\n          const physicalIndexesInRange = notTrimmedRowIndexes.slice(visualStartRow, visualEndRow + 1);\n          physicalRowIndexes.push(...physicalIndexesInRange.filter(physicalIndex => hiddenPhysicalRows.includes(physicalIndex)));\n        }\n\n        // Handled row is the first rendered index and there are some visual indexes before it.\n      } else if (renderableStartRow === 0 && renderableStartRow < visualStartRow) {\n        // not trimmed indexes -> array of mappings from visual (native array's index) to physical indexes (value).\n        physicalRowIndexes.push(...notTrimmedRowIndexes.slice(0, visualStartRow)); // physical indexes\n\n        // When all rows are hidden and the context menu is triggered using top-left corner.\n      } else if (renderableStartRow === null) {\n        // Show all hidden rows.\n        physicalRowIndexes.push(...notTrimmedRowIndexes.slice(0, this.countRows()));\n      } else {\n        const lastVisualIndex = this.countRows() - 1;\n        const lastRenderableIndex = rowIndexMapper.getRenderableFromVisualIndex(rowIndexMapper.getNearestNotHiddenIndex(lastVisualIndex, -1));\n\n        // Handled row is the last rendered index and there are some visual indexes after it.\n        if (renderableEndRow === lastRenderableIndex && lastVisualIndex > visualEndRow) {\n          physicalRowIndexes.push(...notTrimmedRowIndexes.slice(visualEndRow + 1));\n        }\n      }\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayEach\"])(physicalRowIndexes, physicalRowIndex => {\n        rows.push(this.toVisualRow(physicalRowIndex));\n      });\n      return rows.length === 0;\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/hiddenRows/contextMenuItem/showRow.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/hiddenRows/hiddenRows.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/hiddenRows/hiddenRows.mjs ***!
  \*********************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, HiddenRows */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HiddenRows\", function() { return HiddenRows; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../contextMenu/predefinedItems/index.mjs */ \"./node_modules/handsontable/plugins/contextMenu/predefinedItems/index.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _contextMenuItem_hideRow_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./contextMenuItem/hideRow.mjs */ \"./node_modules/handsontable/plugins/hiddenRows/contextMenuItem/hideRow.mjs\");\n/* harmony import */ var _contextMenuItem_showRow_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./contextMenuItem/showRow.mjs */ \"./node_modules/handsontable/plugins/hiddenRows/contextMenuItem/showRow.mjs\");\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n\n\n\n\n\n\n\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\n\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_16__[\"default\"].getSingleton().register('beforeHideRows');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_16__[\"default\"].getSingleton().register('afterHideRows');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_16__[\"default\"].getSingleton().register('beforeUnhideRows');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_16__[\"default\"].getSingleton().register('afterUnhideRows');\nconst PLUGIN_KEY = 'hiddenRows';\nconst PLUGIN_PRIORITY = 320;\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @plugin HiddenRows\n * @class HiddenRows\n *\n * @description\n * The `HiddenRows` plugin lets you [hide specified rows](@/guides/rows/row-hiding/row-hiding.md).\n *\n * \"Hiding a row\" means that the hidden row doesn't get rendered as a DOM element.\n *\n * The `HiddenRows` plugin doesn't modify the source data,\n * and doesn't participate in data transformation\n * (the shape of the data returned by the [`getData*()` methods](@/api/core.md#getdata) stays intact).\n *\n * You can set the following configuration options:\n *\n * | Option | Required | Type | Default | Description |\n * |---|---|---|---|---|\n * | `rows` | No | Array | - | [Hides specified rows by default](@/guides/rows/row-hiding/row-hiding.md#step-1-specify-rows-hidden-by-default) |\n * | `indicators` | No | Boolean | `false` | [Shows UI indicators](@/guides/rows/row-hiding/row-hiding.md#step-2-show-ui-indicators) |\n * | `copyPasteEnabled` | No | Boolean | `true` | [Sets up copy/paste behavior](@/guides/rows/row-hiding/row-hiding.md#step-4-set-up-copy-and-paste-behavior) |\n *\n * @example\n *\n * ::: only-for javascript\n * ```js\n * const container = document.getElementById('example');\n * const hot = new Handsontable(container, {\n *   data: getData(),\n *   hiddenRows: {\n *     copyPasteEnabled: true,\n *     indicators: true,\n *     rows: [1, 2, 5]\n *   }\n * });\n *\n * // access the `HiddenRows` plugin's instance\n * const hiddenRowsPlugin = hot.getPlugin('hiddenRows');\n *\n * // hide a single row\n * hiddenRowsPlugin.hideRow(1);\n *\n * // hide multiple rows\n * hiddenRowsPlugin.hideRow(1, 2, 9);\n *\n * // hide multiple rows as an array\n * hiddenRowsPlugin.hideRows([1, 2, 9]);\n *\n * // unhide a single row\n * hiddenRowsPlugin.showRow(1);\n *\n * // unhide multiple rows\n * hiddenRowsPlugin.showRow(1, 2, 9);\n *\n * // unhide multiple rows as an array\n * hiddenRowsPlugin.showRows([1, 2, 9]);\n *\n * // to see your changes, re-render your Handsontable instance\n * hot.render();\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * const hotRef = useRef(null);\n *\n * ...\n *\n * <HotTable\n *   ref={hotRef}\n *   data={getData()}\n *   hiddenRows={{\n *     copyPasteEnabled: true,\n *     indicators: true,\n *     rows: [1, 2, 5]\n *   }}\n * />\n *\n * // access the `HiddenRows` plugin's instance\n * const hot = hotRef.current.hotInstance;\n * const hiddenRowsPlugin = hot.getPlugin('hiddenRows');\n *\n * // hide a single row\n * hiddenRowsPlugin.hideRow(1);\n *\n * // hide multiple rows\n * hiddenRowsPlugin.hideRow(1, 2, 9);\n *\n * // hide multiple rows as an array\n * hiddenRowsPlugin.hideRows([1, 2, 9]);\n *\n * // unhide a single row\n * hiddenRowsPlugin.showRow(1);\n *\n * // unhide multiple rows\n * hiddenRowsPlugin.showRow(1, 2, 9);\n *\n * // unhide multiple rows as an array\n * hiddenRowsPlugin.showRows([1, 2, 9]);\n *\n * // to see your changes, re-render your Handsontable instance\n * hot.render();\n * ```\n * :::\n */\nvar _settings = /*#__PURE__*/new WeakMap();\nvar _hiddenRowsMap = /*#__PURE__*/new WeakMap();\nvar _HiddenRows_brand = /*#__PURE__*/new WeakSet();\nclass HiddenRows extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * Adds the additional row height for the hidden row indicators.\n     *\n     * @param {number|undefined} height Row height.\n     * @param {number} row Visual row index.\n     * @returns {number}\n     */\n    _classPrivateMethodInitSpec(this, _HiddenRows_brand);\n    /**\n     * Cached settings from Handsontable settings.\n     *\n     * @private\n     * @type {object}\n     */\n    _classPrivateFieldInitSpec(this, _settings, {});\n    /**\n     * Map of hidden rows by the plugin.\n     *\n     * @private\n     * @type {HidingMap|null}\n     */\n    _classPrivateFieldInitSpec(this, _hiddenRowsMap, null);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link HiddenRows#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    const pluginSettings = this.hot.getSettings()[PLUGIN_KEY];\n    if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_13__[\"isObject\"])(pluginSettings)) {\n      _classPrivateFieldSet(_settings, this, pluginSettings);\n      if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_14__[\"isUndefined\"])(pluginSettings.copyPasteEnabled)) {\n        pluginSettings.copyPasteEnabled = true;\n      }\n    }\n    _classPrivateFieldSet(_hiddenRowsMap, this, new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_19__[\"HidingMap\"]());\n    _classPrivateFieldGet(_hiddenRowsMap, this).addLocalHook('init', () => _assertClassBrand(_HiddenRows_brand, this, _onMapInit).call(this));\n    this.hot.rowIndexMapper.registerMap(this.pluginName, _classPrivateFieldGet(_hiddenRowsMap, this));\n    this.addHook('afterContextMenuDefaultOptions', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_HiddenRows_brand, _this, _onAfterContextMenuDefaultOptions).call(_this, ...args);\n    });\n    this.addHook('afterGetCellMeta', (row, col, cellProperties) => _assertClassBrand(_HiddenRows_brand, this, _onAfterGetCellMeta).call(this, row, col, cellProperties));\n    this.addHook('modifyRowHeight', (height, row) => _assertClassBrand(_HiddenRows_brand, this, _onModifyRowHeight).call(this, height, row));\n    this.addHook('afterGetRowHeader', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_HiddenRows_brand, _this, _onAfterGetRowHeader).call(_this, ...args);\n    });\n    this.addHook('modifyCopyableRange', ranges => _assertClassBrand(_HiddenRows_brand, this, _onModifyCopyableRange).call(this, ranges));\n    super.enablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`hiddenRows`](@/api/options.md#hiddenrows)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.hot.rowIndexMapper.unregisterMap(this.pluginName);\n    _classPrivateFieldSet(_settings, this, {});\n    super.disablePlugin();\n    this.resetCellsMeta();\n  }\n\n  /**\n   * Shows the rows provided in the array.\n   *\n   * @param {number[]} rows Array of visual row indexes.\n   */\n  showRows(rows) {\n    const currentHideConfig = this.getHiddenRows();\n    const isValidConfig = this.isValidConfig(rows);\n    let destinationHideConfig = currentHideConfig;\n    const hidingMapValues = _classPrivateFieldGet(_hiddenRowsMap, this).getValues().slice();\n    const isAnyRowShowed = rows.length > 0;\n    if (isValidConfig && isAnyRowShowed) {\n      const physicalRows = rows.map(visualRow => this.hot.toPhysicalRow(visualRow));\n\n      // Preparing new values for hiding map.\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(physicalRows, physicalRow => {\n        hidingMapValues[physicalRow] = false;\n      });\n\n      // Preparing new hiding config.\n      destinationHideConfig = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayReduce\"])(hidingMapValues, (hiddenIndexes, isHidden, physicalIndex) => {\n        if (isHidden) {\n          hiddenIndexes.push(this.hot.toVisualRow(physicalIndex));\n        }\n        return hiddenIndexes;\n      }, []);\n    }\n    const continueHiding = this.hot.runHooks('beforeUnhideRows', currentHideConfig, destinationHideConfig, isValidConfig && isAnyRowShowed);\n    if (continueHiding === false) {\n      return;\n    }\n    if (isValidConfig && isAnyRowShowed) {\n      _classPrivateFieldGet(_hiddenRowsMap, this).setValues(hidingMapValues);\n    }\n    this.hot.runHooks('afterUnhideRows', currentHideConfig, destinationHideConfig, isValidConfig && isAnyRowShowed, isValidConfig && destinationHideConfig.length < currentHideConfig.length);\n  }\n\n  /**\n   * Shows the row provided as row index (counting from 0).\n   *\n   * @param {...number} row Visual row index.\n   */\n  showRow() {\n    for (var _len3 = arguments.length, row = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      row[_key3] = arguments[_key3];\n    }\n    this.showRows(row);\n  }\n\n  /**\n   * Hides the rows provided in the array.\n   *\n   * @param {number[]} rows Array of visual row indexes.\n   */\n  hideRows(rows) {\n    const currentHideConfig = this.getHiddenRows();\n    const isConfigValid = this.isValidConfig(rows);\n    let destinationHideConfig = currentHideConfig;\n    if (isConfigValid) {\n      destinationHideConfig = Array.from(new Set(currentHideConfig.concat(rows)));\n    }\n    const continueHiding = this.hot.runHooks('beforeHideRows', currentHideConfig, destinationHideConfig, isConfigValid);\n    if (continueHiding === false) {\n      return;\n    }\n    if (isConfigValid) {\n      this.hot.batchExecution(() => {\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(rows, visualRow => {\n          _classPrivateFieldGet(_hiddenRowsMap, this).setValueAtIndex(this.hot.toPhysicalRow(visualRow), true);\n        });\n      }, true);\n    }\n    this.hot.runHooks('afterHideRows', currentHideConfig, destinationHideConfig, isConfigValid, isConfigValid && destinationHideConfig.length > currentHideConfig.length);\n  }\n\n  /**\n   * Hides the row provided as row index (counting from 0).\n   *\n   * @param {...number} row Visual row index.\n   */\n  hideRow() {\n    for (var _len4 = arguments.length, row = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n      row[_key4] = arguments[_key4];\n    }\n    this.hideRows(row);\n  }\n\n  /**\n   * Returns an array of visual indexes of hidden rows.\n   *\n   * @returns {number[]}\n   */\n  getHiddenRows() {\n    return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayMap\"])(_classPrivateFieldGet(_hiddenRowsMap, this).getHiddenIndexes(), physicalRowIndex => {\n      return this.hot.toVisualRow(physicalRowIndex);\n    });\n  }\n\n  /**\n   * Checks if the provided row is hidden.\n   *\n   * @param {number} row Visual row index.\n   * @returns {boolean}\n   */\n  isHidden(row) {\n    return _classPrivateFieldGet(_hiddenRowsMap, this).getValueAtIndex(this.hot.toPhysicalRow(row)) || false;\n  }\n\n  /**\n   * Checks whether all of the provided row indexes are within the bounds of the table.\n   *\n   * @param {Array} hiddenRows List of hidden visual row indexes.\n   * @returns {boolean}\n   */\n  isValidConfig(hiddenRows) {\n    const nrOfRows = this.hot.countRows();\n    if (Array.isArray(hiddenRows) && hiddenRows.length > 0) {\n      return hiddenRows.every(visualRow => Number.isInteger(visualRow) && visualRow >= 0 && visualRow < nrOfRows);\n    }\n    return false;\n  }\n\n  /**\n   * Resets all rendered cells meta.\n   *\n   * @private\n   */\n  resetCellsMeta() {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(this.hot.getCellsMeta(), meta => {\n      if (meta) {\n        meta.skipRowOnPaste = false;\n      }\n    });\n  }\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    _classPrivateFieldSet(_settings, this, null);\n    _classPrivateFieldSet(_hiddenRowsMap, this, null);\n    super.destroy();\n  }\n}\nfunction _onModifyRowHeight(height, row) {\n  // Hook is triggered internally only for the visible rows. Conditional will be handled for the API\n  // calls of the `getRowHeight` function on not visible indexes.\n  if (this.isHidden(row)) {\n    return 0;\n  }\n  return height;\n}\n/**\n * Sets the copy-related cell meta.\n *\n * @param {number} row Visual row index.\n * @param {number} column Visual column index.\n * @param {object} cellProperties Object containing the cell properties.\n */\nfunction _onAfterGetCellMeta(row, column, cellProperties) {\n  if (_classPrivateFieldGet(_settings, this).copyPasteEnabled === false && this.isHidden(row)) {\n    // Cell property handled by the `Autofill` and the `CopyPaste` plugins.\n    cellProperties.skipRowOnPaste = true;\n  }\n  if (this.isHidden(row - 1)) {\n    cellProperties.className = cellProperties.className || '';\n    if (cellProperties.className.indexOf('afterHiddenRow') === -1) {\n      cellProperties.className += ' afterHiddenRow';\n    }\n  } else if (cellProperties.className) {\n    const classArr = cellProperties.className.split(' ');\n    if (classArr.length > 0) {\n      const containAfterHiddenRow = classArr.indexOf('afterHiddenRow');\n      if (containAfterHiddenRow > -1) {\n        classArr.splice(containAfterHiddenRow, 1);\n      }\n      cellProperties.className = classArr.join(' ');\n    }\n  }\n}\n/**\n * Modifies the copyable range, accordingly to the provided config.\n *\n * @param {Array} ranges An array of objects defining copyable cells.\n * @returns {Array}\n */\nfunction _onModifyCopyableRange(ranges) {\n  // Ranges shouldn't be modified when `copyPasteEnabled` option is set to `true` (by default).\n  if (_classPrivateFieldGet(_settings, this).copyPasteEnabled) {\n    return ranges;\n  }\n  const newRanges = [];\n  const pushRange = (startRow, endRow, startCol, endCol) => {\n    newRanges.push({\n      startRow,\n      endRow,\n      startCol,\n      endCol\n    });\n  };\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(ranges, range => {\n    let isHidden = true;\n    let rangeStart = 0;\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_11__[\"rangeEach\"])(range.startRow, range.endRow, visualRow => {\n      if (this.isHidden(visualRow)) {\n        if (!isHidden) {\n          pushRange(rangeStart, visualRow - 1, range.startCol, range.endCol);\n        }\n        isHidden = true;\n      } else {\n        if (isHidden) {\n          rangeStart = visualRow;\n        }\n        if (visualRow === range.endRow) {\n          pushRange(rangeStart, visualRow, range.startCol, range.endCol);\n        }\n        isHidden = false;\n      }\n    });\n  });\n  return newRanges;\n}\n/**\n * Adds the needed classes to the headers.\n *\n * @param {number} row Visual row index.\n * @param {HTMLElement} TH Header's TH element.\n */\nfunction _onAfterGetRowHeader(row, TH) {\n  if (!_classPrivateFieldGet(_settings, this).indicators || row < 0) {\n    return;\n  }\n  const classList = [];\n  if (row >= 1 && this.isHidden(row - 1)) {\n    classList.push('afterHiddenRow');\n  }\n  if (row < this.hot.countRows() - 1 && this.isHidden(row + 1)) {\n    classList.push('beforeHiddenRow');\n  }\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_10__[\"addClass\"])(TH, classList);\n}\n/**\n * Add Show-hide rows to context menu.\n *\n * @param {object} options An array of objects containing information about the pre-defined Context Menu items.\n */\nfunction _onAfterContextMenuDefaultOptions(options) {\n  options.items.push({\n    name: _contextMenu_predefinedItems_index_mjs__WEBPACK_IMPORTED_MODULE_15__[\"SEPARATOR\"]\n  }, Object(_contextMenuItem_hideRow_mjs__WEBPACK_IMPORTED_MODULE_17__[\"default\"])(this), Object(_contextMenuItem_showRow_mjs__WEBPACK_IMPORTED_MODULE_18__[\"default\"])(this));\n}\n/**\n * On map initialized hook callback.\n */\nfunction _onMapInit() {\n  if (Array.isArray(_classPrivateFieldGet(_settings, this).rows)) {\n    this.hideRows(_classPrivateFieldGet(_settings, this).rows);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/hiddenRows/hiddenRows.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/hiddenRows/index.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/hiddenRows/index.mjs ***!
  \****************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, HiddenRows */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _hiddenRows_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hiddenRows.mjs */ \"./node_modules/handsontable/plugins/hiddenRows/hiddenRows.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _hiddenRows_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _hiddenRows_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HiddenRows\", function() { return _hiddenRows_mjs__WEBPACK_IMPORTED_MODULE_0__[\"HiddenRows\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/hiddenRows/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/index.mjs":
/*!*****************************************************!*\
  !*** ./node_modules/handsontable/plugins/index.mjs ***!
  \*****************************************************/
/*! exports provided: registerAllPlugins, AutoColumnSize, Autofill, AutoRowSize, BasePlugin, BindRowsWithHeaders, CollapsibleColumns, ColumnSorting, ColumnSummary, Comments, ContextMenu, CopyPaste, CustomBorders, DragToScroll, DropdownMenu, ExportFile, Filters, Formulas, HiddenColumns, HiddenRows, ManualColumnFreeze, ManualColumnMove, ManualColumnResize, ManualRowMove, ManualRowResize, MergeCells, MultiColumnSorting, MultipleSelectionHandles, NestedHeaders, NestedRows, PersistentState, Search, TouchScroll, TrimRows, UndoRedo, getPlugin, getPluginsNames, registerPlugin */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerAllPlugins\", function() { return registerAllPlugins; });\n/* harmony import */ var _autoColumnSize_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./autoColumnSize/index.mjs */ \"./node_modules/handsontable/plugins/autoColumnSize/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AutoColumnSize\", function() { return _autoColumnSize_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"AutoColumnSize\"]; });\n\n/* harmony import */ var _autofill_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./autofill/index.mjs */ \"./node_modules/handsontable/plugins/autofill/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Autofill\", function() { return _autofill_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"Autofill\"]; });\n\n/* harmony import */ var _autoRowSize_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./autoRowSize/index.mjs */ \"./node_modules/handsontable/plugins/autoRowSize/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AutoRowSize\", function() { return _autoRowSize_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"AutoRowSize\"]; });\n\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BasePlugin\", function() { return _base_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"BasePlugin\"]; });\n\n/* harmony import */ var _bindRowsWithHeaders_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./bindRowsWithHeaders/index.mjs */ \"./node_modules/handsontable/plugins/bindRowsWithHeaders/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BindRowsWithHeaders\", function() { return _bindRowsWithHeaders_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"BindRowsWithHeaders\"]; });\n\n/* harmony import */ var _collapsibleColumns_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./collapsibleColumns/index.mjs */ \"./node_modules/handsontable/plugins/collapsibleColumns/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CollapsibleColumns\", function() { return _collapsibleColumns_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"CollapsibleColumns\"]; });\n\n/* harmony import */ var _columnSorting_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./columnSorting/index.mjs */ \"./node_modules/handsontable/plugins/columnSorting/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ColumnSorting\", function() { return _columnSorting_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"ColumnSorting\"]; });\n\n/* harmony import */ var _columnSummary_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./columnSummary/index.mjs */ \"./node_modules/handsontable/plugins/columnSummary/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ColumnSummary\", function() { return _columnSummary_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"ColumnSummary\"]; });\n\n/* harmony import */ var _comments_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./comments/index.mjs */ \"./node_modules/handsontable/plugins/comments/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Comments\", function() { return _comments_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"Comments\"]; });\n\n/* harmony import */ var _contextMenu_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./contextMenu/index.mjs */ \"./node_modules/handsontable/plugins/contextMenu/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ContextMenu\", function() { return _contextMenu_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"ContextMenu\"]; });\n\n/* harmony import */ var _copyPaste_index_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./copyPaste/index.mjs */ \"./node_modules/handsontable/plugins/copyPaste/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CopyPaste\", function() { return _copyPaste_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"CopyPaste\"]; });\n\n/* harmony import */ var _customBorders_index_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./customBorders/index.mjs */ \"./node_modules/handsontable/plugins/customBorders/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CustomBorders\", function() { return _customBorders_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"CustomBorders\"]; });\n\n/* harmony import */ var _dragToScroll_index_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./dragToScroll/index.mjs */ \"./node_modules/handsontable/plugins/dragToScroll/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DragToScroll\", function() { return _dragToScroll_index_mjs__WEBPACK_IMPORTED_MODULE_12__[\"DragToScroll\"]; });\n\n/* harmony import */ var _dropdownMenu_index_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./dropdownMenu/index.mjs */ \"./node_modules/handsontable/plugins/dropdownMenu/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DropdownMenu\", function() { return _dropdownMenu_index_mjs__WEBPACK_IMPORTED_MODULE_13__[\"DropdownMenu\"]; });\n\n/* harmony import */ var _exportFile_index_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./exportFile/index.mjs */ \"./node_modules/handsontable/plugins/exportFile/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ExportFile\", function() { return _exportFile_index_mjs__WEBPACK_IMPORTED_MODULE_14__[\"ExportFile\"]; });\n\n/* harmony import */ var _filters_index_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./filters/index.mjs */ \"./node_modules/handsontable/plugins/filters/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Filters\", function() { return _filters_index_mjs__WEBPACK_IMPORTED_MODULE_15__[\"Filters\"]; });\n\n/* harmony import */ var _formulas_index_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./formulas/index.mjs */ \"./node_modules/handsontable/plugins/formulas/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Formulas\", function() { return _formulas_index_mjs__WEBPACK_IMPORTED_MODULE_16__[\"Formulas\"]; });\n\n/* harmony import */ var _hiddenColumns_index_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./hiddenColumns/index.mjs */ \"./node_modules/handsontable/plugins/hiddenColumns/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HiddenColumns\", function() { return _hiddenColumns_index_mjs__WEBPACK_IMPORTED_MODULE_17__[\"HiddenColumns\"]; });\n\n/* harmony import */ var _hiddenRows_index_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./hiddenRows/index.mjs */ \"./node_modules/handsontable/plugins/hiddenRows/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HiddenRows\", function() { return _hiddenRows_index_mjs__WEBPACK_IMPORTED_MODULE_18__[\"HiddenRows\"]; });\n\n/* harmony import */ var _manualColumnFreeze_index_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./manualColumnFreeze/index.mjs */ \"./node_modules/handsontable/plugins/manualColumnFreeze/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ManualColumnFreeze\", function() { return _manualColumnFreeze_index_mjs__WEBPACK_IMPORTED_MODULE_19__[\"ManualColumnFreeze\"]; });\n\n/* harmony import */ var _manualColumnMove_index_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./manualColumnMove/index.mjs */ \"./node_modules/handsontable/plugins/manualColumnMove/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ManualColumnMove\", function() { return _manualColumnMove_index_mjs__WEBPACK_IMPORTED_MODULE_20__[\"ManualColumnMove\"]; });\n\n/* harmony import */ var _manualColumnResize_index_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./manualColumnResize/index.mjs */ \"./node_modules/handsontable/plugins/manualColumnResize/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ManualColumnResize\", function() { return _manualColumnResize_index_mjs__WEBPACK_IMPORTED_MODULE_21__[\"ManualColumnResize\"]; });\n\n/* harmony import */ var _manualRowMove_index_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./manualRowMove/index.mjs */ \"./node_modules/handsontable/plugins/manualRowMove/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ManualRowMove\", function() { return _manualRowMove_index_mjs__WEBPACK_IMPORTED_MODULE_22__[\"ManualRowMove\"]; });\n\n/* harmony import */ var _manualRowResize_index_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./manualRowResize/index.mjs */ \"./node_modules/handsontable/plugins/manualRowResize/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ManualRowResize\", function() { return _manualRowResize_index_mjs__WEBPACK_IMPORTED_MODULE_23__[\"ManualRowResize\"]; });\n\n/* harmony import */ var _mergeCells_index_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./mergeCells/index.mjs */ \"./node_modules/handsontable/plugins/mergeCells/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MergeCells\", function() { return _mergeCells_index_mjs__WEBPACK_IMPORTED_MODULE_24__[\"MergeCells\"]; });\n\n/* harmony import */ var _multiColumnSorting_index_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./multiColumnSorting/index.mjs */ \"./node_modules/handsontable/plugins/multiColumnSorting/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MultiColumnSorting\", function() { return _multiColumnSorting_index_mjs__WEBPACK_IMPORTED_MODULE_25__[\"MultiColumnSorting\"]; });\n\n/* harmony import */ var _multipleSelectionHandles_index_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./multipleSelectionHandles/index.mjs */ \"./node_modules/handsontable/plugins/multipleSelectionHandles/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MultipleSelectionHandles\", function() { return _multipleSelectionHandles_index_mjs__WEBPACK_IMPORTED_MODULE_26__[\"MultipleSelectionHandles\"]; });\n\n/* harmony import */ var _nestedHeaders_index_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./nestedHeaders/index.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NestedHeaders\", function() { return _nestedHeaders_index_mjs__WEBPACK_IMPORTED_MODULE_27__[\"NestedHeaders\"]; });\n\n/* harmony import */ var _nestedRows_index_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./nestedRows/index.mjs */ \"./node_modules/handsontable/plugins/nestedRows/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NestedRows\", function() { return _nestedRows_index_mjs__WEBPACK_IMPORTED_MODULE_28__[\"NestedRows\"]; });\n\n/* harmony import */ var _persistentState_index_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./persistentState/index.mjs */ \"./node_modules/handsontable/plugins/persistentState/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PersistentState\", function() { return _persistentState_index_mjs__WEBPACK_IMPORTED_MODULE_29__[\"PersistentState\"]; });\n\n/* harmony import */ var _search_index_mjs__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./search/index.mjs */ \"./node_modules/handsontable/plugins/search/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return _search_index_mjs__WEBPACK_IMPORTED_MODULE_30__[\"Search\"]; });\n\n/* harmony import */ var _touchScroll_index_mjs__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./touchScroll/index.mjs */ \"./node_modules/handsontable/plugins/touchScroll/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TouchScroll\", function() { return _touchScroll_index_mjs__WEBPACK_IMPORTED_MODULE_31__[\"TouchScroll\"]; });\n\n/* harmony import */ var _trimRows_index_mjs__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./trimRows/index.mjs */ \"./node_modules/handsontable/plugins/trimRows/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TrimRows\", function() { return _trimRows_index_mjs__WEBPACK_IMPORTED_MODULE_32__[\"TrimRows\"]; });\n\n/* harmony import */ var _undoRedo_index_mjs__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./undoRedo/index.mjs */ \"./node_modules/handsontable/plugins/undoRedo/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UndoRedo\", function() { return _undoRedo_index_mjs__WEBPACK_IMPORTED_MODULE_33__[\"UndoRedo\"]; });\n\n/* harmony import */ var _registry_mjs__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./registry.mjs */ \"./node_modules/handsontable/plugins/registry.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getPlugin\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"getPlugin\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getPluginsNames\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"getPluginsNames\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"registerPlugin\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Registers all available plugins.\n */\nfunction registerAllPlugins() {\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_autoColumnSize_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"AutoColumnSize\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_autofill_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"Autofill\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_autoRowSize_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"AutoRowSize\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_bindRowsWithHeaders_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"BindRowsWithHeaders\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_collapsibleColumns_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"CollapsibleColumns\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_columnSorting_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"ColumnSorting\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_columnSummary_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"ColumnSummary\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_comments_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"Comments\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_contextMenu_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"ContextMenu\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_copyPaste_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"CopyPaste\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_customBorders_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"CustomBorders\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_dragToScroll_index_mjs__WEBPACK_IMPORTED_MODULE_12__[\"DragToScroll\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_dropdownMenu_index_mjs__WEBPACK_IMPORTED_MODULE_13__[\"DropdownMenu\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_exportFile_index_mjs__WEBPACK_IMPORTED_MODULE_14__[\"ExportFile\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_filters_index_mjs__WEBPACK_IMPORTED_MODULE_15__[\"Filters\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_formulas_index_mjs__WEBPACK_IMPORTED_MODULE_16__[\"Formulas\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_hiddenColumns_index_mjs__WEBPACK_IMPORTED_MODULE_17__[\"HiddenColumns\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_hiddenRows_index_mjs__WEBPACK_IMPORTED_MODULE_18__[\"HiddenRows\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_manualColumnFreeze_index_mjs__WEBPACK_IMPORTED_MODULE_19__[\"ManualColumnFreeze\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_manualColumnMove_index_mjs__WEBPACK_IMPORTED_MODULE_20__[\"ManualColumnMove\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_manualColumnResize_index_mjs__WEBPACK_IMPORTED_MODULE_21__[\"ManualColumnResize\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_manualRowMove_index_mjs__WEBPACK_IMPORTED_MODULE_22__[\"ManualRowMove\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_manualRowResize_index_mjs__WEBPACK_IMPORTED_MODULE_23__[\"ManualRowResize\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_mergeCells_index_mjs__WEBPACK_IMPORTED_MODULE_24__[\"MergeCells\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_multiColumnSorting_index_mjs__WEBPACK_IMPORTED_MODULE_25__[\"MultiColumnSorting\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_multipleSelectionHandles_index_mjs__WEBPACK_IMPORTED_MODULE_26__[\"MultipleSelectionHandles\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_nestedHeaders_index_mjs__WEBPACK_IMPORTED_MODULE_27__[\"NestedHeaders\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_nestedRows_index_mjs__WEBPACK_IMPORTED_MODULE_28__[\"NestedRows\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_persistentState_index_mjs__WEBPACK_IMPORTED_MODULE_29__[\"PersistentState\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_search_index_mjs__WEBPACK_IMPORTED_MODULE_30__[\"Search\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_touchScroll_index_mjs__WEBPACK_IMPORTED_MODULE_31__[\"TouchScroll\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_trimRows_index_mjs__WEBPACK_IMPORTED_MODULE_32__[\"TrimRows\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_34__[\"registerPlugin\"])(_undoRedo_index_mjs__WEBPACK_IMPORTED_MODULE_33__[\"UndoRedo\"]);\n}\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs":
/*!***********************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs ***!
  \***********************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return freezeColumnItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n/**\n * @param {ManualColumnFreeze} manualColumnFreezePlugin The plugin instance.\n * @returns {object}\n */\nfunction freezeColumnItem(manualColumnFreezePlugin) {\n  return {\n    key: 'freeze_column',\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_FREEZE_COLUMN\"]);\n    },\n    callback(key, selected) {\n      const [{\n        start: {\n          col: selectedColumn\n        }\n      }] = selected;\n      manualColumnFreezePlugin.freezeColumn(selectedColumn);\n      this.render();\n      this.view.adjustElementsSize();\n    },\n    hidden() {\n      const selection = this.getSelectedRange();\n      let hide = false;\n      if (selection === undefined) {\n        hide = true;\n      } else if (selection.length > 1) {\n        hide = true;\n      } else if (selection[0].from.col !== selection[0].to.col || selection[0].from.col <= this.getSettings().fixedColumnsStart - 1) {\n        hide = true;\n      }\n      return hide;\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs":
/*!*************************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs ***!
  \*************************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return unfreezeColumnItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n/**\n * @param {ManualColumnFreeze} manualColumnFreezePlugin The plugin instance.\n * @returns {object}\n */\nfunction unfreezeColumnItem(manualColumnFreezePlugin) {\n  return {\n    key: 'unfreeze_column',\n    name() {\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNFREEZE_COLUMN\"]);\n    },\n    callback(key, selected) {\n      const [{\n        start: {\n          col: selectedColumn\n        }\n      }] = selected;\n      manualColumnFreezePlugin.unfreezeColumn(selectedColumn);\n      this.render();\n      this.view.adjustElementsSize();\n    },\n    hidden() {\n      const selection = this.getSelectedRange();\n      let hide = false;\n      if (selection === undefined) {\n        hide = true;\n      } else if (selection.length > 1) {\n        hide = true;\n      } else if (selection[0].from.col !== selection[0].to.col || selection[0].from.col >= this.getSettings().fixedColumnsStart) {\n        hide = true;\n      }\n      return hide;\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualColumnFreeze/index.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualColumnFreeze/index.mjs ***!
  \************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ManualColumnFreeze */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _manualColumnFreeze_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./manualColumnFreeze.mjs */ \"./node_modules/handsontable/plugins/manualColumnFreeze/manualColumnFreeze.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _manualColumnFreeze_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _manualColumnFreeze_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ManualColumnFreeze\", function() { return _manualColumnFreeze_mjs__WEBPACK_IMPORTED_MODULE_0__[\"ManualColumnFreeze\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualColumnFreeze/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualColumnFreeze/manualColumnFreeze.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualColumnFreeze/manualColumnFreeze.mjs ***!
  \*************************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ManualColumnFreeze */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ManualColumnFreeze\", function() { return ManualColumnFreeze; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _contextMenuItem_freezeColumn_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./contextMenuItem/freezeColumn.mjs */ \"./node_modules/handsontable/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs\");\n/* harmony import */ var _contextMenuItem_unfreezeColumn_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./contextMenuItem/unfreezeColumn.mjs */ \"./node_modules/handsontable/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('beforeColumnFreeze');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('afterColumnFreeze');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('beforeColumnUnfreeze');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('afterColumnUnfreeze');\nconst PLUGIN_KEY = 'manualColumnFreeze';\nconst PLUGIN_PRIORITY = 110;\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @plugin ManualColumnFreeze\n * @class ManualColumnFreeze\n *\n * @description\n * This plugin allows to manually \"freeze\" and \"unfreeze\" a column using an entry in the Context Menu or using API.\n * You can turn it on by setting a {@link Options#manualColumnFreeze} property to `true`.\n *\n * @example\n * ```js\n * // Enables the plugin\n * manualColumnFreeze: true,\n * ```\n */\nvar _afterFirstUse = /*#__PURE__*/new WeakMap();\nvar _ManualColumnFreeze_brand = /*#__PURE__*/new WeakSet();\nclass ManualColumnFreeze extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * Adds the manualColumnFreeze context menu entries.\n     *\n     * @private\n     * @param {object} options Context menu options.\n     */\n    _classPrivateMethodInitSpec(this, _ManualColumnFreeze_brand);\n    /**\n     * Determines when the moving operation is allowed.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _afterFirstUse, false);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link ManualColumnFreeze#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    if (this.enabled) {\n      return;\n    }\n    this.addHook('afterContextMenuDefaultOptions', options => _assertClassBrand(_ManualColumnFreeze_brand, this, _addContextMenuEntry).call(this, options));\n    this.addHook('beforeColumnMove', (columns, finalIndex) => _assertClassBrand(_ManualColumnFreeze_brand, this, _onBeforeColumnMove).call(this, columns, finalIndex));\n    super.enablePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    _classPrivateFieldSet(_afterFirstUse, this, false);\n    super.disablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`manualColumnFreeze`](@/api/options.md#manualcolumnfreeze)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    super.updatePlugin();\n  }\n\n  /**\n   * Freezes the specified column (adds it to fixed columns).\n   *\n   * `freezeColumn()` doesn't re-render the table,\n   * so you need to call the `render()` method afterward.\n   *\n   * @param {number} column Visual column index.\n   */\n  freezeColumn(column) {\n    const settings = this.hot.getSettings();\n    // columns are already fixed (frozen)\n    const freezePerformed = settings.fixedColumnsStart < this.hot.countCols() && column > settings.fixedColumnsStart - 1;\n    if (!_classPrivateFieldGet(_afterFirstUse, this)) {\n      _classPrivateFieldSet(_afterFirstUse, this, true);\n    }\n    const beforeColumnFreezeHook = this.hot.runHooks('beforeColumnFreeze', column, freezePerformed);\n    if (beforeColumnFreezeHook === false) {\n      return;\n    }\n    if (freezePerformed) {\n      this.hot.columnIndexMapper.moveIndexes(column, settings.fixedColumnsStart);\n\n      // Since 12.0.0, the \"fixedColumnsLeft\" is replaced with the \"fixedColumnsStart\" option.\n      // However, keeping the old name still in effect. When both option names are used together,\n      // the error is thrown. To prevent that, the plugin needs to modify the original option key\n      // to bypass the validation.\n      settings._fixedColumnsStart += 1;\n    }\n    this.hot.runHooks('afterColumnFreeze', column, freezePerformed);\n  }\n\n  /**\n   * Unfreezes the given column (remove it from fixed columns and bring to it's previous position).\n   *\n   * @param {number} column Visual column index.\n   */\n  unfreezeColumn(column) {\n    const settings = this.hot.getSettings();\n    // columns are not fixed (not frozen)\n    const unfreezePerformed = settings.fixedColumnsStart > 0 && column <= settings.fixedColumnsStart - 1;\n    if (!_classPrivateFieldGet(_afterFirstUse, this)) {\n      _classPrivateFieldSet(_afterFirstUse, this, true);\n    }\n    const beforeColumnUnfreezeHook = this.hot.runHooks('beforeColumnUnfreeze', column, unfreezePerformed);\n    if (beforeColumnUnfreezeHook === false) {\n      return;\n    }\n    if (unfreezePerformed) {\n      // Since 12.0.0, the \"fixedColumnsLeft\" is replaced with the \"fixedColumnsStart\" option.\n      // However, keeping the old name still in effect. When both option names are used together,\n      // the error is thrown. To prevent that, the plugin needs to modify the original option key\n      // to bypass the validation.\n      settings._fixedColumnsStart -= 1;\n      this.hot.columnIndexMapper.moveIndexes(column, settings.fixedColumnsStart);\n    }\n    this.hot.runHooks('afterColumnUnfreeze', column, unfreezePerformed);\n  }\n}\nfunction _addContextMenuEntry(options) {\n  options.items.push({\n    name: '---------'\n  }, Object(_contextMenuItem_freezeColumn_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(this), Object(_contextMenuItem_unfreezeColumn_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(this));\n}\n/**\n * Prevents moving the columns from/to fixed area.\n *\n * @private\n * @param {Array} columns Array of visual column indexes to be moved.\n * @param {number} finalIndex Visual column index, being a start index for the moved columns. Points to where the elements will be placed after the moving action.\n * @returns {boolean|undefined}\n */\nfunction _onBeforeColumnMove(columns, finalIndex) {\n  if (_classPrivateFieldGet(_afterFirstUse, this)) {\n    const freezeLine = this.hot.getSettings().fixedColumnsStart;\n\n    // Moving any column before the \"freeze line\" isn't possible.\n    if (finalIndex < freezeLine) {\n      return false;\n    }\n\n    // Moving frozen column isn't possible.\n    if (columns.some(column => column < freezeLine)) {\n      return false;\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualColumnFreeze/manualColumnFreeze.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualColumnMove/index.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualColumnMove/index.mjs ***!
  \**********************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ManualColumnMove */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _manualColumnMove_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./manualColumnMove.mjs */ \"./node_modules/handsontable/plugins/manualColumnMove/manualColumnMove.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _manualColumnMove_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _manualColumnMove_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ManualColumnMove\", function() { return _manualColumnMove_mjs__WEBPACK_IMPORTED_MODULE_0__[\"ManualColumnMove\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualColumnMove/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualColumnMove/manualColumnMove.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualColumnMove/manualColumnMove.mjs ***!
  \*********************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ManualColumnMove */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ManualColumnMove\", function() { return ManualColumnMove; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _ui_backlight_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ui/backlight.mjs */ \"./node_modules/handsontable/plugins/manualColumnMove/ui/backlight.mjs\");\n/* harmony import */ var _ui_guideline_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ui/guideline.mjs */ \"./node_modules/handsontable/plugins/manualColumnMove/ui/guideline.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('beforeColumnMove');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('afterColumnMove');\nconst PLUGIN_KEY = 'manualColumnMove';\nconst PLUGIN_PRIORITY = 120;\nconst CSS_PLUGIN = 'ht__manualColumnMove';\nconst CSS_SHOW_UI = 'show-ui';\nconst CSS_ON_MOVING = 'on-moving--columns';\nconst CSS_AFTER_SELECTION = 'after-selection--columns';\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @plugin ManualColumnMove\n * @class ManualColumnMove\n *\n * @description\n * This plugin allows to change columns order. To make columns order persistent the {@link Options#persistentState}\n * plugin should be enabled.\n *\n * API:\n * - `moveColumn` - move single column to the new position.\n * - `moveColumns` - move many columns (as an array of indexes) to the new position.\n * - `dragColumn` - drag single column to the new position.\n * - `dragColumns` - drag many columns (as an array of indexes) to the new position.\n *\n * [Documentation](@/guides/columns/column-moving/column-moving.md) explain differences between drag and move actions.\n * Please keep in mind that if you want apply visual changes,\n * you have to call manually the `render` method on the instance of Handsontable.\n *\n * The plugin creates additional components to make moving possibly using user interface:\n * - backlight - highlight of selected columns.\n * - guideline - line which shows where columns has been moved.\n *\n * @class ManualColumnMove\n * @plugin ManualColumnMove\n */\nvar _backlight = /*#__PURE__*/new WeakMap();\nvar _guideline = /*#__PURE__*/new WeakMap();\nvar _columnsToMove = /*#__PURE__*/new WeakMap();\nvar _countCols = /*#__PURE__*/new WeakMap();\nvar _pressed = /*#__PURE__*/new WeakMap();\nvar _target = /*#__PURE__*/new WeakMap();\nvar _cachedDropIndex = /*#__PURE__*/new WeakMap();\nvar _hoveredColumn = /*#__PURE__*/new WeakMap();\nvar _rootElementOffset = /*#__PURE__*/new WeakMap();\nvar _hasRowHeaders = /*#__PURE__*/new WeakMap();\nvar _fixedColumnsStart = /*#__PURE__*/new WeakMap();\nvar _ManualColumnMove_brand = /*#__PURE__*/new WeakSet();\nclass ManualColumnMove extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * Change the behavior of selection / dragging.\n     *\n     * @param {MouseEvent} event `mousedown` event properties.\n     * @param {CellCoords} coords Visual cell coordinates where was fired event.\n     * @param {HTMLElement} TD Cell represented as HTMLElement.\n     * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains\n     *                            a boolean value that allows or disallows changing the selection for that particular area.\n     */\n    _classPrivateMethodInitSpec(this, _ManualColumnMove_brand);\n    /**\n     * Backlight UI object.\n     *\n     * @type {object}\n     */\n    _classPrivateFieldInitSpec(this, _backlight, new _ui_backlight_mjs__WEBPACK_IMPORTED_MODULE_8__[\"default\"](this.hot));\n    /**\n     * Guideline UI object.\n     *\n     * @type {object}\n     */\n    _classPrivateFieldInitSpec(this, _guideline, new _ui_guideline_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"](this.hot));\n    /**\n     * @type {number[]}\n     */\n    _classPrivateFieldInitSpec(this, _columnsToMove, []);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _countCols, 0);\n    /**\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _pressed, false);\n    /**\n     * @type {object}\n     */\n    _classPrivateFieldInitSpec(this, _target, {});\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _cachedDropIndex, void 0);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _hoveredColumn, void 0);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _rootElementOffset, void 0);\n    /**\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _hasRowHeaders, void 0);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _fixedColumnsStart, void 0);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link ManualColumnMove#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    this.addHook('beforeOnCellMouseDown', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_ManualColumnMove_brand, _this, _onBeforeOnCellMouseDown).call(_this, ...args);\n    });\n    this.addHook('beforeOnCellMouseOver', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_ManualColumnMove_brand, _this, _onBeforeOnCellMouseOver).call(_this, ...args);\n    });\n    this.addHook('afterScrollVertically', () => _assertClassBrand(_ManualColumnMove_brand, this, _onAfterScrollVertically).call(this));\n    this.addHook('afterLoadData', function () {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n      return _assertClassBrand(_ManualColumnMove_brand, _this, _onAfterLoadData).call(_this, ...args);\n    });\n    this.buildPluginUI();\n    this.registerEvents();\n\n    // TODO: move adding plugin classname to BasePlugin.\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"addClass\"])(this.hot.rootElement, CSS_PLUGIN);\n    super.enablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`manualColumnMove`](@/api/options.md#manualcolumnmove)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    this.moveBySettingsOrLoad();\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"removeClass\"])(this.hot.rootElement, CSS_PLUGIN);\n    this.unregisterEvents();\n    _classPrivateFieldGet(_backlight, this).destroy();\n    _classPrivateFieldGet(_guideline, this).destroy();\n    super.disablePlugin();\n  }\n\n  /**\n   * Moves a single column.\n   *\n   * @param {number} column Visual column index to be moved.\n   * @param {number} finalIndex Visual column index, being a start index for the moved columns. Points to where the elements will be placed after the moving action.\n   * To check the visualization of the final index, please take a look at [documentation](@/guides/columns/column-moving/column-moving.md#drag-and-move-actions-of-manualcolumnmove-plugin).\n   * @fires Hooks#beforeColumnMove\n   * @fires Hooks#afterColumnMove\n   * @returns {boolean}\n   */\n  moveColumn(column, finalIndex) {\n    return this.moveColumns([column], finalIndex);\n  }\n\n  /**\n   * Moves a multiple columns.\n   *\n   * @param {Array} columns Array of visual column indexes to be moved.\n   * @param {number} finalIndex Visual column index, being a start index for the moved columns. Points to where the elements will be placed after the moving action.\n   * To check the visualization of the final index, please take a look at [documentation](@/guides/columns/column-moving/column-moving.md#drag-and-move-actions-of-manualcolumnmove-plugin).\n   * @fires Hooks#beforeColumnMove\n   * @fires Hooks#afterColumnMove\n   * @returns {boolean}\n   */\n  moveColumns(columns, finalIndex) {\n    const dropIndex = _classPrivateFieldGet(_cachedDropIndex, this);\n    const movePossible = this.isMovePossible(columns, finalIndex);\n    const beforeMoveHook = this.hot.runHooks('beforeColumnMove', columns, finalIndex, dropIndex, movePossible);\n    _classPrivateFieldSet(_cachedDropIndex, this, undefined);\n    if (beforeMoveHook === false) {\n      return;\n    }\n    if (movePossible) {\n      this.hot.columnIndexMapper.moveIndexes(columns, finalIndex);\n    }\n    const movePerformed = movePossible && this.isColumnOrderChanged(columns, finalIndex);\n    this.hot.runHooks('afterColumnMove', columns, finalIndex, dropIndex, movePossible, movePerformed);\n    return movePerformed;\n  }\n\n  /**\n   * Drag a single column to drop index position.\n   *\n   * @param {number} column Visual column index to be dragged.\n   * @param {number} dropIndex Visual column index, being a drop index for the moved columns. Points to where we are going to drop the moved elements.\n   * To check visualization of drop index please take a look at [documentation](@/guides/columns/column-moving/column-moving.md#drag-and-move-actions-of-manualcolumnmove-plugin).\n   * @fires Hooks#beforeColumnMove\n   * @fires Hooks#afterColumnMove\n   * @returns {boolean}\n   */\n  dragColumn(column, dropIndex) {\n    return this.dragColumns([column], dropIndex);\n  }\n\n  /**\n   * Drag multiple columns to drop index position.\n   *\n   * @param {Array} columns Array of visual column indexes to be dragged.\n   * @param {number} dropIndex Visual column index, being a drop index for the moved columns. Points to where we are going to drop the moved elements.\n   * To check visualization of drop index please take a look at [documentation](@/guides/columns/column-moving/column-moving.md#drag-and-move-actions-of-manualcolumnmove-plugin).\n   * @fires Hooks#beforeColumnMove\n   * @fires Hooks#afterColumnMove\n   * @returns {boolean}\n   */\n  dragColumns(columns, dropIndex) {\n    const finalIndex = this.countFinalIndex(columns, dropIndex);\n    _classPrivateFieldSet(_cachedDropIndex, this, dropIndex);\n    return this.moveColumns(columns, finalIndex);\n  }\n\n  /**\n   * Indicates if it's possible to move columns to the desired position. Some of the actions aren't\n   * possible, i.e. You can’t move more than one element to the last position.\n   *\n   * @param {Array} movedColumns Array of visual column indexes to be moved.\n   * @param {number} finalIndex Visual column index, being a start index for the moved columns. Points to where the elements will be placed after the moving action.\n   * To check the visualization of the final index, please take a look at [documentation](@/guides/columns/column-moving/column-moving.md#drag-and-move-actions-of-manualcolumnmove-plugin).\n   * @returns {boolean}\n   */\n  isMovePossible(movedColumns, finalIndex) {\n    const length = this.hot.columnIndexMapper.getNotTrimmedIndexesLength();\n\n    // An attempt to transfer more columns to start destination than is possible (only when moving from the top to the bottom).\n    const tooHighDestinationIndex = movedColumns.length + finalIndex > length;\n    const tooLowDestinationIndex = finalIndex < 0;\n    const tooLowMovedColumnIndex = movedColumns.some(movedColumn => movedColumn < 0);\n    const tooHighMovedColumnIndex = movedColumns.some(movedColumn => movedColumn >= length);\n    if (tooHighDestinationIndex || tooLowDestinationIndex || tooLowMovedColumnIndex || tooHighMovedColumnIndex) {\n      return false;\n    }\n    return true;\n  }\n\n  /**\n   * Indicates if order of columns was changed.\n   *\n   * @private\n   * @param {Array} movedColumns Array of visual column indexes to be moved.\n   * @param {number} finalIndex Visual column index, being a start index for the moved columns. Points to where the elements will be placed after the moving action.\n   * To check the visualization of the final index, please take a look at [documentation](@/guides/columns/column-moving/column-moving.md#drag-and-move-actions-of-manualcolumnmove-plugin).\n   * @returns {boolean}\n   */\n  isColumnOrderChanged(movedColumns, finalIndex) {\n    return movedColumns.some((column, nrOfMovedElement) => column - nrOfMovedElement !== finalIndex);\n  }\n\n  /**\n   * Count the final column index from the drop index.\n   *\n   * @private\n   * @param {Array} movedColumns Array of visual column indexes to be moved.\n   * @param {number} dropIndex Visual column index, being a drop index for the moved columns.\n   * @returns {number} Visual column index, being a start index for the moved columns.\n   */\n  countFinalIndex(movedColumns, dropIndex) {\n    const numberOfColumnsLowerThanDropIndex = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayReduce\"])(movedColumns, (numberOfColumns, currentColumnIndex) => {\n      if (currentColumnIndex < dropIndex) {\n        numberOfColumns += 1;\n      }\n      return numberOfColumns;\n    }, 0);\n    return dropIndex - numberOfColumnsLowerThanDropIndex;\n  }\n\n  /**\n   * Gets the sum of the widths of columns in the provided range.\n   *\n   * @private\n   * @param {number} fromColumn Visual column index.\n   * @param {number} toColumn Visual column index.\n   * @returns {number}\n   */\n  getColumnsWidth(fromColumn, toColumn) {\n    const columnMapper = this.hot.columnIndexMapper;\n    let columnsWidth = 0;\n    for (let visualColumnIndex = fromColumn; visualColumnIndex <= toColumn; visualColumnIndex += 1) {\n      // We can't use just `getColWidth` (even without indexes translation) as it doesn't return proper values\n      // when column is stretched.\n      const renderableIndex = columnMapper.getRenderableFromVisualIndex(visualColumnIndex);\n      if (visualColumnIndex < 0) {\n        columnsWidth += this.hot.view._wt.wtViewport.getRowHeaderWidth() || 0;\n      } else if (renderableIndex !== null) {\n        columnsWidth += this.hot.view._wt.wtTable.getStretchedColumnWidth(renderableIndex) || 0;\n      }\n    }\n    return columnsWidth;\n  }\n\n  /**\n   * Loads initial settings when persistent state is saved or when plugin was initialized as an array.\n   *\n   * @private\n   */\n  moveBySettingsOrLoad() {\n    const pluginSettings = this.hot.getSettings()[PLUGIN_KEY];\n    if (Array.isArray(pluginSettings)) {\n      this.moveColumns(pluginSettings, 0);\n    } else if (pluginSettings !== undefined) {\n      const persistentState = this.persistentStateLoad();\n      if (persistentState.length) {\n        this.moveColumns(persistentState, 0);\n      }\n    }\n  }\n\n  /**\n   * Checks if the provided column is in the fixedColumnsTop section.\n   *\n   * @private\n   * @param {number} column Visual column index to check.\n   * @returns {boolean}\n   */\n  isFixedColumnsStart(column) {\n    return column < this.hot.getSettings().fixedColumnsStart;\n  }\n\n  /**\n   * Saves the manual column positions to the persistent state (the {@link Options#persistentState} option has to be enabled).\n   *\n   * @private\n   * @fires Hooks#persistentStateSave\n   */\n  persistentStateSave() {\n    this.hot.runHooks('persistentStateSave', 'manualColumnMove', this.hot.columnIndexMapper.getIndexesSequence()); // The `PersistentState` plugin should be refactored.\n  }\n\n  /**\n   * Loads the manual column positions from the persistent state (the {@link Options#persistentState} option has to be enabled).\n   *\n   * @private\n   * @fires Hooks#persistentStateLoad\n   * @returns {Array} Stored state.\n   */\n  persistentStateLoad() {\n    const storedState = {};\n    this.hot.runHooks('persistentStateLoad', 'manualColumnMove', storedState);\n    return storedState.value ? storedState.value : [];\n  }\n\n  /**\n   * Prepares an array of indexes based on actual selection.\n   *\n   * @private\n   * @param {number} start The start index.\n   * @param {number} end The end index.\n   * @returns {Array}\n   */\n  prepareColumnsToMoving(start, end) {\n    const selectedColumns = [];\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_7__[\"rangeEach\"])(start, end, i => {\n      selectedColumns.push(i);\n    });\n    return selectedColumns;\n  }\n\n  /**\n   * Update the UI visual position.\n   *\n   * @private\n   */\n  refreshPositions() {\n    const firstVisible = this.hot.view.getFirstFullyVisibleColumn();\n    if (this.isFixedColumnsStart(_classPrivateFieldGet(_hoveredColumn, this)) && firstVisible > 0) {\n      this.hot.scrollViewportTo({\n        col: this.hot.columnIndexMapper.getNearestNotHiddenIndex(firstVisible - 1, -1)\n      });\n    }\n    const wtTable = this.hot.view._wt.wtTable;\n    const scrollableElement = this.hot.view._wt.wtOverlays.scrollableElement;\n    const scrollStart = typeof scrollableElement.scrollX === 'number' ? scrollableElement.scrollX : scrollableElement.scrollLeft;\n    let tdOffsetStart = this.hot.view.THEAD.offsetLeft + this.getColumnsWidth(0, _classPrivateFieldGet(_hoveredColumn, this) - 1);\n    const hiderWidth = wtTable.hider.offsetWidth;\n    const tbodyOffsetLeft = wtTable.TBODY.offsetLeft;\n    const backlightElemMarginStart = _classPrivateFieldGet(_backlight, this).getOffset().start;\n    const backlightElemWidth = _classPrivateFieldGet(_backlight, this).getSize().width;\n    let rowHeaderWidth = 0;\n    let mouseOffsetStart = 0;\n    if (this.hot.isRtl()) {\n      const rootWindow = this.hot.rootWindow;\n      const containerWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"outerWidth\"])(this.hot.rootElement);\n      const gridMostRightPos = rootWindow.innerWidth - _classPrivateFieldGet(_rootElementOffset, this) - containerWidth;\n      mouseOffsetStart = rootWindow.innerWidth - _classPrivateFieldGet(_target, this).eventPageX - gridMostRightPos - (scrollableElement.scrollX === undefined ? scrollStart : 0);\n    } else {\n      mouseOffsetStart = _classPrivateFieldGet(_target, this).eventPageX - (_classPrivateFieldGet(_rootElementOffset, this) - (scrollableElement.scrollX === undefined ? scrollStart : 0));\n    }\n    if (_classPrivateFieldGet(_hasRowHeaders, this)) {\n      rowHeaderWidth = this.hot.view._wt.wtOverlays.inlineStartOverlay.clone.wtTable.getColumnHeader(-1).offsetWidth;\n    }\n    if (this.isFixedColumnsStart(_classPrivateFieldGet(_hoveredColumn, this))) {\n      tdOffsetStart += scrollStart;\n    }\n    tdOffsetStart += rowHeaderWidth;\n    if (_classPrivateFieldGet(_hoveredColumn, this) < 0) {\n      // if hover on rowHeader\n      if (_classPrivateFieldGet(_fixedColumnsStart, this) > 0) {\n        _classPrivateFieldGet(_target, this).col = 0;\n      } else {\n        _classPrivateFieldGet(_target, this).col = firstVisible > 0 ? firstVisible - 1 : firstVisible;\n      }\n    } else if (_classPrivateFieldGet(_target, this).TD.offsetWidth / 2 + tdOffsetStart <= mouseOffsetStart) {\n      const newCoordsCol = _classPrivateFieldGet(_hoveredColumn, this) >= _classPrivateFieldGet(_countCols, this) ? _classPrivateFieldGet(_countCols, this) - 1 : _classPrivateFieldGet(_hoveredColumn, this);\n\n      // if hover on right part of TD\n      _classPrivateFieldGet(_target, this).col = newCoordsCol + 1;\n      // unfortunately first column is bigger than rest\n      tdOffsetStart += _classPrivateFieldGet(_target, this).TD.offsetWidth;\n    } else {\n      // elsewhere on table\n      _classPrivateFieldGet(_target, this).col = _classPrivateFieldGet(_hoveredColumn, this);\n    }\n    let backlightStart = mouseOffsetStart;\n    let guidelineStart = tdOffsetStart;\n    if (mouseOffsetStart + backlightElemWidth + backlightElemMarginStart >= hiderWidth) {\n      // prevent display backlight on the right side of the table\n      backlightStart = hiderWidth - backlightElemWidth - backlightElemMarginStart;\n    } else if (mouseOffsetStart + backlightElemMarginStart < tbodyOffsetLeft + rowHeaderWidth) {\n      // prevent display backlight on the left side of the table\n      backlightStart = tbodyOffsetLeft + rowHeaderWidth + Math.abs(backlightElemMarginStart);\n    }\n    if (tdOffsetStart >= hiderWidth - 1) {\n      // prevent display guideline outside the table\n      guidelineStart = hiderWidth - 1;\n    } else if (guidelineStart === 0) {\n      // guideline has got `margin-left: -1px` as default\n      guidelineStart = 1;\n    } else if (scrollableElement.scrollX !== undefined && _classPrivateFieldGet(_hoveredColumn, this) < _classPrivateFieldGet(_fixedColumnsStart, this)) {\n      guidelineStart -= _classPrivateFieldGet(_rootElementOffset, this) <= scrollableElement.scrollX ? _classPrivateFieldGet(_rootElementOffset, this) : 0;\n    }\n    _classPrivateFieldGet(_backlight, this).setPosition(null, backlightStart);\n    _classPrivateFieldGet(_guideline, this).setPosition(null, guidelineStart);\n  }\n\n  /**\n   * Binds the events used by the plugin.\n   *\n   * @private\n   */\n  registerEvents() {\n    const {\n      documentElement\n    } = this.hot.rootDocument;\n    this.eventManager.addEventListener(documentElement, 'mousemove', event => _assertClassBrand(_ManualColumnMove_brand, this, _onMouseMove).call(this, event));\n    this.eventManager.addEventListener(documentElement, 'mouseup', () => _assertClassBrand(_ManualColumnMove_brand, this, _onMouseUp).call(this));\n  }\n\n  /**\n   * Unbinds the events used by the plugin.\n   *\n   * @private\n   */\n  unregisterEvents() {\n    this.eventManager.clear();\n  }\n  /**\n   * Builds the plugin's UI.\n   *\n   * @private\n   */\n  buildPluginUI() {\n    _classPrivateFieldGet(_backlight, this).build();\n    _classPrivateFieldGet(_guideline, this).build();\n  }\n\n  /**\n   * Callback for the `afterLoadData` hook.\n   *\n   * @private\n   */\n\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    _classPrivateFieldGet(_backlight, this).destroy();\n    _classPrivateFieldGet(_guideline, this).destroy();\n    super.destroy();\n  }\n}\nfunction _onBeforeOnCellMouseDown(event, coords, TD, controller) {\n  const wtTable = this.hot.view._wt.wtTable;\n  const isHeaderSelection = this.hot.selection.isSelectedByColumnHeader();\n  const selection = this.hot.getSelectedRangeLast();\n  // This block action shouldn't be handled below.\n  const isSortingElement = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"hasClass\"])(event.target, 'sortAction');\n  if (!selection || !isHeaderSelection || _classPrivateFieldGet(_pressed, this) || event.button !== 0 || isSortingElement) {\n    _classPrivateFieldSet(_pressed, this, false);\n    _classPrivateFieldGet(_columnsToMove, this).length = 0;\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"removeClass\"])(this.hot.rootElement, [CSS_ON_MOVING, CSS_SHOW_UI]);\n    return;\n  }\n  const guidelineIsNotReady = _classPrivateFieldGet(_guideline, this).isBuilt() && !_classPrivateFieldGet(_guideline, this).isAppended();\n  const backlightIsNotReady = _classPrivateFieldGet(_backlight, this).isBuilt() && !_classPrivateFieldGet(_backlight, this).isAppended();\n  if (guidelineIsNotReady && backlightIsNotReady) {\n    _classPrivateFieldGet(_guideline, this).appendTo(wtTable.hider);\n    _classPrivateFieldGet(_backlight, this).appendTo(wtTable.hider);\n  }\n  const {\n    from,\n    to\n  } = selection;\n  const start = Math.min(from.col, to.col);\n  const end = Math.max(from.col, to.col);\n  if (coords.row < 0 && coords.col >= start && coords.col <= end) {\n    controller.column = true;\n    _classPrivateFieldSet(_pressed, this, true);\n    const eventOffsetX = TD.firstChild ? Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_6__[\"offsetRelativeTo\"])(event, TD.firstChild).x : event.offsetX;\n    _classPrivateFieldGet(_target, this).eventPageX = event.pageX;\n    _classPrivateFieldSet(_hoveredColumn, this, coords.col);\n    _classPrivateFieldGet(_target, this).TD = TD;\n    _classPrivateFieldGet(_target, this).col = coords.col;\n    _classPrivateFieldSet(_columnsToMove, this, this.prepareColumnsToMoving(start, end));\n    _classPrivateFieldSet(_hasRowHeaders, this, !!this.hot.getSettings().rowHeaders);\n    _classPrivateFieldSet(_countCols, this, this.hot.countCols());\n    _classPrivateFieldSet(_fixedColumnsStart, this, this.hot.getSettings().fixedColumnsStart);\n    _classPrivateFieldSet(_rootElementOffset, this, Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"offset\"])(this.hot.rootElement).left);\n    const countColumnsFrom = _classPrivateFieldGet(_hasRowHeaders, this) ? -1 : 0;\n    const topPos = wtTable.holder.scrollTop + wtTable.getColumnHeaderHeight(0) + 1;\n    const fixedColumnsStart = coords.col < _classPrivateFieldGet(_fixedColumnsStart, this);\n    const horizontalScrollPosition = this.hot.view._wt.wtOverlays.inlineStartOverlay.getOverlayOffset();\n    const offsetX = Math.abs(eventOffsetX - (this.hot.isRtl() ? TD.offsetWidth : 0));\n    const inlineOffset = this.getColumnsWidth(start, coords.col - 1) + offsetX;\n    const inlinePos = this.getColumnsWidth(countColumnsFrom, start - 1) + (fixedColumnsStart ? horizontalScrollPosition : 0) + inlineOffset;\n    _classPrivateFieldGet(_backlight, this).setPosition(topPos, inlinePos);\n    _classPrivateFieldGet(_backlight, this).setSize(this.getColumnsWidth(start, end), wtTable.hider.offsetHeight - topPos);\n    _classPrivateFieldGet(_backlight, this).setOffset(null, -inlineOffset);\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"addClass\"])(this.hot.rootElement, CSS_ON_MOVING);\n  } else {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"removeClass\"])(this.hot.rootElement, CSS_AFTER_SELECTION);\n    _classPrivateFieldSet(_pressed, this, false);\n    _classPrivateFieldGet(_columnsToMove, this).length = 0;\n  }\n}\n/**\n * 'mouseMove' event callback. Fired when pointer move on document.documentElement.\n *\n * @param {MouseEvent} event `mousemove` event properties.\n */\nfunction _onMouseMove(event) {\n  if (!_classPrivateFieldGet(_pressed, this)) {\n    return;\n  }\n  _classPrivateFieldGet(_target, this).eventPageX = event.pageX;\n  this.refreshPositions();\n}\n/**\n * 'beforeOnCellMouseOver' hook callback. Fired when pointer was over cell.\n *\n * @param {MouseEvent} event `mouseover` event properties.\n * @param {CellCoords} coords Visual cell coordinates where was fired event.\n * @param {HTMLElement} TD Cell represented as HTMLElement.\n * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains\n *                            a boolean value that allows or disallows changing the selection for that particular area.\n */\nfunction _onBeforeOnCellMouseOver(event, coords, TD, controller) {\n  const selectedRange = this.hot.getSelectedRangeLast();\n  if (!selectedRange || !_classPrivateFieldGet(_pressed, this)) {\n    return;\n  }\n  if (_classPrivateFieldGet(_columnsToMove, this).indexOf(coords.col) > -1) {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"removeClass\"])(this.hot.rootElement, CSS_SHOW_UI);\n  } else {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"addClass\"])(this.hot.rootElement, CSS_SHOW_UI);\n  }\n  controller.row = true;\n  controller.column = true;\n  controller.cell = true;\n  _classPrivateFieldSet(_hoveredColumn, this, coords.col);\n  _classPrivateFieldGet(_target, this).TD = TD;\n}\n/**\n * `onMouseUp` hook callback.\n */\nfunction _onMouseUp() {\n  const target = _classPrivateFieldGet(_target, this).col;\n  const columnsLen = _classPrivateFieldGet(_columnsToMove, this).length;\n  _classPrivateFieldSet(_hoveredColumn, this, undefined);\n  _classPrivateFieldSet(_pressed, this, false);\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"removeClass\"])(this.hot.rootElement, [CSS_ON_MOVING, CSS_SHOW_UI, CSS_AFTER_SELECTION]);\n  if (this.hot.selection.isSelectedByColumnHeader()) {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"addClass\"])(this.hot.rootElement, CSS_AFTER_SELECTION);\n  }\n  if (columnsLen < 1 || target === undefined) {\n    return;\n  }\n  const firstMovedVisualColumn = _classPrivateFieldGet(_columnsToMove, this)[0];\n  const firstMovedPhysicalColumn = this.hot.toPhysicalColumn(firstMovedVisualColumn);\n  const movePerformed = this.dragColumns(_classPrivateFieldGet(_columnsToMove, this), target);\n  _classPrivateFieldGet(_columnsToMove, this).length = 0;\n  if (movePerformed === true) {\n    this.persistentStateSave();\n    this.hot.render();\n    this.hot.view.adjustElementsSize();\n    const selectionStart = this.hot.toVisualColumn(firstMovedPhysicalColumn);\n    const selectionEnd = selectionStart + columnsLen - 1;\n    this.hot.selectColumns(selectionStart, selectionEnd);\n  }\n}\n/**\n * `afterScrollHorizontally` hook callback. Fired the table was scrolled horizontally.\n */\nfunction _onAfterScrollVertically() {\n  const wtTable = this.hot.view._wt.wtTable;\n  const headerHeight = wtTable.getColumnHeaderHeight(0) + 1;\n  const scrollTop = wtTable.holder.scrollTop;\n  const posTop = headerHeight + scrollTop;\n  _classPrivateFieldGet(_backlight, this).setPosition(posTop);\n  _classPrivateFieldGet(_backlight, this).setSize(null, wtTable.hider.offsetHeight - posTop);\n}\nfunction _onAfterLoadData() {\n  this.moveBySettingsOrLoad();\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualColumnMove/manualColumnMove.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualColumnMove/ui/_base.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualColumnMove/ui/_base.mjs ***!
  \*************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_string_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/string.mjs */ \"./node_modules/handsontable/helpers/string.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\nconst STATE_INITIALIZED = 0;\nconst STATE_BUILT = 1;\nconst STATE_APPENDED = 2;\nconst UNIT = 'px';\n\n/**\n * @class\n * @private\n */\nclass BaseUI {\n  constructor(hotInstance) {\n    /**\n     * Instance of Handsontable.\n     *\n     * @type {Core}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * DOM element representing the ui element.\n     *\n     * @type {HTMLElement}\n     * @private\n     */\n    _defineProperty(this, \"_element\", null);\n    /**\n     * Flag which determines build state of element.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"state\", STATE_INITIALIZED);\n    /**\n     * Defines the \"start\" physical CSS property name used within the class depending on what document\n     * layout direction the library runs.\n     *\n     * @type {string}\n     */\n    _defineProperty(this, \"inlineProperty\", void 0);\n    this.hot = hotInstance;\n    this.inlineProperty = hotInstance.isRtl() ? 'right' : 'left';\n  }\n\n  /**\n   * Add created UI elements to table.\n   *\n   * @param {HTMLElement} wrapper Element which are parent for our UI element.\n   */\n  appendTo(wrapper) {\n    wrapper.appendChild(this._element);\n    this.state = STATE_APPENDED;\n  }\n\n  /**\n   * Method for create UI element. Only create, without append to table.\n   */\n  build() {\n    if (this.state !== STATE_INITIALIZED) {\n      return;\n    }\n    this._element = this.hot.rootDocument.createElement('div');\n    this.state = STATE_BUILT;\n  }\n\n  /**\n   * Method for remove UI element.\n   */\n  destroy() {\n    if (this.isAppended()) {\n      this._element.parentElement.removeChild(this._element);\n    }\n    this._element = null;\n    this.state = STATE_INITIALIZED;\n  }\n\n  /**\n   * Check if UI element are appended.\n   *\n   * @returns {boolean}\n   */\n  isAppended() {\n    return this.state === STATE_APPENDED;\n  }\n\n  /**\n   * Check if UI element are built.\n   *\n   * @returns {boolean}\n   */\n  isBuilt() {\n    return this.state >= STATE_BUILT;\n  }\n\n  /**\n   * Setter for position.\n   *\n   * @param {number} top New top position of the element.\n   * @param {number} inlinePosition New left/right (depends on LTR/RTL document mode) position of the element.\n   */\n  setPosition(top, inlinePosition) {\n    if (Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isNumeric\"])(top)) {\n      this._element.style.top = top + UNIT;\n    }\n    if (Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isNumeric\"])(inlinePosition)) {\n      this._element.style[this.inlineProperty] = inlinePosition + UNIT;\n    }\n  }\n\n  /**\n   * Getter for the element position.\n   *\n   * @returns {object} Object contains left and top position of the element.\n   */\n  getPosition() {\n    const style = this._element.style;\n    return {\n      top: style.top ? parseInt(style.top, 10) : 0,\n      start: style[this.inlineProperty] ? parseInt(style[this.inlineProperty], 10) : 0\n    };\n  }\n\n  /**\n   * Setter for the element size.\n   *\n   * @param {number} width New width of the element.\n   * @param {number} height New height of the element.\n   */\n  setSize(width, height) {\n    if (Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isNumeric\"])(width)) {\n      this._element.style.width = width + UNIT;\n    }\n    if (Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isNumeric\"])(height)) {\n      this._element.style.height = height + UNIT;\n    }\n  }\n\n  /**\n   * Getter for the element position.\n   *\n   * @returns {object} Object contains height and width of the element.\n   */\n  getSize() {\n    return {\n      width: this._element.style.width ? parseInt(this._element.style.width, 10) : 0,\n      height: this._element.style.height ? parseInt(this._element.style.height, 10) : 0\n    };\n  }\n\n  /**\n   * Setter for the element offset. Offset means marginTop and marginLeft of the element.\n   *\n   * @param {number} top New margin top of the element.\n   * @param {number} inlineOffset New margin left/right (depends on LTR/RTL document mode) of the element.\n   */\n  setOffset(top, inlineOffset) {\n    if (Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isNumeric\"])(top)) {\n      this._element.style.marginTop = top + UNIT;\n    }\n    if (Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isNumeric\"])(inlineOffset)) {\n      this._element.style[`margin${Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_2__[\"toUpperCaseFirst\"])(this.inlineProperty)}`] = inlineOffset + UNIT;\n    }\n  }\n\n  /**\n   * Getter for the element offset.\n   *\n   * @returns {object} Object contains top and left offset of the element.\n   */\n  getOffset() {\n    const style = this._element.style;\n    const inlineProp = `margin${Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_2__[\"toUpperCaseFirst\"])(this.inlineProperty)}`;\n    return {\n      top: style.marginTop ? parseInt(style.marginTop, 10) : 0,\n      start: style[inlineProp] ? parseInt(style[inlineProp], 10) : 0\n    };\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (BaseUI);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualColumnMove/ui/_base.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualColumnMove/ui/backlight.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualColumnMove/ui/backlight.mjs ***!
  \*****************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/manualColumnMove/ui/_base.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n\n\nconst CSS_CLASSNAME = 'ht__manualColumnMove--backlight';\n\n/**\n * @class BacklightUI\n * @util\n */\nclass BacklightUI extends _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  /**\n   * Custom className on build process.\n   */\n  build() {\n    super.build();\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(this._element, CSS_CLASSNAME);\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (BacklightUI);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualColumnMove/ui/backlight.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualColumnMove/ui/guideline.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualColumnMove/ui/guideline.mjs ***!
  \*****************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/manualColumnMove/ui/_base.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n\n\nconst CSS_CLASSNAME = 'ht__manualColumnMove--guideline';\n\n/**\n * @class GuidelineUI\n * @util\n */\nclass GuidelineUI extends _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  /**\n   * Custom className on build process.\n   */\n  build() {\n    super.build();\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(this._element, CSS_CLASSNAME);\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (GuidelineUI);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualColumnMove/ui/guideline.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualColumnResize/index.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualColumnResize/index.mjs ***!
  \************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ManualColumnResize */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _manualColumnResize_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./manualColumnResize.mjs */ \"./node_modules/handsontable/plugins/manualColumnResize/manualColumnResize.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _manualColumnResize_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _manualColumnResize_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ManualColumnResize\", function() { return _manualColumnResize_mjs__WEBPACK_IMPORTED_MODULE_0__[\"ManualColumnResize\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualColumnResize/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualColumnResize/manualColumnResize.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualColumnResize/manualColumnResize.mjs ***!
  \*************************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ManualColumnResize */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ManualColumnResize\", function() { return ManualColumnResize; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n // Developer note! Whenever you make a change in this file, make an analogous change in manualRowResize.js\nconst PLUGIN_KEY = 'manualColumnResize';\nconst PLUGIN_PRIORITY = 130;\nconst PERSISTENT_STATE_KEY = 'manualColumnWidths';\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @plugin ManualColumnResize\n * @class ManualColumnResize\n *\n * @description\n * This plugin allows to change columns width. To make columns width persistent the {@link Options#persistentState}\n * plugin should be enabled.\n *\n * The plugin creates additional components to make resizing possibly using user interface:\n * - handle - the draggable element that sets the desired width of the column.\n * - guide - the helper guide that shows the desired width as a vertical guide.\n */\nvar _currentTH = /*#__PURE__*/new WeakMap();\nvar _currentCol = /*#__PURE__*/new WeakMap();\nvar _selectedCols = /*#__PURE__*/new WeakMap();\nvar _currentWidth = /*#__PURE__*/new WeakMap();\nvar _newSize = /*#__PURE__*/new WeakMap();\nvar _startY = /*#__PURE__*/new WeakMap();\nvar _startWidth = /*#__PURE__*/new WeakMap();\nvar _startOffset = /*#__PURE__*/new WeakMap();\nvar _handle = /*#__PURE__*/new WeakMap();\nvar _guide = /*#__PURE__*/new WeakMap();\nvar _pressed = /*#__PURE__*/new WeakMap();\nvar _isTriggeredByRMB = /*#__PURE__*/new WeakMap();\nvar _dblclick = /*#__PURE__*/new WeakMap();\nvar _autoresizeTimeout = /*#__PURE__*/new WeakMap();\nvar _columnWidthsMap = /*#__PURE__*/new WeakMap();\nvar _config = /*#__PURE__*/new WeakMap();\nvar _ManualColumnResize_brand = /*#__PURE__*/new WeakSet();\nclass ManualColumnResize extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BasePlugin\"] {\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n\n  /**\n   * @type {HTMLTableHeaderCellElement}\n   */\n\n  constructor(hotInstance) {\n    super(hotInstance);\n    /**\n     * Callback to call on map's `init` local hook.\n     *\n     * @private\n     */\n    _classPrivateMethodInitSpec(this, _ManualColumnResize_brand);\n    _classPrivateFieldInitSpec(this, _currentTH, null);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _currentCol, null);\n    /**\n     * @type {number[]}\n     */\n    _classPrivateFieldInitSpec(this, _selectedCols, []);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _currentWidth, null);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _newSize, null);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _startY, null);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _startWidth, null);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _startOffset, null);\n    /**\n     * @type {HTMLElement}\n     */\n    _classPrivateFieldInitSpec(this, _handle, this.hot.rootDocument.createElement('DIV'));\n    /**\n     * @type {HTMLElement}\n     */\n    _classPrivateFieldInitSpec(this, _guide, this.hot.rootDocument.createElement('DIV'));\n    /**\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _pressed, null);\n    /**\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _isTriggeredByRMB, false);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _dblclick, 0);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _autoresizeTimeout, null);\n    /**\n     * PhysicalIndexToValueMap to keep and track widths for physical column indexes.\n     *\n     * @type {PhysicalIndexToValueMap}\n     */\n    _classPrivateFieldInitSpec(this, _columnWidthsMap, void 0);\n    /**\n     * Private pool to save configuration from updateSettings.\n     *\n     * @type {object}\n     */\n    _classPrivateFieldInitSpec(this, _config, void 0);\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"addClass\"])(_classPrivateFieldGet(_handle, this), 'manualColumnResizer');\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"addClass\"])(_classPrivateFieldGet(_guide, this), 'manualColumnResizerGuide');\n  }\n\n  /**\n   * @private\n   * @returns {string}\n   */\n  get inlineDir() {\n    return this.hot.isRtl() ? 'right' : 'left';\n  }\n\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link ManualColumnResize#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    if (this.enabled) {\n      return;\n    }\n    _classPrivateFieldSet(_columnWidthsMap, this, new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"PhysicalIndexToValueMap\"]());\n    _classPrivateFieldGet(_columnWidthsMap, this).addLocalHook('init', () => _assertClassBrand(_ManualColumnResize_brand, this, _onMapInit).call(this));\n    this.hot.columnIndexMapper.registerMap(this.pluginName, _classPrivateFieldGet(_columnWidthsMap, this));\n    this.addHook('modifyColWidth', (width, col) => _assertClassBrand(_ManualColumnResize_brand, this, _onModifyColWidth).call(this, width, col), 1);\n    this.addHook('beforeStretchingColumnWidth', (stretchedWidth, column) => _assertClassBrand(_ManualColumnResize_brand, this, _onBeforeStretchingColumnWidth).call(this, stretchedWidth, column));\n    this.addHook('beforeColumnResize', (newSize, column, isDoubleClick) => _assertClassBrand(_ManualColumnResize_brand, this, _onBeforeColumnResize).call(this, newSize, column, isDoubleClick));\n    this.bindEvents();\n    super.enablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`manualColumnResize`](@/api/options.md#manualcolumnresize)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    _classPrivateFieldSet(_config, this, _classPrivateFieldGet(_columnWidthsMap, this).getValues());\n    this.hot.columnIndexMapper.unregisterMap(this.pluginName);\n    super.disablePlugin();\n  }\n\n  /**\n   * Saves the current sizes using the persistentState plugin (the {@link Options#persistentState} option has to be enabled).\n   *\n   * @fires Hooks#persistentStateSave\n   */\n  saveManualColumnWidths() {\n    this.hot.runHooks('persistentStateSave', PERSISTENT_STATE_KEY, _classPrivateFieldGet(_columnWidthsMap, this).getValues());\n  }\n\n  /**\n   * Loads the previously saved sizes using the persistentState plugin (the {@link Options#persistentState} option has to be enabled).\n   *\n   * @returns {Array}\n   * @fires Hooks#persistentStateLoad\n   */\n  loadManualColumnWidths() {\n    const storedState = {};\n    this.hot.runHooks('persistentStateLoad', PERSISTENT_STATE_KEY, storedState);\n    return storedState.value;\n  }\n\n  /**\n   * Sets the new width for specified column index.\n   *\n   * @param {number} column Visual column index.\n   * @param {number} width Column width (no less than 20px).\n   * @returns {number} Returns new width.\n   */\n  setManualSize(column, width) {\n    const newWidth = Math.max(width, 20);\n    const physicalColumn = this.hot.toPhysicalColumn(column);\n    _classPrivateFieldGet(_columnWidthsMap, this).setValueAtIndex(physicalColumn, newWidth);\n    return newWidth;\n  }\n\n  /**\n   * Clears the cache for the specified column index.\n   *\n   * @param {number} column Visual column index.\n   */\n  clearManualSize(column) {\n    const physicalColumn = this.hot.toPhysicalColumn(column);\n    _classPrivateFieldGet(_columnWidthsMap, this).setValueAtIndex(physicalColumn, null);\n  }\n  /**\n   * Set the resize handle position.\n   *\n   * @private\n   * @param {HTMLCellElement} TH TH HTML element.\n   */\n  setupHandlePosition(TH) {\n    if (!TH.parentNode) {\n      return;\n    }\n    _classPrivateFieldSet(_currentTH, this, TH);\n    const {\n      _wt: wt\n    } = this.hot.view;\n    const cellCoords = wt.wtTable.getCoords(_classPrivateFieldGet(_currentTH, this));\n    const col = cellCoords.col;\n\n    // Ignore column headers.\n    if (col < 0) {\n      return;\n    }\n    const headerHeight = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"outerHeight\"])(_classPrivateFieldGet(_currentTH, this));\n    const box = _classPrivateFieldGet(_currentTH, this).getBoundingClientRect();\n    // Read \"fixedColumnsStart\" through the Walkontable as in that context, the fixed columns\n    // are modified (reduced by the number of hidden columns) by TableView module.\n    const fixedColumn = col < wt.getSetting('fixedColumnsStart');\n    let relativeHeaderPosition;\n    if (fixedColumn) {\n      relativeHeaderPosition = wt.wtOverlays.topInlineStartCornerOverlay.getRelativeCellPosition(_classPrivateFieldGet(_currentTH, this), cellCoords.row, cellCoords.col);\n    }\n\n    // If the TH is not a child of the top-left overlay, recalculate using\n    // the top overlay - as this overlay contains the rest of the headers.\n    if (!relativeHeaderPosition) {\n      relativeHeaderPosition = wt.wtOverlays.topOverlay.getRelativeCellPosition(_classPrivateFieldGet(_currentTH, this), cellCoords.row, cellCoords.col);\n    }\n    _classPrivateFieldSet(_currentCol, this, this.hot.columnIndexMapper.getVisualFromRenderableIndex(col));\n    _classPrivateFieldSet(_selectedCols, this, []);\n    const isFullColumnSelected = this.hot.selection.isSelectedByCorner() || this.hot.selection.isSelectedByColumnHeader();\n    if (this.hot.selection.isSelected() && isFullColumnSelected) {\n      const selectionRanges = this.hot.getSelectedRange();\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(selectionRanges, selectionRange => {\n        const fromColumn = selectionRange.getTopStartCorner().col;\n        const toColumn = selectionRange.getBottomEndCorner().col;\n\n        // Add every selected column for resize action.\n        Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_5__[\"rangeEach\"])(fromColumn, toColumn, columnIndex => {\n          if (!_classPrivateFieldGet(_selectedCols, this).includes(columnIndex)) {\n            _classPrivateFieldGet(_selectedCols, this).push(columnIndex);\n          }\n        });\n      });\n    }\n\n    // Resizing element beyond the current selection (also when there is no selection).\n    if (!_classPrivateFieldGet(_selectedCols, this).includes(_classPrivateFieldGet(_currentCol, this))) {\n      _classPrivateFieldSet(_selectedCols, this, [_classPrivateFieldGet(_currentCol, this)]);\n    }\n    _classPrivateFieldSet(_startOffset, this, relativeHeaderPosition.start - 6);\n    _classPrivateFieldSet(_startWidth, this, parseInt(box.width, 10));\n    _classPrivateFieldGet(_handle, this).style.top = `${relativeHeaderPosition.top}px`;\n    _classPrivateFieldGet(_handle, this).style[this.inlineDir] = `${_classPrivateFieldGet(_startOffset, this) + _classPrivateFieldGet(_startWidth, this)}px`;\n    _classPrivateFieldGet(_handle, this).style.height = `${headerHeight}px`;\n    this.hot.rootElement.appendChild(_classPrivateFieldGet(_handle, this));\n  }\n\n  /**\n   * Refresh the resize handle position.\n   *\n   * @private\n   */\n  refreshHandlePosition() {\n    _classPrivateFieldGet(_handle, this).style[this.inlineDir] = `${_classPrivateFieldGet(_startOffset, this) + _classPrivateFieldGet(_currentWidth, this)}px`;\n  }\n\n  /**\n   * Sets the resize guide position.\n   *\n   * @private\n   */\n  setupGuidePosition() {\n    const handleHeight = parseInt(Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"outerHeight\"])(_classPrivateFieldGet(_handle, this)), 10);\n    const handleBottomPosition = parseInt(_classPrivateFieldGet(_handle, this).style.top, 10) + handleHeight;\n    const maximumVisibleElementHeight = parseInt(this.hot.view.maximumVisibleElementHeight(0), 10);\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"addClass\"])(_classPrivateFieldGet(_handle, this), 'active');\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"addClass\"])(_classPrivateFieldGet(_guide, this), 'active');\n    _classPrivateFieldGet(_guide, this).style.top = `${handleBottomPosition}px`;\n    this.refreshGuidePosition();\n    _classPrivateFieldGet(_guide, this).style.height = `${maximumVisibleElementHeight - handleHeight}px`;\n    this.hot.rootElement.appendChild(_classPrivateFieldGet(_guide, this));\n  }\n\n  /**\n   * Refresh the resize guide position.\n   *\n   * @private\n   */\n  refreshGuidePosition() {\n    _classPrivateFieldGet(_guide, this).style[this.inlineDir] = _classPrivateFieldGet(_handle, this).style[this.inlineDir];\n  }\n\n  /**\n   * Hides both the resize handle and resize guide.\n   *\n   * @private\n   */\n  hideHandleAndGuide() {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"removeClass\"])(_classPrivateFieldGet(_handle, this), 'active');\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"removeClass\"])(_classPrivateFieldGet(_guide, this), 'active');\n  }\n\n  /**\n   * Checks if provided element is considered a column header.\n   *\n   * @private\n   * @param {HTMLElement} element HTML element.\n   * @returns {boolean}\n   */\n  checkIfColumnHeader(element) {\n    const thead = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"closest\"])(element, ['THEAD'], this.hot.rootElement);\n    const {\n      topOverlay,\n      topInlineStartCornerOverlay\n    } = this.hot.view._wt.wtOverlays;\n    return [topOverlay.clone.wtTable.THEAD, topInlineStartCornerOverlay.clone.wtTable.THEAD].includes(thead);\n  }\n\n  /**\n   * Gets the TH element from the provided element.\n   *\n   * @private\n   * @param {HTMLElement} element HTML element.\n   * @returns {HTMLElement}\n   */\n  getClosestTHParent(element) {\n    if (element.tagName !== 'TABLE') {\n      if (element.tagName === 'TH') {\n        return element;\n      }\n      return this.getClosestTHParent(element.parentNode);\n    }\n    return null;\n  }\n\n  /**\n   * 'mouseover' event callback - set the handle position.\n   *\n   * @param {MouseEvent} event The mouse event.\n   */\n\n  /**\n   * Auto-size row after doubleclick - callback.\n   *\n   * @private\n   * @fires Hooks#beforeColumnResize\n   * @fires Hooks#afterColumnResize\n   */\n  afterMouseDownTimeout() {\n    const render = () => {\n      this.hot.forceFullRender = true;\n      this.hot.view.render(); // updates all\n      this.hot.view.adjustElementsSize();\n    };\n    const resize = (column, forceRender) => {\n      const hookNewSize = this.hot.runHooks('beforeColumnResize', _classPrivateFieldGet(_newSize, this), column, true);\n      if (hookNewSize !== undefined) {\n        _classPrivateFieldSet(_newSize, this, hookNewSize);\n      }\n      if (this.hot.getSettings().stretchH === 'all') {\n        this.clearManualSize(column);\n      } else {\n        this.setManualSize(column, _classPrivateFieldGet(_newSize, this)); // double click sets by auto row size plugin\n      }\n      this.saveManualColumnWidths();\n      this.hot.runHooks('afterColumnResize', _classPrivateFieldGet(_newSize, this), column, true);\n      if (forceRender) {\n        render();\n      }\n    };\n    if (_classPrivateFieldGet(_dblclick, this) >= 2) {\n      const selectedColsLength = _classPrivateFieldGet(_selectedCols, this).length;\n      if (selectedColsLength > 1) {\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(_classPrivateFieldGet(_selectedCols, this), selectedCol => {\n          resize(selectedCol);\n        });\n        render();\n      } else {\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(_classPrivateFieldGet(_selectedCols, this), selectedCol => {\n          resize(selectedCol, true);\n        });\n      }\n    }\n    _classPrivateFieldSet(_dblclick, this, 0);\n    _classPrivateFieldSet(_autoresizeTimeout, this, null);\n  }\n\n  /**\n   * 'mousedown' event callback.\n   *\n   * @param {MouseEvent} event The mouse event.\n   */\n\n  /**\n   * Binds the mouse events.\n   *\n   * @private\n   */\n  bindEvents() {\n    const {\n      rootWindow,\n      rootElement\n    } = this.hot;\n    this.eventManager.addEventListener(rootElement, 'mouseover', e => _assertClassBrand(_ManualColumnResize_brand, this, _onMouseOver).call(this, e));\n    this.eventManager.addEventListener(rootElement, 'mousedown', e => _assertClassBrand(_ManualColumnResize_brand, this, _onMouseDown).call(this, e));\n    this.eventManager.addEventListener(rootWindow, 'mousemove', e => _assertClassBrand(_ManualColumnResize_brand, this, _onMouseMove).call(this, e));\n    this.eventManager.addEventListener(rootWindow, 'mouseup', () => _assertClassBrand(_ManualColumnResize_brand, this, _onMouseUp).call(this));\n    this.eventManager.addEventListener(_classPrivateFieldGet(_handle, this), 'contextmenu', () => _assertClassBrand(_ManualColumnResize_brand, this, _onContextMenu).call(this));\n  }\n\n  /**\n   * Modifies the provided column width, based on the plugin settings.\n   *\n   * @param {number} width Column width.\n   * @param {number} column Visual column index.\n   * @returns {number}\n   */\n\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    super.destroy();\n  }\n}\nfunction _onMapInit() {\n  const initialSetting = this.hot.getSettings()[PLUGIN_KEY];\n  const loadedManualColumnWidths = this.loadManualColumnWidths();\n  if (typeof loadedManualColumnWidths !== 'undefined') {\n    this.hot.batchExecution(() => {\n      loadedManualColumnWidths.forEach((width, physicalIndex) => {\n        _classPrivateFieldGet(_columnWidthsMap, this).setValueAtIndex(physicalIndex, width);\n      });\n    }, true);\n  } else if (Array.isArray(initialSetting)) {\n    this.hot.batchExecution(() => {\n      initialSetting.forEach((width, physicalIndex) => {\n        _classPrivateFieldGet(_columnWidthsMap, this).setValueAtIndex(physicalIndex, width);\n      });\n    }, true);\n    _classPrivateFieldSet(_config, this, initialSetting);\n  } else if (initialSetting === true && Array.isArray(_classPrivateFieldGet(_config, this))) {\n    this.hot.batchExecution(() => {\n      _classPrivateFieldGet(_config, this).forEach((width, physicalIndex) => {\n        _classPrivateFieldGet(_columnWidthsMap, this).setValueAtIndex(physicalIndex, width);\n      });\n    }, true);\n  }\n}\nfunction _onMouseOver(event) {\n  // Workaround for #6926 - if the `event.target` is temporarily detached, we can skip this callback and wait for\n  // the next `onmouseover`.\n  if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isDetached\"])(event.target)) {\n    return;\n  }\n\n  // A \"mouseover\" action is triggered right after executing \"contextmenu\" event. It should be ignored.\n  if (_classPrivateFieldGet(_isTriggeredByRMB, this) === true) {\n    return;\n  }\n  if (this.checkIfColumnHeader(event.target)) {\n    const th = this.getClosestTHParent(event.target);\n    if (!th) {\n      return;\n    }\n    const colspan = th.getAttribute('colspan');\n    if (th && (colspan === null || colspan === '1')) {\n      if (!_classPrivateFieldGet(_pressed, this)) {\n        this.setupHandlePosition(th);\n      }\n    }\n  }\n}\nfunction _onMouseDown(event) {\n  if (event.target.parentNode !== this.hot.rootElement) {\n    return;\n  }\n  if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"hasClass\"])(event.target, 'manualColumnResizer')) {\n    this.setupHandlePosition(_classPrivateFieldGet(_currentTH, this));\n    this.setupGuidePosition();\n    _classPrivateFieldSet(_pressed, this, true);\n    if (_classPrivateFieldGet(_autoresizeTimeout, this) === null) {\n      _classPrivateFieldSet(_autoresizeTimeout, this, setTimeout(() => this.afterMouseDownTimeout(), 500));\n      this.hot._registerTimeout(_classPrivateFieldGet(_autoresizeTimeout, this));\n    }\n    _classPrivateFieldSet(_dblclick, this, _classPrivateFieldGet(_dblclick, this) + 1);\n    this.startX = event.pageX;\n    _classPrivateFieldSet(_newSize, this, _classPrivateFieldGet(_startWidth, this));\n  }\n}\n/**\n * 'mousemove' event callback - refresh the handle and guide positions, cache the new column width.\n *\n * @param {MouseEvent} event The mouse event.\n */\nfunction _onMouseMove(event) {\n  if (_classPrivateFieldGet(_pressed, this)) {\n    const change = (event.pageX - this.startX) * this.hot.getDirectionFactor();\n    _classPrivateFieldSet(_currentWidth, this, _classPrivateFieldGet(_startWidth, this) + change);\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(_classPrivateFieldGet(_selectedCols, this), selectedCol => {\n      _classPrivateFieldSet(_newSize, this, this.setManualSize(selectedCol, _classPrivateFieldGet(_currentWidth, this)));\n    });\n    this.refreshHandlePosition();\n    this.refreshGuidePosition();\n  }\n}\n/**\n * 'mouseup' event callback - apply the column resizing.\n *\n * @fires Hooks#beforeColumnResize\n * @fires Hooks#afterColumnResize\n */\nfunction _onMouseUp() {\n  const render = () => {\n    this.hot.forceFullRender = true;\n    this.hot.view.render(); // updates all\n    this.hot.view.adjustElementsSize();\n  };\n  const resize = (column, forceRender) => {\n    this.hot.runHooks('beforeColumnResize', _classPrivateFieldGet(_newSize, this), column, false);\n    if (forceRender) {\n      render();\n    }\n    this.saveManualColumnWidths();\n    this.hot.runHooks('afterColumnResize', _classPrivateFieldGet(_newSize, this), column, false);\n  };\n  if (_classPrivateFieldGet(_pressed, this)) {\n    this.hideHandleAndGuide();\n    _classPrivateFieldSet(_pressed, this, false);\n    if (_classPrivateFieldGet(_newSize, this) !== _classPrivateFieldGet(_startWidth, this)) {\n      const selectedColsLength = _classPrivateFieldGet(_selectedCols, this).length;\n      if (selectedColsLength > 1) {\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(_classPrivateFieldGet(_selectedCols, this), selectedCol => {\n          resize(selectedCol);\n        });\n        render();\n      } else {\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(_classPrivateFieldGet(_selectedCols, this), selectedCol => {\n          resize(selectedCol, true);\n        });\n      }\n    }\n    this.setupHandlePosition(_classPrivateFieldGet(_currentTH, this));\n  }\n}\n/**\n * Callback for \"contextmenu\" event triggered on element showing move handle. It removes handle and guide elements.\n */\nfunction _onContextMenu() {\n  this.hideHandleAndGuide();\n  this.hot.rootElement.removeChild(_classPrivateFieldGet(_handle, this));\n  this.hot.rootElement.removeChild(_classPrivateFieldGet(_guide, this));\n  _classPrivateFieldSet(_pressed, this, false);\n  _classPrivateFieldSet(_isTriggeredByRMB, this, true);\n\n  // There is thrown \"mouseover\" event right after opening a context menu. This flag inform that handle\n  // shouldn't be drawn just after removing it.\n  this.hot._registerImmediate(() => {\n    _classPrivateFieldSet(_isTriggeredByRMB, this, false);\n  });\n}\nfunction _onModifyColWidth(width, column) {\n  let newWidth = width;\n  if (this.enabled) {\n    const physicalColumn = this.hot.toPhysicalColumn(column);\n    const columnWidth = _classPrivateFieldGet(_columnWidthsMap, this).getValueAtIndex(physicalColumn);\n    if (this.hot.getSettings()[PLUGIN_KEY] && columnWidth) {\n      newWidth = columnWidth;\n    }\n  }\n  return newWidth;\n}\n/**\n * Modifies the provided column stretched width. This hook decides if specified column should be stretched or not.\n *\n * @param {number} stretchedWidth Stretched width.\n * @param {number} column Visual column index.\n * @returns {number}\n */\nfunction _onBeforeStretchingColumnWidth(stretchedWidth, column) {\n  let width = _classPrivateFieldGet(_columnWidthsMap, this).getValueAtIndex(column);\n  if (width === null) {\n    width = stretchedWidth;\n  }\n  return width;\n}\n/**\n * `beforeColumnResize` hook callback.\n */\nfunction _onBeforeColumnResize() {\n  // clear the header height cache information\n  this.hot.view._wt.wtViewport.resetHasOversizedColumnHeadersMarked();\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualColumnResize/manualColumnResize.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualRowMove/index.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualRowMove/index.mjs ***!
  \*******************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ManualRowMove */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _manualRowMove_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./manualRowMove.mjs */ \"./node_modules/handsontable/plugins/manualRowMove/manualRowMove.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _manualRowMove_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _manualRowMove_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ManualRowMove\", function() { return _manualRowMove_mjs__WEBPACK_IMPORTED_MODULE_0__[\"ManualRowMove\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualRowMove/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualRowMove/manualRowMove.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualRowMove/manualRowMove.mjs ***!
  \***************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ManualRowMove */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ManualRowMove\", function() { return ManualRowMove; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _ui_backlight_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ui/backlight.mjs */ \"./node_modules/handsontable/plugins/manualRowMove/ui/backlight.mjs\");\n/* harmony import */ var _ui_guideline_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ui/guideline.mjs */ \"./node_modules/handsontable/plugins/manualRowMove/ui/guideline.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('beforeRowMove');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('afterRowMove');\nconst PLUGIN_KEY = 'manualRowMove';\nconst PLUGIN_PRIORITY = 140;\nconst CSS_PLUGIN = 'ht__manualRowMove';\nconst CSS_SHOW_UI = 'show-ui';\nconst CSS_ON_MOVING = 'on-moving--rows';\nconst CSS_AFTER_SELECTION = 'after-selection--rows';\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @plugin ManualRowMove\n * @class ManualRowMove\n *\n * @description\n * This plugin allows to change rows order. To make rows order persistent the {@link Options#persistentState}\n * plugin should be enabled.\n *\n * API:\n * - `moveRow` - move single row to the new position.\n * - `moveRows` - move many rows (as an array of indexes) to the new position.\n * - `dragRow` - drag single row to the new position.\n * - `dragRows` - drag many rows (as an array of indexes) to the new position.\n *\n * [Documentation](@/guides/rows/row-moving/row-moving.md) explain differences between drag and move actions. Please keep in mind that if you want apply visual changes,\n * you have to call manually the `render` method on the instance of Handsontable.\n *\n * The plugin creates additional components to make moving possibly using user interface:\n * - backlight - highlight of selected rows.\n * - guideline - line which shows where rows has been moved.\n *\n * @class ManualRowMove\n * @plugin ManualRowMove\n */\nvar _backlight = /*#__PURE__*/new WeakMap();\nvar _guideline = /*#__PURE__*/new WeakMap();\nvar _rowsToMove = /*#__PURE__*/new WeakMap();\nvar _pressed = /*#__PURE__*/new WeakMap();\nvar _target = /*#__PURE__*/new WeakMap();\nvar _cachedDropIndex = /*#__PURE__*/new WeakMap();\nvar _ManualRowMove_brand = /*#__PURE__*/new WeakSet();\nclass ManualRowMove extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * Change the behavior of selection / dragging.\n     *\n     * @param {MouseEvent} event `mousedown` event properties.\n     * @param {CellCoords} coords Visual cell coordinates where was fired event.\n     * @param {HTMLElement} TD Cell represented as HTMLElement.\n     * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains\n     *                            a boolean value that allows or disallows changing the selection for that particular area.\n     */\n    _classPrivateMethodInitSpec(this, _ManualRowMove_brand);\n    /**\n     * Backlight UI object.\n     *\n     * @type {object}\n     */\n    _classPrivateFieldInitSpec(this, _backlight, new _ui_backlight_mjs__WEBPACK_IMPORTED_MODULE_7__[\"default\"](this.hot));\n    /**\n     * Guideline UI object.\n     *\n     * @type {object}\n     */\n    _classPrivateFieldInitSpec(this, _guideline, new _ui_guideline_mjs__WEBPACK_IMPORTED_MODULE_8__[\"default\"](this.hot));\n    /**\n     * @type {number[]}\n     */\n    _classPrivateFieldInitSpec(this, _rowsToMove, []);\n    /**\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _pressed, void 0);\n    /**\n     * @type {object}\n     */\n    _classPrivateFieldInitSpec(this, _target, {});\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _cachedDropIndex, void 0);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link ManualRowMove#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    this.addHook('beforeOnCellMouseDown', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_ManualRowMove_brand, _this, _onBeforeOnCellMouseDown).call(_this, ...args);\n    });\n    this.addHook('beforeOnCellMouseOver', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_ManualRowMove_brand, _this, _onBeforeOnCellMouseOver).call(_this, ...args);\n    });\n    this.addHook('afterScrollHorizontally', () => _assertClassBrand(_ManualRowMove_brand, this, _onAfterScrollHorizontally).call(this));\n    this.addHook('afterLoadData', function () {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n      return _assertClassBrand(_ManualRowMove_brand, _this, _onAfterLoadData).call(_this, ...args);\n    });\n    this.buildPluginUI();\n    this.registerEvents();\n\n    // TODO: move adding plugin classname to BasePlugin.\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"addClass\"])(this.hot.rootElement, CSS_PLUGIN);\n    super.enablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`manualRowMove`](@/api/options.md#manualrowmove)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    this.moveBySettingsOrLoad();\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"removeClass\"])(this.hot.rootElement, CSS_PLUGIN);\n    this.unregisterEvents();\n    _classPrivateFieldGet(_backlight, this).destroy();\n    _classPrivateFieldGet(_guideline, this).destroy();\n    super.disablePlugin();\n  }\n\n  /**\n   * Moves a single row.\n   *\n   * To see the outcome, rerender your grid by calling [`render()`](@/api/core.md#render).\n   *\n   * @param {number} row Visual row index to be moved.\n   * @param {number} finalIndex Visual row index, being a start index for the moved rows. Points to where the elements will be placed after the moving action.\n   * To check the visualization of the final index, please take a look at [documentation](@/guides/rows/row-moving/row-moving.md#drag-and-move-actions-of-manualrowmove-plugin).\n   * @fires Hooks#beforeRowMove\n   * @fires Hooks#afterRowMove\n   * @returns {boolean}\n   */\n  moveRow(row, finalIndex) {\n    return this.moveRows([row], finalIndex);\n  }\n\n  /**\n   * Moves multiple rows.\n   *\n   * To see the outcome, rerender your grid by calling [`render()`](@/api/core.md#render).\n   *\n   * @param {Array} rows Array of visual row indexes to be moved.\n   * @param {number} finalIndex Visual row index, being a start index for the moved rows. Points to where the elements will be placed after the moving action.\n   * To check the visualization of the final index, please take a look at [documentation](@/guides/rows/row-moving/row-moving.md#drag-and-move-actions-of-manualrowmove-plugin).\n   * @fires Hooks#beforeRowMove\n   * @fires Hooks#afterRowMove\n   * @returns {boolean}\n   */\n  moveRows(rows, finalIndex) {\n    const dropIndex = _classPrivateFieldGet(_cachedDropIndex, this);\n    const movePossible = this.isMovePossible(rows, finalIndex);\n    const beforeMoveHook = this.hot.runHooks('beforeRowMove', rows, finalIndex, dropIndex, movePossible);\n    _classPrivateFieldSet(_cachedDropIndex, this, undefined);\n    if (beforeMoveHook === false) {\n      return;\n    }\n    if (movePossible) {\n      this.hot.rowIndexMapper.moveIndexes(rows, finalIndex);\n    }\n    const movePerformed = movePossible && this.isRowOrderChanged(rows, finalIndex);\n    this.hot.runHooks('afterRowMove', rows, finalIndex, dropIndex, movePossible, movePerformed);\n    return movePerformed;\n  }\n\n  /**\n   * Drag a single row to drop index position.\n   *\n   * @param {number} row Visual row index to be dragged.\n   * @param {number} dropIndex Visual row index, being a drop index for the moved rows. Points to where we are going to drop the moved elements.\n   * To check visualization of drop index please take a look at [documentation](@/guides/rows/row-moving/row-moving.md#drag-and-move-actions-of-manualrowmove-plugin).\n   * @fires Hooks#beforeRowMove\n   * @fires Hooks#afterRowMove\n   * @returns {boolean}\n   */\n  dragRow(row, dropIndex) {\n    return this.dragRows([row], dropIndex);\n  }\n\n  /**\n   * Drag multiple rows to drop index position.\n   *\n   * @param {Array} rows Array of visual row indexes to be dragged.\n   * @param {number} dropIndex Visual row index, being a drop index for the moved rows. Points to where we are going to drop the moved elements.\n   * To check visualization of drop index please take a look at [documentation](@/guides/rows/row-moving/row-moving.md#drag-and-move-actions-of-manualrowmove-plugin).\n   * @fires Hooks#beforeRowMove\n   * @fires Hooks#afterRowMove\n   * @returns {boolean}\n   */\n  dragRows(rows, dropIndex) {\n    const finalIndex = this.countFinalIndex(rows, dropIndex);\n    _classPrivateFieldSet(_cachedDropIndex, this, dropIndex);\n    return this.moveRows(rows, finalIndex);\n  }\n\n  /**\n   * Indicates if it's possible to move rows to the desired position. Some of the actions aren't possible, i.e. You can’t move more than one element to the last position.\n   *\n   * @param {Array} movedRows Array of visual row indexes to be moved.\n   * @param {number} finalIndex Visual row index, being a start index for the moved rows. Points to where the elements will be placed after the moving action.\n   * To check the visualization of the final index, please take a look at [documentation](@/guides/rows/row-moving/row-moving.md#drag-and-move-actions-of-manualrowmove-plugin).\n   * @returns {boolean}\n   */\n  isMovePossible(movedRows, finalIndex) {\n    const length = this.hot.rowIndexMapper.getNotTrimmedIndexesLength();\n\n    // An attempt to transfer more rows to start destination than is possible (only when moving from the top to the bottom).\n    const tooHighDestinationIndex = movedRows.length + finalIndex > length;\n    const tooLowDestinationIndex = finalIndex < 0;\n    const tooLowMovedRowIndex = movedRows.some(movedRow => movedRow < 0);\n    const tooHighMovedRowIndex = movedRows.some(movedRow => movedRow >= length);\n    if (tooHighDestinationIndex || tooLowDestinationIndex || tooLowMovedRowIndex || tooHighMovedRowIndex) {\n      return false;\n    }\n    return true;\n  }\n\n  /**\n   * Indicates if order of rows was changed.\n   *\n   * @private\n   * @param {Array} movedRows Array of visual row indexes to be moved.\n   * @param {number} finalIndex Visual row index, being a start index for the moved rows. Points to where the elements will be placed after the moving action.\n   * To check the visualization of the final index, please take a look at [documentation](@/guides/rows/row-moving/row-moving.md#drag-and-move-actions-of-manualrowmove-plugin).\n   * @returns {boolean}\n   */\n  isRowOrderChanged(movedRows, finalIndex) {\n    return movedRows.some((row, nrOfMovedElement) => row - nrOfMovedElement !== finalIndex);\n  }\n\n  /**\n   * Count the final row index from the drop index.\n   *\n   * @private\n   * @param {Array} movedRows Array of visual row indexes to be moved.\n   * @param {number} dropIndex Visual row index, being a drop index for the moved rows.\n   * @returns {number} Visual row index, being a start index for the moved rows.\n   */\n  countFinalIndex(movedRows, dropIndex) {\n    const numberOfRowsLowerThanDropIndex = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayReduce\"])(movedRows, (numberOfRows, currentRowIndex) => {\n      if (currentRowIndex < dropIndex) {\n        numberOfRows += 1;\n      }\n      return numberOfRows;\n    }, 0);\n    return dropIndex - numberOfRowsLowerThanDropIndex;\n  }\n\n  /**\n   * Gets the sum of the heights of rows in the provided range.\n   *\n   * @private\n   * @param {number} fromRow Visual row index.\n   * @param {number} toRow Visual row index.\n   * @returns {number}\n   */\n  getRowsHeight(fromRow, toRow) {\n    const rowMapper = this.hot.rowIndexMapper;\n    let rowsHeight = 0;\n    for (let visualRowIndex = fromRow; visualRowIndex <= toRow; visualRowIndex++) {\n      const renderableIndex = rowMapper.getRenderableFromVisualIndex(visualRowIndex);\n      if (renderableIndex !== null) {\n        rowsHeight += this.hot.view._wt.wtTable.getRowHeight(renderableIndex) || 23;\n      }\n    }\n    return rowsHeight;\n  }\n\n  /**\n   * Loads initial settings when persistent state is saved or when plugin was initialized as an array.\n   *\n   * @private\n   */\n  moveBySettingsOrLoad() {\n    const pluginSettings = this.hot.getSettings()[PLUGIN_KEY];\n    if (Array.isArray(pluginSettings)) {\n      this.moveRows(pluginSettings, 0);\n    } else if (pluginSettings !== undefined) {\n      const persistentState = this.persistentStateLoad();\n      if (persistentState.length) {\n        this.moveRows(persistentState, 0);\n      }\n    }\n  }\n\n  /**\n   * Checks if the provided row is in the fixedRowsTop section.\n   *\n   * @private\n   * @param {number} row Visual row index to check.\n   * @returns {boolean}\n   */\n  isFixedRowTop(row) {\n    return row < this.hot.getSettings().fixedRowsTop;\n  }\n\n  /**\n   * Checks if the provided row is in the fixedRowsBottom section.\n   *\n   * @private\n   * @param {number} row Visual row index to check.\n   * @returns {boolean}\n   */\n  isFixedRowBottom(row) {\n    return row > this.hot.countRows() - 1 - this.hot.getSettings().fixedRowsBottom;\n  }\n\n  /**\n   * Saves the manual row positions to the persistent state (the {@link Options#persistentState} option has to be enabled).\n   *\n   * @private\n   * @fires Hooks#persistentStateSave\n   */\n  persistentStateSave() {\n    // The `PersistentState` plugin should be refactored.\n    this.hot.runHooks('persistentStateSave', 'manualRowMove', this.hot.rowIndexMapper.getIndexesSequence());\n  }\n\n  /**\n   * Loads the manual row positions from the persistent state (the {@link Options#persistentState} option has to be enabled).\n   *\n   * @private\n   * @fires Hooks#persistentStateLoad\n   * @returns {Array} Stored state.\n   */\n  persistentStateLoad() {\n    const storedState = {};\n    this.hot.runHooks('persistentStateLoad', 'manualRowMove', storedState);\n    return storedState.value ? storedState.value : [];\n  }\n\n  /**\n   * Prepares an array of indexes based on actual selection.\n   *\n   * @private\n   * @returns {Array}\n   */\n  prepareRowsToMoving() {\n    const selection = this.hot.getSelectedRangeLast();\n    const selectedRows = [];\n    if (!selection) {\n      return selectedRows;\n    }\n    const {\n      from,\n      to\n    } = selection;\n    const start = Math.min(from.row, to.row);\n    const end = Math.max(from.row, to.row);\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_6__[\"rangeEach\"])(start, end, i => {\n      selectedRows.push(i);\n    });\n    return selectedRows;\n  }\n\n  /**\n   * Update the UI visual position.\n   *\n   * @private\n   */\n  refreshPositions() {\n    const coords = _classPrivateFieldGet(_target, this).coords;\n    const firstVisible = this.hot.view.getFirstFullyVisibleRow();\n    const lastVisible = this.hot.view.getLastFullyVisibleRow();\n    const countRows = this.hot.countRows();\n    if (this.isFixedRowTop(coords.row) && firstVisible > 0) {\n      this.hot.scrollViewportTo(this.hot.rowIndexMapper.getNearestNotHiddenIndex(firstVisible - 1, -1));\n    }\n    if (this.isFixedRowBottom(coords.row) && lastVisible < countRows) {\n      this.hot.scrollViewportTo(this.hot.rowIndexMapper.getNearestNotHiddenIndex(lastVisible + 1, 1), undefined, true);\n    }\n    const wtTable = this.hot.view._wt.wtTable;\n    const TD = _classPrivateFieldGet(_target, this).TD;\n    const rootElement = this.hot.rootElement;\n    const rootElementOffset = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"offset\"])(rootElement);\n    const trimmingContainer = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"getTrimmingContainer\"])(rootElement);\n    const tableScroll = wtTable.holder.scrollTop;\n    const trimmingContainerScroll = this.hot.rootWindow !== trimmingContainer ? trimmingContainer.scrollTop : 0;\n    const pixelsAbove = rootElementOffset.top - trimmingContainerScroll;\n    const pixelsRelToTableStart = _classPrivateFieldGet(_target, this).eventPageY - pixelsAbove + tableScroll;\n    const hiderHeight = wtTable.hider.offsetHeight;\n    const tbodyOffsetTop = wtTable.TBODY.offsetTop;\n    const backlightElemMarginTop = _classPrivateFieldGet(_backlight, this).getOffset().top;\n    const backlightElemHeight = _classPrivateFieldGet(_backlight, this).getSize().height;\n    const tdMiddle = TD.offsetHeight / 2;\n    const tdHeight = TD.offsetHeight;\n    let tdStartPixel = this.hot.view.THEAD.offsetHeight + this.getRowsHeight(0, coords.row - 1);\n    const isBelowTable = pixelsRelToTableStart >= tdStartPixel + tdMiddle;\n    if (this.isFixedRowTop(coords.row)) {\n      tdStartPixel += this.hot.view._wt.wtOverlays.topOverlay.getOverlayOffset();\n    }\n    if (coords.row < 0) {\n      // if hover on colHeader\n      _classPrivateFieldGet(_target, this).row = firstVisible > 0 ? firstVisible - 1 : firstVisible;\n    } else if (isBelowTable) {\n      // if hover on lower part of TD\n      _classPrivateFieldGet(_target, this).row = coords.row + 1;\n      // unfortunately first row is bigger than rest\n      tdStartPixel += coords.row === 0 ? tdHeight - 1 : tdHeight;\n    } else {\n      // elsewhere on table\n      _classPrivateFieldGet(_target, this).row = coords.row;\n    }\n    let backlightTop = pixelsRelToTableStart;\n    let guidelineTop = tdStartPixel;\n    if (pixelsRelToTableStart + backlightElemHeight + backlightElemMarginTop >= hiderHeight) {\n      // prevent display backlight below table\n      backlightTop = hiderHeight - backlightElemHeight - backlightElemMarginTop;\n    } else if (pixelsRelToTableStart + backlightElemMarginTop < tbodyOffsetTop) {\n      // prevent display above below table\n      backlightTop = tbodyOffsetTop + Math.abs(backlightElemMarginTop);\n    }\n    if (tdStartPixel >= hiderHeight - 1) {\n      // prevent display guideline below table\n      guidelineTop = hiderHeight - 1;\n    }\n    _classPrivateFieldGet(_backlight, this).setPosition(backlightTop);\n    _classPrivateFieldGet(_guideline, this).setPosition(guidelineTop);\n  }\n\n  /**\n   * Binds the events used by the plugin.\n   *\n   * @private\n   */\n  registerEvents() {\n    const {\n      documentElement\n    } = this.hot.rootDocument;\n    this.eventManager.addEventListener(documentElement, 'mousemove', event => _assertClassBrand(_ManualRowMove_brand, this, _onMouseMove).call(this, event));\n    this.eventManager.addEventListener(documentElement, 'mouseup', () => _assertClassBrand(_ManualRowMove_brand, this, _onMouseUp).call(this));\n  }\n\n  /**\n   * Unbinds the events used by the plugin.\n   *\n   * @private\n   */\n  unregisterEvents() {\n    this.eventManager.clear();\n  }\n  /**\n   * Builds the plugin's UI.\n   *\n   * @private\n   */\n  buildPluginUI() {\n    _classPrivateFieldGet(_backlight, this).build();\n    _classPrivateFieldGet(_guideline, this).build();\n  }\n\n  /**\n   * Callback for the `afterLoadData` hook.\n   */\n\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    _classPrivateFieldGet(_backlight, this).destroy();\n    _classPrivateFieldGet(_guideline, this).destroy();\n    super.destroy();\n  }\n}\nfunction _onBeforeOnCellMouseDown(event, coords, TD, controller) {\n  const {\n    wtTable,\n    wtViewport\n  } = this.hot.view._wt;\n  const isHeaderSelection = this.hot.selection.isSelectedByRowHeader();\n  const selection = this.hot.getSelectedRangeLast();\n  if (!selection || !isHeaderSelection || _classPrivateFieldGet(_pressed, this) || event.button !== 0) {\n    _classPrivateFieldSet(_pressed, this, false);\n    _classPrivateFieldGet(_rowsToMove, this).length = 0;\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"removeClass\"])(this.hot.rootElement, [CSS_ON_MOVING, CSS_SHOW_UI]);\n    return;\n  }\n  const guidelineIsNotReady = _classPrivateFieldGet(_guideline, this).isBuilt() && !_classPrivateFieldGet(_guideline, this).isAppended();\n  const backlightIsNotReady = _classPrivateFieldGet(_backlight, this).isBuilt() && !_classPrivateFieldGet(_backlight, this).isAppended();\n  if (guidelineIsNotReady && backlightIsNotReady) {\n    _classPrivateFieldGet(_guideline, this).appendTo(wtTable.hider);\n    _classPrivateFieldGet(_backlight, this).appendTo(wtTable.hider);\n  }\n  const {\n    from,\n    to\n  } = selection;\n  const start = Math.min(from.row, to.row);\n  const end = Math.max(from.row, to.row);\n  if (coords.col < 0 && coords.row >= start && coords.row <= end) {\n    controller.row = true;\n    _classPrivateFieldSet(_pressed, this, true);\n    _classPrivateFieldGet(_target, this).eventPageY = event.pageY;\n    _classPrivateFieldGet(_target, this).coords = coords;\n    _classPrivateFieldGet(_target, this).TD = TD;\n    _classPrivateFieldSet(_rowsToMove, this, this.prepareRowsToMoving());\n    const leftPos = wtTable.holder.scrollLeft + wtViewport.getRowHeaderWidth();\n    const topOffset = this.getRowsHeight(start, coords.row - 1) + event.offsetY;\n    _classPrivateFieldGet(_backlight, this).setPosition(null, leftPos);\n    _classPrivateFieldGet(_backlight, this).setSize(wtTable.hider.offsetWidth - leftPos, this.getRowsHeight(start, end));\n    _classPrivateFieldGet(_backlight, this).setOffset(-topOffset, null);\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"addClass\"])(this.hot.rootElement, CSS_ON_MOVING);\n    this.refreshPositions();\n  } else {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"removeClass\"])(this.hot.rootElement, CSS_AFTER_SELECTION);\n    _classPrivateFieldSet(_pressed, this, false);\n    _classPrivateFieldGet(_rowsToMove, this).length = 0;\n  }\n}\n/**\n * 'mouseMove' event callback. Fired when pointer move on document.documentElement.\n *\n * @param {MouseEvent} event `mousemove` event properties.\n */\nfunction _onMouseMove(event) {\n  if (!_classPrivateFieldGet(_pressed, this)) {\n    return;\n  }\n  _classPrivateFieldGet(_target, this).eventPageY = event.pageY;\n  this.refreshPositions();\n}\n/**\n * 'beforeOnCellMouseOver' hook callback. Fired when pointer was over cell.\n *\n * @param {MouseEvent} event `mouseover` event properties.\n * @param {CellCoords} coords Visual cell coordinates where was fired event.\n * @param {HTMLElement} TD Cell represented as HTMLElement.\n * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains\n *                            a boolean value that allows or disallows changing the selection for that particular area.\n */\nfunction _onBeforeOnCellMouseOver(event, coords, TD, controller) {\n  const selectedRange = this.hot.getSelectedRangeLast();\n  if (!selectedRange || !_classPrivateFieldGet(_pressed, this)) {\n    return;\n  }\n  if (_classPrivateFieldGet(_rowsToMove, this).indexOf(coords.row) > -1) {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"removeClass\"])(this.hot.rootElement, CSS_SHOW_UI);\n  } else {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"addClass\"])(this.hot.rootElement, CSS_SHOW_UI);\n  }\n  controller.row = true;\n  controller.column = true;\n  controller.cell = true;\n  _classPrivateFieldGet(_target, this).coords = coords;\n  _classPrivateFieldGet(_target, this).TD = TD;\n}\n/**\n * `onMouseUp` hook callback.\n */\nfunction _onMouseUp() {\n  const target = _classPrivateFieldGet(_target, this).row;\n  const rowsLen = _classPrivateFieldGet(_rowsToMove, this).length;\n  _classPrivateFieldSet(_pressed, this, false);\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"removeClass\"])(this.hot.rootElement, [CSS_ON_MOVING, CSS_SHOW_UI, CSS_AFTER_SELECTION]);\n  if (this.hot.selection.isSelectedByRowHeader()) {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_5__[\"addClass\"])(this.hot.rootElement, CSS_AFTER_SELECTION);\n  }\n  if (rowsLen < 1 || target === undefined) {\n    return;\n  }\n  const firstMovedVisualRow = _classPrivateFieldGet(_rowsToMove, this)[0];\n  const firstMovedPhysicalRow = this.hot.toPhysicalRow(firstMovedVisualRow);\n  const movePerformed = this.dragRows(_classPrivateFieldGet(_rowsToMove, this), target);\n  _classPrivateFieldGet(_rowsToMove, this).length = 0;\n  if (movePerformed === true) {\n    this.persistentStateSave();\n    this.hot.render();\n    this.hot.view.adjustElementsSize();\n    const selectionStart = this.hot.toVisualRow(firstMovedPhysicalRow);\n    const selectionEnd = selectionStart + rowsLen - 1;\n    this.hot.selectRows(selectionStart, selectionEnd);\n  }\n}\n/**\n * `afterScrollHorizontally` hook callback. Fired the table was scrolled horizontally.\n */\nfunction _onAfterScrollHorizontally() {\n  const wtTable = this.hot.view._wt.wtTable;\n  const headerWidth = this.hot.view._wt.wtViewport.getRowHeaderWidth();\n  const scrollLeft = wtTable.holder.scrollLeft;\n  const posLeft = headerWidth + scrollLeft;\n  _classPrivateFieldGet(_backlight, this).setPosition(null, posLeft);\n  _classPrivateFieldGet(_backlight, this).setSize(wtTable.hider.offsetWidth - posLeft);\n}\nfunction _onAfterLoadData() {\n  this.moveBySettingsOrLoad();\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualRowMove/manualRowMove.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualRowMove/ui/_base.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualRowMove/ui/_base.mjs ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nconst STATE_INITIALIZED = 0;\nconst STATE_BUILT = 1;\nconst STATE_APPENDED = 2;\nconst UNIT = 'px';\n\n/**\n * @private\n */\nclass BaseUI {\n  constructor(hotInstance) {\n    /**\n     * Instance of Handsontable.\n     *\n     * @type {Core}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * DOM element representing the ui element.\n     *\n     * @type {HTMLElement}\n     * @private\n     */\n    _defineProperty(this, \"_element\", null);\n    /**\n     * Flag which determines build state of element.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"state\", STATE_INITIALIZED);\n    this.hot = hotInstance;\n  }\n\n  /**\n   * Add created UI elements to table.\n   *\n   * @param {HTMLElement} wrapper Element which are parent for our UI element.\n   */\n  appendTo(wrapper) {\n    wrapper.appendChild(this._element);\n    this.state = STATE_APPENDED;\n  }\n\n  /**\n   * Method for create UI element. Only create, without append to table.\n   */\n  build() {\n    if (this.state !== STATE_INITIALIZED) {\n      return;\n    }\n    this._element = this.hot.rootDocument.createElement('div');\n    this.state = STATE_BUILT;\n  }\n\n  /**\n   * Method for remove UI element.\n   */\n  destroy() {\n    if (this.isAppended()) {\n      this._element.parentElement.removeChild(this._element);\n    }\n    this._element = null;\n    this.state = STATE_INITIALIZED;\n  }\n\n  /**\n   * Check if UI element are appended.\n   *\n   * @returns {boolean}\n   */\n  isAppended() {\n    return this.state === STATE_APPENDED;\n  }\n\n  /**\n   * Check if UI element are built.\n   *\n   * @returns {boolean}\n   */\n  isBuilt() {\n    return this.state >= STATE_BUILT;\n  }\n\n  /**\n   * Setter for position.\n   *\n   * @param {number} top New top position of the element.\n   * @param {number} left New left position of the element.\n   */\n  setPosition(top, left) {\n    if (top !== undefined) {\n      this._element.style.top = top + UNIT;\n    }\n    if (left !== undefined) {\n      this._element.style.left = left + UNIT;\n    }\n  }\n\n  /**\n   * Getter for the element position.\n   *\n   * @returns {object} Object contains left and top position of the element.\n   */\n  getPosition() {\n    return {\n      top: this._element.style.top ? parseInt(this._element.style.top, 10) : 0,\n      left: this._element.style.left ? parseInt(this._element.style.left, 10) : 0\n    };\n  }\n\n  /**\n   * Setter for the element size.\n   *\n   * @param {number} width New width of the element.\n   * @param {number} height New height of the element.\n   */\n  setSize(width, height) {\n    if (width) {\n      this._element.style.width = width + UNIT;\n    }\n    if (height) {\n      this._element.style.height = height + UNIT;\n    }\n  }\n\n  /**\n   * Getter for the element position.\n   *\n   * @returns {object} Object contains height and width of the element.\n   */\n  getSize() {\n    return {\n      width: this._element.style.width ? parseInt(this._element.style.width, 10) : 0,\n      height: this._element.style.height ? parseInt(this._element.style.height, 10) : 0\n    };\n  }\n\n  /**\n   * Setter for the element offset. Offset means marginTop and marginLeft of the element.\n   *\n   * @param {number} top New margin top of the element.\n   * @param {number} left New margin left of the element.\n   */\n  setOffset(top, left) {\n    if (top) {\n      this._element.style.marginTop = top + UNIT;\n    }\n    if (left) {\n      this._element.style.marginLeft = left + UNIT;\n    }\n  }\n\n  /**\n   * Getter for the element offset.\n   *\n   * @returns {object} Object contains top and left offset of the element.\n   */\n  getOffset() {\n    return {\n      top: this._element.style.marginTop ? parseInt(this._element.style.marginTop, 10) : 0,\n      left: this._element.style.marginLeft ? parseInt(this._element.style.marginLeft, 10) : 0\n    };\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (BaseUI);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualRowMove/ui/_base.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualRowMove/ui/backlight.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualRowMove/ui/backlight.mjs ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/manualRowMove/ui/_base.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n\n\nconst CSS_CLASSNAME = 'ht__manualRowMove--backlight';\n\n/**\n * @private\n * @class BacklightUI\n */\nclass BacklightUI extends _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  /**\n   * Custom className on build process.\n   */\n  build() {\n    super.build();\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(this._element, CSS_CLASSNAME);\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (BacklightUI);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualRowMove/ui/backlight.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualRowMove/ui/guideline.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualRowMove/ui/guideline.mjs ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/manualRowMove/ui/_base.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n\n\nconst CSS_CLASSNAME = 'ht__manualRowMove--guideline';\n\n/**\n * @private\n * @class GuidelineUI\n */\nclass GuidelineUI extends _base_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  /**\n   * Custom className on build process.\n   */\n  build() {\n    super.build();\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(this._element, CSS_CLASSNAME);\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (GuidelineUI);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualRowMove/ui/guideline.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualRowResize/index.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualRowResize/index.mjs ***!
  \*********************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ManualRowResize */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _manualRowResize_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./manualRowResize.mjs */ \"./node_modules/handsontable/plugins/manualRowResize/manualRowResize.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _manualRowResize_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _manualRowResize_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ManualRowResize\", function() { return _manualRowResize_mjs__WEBPACK_IMPORTED_MODULE_0__[\"ManualRowResize\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualRowResize/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/manualRowResize/manualRowResize.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/manualRowResize/manualRowResize.mjs ***!
  \*******************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, ManualRowResize */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ManualRowResize\", function() { return ManualRowResize; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n // Developer note! Whenever you make a change in this file, make an analogous change in manualColumnResize.js\nconst PLUGIN_KEY = 'manualRowResize';\nconst PLUGIN_PRIORITY = 30;\nconst PERSISTENT_STATE_KEY = 'manualRowHeights';\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @plugin ManualRowResize\n * @class ManualRowResize\n *\n * @description\n * This plugin allows to change rows height. To make rows height persistent the {@link Options#persistentState}\n * plugin should be enabled.\n *\n * The plugin creates additional components to make resizing possibly using user interface:\n * - handle - the draggable element that sets the desired height of the row.\n * - guide - the helper guide that shows the desired height as a horizontal guide.\n */\nvar _currentTH = /*#__PURE__*/new WeakMap();\nvar _currentRow = /*#__PURE__*/new WeakMap();\nvar _selectedRows = /*#__PURE__*/new WeakMap();\nvar _currentHeight = /*#__PURE__*/new WeakMap();\nvar _newSize = /*#__PURE__*/new WeakMap();\nvar _startY = /*#__PURE__*/new WeakMap();\nvar _startHeight = /*#__PURE__*/new WeakMap();\nvar _startOffset = /*#__PURE__*/new WeakMap();\nvar _handle = /*#__PURE__*/new WeakMap();\nvar _guide = /*#__PURE__*/new WeakMap();\nvar _pressed = /*#__PURE__*/new WeakMap();\nvar _isTriggeredByRMB = /*#__PURE__*/new WeakMap();\nvar _dblclick = /*#__PURE__*/new WeakMap();\nvar _autoresizeTimeout = /*#__PURE__*/new WeakMap();\nvar _rowHeightsMap = /*#__PURE__*/new WeakMap();\nvar _config = /*#__PURE__*/new WeakMap();\nvar _ManualRowResize_brand = /*#__PURE__*/new WeakSet();\nclass ManualRowResize extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BasePlugin\"] {\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n\n  /**\n   * @type {HTMLTableCellElement}\n   */\n\n  constructor(hotInstance) {\n    super(hotInstance);\n    /**\n     * 'mouseover' event callback - set the handle position.\n     *\n     * @param {MouseEvent} event The mouse event.\n     */\n    _classPrivateMethodInitSpec(this, _ManualRowResize_brand);\n    _classPrivateFieldInitSpec(this, _currentTH, null);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _currentRow, null);\n    /**\n     * @type {number[]}\n     */\n    _classPrivateFieldInitSpec(this, _selectedRows, []);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _currentHeight, null);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _newSize, null);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _startY, null);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _startHeight, null);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _startOffset, null);\n    /**\n     * @type {HTMLElement}\n     */\n    _classPrivateFieldInitSpec(this, _handle, this.hot.rootDocument.createElement('DIV'));\n    /**\n     * @type {HTMLElement}\n     */\n    _classPrivateFieldInitSpec(this, _guide, this.hot.rootDocument.createElement('DIV'));\n    /**\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _pressed, false);\n    /**\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _isTriggeredByRMB, false);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _dblclick, 0);\n    /**\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _autoresizeTimeout, null);\n    /**\n     * PhysicalIndexToValueMap to keep and track widths for physical row indexes.\n     *\n     * @type {PhysicalIndexToValueMap}\n     */\n    _classPrivateFieldInitSpec(this, _rowHeightsMap, void 0);\n    /**\n     * Private pool to save configuration from updateSettings.\n     *\n     * @type {object}\n     */\n    _classPrivateFieldInitSpec(this, _config, void 0);\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"addClass\"])(_classPrivateFieldGet(_handle, this), 'manualRowResizer');\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"addClass\"])(_classPrivateFieldGet(_guide, this), 'manualRowResizerGuide');\n  }\n\n  /**\n   * @private\n   * @returns {string}\n   */\n  get inlineDir() {\n    return this.hot.isRtl() ? 'right' : 'left';\n  }\n\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link ManualRowResize#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    if (this.enabled) {\n      return;\n    }\n    _classPrivateFieldSet(_rowHeightsMap, this, new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"PhysicalIndexToValueMap\"]());\n    _classPrivateFieldGet(_rowHeightsMap, this).addLocalHook('init', () => _assertClassBrand(_ManualRowResize_brand, this, _onMapInit).call(this));\n    this.hot.rowIndexMapper.registerMap(this.pluginName, _classPrivateFieldGet(_rowHeightsMap, this));\n    this.addHook('modifyRowHeight', (height, row) => _assertClassBrand(_ManualRowResize_brand, this, _onModifyRowHeight).call(this, height, row));\n    this.bindEvents();\n    super.enablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`manualRowResize`](@/api/options.md#manualrowresize)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    _classPrivateFieldSet(_config, this, _classPrivateFieldGet(_rowHeightsMap, this).getValues());\n    this.hot.rowIndexMapper.unregisterMap(this.pluginName);\n    super.disablePlugin();\n  }\n\n  /**\n   * Saves the current sizes using the persistentState plugin (the {@link Options#persistentState} option has to be\n   * enabled).\n   *\n   * @fires Hooks#persistentStateSave\n   */\n  saveManualRowHeights() {\n    this.hot.runHooks('persistentStateSave', PERSISTENT_STATE_KEY, _classPrivateFieldGet(_rowHeightsMap, this).getValues());\n  }\n\n  /**\n   * Loads the previously saved sizes using the persistentState plugin (the {@link Options#persistentState} option\n   * has be enabled).\n   *\n   * @returns {Array}\n   * @fires Hooks#persistentStateLoad\n   */\n  loadManualRowHeights() {\n    const storedState = {};\n    this.hot.runHooks('persistentStateLoad', PERSISTENT_STATE_KEY, storedState);\n    return storedState.value;\n  }\n\n  /**\n   * Sets the new height for specified row index.\n   *\n   * @param {number} row Visual row index.\n   * @param {number} height Row height.\n   * @returns {number} Returns new height.\n   */\n  setManualSize(row, height) {\n    const physicalRow = this.hot.toPhysicalRow(row);\n    const newHeight = Math.max(height, _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"DEFAULT_ROW_HEIGHT\"]);\n    _classPrivateFieldGet(_rowHeightsMap, this).setValueAtIndex(physicalRow, newHeight);\n    return newHeight;\n  }\n\n  /**\n   * Returns the last desired row height set manually with the resize handle.\n   *\n   * @returns {number} The last desired row height.\n   */\n  getLastDesiredRowHeight() {\n    return _classPrivateFieldGet(_currentHeight, this);\n  }\n\n  /**\n   * Sets the resize handle position.\n   *\n   * @private\n   * @param {HTMLCellElement} TH TH HTML element.\n   */\n  setupHandlePosition(TH) {\n    _classPrivateFieldSet(_currentTH, this, TH);\n    const {\n      view\n    } = this.hot;\n    const {\n      _wt: wt\n    } = view;\n    const cellCoords = wt.wtTable.getCoords(_classPrivateFieldGet(_currentTH, this));\n    const row = cellCoords.row;\n\n    // Ignore row headers.\n    if (row < 0) {\n      return;\n    }\n    const headerWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"outerWidth\"])(_classPrivateFieldGet(_currentTH, this));\n    const box = _classPrivateFieldGet(_currentTH, this).getBoundingClientRect();\n    // Read \"fixedRowsTop\" and \"fixedRowsBottom\" through the Walkontable as in that context, the fixed\n    // rows are modified (reduced by the number of hidden rows) by TableView module.\n    const fixedRowTop = row < wt.getSetting('fixedRowsTop');\n    const fixedRowBottom = row >= view.countNotHiddenRowIndexes(0, 1) - wt.getSetting('fixedRowsBottom');\n    let relativeHeaderPosition;\n    if (fixedRowTop) {\n      relativeHeaderPosition = wt.wtOverlays.topInlineStartCornerOverlay.getRelativeCellPosition(_classPrivateFieldGet(_currentTH, this), cellCoords.row, cellCoords.col);\n    } else if (fixedRowBottom) {\n      relativeHeaderPosition = wt.wtOverlays.bottomInlineStartCornerOverlay.getRelativeCellPosition(_classPrivateFieldGet(_currentTH, this), cellCoords.row, cellCoords.col);\n    }\n\n    // If the TH is not a child of the top-left/bottom-left overlay, recalculate using\n    // the left overlay - as this overlay contains the rest of the headers.\n    if (!relativeHeaderPosition) {\n      relativeHeaderPosition = wt.wtOverlays.inlineStartOverlay.getRelativeCellPosition(_classPrivateFieldGet(_currentTH, this), cellCoords.row, cellCoords.col);\n    }\n    _classPrivateFieldSet(_currentRow, this, this.hot.rowIndexMapper.getVisualFromRenderableIndex(row));\n    _classPrivateFieldSet(_selectedRows, this, []);\n    const isFullRowSelected = this.hot.selection.isSelectedByCorner() || this.hot.selection.isSelectedByRowHeader();\n    if (this.hot.selection.isSelected() && isFullRowSelected) {\n      const selectionRanges = this.hot.getSelectedRange();\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(selectionRanges, selectionRange => {\n        const fromRow = selectionRange.getTopStartCorner().row;\n        const toRow = selectionRange.getBottomStartCorner().row;\n\n        // Add every selected row for resize action.\n        Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_5__[\"rangeEach\"])(fromRow, toRow, rowIndex => {\n          if (!_classPrivateFieldGet(_selectedRows, this).includes(rowIndex)) {\n            _classPrivateFieldGet(_selectedRows, this).push(rowIndex);\n          }\n        });\n      });\n    }\n\n    // Resizing element beyond the current selection (also when there is no selection).\n    if (!_classPrivateFieldGet(_selectedRows, this).includes(_classPrivateFieldGet(_currentRow, this))) {\n      _classPrivateFieldSet(_selectedRows, this, [_classPrivateFieldGet(_currentRow, this)]);\n    }\n    _classPrivateFieldSet(_startOffset, this, relativeHeaderPosition.top - 6);\n    _classPrivateFieldSet(_startHeight, this, parseInt(box.height, 10));\n    _classPrivateFieldGet(_handle, this).style.top = `${_classPrivateFieldGet(_startOffset, this) + _classPrivateFieldGet(_startHeight, this)}px`;\n    _classPrivateFieldGet(_handle, this).style[this.inlineDir] = `${relativeHeaderPosition.start}px`;\n    _classPrivateFieldGet(_handle, this).style.width = `${headerWidth}px`;\n    this.hot.rootElement.appendChild(_classPrivateFieldGet(_handle, this));\n  }\n\n  /**\n   * Refresh the resize handle position.\n   *\n   * @private\n   */\n  refreshHandlePosition() {\n    _classPrivateFieldGet(_handle, this).style.top = `${_classPrivateFieldGet(_startOffset, this) + _classPrivateFieldGet(_currentHeight, this)}px`;\n  }\n\n  /**\n   * Sets the resize guide position.\n   *\n   * @private\n   */\n  setupGuidePosition() {\n    const handleWidth = parseInt(Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"outerWidth\"])(_classPrivateFieldGet(_handle, this)), 10);\n    const handleEndPosition = parseInt(_classPrivateFieldGet(_handle, this).style[this.inlineDir], 10) + handleWidth;\n    const maximumVisibleElementWidth = parseInt(this.hot.view.maximumVisibleElementWidth(0), 10);\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"addClass\"])(_classPrivateFieldGet(_handle, this), 'active');\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"addClass\"])(_classPrivateFieldGet(_guide, this), 'active');\n    _classPrivateFieldGet(_guide, this).style.top = _classPrivateFieldGet(_handle, this).style.top;\n    _classPrivateFieldGet(_guide, this).style[this.inlineDir] = `${handleEndPosition}px`;\n    _classPrivateFieldGet(_guide, this).style.width = `${maximumVisibleElementWidth - handleWidth}px`;\n    this.hot.rootElement.appendChild(_classPrivateFieldGet(_guide, this));\n  }\n\n  /**\n   * Refresh the resize guide position.\n   *\n   * @private\n   */\n  refreshGuidePosition() {\n    _classPrivateFieldGet(_guide, this).style.top = _classPrivateFieldGet(_handle, this).style.top;\n  }\n\n  /**\n   * Hides both the resize handle and resize guide.\n   *\n   * @private\n   */\n  hideHandleAndGuide() {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"removeClass\"])(_classPrivateFieldGet(_handle, this), 'active');\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"removeClass\"])(_classPrivateFieldGet(_guide, this), 'active');\n  }\n\n  /**\n   * Checks if provided element is considered as a row header.\n   *\n   * @private\n   * @param {HTMLElement} element HTML element.\n   * @returns {boolean}\n   */\n  checkIfRowHeader(element) {\n    const tbody = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"closest\"])(element, ['TBODY'], this.hot.rootElement);\n    const {\n      inlineStartOverlay,\n      topInlineStartCornerOverlay,\n      bottomInlineStartCornerOverlay\n    } = this.hot.view._wt.wtOverlays;\n    return [inlineStartOverlay.clone.wtTable.TBODY, topInlineStartCornerOverlay.clone.wtTable.TBODY, bottomInlineStartCornerOverlay.clone.wtTable.TBODY].includes(tbody);\n  }\n\n  /**\n   * Gets the TH element from the provided element.\n   *\n   * @private\n   * @param {HTMLElement} element HTML element.\n   * @returns {HTMLElement}\n   */\n  getClosestTHParent(element) {\n    if (element.tagName !== 'TABLE') {\n      if (element.tagName === 'TH') {\n        return element;\n      }\n      return this.getClosestTHParent(element.parentNode);\n    }\n    return null;\n  }\n\n  /**\n   * Returns the actual height for the provided row index.\n   *\n   * @private\n   * @param {number} row Visual row index.\n   * @returns {number} Actual row height.\n   */\n  getActualRowHeight(row) {\n    // TODO: this should utilize `this.hot.getRowHeight` after it's fixed and working properly.\n    const walkontableHeight = this.hot.view._wt.wtTable.getRowHeight(row);\n    if (walkontableHeight !== undefined && _classPrivateFieldGet(_newSize, this) < walkontableHeight) {\n      return walkontableHeight;\n    }\n    return _classPrivateFieldGet(_newSize, this);\n  }\n  /**\n   * Auto-size row after doubleclick - callback.\n   *\n   * @private\n   * @fires Hooks#beforeRowResize\n   * @fires Hooks#afterRowResize\n   */\n  afterMouseDownTimeout() {\n    const render = () => {\n      this.hot.forceFullRender = true;\n      this.hot.view.render(); // updates all\n      this.hot.view.adjustElementsSize();\n    };\n    const resize = (row, forceRender) => {\n      const hookNewSize = this.hot.runHooks('beforeRowResize', this.getActualRowHeight(row), row, true);\n      if (hookNewSize !== undefined) {\n        _classPrivateFieldSet(_newSize, this, hookNewSize);\n      }\n      this.setManualSize(row, _classPrivateFieldGet(_newSize, this)); // double click sets auto row size\n\n      this.hot.runHooks('afterRowResize', this.getActualRowHeight(row), row, true);\n      if (forceRender) {\n        render();\n      }\n    };\n    if (_classPrivateFieldGet(_dblclick, this) >= 2) {\n      const selectedRowsLength = _classPrivateFieldGet(_selectedRows, this).length;\n      if (selectedRowsLength > 1) {\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(_classPrivateFieldGet(_selectedRows, this), selectedRow => {\n          resize(selectedRow);\n        });\n        render();\n      } else {\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(_classPrivateFieldGet(_selectedRows, this), selectedRow => {\n          resize(selectedRow, true);\n        });\n      }\n    }\n    _classPrivateFieldSet(_dblclick, this, 0);\n    _classPrivateFieldSet(_autoresizeTimeout, this, null);\n  }\n\n  /**\n   * 'mousedown' event callback.\n   *\n   * @param {MouseEvent} event The mouse event.\n   */\n\n  /**\n   * Binds the mouse events.\n   *\n   * @private\n   */\n  bindEvents() {\n    const {\n      rootElement,\n      rootWindow\n    } = this.hot;\n    this.eventManager.addEventListener(rootElement, 'mouseover', e => _assertClassBrand(_ManualRowResize_brand, this, _onMouseOver).call(this, e));\n    this.eventManager.addEventListener(rootElement, 'mousedown', e => _assertClassBrand(_ManualRowResize_brand, this, _onMouseDown).call(this, e));\n    this.eventManager.addEventListener(rootWindow, 'mousemove', e => _assertClassBrand(_ManualRowResize_brand, this, _onMouseMove).call(this, e));\n    this.eventManager.addEventListener(rootWindow, 'mouseup', () => _assertClassBrand(_ManualRowResize_brand, this, _onMouseUp).call(this));\n    this.eventManager.addEventListener(_classPrivateFieldGet(_handle, this), 'contextmenu', () => _assertClassBrand(_ManualRowResize_brand, this, _onContextMenu).call(this));\n  }\n\n  /**\n   * Modifies the provided row height, based on the plugin settings.\n   *\n   * @param {number} height Row height.\n   * @param {number} row Visual row index.\n   * @returns {number}\n   */\n\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    super.destroy();\n  }\n}\nfunction _onMouseOver(event) {\n  // Workaround for #6926 - if the `event.target` is temporarily detached, we can skip this callback and wait for\n  // the next `onmouseover`.\n  if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isDetached\"])(event.target)) {\n    return;\n  }\n\n  // A \"mouseover\" action is triggered right after executing \"contextmenu\" event. It should be ignored.\n  if (_classPrivateFieldGet(_isTriggeredByRMB, this) === true) {\n    return;\n  }\n  if (this.checkIfRowHeader(event.target)) {\n    const th = this.getClosestTHParent(event.target);\n    if (th) {\n      if (!_classPrivateFieldGet(_pressed, this)) {\n        this.setupHandlePosition(th);\n      }\n    }\n  }\n}\nfunction _onMouseDown(event) {\n  if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"hasClass\"])(event.target, 'manualRowResizer')) {\n    this.setupHandlePosition(_classPrivateFieldGet(_currentTH, this));\n    this.setupGuidePosition();\n    _classPrivateFieldSet(_pressed, this, true);\n    if (_classPrivateFieldGet(_autoresizeTimeout, this) === null) {\n      _classPrivateFieldSet(_autoresizeTimeout, this, setTimeout(() => this.afterMouseDownTimeout(), 500));\n      this.hot._registerTimeout(_classPrivateFieldGet(_autoresizeTimeout, this));\n    }\n    _classPrivateFieldSet(_dblclick, this, _classPrivateFieldGet(_dblclick, this) + 1);\n    _classPrivateFieldSet(_startY, this, event.pageY);\n    _classPrivateFieldSet(_newSize, this, _classPrivateFieldGet(_startHeight, this));\n  }\n}\n/**\n * 'mousemove' event callback - refresh the handle and guide positions, cache the new row height.\n *\n * @param {MouseEvent} event The mouse event.\n */\nfunction _onMouseMove(event) {\n  if (_classPrivateFieldGet(_pressed, this)) {\n    _classPrivateFieldSet(_currentHeight, this, _classPrivateFieldGet(_startHeight, this) + (event.pageY - _classPrivateFieldGet(_startY, this)));\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(_classPrivateFieldGet(_selectedRows, this), selectedRow => {\n      _classPrivateFieldSet(_newSize, this, this.setManualSize(selectedRow, _classPrivateFieldGet(_currentHeight, this)));\n    });\n    this.refreshHandlePosition();\n    this.refreshGuidePosition();\n  }\n}\n/**\n * 'mouseup' event callback - apply the row resizing.\n *\n * @fires Hooks#beforeRowResize\n * @fires Hooks#afterRowResize\n */\nfunction _onMouseUp() {\n  const render = () => {\n    this.hot.forceFullRender = true;\n    this.hot.view.render(); // updates all\n    this.hot.view.adjustElementsSize();\n  };\n  const runHooks = (row, forceRender) => {\n    this.hot.runHooks('beforeRowResize', this.getActualRowHeight(row), row, false);\n    if (forceRender) {\n      render();\n    }\n    this.saveManualRowHeights();\n    this.hot.runHooks('afterRowResize', this.getActualRowHeight(row), row, false);\n  };\n  if (_classPrivateFieldGet(_pressed, this)) {\n    this.hideHandleAndGuide();\n    _classPrivateFieldSet(_pressed, this, false);\n    if (_classPrivateFieldGet(_newSize, this) !== _classPrivateFieldGet(_startHeight, this)) {\n      const selectedRowsLength = _classPrivateFieldGet(_selectedRows, this).length;\n      if (selectedRowsLength > 1) {\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(_classPrivateFieldGet(_selectedRows, this), selectedRow => {\n          runHooks(selectedRow);\n        });\n        render();\n      } else {\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(_classPrivateFieldGet(_selectedRows, this), selectedRow => {\n          runHooks(selectedRow, true);\n        });\n      }\n    }\n    this.setupHandlePosition(_classPrivateFieldGet(_currentTH, this));\n  }\n}\n/**\n * Callback for \"contextmenu\" event triggered on element showing move handle. It removes handle and guide elements.\n */\nfunction _onContextMenu() {\n  this.hideHandleAndGuide();\n  this.hot.rootElement.removeChild(_classPrivateFieldGet(_handle, this));\n  this.hot.rootElement.removeChild(_classPrivateFieldGet(_guide, this));\n  _classPrivateFieldSet(_pressed, this, false);\n  _classPrivateFieldSet(_isTriggeredByRMB, this, true);\n\n  // There is thrown \"mouseover\" event right after opening a context menu. This flag inform that handle\n  // shouldn't be drawn just after removing it.\n  this.hot._registerImmediate(() => {\n    _classPrivateFieldSet(_isTriggeredByRMB, this, false);\n  });\n}\nfunction _onModifyRowHeight(height, row) {\n  let newHeight = height;\n  if (this.enabled) {\n    const physicalRow = this.hot.toPhysicalRow(row);\n    const rowHeight = _classPrivateFieldGet(_rowHeightsMap, this).getValueAtIndex(physicalRow);\n    if (this.hot.getSettings()[PLUGIN_KEY] && rowHeight) {\n      newHeight = rowHeight;\n    }\n  }\n  return newHeight;\n}\n/**\n * Callback to call on map's `init` local hook.\n */\nfunction _onMapInit() {\n  const initialSetting = this.hot.getSettings()[PLUGIN_KEY];\n  const loadedManualRowHeights = this.loadManualRowHeights();\n  this.hot.batchExecution(() => {\n    if (typeof loadedManualRowHeights !== 'undefined') {\n      loadedManualRowHeights.forEach((height, index) => {\n        _classPrivateFieldGet(_rowHeightsMap, this).setValueAtIndex(index, height);\n      });\n    } else if (Array.isArray(initialSetting)) {\n      initialSetting.forEach((height, index) => {\n        _classPrivateFieldGet(_rowHeightsMap, this).setValueAtIndex(index, height);\n      });\n      _classPrivateFieldSet(_config, this, initialSetting);\n    } else if (initialSetting === true && Array.isArray(_classPrivateFieldGet(_config, this))) {\n      _classPrivateFieldGet(_config, this).forEach((height, index) => {\n        _classPrivateFieldGet(_rowHeightsMap, this).setValueAtIndex(index, height);\n      });\n    }\n  }, true);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/manualRowResize/manualRowResize.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/mergeCells/calculations/autofill.mjs":
/*!********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/mergeCells/calculations/autofill.mjs ***!
  \********************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n/**\n * Class responsible for all of the Autofill-related operations on merged cells.\n *\n * @private\n * @class AutofillCalculations\n */\nclass AutofillCalculations {\n  constructor(plugin) {\n    /**\n     * Reference to the Merge Cells plugin.\n     *\n     * @type {MergeCells}\n     */\n    _defineProperty(this, \"plugin\", void 0);\n    /**\n     * Reference to the MergedCellsCollection class instance.\n     *\n     * @type {MergedCellsCollection}\n     */\n    _defineProperty(this, \"mergedCellsCollection\", void 0);\n    /**\n     * Cache of the currently processed autofill data.\n     *\n     * @private\n     * @type {object}\n     */\n    _defineProperty(this, \"currentFillData\", null);\n    this.plugin = plugin;\n    this.mergedCellsCollection = this.plugin.mergedCellsCollection;\n  }\n\n  /**\n   * Correct the provided selection area, so it's not selecting only a part of a merged cell.\n   *\n   * @param {Array} selectionArea The selection to correct.\n   */\n  correctSelectionAreaSize(selectionArea) {\n    if (selectionArea[0] === selectionArea[2] && selectionArea[1] === selectionArea[3]) {\n      const mergedCell = this.mergedCellsCollection.get(selectionArea[0], selectionArea[1]);\n      if (mergedCell) {\n        selectionArea[2] = selectionArea[0] + mergedCell.rowspan - 1;\n        selectionArea[3] = selectionArea[1] + mergedCell.colspan - 1;\n      }\n    }\n  }\n\n  /**\n   * Get the direction of the autofill process.\n   *\n   * @param {Array} selectionArea The selection area.\n   * @param {Array} finalArea The final area (base + drag).\n   * @returns {string} `up`, `down`, `left` or `right`.\n   */\n  getDirection(selectionArea, finalArea) {\n    let direction = null;\n    if (finalArea[0] === selectionArea[0] && finalArea[1] === selectionArea[1] && finalArea[3] === selectionArea[3]) {\n      direction = 'down';\n    } else if (finalArea[2] === selectionArea[2] && finalArea[1] === selectionArea[1] && finalArea[3] === selectionArea[3]) {\n      direction = 'up';\n    } else if (finalArea[1] === selectionArea[1] && finalArea[2] === selectionArea[2]) {\n      direction = 'right';\n    } else {\n      direction = 'left';\n    }\n    return direction;\n  }\n\n  /**\n   * Snap the drag area to the farthest merged cell, so it won't clip any of the merged cells.\n   *\n   * @param {Array} baseArea The base selected area.\n   * @param {Array} dragArea The drag area.\n   * @param {string} dragDirection The autofill drag direction.\n   * @param {Array} foundMergedCells MergeCellCoords found in the base selection area.\n   * @returns {Array} The new drag area.\n   */\n  snapDragArea(baseArea, dragArea, dragDirection, foundMergedCells) {\n    const newDragArea = dragArea.slice(0);\n    const fillSize = this.getAutofillSize(baseArea, dragArea, dragDirection);\n    const [baseAreaStartRow, baseAreaStartColumn, baseAreaEndRow, baseAreaEndColumn] = baseArea;\n    const verticalDirection = ['up', 'down'].indexOf(dragDirection) > -1;\n    const fullCycle = verticalDirection ? baseAreaEndRow - baseAreaStartRow + 1 : baseAreaEndColumn - baseAreaStartColumn + 1;\n    const fulls = Math.floor(fillSize / fullCycle) * fullCycle;\n    const partials = fillSize - fulls;\n    const farthestCollection = this.getFarthestCollection(baseArea, dragArea, dragDirection, foundMergedCells);\n    if (farthestCollection) {\n      if (dragDirection === 'down') {\n        const fill = farthestCollection.row + farthestCollection.rowspan - baseAreaStartRow - partials;\n        const newLimit = newDragArea[2] + fill;\n        if (newLimit >= this.plugin.hot.countRows()) {\n          newDragArea[2] -= partials;\n        } else {\n          newDragArea[2] += partials ? fill : 0;\n        }\n      } else if (dragDirection === 'right') {\n        const fill = farthestCollection.col + farthestCollection.colspan - baseAreaStartColumn - partials;\n        const newLimit = newDragArea[3] + fill;\n        if (newLimit >= this.plugin.hot.countCols()) {\n          newDragArea[3] -= partials;\n        } else {\n          newDragArea[3] += partials ? fill : 0;\n        }\n      } else if (dragDirection === 'up') {\n        const fill = baseAreaEndRow - partials - farthestCollection.row + 1;\n        const newLimit = newDragArea[0] + fill;\n        if (newLimit < 0) {\n          newDragArea[0] += partials;\n        } else {\n          newDragArea[0] -= partials ? fill : 0;\n        }\n      } else if (dragDirection === 'left') {\n        const fill = baseAreaEndColumn - partials - farthestCollection.col + 1;\n        const newLimit = newDragArea[1] + fill;\n        if (newLimit < 0) {\n          newDragArea[1] += partials;\n        } else {\n          newDragArea[1] -= partials ? fill : 0;\n        }\n      }\n    }\n    this.updateCurrentFillCache({\n      baseArea,\n      dragDirection,\n      foundMergedCells,\n      fillSize,\n      dragArea: newDragArea,\n      cycleLength: fullCycle\n    });\n    return newDragArea;\n  }\n\n  /**\n   * Update the current fill cache with the provided object.\n   *\n   * @private\n   * @param {object} updateObject The current filled object cache.\n   */\n  updateCurrentFillCache(updateObject) {\n    if (!this.currentFillData) {\n      this.currentFillData = {};\n    }\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"extend\"])(this.currentFillData, updateObject);\n  }\n\n  /**\n   * Get the \"length\" of the drag area.\n   *\n   * @private\n   * @param {Array} baseArea The base selection area.\n   * @param {Array} dragArea The drag area (containing the base area).\n   * @param {string} direction The drag direction.\n   * @returns {number|null} The \"length\" (height or width, depending on the direction) of the drag.\n   */\n  getAutofillSize(baseArea, dragArea, direction) {\n    const [baseAreaStartRow, baseAreaStartColumn, baseAreaEndRow, baseAreaEndColumn] = baseArea;\n    const [dragAreaStartRow, dragAreaStartColumn, dragAreaEndRow, dragAreaEndColumn] = dragArea;\n    switch (direction) {\n      case 'up':\n        return baseAreaStartRow - dragAreaStartRow;\n      case 'down':\n        return dragAreaEndRow - baseAreaEndRow;\n      case 'left':\n        return baseAreaStartColumn - dragAreaStartColumn;\n      case 'right':\n        return dragAreaEndColumn - baseAreaEndColumn;\n      default:\n        return null;\n    }\n  }\n\n  /**\n   * Trim the default drag area (containing the selection area) to the drag-only area.\n   *\n   * @private\n   * @param {Array} baseArea The base selection area.\n   * @param {Array} dragArea The base selection area extended by the drag area.\n   * @param {string} direction Drag direction.\n   * @returns {Array|null} Array representing the drag area coordinates.\n   */\n  getDragArea(baseArea, dragArea, direction) {\n    const [baseAreaStartRow, baseAreaStartColumn, baseAreaEndRow, baseAreaEndColumn] = baseArea;\n    const [dragAreaStartRow, dragAreaStartColumn, dragAreaEndRow, dragAreaEndColumn] = dragArea;\n    switch (direction) {\n      case 'up':\n        return [dragAreaStartRow, dragAreaStartColumn, baseAreaStartRow - 1, baseAreaEndColumn];\n      case 'down':\n        return [baseAreaEndRow + 1, baseAreaStartColumn, dragAreaEndRow, baseAreaEndColumn];\n      case 'left':\n        return [dragAreaStartRow, dragAreaStartColumn, baseAreaEndRow, baseAreaStartColumn - 1];\n      case 'right':\n        return [baseAreaStartRow, baseAreaEndColumn + 1, dragAreaEndRow, dragAreaEndColumn];\n      default:\n        return null;\n    }\n  }\n\n  /**\n   * Get the to-be-farthest merged cell in the newly filled area.\n   *\n   * @private\n   * @param {Array} baseArea The base selection area.\n   * @param {Array} dragArea The drag area (containing the base area).\n   * @param {string} direction The drag direction.\n   * @param {Array} mergedCellArray Array of the merged cells found in the base area.\n   * @returns {MergedCellCoords|null}\n   */\n  getFarthestCollection(baseArea, dragArea, direction, mergedCellArray) {\n    const [baseAreaStartRow, baseAreaStartColumn, baseAreaEndRow, baseAreaEndColumn] = baseArea;\n    const verticalDirection = ['up', 'down'].indexOf(direction) > -1;\n    const baseEnd = verticalDirection ? baseAreaEndRow : baseAreaEndColumn;\n    const baseStart = verticalDirection ? baseAreaStartRow : baseAreaStartColumn;\n    const fillSize = this.getAutofillSize(baseArea, dragArea, direction);\n    const fullCycle = verticalDirection ? baseAreaEndRow - baseAreaStartRow + 1 : baseAreaEndColumn - baseAreaStartColumn + 1;\n    const fulls = Math.floor(fillSize / fullCycle) * fullCycle;\n    const partials = fillSize - fulls;\n    let inclusionFunctionName = null;\n    let farthestCollection = null;\n    let endOfDragRecreationIndex = null;\n    switch (direction) {\n      case 'up':\n        inclusionFunctionName = 'includesVertically';\n        endOfDragRecreationIndex = baseEnd - partials + 1;\n        break;\n      case 'left':\n        inclusionFunctionName = 'includesHorizontally';\n        endOfDragRecreationIndex = baseEnd - partials + 1;\n        break;\n      case 'down':\n        inclusionFunctionName = 'includesVertically';\n        endOfDragRecreationIndex = baseStart + partials - 1;\n        break;\n      case 'right':\n        inclusionFunctionName = 'includesHorizontally';\n        endOfDragRecreationIndex = baseStart + partials - 1;\n        break;\n      default:\n    }\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(mergedCellArray, currentCollection => {\n      if (currentCollection[inclusionFunctionName](endOfDragRecreationIndex) && currentCollection.isFarther(farthestCollection, direction)) {\n        farthestCollection = currentCollection;\n      }\n    });\n    return farthestCollection;\n  }\n\n  /**\n   * Recreate the merged cells after the autofill process.\n   *\n   * @param {Array} changes Changes made.\n   */\n  recreateAfterDataPopulation(changes) {\n    if (!this.currentFillData) {\n      return;\n    }\n    const fillRange = this.getRangeFromChanges(changes);\n    const foundMergedCells = this.currentFillData.foundMergedCells;\n    const dragDirection = this.currentFillData.dragDirection;\n    const inBounds = (current, offset) => {\n      switch (dragDirection) {\n        case 'up':\n          return current.row - offset >= fillRange.from.row;\n        case 'down':\n          return current.row + current.rowspan - 1 + offset <= fillRange.to.row;\n        case 'left':\n          return current.col - offset >= fillRange.from.column;\n        case 'right':\n          return current.col + current.colspan - 1 + offset <= fillRange.to.column;\n        default:\n          return null;\n      }\n    };\n    let fillOffset = 0;\n    let current = null;\n    let multiplier = 1;\n    do {\n      for (let j = 0; j < foundMergedCells.length; j += 1) {\n        current = foundMergedCells[j];\n        fillOffset = multiplier * this.currentFillData.cycleLength;\n        if (inBounds(current, fillOffset)) {\n          switch (dragDirection) {\n            case 'up':\n              this.plugin.mergedCellsCollection.add({\n                row: current.row - fillOffset,\n                rowspan: current.rowspan,\n                col: current.col,\n                colspan: current.colspan\n              });\n              break;\n            case 'down':\n              this.plugin.mergedCellsCollection.add({\n                row: current.row + fillOffset,\n                rowspan: current.rowspan,\n                col: current.col,\n                colspan: current.colspan\n              });\n              break;\n            case 'left':\n              this.plugin.mergedCellsCollection.add({\n                row: current.row,\n                rowspan: current.rowspan,\n                col: current.col - fillOffset,\n                colspan: current.colspan\n              });\n              break;\n            case 'right':\n              this.plugin.mergedCellsCollection.add({\n                row: current.row,\n                rowspan: current.rowspan,\n                col: current.col + fillOffset,\n                colspan: current.colspan\n              });\n              break;\n            default:\n          }\n        }\n        if (j === foundMergedCells.length - 1) {\n          multiplier += 1;\n        }\n      }\n    } while (inBounds(current, fillOffset));\n    this.currentFillData = null;\n    this.plugin.hot.render();\n    if (foundMergedCells.length > 0) {\n      this.plugin.ifChromeForceRepaint();\n    }\n  }\n\n  /**\n   * Get the drag range from the changes made.\n   *\n   * @private\n   * @param {Array} changes The changes made.\n   * @returns {object} Object with `from` and `to` properties, both containing `row` and `column` keys.\n   */\n  getRangeFromChanges(changes) {\n    const rows = {\n      min: null,\n      max: null\n    };\n    const columns = {\n      min: null,\n      max: null\n    };\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(changes, change => {\n      const rowIndex = change[0];\n      const columnIndex = this.plugin.hot.propToCol(change[1]);\n      if (rows.min === null || rowIndex < rows.min) {\n        rows.min = rowIndex;\n      }\n      if (rows.max === null || rowIndex > rows.max) {\n        rows.max = rowIndex;\n      }\n      if (columns.min === null || columnIndex < columns.min) {\n        columns.min = columnIndex;\n      }\n      if (columns.max === null || columnIndex > columns.max) {\n        columns.max = columnIndex;\n      }\n    });\n    return {\n      from: {\n        row: rows.min,\n        column: columns.min\n      },\n      to: {\n        row: rows.max,\n        column: columns.max\n      }\n    };\n  }\n\n  /**\n   * Check if the drag area contains any merged cells.\n   *\n   * @param {Array} baseArea The base selection area.\n   * @param {Array} fullArea The base area extended by the drag area.\n   * @param {string} direction Drag direction.\n   * @returns {boolean}\n   */\n  dragAreaOverlapsCollections(baseArea, fullArea, direction) {\n    const dragArea = this.getDragArea(baseArea, fullArea, direction);\n    const [dragAreaStartRow, dragAreaStartColumn, dragAreaEndRow, dragAreaEndColumn] = dragArea;\n    const topLeft = this.plugin.hot._createCellCoords(dragAreaStartRow, dragAreaStartColumn);\n    const bottomRight = this.plugin.hot._createCellCoords(dragAreaEndRow, dragAreaEndColumn);\n    const dragRange = this.plugin.hot._createCellRange(topLeft, topLeft, bottomRight);\n    return this.mergedCellsCollection.getWithinRange(dragRange, true).length > 0;\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (AutofillCalculations);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/mergeCells/calculations/autofill.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/mergeCells/calculations/selection.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/mergeCells/calculations/selection.mjs ***!
  \*********************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * Class responsible for all of the Selection-related operations on merged cells.\n *\n * @private\n * @class SelectionCalculations\n */\nclass SelectionCalculations {\n  constructor(plugin) {\n    /**\n     * Reference to the Merge Cells plugin.\n     *\n     * @type {MergeCells}\n     */\n    _defineProperty(this, \"plugin\", void 0);\n    /**\n     * Reference to the Handsontable instance.\n     *\n     * @type {Handsontable}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * Class name used for fully selected merged cells.\n     *\n     * @type {string}\n     */\n    _defineProperty(this, \"fullySelectedMergedCellClassName\", 'fullySelectedMergedCell');\n    this.plugin = plugin;\n    this.hot = plugin.hot;\n  }\n\n  /**\n   * Generate an additional class name for the entirely-selected merged cells.\n   *\n   * @param {number} currentRow Visual row index of the currently processed cell.\n   * @param {number} currentColumn Visual column index of the currently cell.\n   * @param {Array} cornersOfSelection Array of the current selection in a form of `[startRow, startColumn, endRow, endColumn]`.\n   * @param {number|undefined} layerLevel Number indicating which layer of selection is currently processed.\n   * @returns {string|undefined} A `String`, which will act as an additional `className` to be added to the currently processed cell.\n   */\n  getSelectedMergedCellClassName(currentRow, currentColumn, cornersOfSelection, layerLevel) {\n    const startRow = Math.min(cornersOfSelection[0], cornersOfSelection[2]);\n    const startColumn = Math.min(cornersOfSelection[1], cornersOfSelection[3]);\n    const endRow = Math.max(cornersOfSelection[0], cornersOfSelection[2]);\n    const endColumn = Math.max(cornersOfSelection[1], cornersOfSelection[3]);\n    if (layerLevel === undefined) {\n      return;\n    }\n    const isFirstRenderableMergedCell = this.plugin.mergedCellsCollection.isFirstRenderableMergedCell(currentRow, currentColumn);\n\n    // We add extra classes just to the first renderable merged cell.\n    if (!isFirstRenderableMergedCell) {\n      return;\n    }\n    const mergedCell = this.plugin.mergedCellsCollection.get(currentRow, currentColumn);\n    if (!mergedCell) {\n      return;\n    }\n    const mergeRowEnd = mergedCell.getLastRow();\n    const mergeColumnEnd = mergedCell.getLastColumn();\n    const fullMergeAreaWithinSelection = startRow <= mergedCell.row && startColumn <= mergedCell.col && endRow >= mergeRowEnd && endColumn >= mergeColumnEnd;\n    if (fullMergeAreaWithinSelection) {\n      return `${this.fullySelectedMergedCellClassName}-${layerLevel}`;\n    } else if (this.isMergeCellFullySelected(mergedCell, this.plugin.hot.getSelectedRange())) {\n      return `${this.fullySelectedMergedCellClassName}-multiple`;\n    }\n  }\n\n  /**\n   * Check if the provided merged cell is fully selected (by one or many layers of selection).\n   *\n   * @param {MergedCellCoords} mergedCell The merged cell to be processed.\n   * @param {CellRange[]} selectionRangesArray Array of selection ranges.\n   * @returns {boolean}\n   */\n  isMergeCellFullySelected(mergedCell, selectionRangesArray) {\n    const mergedCellIndividualCoords = [];\n    if (!selectionRangesArray || !mergedCell) {\n      return false;\n    }\n    for (let r = 0; r < mergedCell.rowspan; r += 1) {\n      for (let c = 0; c < mergedCell.colspan; c += 1) {\n        mergedCellIndividualCoords.push(this.hot._createCellCoords(mergedCell.row + r, mergedCell.col + c));\n      }\n    }\n    for (let i = 0; i < mergedCellIndividualCoords.length; i += 1) {\n      const insideSelections = [];\n      for (let s = 0; s < selectionRangesArray.length; s += 1) {\n        insideSelections[s] = selectionRangesArray[s].includes(mergedCellIndividualCoords[i]);\n      }\n      if (!insideSelections.includes(true)) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  /**\n   * Generate an array of the entirely-selected merged cells' class names.\n   *\n   * @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from all the cells in the table.\n   */\n  getSelectedMergedCellClassNameToRemove() {\n    const classNames = [];\n    for (let i = 0; i <= 7; i += 1) {\n      classNames.push(`${this.fullySelectedMergedCellClassName}-${i}`);\n    }\n    classNames.push(`${this.fullySelectedMergedCellClassName}-multiple`);\n    return classNames;\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (SelectionCalculations);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/mergeCells/calculations/selection.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/mergeCells/cellCoords.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/mergeCells/cellCoords.mjs ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n/**\n * The `MergedCellCoords` class represents a single merged cell.\n *\n * @private\n * @class MergedCellCoords\n */\nvar _cellRange = /*#__PURE__*/new WeakMap();\nclass MergedCellCoords {\n  constructor(row, column, rowspan, colspan, cellCoordsFactory, cellRangeFactory) {\n    /**\n     * The index of the topmost merged cell row.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"row\", void 0);\n    /**\n     * The index of the leftmost column.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"col\", void 0);\n    /**\n     * The `rowspan` value of the merged cell.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"rowspan\", void 0);\n    /**\n     * The `colspan` value of the merged cell.\n     *\n     * @type {number}\n     */\n    _defineProperty(this, \"colspan\", void 0);\n    /**\n     * `true` only if the merged cell is bound to be removed.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"removed\", false);\n    /**\n     * The CellCoords function factory.\n     *\n     * @type {Function}\n     */\n    _defineProperty(this, \"cellCoordsFactory\", void 0);\n    /**\n     * The CellRange function factory.\n     *\n     * @type {Function}\n     */\n    _defineProperty(this, \"cellRangeFactory\", void 0);\n    /**\n     * The cached range coordinates of the merged cell.\n     *\n     * @type {CellRange}\n     */\n    _classPrivateFieldInitSpec(this, _cellRange, null);\n    this.row = row;\n    this.col = column;\n    this.rowspan = rowspan;\n    this.colspan = colspan;\n    this.cellCoordsFactory = cellCoordsFactory;\n    this.cellRangeFactory = cellRangeFactory;\n  }\n\n  /**\n   * Get a warning message for when the declared merged cell data contains negative values.\n   *\n   * @param {{ row: number, col: number, rowspan: number, colspan: number }} mergedCell Object containing information\n   * about the merged cells that was about to be added.\n   * @returns {string}\n   */\n  static NEGATIVE_VALUES_WARNING(_ref) {\n    let {\n      row,\n      col,\n      rowspan,\n      colspan\n    } = _ref;\n    return _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__[\"toSingleLine\"]`The merged cell declared with {row: ${row}, col: ${col},\\x20\n      rowspan: ${rowspan}, colspan: ${colspan}} contains negative values, which is\\x20\n      not supported. It will not be added to the collection.`;\n  }\n\n  /**\n   * Get a warning message for when the declared merged cell data contains values exceeding the table limits.\n   *\n   * @param {{ row: number, col: number, rowspan: number, colspan: number }} mergedCell Object containing information\n   * about the merged cells that was about to be added.\n   * @returns {string}\n   */\n  static IS_OUT_OF_BOUNDS_WARNING(_ref2) {\n    let {\n      row,\n      col\n    } = _ref2;\n    return _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__[\"toSingleLine\"]`The merged cell declared at [${row}, ${col}] is positioned\\x20\n      (or positioned partially) outside of the table range. It was not added to the table, please fix your setup.`;\n  }\n\n  /**\n   * Get a warning message for when the declared merged cell data represents a single cell.\n   *\n   * @param {{ row: number, col: number, rowspan: number, colspan: number }} mergedCell Object containing information\n   * about the merged cells that was about to be added.\n   * @returns {string}\n   */\n  static IS_SINGLE_CELL(_ref3) {\n    let {\n      row,\n      col\n    } = _ref3;\n    return _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__[\"toSingleLine\"]`The merged cell declared at [${row}, ${col}] has both \"rowspan\"\\x20\n      and \"colspan\" declared as \"1\", which makes it a single cell. It cannot be added to the collection.`;\n  }\n\n  /**\n   * Get a warning message for when the declared merged cell data contains \"colspan\" or \"rowspan\", that equals 0.\n   *\n   * @param {{ row: number, col: number, rowspan: number, colspan: number }} mergedCell Object containing information\n   * about the merged cells that was about to be added.\n   * @returns {string}\n   */\n  static ZERO_SPAN_WARNING(_ref4) {\n    let {\n      row,\n      col\n    } = _ref4;\n    return _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__[\"toSingleLine\"]`The merged cell declared at [${row}, ${col}] has \"rowspan\"\\x20\n      or \"colspan\" declared as \"0\", which is not supported. It cannot be added to the collection.`;\n  }\n\n  /**\n   * Check whether the values provided for a merged cell contain any negative values.\n   *\n   * @param {{ row: number, col: number, rowspan: number, colspan: number }} mergedCell Object containing information\n   * about the merged cells that was about to be added.\n   * @returns {boolean}\n   */\n  static containsNegativeValues(_ref5) {\n    let {\n      row,\n      col,\n      rowspan,\n      colspan\n    } = _ref5;\n    return row < 0 || col < 0 || rowspan < 0 || colspan < 0;\n  }\n\n  /**\n   * Check whether the provided merged cell information object represents a single cell.\n   *\n   * @private\n   * @param {{ row: number, col: number, rowspan: number, colspan: number }} mergedCell Object containing information\n   * about the merged cells that was about to be added.\n   * @returns {boolean}\n   */\n  static isSingleCell(_ref6) {\n    let {\n      rowspan,\n      colspan\n    } = _ref6;\n    return colspan === 1 && rowspan === 1;\n  }\n\n  /**\n   * Check whether the provided merged cell information object contains a rowspan or colspan of 0.\n   *\n   * @private\n   * @param {{ row: number, col: number, rowspan: number, colspan: number }} mergedCell Object containing information\n   * about the merged cells that was about to be added.\n   * @returns {boolean}\n   */\n  static containsZeroSpan(_ref7) {\n    let {\n      rowspan,\n      colspan\n    } = _ref7;\n    return colspan === 0 || rowspan === 0;\n  }\n\n  /**\n   * Check whether the provided merged cell object is to be declared out of bounds of the table.\n   *\n   * @param {object} mergeCell Object containing the `row`, `col`, `rowspan` and `colspan` properties.\n   * @param {number} rowCount Number of rows in the table.\n   * @param {number} columnCount Number of rows in the table.\n   * @returns {boolean}\n   */\n  static isOutOfBounds(mergeCell, rowCount, columnCount) {\n    return mergeCell.row < 0 || mergeCell.col < 0 || mergeCell.row >= rowCount || mergeCell.row + mergeCell.rowspan - 1 >= rowCount || mergeCell.col >= columnCount || mergeCell.col + mergeCell.colspan - 1 >= columnCount;\n  }\n\n  /**\n   * Sanitize (prevent from going outside the boundaries) the merged cell.\n   *\n   * @param {Core} hotInstance The Handsontable instance.\n   */\n  normalize(hotInstance) {\n    const totalRows = hotInstance.countRows();\n    const totalColumns = hotInstance.countCols();\n    if (this.row < 0) {\n      this.row = 0;\n    } else if (this.row > totalRows - 1) {\n      this.row = totalRows - 1;\n    }\n    if (this.col < 0) {\n      this.col = 0;\n    } else if (this.col > totalColumns - 1) {\n      this.col = totalColumns - 1;\n    }\n    if (this.row + this.rowspan > totalRows - 1) {\n      this.rowspan = totalRows - this.row;\n    }\n    if (this.col + this.colspan > totalColumns - 1) {\n      this.colspan = totalColumns - this.col;\n    }\n    _classPrivateFieldSet(_cellRange, this, null);\n  }\n\n  /**\n   * Returns `true` if the provided coordinates are inside the merged cell.\n   *\n   * @param {number} row The row index.\n   * @param {number} column The column index.\n   * @returns {boolean}\n   */\n  includes(row, column) {\n    return this.row <= row && this.col <= column && this.row + this.rowspan - 1 >= row && this.col + this.colspan - 1 >= column;\n  }\n\n  /**\n   * Returns `true` if the provided `column` property is within the column span of the merged cell.\n   *\n   * @param {number} column The column index.\n   * @returns {boolean}\n   */\n  includesHorizontally(column) {\n    return this.col <= column && this.col + this.colspan - 1 >= column;\n  }\n\n  /**\n   * Returns `true` if the provided `row` property is within the row span of the merged cell.\n   *\n   * @param {number} row Row index.\n   * @returns {boolean}\n   */\n  includesVertically(row) {\n    return this.row <= row && this.row + this.rowspan - 1 >= row;\n  }\n\n  /**\n   * Shift (and possibly resize, if needed) the merged cell.\n   *\n   * @param {Array} shiftVector 2-element array containing the information on the shifting in the `x` and `y` axis.\n   * @param {number} indexOfChange Index of the preceding change.\n   * @returns {boolean} Returns `false` if the whole merged cell was removed.\n   */\n  shift(shiftVector, indexOfChange) {\n    const shiftValue = shiftVector[0] || shiftVector[1];\n    const shiftedIndex = indexOfChange + Math.abs(shiftVector[0] || shiftVector[1]) - 1;\n    const span = shiftVector[0] ? 'colspan' : 'rowspan';\n    const index = shiftVector[0] ? 'col' : 'row';\n    const changeStart = Math.min(indexOfChange, shiftedIndex);\n    const changeEnd = Math.max(indexOfChange, shiftedIndex);\n    const mergeStart = this[index];\n    const mergeEnd = this[index] + this[span] - 1;\n    if (mergeStart >= indexOfChange) {\n      this[index] += shiftValue;\n    }\n\n    // adding rows/columns\n    if (shiftValue > 0) {\n      if (indexOfChange <= mergeEnd && indexOfChange > mergeStart) {\n        this[span] += shiftValue;\n      }\n\n      // removing rows/columns\n    } else if (shiftValue < 0) {\n      // removing the whole merge\n      if (changeStart <= mergeStart && changeEnd >= mergeEnd) {\n        this.removed = true;\n        _classPrivateFieldSet(_cellRange, this, null);\n        return false;\n\n        // removing the merge partially, including the beginning\n      } else if (mergeStart >= changeStart && mergeStart <= changeEnd) {\n        const removedOffset = changeEnd - mergeStart + 1;\n        const preRemovedOffset = Math.abs(shiftValue) - removedOffset;\n        this[index] -= preRemovedOffset + shiftValue;\n        this[span] -= removedOffset;\n\n        // removing the middle part of the merge\n      } else if (mergeStart <= changeStart && mergeEnd >= changeEnd) {\n        this[span] += shiftValue;\n\n        // removing the end part of the merge\n      } else if (mergeStart <= changeStart && mergeEnd >= changeStart && mergeEnd < changeEnd) {\n        const removedPart = mergeEnd - changeStart + 1;\n        this[span] -= removedPart;\n      }\n    }\n    _classPrivateFieldSet(_cellRange, this, null);\n    return true;\n  }\n\n  /**\n   * Check if the second provided merged cell is \"farther\" in the provided direction.\n   *\n   * @param {MergedCellCoords} mergedCell The merged cell to check.\n   * @param {string} direction Drag direction.\n   * @returns {boolean|null} `true` if the second provided merged cell is \"farther\".\n   */\n  isFarther(mergedCell, direction) {\n    if (!mergedCell) {\n      return true;\n    }\n    if (direction === 'down') {\n      return mergedCell.row + mergedCell.rowspan - 1 < this.row + this.rowspan - 1;\n    } else if (direction === 'up') {\n      return mergedCell.row > this.row;\n    } else if (direction === 'right') {\n      return mergedCell.col + mergedCell.colspan - 1 < this.col + this.colspan - 1;\n    } else if (direction === 'left') {\n      return mergedCell.col > this.col;\n    }\n    return null;\n  }\n\n  /**\n   * Get the bottom row index of the merged cell.\n   *\n   * @returns {number}\n   */\n  getLastRow() {\n    return this.row + this.rowspan - 1;\n  }\n\n  /**\n   * Get the rightmost column index of the merged cell.\n   *\n   * @returns {number}\n   */\n  getLastColumn() {\n    return this.col + this.colspan - 1;\n  }\n\n  /**\n   * Get the range coordinates of the merged cell.\n   *\n   * @returns {CellRange}\n   */\n  getRange() {\n    if (!_classPrivateFieldGet(_cellRange, this)) {\n      _classPrivateFieldSet(_cellRange, this, this.cellRangeFactory(this.cellCoordsFactory(this.row, this.col), this.cellCoordsFactory(this.row, this.col), this.cellCoordsFactory(this.getLastRow(), this.getLastColumn())));\n    }\n    return _classPrivateFieldGet(_cellRange, this);\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (MergedCellCoords);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/mergeCells/cellCoords.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/mergeCells/cellsCollection.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/mergeCells/cellsCollection.mjs ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_unscopables_flat_map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.unscopables.flat-map.js */ \"./node_modules/core-js/modules/es.array.unscopables.flat-map.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _cellCoords_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./cellCoords.mjs */ \"./node_modules/handsontable/plugins/mergeCells/cellCoords.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n\n\n\n\n\n\n\n\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n/**\n * Defines a container object for the merged cells.\n *\n * @private\n * @class MergedCellsCollection\n */\nvar _MergedCellsCollection_brand = /*#__PURE__*/new WeakSet();\nclass MergedCellsCollection {\n  constructor(mergeCellsPlugin) {\n    /**\n     * Gets the list of the indexes that do not intersect with other merged cells within the provided range.\n     *\n     * @param {CellRange} range The range to search within.\n     * @param {'row' | 'col'} axis The axis to search within.\n     * @param {number} scanDirection  The direction to scan the range. `1` for forward, `-1` for backward.\n     * @returns {number[]}\n     */\n    _classPrivateMethodInitSpec(this, _MergedCellsCollection_brand);\n    /**\n     * Reference to the Merge Cells plugin.\n     *\n     * @type {MergeCells}\n     */\n    _defineProperty(this, \"plugin\", void 0);\n    /**\n     * Array of merged cells.\n     *\n     * @type {MergedCellCoords[]}\n     */\n    _defineProperty(this, \"mergedCells\", []);\n    /**\n     * Matrix of cells (row, col) that points to the instances of the MergedCellCoords objects.\n     *\n     * @type {Array}\n     */\n    _defineProperty(this, \"mergedCellsMatrix\", new Map());\n    /**\n     * The Handsontable instance.\n     *\n     * @type {Handsontable}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    this.plugin = mergeCellsPlugin;\n    this.hot = mergeCellsPlugin.hot;\n  }\n\n  /**\n   * Get a warning message for when the declared merged cell data overlaps already existing merged cells.\n   *\n   * @param {{ row: number, col: number, rowspan: number, colspan: number }} mergedCell Object containing information\n   * about the merged cells that was about to be added.\n   * @returns {string}\n   */\n  static IS_OVERLAPPING_WARNING(_ref) {\n    let {\n      row,\n      col\n    } = _ref;\n    return _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_14__[\"toSingleLine\"]`The merged cell declared at [${row}, ${col}], overlaps\\x20\n      with the other declared merged cell. The overlapping merged cell was not added to the table, please\\x20\n      fix your setup.`;\n  }\n\n  /**\n   * Get a merged cell from the container, based on the provided arguments. You can provide either the \"starting coordinates\"\n   * of a merged cell, or any coordinates from the body of the merged cell.\n   *\n   * @param {number} row Row index.\n   * @param {number} column Column index.\n   * @returns {MergedCellCoords|boolean} Returns a wanted merged cell on success and `false` on failure.\n   */\n  get(row, column) {\n    var _this$mergedCellsMatr;\n    if (!this.mergedCellsMatrix.has(row)) {\n      return false;\n    }\n    return (_this$mergedCellsMatr = this.mergedCellsMatrix.get(row).get(column)) !== null && _this$mergedCellsMatr !== void 0 ? _this$mergedCellsMatr : false;\n  }\n\n  /**\n   * Get the first-found merged cell containing the provided range.\n   *\n   * @param {CellRange|object} range The range to search merged cells for.\n   * @returns {MergedCellCoords|boolean}\n   */\n  getByRange(range) {\n    let result = false;\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_13__[\"arrayEach\"])(this.mergedCells, mergedCell => {\n      if (mergedCell.row <= range.from.row && mergedCell.row + mergedCell.rowspan - 1 >= range.to.row && mergedCell.col <= range.from.col && mergedCell.col + mergedCell.colspan - 1 >= range.to.col) {\n        result = mergedCell;\n        return result;\n      }\n      return true;\n    });\n    return result;\n  }\n\n  /**\n   * Filters merge cells objects provided by users from overlapping cells.\n   *\n   * @param {{ row: number, col: number, rowspan: number, colspan: number }} mergedCellsInfo The merged cell information object.\n   * Has to contain `row`, `col`, `colspan` and `rowspan` properties.\n   * @returns {Array<{ row: number, col: number, rowspan: number, colspan: number }>}\n   */\n  filterOverlappingMergeCells(mergedCellsInfo) {\n    const occupiedCells = new Set();\n    this.mergedCells.forEach(mergedCell => {\n      const {\n        row,\n        col,\n        colspan,\n        rowspan\n      } = mergedCell;\n      for (let r = row; r < row + rowspan; r++) {\n        for (let c = col; c < col + colspan; c++) {\n          occupiedCells.add(`r${r},c${c}`);\n        }\n      }\n    });\n    const filteredMergeCells = mergedCellsInfo.filter(mergedCell => {\n      const {\n        row,\n        col,\n        colspan,\n        rowspan\n      } = mergedCell;\n      const localOccupiedCells = new Set();\n      let isOverlapping = false;\n      for (let r = row; r < row + rowspan; r++) {\n        for (let c = col; c < col + colspan; c++) {\n          const cellId = `r${r},c${c}`;\n          if (occupiedCells.has(cellId)) {\n            Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_12__[\"warn\"])(MergedCellsCollection.IS_OVERLAPPING_WARNING(mergedCell));\n            isOverlapping = true;\n            break;\n          }\n          localOccupiedCells.add(cellId);\n        }\n        if (isOverlapping) {\n          break;\n        }\n      }\n      if (!isOverlapping) {\n        occupiedCells.add(...localOccupiedCells);\n      }\n      return !isOverlapping;\n    });\n    return filteredMergeCells;\n  }\n\n  /**\n   * Get a merged cell contained in the provided range.\n   *\n   * @param {CellRange} range The range to search merged cells in.\n   * @param {boolean} [countPartials=false] If set to `true`, all the merged cells overlapping the range will be taken into calculation.\n   * @returns {MergedCellCoords[]} Array of found merged cells.\n   */\n  getWithinRange(range) {\n    let countPartials = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    const {\n      row: rowStart,\n      col: columnStart\n    } = range.getTopStartCorner();\n    const {\n      row: rowEnd,\n      col: columnEnd\n    } = range.getBottomEndCorner();\n    const result = [];\n    for (let row = rowStart; row <= rowEnd; row++) {\n      for (let column = columnStart; column <= columnEnd; column++) {\n        const mergedCell = this.get(row, column);\n        if (mergedCell && (countPartials || !countPartials && mergedCell.row === row && mergedCell.col === column)) {\n          result.push(mergedCell);\n        }\n      }\n    }\n    return result;\n  }\n\n  /**\n   * Add a merged cell to the container.\n   *\n   * @param {object} mergedCellInfo The merged cell information object. Has to contain `row`, `col`, `colspan` and `rowspan` properties.\n   * @param {boolean} [auto=false] `true` if called internally by the plugin (usually in batch).\n   * @returns {MergedCellCoords|boolean} Returns the new merged cell on success and `false` on failure.\n   */\n  add(mergedCellInfo) {\n    let auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    const row = mergedCellInfo.row;\n    const column = mergedCellInfo.col;\n    const rowspan = mergedCellInfo.rowspan;\n    const colspan = mergedCellInfo.colspan;\n    const newMergedCell = new _cellCoords_mjs__WEBPACK_IMPORTED_MODULE_10__[\"default\"](row, column, rowspan, colspan, this.hot._createCellCoords, this.hot._createCellRange);\n    const alreadyExists = this.get(row, column);\n    const isOverlapping = auto ? false : this.isOverlapping(newMergedCell);\n    if (!alreadyExists && !isOverlapping) {\n      if (this.hot) {\n        newMergedCell.normalize(this.hot);\n      }\n      this.mergedCells.push(newMergedCell);\n      _assertClassBrand(_MergedCellsCollection_brand, this, _addMergedCellToMatrix).call(this, newMergedCell);\n      return newMergedCell;\n    }\n    Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_12__[\"warn\"])(MergedCellsCollection.IS_OVERLAPPING_WARNING(newMergedCell));\n    return false;\n  }\n\n  /**\n   * Remove a merged cell from the container. You can provide either the \"starting coordinates\"\n   * of a merged cell, or any coordinates from the body of the merged cell.\n   *\n   * @param {number} row Row index.\n   * @param {number} column Column index.\n   * @returns {MergedCellCoords|boolean} Returns the removed merged cell on success and `false` on failure.\n   */\n  remove(row, column) {\n    const mergedCell = this.get(row, column);\n    const mergedCellIndex = mergedCell ? this.mergedCells.indexOf(mergedCell) : -1;\n    if (mergedCell && mergedCellIndex !== -1) {\n      this.mergedCells.splice(mergedCellIndex, 1);\n      _assertClassBrand(_MergedCellsCollection_brand, this, _removeMergedCellFromMatrix).call(this, mergedCell);\n      return mergedCell;\n    }\n    return false;\n  }\n\n  /**\n   * Clear all the merged cells.\n   */\n  clear() {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_13__[\"arrayEach\"])(this.mergedCells, _ref2 => {\n      let {\n        row,\n        col,\n        rowspan,\n        colspan\n      } = _ref2;\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_11__[\"rangeEach\"])(row, row + rowspan, r => {\n        Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_11__[\"rangeEach\"])(col, col + colspan, c => {\n          const TD = this.hot.getCell(r, c);\n          if (TD) {\n            TD.removeAttribute('rowspan');\n            TD.removeAttribute('colspan');\n            TD.style.display = '';\n          }\n        });\n      });\n    });\n    this.mergedCells.length = 0;\n    this.mergedCellsMatrix = new Map();\n  }\n\n  /**\n   * Check if the provided merged cell overlaps with the others already added.\n   *\n   * @param {MergedCellCoords} mergedCell The merged cell to check against all others in the container.\n   * @returns {boolean} `true` if the provided merged cell overlaps with the others, `false` otherwise.\n   */\n  isOverlapping(mergedCell) {\n    const mergedCellRange = mergedCell.getRange();\n    for (let i = 0; i < this.mergedCells.length; i++) {\n      const otherMergedCell = this.mergedCells[i];\n      const otherMergedCellRange = otherMergedCell.getRange();\n      if (otherMergedCellRange.overlaps(mergedCellRange)) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   * Check whether the provided row/col coordinates direct to a first not hidden cell within merge area.\n   *\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @returns {boolean}\n   */\n  isFirstRenderableMergedCell(row, column) {\n    const mergeParent = this.get(row, column);\n\n    // Return if row and column indexes are within merge area and if they are first rendered indexes within the area.\n    return mergeParent && this.hot.rowIndexMapper.getNearestNotHiddenIndex(mergeParent.row, 1) === row && this.hot.columnIndexMapper.getNearestNotHiddenIndex(mergeParent.col, 1) === column;\n  }\n\n  /**\n   * Get the first renderable coords of the merged cell at the provided coordinates.\n   *\n   * @param {number} row Visual row index.\n   * @param {number} column Visual column index.\n   * @returns {CellCoords} A `CellCoords` object with the coordinates to the first renderable cell within the\n   *                        merged cell.\n   */\n  getFirstRenderableCoords(row, column) {\n    const mergeParent = this.get(row, column);\n    if (!mergeParent || this.isFirstRenderableMergedCell(row, column)) {\n      return this.hot._createCellCoords(row, column);\n    }\n    const firstRenderableRow = this.hot.rowIndexMapper.getNearestNotHiddenIndex(mergeParent.row, 1);\n    const firstRenderableColumn = this.hot.columnIndexMapper.getNearestNotHiddenIndex(mergeParent.col, 1);\n    return this.hot._createCellCoords(firstRenderableRow, firstRenderableColumn);\n  }\n\n  /**\n   * Gets the start-most visual column index that do not intersect with other merged cells within the provided range.\n   *\n   * @param {CellRange} range The range to search within.\n   * @param {number} visualColumnIndex The visual column index to start the search from.\n   * @returns {number}\n   */\n  getStartMostColumnIndex(range, visualColumnIndex) {\n    const indexes = _assertClassBrand(_MergedCellsCollection_brand, this, _getNonIntersectingIndexes).call(this, range, 'col', -1);\n    let startMostIndex = visualColumnIndex;\n    for (let i = 0; i < indexes.length; i++) {\n      if (indexes[i] <= visualColumnIndex) {\n        startMostIndex = indexes[i];\n        break;\n      }\n    }\n    return startMostIndex;\n  }\n\n  /**\n   * Gets the end-most visual column index that do not intersect with other merged cells within the provided range.\n   *\n   * @param {CellRange} range The range to search within.\n   * @param {number} visualColumnIndex The visual column index to start the search from.\n   * @returns {number}\n   */\n  getEndMostColumnIndex(range, visualColumnIndex) {\n    const indexes = _assertClassBrand(_MergedCellsCollection_brand, this, _getNonIntersectingIndexes).call(this, range, 'col', 1);\n    let endMostIndex = visualColumnIndex;\n    for (let i = 0; i < indexes.length; i++) {\n      if (indexes[i] >= visualColumnIndex) {\n        endMostIndex = indexes[i];\n        break;\n      }\n    }\n    return endMostIndex;\n  }\n\n  /**\n   * Gets the top-most visual row index that do not intersect with other merged cells within the provided range.\n   *\n   * @param {CellRange} range The range to search within.\n   * @param {number} visualRowIndex The visual row index to start the search from.\n   * @returns {number}\n   */\n  getTopMostRowIndex(range, visualRowIndex) {\n    const indexes = _assertClassBrand(_MergedCellsCollection_brand, this, _getNonIntersectingIndexes).call(this, range, 'row', -1);\n    let topMostIndex = visualRowIndex;\n    for (let i = 0; i < indexes.length; i++) {\n      if (indexes[i] <= visualRowIndex) {\n        topMostIndex = indexes[i];\n        break;\n      }\n    }\n    return topMostIndex;\n  }\n\n  /**\n   * Gets the bottom-most visual row index that do not intersect with other merged cells within the provided range.\n   *\n   * @param {CellRange} range The range to search within.\n   * @param {number} visualRowIndex The visual row index to start the search from.\n   * @returns {number}\n   */\n  getBottomMostRowIndex(range, visualRowIndex) {\n    const indexes = _assertClassBrand(_MergedCellsCollection_brand, this, _getNonIntersectingIndexes).call(this, range, 'row', 1);\n    let bottomMostIndex = visualRowIndex;\n    for (let i = 0; i < indexes.length; i++) {\n      if (indexes[i] >= visualRowIndex) {\n        bottomMostIndex = indexes[i];\n        break;\n      }\n    }\n    return bottomMostIndex;\n  }\n  /**\n   * Shift the merged cell in the direction and by an offset defined in the arguments.\n   *\n   * @param {string} direction `right`, `left`, `up` or `down`.\n   * @param {number} index Index where the change, which caused the shifting took place.\n   * @param {number} count Number of rows/columns added/removed in the preceding action.\n   */\n  shiftCollections(direction, index, count) {\n    const shiftVector = [0, 0];\n    switch (direction) {\n      case 'right':\n        shiftVector[0] += count;\n        break;\n      case 'left':\n        shiftVector[0] -= count;\n        break;\n      case 'down':\n        shiftVector[1] += count;\n        break;\n      case 'up':\n        shiftVector[1] -= count;\n        break;\n      default:\n    }\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_13__[\"arrayEach\"])(this.mergedCells, currentMerge => {\n      _assertClassBrand(_MergedCellsCollection_brand, this, _removeMergedCellFromMatrix).call(this, currentMerge);\n      currentMerge.shift(shiftVector, index);\n      _assertClassBrand(_MergedCellsCollection_brand, this, _addMergedCellToMatrix).call(this, currentMerge);\n    });\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_11__[\"rangeEachReverse\"])(this.mergedCells.length - 1, 0, i => {\n      const currentMerge = this.mergedCells[i];\n      if (currentMerge && currentMerge.removed) {\n        this.mergedCells.splice(this.mergedCells.indexOf(currentMerge), 1);\n        _assertClassBrand(_MergedCellsCollection_brand, this, _removeMergedCellFromMatrix).call(this, currentMerge);\n      }\n    });\n  }\n\n  /**\n   * Adds a merged cell to the matrix.\n   *\n   * @param {MergedCellCoords} mergedCell The merged cell to add.\n   */\n}\nfunction _getNonIntersectingIndexes(range, axis) {\n  let scanDirection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n  const indexes = new Map();\n  const from = scanDirection === 1 ? range.getTopStartCorner() : range.getBottomEndCorner();\n  const to = scanDirection === 1 ? range.getBottomEndCorner() : range.getTopStartCorner();\n  for (let row = from.row; scanDirection === 1 ? row <= to.row : row >= to.row; row += scanDirection) {\n    for (let column = from.col; scanDirection === 1 ? column <= to.col : column >= to.col; column += scanDirection) {\n      const index = axis === 'row' ? row : column;\n      const mergedCell = this.get(row, column);\n      let lastIndex = index;\n      if (mergedCell) {\n        lastIndex = scanDirection === 1 ? mergedCell[axis] + mergedCell[`${axis}span`] - 1 : mergedCell[axis];\n      }\n      if (!indexes.has(index)) {\n        indexes.set(index, new Set());\n      }\n      indexes.get(index).add(lastIndex);\n    }\n  }\n  return Array.from(new Set(Array.from(indexes.entries()).filter(_ref3 => {\n    let [, set] = _ref3;\n    return set.size === 1;\n  }).flatMap(_ref4 => {\n    let [, set] = _ref4;\n    return Array.from(set);\n  })));\n}\nfunction _addMergedCellToMatrix(mergedCell) {\n  for (let row = mergedCell.row; row < mergedCell.row + mergedCell.rowspan; row++) {\n    for (let col = mergedCell.col; col < mergedCell.col + mergedCell.colspan; col++) {\n      if (!this.mergedCellsMatrix.has(row)) {\n        this.mergedCellsMatrix.set(row, new Map());\n      }\n      this.mergedCellsMatrix.get(row).set(col, mergedCell);\n    }\n  }\n}\n/**\n * Removes a merged cell from the matrix.\n *\n * @param {MergedCellCoords} mergedCell The merged cell to remove.\n */\nfunction _removeMergedCellFromMatrix(mergedCell) {\n  for (let row = mergedCell.row; row < mergedCell.row + mergedCell.rowspan; row++) {\n    for (let col = mergedCell.col; col < mergedCell.col + mergedCell.colspan; col++) {\n      this.mergedCellsMatrix.get(row).delete(col);\n    }\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (MergedCellsCollection);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/mergeCells/cellsCollection.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/mergeCells/contextMenuItem/toggleMerge.mjs":
/*!**************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/mergeCells/contextMenuItem/toggleMerge.mjs ***!
  \**************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return toggleMergeItem; });\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _cellCoords_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../cellCoords.mjs */ \"./node_modules/handsontable/plugins/mergeCells/cellCoords.mjs\");\n\n\n/**\n * @param {*} plugin The plugin instance.\n * @returns {object}\n */\nfunction toggleMergeItem(plugin) {\n  return {\n    key: 'mergeCells',\n    name() {\n      const sel = this.getSelectedLast();\n      if (sel) {\n        const info = plugin.mergedCellsCollection.get(sel[0], sel[1]);\n        if (info.row === sel[0] && info.col === sel[1] && info.row + info.rowspan - 1 === sel[2] && info.col + info.colspan - 1 === sel[3]) {\n          return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_UNMERGE_CELLS\"]);\n        }\n      }\n      return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"CONTEXTMENU_ITEMS_MERGE_CELLS\"]);\n    },\n    callback() {\n      const currentRange = this.getSelectedRangeLast();\n      if (!currentRange) {\n        return;\n      }\n      currentRange.setDirection(this.isRtl() ? 'NE-SW' : 'NW-SE');\n      const {\n        from,\n        to\n      } = currentRange;\n      plugin.toggleMerge(currentRange);\n      this.selectCell(from.row, from.col, to.row, to.col, false);\n    },\n    disabled() {\n      const sel = this.getSelectedLast();\n      if (!sel) {\n        return true;\n      }\n      const isSingleCell = _cellCoords_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isSingleCell({\n        row: sel[0],\n        col: sel[1],\n        rowspan: sel[2] - sel[0] + 1,\n        colspan: sel[3] - sel[1] + 1\n      });\n      return isSingleCell || this.selection.isSelectedByCorner();\n    },\n    hidden: false\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/mergeCells/contextMenuItem/toggleMerge.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/mergeCells/focusOrder.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/mergeCells/focusOrder.mjs ***!
  \*********************************************************************/
/*! exports provided: FocusOrder */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FocusOrder\", function() { return FocusOrder; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _utils_dataStructures_linkedList_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/dataStructures/linkedList.mjs */ \"./node_modules/handsontable/utils/dataStructures/linkedList.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n/**\n * Class responsible for providing the correct focus order (vertical and horizontal) within a selection that\n * contains merged cells.\n *\n * @private\n */\nvar _cellsHorizontalOrder = /*#__PURE__*/new WeakMap();\nvar _cellsVerticalOrder = /*#__PURE__*/new WeakMap();\nvar _currentHorizontalLinkedNode = /*#__PURE__*/new WeakMap();\nvar _currentVerticalLinkedNode = /*#__PURE__*/new WeakMap();\nvar _mergedCellsGetter = /*#__PURE__*/new WeakMap();\nvar _rowIndexMapper = /*#__PURE__*/new WeakMap();\nvar _columnIndexMapper = /*#__PURE__*/new WeakMap();\nvar _FocusOrder_brand = /*#__PURE__*/new WeakSet();\nclass FocusOrder {\n  constructor(_ref) {\n    let {\n      mergedCellsGetter,\n      rowIndexMapper,\n      columnIndexMapper\n    } = _ref;\n    /**\n     * Pushes a new node to the provided list order.\n     *\n     * @param {CellRange} selectedRange The selected range to build the focus order for.\n     * @param {LinkedList} listOrder The list order to push the node to.\n     * @param {WeakSet} mergeCellsVisitor The set of visited cells.\n     * @param {number} row The visual row index.\n     * @param {number} column The visual column index.\n     * @returns {NodeStructure | null}\n     */\n    _classPrivateMethodInitSpec(this, _FocusOrder_brand);\n    /**\n     * The linked list of the all cells within the current selection in horizontal order. The list is\n     * recreated every time the selection is changed.\n     *\n     * @type {LinkedList}\n     */\n    _classPrivateFieldInitSpec(this, _cellsHorizontalOrder, new _utils_dataStructures_linkedList_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]());\n    /**\n     * The linked list of the all cells within the current selection in horizontal order. The list is\n     * recreated every time the selection is changed.\n     *\n     * @type {LinkedList}\n     */\n    _classPrivateFieldInitSpec(this, _cellsVerticalOrder, new _utils_dataStructures_linkedList_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]());\n    /**\n     * The currently highlighted cell within the horizontal linked list.\n     *\n     * @type {NodeStructure | null}\n     */\n    _classPrivateFieldInitSpec(this, _currentHorizontalLinkedNode, null);\n    /**\n     * The currently highlighted cell within the vertical linked list.\n     *\n     * @type {NodeStructure | null}\n     */\n    _classPrivateFieldInitSpec(this, _currentVerticalLinkedNode, null);\n    /**\n     * The merged cells getter function.\n     *\n     * @type {function(): {row: number, col: number, rowspan: number, colspan: number} | null}}\n     */\n    _classPrivateFieldInitSpec(this, _mergedCellsGetter, null);\n    /**\n     * The row index mapper.\n     *\n     * @type {IndexMapper}\n     */\n    _classPrivateFieldInitSpec(this, _rowIndexMapper, null);\n    /**\n     * The column index mapper.\n     *\n     * @type {IndexMapper}\n     */\n    _classPrivateFieldInitSpec(this, _columnIndexMapper, null);\n    _classPrivateFieldSet(_mergedCellsGetter, this, mergedCellsGetter);\n    _classPrivateFieldSet(_rowIndexMapper, this, rowIndexMapper);\n    _classPrivateFieldSet(_columnIndexMapper, this, columnIndexMapper);\n  }\n\n  /**\n   * Gets the currently selected node data from the vertical focus order list.\n   *\n   * @returns {NodeStructure}\n   */\n  getCurrentVerticalNode() {\n    return _classPrivateFieldGet(_currentVerticalLinkedNode, this).data;\n  }\n\n  /**\n   * Gets the first node data from the vertical focus order list.\n   *\n   * @returns {NodeStructure}\n   */\n  getFirstVerticalNode() {\n    return _classPrivateFieldGet(_cellsVerticalOrder, this).first.data;\n  }\n\n  /**\n   * Gets the next selected node data from the vertical focus order list.\n   *\n   * @returns {NodeStructure}\n   */\n  getNextVerticalNode() {\n    return _classPrivateFieldGet(_currentVerticalLinkedNode, this).next.data;\n  }\n\n  /**\n   * Gets the previous selected node data from the vertical focus order list.\n   *\n   * @returns {NodeStructure}\n   */\n  getPrevVerticalNode() {\n    return _classPrivateFieldGet(_currentVerticalLinkedNode, this).prev.data;\n  }\n\n  /**\n   * Gets the currently selected node data from the horizontal focus order list.\n   *\n   * @returns {NodeStructure}\n   */\n  getCurrentHorizontalNode() {\n    return _classPrivateFieldGet(_currentHorizontalLinkedNode, this).data;\n  }\n\n  /**\n   * Gets the first node data from the horizontal focus order list.\n   *\n   * @returns {NodeStructure}\n   */\n  getFirstHorizontalNode() {\n    return _classPrivateFieldGet(_cellsHorizontalOrder, this).first.data;\n  }\n\n  /**\n   * Gets the next selected node data from the horizontal focus order list.\n   *\n   * @returns {NodeStructure}\n   */\n  getNextHorizontalNode() {\n    return _classPrivateFieldGet(_currentHorizontalLinkedNode, this).next.data;\n  }\n\n  /**\n   * Gets the previous selected node data from the horizontal focus order list.\n   *\n   * @returns {NodeStructure}\n   */\n  getPrevHorizontalNode() {\n    return _classPrivateFieldGet(_currentHorizontalLinkedNode, this).prev.data;\n  }\n\n  /**\n   * Sets the previous node from the vertical focus order list as active.\n   */\n  setPrevNodeAsActive() {\n    _classPrivateFieldSet(_currentVerticalLinkedNode, this, _classPrivateFieldGet(_currentVerticalLinkedNode, this).prev);\n    _classPrivateFieldSet(_currentHorizontalLinkedNode, this, _classPrivateFieldGet(_currentHorizontalLinkedNode, this).prev);\n  }\n\n  /**\n   * Sets the previous node from the horizontal focus order list as active.\n   */\n  setNextNodeAsActive() {\n    _classPrivateFieldSet(_currentVerticalLinkedNode, this, _classPrivateFieldGet(_currentVerticalLinkedNode, this).next);\n    _classPrivateFieldSet(_currentHorizontalLinkedNode, this, _classPrivateFieldGet(_currentHorizontalLinkedNode, this).next);\n  }\n\n  /**\n   * Rebuilds the focus order list based on the provided selection.\n   *\n   * @param {CellRange} selectedRange The selected range to build the focus order for.\n   */\n  buildFocusOrder(selectedRange) {\n    const topStart = selectedRange.getTopStartCorner();\n    const bottomEnd = selectedRange.getBottomEndCorner();\n    const visitedHorizontalCells = new WeakSet();\n    _classPrivateFieldSet(_cellsHorizontalOrder, this, new _utils_dataStructures_linkedList_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]());\n    for (let r = topStart.row; r <= bottomEnd.row; r++) {\n      if (_classPrivateFieldGet(_rowIndexMapper, this).isHidden(r)) {\n        // eslint-disable-next-line no-continue\n        continue;\n      }\n      for (let c = topStart.col; c <= bottomEnd.col; c++) {\n        if (_classPrivateFieldGet(_columnIndexMapper, this).isHidden(c)) {\n          // eslint-disable-next-line no-continue\n          continue;\n        }\n        const node = _assertClassBrand(_FocusOrder_brand, this, _pushOrderNode).call(this, selectedRange, _classPrivateFieldGet(_cellsHorizontalOrder, this), visitedHorizontalCells, r, c);\n        if (node) {\n          _classPrivateFieldSet(_currentHorizontalLinkedNode, this, node);\n        }\n      }\n    }\n\n    // create circular linked list\n    if (_classPrivateFieldGet(_cellsHorizontalOrder, this).first) {\n      _classPrivateFieldGet(_cellsHorizontalOrder, this).first.prev = _classPrivateFieldGet(_cellsHorizontalOrder, this).last;\n      _classPrivateFieldGet(_cellsHorizontalOrder, this).last.next = _classPrivateFieldGet(_cellsHorizontalOrder, this).first;\n    }\n    const visitedVerticalCells = new WeakSet();\n    _classPrivateFieldSet(_cellsVerticalOrder, this, new _utils_dataStructures_linkedList_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]());\n    for (let c = topStart.col; c <= bottomEnd.col; c++) {\n      if (_classPrivateFieldGet(_columnIndexMapper, this).isHidden(c)) {\n        // eslint-disable-next-line no-continue\n        continue;\n      }\n      for (let r = topStart.row; r <= bottomEnd.row; r++) {\n        if (_classPrivateFieldGet(_rowIndexMapper, this).isHidden(r)) {\n          // eslint-disable-next-line no-continue\n          continue;\n        }\n        const node = _assertClassBrand(_FocusOrder_brand, this, _pushOrderNode).call(this, selectedRange, _classPrivateFieldGet(_cellsVerticalOrder, this), visitedVerticalCells, r, c);\n        if (node) {\n          _classPrivateFieldSet(_currentVerticalLinkedNode, this, node);\n        }\n      }\n    }\n\n    // create circular linked list\n    if (_classPrivateFieldGet(_cellsVerticalOrder, this).first) {\n      _classPrivateFieldGet(_cellsVerticalOrder, this).first.prev = _classPrivateFieldGet(_cellsVerticalOrder, this).last;\n      _classPrivateFieldGet(_cellsVerticalOrder, this).last.next = _classPrivateFieldGet(_cellsVerticalOrder, this).first;\n    }\n  }\n  /**\n   * Sets the active node based on the provided row and column.\n   *\n   * @param {number} row The visual row index.\n   * @param {number} column The visual column index.\n   * @returns {FocusOrder}\n   */\n  setActiveNode(row, column) {\n    _classPrivateFieldGet(_cellsHorizontalOrder, this).inorder(node => {\n      const {\n        rowStart,\n        rowEnd,\n        colStart,\n        colEnd\n      } = node.data;\n      if (row >= rowStart && row <= rowEnd && column >= colStart && column <= colEnd) {\n        _classPrivateFieldSet(_currentHorizontalLinkedNode, this, node);\n        return false;\n      }\n    });\n    _classPrivateFieldGet(_cellsVerticalOrder, this).inorder(node => {\n      const {\n        rowStart,\n        rowEnd,\n        colStart,\n        colEnd\n      } = node.data;\n      if (row >= rowStart && row <= rowEnd && column >= colStart && column <= colEnd) {\n        _classPrivateFieldSet(_currentVerticalLinkedNode, this, node);\n        return false;\n      }\n    });\n    return this;\n  }\n}\nfunction _pushOrderNode(selectedRange, listOrder, mergeCellsVisitor, row, column) {\n  const topStart = selectedRange.getTopStartCorner();\n  const bottomEnd = selectedRange.getBottomEndCorner();\n  const highlight = selectedRange.highlight.clone().normalize();\n  const mergeParent = _classPrivateFieldGet(_mergedCellsGetter, this).call(this, row, column);\n  if (mergeParent && mergeCellsVisitor.has(mergeParent)) {\n    return null;\n  }\n  const node = {\n    colStart: column,\n    colEnd: column,\n    rowStart: row,\n    rowEnd: row\n  };\n  if (mergeParent) {\n    mergeCellsVisitor.add(mergeParent);\n    if (mergeParent.row < topStart.row || mergeParent.row + mergeParent.rowspan - 1 > bottomEnd.row || mergeParent.col < topStart.col || mergeParent.col + mergeParent.colspan - 1 > bottomEnd.col) {\n      return null;\n    }\n    node.colStart = mergeParent.col;\n    node.colEnd = mergeParent.col + mergeParent.colspan - 1;\n    node.rowStart = mergeParent.row;\n    node.rowEnd = mergeParent.row + mergeParent.rowspan - 1;\n  }\n  const linkedNode = listOrder.push(node);\n  if (row === highlight.row && column === highlight.col || mergeParent && highlight.row >= mergeParent.row && highlight.row <= mergeParent.row + mergeParent.rowspan - 1 && highlight.col >= mergeParent.col && highlight.col <= mergeParent.col + mergeParent.colspan - 1) {\n    return linkedNode;\n  }\n  return null;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/mergeCells/focusOrder.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/mergeCells/index.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/mergeCells/index.mjs ***!
  \****************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, MergeCells */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mergeCells_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeCells.mjs */ \"./node_modules/handsontable/plugins/mergeCells/mergeCells.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _mergeCells_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _mergeCells_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MergeCells\", function() { return _mergeCells_mjs__WEBPACK_IMPORTED_MODULE_0__[\"MergeCells\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/mergeCells/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/mergeCells/mergeCells.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/mergeCells/mergeCells.mjs ***!
  \*********************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, MergeCells */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeCells\", function() { return MergeCells; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _cellsCollection_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./cellsCollection.mjs */ \"./node_modules/handsontable/plugins/mergeCells/cellsCollection.mjs\");\n/* harmony import */ var _cellCoords_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./cellCoords.mjs */ \"./node_modules/handsontable/plugins/mergeCells/cellCoords.mjs\");\n/* harmony import */ var _calculations_autofill_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./calculations/autofill.mjs */ \"./node_modules/handsontable/plugins/mergeCells/calculations/autofill.mjs\");\n/* harmony import */ var _calculations_selection_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./calculations/selection.mjs */ \"./node_modules/handsontable/plugins/mergeCells/calculations/selection.mjs\");\n/* harmony import */ var _contextMenuItem_toggleMerge_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./contextMenuItem/toggleMerge.mjs */ \"./node_modules/handsontable/plugins/mergeCells/contextMenuItem/toggleMerge.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../helpers/browser.mjs */ \"./node_modules/handsontable/helpers/browser.mjs\");\n/* harmony import */ var _focusOrder_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./focusOrder.mjs */ \"./node_modules/handsontable/plugins/mergeCells/focusOrder.mjs\");\n/* harmony import */ var _renderer_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./renderer.mjs */ \"./node_modules/handsontable/plugins/mergeCells/renderer.mjs\");\n\n\n\n\n\n\n\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_10__[\"default\"].getSingleton().register('beforeMergeCells');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_10__[\"default\"].getSingleton().register('afterMergeCells');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_10__[\"default\"].getSingleton().register('beforeUnmergeCells');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_10__[\"default\"].getSingleton().register('afterUnmergeCells');\nconst PLUGIN_KEY = 'mergeCells';\nconst PLUGIN_PRIORITY = 150;\nconst SHORTCUTS_GROUP = PLUGIN_KEY;\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @plugin MergeCells\n * @class MergeCells\n *\n * @description\n * Plugin, which allows merging cells in the table (using the initial configuration, API or context menu).\n *\n * @example\n *\n * ::: only-for javascript\n * ```js\n * const hot = new Handsontable(document.getElementById('example'), {\n *  data: getData(),\n *  mergeCells: [\n *    {row: 0, col: 3, rowspan: 3, colspan: 3},\n *    {row: 2, col: 6, rowspan: 2, colspan: 2},\n *    {row: 4, col: 8, rowspan: 3, colspan: 3}\n *  ],\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * <HotTable\n *   data={getData()}\n *   // enable plugin\n *   mergeCells={[\n *    {row: 0, col: 3, rowspan: 3, colspan: 3},\n *    {row: 2, col: 6, rowspan: 2, colspan: 2},\n *    {row: 4, col: 8, rowspan: 3, colspan: 3}\n *   ]}\n * />\n * ```\n * :::\n */\nvar _lastSelectedFocus = /*#__PURE__*/new WeakMap();\nvar _lastFocusDelta = /*#__PURE__*/new WeakMap();\nvar _focusOrder = /*#__PURE__*/new WeakMap();\nvar _cellRenderer = /*#__PURE__*/new WeakMap();\nvar _MergeCells_brand = /*#__PURE__*/new WeakSet();\nclass MergeCells extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * `afterInit` hook callback.\n     */\n    _classPrivateMethodInitSpec(this, _MergeCells_brand);\n    /**\n     * A container for all the merged cells.\n     *\n     * @private\n     * @type {MergedCellsCollection}\n     */\n    _defineProperty(this, \"mergedCellsCollection\", null);\n    /**\n     * Instance of the class responsible for all the autofill-related calculations.\n     *\n     * @private\n     * @type {AutofillCalculations}\n     */\n    _defineProperty(this, \"autofillCalculations\", null);\n    /**\n     * Instance of the class responsible for the selection-related calculations.\n     *\n     * @private\n     * @type {SelectionCalculations}\n     */\n    _defineProperty(this, \"selectionCalculations\", null);\n    /**\n     * The holder for the last selected focus coordinates. This allows keeping the correct coordinates in cases after the\n     * focus is moved out of the merged cell.\n     *\n     * @type {CellCoords}\n     */\n    _classPrivateFieldInitSpec(this, _lastSelectedFocus, null);\n    /**\n     * The last used transformation delta.\n     *\n     * @type {{ row: number, col: number }}\n     */\n    _classPrivateFieldInitSpec(this, _lastFocusDelta, {\n      row: 0,\n      col: 0\n    });\n    /**\n     * The module responsible for providing the correct focus order (vertical and horizontal) within a selection that\n     * contains merged cells.\n     *\n     * @type {FocusOrder}\n     */\n    _classPrivateFieldInitSpec(this, _focusOrder, new _focusOrder_mjs__WEBPACK_IMPORTED_MODULE_22__[\"FocusOrder\"]({\n      mergedCellsGetter: (row, column) => this.mergedCellsCollection.get(row, column),\n      rowIndexMapper: this.hot.rowIndexMapper,\n      columnIndexMapper: this.hot.columnIndexMapper\n    }));\n    /**\n     * The cell renderer responsible for rendering the merged cells.\n     *\n     * @type {{before: Function, after: Function}}\n     */\n    _classPrivateFieldInitSpec(this, _cellRenderer, Object(_renderer_mjs__WEBPACK_IMPORTED_MODULE_23__[\"createMergeCellRenderer\"])(this));\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link MergeCells#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    this.mergedCellsCollection = new _cellsCollection_mjs__WEBPACK_IMPORTED_MODULE_11__[\"default\"](this);\n    this.autofillCalculations = new _calculations_autofill_mjs__WEBPACK_IMPORTED_MODULE_13__[\"default\"](this);\n    this.selectionCalculations = new _calculations_selection_mjs__WEBPACK_IMPORTED_MODULE_14__[\"default\"](this);\n    this.addHook('afterInit', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onAfterInit).call(_this, ...args);\n    });\n    this.addHook('modifyTransformFocus', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onModifyTransformFocus).call(_this, ...args);\n    });\n    this.addHook('modifyTransformStart', function () {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onModifyTransformStart).call(_this, ...args);\n    });\n    this.addHook('modifyTransformEnd', function () {\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onModifyTransformEnd).call(_this, ...args);\n    });\n    this.addHook('beforeSelectionHighlightSet', function () {\n      for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n        args[_key5] = arguments[_key5];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onBeforeSelectionHighlightSet).call(_this, ...args);\n    });\n    this.addHook('beforeSetRangeStart', function () {\n      for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n        args[_key6] = arguments[_key6];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onBeforeSetRangeStart).call(_this, ...args);\n    });\n    this.addHook('beforeSetRangeStartOnly', function () {\n      for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n        args[_key7] = arguments[_key7];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onBeforeSetRangeStart).call(_this, ...args);\n    });\n    this.addHook('beforeSelectionFocusSet', function () {\n      for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n        args[_key8] = arguments[_key8];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onBeforeSelectionFocusSet).call(_this, ...args);\n    });\n    this.addHook('afterSelectionFocusSet', function () {\n      for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n        args[_key9] = arguments[_key9];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onAfterSelectionFocusSet).call(_this, ...args);\n    });\n    this.addHook('afterSelectionEnd', function () {\n      for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n        args[_key10] = arguments[_key10];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onAfterSelectionEnd).call(_this, ...args);\n    });\n    this.addHook('modifyGetCellCoords', function () {\n      for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n        args[_key11] = arguments[_key11];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onModifyGetCellCoords).call(_this, ...args);\n    });\n    this.addHook('afterIsMultipleSelection', function () {\n      for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n        args[_key12] = arguments[_key12];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onAfterIsMultipleSelection).call(_this, ...args);\n    });\n    this.addHook('afterRenderer', function () {\n      return _classPrivateFieldGet(_cellRenderer, _this).after(...arguments);\n    });\n    this.addHook('afterContextMenuDefaultOptions', function () {\n      for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n        args[_key13] = arguments[_key13];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _addMergeActionsToContextMenu).call(_this, ...args);\n    });\n    this.addHook('afterGetCellMeta', function () {\n      for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n        args[_key14] = arguments[_key14];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onAfterGetCellMeta).call(_this, ...args);\n    });\n    this.addHook('afterViewportRowCalculatorOverride', function () {\n      for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {\n        args[_key15] = arguments[_key15];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onAfterViewportRowCalculatorOverride).call(_this, ...args);\n    });\n    this.addHook('afterViewportColumnCalculatorOverride', function () {\n      for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {\n        args[_key16] = arguments[_key16];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onAfterViewportColumnCalculatorOverride).call(_this, ...args);\n    });\n    this.addHook('modifyAutofillRange', function () {\n      for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {\n        args[_key17] = arguments[_key17];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onModifyAutofillRange).call(_this, ...args);\n    });\n    this.addHook('afterCreateCol', function () {\n      for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {\n        args[_key18] = arguments[_key18];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onAfterCreateCol).call(_this, ...args);\n    });\n    this.addHook('afterRemoveCol', function () {\n      for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {\n        args[_key19] = arguments[_key19];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onAfterRemoveCol).call(_this, ...args);\n    });\n    this.addHook('afterCreateRow', function () {\n      for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {\n        args[_key20] = arguments[_key20];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onAfterCreateRow).call(_this, ...args);\n    });\n    this.addHook('afterRemoveRow', function () {\n      for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {\n        args[_key21] = arguments[_key21];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onAfterRemoveRow).call(_this, ...args);\n    });\n    this.addHook('afterChange', function () {\n      for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {\n        args[_key22] = arguments[_key22];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onAfterChange).call(_this, ...args);\n    });\n    this.addHook('beforeDrawBorders', function () {\n      for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {\n        args[_key23] = arguments[_key23];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onBeforeDrawAreaBorders).call(_this, ...args);\n    });\n    this.addHook('afterDrawSelection', function () {\n      for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {\n        args[_key24] = arguments[_key24];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onAfterDrawSelection).call(_this, ...args);\n    });\n    this.addHook('beforeRemoveCellClassNames', function () {\n      for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {\n        args[_key25] = arguments[_key25];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onBeforeRemoveCellClassNames).call(_this, ...args);\n    });\n    this.addHook('beforeBeginEditing', function () {\n      for (var _len26 = arguments.length, args = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {\n        args[_key26] = arguments[_key26];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onBeforeBeginEditing).call(_this, ...args);\n    });\n    this.addHook('modifyRowHeightByOverlayName', function () {\n      for (var _len27 = arguments.length, args = new Array(_len27), _key27 = 0; _key27 < _len27; _key27++) {\n        args[_key27] = arguments[_key27];\n      }\n      return _assertClassBrand(_MergeCells_brand, _this, _onModifyRowHeightByOverlayName).call(_this, ...args);\n    });\n    this.addHook('beforeUndoStackChange', (action, source) => {\n      if (source === 'MergeCells') {\n        return false;\n      }\n    });\n    this.registerShortcuts();\n    super.enablePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.clearCollections();\n    this.unregisterShortcuts();\n    this.hot.render();\n    super.disablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the\n   * following configuration options:\n   *  - [`mergeCells`](@/api/options.md#mergecells)\n   */\n  updatePlugin() {\n    const settings = this.hot.getSettings()[PLUGIN_KEY];\n    this.disablePlugin();\n    this.enablePlugin();\n    this.generateFromSettings(settings);\n    super.updatePlugin();\n  }\n\n  /**\n   * If the browser is recognized as Chrome, force an additional repaint to prevent showing the effects of a Chrome bug.\n   *\n   * Issue described in https://github.com/handsontable/dev-handsontable/issues/521.\n   *\n   * @private\n   */\n  ifChromeForceRepaint() {\n    if (!Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_21__[\"isChrome\"])()) {\n      return;\n    }\n    const rowsToRefresh = [];\n    let rowIndexesToRefresh = [];\n    this.mergedCellsCollection.mergedCells.forEach(mergedCell => {\n      const {\n        row,\n        rowspan\n      } = mergedCell;\n      for (let r = row + 1; r < row + rowspan; r++) {\n        rowIndexesToRefresh.push(r);\n      }\n    });\n\n    // Remove duplicates\n    rowIndexesToRefresh = [...new Set(rowIndexesToRefresh)];\n    rowIndexesToRefresh.forEach(rowIndex => {\n      const renderableRowIndex = this.hot.rowIndexMapper.getRenderableFromVisualIndex(rowIndex);\n      this.hot.view._wt.wtOverlays.getOverlays(true).map(overlay => (overlay === null || overlay === void 0 ? void 0 : overlay.name) === 'master' ? overlay : overlay.clone.wtTable).forEach(wtTableRef => {\n        const rowToRefresh = wtTableRef.getRow(renderableRowIndex);\n        if (rowToRefresh) {\n          // Modify the TR's `background` property to later modify it asynchronously.\n          // The background color is getting modified only with the alpha, so the change should not be visible (and is\n          // covered by the TDs' background color).\n          rowToRefresh.style.background = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_20__[\"getStyle\"])(rowToRefresh, 'backgroundColor').replace(')', ', 0.99)');\n          rowsToRefresh.push(rowToRefresh);\n        }\n      });\n    });\n\n    // Asynchronously revert the TRs' `background` property to force a fresh repaint.\n    this.hot._registerTimeout(() => {\n      rowsToRefresh.forEach(rowElement => {\n        rowElement.style.background = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_20__[\"getStyle\"])(rowElement, 'backgroundColor').replace(', 0.99)', ')');\n      });\n    }, 1);\n  }\n\n  /**\n   * Validates a single setting object, represented by a single merged cell information object.\n   *\n   * @private\n   * @param {object} setting An object with `row`, `col`, `rowspan` and `colspan` properties.\n   * @returns {boolean}\n   */\n  validateSetting(setting) {\n    if (!setting) {\n      return false;\n    }\n    if (_cellCoords_mjs__WEBPACK_IMPORTED_MODULE_12__[\"default\"].containsNegativeValues(setting)) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_18__[\"warn\"])(_cellCoords_mjs__WEBPACK_IMPORTED_MODULE_12__[\"default\"].NEGATIVE_VALUES_WARNING(setting));\n      return false;\n    }\n    if (_cellCoords_mjs__WEBPACK_IMPORTED_MODULE_12__[\"default\"].isOutOfBounds(setting, this.hot.countRows(), this.hot.countCols())) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_18__[\"warn\"])(_cellCoords_mjs__WEBPACK_IMPORTED_MODULE_12__[\"default\"].IS_OUT_OF_BOUNDS_WARNING(setting));\n      return false;\n    }\n    if (_cellCoords_mjs__WEBPACK_IMPORTED_MODULE_12__[\"default\"].isSingleCell(setting)) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_18__[\"warn\"])(_cellCoords_mjs__WEBPACK_IMPORTED_MODULE_12__[\"default\"].IS_SINGLE_CELL(setting));\n      return false;\n    }\n    if (_cellCoords_mjs__WEBPACK_IMPORTED_MODULE_12__[\"default\"].containsZeroSpan(setting)) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_18__[\"warn\"])(_cellCoords_mjs__WEBPACK_IMPORTED_MODULE_12__[\"default\"].ZERO_SPAN_WARNING(setting));\n      return false;\n    }\n    return true;\n  }\n\n  /**\n   * Generates the merged cells from the settings provided to the plugin.\n   *\n   * @private\n   * @param {Array|boolean} settings The settings provided to the plugin.\n   */\n  generateFromSettings(settings) {\n    if (!Array.isArray(settings)) {\n      return;\n    }\n    const validSettings = settings.filter(mergeCellInfo => this.validateSetting(mergeCellInfo));\n    const nonOverlappingSettings = this.mergedCellsCollection.filterOverlappingMergeCells(validSettings);\n    const populatedNulls = [];\n    nonOverlappingSettings.forEach(mergeCellInfo => {\n      const {\n        row,\n        col,\n        rowspan,\n        colspan\n      } = mergeCellInfo;\n      const from = this.hot._createCellCoords(row, col);\n      const to = this.hot._createCellCoords(row + rowspan - 1, col + colspan - 1);\n      const mergeRange = this.hot._createCellRange(from, from, to);\n\n      // Merging without data population.\n      this.mergeRange(mergeRange, true, true);\n      for (let r = row; r < row + rowspan; r++) {\n        for (let c = col; c < col + colspan; c++) {\n          // Not resetting a cell representing a merge area's value.\n          if (r !== row || c !== col) {\n            populatedNulls.push([r, c, null]);\n          }\n        }\n      }\n    });\n\n    // There are no merged cells. Thus, no data population is needed.\n    if (populatedNulls.length === 0) {\n      return;\n    }\n\n    // TODO: Change the `source` argument to a more meaningful value, e.g. `${this.pluginName}.clearCells`.\n    this.hot.setDataAtCell(populatedNulls, undefined, undefined, this.pluginName);\n  }\n\n  /**\n   * Clears the merged cells from the merged cell container.\n   */\n  clearCollections() {\n    this.mergedCellsCollection.clear();\n  }\n\n  /**\n   * Returns `true` if a range is mergeable.\n   *\n   * @private\n   * @param {object} newMergedCellInfo Merged cell information object to test.\n   * @param {boolean} [auto=false] `true` if triggered at initialization.\n   * @returns {boolean}\n   */\n  canMergeRange(newMergedCellInfo) {\n    let auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    return auto ? true : this.validateSetting(newMergedCellInfo);\n  }\n\n  /**\n   * Merges the selection provided as a cell range.\n   *\n   * @param {CellRange} [cellRange] Selection cell range.\n   */\n  mergeSelection() {\n    let cellRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.hot.getSelectedRangeLast();\n    if (!cellRange) {\n      return;\n    }\n    cellRange.setDirection(this.hot.isRtl() ? 'NE-SW' : 'NW-SE');\n    const {\n      from,\n      to\n    } = cellRange;\n    this.unmergeRange(cellRange, true);\n    this.mergeRange(cellRange);\n    this.hot.selectCell(from.row, from.col, to.row, to.col, false);\n  }\n\n  /**\n   * Unmerges the selection provided as a cell range.\n   *\n   * @param {CellRange} [cellRange] Selection cell range.\n   */\n  unmergeSelection() {\n    let cellRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.hot.getSelectedRangeLast();\n    if (!cellRange) {\n      return;\n    }\n    const {\n      from,\n      to\n    } = cellRange;\n    this.unmergeRange(cellRange, true);\n    this.hot.selectCell(from.row, from.col, to.row, to.col, false);\n  }\n\n  /**\n   * Merges cells in the provided cell range.\n   *\n   * @private\n   * @param {CellRange} cellRange Cell range to merge.\n   * @param {boolean} [auto=false] `true` if is called automatically, e.g. At initialization.\n   * @param {boolean} [preventPopulation=false] `true`, if the method should not run `populateFromArray` at the end,\n   *   but rather return its arguments.\n   * @returns {Array|boolean} Returns an array of [row, column, dataUnderCollection] if preventPopulation is set to\n   *   true. If the the merging process went successful, it returns `true`, otherwise - `false`.\n   * @fires Hooks#beforeMergeCells\n   * @fires Hooks#afterMergeCells\n   */\n  mergeRange(cellRange) {\n    let auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    let preventPopulation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    const topStart = cellRange.getTopStartCorner();\n    const bottomEnd = cellRange.getBottomEndCorner();\n    const mergeParent = {\n      row: topStart.row,\n      col: topStart.col,\n      rowspan: bottomEnd.row - topStart.row + 1,\n      colspan: bottomEnd.col - topStart.col + 1\n    };\n    const clearedData = [];\n    let populationInfo = null;\n    if (!this.canMergeRange(mergeParent, auto)) {\n      return false;\n    }\n    this.hot.runHooks('beforeMergeCells', cellRange, auto);\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_19__[\"rangeEach\"])(0, mergeParent.rowspan - 1, i => {\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_19__[\"rangeEach\"])(0, mergeParent.colspan - 1, j => {\n        let clearedValue = null;\n        if (!clearedData[i]) {\n          clearedData[i] = [];\n        }\n        if (i === 0 && j === 0) {\n          clearedValue = this.hot.getSourceDataAtCell(this.hot.toPhysicalRow(mergeParent.row), this.hot.toPhysicalColumn(mergeParent.col));\n        } else {\n          this.hot.setCellMeta(mergeParent.row + i, mergeParent.col + j, 'hidden', true);\n        }\n        clearedData[i][j] = clearedValue;\n      });\n    });\n    this.hot.setCellMeta(mergeParent.row, mergeParent.col, 'spanned', true);\n    const mergedCellAdded = this.mergedCellsCollection.add(mergeParent, auto);\n    if (mergedCellAdded) {\n      if (preventPopulation) {\n        populationInfo = [mergeParent.row, mergeParent.col, clearedData];\n      } else {\n        // TODO: Change the `source` argument to a more meaningful value, e.g. `${this.pluginName}.clearCells`.\n        this.hot.populateFromArray(mergeParent.row, mergeParent.col, clearedData, undefined, undefined, this.pluginName);\n      }\n      if (!auto) {\n        this.ifChromeForceRepaint();\n      }\n      this.hot.runHooks('afterMergeCells', cellRange, mergeParent, auto);\n      return populationInfo;\n    }\n    return true;\n  }\n\n  /**\n   * Unmerges the selection provided as a cell range. If no cell range is provided, it uses the current selection.\n   *\n   * @private\n   * @param {CellRange} cellRange Selection cell range.\n   * @param {boolean} [auto=false] `true` if called automatically by the plugin.\n   *\n   * @fires Hooks#beforeUnmergeCells\n   * @fires Hooks#afterUnmergeCells\n   */\n  unmergeRange(cellRange) {\n    let auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    const mergedCells = this.mergedCellsCollection.getWithinRange(cellRange);\n    if (mergedCells.length === 0) {\n      return;\n    }\n    this.hot.runHooks('beforeUnmergeCells', cellRange, auto);\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_16__[\"arrayEach\"])(mergedCells, currentCollection => {\n      this.mergedCellsCollection.remove(currentCollection.row, currentCollection.col);\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_19__[\"rangeEach\"])(0, currentCollection.rowspan - 1, i => {\n        Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_19__[\"rangeEach\"])(0, currentCollection.colspan - 1, j => {\n          this.hot.removeCellMeta(currentCollection.row + i, currentCollection.col + j, 'hidden');\n          this.hot.removeCellMeta(currentCollection.row + i, currentCollection.col + j, 'copyable');\n        });\n      });\n      this.hot.removeCellMeta(currentCollection.row, currentCollection.col, 'spanned');\n    });\n    this.hot.runHooks('afterUnmergeCells', cellRange, auto);\n    this.hot.render();\n  }\n\n  /**\n   * Merges or unmerges, based on the cell range provided as `cellRange`.\n   *\n   * @private\n   * @param {CellRange} cellRange The cell range to merge or unmerged.\n   */\n  toggleMerge(cellRange) {\n    const mergedCell = this.mergedCellsCollection.get(cellRange.from.row, cellRange.from.col);\n    const mergedCellCoversWholeRange = mergedCell.row === cellRange.from.row && mergedCell.col === cellRange.from.col && mergedCell.row + mergedCell.rowspan - 1 === cellRange.to.row && mergedCell.col + mergedCell.colspan - 1 === cellRange.to.col;\n    if (mergedCellCoversWholeRange) {\n      this.unmergeRange(cellRange);\n    } else {\n      this.mergeSelection(cellRange);\n    }\n  }\n\n  /**\n   * Merges the specified range.\n   *\n   * @param {number} startRow Start row of the merged cell.\n   * @param {number} startColumn Start column of the merged cell.\n   * @param {number} endRow End row of the merged cell.\n   * @param {number} endColumn End column of the merged cell.\n   * @fires Hooks#beforeMergeCells\n   * @fires Hooks#afterMergeCells\n   */\n  merge(startRow, startColumn, endRow, endColumn) {\n    const start = this.hot._createCellCoords(startRow, startColumn);\n    const end = this.hot._createCellCoords(endRow, endColumn);\n    this.mergeRange(this.hot._createCellRange(start, start, end));\n  }\n\n  /**\n   * Unmerges the merged cell in the provided range.\n   *\n   * @param {number} startRow Start row of the merged cell.\n   * @param {number} startColumn Start column of the merged cell.\n   * @param {number} endRow End row of the merged cell.\n   * @param {number} endColumn End column of the merged cell.\n   * @fires Hooks#beforeUnmergeCells\n   * @fires Hooks#afterUnmergeCells\n   */\n  unmerge(startRow, startColumn, endRow, endColumn) {\n    const start = this.hot._createCellCoords(startRow, startColumn);\n    const end = this.hot._createCellCoords(endRow, endColumn);\n    this.unmergeRange(this.hot._createCellRange(start, start, end));\n  }\n  /**\n   * Register shortcuts responsible for toggling a merge.\n   *\n   * @private\n   */\n  registerShortcuts() {\n    const shortcutManager = this.hot.getShortcutManager();\n    const gridContext = shortcutManager.getContext('grid');\n    gridContext.addShortcut({\n      keys: [['Control', 'm']],\n      callback: () => {\n        const range = this.hot.getSelectedRangeLast();\n        if (range && !range.isSingleHeader()) {\n          this.toggleMerge(range);\n          this.hot.render();\n        }\n      },\n      runOnlyIf: event => !event.altKey,\n      // right ALT in some systems triggers ALT+CTRL\n      group: SHORTCUTS_GROUP\n    });\n  }\n\n  /**\n   * Unregister shortcuts responsible for toggling a merge.\n   *\n   * @private\n   */\n  unregisterShortcuts() {\n    const shortcutManager = this.hot.getShortcutManager();\n    const gridContext = shortcutManager.getContext('grid');\n    gridContext.removeShortcutsByGroup(SHORTCUTS_GROUP);\n  }\n\n  /**\n   * Modifies the information on whether the current selection contains multiple cells. The `afterIsMultipleSelection`\n   * hook callback.\n   *\n   * @param {boolean} isMultiple Determines whether the current selection contains multiple cells.\n   * @returns {boolean}\n   */\n\n  /**\n   * Modify viewport start when needed. We extend viewport when merged cells aren't fully visible.\n   *\n   * @private\n   * @param {object} calc The row calculator object.\n   * @param {number} nrOfColumns Number of visual columns.\n   */\n  modifyViewportRowStart(calc, nrOfColumns) {\n    const rowMapper = this.hot.rowIndexMapper;\n    const visualStartRow = rowMapper.getVisualFromRenderableIndex(calc.startRow);\n    for (let visualColumnIndex = 0; visualColumnIndex < nrOfColumns; visualColumnIndex += 1) {\n      const mergeParentForViewportStart = this.mergedCellsCollection.get(visualStartRow, visualColumnIndex);\n      if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_17__[\"isObject\"])(mergeParentForViewportStart)) {\n        const renderableIndexAtMergeStart = rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(mergeParentForViewportStart.row, 1));\n\n        // Merge start is out of the viewport (i.e. when we scrolled to the bottom and we can see just part of a merge).\n        if (renderableIndexAtMergeStart < calc.startRow) {\n          // We extend viewport when some rows have been merged.\n          calc.startRow = renderableIndexAtMergeStart;\n          // We are looking for next merges inside already extended viewport (starting again from row equal to 0).\n          this.modifyViewportRowStart(calc, nrOfColumns); // recursively search upwards\n\n          return; // Finish the current loop. Everything will be checked from the beginning by above recursion.\n        }\n      }\n    }\n  }\n\n  /**\n   *  Modify viewport end when needed. We extend viewport when merged cells aren't fully visible.\n   *\n   * @private\n   * @param {object} calc The row calculator object.\n   * @param {number} nrOfColumns Number of visual columns.\n   */\n  modifyViewportRowEnd(calc, nrOfColumns) {\n    const rowMapper = this.hot.rowIndexMapper;\n    const visualEndRow = rowMapper.getVisualFromRenderableIndex(calc.endRow);\n    for (let visualColumnIndex = 0; visualColumnIndex < nrOfColumns; visualColumnIndex += 1) {\n      const mergeParentForViewportEnd = this.mergedCellsCollection.get(visualEndRow, visualColumnIndex);\n      if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_17__[\"isObject\"])(mergeParentForViewportEnd)) {\n        const mergeEnd = mergeParentForViewportEnd.row + mergeParentForViewportEnd.rowspan - 1;\n        const renderableIndexAtMergeEnd = rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(mergeEnd, -1));\n\n        // Merge end is out of the viewport.\n        if (renderableIndexAtMergeEnd > calc.endRow) {\n          // We extend the viewport when some rows have been merged.\n          calc.endRow = renderableIndexAtMergeEnd;\n          // We are looking for next merges inside already extended viewport (starting again from row equal to 0).\n          this.modifyViewportRowEnd(calc, nrOfColumns); // recursively search upwards\n\n          return; // Finish the current loop. Everything will be checked from the beginning by above recursion.\n        }\n      }\n    }\n  }\n\n  /**\n   * `afterViewportColumnCalculatorOverride` hook callback.\n   *\n   * @param {object} calc The column calculator object.\n   */\n\n  /**\n   * Modify viewport start when needed. We extend viewport when merged cells aren't fully visible.\n   *\n   * @private\n   * @param {object} calc The column calculator object.\n   * @param {number} nrOfRows Number of visual rows.\n   */\n  modifyViewportColumnStart(calc, nrOfRows) {\n    const columnMapper = this.hot.columnIndexMapper;\n    const visualStartCol = columnMapper.getVisualFromRenderableIndex(calc.startColumn);\n    for (let visualRowIndex = 0; visualRowIndex < nrOfRows; visualRowIndex += 1) {\n      const mergeParentForViewportStart = this.mergedCellsCollection.get(visualRowIndex, visualStartCol);\n      if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_17__[\"isObject\"])(mergeParentForViewportStart)) {\n        const renderableIndexAtMergeStart = columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(mergeParentForViewportStart.col, 1));\n\n        // Merge start is out of the viewport (i.e. when we scrolled to the right and we can see just part of a merge).\n        if (renderableIndexAtMergeStart < calc.startColumn) {\n          // We extend viewport when some columns have been merged.\n          calc.startColumn = renderableIndexAtMergeStart;\n          // We are looking for next merges inside already extended viewport (starting again from column equal to 0).\n          this.modifyViewportColumnStart(calc, nrOfRows); // recursively search upwards\n\n          return; // Finish the current loop. Everything will be checked from the beginning by above recursion.\n        }\n      }\n    }\n  }\n\n  /**\n   *  Modify viewport end when needed. We extend viewport when merged cells aren't fully visible.\n   *\n   * @private\n   * @param {object} calc The column calculator object.\n   * @param {number} nrOfRows Number of visual rows.\n   */\n  modifyViewportColumnEnd(calc, nrOfRows) {\n    const columnMapper = this.hot.columnIndexMapper;\n    const visualEndCol = columnMapper.getVisualFromRenderableIndex(calc.endColumn);\n    for (let visualRowIndex = 0; visualRowIndex < nrOfRows; visualRowIndex += 1) {\n      const mergeParentForViewportEnd = this.mergedCellsCollection.get(visualRowIndex, visualEndCol);\n      if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_17__[\"isObject\"])(mergeParentForViewportEnd)) {\n        const mergeEnd = mergeParentForViewportEnd.col + mergeParentForViewportEnd.colspan - 1;\n        const renderableIndexAtMergeEnd = columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(mergeEnd, -1));\n\n        // Merge end is out of the viewport.\n        if (renderableIndexAtMergeEnd > calc.endColumn) {\n          // We extend the viewport when some columns have been merged.\n          calc.endColumn = renderableIndexAtMergeEnd;\n          // We are looking for next merges inside already extended viewport (starting again from column equal to 0).\n          this.modifyViewportColumnEnd(calc, nrOfRows); // recursively search upwards\n\n          return; // Finish the current loop. Everything will be checked from the beginning by above recursion.\n        }\n      }\n    }\n  }\n\n  /**\n   * Translates merged cell coordinates to renderable indexes.\n   *\n   * @private\n   * @param {number} parentRow Visual row index.\n   * @param {number} rowspan Rowspan which describes shift which will be applied to parent row\n   *                         to calculate renderable index which points to the most bottom\n   *                         index position. Pass rowspan as `0` to calculate the most top\n   *                         index position.\n   * @param {number} parentColumn Visual column index.\n   * @param {number} colspan Colspan which describes shift which will be applied to parent column\n   *                         to calculate renderable index which points to the most right\n   *                         index position. Pass colspan as `0` to calculate the most left\n   *                         index position.\n   * @returns {number[]}\n   */\n  translateMergedCellToRenderable(parentRow, rowspan, parentColumn, colspan) {\n    const {\n      rowIndexMapper: rowMapper,\n      columnIndexMapper: columnMapper\n    } = this.hot;\n    let firstNonHiddenRow;\n    let firstNonHiddenColumn;\n    if (rowspan === 0) {\n      firstNonHiddenRow = rowMapper.getNearestNotHiddenIndex(parentRow, 1);\n    } else {\n      firstNonHiddenRow = rowMapper.getNearestNotHiddenIndex(parentRow + rowspan - 1, -1);\n    }\n    if (colspan === 0) {\n      firstNonHiddenColumn = columnMapper.getNearestNotHiddenIndex(parentColumn, 1);\n    } else {\n      firstNonHiddenColumn = columnMapper.getNearestNotHiddenIndex(parentColumn + colspan - 1, -1);\n    }\n    const renderableRow = parentRow >= 0 ? rowMapper.getRenderableFromVisualIndex(firstNonHiddenRow) : parentRow;\n    const renderableColumn = parentColumn >= 0 ? columnMapper.getRenderableFromVisualIndex(firstNonHiddenColumn) : parentColumn;\n    return [renderableRow, renderableColumn];\n  }\n\n  /**\n   * The `modifyAutofillRange` hook callback.\n   *\n   * @param {Array} drag The drag area coordinates.\n   * @param {Array} select The selection information.\n   * @returns {Array} The new drag area.\n   */\n}\nfunction _onAfterInit() {\n  this.generateFromSettings(this.hot.getSettings()[PLUGIN_KEY]);\n  this.hot.render();\n}\nfunction _onAfterIsMultipleSelection(isMultiple) {\n  if (isMultiple) {\n    const mergedCells = this.mergedCellsCollection.mergedCells;\n    const selectionRange = this.hot.getSelectedRangeLast();\n    const topStartCoords = selectionRange.getTopStartCorner();\n    const bottomEndCoords = selectionRange.getBottomEndCorner();\n    for (let group = 0; group < mergedCells.length; group += 1) {\n      if (topStartCoords.row === mergedCells[group].row && topStartCoords.col === mergedCells[group].col && bottomEndCoords.row === mergedCells[group].row + mergedCells[group].rowspan - 1 && bottomEndCoords.col === mergedCells[group].col + mergedCells[group].colspan - 1) {\n        return false;\n      }\n    }\n  }\n  return isMultiple;\n}\n/**\n * `modifyTransformFocus` hook callback.\n *\n * @param {object} delta The transformation delta.\n */\nfunction _onModifyTransformFocus(delta) {\n  _classPrivateFieldGet(_lastFocusDelta, this).row = delta.row;\n  _classPrivateFieldGet(_lastFocusDelta, this).col = delta.col;\n}\n/**\n * `modifyTransformStart` hook callback.\n *\n * @param {object} delta The transformation delta.\n */\nfunction _onModifyTransformStart(delta) {\n  const selectedRange = this.hot.getSelectedRangeLast();\n  const {\n    highlight\n  } = selectedRange;\n  const {\n    columnIndexMapper,\n    rowIndexMapper\n  } = this.hot;\n  if (_classPrivateFieldGet(_lastSelectedFocus, this)) {\n    if (rowIndexMapper.getRenderableFromVisualIndex(_classPrivateFieldGet(_lastSelectedFocus, this).row) !== null) {\n      highlight.row = _classPrivateFieldGet(_lastSelectedFocus, this).row;\n    }\n    if (columnIndexMapper.getRenderableFromVisualIndex(_classPrivateFieldGet(_lastSelectedFocus, this).col) !== null) {\n      highlight.col = _classPrivateFieldGet(_lastSelectedFocus, this).col;\n    }\n    _classPrivateFieldSet(_lastSelectedFocus, this, null);\n  }\n  const mergedParent = this.mergedCellsCollection.get(highlight.row, highlight.col);\n  if (!mergedParent) {\n    return;\n  }\n  const visualColumnIndexStart = mergedParent.col;\n  const visualColumnIndexEnd = mergedParent.col + mergedParent.colspan - 1;\n  if (delta.col < 0) {\n    const nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexStart - 1 : visualColumnIndexEnd;\n    const notHiddenColumnIndex = columnIndexMapper.getNearestNotHiddenIndex(nextColumn, -1);\n    if (notHiddenColumnIndex === null) {\n      // There are no visible columns anymore, so move the selection out of the table edge. This will\n      // be processed by the selection Transformer class as a move selection to the previous row (if autoWrapRow is enabled).\n      delta.col = -this.hot.view.countRenderableColumnsInRange(0, highlight.col);\n    } else {\n      delta.col = -Math.max(this.hot.view.countRenderableColumnsInRange(notHiddenColumnIndex, highlight.col) - 1, 1);\n    }\n  } else if (delta.col > 0) {\n    const nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexEnd + 1 : visualColumnIndexStart;\n    const notHiddenColumnIndex = columnIndexMapper.getNearestNotHiddenIndex(nextColumn, 1);\n    if (notHiddenColumnIndex === null) {\n      // There are no visible columns anymore, so move the selection out of the table edge. This will\n      // be processed by the selection Transformer class as a move selection to the next row (if autoWrapRow is enabled).\n      delta.col = this.hot.view.countRenderableColumnsInRange(highlight.col, this.hot.countCols());\n    } else {\n      delta.col = Math.max(this.hot.view.countRenderableColumnsInRange(highlight.col, notHiddenColumnIndex) - 1, 1);\n    }\n  }\n  const visualRowIndexStart = mergedParent.row;\n  const visualRowIndexEnd = mergedParent.row + mergedParent.rowspan - 1;\n  if (delta.row < 0) {\n    const nextRow = highlight.row >= visualRowIndexStart && highlight.row <= visualRowIndexEnd ? visualRowIndexStart - 1 : visualRowIndexEnd;\n    const notHiddenRowIndex = rowIndexMapper.getNearestNotHiddenIndex(nextRow, -1);\n    if (notHiddenRowIndex === null) {\n      // There are no visible rows anymore, so move the selection out of the table edge. This will\n      // be processed by the selection Transformer class as a move selection to the previous column (if autoWrapCol is enabled).\n      delta.row = -this.hot.view.countRenderableRowsInRange(0, highlight.row);\n    } else {\n      delta.row = -Math.max(this.hot.view.countRenderableRowsInRange(notHiddenRowIndex, highlight.row) - 1, 1);\n    }\n  } else if (delta.row > 0) {\n    const nextRow = highlight.row >= visualRowIndexStart && highlight.row <= visualRowIndexEnd ? visualRowIndexEnd + 1 : visualRowIndexStart;\n    const notHiddenRowIndex = rowIndexMapper.getNearestNotHiddenIndex(nextRow, 1);\n    if (notHiddenRowIndex === null) {\n      // There are no visible rows anymore, so move the selection out of the table edge. This will\n      // be processed by the selection Transformer class as a move selection to the next column (if autoWrapCol is enabled).\n      delta.row = this.hot.view.countRenderableRowsInRange(highlight.row, this.hot.countRows());\n    } else {\n      delta.row = Math.max(this.hot.view.countRenderableRowsInRange(highlight.row, notHiddenRowIndex) - 1, 1);\n    }\n  }\n}\n/**\n * The hook allows to modify the delta transformation object necessary for correct selection end transformations.\n * The logic here handles \"jumping over\" merged merged cells, while selecting.\n *\n * @param {{ row: number, col: number }} delta The transformation delta.\n */\nfunction _onModifyTransformEnd(delta) {\n  const selectedRange = this.hot.getSelectedRangeLast();\n  const cloneRange = selectedRange.clone();\n  const {\n    to\n  } = selectedRange;\n  const {\n    columnIndexMapper,\n    rowIndexMapper\n  } = this.hot;\n  const expandCloneRange = (row, col) => {\n    cloneRange.expand(this.hot._createCellCoords(row, col));\n    for (let i = 0; i < this.mergedCellsCollection.mergedCells.length; i += 1) {\n      cloneRange.expandByRange(this.mergedCellsCollection.mergedCells[i].getRange());\n    }\n  };\n  if (delta.col < 0) {\n    let nextColumn = this.mergedCellsCollection.getStartMostColumnIndex(selectedRange, to.col) + delta.col;\n    expandCloneRange(to.row, nextColumn);\n    if (selectedRange.getHorizontalDirection() === 'E-W' && cloneRange.getHorizontalDirection() === 'E-W') {\n      nextColumn = cloneRange.getTopStartCorner().col;\n    }\n    const notHiddenColumnIndex = columnIndexMapper.getNearestNotHiddenIndex(nextColumn, 1);\n    if (notHiddenColumnIndex !== null) {\n      delta.col = -Math.max(this.hot.view.countRenderableColumnsInRange(notHiddenColumnIndex, to.col) - 1, 1);\n    }\n  } else if (delta.col > 0) {\n    let nextColumn = this.mergedCellsCollection.getEndMostColumnIndex(selectedRange, to.col) + delta.col;\n    expandCloneRange(to.row, nextColumn);\n    if (selectedRange.getHorizontalDirection() === 'W-E' && cloneRange.getHorizontalDirection() === 'W-E') {\n      nextColumn = cloneRange.getBottomEndCorner().col;\n    }\n    const notHiddenColumnIndex = columnIndexMapper.getNearestNotHiddenIndex(nextColumn, -1);\n    if (notHiddenColumnIndex !== null) {\n      delta.col = Math.max(this.hot.view.countRenderableColumnsInRange(to.col, notHiddenColumnIndex) - 1, 1);\n    }\n  }\n  if (delta.row < 0) {\n    let nextRow = this.mergedCellsCollection.getTopMostRowIndex(selectedRange, to.row) + delta.row;\n    expandCloneRange(nextRow, to.col);\n    if (selectedRange.getVerticalDirection() === 'S-N' && cloneRange.getVerticalDirection() === 'S-N') {\n      nextRow = cloneRange.getTopStartCorner().row;\n    }\n    const notHiddenRowIndex = rowIndexMapper.getNearestNotHiddenIndex(nextRow, 1);\n    if (notHiddenRowIndex !== null) {\n      delta.row = -Math.max(this.hot.view.countRenderableRowsInRange(notHiddenRowIndex, to.row) - 1, 1);\n    }\n  } else if (delta.row > 0) {\n    let nextRow = this.mergedCellsCollection.getBottomMostRowIndex(selectedRange, to.row) + delta.row;\n    expandCloneRange(nextRow, to.col);\n    if (selectedRange.getVerticalDirection() === 'N-S' && cloneRange.getVerticalDirection() === 'N-S') {\n      nextRow = cloneRange.getBottomStartCorner().row;\n    }\n    const notHiddenRowIndex = rowIndexMapper.getNearestNotHiddenIndex(nextRow, -1);\n    if (notHiddenRowIndex !== null) {\n      delta.row = Math.max(this.hot.view.countRenderableRowsInRange(to.row, notHiddenRowIndex) - 1, 1);\n    }\n  }\n}\n/**\n * The hook corrects the range (before drawing it) after the selection was made on the merged cells.\n * It expands the range to cover the entire area of the selected merged cells.\n */\nfunction _onBeforeSelectionHighlightSet() {\n  const selectedRange = this.hot.getSelectedRangeLast();\n  const {\n    highlight\n  } = selectedRange;\n  if (this.hot.selection.isSelectedByColumnHeader() || this.hot.selection.isSelectedByRowHeader()) {\n    _classPrivateFieldSet(_lastSelectedFocus, this, highlight.clone());\n    return;\n  }\n  for (let i = 0; i < this.mergedCellsCollection.mergedCells.length; i += 1) {\n    selectedRange.expandByRange(this.mergedCellsCollection.mergedCells[i].getRange(), false);\n  }\n  // TODO: This is a workaround for an issue with the selection not being extended properly.\n  // In some cases when the merge cells are defined in random order the selection is not\n  // extended in that way that it covers all overlapped merge cells.\n  for (let i = 0; i < this.mergedCellsCollection.mergedCells.length; i += 1) {\n    selectedRange.expandByRange(this.mergedCellsCollection.mergedCells[i].getRange(), false);\n  }\n  const mergedParent = this.mergedCellsCollection.get(highlight.row, highlight.col);\n  _classPrivateFieldSet(_lastSelectedFocus, this, highlight.clone());\n  if (mergedParent) {\n    highlight.assign(mergedParent);\n  }\n}\n/**\n * `modifyGetCellCoords` hook callback. Swaps the `getCell` coords with the merged parent coords.\n *\n * @param {number} row Row index.\n * @param {number} column Visual column index.\n * @returns {Array|undefined} Visual coordinates of the merge.\n */\nfunction _onModifyGetCellCoords(row, column) {\n  if (row < 0 || column < 0) {\n    return;\n  }\n  const mergeParent = this.mergedCellsCollection.get(row, column);\n  if (!mergeParent) {\n    return;\n  }\n  const {\n    row: mergeRow,\n    col: mergeColumn,\n    colspan,\n    rowspan\n  } = mergeParent;\n  return [\n  // Most top-left merged cell coords.\n  mergeRow, mergeColumn,\n  // Most bottom-right merged cell coords.\n  mergeRow + rowspan - 1, mergeColumn + colspan - 1];\n}\n/**\n * `afterContextMenuDefaultOptions` hook callback.\n *\n * @param {object} defaultOptions The default context menu options.\n */\nfunction _addMergeActionsToContextMenu(defaultOptions) {\n  defaultOptions.items.push({\n    name: '---------'\n  }, Object(_contextMenuItem_toggleMerge_mjs__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(this));\n}\n/**\n * Clears the last selected coordinates before setting a new selection range.\n */\nfunction _onBeforeSetRangeStart() {\n  _classPrivateFieldSet(_lastSelectedFocus, this, null);\n}\n/**\n * Detects if the last selected cell was a header cell if so update the order list active node for further\n * computations.\n */\nfunction _onBeforeSelectionFocusSet() {\n  if (_classPrivateFieldGet(_lastSelectedFocus, this).isCell()) {\n    return;\n  }\n  const selectedRange = this.hot.getSelectedRangeLast();\n  const verticalDir = selectedRange.getVerticalDirection();\n  const horizontalDir = selectedRange.getHorizontalDirection();\n  const focusCoords = _classPrivateFieldGet(_lastSelectedFocus, this).clone().normalize();\n  _classPrivateFieldGet(_focusOrder, this).setActiveNode(focusCoords.row, focusCoords.col);\n  if (_classPrivateFieldGet(_lastFocusDelta, this).row > 0 || _classPrivateFieldGet(_lastFocusDelta, this).col > 0) {\n    _classPrivateFieldGet(_focusOrder, this).setPrevNodeAsActive();\n  } else if (horizontalDir === 'E-W' && _classPrivateFieldGet(_lastFocusDelta, this).col < 0 || verticalDir === 'S-N' && _classPrivateFieldGet(_lastFocusDelta, this).row < 0) {\n    _classPrivateFieldGet(_focusOrder, this).setNextNodeAsActive();\n  }\n}\n/**\n * Changes the focus selection to the next or previous cell or merged cell position.\n *\n * @param {number} row The visual row index.\n * @param {number} column The visual column index.\n */\nfunction _onAfterSelectionFocusSet(row, column) {\n  const selectedRange = this.hot.getSelectedRangeLast();\n  const {\n    columnIndexMapper,\n    rowIndexMapper\n  } = this.hot;\n  let notHiddenRowIndex = null;\n  let notHiddenColumnIndex = null;\n  if (_classPrivateFieldGet(_lastFocusDelta, this).col < 0) {\n    const {\n      rowEnd,\n      colEnd\n    } = _classPrivateFieldGet(_focusOrder, this).getPrevHorizontalNode();\n    notHiddenColumnIndex = columnIndexMapper.getNearestNotHiddenIndex(colEnd, -1);\n    notHiddenRowIndex = rowIndexMapper.getNearestNotHiddenIndex(rowEnd, -1);\n  } else if (_classPrivateFieldGet(_lastFocusDelta, this).col > 0) {\n    const {\n      rowStart,\n      colStart\n    } = _classPrivateFieldGet(_focusOrder, this).getNextHorizontalNode();\n    notHiddenColumnIndex = columnIndexMapper.getNearestNotHiddenIndex(colStart, 1);\n    notHiddenRowIndex = rowIndexMapper.getNearestNotHiddenIndex(rowStart, 1);\n  } else if (_classPrivateFieldGet(_lastFocusDelta, this).row < 0) {\n    const {\n      rowEnd,\n      colEnd\n    } = _classPrivateFieldGet(_focusOrder, this).getPrevVerticalNode();\n    notHiddenColumnIndex = columnIndexMapper.getNearestNotHiddenIndex(colEnd, -1);\n    notHiddenRowIndex = rowIndexMapper.getNearestNotHiddenIndex(rowEnd, -1);\n  } else if (_classPrivateFieldGet(_lastFocusDelta, this).row > 0) {\n    const {\n      rowStart,\n      colStart\n    } = _classPrivateFieldGet(_focusOrder, this).getNextVerticalNode();\n    notHiddenColumnIndex = columnIndexMapper.getNearestNotHiddenIndex(colStart, 1);\n    notHiddenRowIndex = rowIndexMapper.getNearestNotHiddenIndex(rowStart, 1);\n  }\n  if (notHiddenRowIndex !== null || notHiddenColumnIndex !== null) {\n    const coords = this.hot._createCellCoords(notHiddenRowIndex, notHiddenColumnIndex);\n    const mergeParent = this.mergedCellsCollection.get(coords.row, coords.col);\n    const focusHighlight = this.hot.selection.highlight.getFocus();\n    row = coords.row;\n    column = coords.col;\n    if (mergeParent) {\n      selectedRange.highlight.assign({\n        row: this.hot.rowIndexMapper.getNearestNotHiddenIndex(mergeParent.row, 1),\n        col: this.hot.columnIndexMapper.getNearestNotHiddenIndex(mergeParent.col, 1)\n      });\n    } else {\n      selectedRange.highlight.assign(coords);\n    }\n    focusHighlight.clear();\n    focusHighlight.add(coords).commit();\n  }\n  _classPrivateFieldGet(_focusOrder, this).setActiveNode(row, column);\n  _classPrivateFieldSet(_lastFocusDelta, this, {\n    row: 0,\n    col: 0\n  });\n}\n/**\n * Creates the horizontal and vertical cells order matrix (linked lists) for focused cell.\n */\nfunction _onAfterSelectionEnd() {\n  const selection = this.hot.getSelectedRangeLast();\n  if (!selection.isHeader()) {\n    _classPrivateFieldGet(_focusOrder, this).buildFocusOrder(this.hot.getSelectedRangeLast());\n  }\n}\n/**\n * The `afterGetCellMeta` hook callback.\n *\n * @param {number} row Row index.\n * @param {number} col Column index.\n * @param {object} cellProperties The cell properties object.\n */\nfunction _onAfterGetCellMeta(row, col, cellProperties) {\n  const mergeParent = this.mergedCellsCollection.get(row, col);\n  if (mergeParent) {\n    if (mergeParent.row !== row || mergeParent.col !== col) {\n      cellProperties.copyable = false;\n    } else {\n      cellProperties.rowspan = mergeParent.rowspan;\n      cellProperties.colspan = mergeParent.colspan;\n    }\n  }\n}\n/**\n * `afterViewportRowCalculatorOverride` hook callback.\n *\n * @param {object} calc The row calculator object.\n */\nfunction _onAfterViewportRowCalculatorOverride(calc) {\n  const nrOfColumns = this.hot.countCols();\n  this.modifyViewportRowStart(calc, nrOfColumns);\n  this.modifyViewportRowEnd(calc, nrOfColumns);\n}\nfunction _onAfterViewportColumnCalculatorOverride(calc) {\n  const nrOfRows = this.hot.countRows();\n  this.modifyViewportColumnStart(calc, nrOfRows);\n  this.modifyViewportColumnEnd(calc, nrOfRows);\n}\nfunction _onModifyAutofillRange(drag, select) {\n  this.autofillCalculations.correctSelectionAreaSize(select);\n  const dragDirection = this.autofillCalculations.getDirection(select, drag);\n  let dragArea = drag;\n  if (this.autofillCalculations.dragAreaOverlapsCollections(select, dragArea, dragDirection)) {\n    dragArea = select;\n    return dragArea;\n  }\n  const from = this.hot._createCellCoords(select[0], select[1]);\n  const to = this.hot._createCellCoords(select[2], select[3]);\n  const range = this.hot._createCellRange(from, from, to);\n  const mergedCellsWithinSelectionArea = this.mergedCellsCollection.getWithinRange(range);\n  if (mergedCellsWithinSelectionArea.length === 0) {\n    return dragArea;\n  }\n  dragArea = this.autofillCalculations.snapDragArea(select, dragArea, dragDirection, mergedCellsWithinSelectionArea);\n  return dragArea;\n}\n/**\n * `afterCreateCol` hook callback.\n *\n * @param {number} column Column index.\n * @param {number} count Number of created columns.\n */\nfunction _onAfterCreateCol(column, count) {\n  this.mergedCellsCollection.shiftCollections('right', column, count);\n}\n/**\n * `afterRemoveCol` hook callback.\n *\n * @param {number} column Column index.\n * @param {number} count Number of removed columns.\n */\nfunction _onAfterRemoveCol(column, count) {\n  this.mergedCellsCollection.shiftCollections('left', column, count);\n}\n/**\n * `afterCreateRow` hook callback.\n *\n * @param {number} row Row index.\n * @param {number} count Number of created rows.\n * @param {string} source Source of change.\n */\nfunction _onAfterCreateRow(row, count, source) {\n  if (source === 'auto') {\n    return;\n  }\n  this.mergedCellsCollection.shiftCollections('down', row, count);\n}\n/**\n * `afterRemoveRow` hook callback.\n *\n * @param {number} row Row index.\n * @param {number} count Number of removed rows.\n */\nfunction _onAfterRemoveRow(row, count) {\n  this.mergedCellsCollection.shiftCollections('up', row, count);\n}\n/**\n * `afterChange` hook callback. Used to propagate merged cells after using Autofill.\n *\n * @param {Array} changes The changes array.\n * @param {string} source Determines the source of the change.\n */\nfunction _onAfterChange(changes, source) {\n  if (source !== 'Autofill.fill') {\n    return;\n  }\n  this.autofillCalculations.recreateAfterDataPopulation(changes);\n}\n/**\n * `beforeDrawAreaBorders` hook callback.\n *\n * @param {Array} corners Visual coordinates of the area corners.\n * @param {string} className Class name for the area.\n */\nfunction _onBeforeDrawAreaBorders(corners, className) {\n  if (className && className === 'area') {\n    const selectedRange = this.hot.getSelectedRangeLast();\n    const mergedCellsWithinRange = this.mergedCellsCollection.getWithinRange(selectedRange);\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_16__[\"arrayEach\"])(mergedCellsWithinRange, mergedCell => {\n      if (selectedRange.getBottomEndCorner().row === mergedCell.getLastRow() && selectedRange.getBottomEndCorner().col === mergedCell.getLastColumn()) {\n        corners[2] = mergedCell.row;\n        corners[3] = mergedCell.col;\n      }\n    });\n  }\n}\n/**\n * `afterDrawSelection` hook callback. Used to add the additional class name for the entirely-selected merged cells.\n *\n * @param {number} currentRow Visual row index of the currently processed cell.\n * @param {number} currentColumn Visual column index of the currently cell.\n * @param {Array} cornersOfSelection Array of the current selection in a form of `[startRow, startColumn, endRow,\n *   endColumn]`.\n * @param {number|undefined} layerLevel Number indicating which layer of selection is currently processed.\n * @returns {string|undefined} A `String`, which will act as an additional `className` to be added to the currently\n *   processed cell.\n */\nfunction _onAfterDrawSelection(currentRow, currentColumn, cornersOfSelection, layerLevel) {\n  // Nothing's selected (hook might be triggered by the custom borders)\n  if (!cornersOfSelection) {\n    return;\n  }\n  return this.selectionCalculations.getSelectedMergedCellClassName(currentRow, currentColumn, cornersOfSelection, layerLevel);\n}\n/**\n * `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.\n *\n * @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from\n *   all the cells in the table.\n */\nfunction _onBeforeRemoveCellClassNames() {\n  return this.selectionCalculations.getSelectedMergedCellClassNameToRemove();\n}\n/**\n * Allows to prevent opening the editor while more than one merged cell is selected.\n *\n * @param {number} row Visual row index of the edited cell.\n * @param {number} column Visual column index of the edited cell.\n * @param {string | null} initialValue The initial editor value.\n * @param {MouseEvent | KeyboardEvent} event The event which was responsible for opening the editor.\n * @returns {boolean | undefined}\n */\nfunction _onBeforeBeginEditing(row, column, initialValue, event) {\n  if (!(event instanceof MouseEvent)) {\n    return;\n  }\n  const selection = this.hot.getSelectedRangeLast();\n  const mergeCell = this.mergedCellsCollection.getByRange(selection);\n  if (!mergeCell) {\n    return;\n  }\n  const from = this.hot._createCellCoords(mergeCell.row, mergeCell.col);\n  const to = this.hot._createCellCoords(mergeCell.row + mergeCell.rowspan - 1, mergeCell.col + mergeCell.colspan - 1);\n  return this.hot.selection.getLayerLevel() === 0 && selection.isEqual(this.hot._createCellRange(from, from, to));\n}\n/**\n * Hook used to modify the row height depends on the merged cells in the row.\n *\n * @param {number} height The row height value provided by the Core.\n * @param {number} row The visual row index.\n * @param {string} overlayType The overlay type that is currently rendered.\n * @returns {number}\n */\nfunction _onModifyRowHeightByOverlayName(height, row, overlayType) {\n  if (this.hot.getSettings().rowHeaders ||\n  // merged cells do not work with the bottom overlays\n  overlayType === 'bottom' || overlayType === 'bottom_inline_start_corner') {\n    return height;\n  }\n  let firstColumn;\n  let lastColumn;\n  if (overlayType === 'master') {\n    firstColumn = this.hot.view.getFirstRenderedVisibleColumn();\n    lastColumn = this.hot.view.getLastRenderedVisibleColumn();\n  } else {\n    const activeOverlay = this.hot.view.getOverlayByName(overlayType);\n    firstColumn = this.hot.columnIndexMapper.getVisualFromRenderableIndex(activeOverlay.clone.wtTable.getFirstRenderedColumn());\n    lastColumn = this.hot.columnIndexMapper.getVisualFromRenderableIndex(activeOverlay.clone.wtTable.getLastRenderedColumn());\n  }\n  const firstMergedCellInRow = this.mergedCellsCollection.get(row, firstColumn);\n  if (!firstMergedCellInRow) {\n    return height;\n  }\n  const from = this.hot._createCellCoords(row, firstColumn);\n  const to = this.hot._createCellCoords(row, lastColumn);\n  const viewportRange = this.hot._createCellRange(from, from, to);\n  const mergedCellsWithinRange = this.mergedCellsCollection.getWithinRange(viewportRange);\n  const maxRowspan = mergedCellsWithinRange.reduce((acc, _ref) => {\n    let {\n      rowspan\n    } = _ref;\n    return Math.max(acc, rowspan);\n  }, 1);\n  let rowspanCorrection = 0;\n  if (mergedCellsWithinRange.length > 1 && mergedCellsWithinRange[0].rowspan < maxRowspan) {\n    rowspanCorrection = maxRowspan - mergedCellsWithinRange[0].rowspan;\n  }\n  mergedCellsWithinRange.forEach(_ref2 => {\n    var _height;\n    let {\n      rowspan\n    } = _ref2;\n    let rowspanAfterCorrection = 0;\n    if (overlayType === 'top' || overlayType === 'top_inline_start_corner') {\n      rowspanAfterCorrection = Math.min(maxRowspan, this.hot.view.countNotHiddenFixedRowsTop() - row);\n    } else {\n      rowspanAfterCorrection = rowspan - rowspanCorrection;\n    }\n    height = Math.max((_height = height) !== null && _height !== void 0 ? _height : 0, _assertClassBrand(_MergeCells_brand, this, _sumCellsHeights).call(this, row, rowspanAfterCorrection));\n  });\n  return height;\n}\n/**\n * Sums the heights of the all cells that the merge cell consists of.\n *\n * @param {number} row The visual row index of the merged cell.\n * @param {number} rowspan The rowspan value of the merged cell.\n * @returns {number}\n */\nfunction _sumCellsHeights(row, rowspan) {\n  const defaultHeight = this.hot.view._wt.wtSettings.getSettingPure('defaultRowHeight');\n  const autoRowSizePlugin = this.hot.getPlugin('autoRowSize');\n  let height = 0;\n  for (let i = row; i < row + rowspan; i++) {\n    if (!this.hot.rowIndexMapper.isHidden(i)) {\n      var _autoRowSizePlugin$ge;\n      height += (_autoRowSizePlugin$ge = autoRowSizePlugin === null || autoRowSizePlugin === void 0 ? void 0 : autoRowSizePlugin.getRowHeight(i)) !== null && _autoRowSizePlugin$ge !== void 0 ? _autoRowSizePlugin$ge : defaultHeight;\n    }\n  }\n  return height;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/mergeCells/mergeCells.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/mergeCells/renderer.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/plugins/mergeCells/renderer.mjs ***!
  \*******************************************************************/
/*! exports provided: createMergeCellRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createMergeCellRenderer\", function() { return createMergeCellRenderer; });\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n\n/**\n * Creates a renderer object for the `MergeCells` plugin.\n *\n * @private\n * @param {MergeCells} plugin The `MergeCells` plugin instance.\n * @returns {{before: Function, after: Function}}\n */\nfunction createMergeCellRenderer(plugin) {\n  const {\n    hot\n  } = plugin;\n  const {\n    rowIndexMapper: rowMapper,\n    columnIndexMapper: columnMapper\n  } = hot;\n\n  /**\n   * Runs before the cell is rendered.\n   *\n   * @private\n   */\n  function before() {}\n\n  /**\n   * Runs after the cell is rendered.\n   *\n   * @private\n   * @param {HTMLElement} TD The cell to be modified.\n   * @param {number} row Row index.\n   * @param {number} col Visual column index.\n   */\n  function after(TD, row, col) {\n    const mergedCell = plugin.mergedCellsCollection.get(row, col);\n    if (!Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(mergedCell)) {\n      TD.removeAttribute('rowspan');\n      TD.removeAttribute('colspan');\n      TD.style.display = '';\n      return;\n    }\n    const {\n      row: origRow,\n      col: origColumn,\n      colspan: origColspan,\n      rowspan: origRowspan\n    } = mergedCell;\n    const [lastMergedRowIndex, lastMergedColumnIndex] = plugin.translateMergedCellToRenderable(origRow, origRowspan, origColumn, origColspan);\n    const renderedRowIndex = rowMapper.getRenderableFromVisualIndex(row);\n    const renderedColumnIndex = columnMapper.getRenderableFromVisualIndex(col);\n    const maxRowSpan = lastMergedRowIndex - renderedRowIndex + 1; // Number of rendered columns.\n    const maxColSpan = lastMergedColumnIndex - renderedColumnIndex + 1; // Number of rendered columns.\n\n    const notHiddenRow = rowMapper.getNearestNotHiddenIndex(origRow, 1);\n    const notHiddenColumn = columnMapper.getNearestNotHiddenIndex(origColumn, 1);\n    const notHiddenRowspan = Math.min(origRowspan, maxRowSpan);\n    const notHiddenColspan = Math.min(origColspan, maxColSpan);\n    if (notHiddenRow === row && notHiddenColumn === col) {\n      TD.setAttribute('rowspan', notHiddenRowspan);\n      TD.setAttribute('colspan', notHiddenColspan);\n    } else {\n      TD.removeAttribute('rowspan');\n      TD.removeAttribute('colspan');\n      TD.style.display = 'none';\n    }\n  }\n  return {\n    before,\n    after\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/mergeCells/renderer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/multiColumnSorting/domHelpers.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/multiColumnSorting/domHelpers.mjs ***!
  \*****************************************************************************/
/*! exports provided: getClassesToAdd, getClassesToRemove */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getClassesToAdd\", function() { return getClassesToAdd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getClassesToRemove\", function() { return getClassesToRemove; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n\nconst COLUMN_ORDER_PREFIX = 'sort';\n\n/**\n * Get CSS classes which should be added to particular column header.\n *\n * @param {object} columnStatesManager Instance of column state manager.\n * @param {number} column Visual column index.\n * @param {boolean} showSortIndicator Indicates if indicator should be shown for the particular column.\n * @returns {Array} Array of CSS classes.\n */\nfunction getClassesToAdd(columnStatesManager, column, showSortIndicator) {\n  const cssClasses = [];\n  if (showSortIndicator === false) {\n    return cssClasses;\n  }\n  if (columnStatesManager.isColumnSorted(column) && columnStatesManager.getNumberOfSortedColumns() > 1) {\n    cssClasses.push(`${COLUMN_ORDER_PREFIX}-${columnStatesManager.getIndexOfColumnInSortQueue(column) + 1}`);\n  }\n  return cssClasses;\n}\n\n/**\n * Get CSS classes which should be removed from column header.\n *\n * @param {HTMLElement} htmlElement An element to process.\n * @returns {Array} Array of CSS classes.\n */\nfunction getClassesToRemove(htmlElement) {\n  const cssClasses = htmlElement.className.split(' ');\n  const sortSequenceRegExp = new RegExp(`^${COLUMN_ORDER_PREFIX}-[0-9]{1,2}$`);\n  return cssClasses.filter(cssClass => sortSequenceRegExp.test(cssClass));\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/multiColumnSorting/domHelpers.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/multiColumnSorting/index.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/multiColumnSorting/index.mjs ***!
  \************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, MultiColumnSorting */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _multiColumnSorting_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./multiColumnSorting.mjs */ \"./node_modules/handsontable/plugins/multiColumnSorting/multiColumnSorting.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _multiColumnSorting_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _multiColumnSorting_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MultiColumnSorting\", function() { return _multiColumnSorting_mjs__WEBPACK_IMPORTED_MODULE_0__[\"MultiColumnSorting\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/multiColumnSorting/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/multiColumnSorting/multiColumnSorting.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/multiColumnSorting/multiColumnSorting.mjs ***!
  \*************************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, MultiColumnSorting */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MultiColumnSorting\", function() { return MultiColumnSorting; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _columnSorting_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../columnSorting/index.mjs */ \"./node_modules/handsontable/plugins/columnSorting/index.mjs\");\n/* harmony import */ var _columnSorting_sortService_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../columnSorting/sortService/index.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortService/index.mjs\");\n/* harmony import */ var _columnSorting_utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../columnSorting/utils.mjs */ \"./node_modules/handsontable/plugins/columnSorting/utils.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _rootComparator_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./rootComparator.mjs */ \"./node_modules/handsontable/plugins/multiColumnSorting/rootComparator.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/plugins/multiColumnSorting/utils.mjs\");\n/* harmony import */ var _domHelpers_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./domHelpers.mjs */ \"./node_modules/handsontable/plugins/multiColumnSorting/domHelpers.mjs\");\n/* harmony import */ var _shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../shortcutContexts/index.mjs */ \"./node_modules/handsontable/shortcutContexts/index.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n\nconst PLUGIN_KEY = 'multiColumnSorting';\nconst PLUGIN_PRIORITY = 170;\nconst CONFLICTED_PLUGIN_KEY = 'columnSorting';\nconst SHORTCUTS_GROUP = PLUGIN_KEY;\nObject(_columnSorting_sortService_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"registerRootComparator\"])(PLUGIN_KEY, _rootComparator_mjs__WEBPACK_IMPORTED_MODULE_5__[\"rootComparator\"]);\n\n/**\n * @plugin MultiColumnSorting\n * @class MultiColumnSorting\n *\n * @description\n * This plugin sorts the view by columns (but does not sort the data source!). To enable the plugin, set the\n * {@link Options#multiColumnSorting} property to the correct value (see the examples below).\n *\n * @example\n * ```js\n * // as boolean\n * multiColumnSorting: true\n *\n * // as an object with initial sort config (sort ascending for column at index 1 and then sort descending for column at index 0)\n * multiColumnSorting: {\n *   initialConfig: [{\n *     column: 1,\n *     sortOrder: 'asc'\n *   }, {\n *     column: 0,\n *     sortOrder: 'desc'\n *   }]\n * }\n *\n * // as an object which define specific sorting options for all columns\n * multiColumnSorting: {\n *   sortEmptyCells: true, // true = the table sorts empty cells, false = the table moves all empty cells to the end of the table (by default)\n *   indicator: true, // true = shows indicator for all columns (by default), false = don't show indicator for columns\n *   headerAction: true, // true = allow to click on the headers to sort (by default), false = turn off possibility to click on the headers to sort\n *   compareFunctionFactory: function(sortOrder, columnMeta) {\n *     return function(value, nextValue) {\n *       // Some value comparisons which will return -1, 0 or 1...\n *     }\n *   }\n * }\n *\n * // as an object passed to the `column` property, allows specifying a custom options for the desired column.\n * // please take a look at documentation of `column` property: {@link Options#columns}\n * columns: [{\n *   multiColumnSorting: {\n *     indicator: false, // disable indicator for the first column,\n *     sortEmptyCells: true,\n *     headerAction: false, // clicks on the first column won't sort\n *     compareFunctionFactory: function(sortOrder, columnMeta) {\n *       return function(value, nextValue) {\n *         return 0; // Custom compare function for the first column (don't sort)\n *       }\n *     }\n *   }\n * }]\n * ```\n */\nclass MultiColumnSorting extends _columnSorting_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"ColumnSorting\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * Main settings key designed for the plugin.\n     *\n     * @private\n     * @type {string}\n     */\n    _defineProperty(this, \"pluginKey\", PLUGIN_KEY);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the Handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link MultiColumnSorting#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return super.isEnabled();\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    if (!this.enabled && this.hot.getSettings()[this.pluginKey] && this.hot.getSettings()[CONFLICTED_PLUGIN_KEY]) {\n      Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_6__[\"warnAboutPluginsConflict\"])();\n      this.hot.getPlugin(CONFLICTED_PLUGIN_KEY).disablePlugin();\n    }\n    super.enablePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    super.disablePlugin();\n  }\n\n  /**\n   * Register shortcuts responsible for toggling column sorting functionality.\n   *\n   * @private\n   */\n  registerShortcuts() {\n    super.registerShortcuts();\n    this.hot.getShortcutManager().getContext('grid').addShortcut({\n      keys: [['Shift', 'Enter']],\n      callback: () => {\n        const {\n          highlight\n        } = this.hot.getSelectedRangeLast();\n        if (highlight.row === -1 && highlight.col >= 0) {\n          this.sort(this.getNextSortConfig(highlight.col, _columnSorting_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"APPEND_COLUMN_CONFIG_STRATEGY\"]));\n        }\n\n        // prevent default Enter behavior (move to the next row within a selection range)\n        return false;\n      },\n      runOnlyIf: () => {\n        var _this$hot$getSelected, _this$hot$getSelected2;\n        const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;\n        return highlight && ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.isSingle()) && this.hot.selection.isCellVisible(highlight) && highlight.isHeader();\n      },\n      relativeToGroup: _shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"EDITOR_EDIT_GROUP\"],\n      position: 'before',\n      group: SHORTCUTS_GROUP\n    });\n  }\n\n  /**\n   * Unregister shortcuts responsible for toggling column sorting functionality.\n   *\n   * @private\n   */\n  unregisterShortcuts() {\n    super.unregisterShortcuts();\n    this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);\n  }\n\n  /**\n   * Sorts the table by chosen columns and orders.\n   *\n   * @param {undefined|object|Array} sortConfig Single column sort configuration or full sort configuration (for all sorted columns).\n   * The configuration object contains `column` and `sortOrder` properties. First of them contains visual column index, the second one contains\n   * sort order (`asc` for ascending, `desc` for descending).\n   *\n   * **Note**: Please keep in mind that every call of `sort` function set an entirely new sort order. Previous sort configs aren't preserved.\n   *\n   * @example\n   * ```js\n   * // sort ascending first visual column\n   * hot.getPlugin('multiColumnSorting').sort({ column: 0, sortOrder: 'asc' });\n   *\n   * // sort first two visual column in the defined sequence\n   * hot.getPlugin('multiColumnSorting').sort([{\n   *   column: 1, sortOrder: 'asc'\n   * }, {\n   *   column: 0, sortOrder: 'desc'\n   * }]);\n   * ```\n   *\n   * @fires Hooks#beforeColumnSort\n   * @fires Hooks#afterColumnSort\n   */\n  sort(sortConfig) {\n    super.sort(sortConfig);\n  }\n\n  /**\n   * Clear the sort performed on the table.\n   */\n  clearSort() {\n    super.clearSort();\n  }\n\n  /**\n   * Checks if the table is sorted (any column have to be sorted).\n   *\n   * @returns {boolean}\n   */\n  isSorted() {\n    return super.isSorted();\n  }\n\n  /**\n   * Get sort configuration for particular column or for all sorted columns. Objects contain `column` and `sortOrder` properties.\n   *\n   * **Note**: Please keep in mind that returned objects expose **visual** column index under the `column` key. They are handled by the `sort` function.\n   *\n   * @param {number} [column] Visual column index.\n   * @returns {undefined|object|Array}\n   */\n  getSortConfig(column) {\n    return super.getSortConfig(column);\n  }\n\n  /**\n   * @description\n   * Warn: Useful mainly for providing server side sort implementation (see in the example below). It doesn't sort the data set. It just sets sort configuration for all sorted columns.\n   * Note: Please keep in mind that this method doesn't re-render the table.\n   *\n   * @example\n   * ```js\n   * beforeColumnSort: function(currentSortConfig, destinationSortConfigs) {\n   *   const columnSortPlugin = this.getPlugin('multiColumnSorting');\n   *\n   *   columnSortPlugin.setSortConfig(destinationSortConfigs);\n   *\n   *   // const newData = ... // Calculated data set, ie. from an AJAX call.\n   *\n   *   this.loadData(newData); // Load new data set and re-render the table.\n   *\n   *   return false; // The blockade for the default sort action.\n   * }\n   * ```\n   *\n   * @param {undefined|object|Array} sortConfig Single column sort configuration or full sort configuration (for all sorted columns).\n   * The configuration object contains `column` and `sortOrder` properties. First of them contains visual column index, the second one contains\n   * sort order (`asc` for ascending, `desc` for descending).\n   */\n  setSortConfig(sortConfig) {\n    super.setSortConfig(sortConfig);\n  }\n\n  /**\n   * Get normalized sort configs.\n   *\n   * @private\n   * @param {object|Array} [sortConfig=[]] Single column sort configuration or full sort configuration (for all sorted columns).\n   * The configuration object contains `column` and `sortOrder` properties. First of them contains visual column index, the second one contains\n   * sort order (`asc` for ascending, `desc` for descending).\n   * @returns {Array}\n   */\n  getNormalizedSortConfigs() {\n    let sortConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    if (Array.isArray(sortConfig)) {\n      return sortConfig;\n    }\n    return [sortConfig];\n  }\n\n  /**\n   * Update header classes.\n   *\n   * @private\n   * @param {HTMLElement} headerSpanElement Header span element.\n   * @param {...*} args Extra arguments for helpers.\n   */\n  updateHeaderClasses(headerSpanElement) {\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n    super.updateHeaderClasses(headerSpanElement, ...args);\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"removeClass\"])(headerSpanElement, Object(_domHelpers_mjs__WEBPACK_IMPORTED_MODULE_7__[\"getClassesToRemove\"])(headerSpanElement));\n    if (this.enabled !== false) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"addClass\"])(headerSpanElement, Object(_domHelpers_mjs__WEBPACK_IMPORTED_MODULE_7__[\"getClassesToAdd\"])(...args));\n    }\n  }\n\n  /**\n   * Overwriting base plugin's `onUpdateSettings` method. Please keep in mind that `onAfterUpdateSettings` isn't called\n   * for `updateSettings` in specific situations.\n   *\n   * @private\n   * @param {object} newSettings New settings object.\n   */\n  onUpdateSettings(newSettings) {\n    if (this.hot.getSettings()[this.pluginKey] && this.hot.getSettings()[CONFLICTED_PLUGIN_KEY]) {\n      Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_6__[\"warnAboutPluginsConflict\"])();\n    }\n    super.onUpdateSettings(newSettings);\n  }\n\n  /**\n   * Callback for the `onAfterOnCellMouseDown` hook.\n   *\n   * @private\n   * @param {Event} event Event which are provided by hook.\n   * @param {CellCoords} coords Visual coords of the selected cell.\n   */\n  onAfterOnCellMouseDown(event, coords) {\n    if (Object(_columnSorting_utils_mjs__WEBPACK_IMPORTED_MODULE_3__[\"wasHeaderClickedProperly\"])(coords.row, coords.col, event) === false) {\n      return;\n    }\n    if (this.wasClickableHeaderClicked(event, coords.col)) {\n      if (this.hot.getShortcutManager().isCtrlPressed()) {\n        this.hot.deselectCell();\n        this.hot.selectColumns(coords.col);\n        this.sort(this.getNextSortConfig(coords.col, _columnSorting_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"APPEND_COLUMN_CONFIG_STRATEGY\"]));\n      } else {\n        this.sort(this.getColumnNextConfig(coords.col));\n      }\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/multiColumnSorting/multiColumnSorting.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/multiColumnSorting/rootComparator.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/multiColumnSorting/rootComparator.mjs ***!
  \*********************************************************************************/
/*! exports provided: rootComparator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rootComparator\", function() { return rootComparator; });\n/* harmony import */ var _columnSorting_sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../columnSorting/sortService/index.mjs */ \"./node_modules/handsontable/plugins/columnSorting/sortService/index.mjs\");\n\n/**\n * Sort comparator handled by conventional sort algorithm.\n *\n * @param {Array} sortingOrders Sort orders (`asc` for ascending, `desc` for descending).\n * @param {Array} columnMetas Column meta objects.\n * @returns {Function}\n */\nfunction rootComparator(sortingOrders, columnMetas) {\n  return function (rowIndexWithValues, nextRowIndexWithValues) {\n    // We sort array of arrays. Single array is in form [rowIndex, ...values].\n    // We compare just values, stored at second index of array.\n    const [, ...values] = rowIndexWithValues;\n    const [, ...nextValues] = nextRowIndexWithValues;\n    return function getCompareResult(column) {\n      const sortingOrder = sortingOrders[column];\n      const columnMeta = columnMetas[column];\n      const value = values[column];\n      const nextValue = nextValues[column];\n      const pluginSettings = columnMeta.multiColumnSorting;\n      const compareFunctionFactory = pluginSettings.compareFunctionFactory ? pluginSettings.compareFunctionFactory : Object(_columnSorting_sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getCompareFunctionFactory\"])(columnMeta.type);\n      const compareResult = compareFunctionFactory(sortingOrder, columnMeta, pluginSettings)(value, nextValue);\n      if (compareResult === _columnSorting_sortService_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"DO_NOT_SWAP\"]) {\n        const nextSortedColumn = column + 1;\n        if (typeof columnMetas[nextSortedColumn] !== 'undefined') {\n          return getCompareResult(nextSortedColumn);\n        }\n      }\n      return compareResult;\n    }(0);\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/multiColumnSorting/rootComparator.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/multiColumnSorting/utils.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/multiColumnSorting/utils.mjs ***!
  \************************************************************************/
/*! exports provided: warnAboutPluginsConflict */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"warnAboutPluginsConflict\", function() { return warnAboutPluginsConflict; });\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n\n\n/**\n * Warn users about problems when using `columnSorting` and `multiColumnSorting` plugins simultaneously.\n */\nfunction warnAboutPluginsConflict() {\n  Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_0__[\"warn\"])(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__[\"toSingleLine\"]`Plugins \\`columnSorting\\` and \\`multiColumnSorting\\` should not be enabled simultaneously. \n    Only \\`multiColumnSorting\\` will work. The \\`columnSorting\\` plugin will be disabled.`);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/multiColumnSorting/utils.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/multipleSelectionHandles/index.mjs":
/*!******************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/multipleSelectionHandles/index.mjs ***!
  \******************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, MultipleSelectionHandles */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _multipleSelectionHandles_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./multipleSelectionHandles.mjs */ \"./node_modules/handsontable/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _multipleSelectionHandles_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _multipleSelectionHandles_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MultipleSelectionHandles\", function() { return _multipleSelectionHandles_mjs__WEBPACK_IMPORTED_MODULE_0__[\"MultipleSelectionHandles\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/multipleSelectionHandles/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs":
/*!*************************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs ***!
  \*************************************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, MultipleSelectionHandles */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MultipleSelectionHandles\", function() { return MultipleSelectionHandles; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/browser.mjs */ \"./node_modules/handsontable/helpers/browser.mjs\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\nconst PLUGIN_KEY = 'multipleSelectionHandles';\nconst PLUGIN_PRIORITY = 160;\n\n/**\n * @private\n * @plugin MultipleSelectionHandles\n * @class MultipleSelectionHandles\n */\nclass MultipleSelectionHandles extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * @type {Array}\n     */\n    _defineProperty(this, \"dragged\", []);\n    /**\n     * @type {null}\n     */\n    _defineProperty(this, \"lastSetCell\", null);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Check if the plugin is enabled in the handsontable settings.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isMobileBrowser\"])();\n  }\n\n  /**\n   * Enable plugin for this Handsontable instance.\n   */\n  enablePlugin() {\n    if (this.enabled) {\n      return;\n    }\n    this.registerListeners();\n    super.enablePlugin();\n  }\n\n  /**\n   * Bind the touch events.\n   *\n   * @private\n   */\n  registerListeners() {\n    const _this = this;\n    const {\n      rootElement\n    } = this.hot;\n\n    /**\n     * @private\n     * @param {string} query Query for the position.\n     * @returns {boolean}\n     */\n    function removeFromDragged(query) {\n      if (_this.dragged.length === 1) {\n        // clear array\n        _this.dragged.splice(0, _this.dragged.length);\n        return true;\n      }\n      const entryPosition = _this.dragged.indexOf(query);\n      if (entryPosition === -1) {\n        return false;\n      } else if (entryPosition === 0) {\n        _this.dragged = _this.dragged.slice(0, 1);\n      } else if (entryPosition === 1) {\n        _this.dragged = _this.dragged.slice(-1);\n      }\n    }\n    this.eventManager.addEventListener(rootElement, 'touchstart', event => {\n      let selectedRange;\n      if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasClass\"])(event.target, 'topSelectionHandle-HitArea')) {\n        selectedRange = _this.hot.getSelectedRangeLast();\n        _this.dragged.push('top');\n        _this.touchStartRange = {\n          width: selectedRange.getWidth(),\n          height: selectedRange.getHeight(),\n          direction: selectedRange.getDirection()\n        };\n        event.preventDefault();\n        return false;\n      } else if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasClass\"])(event.target, 'bottomSelectionHandle-HitArea')) {\n        selectedRange = _this.hot.getSelectedRangeLast();\n        _this.dragged.push('bottom');\n        _this.touchStartRange = {\n          width: selectedRange.getWidth(),\n          height: selectedRange.getHeight(),\n          direction: selectedRange.getDirection()\n        };\n        event.preventDefault();\n        return false;\n      }\n    });\n    this.eventManager.addEventListener(rootElement, 'touchend', event => {\n      if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasClass\"])(event.target, 'topSelectionHandle-HitArea')) {\n        removeFromDragged.call(_this, 'top');\n        _this.touchStartRange = undefined;\n        event.preventDefault();\n        return false;\n      } else if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasClass\"])(event.target, 'bottomSelectionHandle-HitArea')) {\n        removeFromDragged.call(_this, 'bottom');\n        _this.touchStartRange = undefined;\n        event.preventDefault();\n        return false;\n      }\n    });\n    this.eventManager.addEventListener(rootElement, 'touchmove', event => {\n      const {\n        rootDocument\n      } = this.hot;\n      let targetCoords;\n      let selectedRange;\n      let rangeWidth;\n      let rangeHeight;\n      let rangeDirection;\n      let newRangeCoords;\n      if (_this.dragged.length === 0) {\n        return;\n      }\n      const endTarget = rootDocument.elementFromPoint(event.touches[0].clientX, event.touches[0].clientY);\n      if (!endTarget || endTarget === _this.lastSetCell) {\n        return;\n      }\n      if (endTarget.nodeName === 'TD' || endTarget.nodeName === 'TH') {\n        targetCoords = _this.hot.getCoords(endTarget);\n        if (targetCoords.col === -1) {\n          targetCoords.col = 0;\n        }\n        selectedRange = _this.hot.getSelectedRangeLast();\n        rangeWidth = selectedRange.getWidth();\n        rangeHeight = selectedRange.getHeight();\n        rangeDirection = selectedRange.getDirection();\n        if (rangeWidth === 1 && rangeHeight === 1) {\n          _this.hot.selection.setRangeEnd(targetCoords);\n        }\n        newRangeCoords = _this.getCurrentRangeCoords(selectedRange, targetCoords, _this.touchStartRange.direction, rangeDirection, _this.dragged[0]);\n        if (newRangeCoords.start !== null) {\n          _this.hot.selection.setRangeStart(newRangeCoords.start);\n        }\n        _this.hot.selection.setRangeEnd(newRangeCoords.end);\n        _this.lastSetCell = endTarget;\n      }\n      event.preventDefault();\n    });\n  }\n  getCurrentRangeCoords(selectedRange, currentTouch, touchStartDirection, currentDirection, draggedHandle) {\n    const topStartCorner = selectedRange.getTopStartCorner();\n    const bottomEndCorner = selectedRange.getBottomEndCorner();\n    const bottomStartCorner = selectedRange.getBottomStartCorner();\n    const topEndCorner = selectedRange.getTopEndCorner();\n    let newCoords = {\n      start: null,\n      end: null\n    };\n    switch (touchStartDirection) {\n      case 'NE-SW':\n        switch (currentDirection) {\n          case 'NE-SW':\n          case 'NW-SE':\n            if (draggedHandle === 'top') {\n              newCoords = {\n                start: this.hot._createCellCoords(currentTouch.row, selectedRange.highlight.col),\n                end: this.hot._createCellCoords(bottomStartCorner.row, currentTouch.col)\n              };\n            } else {\n              newCoords = {\n                start: this.hot._createCellCoords(selectedRange.highlight.row, currentTouch.col),\n                end: this.hot._createCellCoords(currentTouch.row, topStartCorner.col)\n              };\n            }\n            break;\n          case 'SE-NW':\n            if (draggedHandle === 'bottom') {\n              newCoords = {\n                start: this.hot._createCellCoords(bottomEndCorner.row, currentTouch.col),\n                end: this.hot._createCellCoords(currentTouch.row, topStartCorner.col)\n              };\n            }\n            break;\n          default:\n            break;\n        }\n        break;\n      case 'NW-SE':\n        switch (currentDirection) {\n          case 'NE-SW':\n            if (draggedHandle === 'top') {\n              newCoords = {\n                start: currentTouch,\n                end: bottomStartCorner\n              };\n            } else {\n              newCoords.end = currentTouch;\n            }\n            break;\n          case 'NW-SE':\n            if (draggedHandle === 'top') {\n              newCoords = {\n                start: currentTouch,\n                end: bottomEndCorner\n              };\n            } else {\n              newCoords.end = currentTouch;\n            }\n            break;\n          case 'SE-NW':\n            if (draggedHandle === 'top') {\n              newCoords = {\n                start: currentTouch,\n                end: topStartCorner\n              };\n            } else {\n              newCoords.end = currentTouch;\n            }\n            break;\n          case 'SW-NE':\n            if (draggedHandle === 'top') {\n              newCoords = {\n                start: currentTouch,\n                end: topEndCorner\n              };\n            } else {\n              newCoords.end = currentTouch;\n            }\n            break;\n          default:\n            break;\n        }\n        break;\n      case 'SW-NE':\n        switch (currentDirection) {\n          case 'NW-SE':\n            if (draggedHandle === 'bottom') {\n              newCoords = {\n                start: this.hot._createCellCoords(currentTouch.row, topStartCorner.col),\n                end: this.hot._createCellCoords(bottomStartCorner.row, currentTouch.col)\n              };\n            } else {\n              newCoords = {\n                start: this.hot._createCellCoords(topStartCorner.row, currentTouch.col),\n                end: this.hot._createCellCoords(currentTouch.row, bottomEndCorner.col)\n              };\n            }\n            break;\n          // case 'NE-SW':\n          //\n          //  break;\n          case 'SW-NE':\n            if (draggedHandle === 'top') {\n              newCoords = {\n                start: this.hot._createCellCoords(selectedRange.highlight.row, currentTouch.col),\n                end: this.hot._createCellCoords(currentTouch.row, bottomEndCorner.col)\n              };\n            } else {\n              newCoords = {\n                start: this.hot._createCellCoords(currentTouch.row, topStartCorner.col),\n                end: this.hot._createCellCoords(topStartCorner.row, currentTouch.col)\n              };\n            }\n            break;\n          case 'SE-NW':\n            if (draggedHandle === 'bottom') {\n              newCoords = {\n                start: this.hot._createCellCoords(currentTouch.row, topEndCorner.col),\n                end: this.hot._createCellCoords(topStartCorner.row, currentTouch.col)\n              };\n            } else if (draggedHandle === 'top') {\n              newCoords = {\n                start: bottomStartCorner,\n                end: currentTouch\n              };\n            }\n            break;\n          default:\n            break;\n        }\n        break;\n      case 'SE-NW':\n        switch (currentDirection) {\n          case 'NW-SE':\n          case 'NE-SW':\n          case 'SW-NE':\n            if (draggedHandle === 'top') {\n              newCoords.end = currentTouch;\n            }\n            break;\n          case 'SE-NW':\n            if (draggedHandle === 'top') {\n              newCoords.end = currentTouch;\n            } else {\n              newCoords = {\n                start: currentTouch,\n                end: topStartCorner\n              };\n            }\n            break;\n          default:\n            break;\n        }\n        break;\n      default:\n        break;\n    }\n    return newCoords;\n  }\n\n  /**\n   * Check if user is currently dragging the handle.\n   *\n   * @returns {boolean} Dragging state.\n   */\n  isDragged() {\n    return this.dragged.length > 0;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedHeaders/index.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedHeaders/index.mjs ***!
  \*******************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, NestedHeaders */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nestedHeaders_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nestedHeaders.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/nestedHeaders.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _nestedHeaders_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _nestedHeaders_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NestedHeaders\", function() { return _nestedHeaders_mjs__WEBPACK_IMPORTED_MODULE_0__[\"NestedHeaders\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedHeaders/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedHeaders/nestedHeaders.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedHeaders/nestedHeaders.mjs ***!
  \***************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, NestedHeaders */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NestedHeaders\", function() { return NestedHeaders; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _selection_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../selection/index.mjs */ \"./node_modules/handsontable/selection/index.mjs\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _stateManager_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./stateManager/index.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/index.mjs\");\n/* harmony import */ var _utils_ghostTable_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils/ghostTable.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/utils/ghostTable.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\nconst PLUGIN_KEY = 'nestedHeaders';\nconst PLUGIN_PRIORITY = 280;\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @plugin NestedHeaders\n * @class NestedHeaders\n *\n * @description\n * The plugin allows to create a nested header structure, using the HTML's colspan attribute.\n *\n * To make any header wider (covering multiple table columns), it's corresponding configuration array element should be\n * provided as an object with `label` and `colspan` properties. The `label` property defines the header's label,\n * while the `colspan` property defines a number of columns that the header should cover.\n * You can also set custom class names to any of the headers by providing the `headerClassName` property.\n *\n * __Note__ that the plugin supports a *nested* structure, which means, any header cannot be wider than it's \"parent\". In\n * other words, headers cannot overlap each other.\n * @example\n *\n * ::: only-for javascript\n * ```js\n * const container = document.getElementById('example');\n * const hot = new Handsontable(container, {\n *   data: getData(),\n *   nestedHeaders: [\n *     ['A', {label: 'B', colspan: 8, headerClassName: 'htRight'}, 'C'],\n *     ['D', {label: 'E', colspan: 4}, {label: 'F', colspan: 4}, 'G'],\n *     ['H', {label: 'I', colspan: 2}, {label: 'J', colspan: 2}, {label: 'K', colspan: 2}, {label: 'L', colspan: 2}, 'M'],\n *     ['N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W']\n *  ],\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * <HotTable\n *   data={getData()}\n *   nestedHeaders={[\n *     ['A', {label: 'B', colspan: 8, headerClassName: 'htRight'}, 'C'],\n *     ['D', {label: 'E', colspan: 4}, {label: 'F', colspan: 4}, 'G'],\n *     ['H', {label: 'I', colspan: 2}, {label: 'J', colspan: 2}, {label: 'K', colspan: 2}, {label: 'L', colspan: 2}, 'M'],\n *     ['N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W']\n *  ]}\n * />\n * ```\n * :::\n */\nvar _stateManager = /*#__PURE__*/new WeakMap();\nvar _hidingIndexMapObserver = /*#__PURE__*/new WeakMap();\nvar _focusInitialCoords = /*#__PURE__*/new WeakMap();\nvar _isColumnsSelectionInProgress = /*#__PURE__*/new WeakMap();\nvar _NestedHeaders_brand = /*#__PURE__*/new WeakSet();\nclass NestedHeaders extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * Updates the selection focus highlight position to point to the nested header root element (TH)\n     * even when the logical coordinates point in-between the header.\n     */\n    _classPrivateMethodInitSpec(this, _NestedHeaders_brand);\n    /**\n     * The state manager for the nested headers.\n     *\n     * @type {StateManager}\n     */\n    _classPrivateFieldInitSpec(this, _stateManager, new _stateManager_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"]());\n    /**\n     * The instance of the ChangesObservable class that allows track the changes that happens in the\n     * column indexes.\n     *\n     * @type {ChangesObservable}\n     */\n    _classPrivateFieldInitSpec(this, _hidingIndexMapObserver, null);\n    /**\n     * Holds the coords that points to the place where the column selection starts.\n     *\n     * @type {number|null}\n     */\n    _classPrivateFieldInitSpec(this, _focusInitialCoords, null);\n    /**\n     * Determines if there is performed the column selection.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _isColumnsSelectionInProgress, false);\n    /**\n     * Custom helper for getting widths of the nested headers.\n     *\n     * @private\n     * @type {GhostTable}\n     */\n    // @TODO This should be changed after refactor handsontable/utils/ghostTable.\n    _defineProperty(this, \"ghostTable\", new _utils_ghostTable_mjs__WEBPACK_IMPORTED_MODULE_10__[\"default\"](this.hot, (row, column) => this.getHeaderSettings(row, column)));\n    /**\n     * The flag which determines that the nested header settings contains overlapping headers\n     * configuration.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"detectedOverlappedHeaders\", false);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Check if plugin is enabled.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    const {\n      nestedHeaders\n    } = this.hot.getSettings();\n    if (!Array.isArray(nestedHeaders) || !Array.isArray(nestedHeaders[0])) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_6__[\"warn\"])(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_4__[\"toSingleLine\"]`Your Nested Headers plugin configuration is invalid. The settings has to be\\x20\n                        passed as an array of arrays e.q. [['A1', { label: 'A2', colspan: 2 }]]`);\n    }\n    this.addHook('init', () => _assertClassBrand(_NestedHeaders_brand, this, _onInit).call(this));\n    this.addHook('afterLoadData', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_NestedHeaders_brand, _this, _onAfterLoadData).call(_this, ...args);\n    });\n    this.addHook('beforeOnCellMouseDown', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeOnCellMouseDown).call(_this, ...args);\n    });\n    this.addHook('afterOnCellMouseDown', function () {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n      return _assertClassBrand(_NestedHeaders_brand, _this, _onAfterOnCellMouseDown).call(_this, ...args);\n    });\n    this.addHook('beforeOnCellMouseOver', function () {\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n      return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeOnCellMouseOver).call(_this, ...args);\n    });\n    this.addHook('beforeOnCellMouseUp', function () {\n      for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n        args[_key5] = arguments[_key5];\n      }\n      return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeOnCellMouseUp).call(_this, ...args);\n    });\n    this.addHook('beforeSelectionHighlightSet', function () {\n      for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n        args[_key6] = arguments[_key6];\n      }\n      return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeSelectionHighlightSet).call(_this, ...args);\n    });\n    this.addHook('modifyTransformStart', function () {\n      for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n        args[_key7] = arguments[_key7];\n      }\n      return _assertClassBrand(_NestedHeaders_brand, _this, _onModifyTransformStart).call(_this, ...args);\n    });\n    this.addHook('afterSelection', () => _assertClassBrand(_NestedHeaders_brand, this, _updateFocusHighlightPosition).call(this));\n    this.addHook('afterSelectionFocusSet', () => _assertClassBrand(_NestedHeaders_brand, this, _updateFocusHighlightPosition).call(this));\n    this.addHook('beforeViewportScrollHorizontally', function () {\n      for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n        args[_key8] = arguments[_key8];\n      }\n      return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeViewportScrollHorizontally).call(_this, ...args);\n    });\n    this.addHook('afterGetColumnHeaderRenderers', array => _assertClassBrand(_NestedHeaders_brand, this, _onAfterGetColumnHeaderRenderers).call(this, array));\n    this.addHook('modifyColWidth', function () {\n      for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n        args[_key9] = arguments[_key9];\n      }\n      return _assertClassBrand(_NestedHeaders_brand, _this, _onModifyColWidth).call(_this, ...args);\n    });\n    this.addHook('modifyColumnHeaderValue', function () {\n      for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n        args[_key10] = arguments[_key10];\n      }\n      return _assertClassBrand(_NestedHeaders_brand, _this, _onModifyColumnHeaderValue).call(_this, ...args);\n    });\n    this.addHook('beforeHighlightingColumnHeader', function () {\n      for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n        args[_key11] = arguments[_key11];\n      }\n      return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeHighlightingColumnHeader).call(_this, ...args);\n    });\n    this.addHook('beforeCopy', function () {\n      for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n        args[_key12] = arguments[_key12];\n      }\n      return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeCopy).call(_this, ...args);\n    });\n    this.addHook('beforeSelectColumns', function () {\n      for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n        args[_key13] = arguments[_key13];\n      }\n      return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeSelectColumns).call(_this, ...args);\n    });\n    this.addHook('afterViewportColumnCalculatorOverride', function () {\n      for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n        args[_key14] = arguments[_key14];\n      }\n      return _assertClassBrand(_NestedHeaders_brand, _this, _onAfterViewportColumnCalculatorOverride).call(_this, ...args);\n    });\n    this.addHook('modifyFocusedElement', function () {\n      for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {\n        args[_key15] = arguments[_key15];\n      }\n      return _assertClassBrand(_NestedHeaders_brand, _this, _onModifyFocusedElement).call(_this, ...args);\n    });\n    this.hot.columnIndexMapper.addLocalHook('cacheUpdated', () => _assertClassBrand(_NestedHeaders_brand, this, _updateFocusHighlightPosition).call(this));\n    this.hot.rowIndexMapper.addLocalHook('cacheUpdated', () => _assertClassBrand(_NestedHeaders_brand, this, _updateFocusHighlightPosition).call(this));\n    super.enablePlugin();\n    this.updatePlugin(); // @TODO: Workaround for broken plugin initialization abstraction.\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`nestedHeaders`](@/api/options.md#nestedheaders)\n   */\n  updatePlugin() {\n    if (!this.hot.view) {\n      // @TODO: Workaround for broken plugin initialization abstraction.\n      return;\n    }\n    const {\n      nestedHeaders\n    } = this.hot.getSettings();\n    _classPrivateFieldGet(_stateManager, this).setColumnsLimit(this.hot.countCols());\n    if (Array.isArray(nestedHeaders)) {\n      this.detectedOverlappedHeaders = _classPrivateFieldGet(_stateManager, this).setState(nestedHeaders);\n    }\n    if (this.detectedOverlappedHeaders) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_6__[\"warn\"])(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_4__[\"toSingleLine\"]`Your Nested Headers plugin setup contains overlapping headers. This kind of configuration\\x20\n                        is currently not supported.`);\n    }\n    if (this.enabled) {\n      // This line covers the case when a developer uses the external hiding maps to manipulate\n      // the columns' visibility. The tree state built from the settings - which is always built\n      // as if all the columns are visible, needs to be modified to be in sync with a dataset.\n      this.hot.columnIndexMapper.hidingMapsCollection.getMergedValues().forEach((isColumnHidden, physicalColumnIndex) => {\n        const actionName = isColumnHidden === true ? 'hide-column' : 'show-column';\n        _classPrivateFieldGet(_stateManager, this).triggerColumnModification(actionName, physicalColumnIndex);\n      });\n    }\n    if (!_classPrivateFieldGet(_hidingIndexMapObserver, this) && this.enabled) {\n      _classPrivateFieldSet(_hidingIndexMapObserver, this, this.hot.columnIndexMapper.createChangesObserver('hiding').subscribe(changes => {\n        changes.forEach(_ref => {\n          let {\n            op,\n            index: columnIndex,\n            newValue\n          } = _ref;\n          if (op === 'replace') {\n            const actionName = newValue === true ? 'hide-column' : 'show-column';\n            _classPrivateFieldGet(_stateManager, this).triggerColumnModification(actionName, columnIndex);\n          }\n        });\n        this.ghostTable.buildWidthsMap();\n      }));\n    }\n    this.ghostTable.setLayersCount(this.getLayersCount()).buildWidthsMap();\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.clearColspans();\n    _classPrivateFieldGet(_stateManager, this).clear();\n    _classPrivateFieldGet(_hidingIndexMapObserver, this).unsubscribe();\n    _classPrivateFieldSet(_hidingIndexMapObserver, this, null);\n    this.ghostTable.clear();\n    super.disablePlugin();\n  }\n\n  /**\n   * Returns an instance of the internal state manager of the plugin.\n   *\n   * @private\n   * @returns {StateManager}\n   */\n  getStateManager() {\n    return _classPrivateFieldGet(_stateManager, this);\n  }\n\n  /**\n   * Gets a total number of headers levels.\n   *\n   * @private\n   * @returns {number}\n   */\n  getLayersCount() {\n    return _classPrivateFieldGet(_stateManager, this).getLayersCount();\n  }\n\n  /**\n   * Gets column settings for a specified header. The returned object contains\n   * information about the header label, its colspan length, or if it is hidden\n   * in the header renderers.\n   *\n   * @private\n   * @param {number} headerLevel Header level (0 = most distant to the table).\n   * @param {number} columnIndex A visual column index.\n   * @returns {object}\n   */\n  getHeaderSettings(headerLevel, columnIndex) {\n    return _classPrivateFieldGet(_stateManager, this).getHeaderSettings(headerLevel, columnIndex);\n  }\n\n  /**\n   * Clear the colspans remaining after plugin usage.\n   *\n   * @private\n   */\n  clearColspans() {\n    if (!this.hot.view) {\n      return;\n    }\n    const {\n      _wt: wt\n    } = this.hot.view;\n    const headerLevels = wt.getSetting('columnHeaders').length;\n    const mainHeaders = wt.wtTable.THEAD;\n    const topHeaders = wt.wtOverlays.topOverlay.clone.wtTable.THEAD;\n    const topLeftCornerHeaders = wt.wtOverlays.topInlineStartCornerOverlay ? wt.wtOverlays.topInlineStartCornerOverlay.clone.wtTable.THEAD : null;\n    for (let i = 0; i < headerLevels; i++) {\n      const masterLevel = mainHeaders.childNodes[i];\n      if (!masterLevel) {\n        break;\n      }\n      const topLevel = topHeaders.childNodes[i];\n      const topLeftCornerLevel = topLeftCornerHeaders ? topLeftCornerHeaders.childNodes[i] : null;\n      for (let j = 0, masterNodes = masterLevel.childNodes.length; j < masterNodes; j++) {\n        masterLevel.childNodes[j].removeAttribute('colspan');\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"removeClass\"])(masterLevel.childNodes[j], 'hiddenHeader');\n        if (topLevel && topLevel.childNodes[j]) {\n          topLevel.childNodes[j].removeAttribute('colspan');\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"removeClass\"])(topLevel.childNodes[j], 'hiddenHeader');\n        }\n        if (topLeftCornerHeaders && topLeftCornerLevel && topLeftCornerLevel.childNodes[j]) {\n          topLeftCornerLevel.childNodes[j].removeAttribute('colspan');\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"removeClass\"])(topLeftCornerLevel.childNodes[j], 'hiddenHeader');\n        }\n      }\n    }\n  }\n\n  /**\n   * Generates the appropriate header renderer for a header row.\n   *\n   * @private\n   * @param {number} headerLevel The index of header level counting from the top (positive\n   *                             values counting from 0 to N).\n   * @returns {Function}\n   * @fires Hooks#afterGetColHeader\n   */\n  headerRendererFactory(headerLevel) {\n    var _this2 = this;\n    const fixedColumnsStart = this.hot.view._wt.getSetting('fixedColumnsStart');\n    return (renderedColumnIndex, TH) => {\n      var _classPrivateFieldGet2;\n      const {\n        columnIndexMapper,\n        view\n      } = this.hot;\n      let visualColumnIndex = columnIndexMapper.getVisualFromRenderableIndex(renderedColumnIndex);\n      if (visualColumnIndex === null) {\n        visualColumnIndex = renderedColumnIndex;\n      }\n      TH.removeAttribute('colspan');\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"removeClass\"])(TH, 'hiddenHeader');\n      const {\n        colspan,\n        isHidden,\n        isPlaceholder,\n        headerClassNames\n      } = (_classPrivateFieldGet2 = _classPrivateFieldGet(_stateManager, this).getHeaderSettings(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : {\n        label: ''\n      };\n      if (isPlaceholder || isHidden) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(TH, 'hiddenHeader');\n      } else if (colspan > 1) {\n        var _wtOverlays$topInline, _wtOverlays$inlineSta;\n        const {\n          wtOverlays\n        } = view._wt;\n        const isTopInlineStartOverlay = (_wtOverlays$topInline = wtOverlays.topInlineStartCornerOverlay) === null || _wtOverlays$topInline === void 0 ? void 0 : _wtOverlays$topInline.clone.wtTable.THEAD.contains(TH);\n        const isInlineStartOverlay = (_wtOverlays$inlineSta = wtOverlays.inlineStartOverlay) === null || _wtOverlays$inlineSta === void 0 ? void 0 : _wtOverlays$inlineSta.clone.wtTable.THEAD.contains(TH);\n\n        // Check if there is a fixed column enabled, if so then reduce colspan to fixed column width.\n        const correctedColspan = isTopInlineStartOverlay || isInlineStartOverlay ? Math.min(colspan, fixedColumnsStart - renderedColumnIndex) : colspan;\n        if (correctedColspan > 1) {\n          TH.setAttribute('colspan', correctedColspan);\n        }\n      }\n      this.hot.view.appendColHeader(visualColumnIndex, TH, function () {\n        return _this2.getColumnHeaderValue(...arguments);\n      }, headerLevel);\n\n      // Replace the higher-order `headerClassName`s with the one provided in the plugin config, if it was provided.\n      if (!isPlaceholder && !isHidden) {\n        const innerHeaderDiv = TH.querySelector('div.relative');\n        if (innerHeaderDiv && headerClassNames && headerClassNames.length > 0) {\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"removeClass\"])(innerHeaderDiv, this.hot.getColumnMeta(visualColumnIndex).headerClassName);\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(innerHeaderDiv, headerClassNames);\n        }\n      }\n    };\n  }\n\n  /**\n   * Returns the column header value for specified column and header level index.\n   *\n   * @private\n   * @param {number} visualColumnIndex Visual column index.\n   * @param {number} headerLevel The index of header level. The header level accepts positive (0 to N)\n   *                             and negative (-1 to -N) values. For positive values, 0 points to the\n   *                             top most header, and for negative direction, -1 points to the most bottom\n   *                             header (the header closest to the cells).\n   * @returns {string} Returns the column header value to update.\n   */\n  getColumnHeaderValue(visualColumnIndex, headerLevel) {\n    var _classPrivateFieldGet3;\n    const {\n      isHidden,\n      isPlaceholder\n    } = (_classPrivateFieldGet3 = _classPrivateFieldGet(_stateManager, this).getHeaderSettings(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet3 !== void 0 ? _classPrivateFieldGet3 : {};\n    if (isPlaceholder || isHidden) {\n      return '';\n    }\n    return this.hot.getColHeader(visualColumnIndex, headerLevel);\n  }\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    _classPrivateFieldSet(_stateManager, this, null);\n    if (_classPrivateFieldGet(_hidingIndexMapObserver, this) !== null) {\n      _classPrivateFieldGet(_hidingIndexMapObserver, this).unsubscribe();\n      _classPrivateFieldSet(_hidingIndexMapObserver, this, null);\n    }\n    super.destroy();\n  }\n\n  /**\n   * Gets the tree data that belongs to the column headers pointed by the passed coordinates.\n   *\n   * @private\n   * @param {CellCoords} coords The CellCoords instance.\n   * @returns {object|undefined}\n   */\n  _getHeaderTreeNodeDataByCoords(coords) {\n    if (coords.row >= 0 || coords.col < 0) {\n      return;\n    }\n    return _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(coords.row, coords.col);\n  }\n}\nfunction _updateFocusHighlightPosition() {\n  var _this$hot;\n  const selection = (_this$hot = this.hot) === null || _this$hot === void 0 ? void 0 : _this$hot.getSelectedRangeLast();\n  if (!selection) {\n    return;\n  }\n  const {\n    highlight\n  } = selection;\n  const isNestedHeadersRange = highlight.isHeader() && highlight.col >= 0;\n  if (isNestedHeadersRange) {\n    const columnIndex = _classPrivateFieldGet(_stateManager, this).findLeftMostColumnIndex(highlight.row, highlight.col);\n    const focusHighlight = this.hot.selection.highlight.getFocus();\n\n    // Correct the highlight/focus selection to highlight the correct TH element\n    focusHighlight.visualCellRange.highlight.col = columnIndex;\n    focusHighlight.visualCellRange.from.col = columnIndex;\n    focusHighlight.visualCellRange.to.col = columnIndex;\n    focusHighlight.commit();\n  }\n}\n/**\n * Allows to control to which column index the viewport will be scrolled. To ensure that the viewport\n * is scrolled to the correct column for the nested header the most left and the most right visual column\n * indexes are used.\n *\n * @param {number} visualColumn A visual column index to which the viewport will be scrolled.\n * @returns {number}\n */\nfunction _onBeforeViewportScrollHorizontally(visualColumn) {\n  const selection = this.hot.getSelectedRangeLast();\n  if (!selection) {\n    return visualColumn;\n  }\n  const {\n    highlight\n  } = selection;\n  const isNestedHeadersRange = highlight.isHeader() && highlight.col >= 0;\n  if (!isNestedHeadersRange) {\n    return visualColumn;\n  }\n  const firstColumn = this.hot.view.getFirstFullyVisibleColumn();\n  const lastColumn = this.hot.view.getLastFullyVisibleColumn();\n  const mostLeftColumnIndex = _classPrivateFieldGet(_stateManager, this).findLeftMostColumnIndex(highlight.row, highlight.col);\n  const mostRightColumnIndex = _classPrivateFieldGet(_stateManager, this).findRightMostColumnIndex(highlight.row, highlight.col);\n\n  // do not scroll the viewport when the header is wider than the viewport\n  if (mostLeftColumnIndex < firstColumn && mostRightColumnIndex > lastColumn) {\n    return visualColumn;\n  }\n  return mostLeftColumnIndex < firstColumn ? mostLeftColumnIndex : mostRightColumnIndex;\n}\n/**\n * Allows to control which header DOM element will be used to highlight.\n *\n * @param {number} visualColumn A visual column index of the highlighted row header.\n * @param {number} headerLevel A row header level that is currently highlighted.\n * @param {object} highlightMeta An object with meta data that describes the highlight state.\n * @returns {number}\n */\nfunction _onBeforeHighlightingColumnHeader(visualColumn, headerLevel, highlightMeta) {\n  const headerNodeData = _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(headerLevel, visualColumn);\n  if (!headerNodeData) {\n    return visualColumn;\n  }\n  const {\n    columnCursor,\n    selectionType,\n    selectionWidth\n  } = highlightMeta;\n  const {\n    isRoot,\n    colspan\n  } = _classPrivateFieldGet(_stateManager, this).getHeaderSettings(headerLevel, visualColumn);\n  if (selectionType === _selection_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"HEADER_TYPE\"]) {\n    if (!isRoot) {\n      return headerNodeData.columnIndex;\n    }\n  } else if (selectionType === _selection_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"ACTIVE_HEADER_TYPE\"]) {\n    if (colspan > selectionWidth - columnCursor || !isRoot) {\n      // Prevents adding any CSS class names to the TH element\n      return null;\n    }\n  }\n  return visualColumn;\n}\n/**\n * Listens the `beforeCopy` hook that allows processing the copied column headers so that the\n * merged column headers do not propagate the value for each column but only once at the beginning\n * of the column.\n *\n * @private\n * @param {Array[]} data An array of arrays which contains data to copied.\n * @param {object[]} copyableRanges An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)\n *                                  which will copied.\n * @param {{ columnHeadersCount: number }} copiedHeadersCount An object with keys that holds information with\n *                                                            the number of copied headers.\n */\nfunction _onBeforeCopy(data, copyableRanges, _ref2) {\n  let {\n    columnHeadersCount\n  } = _ref2;\n  if (columnHeadersCount === 0) {\n    return;\n  }\n  for (let rangeIndex = 0; rangeIndex < copyableRanges.length; rangeIndex++) {\n    const {\n      startRow,\n      startCol,\n      endRow,\n      endCol\n    } = copyableRanges[rangeIndex];\n    const rowsCount = endRow - startRow + 1;\n    const columnsCount = startCol - endCol + 1;\n\n    // do not process dataset ranges and column headers where only one column is copied\n    if (startRow >= 0 || columnsCount === 1) {\n      break;\n    }\n    for (let column = startCol; column <= endCol; column++) {\n      for (let row = startRow; row <= endRow; row++) {\n        var _classPrivateFieldGet4;\n        const zeroBasedColumnHeaderLevel = rowsCount + row;\n        const zeroBasedColumnIndex = column - startCol;\n        if (zeroBasedColumnIndex === 0) {\n          continue; // eslint-disable-line no-continue\n        }\n        const isRoot = (_classPrivateFieldGet4 = _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(row, column)) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.isRoot;\n        if (isRoot === false) {\n          data[zeroBasedColumnHeaderLevel][zeroBasedColumnIndex] = '';\n        }\n      }\n    }\n  }\n}\n/**\n * Allows blocking the column selection that is controlled by the core Selection module.\n *\n * @param {MouseEvent} event Mouse event.\n * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.\n * @param {CellCoords} TD The table cell or header element.\n * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains\n *                            a boolean value that allows or disallows changing the selection for that particular area.\n */\nfunction _onBeforeOnCellMouseDown(event, coords, TD, controller) {\n  const headerNodeData = this._getHeaderTreeNodeDataByCoords(coords);\n  if (headerNodeData) {\n    // Block the Selection module in controlling how the columns are selected. Pass the\n    // responsibility of the column selection to this plugin (see \"onAfterOnCellMouseDown\" hook).\n    controller.column = true;\n  }\n}\n/**\n * Allows to control how the column selection based on the coordinates and the nested headers is made.\n *\n * @param {MouseEvent} event Mouse event.\n * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.\n */\nfunction _onAfterOnCellMouseDown(event, coords) {\n  const headerNodeData = this._getHeaderTreeNodeDataByCoords(coords);\n  if (!headerNodeData) {\n    return;\n  }\n  _classPrivateFieldSet(_focusInitialCoords, this, coords.clone());\n  _classPrivateFieldSet(_isColumnsSelectionInProgress, this, true);\n  const {\n    selection\n  } = this.hot;\n  const currentSelection = selection.isSelected() ? selection.getSelectedRange().current() : null;\n  const columnsToSelect = [];\n  const {\n    columnIndex,\n    origColspan\n  } = headerNodeData;\n\n  // The Selection module doesn't allow it to extend its behavior easily. That's why here we need\n  // to re-implement the \"click\" and \"shift\" behavior. As a workaround, the logic for the nested\n  // headers must implement a similar logic as in the original Selection handler\n  // (see src/selection/mouseEventHandler.js).\n  const allowRightClickSelection = !selection.inInSelection(coords);\n  if (event.shiftKey && currentSelection) {\n    if (coords.col < currentSelection.from.col) {\n      columnsToSelect.push(currentSelection.getTopEndCorner().col, columnIndex, coords.row);\n    } else if (coords.col > currentSelection.from.col) {\n      columnsToSelect.push(currentSelection.getTopStartCorner().col, columnIndex + origColspan - 1, coords.row);\n    } else {\n      columnsToSelect.push(columnIndex, columnIndex + origColspan - 1, coords.row);\n    }\n  } else if (Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isLeftClick\"])(event) || Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isRightClick\"])(event) && allowRightClickSelection || Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isTouchEvent\"])(event)) {\n    columnsToSelect.push(columnIndex, columnIndex + origColspan - 1, coords.row);\n  }\n\n  // The plugin takes control of how the columns are selected.\n  selection.selectColumns(...columnsToSelect);\n}\n/**\n * Makes the header-selection properly select the nested headers.\n *\n * @param {MouseEvent} event Mouse event.\n * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.\n * @param {HTMLElement} TD The cell element.\n * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains\n *                            a boolean value that allows or disallows changing the selection for that particular area.\n */\nfunction _onBeforeOnCellMouseOver(event, coords, TD, controller) {\n  if (!this.hot.view.isMouseDown()) {\n    return;\n  }\n  const headerNodeData = this._getHeaderTreeNodeDataByCoords(coords);\n  if (!headerNodeData) {\n    return;\n  }\n  const {\n    columnIndex,\n    origColspan\n  } = headerNodeData;\n  const selectedRange = this.hot.getSelectedRangeLast();\n  const topStartCoords = selectedRange.getTopStartCorner();\n  const bottomEndCoords = selectedRange.getBottomEndCorner();\n  const {\n    from\n  } = selectedRange;\n\n  // Block the Selection module in controlling how the columns and cells are selected.\n  // From now on, the plugin is responsible for the selection.\n  controller.column = true;\n  controller.cell = true;\n  const columnsToSelect = [];\n  const headerLevel = Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__[\"clamp\"])(coords.row, -Infinity, -1);\n  if (coords.col < from.col) {\n    columnsToSelect.push(bottomEndCoords.col, columnIndex, headerLevel);\n  } else if (coords.col > from.col) {\n    columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1, headerLevel);\n  } else {\n    columnsToSelect.push(columnIndex, columnIndex + origColspan - 1, headerLevel);\n  }\n  this.hot.selection.selectColumns(...columnsToSelect);\n}\n/**\n * Switches internal flag about selection progress to `false`.\n */\nfunction _onBeforeOnCellMouseUp() {\n  _classPrivateFieldSet(_isColumnsSelectionInProgress, this, false);\n}\n/**\n * The hook checks and ensures that the focus position that depends on the selected columns\n * range is always positioned within the range.\n */\nfunction _onBeforeSelectionHighlightSet() {\n  const {\n    navigableHeaders\n  } = this.hot.getSettings();\n  if (!this.hot.view.isMouseDown() || !_classPrivateFieldGet(_isColumnsSelectionInProgress, this) || !navigableHeaders) {\n    return;\n  }\n  const selectedRange = this.hot.getSelectedRangeLast();\n  const columnStart = selectedRange.getTopStartCorner().col;\n  const columnEnd = selectedRange.getBottomEndCorner().col;\n  const {\n    columnIndex,\n    origColspan\n  } = _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(_classPrivateFieldGet(_focusInitialCoords, this).row, _classPrivateFieldGet(_focusInitialCoords, this).col);\n  selectedRange.setHighlight(_classPrivateFieldGet(_focusInitialCoords, this));\n  if (origColspan > selectedRange.getWidth() || columnIndex < columnStart || columnIndex + origColspan - 1 > columnEnd) {\n    const headerLevel = _classPrivateFieldGet(_stateManager, this).findTopMostEntireHeaderLevel(Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__[\"clamp\"])(columnStart, columnIndex, columnIndex + origColspan - 1), Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__[\"clamp\"])(columnEnd, columnIndex, columnIndex + origColspan - 1));\n    selectedRange.highlight.row = headerLevel;\n    selectedRange.highlight.col = selectedRange.from.col;\n  }\n}\n/**\n * `modifyTransformStart` hook is called every time the keyboard navigation is used.\n *\n * @param {object} delta The transformation delta.\n */\nfunction _onModifyTransformStart(delta) {\n  const {\n    highlight\n  } = this.hot.getSelectedRangeLast();\n  const nextCoords = this.hot._createCellCoords(highlight.row + delta.row, highlight.col + delta.col);\n  const isNestedHeadersRange = nextCoords.isHeader() && nextCoords.col >= 0;\n  if (!isNestedHeadersRange) {\n    return;\n  }\n  const visualColumnIndexStart = _classPrivateFieldGet(_stateManager, this).findLeftMostColumnIndex(nextCoords.row, nextCoords.col);\n  const visualColumnIndexEnd = _classPrivateFieldGet(_stateManager, this).findRightMostColumnIndex(nextCoords.row, nextCoords.col);\n  if (delta.col < 0) {\n    const nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexStart - 1 : visualColumnIndexEnd;\n    const notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, -1);\n    if (notHiddenColumnIndex === null) {\n      // There are no visible columns anymore, so move the selection out of the table edge. This will\n      // be processed by the selection Transformer class as a move selection to the previous row (if autoWrapRow is enabled).\n      delta.col = -this.hot.view.countRenderableColumnsInRange(0, highlight.col);\n    } else {\n      delta.col = -Math.max(this.hot.view.countRenderableColumnsInRange(notHiddenColumnIndex, highlight.col) - 1, 1);\n    }\n  } else if (delta.col > 0) {\n    const nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexEnd + 1 : visualColumnIndexStart;\n    const notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, 1);\n    if (notHiddenColumnIndex === null) {\n      // There are no visible columns anymore, so move the selection out of the table edge. This will\n      // be processed by the selection Transformer class as a move selection to the next row (if autoWrapRow is enabled).\n      delta.col = this.hot.view.countRenderableColumnsInRange(highlight.col, this.hot.countCols());\n    } else {\n      delta.col = Math.max(this.hot.view.countRenderableColumnsInRange(highlight.col, notHiddenColumnIndex) - 1, 1);\n    }\n  }\n}\n/**\n * The hook observes the column selection from the Selection API and modifies the column range to\n * ensure that the whole nested column will be covered.\n *\n * @param {CellCoords} from The coords object where the selection starts.\n * @param {CellCoords} to The coords object where the selection ends.\n */\nfunction _onBeforeSelectColumns(from, to) {\n  const headerLevel = from.row;\n  const startNodeData = this._getHeaderTreeNodeDataByCoords({\n    row: headerLevel,\n    col: from.col\n  });\n  const endNodeData = this._getHeaderTreeNodeDataByCoords({\n    row: headerLevel,\n    col: to.col\n  });\n  if (to.col < from.col) {\n    // Column selection from right to left\n    if (startNodeData) {\n      from.col = startNodeData.columnIndex + startNodeData.origColspan - 1;\n    }\n    if (endNodeData) {\n      to.col = endNodeData.columnIndex;\n    }\n  } else if (to.col >= from.col) {\n    // Column selection from left to right or a single column selection\n    if (startNodeData) {\n      from.col = startNodeData.columnIndex;\n    }\n    if (endNodeData) {\n      to.col = endNodeData.columnIndex + endNodeData.origColspan - 1;\n    }\n  }\n}\n/**\n * `afterGetColumnHeader` hook callback - prepares the header structure.\n *\n * @param {Array} renderersArray Array of renderers.\n */\nfunction _onAfterGetColumnHeaderRenderers(renderersArray) {\n  renderersArray.length = 0;\n  for (let headerLayer = 0; headerLayer < _classPrivateFieldGet(_stateManager, this).getLayersCount(); headerLayer++) {\n    renderersArray.push(this.headerRendererFactory(headerLayer));\n  }\n}\n/**\n * Make the renderer render the first nested column in its entirety.\n *\n * @param {object} calc Viewport column calculator.\n */\nfunction _onAfterViewportColumnCalculatorOverride(calc) {\n  const headerLayersCount = _classPrivateFieldGet(_stateManager, this).getLayersCount();\n  let newStartColumn = calc.startColumn;\n  let nonRenderable = !!headerLayersCount;\n  for (let headerLayer = 0; headerLayer < headerLayersCount; headerLayer++) {\n    const startColumn = _classPrivateFieldGet(_stateManager, this).findLeftMostColumnIndex(headerLayer, calc.startColumn);\n    const renderedStartColumn = this.hot.columnIndexMapper.getRenderableFromVisualIndex(startColumn);\n\n    // If any of the headers for that column index is rendered, all of them should be rendered properly, see\n    // comment below.\n    if (startColumn >= 0) {\n      nonRenderable = false;\n    }\n\n    // `renderedStartColumn` can be `null` if the leftmost columns are hidden. In that case -> ignore that header\n    // level, as it should be handled by the \"parent\" header\n    if (Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isNumeric\"])(renderedStartColumn) && renderedStartColumn < calc.startColumn) {\n      newStartColumn = renderedStartColumn;\n      break;\n    }\n  }\n\n  // If no headers for the provided column index are renderable, start rendering from the beginning of the upmost\n  // header for that position.\n  calc.startColumn = nonRenderable ? _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(0, newStartColumn).columnIndex : newStartColumn;\n}\n/**\n * `modifyColWidth` hook callback - returns width from cache, when is greater than incoming from hook.\n *\n * @param {number} width Width from hook.\n * @param {number} column Visual index of an column.\n * @returns {number}\n */\nfunction _onModifyColWidth(width, column) {\n  const cachedWidth = this.ghostTable.getWidth(column);\n  return width > cachedWidth ? width : cachedWidth;\n}\n/**\n * Listens the `modifyColumnHeaderValue` hook that overwrites the column headers values based on\n * the internal state and settings of the plugin.\n *\n * @param {string} value The column header value.\n * @param {number} visualColumnIndex The visual column index.\n * @param {number} headerLevel The index of header level. The header level accepts positive (0 to N)\n *                             and negative (-1 to -N) values. For positive values, 0 points to the\n *                             top most header, and for negative direction, -1 points to the most bottom\n *                             header (the header closest to the cells).\n * @returns {string} Returns the column header value to update.\n */\nfunction _onModifyColumnHeaderValue(value, visualColumnIndex, headerLevel) {\n  var _classPrivateFieldGet5;\n  const {\n    label\n  } = (_classPrivateFieldGet5 = _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet5 !== void 0 ? _classPrivateFieldGet5 : {\n    label: ''\n  };\n  return label;\n}\n/**\n * `modifyFocusedElement` hook callback.\n *\n * @param {number} row Row index.\n * @param {number} column Column index.\n * @returns {HTMLTableCellElement} The `TH` element to be focused.\n */\nfunction _onModifyFocusedElement(row, column) {\n  if (row < 0) {\n    return this.hot.getCell(row, _classPrivateFieldGet(_stateManager, this).findLeftMostColumnIndex(row, column), true);\n  }\n}\n/**\n * Updates the plugin state after HoT initialization.\n */\nfunction _onInit() {\n  // @TODO: Workaround for broken plugin initialization abstraction.\n  this.updatePlugin();\n}\n/**\n * Updates the plugin state after new dataset load.\n *\n * @param {Array[]} sourceData Array of arrays or array of objects containing data.\n * @param {boolean} initialLoad Flag that determines whether the data has been loaded\n *                              during the initialization.\n */\nfunction _onAfterLoadData(sourceData, initialLoad) {\n  if (!initialLoad) {\n    this.updatePlugin();\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedHeaders/nestedHeaders.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedHeaders/stateManager/headersTree.mjs":
/*!**************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedHeaders/stateManager/headersTree.mjs ***!
  \**************************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return HeadersTree; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _utils_dataStructures_tree_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../utils/dataStructures/tree.mjs */ \"./node_modules/handsontable/utils/dataStructures/tree.mjs\");\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * @private\n * @class HeadersTree\n *\n * The header tree class keeps nested header settings in the tree\n * structure for easier node manipulation (e.q collapse or expand column).\n * That trees represent the current state of the nested headers. From the\n * trees, the matrix is generated for nested header renderers.\n *\n * The second role of the module is validation. While building the tree,\n * there is check whether the configuration contains overlapping\n * headers. If true, then the exception is thrown.\n *\n * The tree is static; it means that its column indexing never changes\n * even when a collapsing header is performed. The structure is based\n * on visual column indexes.\n *\n * For example, for that header configuration:\n *   +----+----+----+----+----+\n *   │ A1                │ A2 │\n *   +----+----+----+----+----+\n *   │ B1           │ B2 │ B3 │\n *   +----+----+----+----+----+\n *   │ C1      │ C2 │ C3 │ C4 │\n *   +----+----+----+----+----+\n *\n * The tree structures look like:\n *                (0)                      (4)           // a visual column index\n *                 │                        │\n *        .------(A1)------.              (A2)--.\n *   .--(B1)--.           (B2)--.              (B3)--.\n *  (C1)     (C2)              (C3)                 (C4)\n *\n */\n/* eslint-enable jsdoc/require-description-complete-sentence */\nvar _rootNodes = /*#__PURE__*/new WeakMap();\nvar _rootsIndex = /*#__PURE__*/new WeakMap();\nvar _sourceSettings = /*#__PURE__*/new WeakMap();\nclass HeadersTree {\n  constructor(sourceSettings) {\n    /**\n     * The collection of nested headers settings structured into trees. The root trees are stored\n     * under the visual column index.\n     *\n     * @private\n     * @type {Map<number, TreeNode>}\n     */\n    _classPrivateFieldInitSpec(this, _rootNodes, new Map());\n    /**\n     * A map that translates the visual column indexes that intersect the range\n     * defined by the header colspan width to the root index.\n     *\n     * @private\n     * @type {Map<number, number>}\n     */\n    _classPrivateFieldInitSpec(this, _rootsIndex, new Map());\n    /**\n     * The instance of the SourceSettings class.\n     *\n     * @private\n     * @type {SourceSettings}\n     */\n    _classPrivateFieldInitSpec(this, _sourceSettings, null);\n    _classPrivateFieldSet(_sourceSettings, this, sourceSettings);\n  }\n\n  /**\n   * Gets an array of the all root nodes.\n   *\n   * @returns {TreeNode[]}\n   */\n  getRoots() {\n    return Array.from(_classPrivateFieldGet(_rootNodes, this).values());\n  }\n\n  /**\n   * Gets a root node by specified visual column index.\n   *\n   * @param {number} columnIndex A visual column index.\n   * @returns {TreeNode|undefined}\n   */\n  getRootByColumn(columnIndex) {\n    let node;\n    if (_classPrivateFieldGet(_rootsIndex, this).has(columnIndex)) {\n      node = _classPrivateFieldGet(_rootNodes, this).get(_classPrivateFieldGet(_rootsIndex, this).get(columnIndex));\n    }\n    return node;\n  }\n\n  /**\n   * Gets a tree node by its position in the grid settings.\n   *\n   * @param {number} headerLevel Header level index (there is support only for positive values).\n   * @param {number} columnIndex A visual column index.\n   * @returns {TreeNode|undefined}\n   */\n  getNode(headerLevel, columnIndex) {\n    const rootNode = this.getRootByColumn(columnIndex);\n    if (!rootNode) {\n      return;\n    }\n\n    // Normalize the visual column index to a 0-based system for a specific \"box\" defined\n    // by root node colspan width.\n    const normColumnIndex = columnIndex - _classPrivateFieldGet(_rootsIndex, this).get(columnIndex);\n    let columnCursor = 0;\n    let treeNode;\n\n    // Collect all parent nodes that depend on the collapsed node.\n    rootNode.walkDown(node => {\n      const {\n        data: {\n          origColspan,\n          headerLevel: nodeHeaderLevel\n        }\n      } = node;\n      if (headerLevel === nodeHeaderLevel) {\n        if (normColumnIndex >= columnCursor && normColumnIndex <= columnCursor + origColspan - 1) {\n          treeNode = node;\n          treeNode.data.isRoot = columnIndex === treeNode.data.columnIndex;\n          return false; // Cancel tree traversing.\n        }\n        columnCursor += origColspan;\n      }\n    });\n    return treeNode;\n  }\n\n  /**\n   * Builds (or rebuilds if called again) root nodes indexes.\n   */\n  rebuildTreeIndex() {\n    let columnIndex = 0;\n    _classPrivateFieldGet(_rootsIndex, this).clear();\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayEach\"])(_classPrivateFieldGet(_rootNodes, this), _ref => {\n      let [, {\n        data: {\n          colspan\n        }\n      }] = _ref;\n      // Map tree range (colspan range/width) into visual column index of the root node.\n      for (let i = columnIndex; i < columnIndex + colspan; i++) {\n        _classPrivateFieldGet(_rootsIndex, this).set(i, columnIndex);\n      }\n      columnIndex += colspan;\n    });\n  }\n\n  /**\n   * Builds trees based on SourceSettings class. Calling a method causes clearing the tree state built\n   * from the previous call.\n   */\n  buildTree() {\n    this.clear();\n    const columnsCount = _classPrivateFieldGet(_sourceSettings, this).getColumnsCount();\n    let columnIndex = 0;\n    while (columnIndex < columnsCount) {\n      const columnSettings = _classPrivateFieldGet(_sourceSettings, this).getHeaderSettings(0, columnIndex);\n      const rootNode = new _utils_dataStructures_tree_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]();\n      _classPrivateFieldGet(_rootNodes, this).set(columnIndex, rootNode);\n      this.buildLeaves(rootNode, columnIndex, 0, columnSettings.origColspan);\n      columnIndex += columnSettings.origColspan;\n    }\n    this.rebuildTreeIndex();\n  }\n\n  /**\n   * Builds leaves for specified tree node.\n   *\n   * @param {TreeNode} parentNode A node to which the leaves applies.\n   * @param {number} columnIndex A visual column index.\n   * @param {number} headerLevel Currently processed header level.\n   * @param {number} [extractionLength=1] Determines column extraction length for node children.\n   */\n  buildLeaves(parentNode, columnIndex, headerLevel) {\n    let extractionLength = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n    const columnsSettings = _classPrivateFieldGet(_sourceSettings, this).getHeadersSettings(headerLevel, columnIndex, extractionLength);\n    headerLevel += 1;\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayEach\"])(columnsSettings, columnSettings => {\n      const nodeData = {\n        ...columnSettings,\n        /**\n         * The header level (tree node depth level).\n         *\n         * @type {number}\n         */\n        headerLevel: headerLevel - 1,\n        /**\n         * A visual column index.\n         *\n         * @type {number}\n         */\n        columnIndex\n      };\n      let node;\n      if (headerLevel === 1) {\n        // fill the root node\n        parentNode.data = nodeData;\n        node = parentNode;\n      } else {\n        node = new _utils_dataStructures_tree_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"](nodeData);\n        parentNode.addChild(node);\n      }\n      if (headerLevel < _classPrivateFieldGet(_sourceSettings, this).getLayersCount()) {\n        this.buildLeaves(node, columnIndex, headerLevel, columnSettings.origColspan);\n      }\n      columnIndex += columnSettings.origColspan;\n    });\n  }\n\n  /**\n   * Clears the tree to the initial state.\n   */\n  clear() {\n    _classPrivateFieldGet(_rootNodes, this).clear();\n    _classPrivateFieldGet(_rootsIndex, this).clear();\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedHeaders/stateManager/headersTree.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedHeaders/stateManager/index.mjs":
/*!********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedHeaders/stateManager/index.mjs ***!
  \********************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return StateManager; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _sourceSettings_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./sourceSettings.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/sourceSettings.mjs\");\n/* harmony import */ var _headersTree_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./headersTree.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/headersTree.mjs\");\n/* harmony import */ var _nodeModifiers_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./nodeModifiers/index.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs\");\n/* harmony import */ var _matrixGenerator_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./matrixGenerator.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/matrixGenerator.mjs\");\n/* harmony import */ var _utils_dataStructures_tree_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../utils/dataStructures/tree.mjs */ \"./node_modules/handsontable/utils/dataStructures/tree.mjs\");\n\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n/**\n * The state manager is a source of truth for nested headers configuration.\n * The state generation process is divided into three stages.\n *\n *   +---------------------+  1. User-defined configuration normalization;\n *   │                     │  The source settings class normalizes and shares API for\n *   │   SourceSettings    │  raw settings passed by the developer. It is only consumed by\n *   │                     │  the header tree module.\n *   +---------------------+\n *             │\n *            \\│/\n *   +---------------------+  2. Building a tree structure for validation and easier node manipulation;\n *   │                     │  The header tree generates a tree based on source settings for future\n *   │     HeadersTree     │  node manipulation (such as collapsible columns feature). While generating a tree\n *   │                     │  the source settings is checked to see if the configuration has overlapping headers.\n *   +---------------------+  If `true` the colspan matrix generation is skipped, overlapped headers are not supported.\n *             │\n *            \\│/\n *   +---------------------+  3. Matrix generation;\n *   │                     │  Based on built trees the matrix generation is performed. That part of code\n *   │  matrix generation  │  generates an array structure similar to normalized data from the SourceSettings\n *   │                     │  but with the difference that this structure contains column settings which changed\n *   +---------------------+  during runtime (after the tree manipulation) e.q after collapse or expand column.\n *                            That settings describes how the TH element should be modified (colspan attribute,\n *                            CSS classes, etc) for a specific column and layer level.\n *\n * @class StateManager\n */\nvar _sourceSettings = /*#__PURE__*/new WeakMap();\nvar _headersTree = /*#__PURE__*/new WeakMap();\nvar _stateMatrix = /*#__PURE__*/new WeakMap();\nclass StateManager {\n  constructor() {\n    /**\n     * The instance of the source settings class.\n     *\n     * @private\n     * @type {SourceSettings}\n     */\n    _classPrivateFieldInitSpec(this, _sourceSettings, new _sourceSettings_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"]());\n    /**\n     * The instance of the headers tree. The tree is generated after setting new configuration data.\n     *\n     * @private\n     * @type {HeadersTree}\n     */\n    _classPrivateFieldInitSpec(this, _headersTree, new _headersTree_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"](_classPrivateFieldGet(_sourceSettings, this)));\n    /**\n     * Cached matrix which is generated from the tree structure.\n     *\n     * @private\n     * @type {Array[]}\n     */\n    _classPrivateFieldInitSpec(this, _stateMatrix, [[]]);\n  }\n  /**\n   * Sets a new state for the nested headers plugin based on settings passed\n   * directly to the plugin.\n   *\n   * @param {Array[]} nestedHeadersSettings The user-defined settings.\n   * @returns {boolean} Returns `true` if the settings are processed correctly, `false` otherwise.\n   */\n  setState(nestedHeadersSettings) {\n    _classPrivateFieldGet(_sourceSettings, this).setData(nestedHeadersSettings);\n    let hasError = false;\n    try {\n      _classPrivateFieldGet(_headersTree, this).buildTree();\n    } catch (ex) {\n      _classPrivateFieldGet(_headersTree, this).clear();\n      _classPrivateFieldGet(_sourceSettings, this).clear();\n      hasError = true;\n    }\n    _classPrivateFieldSet(_stateMatrix, this, Object(_matrixGenerator_mjs__WEBPACK_IMPORTED_MODULE_6__[\"generateMatrix\"])(_classPrivateFieldGet(_headersTree, this).getRoots()));\n    return hasError;\n  }\n\n  /**\n   * Sets columns limit to the state will be trimmed. All headers (colspans) which\n   * overlap the column limit will be reduced to keep the structure solid.\n   *\n   * @param {number} columnsCount The number of columns to limit to.\n   */\n  setColumnsLimit(columnsCount) {\n    _classPrivateFieldGet(_sourceSettings, this).setColumnsLimit(columnsCount);\n  }\n\n  /**\n   * Merges settings with current plugin state.\n   *\n   * By default only foreign keys are merged with source state and passed to the tree. But only\n   * known keys are exported to matrix.\n   *\n   * @param {object[]} settings An array of objects to merge with the current source settings.\n   *                            It is a requirement that every object has `row` and `col` properties\n   *                            which points to the specific header settings object.\n   */\n  mergeStateWith(settings) {\n    const transformedSettings = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayMap\"])(settings, _ref => {\n      let {\n        row,\n        ...rest\n      } = _ref;\n      return {\n        row: row < 0 ? this.rowCoordsToLevel(row) : row,\n        ...rest\n      };\n    });\n    _classPrivateFieldGet(_sourceSettings, this).mergeWith(transformedSettings);\n    _classPrivateFieldGet(_headersTree, this).buildTree();\n    _classPrivateFieldSet(_stateMatrix, this, Object(_matrixGenerator_mjs__WEBPACK_IMPORTED_MODULE_6__[\"generateMatrix\"])(_classPrivateFieldGet(_headersTree, this).getRoots()));\n  }\n\n  /**\n   * Maps the current state with a callback. For each header settings the callback function\n   * is called. If the function returns value that value is merged with the state.\n   *\n   * By default only foreign keys are merged with source state and passed to the tree. But only\n   * known keys are exported to matrix.\n   *\n   * @param {Function} callback A function that is called for every header source settings.\n   *                            Each time the callback is called, the returned value extends\n   *                            header settings.\n   */\n  mapState(callback) {\n    _classPrivateFieldGet(_sourceSettings, this).map(callback);\n    _classPrivateFieldGet(_headersTree, this).buildTree();\n    _classPrivateFieldSet(_stateMatrix, this, Object(_matrixGenerator_mjs__WEBPACK_IMPORTED_MODULE_6__[\"generateMatrix\"])(_classPrivateFieldGet(_headersTree, this).getRoots()));\n  }\n\n  /**\n   * Maps the current tree nodes with a callback. For each node the callback function\n   * is called. If the function returns value that value is added to returned array.\n   *\n   * @param {Function} callback A function that is called for every tree node.\n   *                            Each time the callback is called, the returned value is\n   *                            added to returned array.\n   * @returns {Array}\n   */\n  mapNodes(callback) {\n    return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayReduce\"])(_classPrivateFieldGet(_headersTree, this).getRoots(), (acc, rootNode) => {\n      rootNode.walkDown(node => {\n        const result = callback(node.data);\n        if (result !== undefined) {\n          acc.push(result);\n        }\n      });\n      return acc;\n    }, []);\n  }\n\n  /**\n   * Triggers an action (e.g. \"collapse\") from the NodeModifiers module. The module\n   * modifies a tree structure in such a way as to obtain the correct structure consistent with the\n   * called action.\n   *\n   * @param {string} action An action name to trigger.\n   * @param {number} headerLevel Header level index (there is support for negative and positive values).\n   * @param {number} columnIndex A visual column index.\n   * @returns {object|undefined}\n   */\n  triggerNodeModification(action, headerLevel, columnIndex) {\n    if (headerLevel < 0) {\n      headerLevel = this.rowCoordsToLevel(headerLevel);\n    }\n    const nodeToProcess = _classPrivateFieldGet(_headersTree, this).getNode(headerLevel, columnIndex);\n    let actionResult;\n    if (nodeToProcess) {\n      actionResult = Object(_nodeModifiers_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"triggerNodeModification\"])(action, nodeToProcess, columnIndex);\n\n      // TODO (perf-tip): Trigger matrix generation once after multiple node modifications.\n      _classPrivateFieldSet(_stateMatrix, this, Object(_matrixGenerator_mjs__WEBPACK_IMPORTED_MODULE_6__[\"generateMatrix\"])(_classPrivateFieldGet(_headersTree, this).getRoots()));\n    }\n    return actionResult;\n  }\n\n  /**\n   * Triggers an action (e.g. \"hide-column\") from the NodeModifiers module. The action is\n   * triggered starting from the lowest header. The module modifies a tree structure in\n   * such a way as to obtain the correct structure consistent with the called action.\n   *\n   * @param {string} action An action name to trigger.\n   * @param {number} columnIndex A visual column index.\n   * @returns {object|undefined}\n   */\n  triggerColumnModification(action, columnIndex) {\n    return this.triggerNodeModification(action, -1, columnIndex);\n  }\n\n  /* eslint-disable jsdoc/require-description-complete-sentence */\n  /**\n   * @memberof StateManager#\n   * @function rowCoordsToLevel\n   *\n   * Translates row coordinates into header level. The row coordinates counts from -1 to -N\n   * and describes headers counting from most closest to most distant from the table.\n   * The header levels are counted from 0 to N where 0 describes most distant header\n   * from the table.\n   *\n   *  Row coords             Header level\n   *           +--------------+\n   *       -3  │ A1 │ A1      │  0\n   *           +--------------+\n   *       -2  │ B1 │ B2 │ B3 │  1\n   *           +--------------+\n   *       -1  │ C1 │ C2 │ C3 │  2\n   *           +==============+\n   *           │    │    │    │\n   *           +--------------+\n   *           │    │    │    │\n   *\n   * @param {number} rowIndex A visual row index.\n   * @returns {number|null} Returns unsigned number.\n   */\n  /* eslint-enable jsdoc/require-description-complete-sentence */\n  rowCoordsToLevel(rowIndex) {\n    if (rowIndex >= 0) {\n      return null;\n    }\n    const headerLevel = rowIndex + Math.max(this.getLayersCount(), 1);\n    if (headerLevel < 0) {\n      return null;\n    }\n    return headerLevel;\n  }\n\n  /* eslint-disable jsdoc/require-description-complete-sentence */\n  /**\n   * @memberof StateManager#\n   * @function levelToRowCoords\n   *\n   * Translates header level into row coordinates. The row coordinates counts from -1 to -N\n   * and describes headers counting from most closest to most distant from the table.\n   * The header levels are counted from 0 to N where 0 describes most distant header\n   * from the table.\n   *\n   *  Header level            Row coords\n   *           +--------------+\n   *        0  │ A1 │ A1      │  -3\n   *           +--------------+\n   *        1  │ B1 │ B2 │ B3 │  -2\n   *           +--------------+\n   *        2  │ C1 │ C2 │ C3 │  -1\n   *           +==============+\n   *           │    │    │    │\n   *           +--------------+\n   *           │    │    │    │\n   *\n   * @param {number} headerLevel Header level index.\n   * @returns {number} Returns negative number.\n   */\n  /* eslint-enable jsdoc/require-description-complete-sentence */\n  levelToRowCoords(headerLevel) {\n    if (headerLevel < 0) {\n      return null;\n    }\n    const rowIndex = headerLevel - Math.max(this.getLayersCount(), 1);\n    if (rowIndex >= 0) {\n      return null;\n    }\n    return rowIndex;\n  }\n\n  /**\n   * Gets column header settings for a specified column and header index. The returned object contains\n   * all information necessary for header renderers. It contains header label, colspan length, or hidden\n   * flag.\n   *\n   * @param {number} headerLevel Header level (there is support for negative and positive values).\n   * @param {number} columnIndex A visual column index.\n   * @returns {object|null}\n   */\n  getHeaderSettings(headerLevel, columnIndex) {\n    var _classPrivateFieldGet2, _classPrivateFieldGet3;\n    if (headerLevel < 0) {\n      headerLevel = this.rowCoordsToLevel(headerLevel);\n    }\n    if (headerLevel === null || headerLevel >= this.getLayersCount()) {\n      return null;\n    }\n    return (_classPrivateFieldGet2 = (_classPrivateFieldGet3 = _classPrivateFieldGet(_stateMatrix, this)[headerLevel]) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3[columnIndex]) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : null;\n  }\n\n  /**\n   * Gets tree data that is connected to the column header. The returned object contains all information\n   * necessary for modifying tree structure (column collapsing, hiding, etc.). It contains a header\n   * label, colspan length, or visual column index that indicates which column index the node is rendered from.\n   *\n   * @param {number} headerLevel Header level (there is support for negative and positive values).\n   * @param {number} columnIndex A visual column index.\n   * @returns {object|null}\n   */\n  getHeaderTreeNodeData(headerLevel, columnIndex) {\n    const node = this.getHeaderTreeNode(headerLevel, columnIndex);\n    if (!node) {\n      return null;\n    }\n    return {\n      ...node.data\n    };\n  }\n\n  /**\n   * Gets tree node that is connected to the column header.\n   *\n   * @param {number} headerLevel Header level (there is support for negative and positive values).\n   * @param {number} columnIndex A visual column index.\n   * @returns {TreeNode|null}\n   */\n  getHeaderTreeNode(headerLevel, columnIndex) {\n    if (headerLevel < 0) {\n      headerLevel = this.rowCoordsToLevel(headerLevel);\n    }\n    if (headerLevel === null || headerLevel >= this.getLayersCount()) {\n      return null;\n    }\n    const node = _classPrivateFieldGet(_headersTree, this).getNode(headerLevel, columnIndex);\n    if (!node) {\n      return null;\n    }\n    return node;\n  }\n\n  /**\n   * Finds the most top header level of the column header that is rendered entirely within\n   * the passed visual columns range. If multiple columns headers are found within the range the\n   * most top header level value will be returned.\n   *\n   * @param {number} columnIndexFrom A visual column index.\n   * @param {number} [columnIndexTo] A visual column index.\n   * @returns {number} Returns a header level in format -1 to -N.\n   */\n  findTopMostEntireHeaderLevel(columnIndexFrom) {\n    var _headerLevel;\n    let columnIndexTo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : columnIndexFrom;\n    const columnsWidth = columnIndexTo - columnIndexFrom + 1;\n    let atLeastOneRootFound = false;\n    let headerLevel = null;\n    for (let columnIndex = columnIndexFrom; columnIndex <= columnIndexTo; columnIndex++) {\n      const rootNode = _classPrivateFieldGet(_headersTree, this).getRootByColumn(columnIndex);\n      if (!rootNode) {\n        break;\n      }\n      atLeastOneRootFound = true;\n\n      // eslint-disable-next-line\n      rootNode.walkDown(node => {\n        const {\n          columnIndex: nodeColumnIndex,\n          headerLevel: nodeHeaderLevel,\n          origColspan,\n          isHidden\n        } = node.data;\n        if (isHidden) {\n          return;\n        }\n\n        // if the header fits entirely within the columns range get and save the node header level\n        if (origColspan <= columnsWidth && nodeColumnIndex >= columnIndexFrom && nodeColumnIndex + origColspan - 1 <= columnIndexTo && (headerLevel === null || nodeHeaderLevel < headerLevel)) {\n          headerLevel = nodeHeaderLevel;\n        }\n      }, _utils_dataStructures_tree_mjs__WEBPACK_IMPORTED_MODULE_7__[\"TRAVERSAL_DF_PRE\"]);\n    }\n    if (atLeastOneRootFound && headerLevel === null) {\n      return -1;\n    }\n    return this.levelToRowCoords((_headerLevel = headerLevel) !== null && _headerLevel !== void 0 ? _headerLevel : 0);\n  }\n\n  /**\n   * The method is helpful in cases where the column index targets in-between currently\n   * collapsed column. In that case, the method returns the left-most column index\n   * where the nested header begins.\n   *\n   * @param {number} headerLevel Header level (there is support for negative and positive values).\n   * @param {number} columnIndex A visual column index.\n   * @returns {number}\n   */\n  findLeftMostColumnIndex(headerLevel, columnIndex) {\n    var _this$getHeaderSettin;\n    const {\n      isRoot\n    } = (_this$getHeaderSettin = this.getHeaderSettings(headerLevel, columnIndex)) !== null && _this$getHeaderSettin !== void 0 ? _this$getHeaderSettin : {\n      isRoot: true\n    };\n    if (isRoot) {\n      return columnIndex;\n    }\n    let stepBackColumn = columnIndex - 1;\n    while (stepBackColumn >= 0) {\n      var _this$getHeaderSettin2;\n      const {\n        isRoot: isRootNode\n      } = (_this$getHeaderSettin2 = this.getHeaderSettings(headerLevel, stepBackColumn)) !== null && _this$getHeaderSettin2 !== void 0 ? _this$getHeaderSettin2 : {\n        isRoot: true\n      };\n      if (isRootNode) {\n        break;\n      }\n      stepBackColumn -= 1;\n    }\n    return stepBackColumn;\n  }\n\n  /**\n   * The method is helpful in cases where the column index targets in-between currently\n   * collapsed column. In that case, the method returns the right-most column index\n   * where the nested header ends.\n   *\n   * @param {number} headerLevel Header level (there is support for negative and positive values).\n   * @param {number} columnIndex A visual column index.\n   * @returns {number}\n   */\n  findRightMostColumnIndex(headerLevel, columnIndex) {\n    var _this$getHeaderSettin3;\n    const {\n      isRoot,\n      origColspan\n    } = (_this$getHeaderSettin3 = this.getHeaderSettings(headerLevel, columnIndex)) !== null && _this$getHeaderSettin3 !== void 0 ? _this$getHeaderSettin3 : {\n      isRoot: true,\n      origColspan: 1\n    };\n    if (isRoot) {\n      return columnIndex + origColspan - 1;\n    }\n    let stepForthColumn = columnIndex + 1;\n    while (stepForthColumn < this.getColumnsCount()) {\n      var _this$getHeaderSettin4;\n      const {\n        isRoot: isRootNode\n      } = (_this$getHeaderSettin4 = this.getHeaderSettings(headerLevel, stepForthColumn)) !== null && _this$getHeaderSettin4 !== void 0 ? _this$getHeaderSettin4 : {\n        isRoot: true\n      };\n      if (isRootNode) {\n        break;\n      }\n      stepForthColumn += 1;\n    }\n    return stepForthColumn - 1;\n  }\n\n  /**\n   * Gets a total number of headers levels.\n   *\n   * @returns {number}\n   */\n  getLayersCount() {\n    return _classPrivateFieldGet(_sourceSettings, this).getLayersCount();\n  }\n\n  /**\n   * Gets a total number of columns count.\n   *\n   * @returns {number}\n   */\n  getColumnsCount() {\n    return _classPrivateFieldGet(_sourceSettings, this).getColumnsCount();\n  }\n\n  /**\n   * Clears the column state manager to the initial state.\n   */\n  clear() {\n    _classPrivateFieldSet(_stateMatrix, this, []);\n    _classPrivateFieldGet(_sourceSettings, this).clear();\n    _classPrivateFieldGet(_headersTree, this).clear();\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedHeaders/stateManager/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedHeaders/stateManager/matrixGenerator.mjs":
/*!******************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedHeaders/stateManager/matrixGenerator.mjs ***!
  \******************************************************************************************/
/*! exports provided: generateMatrix */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"generateMatrix\", function() { return generateMatrix; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/utils.mjs\");\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n\n/**\n * A function that dump a tree structure into multidimensional array. That structure is\n * later processed by header renderers to modify TH elements to achieve a proper\n * DOM structure.\n *\n * That structure contains settings object for every TH element generated by Walkontable.\n * The matrix operates on visual column index.\n *\n * Output example:\n *   [\n *     [\n *       { label: 'A1', colspan: 2, origColspan: 2, isHidden: false, ... },\n *       { label: '', colspan: 1, origColspan: 1, isHidden: true, ... },\n *       { label: '', colspan: 1, origColspan: 1, isHidden: false, ... },\n *     ],\n *     [\n *       { label: 'true', colspan: 1, origColspan: 1, isHidden: false, ... },\n *       { label: 'B2', colspan: 1, origColspan: 1, isHidden: false, ... },\n *       { label: '4', colspan: 1, origColspan: 1, isHidden: false, ... },\n *     ],\n *     [\n *       { label: '', colspan: 1, origColspan: 1, isHidden: false, ... },\n *       { label: '', colspan: 1, origColspan: 1, isHidden: false, ... },\n *       { label: '', colspan: 1, origColspan: 1, isHidden: false, ... },\n *     ],\n *   ]\n *\n * @param {TreeNode[]} headerRoots An array of root nodes.\n * @returns {Array[]}\n */\nfunction generateMatrix(headerRoots) {\n  const matrix = [];\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayEach\"])(headerRoots, rootNode => {\n    rootNode.walkDown(node => {\n      const nodeData = node.data;\n      const {\n        origColspan,\n        columnIndex,\n        headerLevel,\n        crossHiddenColumns\n      } = nodeData;\n      const colspanHeaderLayer = createNestedArrayIfNecessary(matrix, headerLevel);\n      let isRootSettingsFound = false;\n      for (let i = columnIndex; i < columnIndex + origColspan; i++) {\n        const isColumnHidden = crossHiddenColumns.includes(i);\n        if (isColumnHidden || isRootSettingsFound) {\n          colspanHeaderLayer.push(Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_2__[\"createPlaceholderHeaderSettings\"])(nodeData));\n        } else {\n          const headerRootSettings = createHeaderSettings(nodeData);\n          headerRootSettings.isRoot = true;\n          colspanHeaderLayer.push(headerRootSettings);\n          isRootSettingsFound = true;\n        }\n      }\n    });\n  });\n  return matrix;\n}\n\n/**\n * Creates header settings object.\n *\n * @param {object} nodeData The tree data object.\n * @returns {object}\n */\nfunction createHeaderSettings(nodeData) {\n  // For the matrix module we do not need to export \"crossHiddenColumns\" key. It's redundant here.\n  const {\n    crossHiddenColumns,\n    ...headerRootSettings\n  } = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_2__[\"createDefaultHeaderSettings\"])(nodeData);\n  return headerRootSettings;\n}\n\n/**\n * Internal helper which ensures that subarray exists under specified index.\n *\n * @param {Array[]} array An array to check.\n * @param {number} index An array index under the subarray should be checked.\n * @returns {Array}\n */\nfunction createNestedArrayIfNecessary(array, index) {\n  let subArray;\n  if (Array.isArray(array[index])) {\n    subArray = array[index];\n  } else {\n    subArray = [];\n    array[index] = subArray;\n  }\n  return subArray;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedHeaders/stateManager/matrixGenerator.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs":
/*!*************************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs ***!
  \*************************************************************************************************/
/*! exports provided: collapseNode */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"collapseNode\", function() { return collapseNode; });\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _expand_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./expand.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs\");\n/* harmony import */ var _utils_tree_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/tree.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.mjs\");\n\n\n\n\n\n\n\n\n\n\n/**\n * Collapsing a node is a process where the processing node is collapsed\n * to the colspan width of the first child. All node children, except the\n * first one, are hidden. To prevent losing a current state of node children\n * on the right, all nodes are cloned (and restored while expanding), and\n * only then original nodes are modified (hidden in this case).\n *\n * @param {TreeNode} nodeToProcess A tree node to process.\n * @returns {object} Returns an object with properties:\n *                    - rollbackModification: The function that rollbacks\n *                      the tree to the previous state.\n *                    - affectedColumns: The list of the visual column\n *                      indexes which are affected. That list is passed\n *                      to the hiddens column logic.\n *                    - colspanCompensation: The number of colspan by\n *                      which the processed node colspan was reduced.\n */\nfunction collapseNode(nodeToProcess) {\n  var _getFirstChildPropert;\n  const {\n    data: nodeData,\n    childs: nodeChilds\n  } = nodeToProcess;\n  if (nodeData.isCollapsed || nodeData.isHidden || nodeData.origColspan <= 1) {\n    return {\n      rollbackModification: () => {},\n      affectedColumns: [],\n      colspanCompensation: 0\n    };\n  }\n  const isNodeReflected = Object(_utils_tree_mjs__WEBPACK_IMPORTED_MODULE_9__[\"isNodeReflectsFirstChildColspan\"])(nodeToProcess);\n  if (isNodeReflected) {\n    return collapseNode(nodeChilds[0]);\n  }\n  nodeData.isCollapsed = true;\n  const allLeavesExceptMostLeft = nodeChilds.slice(1);\n  const affectedColumns = new Set();\n  if (allLeavesExceptMostLeft.length > 0) {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_7__[\"arrayEach\"])(allLeavesExceptMostLeft, node => {\n      Object(_utils_tree_mjs__WEBPACK_IMPORTED_MODULE_9__[\"traverseHiddenNodeColumnIndexes\"])(node, gridColumnIndex => {\n        affectedColumns.add(gridColumnIndex);\n      });\n\n      // Clone the tree to preserve original tree state after header expanding.\n      node.data.clonedTree = node.cloneTree();\n\n      // Hide all leaves except the first leaf on the left (on headers context hide all\n      // headers on the right).\n      node.walkDown(_ref => {\n        let {\n          data\n        } = _ref;\n        data.isHidden = true;\n      });\n    });\n  } else {\n    const {\n      origColspan,\n      columnIndex\n    } = nodeData;\n\n    // Add column to \"affected\" started from 1. The header without children can not be\n    // collapsed so the first have to be visible (untouched).\n    for (let i = 1; i < origColspan; i++) {\n      const gridColumnIndex = columnIndex + i;\n      affectedColumns.add(gridColumnIndex);\n    }\n  }\n\n  // Calculate by how many colspan it needs to reduce the headings to match them to\n  // the first child colspan width.\n  const colspanCompensation = nodeData.colspan - ((_getFirstChildPropert = Object(_utils_tree_mjs__WEBPACK_IMPORTED_MODULE_9__[\"getFirstChildProperty\"])(nodeToProcess, 'colspan')) !== null && _getFirstChildPropert !== void 0 ? _getFirstChildPropert : 1);\n  nodeToProcess.walkUp(node => {\n    const {\n      data\n    } = node;\n    data.colspan -= colspanCompensation;\n    if (data.colspan <= 1) {\n      data.colspan = 1;\n      data.isCollapsed = true;\n    } else if (Object(_utils_tree_mjs__WEBPACK_IMPORTED_MODULE_9__[\"isNodeReflectsFirstChildColspan\"])(node)) {\n      data.isCollapsed = Object(_utils_tree_mjs__WEBPACK_IMPORTED_MODULE_9__[\"getFirstChildProperty\"])(node, 'isCollapsed');\n    }\n  });\n  return {\n    rollbackModification: () => Object(_expand_mjs__WEBPACK_IMPORTED_MODULE_8__[\"expandNode\"])(nodeToProcess),\n    affectedColumns: Array.from(affectedColumns),\n    colspanCompensation\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs":
/*!***********************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs ***!
  \***********************************************************************************************/
/*! exports provided: expandNode */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expandNode\", function() { return expandNode; });\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _collapse_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./collapse.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs\");\n/* harmony import */ var _utils_tree_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/tree.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.mjs\");\n\n\n\n\n\n\n\n\n\n\n/**\n * Expanding a node is a process where the processing node is expanded to\n * its original colspan width. To restore an original state of all node\n * children on the right, the modified nodes are replaced with the cloned\n * nodes (they were cloned while collapsing).\n *\n * @param {TreeNode} nodeToProcess A tree node to process.\n * @returns {object} Returns an object with properties:\n *                    - rollbackModification: The function that rollbacks\n *                      the tree to the previous state.\n *                    - affectedColumns: The list of the visual column\n *                      indexes which are affected. That list is passed\n *                      to the hiddens column logic.\n *                    - colspanCompensation: The number of colspan by\n *                      which the processed node colspan was increased.\n */\nfunction expandNode(nodeToProcess) {\n  const {\n    data: nodeData,\n    childs: nodeChilds\n  } = nodeToProcess;\n  if (!nodeData.isCollapsed || nodeData.isHidden || nodeData.origColspan <= 1) {\n    return {\n      rollbackModification: () => {},\n      affectedColumns: [],\n      colspanCompensation: 0\n    };\n  }\n  const isNodeReflected = Object(_utils_tree_mjs__WEBPACK_IMPORTED_MODULE_9__[\"isNodeReflectsFirstChildColspan\"])(nodeToProcess);\n  if (isNodeReflected) {\n    return expandNode(nodeChilds[0]);\n  }\n  nodeData.isCollapsed = false;\n  const allLeavesExceptMostLeft = nodeChilds.slice(1);\n  const affectedColumns = new Set();\n  let colspanCompensation = 0;\n  if (allLeavesExceptMostLeft.length > 0) {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_7__[\"arrayEach\"])(allLeavesExceptMostLeft, node => {\n      // Restore original state of the collapsed headers.\n      node.replaceTreeWith(node.data.clonedTree);\n      node.data.clonedTree = null;\n      const leafData = node.data;\n\n      // Calculate by how many colspan it needs to increase the headings to match them to\n      // the colspan width of all its children.\n      colspanCompensation += leafData.colspan;\n      Object(_utils_tree_mjs__WEBPACK_IMPORTED_MODULE_9__[\"traverseHiddenNodeColumnIndexes\"])(node, gridColumnIndex => {\n        affectedColumns.add(gridColumnIndex);\n      });\n    });\n  } else {\n    const {\n      colspan,\n      origColspan,\n      columnIndex\n    } = nodeData;\n\n    // In a case when the node doesn't have any children restore the colspan width to\n    // its original state.\n    colspanCompensation = origColspan - colspan;\n\n    // Add column to \"affected\" started from 1. The header without children can not be\n    // collapsed so the first column is already visible and we shouldn't touch it.\n    for (let i = 1; i < origColspan; i++) {\n      affectedColumns.add(columnIndex + i);\n    }\n  }\n  nodeToProcess.walkUp(node => {\n    const {\n      data\n    } = node;\n    data.colspan += colspanCompensation;\n    if (data.colspan >= data.origColspan) {\n      data.colspan = data.origColspan;\n      data.isCollapsed = false;\n    } else if (Object(_utils_tree_mjs__WEBPACK_IMPORTED_MODULE_9__[\"isNodeReflectsFirstChildColspan\"])(node)) {\n      data.isCollapsed = Object(_utils_tree_mjs__WEBPACK_IMPORTED_MODULE_9__[\"getFirstChildProperty\"])(node, 'isCollapsed');\n    }\n  });\n  return {\n    rollbackModification: () => Object(_collapse_mjs__WEBPACK_IMPORTED_MODULE_8__[\"collapseNode\"])(nodeToProcess),\n    affectedColumns: Array.from(affectedColumns),\n    colspanCompensation\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs":
/*!***************************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs ***!
  \***************************************************************************************************/
/*! exports provided: hideColumn */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hideColumn\", function() { return hideColumn; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n\n\n\n/**\n * @param {TreeNode} nodeToProcess A tree node to process.\n * @param {number} gridColumnIndex The visual column index that triggers the node modification.\n *                                 The index can be between the root node column index and\n *                                 column index plus node colspan length.\n */\nfunction hideColumn(nodeToProcess, gridColumnIndex) {\n  if (!Number.isInteger(gridColumnIndex)) {\n    throw new Error('The passed gridColumnIndex argument has invalid type.');\n  }\n  if (nodeToProcess.childs.length > 0) {\n    throw new Error(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_2__[\"toSingleLine\"]`The passed node is not the last node on the tree. Only for\\x20\nthe last node, the hide column modification can be applied.`);\n  }\n  const {\n    crossHiddenColumns\n  } = nodeToProcess.data;\n  if (crossHiddenColumns.includes(gridColumnIndex)) {\n    return;\n  }\n  let isCollapsibleNode = false;\n  nodeToProcess.walkUp(node => {\n    const {\n      data: {\n        collapsible\n      }\n    } = node;\n    if (collapsible) {\n      isCollapsibleNode = true;\n      return false; // Cancel tree traversing\n    }\n  });\n\n  // TODO: When the node is collapsible do not hide the column. Currently collapsible headers\n  // does not work with hidden columns (hidden index map types).\n  if (isCollapsibleNode) {\n    return;\n  }\n  nodeToProcess.walkUp(node => {\n    const {\n      data\n    } = node;\n    data.crossHiddenColumns.push(gridColumnIndex);\n    if (data.colspan > 1) {\n      data.colspan -= 1;\n    } else {\n      data.isHidden = true;\n    }\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs":
/*!**********************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs ***!
  \**********************************************************************************************/
/*! exports provided: triggerNodeModification */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"triggerNodeModification\", function() { return triggerNodeModification; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _collapse_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./collapse.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs\");\n/* harmony import */ var _expand_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./expand.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs\");\n/* harmony import */ var _hideColumn_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./hideColumn.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs\");\n/* harmony import */ var _showColumn_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./showColumn.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs\");\n\n/**\n * The NodeModifiers module is responsible for the modification of a tree structure\n * in a way to achieve new column headers state.\n */\n\n\n\n\nconst availableModifiers = new Map([['collapse', _collapse_mjs__WEBPACK_IMPORTED_MODULE_1__[\"collapseNode\"]], ['expand', _expand_mjs__WEBPACK_IMPORTED_MODULE_2__[\"expandNode\"]], ['hide-column', _hideColumn_mjs__WEBPACK_IMPORTED_MODULE_3__[\"hideColumn\"]], ['show-column', _showColumn_mjs__WEBPACK_IMPORTED_MODULE_4__[\"showColumn\"]]]);\n\n/**\n * An entry point for triggering a node modifiers. If the triggered action\n * does not exist the exception is thrown.\n *\n * @param {string} actionName An action name to trigger.\n * @param {TreeNode} nodeToProcess A tree node to process.\n * @param {number} gridColumnIndex The visual column index that comes from the nested headers grid.\n *                                 The index, as opposed to the `columnIndex` in the tree node\n *                                 (which describes the column index of the root node of the header\n *                                 element), describes the index passed from the grid. Hence, the\n *                                 index can be between the column index of the node and its colspan\n *                                 width.\n * @returns {object}\n */\nfunction triggerNodeModification(actionName, nodeToProcess, gridColumnIndex) {\n  if (!availableModifiers.has(actionName)) {\n    throw new Error(`The node modifier action (\"${actionName}\") does not exist.`);\n  }\n  return availableModifiers.get(actionName)(nodeToProcess, gridColumnIndex);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs":
/*!***************************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs ***!
  \***************************************************************************************************/
/*! exports provided: showColumn */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"showColumn\", function() { return showColumn; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n\n\n/**\n * @param {TreeNode} nodeToProcess A tree node to process.\n * @param {number} gridColumnIndex The visual column index that triggers the node modification.\n *                                 The index can be between the root node column index and\n *                                 column index plus node colspan length.\n */\nfunction showColumn(nodeToProcess, gridColumnIndex) {\n  if (!Number.isInteger(gridColumnIndex)) {\n    throw new Error('The passed gridColumnIndex argument has invalid type.');\n  }\n  if (nodeToProcess.childs.length > 0) {\n    throw new Error(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_1__[\"toSingleLine\"]`The passed node is not the last node on the tree. Only for\\x20\nthe last node, the show column modification can be applied.`);\n  }\n  const {\n    crossHiddenColumns\n  } = nodeToProcess.data;\n  if (!crossHiddenColumns.includes(gridColumnIndex)) {\n    return;\n  }\n  let isCollapsibleNode = false;\n  nodeToProcess.walkUp(node => {\n    const {\n      data: {\n        collapsible\n      }\n    } = node;\n    if (collapsible) {\n      isCollapsibleNode = true;\n      return false; // Cancel tree traversing\n    }\n  });\n\n  // TODO: When the node is collapsible do not show the column. Currently collapsible headers\n  // does not work with hidden columns (hidden index map types).\n  if (isCollapsibleNode) {\n    return;\n  }\n  nodeToProcess.walkUp(node => {\n    const {\n      data\n    } = node;\n    data.crossHiddenColumns.splice(data.crossHiddenColumns.indexOf(gridColumnIndex), 1);\n    if (!data.isHidden && data.colspan < data.origColspan) {\n      data.colspan += 1;\n    }\n    data.isHidden = false;\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.mjs":
/*!***************************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.mjs ***!
  \***************************************************************************************************/
/*! exports provided: traverseHiddenNodeColumnIndexes, getFirstChildProperty, isNodeReflectsFirstChildColspan */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"traverseHiddenNodeColumnIndexes\", function() { return traverseHiddenNodeColumnIndexes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFirstChildProperty\", function() { return getFirstChildProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNodeReflectsFirstChildColspan\", function() { return isNodeReflectsFirstChildColspan; });\n/**\n * Traverses the tree nodes and calls a callback when no hidden node is found. The callback\n * is called with visual column index then.\n *\n * @param {TreeNode} node A tree node to traverse.\n * @param {Function} callback The callback function which will be called for each node.\n */\nfunction traverseHiddenNodeColumnIndexes(node, callback) {\n  node.walkDown(_ref => {\n    let {\n      data,\n      childs\n    } = _ref;\n    if (!data.isHidden) {\n      callback(data.columnIndex);\n      if (childs.length === 0) {\n        for (let i = 1; i < data.colspan; i++) {\n          callback(data.columnIndex + i);\n        }\n      }\n    }\n  });\n}\n\n/**\n * A tree helper for retrieving a data from the first child.\n *\n * @param {TreeNode} node A tree node to check.\n * @param {string} propertyName A name of the property whose value you want to get.\n * @returns {*}\n */\nfunction getFirstChildProperty(_ref2, propertyName) {\n  let {\n    childs\n  } = _ref2;\n  if (childs.length === 0) {\n    return;\n  }\n  return childs[0].data[propertyName];\n}\n\n/**\n * A tree helper which checks if passed node has the same original colspan as its\n * first child. In that case the node is treated as \"mirrored\" or \"reflected\" every\n * action performed on one of that nodes should be reflected to other \"mirrored\" node.\n *\n * In that case nodes A1 and A2 are \"reflected\"\n *   +----+----+----+----+\n *   | A1      | B1      |\n *   +----+----+----+----+\n *   | A2      | B2 | B3 |\n *   +----+----+----+----+.\n *\n * @param {TreeNode} node A tree node to check.\n * @returns {boolean}\n */\nfunction isNodeReflectsFirstChildColspan(node) {\n  return getFirstChildProperty(node, 'origColspan') === node.data.origColspan;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs":
/*!*********************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs ***!
  \*********************************************************************************************/
/*! exports provided: normalizeSettings */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeSettings\", function() { return normalizeSettings; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/utils.mjs\");\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n\n\n\n/**\n * A function that normalizes user-defined settings into one predictable\n * structure. Currently, the developer can declare nested headers by passing\n * the following unstructured (and sometimes uncompleted) array.\n *   [\n *     [{ label: 'A1', colspan: 2 }],\n *     [{ label: true }, 'B2', 4],\n *     [],\n *   ]\n *\n * The normalization process equalizes the length of columns to each header\n * layers to the same length and generates object settings with a common shape.\n * So the above mentioned example will be normalized into this:\n *   [\n *     [\n *       { label: 'A1', colspan: 2, isHidden: false, ... },\n *       { label: '', colspan: 1, isHidden: true, ... },\n *       { label: '', colspan: 1, isHidden: false, ... },\n *     ],\n *     [\n *       { label: 'true', colspan: 1, isHidden: false, ... },\n *       { label: 'B2', colspan: 1, isHidden: false, ... },\n *       { label: '4', colspan: 1, isHidden: false, ... },\n *     ],\n *     [\n *       { label: '', colspan: 1, isHidden: false, ... },\n *       { label: '', colspan: 1, isHidden: false, ... },\n *       { label: '', colspan: 1, isHidden: false, ... },\n *     ],\n *   ]\n *\n * @param {Array[]} sourceSettings An array with defined nested headers settings.\n * @param {number} [columnsLimit=Infinity] A number of columns to which the structure\n *                                         will be trimmed. While trimming the colspan\n *                                         values are adjusted to preserve the original\n *                                         structure.\n * @returns {Array[]}\n */\nfunction normalizeSettings(sourceSettings) {\n  let columnsLimit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;\n  const normalizedSettings = [];\n  if (columnsLimit === 0) {\n    return normalizedSettings;\n  }\n\n  // Normalize array items (header settings) into one shape - literal object with default props.\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayEach\"])(sourceSettings, headersSettings => {\n    const columns = [];\n    let columnIndex = 0;\n    normalizedSettings.push(columns);\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayEach\"])(headersSettings, sourceHeaderSettings => {\n      const headerSettings = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_4__[\"createDefaultHeaderSettings\"])();\n      if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isObject\"])(sourceHeaderSettings)) {\n        const {\n          label,\n          colspan,\n          headerClassName\n        } = sourceHeaderSettings;\n        headerSettings.label = Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_3__[\"stringify\"])(label);\n        if (typeof colspan === 'number' && colspan > 1) {\n          headerSettings.colspan = colspan;\n          headerSettings.origColspan = colspan;\n        }\n        if (typeof headerClassName === 'string') {\n          headerSettings.headerClassNames = [...headerClassName.split(' ')];\n        }\n      } else {\n        headerSettings.label = Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_3__[\"stringify\"])(sourceHeaderSettings);\n      }\n      columnIndex += headerSettings.origColspan;\n      let cancelProcessing = false;\n      if (columnIndex >= columnsLimit) {\n        // Adjust the colspan value to not overlap the columns limit.\n        headerSettings.colspan = headerSettings.origColspan - (columnIndex - columnsLimit);\n        headerSettings.origColspan = headerSettings.colspan;\n        cancelProcessing = true;\n      }\n      columns.push(headerSettings);\n      if (headerSettings.colspan > 1) {\n        for (let i = 0; i < headerSettings.colspan - 1; i++) {\n          columns.push(Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_4__[\"createPlaceholderHeaderSettings\"])());\n        }\n      }\n      return !cancelProcessing;\n    });\n  });\n  const columnsLength = Math.max(...Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayMap\"])(normalizedSettings, headersSettings => headersSettings.length));\n\n  // Normalize the length of each header layer to the same columns length.\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayEach\"])(normalizedSettings, headersSettings => {\n    if (headersSettings.length < columnsLength) {\n      const defaultSettings = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayMap\"])(new Array(columnsLength - headersSettings.length), () => Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_4__[\"createDefaultHeaderSettings\"])());\n      headersSettings.splice(headersSettings.length, 0, ...defaultSettings);\n    }\n  });\n  return normalizedSettings;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedHeaders/stateManager/sourceSettings.mjs":
/*!*****************************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedHeaders/stateManager/sourceSettings.mjs ***!
  \*****************************************************************************************/
/*! exports provided: HEADER_CONFIGURABLE_PROPS, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HEADER_CONFIGURABLE_PROPS\", function() { return HEADER_CONFIGURABLE_PROPS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return SourceSettings; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _settingsNormalizer_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settingsNormalizer.mjs */ \"./node_modules/handsontable/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs\");\n\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n/**\n * List of properties which are configurable. That properties can be changed using public API.\n *\n * @type {string[]}\n */\nconst HEADER_CONFIGURABLE_PROPS = ['label', 'collapsible'];\n\n/**\n * The class manages and normalizes settings passed by the developer\n * into the nested headers plugin. The SourceSettings class is a\n * source of truth for tree builder (HeaderTree) module.\n *\n * @private\n * @class SourceSettings\n */\nvar _data = /*#__PURE__*/new WeakMap();\nvar _dataLength = /*#__PURE__*/new WeakMap();\nvar _columnsLimit = /*#__PURE__*/new WeakMap();\nclass SourceSettings {\n  constructor() {\n    /**\n     * The normalized source data (normalized user-defined settings for nested headers).\n     *\n     * @private\n     * @type {Array[]}\n     */\n    _classPrivateFieldInitSpec(this, _data, []);\n    /**\n     * The total length of the nested header layers.\n     *\n     * @private\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _dataLength, 0);\n    /**\n     * Columns count limit value trims source settings to that value. If columns\n     * count limit intersects nested header, the header's colspan value is reduced\n     * to keep the whole structure stable (trimmed precisely where the limit is set).\n     *\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _columnsLimit, Infinity);\n  }\n  /**\n   * Sets columns limit to the source settings will be trimmed. All headers which\n   * overlap the column limit will be reduced to keep the structure solid.\n   *\n   * @param {number} columnsCount The number of columns to limit to.\n   */\n  setColumnsLimit(columnsCount) {\n    _classPrivateFieldSet(_columnsLimit, this, columnsCount);\n  }\n\n  /**\n   * Sets a new nested header configuration.\n   *\n   * @param {Array[]} [nestedHeadersSettings=[]] The user-defined nested headers settings.\n   */\n  setData() {\n    let nestedHeadersSettings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    _classPrivateFieldSet(_data, this, Object(_settingsNormalizer_mjs__WEBPACK_IMPORTED_MODULE_4__[\"normalizeSettings\"])(nestedHeadersSettings, _classPrivateFieldGet(_columnsLimit, this)));\n    _classPrivateFieldSet(_dataLength, this, _classPrivateFieldGet(_data, this).length);\n  }\n\n  /**\n   * Gets normalized source settings.\n   *\n   * @returns {Array[]}\n   */\n  getData() {\n    return _classPrivateFieldGet(_data, this);\n  }\n\n  /**\n   * Merges settings with current source settings.\n   *\n   * @param {object[]} additionalSettings An array of objects with `row`, `col` and additional\n   *                                      properties to merge with current source settings.\n   */\n  mergeWith(additionalSettings) {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(additionalSettings, _ref => {\n      let {\n        row,\n        col,\n        ...rest\n      } = _ref;\n      const headerSettings = this.getHeaderSettings(row, col);\n      if (headerSettings !== null) {\n        Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"extend\"])(headerSettings, rest, HEADER_CONFIGURABLE_PROPS);\n      }\n    });\n  }\n\n  /**\n   * Maps the current state with a callback. For each source settings the callback function\n   * is called. If the function returns value that value is merged with the source settings.\n   *\n   * @param {Function} callback A function that is called for every header settings.\n   *                            Each time the callback is called, the returned value extends\n   *                            header settings.\n   */\n  map(callback) {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(_classPrivateFieldGet(_data, this), header => {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(header, headerSettings => {\n        const propsToExtend = callback({\n          ...headerSettings\n        });\n        if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isObject\"])(propsToExtend)) {\n          Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"extend\"])(headerSettings, propsToExtend, HEADER_CONFIGURABLE_PROPS);\n        }\n      });\n    });\n  }\n\n  /**\n   * Gets source column header settings for a specified header. The returned\n   * object contains information about the header label, its colspan length,\n   * or if it is hidden in the header renderers.\n   *\n   * @param {number} headerLevel Header level (0 = most distant to the table).\n   * @param {number} columnIndex A visual column index.\n   * @returns {object|null}\n   */\n  getHeaderSettings(headerLevel, columnIndex) {\n    var _headersSettings$colu;\n    if (headerLevel >= _classPrivateFieldGet(_dataLength, this) || headerLevel < 0) {\n      return null;\n    }\n    const headersSettings = _classPrivateFieldGet(_data, this)[headerLevel];\n    if (Array.isArray(headersSettings) === false || columnIndex >= headersSettings.length) {\n      return null;\n    }\n    return (_headersSettings$colu = headersSettings[columnIndex]) !== null && _headersSettings$colu !== void 0 ? _headersSettings$colu : null;\n  }\n\n  /**\n   * Gets source of column headers settings for specified headers. If the retrieved column\n   * settings overlap the range \"box\" determined by \"columnIndex\" and \"columnsLength\"\n   * the exception will be thrown.\n   *\n   * @param {number} headerLevel Header level (0 = most distant to the table).\n   * @param {number} columnIndex A visual column index from which the settings will be extracted.\n   * @param {number} [columnsLength=1] The number of columns involved in the extraction of settings.\n   * @returns {object}\n   */\n  getHeadersSettings(headerLevel, columnIndex) {\n    let columnsLength = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n    const headersSettingsChunks = [];\n    if (headerLevel >= _classPrivateFieldGet(_dataLength, this) || headerLevel < 0) {\n      return headersSettingsChunks;\n    }\n    const headersSettings = _classPrivateFieldGet(_data, this)[headerLevel];\n    let currentLength = 0;\n    for (let i = columnIndex; i < headersSettings.length; i++) {\n      const headerSettings = headersSettings[i];\n      if (headerSettings.isPlaceholder) {\n        throw new Error('The first column settings cannot overlap the other header layers');\n      }\n      currentLength += headerSettings.colspan;\n      headersSettingsChunks.push(headerSettings);\n      if (headerSettings.colspan > 1) {\n        i += headerSettings.colspan - 1;\n      }\n\n      // We met the current sum of the child colspans\n      if (currentLength === columnsLength) {\n        break;\n      }\n      // We exceeds the current sum of the child colspans, the last columns colspan overlaps the \"columnsLength\" length.\n      if (currentLength > columnsLength) {\n        throw new Error('The last column settings cannot overlap the other header layers');\n      }\n    }\n    return headersSettingsChunks;\n  }\n\n  /**\n   * Gets a total number of headers levels.\n   *\n   * @returns {number}\n   */\n  getLayersCount() {\n    return _classPrivateFieldGet(_dataLength, this);\n  }\n\n  /**\n   * Gets a total number of columns count.\n   *\n   * @returns {number}\n   */\n  getColumnsCount() {\n    return _classPrivateFieldGet(_dataLength, this) > 0 ? _classPrivateFieldGet(_data, this)[0].length : 0;\n  }\n\n  /**\n   * Clears the data.\n   */\n  clear() {\n    _classPrivateFieldSet(_data, this, []);\n    _classPrivateFieldSet(_dataLength, this, 0);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedHeaders/stateManager/sourceSettings.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedHeaders/stateManager/utils.mjs":
/*!********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedHeaders/stateManager/utils.mjs ***!
  \********************************************************************************/
/*! exports provided: createDefaultHeaderSettings, createPlaceholderHeaderSettings */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createDefaultHeaderSettings\", function() { return createDefaultHeaderSettings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createPlaceholderHeaderSettings\", function() { return createPlaceholderHeaderSettings; });\n/**\n * @typedef {object} DefaultHeaderSettings\n * @property {string} label The name/label of the column header.\n * @property {number} colspan Current calculated colspan value of the rendered column header element.\n * @property {number} origColspan Original colspan value, set once while parsing user-defined nested header settings.\n * @property {boolean} collapsible The flag determines whether the node is collapsible (can be collapsed/expanded).\n * @property {number[]} crossHiddenColumns The list of visual column indexes which indicates that the specified columns within\n *                                         the header settings are hidden.\n * @property {boolean} isCollapsed The flag determines whether the node is collapsed.\n * @property {boolean} isHidden The flag determines whether the column header at specified index is hidden. If true\n *                              the TH element will be rendered as hidden (display: none).\n * @property {boolean} isRoot The flag which determines whether the column header settings is actually not renderable. That kind\n *                            of objects are generated after colspaned header to fill an array to correct size.\n *                            For example for header with colspan = 8 the 7 blank objects are generated to fill the array settings\n *                            to length = 8.\n * @property {boolean} isPlaceholder The flag determines whether the column header at the specified index is non-renderable.\n * @property {string[]} headerClassNames The list of CSS classes that will be added to the `div` element inside the\n * header Acts as a replacement for the analogous property from the Handsontable settings.\n */\n\n/**\n * Creates the header settings object with default values.\n *\n * @param {DefaultHeaderSettings} initialValues The initial values for the header settings object.\n * @returns {DefaultHeaderSettings}\n */\nfunction createDefaultHeaderSettings() {\n  let {\n    label = '',\n    colspan = 1,\n    origColspan = 1,\n    collapsible = false,\n    crossHiddenColumns = [],\n    isCollapsed = false,\n    isHidden = false,\n    isRoot = false,\n    isPlaceholder = false,\n    headerClassNames = []\n  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return {\n    label,\n    colspan,\n    origColspan,\n    collapsible,\n    isCollapsed,\n    crossHiddenColumns,\n    isHidden,\n    isRoot,\n    isPlaceholder,\n    headerClassNames\n  };\n}\n\n/**\n * Creates the placeholder header settings object. Those settings tell the header renderers\n * that this TH element should not be rendered (the node will be overlapped by the previously\n * created node with colspan bigger than 1).\n *\n * @returns {object}\n */\nfunction createPlaceholderHeaderSettings() {\n  return {\n    label: '',\n    isPlaceholder: true\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedHeaders/stateManager/utils.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedHeaders/utils/ghostTable.mjs":
/*!******************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedHeaders/utils/ghostTable.mjs ***!
  \******************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n/**\n * The class generates the nested headers structure in the DOM and reads the column width for\n * each column. The hierarchy is built only for visible, non-hidden columns. Each time the\n * column is shown or hidden, the structure is rebuilt, and the width of the columns in the\n * map updated.\n *\n * @private\n */\nclass GhostTable {\n  constructor(hot, nestedHeaderSettingsGetter) {\n    /**\n     * Reference to the Handsontable instance.\n     *\n     * @private\n     * @type {Handsontable}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * The function for retrieving the nested headers settings.\n     *\n     * @private\n     * @type {Function}\n     */\n    _defineProperty(this, \"nestedHeaderSettingsGetter\", void 0);\n    /**\n     * The value that holds information about the number of the nested header layers (header rows).\n     *\n     * @private\n     * @type {number}\n     */\n    _defineProperty(this, \"layersCount\", 0);\n    /**\n     * Temporary element created to get minimal headers widths.\n     *\n     * @private\n     * @type {*}\n     */\n    _defineProperty(this, \"container\", void 0);\n    /**\n     * PhysicalIndexToValueMap to keep and track of the columns' widths.\n     *\n     * @private\n     * @type {PhysicalIndexToValueMap}\n     */\n    _defineProperty(this, \"widthsMap\", void 0);\n    this.hot = hot;\n    this.nestedHeaderSettingsGetter = nestedHeaderSettingsGetter;\n    this.widthsMap = this.hot.columnIndexMapper.createAndRegisterIndexMap('nestedHeaders.widthsMap', 'physicalIndexToValue');\n  }\n\n  /**\n   * Sets the number of nested headers layers count.\n   *\n   * @param {number} layersCount Total number of headers levels.\n   * @returns {GhostTable}\n   */\n  setLayersCount(layersCount) {\n    this.layersCount = layersCount;\n    return this;\n  }\n\n  /**\n   * Gets the column width based on the visual column index.\n   *\n   * @param {number} visualColumn Visual column index.\n   * @returns {number|null}\n   */\n  getWidth(visualColumn) {\n    return this.widthsMap.getValueAtIndex(this.hot.toPhysicalColumn(visualColumn));\n  }\n\n  /**\n   * Build cache of the headers widths.\n   */\n  buildWidthsMap() {\n    this.container = this.hot.rootDocument.createElement('div');\n    this.container.classList.add('handsontable', 'htGhostTable', 'htAutoSize');\n    this._buildGhostTable(this.container);\n    this.hot.rootDocument.body.appendChild(this.container);\n    const columns = this.container.querySelectorAll('tr:last-of-type th');\n    const maxColumns = columns.length;\n    this.widthsMap.clear();\n    for (let column = 0; column < maxColumns; column++) {\n      const visualColumnsIndex = this.hot.columnIndexMapper.getVisualFromRenderableIndex(column);\n      const physicalColumnIndex = this.hot.toPhysicalColumn(visualColumnsIndex);\n      this.widthsMap.setValueAtIndex(physicalColumnIndex, columns[column].offsetWidth);\n    }\n    this.container.parentNode.removeChild(this.container);\n    this.container = null;\n  }\n\n  /**\n   * Build temporary table for getting minimal columns widths.\n   *\n   * @private\n   * @param {HTMLElement} container The element where the DOM nodes are injected.\n   */\n  _buildGhostTable(container) {\n    const {\n      rootDocument,\n      columnIndexMapper\n    } = this.hot;\n    const fragment = rootDocument.createDocumentFragment();\n    const table = rootDocument.createElement('table');\n    const isDropdownEnabled = !!this.hot.getSettings().dropdownMenu;\n    const maxRenderedCols = columnIndexMapper.getRenderableIndexesLength();\n    for (let row = 0; row < this.layersCount; row++) {\n      const tr = rootDocument.createElement('tr');\n      for (let col = 0; col < maxRenderedCols; col++) {\n        let visualColumnsIndex = columnIndexMapper.getVisualFromRenderableIndex(col);\n        if (visualColumnsIndex === null) {\n          visualColumnsIndex = col;\n        }\n        const th = rootDocument.createElement('th');\n        const headerSettings = this.nestedHeaderSettingsGetter(row, visualColumnsIndex);\n        if (headerSettings && (!headerSettings.isPlaceholder || headerSettings.isHidden)) {\n          let label = headerSettings.label;\n          if (isDropdownEnabled) {\n            label += '<button class=\"changeType\"></button>';\n          }\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"fastInnerHTML\"])(th, label);\n          th.colSpan = headerSettings.colspan;\n          tr.appendChild(th);\n        }\n      }\n      table.appendChild(tr);\n    }\n    fragment.appendChild(table);\n    container.appendChild(fragment);\n  }\n\n  /**\n   * Clear the widths cache.\n   */\n  clear() {\n    this.widthsMap.clear();\n    this.container = null;\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (GhostTable);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedHeaders/utils/ghostTable.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedRows/data/dataManager.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedRows/data/dataManager.mjs ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n/**\n * Class responsible for making data operations.\n *\n * @private\n */\nclass DataManager {\n  constructor(nestedRowsPlugin, hotInstance) {\n    /**\n     * Main Handsontable instance reference.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * Reference to the source data object.\n     *\n     * @type {Handsontable.CellValue[][]|Handsontable.RowObject[]}\n     */\n    _defineProperty(this, \"data\", null);\n    /**\n     * Reference to the NestedRows plugin.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"plugin\", void 0);\n    /**\n     * Map of row object parents.\n     *\n     * @type {WeakMap}\n     */\n    _defineProperty(this, \"parentReference\", new WeakMap());\n    /**\n     * Nested structure cache.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"cache\", {\n      levels: [],\n      levelCount: 0,\n      rows: [],\n      nodeInfo: new WeakMap()\n    });\n    this.hot = hotInstance;\n    this.plugin = nestedRowsPlugin;\n  }\n\n  /**\n   * Set the data for the manager.\n   *\n   * @param {Handsontable.CellValue[][]|Handsontable.RowObject[]} data Data for the manager.\n   */\n  setData(data) {\n    this.data = data;\n  }\n\n  /**\n   * Get the data cached in the manager.\n   *\n   * @returns {Handsontable.CellValue[][]|Handsontable.RowObject[]}\n   */\n  getData() {\n    return this.data;\n  }\n\n  /**\n   * Load the \"raw\" source data, without NestedRows' modifications.\n   *\n   * @returns {Handsontable.CellValue[][]|Handsontable.RowObject[]}\n   */\n  getRawSourceData() {\n    let rawSourceData = null;\n    this.plugin.disableCoreAPIModifiers();\n    rawSourceData = this.hot.getSourceData();\n    this.plugin.enableCoreAPIModifiers();\n    return rawSourceData;\n  }\n\n  /**\n   * Update the Data Manager with new data and refresh cache.\n   *\n   * @param {Handsontable.CellValue[][]|Handsontable.RowObject[]} data Data for the manager.\n   */\n  updateWithData(data) {\n    this.setData(data);\n    this.rewriteCache();\n  }\n\n  /**\n   * Rewrite the nested structure cache.\n   *\n   * @private\n   */\n  rewriteCache() {\n    this.cache = {\n      levels: [],\n      levelCount: 0,\n      rows: [],\n      nodeInfo: new WeakMap()\n    };\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_2__[\"rangeEach\"])(0, this.data.length - 1, i => {\n      this.cacheNode(this.data[i], 0, null);\n    });\n  }\n\n  /**\n   * Cache a data node.\n   *\n   * @private\n   * @param {object} node Node to cache.\n   * @param {number} level Level of the node.\n   * @param {object} parent Parent of the node.\n   */\n  cacheNode(node, level, parent) {\n    if (!this.cache.levels[level]) {\n      this.cache.levels[level] = [];\n      this.cache.levelCount += 1;\n    }\n    this.cache.levels[level].push(node);\n    this.cache.rows.push(node);\n    this.cache.nodeInfo.set(node, {\n      parent,\n      row: this.cache.rows.length - 1,\n      level\n    });\n    if (this.hasChildren(node)) {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(node.__children, elem => {\n        this.cacheNode(elem, level + 1, node);\n      });\n    }\n  }\n\n  /**\n   * Get the date for the provided visual row number.\n   *\n   * @param {number} row Row index.\n   * @returns {object}\n   */\n  getDataObject(row) {\n    return row === null || row === undefined ? null : this.cache.rows[row];\n  }\n\n  /**\n   * Read the row tree in search for a specific row index or row object.\n   *\n   * @private\n   * @param {object} parent The initial parent object.\n   * @param {number} readCount Number of read nodes.\n   * @param {number} neededIndex The row index we search for.\n   * @param {object} neededObject The row object we search for.\n   * @returns {number|object}\n   */\n  readTreeNodes(parent, readCount, neededIndex, neededObject) {\n    let rootLevel = false;\n    let readNodesCount = readCount;\n    if (isNaN(readNodesCount) && readNodesCount.end) {\n      return readNodesCount;\n    }\n    let parentObj = parent;\n    if (!parentObj) {\n      parentObj = {\n        __children: this.data\n      };\n      rootLevel = true;\n      readNodesCount -= 1;\n    }\n    if (neededIndex !== null && neededIndex !== undefined && readNodesCount === neededIndex) {\n      return {\n        result: parentObj,\n        end: true\n      };\n    }\n    if (neededObject !== null && neededObject !== undefined && parentObj === neededObject) {\n      return {\n        result: readNodesCount,\n        end: true\n      };\n    }\n    readNodesCount += 1;\n    if (parentObj.__children) {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(parentObj.__children, val => {\n        this.parentReference.set(val, rootLevel ? null : parentObj);\n        readNodesCount = this.readTreeNodes(val, readNodesCount, neededIndex, neededObject);\n        if (isNaN(readNodesCount) && readNodesCount.end) {\n          return false;\n        }\n      });\n    }\n    return readNodesCount;\n  }\n\n  /**\n   * Mock a parent node.\n   *\n   * @private\n   * @returns {*}\n   */\n  mockParent() {\n    const fakeParent = this.mockNode();\n    fakeParent.__children = this.data;\n    return fakeParent;\n  }\n\n  /**\n   * Mock a data node.\n   *\n   * @private\n   * @returns {{}}\n   */\n  mockNode() {\n    const fakeNode = {};\n    Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"objectEach\"])(this.data[0], (val, key) => {\n      fakeNode[key] = null;\n    });\n    return fakeNode;\n  }\n\n  /**\n   * Get the row index for the provided row object.\n   *\n   * @param {object} rowObj The row object.\n   * @returns {number} Row index.\n   */\n  getRowIndex(rowObj) {\n    return rowObj === null || rowObj === undefined ? null : this.cache.nodeInfo.get(rowObj).row;\n  }\n\n  /**\n   * Get the index of the provided row index/row object within its parent.\n   *\n   * @param {number|object} row Row index / row object.\n   * @returns {number}\n   */\n  getRowIndexWithinParent(row) {\n    let rowObj = null;\n    if (isNaN(row)) {\n      rowObj = row;\n    } else {\n      rowObj = this.getDataObject(row);\n    }\n    const parent = this.getRowParent(row);\n    if (parent === null || parent === undefined) {\n      return this.data.indexOf(rowObj);\n    }\n    return parent.__children.indexOf(rowObj);\n  }\n\n  /**\n   * Count all rows (including all parents and children).\n   *\n   * @returns {number}\n   */\n  countAllRows() {\n    const rootNodeMock = {\n      __children: this.data\n    };\n    return this.countChildren(rootNodeMock);\n  }\n\n  /**\n   * Count children of the provided parent.\n   *\n   * @param {object|number} parent Parent node.\n   * @returns {number} Children count.\n   */\n  countChildren(parent) {\n    let rowCount = 0;\n    let parentNode = parent;\n    if (!isNaN(parentNode)) {\n      parentNode = this.getDataObject(parentNode);\n    }\n    if (!parentNode || !parentNode.__children) {\n      return 0;\n    }\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(parentNode.__children, elem => {\n      rowCount += 1;\n      if (elem.__children) {\n        rowCount += this.countChildren(elem);\n      }\n    });\n    return rowCount;\n  }\n\n  /**\n   * Get the parent of the row at the provided index.\n   *\n   * @param {number|object} row Physical row index.\n   * @returns {object}\n   */\n  getRowParent(row) {\n    let rowObject;\n    if (isNaN(row)) {\n      rowObject = row;\n    } else {\n      rowObject = this.getDataObject(row);\n    }\n    return this.getRowObjectParent(rowObject);\n  }\n\n  /**\n   * Get the parent of the provided row object.\n   *\n   * @private\n   * @param {object} rowObject The row object (tree node).\n   * @returns {object|null}\n   */\n  getRowObjectParent(rowObject) {\n    if (!rowObject || typeof rowObject !== 'object') {\n      return null;\n    }\n    return this.cache.nodeInfo.get(rowObject).parent;\n  }\n\n  /**\n   * Get the nesting level for the row with the provided row index.\n   *\n   * @param {number} row Row index.\n   * @returns {number|null} Row level or null, when row doesn't exist.\n   */\n  getRowLevel(row) {\n    let rowObject = null;\n    if (isNaN(row)) {\n      rowObject = row;\n    } else {\n      rowObject = this.getDataObject(row);\n    }\n    return rowObject ? this.getRowObjectLevel(rowObject) : null;\n  }\n\n  /**\n   * Get the nesting level for the row with the provided row index.\n   *\n   * @private\n   * @param {object} rowObject Row object.\n   * @returns {number} Row level.\n   */\n  getRowObjectLevel(rowObject) {\n    return rowObject === null || rowObject === undefined ? null : this.cache.nodeInfo.get(rowObject).level;\n  }\n\n  /**\n   * Check if the provided row/row element has children.\n   *\n   * @param {number|object} row Row number or row element.\n   * @returns {boolean}\n   */\n  hasChildren(row) {\n    let rowObj = row;\n    if (!isNaN(rowObj)) {\n      rowObj = this.getDataObject(rowObj);\n    }\n    return !!(rowObj.__children && rowObj.__children.length);\n  }\n\n  /**\n   * Returns `true` if the row at the provided index has a parent.\n   *\n   * @param {number} index Row index.\n   * @returns {boolean} `true` if the row at the provided index has a parent, `false` otherwise.\n   */\n  isChild(index) {\n    return this.getRowParent(index) !== null;\n  }\n\n  /**\n   * Get child at a provided index from the parent element.\n   *\n   * @param {object} parent The parent row object.\n   * @param {number} index Index of the child element to be retrieved.\n   * @returns {object|null} The child element or `null` if the child doesn't exist.\n   */\n  getChild(parent, index) {\n    var _parent$__children;\n    return ((_parent$__children = parent.__children) === null || _parent$__children === void 0 ? void 0 : _parent$__children[index]) || null;\n  }\n\n  /**\n   * Return `true` of the row at the provided index is located at the topmost level.\n   *\n   * @param {number} index Row index.\n   * @returns {boolean} `true` of the row at the provided index is located at the topmost level, `false` otherwise.\n   */\n  isRowHighestLevel(index) {\n    return !this.isChild(index);\n  }\n\n  /**\n   * Return `true` if the provided row index / row object represents a parent in the nested structure.\n   *\n   * @param {number|object} row Row index / row object.\n   * @returns {boolean} `true` if the row is a parent, `false` otherwise.\n   */\n  isParent(row) {\n    var _rowObj$__children;\n    let rowObj = row;\n    if (!isNaN(rowObj)) {\n      rowObj = this.getDataObject(rowObj);\n    }\n    return rowObj && !!rowObj.__children && ((_rowObj$__children = rowObj.__children) === null || _rowObj$__children === void 0 ? void 0 : _rowObj$__children.length) !== 0;\n  }\n\n  /**\n   * Add a child to the provided parent. It's optional to add a row object as the \"element\".\n   *\n   * @param {object} parent The parent row object.\n   * @param {object} [element] The element to add as a child.\n   */\n  addChild(parent, element) {\n    let childElement = element;\n    this.hot.runHooks('beforeAddChild', parent, childElement);\n    let parentIndex = null;\n    if (parent) {\n      parentIndex = this.getRowIndex(parent);\n    }\n    this.hot.runHooks('beforeCreateRow', parentIndex + this.countChildren(parent) + 1, 1);\n    let functionalParent = parent;\n    if (!parent) {\n      functionalParent = this.mockParent();\n    }\n    if (!functionalParent.__children) {\n      functionalParent.__children = [];\n    }\n    if (!childElement) {\n      childElement = this.mockNode();\n    }\n    functionalParent.__children.push(childElement);\n    this.rewriteCache();\n    const newRowIndex = this.getRowIndex(childElement);\n    this.hot.rowIndexMapper.insertIndexes(newRowIndex, 1);\n    this.hot.runHooks('afterCreateRow', newRowIndex, 1);\n    this.hot.runHooks('afterAddChild', parent, childElement);\n  }\n\n  /**\n   * Add a child node to the provided parent at a specified index.\n   *\n   * @param {object} parent Parent node.\n   * @param {number} index Index to insert the child element at.\n   * @param {object} [element] Element (node) to insert.\n   */\n  addChildAtIndex(parent, index, element) {\n    let childElement = element;\n    let flattenedIndex;\n    if (!childElement) {\n      childElement = this.mockNode();\n    }\n    this.hot.runHooks('beforeAddChild', parent, childElement, index);\n    if (parent) {\n      const parentIndex = this.getRowIndex(parent);\n      const finalChildIndex = parentIndex + index + 1;\n      this.hot.runHooks('beforeCreateRow', finalChildIndex, 1);\n      parent.__children.splice(index, null, childElement);\n      this.rewriteCache();\n      this.plugin.disableCoreAPIModifiers();\n      this.hot.setSourceDataAtCell(this.getRowIndexWithinParent(parent), '__children', parent.__children, 'NestedRows.addChildAtIndex');\n      this.hot.rowIndexMapper.insertIndexes(finalChildIndex, 1);\n      this.plugin.enableCoreAPIModifiers();\n      this.hot.runHooks('afterCreateRow', finalChildIndex, 1);\n      flattenedIndex = finalChildIndex;\n    } else {\n      this.plugin.disableCoreAPIModifiers();\n      this.hot.alter('insert_row_above', index, 1, 'NestedRows.addChildAtIndex');\n      this.plugin.enableCoreAPIModifiers();\n      flattenedIndex = this.getRowIndex(this.data[index]);\n    }\n\n    // Workaround for refreshing cache losing the reference to the mocked row.\n    childElement = this.getDataObject(flattenedIndex);\n    this.hot.runHooks('afterAddChild', parent, childElement, index);\n  }\n\n  /**\n   * Add a sibling element at the specified index.\n   *\n   * @param {number} index New element sibling's index.\n   * @param {('above'|'below')} where Direction in which the sibling is to be created.\n   */\n  addSibling(index) {\n    let where = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'below';\n    const translatedIndex = this.translateTrimmedRow(index);\n    const parent = this.getRowParent(translatedIndex);\n    const indexWithinParent = this.getRowIndexWithinParent(translatedIndex);\n    switch (where) {\n      case 'below':\n        this.addChildAtIndex(parent, indexWithinParent + 1, null);\n        break;\n      case 'above':\n        this.addChildAtIndex(parent, indexWithinParent, null);\n        break;\n      default:\n        break;\n    }\n  }\n\n  /**\n   * Detach the provided element from its parent and add it right after it.\n   *\n   * @param {object|Array} elements Row object or an array of selected coordinates.\n   * @param {boolean} [forceRender=true] If true (default), it triggers render after finished.\n   */\n  detachFromParent(elements) {\n    let forceRender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    let element = null;\n    const rowObjects = [];\n    if (Array.isArray(elements)) {\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_2__[\"rangeEach\"])(elements[0], elements[2], i => {\n        const translatedIndex = this.translateTrimmedRow(i);\n        rowObjects.push(this.getDataObject(translatedIndex));\n      });\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_2__[\"rangeEach\"])(0, rowObjects.length - 2, i => {\n        this.detachFromParent(rowObjects[i], false);\n      });\n      element = rowObjects[rowObjects.length - 1];\n    } else {\n      element = elements;\n    }\n    const childRowIndex = this.getRowIndex(element);\n    const childCount = this.countChildren(element);\n    const indexWithinParent = this.getRowIndexWithinParent(element);\n    const parent = this.getRowParent(element);\n    const grandparent = this.getRowParent(parent);\n    const grandparentRowIndex = this.getRowIndex(grandparent);\n    let movedElementRowIndex = null;\n    this.hot.runHooks('beforeDetachChild', parent, element);\n    if (indexWithinParent !== null && indexWithinParent !== undefined) {\n      const removedRowIndexes = Array.from(new Array(childRowIndex + childCount + 1).keys()).splice(-1 * (childCount + 1));\n      this.hot.runHooks('beforeRemoveRow', childRowIndex, childCount + 1, removedRowIndexes, this.plugin.pluginName);\n      parent.__children.splice(indexWithinParent, 1);\n      this.rewriteCache();\n      this.hot.runHooks('afterRemoveRow', childRowIndex, childCount + 1, removedRowIndexes, this.plugin.pluginName);\n      if (grandparent) {\n        movedElementRowIndex = grandparentRowIndex + this.countChildren(grandparent);\n        const lastGrandparentChild = this.getChild(grandparent, this.countChildren(grandparent) - 1);\n        const lastGrandparentChildIndex = this.getRowIndex(lastGrandparentChild);\n        this.hot.runHooks('beforeCreateRow', lastGrandparentChildIndex + 1, childCount + 1, this.plugin.pluginName);\n        grandparent.__children.push(element);\n      } else {\n        movedElementRowIndex = this.hot.countRows() + 1;\n        this.hot.runHooks('beforeCreateRow', movedElementRowIndex - 2, childCount + 1, this.plugin.pluginName);\n        this.data.push(element);\n      }\n    }\n    this.rewriteCache();\n    this.hot.runHooks('afterCreateRow', movedElementRowIndex - 2, childCount + 1, this.plugin.pluginName);\n    this.hot.runHooks('afterDetachChild', parent, element, this.getRowIndex(element));\n    if (forceRender) {\n      this.hot.render();\n    }\n  }\n\n  /**\n   * Filter the data by the `logicRows` array.\n   *\n   * @private\n   * @param {number} index Index of the first row to remove.\n   * @param {number} amount Number of elements to remove.\n   * @param {Array} logicRows Array of indexes to remove.\n   */\n  filterData(index, amount, logicRows) {\n    // TODO: why are the first 2 arguments not used?\n\n    const elementsToRemove = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(logicRows, elem => {\n      elementsToRemove.push(this.getDataObject(elem));\n    });\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_4__[\"arrayEach\"])(elementsToRemove, elem => {\n      const indexWithinParent = this.getRowIndexWithinParent(elem);\n      const tempParent = this.getRowParent(elem);\n      if (tempParent === null) {\n        this.data.splice(indexWithinParent, 1);\n      } else {\n        tempParent.__children.splice(indexWithinParent, 1);\n      }\n    });\n    this.rewriteCache();\n  }\n\n  /**\n   * Used to splice the source data. Needed to properly modify the nested structure, which wouldn't work with the\n   * default script.\n   *\n   * @private\n   * @param {number} index Physical index of the element at the splice beginning.\n   * @param {number} amount Number of elements to be removed.\n   * @param {object[]} elements Array of row objects to add.\n   */\n  spliceData(index, amount, elements) {\n    const previousElement = this.getDataObject(index - 1);\n    let newRowParent = null;\n    let indexWithinParent = index;\n    if (previousElement && previousElement.__children && previousElement.__children.length === 0) {\n      newRowParent = previousElement;\n      indexWithinParent = 0;\n    } else if (index < this.countAllRows()) {\n      newRowParent = this.getRowParent(index);\n      indexWithinParent = this.getRowIndexWithinParent(index);\n    }\n    if (newRowParent) {\n      if (elements) {\n        newRowParent.__children.splice(indexWithinParent, amount, ...elements);\n      } else {\n        newRowParent.__children.splice(indexWithinParent, amount);\n      }\n    } else if (elements) {\n      this.data.splice(indexWithinParent, amount, ...elements);\n    } else {\n      this.data.splice(indexWithinParent, amount);\n    }\n    this.rewriteCache();\n  }\n\n  /**\n   * Update the `__children` key of the upmost parent of the provided row object.\n   *\n   * @private\n   * @param {object} rowElement Row object.\n   */\n  syncRowWithRawSource(rowElement) {\n    let upmostParent = rowElement;\n    let tempParent = null;\n    do {\n      tempParent = this.getRowParent(tempParent);\n      if (tempParent !== null) {\n        upmostParent = tempParent;\n      }\n    } while (tempParent !== null);\n    this.plugin.disableCoreAPIModifiers();\n    this.hot.setSourceDataAtCell(this.getRowIndex(upmostParent), '__children', upmostParent.__children, 'NestedRows.syncRowWithRawSource');\n    this.plugin.enableCoreAPIModifiers();\n  }\n\n  /* eslint-disable jsdoc/require-param */\n  /**\n   * Move a single row.\n   *\n   * @param {number} fromIndex Index of the row to be moved.\n   * @param {number} toIndex Index of the destination.\n   * @param {boolean} moveToCollapsed `true` if moving a row to a collapsed parent.\n   * @param {boolean} moveToLastChild `true` if moving a row to be a last child of the new parent.\n   */\n\n  /* eslint-enable jsdoc/require-param */\n  moveRow(fromIndex, toIndex, moveToCollapsed, moveToLastChild) {\n    const moveToLastRow = toIndex === this.hot.countRows();\n    const fromParent = this.getRowParent(fromIndex);\n    const indexInFromParent = this.getRowIndexWithinParent(fromIndex);\n    const elemToMove = fromParent.__children.slice(indexInFromParent, indexInFromParent + 1);\n    const movingUp = fromIndex > toIndex;\n    let toParent = moveToLastRow ? this.getRowParent(toIndex - 1) : this.getRowParent(toIndex);\n    if (toParent === null || toParent === undefined) {\n      toParent = this.getRowParent(toIndex - 1);\n    }\n    if (toParent === null || toParent === undefined) {\n      toParent = this.getDataObject(toIndex - 1);\n    }\n    if (!toParent) {\n      toParent = this.getDataObject(toIndex);\n      toParent.__children = [];\n    } else if (!toParent.__children) {\n      toParent.__children = [];\n    }\n    const indexInTargetParent = moveToLastRow || moveToCollapsed || moveToLastChild ? toParent.__children.length : this.getRowIndexWithinParent(toIndex);\n    const sameParent = fromParent === toParent;\n    toParent.__children.splice(indexInTargetParent, 0, elemToMove[0]);\n    fromParent.__children.splice(indexInFromParent + (movingUp && sameParent ? 1 : 0), 1);\n\n    // Sync the changes in the cached data with the actual data stored in HOT.\n    this.syncRowWithRawSource(fromParent);\n    if (!sameParent) {\n      this.syncRowWithRawSource(toParent);\n    }\n  }\n\n  /**\n   * Translate the visual row index to the physical index, taking into consideration the state of collapsed rows.\n   *\n   * @private\n   * @param {number} row Row index.\n   * @returns {number}\n   */\n  translateTrimmedRow(row) {\n    if (this.plugin.collapsingUI) {\n      return this.plugin.collapsingUI.translateTrimmedRow(row);\n    }\n    return row;\n  }\n\n  /**\n   * Translate the physical row index to the visual index, taking into consideration the state of collapsed rows.\n   *\n   * @private\n   * @param {number} row Row index.\n   * @returns {number}\n   */\n  untranslateTrimmedRow(row) {\n    if (this.plugin.collapsingUI) {\n      return this.plugin.collapsingUI.untranslateTrimmedRow(row);\n    }\n    return row;\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (DataManager);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedRows/data/dataManager.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedRows/index.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedRows/index.mjs ***!
  \****************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, NestedRows */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nestedRows_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nestedRows.mjs */ \"./node_modules/handsontable/plugins/nestedRows/nestedRows.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _nestedRows_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _nestedRows_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NestedRows\", function() { return _nestedRows_mjs__WEBPACK_IMPORTED_MODULE_0__[\"NestedRows\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedRows/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedRows/nestedRows.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedRows/nestedRows.mjs ***!
  \*********************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, NestedRows */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NestedRows\", function() { return NestedRows; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _data_dataManager_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./data/dataManager.mjs */ \"./node_modules/handsontable/plugins/nestedRows/data/dataManager.mjs\");\n/* harmony import */ var _ui_collapsing_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ui/collapsing.mjs */ \"./node_modules/handsontable/plugins/nestedRows/ui/collapsing.mjs\");\n/* harmony import */ var _ui_headers_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ui/headers.mjs */ \"./node_modules/handsontable/plugins/nestedRows/ui/headers.mjs\");\n/* harmony import */ var _ui_contextMenu_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ui/contextMenu.mjs */ \"./node_modules/handsontable/plugins/nestedRows/ui/contextMenu.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _helpers_data_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../helpers/data.mjs */ \"./node_modules/handsontable/helpers/data.mjs\");\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n/* harmony import */ var _shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../shortcutContexts/index.mjs */ \"./node_modules/handsontable/shortcutContexts/index.mjs\");\n/* harmony import */ var _utils_rowMoveController_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./utils/rowMoveController.mjs */ \"./node_modules/handsontable/plugins/nestedRows/utils/rowMoveController.mjs\");\n\n\n\n\n\n\n\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\nconst PLUGIN_KEY = 'nestedRows';\nconst PLUGIN_PRIORITY = 300;\nconst SHORTCUTS_GROUP = PLUGIN_KEY;\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * Error message for the wrong data type error.\n */\nconst WRONG_DATA_TYPE_ERROR = 'The Nested Rows plugin requires an Array of Objects as a dataset to be' + ' provided. The plugin has been disabled.';\n\n/**\n * @plugin NestedRows\n * @class NestedRows\n *\n * @description\n * Plugin responsible for displaying and operating on data sources with nested structures.\n */\nvar _skipRender = /*#__PURE__*/new WeakMap();\nvar _skipCoreAPIModifiers = /*#__PURE__*/new WeakMap();\nvar _NestedRows_brand = /*#__PURE__*/new WeakSet();\nclass NestedRows extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * `beforeRowMove` hook callback.\n     *\n     * @param {Array} rows Array of visual row indexes to be moved.\n     * @param {number} finalIndex Visual row index, being a start index for the moved rows. Points to where the elements\n     *   will be placed after the moving action. To check the visualization of the final index, please take a look at\n     *   [documentation](@/guides/rows/row-summary/row-summary.md).\n     * @param {undefined|number} dropIndex Visual row index, being a drop index for the moved rows. Points to where we\n     *   are going to drop the moved elements. To check visualization of drop index please take a look at\n     *   [documentation](@/guides/rows/row-summary/row-summary.md).\n     * @param {boolean} movePossible Indicates if it's possible to move rows to the desired position.\n     * @fires Hooks#afterRowMove\n     * @returns {boolean}\n     */\n    _classPrivateMethodInitSpec(this, _NestedRows_brand);\n    /**\n     * Reference to the DataManager instance.\n     *\n     * @private\n     * @type {object}\n     */\n    _defineProperty(this, \"dataManager\", null);\n    /**\n     * Reference to the HeadersUI instance.\n     *\n     * @private\n     * @type {object}\n     */\n    _defineProperty(this, \"headersUI\", null);\n    /**\n     * Map of skipped rows by plugin.\n     *\n     * @private\n     * @type {null|TrimmingMap}\n     */\n    _defineProperty(this, \"collapsedRowsMap\", null);\n    /**\n     * Allows skipping the render cycle if set as `true`.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _skipRender, false);\n    /**\n     * Allows skipping the internal Core methods call if set as `true`.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _skipCoreAPIModifiers, false);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link NestedRows#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    this.collapsedRowsMap = this.hot.rowIndexMapper.registerMap('nestedRows', new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_16__[\"TrimmingMap\"]());\n    this.dataManager = new _data_dataManager_mjs__WEBPACK_IMPORTED_MODULE_10__[\"default\"](this, this.hot);\n    this.collapsingUI = new _ui_collapsing_mjs__WEBPACK_IMPORTED_MODULE_11__[\"default\"](this, this.hot);\n    this.headersUI = new _ui_headers_mjs__WEBPACK_IMPORTED_MODULE_12__[\"default\"](this, this.hot);\n    this.contextMenuUI = new _ui_contextMenu_mjs__WEBPACK_IMPORTED_MODULE_13__[\"default\"](this, this.hot);\n    this.rowMoveController = new _utils_rowMoveController_mjs__WEBPACK_IMPORTED_MODULE_18__[\"default\"](this);\n    this.addHook('afterInit', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_NestedRows_brand, _this, _onAfterInit).call(_this, ...args);\n    });\n    this.addHook('beforeViewRender', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_NestedRows_brand, _this, _onBeforeViewRender).call(_this, ...args);\n    });\n    this.addHook('modifyRowData', function () {\n      return _this.onModifyRowData(...arguments);\n    });\n    this.addHook('modifySourceLength', function () {\n      return _this.onModifySourceLength(...arguments);\n    });\n    this.addHook('beforeDataSplice', function () {\n      return _this.onBeforeDataSplice(...arguments);\n    });\n    this.addHook('filterData', function () {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n      return _assertClassBrand(_NestedRows_brand, _this, _onFilterData).call(_this, ...args);\n    });\n    this.addHook('afterContextMenuDefaultOptions', function () {\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n      return _assertClassBrand(_NestedRows_brand, _this, _onAfterContextMenuDefaultOptions).call(_this, ...args);\n    });\n    this.addHook('afterGetRowHeader', function () {\n      for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n        args[_key5] = arguments[_key5];\n      }\n      return _assertClassBrand(_NestedRows_brand, _this, _onAfterGetRowHeader).call(_this, ...args);\n    });\n    this.addHook('beforeOnCellMouseDown', function () {\n      for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n        args[_key6] = arguments[_key6];\n      }\n      return _assertClassBrand(_NestedRows_brand, _this, _onBeforeOnCellMouseDown).call(_this, ...args);\n    });\n    this.addHook('beforeRemoveRow', function () {\n      for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n        args[_key7] = arguments[_key7];\n      }\n      return _assertClassBrand(_NestedRows_brand, _this, _onBeforeRemoveRow).call(_this, ...args);\n    });\n    this.addHook('afterRemoveRow', function () {\n      for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n        args[_key8] = arguments[_key8];\n      }\n      return _assertClassBrand(_NestedRows_brand, _this, _onAfterRemoveRow).call(_this, ...args);\n    });\n    this.addHook('beforeAddChild', function () {\n      for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n        args[_key9] = arguments[_key9];\n      }\n      return _assertClassBrand(_NestedRows_brand, _this, _onBeforeAddChild).call(_this, ...args);\n    });\n    this.addHook('afterAddChild', function () {\n      for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n        args[_key10] = arguments[_key10];\n      }\n      return _assertClassBrand(_NestedRows_brand, _this, _onAfterAddChild).call(_this, ...args);\n    });\n    this.addHook('beforeDetachChild', function () {\n      for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n        args[_key11] = arguments[_key11];\n      }\n      return _assertClassBrand(_NestedRows_brand, _this, _onBeforeDetachChild).call(_this, ...args);\n    });\n    this.addHook('afterDetachChild', function () {\n      for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n        args[_key12] = arguments[_key12];\n      }\n      return _assertClassBrand(_NestedRows_brand, _this, _onAfterDetachChild).call(_this, ...args);\n    });\n    this.addHook('modifyRowHeaderWidth', function () {\n      for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n        args[_key13] = arguments[_key13];\n      }\n      return _assertClassBrand(_NestedRows_brand, _this, _onModifyRowHeaderWidth).call(_this, ...args);\n    });\n    this.addHook('afterCreateRow', function () {\n      for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n        args[_key14] = arguments[_key14];\n      }\n      return _assertClassBrand(_NestedRows_brand, _this, _onAfterCreateRow).call(_this, ...args);\n    });\n    this.addHook('beforeRowMove', function () {\n      for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {\n        args[_key15] = arguments[_key15];\n      }\n      return _assertClassBrand(_NestedRows_brand, _this, _onBeforeRowMove).call(_this, ...args);\n    });\n    this.addHook('beforeLoadData', data => _assertClassBrand(_NestedRows_brand, this, _onBeforeLoadData).call(this, data));\n    this.addHook('beforeUpdateData', data => _assertClassBrand(_NestedRows_brand, this, _onBeforeLoadData).call(this, data));\n    this.registerShortcuts();\n    super.enablePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.hot.rowIndexMapper.unregisterMap('nestedRows');\n    this.unregisterShortcuts();\n    super.disablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`nestedRows`](@/api/options.md#nestedrows)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n\n    // We store a state of the data manager.\n    const currentSourceData = this.dataManager.getData();\n    this.enablePlugin();\n\n    // After enabling plugin previously stored data is restored.\n    this.dataManager.updateWithData(currentSourceData);\n    super.updatePlugin();\n  }\n\n  /**\n   * Register shortcuts responsible for toggling collapsible columns.\n   *\n   * @private\n   */\n  registerShortcuts() {\n    this.hot.getShortcutManager().getContext('grid').addShortcut({\n      keys: [['Enter']],\n      callback: () => {\n        const {\n          highlight\n        } = this.hot.getSelectedRangeLast();\n        const row = this.collapsingUI.translateTrimmedRow(highlight.row);\n        if (this.collapsingUI.areChildrenCollapsed(row)) {\n          this.collapsingUI.expandChildren(row);\n        } else {\n          this.collapsingUI.collapseChildren(row);\n        }\n\n        // prevent default Enter behavior (move to the next row within a selection range)\n        return false;\n      },\n      runOnlyIf: () => {\n        var _this$hot$getSelected, _this$hot$getSelected2;\n        const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;\n        return highlight && ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.isSingle()) && this.hot.selection.isCellVisible(highlight) && highlight.col === -1 && highlight.row >= 0;\n      },\n      group: SHORTCUTS_GROUP,\n      relativeToGroup: _shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_17__[\"EDITOR_EDIT_GROUP\"],\n      position: 'before'\n    });\n  }\n\n  /**\n   * Unregister shortcuts responsible for toggling collapsible columns.\n   *\n   * @private\n   */\n  unregisterShortcuts() {\n    this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);\n  }\n  /**\n   * Enable the modify hook skipping flag - allows retrieving the data from Handsontable without this plugin's\n   * modifications.\n   *\n   * @private\n   */\n  disableCoreAPIModifiers() {\n    _classPrivateFieldSet(_skipCoreAPIModifiers, this, true);\n  }\n\n  /**\n   * Disable the modify hook skipping flag.\n   *\n   * @private\n   */\n  enableCoreAPIModifiers() {\n    _classPrivateFieldSet(_skipCoreAPIModifiers, this, false);\n  }\n\n  /**\n   * `beforeOnCellMousedown` hook callback.\n   *\n   * @param {MouseEvent} event Mousedown event.\n   * @param {object} coords Cell coords.\n   * @param {HTMLElement} TD Clicked cell.\n   */\n\n  /**\n   * The modifyRowData hook callback.\n   *\n   * @private\n   * @param {number} row Visual row index.\n   * @returns {boolean}\n   */\n  onModifyRowData(row) {\n    if (_classPrivateFieldGet(_skipCoreAPIModifiers, this)) {\n      return;\n    }\n    return this.dataManager.getDataObject(row);\n  }\n\n  /**\n   * Modify the source data length to match the length of the nested structure.\n   *\n   * @private\n   * @returns {number}\n   */\n  onModifySourceLength() {\n    if (_classPrivateFieldGet(_skipCoreAPIModifiers, this)) {\n      return;\n    }\n    return this.dataManager.countAllRows();\n  }\n\n  /**\n   * @private\n   * @param {number} index The index where the data was spliced.\n   * @param {number} amount An amount of items to remove.\n   * @param {object} element An element to add.\n   * @returns {boolean}\n   */\n  onBeforeDataSplice(index, amount, element) {\n    if (_classPrivateFieldGet(_skipCoreAPIModifiers, this) || this.dataManager.isRowHighestLevel(index)) {\n      return true;\n    }\n    this.dataManager.spliceData(index, amount, element);\n    return false;\n  }\n\n  /**\n   * Provide custom source data filtering. It's handled by core method and replaces the native filtering.\n   *\n   * @param {number} index The index where the data filtering starts.\n   * @param {number} amount An amount of rows which filtering applies to.\n   * @param {number} physicalRows Physical row indexes.\n   * @returns {Array}\n   */\n\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    super.destroy();\n  }\n}\nfunction _onBeforeRowMove(rows, finalIndex, dropIndex, movePossible) {\n  return this.rowMoveController.onBeforeRowMove(rows, finalIndex, dropIndex, movePossible);\n}\nfunction _onBeforeOnCellMouseDown(event, coords, TD) {\n  this.collapsingUI.toggleState(event, coords, TD);\n}\nfunction _onFilterData(index, amount, physicalRows) {\n  this.collapsingUI.collapsedRowsStash.stash();\n  this.collapsingUI.collapsedRowsStash.trimStash(physicalRows[0], amount);\n  this.collapsingUI.collapsedRowsStash.shiftStash(physicalRows[0], null, -1 * amount);\n  this.dataManager.filterData(index, amount, physicalRows);\n  _classPrivateFieldSet(_skipRender, this, true);\n  return this.dataManager.getData().slice(); // Data contains reference sometimes.\n}\n/**\n * `afterContextMenuDefaultOptions` hook callback.\n *\n * @param {object} defaultOptions The default context menu items order.\n * @returns {boolean}\n */\nfunction _onAfterContextMenuDefaultOptions(defaultOptions) {\n  return this.contextMenuUI.appendOptions(defaultOptions);\n}\n/**\n * `afterGetRowHeader` hook callback.\n *\n * @param {number} row Row index.\n * @param {HTMLElement} TH Row header element.\n */\nfunction _onAfterGetRowHeader(row, TH) {\n  this.headersUI.appendLevelIndicators(row, TH);\n}\n/**\n * `modifyRowHeaderWidth` hook callback.\n *\n * @param {number} rowHeaderWidth The initial row header width(s).\n * @returns {number}\n */\nfunction _onModifyRowHeaderWidth(rowHeaderWidth) {\n  return Math.max(this.headersUI.rowHeaderWidthCache, rowHeaderWidth);\n}\n/**\n * `onAfterRemoveRow` hook callback.\n *\n * @param {number} index Removed row.\n * @param {number} amount Amount of removed rows.\n * @param {Array} logicRows An array of the removed physical rows.\n * @param {string} source Source of action.\n */\nfunction _onAfterRemoveRow(index, amount, logicRows, source) {\n  if (source === this.pluginName) {\n    return;\n  }\n  this.hot._registerTimeout(() => {\n    _classPrivateFieldSet(_skipRender, this, false);\n    this.headersUI.updateRowHeaderWidth();\n    this.collapsingUI.collapsedRowsStash.applyStash();\n  });\n}\n/**\n * Callback for the `beforeRemoveRow` change list of removed physical indexes by reference. Removing parent node\n * has effect in removing children nodes.\n *\n * @param {number} index Visual index of starter row.\n * @param {number} amount Amount of rows to be removed.\n * @param {Array} physicalRows List of physical indexes.\n */\nfunction _onBeforeRemoveRow(index, amount, physicalRows) {\n  const modifiedPhysicalRows = Array.from(physicalRows.reduce((removedRows, physicalIndex) => {\n    if (this.dataManager.isParent(physicalIndex)) {\n      const children = this.dataManager.getDataObject(physicalIndex).__children;\n\n      // Preserve a parent in the list of removed rows.\n      removedRows.add(physicalIndex);\n      if (Array.isArray(children)) {\n        // Add a children to the list of removed rows.\n        children.forEach(child => removedRows.add(this.dataManager.getRowIndex(child)));\n      }\n      return removedRows;\n    }\n\n    // Don't modify list of removed rows when already checked element isn't a parent.\n    return removedRows.add(physicalIndex);\n  }, new Set()));\n\n  // Modifying hook's argument by the reference.\n  physicalRows.length = 0;\n  physicalRows.push(...modifiedPhysicalRows);\n}\n/**\n * `beforeAddChild` hook callback.\n */\nfunction _onBeforeAddChild() {\n  this.collapsingUI.collapsedRowsStash.stash();\n}\n/**\n * `afterAddChild` hook callback.\n *\n * @param {object} parent Parent element.\n * @param {object} element New child element.\n */\nfunction _onAfterAddChild(parent, element) {\n  this.collapsingUI.collapsedRowsStash.shiftStash(this.dataManager.getRowIndex(element));\n  this.collapsingUI.collapsedRowsStash.applyStash();\n  this.headersUI.updateRowHeaderWidth();\n}\n/**\n * `beforeDetachChild` hook callback.\n */\nfunction _onBeforeDetachChild() {\n  this.collapsingUI.collapsedRowsStash.stash();\n}\n/**\n * `afterDetachChild` hook callback.\n *\n * @param {object} parent Parent element.\n * @param {object} element New child element.\n * @param {number} finalElementRowIndex The final row index of the detached element.\n */\nfunction _onAfterDetachChild(parent, element, finalElementRowIndex) {\n  this.collapsingUI.collapsedRowsStash.shiftStash(finalElementRowIndex, null, -1);\n  this.collapsingUI.collapsedRowsStash.applyStash();\n  this.headersUI.updateRowHeaderWidth();\n}\n/**\n * `afterCreateRow` hook callback.\n */\nfunction _onAfterCreateRow() {\n  this.dataManager.rewriteCache();\n}\n/**\n * `afterInit` hook callback.\n */\nfunction _onAfterInit() {\n  this.headersUI.updateRowHeaderWidth();\n}\n/**\n * `beforeViewRender` hook callback.\n *\n * @param {boolean} force Indicates if the render call was triggered by a change of settings or data.\n * @param {object} skipRender An object, holder for skipRender functionality.\n */\nfunction _onBeforeViewRender(force, skipRender) {\n  if (_classPrivateFieldGet(_skipRender, this)) {\n    skipRender.skipRender = true;\n  }\n}\n/**\n * `beforeLoadData` hook callback.\n *\n * @param {Array} data The source data.\n */\nfunction _onBeforeLoadData(data) {\n  if (!Object(_helpers_data_mjs__WEBPACK_IMPORTED_MODULE_15__[\"isArrayOfObjects\"])(data)) {\n    Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_14__[\"error\"])(WRONG_DATA_TYPE_ERROR);\n    this.hot.getSettings()[PLUGIN_KEY] = false;\n    this.disablePlugin();\n    return;\n  }\n  this.dataManager.setData(data);\n  this.dataManager.rewriteCache();\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedRows/nestedRows.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedRows/ui/_base.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedRows/ui/_base.mjs ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * Base class for the Nested Rows' UI sub-classes.\n *\n * @private\n * @class\n */\nclass BaseUI {\n  constructor(pluginInstance, hotInstance) {\n    /**\n     * Instance of Handsontable.\n     *\n     * @type {Core}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * Reference to the main plugin instance.\n     */\n    _defineProperty(this, \"plugin\", void 0);\n    this.hot = hotInstance;\n    this.plugin = pluginInstance;\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (BaseUI);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedRows/ui/_base.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedRows/ui/collapsing.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedRows/ui/collapsing.mjs ***!
  \************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/nestedRows/ui/_base.mjs\");\n/* harmony import */ var _headers_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./headers.mjs */ \"./node_modules/handsontable/plugins/nestedRows/ui/headers.mjs\");\n\n\n\n\n\n\n\n/**\n * Class responsible for the UI for collapsing and expanding groups.\n *\n * @private\n * @class\n * @augments BaseUI\n */\nclass CollapsingUI extends _base_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"] {\n  constructor(nestedRowsPlugin, hotInstance) {\n    var _this;\n    /**\n     * Reference to the TrimRows plugin.\n     */\n    super(nestedRowsPlugin, hotInstance);\n    _this = this;\n    this.dataManager = this.plugin.dataManager;\n    this.collapsedRows = [];\n    this.collapsedRowsStash = {\n      stash: function () {\n        let forceRender = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n        _this.lastCollapsedRows = _this.collapsedRows.slice(0);\n\n        // Workaround for wrong indexes being set in the trimRows plugin\n        _this.expandMultipleChildren(_this.lastCollapsedRows, forceRender);\n      },\n      shiftStash: function (baseIndex, targetIndex) {\n        let delta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n        if (targetIndex === null || targetIndex === undefined) {\n          targetIndex = Infinity;\n        }\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(_this.lastCollapsedRows, (elem, i) => {\n          if (elem >= baseIndex && elem < targetIndex) {\n            _this.lastCollapsedRows[i] = elem + delta;\n          }\n        });\n      },\n      applyStash: function () {\n        let forceRender = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n        _this.collapseMultipleChildren(_this.lastCollapsedRows, forceRender);\n        _this.lastCollapsedRows = undefined;\n      },\n      trimStash: (realElementIndex, amount) => {\n        Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__[\"rangeEach\"])(realElementIndex, realElementIndex + amount - 1, i => {\n          const indexOfElement = this.lastCollapsedRows.indexOf(i);\n          if (indexOfElement > -1) {\n            this.lastCollapsedRows.splice(indexOfElement, 1);\n          }\n        });\n      }\n    };\n  }\n\n  /**\n   * Collapse the children of the row passed as an argument.\n   *\n   * @param {number|object} row The parent row.\n   * @param {boolean} [forceRender=true] Whether to render the table after the function ends.\n   * @param {boolean} [doTrimming=true] I determine whether collapsing should envolve trimming rows.\n   * @returns {Array}\n   */\n  collapseChildren(row) {\n    let forceRender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    let doTrimming = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n    const rowsToCollapse = [];\n    let rowObject = null;\n    let rowIndex = null;\n    let rowsToTrim = null;\n    if (isNaN(row)) {\n      rowObject = row;\n      rowIndex = this.dataManager.getRowIndex(rowObject);\n    } else {\n      rowObject = this.dataManager.getDataObject(row);\n      rowIndex = row;\n    }\n    if (this.dataManager.hasChildren(rowObject)) {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(rowObject.__children, elem => {\n        rowsToCollapse.push(this.dataManager.getRowIndex(elem));\n      });\n    }\n    rowsToTrim = this.collapseRows(rowsToCollapse, true, false);\n    if (doTrimming) {\n      this.trimRows(rowsToTrim);\n    }\n    if (forceRender) {\n      this.renderAndAdjust();\n    }\n    if (this.collapsedRows.indexOf(rowIndex) === -1) {\n      this.collapsedRows.push(rowIndex);\n    }\n    return rowsToTrim;\n  }\n\n  /**\n   * Collapse multiple children.\n   *\n   * @param {Array} rows Rows to collapse (including their children).\n   * @param {boolean} [forceRender=true] `true` if the table should be rendered after finishing the function.\n   * @param {boolean} [doTrimming=true] I determine whether collapsing should envolve trimming rows.\n   */\n  collapseMultipleChildren(rows) {\n    let forceRender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    let doTrimming = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n    const rowsToTrim = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(rows, elem => {\n      rowsToTrim.push(...this.collapseChildren(elem, false, false));\n    });\n    if (doTrimming) {\n      this.trimRows(rowsToTrim);\n    }\n    if (forceRender) {\n      this.renderAndAdjust();\n    }\n  }\n\n  /**\n   * Collapse a single row.\n   *\n   * @param {number} rowIndex Index of the row to collapse.\n   * @param {boolean} [recursive=true] `true` if it should collapse the row's children.\n   */\n  collapseRow(rowIndex) {\n    let recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    this.collapseRows([rowIndex], recursive);\n  }\n\n  /**\n   * Collapse multiple rows.\n   *\n   * @param {Array} rowIndexes Array of row indexes to collapse.\n   * @param {boolean} [recursive=true] `true` if it should collapse the rows' children.\n   * @param {boolean} [doTrimming=true] I determine whether collapsing should envolve trimming rows.\n   * @returns {Array} Rows prepared for trimming (or trimmed, if doTrimming == true).\n   */\n  collapseRows(rowIndexes) {\n    let recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    let doTrimming = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    const rowsToTrim = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(rowIndexes, elem => {\n      rowsToTrim.push(elem);\n      if (recursive) {\n        this.collapseChildRows(elem, rowsToTrim);\n      }\n    });\n    if (doTrimming) {\n      this.trimRows(rowsToTrim);\n    }\n    return rowsToTrim;\n  }\n\n  /**\n   * Collapse child rows of the row at the provided index.\n   *\n   * @param {number} parentIndex Index of the parent node.\n   * @param {Array} [rowsToTrim=[]] Array of rows to trim. Defaults to an empty array.\n   * @param {boolean} [recursive] `true` if the collapsing process should be recursive.\n   * @param {boolean} [doTrimming=true] I determine whether collapsing should envolve trimming rows.\n   */\n  collapseChildRows(parentIndex) {\n    let rowsToTrim = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    let recursive = arguments.length > 2 ? arguments[2] : undefined;\n    let doTrimming = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n    if (this.dataManager.hasChildren(parentIndex)) {\n      const parentObject = this.dataManager.getDataObject(parentIndex);\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(parentObject.__children, elem => {\n        const elemIndex = this.dataManager.getRowIndex(elem);\n        rowsToTrim.push(elemIndex);\n        this.collapseChildRows(elemIndex, rowsToTrim);\n      });\n    }\n    if (doTrimming) {\n      this.trimRows(rowsToTrim);\n    }\n  }\n\n  /**\n   * Expand a single row.\n   *\n   * @param {number} rowIndex Index of the row to expand.\n   * @param {boolean} [recursive=true] `true` if it should expand the row's children recursively.\n   */\n  expandRow(rowIndex) {\n    let recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    this.expandRows([rowIndex], recursive);\n  }\n\n  /**\n   * Expand multiple rows.\n   *\n   * @param {Array} rowIndexes Array of indexes of the rows to expand.\n   * @param {boolean} [recursive=true] `true` if it should expand the rows' children recursively.\n   * @param {boolean} [doTrimming=true] I determine whether collapsing should envolve trimming rows.\n   * @returns {Array} Array of row indexes to be untrimmed.\n   */\n  expandRows(rowIndexes) {\n    let recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    let doTrimming = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    const rowsToUntrim = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(rowIndexes, elem => {\n      rowsToUntrim.push(elem);\n      if (recursive) {\n        this.expandChildRows(elem, rowsToUntrim);\n      }\n    });\n    if (doTrimming) {\n      this.untrimRows(rowsToUntrim);\n    }\n    return rowsToUntrim;\n  }\n\n  /**\n   * Expand child rows of the provided index.\n   *\n   * @param {number} parentIndex Index of the parent row.\n   * @param {Array} [rowsToUntrim=[]] Array of the rows to be untrimmed.\n   * @param {boolean} [recursive] `true` if it should expand the rows' children recursively.\n   * @param {boolean} [doTrimming=false] I determine whether collapsing should envolve trimming rows.\n   */\n  expandChildRows(parentIndex) {\n    let rowsToUntrim = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    let recursive = arguments.length > 2 ? arguments[2] : undefined;\n    let doTrimming = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n    if (this.dataManager.hasChildren(parentIndex)) {\n      const parentObject = this.dataManager.getDataObject(parentIndex);\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(parentObject.__children, elem => {\n        if (!this.isAnyParentCollapsed(elem)) {\n          const elemIndex = this.dataManager.getRowIndex(elem);\n          rowsToUntrim.push(elemIndex);\n          this.expandChildRows(elemIndex, rowsToUntrim);\n        }\n      });\n    }\n    if (doTrimming) {\n      this.untrimRows(rowsToUntrim);\n    }\n  }\n\n  /**\n   * Expand the children of the row passed as an argument.\n   *\n   * @param {number|object} row Parent row.\n   * @param {boolean} [forceRender=true] Whether to render the table after the function ends.\n   * @param {boolean} [doTrimming=true] If set to `true`, the trimming will be applied when the function finishes.\n   * @returns {number[]}\n   */\n  expandChildren(row) {\n    let forceRender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    let doTrimming = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n    const rowsToExpand = [];\n    let rowObject = null;\n    let rowIndex = null;\n    let rowsToUntrim = null;\n    if (isNaN(row)) {\n      rowObject = row;\n      rowIndex = this.dataManager.getRowIndex(row);\n    } else {\n      rowObject = this.dataManager.getDataObject(row);\n      rowIndex = row;\n    }\n    this.collapsedRows.splice(this.collapsedRows.indexOf(rowIndex), 1);\n    if (this.dataManager.hasChildren(rowObject)) {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(rowObject.__children, elem => {\n        const childIndex = this.dataManager.getRowIndex(elem);\n        rowsToExpand.push(childIndex);\n      });\n    }\n    rowsToUntrim = this.expandRows(rowsToExpand, true, false);\n    if (doTrimming) {\n      this.untrimRows(rowsToUntrim);\n    }\n    if (forceRender) {\n      this.renderAndAdjust();\n    }\n    return rowsToUntrim;\n  }\n\n  /**\n   * Expand multiple rows' children.\n   *\n   * @param {Array} rows Array of rows which children are about to be expanded.\n   * @param {boolean} [forceRender=true] `true` if the table should render after finishing the function.\n   * @param {boolean} [doTrimming=true] `true` if the rows should be untrimmed after finishing the function.\n   */\n  expandMultipleChildren(rows) {\n    let forceRender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    let doTrimming = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n    const rowsToUntrim = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(rows, elem => {\n      rowsToUntrim.push(...this.expandChildren(elem, false, false));\n    });\n    if (doTrimming) {\n      this.untrimRows(rowsToUntrim);\n    }\n    if (forceRender) {\n      this.renderAndAdjust();\n    }\n  }\n\n  /**\n   * Collapse all collapsable rows.\n   */\n  collapseAll() {\n    const data = this.dataManager.getData();\n    const parentsToCollapse = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(data, elem => {\n      if (this.dataManager.hasChildren(elem)) {\n        parentsToCollapse.push(elem);\n      }\n    });\n    this.collapseMultipleChildren(parentsToCollapse);\n    this.renderAndAdjust();\n  }\n\n  /**\n   * Expand all collapsable rows.\n   */\n  expandAll() {\n    const data = this.dataManager.getData();\n    const parentsToExpand = [];\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(data, elem => {\n      if (this.dataManager.hasChildren(elem)) {\n        parentsToExpand.push(elem);\n      }\n    });\n    this.expandMultipleChildren(parentsToExpand);\n    this.renderAndAdjust();\n  }\n\n  /**\n   * Trim rows.\n   *\n   * @param {Array} rows Physical row indexes.\n   */\n  trimRows(rows) {\n    this.hot.batchExecution(() => {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(rows, physicalRow => {\n        this.plugin.collapsedRowsMap.setValueAtIndex(physicalRow, true);\n      });\n    }, true);\n  }\n\n  /**\n   * Untrim rows.\n   *\n   * @param {Array} rows Physical row indexes.\n   */\n  untrimRows(rows) {\n    this.hot.batchExecution(() => {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(rows, physicalRow => {\n        this.plugin.collapsedRowsMap.setValueAtIndex(physicalRow, false);\n      });\n    }, true);\n  }\n\n  /**\n   * Check if all child rows are collapsed.\n   *\n   * @private\n   * @param {number|object|null} row The parent row. `null` for the top level.\n   * @returns {boolean}\n   */\n  areChildrenCollapsed(row) {\n    let rowObj = isNaN(row) ? row : this.dataManager.getDataObject(row);\n    let allCollapsed = true;\n\n    // Checking the children of the top-level \"parent\"\n    if (rowObj === null) {\n      rowObj = {\n        __children: this.dataManager.data\n      };\n    }\n    if (this.dataManager.hasChildren(rowObj)) {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(rowObj.__children, elem => {\n        const rowIndex = this.dataManager.getRowIndex(elem);\n        if (!this.plugin.collapsedRowsMap.getValueAtIndex(rowIndex)) {\n          allCollapsed = false;\n          return false;\n        }\n      });\n    }\n    return allCollapsed;\n  }\n\n  /**\n   * Check if any of the row object parents are collapsed.\n   *\n   * @private\n   * @param {object} rowObj Row object.\n   * @returns {boolean}\n   */\n  isAnyParentCollapsed(rowObj) {\n    let parent = rowObj;\n    while (parent !== null) {\n      parent = this.dataManager.getRowParent(parent);\n      const parentIndex = this.dataManager.getRowIndex(parent);\n      if (this.collapsedRows.indexOf(parentIndex) > -1) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   * Toggle collapsed state. Callback for the `beforeOnCellMousedown` hook.\n   *\n   * @private\n   * @param {MouseEvent} event `mousedown` event.\n   * @param {object} coords Coordinates of the clicked cell/header.\n   */\n  toggleState(event, coords) {\n    if (coords.col >= 0) {\n      return;\n    }\n    const row = this.translateTrimmedRow(coords.row);\n    if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"hasClass\"])(event.target, _headers_mjs__WEBPACK_IMPORTED_MODULE_6__[\"default\"].CSS_CLASSES.button)) {\n      if (this.areChildrenCollapsed(row)) {\n        this.expandChildren(row);\n      } else {\n        this.collapseChildren(row);\n      }\n      Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_1__[\"stopImmediatePropagation\"])(event);\n    }\n  }\n\n  /**\n   * Translate visual row after trimming to physical base row index.\n   *\n   * @private\n   * @param {number} row Row index.\n   * @returns {number} Base row index.\n   */\n  translateTrimmedRow(row) {\n    return this.hot.toPhysicalRow(row);\n  }\n\n  /**\n   * Translate physical row after trimming to visual base row index.\n   *\n   * @private\n   * @param {number} row Row index.\n   * @returns {number} Base row index.\n   */\n  untranslateTrimmedRow(row) {\n    return this.hot.toVisualRow(row);\n  }\n\n  /**\n   * Helper function to render the table and call the `adjustElementsSize` method.\n   *\n   * @private\n   */\n  renderAndAdjust() {\n    this.hot.render();\n\n    // Dirty workaround to prevent scroll height not adjusting to the table height. Needs refactoring in the future.\n    this.hot.view.adjustElementsSize();\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (CollapsingUI);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedRows/ui/collapsing.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedRows/ui/contextMenu.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedRows/ui/contextMenu.mjs ***!
  \*************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/nestedRows/ui/_base.mjs\");\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n/**\n * Class responsible for the Context Menu entries for the Nested Rows plugin.\n *\n * @private\n * @class ContextMenuUI\n * @augments BaseUI\n */\nvar _menuEntries = /*#__PURE__*/new WeakMap();\nclass ContextMenuUI extends _base_mjs__WEBPACK_IMPORTED_MODULE_4__[\"default\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * Reference to the DataManager instance connected with the Nested Rows plugin.\n     *\n     * @type {DataManager}\n     */\n    _defineProperty(this, \"dataManager\", this.plugin.dataManager);\n    _classPrivateFieldInitSpec(this, _menuEntries, {\n      row_above: (key, selection) => {\n        const lastSelection = selection[selection.length - 1];\n        this.dataManager.addSibling(lastSelection.start.row, 'above');\n      },\n      row_below: (key, selection) => {\n        const lastSelection = selection[selection.length - 1];\n        this.dataManager.addSibling(lastSelection.start.row, 'below');\n      }\n    });\n  }\n  /**\n   * Append options to the context menu. (Propagated from the `afterContextMenuDefaultOptions` hook callback)\n   * f.\n   *\n   * @private\n   * @param {object} defaultOptions Default context menu options.\n   * @returns {*}\n   */\n  appendOptions(defaultOptions) {\n    const newEntries = [{\n      key: 'add_child',\n      name() {\n        return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_3__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD\"]);\n      },\n      callback: () => {\n        const translatedRowIndex = this.dataManager.translateTrimmedRow(this.hot.getSelectedLast()[0]);\n        const parent = this.dataManager.getDataObject(translatedRowIndex);\n        this.dataManager.addChild(parent);\n      },\n      disabled: () => {\n        const selected = this.hot.getSelectedLast();\n        return !selected || selected[0] < 0 || this.hot.selection.isSelectedByColumnHeader() || this.hot.countRows() >= this.hot.getSettings().maxRows;\n      }\n    }, {\n      key: 'detach_from_parent',\n      name() {\n        return this.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_3__[\"CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD\"]);\n      },\n      callback: () => {\n        this.dataManager.detachFromParent(this.hot.getSelectedLast());\n      },\n      disabled: () => {\n        const selected = this.hot.getSelectedLast();\n        const translatedRowIndex = this.dataManager.translateTrimmedRow(selected[0]);\n        const parent = this.dataManager.getRowParent(translatedRowIndex);\n        return !parent || !selected || selected[0] < 0 || this.hot.selection.isSelectedByColumnHeader() || this.hot.countRows() >= this.hot.getSettings().maxRows;\n      }\n    }, {\n      name: '---------'\n    }];\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__[\"rangeEach\"])(0, defaultOptions.items.length - 1, i => {\n      if (i === 0) {\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayEach\"])(newEntries, (val, j) => {\n          defaultOptions.items.splice(i + j, 0, val);\n        });\n        return false;\n      }\n    });\n    return this.modifyRowInsertingOptions(defaultOptions);\n  }\n\n  /**\n   * Modify how the row inserting options work.\n   *\n   * @private\n   * @param {object} defaultOptions Default context menu items.\n   * @returns {*}\n   */\n  modifyRowInsertingOptions(defaultOptions) {\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__[\"rangeEach\"])(0, defaultOptions.items.length - 1, i => {\n      const option = _classPrivateFieldGet(_menuEntries, this)[defaultOptions.items[i].key];\n      if (option !== null && option !== undefined) {\n        defaultOptions.items[i].callback = option;\n      }\n    });\n    return defaultOptions;\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (ContextMenuUI);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedRows/ui/contextMenu.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedRows/ui/headers.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedRows/ui/headers.mjs ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _base_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_base.mjs */ \"./node_modules/handsontable/plugins/nestedRows/ui/_base.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\n\n\n\n/**\n * Class responsible for the UI in the Nested Rows' row headers.\n *\n * @private\n * @class HeadersUI\n * @augments BaseUI\n */\nclass HeadersUI extends _base_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"] {\n  /**\n   * CSS classes used in the row headers.\n   *\n   * @type {object}\n   */\n  static get CSS_CLASSES() {\n    return {\n      indicatorContainer: 'ht_nestingLevels',\n      parent: 'ht_nestingParent',\n      indicator: 'ht_nestingLevel',\n      emptyIndicator: 'ht_nestingLevel_empty',\n      button: 'ht_nestingButton',\n      expandButton: 'ht_nestingExpand',\n      collapseButton: 'ht_nestingCollapse'\n    };\n  }\n  constructor(nestedRowsPlugin, hotInstance) {\n    super(nestedRowsPlugin, hotInstance);\n    /**\n     * Reference to the DataManager instance connected with the Nested Rows plugin.\n     *\n     * @type {DataManager}\n     */\n    this.dataManager = this.plugin.dataManager;\n    // /**\n    //  * Level cache array.\n    //  *\n    //  * @type {Array}\n    //  */\n    // this.levelCache = this.dataManager.cache.levels;\n    /**\n     * Reference to the CollapsingUI instance connected with the Nested Rows plugin.\n     *\n     * @type {CollapsingUI}\n     */\n    this.collapsingUI = this.plugin.collapsingUI;\n    /**\n     * Cache for the row headers width.\n     *\n     * @type {null|number}\n     */\n    this.rowHeaderWidthCache = null;\n  }\n\n  /**\n   * Append nesting indicators and buttons to the row headers.\n   *\n   * @private\n   * @param {number} row Row index.\n   * @param {HTMLElement} TH TH 3element.\n   */\n  appendLevelIndicators(row, TH) {\n    const rowIndex = this.hot.toPhysicalRow(row);\n    const rowLevel = this.dataManager.getRowLevel(rowIndex);\n    const rowObject = this.dataManager.getDataObject(rowIndex);\n    const innerDiv = TH.getElementsByTagName('DIV')[0];\n    const innerSpan = innerDiv.querySelector('span.rowHeader');\n    const previousIndicators = innerDiv.querySelectorAll('[class^=\"ht_nesting\"]');\n    const ariaEnabled = this.hot.getSettings().ariaTags;\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__[\"arrayEach\"])(previousIndicators, elem => {\n      if (elem) {\n        innerDiv.removeChild(elem);\n      }\n    });\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(TH, HeadersUI.CSS_CLASSES.indicatorContainer);\n    if (rowLevel) {\n      const {\n        rootDocument\n      } = this.hot;\n      const initialContent = innerSpan.cloneNode(true);\n      innerDiv.innerHTML = '';\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__[\"rangeEach\"])(0, rowLevel - 1, () => {\n        const levelIndicator = rootDocument.createElement('SPAN');\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(levelIndicator, HeadersUI.CSS_CLASSES.emptyIndicator);\n        innerDiv.appendChild(levelIndicator);\n      });\n      innerDiv.appendChild(initialContent);\n    }\n    if (this.dataManager.hasChildren(rowObject)) {\n      const buttonsContainer = this.hot.rootDocument.createElement('DIV');\n      if (ariaEnabled) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setAttribute\"])(buttonsContainer, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_4__[\"A11Y_HIDDEN\"])()]);\n      }\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(TH, HeadersUI.CSS_CLASSES.parent);\n      if (this.collapsingUI.areChildrenCollapsed(rowIndex)) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(buttonsContainer, `${HeadersUI.CSS_CLASSES.button} ${HeadersUI.CSS_CLASSES.expandButton}`);\n        if (ariaEnabled) {\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setAttribute\"])(TH, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_4__[\"A11Y_EXPANDED\"])(false)]);\n        }\n      } else {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(buttonsContainer, `${HeadersUI.CSS_CLASSES.button} ${HeadersUI.CSS_CLASSES.collapseButton}`);\n        if (ariaEnabled) {\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setAttribute\"])(TH, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_4__[\"A11Y_EXPANDED\"])(true)]);\n        }\n      }\n      innerDiv.appendChild(buttonsContainer);\n    }\n  }\n\n  /**\n   * Update the row header width according to number of levels in the dataset.\n   *\n   * @private\n   * @param {number} deepestLevel Cached deepest level of nesting.\n   */\n  updateRowHeaderWidth(deepestLevel) {\n    let deepestLevelIndex = deepestLevel;\n    if (!deepestLevelIndex) {\n      deepestLevelIndex = this.dataManager.cache.levelCount;\n    }\n    this.rowHeaderWidthCache = Math.max(50, 11 + 10 * deepestLevelIndex + 25);\n    this.hot.render();\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (HeadersUI);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedRows/ui/headers.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/nestedRows/utils/rowMoveController.mjs":
/*!**********************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/nestedRows/utils/rowMoveController.mjs ***!
  \**********************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return RowMoveController; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _helpers_console_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/console.mjs */ \"./node_modules/handsontable/helpers/console.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n/**\n * Helper class for the row-move-related operations.\n *\n * @private\n * @class RowMoveController\n */\nclass RowMoveController {\n  constructor(plugin) {\n    /**\n     * Reference to the Nested Rows plugin instance.\n     *\n     * @type {NestedRows}\n     */\n    _defineProperty(this, \"plugin\", void 0);\n    /**\n     * Reference to the Handsontable instance.\n     *\n     * @type {Handsontable.Core}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * Reference to the Data Manager class instance.\n     *\n     * @type {DataManager}\n     */\n    _defineProperty(this, \"dataManager\", void 0);\n    /**\n     * Reference to the Collapsing UI class instance.\n     *\n     * @type {CollapsingUI}\n     */\n    _defineProperty(this, \"collapsingUI\", void 0);\n    this.plugin = plugin;\n    this.hot = plugin.hot;\n    this.dataManager = plugin.dataManager;\n    this.collapsingUI = plugin.collapsingUI;\n  }\n\n  /**\n   * `beforeRowMove` hook callback.\n   *\n   * @param {Array} rows Array of visual row indexes to be moved.\n   * @param {number} finalIndex Visual row index, being a start index for the moved rows. Points to where the elements\n   *   will be placed after the moving action. To check the visualization of the final index, please take a look at\n   *   [documentation](@/guides/rows/row-moving/row-moving.md).\n   * @param {undefined|number} dropIndex Visual row index, being a drop index for the moved rows. Points to where we\n   *   are going to drop the moved elements. To check visualization of drop index please take a look at\n   *   [documentation](@/guides/rows/row-moving/row-moving.md).\n   * @param {boolean} movePossible Indicates if it's possible to move rows to the desired position.\n   * @fires Hooks#afterRowMove\n   * @returns {boolean}\n   */\n  onBeforeRowMove(rows, finalIndex, dropIndex, movePossible) {\n    const improperUsage = this.displayAPICompatibilityWarning({\n      rows,\n      finalIndex,\n      dropIndex,\n      movePossible\n    });\n    if (improperUsage) {\n      return false;\n    }\n    this.movedToCollapsed = false;\n    const dropToLastRow = dropIndex === this.hot.countRows();\n    const physicalDropIndex = dropToLastRow ? this.hot.countSourceRows() : this.dataManager.translateTrimmedRow(dropIndex);\n    let allowMove = true;\n    const physicalStartIndexes = rows.map(rowIndex => {\n      // Don't do the logic for the rest of the rows, as it's bound to fail anyway.\n      if (!allowMove) {\n        return false;\n      }\n      const physicalRowIndex = this.dataManager.translateTrimmedRow(rowIndex);\n      allowMove = this.shouldAllowMoving(physicalRowIndex, physicalDropIndex);\n      return physicalRowIndex;\n    });\n    const willDataChange = physicalStartIndexes.indexOf(physicalDropIndex) === -1;\n    if (!allowMove || !willDataChange) {\n      return false;\n    }\n    const baseParent = this.getBaseParent(physicalStartIndexes);\n    const targetParent = this.getTargetParent(dropToLastRow, physicalDropIndex);\n    const sameParent = baseParent === targetParent;\n    this.movedToCollapsed = this.collapsingUI.areChildrenCollapsed(targetParent);\n\n    // Stash the current state of collapsed rows\n    this.collapsingUI.collapsedRowsStash.stash();\n    this.shiftCollapsibleParentsLocations(physicalStartIndexes, physicalDropIndex, sameParent);\n    this.moveRows(physicalStartIndexes, physicalDropIndex, targetParent);\n    this.dataManager.rewriteCache();\n    this.moveCellsMeta(physicalStartIndexes, physicalDropIndex);\n    this.collapsingUI.collapsedRowsStash.applyStash(false);\n\n    // TODO: Trying to mock real work of the `ManualRowMove` plugin. It was blocked by returning `false` below.\n    this.hot.runHooks('afterRowMove', rows, finalIndex, dropIndex, movePossible, movePossible && this.isRowOrderChanged(rows, finalIndex));\n\n    // Not necessary - added to keep compatibility with other plugins (namely: columnSummary).\n    this.hot.render();\n    this.selectCells(rows, dropIndex);\n    return false;\n  }\n\n  /**\n   * Display a `dragRows`/`moveRows` method compatibility warning if needed.\n   *\n   * @param {object} beforeMoveRowHookArgs A set of arguments from the `beforeMoveRow` hook.\n   * @returns {boolean} `true` if is a result of an improper usage of the moving API.\n   */\n  displayAPICompatibilityWarning(beforeMoveRowHookArgs) {\n    const {\n      rows,\n      finalIndex,\n      dropIndex,\n      movePossible\n    } = beforeMoveRowHookArgs;\n    let shouldTerminate = false;\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isUndefined\"])(dropIndex)) {\n      Object(_helpers_console_mjs__WEBPACK_IMPORTED_MODULE_3__[\"warn\"])(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_4__[\"toSingleLine\"]`Since version 8.0.0 of the Handsontable the 'moveRows' method isn't used for moving rows\\x20\n      when the NestedRows plugin is enabled. Please use the 'dragRows' method instead.`);\n\n      // TODO: Trying to mock real work of the `ManualRowMove` plugin. It was blocked by returning `false` below.\n      this.hot.runHooks('afterRowMove', rows, finalIndex, dropIndex, movePossible, false);\n      shouldTerminate = true;\n    }\n    return shouldTerminate;\n  }\n\n  /**\n   * Check if the moving action should be allowed.\n   *\n   * @param {number} physicalRowIndex Physical start row index.\n   * @param {number} physicalDropIndex Physical drop index.\n   * @returns {boolean} `true` if it should continue with the moving action.\n   */\n  shouldAllowMoving(physicalRowIndex, physicalDropIndex) {\n    /*\n       We can't move rows when any of them is:\n       - a parent\n       - a top-level element\n       - is being moved to the top level\n       - is being moved to the position of any of the moved rows (not changing position)\n    */\n\n    return !(this.dataManager.isParent(physicalRowIndex) || this.dataManager.isRowHighestLevel(physicalRowIndex) || physicalRowIndex === physicalDropIndex || physicalDropIndex === 0);\n  }\n\n  /**\n   * Get the base row parent.\n   *\n   * @param {number} physicalStartIndexes Physical start row index.\n   * @returns {object|null} The base row parent.\n   */\n  getBaseParent(physicalStartIndexes) {\n    return this.dataManager.getRowParent(physicalStartIndexes[0]);\n  }\n\n  /**\n   * Get the target row parent.\n   *\n   * @param {boolean} dropToLastRow `true` if the row is moved to the last row of the table.\n   * @param {number} physicalDropIndex Physical drop row index.\n   * @returns {object|null} The target row parent.\n   */\n  getTargetParent(dropToLastRow, physicalDropIndex) {\n    let targetParent = this.dataManager.getRowParent(dropToLastRow ? physicalDropIndex - 1 : physicalDropIndex);\n\n    // If we try to move an element to the place of a top-level parent, snap the element to the previous top-level\n    // parent's children instead\n    if (targetParent === null || targetParent === undefined) {\n      targetParent = this.dataManager.getRowParent(physicalDropIndex - 1);\n    }\n    return targetParent;\n  }\n\n  /**\n   * Shift the cached collapsible rows position according to the move action.\n   *\n   * @param {number[]} physicalStartIndexes Physical start row indexes.\n   * @param {number} physicalDropIndex Physical drop index.\n   * @param {boolean} sameParent `true` if the row's being moved between siblings of the same parent.\n   */\n  shiftCollapsibleParentsLocations(physicalStartIndexes, physicalDropIndex, sameParent) {\n    if (!sameParent) {\n      if (Math.max(...physicalStartIndexes) <= physicalDropIndex) {\n        this.collapsingUI.collapsedRowsStash.shiftStash(physicalStartIndexes[0], physicalDropIndex, -1 * physicalStartIndexes.length);\n      } else {\n        this.collapsingUI.collapsedRowsStash.shiftStash(physicalDropIndex, physicalStartIndexes[0], physicalStartIndexes.length);\n      }\n    }\n  }\n\n  /**\n   * Move the rows at the provided coordinates.\n   *\n   * @param {number[]} physicalStartIndexes Physical indexes of the rows about to be moved.\n   * @param {number} physicalDropIndex Physical drop index.\n   * @param {object} targetParent Parent of the destination row.\n   */\n  moveRows(physicalStartIndexes, physicalDropIndex, targetParent) {\n    const moveToLastChild = physicalDropIndex === this.dataManager.getRowIndex(targetParent) + this.dataManager.countChildren(targetParent) + 1;\n    this.hot.batchRender(() => {\n      physicalStartIndexes.forEach(physicalStartIndex => {\n        this.dataManager.moveRow(physicalStartIndex, physicalDropIndex, this.movedToCollapsed, moveToLastChild);\n      });\n    });\n  }\n\n  /**\n   * Move the cell meta for multiple rows.\n   *\n   * @param {number[]} baseIndexes Array of indexes for the rows being moved.\n   * @param {number} targetIndex Index of the destination of the move.\n   */\n  moveCellsMeta(baseIndexes, targetIndex) {\n    const rowsOfMeta = [];\n    const movingDown = Math.max(...baseIndexes) < targetIndex;\n    baseIndexes.forEach(baseIndex => {\n      rowsOfMeta.push(this.hot.getCellMetaAtRow(baseIndex));\n    });\n    this.hot.spliceCellsMeta(baseIndexes[0], baseIndexes.length);\n    this.hot.spliceCellsMeta(targetIndex - (movingDown ? rowsOfMeta.length : 0), 0, ...rowsOfMeta);\n  }\n\n  /**\n   * Select cells after the move.\n   *\n   * @param {Array} rows Array of visual row indexes to be moved.\n   * @param {undefined|number} dropIndex Visual row index, being a drop index for the moved rows. Points to where we\n   *   are going to drop the moved elements. To check visualization of drop index please take a look at\n   *   [documentation](@/guides/rows/row-moving/row-moving.md).\n   */\n  selectCells(rows, dropIndex) {\n    const rowsLen = rows.length;\n    let startRow = 0;\n    let endRow = 0;\n    let selection = null;\n    let lastColIndex = null;\n    if (this.movedToCollapsed) {\n      let physicalDropIndex = null;\n      if (rows[rowsLen - 1] < dropIndex) {\n        physicalDropIndex = this.dataManager.translateTrimmedRow(dropIndex - rowsLen);\n      } else {\n        physicalDropIndex = this.dataManager.translateTrimmedRow(dropIndex);\n      }\n      const parentObject = this.dataManager.getRowParent(physicalDropIndex === null ? this.hot.countSourceRows() - 1 : physicalDropIndex - 1);\n      const parentIndex = this.dataManager.getRowIndex(parentObject);\n      startRow = this.dataManager.untranslateTrimmedRow(parentIndex);\n      endRow = startRow;\n    } else if (rows[rowsLen - 1] < dropIndex) {\n      endRow = dropIndex - 1;\n      startRow = endRow - rowsLen + 1;\n    } else {\n      startRow = dropIndex;\n      endRow = startRow + rowsLen - 1;\n    }\n    selection = this.hot.selection;\n    lastColIndex = this.hot.countCols() - 1;\n    selection.setRangeStart(this.hot._createCellCoords(startRow, 0));\n    selection.setRangeEnd(this.hot._createCellCoords(endRow, lastColIndex), true);\n  }\n\n  // TODO: Reimplementation of function which is inside the `ManualRowMove` plugin.\n  /**\n   * Indicates if order of rows was changed.\n   *\n   * @param {Array} movedRows Array of visual row indexes to be moved.\n   * @param {number} finalIndex Visual row index, being a start index for the moved rows. Points to where the elements\n   *   will be placed after the moving action. To check the visualization of the final index, please take a look at\n   *   [documentation](@/guides/rows/row-moving/row-moving.md).\n   * @returns {boolean}\n   */\n  isRowOrderChanged(movedRows, finalIndex) {\n    return movedRows.some((row, nrOfMovedElement) => row - nrOfMovedElement !== finalIndex);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/nestedRows/utils/rowMoveController.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/persistentState/index.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/persistentState/index.mjs ***!
  \*********************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, PersistentState */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _persistentState_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./persistentState.mjs */ \"./node_modules/handsontable/plugins/persistentState/persistentState.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _persistentState_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _persistentState_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PersistentState\", function() { return _persistentState_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PersistentState\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/persistentState/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/persistentState/persistentState.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/plugins/persistentState/persistentState.mjs ***!
  \*******************************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, PersistentState */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PersistentState\", function() { return PersistentState; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _storage_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./storage.mjs */ \"./node_modules/handsontable/plugins/persistentState/storage.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('persistentStateSave');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('persistentStateLoad');\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getSingleton().register('persistentStateReset');\nconst PLUGIN_KEY = 'persistentState';\nconst PLUGIN_PRIORITY = 0;\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @plugin PersistentState\n * @class PersistentState\n *\n * @description\n * Save the state of column sorting, column positions and column sizes in local storage to preserve table state\n * between page reloads.\n *\n * In order to enable data storage mechanism, {@link Options#persistentState} option must be set to `true`.\n *\n * When persistentState is enabled it exposes 3 hooks:\n * - {@link Hooks#persistentStateSave} - Saves value under given key in browser local storage.\n * - {@link Hooks#persistentStateLoad} - Loads value, saved under given key, from browser local storage. The loaded\n * value will be saved in `saveTo.value`.\n * - {@link Hooks#persistentStateReset} - Clears the value saved under key. If no key is given, all values associated\n * with table will be cleared.\n *\n * __Note:__ The main reason behind using `persistentState` hooks rather than regular LocalStorage API is that it\n * ensures separation of data stored by multiple Handsontable instances. In other words, if you have two (or more)\n * instances of Handsontable on one page, data saved by one instance won't be accessible by the second instance.\n * Those two instances can store data under the same key and no data would be overwritten.\n *\n * __Important:__ In order for the data separation to work properly, make sure that each instance of Handsontable has a unique `id`.\n *\n */\nclass PersistentState extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * Instance of {@link Storage}.\n     *\n     * @private\n     * @type {Storage}\n     */\n    _defineProperty(this, \"storage\", void 0);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link PersistentState#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    if (this.enabled) {\n      return;\n    }\n    if (!this.storage) {\n      this.storage = new _storage_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"](this.hot.rootElement.id, this.hot.rootWindow);\n    }\n    this.addHook('persistentStateSave', (key, value) => this.saveValue(key, value));\n    this.addHook('persistentStateLoad', (key, saveTo) => this.loadValue(key, saveTo));\n    this.addHook('persistentStateReset', () => this.resetValue());\n    super.enablePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.storage = undefined;\n    super.disablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`persistentState`](@/api/options.md#persistentstate)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    super.updatePlugin();\n  }\n\n  /**\n   * Loads the value from local storage.\n   *\n   * @param {string} key Storage key.\n   * @param {object} saveTo Saved value from local storage.\n   */\n  loadValue(key, saveTo) {\n    saveTo.value = this.storage.loadValue(key);\n  }\n\n  /**\n   * Saves the data to local storage.\n   *\n   * @param {string} key Storage key.\n   * @param {Mixed} value Value to save.\n   */\n  saveValue(key, value) {\n    this.storage.saveValue(key, value);\n  }\n\n  /**\n   * Resets the data or all data from local storage.\n   *\n   * @param {string} key [optional] Storage key.\n   */\n  resetValue(key) {\n    if (typeof key === 'undefined') {\n      this.storage.resetAll();\n    } else {\n      this.storage.reset(key);\n    }\n  }\n\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    super.destroy();\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/persistentState/persistentState.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/persistentState/storage.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/persistentState/storage.mjs ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n/**\n * @private\n * @class Storage\n */\nclass Storage {\n  // eslint-disable-next-line no-restricted-globals\n  constructor(prefix) {\n    let rootWindow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;\n    /**\n     * Reference to proper window.\n     *\n     * @type {Window}\n     */\n    _defineProperty(this, \"rootWindow\", void 0);\n    /**\n     * Prefix for key (id element).\n     *\n     * @type {string}\n     */\n    _defineProperty(this, \"prefix\", void 0);\n    /**\n     * Saved keys.\n     *\n     * @type {Array}\n     */\n    _defineProperty(this, \"savedKeys\", []);\n    this.rootWindow = rootWindow;\n    this.prefix = prefix;\n    this.loadSavedKeys();\n  }\n\n  /**\n   * Save data to localStorage.\n   *\n   * @param {string} key Key string.\n   * @param {Mixed} value Value to save.\n   */\n  saveValue(key, value) {\n    this.rootWindow.localStorage.setItem(`${this.prefix}_${key}`, JSON.stringify(value));\n    if (this.savedKeys.indexOf(key) === -1) {\n      this.savedKeys.push(key);\n      this.saveSavedKeys();\n    }\n  }\n\n  /**\n   * Load data from localStorage.\n   *\n   * @param {string} key Key string.\n   * @param {object} defaultValue Object containing the loaded data.\n   *\n   * @returns {object|undefined}\n   */\n  loadValue(key, defaultValue) {\n    const itemKey = typeof key === 'undefined' ? defaultValue : key;\n    const value = this.rootWindow.localStorage.getItem(`${this.prefix}_${itemKey}`);\n    return value === null ? undefined : JSON.parse(value);\n  }\n\n  /**\n   * Reset given data from localStorage.\n   *\n   * @param {string} key Key string.\n   */\n  reset(key) {\n    this.rootWindow.localStorage.removeItem(`${this.prefix}_${key}`);\n  }\n\n  /**\n   * Reset all data from localStorage.\n   *\n   */\n  resetAll() {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(this.savedKeys, (value, index) => {\n      this.rootWindow.localStorage.removeItem(`${this.prefix}_${this.savedKeys[index]}`);\n    });\n    this.clearSavedKeys();\n  }\n\n  /**\n   * Load and save all keys from localStorage.\n   *\n   * @private\n   */\n  loadSavedKeys() {\n    const keysJSON = this.rootWindow.localStorage.getItem(`${this.prefix}__persistentStateKeys`);\n    const keys = typeof keysJSON === 'string' ? JSON.parse(keysJSON) : undefined;\n    this.savedKeys = keys || [];\n  }\n\n  /**\n   * Save saved key in localStorage.\n   *\n   * @private\n   */\n  saveSavedKeys() {\n    this.rootWindow.localStorage.setItem(`${this.prefix}__persistentStateKeys`, JSON.stringify(this.savedKeys));\n  }\n\n  /**\n   * Clear saved key from localStorage.\n   *\n   * @private\n   */\n  clearSavedKeys() {\n    this.savedKeys.length = 0;\n    this.saveSavedKeys();\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (Storage);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/persistentState/storage.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/registry.mjs":
/*!********************************************************!*\
  !*** ./node_modules/handsontable/plugins/registry.mjs ***!
  \********************************************************/
/*! exports provided: getPluginsNames, getPlugin, hasPlugin, registerPlugin */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getPluginsNames\", function() { return getPluginsNames; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getPlugin\", function() { return getPlugin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasPlugin\", function() { return hasPlugin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerPlugin\", function() { return registerPlugin; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_string_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/string.mjs */ \"./node_modules/handsontable/helpers/string.mjs\");\n/* harmony import */ var _utils_dataStructures_priorityMap_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/dataStructures/priorityMap.mjs */ \"./node_modules/handsontable/utils/dataStructures/priorityMap.mjs\");\n/* harmony import */ var _utils_dataStructures_uniqueMap_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/dataStructures/uniqueMap.mjs */ \"./node_modules/handsontable/utils/dataStructures/uniqueMap.mjs\");\n/* harmony import */ var _utils_dataStructures_uniqueSet_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/dataStructures/uniqueSet.mjs */ \"./node_modules/handsontable/utils/dataStructures/uniqueSet.mjs\");\n\n/**\n * Utility to register plugins and common namespace for keeping the reference to all plugins classes.\n */\n\n\n\n\nconst ERROR_PLUGIN_REGISTERED = pluginName => `There is already registered \"${pluginName}\" plugin.`;\nconst ERROR_PRIORITY_REGISTERED = priority => `There is already registered plugin on priority \"${priority}\".`;\nconst ERROR_PRIORITY_NAN = priority => `The priority \"${priority}\" is not a number.`;\n\n/**\n * Stores plugins' names' queue with their priorities.\n */\nconst priorityPluginsQueue = Object(_utils_dataStructures_priorityMap_mjs__WEBPACK_IMPORTED_MODULE_2__[\"createPriorityMap\"])({\n  errorPriorityExists: ERROR_PRIORITY_REGISTERED,\n  errorPriorityNaN: ERROR_PRIORITY_NAN\n});\n/**\n * Stores plugins names' queue by registration order.\n */\nconst uniquePluginsQueue = Object(_utils_dataStructures_uniqueSet_mjs__WEBPACK_IMPORTED_MODULE_4__[\"createUniqueSet\"])({\n  errorItemExists: ERROR_PLUGIN_REGISTERED\n});\n/**\n * Stores plugins references between their name and class.\n */\nconst uniquePluginsList = Object(_utils_dataStructures_uniqueMap_mjs__WEBPACK_IMPORTED_MODULE_3__[\"createUniqueMap\"])({\n  errorIdExists: ERROR_PLUGIN_REGISTERED\n});\n\n/**\n * Gets registered plugins' names in the following order:\n * 1) Plugins registered with a defined priority attribute, in the ascending order of priority.\n * 2) Plugins registered without a defined priority attribute, in the registration order.\n *\n * @returns {string[]}\n */\nfunction getPluginsNames() {\n  return [...priorityPluginsQueue.getItems(), ...uniquePluginsQueue.getItems()];\n}\n\n/**\n * Gets registered plugin's class based on the given name.\n *\n * @param {string} pluginName Plugin's name.\n * @returns {BasePlugin}\n */\nfunction getPlugin(pluginName) {\n  const unifiedPluginName = Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_1__[\"toUpperCaseFirst\"])(pluginName);\n  return uniquePluginsList.getItem(unifiedPluginName);\n}\n\n/**\n * Checks if the plugin under the name is already registered.\n *\n * @param {string} pluginName Plugin's name.\n * @returns {boolean}\n */\nfunction hasPlugin(pluginName) {\n  /* eslint-disable no-unneeded-ternary */\n  return getPlugin(pluginName) ? true : false;\n}\n\n/**\n * Registers plugin under the given name only once.\n *\n * @param {string|Function} pluginName The plugin name or plugin class.\n * @param {Function} [pluginClass] The plugin class.\n * @param {number} [priority] The plugin priority.\n */\nfunction registerPlugin(pluginName, pluginClass, priority) {\n  [pluginName, pluginClass, priority] = unifyPluginArguments(pluginName, pluginClass, priority);\n  if (getPlugin(pluginName) === undefined) {\n    _registerPlugin(pluginName, pluginClass, priority);\n  }\n}\n\n/**\n * Registers plugin under the given name.\n *\n * @param {string|Function} pluginName The plugin name or plugin class.\n * @param {Function} [pluginClass] The plugin class.\n * @param {number} [priority] The plugin priority.\n */\nfunction _registerPlugin(pluginName, pluginClass, priority) {\n  const unifiedPluginName = Object(_helpers_string_mjs__WEBPACK_IMPORTED_MODULE_1__[\"toUpperCaseFirst\"])(pluginName);\n  if (uniquePluginsList.hasItem(unifiedPluginName)) {\n    throw new Error(ERROR_PLUGIN_REGISTERED(unifiedPluginName));\n  }\n  if (priority === undefined) {\n    uniquePluginsQueue.addItem(unifiedPluginName);\n  } else {\n    priorityPluginsQueue.addItem(priority, unifiedPluginName);\n  }\n  uniquePluginsList.addItem(unifiedPluginName, pluginClass);\n}\n\n/**\n * Unifies arguments to register the plugin.\n *\n * @param {string|Function} pluginName The plugin name or plugin class.\n * @param {Function} [pluginClass] The plugin class.\n * @param {number} [priority] The plugin priority.\n * @returns {Array}\n */\nfunction unifyPluginArguments(pluginName, pluginClass, priority) {\n  if (typeof pluginName === 'function') {\n    pluginClass = pluginName;\n    pluginName = pluginClass.PLUGIN_KEY;\n    priority = pluginClass.PLUGIN_PRIORITY;\n  }\n  return [pluginName, pluginClass, priority];\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/registry.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/search/index.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/plugins/search/index.mjs ***!
  \************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, Search */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _search_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./search.mjs */ \"./node_modules/handsontable/plugins/search/search.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _search_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _search_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return _search_mjs__WEBPACK_IMPORTED_MODULE_0__[\"Search\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/search/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/search/search.mjs":
/*!*************************************************************!*\
  !*** ./node_modules/handsontable/plugins/search/search.mjs ***!
  \*************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, Search */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return Search; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\nconst PLUGIN_KEY = 'search';\nconst PLUGIN_PRIORITY = 190;\nconst DEFAULT_SEARCH_RESULT_CLASS = 'htSearchResult';\nconst DEFAULT_CALLBACK = function (instance, row, col, data, testResult) {\n  instance.getCellMeta(row, col).isSearchResult = testResult;\n};\nconst DEFAULT_QUERY_METHOD = function (query, value, cellProperties) {\n  if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isUndefined\"])(query) || query === null || !query.toLocaleLowerCase || query.length === 0) {\n    return false;\n  }\n  if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isUndefined\"])(value) || value === null) {\n    return false;\n  }\n  return value.toString().toLocaleLowerCase(cellProperties.locale).indexOf(query.toLocaleLowerCase(cellProperties.locale)) !== -1;\n};\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @plugin Search\n * @class Search\n *\n * @description\n * The search plugin provides an easy interface to search data across Handsontable.\n *\n * In order to enable search mechanism, {@link Options#search} option must be set to `true`.\n *\n * @example\n * ```js\n * // as boolean\n * search: true\n * // as a object with one or more options\n * search: {\n *   callback: myNewCallbackFunction,\n *   queryMethod: myNewQueryMethod,\n *   searchResultClass: 'customClass'\n * }\n *\n * // Access to search plugin instance:\n * const searchPlugin = hot.getPlugin('search');\n *\n * // Set callback programmatically:\n * searchPlugin.setCallback(myNewCallbackFunction);\n * // Set query method programmatically:\n * searchPlugin.setQueryMethod(myNewQueryMethod);\n * // Set search result cells class programmatically:\n * searchPlugin.setSearchResultClass(customClass);\n * ```\n */\nvar _Search_brand = /*#__PURE__*/new WeakSet();\nclass Search extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * The `beforeRenderer` hook callback.\n     *\n     * @param {HTMLTableCellElement} TD The rendered `TD` element.\n     * @param {number} row Visual row index.\n     * @param {number} col Visual column index.\n     * @param {string|number} prop Column property name or a column index, if datasource is an array of arrays.\n     * @param {string} value Value of the rendered cell.\n     * @param {object} cellProperties Object containing the cell's properties.\n     */\n    _classPrivateMethodInitSpec(this, _Search_brand);\n    /**\n     * Function called during querying for each cell from the {@link DataMap}.\n     *\n     * @private\n     * @type {Function}\n     */\n    _defineProperty(this, \"callback\", DEFAULT_CALLBACK);\n    /**\n     * Query function is responsible for determining whether a query matches the value stored in a cell.\n     *\n     * @private\n     * @type {Function}\n     */\n    _defineProperty(this, \"queryMethod\", DEFAULT_QUERY_METHOD);\n    /**\n     * Class name added to each cell that belongs to the searched query.\n     *\n     * @private\n     * @type {string}\n     */\n    _defineProperty(this, \"searchResultClass\", DEFAULT_SEARCH_RESULT_CLASS);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link AutoRowSize#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    var _this = this;\n    if (this.enabled) {\n      return;\n    }\n    const searchSettings = this.hot.getSettings()[PLUGIN_KEY];\n    this.updatePluginSettings(searchSettings);\n    this.addHook('beforeRenderer', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _assertClassBrand(_Search_brand, _this, _onBeforeRenderer).call(_this, ...args);\n    });\n    super.enablePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    var _this2 = this;\n    const beforeRendererCallback = function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _assertClassBrand(_Search_brand, _this2, _onBeforeRenderer).call(_this2, ...args);\n    };\n    this.hot.addHook('beforeRenderer', beforeRendererCallback);\n    this.hot.addHookOnce('afterViewRender', () => {\n      this.hot.removeHook('beforeRenderer', beforeRendererCallback);\n    });\n    super.disablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`search`](@/api/options.md#search)\n   */\n  updatePlugin() {\n    this.disablePlugin();\n    this.enablePlugin();\n    super.updatePlugin();\n  }\n\n  /**\n   * Makes the query.\n   *\n   * @param {string} queryStr Value to be search.\n   * @param {Function} [callback] Callback function performed on cells with values which matches to the searched query.\n   * @param {Function} [queryMethod] Query function responsible for determining whether a query matches the value stored in a cell.\n   * @returns {object[]} Return an array of objects with `row`, `col`, `data` properties or empty array.\n   */\n  query(queryStr) {\n    let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getCallback();\n    let queryMethod = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.getQueryMethod();\n    const rowCount = this.hot.countRows();\n    const colCount = this.hot.countCols();\n    const queryResult = [];\n    const instance = this.hot;\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(0, rowCount - 1, rowIndex => {\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(0, colCount - 1, colIndex => {\n        const cellData = this.hot.getDataAtCell(rowIndex, colIndex);\n        const cellProperties = this.hot.getCellMeta(rowIndex, colIndex);\n        const cellCallback = cellProperties.search.callback || callback;\n        const cellQueryMethod = cellProperties.search.queryMethod || queryMethod;\n        const testResult = cellQueryMethod(queryStr, cellData, cellProperties);\n        if (testResult) {\n          const singleResult = {\n            row: rowIndex,\n            col: colIndex,\n            data: cellData\n          };\n          queryResult.push(singleResult);\n        }\n        if (cellCallback) {\n          cellCallback(instance, rowIndex, colIndex, cellData, testResult);\n        }\n      });\n    });\n    return queryResult;\n  }\n\n  /**\n   * Gets the callback function.\n   *\n   * @returns {Function} Return the callback function.\n   */\n  getCallback() {\n    return this.callback;\n  }\n\n  /**\n   * Sets the callback function. This function will be called during querying for each cell.\n   *\n   * @param {Function} newCallback A callback function.\n   */\n  setCallback(newCallback) {\n    this.callback = newCallback;\n  }\n\n  /**\n   * Gets the query method function.\n   *\n   * @returns {Function} Return the query method.\n   */\n  getQueryMethod() {\n    return this.queryMethod;\n  }\n\n  /**\n   * Sets the query method function. The function is responsible for determining whether a query matches the value stored in a cell.\n   *\n   * @param {Function} newQueryMethod A function with specific match logic.\n   */\n  setQueryMethod(newQueryMethod) {\n    this.queryMethod = newQueryMethod;\n  }\n\n  /**\n   * Gets search result cells class name.\n   *\n   * @returns {string} Return the cell class name.\n   */\n  getSearchResultClass() {\n    return this.searchResultClass;\n  }\n\n  /**\n   * Sets search result cells class name. This class name will be added to each cell that belongs to the searched query.\n   *\n   * @param {string} newElementClass CSS class name.\n   */\n  setSearchResultClass(newElementClass) {\n    this.searchResultClass = newElementClass;\n  }\n\n  /**\n   * Updates the settings of the plugin.\n   *\n   * @param {object} searchSettings The plugin settings, taken from Handsontable configuration.\n   * @private\n   */\n  updatePluginSettings(searchSettings) {\n    if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isObject\"])(searchSettings)) {\n      if (searchSettings.searchResultClass) {\n        this.setSearchResultClass(searchSettings.searchResultClass);\n      }\n      if (searchSettings.queryMethod) {\n        this.setQueryMethod(searchSettings.queryMethod);\n      }\n      if (searchSettings.callback) {\n        this.setCallback(searchSettings.callback);\n      }\n    }\n  }\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    super.destroy();\n  }\n}\nfunction _onBeforeRenderer(TD, row, col, prop, value, cellProperties) {\n  // TODO: #4972\n  const className = cellProperties.className || [];\n  let classArray = [];\n  if (typeof className === 'string') {\n    classArray = className.split(' ');\n  } else {\n    classArray.push(...className);\n  }\n  if (this.isEnabled() && cellProperties.isSearchResult) {\n    if (!classArray.includes(this.searchResultClass)) {\n      classArray.push(`${this.searchResultClass}`);\n    }\n  } else if (classArray.includes(this.searchResultClass)) {\n    classArray.splice(classArray.indexOf(this.searchResultClass), 1);\n  }\n  cellProperties.className = classArray.join(' ');\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/search/search.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/touchScroll/index.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/touchScroll/index.mjs ***!
  \*****************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, TouchScroll */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _touchScroll_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./touchScroll.mjs */ \"./node_modules/handsontable/plugins/touchScroll/touchScroll.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _touchScroll_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _touchScroll_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TouchScroll\", function() { return _touchScroll_mjs__WEBPACK_IMPORTED_MODULE_0__[\"TouchScroll\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/touchScroll/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/touchScroll/touchScroll.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/plugins/touchScroll/touchScroll.mjs ***!
  \***********************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, TouchScroll */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TouchScroll\", function() { return TouchScroll; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/feature.mjs */ \"./node_modules/handsontable/helpers/feature.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\nconst PLUGIN_KEY = 'touchScroll';\nconst PLUGIN_PRIORITY = 200;\n\n/**\n * @private\n * @plugin TouchScroll\n * @class TouchScroll\n */\nvar _TouchScroll_brand = /*#__PURE__*/new WeakSet();\nclass TouchScroll extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * After view render listener.\n     */\n    _classPrivateMethodInitSpec(this, _TouchScroll_brand);\n    /**\n     * Collection of scrollbars to update.\n     *\n     * @type {Array}\n     */\n    _defineProperty(this, \"scrollbars\", []);\n    /**\n     * Collection of overlays to update.\n     *\n     * @type {Array}\n     */\n    _defineProperty(this, \"clones\", []);\n    /**\n     * Flag which determines if collection of overlays should be refilled on every table render.\n     *\n     * @type {boolean}\n     * @default false\n     */\n    _defineProperty(this, \"lockedCollection\", false);\n    /**\n     * Flag which determines if walkontable should freeze overlays while scrolling.\n     *\n     * @type {boolean}\n     * @default false\n     */\n    _defineProperty(this, \"freezeOverlays\", false);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  static get SETTING_KEYS() {\n    return true;\n  }\n  /**\n   * Check if plugin is enabled.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return Object(_helpers_feature_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isTouchSupported\"])();\n  }\n\n  /**\n   * Enable the plugin.\n   */\n  enablePlugin() {\n    if (this.enabled) {\n      return;\n    }\n    this.addHook('afterViewRender', () => _assertClassBrand(_TouchScroll_brand, this, _onAfterViewRender).call(this));\n    this.registerEvents();\n    super.enablePlugin();\n  }\n\n  /**\n   * Updates the plugin to use the latest options you have specified.\n   */\n  updatePlugin() {\n    this.lockedCollection = false;\n    super.updatePlugin();\n  }\n\n  /**\n   * Disable plugin for this Handsontable instance.\n   */\n  disablePlugin() {\n    super.disablePlugin();\n  }\n\n  /**\n   * Register all necessary events.\n   *\n   * @private\n   */\n  registerEvents() {\n    this.addHook('beforeTouchScroll', () => _assertClassBrand(_TouchScroll_brand, this, _onBeforeTouchScroll).call(this));\n    this.addHook('afterMomentumScroll', () => _assertClassBrand(_TouchScroll_brand, this, _onAfterMomentumScroll).call(this));\n  }\n}\nfunction _onAfterViewRender() {\n  if (this.lockedCollection) {\n    return;\n  }\n  const {\n    topOverlay,\n    bottomOverlay,\n    inlineStartOverlay,\n    topInlineStartCornerOverlay,\n    bottomInlineStartCornerOverlay\n  } = this.hot.view._wt.wtOverlays;\n  this.lockedCollection = true;\n  this.scrollbars.length = 0;\n  this.scrollbars.push(topOverlay);\n  if (bottomOverlay.clone) {\n    this.scrollbars.push(bottomOverlay);\n  }\n  this.scrollbars.push(inlineStartOverlay);\n  if (topInlineStartCornerOverlay) {\n    this.scrollbars.push(topInlineStartCornerOverlay);\n  }\n  if (bottomInlineStartCornerOverlay && bottomInlineStartCornerOverlay.clone) {\n    this.scrollbars.push(bottomInlineStartCornerOverlay);\n  }\n  this.clones = [];\n  if (topOverlay.needFullRender) {\n    this.clones.push(topOverlay.clone.wtTable.holder.parentNode);\n  }\n  if (bottomOverlay.needFullRender) {\n    this.clones.push(bottomOverlay.clone.wtTable.holder.parentNode);\n  }\n  if (inlineStartOverlay.needFullRender) {\n    this.clones.push(inlineStartOverlay.clone.wtTable.holder.parentNode);\n  }\n  if (topInlineStartCornerOverlay) {\n    this.clones.push(topInlineStartCornerOverlay.clone.wtTable.holder.parentNode);\n  }\n  if (bottomInlineStartCornerOverlay && bottomInlineStartCornerOverlay.clone) {\n    this.clones.push(bottomInlineStartCornerOverlay.clone.wtTable.holder.parentNode);\n  }\n}\n/**\n * Touch scroll listener.\n */\nfunction _onBeforeTouchScroll() {\n  this.freezeOverlays = true;\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(this.clones, clone => {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(clone, 'hide-tween');\n  });\n}\n/**\n * After momentum scroll listener.\n */\nfunction _onAfterMomentumScroll() {\n  this.freezeOverlays = false;\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(this.clones, clone => {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"removeClass\"])(clone, 'hide-tween');\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(clone, 'show-tween');\n  });\n  this.hot._registerTimeout(() => {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(this.clones, clone => {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"removeClass\"])(clone, 'show-tween');\n    });\n  }, 400);\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(this.scrollbars, scrollbar => {\n    scrollbar.refresh();\n    scrollbar.resetFixedPosition();\n  });\n  this.hot.view._wt.wtOverlays.syncScrollWithMaster();\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/touchScroll/touchScroll.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/trimRows/index.mjs":
/*!**************************************************************!*\
  !*** ./node_modules/handsontable/plugins/trimRows/index.mjs ***!
  \**************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, TrimRows */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _trimRows_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./trimRows.mjs */ \"./node_modules/handsontable/plugins/trimRows/trimRows.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _trimRows_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return _trimRows_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_PRIORITY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TrimRows\", function() { return _trimRows_mjs__WEBPACK_IMPORTED_MODULE_0__[\"TrimRows\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/trimRows/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/trimRows/trimRows.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/trimRows/trimRows.mjs ***!
  \*****************************************************************/
/*! exports provided: PLUGIN_KEY, PLUGIN_PRIORITY, TrimRows */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_PRIORITY\", function() { return PLUGIN_PRIORITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TrimRows\", function() { return TrimRows; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _base_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../base/index.mjs */ \"./node_modules/handsontable/plugins/base/index.mjs\");\n/* harmony import */ var _translations_index_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../translations/index.mjs */ \"./node_modules/handsontable/translations/index.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n\n\n\n\n\n\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\nconst PLUGIN_KEY = 'trimRows';\nconst PLUGIN_PRIORITY = 330;\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * @plugin TrimRows\n * @class TrimRows\n *\n * @description\n * The plugin allows to trim certain rows. The trimming is achieved by applying the transformation algorithm to the data\n * transformation. In this case, when the row is trimmed it is not accessible using `getData*` methods thus the trimmed\n * data is not visible to other plugins.\n *\n * @example\n * ::: only-for javascript\n * ```js\n * const container = document.getElementById('example');\n * const hot = new Handsontable(container, {\n *   data: getData(),\n *   // hide selected rows on table initialization\n *   trimRows: [1, 2, 5]\n * });\n *\n * // access the trimRows plugin instance\n * const trimRowsPlugin = hot.getPlugin('trimRows');\n *\n * // hide single row\n * trimRowsPlugin.trimRow(1);\n *\n * // hide multiple rows\n * trimRowsPlugin.trimRow(1, 2, 9);\n *\n * // or as an array\n * trimRowsPlugin.trimRows([1, 2, 9]);\n *\n * // show single row\n * trimRowsPlugin.untrimRow(1);\n *\n * // show multiple rows\n * trimRowsPlugin.untrimRow(1, 2, 9);\n *\n * // or as an array\n * trimRowsPlugin.untrimRows([1, 2, 9]);\n *\n * // rerender table to see the changes\n * hot.render();\n * ```\n * :::\n *\n * ::: only-for react\n * ```jsx\n * const hotRef = useRef(null);\n *\n * ...\n *\n * <HotTable\n *   ref={hotRef}\n *   data={getData()}\n *   // hide selected rows on table initialization\n *   trimRows={[1, 2, 5]}\n * />\n *\n * const hot = hotRef.current.hotInstance;\n * // access the trimRows plugin instance\n * const trimRowsPlugin = hot.getPlugin('trimRows');\n *\n * // hide single row\n * trimRowsPlugin.trimRow(1);\n *\n * // hide multiple rows\n * trimRowsPlugin.trimRow(1, 2, 9);\n *\n * // or as an array\n * trimRowsPlugin.trimRows([1, 2, 9]);\n *\n * // show single row\n * trimRowsPlugin.untrimRow(1);\n *\n * // show multiple rows\n * trimRowsPlugin.untrimRow(1, 2, 9);\n *\n * // or as an array\n * trimRowsPlugin.untrimRows([1, 2, 9]);\n *\n * // rerender table to see the changes\n * hot.render();\n * ```\n * :::\n */\nvar _TrimRows_brand = /*#__PURE__*/new WeakSet();\nclass TrimRows extends _base_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"BasePlugin\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * On map initialized hook callback.\n     */\n    _classPrivateMethodInitSpec(this, _TrimRows_brand);\n    /**\n     * Map of skipped rows by the plugin.\n     *\n     * @private\n     * @type {null|TrimmingMap}\n     */\n    _defineProperty(this, \"trimmedRowsMap\", null);\n  }\n  static get PLUGIN_KEY() {\n    return PLUGIN_KEY;\n  }\n  static get PLUGIN_PRIORITY() {\n    return PLUGIN_PRIORITY;\n  }\n  /**\n   * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}\n   * hook and if it returns `true` then the {@link AutoRowSize#enablePlugin} method is called.\n   *\n   * @returns {boolean}\n   */\n  isEnabled() {\n    return !!this.hot.getSettings()[PLUGIN_KEY];\n  }\n\n  /**\n   * Enables the plugin functionality for this Handsontable instance.\n   */\n  enablePlugin() {\n    if (this.enabled) {\n      return;\n    }\n    this.trimmedRowsMap = this.hot.rowIndexMapper.registerMap('trimRows', new _translations_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"TrimmingMap\"]());\n    this.trimmedRowsMap.addLocalHook('init', () => _assertClassBrand(_TrimRows_brand, this, _onMapInit).call(this));\n    super.enablePlugin();\n  }\n\n  /**\n   * Updates the plugin's state.\n   *\n   * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:\n   *  - [`trimRows`](@/api/options.md#trimrows)\n   */\n  updatePlugin() {\n    const trimmedRows = this.hot.getSettings()[PLUGIN_KEY];\n    if (Array.isArray(trimmedRows)) {\n      this.hot.batchExecution(() => {\n        this.trimmedRowsMap.clear();\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_11__[\"arrayEach\"])(trimmedRows, physicalRow => {\n          this.trimmedRowsMap.setValueAtIndex(physicalRow, true);\n        });\n      }, true);\n    }\n    super.updatePlugin();\n  }\n\n  /**\n   * Disables the plugin functionality for this Handsontable instance.\n   */\n  disablePlugin() {\n    this.hot.rowIndexMapper.unregisterMap('trimRows');\n    super.disablePlugin();\n  }\n\n  /**\n   * Get list of trimmed rows.\n   *\n   * @returns {Array} Physical rows.\n   */\n  getTrimmedRows() {\n    return this.trimmedRowsMap.getTrimmedIndexes();\n  }\n\n  /**\n   * Trims the rows provided in the array.\n   *\n   * @param {number[]} rows Array of physical row indexes.\n   * @fires Hooks#beforeTrimRow\n   * @fires Hooks#afterTrimRow\n   */\n  trimRows(rows) {\n    const currentTrimConfig = this.getTrimmedRows();\n    const isValidConfig = this.isValidConfig(rows);\n    let destinationTrimConfig = currentTrimConfig;\n    if (isValidConfig) {\n      destinationTrimConfig = Array.from(new Set(currentTrimConfig.concat(rows)));\n    }\n    const allowTrimRow = this.hot.runHooks('beforeTrimRow', currentTrimConfig, destinationTrimConfig, isValidConfig);\n    if (allowTrimRow === false) {\n      return;\n    }\n    if (isValidConfig) {\n      this.hot.batchExecution(() => {\n        Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_11__[\"arrayEach\"])(rows, physicalRow => {\n          this.trimmedRowsMap.setValueAtIndex(physicalRow, true);\n        });\n      }, true);\n    }\n    this.hot.runHooks('afterTrimRow', currentTrimConfig, destinationTrimConfig, isValidConfig, isValidConfig && destinationTrimConfig.length > currentTrimConfig.length);\n  }\n\n  /**\n   * Trims the row provided as a physical row index (counting from 0).\n   *\n   * @param {...number} row Physical row index.\n   */\n  trimRow() {\n    for (var _len = arguments.length, row = new Array(_len), _key = 0; _key < _len; _key++) {\n      row[_key] = arguments[_key];\n    }\n    this.trimRows(row);\n  }\n\n  /**\n   * Untrims the rows provided in the array.\n   *\n   * @param {number[]} rows Array of physical row indexes.\n   * @fires Hooks#beforeUntrimRow\n   * @fires Hooks#afterUntrimRow\n   */\n  untrimRows(rows) {\n    const currentTrimConfig = this.getTrimmedRows();\n    const isValidConfig = this.isValidConfig(rows);\n    let destinationTrimConfig = currentTrimConfig;\n    const trimmingMapValues = this.trimmedRowsMap.getValues().slice();\n    const isAnyRowUntrimmed = rows.length > 0;\n    if (isValidConfig && isAnyRowUntrimmed) {\n      // Preparing new values for trimming map.\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_11__[\"arrayEach\"])(rows, physicalRow => {\n        trimmingMapValues[physicalRow] = false;\n      });\n\n      // Preparing new trimming config.\n      destinationTrimConfig = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_11__[\"arrayReduce\"])(trimmingMapValues, (trimmedIndexes, isTrimmed, physicalIndex) => {\n        if (isTrimmed) {\n          trimmedIndexes.push(physicalIndex);\n        }\n        return trimmedIndexes;\n      }, []);\n    }\n    const allowUntrimRow = this.hot.runHooks('beforeUntrimRow', currentTrimConfig, destinationTrimConfig, isValidConfig && isAnyRowUntrimmed);\n    if (allowUntrimRow === false) {\n      return;\n    }\n    if (isValidConfig && isAnyRowUntrimmed) {\n      this.trimmedRowsMap.setValues(trimmingMapValues);\n    }\n    this.hot.runHooks('afterUntrimRow', currentTrimConfig, destinationTrimConfig, isValidConfig && isAnyRowUntrimmed, isValidConfig && destinationTrimConfig.length < currentTrimConfig.length);\n  }\n\n  /**\n   * Untrims the row provided as a physical row index (counting from 0).\n   *\n   * @param {...number} row Physical row index.\n   */\n  untrimRow() {\n    for (var _len2 = arguments.length, row = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      row[_key2] = arguments[_key2];\n    }\n    this.untrimRows(row);\n  }\n\n  /**\n   * Checks if given row is hidden.\n   *\n   * @param {number} physicalRow Physical row index.\n   * @returns {boolean}\n   */\n  isTrimmed(physicalRow) {\n    return this.trimmedRowsMap.getValueAtIndex(physicalRow) || false;\n  }\n\n  /**\n   * Untrims all trimmed rows.\n   */\n  untrimAll() {\n    this.untrimRows(this.getTrimmedRows());\n  }\n\n  /**\n   * Get if trim config is valid. Check whether all of the provided physical row indexes are within source data.\n   *\n   * @param {Array} trimmedRows List of physical row indexes.\n   * @returns {boolean}\n   */\n  isValidConfig(trimmedRows) {\n    const sourceRows = this.hot.countSourceRows();\n    return trimmedRows.every(trimmedRow => Number.isInteger(trimmedRow) && trimmedRow >= 0 && trimmedRow < sourceRows);\n  }\n  /**\n   * Destroys the plugin instance.\n   */\n  destroy() {\n    super.destroy();\n  }\n}\nfunction _onMapInit() {\n  const trimmedRows = this.hot.getSettings()[PLUGIN_KEY];\n  if (Array.isArray(trimmedRows)) {\n    this.hot.batchExecution(() => {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_11__[\"arrayEach\"])(trimmedRows, physicalRow => {\n        this.trimmedRowsMap.setValueAtIndex(physicalRow, true);\n      });\n    }, true);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/trimRows/trimRows.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/undoRedo/index.mjs":
/*!**************************************************************!*\
  !*** ./node_modules/handsontable/plugins/undoRedo/index.mjs ***!
  \**************************************************************/
/*! exports provided: PLUGIN_KEY, UndoRedo */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _undoRedo_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./undoRedo.mjs */ \"./node_modules/handsontable/plugins/undoRedo/undoRedo.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return _undoRedo_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PLUGIN_KEY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UndoRedo\", function() { return _undoRedo_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/undoRedo/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/plugins/undoRedo/undoRedo.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/plugins/undoRedo/undoRedo.mjs ***!
  \*****************************************************************/
/*! exports provided: PLUGIN_KEY, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PLUGIN_KEY\", function() { return PLUGIN_KEY; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_object_from_entries_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.from-entries.js */ \"./node_modules/core-js/modules/es.object.from-entries.js\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _contextMenu_utils_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../contextMenu/utils.mjs */ \"./node_modules/handsontable/plugins/contextMenu/utils.mjs\");\n/* harmony import */ var _helpers_moves_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/moves.mjs */ \"./node_modules/handsontable/helpers/moves.mjs\");\n\n\n\n\n\n\n\n\nconst SHORTCUTS_GROUP = 'undoRedo';\nconst PLUGIN_KEY = 'undoRedo';\n\n/**\n * @description\n * Handsontable UndoRedo plugin allows to undo and redo certain actions done in the table.\n *\n * __Note__, that not all actions are currently undo-able. The UndoRedo plugin is enabled by default.\n * @example\n * ```js\n * undo: true\n * ```\n * @class UndoRedo\n * @plugin UndoRedo\n * @param {Core} instance The Handsontable instance.\n */\nfunction UndoRedo(instance) {\n  const plugin = this;\n  this.instance = instance;\n  this.doneActions = [];\n  this.undoneActions = [];\n  this.ignoreNewActions = false;\n  this.enabled = false;\n  instance.addHook('afterChange', function (changes, source) {\n    const changesLen = changes && changes.length;\n    if (!changesLen) {\n      return;\n    }\n    const hasDifferences = changes.find(change => {\n      const [,, oldValue, newValue] = change;\n      return oldValue !== newValue;\n    });\n    if (!hasDifferences) {\n      return;\n    }\n    const wrappedAction = () => {\n      const clonedChanges = changes.reduce((arr, change) => {\n        arr.push([...change]);\n        return arr;\n      }, []);\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(clonedChanges, change => {\n        change[1] = instance.propToCol(change[1]);\n      });\n      const selected = changesLen > 1 ? this.getSelected() : [[clonedChanges[0][0], clonedChanges[0][1]]];\n      return new UndoRedo.ChangeAction(clonedChanges, selected);\n    };\n    plugin.done(wrappedAction, source);\n  });\n  instance.addHook('afterCreateRow', (index, amount, source) => {\n    plugin.done(() => new UndoRedo.CreateRowAction(index, amount), source);\n  });\n  const getCellMetas = (fromRow, toRow, fromColumn, toColumn) => {\n    const genericKeys = ['visualRow', 'visualCol', 'row', 'col', 'prop'];\n    const genericKeysLength = genericKeys.length;\n    const cellMetas = [];\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(fromColumn, toColumn, columnIndex => {\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(fromRow, toRow, rowIndex => {\n        const cellMeta = instance.getCellMeta(rowIndex, columnIndex);\n        if (Object.keys(cellMeta).length !== genericKeysLength) {\n          const uniqueMeta = Object.fromEntries(Object.entries(cellMeta).filter(_ref => {\n            let [key] = _ref;\n            return genericKeys.includes(key) === false;\n          }));\n          cellMetas.push([cellMeta.visualRow, cellMeta.visualCol, uniqueMeta]);\n        }\n      });\n    });\n    return cellMetas;\n  };\n  instance.addHook('beforeRemoveRow', (index, amount, logicRows, source) => {\n    const wrappedAction = () => {\n      const physicalRowIndex = instance.toPhysicalRow(index);\n      const lastRowIndex = physicalRowIndex + amount - 1;\n      const removedData = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"deepClone\"])(plugin.instance.getSourceData(physicalRowIndex, 0, physicalRowIndex + amount - 1, plugin.instance.countSourceCols() - 1));\n      return new UndoRedo.RemoveRowAction(physicalRowIndex, removedData, instance.getSettings().fixedRowsBottom, instance.getSettings().fixedRowsTop, instance.rowIndexMapper.getIndexesSequence(), getCellMetas(physicalRowIndex, lastRowIndex, 0, instance.countCols() - 1));\n    };\n    plugin.done(wrappedAction, source);\n  });\n  instance.addHook('afterCreateCol', (index, amount, source) => {\n    plugin.done(() => new UndoRedo.CreateColumnAction(index, amount), source);\n  });\n  instance.addHook('beforeRemoveCol', (index, amount, logicColumns, source) => {\n    const wrappedAction = () => {\n      const originalData = plugin.instance.getSourceDataArray();\n      const columnIndex = (plugin.instance.countCols() + index) % plugin.instance.countCols();\n      const lastColumnIndex = columnIndex + amount - 1;\n      const removedData = [];\n      const headers = [];\n      const indexes = [];\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(originalData.length - 1, i => {\n        const column = [];\n        const origRow = originalData[i];\n        Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(columnIndex, lastColumnIndex, j => {\n          column.push(origRow[instance.toPhysicalColumn(j)]);\n        });\n        removedData.push(column);\n      });\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(amount - 1, i => {\n        indexes.push(instance.toPhysicalColumn(columnIndex + i));\n      });\n      if (Array.isArray(instance.getSettings().colHeaders)) {\n        Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_4__[\"rangeEach\"])(amount - 1, i => {\n          headers.push(instance.getSettings().colHeaders[instance.toPhysicalColumn(columnIndex + i)] || null);\n        });\n      }\n      const columnsMap = instance.columnIndexMapper.getIndexesSequence();\n      const rowsMap = instance.rowIndexMapper.getIndexesSequence();\n      return new UndoRedo.RemoveColumnAction(columnIndex, indexes, removedData, headers, columnsMap, rowsMap, instance.getSettings().fixedColumnsStart, getCellMetas(0, instance.countRows(), columnIndex, lastColumnIndex));\n    };\n    plugin.done(wrappedAction, source);\n  });\n  instance.addHook('beforeCellAlignment', (stateBefore, range, type, alignment) => {\n    plugin.done(() => new UndoRedo.CellAlignmentAction(stateBefore, range, type, alignment));\n  });\n  instance.addHook('beforeFilter', conditionsStack => {\n    plugin.done(() => new UndoRedo.FiltersAction(conditionsStack));\n  });\n  instance.addHook('beforeRowMove', (rows, finalIndex) => {\n    if (rows === false) {\n      return;\n    }\n    plugin.done(() => new UndoRedo.RowMoveAction(rows, finalIndex));\n  });\n  instance.addHook('beforeColumnMove', (columns, finalIndex) => {\n    if (columns === false) {\n      return;\n    }\n    plugin.done(() => new UndoRedo.ColumnMoveAction(columns, finalIndex));\n  });\n  instance.addHook('beforeMergeCells', (cellRange, auto) => {\n    if (auto) {\n      return;\n    }\n    plugin.done(() => new UndoRedo.MergeCellsAction(instance, cellRange));\n  });\n  instance.addHook('afterUnmergeCells', (cellRange, auto) => {\n    if (auto) {\n      return;\n    }\n    plugin.done(() => new UndoRedo.UnmergeCellsAction(instance, cellRange));\n  });\n  instance.addHook('beforeColumnSort', (currentSortConfig, destinationSortConfigs, sortPossible) => {\n    if (!sortPossible) {\n      return;\n    }\n    plugin.done(() => new UndoRedo.ColumnSortAction(currentSortConfig, destinationSortConfigs));\n  });\n\n  // TODO: Why this callback is needed? One test doesn't pass after calling method right after plugin creation (outside the callback).\n  instance.addHook('afterInit', () => {\n    plugin.init();\n  });\n}\n\n/**\n * Stash information about performed actions.\n *\n * @function done\n * @memberof UndoRedo#\n * @fires Hooks#beforeUndoStackChange\n * @fires Hooks#afterUndoStackChange\n * @fires Hooks#beforeRedoStackChange\n * @fires Hooks#afterRedoStackChange\n * @param {Function} wrappedAction The action descriptor wrapped in a closure.\n * @param {string} [source] Source of the action. It is defined just for more general actions (not related to plugins).\n */\nUndoRedo.prototype.done = function (wrappedAction, source) {\n  if (this.ignoreNewActions) {\n    return;\n  }\n  const isBlockedByDefault = source === 'UndoRedo.undo' || source === 'UndoRedo.redo' || source === 'auto';\n  if (isBlockedByDefault) {\n    return;\n  }\n  const doneActionsCopy = this.doneActions.slice();\n  const continueAction = this.instance.runHooks('beforeUndoStackChange', doneActionsCopy, source);\n  if (continueAction === false) {\n    return;\n  }\n  const newAction = wrappedAction();\n  const undoneActionsCopy = this.undoneActions.slice();\n  this.doneActions.push(newAction);\n  this.instance.runHooks('afterUndoStackChange', doneActionsCopy, this.doneActions.slice());\n  this.instance.runHooks('beforeRedoStackChange', undoneActionsCopy);\n  this.undoneActions.length = 0;\n  this.instance.runHooks('afterRedoStackChange', undoneActionsCopy, this.undoneActions.slice());\n};\n\n/**\n * Undo the last action performed to the table.\n *\n * @function undo\n * @memberof UndoRedo#\n * @fires Hooks#beforeUndoStackChange\n * @fires Hooks#afterUndoStackChange\n * @fires Hooks#beforeRedoStackChange\n * @fires Hooks#afterRedoStackChange\n * @fires Hooks#beforeUndo\n * @fires Hooks#afterUndo\n */\nUndoRedo.prototype.undo = function () {\n  if (this.isUndoAvailable()) {\n    const doneActionsCopy = this.doneActions.slice();\n    this.instance.runHooks('beforeUndoStackChange', doneActionsCopy);\n    const action = this.doneActions.pop();\n    this.instance.runHooks('afterUndoStackChange', doneActionsCopy, this.doneActions.slice());\n    const actionClone = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"deepClone\"])(action);\n    const continueAction = this.instance.runHooks('beforeUndo', actionClone);\n    if (continueAction === false) {\n      return;\n    }\n    this.ignoreNewActions = true;\n    const that = this;\n    const undoneActionsCopy = this.undoneActions.slice();\n    this.instance.runHooks('beforeRedoStackChange', undoneActionsCopy);\n    action.undo(this.instance, () => {\n      that.ignoreNewActions = false;\n      that.undoneActions.push(action);\n    });\n    this.instance.runHooks('afterRedoStackChange', undoneActionsCopy, this.undoneActions.slice());\n    this.instance.runHooks('afterUndo', actionClone);\n  }\n};\n\n/**\n * Redo the previous action performed to the table (used to reverse an undo).\n *\n * @function redo\n * @memberof UndoRedo#\n * @fires Hooks#beforeUndoStackChange\n * @fires Hooks#afterUndoStackChange\n * @fires Hooks#beforeRedoStackChange\n * @fires Hooks#afterRedoStackChange\n * @fires Hooks#beforeRedo\n * @fires Hooks#afterRedo\n */\nUndoRedo.prototype.redo = function () {\n  if (this.isRedoAvailable()) {\n    const undoneActionsCopy = this.undoneActions.slice();\n    this.instance.runHooks('beforeRedoStackChange', undoneActionsCopy);\n    const action = this.undoneActions.pop();\n    this.instance.runHooks('afterRedoStackChange', undoneActionsCopy, this.undoneActions.slice());\n    const actionClone = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"deepClone\"])(action);\n    const continueAction = this.instance.runHooks('beforeRedo', actionClone);\n    if (continueAction === false) {\n      return;\n    }\n    this.ignoreNewActions = true;\n    const that = this;\n    const doneActionsCopy = this.doneActions.slice();\n    this.instance.runHooks('beforeUndoStackChange', doneActionsCopy);\n    action.redo(this.instance, () => {\n      that.ignoreNewActions = false;\n      that.doneActions.push(action);\n    });\n    this.instance.runHooks('afterUndoStackChange', doneActionsCopy, this.doneActions.slice());\n    this.instance.runHooks('afterRedo', actionClone);\n  }\n};\n\n/**\n * Checks if undo action is available.\n *\n * @function isUndoAvailable\n * @memberof UndoRedo#\n * @returns {boolean} Return `true` if undo can be performed, `false` otherwise.\n */\nUndoRedo.prototype.isUndoAvailable = function () {\n  return this.doneActions.length > 0;\n};\n\n/**\n * Checks if redo action is available.\n *\n * @function isRedoAvailable\n * @memberof UndoRedo#\n * @returns {boolean} Return `true` if redo can be performed, `false` otherwise.\n */\nUndoRedo.prototype.isRedoAvailable = function () {\n  return this.undoneActions.length > 0;\n};\n\n/**\n * Clears undo history.\n *\n * @function clear\n * @memberof UndoRedo#\n */\nUndoRedo.prototype.clear = function () {\n  this.doneActions.length = 0;\n  this.undoneActions.length = 0;\n};\n\n/**\n * Checks if the plugin is enabled.\n *\n * @function isEnabled\n * @memberof UndoRedo#\n * @returns {boolean}\n */\nUndoRedo.prototype.isEnabled = function () {\n  return this.enabled;\n};\n\n/**\n * Enables the plugin.\n *\n * @function enable\n * @memberof UndoRedo#\n */\nUndoRedo.prototype.enable = function () {\n  if (this.isEnabled()) {\n    return;\n  }\n  const hot = this.instance;\n  this.enabled = true;\n  exposeUndoRedoMethods(hot);\n  this.registerShortcuts();\n  hot.addHook('afterChange', onAfterChange);\n};\n\n/**\n * Disables the plugin.\n *\n * @function disable\n * @memberof UndoRedo#\n */\nUndoRedo.prototype.disable = function () {\n  if (!this.isEnabled()) {\n    return;\n  }\n  const hot = this.instance;\n  this.enabled = false;\n  removeExposedUndoRedoMethods(hot);\n  this.unregisterShortcuts();\n  hot.removeHook('afterChange', onAfterChange);\n};\n\n/**\n * Destroys the instance.\n *\n * @function destroy\n * @memberof UndoRedo#\n */\nUndoRedo.prototype.destroy = function () {\n  this.clear();\n  this.instance = null;\n  this.doneActions = null;\n  this.undoneActions = null;\n};\nUndoRedo.Action = function () {};\nUndoRedo.Action.prototype.undo = function () {};\nUndoRedo.Action.prototype.redo = function () {};\n\n/**\n * Change action.\n *\n * @private\n * @param {Array} changes 2D array containing information about each of the edited cells.\n * @param {number[]} selected The cell selection.\n */\nUndoRedo.ChangeAction = function (changes, selected) {\n  this.changes = changes;\n  this.selected = selected;\n  this.actionType = 'change';\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"inherit\"])(UndoRedo.ChangeAction, UndoRedo.Action);\nUndoRedo.ChangeAction.prototype.undo = function (instance, undoneCallback) {\n  const data = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"deepClone\"])(this.changes);\n  const emptyRowsAtTheEnd = instance.countEmptyRows(true);\n  const emptyColsAtTheEnd = instance.countEmptyCols(true);\n  for (let i = 0, len = data.length; i < len; i++) {\n    data[i].splice(3, 1);\n  }\n  instance.addHookOnce('afterChange', undoneCallback);\n  instance.setDataAtCell(data, null, null, 'UndoRedo.undo');\n  for (let i = 0, len = data.length; i < len; i++) {\n    const [row, column] = data[i];\n    if (instance.getSettings().minSpareRows && row + 1 + instance.getSettings().minSpareRows === instance.countRows() && emptyRowsAtTheEnd === instance.getSettings().minSpareRows) {\n      instance.alter('remove_row', parseInt(row + 1, 10), instance.getSettings().minSpareRows);\n      instance.undoRedo.doneActions.pop();\n    }\n    if (instance.getSettings().minSpareCols && column + 1 + instance.getSettings().minSpareCols === instance.countCols() && emptyColsAtTheEnd === instance.getSettings().minSpareCols) {\n      instance.alter('remove_col', parseInt(column + 1, 10), instance.getSettings().minSpareCols);\n      instance.undoRedo.doneActions.pop();\n    }\n  }\n  const selectedLast = instance.getSelectedLast();\n  if (selectedLast !== undefined) {\n    const [changedRow, changedColumn] = data[0];\n    const [selectedRow, selectedColumn] = selectedLast;\n    const firstFullyVisibleRow = instance.view.getFirstFullyVisibleRow();\n    const firstFullyVisibleColumn = instance.view.getFirstFullyVisibleColumn();\n    const isInVerticalViewPort = changedRow >= firstFullyVisibleRow;\n    const isInHorizontalViewPort = changedColumn >= firstFullyVisibleColumn;\n    const isInViewport = isInVerticalViewPort && isInHorizontalViewPort;\n    const isChangedSelection = selectedRow !== changedRow || selectedColumn !== changedColumn;\n\n    // Performing scroll only when selection has been changed right after editing a cell.\n    if (isInViewport === false && isChangedSelection === true) {\n      const scrollConfig = {\n        row: changedRow,\n        col: changedColumn\n      };\n      if (isInVerticalViewPort === false) {\n        scrollConfig.verticalSnap = 'top';\n      }\n      if (isInHorizontalViewPort === false) {\n        scrollConfig.horizontalSnap = 'start';\n      }\n      instance.scrollViewportTo(scrollConfig);\n    }\n  }\n  instance.selectCells(this.selected, false, false);\n};\nUndoRedo.ChangeAction.prototype.redo = function (instance, onFinishCallback) {\n  const data = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"deepClone\"])(this.changes);\n  for (let i = 0, len = data.length; i < len; i++) {\n    data[i].splice(2, 1);\n  }\n  instance.addHookOnce('afterChange', onFinishCallback);\n  instance.setDataAtCell(data, null, null, 'UndoRedo.redo');\n  if (this.selected) {\n    instance.selectCells(this.selected, false, false);\n  }\n};\n\n/**\n * Create row action.\n *\n * @private\n * @param {number} index The visual row index.\n * @param {number} amount The number of created rows.\n */\nUndoRedo.CreateRowAction = function (index, amount) {\n  this.index = index;\n  this.amount = amount;\n  this.actionType = 'insert_row';\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"inherit\"])(UndoRedo.CreateRowAction, UndoRedo.Action);\nUndoRedo.CreateRowAction.prototype.undo = function (instance, undoneCallback) {\n  const rowCount = instance.countRows();\n  const minSpareRows = instance.getSettings().minSpareRows;\n  if (this.index >= rowCount && this.index - minSpareRows < rowCount) {\n    this.index -= minSpareRows; // work around the situation where the needed row was removed due to an 'undo' of a made change\n  }\n  instance.addHookOnce('afterRemoveRow', undoneCallback);\n  instance.alter('remove_row', this.index, this.amount, 'UndoRedo.undo');\n};\nUndoRedo.CreateRowAction.prototype.redo = function (instance, redoneCallback) {\n  instance.addHookOnce('afterCreateRow', redoneCallback);\n  instance.alter('insert_row_above', this.index, this.amount, 'UndoRedo.redo');\n};\n\n/**\n * Remove row action.\n *\n * @private\n * @param {number} index The visual row index.\n * @param {Array} data The removed data.\n * @param {number} fixedRowsBottom Number of fixed rows on the bottom. Remove row action change it sometimes.\n * @param {number} fixedRowsTop Number of fixed rows on the top. Remove row action change it sometimes.\n * @param {Array} rowIndexesSequence Row index sequence taken from the row index mapper.\n * @param {Array} removedCellMetas List of removed cell metas.\n */\nUndoRedo.RemoveRowAction = function (index, data, fixedRowsBottom, fixedRowsTop, rowIndexesSequence, removedCellMetas) {\n  this.index = index;\n  this.data = data;\n  this.actionType = 'remove_row';\n  this.fixedRowsBottom = fixedRowsBottom;\n  this.fixedRowsTop = fixedRowsTop;\n  this.rowIndexesSequence = rowIndexesSequence;\n  this.removedCellMetas = removedCellMetas;\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"inherit\"])(UndoRedo.RemoveRowAction, UndoRedo.Action);\nUndoRedo.RemoveRowAction.prototype.undo = function (instance, undoneCallback) {\n  const settings = instance.getSettings();\n  const changes = [];\n\n  // Changing by the reference as `updateSettings` doesn't work the best.\n  settings.fixedRowsBottom = this.fixedRowsBottom;\n  settings.fixedRowsTop = this.fixedRowsTop;\n\n  // Prepare the change list to fill the source data.\n  this.data.forEach((dataRow, rowIndexDelta) => {\n    Object.keys(dataRow).forEach(columnProp => {\n      const columnIndex = parseInt(columnProp, 10);\n      changes.push([this.index + rowIndexDelta, isNaN(columnIndex) ? columnProp : columnIndex, dataRow[columnProp]]);\n    });\n  });\n  instance.alter('insert_row_above', this.index, this.data.length, 'UndoRedo.undo');\n  this.removedCellMetas.forEach(_ref2 => {\n    let [rowIndex, columnIndex, cellMeta] = _ref2;\n    instance.setCellMetaObject(rowIndex, columnIndex, cellMeta);\n  });\n  instance.addHookOnce('afterViewRender', undoneCallback);\n  instance.setSourceDataAtCell(changes, null, null, 'UndoRedo.undo');\n  instance.rowIndexMapper.setIndexesSequence(this.rowIndexesSequence);\n};\nUndoRedo.RemoveRowAction.prototype.redo = function (instance, redoneCallback) {\n  instance.addHookOnce('afterRemoveRow', redoneCallback);\n  instance.alter('remove_row', this.index, this.data.length, 'UndoRedo.redo');\n};\n\n/**\n * Create column action.\n *\n * @private\n * @param {number} index The visual column index.\n * @param {number} amount The number of created columns.\n */\nUndoRedo.CreateColumnAction = function (index, amount) {\n  this.index = index;\n  this.amount = amount;\n  this.actionType = 'insert_col';\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"inherit\"])(UndoRedo.CreateColumnAction, UndoRedo.Action);\nUndoRedo.CreateColumnAction.prototype.undo = function (instance, undoneCallback) {\n  instance.addHookOnce('afterRemoveCol', undoneCallback);\n  instance.alter('remove_col', this.index, this.amount, 'UndoRedo.undo');\n};\nUndoRedo.CreateColumnAction.prototype.redo = function (instance, redoneCallback) {\n  instance.addHookOnce('afterCreateCol', redoneCallback);\n  instance.alter('insert_col_start', this.index, this.amount, 'UndoRedo.redo');\n};\n\n/**\n * Remove column action.\n *\n * @private\n * @param {number} index The visual column index.\n * @param {number[]} indexes The visual column indexes.\n * @param {Array} data The removed data.\n * @param {Array} headers The header values.\n * @param {number[]} columnPositions The column position.\n * @param {number[]} rowPositions The row position.\n * @param {number} fixedColumnsStart Number of fixed columns on the left. Remove column action change it sometimes.\n * @param {Array} removedCellMetas List of removed cell metas.\n */\nUndoRedo.RemoveColumnAction = function (index, indexes, data, headers, columnPositions, rowPositions, fixedColumnsStart, removedCellMetas) {\n  // eslint-disable-line max-len\n  this.index = index;\n  this.indexes = indexes;\n  this.data = data;\n  this.amount = this.data[0].length;\n  this.headers = headers;\n  this.columnPositions = columnPositions.slice(0);\n  this.rowPositions = rowPositions.slice(0);\n  this.actionType = 'remove_col';\n  this.fixedColumnsStart = fixedColumnsStart;\n  this.removedCellMetas = removedCellMetas;\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"inherit\"])(UndoRedo.RemoveColumnAction, UndoRedo.Action);\nUndoRedo.RemoveColumnAction.prototype.undo = function (instance, undoneCallback) {\n  const settings = instance.getSettings();\n\n  // Changing by the reference as `updateSettings` doesn't work the best.\n  settings.fixedColumnsStart = this.fixedColumnsStart;\n  const ascendingIndexes = this.indexes.slice(0).sort();\n  const sortByIndexes = (elem, j, arr) => arr[this.indexes.indexOf(ascendingIndexes[j])];\n  const removedDataLength = this.data.length;\n  const sortedData = [];\n  for (let rowIndex = 0; rowIndex < removedDataLength; rowIndex++) {\n    sortedData.push(Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayMap\"])(this.data[rowIndex], sortByIndexes));\n  }\n  const sortedHeaders = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayMap\"])(this.headers, sortByIndexes);\n  const changes = [];\n  instance.alter('insert_col_start', this.indexes[0], this.indexes.length, 'UndoRedo.undo');\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(instance.getSourceDataArray(), (rowData, rowIndex) => {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(ascendingIndexes, (changedIndex, contiquesIndex) => {\n      rowData[changedIndex] = sortedData[rowIndex][contiquesIndex];\n      changes.push([rowIndex, changedIndex, rowData[changedIndex]]);\n    });\n  });\n  instance.setSourceDataAtCell(changes, undefined, undefined, 'UndoRedo.undo');\n  if (typeof this.headers !== 'undefined') {\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(sortedHeaders, (headerData, columnIndex) => {\n      instance.getSettings().colHeaders[ascendingIndexes[columnIndex]] = headerData;\n    });\n  }\n  this.removedCellMetas.forEach(_ref3 => {\n    let [rowIndex, columnIndex, cellMeta] = _ref3;\n    instance.setCellMetaObject(rowIndex, columnIndex, cellMeta);\n  });\n  instance.batchExecution(() => {\n    // Restore row sequence in a case when all columns are removed. the original\n    // row sequence is lost in that case.\n    instance.rowIndexMapper.setIndexesSequence(this.rowPositions);\n    instance.columnIndexMapper.setIndexesSequence(this.columnPositions);\n  }, true);\n  instance.addHookOnce('afterViewRender', undoneCallback);\n  instance.render();\n};\nUndoRedo.RemoveColumnAction.prototype.redo = function (instance, redoneCallback) {\n  instance.addHookOnce('afterRemoveCol', redoneCallback);\n  instance.alter('remove_col', this.index, this.amount, 'UndoRedo.redo');\n};\n\n/**\n * Cell alignment action.\n *\n * @private\n * @param {Array} stateBefore The previous state.\n * @param {object} range The cell range.\n * @param {string} type The type of the alignment (\"top\", \"left\", \"bottom\" or \"right\").\n * @param {string} alignment The alignment CSS class.\n */\nUndoRedo.CellAlignmentAction = function (stateBefore, range, type, alignment) {\n  this.stateBefore = stateBefore;\n  this.range = range;\n  this.type = type;\n  this.alignment = alignment;\n};\nUndoRedo.CellAlignmentAction.prototype.undo = function (instance, undoneCallback) {\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(this.range, range => {\n    range.forAll((row, col) => {\n      // Alignment classes should only collected within cell ranges. We skip header coordinates.\n      if (row >= 0 && col >= 0) {\n        instance.setCellMeta(row, col, 'className', this.stateBefore[row][col] || ' htLeft');\n      }\n    });\n  });\n  instance.addHookOnce('afterViewRender', undoneCallback);\n  instance.render();\n};\nUndoRedo.CellAlignmentAction.prototype.redo = function (instance, undoneCallback) {\n  Object(_contextMenu_utils_mjs__WEBPACK_IMPORTED_MODULE_6__[\"align\"])(this.range, this.type, this.alignment, (row, col) => instance.getCellMeta(row, col), (row, col, key, value) => instance.setCellMeta(row, col, key, value));\n  instance.addHookOnce('afterViewRender', undoneCallback);\n  instance.render();\n};\n\n/**\n * Filters action.\n *\n * @private\n * @param {Array} conditionsStack An array of the filter condition.\n */\nUndoRedo.FiltersAction = function (conditionsStack) {\n  this.conditionsStack = conditionsStack;\n  this.actionType = 'filter';\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"inherit\"])(UndoRedo.FiltersAction, UndoRedo.Action);\nUndoRedo.FiltersAction.prototype.undo = function (instance, undoneCallback) {\n  const filters = instance.getPlugin('filters');\n  instance.addHookOnce('afterViewRender', undoneCallback);\n  filters.conditionCollection.importAllConditions(this.conditionsStack.slice(0, this.conditionsStack.length - 1));\n  filters.filter();\n};\nUndoRedo.FiltersAction.prototype.redo = function (instance, redoneCallback) {\n  const filters = instance.getPlugin('filters');\n  instance.addHookOnce('afterViewRender', redoneCallback);\n  filters.conditionCollection.importAllConditions(this.conditionsStack);\n  filters.filter();\n};\n\n/**\n * Merge Cells action.\n *\n * @util\n */\nclass MergeCellsAction extends UndoRedo.Action {\n  constructor(instance, cellRange) {\n    super();\n    this.cellRange = cellRange;\n    const topStartCorner = this.cellRange.getTopStartCorner();\n    const bottomEndCorner = this.cellRange.getBottomEndCorner();\n    this.rangeData = instance.getData(topStartCorner.row, topStartCorner.col, bottomEndCorner.row, bottomEndCorner.col);\n  }\n  undo(instance, undoneCallback) {\n    const mergeCellsPlugin = instance.getPlugin('mergeCells');\n    instance.addHookOnce('afterViewRender', undoneCallback);\n    mergeCellsPlugin.unmergeRange(this.cellRange, true);\n    const topStartCorner = this.cellRange.getTopStartCorner();\n    instance.populateFromArray(topStartCorner.row, topStartCorner.col, this.rangeData, undefined, undefined, 'MergeCells');\n  }\n  redo(instance, redoneCallback) {\n    const mergeCellsPlugin = instance.getPlugin('mergeCells');\n    instance.addHookOnce('afterViewRender', redoneCallback);\n    mergeCellsPlugin.mergeRange(this.cellRange);\n  }\n}\nUndoRedo.MergeCellsAction = MergeCellsAction;\n\n/**\n * Unmerge Cells action.\n *\n * @util\n */\nclass UnmergeCellsAction extends UndoRedo.Action {\n  constructor(instance, cellRange) {\n    super();\n    this.cellRange = cellRange;\n  }\n  undo(instance, undoneCallback) {\n    const mergeCellsPlugin = instance.getPlugin('mergeCells');\n    instance.addHookOnce('afterViewRender', undoneCallback);\n    mergeCellsPlugin.mergeRange(this.cellRange, true);\n  }\n  redo(instance, redoneCallback) {\n    const mergeCellsPlugin = instance.getPlugin('mergeCells');\n    instance.addHookOnce('afterViewRender', redoneCallback);\n    mergeCellsPlugin.unmergeRange(this.cellRange, true);\n    instance.render();\n  }\n}\nUndoRedo.UnmergeCellsAction = UnmergeCellsAction;\n\n/**\n * ManualRowMove action.\n *\n * @TODO removeRow undo should works on logical index\n * @private\n * @param {number[]} rows An array with moved rows.\n * @param {number} finalIndex The destination index.\n */\nUndoRedo.RowMoveAction = function (rows, finalIndex) {\n  this.rows = rows.slice();\n  this.finalRowIndex = finalIndex;\n  this.actionType = 'row_move';\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"inherit\"])(UndoRedo.RowMoveAction, UndoRedo.Action);\nUndoRedo.RowMoveAction.prototype.undo = function (instance, undoneCallback) {\n  const manualRowMove = instance.getPlugin('manualRowMove');\n  instance.addHookOnce('afterViewRender', undoneCallback);\n  const rowMoves = Object(_helpers_moves_mjs__WEBPACK_IMPORTED_MODULE_7__[\"getMoves\"])(this.rows, this.finalRowIndex, instance.rowIndexMapper.getNumberOfIndexes());\n  rowMoves.reverse().forEach(_ref4 => {\n    let {\n      from,\n      to\n    } = _ref4;\n    if (from < to) {\n      to -= 1;\n    }\n    manualRowMove.moveRow(to, from);\n  });\n  instance.render();\n  instance.deselectCell();\n  instance.selectRows(this.rows[0], this.rows[0] + this.rows.length - 1);\n};\nUndoRedo.RowMoveAction.prototype.redo = function (instance, redoneCallback) {\n  const manualRowMove = instance.getPlugin('manualRowMove');\n  instance.addHookOnce('afterViewRender', redoneCallback);\n  manualRowMove.moveRows(this.rows.slice(), this.finalRowIndex);\n  instance.render();\n  instance.deselectCell();\n  instance.selectRows(this.finalRowIndex, this.finalRowIndex + this.rows.length - 1);\n};\n\n/**\n * ManualColumnMove action.\n *\n * @private\n * @param {number[]} columns An array with moved columns.\n * @param {number} finalIndex The destination index.\n */\nUndoRedo.ColumnMoveAction = function (columns, finalIndex) {\n  this.columns = columns.slice();\n  this.finalColumnIndex = finalIndex;\n  this.actionType = 'col_move';\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"inherit\"])(UndoRedo.ColumnMoveAction, UndoRedo.Action);\nUndoRedo.ColumnMoveAction.prototype.undo = function (instance, undoneCallback) {\n  const manualColumnMove = instance.getPlugin('manualColumnMove');\n  instance.addHookOnce('afterViewRender', undoneCallback);\n  const columnMoves = Object(_helpers_moves_mjs__WEBPACK_IMPORTED_MODULE_7__[\"getMoves\"])(this.columns, this.finalColumnIndex, instance.columnIndexMapper.getNumberOfIndexes());\n  columnMoves.reverse().forEach(_ref5 => {\n    let {\n      from,\n      to\n    } = _ref5;\n    if (from < to) {\n      to -= 1;\n    }\n    manualColumnMove.moveColumn(to, from);\n  });\n  instance.render();\n  instance.deselectCell();\n  instance.selectColumns(this.columns[0], this.columns[0] + this.columns.length - 1);\n};\nUndoRedo.ColumnMoveAction.prototype.redo = function (instance, redoneCallback) {\n  const manualColumnMove = instance.getPlugin('manualColumnMove');\n  instance.addHookOnce('afterViewRender', redoneCallback);\n  manualColumnMove.moveColumns(this.columns.slice(), this.finalColumnIndex);\n  instance.render();\n  instance.deselectCell();\n  instance.selectColumns(this.finalColumnIndex, this.finalColumnIndex + this.columns.length - 1);\n};\n\n/**\n * ColumnSort action.\n *\n * @private\n * @param {Array} currentSortState The current sort state.\n * @param {Array} newSortState The new sort state.\n */\nUndoRedo.ColumnSortAction = function (currentSortState, newSortState) {\n  this.previousSortState = currentSortState;\n  this.nextSortState = newSortState;\n};\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_5__[\"inherit\"])(UndoRedo.ColumnSortAction, UndoRedo.Action);\nUndoRedo.ColumnSortAction.prototype.undo = function (instance, undoneCallback) {\n  const sortPlugin = instance.getPlugin('columnSorting');\n  const multiSortPlugin = instance.getPlugin('multiColumnSorting');\n  const enabledSortPlugin = multiSortPlugin.isEnabled() ? multiSortPlugin : sortPlugin;\n  if (this.previousSortState.length) {\n    enabledSortPlugin.sort(this.previousSortState);\n  } else {\n    enabledSortPlugin.clearSort();\n  }\n  undoneCallback();\n};\nUndoRedo.ColumnSortAction.prototype.redo = function (instance, redoneCallback) {\n  const sortPlugin = instance.getPlugin('columnSorting');\n  const multiSortPlugin = instance.getPlugin('multiColumnSorting');\n  const enabledSortPlugin = multiSortPlugin.isEnabled() ? multiSortPlugin : sortPlugin;\n  enabledSortPlugin.sort(this.nextSortState);\n  redoneCallback();\n};\n\n/**\n * Enabling and disabling plugin and attaching its to an instance.\n *\n * @private\n */\nUndoRedo.prototype.init = function () {\n  const settings = this.instance.getSettings().undo;\n  const pluginEnabled = typeof settings === 'undefined' || settings;\n  if (!this.instance.undoRedo) {\n    this.instance.undoRedo = this;\n  }\n  if (pluginEnabled) {\n    this.instance.undoRedo.enable();\n  } else {\n    this.instance.undoRedo.disable();\n  }\n};\n\n/**\n * Registers shortcuts responsible for performing undo/redo.\n *\n * @private\n */\nUndoRedo.prototype.registerShortcuts = function () {\n  const shortcutManager = this.instance.getShortcutManager();\n  const gridContext = shortcutManager.getContext('grid');\n  const runOnlyIf = event => {\n    return !event.altKey; // right ALT in some systems triggers ALT+CTR\n  };\n  const config = {\n    runOnlyIf,\n    group: SHORTCUTS_GROUP\n  };\n  gridContext.addShortcuts([{\n    keys: [['Control/Meta', 'z']],\n    callback: () => {\n      this.undo();\n    }\n  }, {\n    keys: [['Control/Meta', 'y'], ['Control/Meta', 'Shift', 'z']],\n    callback: () => {\n      this.redo();\n    }\n  }], config);\n};\n\n/**\n * Unregister shortcuts responsible for performing undo/redo.\n *\n * @private\n */\nUndoRedo.prototype.unregisterShortcuts = function () {\n  const shortcutManager = this.instance.getShortcutManager();\n  const gridContext = shortcutManager.getContext('grid');\n  gridContext.removeShortcutsByGroup(SHORTCUTS_GROUP);\n};\n\n/**\n * @param {Array} changes 2D array containing information about each of the edited cells.\n * @param {string} source String that identifies source of hook call.\n * @returns {boolean}\n */\nfunction onAfterChange(changes, source) {\n  const instance = this;\n  if (source === 'loadData') {\n    return instance.undoRedo.clear();\n  }\n}\n\n/**\n * @param {Core} instance The Handsontable instance.\n */\nfunction exposeUndoRedoMethods(instance) {\n  /**\n   * {@link UndoRedo#undo}.\n   *\n   * @alias undo\n   * @memberof! Core#\n   * @returns {boolean}\n   */\n  instance.undo = function () {\n    return instance.undoRedo.undo();\n  };\n\n  /**\n   * {@link UndoRedo#redo}.\n   *\n   * @alias redo\n   * @memberof! Core#\n   * @returns {boolean}\n   */\n  instance.redo = function () {\n    return instance.undoRedo.redo();\n  };\n\n  /**\n   * {@link UndoRedo#isUndoAvailable}.\n   *\n   * @alias isUndoAvailable\n   * @memberof! Core#\n   * @returns {boolean}\n   */\n  instance.isUndoAvailable = function () {\n    return instance.undoRedo.isUndoAvailable();\n  };\n\n  /**\n   * {@link UndoRedo#isRedoAvailable}.\n   *\n   * @alias isRedoAvailable\n   * @memberof! Core#\n   * @returns {boolean}\n   */\n  instance.isRedoAvailable = function () {\n    return instance.undoRedo.isRedoAvailable();\n  };\n\n  /**\n   * {@link UndoRedo#clear}.\n   *\n   * @alias clearUndo\n   * @memberof! Core#\n   * @returns {boolean}\n   */\n  instance.clearUndo = function () {\n    return instance.undoRedo.clear();\n  };\n}\n\n/**\n * @param {Core} instance The Handsontable instance.\n */\nfunction removeExposedUndoRedoMethods(instance) {\n  delete instance.undo;\n  delete instance.redo;\n  delete instance.isUndoAvailable;\n  delete instance.isRedoAvailable;\n  delete instance.clearUndo;\n}\nconst hook = _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getSingleton();\nhook.add('afterUpdateSettings', function () {\n  var _this$getPlugin;\n  (_this$getPlugin = this.getPlugin('undoRedo')) === null || _this$getPlugin === void 0 || _this$getPlugin.init();\n});\nhook.register('beforeUndo');\nhook.register('afterUndo');\nhook.register('beforeRedo');\nhook.register('afterRedo');\nUndoRedo.PLUGIN_KEY = PLUGIN_KEY;\nUndoRedo.SETTING_KEYS = true;\n/* harmony default export */ __webpack_exports__[\"default\"] = (UndoRedo);\n\n//# sourceURL=webpack:///./node_modules/handsontable/plugins/undoRedo/undoRedo.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/registry.mjs":
/*!************************************************!*\
  !*** ./node_modules/handsontable/registry.mjs ***!
  \************************************************/
/*! exports provided: registerAllEditors, registerAllRenderers, registerAllValidators, registerAllCellTypes, registerAllPlugins, registerAllModules */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerAllModules\", function() { return registerAllModules; });\n/* harmony import */ var _editors_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./editors/index.mjs */ \"./node_modules/handsontable/editors/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"registerAllEditors\", function() { return _editors_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"registerAllEditors\"]; });\n\n/* harmony import */ var _renderers_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./renderers/index.mjs */ \"./node_modules/handsontable/renderers/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"registerAllRenderers\", function() { return _renderers_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerAllRenderers\"]; });\n\n/* harmony import */ var _validators_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./validators/index.mjs */ \"./node_modules/handsontable/validators/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"registerAllValidators\", function() { return _validators_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"registerAllValidators\"]; });\n\n/* harmony import */ var _cellTypes_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cellTypes/index.mjs */ \"./node_modules/handsontable/cellTypes/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"registerAllCellTypes\", function() { return _cellTypes_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"registerAllCellTypes\"]; });\n\n/* harmony import */ var _plugins_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./plugins/index.mjs */ \"./node_modules/handsontable/plugins/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"registerAllPlugins\", function() { return _plugins_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"registerAllPlugins\"]; });\n\n/* eslint-disable handsontable/restricted-module-imports */\n// Since the Handsontable was modularized, importing some submodules is\n// restricted. Importing the main entry of the submodule can make the\n// \"dead\" code elimination process more difficult or even impossible.\n// The \"handsontable/restricted-module-imports\" rule is on guard.\n// This file exports the functions that allow include packages to\n// the Base version of the Handsontable, so that's why the rule is\n// disabled here (see more #7506).\n\n\n\n\n\n/* eslint-enable handsontable/restricted-module-imports */\n\n\n/**\n * Registers all available Handsontable modules.\n */\nfunction registerAllModules() {\n  Object(_editors_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"registerAllEditors\"])();\n  Object(_renderers_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"registerAllRenderers\"])();\n  Object(_validators_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"registerAllValidators\"])();\n  Object(_cellTypes_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"registerAllCellTypes\"])();\n  Object(_plugins_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"registerAllPlugins\"])();\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/registry.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/autocompleteRenderer/autocompleteRenderer.mjs":
/*!*******************************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/autocompleteRenderer/autocompleteRenderer.mjs ***!
  \*******************************************************************************************/
/*! exports provided: RENDERER_TYPE, autocompleteRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return RENDERER_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autocompleteRenderer\", function() { return autocompleteRenderer; });\n/* harmony import */ var _htmlRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../htmlRenderer/index.mjs */ \"./node_modules/handsontable/renderers/htmlRenderer/index.mjs\");\n/* harmony import */ var _textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../textRenderer/index.mjs */ \"./node_modules/handsontable/renderers/textRenderer/index.mjs\");\n/* harmony import */ var _eventManager_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../eventManager.mjs */ \"./node_modules/handsontable/eventManager.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\n\n\n\nconst RENDERER_TYPE = 'autocomplete';\n\n/**\n * Autocomplete renderer.\n *\n * @private\n * @param {Core} hotInstance The Handsontable instance.\n * @param {HTMLTableCellElement} TD The rendered cell element.\n * @param {number} row The visual row index.\n * @param {number} col The visual column index.\n * @param {number|string} prop The column property (passed when datasource is an array of objects).\n * @param {*} value The rendered value.\n * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n */\nfunction autocompleteRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {\n  const {\n    rootDocument\n  } = hotInstance;\n  const rendererFunc = cellProperties.allowHtml ? _htmlRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"htmlRenderer\"] : _textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"textRenderer\"];\n  const ARROW = rootDocument.createElement('DIV');\n  const isAriaEnabled = hotInstance.getSettings().ariaTags;\n  ARROW.className = 'htAutocompleteArrow';\n  if (isAriaEnabled) {\n    ARROW.setAttribute(...Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_4__[\"A11Y_HIDDEN\"])());\n  }\n  ARROW.appendChild(rootDocument.createTextNode(String.fromCharCode(9660)));\n  rendererFunc.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);\n  if (!TD.firstChild) {\n    // http://jsperf.com/empty-node-if-needed\n    // otherwise empty fields appear borderless in demo/renderers.html (IE)\n    TD.appendChild(rootDocument.createTextNode(String.fromCharCode(160))); // workaround for https://github.com/handsontable/handsontable/issues/1946\n    // this is faster than innerHTML. See: https://github.com/handsontable/handsontable/wiki/JavaScript-&-DOM-performance-tips\n  }\n  TD.insertBefore(ARROW, TD.firstChild);\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"addClass\"])(TD, 'htAutocomplete');\n  if (!hotInstance.acArrowListener) {\n    const eventManager = new _eventManager_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"](hotInstance);\n\n    // not very elegant but easy and fast\n    hotInstance.acArrowListener = function (event) {\n      if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"hasClass\"])(event.target, 'htAutocompleteArrow')) {\n        hotInstance.view._wt.getSetting('onCellDblClick', null, hotInstance._createCellCoords(row, col), TD);\n      }\n    };\n    eventManager.addEventListener(hotInstance.rootElement, 'mousedown', hotInstance.acArrowListener);\n\n    // We need to unbind the listener after the table has been destroyed\n    hotInstance.addHookOnce('afterDestroy', () => {\n      eventManager.destroy();\n    });\n  }\n}\nautocompleteRenderer.RENDERER_TYPE = RENDERER_TYPE;\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/autocompleteRenderer/autocompleteRenderer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/autocompleteRenderer/index.mjs":
/*!****************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/autocompleteRenderer/index.mjs ***!
  \****************************************************************************/
/*! exports provided: RENDERER_TYPE, autocompleteRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _autocompleteRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./autocompleteRenderer.mjs */ \"./node_modules/handsontable/renderers/autocompleteRenderer/autocompleteRenderer.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return _autocompleteRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"RENDERER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"autocompleteRenderer\", function() { return _autocompleteRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"autocompleteRenderer\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/autocompleteRenderer/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/baseRenderer/baseRenderer.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/baseRenderer/baseRenderer.mjs ***!
  \***************************************************************************/
/*! exports provided: RENDERER_TYPE, baseRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return RENDERER_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"baseRenderer\", function() { return baseRenderer; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n/**\n * Adds appropriate CSS class to table cell, based on cellProperties.\n */\n\n\nconst RENDERER_TYPE = 'base';\n\n/**\n * @param {Core} hotInstance The Handsontable instance.\n * @param {HTMLTableCellElement} TD The rendered cell element.\n * @param {number} row The visual row index.\n * @param {number} col The visual column index.\n * @param {number|string} prop The column property (passed when datasource is an array of objects).\n * @param {*} value The rendered value.\n * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n */\nfunction baseRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {\n  const ariaEnabled = cellProperties.ariaTags;\n  const classesToAdd = [];\n  const classesToRemove = [];\n  const attributesToRemove = [];\n  const attributesToAdd = [];\n  if (cellProperties.className) {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(TD, cellProperties.className);\n  }\n  if (cellProperties.readOnly) {\n    classesToAdd.push(cellProperties.readOnlyCellClassName);\n    if (ariaEnabled) {\n      attributesToAdd.push(Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_READONLY\"])());\n    }\n  } else if (ariaEnabled) {\n    attributesToRemove.push(Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_READONLY\"])()[0]);\n  }\n  if (cellProperties.valid === false && cellProperties.invalidCellClassName) {\n    classesToAdd.push(cellProperties.invalidCellClassName);\n    if (ariaEnabled) {\n      attributesToAdd.push(Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_INVALID\"])());\n    }\n  } else {\n    classesToRemove.push(cellProperties.invalidCellClassName);\n    if (ariaEnabled) {\n      attributesToRemove.push(Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_INVALID\"])()[0]);\n    }\n  }\n  if (cellProperties.wordWrap === false && cellProperties.noWordWrapClassName) {\n    classesToAdd.push(cellProperties.noWordWrapClassName);\n  }\n  if (!value && cellProperties.placeholder) {\n    classesToAdd.push(cellProperties.placeholderCellClassName);\n  }\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"removeClass\"])(TD, classesToRemove);\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"addClass\"])(TD, classesToAdd);\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"removeAttribute\"])(TD, attributesToRemove);\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"setAttribute\"])(TD, attributesToAdd);\n}\nbaseRenderer.RENDERER_TYPE = RENDERER_TYPE;\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/baseRenderer/baseRenderer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/baseRenderer/index.mjs":
/*!********************************************************************!*\
  !*** ./node_modules/handsontable/renderers/baseRenderer/index.mjs ***!
  \********************************************************************/
/*! exports provided: RENDERER_TYPE, baseRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./baseRenderer.mjs */ \"./node_modules/handsontable/renderers/baseRenderer/baseRenderer.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return _baseRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"RENDERER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"baseRenderer\", function() { return _baseRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"baseRenderer\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/baseRenderer/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/checkboxRenderer/checkboxRenderer.mjs":
/*!***********************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/checkboxRenderer/checkboxRenderer.mjs ***!
  \***********************************************************************************/
/*! exports provided: RENDERER_TYPE, checkboxRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return RENDERER_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"checkboxRenderer\", function() { return checkboxRenderer; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _baseRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../baseRenderer/index.mjs */ \"./node_modules/handsontable/renderers/baseRenderer/index.mjs\");\n/* harmony import */ var _eventManager_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../eventManager.mjs */ \"./node_modules/handsontable/eventManager.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../shortcutContexts/index.mjs */ \"./node_modules/handsontable/shortcutContexts/index.mjs\");\n/* harmony import */ var _pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../pluginHooks.mjs */ \"./node_modules/handsontable/pluginHooks.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n/* harmony import */ var _i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../i18n/constants.mjs */ \"./node_modules/handsontable/i18n/constants.mjs\");\n\n\n\n\n\n\n\n\n\nconst isListeningKeyDownEvent = new WeakMap();\nconst isCheckboxListenerAdded = new WeakMap();\nconst BAD_VALUE_CLASS = 'htBadValue';\nconst ATTR_ROW = 'data-row';\nconst ATTR_COLUMN = 'data-col';\nconst SHORTCUTS_GROUP = 'checkboxRenderer';\nconst RENDERER_TYPE = 'checkbox';\n_pluginHooks_mjs__WEBPACK_IMPORTED_MODULE_6__[\"default\"].getSingleton().add('modifyAutoColumnSizeSeed', function (bundleSeed, cellMeta, cellValue) {\n  const {\n    label,\n    type,\n    row,\n    column,\n    prop\n  } = cellMeta;\n  if (type !== RENDERER_TYPE) {\n    return;\n  }\n  if (label) {\n    const {\n      value: labelValue,\n      property: labelProperty\n    } = label;\n    let labelText = cellValue;\n    if (labelValue) {\n      labelText = typeof labelValue === 'function' ? labelValue(row, column, prop, cellValue) : labelValue;\n    } else if (labelProperty) {\n      const labelData = this.getDataAtRowProp(row, labelProperty);\n      labelText = labelData !== null ? labelData : cellValue;\n    }\n    bundleSeed = labelText;\n  }\n  return bundleSeed;\n});\n/**\n * Checkbox renderer.\n *\n * @private\n * @param {Core} hotInstance The Handsontable instance.\n * @param {HTMLTableCellElement} TD The rendered cell element.\n * @param {number} row The visual row index.\n * @param {number} col The visual column index.\n * @param {number|string} prop The column property (passed when datasource is an array of objects).\n * @param {*} value The rendered value.\n * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n */\nfunction checkboxRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {\n  const {\n    rootDocument\n  } = hotInstance;\n  const ariaEnabled = hotInstance.getSettings().ariaTags;\n  _baseRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"baseRenderer\"].apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);\n  registerEvents(hotInstance);\n  let input = createInput(rootDocument);\n  const labelOptions = cellProperties.label;\n  let badValue = false;\n  if (typeof cellProperties.checkedTemplate === 'undefined') {\n    cellProperties.checkedTemplate = true;\n  }\n  if (typeof cellProperties.uncheckedTemplate === 'undefined') {\n    cellProperties.uncheckedTemplate = false;\n  }\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"empty\"])(TD); // TODO identify under what circumstances this line can be removed\n\n  if (value === cellProperties.checkedTemplate || Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_4__[\"stringify\"])(value).toLocaleLowerCase(cellProperties.locale) === Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_4__[\"stringify\"])(cellProperties.checkedTemplate).toLocaleLowerCase(cellProperties.locale)) {\n    input.checked = true;\n  } else if (value === cellProperties.uncheckedTemplate || Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_4__[\"stringify\"])(value).toLocaleLowerCase(cellProperties.locale) === Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_4__[\"stringify\"])(cellProperties.uncheckedTemplate).toLocaleLowerCase(cellProperties.locale)) {\n    input.checked = false;\n  } else if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isEmpty\"])(value)) {\n    // default value\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"addClass\"])(input, 'noValue');\n  } else {\n    input.style.display = 'none';\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"addClass\"])(input, BAD_VALUE_CLASS);\n    badValue = true;\n  }\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"setAttribute\"])(input, [[ATTR_ROW, row], [ATTR_COLUMN, col]]);\n  if (ariaEnabled) {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_3__[\"setAttribute\"])(input, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_7__[\"A11Y_LABEL\"])(input.checked ? hotInstance.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_8__[\"CHECKBOX_CHECKED\"]) : hotInstance.getTranslatedPhrase(_i18n_constants_mjs__WEBPACK_IMPORTED_MODULE_8__[\"CHECKBOX_UNCHECKED\"])), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_7__[\"A11Y_CHECKED\"])(input.checked), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_7__[\"A11Y_CHECKBOX\"])()]);\n  }\n  if (!badValue && labelOptions) {\n    let labelText = '';\n    if (labelOptions.value) {\n      labelText = typeof labelOptions.value === 'function' ? labelOptions.value.call(this, row, col, prop, value) : labelOptions.value;\n    } else if (labelOptions.property) {\n      const labelValue = hotInstance.getDataAtRowProp(row, labelOptions.property);\n      labelText = labelValue !== null ? labelValue : '';\n    }\n    const label = createLabel(rootDocument, labelText, labelOptions.separated !== true);\n    if (labelOptions.position === 'before') {\n      if (labelOptions.separated) {\n        TD.appendChild(label);\n        TD.appendChild(input);\n      } else {\n        label.appendChild(input);\n        input = label;\n      }\n    } else if (!labelOptions.position || labelOptions.position === 'after') {\n      if (labelOptions.separated) {\n        TD.appendChild(input);\n        TD.appendChild(label);\n      } else {\n        label.insertBefore(input, label.firstChild);\n        input = label;\n      }\n    }\n  }\n  if (!labelOptions || labelOptions && !labelOptions.separated) {\n    TD.appendChild(input);\n  }\n  if (badValue) {\n    TD.appendChild(rootDocument.createTextNode('#bad-value#'));\n  }\n  if (!isListeningKeyDownEvent.has(hotInstance)) {\n    isListeningKeyDownEvent.set(hotInstance, true);\n    registerShortcuts();\n  }\n\n  /**\n   * Register shortcuts responsible for toggling checkbox state.\n   *\n   * @private\n   */\n  function registerShortcuts() {\n    const shortcutManager = hotInstance.getShortcutManager();\n    const gridContext = shortcutManager.getContext('grid');\n    const config = {\n      group: SHORTCUTS_GROUP,\n      relativeToGroup: _shortcutContexts_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"EDITOR_EDIT_GROUP\"],\n      position: 'before'\n    };\n    gridContext.addShortcuts([{\n      keys: [['space']],\n      callback: () => {\n        changeSelectedCheckboxesState();\n        return !areSelectedCheckboxCells(); // False blocks next action associated with the keyboard shortcut.\n      },\n      runOnlyIf: () => {\n        var _hotInstance$getSelec;\n        return (_hotInstance$getSelec = hotInstance.getSelectedRangeLast()) === null || _hotInstance$getSelec === void 0 ? void 0 : _hotInstance$getSelec.highlight.isCell();\n      }\n    }, {\n      keys: [['enter']],\n      callback: () => {\n        changeSelectedCheckboxesState();\n        return !areSelectedCheckboxCells(); // False blocks next action associated with the keyboard shortcut.\n      },\n      runOnlyIf: () => {\n        const range = hotInstance.getSelectedRangeLast();\n        return hotInstance.getSettings().enterBeginsEditing && (range === null || range === void 0 ? void 0 : range.isSingle()) && range.highlight.isCell();\n      }\n    }, {\n      keys: [['delete'], ['backspace']],\n      callback: () => {\n        changeSelectedCheckboxesState(true);\n        return !areSelectedCheckboxCells(); // False blocks next action associated with the keyboard shortcut.\n      },\n      runOnlyIf: () => {\n        var _hotInstance$getSelec2;\n        return (_hotInstance$getSelec2 = hotInstance.getSelectedRangeLast()) === null || _hotInstance$getSelec2 === void 0 ? void 0 : _hotInstance$getSelec2.highlight.isCell();\n      }\n    }], config);\n  }\n\n  /**\n   * Change checkbox checked property.\n   *\n   * @private\n   * @param {boolean} [uncheckCheckbox=false] The new \"checked\" state for the checkbox elements.\n   */\n  function changeSelectedCheckboxesState() {\n    let uncheckCheckbox = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    const selRange = hotInstance.getSelectedRange();\n    const changesPerSubSelection = [];\n    let changes = [];\n    let changeCounter = 0;\n    if (!selRange) {\n      return;\n    }\n    for (let key = 0; key < selRange.length; key++) {\n      const {\n        row: startRow,\n        col: startColumn\n      } = selRange[key].getTopStartCorner();\n      const {\n        row: endRow,\n        col: endColumn\n      } = selRange[key].getBottomEndCorner();\n      for (let visualRow = startRow; visualRow <= endRow; visualRow += 1) {\n        for (let visualColumn = startColumn; visualColumn <= endColumn; visualColumn += 1) {\n          const cachedCellProperties = hotInstance.getCellMeta(visualRow, visualColumn);\n          const templates = {\n            checkedTemplate: cachedCellProperties.checkedTemplate,\n            uncheckedTemplate: cachedCellProperties.uncheckedTemplate\n          };\n          if (cachedCellProperties.type !== 'checkbox') {\n            return;\n          }\n\n          /* eslint-disable no-continue */\n          if (cachedCellProperties.readOnly === true) {\n            continue;\n          }\n          if (typeof cachedCellProperties.checkedTemplate === 'undefined') {\n            cachedCellProperties.checkedTemplate = true;\n          }\n          if (typeof cachedCellProperties.uncheckedTemplate === 'undefined') {\n            cachedCellProperties.uncheckedTemplate = false;\n          }\n          const dataAtCell = hotInstance.getDataAtCell(visualRow, visualColumn);\n          if (uncheckCheckbox === false) {\n            if ([cachedCellProperties.checkedTemplate, cachedCellProperties.checkedTemplate.toString()].includes(dataAtCell)) {\n              // eslint-disable-line max-len\n              changes.push([visualRow, visualColumn, cachedCellProperties.uncheckedTemplate, templates]);\n            } else if ([cachedCellProperties.uncheckedTemplate, cachedCellProperties.uncheckedTemplate.toString(), null, undefined].includes(dataAtCell)) {\n              // eslint-disable-line max-len\n              changes.push([visualRow, visualColumn, cachedCellProperties.checkedTemplate, templates]);\n            }\n          } else {\n            changes.push([visualRow, visualColumn, cachedCellProperties.uncheckedTemplate, templates]);\n          }\n          changeCounter += 1;\n        }\n      }\n      changesPerSubSelection.push(changeCounter);\n      changeCounter = 0;\n    }\n    if (!changes.every(_ref => {\n      let [,, cellValue] = _ref;\n      return cellValue === changes[0][2];\n    })) {\n      changes = changes.map(_ref2 => {\n        let [visualRow, visualColumn,, templates] = _ref2;\n        return [visualRow, visualColumn, templates.checkedTemplate];\n      });\n    } else {\n      changes = changes.map(_ref3 => {\n        let [visualRow, visualColumn, cellValue] = _ref3;\n        return [visualRow, visualColumn, cellValue];\n      });\n    }\n    if (changes.length > 0) {\n      // TODO: This is workaround for handsontable/dev-handsontable#1747 not being a breaking change.\n      // Technically, the changes don't need to be split into chunks when sent to `setDataAtCell`.\n      changesPerSubSelection.forEach(changesCount => {\n        const changesChunk = changes.splice(0, changesCount);\n        hotInstance.setDataAtCell(changesChunk);\n      });\n    }\n  }\n\n  /**\n   * Check whether all selected cells are with checkbox type.\n   *\n   * @returns {boolean}\n   * @private\n   */\n  function areSelectedCheckboxCells() {\n    const selRange = hotInstance.getSelectedRange();\n    if (!selRange) {\n      return;\n    }\n    for (let key = 0; key < selRange.length; key++) {\n      const topLeft = selRange[key].getTopStartCorner();\n      const bottomRight = selRange[key].getBottomEndCorner();\n      for (let visualRow = topLeft.row; visualRow <= bottomRight.row; visualRow++) {\n        for (let visualColumn = topLeft.col; visualColumn <= bottomRight.col; visualColumn++) {\n          const cachedCellProperties = hotInstance.getCellMeta(visualRow, visualColumn);\n          if (cachedCellProperties.type !== 'checkbox') {\n            return false;\n          }\n          const cell = hotInstance.getCell(visualRow, visualColumn);\n          if (cell === null || cell === undefined) {\n            return true;\n          } else {\n            const checkboxes = cell.querySelectorAll('input[type=checkbox]');\n            if (checkboxes.length > 0 && !cachedCellProperties.readOnly) {\n              return true;\n            }\n          }\n        }\n      }\n    }\n    return false;\n  }\n}\ncheckboxRenderer.RENDERER_TYPE = RENDERER_TYPE;\n\n/**\n * Register checkbox listeners.\n *\n * @param {Core} instance The Handsontable instance.\n * @returns {EventManager}\n */\nfunction registerEvents(instance) {\n  let eventManager = isCheckboxListenerAdded.get(instance);\n  if (!eventManager) {\n    const {\n      rootElement\n    } = instance;\n    eventManager = new _eventManager_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"](instance);\n    eventManager.addEventListener(rootElement, 'click', event => onClick(event, instance));\n    eventManager.addEventListener(rootElement, 'mouseup', event => onMouseUp(event, instance));\n    eventManager.addEventListener(rootElement, 'change', event => onChange(event, instance));\n    isCheckboxListenerAdded.set(instance, eventManager);\n  }\n  return eventManager;\n}\n\n/**\n * Create input element.\n *\n * @param {Document} rootDocument The document owner.\n * @returns {Node}\n */\nfunction createInput(rootDocument) {\n  const input = rootDocument.createElement('input');\n  input.className = 'htCheckboxRendererInput';\n  input.type = 'checkbox';\n  input.setAttribute('tabindex', '-1');\n  return input.cloneNode(false);\n}\n\n/**\n * Create label element.\n *\n * @param {Document} rootDocument The document owner.\n * @param {string} text The label text.\n * @param {boolean} fullWidth Determines whether label should have full width.\n * @returns {Node}\n */\nfunction createLabel(rootDocument, text, fullWidth) {\n  const label = rootDocument.createElement('label');\n  label.className = `htCheckboxRendererLabel ${fullWidth ? 'fullWidth' : ''}`;\n  label.appendChild(rootDocument.createTextNode(text));\n  return label.cloneNode(true);\n}\n\n/**\n * `mouseup` callback.\n *\n * @private\n * @param {Event} event `mouseup` event.\n * @param {Core} instance The Handsontable instance.\n */\nfunction onMouseUp(event, instance) {\n  const {\n    target\n  } = event;\n  if (!isCheckboxInput(target)) {\n    return;\n  }\n  if (!target.hasAttribute(ATTR_ROW) || !target.hasAttribute(ATTR_COLUMN)) {\n    return;\n  }\n  setTimeout(instance.listen, 10);\n}\n\n/**\n * `click` callback.\n *\n * @private\n * @param {MouseEvent} event `click` event.\n * @param {Core} instance The Handsontable instance.\n */\nfunction onClick(event, instance) {\n  const {\n    target\n  } = event;\n  if (!isCheckboxInput(target)) {\n    return;\n  }\n  if (!target.hasAttribute(ATTR_ROW) || !target.hasAttribute(ATTR_COLUMN)) {\n    return;\n  }\n  const row = parseInt(target.getAttribute(ATTR_ROW), 10);\n  const col = parseInt(target.getAttribute(ATTR_COLUMN), 10);\n  const cellProperties = instance.getCellMeta(row, col);\n  if (cellProperties.readOnly) {\n    event.preventDefault();\n  }\n}\n\n/**\n * `change` callback.\n *\n * @param {Event} event `change` event.\n * @param {Core} instance The Handsontable instance.\n */\nfunction onChange(event, instance) {\n  const {\n    target\n  } = event;\n  if (!isCheckboxInput(target)) {\n    return;\n  }\n  if (!target.hasAttribute(ATTR_ROW) || !target.hasAttribute(ATTR_COLUMN)) {\n    return;\n  }\n  const row = parseInt(target.getAttribute(ATTR_ROW), 10);\n  const col = parseInt(target.getAttribute(ATTR_COLUMN), 10);\n  const cellProperties = instance.getCellMeta(row, col);\n  if (!cellProperties.readOnly) {\n    let newCheckboxValue = null;\n    if (event.target.checked) {\n      newCheckboxValue = cellProperties.uncheckedTemplate === undefined ? true : cellProperties.checkedTemplate;\n    } else {\n      newCheckboxValue = cellProperties.uncheckedTemplate === undefined ? false : cellProperties.uncheckedTemplate;\n    }\n    instance.setDataAtCell(row, col, newCheckboxValue);\n  }\n}\n\n/**\n * Check if the provided element is the checkbox input.\n *\n * @private\n * @param {HTMLElement} element The element in question.\n * @returns {boolean}\n */\nfunction isCheckboxInput(element) {\n  return element.tagName === 'INPUT' && element.getAttribute('type') === 'checkbox';\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/checkboxRenderer/checkboxRenderer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/checkboxRenderer/index.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/checkboxRenderer/index.mjs ***!
  \************************************************************************/
/*! exports provided: RENDERER_TYPE, checkboxRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _checkboxRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./checkboxRenderer.mjs */ \"./node_modules/handsontable/renderers/checkboxRenderer/checkboxRenderer.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return _checkboxRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"RENDERER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"checkboxRenderer\", function() { return _checkboxRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"checkboxRenderer\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/checkboxRenderer/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/dateRenderer/dateRenderer.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/dateRenderer/dateRenderer.mjs ***!
  \***************************************************************************/
/*! exports provided: RENDERER_TYPE, dateRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return RENDERER_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dateRenderer\", function() { return dateRenderer; });\n/* harmony import */ var _autocompleteRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../autocompleteRenderer/index.mjs */ \"./node_modules/handsontable/renderers/autocompleteRenderer/index.mjs\");\n\nconst RENDERER_TYPE = 'date';\n\n/**\n * Handsontable renderer.\n *\n * @private\n * @param {Core} hotInstance The Handsontable instance.\n * @param {HTMLTableCellElement} TD The rendered cell element.\n * @param {number} row The visual row index.\n * @param {number} col The visual column index.\n * @param {number|string} prop The column property (passed when datasource is an array of objects).\n * @param {*} value The rendered value.\n * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n */\nfunction dateRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {\n  _autocompleteRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"autocompleteRenderer\"].apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);\n}\ndateRenderer.RENDERER_TYPE = RENDERER_TYPE;\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/dateRenderer/dateRenderer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/dateRenderer/index.mjs":
/*!********************************************************************!*\
  !*** ./node_modules/handsontable/renderers/dateRenderer/index.mjs ***!
  \********************************************************************/
/*! exports provided: RENDERER_TYPE, dateRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dateRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dateRenderer.mjs */ \"./node_modules/handsontable/renderers/dateRenderer/dateRenderer.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return _dateRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"RENDERER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dateRenderer\", function() { return _dateRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"dateRenderer\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/dateRenderer/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/dropdownRenderer/dropdownRenderer.mjs":
/*!***********************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/dropdownRenderer/dropdownRenderer.mjs ***!
  \***********************************************************************************/
/*! exports provided: RENDERER_TYPE, dropdownRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return RENDERER_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dropdownRenderer\", function() { return dropdownRenderer; });\n/* harmony import */ var _autocompleteRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../autocompleteRenderer/index.mjs */ \"./node_modules/handsontable/renderers/autocompleteRenderer/index.mjs\");\n\nconst RENDERER_TYPE = 'dropdown';\n\n/**\n * Dropdown renderer.\n *\n * @private\n * @param {Core} hotInstance The Handsontable instance.\n * @param {HTMLTableCellElement} TD The rendered cell element.\n * @param {number} row The visual row index.\n * @param {number} col The visual column index.\n * @param {number|string} prop The column property (passed when datasource is an array of objects).\n * @param {*} value The rendered value.\n * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n */\nfunction dropdownRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {\n  _autocompleteRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"autocompleteRenderer\"].apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);\n}\ndropdownRenderer.RENDERER_TYPE = RENDERER_TYPE;\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/dropdownRenderer/dropdownRenderer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/dropdownRenderer/index.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/dropdownRenderer/index.mjs ***!
  \************************************************************************/
/*! exports provided: RENDERER_TYPE, dropdownRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dropdownRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dropdownRenderer.mjs */ \"./node_modules/handsontable/renderers/dropdownRenderer/dropdownRenderer.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return _dropdownRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"RENDERER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropdownRenderer\", function() { return _dropdownRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"dropdownRenderer\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/dropdownRenderer/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/handsontableRenderer/handsontableRenderer.mjs":
/*!*******************************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/handsontableRenderer/handsontableRenderer.mjs ***!
  \*******************************************************************************************/
/*! exports provided: RENDERER_TYPE, handsontableRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return RENDERER_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"handsontableRenderer\", function() { return handsontableRenderer; });\n/* harmony import */ var _autocompleteRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../autocompleteRenderer/index.mjs */ \"./node_modules/handsontable/renderers/autocompleteRenderer/index.mjs\");\n\nconst RENDERER_TYPE = 'handsontable';\n\n/**\n * Handsontable renderer.\n *\n * @private\n * @param {Core} hotInstance The Handsontable instance.\n * @param {HTMLTableCellElement} TD The rendered cell element.\n * @param {number} row The visual row index.\n * @param {number} col The visual column index.\n * @param {number|string} prop The column property (passed when datasource is an array of objects).\n * @param {*} value The rendered value.\n * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n */\nfunction handsontableRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {\n  _autocompleteRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"autocompleteRenderer\"].apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);\n}\nhandsontableRenderer.RENDERER_TYPE = RENDERER_TYPE;\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/handsontableRenderer/handsontableRenderer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/handsontableRenderer/index.mjs":
/*!****************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/handsontableRenderer/index.mjs ***!
  \****************************************************************************/
/*! exports provided: RENDERER_TYPE, handsontableRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _handsontableRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./handsontableRenderer.mjs */ \"./node_modules/handsontable/renderers/handsontableRenderer/handsontableRenderer.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return _handsontableRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"RENDERER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"handsontableRenderer\", function() { return _handsontableRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"handsontableRenderer\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/handsontableRenderer/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/htmlRenderer/htmlRenderer.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/htmlRenderer/htmlRenderer.mjs ***!
  \***************************************************************************/
/*! exports provided: RENDERER_TYPE, htmlRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return RENDERER_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"htmlRenderer\", function() { return htmlRenderer; });\n/* harmony import */ var _baseRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../baseRenderer/index.mjs */ \"./node_modules/handsontable/renderers/baseRenderer/index.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n\n\nconst RENDERER_TYPE = 'html';\n\n/**\n * @private\n * @param {Core} hotInstance The Handsontable instance.\n * @param {HTMLTableCellElement} TD The rendered cell element.\n * @param {number} row The visual row index.\n * @param {number} col The visual column index.\n * @param {number|string} prop The column property (passed when datasource is an array of objects).\n * @param {*} value The rendered value.\n * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n */\nfunction htmlRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {\n  _baseRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"baseRenderer\"].apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"fastInnerHTML\"])(TD, value === null || value === undefined ? '' : value, false);\n}\nhtmlRenderer.RENDERER_TYPE = RENDERER_TYPE;\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/htmlRenderer/htmlRenderer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/htmlRenderer/index.mjs":
/*!********************************************************************!*\
  !*** ./node_modules/handsontable/renderers/htmlRenderer/index.mjs ***!
  \********************************************************************/
/*! exports provided: RENDERER_TYPE, htmlRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _htmlRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./htmlRenderer.mjs */ \"./node_modules/handsontable/renderers/htmlRenderer/htmlRenderer.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return _htmlRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"RENDERER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"htmlRenderer\", function() { return _htmlRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"htmlRenderer\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/htmlRenderer/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/index.mjs":
/*!*******************************************************!*\
  !*** ./node_modules/handsontable/renderers/index.mjs ***!
  \*******************************************************/
/*! exports provided: registerAllRenderers, autocompleteRenderer, AUTOCOMPLETE_RENDERER, baseRenderer, BASE_RENDERER, dropdownRenderer, DROPDOWN_RENDERER, checkboxRenderer, CHECKBOX_RENDERER, handsontableRenderer, HANDSONTABLE_RENDERER, htmlRenderer, HTML_RENDERER, numericRenderer, NUMERIC_RENDERER, passwordRenderer, PASSWORD_RENDERER, selectRenderer, SELECT_RENDERER, textRenderer, TEXT_RENDERER, timeRenderer, TIME_RENDERER, getRegisteredRendererNames, getRegisteredRenderers, getRenderer, hasRenderer, registerRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerAllRenderers\", function() { return registerAllRenderers; });\n/* harmony import */ var _autocompleteRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./autocompleteRenderer/index.mjs */ \"./node_modules/handsontable/renderers/autocompleteRenderer/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"autocompleteRenderer\", function() { return _autocompleteRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"autocompleteRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AUTOCOMPLETE_RENDERER\", function() { return _autocompleteRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"RENDERER_TYPE\"]; });\n\n/* harmony import */ var _baseRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./baseRenderer/index.mjs */ \"./node_modules/handsontable/renderers/baseRenderer/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"baseRenderer\", function() { return _baseRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"baseRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BASE_RENDERER\", function() { return _baseRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"RENDERER_TYPE\"]; });\n\n/* harmony import */ var _dropdownRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dropdownRenderer/index.mjs */ \"./node_modules/handsontable/renderers/dropdownRenderer/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropdownRenderer\", function() { return _dropdownRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"dropdownRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DROPDOWN_RENDERER\", function() { return _dropdownRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"RENDERER_TYPE\"]; });\n\n/* harmony import */ var _checkboxRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./checkboxRenderer/index.mjs */ \"./node_modules/handsontable/renderers/checkboxRenderer/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"checkboxRenderer\", function() { return _checkboxRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"checkboxRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CHECKBOX_RENDERER\", function() { return _checkboxRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"RENDERER_TYPE\"]; });\n\n/* harmony import */ var _handsontableRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./handsontableRenderer/index.mjs */ \"./node_modules/handsontable/renderers/handsontableRenderer/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"handsontableRenderer\", function() { return _handsontableRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"handsontableRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HANDSONTABLE_RENDERER\", function() { return _handsontableRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"RENDERER_TYPE\"]; });\n\n/* harmony import */ var _htmlRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./htmlRenderer/index.mjs */ \"./node_modules/handsontable/renderers/htmlRenderer/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"htmlRenderer\", function() { return _htmlRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"htmlRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HTML_RENDERER\", function() { return _htmlRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"RENDERER_TYPE\"]; });\n\n/* harmony import */ var _numericRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./numericRenderer/index.mjs */ \"./node_modules/handsontable/renderers/numericRenderer/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"numericRenderer\", function() { return _numericRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"numericRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NUMERIC_RENDERER\", function() { return _numericRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"RENDERER_TYPE\"]; });\n\n/* harmony import */ var _passwordRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./passwordRenderer/index.mjs */ \"./node_modules/handsontable/renderers/passwordRenderer/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"passwordRenderer\", function() { return _passwordRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"passwordRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PASSWORD_RENDERER\", function() { return _passwordRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"RENDERER_TYPE\"]; });\n\n/* harmony import */ var _selectRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./selectRenderer/index.mjs */ \"./node_modules/handsontable/renderers/selectRenderer/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"selectRenderer\", function() { return _selectRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"selectRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SELECT_RENDERER\", function() { return _selectRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"RENDERER_TYPE\"]; });\n\n/* harmony import */ var _textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./textRenderer/index.mjs */ \"./node_modules/handsontable/renderers/textRenderer/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"textRenderer\", function() { return _textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"textRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TEXT_RENDERER\", function() { return _textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"RENDERER_TYPE\"]; });\n\n/* harmony import */ var _timeRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./timeRenderer/index.mjs */ \"./node_modules/handsontable/renderers/timeRenderer/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeRenderer\", function() { return _timeRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"timeRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TIME_RENDERER\", function() { return _timeRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"RENDERER_TYPE\"]; });\n\n/* harmony import */ var _registry_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./registry.mjs */ \"./node_modules/handsontable/renderers/registry.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredRendererNames\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"getRegisteredRendererNames\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredRenderers\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"getRegisteredRenderers\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRenderer\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"getRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasRenderer\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"hasRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"registerRenderer\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerRenderer\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Registers all available renderers.\n */\nfunction registerAllRenderers() {\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerRenderer\"])(_autocompleteRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"autocompleteRenderer\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerRenderer\"])(_baseRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"baseRenderer\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerRenderer\"])(_checkboxRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"checkboxRenderer\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerRenderer\"])(_dropdownRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"dropdownRenderer\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerRenderer\"])(_handsontableRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"handsontableRenderer\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerRenderer\"])(_htmlRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"htmlRenderer\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerRenderer\"])(_numericRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_6__[\"numericRenderer\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerRenderer\"])(_passwordRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_7__[\"passwordRenderer\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerRenderer\"])(_selectRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_8__[\"selectRenderer\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerRenderer\"])(_textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"textRenderer\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_11__[\"registerRenderer\"])(_timeRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"timeRenderer\"]);\n}\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/numericRenderer/index.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/renderers/numericRenderer/index.mjs ***!
  \***********************************************************************/
/*! exports provided: RENDERER_TYPE, numericRenderer, getRenderedValue */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _numericRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numericRenderer.mjs */ \"./node_modules/handsontable/renderers/numericRenderer/numericRenderer.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return _numericRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"RENDERER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"numericRenderer\", function() { return _numericRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"numericRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRenderedValue\", function() { return _numericRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getRenderedValue\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/numericRenderer/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/numericRenderer/numericRenderer.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/numericRenderer/numericRenderer.mjs ***!
  \*********************************************************************************/
/*! exports provided: RENDERER_TYPE, getRenderedValue, numericRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return RENDERER_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRenderedValue\", function() { return getRenderedValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"numericRenderer\", function() { return numericRenderer; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var numbro__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! numbro */ \"./node_modules/numbro/dist/numbro.min.js\");\n/* harmony import */ var _textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../textRenderer/index.mjs */ \"./node_modules/handsontable/renderers/textRenderer/index.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n\n\n\n\nconst RENDERER_TYPE = 'numeric';\n\n/**\n * Get the rendered value.\n *\n * @param {*} value Value to be rendered.\n * @param {CellMeta} cellProperties Cell meta object.\n * @returns {*} Returns the rendered value.\n */\nfunction getRenderedValue(value, cellProperties) {\n  if (Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isNumeric\"])(value)) {\n    const numericFormat = cellProperties.numericFormat;\n    const cellCulture = numericFormat && numericFormat.culture || '-';\n    const cellFormatPattern = numericFormat && numericFormat.pattern;\n    if (typeof cellCulture !== 'undefined' && !numbro__WEBPACK_IMPORTED_MODULE_1__.languages()[cellCulture]) {\n      const shortTag = cellCulture.replace('-', '');\n      const langData = numbro__WEBPACK_IMPORTED_MODULE_1__.allLanguages ? numbro__WEBPACK_IMPORTED_MODULE_1__.allLanguages[cellCulture] : numbro__WEBPACK_IMPORTED_MODULE_1__[shortTag];\n      if (langData) {\n        numbro__WEBPACK_IMPORTED_MODULE_1__.registerLanguage(langData);\n      }\n    }\n    numbro__WEBPACK_IMPORTED_MODULE_1__.setLanguage(cellCulture);\n    value = numbro__WEBPACK_IMPORTED_MODULE_1__(value).format(cellFormatPattern || '0');\n  }\n  return value;\n}\n\n/**\n * Numeric cell renderer.\n *\n * @private\n * @param {Core} hotInstance The Handsontable instance.\n * @param {HTMLTableCellElement} TD The rendered cell element.\n * @param {number} row The visual row index.\n * @param {number} col The visual column index.\n * @param {number|string} prop The column property (passed when datasource is an array of objects).\n * @param {*} value The rendered value.\n * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n */\nfunction numericRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {\n  let newValue = value;\n  if (Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isNumeric\"])(newValue)) {\n    const className = cellProperties.className || '';\n    const classArr = className.length ? className.split(' ') : [];\n    newValue = getRenderedValue(newValue, cellProperties);\n    if (classArr.indexOf('htLeft') < 0 && classArr.indexOf('htCenter') < 0 && classArr.indexOf('htRight') < 0 && classArr.indexOf('htJustify') < 0) {\n      classArr.push('htRight');\n    }\n    if (classArr.indexOf('htNumeric') < 0) {\n      classArr.push('htNumeric');\n    }\n    cellProperties.className = classArr.join(' ');\n    TD.dir = 'ltr';\n  }\n  Object(_textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"textRenderer\"])(hotInstance, TD, row, col, prop, newValue, cellProperties);\n}\nnumericRenderer.RENDERER_TYPE = RENDERER_TYPE;\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/numericRenderer/numericRenderer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/passwordRenderer/index.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/passwordRenderer/index.mjs ***!
  \************************************************************************/
/*! exports provided: RENDERER_TYPE, passwordRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _passwordRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./passwordRenderer.mjs */ \"./node_modules/handsontable/renderers/passwordRenderer/passwordRenderer.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return _passwordRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"RENDERER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"passwordRenderer\", function() { return _passwordRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"passwordRenderer\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/passwordRenderer/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/passwordRenderer/passwordRenderer.mjs":
/*!***********************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/passwordRenderer/passwordRenderer.mjs ***!
  \***********************************************************************************/
/*! exports provided: RENDERER_TYPE, passwordRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return RENDERER_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"passwordRenderer\", function() { return passwordRenderer; });\n/* harmony import */ var _textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../textRenderer/index.mjs */ \"./node_modules/handsontable/renderers/textRenderer/index.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n\n\n\nconst RENDERER_TYPE = 'password';\n\n/**\n * @private\n * @param {Core} hotInstance The Handsontable instance.\n * @param {HTMLTableCellElement} TD The rendered cell element.\n * @param {number} row The visual row index.\n * @param {number} col The visual column index.\n * @param {number|string} prop The column property (passed when datasource is an array of objects).\n * @param {*} value The rendered value.\n * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n */\nfunction passwordRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {\n  _textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"textRenderer\"].apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);\n  const hashLength = cellProperties.hashLength || TD.innerHTML.length;\n  const hashSymbol = cellProperties.hashSymbol || '*';\n  let hash = '';\n  Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_2__[\"rangeEach\"])(hashLength - 1, () => {\n    hash += hashSymbol;\n  });\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"fastInnerHTML\"])(TD, hash);\n}\npasswordRenderer.RENDERER_TYPE = RENDERER_TYPE;\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/passwordRenderer/passwordRenderer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/registry.mjs":
/*!**********************************************************!*\
  !*** ./node_modules/handsontable/renderers/registry.mjs ***!
  \**********************************************************/
/*! exports provided: registerRenderer, getRenderer, hasRenderer, getRegisteredRendererNames, getRegisteredRenderers */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerRenderer\", function() { return _register; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRenderer\", function() { return _getItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasRenderer\", function() { return hasItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredRendererNames\", function() { return getNames; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredRenderers\", function() { return getValues; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/staticRegister.mjs */ \"./node_modules/handsontable/utils/staticRegister.mjs\");\n\n\nconst {\n  register,\n  getItem,\n  hasItem,\n  getNames,\n  getValues\n} = Object(_utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('renderers');\n\n/**\n * Retrieve renderer function.\n *\n * @param {string} name Renderer identification.\n * @returns {Function} Returns renderer function.\n */\nfunction _getItem(name) {\n  if (typeof name === 'function') {\n    return name;\n  }\n  if (!hasItem(name)) {\n    throw Error(`No registered renderer found under \"${name}\" name`);\n  }\n  return getItem(name);\n}\n\n/**\n * Register renderer under its alias.\n *\n * @param {string|Function} name Renderer's alias or renderer function with its descriptor.\n * @param {Function} [renderer] Renderer function.\n */\nfunction _register(name, renderer) {\n  if (typeof name !== 'string') {\n    renderer = name;\n    name = renderer.RENDERER_TYPE;\n  }\n  register(name, renderer);\n}\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/registry.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/selectRenderer/index.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/renderers/selectRenderer/index.mjs ***!
  \**********************************************************************/
/*! exports provided: RENDERER_TYPE, selectRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _selectRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selectRenderer.mjs */ \"./node_modules/handsontable/renderers/selectRenderer/selectRenderer.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return _selectRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"RENDERER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"selectRenderer\", function() { return _selectRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"selectRenderer\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/selectRenderer/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/selectRenderer/selectRenderer.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/selectRenderer/selectRenderer.mjs ***!
  \*******************************************************************************/
/*! exports provided: RENDERER_TYPE, selectRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return RENDERER_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"selectRenderer\", function() { return selectRenderer; });\n/* harmony import */ var _textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../textRenderer/index.mjs */ \"./node_modules/handsontable/renderers/textRenderer/index.mjs\");\n\nconst RENDERER_TYPE = 'select';\n\n/**\n * @private\n * @param {Core} hotInstance The Handsontable instance.\n * @param {HTMLTableCellElement} TD The rendered cell element.\n * @param {number} row The visual row index.\n * @param {number} col The visual column index.\n * @param {number|string} prop The column property (passed when datasource is an array of objects).\n * @param {*} value The rendered value.\n * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n */\nfunction selectRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {\n  _textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"textRenderer\"].apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);\n}\nselectRenderer.RENDERER_TYPE = RENDERER_TYPE;\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/selectRenderer/selectRenderer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/textRenderer/index.mjs":
/*!********************************************************************!*\
  !*** ./node_modules/handsontable/renderers/textRenderer/index.mjs ***!
  \********************************************************************/
/*! exports provided: RENDERER_TYPE, textRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _textRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./textRenderer.mjs */ \"./node_modules/handsontable/renderers/textRenderer/textRenderer.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return _textRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"RENDERER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"textRenderer\", function() { return _textRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"textRenderer\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/textRenderer/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/textRenderer/textRenderer.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/textRenderer/textRenderer.mjs ***!
  \***************************************************************************/
/*! exports provided: RENDERER_TYPE, textRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return RENDERER_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"textRenderer\", function() { return textRenderer; });\n/* harmony import */ var _baseRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../baseRenderer/index.mjs */ \"./node_modules/handsontable/renderers/baseRenderer/index.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n\n\n\nconst RENDERER_TYPE = 'text';\n\n/**\n * Default text renderer.\n *\n * @private\n * @param {Core} hotInstance The Handsontable instance.\n * @param {HTMLTableCellElement} TD The rendered cell element.\n * @param {number} row The visual row index.\n * @param {number} col The visual column index.\n * @param {number|string} prop The column property (passed when datasource is an array of objects).\n * @param {*} value The rendered value.\n * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n */\nfunction textRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {\n  _baseRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"baseRenderer\"].apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);\n  let escaped = value;\n  if (!escaped && cellProperties.placeholder) {\n    escaped = cellProperties.placeholder;\n  }\n  escaped = Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__[\"stringify\"])(escaped);\n  if (cellProperties.trimWhitespace) {\n    escaped = escaped.trim();\n  }\n  if (cellProperties.rendererTemplate) {\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"empty\"])(TD);\n    const TEMPLATE = hotInstance.rootDocument.createElement('TEMPLATE');\n    TEMPLATE.setAttribute('bind', '{{}}');\n    TEMPLATE.innerHTML = cellProperties.rendererTemplate;\n    HTMLTemplateElement.decorate(TEMPLATE);\n    TEMPLATE.model = hotInstance.getSourceDataAtRow(row);\n    TD.appendChild(TEMPLATE);\n  } else {\n    // this is faster than innerHTML. See: https://github.com/handsontable/handsontable/wiki/JavaScript-&-DOM-performance-tips\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_1__[\"fastInnerText\"])(TD, escaped);\n  }\n}\ntextRenderer.RENDERER_TYPE = RENDERER_TYPE;\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/textRenderer/textRenderer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/timeRenderer/index.mjs":
/*!********************************************************************!*\
  !*** ./node_modules/handsontable/renderers/timeRenderer/index.mjs ***!
  \********************************************************************/
/*! exports provided: RENDERER_TYPE, timeRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _timeRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timeRenderer.mjs */ \"./node_modules/handsontable/renderers/timeRenderer/timeRenderer.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return _timeRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"RENDERER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeRenderer\", function() { return _timeRenderer_mjs__WEBPACK_IMPORTED_MODULE_0__[\"timeRenderer\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/timeRenderer/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/renderers/timeRenderer/timeRenderer.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/renderers/timeRenderer/timeRenderer.mjs ***!
  \***************************************************************************/
/*! exports provided: RENDERER_TYPE, timeRenderer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RENDERER_TYPE\", function() { return RENDERER_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeRenderer\", function() { return timeRenderer; });\n/* harmony import */ var _textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../textRenderer/index.mjs */ \"./node_modules/handsontable/renderers/textRenderer/index.mjs\");\n\nconst RENDERER_TYPE = 'time';\n\n/**\n * Default time renderer.\n *\n * @private\n * @param {Core} hotInstance The Handsontable instance.\n * @param {HTMLTableCellElement} TD The rendered cell element.\n * @param {number} row The visual row index.\n * @param {number} col The visual column index.\n * @param {number|string} prop The column property (passed when datasource is an array of objects).\n * @param {*} value The rendered value.\n * @param {object} cellProperties The cell meta object (see {@link Core#getCellMeta}).\n */\nfunction timeRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {\n  _textRenderer_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"textRenderer\"].apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);\n  TD.dir = 'ltr';\n}\ntimeRenderer.RENDERER_TYPE = RENDERER_TYPE;\n\n//# sourceURL=webpack:///./node_modules/handsontable/renderers/timeRenderer/timeRenderer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/highlight/highlight.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/selection/highlight/highlight.mjs ***!
  \*********************************************************************/
/*! exports provided: ACTIVE_HEADER_TYPE, AREA_TYPE, FOCUS_TYPE, CUSTOM_SELECTION_TYPE, FILL_TYPE, HEADER_TYPE, ROW_TYPE, COLUMN_TYPE, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _types_activeHeader_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types/activeHeader.mjs */ \"./node_modules/handsontable/selection/highlight/types/activeHeader.mjs\");\n/* harmony import */ var _types_areaLayered_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./types/areaLayered.mjs */ \"./node_modules/handsontable/selection/highlight/types/areaLayered.mjs\");\n/* harmony import */ var _types_area_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./types/area.mjs */ \"./node_modules/handsontable/selection/highlight/types/area.mjs\");\n/* harmony import */ var _types_column_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./types/column.mjs */ \"./node_modules/handsontable/selection/highlight/types/column.mjs\");\n/* harmony import */ var _types_focus_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./types/focus.mjs */ \"./node_modules/handsontable/selection/highlight/types/focus.mjs\");\n/* harmony import */ var _types_customSelection_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./types/customSelection.mjs */ \"./node_modules/handsontable/selection/highlight/types/customSelection.mjs\");\n/* harmony import */ var _types_fill_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./types/fill.mjs */ \"./node_modules/handsontable/selection/highlight/types/fill.mjs\");\n/* harmony import */ var _types_header_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./types/header.mjs */ \"./node_modules/handsontable/selection/highlight/types/header.mjs\");\n/* harmony import */ var _types_row_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./types/row.mjs */ \"./node_modules/handsontable/selection/highlight/types/row.mjs\");\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ACTIVE_HEADER_TYPE\", function() { return _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"HIGHLIGHT_ACTIVE_HEADER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AREA_TYPE\", function() { return _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"HIGHLIGHT_AREA_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FOCUS_TYPE\", function() { return _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"HIGHLIGHT_FOCUS_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CUSTOM_SELECTION_TYPE\", function() { return _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"HIGHLIGHT_CUSTOM_SELECTION_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FILL_TYPE\", function() { return _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"HIGHLIGHT_FILL_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HEADER_TYPE\", function() { return _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"HIGHLIGHT_HEADER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ROW_TYPE\", function() { return _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"HIGHLIGHT_ROW_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"COLUMN_TYPE\", function() { return _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"HIGHLIGHT_COLUMN_TYPE\"]; });\n\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Highlight class responsible for managing Walkontable Selection classes.\n *\n * With Highlight object you can manipulate four different highlight types:\n *  - `cell` can be added only to a single cell at a time and it defines currently selected cell;\n *  - `fill` can occur only once and its highlight defines selection of autofill functionality (managed by the plugin with the same name);\n *  - `areas` can be added to multiple cells at a time. This type highlights selected cell or multiple cells.\n *    The multiple cells have to be defined as an uninterrupted order (regular shape). Otherwise, the new layer of\n *    that type should be created to manage not-consecutive selection;\n *  - `header` can occur multiple times. This type is designed to highlight only headers. Like `area` type it\n *    can appear with multiple highlights (accessed under different level layers).\n *\n * @class Highlight\n * @util\n */\nvar _Highlight_brand = /*#__PURE__*/new WeakSet();\nclass Highlight {\n  constructor(options) {\n    /**\n     * Creates (if not exist in the cache) Walkontable Selection instance.\n     *\n     * @param {Map} cacheMap The map where the instance will be cached.\n     * @param {Function} highlightFactory The function factory.\n     * @returns {VisualSelection}\n     */\n    _classPrivateMethodInitSpec(this, _Highlight_brand);\n    /**\n     * Options consumed by Highlight class and Walkontable Selection classes.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"options\", void 0);\n    /**\n     * The property which describes which layer level of the visual selection will be modified.\n     * This option is valid only for `area` and `header` highlight types which occurs multiple times on\n     * the table (as a non-consecutive selection).\n     *\n     * An order of the layers is the same as the order of added new non-consecutive selections.\n     *\n     * @type {number}\n     * @default 0\n     */\n    _defineProperty(this, \"layerLevel\", 0);\n    /**\n     * `cell` highlight object which describes attributes for the currently selected cell.\n     * It can only occur only once on the table.\n     *\n     * @type {Selection}\n     */\n    _defineProperty(this, \"focus\", void 0);\n    /**\n     * `fill` highlight object which describes attributes for the borders for autofill functionality.\n     * It can only occur only once on the table.\n     *\n     * @type {Selection}\n     */\n    _defineProperty(this, \"fill\", void 0);\n    /**\n     * Collection of the `area` highlights. That objects describes attributes for the borders and selection of\n     * the multiple selected cells. It can occur multiple times on the table.\n     *\n     * @type {Map.<number, Selection>}\n     */\n    _defineProperty(this, \"layeredAreas\", new Map());\n    /**\n     * Collection of the `highlight` highlights. That objects describes attributes for the borders and selection of\n     * the multiple selected cells. It can occur multiple times on the table.\n     *\n     * @type {Map.<number, Selection>}\n     */\n    _defineProperty(this, \"areas\", new Map());\n    /**\n     * Collection of the `header` highlights. That objects describes attributes for the selection of\n     * the multiple selected rows in the table header. It can occur multiple times on the table.\n     *\n     * @type {Map.<number, Selection>}\n     */\n    _defineProperty(this, \"rowHeaders\", new Map());\n    /**\n     * Collection of the `header` highlights. That objects describes attributes for the selection of\n     * the multiple selected columns in the table header. It can occur multiple times on the table.\n     *\n     * @type {Map.<number, Selection>}\n     */\n    _defineProperty(this, \"columnHeaders\", new Map());\n    /**\n     * Collection of the `active-header` highlights. That objects describes attributes for the selection of\n     * the multiple selected rows in the table header. The table headers which have selected all items in\n     * a row will be marked as `active-header`.\n     *\n     * @type {Map.<number, Selection>}\n     */\n    _defineProperty(this, \"activeRowHeaders\", new Map());\n    /**\n     * Collection of the `active-header` highlights. That objects describes attributes for the selection of\n     * the multiple selected columns in the table header. The table headers which have selected all items in\n     * a row will be marked as `active-header`.\n     *\n     * @type {Map.<number, Selection>}\n     */\n    _defineProperty(this, \"activeColumnHeaders\", new Map());\n    /**\n     * Collection of the `active-header` highlights. That objects describes attributes for the selection of\n     * the selected corner in the table header. The table headers which have selected all items in\n     * a row will be marked as `active-header`.\n     *\n     * @type {Map.<number, Selection>}\n     */\n    _defineProperty(this, \"activeCornerHeaders\", new Map());\n    /**\n     * Collection of the `rows` highlights. That objects describes attributes for the selection of\n     * the multiple selected cells in a row. It can occur multiple times on the table.\n     *\n     * @type {Map.<number, Selection>}\n     */\n    _defineProperty(this, \"rowHighlights\", new Map());\n    /**\n     * Collection of the `columns` highlights. That objects describes attributes for the selection of\n     * the multiple selected cells in a column. It can occur multiple times on the table.\n     *\n     * @type {Map.<number, Selection>}\n     */\n    _defineProperty(this, \"columnHighlights\", new Map());\n    /**\n     * Collection of the `custom-selection`, holder for example borders added through CustomBorders plugin.\n     *\n     * @type {Selection[]}\n     */\n    _defineProperty(this, \"customSelections\", []);\n    this.options = options;\n    this.focus = Object(_types_focus_mjs__WEBPACK_IMPORTED_MODULE_6__[\"createHighlight\"])(options);\n    this.fill = Object(_types_fill_mjs__WEBPACK_IMPORTED_MODULE_8__[\"createHighlight\"])(options);\n  }\n\n  /**\n   * Check if highlight cell rendering is disabled for specified highlight type.\n   *\n   * @param {string} highlightType Highlight type. Possible values are: `cell`, `area`, `fill` or `header`.\n   * @param {CellCoords} coords The CellCoords instance with defined visual coordinates.\n   * @returns {boolean}\n   */\n  isEnabledFor(highlightType, coords) {\n    let type = highlightType;\n\n    // Legacy compatibility.\n    if (highlightType === _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_11__[\"HIGHLIGHT_FOCUS_TYPE\"]) {\n      type = 'current'; // One from settings for `disableVisualSelection` up to Handsontable 0.36/Handsontable Pro 1.16.0.\n    }\n    let disableHighlight = this.options.disabledCellSelection(coords.row, coords.col);\n    if (typeof disableHighlight === 'string') {\n      disableHighlight = [disableHighlight];\n    }\n    return disableHighlight === false || Array.isArray(disableHighlight) && !disableHighlight.includes(type);\n  }\n\n  /**\n   * Set a new layer level to make access to the desire `area` and `header` highlights.\n   *\n   * @param {number} [level=0] Layer level to use.\n   * @returns {Highlight}\n   */\n  useLayerLevel() {\n    let level = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n    this.layerLevel = level;\n    return this;\n  }\n\n  /**\n   * Get Walkontable Selection instance created for controlling highlight of the currently\n   * focused cell (or header).\n   *\n   * @returns {Selection}\n   */\n  getFocus() {\n    return this.focus;\n  }\n\n  /**\n   * Get Walkontable Selection instance created for controlling highlight of the autofill functionality.\n   *\n   * @returns {Selection}\n   */\n  getFill() {\n    return this.fill;\n  }\n\n  /**\n   * Creates (if not exist in the cache) Walkontable Selection instance created for controlling\n   * `area` highlights.\n   *\n   * @returns {Selection}\n   */\n  createLayeredArea() {\n    return _assertClassBrand(_Highlight_brand, this, _createHighlight).call(this, this.layeredAreas, _types_areaLayered_mjs__WEBPACK_IMPORTED_MODULE_3__[\"createHighlight\"]);\n  }\n\n  /**\n   * Get all Walkontable Selection instances which describes the state of the visual highlight of the cells.\n   *\n   * @returns {Selection[]}\n   */\n  getLayeredAreas() {\n    return [...this.layeredAreas.values()];\n  }\n\n  /**\n   * Creates (if not exist in the cache) Walkontable Selection instance created for controlling\n   * `highlight` highlights.\n   *\n   * @returns {Selection}\n   */\n  createArea() {\n    return _assertClassBrand(_Highlight_brand, this, _createHighlight).call(this, this.areas, _types_area_mjs__WEBPACK_IMPORTED_MODULE_4__[\"createHighlight\"]);\n  }\n\n  /**\n   * Get all Walkontable Selection instances which describes the state of the visual highlight of the cells.\n   *\n   * @returns {Selection[]}\n   */\n  getAreas() {\n    return [...this.areas.values()];\n  }\n\n  /**\n   * Creates (if not exist in the cache) Walkontable Selection instance created for controlling\n   * header highlight for rows.\n   *\n   * @returns {Selection}\n   */\n  createRowHeader() {\n    return _assertClassBrand(_Highlight_brand, this, _createHighlight).call(this, this.rowHeaders, _types_header_mjs__WEBPACK_IMPORTED_MODULE_9__[\"createHighlight\"]);\n  }\n\n  /**\n   * Get all Walkontable Selection instances which describes the state of the visual highlight of the headers.\n   *\n   * @returns {Selection[]}\n   */\n  getRowHeaders() {\n    return [...this.rowHeaders.values()];\n  }\n\n  /**\n   * Creates (if not exist in the cache) Walkontable Selection instance created for controlling\n   * header highlight for columns.\n   *\n   * @returns {Selection}\n   */\n  createColumnHeader() {\n    return _assertClassBrand(_Highlight_brand, this, _createHighlight).call(this, this.columnHeaders, _types_header_mjs__WEBPACK_IMPORTED_MODULE_9__[\"createHighlight\"]);\n  }\n\n  /**\n   * Get all Walkontable Selection instances which describes the state of the visual highlight of the headers.\n   *\n   * @returns {Selection[]}\n   */\n  getColumnHeaders() {\n    return [...this.columnHeaders.values()];\n  }\n\n  /**\n   * Creates (if not exist in the cache) Walkontable Selection instance created for controlling\n   * highlight for active row headers.\n   *\n   * @returns {Selection}\n   */\n  createActiveRowHeader() {\n    return _assertClassBrand(_Highlight_brand, this, _createHighlight).call(this, this.activeRowHeaders, _types_activeHeader_mjs__WEBPACK_IMPORTED_MODULE_2__[\"createHighlight\"]);\n  }\n\n  /**\n   * Get all Walkontable Selection instances which describes the state of the visual highlight of the active headers.\n   *\n   * @returns {Selection[]}\n   */\n  getActiveRowHeaders() {\n    return [...this.activeRowHeaders.values()];\n  }\n\n  /**\n   * Creates (if not exist in the cache) Walkontable Selection instance created for controlling\n   * highlight for active column headers.\n   *\n   * @returns {Selection}\n   */\n  createActiveColumnHeader() {\n    return _assertClassBrand(_Highlight_brand, this, _createHighlight).call(this, this.activeColumnHeaders, _types_activeHeader_mjs__WEBPACK_IMPORTED_MODULE_2__[\"createHighlight\"]);\n  }\n\n  /**\n   * Get all Walkontable Selection instances which describes the state of the visual highlight of the active headers.\n   *\n   * @returns {Selection[]}\n   */\n  getActiveColumnHeaders() {\n    return [...this.activeColumnHeaders.values()];\n  }\n\n  /**\n   * Creates (if not exist in the cache) Walkontable Selection instance created for controlling\n   * highlight for the headers corner.\n   *\n   * @returns {Selection}\n   */\n  createActiveCornerHeader() {\n    return _assertClassBrand(_Highlight_brand, this, _createHighlight).call(this, this.activeCornerHeaders, _types_activeHeader_mjs__WEBPACK_IMPORTED_MODULE_2__[\"createHighlight\"]);\n  }\n\n  /**\n   * Get all Walkontable Selection instances which describes the state of the visual highlight of the headers corner.\n   *\n   * @returns {Selection[]}\n   */\n  getActiveCornerHeaders() {\n    return [...this.activeCornerHeaders.values()];\n  }\n\n  /**\n   * Creates (if not exist in the cache) Walkontable Selection instance created for controlling\n   * highlight cells in a row.\n   *\n   * @returns {Selection}\n   */\n  createRowHighlight() {\n    return _assertClassBrand(_Highlight_brand, this, _createHighlight).call(this, this.rowHighlights, _types_row_mjs__WEBPACK_IMPORTED_MODULE_10__[\"createHighlight\"]);\n  }\n\n  /**\n   * Get all Walkontable Selection instances which describes the state of the rows highlighting.\n   *\n   * @returns {Selection[]}\n   */\n  getRowHighlights() {\n    return [...this.rowHighlights.values()];\n  }\n\n  /**\n   * Creates (if not exist in the cache) Walkontable Selection instance created for controlling\n   * highlight cells in a column.\n   *\n   * @returns {Selection}\n   */\n  createColumnHighlight() {\n    return _assertClassBrand(_Highlight_brand, this, _createHighlight).call(this, this.columnHighlights, _types_column_mjs__WEBPACK_IMPORTED_MODULE_5__[\"createHighlight\"]);\n  }\n\n  /**\n   * Get all Walkontable Selection instances which describes the state of the columns highlighting.\n   *\n   * @returns {Selection[]}\n   */\n  getColumnHighlights() {\n    return [...this.columnHighlights.values()];\n  }\n\n  /**\n   * Get Walkontable Selection instance created for controlling highlight of the custom selection functionality.\n   *\n   * @returns {Selection}\n   */\n  getCustomSelections() {\n    return [...this.customSelections.values()];\n  }\n\n  /**\n   * Add selection to the custom selection instance. The new selection are added to the end of the selection collection.\n   *\n   * @param {object} selectionInstance The selection instance.\n   */\n  addCustomSelection(selectionInstance) {\n    this.customSelections.push(Object(_types_customSelection_mjs__WEBPACK_IMPORTED_MODULE_7__[\"createHighlight\"])({\n      ...this.options,\n      ...selectionInstance\n    }));\n  }\n\n  /**\n   * Perform cleaning visual highlights for the whole table.\n   */\n  clear() {\n    this.focus.clear();\n    this.fill.clear();\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(this.areas.values(), highlight => void highlight.clear());\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(this.layeredAreas.values(), highlight => void highlight.clear());\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(this.rowHeaders.values(), highlight => void highlight.clear());\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(this.columnHeaders.values(), highlight => void highlight.clear());\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(this.activeRowHeaders.values(), highlight => void highlight.clear());\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(this.activeColumnHeaders.values(), highlight => void highlight.clear());\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(this.activeCornerHeaders.values(), highlight => void highlight.clear());\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(this.rowHighlights.values(), highlight => void highlight.clear());\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_12__[\"arrayEach\"])(this.columnHighlights.values(), highlight => void highlight.clear());\n  }\n  /**\n   * This object can be iterate over using `for of` syntax or using internal `arrayEach` helper.\n   *\n   * @returns {Selection[]}\n   */\n  [Symbol.iterator]() {\n    return [this.focus, this.fill, ...this.areas.values(), ...this.layeredAreas.values(), ...this.rowHeaders.values(), ...this.columnHeaders.values(), ...this.activeRowHeaders.values(), ...this.activeColumnHeaders.values(), ...this.activeCornerHeaders.values(), ...this.rowHighlights.values(), ...this.columnHighlights.values(), ...this.customSelections][Symbol.iterator]();\n  }\n}\nfunction _createHighlight(cacheMap, highlightFactory) {\n  const layerLevel = this.layerLevel;\n  if (cacheMap.has(layerLevel)) {\n    return cacheMap.get(layerLevel);\n  }\n  const highlight = highlightFactory({\n    layerLevel,\n    ...this.options\n  });\n  cacheMap.set(layerLevel, highlight);\n  return highlight;\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (Highlight);\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/highlight/highlight.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/highlight/types/activeHeader.mjs":
/*!******************************************************************************!*\
  !*** ./node_modules/handsontable/selection/highlight/types/activeHeader.mjs ***!
  \******************************************************************************/
/*! exports provided: createHighlight */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createHighlight\", function() { return createHighlight; });\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n/* harmony import */ var _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../visualSelection.mjs */ \"./node_modules/handsontable/selection/highlight/visualSelection.mjs\");\n\n\n/**\n * Creates the new instance of Selection, responsible for highlighting column or row headers\n * only when the whole column or row is selected.\n * This type of selection can occur multiple times.\n *\n * @param {object} highlightParams A configuration object to create a highlight.\n * @param {string} highlightParams.activeHeaderClassName Highlighted headers' class name.\n * @returns {Selection}\n */\nfunction createHighlight(_ref) {\n  let {\n    activeHeaderClassName,\n    ...restOptions\n  } = _ref;\n  return new _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]({\n    className: activeHeaderClassName,\n    ...restOptions,\n    selectionType: _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"HIGHLIGHT_ACTIVE_HEADER_TYPE\"]\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/highlight/types/activeHeader.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/highlight/types/area.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/selection/highlight/types/area.mjs ***!
  \**********************************************************************/
/*! exports provided: createHighlight */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createHighlight\", function() { return createHighlight; });\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n/* harmony import */ var _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../visualSelection.mjs */ \"./node_modules/handsontable/selection/highlight/visualSelection.mjs\");\n\n\n/**\n * Creates the new instance of Selection responsible for highlighting area of the selected multiple cells.\n *\n * @param {object} highlightParams A configuration object to create a highlight.\n * @param {object} highlightParams.areaCornerVisible Function to determine if area's corner should be visible.\n * @returns {Selection}\n */\nfunction createHighlight(_ref) {\n  let {\n    ...restOptions\n  } = _ref;\n  return new _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]({\n    className: 'highlight',\n    ...restOptions,\n    selectionType: _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"HIGHLIGHT_AREA_TYPE\"]\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/highlight/types/area.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/highlight/types/areaLayered.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/selection/highlight/types/areaLayered.mjs ***!
  \*****************************************************************************/
/*! exports provided: createHighlight */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createHighlight\", function() { return createHighlight; });\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n/* harmony import */ var _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../visualSelection.mjs */ \"./node_modules/handsontable/selection/highlight/visualSelection.mjs\");\n\n\n/**\n * Creates the new instance of Selection responsible for highlighting area of the selected multiple cells.\n *\n * @param {object} highlightParams A configuration object to create a highlight.\n * @param {object} highlightParams.areaCornerVisible Function to determine if area's corner should be visible.\n * @returns {Selection}\n */\nfunction createHighlight(_ref) {\n  let {\n    areaCornerVisible,\n    ...restOptions\n  } = _ref;\n  return new _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]({\n    className: 'area',\n    createLayers: true,\n    border: {\n      width: 1,\n      color: '#4b89ff',\n      cornerVisible: areaCornerVisible\n    },\n    ...restOptions,\n    selectionType: _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"HIGHLIGHT_AREA_TYPE\"]\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/highlight/types/areaLayered.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/highlight/types/column.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/selection/highlight/types/column.mjs ***!
  \************************************************************************/
/*! exports provided: createHighlight */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createHighlight\", function() { return createHighlight; });\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n/* harmony import */ var _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../visualSelection.mjs */ \"./node_modules/handsontable/selection/highlight/visualSelection.mjs\");\n\n\n/**\n * Creates the new instance of Selection, responsible for highlighting cells in a columns and\n * column headers.\n * This type of selection can occur multiple times.\n *\n * @param {object} highlightParams A configuration object to create a highlight.\n * @param {string} highlightParams.columnClassName Highlighted column' class name.\n * @returns {Selection}\n */\nfunction createHighlight(_ref) {\n  let {\n    columnClassName,\n    ...restOptions\n  } = _ref;\n  return new _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]({\n    className: columnClassName,\n    ...restOptions,\n    selectionType: _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"HIGHLIGHT_COLUMN_TYPE\"]\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/highlight/types/column.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/highlight/types/customSelection.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/selection/highlight/types/customSelection.mjs ***!
  \*********************************************************************************/
/*! exports provided: createHighlight */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createHighlight\", function() { return createHighlight; });\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n/* harmony import */ var _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../visualSelection.mjs */ \"./node_modules/handsontable/selection/highlight/visualSelection.mjs\");\n\n\n/**\n * Creates the new instance of Selection responsible for highlighting currently selected cell.\n * This type of selection can present on the table only one at the time.\n *\n * @param {object} highlightParams A configuration object to create a highlight.\n * @param {object} highlightParams.border Border configuration.\n * @param {object} highlightParams.visualCellRange Function to translate visual to renderable coords.\n * @returns {Selection}\n */\nfunction createHighlight(_ref) {\n  let {\n    border,\n    visualCellRange,\n    ...restOptions\n  } = _ref;\n  return new _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]({\n    ...border,\n    ...restOptions,\n    selectionType: _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"HIGHLIGHT_CUSTOM_SELECTION_TYPE\"]\n  }, visualCellRange);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/highlight/types/customSelection.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/highlight/types/fill.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/selection/highlight/types/fill.mjs ***!
  \**********************************************************************/
/*! exports provided: createHighlight */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createHighlight\", function() { return createHighlight; });\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n/* harmony import */ var _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../visualSelection.mjs */ \"./node_modules/handsontable/selection/highlight/visualSelection.mjs\");\n\n\n/**\n * Creates the new instance of Selection, responsible for highlighting cells which are covered by fill handle\n * functionality. This type of selection can present on the table only one at the time.\n *\n * @param {object} highlightParams A configuration object to create a highlight.\n * @returns {Selection}\n */\nfunction createHighlight(_ref) {\n  let {\n    ...restOptions\n  } = _ref;\n  return new _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]({\n    className: 'fill',\n    border: {\n      width: 1,\n      color: '#ff0000'\n    },\n    ...restOptions,\n    selectionType: _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"HIGHLIGHT_FILL_TYPE\"]\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/highlight/types/fill.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/highlight/types/focus.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/selection/highlight/types/focus.mjs ***!
  \***********************************************************************/
/*! exports provided: createHighlight */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createHighlight\", function() { return createHighlight; });\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n/* harmony import */ var _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../visualSelection.mjs */ \"./node_modules/handsontable/selection/highlight/visualSelection.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\n\n/**\n * Creates the new instance of Selection responsible for highlighting currently selected cell. This type of selection\n * can present on the table only one at the time.\n *\n * @param {object} highlightParams A configuration object to create a highlight.\n * @param {Function} highlightParams.cellCornerVisible Function to determine if cell's corner should be visible.\n * @returns {Selection}\n */\nfunction createHighlight(_ref) {\n  let {\n    cellCornerVisible,\n    ...restOptions\n  } = _ref;\n  return new _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]({\n    className: 'current',\n    headerAttributes: [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_2__[\"A11Y_SELECTED\"])()],\n    border: {\n      width: 2,\n      color: '#4b89ff',\n      cornerVisible: cellCornerVisible\n    },\n    ...restOptions,\n    selectionType: _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"HIGHLIGHT_FOCUS_TYPE\"]\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/highlight/types/focus.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/highlight/types/header.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/selection/highlight/types/header.mjs ***!
  \************************************************************************/
/*! exports provided: createHighlight */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createHighlight\", function() { return createHighlight; });\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n/* harmony import */ var _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../visualSelection.mjs */ \"./node_modules/handsontable/selection/highlight/visualSelection.mjs\");\n\n\n/**\n * Creates the new instance of Selection, responsible for highlighting column or row headers when\n * any cell is selected.\n * This type of selection can occur multiple times.\n *\n * @param {object} highlightParams A configuration object to create a highlight.\n * @param {string} highlightParams.headerClassName Highlighted headers' class name.\n * @returns {Selection}\n */\nfunction createHighlight(_ref) {\n  let {\n    headerClassName,\n    ...restOptions\n  } = _ref;\n  return new _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]({\n    className: headerClassName,\n    ...restOptions,\n    selectionType: _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"HIGHLIGHT_HEADER_TYPE\"]\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/highlight/types/header.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/highlight/types/row.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/selection/highlight/types/row.mjs ***!
  \*********************************************************************/
/*! exports provided: createHighlight */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createHighlight\", function() { return createHighlight; });\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n/* harmony import */ var _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../visualSelection.mjs */ \"./node_modules/handsontable/selection/highlight/visualSelection.mjs\");\n\n\n/**\n * Creates the new instance of Selection, responsible for highlighting cells in a rows and\n * row headers.\n * This type of selection can occur multiple times.\n *\n * @param {object} highlightParams A configuration object to create a highlight.\n * @param {string} highlightParams.rowClassName Highlighted row' class name.\n * @returns {Selection}\n */\nfunction createHighlight(_ref) {\n  let {\n    rowClassName,\n    ...restOptions\n  } = _ref;\n  return new _visualSelection_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"]({\n    className: rowClassName,\n    ...restOptions,\n    selectionType: _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"HIGHLIGHT_ROW_TYPE\"]\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/highlight/types/row.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/highlight/visualSelection.mjs":
/*!***************************************************************************!*\
  !*** ./node_modules/handsontable/selection/highlight/visualSelection.mjs ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../../3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\nclass VisualSelection extends _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"Selection\"] {\n  constructor(settings, visualCellRange) {\n    super(settings, null);\n    /**\n     * Range of selection visually. Visual representation may have representation in a rendered selection.\n     *\n     * @type {null|CellRange}\n     */\n    _defineProperty(this, \"visualCellRange\", null);\n    this.visualCellRange = visualCellRange || null;\n    this.commit();\n  }\n  /**\n   * Adds a cell coords to the selection.\n   *\n   * @param {CellCoords} coords Visual coordinates of a cell.\n   * @returns {VisualSelection}\n   */\n  add(coords) {\n    if (this.visualCellRange === null) {\n      this.visualCellRange = this.settings.createCellRange(coords);\n    } else {\n      this.visualCellRange.expand(coords);\n    }\n    return this;\n  }\n\n  /**\n   * Clears visual and renderable selection.\n   *\n   * @returns {VisualSelection}\n   */\n  clear() {\n    this.visualCellRange = null;\n    return super.clear();\n  }\n\n  /**\n   * Trims the passed cell range object by removing all coordinates that points to the hidden rows\n   * or columns. The result is a new cell range object that points only to the visible indexes or `null`.\n   *\n   * @private\n   * @param {CellRange} cellRange Cells range object to be trimmed.\n   * @returns {CellRange} Visual non-hidden cells range coordinates.\n   */\n  trimToVisibleCellsRangeOnly(_ref) {\n    let {\n      from,\n      to\n    } = _ref;\n    let visibleFromCoords = this.getNearestNotHiddenCoords(from, 1);\n    let visibleToCoords = this.getNearestNotHiddenCoords(to, -1);\n    if (visibleFromCoords === null || visibleToCoords === null) {\n      return null;\n    }\n    if (visibleFromCoords.row > visibleToCoords.row || visibleFromCoords.col > visibleToCoords.col) {\n      visibleFromCoords = from;\n      visibleToCoords = to;\n    }\n    return this.settings.createCellRange(visibleFromCoords, visibleFromCoords, visibleToCoords);\n  }\n\n  /**\n   * Gets nearest coordinates that points to the visible row and column indexes. If there are no visible\n   * rows and/or columns the `null` value is returned.\n   *\n   * @private\n   * @param {CellCoords} coords The coords object as starting point for finding the nearest visible coordinates.\n   * @param {1|-1} rowSearchDirection The search direction. For value 1, it means searching from top to bottom for\n   *                                  rows and from left to right for columns. For -1, it is the other way around.\n   * @param {1|-1} columnSearchDirection The same as above but for rows.\n   * @returns {CellCoords|null} Visual cell coordinates.\n   */\n  getNearestNotHiddenCoords(coords, rowSearchDirection) {\n    let columnSearchDirection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : rowSearchDirection;\n    const nextVisibleRow = this.getNearestNotHiddenIndex(this.settings.rowIndexMapper, coords.row, rowSearchDirection);\n\n    // There are no more visual rows in the range.\n    if (nextVisibleRow === null) {\n      return null;\n    }\n    const nextVisibleColumn = this.getNearestNotHiddenIndex(this.settings.columnIndexMapper, coords.col, columnSearchDirection);\n\n    // There are no more visual columns in the range.\n    if (nextVisibleColumn === null) {\n      return null;\n    }\n    return this.settings.createCellCoords(nextVisibleRow, nextVisibleColumn);\n  }\n\n  /**\n   * Gets nearest visual index. If there are no visible rows or columns the `null` value is returned.\n   *\n   * @private\n   * @param {IndexMapper} indexMapper The IndexMapper instance for specific axis.\n   * @param {number} visualIndex The index as starting point for finding the nearest visible index.\n   * @param {1|-1} searchDirection The search direction. For value 1, it means searching from top to bottom for\n   *                               rows and from left to right for columns. For -1, it is the other way around.\n   * @returns {number|null} Visual row/column index.\n   */\n  getNearestNotHiddenIndex(indexMapper, visualIndex, searchDirection) {\n    if (visualIndex < 0) {\n      return visualIndex;\n    }\n    return indexMapper.getNearestNotHiddenIndex(visualIndex, searchDirection);\n  }\n\n  /**\n   * Override internally stored visual indexes added by the Selection's `add` function. It should be executed\n   * at the end of process of adding visual selection coordinates.\n   *\n   * @returns {VisualSelection}\n   */\n  commit() {\n    // There is no information about visual ranges, thus no selection may be displayed.\n    if (this.visualCellRange === null) {\n      return this;\n    }\n    const trimmedCellRange = this.trimToVisibleCellsRangeOnly(this.visualCellRange);\n\n    // There is no visual start point (and also visual end point) in the range.\n    if (trimmedCellRange === null) {\n      this.cellRange = null;\n    } else {\n      this.cellRange = this.createRenderableCellRange(trimmedCellRange.from, trimmedCellRange.to);\n    }\n    return this;\n  }\n\n  /**\n   * Some selection may be a part of broader cell range. This function sync coordinates of current selection\n   * and the broader cell range when needed (current selection can't be presented visually).\n   *\n   * @param {CellRange} broaderCellRange Visual range. Actual cell range may be contained in the broader cell range.\n   * When there is no way to represent some cell range visually we try to find range containing just the first visible cell.\n   *\n   * Warn: Please keep in mind that this function may change coordinates of the handled broader range.\n   *\n   * @returns {VisualSelection}\n   */\n  syncWith(broaderCellRange) {\n    const coordsFrom = broaderCellRange.from.clone().normalize();\n    const rowDirection = broaderCellRange.getVerticalDirection() === 'N-S' ? 1 : -1;\n    const columnDirection = broaderCellRange.getHorizontalDirection() === 'W-E' ? 1 : -1;\n    const renderableHighlight = this.settings.visualToRenderableCoords(this.visualCellRange.highlight);\n    let cellCoordsVisual = null;\n    if (renderableHighlight === null || renderableHighlight.col === null || renderableHighlight.row === null) {\n      cellCoordsVisual = this.getNearestNotHiddenCoords(coordsFrom, rowDirection, columnDirection);\n    }\n    if (cellCoordsVisual !== null && broaderCellRange.overlaps(cellCoordsVisual)) {\n      const currentHighlight = broaderCellRange.highlight.clone();\n      if (currentHighlight.row >= 0) {\n        currentHighlight.row = cellCoordsVisual.row;\n      }\n      if (currentHighlight.col >= 0) {\n        currentHighlight.col = cellCoordsVisual.col;\n      }\n\n      // We can't show selection visually now, but we found first visible range in the broader cell range.\n      if (this.cellRange === null) {\n        const cellCoordsRenderable = this.settings.visualToRenderableCoords(currentHighlight);\n        this.cellRange = this.settings.createCellRange(cellCoordsRenderable);\n      }\n\n      // TODO\n      // We set new highlight as it might change (for example, when showing/hiding some cells from the broader selection range)\n      // TODO: It is also handled by the `MergeCells` plugin while adjusting already modified coordinates. Should it?\n      broaderCellRange.setHighlight(currentHighlight);\n    }\n\n    // TODO\n    // Sync the highlight coords from the visual selection layer with logical coords.\n    if (this.settings.selectionType === 'focus' && renderableHighlight !== null && cellCoordsVisual === null) {\n      broaderCellRange.setHighlight(this.visualCellRange.highlight);\n    }\n    return this;\n  }\n\n  /**\n   * Returns the top left (TL) and bottom right (BR) selection coordinates (renderable indexes).\n   * The method overwrites the original method to support header selection for hidden cells.\n   * To make the header selection working, the CellCoords and CellRange have to support not\n   * complete coordinates (`null` values for example, `row: null`, `col: 2`).\n   *\n   * @returns {Array} Returns array of coordinates for example `[1, 1, 5, 5]`.\n   */\n  getCorners() {\n    const {\n      from,\n      to\n    } = this.cellRange;\n    return [Math.min(from.row, to.row), Math.min(from.col, to.col), Math.max(from.row, to.row), Math.max(from.col, to.col)];\n  }\n\n  /**\n   * Returns the top left (or top right in RTL) and bottom right (or bottom left in RTL) selection\n   * coordinates (visual indexes).\n   *\n   * @returns {Array} Returns array of coordinates for example `[1, 1, 5, 5]`.\n   */\n  getVisualCorners() {\n    const topStart = this.settings.renderableToVisualCoords(this.cellRange.getTopStartCorner());\n    const bottomEnd = this.settings.renderableToVisualCoords(this.cellRange.getBottomEndCorner());\n    return [topStart.row, topStart.col, bottomEnd.row, bottomEnd.col];\n  }\n\n  /**\n   * Creates a new CellRange object based on visual coordinates which before object creation are\n   * translated to renderable indexes.\n   *\n   * @param {CellCoords} visualFromCoords The CellCoords object which contains coordinates that\n   *                                      points to the beginning of the selection.\n   * @param {CellCoords} visualToCoords The CellCoords object which contains coordinates that\n   *                                    points to the end of the selection.\n   * @returns {CellRange|null}\n   */\n  createRenderableCellRange(visualFromCoords, visualToCoords) {\n    const renderableFromCoords = this.settings.visualToRenderableCoords(visualFromCoords);\n    const renderableToCoords = this.settings.visualToRenderableCoords(visualToCoords);\n    if (renderableFromCoords.row === null || renderableFromCoords.col === null || renderableToCoords.row === null || renderableToCoords.col === null) {\n      return null;\n    }\n    return this.settings.createCellRange(renderableFromCoords, renderableFromCoords, renderableToCoords);\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (VisualSelection);\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/highlight/visualSelection.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/index.mjs":
/*!*******************************************************!*\
  !*** ./node_modules/handsontable/selection/index.mjs ***!
  \*******************************************************/
/*! exports provided: ACTIVE_HEADER_TYPE, AREA_TYPE, FOCUS_TYPE, CUSTOM_SELECTION_TYPE, FILL_TYPE, HEADER_TYPE, ROW_TYPE, COLUMN_TYPE, handleMouseEvent, Selection, detectSelectionType, normalizeSelectionFactory */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _selection_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection.mjs */ \"./node_modules/handsontable/selection/selection.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Selection\", function() { return _selection_mjs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _mouseEventHandler_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mouseEventHandler.mjs */ \"./node_modules/handsontable/selection/mouseEventHandler.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"handleMouseEvent\", function() { return _mouseEventHandler_mjs__WEBPACK_IMPORTED_MODULE_1__[\"handleMouseEvent\"]; });\n\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/selection/utils.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"detectSelectionType\", function() { return _utils_mjs__WEBPACK_IMPORTED_MODULE_2__[\"detectSelectionType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"normalizeSelectionFactory\", function() { return _utils_mjs__WEBPACK_IMPORTED_MODULE_2__[\"normalizeSelectionFactory\"]; });\n\n/* harmony import */ var _highlight_highlight_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./highlight/highlight.mjs */ \"./node_modules/handsontable/selection/highlight/highlight.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ACTIVE_HEADER_TYPE\", function() { return _highlight_highlight_mjs__WEBPACK_IMPORTED_MODULE_3__[\"ACTIVE_HEADER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AREA_TYPE\", function() { return _highlight_highlight_mjs__WEBPACK_IMPORTED_MODULE_3__[\"AREA_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FOCUS_TYPE\", function() { return _highlight_highlight_mjs__WEBPACK_IMPORTED_MODULE_3__[\"FOCUS_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CUSTOM_SELECTION_TYPE\", function() { return _highlight_highlight_mjs__WEBPACK_IMPORTED_MODULE_3__[\"CUSTOM_SELECTION_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FILL_TYPE\", function() { return _highlight_highlight_mjs__WEBPACK_IMPORTED_MODULE_3__[\"FILL_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HEADER_TYPE\", function() { return _highlight_highlight_mjs__WEBPACK_IMPORTED_MODULE_3__[\"HEADER_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ROW_TYPE\", function() { return _highlight_highlight_mjs__WEBPACK_IMPORTED_MODULE_3__[\"ROW_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"COLUMN_TYPE\", function() { return _highlight_highlight_mjs__WEBPACK_IMPORTED_MODULE_3__[\"COLUMN_TYPE\"]; });\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/mouseEventHandler.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/selection/mouseEventHandler.mjs ***!
  \*******************************************************************/
/*! exports provided: mouseDown, mouseOver, handleMouseEvent */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mouseDown\", function() { return mouseDown; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mouseOver\", function() { return mouseOver; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"handleMouseEvent\", function() { return handleMouseEvent; });\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n\n/**\n * MouseDown handler.\n *\n * @param {object} options The handler options.\n * @param {boolean} options.isShiftKey The flag which indicates if the shift key is pressed.\n * @param {boolean} options.isLeftClick The flag which indicates if the left mouse button is pressed.\n * @param {boolean} options.isRightClick The flag which indicates if the right mouse button is pressed.\n * @param {CellRange} options.coords The CellCoords object with defined visual coordinates.\n * @param {Selection} options.selection The Selection class instance.\n * @param {object} options.controller An object with keys `row`, `column`, `cell` which indicate what\n *                                    operation will be performed in later selection stages.\n * @param {Function} options.cellCoordsFactory The function factory for CellCoords objects.\n */\nfunction mouseDown(_ref) {\n  let {\n    isShiftKey,\n    isLeftClick,\n    isRightClick,\n    coords,\n    selection,\n    controller,\n    cellCoordsFactory\n  } = _ref;\n  const currentSelection = selection.isSelected() ? selection.getSelectedRange().current() : null;\n  const selectedCorner = selection.isSelectedByCorner();\n  const selectedRow = selection.isSelectedByRowHeader();\n  selection.markSource('mouse');\n  if (isShiftKey && currentSelection) {\n    if (coords.row >= 0 && coords.col >= 0 && !controller.cell) {\n      selection.setRangeEnd(coords);\n    } else if ((selectedCorner || selectedRow) && coords.row >= 0 && coords.col >= 0 && !controller.cell) {\n      selection.setRangeEnd(cellCoordsFactory(coords.row, coords.col));\n    } else if (selectedCorner && coords.row < 0 && !controller.column) {\n      selection.setRangeEnd(cellCoordsFactory(currentSelection.to.row, coords.col));\n    } else if (selectedRow && coords.col < 0 && !controller.row) {\n      selection.setRangeEnd(cellCoordsFactory(coords.row, currentSelection.to.col));\n    } else if ((!selectedCorner && !selectedRow && coords.col < 0 || selectedCorner && coords.col < 0) && !controller.row) {\n      selection.selectRows(Math.max(currentSelection.from.row, 0), coords.row, coords.col);\n    } else if ((!selectedCorner && !selectedRow && coords.row < 0 || selectedRow && coords.row < 0) && !controller.column) {\n      selection.selectColumns(Math.max(currentSelection.from.col, 0), coords.col, coords.row);\n    }\n  } else {\n    const allowRightClickSelection = !selection.inInSelection(coords);\n    const performSelection = isLeftClick || isRightClick && allowRightClickSelection;\n\n    // clicked row header and when some column was selected\n    if (coords.row < 0 && coords.col >= 0 && !controller.column) {\n      if (performSelection) {\n        selection.selectColumns(coords.col, coords.col, coords.row);\n      }\n\n      // clicked column header and when some row was selected\n    } else if (coords.col < 0 && coords.row >= 0 && !controller.row) {\n      if (performSelection) {\n        selection.selectRows(coords.row, coords.row, coords.col);\n      }\n    } else if (coords.col >= 0 && coords.row >= 0 && !controller.cell) {\n      if (performSelection) {\n        selection.setRangeStart(coords);\n      }\n    } else if (coords.col < 0 && coords.row < 0) {\n      selection.selectAll(true, true, {\n        disableHeadersHighlight: true,\n        focusPosition: {\n          row: 0,\n          col: 0\n        }\n      });\n    }\n  }\n  selection.markEndSource();\n}\n\n/**\n * MouseOver handler.\n *\n * @param {object} options The handler options.\n * @param {boolean} options.isLeftClick Indicates that event was fired using the left mouse button.\n * @param {CellRange} options.coords The CellCoords object with defined visual coordinates.\n * @param {Selection} options.selection The Selection class instance.\n * @param {object} options.controller An object with keys `row`, `column`, `cell` which indicate what\n *                                    operation will be performed in later selection stages.\n * @param {Function} options.cellCoordsFactory The function factory for CellCoords objects.\n */\nfunction mouseOver(_ref2) {\n  let {\n    isLeftClick,\n    coords,\n    selection,\n    controller,\n    cellCoordsFactory\n  } = _ref2;\n  if (!isLeftClick) {\n    return;\n  }\n  const selectedRow = selection.isSelectedByRowHeader();\n  const selectedColumn = selection.isSelectedByColumnHeader();\n  const countCols = selection.tableProps.countCols();\n  const countRows = selection.tableProps.countRows();\n  selection.markSource('mouse');\n  if (selectedColumn && !controller.column) {\n    selection.setRangeEnd(cellCoordsFactory(countRows - 1, coords.col));\n  } else if (selectedRow && !controller.row) {\n    selection.setRangeEnd(cellCoordsFactory(coords.row, countCols - 1));\n  } else if (!controller.cell) {\n    selection.setRangeEnd(coords);\n  }\n  selection.markEndSource();\n}\nconst handlers = new Map([['mousedown', mouseDown], ['mouseover', mouseOver], ['touchstart', mouseDown]]);\n\n/**\n * Mouse handler for selection functionality.\n *\n * @param {Event} event An native event to handle.\n * @param {object} options The handler options.\n * @param {CellRange} options.coords The CellCoords object with defined visual coordinates.\n * @param {Selection} options.selection The Selection class instance.\n * @param {object} options.controller An object with keys `row`, `column`, `cell` which indicate what\n *                                    operation will be performed in later selection stages.\n * @param {Function} options.cellCoordsFactory The function factory for CellCoords objects.\n */\nfunction handleMouseEvent(event, _ref3) {\n  let {\n    coords,\n    selection,\n    controller,\n    cellCoordsFactory\n  } = _ref3;\n  handlers.get(event.type)({\n    coords,\n    selection,\n    controller,\n    cellCoordsFactory,\n    isShiftKey: event.shiftKey,\n    isLeftClick: Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isLeftClick\"])(event) || event.type === 'touchstart',\n    isRightClick: Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isRightClick\"])(event)\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/mouseEventHandler.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/range.mjs":
/*!*******************************************************!*\
  !*** ./node_modules/handsontable/selection/range.mjs ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * The SelectionRange class is a simple CellRanges collection designed for easy manipulation of the multiple\n * consecutive and non-consecutive selections.\n *\n * @class SelectionRange\n * @util\n */\nclass SelectionRange {\n  constructor(createCellRange) {\n    /**\n     * List of all CellRanges added to the class instance.\n     *\n     * @type {CellRange[]}\n     */\n    _defineProperty(this, \"ranges\", []);\n    /**\n     * @type {function(CellCoords): CellRange}\n     */\n    _defineProperty(this, \"createCellRange\", void 0);\n    this.createCellRange = createCellRange;\n  }\n\n  /**\n   * Check if selected range is empty.\n   *\n   * @returns {boolean}\n   */\n  isEmpty() {\n    return this.size() === 0;\n  }\n\n  /**\n   * Set coordinates to the class instance. It clears all previously added coordinates and push `coords`\n   * to the collection.\n   *\n   * @param {CellCoords} coords The CellCoords instance with defined visual coordinates.\n   * @returns {SelectionRange}\n   */\n  set(coords) {\n    this.clear();\n    this.ranges.push(this.createCellRange(coords));\n    return this;\n  }\n\n  /**\n   * Add coordinates to the class instance. The new coordinates are added to the end of the range collection.\n   *\n   * @param {CellCoords} coords The CellCoords instance with defined visual coordinates.\n   * @returns {SelectionRange}\n   */\n  add(coords) {\n    this.ranges.push(this.createCellRange(coords));\n    return this;\n  }\n\n  /**\n   * Removes from the stack the last added coordinates.\n   *\n   * @returns {SelectionRange}\n   */\n  pop() {\n    this.ranges.pop();\n    return this;\n  }\n\n  /**\n   * Get last added coordinates from ranges, it returns a CellRange instance.\n   *\n   * @returns {CellRange|undefined}\n   */\n  current() {\n    return this.peekByIndex(this.size() - 1);\n  }\n\n  /**\n   * Get previously added coordinates from ranges, it returns a CellRange instance.\n   *\n   * @returns {CellRange|undefined}\n   */\n  previous() {\n    return this.peekByIndex(this.size() - 2);\n  }\n\n  /**\n   * Returns `true` if coords is within selection coords. This method iterates through all selection layers to check if\n   * the coords object is within selection range.\n   *\n   * @param {CellCoords} coords The CellCoords instance with defined visual coordinates.\n   * @returns {boolean}\n   */\n  includes(coords) {\n    return this.ranges.some(cellRange => cellRange.includes(coords));\n  }\n\n  /**\n   * Clear collection.\n   *\n   * @returns {SelectionRange}\n   */\n  clear() {\n    this.ranges.length = 0;\n    return this;\n  }\n\n  /**\n   * Get count of added all coordinates added to the selection.\n   *\n   * @returns {number}\n   */\n  size() {\n    return this.ranges.length;\n  }\n\n  /**\n   * Peek the coordinates based on the index where that coordinate resides in the collection.\n   *\n   * @param {number} [index=0] An index where the coordinate will be retrieved from. The index '0' gets the\n   * latest range.\n   * @returns {CellRange|undefined}\n   */\n  peekByIndex() {\n    let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n    let cellRange;\n    if (index >= 0 && index < this.size()) {\n      cellRange = this.ranges[index];\n    }\n    return cellRange;\n  }\n  [Symbol.iterator]() {\n    return this.ranges[Symbol.iterator]();\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (SelectionRange);\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/range.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/selection.mjs":
/*!***********************************************************!*\
  !*** ./node_modules/handsontable/selection/selection.mjs ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _highlight_highlight_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./highlight/highlight.mjs */ \"./node_modules/handsontable/selection/highlight/highlight.mjs\");\n/* harmony import */ var _range_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./range.mjs */ \"./node_modules/handsontable/selection/range.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n/* harmony import */ var _transformation_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./transformation.mjs */ \"./node_modules/handsontable/selection/transformation.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/selection/utils.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\n\n\n\n\n\n\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n\n\n\n\n/**\n * @class Selection\n * @util\n */\nvar _transformation = /*#__PURE__*/new WeakMap();\nvar _focusTransformation = /*#__PURE__*/new WeakMap();\nvar _isFocusSelectionChanged = /*#__PURE__*/new WeakMap();\nvar _disableHeadersHighlight = /*#__PURE__*/new WeakMap();\nvar _selectionSource = /*#__PURE__*/new WeakMap();\nvar _expectedLayersCount = /*#__PURE__*/new WeakMap();\nclass Selection {\n  constructor(settings, tableProps) {\n    var _this = this;\n    /**\n     * Handsontable settings instance.\n     *\n     * @type {GridSettings}\n     */\n    _defineProperty(this, \"settings\", void 0);\n    /**\n     * An additional object with dynamically defined properties which describes table state.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"tableProps\", void 0);\n    /**\n     * The flag which determines if the selection is in progress.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"inProgress\", false);\n    /**\n     * Selection data layer (handle visual coordinates).\n     *\n     * @type {SelectionRange}\n     */\n    _defineProperty(this, \"selectedRange\", new _range_mjs__WEBPACK_IMPORTED_MODULE_10__[\"default\"]((highlight, from, to) => {\n      return this.tableProps.createCellRange(highlight, from, to);\n    }));\n    /**\n     * Visualization layer.\n     *\n     * @type {Highlight}\n     */\n    _defineProperty(this, \"highlight\", void 0);\n    /**\n     * The module for modifying coordinates of the start and end selection.\n     *\n     * @type {Transformation}\n     */\n    _classPrivateFieldInitSpec(this, _transformation, void 0);\n    /**\n     * The module for modifying coordinates of the focus selection.\n     *\n     * @type {Transformation}\n     */\n    _classPrivateFieldInitSpec(this, _focusTransformation, void 0);\n    /**\n     * The collection of the selection layer levels where the whole row was selected using the row header or\n     * the corner header.\n     *\n     * @type {Set<number>}\n     */\n    _defineProperty(this, \"selectedByRowHeader\", new Set());\n    /**\n     * The collection of the selection layer levels where the whole column was selected using the column header or\n     * the corner header.\n     *\n     * @type {Set<number>}\n     */\n    _defineProperty(this, \"selectedByColumnHeader\", new Set());\n    /**\n     * The flag which determines if the focus selection was changed.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _isFocusSelectionChanged, false);\n    /**\n     * When sets disable highlighting the headers even when the logical coordinates points on them.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _disableHeadersHighlight, false);\n    /**\n     * The source of the selection. It can be one of the following values: `mouse`, `unknown` or any other string.\n     *\n     * @type {'mouse' | 'unknown' | string}\n     */\n    _classPrivateFieldInitSpec(this, _selectionSource, 'unknown');\n    /**\n     * The number of expected layers. It is used mostly to track when the last selection layer of non-contiguous\n     * selection is applied, thus the viewport scroll is triggered.\n     *\n     * @param {number}\n     */\n    _classPrivateFieldInitSpec(this, _expectedLayersCount, -1);\n    this.settings = settings;\n    this.tableProps = tableProps;\n    this.highlight = new _highlight_highlight_mjs__WEBPACK_IMPORTED_MODULE_9__[\"default\"]({\n      headerClassName: settings.currentHeaderClassName,\n      activeHeaderClassName: settings.activeHeaderClassName,\n      rowClassName: settings.currentRowClassName,\n      columnClassName: settings.currentColClassName,\n      cellAttributes: [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_19__[\"A11Y_SELECTED\"])()],\n      rowIndexMapper: this.tableProps.rowIndexMapper,\n      columnIndexMapper: this.tableProps.columnIndexMapper,\n      disabledCellSelection: (row, column) => this.tableProps.isDisabledCellSelection(row, column),\n      cellCornerVisible: function () {\n        return _this.isCellCornerVisible(...arguments);\n      },\n      areaCornerVisible: function () {\n        return _this.isAreaCornerVisible(...arguments);\n      },\n      visualToRenderableCoords: coords => this.tableProps.visualToRenderableCoords(coords),\n      renderableToVisualCoords: coords => this.tableProps.renderableToVisualCoords(coords),\n      createCellCoords: (row, column) => this.tableProps.createCellCoords(row, column),\n      createCellRange: (highlight, from, to) => this.tableProps.createCellRange(highlight, from, to)\n    });\n    _classPrivateFieldSet(_transformation, this, new _transformation_mjs__WEBPACK_IMPORTED_MODULE_16__[\"default\"](this.selectedRange, {\n      rowIndexMapper: this.tableProps.rowIndexMapper,\n      columnIndexMapper: this.tableProps.columnIndexMapper,\n      countRenderableRows: () => this.tableProps.countRenderableRows(),\n      countRenderableColumns: () => this.tableProps.countRenderableColumns(),\n      visualToRenderableCoords: coords => this.tableProps.visualToRenderableCoords(coords),\n      renderableToVisualCoords: coords => this.tableProps.renderableToVisualCoords(coords),\n      findFirstNonHiddenRenderableRow: function () {\n        return _this.tableProps.findFirstNonHiddenRenderableRow(...arguments);\n      },\n      findFirstNonHiddenRenderableColumn: function () {\n        return _this.tableProps.findFirstNonHiddenRenderableColumn(...arguments);\n      },\n      createCellCoords: (row, column) => this.tableProps.createCellCoords(row, column),\n      fixedRowsBottom: () => settings.fixedRowsBottom,\n      minSpareRows: () => settings.minSpareRows,\n      minSpareCols: () => settings.minSpareCols,\n      autoWrapRow: () => settings.autoWrapRow,\n      autoWrapCol: () => settings.autoWrapCol\n    }));\n    _classPrivateFieldSet(_focusTransformation, this, new _transformation_mjs__WEBPACK_IMPORTED_MODULE_16__[\"default\"](this.selectedRange, {\n      rowIndexMapper: this.tableProps.rowIndexMapper,\n      columnIndexMapper: this.tableProps.columnIndexMapper,\n      countRenderableRows: () => {\n        const range = this.selectedRange.current();\n        return this.tableProps.countRenderableRowsInRange(0, range.getOuterBottomEndCorner().row);\n      },\n      countRenderableColumns: () => {\n        const range = this.selectedRange.current();\n        return this.tableProps.countRenderableColumnsInRange(0, range.getOuterBottomEndCorner().col);\n      },\n      visualToRenderableCoords: coords => this.tableProps.visualToRenderableCoords(coords),\n      renderableToVisualCoords: coords => this.tableProps.renderableToVisualCoords(coords),\n      findFirstNonHiddenRenderableRow: function () {\n        return _this.tableProps.findFirstNonHiddenRenderableRow(...arguments);\n      },\n      findFirstNonHiddenRenderableColumn: function () {\n        return _this.tableProps.findFirstNonHiddenRenderableColumn(...arguments);\n      },\n      createCellCoords: (row, column) => this.tableProps.createCellCoords(row, column),\n      fixedRowsBottom: () => 0,\n      minSpareRows: () => 0,\n      minSpareCols: () => 0,\n      autoWrapRow: () => true,\n      autoWrapCol: () => true\n    }));\n    _classPrivateFieldGet(_transformation, this).addLocalHook('beforeTransformStart', function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _this.runLocalHooks('beforeModifyTransformStart', ...args);\n    });\n    _classPrivateFieldGet(_transformation, this).addLocalHook('afterTransformStart', function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return _this.runLocalHooks('afterModifyTransformStart', ...args);\n    });\n    _classPrivateFieldGet(_transformation, this).addLocalHook('beforeTransformEnd', function () {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n      return _this.runLocalHooks('beforeModifyTransformEnd', ...args);\n    });\n    _classPrivateFieldGet(_transformation, this).addLocalHook('afterTransformEnd', function () {\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n      return _this.runLocalHooks('afterModifyTransformEnd', ...args);\n    });\n    _classPrivateFieldGet(_transformation, this).addLocalHook('insertRowRequire', function () {\n      for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n        args[_key5] = arguments[_key5];\n      }\n      return _this.runLocalHooks('insertRowRequire', ...args);\n    });\n    _classPrivateFieldGet(_transformation, this).addLocalHook('insertColRequire', function () {\n      for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n        args[_key6] = arguments[_key6];\n      }\n      return _this.runLocalHooks('insertColRequire', ...args);\n    });\n    _classPrivateFieldGet(_transformation, this).addLocalHook('beforeRowWrap', function () {\n      for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n        args[_key7] = arguments[_key7];\n      }\n      return _this.runLocalHooks('beforeRowWrap', ...args);\n    });\n    _classPrivateFieldGet(_transformation, this).addLocalHook('beforeColumnWrap', function () {\n      for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n        args[_key8] = arguments[_key8];\n      }\n      return _this.runLocalHooks('beforeColumnWrap', ...args);\n    });\n    _classPrivateFieldGet(_focusTransformation, this).addLocalHook('beforeTransformStart', function () {\n      for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n        args[_key9] = arguments[_key9];\n      }\n      return _this.runLocalHooks('beforeModifyTransformFocus', ...args);\n    });\n    _classPrivateFieldGet(_focusTransformation, this).addLocalHook('afterTransformStart', function () {\n      for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n        args[_key10] = arguments[_key10];\n      }\n      return _this.runLocalHooks('afterModifyTransformFocus', ...args);\n    });\n  }\n\n  /**\n   * Get data layer for current selection.\n   *\n   * @returns {SelectionRange}\n   */\n  getSelectedRange() {\n    return this.selectedRange;\n  }\n\n  /**\n   * Marks the source of the selection. It can be one of the following values: `mouse`, or any other string.\n   *\n   * @param {'mouse' | 'unknown' | string} sourceName The source name.\n   */\n  markSource(sourceName) {\n    _classPrivateFieldSet(_selectionSource, this, sourceName);\n  }\n\n  /**\n   * Marks end of the selection source. It restores the selection source to default value which is 'unknown'.\n   */\n  markEndSource() {\n    _classPrivateFieldSet(_selectionSource, this, 'unknown');\n  }\n\n  /**\n   * Returns the source of the selection.\n   *\n   * @returns {'mouse' | 'unknown' | string}\n   */\n  getSelectionSource() {\n    return _classPrivateFieldGet(_selectionSource, this);\n  }\n\n  /**\n   * Set the number of expected layers. The method is not obligatory to call. It is used mostly internally\n   * to determine when the last selection layer of non-contiguous is applied, thus the viewport scroll is triggered.\n   *\n   * @param {number} layersCount The number of expected layers.\n   */\n  setExpectedLayers(layersCount) {\n    _classPrivateFieldSet(_expectedLayersCount, this, layersCount);\n  }\n\n  /**\n   * Indicate that selection process began. It sets internally `.inProgress` property to `true`.\n   */\n  begin() {\n    this.inProgress = true;\n  }\n\n  /**\n   * Indicate that selection process finished. It sets internally `.inProgress` property to `false`.\n   */\n  finish() {\n    this.runLocalHooks('afterSelectionFinished', Array.from(this.selectedRange));\n    this.inProgress = false;\n    _classPrivateFieldSet(_expectedLayersCount, this, -1);\n  }\n\n  /**\n   * Check if the process of selecting the cell/cells is in progress.\n   *\n   * @returns {boolean}\n   */\n  isInProgress() {\n    return this.inProgress;\n  }\n\n  /**\n   * Starts selection range on given coordinate object.\n   *\n   * @param {CellCoords} coords Visual coords.\n   * @param {boolean} [multipleSelection] If `true`, selection will be worked in 'multiple' mode. This option works\n   *                                      only when 'selectionMode' is set as 'multiple'. If the argument is not defined\n   *                                      the default trigger will be used.\n   * @param {boolean} [fragment=false] If `true`, the selection will be treated as a partial selection where the\n   *                                   `setRangeEnd` method won't be called on every `setRangeStart` call.\n   * @param {CellCoords} [highlightCoords] If set, allows changing the coordinates of the highlight/focus cell.\n   */\n  setRangeStart(coords, multipleSelection) {\n    let fragment = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    let highlightCoords = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : coords;\n    const isMultipleMode = this.settings.selectionMode === 'multiple';\n    const isMultipleSelection = Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isUndefined\"])(multipleSelection) ? this.tableProps.getShortcutManager().isCtrlPressed() : multipleSelection;\n    // We are creating copy. We would like to modify just the start of the selection by below hook. Then original coords\n    // should be handled by next methods.\n    const coordsClone = coords.clone();\n    _classPrivateFieldSet(_isFocusSelectionChanged, this, false);\n    this.runLocalHooks(`beforeSetRangeStart${fragment ? 'Only' : ''}`, coordsClone);\n    if (!isMultipleMode || isMultipleMode && !isMultipleSelection && Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_12__[\"isUndefined\"])(multipleSelection)) {\n      this.selectedRange.clear();\n    }\n    this.selectedRange.add(coordsClone).current().setHighlight(highlightCoords.clone());\n    if (this.getLayerLevel() === 0) {\n      this.selectedByRowHeader.clear();\n      this.selectedByColumnHeader.clear();\n    }\n    if (!fragment) {\n      this.setRangeEnd(coords);\n    }\n  }\n\n  /**\n   * Starts selection range on given coordinate object.\n   *\n   * @param {CellCoords} coords Visual coords.\n   * @param {boolean} [multipleSelection] If `true`, selection will be worked in 'multiple' mode. This option works\n   *                                      only when 'selectionMode' is set as 'multiple'. If the argument is not defined\n   *                                      the default trigger will be used.\n   * @param {CellCoords} [highlightCoords] If set, allows changing the coordinates of the highlight/focus cell.\n   */\n  setRangeStartOnly(coords, multipleSelection) {\n    let highlightCoords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : coords;\n    this.setRangeStart(coords, multipleSelection, true, highlightCoords);\n  }\n\n  /**\n   * Ends selection range on given coordinate object.\n   *\n   * @param {CellCoords} coords Visual coords.\n   */\n  setRangeEnd(coords) {\n    if (this.selectedRange.isEmpty()) {\n      return;\n    }\n    const coordsClone = coords.clone();\n    const countRows = this.tableProps.countRows();\n    const countCols = this.tableProps.countCols();\n    const isSingle = this.selectedRange.current().clone().setTo(coords).isSingleHeader();\n\n    // Ignore processing the end range when the header selection starts overlapping the corner and\n    // the selection is not a single header highlight.\n    if ((countRows > 0 || countCols > 0) && (countRows === 0 && coordsClone.col < 0 && !isSingle || countCols === 0 && coordsClone.row < 0 && !isSingle)) {\n      return;\n    }\n    this.runLocalHooks('beforeSetRangeEnd', coordsClone);\n    this.begin();\n    const cellRange = this.selectedRange.current();\n    if (!this.settings.navigableHeaders) {\n      cellRange.highlight.normalize();\n    }\n    if (this.settings.selectionMode === 'single') {\n      cellRange.setFrom(cellRange.highlight);\n      cellRange.setTo(cellRange.highlight);\n    } else {\n      const horizontalDir = cellRange.getHorizontalDirection();\n      const verticalDir = cellRange.getVerticalDirection();\n      const isMultiple = this.isMultiple();\n      cellRange.setTo(coordsClone);\n      if (isMultiple && (horizontalDir !== cellRange.getHorizontalDirection() || cellRange.getWidth() === 1 && !cellRange.includes(cellRange.highlight))) {\n        cellRange.from.assign({\n          col: cellRange.highlight.col\n        });\n      }\n      if (isMultiple && (verticalDir !== cellRange.getVerticalDirection() || cellRange.getHeight() === 1 && !cellRange.includes(cellRange.highlight))) {\n        cellRange.from.assign({\n          row: cellRange.highlight.row\n        });\n      }\n    }\n\n    // Prevent creating \"area\" selection that overlaps headers.\n    if (countRows > 0 && countCols > 0) {\n      if (!this.settings.navigableHeaders || this.settings.navigableHeaders && !cellRange.isSingleHeader()) {\n        cellRange.to.normalize();\n      }\n    }\n    this.runLocalHooks('beforeHighlightSet');\n    this.setRangeFocus(this.selectedRange.current().highlight);\n    this.applyAndCommit();\n    const isLastLayer = _classPrivateFieldGet(_expectedLayersCount, this) === -1 || this.selectedRange.size() === _classPrivateFieldGet(_expectedLayersCount, this);\n    this.runLocalHooks('afterSetRangeEnd', coords, isLastLayer);\n  }\n\n  /**\n   * Applies and commits the selection to all layers (using the Walkontable Selection API) based on the selection (CellRanges)\n   * collected in the `selectedRange` module.\n   *\n   * @param {CellRange} [cellRange] The cell range to apply. If not provided, the current selection is used.\n   * @param {number} [layerLevel] The layer level to apply. If not provided, the current layer level is used.\n   */\n  applyAndCommit() {\n    let cellRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectedRange.current();\n    let layerLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLayerLevel();\n    const countRows = this.tableProps.countRows();\n    const countCols = this.tableProps.countCols();\n\n    // If the next layer level is lower than previous then clear all area and header highlights. This is the\n    // indication that the new selection is performing.\n    if (layerLevel < this.highlight.layerLevel) {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_14__[\"arrayEach\"])(this.highlight.getAreas(), highlight => void highlight.clear());\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_14__[\"arrayEach\"])(this.highlight.getLayeredAreas(), highlight => void highlight.clear());\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_14__[\"arrayEach\"])(this.highlight.getRowHeaders(), highlight => void highlight.clear());\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_14__[\"arrayEach\"])(this.highlight.getColumnHeaders(), highlight => void highlight.clear());\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_14__[\"arrayEach\"])(this.highlight.getActiveRowHeaders(), highlight => void highlight.clear());\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_14__[\"arrayEach\"])(this.highlight.getActiveColumnHeaders(), highlight => void highlight.clear());\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_14__[\"arrayEach\"])(this.highlight.getActiveCornerHeaders(), highlight => void highlight.clear());\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_14__[\"arrayEach\"])(this.highlight.getRowHighlights(), highlight => void highlight.clear());\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_14__[\"arrayEach\"])(this.highlight.getColumnHighlights(), highlight => void highlight.clear());\n    }\n    this.highlight.useLayerLevel(layerLevel);\n    const areaHighlight = this.highlight.createArea();\n    const layeredAreaHighlight = this.highlight.createLayeredArea();\n    const rowHeaderHighlight = this.highlight.createRowHeader();\n    const columnHeaderHighlight = this.highlight.createColumnHeader();\n    const activeRowHeaderHighlight = this.highlight.createActiveRowHeader();\n    const activeColumnHeaderHighlight = this.highlight.createActiveColumnHeader();\n    const activeCornerHeaderHighlight = this.highlight.createActiveCornerHeader();\n    const rowHighlight = this.highlight.createRowHighlight();\n    const columnHighlight = this.highlight.createColumnHighlight();\n    areaHighlight.clear();\n    layeredAreaHighlight.clear();\n    rowHeaderHighlight.clear();\n    columnHeaderHighlight.clear();\n    activeRowHeaderHighlight.clear();\n    activeColumnHeaderHighlight.clear();\n    activeCornerHeaderHighlight.clear();\n    rowHighlight.clear();\n    columnHighlight.clear();\n    if (this.highlight.isEnabledFor(_highlight_highlight_mjs__WEBPACK_IMPORTED_MODULE_9__[\"AREA_TYPE\"], cellRange.highlight) && (this.isMultiple() || layerLevel >= 1)) {\n      areaHighlight.add(cellRange.from).add(cellRange.to).commit();\n      layeredAreaHighlight.add(cellRange.from).add(cellRange.to).commit();\n      if (layerLevel === 1) {\n        // For single cell selection in the same layer, we do not create area selection to prevent blue background.\n        // When non-consecutive selection is performed we have to add that missing area selection to the previous layer\n        // based on previous coordinates. It only occurs when the previous selection wasn't select multiple cells.\n        const previousRange = this.selectedRange.previous();\n        this.highlight.useLayerLevel(layerLevel - 1);\n        this.highlight.createArea().add(previousRange.from).commit()\n        // Range may start with hidden indexes. Commit would not found start point (as we add just the `from` coords).\n        .syncWith(previousRange);\n        this.highlight.createLayeredArea().add(previousRange.from).commit()\n        // Range may start with hidden indexes. Commit would not found start point (as we add just the `from` coords).\n        .syncWith(previousRange);\n        this.highlight.useLayerLevel(layerLevel);\n      }\n    }\n    if (this.highlight.isEnabledFor(_highlight_highlight_mjs__WEBPACK_IMPORTED_MODULE_9__[\"HEADER_TYPE\"], cellRange.highlight)) {\n      if (!cellRange.isSingleHeader()) {\n        const rowCoordsFrom = this.tableProps.createCellCoords(Math.max(cellRange.from.row, 0), -1);\n        const rowCoordsTo = this.tableProps.createCellCoords(cellRange.to.row, -1);\n        const columnCoordsFrom = this.tableProps.createCellCoords(-1, Math.max(cellRange.from.col, 0));\n        const columnCoordsTo = this.tableProps.createCellCoords(-1, cellRange.to.col);\n        if (this.settings.selectionMode === 'single') {\n          rowHeaderHighlight.add(rowCoordsFrom).commit();\n          columnHeaderHighlight.add(columnCoordsFrom).commit();\n          rowHighlight.add(rowCoordsFrom).commit();\n          columnHighlight.add(columnCoordsFrom).commit();\n        } else {\n          rowHeaderHighlight.add(rowCoordsFrom).add(rowCoordsTo).commit();\n          columnHeaderHighlight.add(columnCoordsFrom).add(columnCoordsTo).commit();\n          rowHighlight.add(rowCoordsFrom).add(rowCoordsTo).commit();\n          columnHighlight.add(columnCoordsFrom).add(columnCoordsTo).commit();\n        }\n      }\n      const highlightRowHeaders = !_classPrivateFieldGet(_disableHeadersHighlight, this) && this.isEntireRowSelected() && (countCols > 0 && countCols === cellRange.getWidth() || countCols === 0 && this.isSelectedByRowHeader());\n      const highlightColumnHeaders = !_classPrivateFieldGet(_disableHeadersHighlight, this) && this.isEntireColumnSelected() && (countRows > 0 && countRows === cellRange.getHeight() || countRows === 0 && this.isSelectedByColumnHeader());\n      if (highlightRowHeaders) {\n        activeRowHeaderHighlight.add(this.tableProps.createCellCoords(Math.max(cellRange.from.row, 0), Math.min(-this.tableProps.countRowHeaders(), -1))).add(this.tableProps.createCellCoords(Math.max(cellRange.to.row, 0), -1)).commit();\n      }\n      if (highlightColumnHeaders) {\n        activeColumnHeaderHighlight.add(this.tableProps.createCellCoords(Math.min(-this.tableProps.countColHeaders(), -1), Math.max(cellRange.from.col, 0))).add(this.tableProps.createCellCoords(-1, Math.max(cellRange.to.col, 0))).commit();\n      }\n      if (highlightRowHeaders && highlightColumnHeaders) {\n        activeCornerHeaderHighlight.add(this.tableProps.createCellCoords(-this.tableProps.countColHeaders(), -this.tableProps.countRowHeaders())).add(this.tableProps.createCellCoords(-1, -1)).commit();\n      }\n    }\n  }\n\n  /**\n   * Sets the selection focus position at the specified coordinates.\n   *\n   * @param {CellCoords} coords The CellCoords instance with defined visual coordinates.\n   */\n  setRangeFocus(coords) {\n    if (this.selectedRange.isEmpty()) {\n      return;\n    }\n    const cellRange = this.selectedRange.current();\n    if (!this.inProgress) {\n      this.runLocalHooks('beforeSetFocus', coords);\n    }\n    const focusHighlight = this.highlight.getFocus();\n    focusHighlight.clear();\n    cellRange.setHighlight(coords);\n    if (!this.inProgress) {\n      this.runLocalHooks('beforeHighlightSet');\n    }\n    if (this.highlight.isEnabledFor(_highlight_highlight_mjs__WEBPACK_IMPORTED_MODULE_9__[\"FOCUS_TYPE\"], cellRange.highlight)) {\n      focusHighlight.add(cellRange.highlight).commit().syncWith(cellRange);\n    }\n    if (!this.inProgress) {\n      _classPrivateFieldSet(_isFocusSelectionChanged, this, true);\n      this.runLocalHooks('afterSetFocus', cellRange.highlight);\n    }\n  }\n\n  /**\n   * Selects cell relative to the current cell (if possible).\n   *\n   * @param {number} rowDelta Rows number to move, value can be passed as negative number.\n   * @param {number} colDelta Columns number to move, value can be passed as negative number.\n   * @param {boolean} [createMissingRecords=false] If `true` the new rows/columns will be created if necessary.\n   * Otherwise, row/column will be created according to `minSpareRows/minSpareCols` settings of Handsontable.\n   */\n  transformStart(rowDelta, colDelta) {\n    let createMissingRecords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    if (this.settings.navigableHeaders) {\n      _classPrivateFieldGet(_transformation, this).setOffsetSize({\n        x: this.tableProps.countRowHeaders(),\n        y: this.tableProps.countColHeaders()\n      });\n    } else {\n      _classPrivateFieldGet(_transformation, this).resetOffsetSize();\n    }\n    this.setRangeStart(_classPrivateFieldGet(_transformation, this).transformStart(rowDelta, colDelta, createMissingRecords));\n  }\n\n  /**\n   * Sets selection end cell relative to the current selection end cell (if possible).\n   *\n   * @param {number} rowDelta Rows number to move, value can be passed as negative number.\n   * @param {number} colDelta Columns number to move, value can be passed as negative number.\n   */\n  transformEnd(rowDelta, colDelta) {\n    if (this.settings.navigableHeaders) {\n      _classPrivateFieldGet(_transformation, this).setOffsetSize({\n        x: this.tableProps.countRowHeaders(),\n        y: this.tableProps.countColHeaders()\n      });\n    } else {\n      _classPrivateFieldGet(_transformation, this).resetOffsetSize();\n    }\n    this.setRangeEnd(_classPrivateFieldGet(_transformation, this).transformEnd(rowDelta, colDelta));\n  }\n\n  /**\n   * Transforms the focus cell selection relative to the current focus position.\n   *\n   * @param {number} rowDelta Rows number to move, value can be passed as negative number.\n   * @param {number} colDelta Columns number to move, value can be passed as negative number.\n   */\n  transformFocus(rowDelta, colDelta) {\n    const range = this.selectedRange.current();\n    const {\n      row,\n      col\n    } = range.getOuterTopStartCorner();\n    const columnsInRange = this.tableProps.countRenderableColumnsInRange(0, col - 1);\n    const rowsInRange = this.tableProps.countRenderableRowsInRange(0, row - 1);\n    if (range.highlight.isHeader()) {\n      // for header focus selection calculate the new coords based on the selection including headers\n      _classPrivateFieldGet(_focusTransformation, this).setOffsetSize({\n        x: col < 0 ? Math.abs(col) : -columnsInRange,\n        y: row < 0 ? Math.abs(row) : -rowsInRange\n      });\n    } else {\n      // for focus selection in cells calculate the new coords only based on the selected cells\n      _classPrivateFieldGet(_focusTransformation, this).setOffsetSize({\n        x: col < 0 ? 0 : -columnsInRange,\n        y: row < 0 ? 0 : -rowsInRange\n      });\n    }\n    const focusCoords = _classPrivateFieldGet(_focusTransformation, this).transformStart(rowDelta, colDelta);\n    this.setRangeFocus(focusCoords.normalize());\n  }\n\n  /**\n   * Transforms the last selection layer down or up by the index count.\n   *\n   * @param {number} visualRowIndex Visual row index from which the selection will be shifted.\n   * @param {number} amount The number of rows to shift the selection.\n   */\n  shiftRows(visualRowIndex, amount) {\n    if (!this.isSelected()) {\n      return;\n    }\n    const range = this.selectedRange.current();\n    if (this.isSelectedByCorner()) {\n      this.selectAll(true, true, {\n        disableHeadersHighlight: true\n      });\n    } else if (this.isSelectedByColumnHeader() || range.getOuterTopStartCorner().row >= visualRowIndex) {\n      const {\n        from,\n        to,\n        highlight\n      } = range;\n      const countRows = this.tableProps.countRows();\n      const isSelectedByRowHeader = this.isSelectedByRowHeader();\n      const isSelectedByColumnHeader = this.isSelectedByColumnHeader();\n      const minRow = isSelectedByColumnHeader ? -1 : 0;\n      const coordsStartAmount = isSelectedByColumnHeader ? 0 : amount;\n\n      // Remove from the stack the last added selection as that selection below will be\n      // replaced by new transformed selection.\n      this.getSelectedRange().pop();\n      const coordsStart = this.tableProps.createCellCoords(Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(from.row + coordsStartAmount, minRow, countRows - 1), from.col);\n      const coordsEnd = this.tableProps.createCellCoords(Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(to.row + amount, minRow, countRows - 1), to.col);\n      this.markSource('shift');\n      if (highlight.row >= visualRowIndex) {\n        this.setRangeStartOnly(coordsStart, true, this.tableProps.createCellCoords(Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(highlight.row + amount, 0, countRows - 1), highlight.col));\n      } else {\n        this.setRangeStartOnly(coordsStart, true);\n      }\n      if (isSelectedByRowHeader) {\n        this.selectedByRowHeader.add(this.getLayerLevel());\n      }\n      if (isSelectedByColumnHeader) {\n        this.selectedByColumnHeader.add(this.getLayerLevel());\n      }\n      this.setRangeEnd(coordsEnd);\n      this.markEndSource();\n    }\n  }\n\n  /**\n   * Transforms the last selection layer left or right by the index count.\n   *\n   * @param {number} visualColumnIndex Visual column index from which the selection will be shifted.\n   * @param {number} amount The number of columns to shift the selection.\n   */\n  shiftColumns(visualColumnIndex, amount) {\n    if (!this.isSelected()) {\n      return;\n    }\n    const range = this.selectedRange.current();\n    if (this.isSelectedByCorner()) {\n      this.selectAll(true, true, {\n        disableHeadersHighlight: true\n      });\n    } else if (this.isSelectedByRowHeader() || range.getOuterTopStartCorner().col >= visualColumnIndex) {\n      const {\n        from,\n        to,\n        highlight\n      } = range;\n      const countCols = this.tableProps.countCols();\n      const isSelectedByRowHeader = this.isSelectedByRowHeader();\n      const isSelectedByColumnHeader = this.isSelectedByColumnHeader();\n      const minColumn = isSelectedByRowHeader ? -1 : 0;\n      const coordsStartAmount = isSelectedByRowHeader ? 0 : amount;\n\n      // Remove from the stack the last added selection as that selection below will be\n      // replaced by new transformed selection.\n      this.getSelectedRange().pop();\n      const coordsStart = this.tableProps.createCellCoords(from.row, Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(from.col + coordsStartAmount, minColumn, countCols - 1));\n      const coordsEnd = this.tableProps.createCellCoords(to.row, Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(to.col + amount, minColumn, countCols - 1));\n      this.markSource('shift');\n      if (highlight.col >= visualColumnIndex) {\n        this.setRangeStartOnly(coordsStart, true, this.tableProps.createCellCoords(highlight.row, Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(highlight.col + amount, 0, countCols - 1)));\n      } else {\n        this.setRangeStartOnly(coordsStart, true);\n      }\n      if (isSelectedByRowHeader) {\n        this.selectedByRowHeader.add(this.getLayerLevel());\n      }\n      if (isSelectedByColumnHeader) {\n        this.selectedByColumnHeader.add(this.getLayerLevel());\n      }\n      this.setRangeEnd(coordsEnd);\n      this.markEndSource();\n    }\n  }\n\n  /**\n   * Returns currently used layer level.\n   *\n   * @returns {number} Returns layer level starting from 0. If no selection was added to the table -1 is returned.\n   */\n  getLayerLevel() {\n    return this.selectedRange.size() - 1;\n  }\n\n  /**\n   * Returns `true` if currently there is a selection on the screen, `false` otherwise.\n   *\n   * @returns {boolean}\n   */\n  isSelected() {\n    return !this.selectedRange.isEmpty();\n  }\n\n  /**\n   * Returns information if we have a multi-selection. This method check multi-selection only on the latest layer of\n   * the selection.\n   *\n   * @returns {boolean}\n   */\n  isMultiple() {\n    if (!this.isSelected()) {\n      return false;\n    }\n    const isMultipleListener = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_11__[\"createObjectPropListener\"])(!this.selectedRange.current().isSingle());\n    this.runLocalHooks('afterIsMultipleSelection', isMultipleListener);\n    return isMultipleListener.value;\n  }\n\n  /**\n   * Checks if the last selection involves changing the focus cell position only.\n   *\n   * @returns {boolean}\n   */\n  isFocusSelectionChanged() {\n    return this.isSelected() && _classPrivateFieldGet(_isFocusSelectionChanged, this);\n  }\n\n  /**\n   * Returns `true` if the selection was applied by clicking to the row header. If the `layerLevel`\n   * argument is passed then only that layer will be checked. Otherwise, it checks if any row header\n   * was clicked on any selection layer level.\n   *\n   * @param {number} [layerLevel=this.getLayerLevel()] Selection layer level to check.\n   * @returns {boolean}\n   */\n  isSelectedByRowHeader() {\n    let layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();\n    return !this.isSelectedByCorner(layerLevel) && (layerLevel === -1 ? this.selectedByRowHeader.size > 0 : this.selectedByRowHeader.has(layerLevel));\n  }\n\n  /**\n   * Returns `true` if the selection consists of entire rows (including their headers). If the `layerLevel`\n   * argument is passed then only that layer will be checked. Otherwise, it checks the selection for all layers.\n   *\n   * @param {number} [layerLevel=this.getLayerLevel()] Selection layer level to check.\n   * @returns {boolean}\n   */\n  isEntireRowSelected() {\n    let layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();\n    const tester = range => {\n      const {\n        col\n      } = range.getOuterTopStartCorner();\n      const rowHeaders = this.tableProps.countRowHeaders();\n      const countCols = this.tableProps.countCols();\n      return (rowHeaders > 0 && col < 0 || rowHeaders === 0) && range.getWidth() === countCols;\n    };\n    if (layerLevel === -1) {\n      return Array.from(this.selectedRange).some(range => tester(range));\n    }\n    const range = this.selectedRange.peekByIndex(layerLevel);\n    return range ? tester(range) : false;\n  }\n\n  /**\n   * Returns `true` if the selection was applied by clicking to the column header. If the `layerLevel`\n   * argument is passed then only that layer will be checked. Otherwise, it checks if any column header\n   * was clicked on any selection layer level.\n   *\n   * @param {number} [layerLevel=this.getLayerLevel()] Selection layer level to check.\n   * @returns {boolean}\n   */\n  isSelectedByColumnHeader() {\n    let layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();\n    return !this.isSelectedByCorner() && (layerLevel === -1 ? this.selectedByColumnHeader.size > 0 : this.selectedByColumnHeader.has(layerLevel));\n  }\n\n  /**\n   * Returns `true` if the selection consists of entire columns (including their headers). If the `layerLevel`\n   * argument is passed then only that layer will be checked. Otherwise, it checks the selection for all layers.\n   *\n   * @param {number} [layerLevel=this.getLayerLevel()] Selection layer level to check.\n   * @returns {boolean}\n   */\n  isEntireColumnSelected() {\n    let layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();\n    const tester = range => {\n      const {\n        row\n      } = range.getOuterTopStartCorner();\n      const colHeaders = this.tableProps.countColHeaders();\n      const countRows = this.tableProps.countRows();\n      return (colHeaders > 0 && row < 0 || colHeaders === 0) && range.getHeight() === countRows;\n    };\n    if (layerLevel === -1) {\n      return Array.from(this.selectedRange).some(range => tester(range));\n    }\n    const range = this.selectedRange.peekByIndex(layerLevel);\n    return range ? tester(range) : false;\n  }\n\n  /**\n   * Returns `true` if the selection was applied by clicking on the row or column header on any layer level.\n   *\n   * @returns {boolean}\n   */\n  isSelectedByAnyHeader() {\n    return this.isSelectedByRowHeader(-1) || this.isSelectedByColumnHeader(-1) || this.isSelectedByCorner();\n  }\n\n  /**\n   * Returns `true` if the selection was applied by clicking on the left-top corner overlay.\n   *\n   * @returns {boolean}\n   */\n  isSelectedByCorner() {\n    return this.selectedByColumnHeader.has(this.getLayerLevel()) && this.selectedByRowHeader.has(this.getLayerLevel());\n  }\n\n  /**\n   * Returns `true` if coords is within selection coords. This method iterates through all selection layers to check if\n   * the coords object is within selection range.\n   *\n   * @param {CellCoords} coords The CellCoords instance with defined visual coordinates.\n   * @returns {boolean}\n   */\n  inInSelection(coords) {\n    return this.selectedRange.includes(coords);\n  }\n\n  /**\n   * Returns `true` if the cell corner should be visible.\n   *\n   * @private\n   * @returns {boolean} `true` if the corner element has to be visible, `false` otherwise.\n   */\n  isCellCornerVisible() {\n    return this.settings.fillHandle && !this.tableProps.isEditorOpened() && !this.isMultiple();\n  }\n\n  /**\n   * Returns `true` if the cell coordinates are visible (renderable).\n   *\n   * @private\n   * @param {CellCoords} coords The cell coordinates to check.\n   * @returns {boolean}\n   */\n  isCellVisible(coords) {\n    const renderableCoords = this.tableProps.visualToRenderableCoords(coords);\n    return renderableCoords.row !== null && renderableCoords.col !== null;\n  }\n\n  /**\n   * Returns `true` if the area corner should be visible.\n   *\n   * @param {number} layerLevel The layer level.\n   * @returns {boolean} `true` if the corner element has to be visible, `false` otherwise.\n   */\n  isAreaCornerVisible(layerLevel) {\n    if (Number.isInteger(layerLevel) && layerLevel !== this.getLayerLevel()) {\n      return false;\n    }\n    return this.settings.fillHandle && !this.tableProps.isEditorOpened() && this.isMultiple();\n  }\n\n  /**\n   * Clear the selection by resetting the collected ranges and highlights.\n   */\n  clear() {\n    // TODO: collections selectedByColumnHeader and selectedByRowHeader should be clear too.\n    this.selectedRange.clear();\n    this.highlight.clear();\n  }\n\n  /**\n   * Deselects all selected cells.\n   */\n  deselect() {\n    if (!this.isSelected()) {\n      return;\n    }\n    this.inProgress = false;\n    this.clear();\n    this.runLocalHooks('afterDeselect');\n  }\n\n  /**\n   * Selects all cells and headers.\n   *\n   * @param {boolean} [includeRowHeaders=false] `true` If the selection should include the row headers,\n   * `false` otherwise.\n   * @param {boolean} [includeColumnHeaders=false] `true` If the selection should include the column\n   * headers, `false` otherwise.\n   * @param {object} [options] Additional object with options.\n   * @param {{row: number, col: number} | boolean} [options.focusPosition] The argument allows changing the cell/header\n   * focus position. The value takes an object with a `row` and `col` properties from -N to N, where\n   * negative values point to the headers and positive values point to the cell range. If `false`, the focus\n   * position won't be changed.\n   * @param {boolean} [options.disableHeadersHighlight] If `true`, disables highlighting the headers even when\n   * the logical coordinates points on them.\n   */\n  selectAll() {\n    var _this$getSelectedRang;\n    let includeRowHeaders = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    let includeColumnHeaders = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n      focusPosition: false,\n      disableHeadersHighlight: false\n    };\n    const nrOfRows = this.tableProps.countRows();\n    const nrOfColumns = this.tableProps.countCols();\n    const countRowHeaders = this.tableProps.countRowHeaders();\n    const countColHeaders = this.tableProps.countColHeaders();\n    const rowFrom = includeColumnHeaders ? -countColHeaders : 0;\n    const columnFrom = includeRowHeaders ? -countRowHeaders : 0;\n\n    // We can't select cells when there is no data.\n    if (rowFrom === 0 && columnFrom === 0 && (nrOfRows === 0 || nrOfColumns === 0)) {\n      return;\n    }\n    let highlight = (_this$getSelectedRang = this.getSelectedRange().current()) === null || _this$getSelectedRang === void 0 ? void 0 : _this$getSelectedRang.highlight;\n    const {\n      focusPosition,\n      disableHeadersHighlight\n    } = options;\n    _classPrivateFieldSet(_disableHeadersHighlight, this, disableHeadersHighlight);\n    if (focusPosition && Number.isInteger(focusPosition === null || focusPosition === void 0 ? void 0 : focusPosition.row) && Number.isInteger(focusPosition === null || focusPosition === void 0 ? void 0 : focusPosition.col)) {\n      highlight = this.tableProps.createCellCoords(Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(focusPosition.row, rowFrom, nrOfRows - 1), Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(focusPosition.col, columnFrom, nrOfColumns - 1));\n    }\n    const startCoords = this.tableProps.createCellCoords(rowFrom, columnFrom);\n    const endCoords = this.tableProps.createCellCoords(nrOfRows - 1, nrOfColumns - 1);\n    this.clear();\n    this.setRangeStartOnly(startCoords, undefined, highlight);\n    if (columnFrom < 0) {\n      this.selectedByRowHeader.add(this.getLayerLevel());\n    }\n    if (rowFrom < 0) {\n      this.selectedByColumnHeader.add(this.getLayerLevel());\n    }\n    this.setRangeEnd(endCoords);\n    this.finish();\n    _classPrivateFieldSet(_disableHeadersHighlight, this, false);\n  }\n\n  /**\n   * Make multiple, non-contiguous selection specified by `row` and `column` values or a range of cells\n   * finishing at `endRow`, `endColumn`. The method supports two input formats, first as an array of arrays such\n   * as `[[rowStart, columnStart, rowEnd, columnEnd]]` and second format as an array of CellRange objects.\n   * If the passed ranges have another format the exception will be thrown.\n   *\n   * @param {Array[]|CellRange[]} selectionRanges The coordinates which define what the cells should be selected.\n   * @returns {boolean} Returns `true` if selection was successful, `false` otherwise.\n   */\n  selectCells(selectionRanges) {\n    var _this2 = this;\n    const selectionType = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_17__[\"detectSelectionType\"])(selectionRanges);\n    if (selectionType === _utils_mjs__WEBPACK_IMPORTED_MODULE_17__[\"SELECTION_TYPE_EMPTY\"]) {\n      return false;\n    } else if (selectionType === _utils_mjs__WEBPACK_IMPORTED_MODULE_17__[\"SELECTION_TYPE_UNRECOGNIZED\"]) {\n      throw new Error(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_18__[\"toSingleLine\"]`Unsupported format of the selection ranges was passed. To select cells pass\\x20\n        the coordinates as an array of arrays ([[rowStart, columnStart/columnPropStart, rowEnd,\\x20\n        columnEnd/columnPropEnd]]) or as an array of CellRange objects.`);\n    }\n    const selectionSchemaNormalizer = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_17__[\"normalizeSelectionFactory\"])(selectionType, {\n      createCellCoords: function () {\n        return _this2.tableProps.createCellCoords(...arguments);\n      },\n      createCellRange: function () {\n        return _this2.tableProps.createCellRange(...arguments);\n      },\n      propToCol: prop => this.tableProps.propToCol(prop),\n      keepDirection: true\n    });\n    const navigableHeaders = this.settings.navigableHeaders;\n    const tableParams = {\n      countRows: this.tableProps.countRows(),\n      countCols: this.tableProps.countCols(),\n      countRowHeaders: navigableHeaders ? this.tableProps.countRowHeaders() : 0,\n      countColHeaders: navigableHeaders ? this.tableProps.countColHeaders() : 0\n    };\n\n    // Check if every layer of the coordinates are valid.\n    const isValid = !selectionRanges.some(selection => {\n      const cellRange = selectionSchemaNormalizer(selection);\n      const rangeValidity = cellRange.isValid(tableParams);\n      return !(rangeValidity && !cellRange.containsHeaders() || rangeValidity && cellRange.containsHeaders() && cellRange.isSingleHeader());\n    });\n    if (isValid) {\n      this.clear();\n      this.setExpectedLayers(selectionRanges.length);\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_14__[\"arrayEach\"])(selectionRanges, selection => {\n        const {\n          from,\n          to\n        } = selectionSchemaNormalizer(selection);\n        this.setRangeStartOnly(from.clone(), false);\n        this.setRangeEnd(to.clone());\n      });\n      this.finish();\n    }\n    return isValid;\n  }\n\n  /**\n   * Select column specified by `startColumn` visual index or column property or a range of columns finishing at\n   * `endColumn`.\n   *\n   * @param {number|string} startColumn Visual column index or column property from which the selection starts.\n   * @param {number|string} [endColumn] Visual column index or column property from to the selection finishes.\n   * @param {number | { row: number, col: number }} [focusPosition=0] The argument allows changing the cell/header focus\n   * position. The value can take visual row index from -N to N, where negative values point to the headers and positive\n   * values point to the cell range. An object with `row` and `col` properties also can be passed to change the focus\n   * position horizontally.\n   * @returns {boolean} Returns `true` if selection was successful, `false` otherwise.\n   */\n  selectColumns(startColumn) {\n    let endColumn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startColumn;\n    let focusPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n    const start = typeof startColumn === 'string' ? this.tableProps.propToCol(startColumn) : startColumn;\n    const end = typeof endColumn === 'string' ? this.tableProps.propToCol(endColumn) : endColumn;\n    const countRows = this.tableProps.countRows();\n    const countCols = this.tableProps.countCols();\n    const countColHeaders = this.tableProps.countColHeaders();\n    const columnHeaderLastIndex = countColHeaders === 0 ? 0 : -countColHeaders;\n    const fromCoords = this.tableProps.createCellCoords(columnHeaderLastIndex, start);\n    const toCoords = this.tableProps.createCellCoords(countRows - 1, end);\n    const isValid = this.tableProps.createCellRange(fromCoords, fromCoords, toCoords).isValid({\n      countRows,\n      countCols,\n      countRowHeaders: 0,\n      countColHeaders\n    });\n    if (isValid) {\n      let highlightRow = 0;\n      let highlightColumn = 0;\n      if (Number.isInteger(focusPosition === null || focusPosition === void 0 ? void 0 : focusPosition.row) && Number.isInteger(focusPosition === null || focusPosition === void 0 ? void 0 : focusPosition.col)) {\n        highlightRow = Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(focusPosition.row, columnHeaderLastIndex, countRows - 1);\n        highlightColumn = Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(focusPosition.col, Math.min(start, end), Math.max(start, end));\n      } else {\n        highlightRow = Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(focusPosition, columnHeaderLastIndex, countRows - 1);\n        highlightColumn = start;\n      }\n      const highlight = this.tableProps.createCellCoords(highlightRow, highlightColumn);\n      const fromRow = countColHeaders === 0 ? 0 : Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(highlight.row, columnHeaderLastIndex, -1);\n      const toRow = countRows - 1;\n      const from = this.tableProps.createCellCoords(fromRow, start);\n      const to = this.tableProps.createCellCoords(toRow, end);\n      this.runLocalHooks('beforeSelectColumns', from, to, highlight);\n\n      // disallow modifying row axis for that hooks\n      from.row = fromRow;\n      to.row = toRow;\n      this.setRangeStartOnly(from, undefined, highlight);\n      this.selectedByColumnHeader.add(this.getLayerLevel());\n      this.setRangeEnd(to);\n      this.runLocalHooks('afterSelectColumns', from, to, highlight);\n      this.finish();\n    }\n    return isValid;\n  }\n\n  /**\n   * Select row specified by `startRow` visual index or a range of rows finishing at `endRow`.\n   *\n   * @param {number} startRow Visual row index from which the selection starts.\n   * @param {number} [endRow] Visual row index from to the selection finishes.\n   * @param {number | { row: number, col: number }} [focusPosition=0] The argument allows changing the cell/header focus\n   * position. The value can take visual row index from -N to N, where negative values point to the headers and positive\n   * values point to the cell range. An object with `row` and `col` properties also can be passed to change the focus\n   * position horizontally.\n   * @returns {boolean} Returns `true` if selection was successful, `false` otherwise.\n   */\n  selectRows(startRow) {\n    let endRow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startRow;\n    let focusPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n    const countRows = this.tableProps.countRows();\n    const countCols = this.tableProps.countCols();\n    const countRowHeaders = this.tableProps.countRowHeaders();\n    const rowHeaderLastIndex = countRowHeaders === 0 ? 0 : -countRowHeaders;\n    const fromCoords = this.tableProps.createCellCoords(startRow, rowHeaderLastIndex);\n    const toCoords = this.tableProps.createCellCoords(endRow, countCols - 1);\n    const isValid = this.tableProps.createCellRange(fromCoords, fromCoords, toCoords).isValid({\n      countRows,\n      countCols,\n      countRowHeaders,\n      countColHeaders: 0\n    });\n    if (isValid) {\n      let highlightRow = 0;\n      let highlightColumn = 0;\n      if (Number.isInteger(focusPosition === null || focusPosition === void 0 ? void 0 : focusPosition.row) && Number.isInteger(focusPosition === null || focusPosition === void 0 ? void 0 : focusPosition.col)) {\n        highlightRow = Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(focusPosition.row, Math.min(startRow, endRow), Math.max(startRow, endRow));\n        highlightColumn = Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(focusPosition.col, rowHeaderLastIndex, countCols - 1);\n      } else {\n        highlightRow = startRow;\n        highlightColumn = Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(focusPosition, rowHeaderLastIndex, countCols - 1);\n      }\n      const highlight = this.tableProps.createCellCoords(highlightRow, highlightColumn);\n      const fromColumn = countRowHeaders === 0 ? 0 : Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(highlight.col, rowHeaderLastIndex, -1);\n      const toColumn = countCols - 1;\n      const from = this.tableProps.createCellCoords(startRow, fromColumn);\n      const to = this.tableProps.createCellCoords(endRow, toColumn);\n      this.runLocalHooks('beforeSelectRows', from, to, highlight);\n\n      // disallow modifying column axis for that hooks\n      from.col = fromColumn;\n      to.col = toColumn;\n      this.setRangeStartOnly(from, undefined, highlight);\n      this.selectedByRowHeader.add(this.getLayerLevel());\n      this.setRangeEnd(to);\n      this.runLocalHooks('afterSelectRows', from, to, highlight);\n      this.finish();\n    }\n    return isValid;\n  }\n\n  /**\n   * Refreshes the whole selection by clearing, reapplying and committing the renderable selection (Walkontable Selection API)\n   * by using already added visual ranges.\n   */\n  refresh() {\n    if (!this.isSelected()) {\n      return;\n    }\n    const countRows = this.tableProps.countRows();\n    const countColumns = this.tableProps.countCols();\n    if (countRows === 0 || countColumns === 0) {\n      this.deselect();\n      return;\n    }\n    const range = this.selectedRange.peekByIndex(this.selectedRange.size() - 1);\n    const {\n      from,\n      to,\n      highlight\n    } = range;\n    this.clear();\n    highlight.assign({\n      row: Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(highlight.row, -Infinity, countRows - 1),\n      col: Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(highlight.col, -Infinity, countColumns - 1)\n    });\n    from.assign({\n      row: Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(from.row, -Infinity, countRows - 1),\n      col: Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(from.col, -Infinity, countColumns - 1)\n    });\n    to.assign({\n      row: Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(to.row, 0, countRows - 1),\n      col: Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_13__[\"clamp\"])(to.col, 0, countColumns - 1)\n    });\n    this.selectedRange.ranges.push(range);\n    this.highlight.getFocus().add(highlight).commit().syncWith(range);\n    this.applyAndCommit(range);\n  }\n\n  /**\n   * Refreshes the whole selection by recommitting (recalculating visual indexes to renderable ones) the renderable selection\n   * that was already added.\n   */\n  commit() {\n    const customSelections = this.highlight.getCustomSelections();\n    customSelections.forEach(customSelection => {\n      customSelection.commit();\n    });\n    if (!this.isSelected()) {\n      return;\n    }\n    const focusHighlight = this.highlight.getFocus();\n    const currentLayer = this.getLayerLevel();\n    focusHighlight.commit().syncWith(this.selectedRange.current());\n\n    // Rewriting rendered ranges going through all layers.\n    for (let layerLevel = 0; layerLevel < this.selectedRange.size(); layerLevel += 1) {\n      this.highlight.useLayerLevel(layerLevel);\n      const areaHighlight = this.highlight.createArea();\n      const areaLayeredHighlight = this.highlight.createLayeredArea();\n      const rowHeaderHighlight = this.highlight.createRowHeader();\n      const columnHeaderHighlight = this.highlight.createColumnHeader();\n      const activeRowHeaderHighlight = this.highlight.createActiveRowHeader();\n      const activeColumnHeaderHighlight = this.highlight.createActiveColumnHeader();\n      const activeCornerHeaderHighlight = this.highlight.createActiveCornerHeader();\n      const rowHighlight = this.highlight.createRowHighlight();\n      const columnHighlight = this.highlight.createColumnHighlight();\n      areaHighlight.commit();\n      areaLayeredHighlight.commit();\n      rowHeaderHighlight.commit();\n      columnHeaderHighlight.commit();\n      activeRowHeaderHighlight.commit();\n      activeColumnHeaderHighlight.commit();\n      activeCornerHeaderHighlight.commit();\n      rowHighlight.commit();\n      columnHighlight.commit();\n    }\n\n    // Reverting starting layer for the Highlight.\n    this.highlight.useLayerLevel(currentLayer);\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_11__[\"mixin\"])(Selection, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_15__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (Selection);\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/selection.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/transformation.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/selection/transformation.mjs ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n/**\n * The Transformation class implements algorithms for transforming coordinates based on current settings\n * passed to the Handsontable. The class performs the calculations based on the renderable indexes.\n *\n * Transformation is always applied relative to the current selection.\n *\n * The class operates on a table size defined by the renderable indexes. If the `navigableHeaders`\n * option is enabled, the table size is increased by the number of row and/or column headers.\n * Because the headers are treated as cells as part of the table size (indexes always go from 0 to N),\n * the algorithm can be written as simply as possible (without new if's that distinguish the headers\n * logic).\n *\n * @class Transformation\n * @util\n */\nvar _range = /*#__PURE__*/new WeakMap();\nvar _options = /*#__PURE__*/new WeakMap();\nvar _offset = /*#__PURE__*/new WeakMap();\nvar _Transformation_brand = /*#__PURE__*/new WeakSet();\nclass Transformation {\n  constructor(range, options) {\n    /**\n     * Clamps the coords to make sure they points to the cell (or header) in the table range.\n     *\n     * @param {CellCoords} zeroBasedCoords The coords object to clamp.\n     * @returns {{rowDir: 1|0|-1, colDir: 1|0|-1}}\n     */\n    _classPrivateMethodInitSpec(this, _Transformation_brand);\n    /**\n     * Instance of the SelectionRange, holder for visual coordinates applied to the table.\n     *\n     * @type {SelectionRange}\n     */\n    _classPrivateFieldInitSpec(this, _range, void 0);\n    /**\n     * Additional options which define the state of the settings which can infer transformation and\n     * give the possibility to translate indexes.\n     *\n     * @type {object}\n     */\n    _classPrivateFieldInitSpec(this, _options, void 0);\n    /**\n     * Increases the table size by applying the offsets. The option is used by the `navigableHeaders`\n     * option.\n     *\n     * @type {{ x: number, y: number }}\n     */\n    _classPrivateFieldInitSpec(this, _offset, {\n      x: 0,\n      y: 0\n    });\n    _classPrivateFieldSet(_range, this, range);\n    _classPrivateFieldSet(_options, this, options);\n  }\n\n  /**\n   * Selects cell relative to the current cell (if possible).\n   *\n   * @param {number} rowDelta Rows number to move, value can be passed as negative number.\n   * @param {number} colDelta Columns number to move, value can be passed as negative number.\n   * @param {boolean} [createMissingRecords=false] If `true` the new rows/columns will be created if necessary. Otherwise, row/column will\n   *                        be created according to `minSpareRows/minSpareCols` settings of Handsontable.\n   * @returns {CellCoords} Visual coordinates after transformation.\n   */\n  transformStart(rowDelta, colDelta) {\n    let createMissingRecords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    const delta = _classPrivateFieldGet(_options, this).createCellCoords(rowDelta, colDelta);\n    let visualCoords = _classPrivateFieldGet(_range, this).current().highlight;\n    const highlightRenderableCoords = _classPrivateFieldGet(_options, this).visualToRenderableCoords(visualCoords);\n    let rowTransformDir = 0;\n    let colTransformDir = 0;\n    this.runLocalHooks('beforeTransformStart', delta);\n    if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null) {\n      const {\n        width,\n        height\n      } = _assertClassBrand(_Transformation_brand, this, _getTableSize).call(this);\n      const {\n        row,\n        col\n      } = _assertClassBrand(_Transformation_brand, this, _visualToZeroBasedCoords).call(this, visualCoords);\n      const fixedRowsBottom = _classPrivateFieldGet(_options, this).fixedRowsBottom();\n      const minSpareRows = _classPrivateFieldGet(_options, this).minSpareRows();\n      const minSpareCols = _classPrivateFieldGet(_options, this).minSpareCols();\n      const autoWrapRow = _classPrivateFieldGet(_options, this).autoWrapRow();\n      const autoWrapCol = _classPrivateFieldGet(_options, this).autoWrapCol();\n      const zeroBasedCoords = _classPrivateFieldGet(_options, this).createCellCoords(row + delta.row, col + delta.col);\n      if (zeroBasedCoords.row >= height) {\n        const isActionInterrupted = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"createObjectPropListener\"])(createMissingRecords && minSpareRows > 0 && fixedRowsBottom === 0);\n        const nextColumn = zeroBasedCoords.col + 1;\n        const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(zeroBasedCoords.row - height, nextColumn >= width ? nextColumn - width : nextColumn);\n        this.runLocalHooks('beforeColumnWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), nextColumn >= width);\n        if (isActionInterrupted.value) {\n          this.runLocalHooks('insertRowRequire', _classPrivateFieldGet(_options, this).countRenderableRows());\n        } else if (autoWrapCol) {\n          zeroBasedCoords.assign(newCoords);\n        }\n      } else if (zeroBasedCoords.row < 0) {\n        const isActionInterrupted = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"createObjectPropListener\"])(autoWrapCol);\n        const previousColumn = zeroBasedCoords.col - 1;\n        const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(height + zeroBasedCoords.row, previousColumn < 0 ? width + previousColumn : previousColumn);\n        this.runLocalHooks('beforeColumnWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), previousColumn < 0);\n        if (autoWrapCol) {\n          zeroBasedCoords.assign(newCoords);\n        }\n      }\n      if (zeroBasedCoords.col >= width) {\n        const isActionInterrupted = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"createObjectPropListener\"])(createMissingRecords && minSpareCols > 0);\n        const nextRow = zeroBasedCoords.row + 1;\n        const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(nextRow >= height ? nextRow - height : nextRow, zeroBasedCoords.col - width);\n        this.runLocalHooks('beforeRowWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), nextRow >= height);\n        if (isActionInterrupted.value) {\n          this.runLocalHooks('insertColRequire', _classPrivateFieldGet(_options, this).countRenderableColumns());\n        } else if (autoWrapRow) {\n          zeroBasedCoords.assign(newCoords);\n        }\n      } else if (zeroBasedCoords.col < 0) {\n        const isActionInterrupted = Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"createObjectPropListener\"])(autoWrapRow);\n        const previousRow = zeroBasedCoords.row - 1;\n        const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(previousRow < 0 ? height + previousRow : previousRow, width + zeroBasedCoords.col);\n        this.runLocalHooks('beforeRowWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), previousRow < 0);\n        if (autoWrapRow) {\n          zeroBasedCoords.assign(newCoords);\n        }\n      }\n      const {\n        rowDir,\n        colDir\n      } = _assertClassBrand(_Transformation_brand, this, _clampCoords).call(this, zeroBasedCoords);\n      rowTransformDir = rowDir;\n      colTransformDir = colDir;\n      visualCoords = _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, zeroBasedCoords);\n    }\n    this.runLocalHooks('afterTransformStart', visualCoords, rowTransformDir, colTransformDir);\n    return visualCoords;\n  }\n\n  /**\n   * Sets selection end cell relative to the current selection end cell (if possible).\n   *\n   * @param {number} rowDelta Rows number to move, value can be passed as negative number.\n   * @param {number} colDelta Columns number to move, value can be passed as negative number.\n   * @returns {CellCoords} Visual coordinates after transformation.\n   */\n  transformEnd(rowDelta, colDelta) {\n    const delta = _classPrivateFieldGet(_options, this).createCellCoords(rowDelta, colDelta);\n    const cellRange = _classPrivateFieldGet(_range, this).current();\n    const highlightRenderableCoords = _classPrivateFieldGet(_options, this).visualToRenderableCoords(cellRange.highlight);\n    const toRow = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, cellRange.to.row, cellRange.from.row);\n    const toColumn = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedColumn).call(this, cellRange.to.col, cellRange.from.col);\n    const visualCoords = cellRange.to.clone();\n    let rowTransformDir = 0;\n    let colTransformDir = 0;\n    this.runLocalHooks('beforeTransformEnd', delta);\n    if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null && toRow !== null && toColumn !== null) {\n      const {\n        row: highlightRow,\n        col: highlightColumn\n      } = _assertClassBrand(_Transformation_brand, this, _visualToZeroBasedCoords).call(this, cellRange.highlight);\n      const coords = _classPrivateFieldGet(_options, this).createCellCoords(toRow + delta.row, toColumn + delta.col);\n      const topStartCorner = cellRange.getTopStartCorner();\n      const topEndCorner = cellRange.getTopEndCorner();\n      const bottomEndCorner = cellRange.getBottomEndCorner();\n      if (delta.col < 0 && toColumn >= highlightColumn && coords.col < highlightColumn) {\n        const columnRestDelta = coords.col - highlightColumn;\n        coords.col = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedColumn).call(this, topStartCorner.col, topEndCorner.col) + columnRestDelta;\n      } else if (delta.col > 0 && toColumn <= highlightColumn && coords.col > highlightColumn) {\n        const endColumnIndex = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedColumn).call(this, topEndCorner.col, topStartCorner.col);\n        const columnRestDelta = Math.max(coords.col - endColumnIndex, 1);\n        coords.col = endColumnIndex + columnRestDelta;\n      }\n      if (delta.row < 0 && toRow >= highlightRow && coords.row < highlightRow) {\n        const rowRestDelta = coords.row - highlightRow;\n        coords.row = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, topStartCorner.row, bottomEndCorner.row) + rowRestDelta;\n      } else if (delta.row > 0 && toRow <= highlightRow && coords.row > highlightRow) {\n        const bottomRowIndex = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, bottomEndCorner.row, topStartCorner.row);\n        const rowRestDelta = Math.max(coords.row - bottomRowIndex, 1);\n        coords.row = bottomRowIndex + rowRestDelta;\n      }\n      const {\n        rowDir,\n        colDir\n      } = _assertClassBrand(_Transformation_brand, this, _clampCoords).call(this, coords);\n      rowTransformDir = rowDir;\n      colTransformDir = colDir;\n      const newVisualCoords = _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, coords);\n      if (delta.row === 0 && delta.col !== 0) {\n        visualCoords.col = newVisualCoords.col;\n      } else if (delta.row !== 0 && delta.col === 0) {\n        visualCoords.row = newVisualCoords.row;\n      } else {\n        visualCoords.row = newVisualCoords.row;\n        visualCoords.col = newVisualCoords.col;\n      }\n    }\n    this.runLocalHooks('afterTransformEnd', visualCoords, rowTransformDir, colTransformDir);\n    return visualCoords;\n  }\n\n  /**\n   * Sets the additional offset in table size that may occur when the `navigableHeaders` option\n   * is enabled.\n   *\n   * @param {{x: number, y: number}} offset Offset as x and y properties.\n   */\n  setOffsetSize(_ref) {\n    let {\n      x,\n      y\n    } = _ref;\n    _classPrivateFieldSet(_offset, this, {\n      x,\n      y\n    });\n  }\n\n  /**\n   * Resets the offset size to the default values.\n   */\n  resetOffsetSize() {\n    _classPrivateFieldSet(_offset, this, {\n      x: 0,\n      y: 0\n    });\n  }\n}\nfunction _clampCoords(zeroBasedCoords) {\n  const {\n    width,\n    height\n  } = _assertClassBrand(_Transformation_brand, this, _getTableSize).call(this);\n  let rowDir = 0;\n  let colDir = 0;\n  if (zeroBasedCoords.row < 0) {\n    rowDir = -1;\n    zeroBasedCoords.row = 0;\n  } else if (zeroBasedCoords.row > 0 && zeroBasedCoords.row >= height) {\n    rowDir = 1;\n    zeroBasedCoords.row = height - 1;\n  }\n  if (zeroBasedCoords.col < 0) {\n    colDir = -1;\n    zeroBasedCoords.col = 0;\n  } else if (zeroBasedCoords.col > 0 && zeroBasedCoords.col >= width) {\n    colDir = 1;\n    zeroBasedCoords.col = width - 1;\n  }\n  return {\n    rowDir,\n    colDir\n  };\n}\n/**\n * Gets the table size in number of rows with headers as \"height\" and number of columns with\n * headers as \"width\".\n *\n * @returns {{width: number, height: number}}\n */\nfunction _getTableSize() {\n  return {\n    width: _classPrivateFieldGet(_offset, this).x + _classPrivateFieldGet(_options, this).countRenderableColumns(),\n    height: _classPrivateFieldGet(_offset, this).y + _classPrivateFieldGet(_options, this).countRenderableRows()\n  };\n}\n/**\n * Finds the first non-hidden zero-based row in the table range.\n *\n * @param {number} visualRowFrom The visual row from which the search should start.\n * @param {number} visualRowTo The visual row to which the search should end.\n * @returns {number | null}\n */\nfunction _findFirstNonHiddenZeroBasedRow(visualRowFrom, visualRowTo) {\n  const row = _classPrivateFieldGet(_options, this).findFirstNonHiddenRenderableRow(visualRowFrom, visualRowTo);\n  if (row === null) {\n    return null;\n  }\n  return _classPrivateFieldGet(_offset, this).y + row;\n}\n/**\n * Finds the first non-hidden zero-based column in the table range.\n *\n * @param {number} visualColumnFrom The visual column from which the search should start.\n * @param {number} visualColumnTo The visual column to which the search should end.\n * @returns {number | null}\n */\nfunction _findFirstNonHiddenZeroBasedColumn(visualColumnFrom, visualColumnTo) {\n  const column = _classPrivateFieldGet(_options, this).findFirstNonHiddenRenderableColumn(visualColumnFrom, visualColumnTo);\n  if (column === null) {\n    return null;\n  }\n  return _classPrivateFieldGet(_offset, this).x + column;\n}\n/**\n * Translates the visual coordinates to zero-based ones.\n *\n * @param {CellCoords} visualCoords The visual coords to process.\n * @returns {CellCoords}\n */\nfunction _visualToZeroBasedCoords(visualCoords) {\n  const {\n    row,\n    col\n  } = _classPrivateFieldGet(_options, this).visualToRenderableCoords(visualCoords);\n  if (row === null || col === null) {\n    throw new Error('Renderable coords are not visible.');\n  }\n  return _classPrivateFieldGet(_options, this).createCellCoords(_classPrivateFieldGet(_offset, this).y + row, _classPrivateFieldGet(_offset, this).x + col);\n}\n/**\n * Translates the zero-based coordinates to visual ones.\n *\n * @param {CellCoords} zeroBasedCoords The coordinates to process.\n * @returns {CellCoords}\n */\nfunction _zeroBasedToVisualCoords(zeroBasedCoords) {\n  const coords = zeroBasedCoords.clone();\n  coords.col = zeroBasedCoords.col - _classPrivateFieldGet(_offset, this).x;\n  coords.row = zeroBasedCoords.row - _classPrivateFieldGet(_offset, this).y;\n  return _classPrivateFieldGet(_options, this).renderableToVisualCoords(coords);\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"mixin\"])(Transformation, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (Transformation);\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/transformation.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/selection/utils.mjs":
/*!*******************************************************!*\
  !*** ./node_modules/handsontable/selection/utils.mjs ***!
  \*******************************************************/
/*! exports provided: SELECTION_TYPE_UNRECOGNIZED, SELECTION_TYPE_EMPTY, SELECTION_TYPE_ARRAY, SELECTION_TYPE_OBJECT, SELECTION_TYPES, detectSelectionType, normalizeSelectionFactory, transformSelectionToColumnDistance, transformSelectionToRowDistance */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SELECTION_TYPE_UNRECOGNIZED\", function() { return SELECTION_TYPE_UNRECOGNIZED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SELECTION_TYPE_EMPTY\", function() { return SELECTION_TYPE_EMPTY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SELECTION_TYPE_ARRAY\", function() { return SELECTION_TYPE_ARRAY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SELECTION_TYPE_OBJECT\", function() { return SELECTION_TYPE_OBJECT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SELECTION_TYPES\", function() { return SELECTION_TYPES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"detectSelectionType\", function() { return detectSelectionType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeSelectionFactory\", function() { return normalizeSelectionFactory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transformSelectionToColumnDistance\", function() { return transformSelectionToColumnDistance; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transformSelectionToRowDistance\", function() { return transformSelectionToRowDistance; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./../3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\nconst SELECTION_TYPE_UNRECOGNIZED = 0;\nconst SELECTION_TYPE_EMPTY = 1;\nconst SELECTION_TYPE_ARRAY = 2;\nconst SELECTION_TYPE_OBJECT = 3;\nconst SELECTION_TYPES = [SELECTION_TYPE_OBJECT, SELECTION_TYPE_ARRAY];\nconst ARRAY_TYPE_PATTERN = [['number'], ['number', 'string'], ['number', 'undefined'], ['number', 'string', 'undefined']];\nconst rootCall = Symbol('root');\nconst childCall = Symbol('child');\n\n/**\n * Detect selection schema structure.\n *\n * @param {*} selectionRanges The selected range or and array of selected ranges. This type of data is produced by\n * `hot.getSelected()`, `hot.getSelectedLast()`, `hot.getSelectedRange()`\n * and `hot.getSelectedRangeLast()` methods.\n * @param {symbol} _callSymbol The symbol object which indicates source of the helper invocation.\n * @returns {number} Returns a number that specifies the type of detected selection schema. If selection schema type\n * is unrecognized than it returns `0`.\n */\nfunction detectSelectionType(selectionRanges) {\n  let _callSymbol = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : rootCall;\n  if (_callSymbol !== rootCall && _callSymbol !== childCall) {\n    throw new Error('The second argument is used internally only and cannot be overwritten.');\n  }\n  const isArray = Array.isArray(selectionRanges);\n  const isRootCall = _callSymbol === rootCall;\n  let result = SELECTION_TYPE_UNRECOGNIZED;\n  if (isArray) {\n    const firstItem = selectionRanges[0];\n    if (selectionRanges.length === 0) {\n      result = SELECTION_TYPE_EMPTY;\n    } else if (isRootCall && firstItem instanceof _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"CellRange\"]) {\n      result = SELECTION_TYPE_OBJECT;\n    } else if (isRootCall && Array.isArray(firstItem)) {\n      result = detectSelectionType(firstItem, childCall);\n    } else if (selectionRanges.length >= 2 && selectionRanges.length <= 4) {\n      const isArrayType = !selectionRanges.some((value, index) => !ARRAY_TYPE_PATTERN[index].includes(typeof value));\n      if (isArrayType) {\n        result = SELECTION_TYPE_ARRAY;\n      }\n    }\n  }\n  return result;\n}\n\n/**\n * Factory function designed for normalization data schema from different data structures of the selection ranges.\n *\n * @param {number} type Selection type which will be processed.\n * @param {object} options The normalization options.\n * @param {function(number, number): CellCoords} options.createCellCoords The factory function that returns an instance of the `CellCoords` class.\n * @param {function(CellCoords, CellCoords, CellCoords): CellRange} options.createCellRange The factory function that returns an instance of the `CellRange` class.\n * @param {boolean} [options.keepDirection=false] If `true`, the coordinates which contain the direction of the\n *                                                selected cells won't be changed. Otherwise, the selection will be\n *                                                normalized to values starting from top-left to bottom-right.\n * @param {Function} [options.propToCol] Pass the converting function (usually `datamap.propToCol`) if the column\n *                                       defined as props should be normalized to the numeric values.\n * @returns {number[]} Returns normalized data about selected range as an array (`[rowStart, columnStart, rowEnd, columnEnd]`).\n */\nfunction normalizeSelectionFactory(type) {\n  let {\n    createCellCoords,\n    createCellRange,\n    keepDirection = false,\n    propToCol\n  } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  if (!SELECTION_TYPES.includes(type)) {\n    throw new Error('Unsupported selection ranges schema type was provided.');\n  }\n  return function (selection) {\n    const isObjectType = type === SELECTION_TYPE_OBJECT;\n    let rowStart = isObjectType ? selection.from.row : selection[0];\n    let columnStart = isObjectType ? selection.from.col : selection[1];\n    let rowEnd = isObjectType ? selection.to.row : selection[2];\n    let columnEnd = isObjectType ? selection.to.col : selection[3];\n    if (typeof propToCol === 'function') {\n      if (typeof columnStart === 'string') {\n        columnStart = propToCol(columnStart);\n      }\n      if (typeof columnEnd === 'string') {\n        columnEnd = propToCol(columnEnd);\n      }\n    }\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_11__[\"isUndefined\"])(rowEnd)) {\n      rowEnd = rowStart;\n    }\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_11__[\"isUndefined\"])(columnEnd)) {\n      columnEnd = columnStart;\n    }\n    if (!keepDirection) {\n      const origRowStart = rowStart;\n      const origColumnStart = columnStart;\n      const origRowEnd = rowEnd;\n      const origColumnEnd = columnEnd;\n      rowStart = Math.min(origRowStart, origRowEnd);\n      columnStart = Math.min(origColumnStart, origColumnEnd);\n      rowEnd = Math.max(origRowStart, origRowEnd);\n      columnEnd = Math.max(origColumnStart, origColumnEnd);\n    }\n    const from = createCellCoords(rowStart, columnStart);\n    const to = createCellCoords(rowEnd, columnEnd);\n    return createCellRange(from, from, to);\n  };\n}\n\n/**\n * Function transform selection ranges (produced by `hot.getSelected()` and `hot.getSelectedRange()`) to normalized\n * data structure. It merges repeated ranges into consecutive coordinates. The returned structure\n * contains an array of arrays. The single item contains at index 0 visual column index from the selection was\n * started and at index 1 distance as a count of selected columns.\n *\n * @param {Core} hotInstance The Handsontable instance.\n * @returns {Array[]} Returns an array of arrays with ranges defines in that schema:\n *                   `[[visualColumnStart, distance], [visualColumnStart, distance], ...]`.\n *                   The column distances are always created starting from the left (zero index) to the\n *                   right (the latest column index).\n */\nfunction transformSelectionToColumnDistance(hotInstance) {\n  const selectionType = detectSelectionType(hotInstance.getSelected());\n  if (selectionType === SELECTION_TYPE_UNRECOGNIZED || selectionType === SELECTION_TYPE_EMPTY) {\n    return [];\n  }\n  const selectionSchemaNormalizer = normalizeSelectionFactory(selectionType, {\n    createCellCoords: hotInstance._createCellCoords.bind(hotInstance),\n    createCellRange: hotInstance._createCellRange.bind(hotInstance)\n  });\n  const unorderedIndexes = new Set();\n\n  // Iterate through all ranges and collect all column indexes which are not saved yet.\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_10__[\"arrayEach\"])(hotInstance.getSelected(), selection => {\n    const {\n      from,\n      to\n    } = selectionSchemaNormalizer(selection);\n    const columnNonHeaderStart = Math.max(from.col, 0);\n    const amount = to.col - columnNonHeaderStart + 1;\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_10__[\"arrayEach\"])(Array.from(new Array(amount), (_, i) => columnNonHeaderStart + i), index => {\n      if (!unorderedIndexes.has(index)) {\n        unorderedIndexes.add(index);\n      }\n    });\n  });\n\n  // Sort indexes in ascending order to easily detecting non-consecutive columns.\n  const orderedIndexes = Array.from(unorderedIndexes).sort((a, b) => a - b);\n  const normalizedColumnRanges = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_10__[\"arrayReduce\"])(orderedIndexes, (acc, visualColumnIndex, index, array) => {\n    if (index !== 0 && visualColumnIndex === array[index - 1] + 1) {\n      acc[acc.length - 1][1] += 1;\n    } else {\n      acc.push([visualColumnIndex, 1]);\n    }\n    return acc;\n  }, []);\n  return normalizedColumnRanges;\n}\n\n/**\n * Function transform selection ranges (produced by `hot.getSelected()` and `hot.getSelectedRange()`) to normalized\n * data structure. It merges repeated ranges into consecutive coordinates. The returned structure\n * contains an array of arrays. The single item contains at index 0 visual column index from the selection was\n * started and at index 1 distance as a count of selected columns.\n *\n * @param {Core} hotInstance The Handsontable instance.\n * @returns {Array[]} Returns an array of arrays with ranges defines in that schema:\n *                   `[[visualColumnStart, distance], [visualColumnStart, distance], ...]`.\n *                   The column distances are always created starting from the left (zero index) to the\n *                   right (the latest column index).\n */\nfunction transformSelectionToRowDistance(hotInstance) {\n  const selectionType = detectSelectionType(hotInstance.getSelected());\n  if (selectionType === SELECTION_TYPE_UNRECOGNIZED || selectionType === SELECTION_TYPE_EMPTY) {\n    return [];\n  }\n  const selectionSchemaNormalizer = normalizeSelectionFactory(selectionType, {\n    createCellCoords: hotInstance._createCellCoords.bind(hotInstance),\n    createCellRange: hotInstance._createCellRange.bind(hotInstance)\n  });\n  const unorderedIndexes = new Set();\n\n  // Iterate through all ranges and collect all column indexes which are not saved yet.\n  Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_10__[\"arrayEach\"])(hotInstance.getSelected(), selection => {\n    const {\n      from,\n      to\n    } = selectionSchemaNormalizer(selection);\n    const rowNonHeaderStart = Math.max(from.row, 0);\n    const amount = to.row - rowNonHeaderStart + 1;\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_10__[\"arrayEach\"])(Array.from(new Array(amount), (_, i) => rowNonHeaderStart + i), index => {\n      if (!unorderedIndexes.has(index)) {\n        unorderedIndexes.add(index);\n      }\n    });\n  });\n\n  // Sort indexes in ascending order to easily detecting non-consecutive columns.\n  const orderedIndexes = Array.from(unorderedIndexes).sort((a, b) => a - b);\n  const normalizedRowRanges = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_10__[\"arrayReduce\"])(orderedIndexes, (acc, rowIndex, index, array) => {\n    if (index !== 0 && rowIndex === array[index - 1] + 1) {\n      acc[acc.length - 1][1] += 1;\n    } else {\n      acc.push([rowIndex, 1]);\n    }\n    return acc;\n  }, []);\n  return normalizedRowRanges;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/selection/utils.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/editor/closeAndSave.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/editor/closeAndSave.mjs ***!
  \*************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'editorCloseAndSave',\n  callback(hot) {\n    const editorManager = hot._getEditorManager();\n    editorManager.closeEditorAndSaveChanges();\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/editor/closeAndSave.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/editor/closeAndSaveByArrowKeys.mjs":
/*!************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/editor/closeAndSaveByArrowKeys.mjs ***!
  \************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\n/* harmony import */ var _editors_baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../editors/baseEditor/index.mjs */ \"./node_modules/handsontable/editors/baseEditor/index.mjs\");\n\nconst command = {\n  name: 'editorCloseAndSaveByArrowKeys',\n  callback(hot, event, keys) {\n    const editorManager = hot._getEditorManager();\n    const activeEditor = editorManager.getActiveEditor();\n    if (activeEditor.isInFullEditMode() && activeEditor.state === _editors_baseEditor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_STATE\"].EDITING) {\n      return;\n    }\n    editorManager.closeEditorAndSaveChanges();\n    if (hot.getSelected()) {\n      if (keys.includes('arrowdown')) {\n        hot.selection.transformStart(1, 0);\n      } else if (keys.includes('arrowup')) {\n        hot.selection.transformStart(-1, 0);\n      } else if (keys.includes('arrowleft')) {\n        hot.selection.transformStart(0, -1 * hot.getDirectionFactor());\n      } else if (keys.includes('arrowright')) {\n        hot.selection.transformStart(0, hot.getDirectionFactor());\n      }\n    }\n    event.preventDefault();\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/editor/closeAndSaveByArrowKeys.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/editor/closeAndSaveByEnter.mjs":
/*!********************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/editor/closeAndSaveByEnter.mjs ***!
  \********************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'editorCloseAndSaveByEnter',\n  callback(hot, event) {\n    const editorManager = hot._getEditorManager();\n    editorManager.closeEditorAndSaveChanges(event.ctrlKey || event.metaKey);\n    editorManager.moveSelectionAfterEnter(event);\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/editor/closeAndSaveByEnter.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/editor/closeWithoutSaving.mjs":
/*!*******************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/editor/closeWithoutSaving.mjs ***!
  \*******************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'editorCloseWithoutSaving',\n  callback(hot) {\n    const editorManager = hot._getEditorManager();\n    editorManager.closeEditorAndRestoreOriginalValue(hot.getShortcutManager().isCtrlPressed());\n    editorManager.activeEditor.focus();\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/editor/closeWithoutSaving.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/editor/fastOpen.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/editor/fastOpen.mjs ***!
  \*********************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'editorFastOpen',\n  callback(hot, event) {\n    const {\n      highlight\n    } = hot.getSelectedRangeLast();\n    if (highlight.isHeader()) {\n      return;\n    }\n    hot._getEditorManager().openEditor(null, event, true);\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/editor/fastOpen.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/editor/index.mjs":
/*!******************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/editor/index.mjs ***!
  \******************************************************************************/
/*! exports provided: getAllCommands */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAllCommands\", function() { return getAllCommands; });\n/* harmony import */ var _closeAndSave_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./closeAndSave.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/editor/closeAndSave.mjs\");\n/* harmony import */ var _closeAndSaveByArrowKeys_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./closeAndSaveByArrowKeys.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/editor/closeAndSaveByArrowKeys.mjs\");\n/* harmony import */ var _closeAndSaveByEnter_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./closeAndSaveByEnter.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/editor/closeAndSaveByEnter.mjs\");\n/* harmony import */ var _closeWithoutSaving_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./closeWithoutSaving.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/editor/closeWithoutSaving.mjs\");\n/* harmony import */ var _fastOpen_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./fastOpen.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/editor/fastOpen.mjs\");\n/* harmony import */ var _open_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./open.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/editor/open.mjs\");\n\n\n\n\n\n\n/**\n * Returns complete list of the shortcut commands for the cells editing feature.\n *\n * @returns {Function[]}\n */\nfunction getAllCommands() {\n  return [_closeAndSave_mjs__WEBPACK_IMPORTED_MODULE_0__[\"command\"], _closeAndSaveByArrowKeys_mjs__WEBPACK_IMPORTED_MODULE_1__[\"command\"], _closeAndSaveByEnter_mjs__WEBPACK_IMPORTED_MODULE_2__[\"command\"], _closeWithoutSaving_mjs__WEBPACK_IMPORTED_MODULE_3__[\"command\"], _fastOpen_mjs__WEBPACK_IMPORTED_MODULE_4__[\"command\"], _open_mjs__WEBPACK_IMPORTED_MODULE_5__[\"command\"]];\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/editor/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/editor/open.mjs":
/*!*****************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/editor/open.mjs ***!
  \*****************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n\nconst command = {\n  name: 'editorOpen',\n  callback(hot, event, keys) {\n    const editorManager = hot._getEditorManager();\n    const selectedRange = hot.getSelectedRangeLast();\n    const {\n      highlight\n    } = selectedRange;\n\n    // supports for navigating with enter key when multiple cells are selected\n    if (hot.selection.isMultiple() && !selectedRange.isHeader() && hot.countRenderedCols() > 0 && hot.countRenderedRows() > 0) {\n      const settings = hot.getSettings();\n      const enterMoves = typeof settings.enterMoves === 'function' ? settings.enterMoves(event) : settings.enterMoves;\n      if (keys.includes('shift')) {\n        hot.selection.transformFocus(-enterMoves.row, -enterMoves.col);\n      } else {\n        hot.selection.transformFocus(enterMoves.row, enterMoves.col);\n      }\n      return;\n    }\n    if (highlight.isHeader()) {\n      return;\n    }\n\n    // supports editor opening with enter key\n    if (hot.getSettings().enterBeginsEditing) {\n      if (editorManager.cellProperties.readOnly) {\n        editorManager.moveSelectionAfterEnter(event);\n      } else {\n        editorManager.openEditor(null, event, true);\n      }\n    } else {\n      editorManager.moveSelectionAfterEnter(event);\n    }\n    Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_0__[\"stopImmediatePropagation\"])(event); // required by HandsontableEditor\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/editor/open.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/emptySelectedCells.mjs":
/*!************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/emptySelectedCells.mjs ***!
  \************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'emptySelectedCells',\n  callback(hot) {\n    hot.emptySelectedCells();\n    hot._getEditorManager().prepareEditor();\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/emptySelectedCells.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/down.mjs":
/*!*******************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/down.mjs ***!
  \*******************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'extendCellsSelectionDown',\n  callback(hot) {\n    const {\n      highlight\n    } = hot.getSelectedRangeLast();\n    if (!hot.selection.isSelectedByColumnHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByRowHeader())) {\n      hot.selection.transformEnd(1, 0);\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/down.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs":
/*!***********************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs ***!
  \***********************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'extendCellsSelectionDownByViewportHeight',\n  callback(hot) {\n    const {\n      to\n    } = hot.getSelectedRangeLast();\n    const nextRowIndexToSelect = Math.min(to.row + hot.countVisibleRows(), hot.countRows() - 1);\n    const row = hot.rowIndexMapper.getNearestNotHiddenIndex(nextRowIndexToSelect, -1);\n    if (row !== null) {\n      const coords = hot._createCellCoords(row, to.col);\n      const scrollPadding = to.row - hot.view.getFirstFullyVisibleRow();\n      const nextVerticalScroll = Math.min(coords.row - scrollPadding, hot.countRows() - 1);\n      hot.selection.setRangeEnd(coords);\n      hot.scrollViewportTo({\n        row: nextVerticalScroll,\n        verticalSnap: 'top',\n        horizontalSnap: 'start'\n      });\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/index.mjs":
/*!********************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/index.mjs ***!
  \********************************************************************************************/
/*! exports provided: getAllCommands */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAllCommands\", function() { return getAllCommands; });\n/* harmony import */ var _down_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./down.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/down.mjs\");\n/* harmony import */ var _downByViewportHeight_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./downByViewportHeight.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs\");\n/* harmony import */ var _left_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./left.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/left.mjs\");\n/* harmony import */ var _right_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./right.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/right.mjs\");\n/* harmony import */ var _toColumns_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./toColumns.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toColumns.mjs\");\n/* harmony import */ var _toMostBottom_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./toMostBottom.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs\");\n/* harmony import */ var _toMostInlineEnd_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./toMostInlineEnd.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs\");\n/* harmony import */ var _toMostInlineStart_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./toMostInlineStart.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs\");\n/* harmony import */ var _toMostLeft_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./toMostLeft.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs\");\n/* harmony import */ var _toMostRight_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./toMostRight.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs\");\n/* harmony import */ var _toMostTop_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./toMostTop.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs\");\n/* harmony import */ var _toRows_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./toRows.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toRows.mjs\");\n/* harmony import */ var _up_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./up.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/up.mjs\");\n/* harmony import */ var _upByViewportHeight_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./upByViewportHeight.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Returns complete list of the shortcut commands for the cells selection extending feature.\n *\n * @returns {Function[]}\n */\nfunction getAllCommands() {\n  return [_down_mjs__WEBPACK_IMPORTED_MODULE_0__[\"command\"], _downByViewportHeight_mjs__WEBPACK_IMPORTED_MODULE_1__[\"command\"], _left_mjs__WEBPACK_IMPORTED_MODULE_2__[\"command\"], _right_mjs__WEBPACK_IMPORTED_MODULE_3__[\"command\"], _toColumns_mjs__WEBPACK_IMPORTED_MODULE_4__[\"command\"], _toMostBottom_mjs__WEBPACK_IMPORTED_MODULE_5__[\"command\"], _toMostInlineEnd_mjs__WEBPACK_IMPORTED_MODULE_6__[\"command\"], _toMostInlineStart_mjs__WEBPACK_IMPORTED_MODULE_7__[\"command\"], _toMostLeft_mjs__WEBPACK_IMPORTED_MODULE_8__[\"command\"], _toMostRight_mjs__WEBPACK_IMPORTED_MODULE_9__[\"command\"], _toMostTop_mjs__WEBPACK_IMPORTED_MODULE_10__[\"command\"], _toRows_mjs__WEBPACK_IMPORTED_MODULE_11__[\"command\"], _up_mjs__WEBPACK_IMPORTED_MODULE_12__[\"command\"], _upByViewportHeight_mjs__WEBPACK_IMPORTED_MODULE_13__[\"command\"]];\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/left.mjs":
/*!*******************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/left.mjs ***!
  \*******************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'extendCellsSelectionLeft',\n  callback(hot) {\n    const {\n      highlight\n    } = hot.getSelectedRangeLast();\n    if (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader())) {\n      hot.selection.transformEnd(0, -1 * hot.getDirectionFactor());\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/left.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/right.mjs":
/*!********************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/right.mjs ***!
  \********************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'extendCellsSelectionRight',\n  callback(hot) {\n    const {\n      highlight\n    } = hot.getSelectedRangeLast();\n    if (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader())) {\n      hot.selection.transformEnd(0, hot.getDirectionFactor());\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/right.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toColumns.mjs":
/*!************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toColumns.mjs ***!
  \************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'extendCellsSelectionToColumns',\n  callback(hot) {\n    const {\n      highlight,\n      from,\n      to\n    } = hot.getSelectedRangeLast();\n    if (hot.selection.isSelectedByRowHeader()) {\n      hot.selection.selectAll(true, true);\n    } else {\n      hot.selectColumns(from.col, to.col, highlight);\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toColumns.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs":
/*!***************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs ***!
  \***************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'extendCellsSelectionToMostBottom',\n  callback(hot) {\n    const {\n      selection,\n      rowIndexMapper\n    } = hot;\n    const {\n      highlight,\n      from,\n      to\n    } = hot.getSelectedRangeLast();\n    const isFocusHighlightedByHeader = highlight.isHeader() && hot.selection.isSelectedByRowHeader();\n    if (highlight.isCell() || isFocusHighlightedByHeader) {\n      const row = rowIndexMapper.getNearestNotHiddenIndex(hot.countRows() - 1, -1);\n      const newFrom = from.clone();\n      newFrom.row = highlight.row;\n      selection.setRangeStart(newFrom, undefined, false, highlight.clone());\n\n      // Restore the row highlight by header flag after setting up a new selection.\n      if (isFocusHighlightedByHeader) {\n        selection.selectedByRowHeader.add(selection.getLayerLevel());\n      }\n      selection.setRangeEnd(hot._createCellCoords(row, to.col));\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs":
/*!******************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs ***!
  \******************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'extendCellsSelectionToMostInlineEnd',\n  callback(hot) {\n    const {\n      selection,\n      columnIndexMapper\n    } = hot;\n    const {\n      highlight,\n      from,\n      to\n    } = hot.getSelectedRangeLast();\n    if (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && highlight.isCell()) {\n      const column = columnIndexMapper.getNearestNotHiddenIndex(hot.countCols() - 1, -1);\n      const newFrom = from.clone();\n      newFrom.col = highlight.col;\n      selection.setRangeStart(newFrom, undefined, false, highlight.clone());\n      selection.setRangeEnd(hot._createCellCoords(to.row, column));\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs":
/*!********************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs ***!
  \********************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'extendCellsSelectionToMostInlineStart',\n  callback(hot) {\n    const {\n      selection,\n      columnIndexMapper\n    } = hot;\n    const {\n      highlight,\n      from,\n      to\n    } = hot.getSelectedRangeLast();\n    if (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && highlight.isCell()) {\n      const fixedColumns = parseInt(hot.getSettings().fixedColumnsStart, 10);\n      const column = columnIndexMapper.getNearestNotHiddenIndex(fixedColumns, 1);\n      const newFrom = from.clone();\n      newFrom.col = highlight.col;\n      selection.setRangeStart(newFrom, undefined, false, highlight.clone());\n      selection.setRangeEnd(hot._createCellCoords(to.row, column));\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs":
/*!*************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs ***!
  \*************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'extendCellsSelectionToMostLeft',\n  callback(hot) {\n    const {\n      selection,\n      columnIndexMapper\n    } = hot;\n    const {\n      highlight,\n      from,\n      to\n    } = hot.getSelectedRangeLast();\n    const isFocusHighlightedByHeader = highlight.isHeader() && hot.selection.isSelectedByColumnHeader();\n    if (highlight.isCell() || isFocusHighlightedByHeader) {\n      const column = columnIndexMapper.getNearestNotHiddenIndex(...(hot.isRtl() ? [hot.countCols() - 1, -1] : [0, 1]));\n      const newFrom = from.clone();\n      newFrom.col = highlight.col;\n      selection.setRangeStart(newFrom, undefined, false, highlight.clone());\n\n      // Restore the column highlight by header flag after setting up a new selection.\n      if (isFocusHighlightedByHeader) {\n        selection.selectedByColumnHeader.add(selection.getLayerLevel());\n      }\n      selection.setRangeEnd(hot._createCellCoords(to.row, column));\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs":
/*!**************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs ***!
  \**************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'extendCellsSelectionToMostRight',\n  callback(hot) {\n    const {\n      selection,\n      columnIndexMapper\n    } = hot;\n    const {\n      highlight,\n      from,\n      to\n    } = hot.getSelectedRangeLast();\n    const isFocusHighlightedByHeader = highlight.isHeader() && hot.selection.isSelectedByColumnHeader();\n    if (highlight.isCell() || isFocusHighlightedByHeader) {\n      const column = columnIndexMapper.getNearestNotHiddenIndex(...(hot.isRtl() ? [0, 1] : [hot.countCols() - 1, -1]));\n      const newFrom = from.clone();\n      newFrom.col = highlight.col;\n      selection.setRangeStart(newFrom, undefined, false, highlight.clone());\n\n      // Restore the column highlight by header flag after setting up a new selection.\n      if (isFocusHighlightedByHeader) {\n        selection.selectedByColumnHeader.add(selection.getLayerLevel());\n      }\n      selection.setRangeEnd(hot._createCellCoords(to.row, column));\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs":
/*!************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs ***!
  \************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'extendCellsSelectionToMostTop',\n  callback(hot) {\n    const {\n      selection,\n      rowIndexMapper\n    } = hot;\n    const {\n      highlight,\n      from,\n      to\n    } = hot.getSelectedRangeLast();\n    const isFocusHighlightedByHeader = highlight.isHeader() && hot.selection.isSelectedByRowHeader();\n    if (highlight.isCell() || isFocusHighlightedByHeader) {\n      const row = rowIndexMapper.getNearestNotHiddenIndex(0, 1);\n      const newFrom = from.clone();\n      newFrom.row = highlight.row;\n      selection.setRangeStart(newFrom, undefined, false, highlight.clone());\n\n      // Restore the row highlight by header flag after setting up a new selection.\n      if (isFocusHighlightedByHeader) {\n        selection.selectedByRowHeader.add(selection.getLayerLevel());\n      }\n      selection.setRangeEnd(hot._createCellCoords(row, to.col));\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toRows.mjs":
/*!*********************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toRows.mjs ***!
  \*********************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'extendCellsSelectionToRows',\n  callback(hot) {\n    const {\n      highlight,\n      from,\n      to\n    } = hot.getSelectedRangeLast();\n    if (hot.selection.isSelectedByColumnHeader()) {\n      hot.selection.selectAll(true, true);\n    } else {\n      hot.selectRows(from.row, to.row, highlight);\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/toRows.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/up.mjs":
/*!*****************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/up.mjs ***!
  \*****************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'extendCellsSelectionUp',\n  callback(hot) {\n    const {\n      highlight\n    } = hot.getSelectedRangeLast();\n    if (!hot.selection.isSelectedByColumnHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByRowHeader())) {\n      hot.selection.transformEnd(-1, 0);\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/up.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs":
/*!*********************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs ***!
  \*********************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'extendCellsSelectionUpByViewportHeight',\n  callback(hot) {\n    const {\n      to\n    } = hot.getSelectedRangeLast();\n    const nextRowIndexToSelect = Math.max(to.row - hot.countVisibleRows(), 0);\n    const row = hot.rowIndexMapper.getNearestNotHiddenIndex(nextRowIndexToSelect, 1);\n    if (row !== null) {\n      const coords = hot._createCellCoords(row, to.col);\n      const scrollPadding = to.row - hot.view.getFirstFullyVisibleRow();\n      const nextVerticalScroll = Math.max(coords.row - scrollPadding, 0);\n      hot.selection.setRangeEnd(coords);\n      hot.scrollViewportTo({\n        row: nextVerticalScroll,\n        verticalSnap: 'top',\n        horizontalSnap: 'start'\n      });\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/index.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/index.mjs ***!
  \***********************************************************************/
/*! exports provided: createKeyboardShortcutCommandsPool */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createKeyboardShortcutCommandsPool\", function() { return createKeyboardShortcutCommandsPool; });\n/* harmony import */ var _editor_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./editor/index.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/editor/index.mjs\");\n/* harmony import */ var _extendCellsSelection_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./extendCellsSelection/index.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/extendCellsSelection/index.mjs\");\n/* harmony import */ var _moveCellSelection_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./moveCellSelection/index.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/index.mjs\");\n/* harmony import */ var _emptySelectedCells_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./emptySelectedCells.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/emptySelectedCells.mjs\");\n/* harmony import */ var _scrollToFocusedCell_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./scrollToFocusedCell.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/scrollToFocusedCell.mjs\");\n/* harmony import */ var _selectAllCells_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./selectAllCells.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/selectAllCells.mjs\");\n/* harmony import */ var _selectAllCellsAndHeaders_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./selectAllCellsAndHeaders.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/selectAllCellsAndHeaders.mjs\");\n/* harmony import */ var _populateSelectedCellsData_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./populateSelectedCellsData.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/populateSelectedCellsData.mjs\");\n\n\n\n\n\n\n\n\nconst allCommands = [...Object(_editor_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getAllCommands\"])(), ...Object(_extendCellsSelection_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getAllCommands\"])(), ...Object(_moveCellSelection_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getAllCommands\"])(), _emptySelectedCells_mjs__WEBPACK_IMPORTED_MODULE_3__[\"command\"], _scrollToFocusedCell_mjs__WEBPACK_IMPORTED_MODULE_4__[\"command\"], _selectAllCells_mjs__WEBPACK_IMPORTED_MODULE_5__[\"command\"], _selectAllCellsAndHeaders_mjs__WEBPACK_IMPORTED_MODULE_6__[\"command\"], _populateSelectedCellsData_mjs__WEBPACK_IMPORTED_MODULE_7__[\"command\"]];\n\n/**\n * Prepares and creates an object with all available commands to trigger.\n *\n * @param {Handsontable} hot The Handsontable instance.\n * @returns {object}\n */\nfunction createKeyboardShortcutCommandsPool(hot) {\n  const commands = {};\n  allCommands.forEach(_ref => {\n    let {\n      name,\n      callback\n    } = _ref;\n    commands[name] = function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return callback(hot, ...args);\n    };\n  });\n  return commands;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/down.mjs":
/*!****************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/down.mjs ***!
  \****************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionDown',\n  callback(_ref) {\n    let {\n      selection\n    } = _ref;\n    selection.transformStart(1, 0);\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/down.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs":
/*!********************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs ***!
  \********************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionDownByViewportHeight',\n  callback(hot) {\n    const {\n      navigableHeaders\n    } = hot.getSettings();\n    const columnHeadersCount = navigableHeaders ? hot.countColHeaders() : 0;\n    const {\n      row\n    } = hot.getSelectedRangeLast().highlight;\n    let rowsStep = hot.countVisibleRows() + columnHeadersCount;\n\n    // if the last row is currently selected move the focus to the first row (if autoWrap is enabled)\n    if (row === hot.countRows() - 1) {\n      rowsStep = 1;\n\n      // if the next move would move the focus off the table calculate the delta to move the selection to\n      // the last row\n    } else if (row + rowsStep > hot.countRows()) {\n      rowsStep = hot.countRows() - row - 1;\n    }\n    hot.selection.transformStart(rowsStep, 0);\n    if (hot.getSelectedRangeLast().highlight.row < 0) {\n      hot.scrollViewportTo({\n        row: 0\n      });\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/index.mjs":
/*!*****************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/index.mjs ***!
  \*****************************************************************************************/
/*! exports provided: getAllCommands */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAllCommands\", function() { return getAllCommands; });\n/* harmony import */ var _down_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./down.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/down.mjs\");\n/* harmony import */ var _downByViewportHeight_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./downByViewportHeight.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs\");\n/* harmony import */ var _inlineEnd_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./inlineEnd.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs\");\n/* harmony import */ var _inlineStart_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./inlineStart.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/inlineStart.mjs\");\n/* harmony import */ var _left_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./left.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/left.mjs\");\n/* harmony import */ var _right_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./right.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/right.mjs\");\n/* harmony import */ var _toMostBottom_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./toMostBottom.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs\");\n/* harmony import */ var _toMostBottomInlineEnd_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./toMostBottomInlineEnd.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs\");\n/* harmony import */ var _toMostInlineEnd_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./toMostInlineEnd.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs\");\n/* harmony import */ var _toMostInlineStart_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./toMostInlineStart.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs\");\n/* harmony import */ var _toMostLeft_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./toMostLeft.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs\");\n/* harmony import */ var _toMostRight_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./toMostRight.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostRight.mjs\");\n/* harmony import */ var _toMostTop_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./toMostTop.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostTop.mjs\");\n/* harmony import */ var _toMostTopInlineStart_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./toMostTopInlineStart.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs\");\n/* harmony import */ var _up_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./up.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/up.mjs\");\n/* harmony import */ var _upByViewportHeight_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./upByViewportHeight.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Returns complete list of the shortcut commands for the cells moving feature.\n *\n * @returns {Function[]}\n */\nfunction getAllCommands() {\n  return [_down_mjs__WEBPACK_IMPORTED_MODULE_0__[\"command\"], _downByViewportHeight_mjs__WEBPACK_IMPORTED_MODULE_1__[\"command\"], _inlineEnd_mjs__WEBPACK_IMPORTED_MODULE_2__[\"command\"], _inlineStart_mjs__WEBPACK_IMPORTED_MODULE_3__[\"command\"], _left_mjs__WEBPACK_IMPORTED_MODULE_4__[\"command\"], _right_mjs__WEBPACK_IMPORTED_MODULE_5__[\"command\"], _toMostBottom_mjs__WEBPACK_IMPORTED_MODULE_6__[\"command\"], _toMostBottomInlineEnd_mjs__WEBPACK_IMPORTED_MODULE_7__[\"command\"], _toMostInlineEnd_mjs__WEBPACK_IMPORTED_MODULE_8__[\"command\"], _toMostInlineStart_mjs__WEBPACK_IMPORTED_MODULE_9__[\"command\"], _toMostLeft_mjs__WEBPACK_IMPORTED_MODULE_10__[\"command\"], _toMostRight_mjs__WEBPACK_IMPORTED_MODULE_11__[\"command\"], _toMostTop_mjs__WEBPACK_IMPORTED_MODULE_12__[\"command\"], _toMostTopInlineStart_mjs__WEBPACK_IMPORTED_MODULE_13__[\"command\"], _up_mjs__WEBPACK_IMPORTED_MODULE_14__[\"command\"], _upByViewportHeight_mjs__WEBPACK_IMPORTED_MODULE_15__[\"command\"]];\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs":
/*!*********************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs ***!
  \*********************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionInlineEnd',\n  callback(hot, event) {\n    const settings = hot.getSettings();\n    const selectedRange = hot.getSelectedRangeLast();\n    const tabMoves = typeof settings.tabMoves === 'function' ? settings.tabMoves(event) : settings.tabMoves;\n    if (hot.selection.isMultiple() && !selectedRange.isHeader() && hot.countRenderedCols() > 0 && hot.countRenderedRows() > 0) {\n      hot.selection.transformFocus(-tabMoves.row, -tabMoves.col);\n    } else {\n      hot.selection.transformStart(-tabMoves.row, -tabMoves.col);\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/inlineStart.mjs":
/*!***********************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/inlineStart.mjs ***!
  \***********************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionInlineStart',\n  callback(hot, event) {\n    const settings = hot.getSettings();\n    const selectedRange = hot.getSelectedRangeLast();\n    const tabMoves = typeof settings.tabMoves === 'function' ? settings.tabMoves(event) : settings.tabMoves;\n    if (hot.selection.isMultiple() && !selectedRange.isHeader() && hot.countRenderedCols() > 0 && hot.countRenderedRows() > 0) {\n      hot.selection.transformFocus(tabMoves.row, tabMoves.col);\n    } else {\n      hot.selection.transformStart(tabMoves.row, tabMoves.col);\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/inlineStart.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/left.mjs":
/*!****************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/left.mjs ***!
  \****************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionLeft',\n  callback(hot) {\n    hot.selection.transformStart(0, -1 * hot.getDirectionFactor());\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/left.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/right.mjs":
/*!*****************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/right.mjs ***!
  \*****************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionRight',\n  callback(hot) {\n    hot.selection.transformStart(0, hot.getDirectionFactor());\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/right.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs":
/*!************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs ***!
  \************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionToMostBottom',\n  callback(hot) {\n    const {\n      col\n    } = hot.getSelectedRangeLast().highlight;\n    let row = hot.rowIndexMapper.getNearestNotHiddenIndex(hot.countRows() - 1, -1);\n    if (row === null) {\n      row = -1;\n    }\n    hot.selection.setRangeStart(hot._createCellCoords(row, col));\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs":
/*!*********************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs ***!
  \*********************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionToMostBottomInlineEnd',\n  callback(hot) {\n    const {\n      selection,\n      rowIndexMapper,\n      columnIndexMapper\n    } = hot;\n    const fixedRows = parseInt(hot.getSettings().fixedRowsBottom, 10);\n    const row = rowIndexMapper.getNearestNotHiddenIndex(hot.countRows() - fixedRows - 1, -1);\n    const column = columnIndexMapper.getNearestNotHiddenIndex(hot.countCols() - 1, -1);\n    selection.setRangeStart(hot._createCellCoords(row, column));\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs":
/*!***************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs ***!
  \***************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionToMostInlineEnd',\n  callback(hot) {\n    const {\n      selection,\n      columnIndexMapper\n    } = hot;\n    selection.setRangeStart(hot._createCellCoords(hot.getSelectedRangeLast().highlight.row, columnIndexMapper.getNearestNotHiddenIndex(hot.countCols() - 1, -1)));\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs":
/*!*****************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs ***!
  \*****************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionToMostInlineStart',\n  callback(hot) {\n    const {\n      selection,\n      columnIndexMapper\n    } = hot;\n    const fixedColumns = parseInt(hot.getSettings().fixedColumnsStart, 10);\n    const row = hot.getSelectedRangeLast().highlight.row;\n    const column = columnIndexMapper.getNearestNotHiddenIndex(fixedColumns, 1);\n    selection.setRangeStart(hot._createCellCoords(row, column));\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs":
/*!**********************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs ***!
  \**********************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionToMostLeft',\n  callback(hot) {\n    const {\n      selection,\n      columnIndexMapper\n    } = hot;\n    const row = hot.getSelectedRangeLast().highlight.row;\n    let column = columnIndexMapper.getNearestNotHiddenIndex(...(hot.isRtl() ? [hot.countCols() - 1, -1] : [0, 1]));\n    if (column === null) {\n      column = hot.isRtl() ? -1 : -hot.countRowHeaders();\n    }\n    selection.setRangeStart(hot._createCellCoords(row, column));\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostRight.mjs":
/*!***********************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostRight.mjs ***!
  \***********************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionToMostRight',\n  callback(hot) {\n    const {\n      selection,\n      columnIndexMapper\n    } = hot;\n    const {\n      row\n    } = hot.getSelectedRangeLast().highlight;\n    let column = columnIndexMapper.getNearestNotHiddenIndex(...(hot.isRtl() ? [0, 1] : [hot.countCols() - 1, -1]));\n    if (column === null) {\n      column = hot.isRtl() ? -hot.countRowHeaders() : -1;\n    }\n    selection.setRangeStart(hot._createCellCoords(row, column));\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostRight.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostTop.mjs":
/*!*********************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostTop.mjs ***!
  \*********************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionToMostTop',\n  callback(hot) {\n    const {\n      col\n    } = hot.getSelectedRangeLast().highlight;\n    let row = hot.rowIndexMapper.getNearestNotHiddenIndex(0, 1);\n    if (row === null) {\n      row = -hot.countColHeaders();\n    }\n    hot.selection.setRangeStart(hot._createCellCoords(row, col));\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostTop.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs":
/*!********************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs ***!
  \********************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionToMostTopInlineStart',\n  callback(hot) {\n    const {\n      selection,\n      rowIndexMapper,\n      columnIndexMapper\n    } = hot;\n    const fixedRows = parseInt(hot.getSettings().fixedRowsTop, 10);\n    const fixedColumns = parseInt(hot.getSettings().fixedColumnsStart, 10);\n    const row = rowIndexMapper.getNearestNotHiddenIndex(fixedRows, 1);\n    const column = columnIndexMapper.getNearestNotHiddenIndex(fixedColumns, 1);\n    selection.setRangeStart(hot._createCellCoords(row, column));\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/up.mjs":
/*!**************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/up.mjs ***!
  \**************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionUp',\n  callback(_ref) {\n    let {\n      selection\n    } = _ref;\n    selection.transformStart(-1, 0);\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/up.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs":
/*!******************************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs ***!
  \******************************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'moveCellSelectionUpByViewportHight',\n  callback(hot) {\n    const {\n      navigableHeaders\n    } = hot.getSettings();\n    const columnHeadersCount = navigableHeaders ? hot.countColHeaders() : 0;\n    const {\n      row\n    } = hot.getSelectedRangeLast().highlight;\n    let rowsStep = -(hot.countVisibleRows() + columnHeadersCount);\n\n    // if the first row is currently selected move the focus to the last row (if autoWrap is enabled)\n    if (row === -columnHeadersCount) {\n      rowsStep = -1;\n\n      // if the next move would move the focus off the table calculate the delta to move the selection to\n      // the first row\n    } else if (row + rowsStep < columnHeadersCount) {\n      rowsStep = -(row + columnHeadersCount);\n    }\n    hot.selection.transformStart(rowsStep, 0);\n    if (hot.getSelectedRangeLast().highlight.row < 0) {\n      hot.scrollViewportTo({\n        row: 0\n      });\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/populateSelectedCellsData.mjs":
/*!*******************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/populateSelectedCellsData.mjs ***!
  \*******************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'populateSelectedCellsData',\n  callback(hot) {\n    const selectedRange = hot.getSelectedRange();\n    const {\n      row: highlightRow,\n      col: highlightColumn\n    } = selectedRange[selectedRange.length - 1].highlight.normalize();\n    const valueToPopulate = hot.getDataAtCell(highlightRow, highlightColumn);\n    const cellValues = new Map();\n    for (let i = 0; i < selectedRange.length; i++) {\n      selectedRange[i].forAll((row, column) => {\n        if (row >= 0 && column >= 0 && (row !== highlightRow || column !== highlightColumn)) {\n          const {\n            readOnly\n          } = hot.getCellMeta(row, column);\n          if (!readOnly) {\n            cellValues.set(`${row}x${column}`, [row, column, valueToPopulate]);\n          }\n        }\n      });\n    }\n    hot.setDataAtCell(Array.from(cellValues.values()));\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/populateSelectedCellsData.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/scrollToFocusedCell.mjs":
/*!*************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/scrollToFocusedCell.mjs ***!
  \*************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'scrollToFocusedCell',\n  callback(hot) {\n    const {\n      highlight\n    } = hot.getSelectedRangeLast();\n    const firstVisibleRow = hot.view.getFirstFullyVisibleRow() - 1;\n    const firstVisibleColumn = hot.view.getFirstFullyVisibleColumn() - 1;\n    const lastVisibleRow = hot.view.getLastFullyVisibleRow() + 1;\n    const lastVisibleColumn = hot.view.getLastFullyVisibleColumn() + 1;\n    const visibleCoordsFrom = hot._createCellCoords(firstVisibleRow, firstVisibleColumn);\n    const visibleCoordsTo = hot._createCellCoords(lastVisibleRow, lastVisibleColumn);\n    const visibleRange = hot._createCellRange(visibleCoordsFrom, visibleCoordsFrom, visibleCoordsTo);\n    if (!visibleRange.includes(highlight) && (highlight.row >= 0 || highlight.col >= 0)) {\n      const scrollCoords = {};\n      if (highlight.col >= 0) {\n        const offsetColumns = Math.floor(hot.countVisibleCols() / 2);\n        scrollCoords.col = Math.max(highlight.col - offsetColumns, 0);\n      }\n      if (highlight.row >= 0) {\n        const offsetRows = Math.floor(hot.countVisibleRows() / 2);\n        scrollCoords.row = Math.max(highlight.row - offsetRows, 0);\n      }\n      hot.scrollViewportTo({\n        ...scrollCoords,\n        verticalSnap: 'top',\n        horizontalSnap: 'start'\n      });\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/scrollToFocusedCell.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/selectAllCells.mjs":
/*!********************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/selectAllCells.mjs ***!
  \********************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'selectAllCells',\n  callback(hot) {\n    hot.selection.selectAll(true, true, {\n      disableHeadersHighlight: true\n    });\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/selectAllCells.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/commands/selectAllCellsAndHeaders.mjs":
/*!******************************************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/commands/selectAllCellsAndHeaders.mjs ***!
  \******************************************************************************************/
/*! exports provided: command */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"command\", function() { return command; });\nconst command = {\n  name: 'selectAllCellsAndHeaders',\n  callback(hot) {\n    hot.selection.selectAll(true, true, {\n      disableHeadersHighlight: false\n    });\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/commands/selectAllCellsAndHeaders.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/constants.mjs":
/*!******************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/constants.mjs ***!
  \******************************************************************/
/*! exports provided: GRID_GROUP, EDITOR_EDIT_GROUP */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GRID_GROUP\", function() { return GRID_GROUP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_EDIT_GROUP\", function() { return EDITOR_EDIT_GROUP; });\n/**\n * Group name for keyboard shortcuts that are active when the cell is selected.\n */\nconst GRID_GROUP = 'gridDefault';\n/**\n * Group name for keyboard shortcuts that are active when the cell editor is active.\n */\nconst EDITOR_EDIT_GROUP = 'editorManager.handlingEditor';\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/constants.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/editor.mjs":
/*!***************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/editor.mjs ***!
  \***************************************************************/
/*! exports provided: shortcutsEditorContext */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shortcutsEditorContext\", function() { return shortcutsEditorContext; });\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/shortcutContexts/constants.mjs\");\n/* harmony import */ var _commands_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./commands/index.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/index.mjs\");\n\n\n/**\n * The context that defines a base shortcut list available for cells editors.\n *\n * @param {Handsontable} hot The Handsontable instance.\n */\nfunction shortcutsEditorContext(hot) {\n  const context = hot.getShortcutManager().addContext('editor');\n  const commandsPool = Object(_commands_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"createKeyboardShortcutCommandsPool\"])(hot);\n  const config = {\n    group: _constants_mjs__WEBPACK_IMPORTED_MODULE_0__[\"EDITOR_EDIT_GROUP\"]\n  };\n  context.addShortcuts([{\n    keys: [['Enter'], ['Enter', 'Shift']],\n    callback: (event, keys) => commandsPool.editorCloseAndSaveByEnter(event, keys)\n  }, {\n    keys: [['Enter', 'Control/Meta'], ['Enter', 'Control/Meta', 'Shift']],\n    captureCtrl: true,\n    callback: (event, keys) => commandsPool.editorCloseAndSaveByEnter(event, keys)\n  }, {\n    keys: [['Tab'], ['Tab', 'Shift'], ['PageDown'], ['PageUp']],\n    forwardToContext: hot.getShortcutManager().getContext('grid'),\n    callback: (event, keys) => commandsPool.editorCloseAndSave(event, keys)\n  }, {\n    keys: [['ArrowDown'], ['ArrowUp'], ['ArrowLeft'], ['ArrowRight']],\n    preventDefault: false,\n    callback: (event, keys) => commandsPool.editorCloseAndSaveByArrowKeys(event, keys)\n  }, {\n    keys: [['Escape'], ['Escape', 'Control/Meta']],\n    callback: () => commandsPool.editorCloseWithoutSaving()\n  }], config);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/editor.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/grid.mjs":
/*!*************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/grid.mjs ***!
  \*************************************************************/
/*! exports provided: shortcutsGridContext */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shortcutsGridContext\", function() { return shortcutsGridContext; });\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/shortcutContexts/constants.mjs\");\n/* harmony import */ var _commands_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./commands/index.mjs */ \"./node_modules/handsontable/shortcutContexts/commands/index.mjs\");\n\n\n\n/**\n * The context that defines shortcut list available for selected cell or cells.\n *\n * @param {Handsontable} hot The Handsontable instance.\n */\nfunction shortcutsGridContext(hot) {\n  const context = hot.getShortcutManager().addContext('grid');\n  const commandsPool = Object(_commands_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"createKeyboardShortcutCommandsPool\"])(hot);\n  const config = {\n    runOnlyIf: () => {\n      const {\n        navigableHeaders\n      } = hot.getSettings();\n      return Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isDefined\"])(hot.getSelected()) && (navigableHeaders || !navigableHeaders && hot.countRenderedRows() > 0 && hot.countRenderedCols() > 0);\n    },\n    group: _constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"GRID_GROUP\"]\n  };\n  context.addShortcuts([{\n    keys: [['F2']],\n    callback: event => commandsPool.editorFastOpen(event)\n  }, {\n    keys: [['Enter'], ['Enter', 'Shift']],\n    callback: (event, keys) => commandsPool.editorOpen(event, keys)\n  }, {\n    keys: [['Backspace'], ['Delete']],\n    callback: () => commandsPool.emptySelectedCells()\n  }], {\n    group: _constants_mjs__WEBPACK_IMPORTED_MODULE_1__[\"EDITOR_EDIT_GROUP\"],\n    runOnlyIf: () => Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isDefined\"])(hot.getSelected())\n  });\n  context.addShortcuts([{\n    keys: [['Control/Meta', 'A']],\n    callback: () => commandsPool.selectAllCells(),\n    runOnlyIf: () => !hot.getSelectedRangeLast().highlight.isHeader()\n  }, {\n    keys: [['Control/Meta', 'A']],\n    callback: () => {},\n    runOnlyIf: () => hot.getSelectedRangeLast().highlight.isHeader(),\n    preventDefault: true\n  }, {\n    keys: [['Control/Meta', 'Shift', 'Space']],\n    callback: () => commandsPool.selectAllCellsAndHeaders()\n  }, {\n    keys: [['Control/Meta', 'Enter']],\n    callback: () => commandsPool.populateSelectedCellsData(),\n    runOnlyIf: () => {\n      return !hot.getSelectedRangeLast().highlight.isHeader() && hot.getSelectedRangeLast().getCellsCount() > 1;\n    }\n  }, {\n    keys: [['Control', 'Space']],\n    captureCtrl: true,\n    callback: () => commandsPool.extendCellsSelectionToColumns()\n  }, {\n    keys: [['Shift', 'Space']],\n    stopPropagation: true,\n    callback: () => commandsPool.extendCellsSelectionToRows()\n  }, {\n    keys: [['ArrowUp']],\n    callback: () => commandsPool.moveCellSelectionUp()\n  }, {\n    keys: [['ArrowUp', 'Control/Meta']],\n    captureCtrl: true,\n    callback: () => commandsPool.moveCellSelectionToMostTop()\n  }, {\n    keys: [['ArrowUp', 'Shift']],\n    callback: () => commandsPool.extendCellsSelectionUp()\n  }, {\n    keys: [['ArrowUp', 'Shift', 'Control/Meta']],\n    captureCtrl: true,\n    callback: () => commandsPool.extendCellsSelectionToMostTop(),\n    runOnlyIf: () => !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByColumnHeader())\n  }, {\n    keys: [['ArrowDown']],\n    callback: () => commandsPool.moveCellSelectionDown()\n  }, {\n    keys: [['ArrowDown', 'Control/Meta']],\n    captureCtrl: true,\n    callback: () => commandsPool.moveCellSelectionToMostBottom()\n  }, {\n    keys: [['ArrowDown', 'Shift']],\n    callback: () => commandsPool.extendCellsSelectionDown()\n  }, {\n    keys: [['ArrowDown', 'Shift', 'Control/Meta']],\n    captureCtrl: true,\n    callback: () => commandsPool.extendCellsSelectionToMostBottom(),\n    runOnlyIf: () => !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByColumnHeader())\n  }, {\n    keys: [['ArrowLeft']],\n    callback: () => commandsPool.moveCellSelectionLeft()\n  }, {\n    keys: [['ArrowLeft', 'Control/Meta']],\n    captureCtrl: true,\n    callback: () => commandsPool.moveCellSelectionToMostLeft()\n  }, {\n    keys: [['ArrowLeft', 'Shift']],\n    callback: () => commandsPool.extendCellsSelectionLeft()\n  }, {\n    keys: [['ArrowLeft', 'Shift', 'Control/Meta']],\n    captureCtrl: true,\n    callback: () => commandsPool.extendCellsSelectionToMostLeft(),\n    runOnlyIf: () => !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByRowHeader())\n  }, {\n    keys: [['ArrowRight']],\n    callback: () => commandsPool.moveCellSelectionRight()\n  }, {\n    keys: [['ArrowRight', 'Control/Meta']],\n    captureCtrl: true,\n    callback: () => commandsPool.moveCellSelectionToMostRight()\n  }, {\n    keys: [['ArrowRight', 'Shift']],\n    callback: () => commandsPool.extendCellsSelectionRight()\n  }, {\n    keys: [['ArrowRight', 'Shift', 'Control/Meta']],\n    captureCtrl: true,\n    callback: () => commandsPool.extendCellsSelectionToMostRight(),\n    runOnlyIf: () => !(hot.selection.isSelectedByCorner() || hot.selection.isSelectedByRowHeader())\n  }, {\n    keys: [['Home']],\n    captureCtrl: true,\n    callback: () => commandsPool.moveCellSelectionToMostInlineStart(),\n    runOnlyIf: () => hot.view.isMainTableNotFullyCoveredByOverlays()\n  }, {\n    keys: [['Home', 'Shift']],\n    callback: () => commandsPool.extendCellsSelectionToMostInlineStart()\n  }, {\n    keys: [['Home', 'Control/Meta']],\n    captureCtrl: true,\n    callback: () => commandsPool.moveCellSelectionToMostTopInlineStart(),\n    runOnlyIf: () => hot.view.isMainTableNotFullyCoveredByOverlays()\n  }, {\n    keys: [['End']],\n    captureCtrl: true,\n    callback: () => commandsPool.moveCellSelectionToMostInlineEnd(),\n    runOnlyIf: () => hot.view.isMainTableNotFullyCoveredByOverlays()\n  }, {\n    keys: [['End', 'Shift']],\n    callback: () => commandsPool.extendCellsSelectionToMostInlineEnd()\n  }, {\n    keys: [['End', 'Control/Meta']],\n    captureCtrl: true,\n    callback: () => commandsPool.moveCellSelectionToMostBottomInlineEnd(),\n    runOnlyIf: () => hot.view.isMainTableNotFullyCoveredByOverlays()\n  }, {\n    keys: [['PageUp']],\n    callback: () => commandsPool.moveCellSelectionUpByViewportHight()\n  }, {\n    keys: [['PageUp', 'Shift']],\n    callback: () => commandsPool.extendCellsSelectionUpByViewportHeight()\n  }, {\n    keys: [['PageDown']],\n    callback: () => commandsPool.moveCellSelectionDownByViewportHeight()\n  }, {\n    keys: [['PageDown', 'Shift']],\n    callback: () => commandsPool.extendCellsSelectionDownByViewportHeight()\n  }, {\n    keys: [['Tab']],\n    // The property value is controlled by focusCatcher module (https://github.com/handsontable/handsontable/blob/master/handsontable/src/core/focusCatcher/index.js)\n    preventDefault: false,\n    callback: event => commandsPool.moveCellSelectionInlineStart(event)\n  }, {\n    keys: [['Shift', 'Tab']],\n    // The property value is controlled by focusCatcher module (https://github.com/handsontable/handsontable/blob/master/handsontable/src/core/focusCatcher/index.js)\n    preventDefault: false,\n    callback: event => commandsPool.moveCellSelectionInlineEnd(event)\n  }, {\n    keys: [['Control/Meta', 'Backspace']],\n    callback: () => commandsPool.scrollToFocusedCell()\n  }], config);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/grid.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcutContexts/index.mjs":
/*!**************************************************************!*\
  !*** ./node_modules/handsontable/shortcutContexts/index.mjs ***!
  \**************************************************************/
/*! exports provided: GRID_GROUP, EDITOR_EDIT_GROUP, registerAllShortcutContexts */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerAllShortcutContexts\", function() { return registerAllShortcutContexts; });\n/* harmony import */ var _editor_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./editor.mjs */ \"./node_modules/handsontable/shortcutContexts/editor.mjs\");\n/* harmony import */ var _grid_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./grid.mjs */ \"./node_modules/handsontable/shortcutContexts/grid.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants.mjs */ \"./node_modules/handsontable/shortcutContexts/constants.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"GRID_GROUP\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"GRID_GROUP\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EDITOR_EDIT_GROUP\", function() { return _constants_mjs__WEBPACK_IMPORTED_MODULE_2__[\"EDITOR_EDIT_GROUP\"]; });\n\n\n\n\n/**\n * Register all shortcut contexts.\n *\n * @param {Handsontable} hotInstance The Handsontable instance.\n */\nfunction registerAllShortcutContexts(hotInstance) {\n  [_grid_mjs__WEBPACK_IMPORTED_MODULE_1__[\"shortcutsGridContext\"], _editor_mjs__WEBPACK_IMPORTED_MODULE_0__[\"shortcutsEditorContext\"]].forEach(context => context(hotInstance));\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcutContexts/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcuts/context.mjs":
/*!*********************************************************!*\
  !*** ./node_modules/handsontable/shortcuts/context.mjs ***!
  \*********************************************************/
/*! exports provided: isContextObject, createContext */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isContextObject\", function() { return isContextObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createContext\", function() { return createContext; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _utils_dataStructures_uniqueMap_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/dataStructures/uniqueMap.mjs */ \"./node_modules/handsontable/utils/dataStructures/uniqueMap.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/shortcuts/utils.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n\n\n\n\n\n\n\n\nconst __kindOf = Symbol('shortcut-context');\n\n/**\n * Checks if the provided object is a context object.\n *\n * @param {*} objectToCheck An object to check.\n * @returns {boolean}\n */\nfunction isContextObject(objectToCheck) {\n  return Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_6__[\"isObject\"])(objectToCheck) && objectToCheck.__kindOf === __kindOf;\n}\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * The `ShortcutContext` API lets you store and manage [keyboard shortcuts](@/guides/navigation/keyboard-shortcuts/keyboard-shortcuts.md) in a given [context](@/guides/navigation/keyboard-shortcuts/keyboard-shortcuts.md#keyboard-shortcut-contexts).\n *\n * Each `ShortcutContext` object stores and manages its own set of keyboard shortcuts.\n *\n * @alias ShortcutContext\n * @class ShortcutContext\n * @param {string} name The name of the keyboard shortcut context\n * @returns {object}\n */\nconst createContext = name => {\n  const SHORTCUTS = Object(_utils_dataStructures_uniqueMap_mjs__WEBPACK_IMPORTED_MODULE_2__[\"createUniqueMap\"])({\n    errorIdExists: keys => `The \"${keys}\" shortcut is already registered in the \"${name}\" context.`\n  });\n\n  /**\n   * Add a keyboard shortcut to this context.\n   *\n   * @memberof ShortcutContext#\n   * @param {object} options The shortcut's options\n   * @param {Array<Array<string>>} options.keys Names of the shortcut's keys,\n   * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),\n   * in lowercase or uppercase, unified across browsers\n   * @param {Function} options.callback The shortcut's action\n   * @param {object} options.group A group of shortcuts to which the shortcut belongs\n   * @param {object} [options.runOnlyIf] A condition on which the shortcut's action runs\n   * @param {object} [options.stopPropagation=false] If set to `true`: stops the event's propagation\n   * @param {object} [options.captureCtrl=false] If set to `true`: captures the state of the Control/Meta modifier key\n   * @param {object} [options.preventDefault=true] If set to `true`: prevents the default behavior\n   * @param {object} [options.position='after'] The order in which the shortcut's action runs:\n   * `'before'` or `'after'` the `relativeToGroup` group of actions\n   * @param {object} [options.relativeToGroup] The name of a group of actions, used to determine an action's `position`\n   * @param {object} [options.forwardToContext] The context object where the event will be forwarded to.\n   */\n  const addShortcut = function () {\n    let {\n      keys,\n      callback,\n      group,\n      runOnlyIf = () => true,\n      captureCtrl = false,\n      preventDefault = true,\n      stopPropagation = false,\n      relativeToGroup,\n      position,\n      forwardToContext\n    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isUndefined\"])(group)) {\n      throw new Error('You need to define the shortcut\\'s group.');\n    }\n    if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isFunction\"])(callback) === false) {\n      throw new Error('The shortcut\\'s callback needs to be a function.');\n    }\n    if (Array.isArray(keys) === false) {\n      throw new Error(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_7__[\"toSingleLine\"]`Pass the shortcut\\'s keys as an array of arrays,\\x20\n      using the KeyboardEvent.key properties:\\x20\n      https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values.`);\n    }\n    const newShortcut = {\n      callback,\n      group,\n      runOnlyIf,\n      captureCtrl,\n      preventDefault,\n      stopPropagation\n    };\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isDefined\"])(relativeToGroup)) {\n      newShortcut.relativeToGroup = relativeToGroup;\n      newShortcut.position = position;\n    }\n    if (isContextObject(forwardToContext)) {\n      newShortcut.forwardToContext = forwardToContext;\n    }\n    keys.forEach(keyCombination => {\n      const normalizedKeys = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_3__[\"normalizeKeys\"])(keyCombination);\n      const hasKeyCombination = SHORTCUTS.hasItem(normalizedKeys);\n      if (hasKeyCombination) {\n        const shortcuts = SHORTCUTS.getItem(normalizedKeys);\n        let insertionIndex = shortcuts.findIndex(shortcut => shortcut.group === relativeToGroup);\n        if (insertionIndex !== -1) {\n          if (position === 'before') {\n            insertionIndex -= 1;\n          } else {\n            insertionIndex += 1;\n          }\n        } else {\n          insertionIndex = shortcuts.length;\n        }\n        shortcuts.splice(insertionIndex, 0, newShortcut);\n      } else {\n        SHORTCUTS.addItem(normalizedKeys, [newShortcut]);\n      }\n    });\n  };\n\n  /**\n   * Add multiple keyboard shortcuts to this context.\n   *\n   * @memberof ShortcutContext#\n   * @param {Array<object>} shortcuts List of shortcuts to add to this shortcut context\n   * @param {object} [options] A shortcut's options\n   * @param {Function} [options.callback] A shortcut's action\n   * @param {object} [options.group] A group of shortcuts to which a shortcut belongs\n   * @param {object} [options.runOnlyIf] A condition on which a shortcut's action runs\n   * @param {object} [options.stopPropagation=false] If set to `true`: stops the event's propagation\n   * @param {object} [options.preventDefault=true] If set to `true`: prevents the default behavior\n   * @param {object} [options.position='after'] The order in which a shortcut's action runs:\n   * `'before'` or `'after'` a `relativeToGroup` group of actions\n   * @param {object} [options.relativeToGroup] The name of a group of actions, used to determine an action's `position`\n   * @param {object} [options.forwardToContext] The context object where the event will be forwarded to.\n   */\n  const addShortcuts = function (shortcuts) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    shortcuts.forEach(shortcut => {\n      Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_6__[\"objectEach\"])(options, (value, key) => {\n        if (Object.prototype.hasOwnProperty.call(shortcut, key) === false) {\n          shortcut[key] = options[key];\n        }\n      });\n      addShortcut(shortcut);\n    });\n  };\n\n  /**\n   * Remove a shortcut from this context.\n   *\n   * @memberof ShortcutContext#\n   * @param {Array<string>} keys Names of the shortcut's keys,\n   * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),\n   * in lowercase or uppercase, unified across browsers\n   */\n  const removeShortcutsByKeys = keys => {\n    const normalizedKeys = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_3__[\"normalizeKeys\"])(keys);\n    SHORTCUTS.removeItem(normalizedKeys);\n  };\n\n  /**\n   * Remove a group of shortcuts from this context.\n   *\n   * @memberof ShortcutContext#\n   * @param {string} group The name of the group of shortcuts\n   */\n  const removeShortcutsByGroup = group => {\n    const shortcuts = SHORTCUTS.getItems();\n    shortcuts.forEach(_ref => {\n      let [normalizedKeys, shortcutOptions] = _ref;\n      const leftOptions = shortcutOptions.filter(option => option.group !== group);\n      if (leftOptions.length === 0) {\n        removeShortcutsByKeys(Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_3__[\"getKeysList\"])(normalizedKeys));\n      } else {\n        shortcutOptions.length = 0;\n        shortcutOptions.push(...leftOptions);\n      }\n    });\n  };\n\n  /**\n   * Get a shortcut's details.\n   *\n   * @memberof ShortcutContext#\n   * @param {Array<string>} keys Names of the shortcut's keys,\n   * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),\n   * in lowercase or uppercase, unified across browsers\n   * @returns {Array}\n   */\n  const getShortcuts = keys => {\n    const normalizedKeys = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_3__[\"normalizeKeys\"])(keys);\n    const shortcuts = SHORTCUTS.getItem(normalizedKeys);\n    return Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isDefined\"])(shortcuts) ? shortcuts.slice() : [];\n  };\n\n  /**\n   * Check if a shortcut exists in this context.\n   *\n   * @memberof ShortcutContext#\n   * @param {Array<string>} keys Names of the shortcut's keys,\n   * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),\n   * in lowercase or uppercase, unified across browsers\n   * @returns {boolean}\n   */\n  const hasShortcut = keys => {\n    const normalizedKeys = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_3__[\"normalizeKeys\"])(keys);\n    return SHORTCUTS.hasItem(normalizedKeys);\n  };\n  return {\n    __kindOf,\n    addShortcut,\n    addShortcuts,\n    getShortcuts,\n    hasShortcut,\n    removeShortcutsByKeys,\n    removeShortcutsByGroup\n  };\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcuts/context.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcuts/index.mjs":
/*!*******************************************************!*\
  !*** ./node_modules/handsontable/shortcuts/index.mjs ***!
  \*******************************************************/
/*! exports provided: createShortcutManager */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _manager_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./manager.mjs */ \"./node_modules/handsontable/shortcuts/manager.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createShortcutManager\", function() { return _manager_mjs__WEBPACK_IMPORTED_MODULE_0__[\"createShortcutManager\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcuts/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcuts/keyObserver.mjs":
/*!*************************************************************!*\
  !*** ./node_modules/handsontable/shortcuts/keyObserver.mjs ***!
  \*************************************************************/
/*! exports provided: createKeysObserver */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createKeysObserver\", function() { return createKeysObserver; });\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n\n\n\n\n\n\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * Create a key observer.\n *\n * @returns {object}\n */\nfunction createKeysObserver() {\n  const PRESSED_KEYS = new Set();\n  return {\n    /**\n     * Press a key.\n     *\n     * @param {string} key Names of the shortcut's keys,\n     * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),\n     * in lowercase or uppercase, unified across browsers\n     */\n    press(key) {\n      PRESSED_KEYS.add(key);\n    },\n    /**\n     * Release a pressed key.\n     *\n     * @param {string} key Names of the shortcut's keys,\n     * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),\n     * in lowercase or uppercase, unified across browsers\n     */\n    release(key) {\n      PRESSED_KEYS.delete(key);\n    },\n    /**\n     * Release all pressed keys.\n     */\n    releaseAll() {\n      PRESSED_KEYS.clear();\n    },\n    /**\n     * Check if a key is pressed.\n     *\n     * @param {string} key Names of the shortcut's keys,\n     * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),\n     * in lowercase or uppercase, unified across browsers\n     * @returns {boolean}\n     */\n    isPressed(key) {\n      return PRESSED_KEYS.has(key);\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcuts/keyObserver.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcuts/manager.mjs":
/*!*********************************************************!*\
  !*** ./node_modules/handsontable/shortcuts/manager.mjs ***!
  \*********************************************************/
/*! exports provided: createShortcutManager */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createShortcutManager\", function() { return createShortcutManager; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _utils_dataStructures_uniqueMap_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/dataStructures/uniqueMap.mjs */ \"./node_modules/handsontable/utils/dataStructures/uniqueMap.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _context_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./context.mjs */ \"./node_modules/handsontable/shortcuts/context.mjs\");\n/* harmony import */ var _recorder_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./recorder.mjs */ \"./node_modules/handsontable/shortcuts/recorder.mjs\");\n/* harmony import */ var _helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helpers/templateLiteralTag.mjs */ \"./node_modules/handsontable/helpers/templateLiteralTag.mjs\");\n\n\n\n\n\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * The `ShortcutManager` API lets you store and manage [keyboard shortcut contexts](@/guides/navigation/keyboard-shortcuts/keyboard-shortcuts.md#keyboard-shortcut-contexts) ([`ShortcutContext`](@/api/shortcutContext.md)).\n *\n * Each `ShortcutManager` object:\n * - Stores and manages its own set of keyboard shortcut contexts.\n * - Listens to the [`KeyboardEvent`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent) events and runs actions for them.\n *\n * @alias ShortcutManager\n * @class ShortcutManager\n * @param {object} options The manager's options\n * @param {EventTarget} options.ownerWindow A starting `window` element\n * @param {Function} options.handleEvent A condition on which `event` is handled.\n * @param {Function} options.beforeKeyDown A hook fired before the `keydown` event is handled. You can use it to [block a keyboard shortcut's actions](@/guides/navigation/keyboard-shortcuts/keyboard-shortcuts.md#block-a-keyboard-shortcut-s-actions).\n * @param {Function} options.afterKeyDown A hook fired after the `keydown` event is handled\n */\nconst createShortcutManager = _ref => {\n  let {\n    ownerWindow,\n    handleEvent,\n    beforeKeyDown,\n    afterKeyDown\n  } = _ref;\n  /**\n   * A unique map that stores keyboard shortcut contexts.\n   *\n   * @type {UniqueMap}\n   */\n  const CONTEXTS = Object(_utils_dataStructures_uniqueMap_mjs__WEBPACK_IMPORTED_MODULE_1__[\"createUniqueMap\"])({\n    errorIdExists: keys => `The \"${keys}\" context name is already registered.`\n  });\n  /**\n   * The name of the active [`ShortcutContext`](@/api/shortcutContext.md).\n   *\n   * @type {string}\n   */\n  let activeContextName = 'grid';\n\n  /**\n   * Create a new [`ShortcutContext`](@/api/shortcutContext.md) object.\n   *\n   * @memberof ShortcutManager#\n   * @param {string} contextName The name of the new shortcut context\n   * @returns {object}\n   */\n  const addContext = contextName => {\n    const context = Object(_context_mjs__WEBPACK_IMPORTED_MODULE_3__[\"createContext\"])(contextName);\n    CONTEXTS.addItem(contextName, context);\n    return context;\n  };\n\n  /**\n   * Get the ID of the active [`ShortcutContext`](@/api/shortcutContext.md).\n   *\n   * @memberof ShortcutManager#\n   * @returns {string}\n   */\n  const getActiveContextName = () => {\n    return activeContextName;\n  };\n\n  /**\n   * Get a keyboard shortcut context by its name.\n   *\n   * @memberof ShortcutManager#\n   * @param {string} contextName The name of the shortcut context\n   * @returns {object|undefined} A [`ShortcutContext`](@/api/shortcutContext.md) object that stores registered shortcuts\n   */\n  const getContext = contextName => {\n    return CONTEXTS.getItem(contextName);\n  };\n\n  /**\n   * Start listening to keyboard shortcuts within a given [`ShortcutContext`](@/api/shortcutContext.md).\n   *\n   * @memberof ShortcutManager#\n   * @param {string} contextName The name of the shortcut context\n   */\n  const setActiveContextName = contextName => {\n    if (!CONTEXTS.hasItem(contextName)) {\n      throw new Error(_helpers_templateLiteralTag_mjs__WEBPACK_IMPORTED_MODULE_5__[\"toSingleLine\"]`You've tried to activate the \"${contextName}\" shortcut context\\x20\n        that does not exist. Before activation, register the context using the \"addContext\" method.`);\n    }\n    activeContextName = contextName;\n  };\n\n  /**\n   * This variable relates to the `captureCtrl` shortcut option,\n   * which allows for capturing the state of the Control/Meta modifier key.\n   * Some of the default keyboard shortcuts related to cell selection need this feature for working properly.\n   *\n   * @type {boolean}\n   */\n  let isCtrlKeySilenced = false;\n\n  /**\n   * A callback function for listening events from the recorder.\n   *\n   * @param {KeyboardEvent} event The keyboard event.\n   * @param {string[]} keys Names of the shortcut's keys,\n   * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),\n   * in lowercase or uppercase, unified across browsers.\n   * @param {object | string} context The context object or name.\n   * @returns {boolean}\n   */\n  const recorderCallback = function (event, keys) {\n    let context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getActiveContextName();\n    const activeContext = Object(_context_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isContextObject\"])(context) ? context : getContext(context);\n    let isExecutionCancelled = false;\n    if (!activeContext.hasShortcut(keys)) {\n      return isExecutionCancelled;\n    }\n\n    // Processing just actions being in stack at the moment of shortcut pressing (without respecting additions/removals performed dynamically).\n    const shortcuts = activeContext.getShortcuts(keys);\n    for (let index = 0; index < shortcuts.length; index++) {\n      const {\n        callback,\n        runOnlyIf,\n        preventDefault,\n        stopPropagation,\n        captureCtrl,\n        forwardToContext\n      } = shortcuts[index];\n      if (runOnlyIf(event) === true) {\n        isCtrlKeySilenced = captureCtrl;\n        isExecutionCancelled = callback(event, keys) === false;\n        isCtrlKeySilenced = false;\n        if (preventDefault) {\n          event.preventDefault();\n        }\n        if (stopPropagation) {\n          Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_2__[\"stopImmediatePropagation\"])(event);\n          event.stopPropagation();\n        }\n        if (isExecutionCancelled) {\n          break;\n        }\n        if (forwardToContext) {\n          recorderCallback(event, keys, forwardToContext);\n        }\n      }\n    }\n    return isExecutionCancelled;\n  };\n\n  /**\n   * Internal key recorder.\n   *\n   * @private\n   */\n  const keyRecorder = Object(_recorder_mjs__WEBPACK_IMPORTED_MODULE_4__[\"useRecorder\"])(ownerWindow, handleEvent, beforeKeyDown, afterKeyDown, recorderCallback);\n  keyRecorder.mount();\n  return {\n    addContext,\n    getActiveContextName,\n    getContext,\n    setActiveContextName,\n    /**\n     * Returns whether `control` or `meta` keys are pressed.\n     *\n     * @memberof ShortcutManager#\n     * @type {Function}\n     * @returns {boolean}\n     */\n    isCtrlPressed: () => !isCtrlKeySilenced && (keyRecorder.isPressed('control') || keyRecorder.isPressed('meta')),\n    /**\n     * Release every previously pressed key.\n     *\n     * @type {Function}\n     * @memberof ShortcutManager#\n     */\n    releasePressedKeys: () => keyRecorder.releasePressedKeys(),\n    /**\n     * Destroy a context manager instance.\n     *\n     * @type {Function}\n     * @memberof ShortcutManager#\n     */\n    destroy: () => keyRecorder.unmount()\n  };\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcuts/manager.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcuts/recorder.mjs":
/*!**********************************************************!*\
  !*** ./node_modules/handsontable/shortcuts/recorder.mjs ***!
  \**********************************************************/
/*! exports provided: useRecorder */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useRecorder\", function() { return useRecorder; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _keyObserver_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keyObserver.mjs */ \"./node_modules/handsontable/shortcuts/keyObserver.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/shortcuts/utils.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helpers/browser.mjs */ \"./node_modules/handsontable/helpers/browser.mjs\");\n\n\n\n\n\n\nconst MODIFIER_KEYS = ['meta', 'alt', 'shift', 'control'];\nconst modifierKeysObserver = Object(_keyObserver_mjs__WEBPACK_IMPORTED_MODULE_1__[\"createKeysObserver\"])();\nconst modKeyListeners = [];\nlet instanceCounter = 0;\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * A key recorder, used for tracking key events.\n *\n * @param {EventTarget} ownerWindow A starting `window` element\n * @param {Function} handleEvent A condition on which event is handled.\n * @param {Function} beforeKeyDown A hook fired before the `keydown` event is handled.\n * @param {Function} afterKeyDown A hook fired after the `keydown` event is handled\n * @param {Function} callback `KeyEvent`'s listener's callback function\n * @returns {object}\n */\nfunction useRecorder(ownerWindow, handleEvent, beforeKeyDown, afterKeyDown, callback) {\n  /**\n   * Check if a pressed key is tracked or not.\n   *\n   * @param {string} pressedKey A pressed key\n   * @returns {boolean}\n   */\n  const isModifierKey = pressedKey => {\n    return MODIFIER_KEYS.includes(pressedKey);\n  };\n\n  /**\n   * Get every pressed modifier key from the performed `KeyboardEvent`.\n   *\n   * @private\n   * @param {KeyboardEvent} event The event object.\n   * @param {boolean} [mergeMetaKeys=false] If `true,` the function will return the \"control\" and \"meta\"\n   *                                        modifiers keys as the \"control/meta\" name. This allows creating\n   *                                        keyboard shortcuts with modifier key that trigger the shortcut\n   *                                        actions depend on the OS keyboard layout (the Meta key for macOS\n   *                                        and Control for non macOS system).\n   * @returns {string[]}\n   */\n  const getPressedModifierKeys = function (event) {\n    let mergeMetaKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    const pressedModifierKeys = [];\n    if (event.altKey) {\n      pressedModifierKeys.push('alt');\n    }\n    if (mergeMetaKeys && (event.ctrlKey || event.metaKey)) {\n      pressedModifierKeys.push('control/meta');\n    } else {\n      if (event.ctrlKey) {\n        pressedModifierKeys.push('control');\n      }\n      if (event.metaKey) {\n        pressedModifierKeys.push('meta');\n      }\n    }\n    if (event.shiftKey) {\n      pressedModifierKeys.push('shift');\n    }\n    return pressedModifierKeys;\n  };\n\n  /**\n   * `KeyboardEvent`'s callback function\n   *\n   * @private\n   * @param {KeyboardEvent} event The event object\n   */\n  const onkeydown = event => {\n    if (handleEvent(event) === false) {\n      return;\n    }\n    const result = beforeKeyDown(event);\n\n    // keyCode 229 aka 'uninitialized' doesn't take into account with editors. This key code is\n    // produced when unfinished character is entering using the IME editor. It is fired on macOS,\n    // Windows and linux (ubuntu) with installed ibus-pinyin package.\n    if (event.keyCode === 229 || result === false || Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_3__[\"isImmediatePropagationStopped\"])(event)) {\n      return;\n    }\n    const pressedKey = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_2__[\"normalizeEventKey\"])(event);\n    let extraModifierKeys = [];\n    if (!isModifierKey(pressedKey)) {\n      extraModifierKeys = getPressedModifierKeys(event);\n    }\n    const pressedKeys = [pressedKey].concat(extraModifierKeys);\n    const isExecutionCancelled = callback(event, pressedKeys);\n    if (!isExecutionCancelled && (Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isMacOS\"])() && extraModifierKeys.includes('meta') || !Object(_helpers_browser_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isMacOS\"])() && extraModifierKeys.includes('control'))) {\n      // Trigger the callback for the virtual OS-dependent \"control/meta\" key\n      callback(event, [pressedKey].concat(getPressedModifierKeys(event, true)));\n    }\n    afterKeyDown(event);\n  };\n\n  /**\n   * `KeyboardEvent`'s callback function for observing the pressed state of the mod keys.\n   *\n   * @private\n   * @param {KeyboardEvent} event The event object\n   */\n  const onkeydownForModKeys = event => {\n    if (event.key) {\n      const pressedKey = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_2__[\"normalizeEventKey\"])(event);\n      if (isModifierKey(pressedKey)) {\n        modifierKeysObserver.press(pressedKey);\n      }\n    }\n  };\n\n  /**\n   * `KeyboardEvent`'s callback function for observing the pressed state of the mod keys.\n   *\n   * @private\n   * @param {KeyboardEvent} event The event object\n   */\n  const onkeyupForModKeys = event => {\n    if (event.key) {\n      const pressedKey = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_2__[\"normalizeEventKey\"])(event);\n      if (isModifierKey(pressedKey)) {\n        modifierKeysObserver.release(pressedKey);\n      }\n    }\n  };\n\n  /**\n   * `FocusEvent`'s callback function\n   *\n   * @private\n   */\n  const onblur = () => {\n    modifierKeysObserver.releaseAll();\n  };\n\n  /**\n   * Add event listeners to the starting window and its parents' windows.\n   */\n  const mount = () => {\n    let eventTarget = ownerWindow;\n    instanceCounter += 1;\n    while (eventTarget) {\n      if (instanceCounter === 1) {\n        eventTarget.document.documentElement.addEventListener('keydown', onkeydownForModKeys);\n        modKeyListeners.push({\n          event: 'keydown',\n          listener: onkeydownForModKeys\n        });\n        eventTarget.document.documentElement.addEventListener('keyup', onkeyupForModKeys);\n        modKeyListeners.push({\n          event: 'keyup',\n          listener: onkeyupForModKeys\n        });\n      }\n      eventTarget.document.documentElement.addEventListener('keydown', onkeydown);\n      eventTarget.document.documentElement.addEventListener('blur', onblur);\n      eventTarget = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getParentWindow\"])(eventTarget);\n    }\n  };\n\n  /**\n   * Remove event listeners from the starting window and its parents' windows.\n   */\n  const unmount = () => {\n    let eventTarget = ownerWindow;\n    instanceCounter -= 1;\n    while (eventTarget) {\n      if (instanceCounter === 0) {\n        for (let i = 0; i < modKeyListeners.length; i++) {\n          const {\n            event,\n            listener\n          } = modKeyListeners[i];\n          eventTarget.document.documentElement.removeEventListener(event, listener);\n        }\n        modKeyListeners.length = 0;\n      }\n      eventTarget.document.documentElement.removeEventListener('keydown', onkeydown);\n      eventTarget.document.documentElement.removeEventListener('blur', onblur);\n      eventTarget = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getParentWindow\"])(eventTarget);\n    }\n  };\n  return {\n    mount,\n    unmount,\n    isPressed: key => modifierKeysObserver.isPressed(key),\n    releasePressedKeys: () => modifierKeysObserver.releaseAll()\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcuts/recorder.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/shortcuts/utils.mjs":
/*!*******************************************************!*\
  !*** ./node_modules/handsontable/shortcuts/utils.mjs ***!
  \*******************************************************/
/*! exports provided: normalizeKeys, getKeysList, normalizeEventKey */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeKeys\", function() { return normalizeKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getKeysList\", function() { return getKeysList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeEventKey\", function() { return normalizeEventKey; });\n// This file handles key-name discrepancies between browsers.\n// For the list of discrepancies, go to: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values.\nconst mappings = new Map([[' ', 'space'],\n// custom mapping\n['spacebar', 'space'], ['scroll', 'scrolllock'], ['del', 'delete'], ['esc', 'escape'], ['medianexttrack', 'mediatracknext'], ['mediaprevioustrack', 'mediatrackprevious'], ['volumeup', 'audiovolumeup'], ['volumedown', 'audiovolumedown'], ['volumemute', 'audiovolumemute'], ['multiply', '*'], ['add', '+'], ['divide', '/'], ['subtract', '-'], ['left', 'arrowleft'], ['right', 'arrowright'], ['up', 'arrowup'], ['down', 'arrowdown']]);\n\n/* eslint-disable jsdoc/require-description-complete-sentence */\n\n/**\n * Get a single, normalized string from the list of the `KeyboardEvent.key` properties.\n *\n * @param {Array<string>} keys The list of the `KeyboardEvent.key` properties\n * @returns {string}\n */\nconst normalizeKeys = keys => {\n  return keys.map(key => {\n    const lowercaseKey = key.toLowerCase();\n    if (mappings.has(lowercaseKey)) {\n      return mappings.get(lowercaseKey);\n    }\n    return lowercaseKey;\n  }).sort().join('+');\n};\n\n/**\n * Get the list of the `KeyboardEvent.key` properties from a single, normalized string.\n *\n * @param {string} normalizedKeys A single, normalized string that contains the list of the `KeyboardEvent.key` properties\n * @returns {Array<string>}\n */\nconst getKeysList = normalizedKeys => {\n  return normalizedKeys.split('+');\n};\nconst specialCharactersSet = new Map([[186, 'semicolon'], [187, 'equal'], [188, 'comma'], [189, 'minus'], [190, 'period'], [191, 'slash'], [192, 'backquote'], [219, 'bracketleft'], [220, 'backslash'], [221, 'bracketright'], [222, 'quote']]);\n\n/**\n * Normalizes a keyboard event key value to a key before its modification.\n *\n * Keep in mind that there is difference between `key` and `code` properties of the KeyboardEvent object.\n * The `key` property represents the logical key on the keyboard (after applying modifiers and taking\n * the keyboard layout into account), where the `code` property represents the physical key\n * (regardless of what is printed on the key). Using the `keyCode` for alphanumeric keys,\n * solves the problem and allows to get the correct key value. The value that takes the keyboard layout\n * into account but is not modified by the modifiers (e.g. Alt + L would give polish \"ł\" we want \"l\").\n *\n * @param {Event} event The KeyboardEvent object.\n * @returns {string}\n */\nconst normalizeEventKey = _ref => {\n  let {\n    which,\n    key\n  } = _ref;\n  if (specialCharactersSet.has(which)) {\n    return specialCharactersSet.get(which);\n  }\n  const normalizedKey = String.fromCharCode(which).toLowerCase();\n  if (/^[a-z0-9]$/.test(normalizedKey)) {\n    return normalizedKey;\n  }\n  return key.toLowerCase();\n};\n\n//# sourceURL=webpack:///./node_modules/handsontable/shortcuts/utils.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/tableView.mjs":
/*!*************************************************!*\
  !*** ./node_modules/handsontable/tableView.mjs ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _eventManager_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./eventManager.mjs */ \"./node_modules/handsontable/eventManager.mjs\");\n/* harmony import */ var _helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helpers/dom/event.mjs */ \"./node_modules/handsontable/helpers/dom/event.mjs\");\n/* harmony import */ var _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./3rdparty/walkontable/src/index.mjs */ \"./node_modules/handsontable/3rdparty/walkontable/src/index.mjs\");\n/* harmony import */ var _selection_mouseEventHandler_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./selection/mouseEventHandler.mjs */ \"./node_modules/handsontable/selection/mouseEventHandler.mjs\");\n/* harmony import */ var _utils_rootInstance_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/rootInstance.mjs */ \"./node_modules/handsontable/utils/rootInstance.mjs\");\n/* harmony import */ var _helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./helpers/a11y.mjs */ \"./node_modules/handsontable/helpers/a11y.mjs\");\n\n\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n\n\n\n\n\n/**\n * @class TableView\n * @private\n */\nvar _columnHeadersCount = /*#__PURE__*/new WeakMap();\nvar _rowHeadersCount = /*#__PURE__*/new WeakMap();\nvar _selectionMouseDown = /*#__PURE__*/new WeakMap();\nvar _mouseDown = /*#__PURE__*/new WeakMap();\nvar _table = /*#__PURE__*/new WeakMap();\nvar _lastWidth = /*#__PURE__*/new WeakMap();\nvar _lastHeight = /*#__PURE__*/new WeakMap();\nvar _TableView_brand = /*#__PURE__*/new WeakSet();\nclass TableView {\n  /**\n   * @param {Hanstontable} hotInstance Instance of {@link Handsontable}.\n   */\n  constructor(hotInstance) {\n    /**\n     * Return the value of the `aria-colcount` attribute.\n     *\n     * @returns {number} The value of the `aria-colcount` attribute.\n     */\n    _classPrivateMethodInitSpec(this, _TableView_brand);\n    /**\n     * Instance of {@link Handsontable}.\n     *\n     * @private\n     * @type {Handsontable}\n     */\n    _defineProperty(this, \"hot\", void 0);\n    /**\n     * Instance of {@link EventManager}.\n     *\n     * @private\n     * @type {EventManager}\n     */\n    _defineProperty(this, \"eventManager\", void 0);\n    /**\n     * Current Handsontable's GridSettings object.\n     *\n     * @private\n     * @type {GridSettings}\n     */\n    _defineProperty(this, \"settings\", void 0);\n    /**\n     * Main <THEAD> element.\n     *\n     * @private\n     * @type {HTMLTableSectionElement}\n     */\n    _defineProperty(this, \"THEAD\", void 0);\n    /**\n     * Main <TBODY> element.\n     *\n     * @private\n     * @type {HTMLTableSectionElement}\n     */\n    _defineProperty(this, \"TBODY\", void 0);\n    /**\n     * Main Walkontable instance.\n     *\n     * @private\n     * @type {Walkontable}\n     */\n    _defineProperty(this, \"_wt\", void 0);\n    /**\n     * Main Walkontable instance.\n     *\n     * @type {Walkontable}\n     */\n    _defineProperty(this, \"activeWt\", void 0);\n    /**\n     * The total number of the column header renderers applied to the table through the\n     * `afterGetColumnHeaderRenderers` hook.\n     *\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _columnHeadersCount, 0);\n    /**\n     * The total number of the row header renderers applied to the table through the\n     * `afterGetRowHeaderRenderers` hook.\n     *\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _rowHeadersCount, 0);\n    /**\n     * The flag determines if the `adjustElementsSize` method call was made during\n     * the render suspending. If true, the method has to be triggered once after render\n     * resuming.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _defineProperty(this, \"postponedAdjustElementsSize\", false);\n    /**\n     * Defines if the text should be selected during mousemove.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _selectionMouseDown, false);\n    /**\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _mouseDown, void 0);\n    /**\n     * Main <TABLE> element.\n     *\n     * @type {HTMLTableElement}\n     */\n    _classPrivateFieldInitSpec(this, _table, void 0);\n    /**\n     * Cached width of the rootElement.\n     *\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _lastWidth, 0);\n    /**\n     * Cached height of the rootElement.\n     *\n     * @type {number}\n     */\n    _classPrivateFieldInitSpec(this, _lastHeight, 0);\n    this.hot = hotInstance;\n    this.eventManager = new _eventManager_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this.hot);\n    this.settings = this.hot.getSettings();\n    this.createElements();\n    this.registerEvents();\n    this.initializeWalkontable();\n  }\n\n  /**\n   * Renders WalkontableUI.\n   */\n  render() {\n    if (!this.hot.isRenderSuspended()) {\n      this.hot.runHooks('beforeRender', this.hot.forceFullRender);\n      if (this.postponedAdjustElementsSize) {\n        this.postponedAdjustElementsSize = false;\n        this.adjustElementsSize(true);\n      }\n      this._wt.draw(!this.hot.forceFullRender);\n      this.hot.runHooks('afterRender', this.hot.forceFullRender);\n      this.hot.forceFullRender = false;\n      this.hot.renderCall = false;\n    }\n  }\n\n  /**\n   * Adjust overlays elements size and master table size.\n   */\n  adjustElementsSize() {\n    if (this.hot.isRenderSuspended()) {\n      this.postponedAdjustElementsSize = true;\n    } else {\n      this._wt.wtOverlays.adjustElementsSize();\n    }\n  }\n\n  /**\n   * Returns td object given coordinates.\n   *\n   * @param {CellCoords} coords Renderable cell coordinates.\n   * @param {boolean} topmost Indicates whether the cell should be calculated from the topmost.\n   * @returns {HTMLTableCellElement|null}\n   */\n  getCellAtCoords(coords, topmost) {\n    const td = this._wt.getCell(coords, topmost);\n    if (td < 0) {\n      // there was an exit code (cell is out of bounds)\n      return null;\n    }\n    return td;\n  }\n\n  /**\n   * Scroll viewport to a cell.\n   *\n   * @param {CellCoords} coords Renderable cell coordinates.\n   * @param {boolean} [snapToTop] If `true`, viewport is scrolled to show the cell on the top of the table.\n   * @param {boolean} [snapToRight] If `true`, viewport is scrolled to show the cell on the right side of the table.\n   * @param {boolean} [snapToBottom] If `true`, viewport is scrolled to show the cell on the bottom side of the table.\n   * @param {boolean} [snapToLeft] If `true`, viewport is scrolled to show the cell on the left side of the table.\n   * @returns {boolean}\n   */\n  scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft) {\n    return this._wt.scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft);\n  }\n\n  /**\n   * Scroll viewport to a column.\n   *\n   * @param {number} column Renderable column index.\n   * @param {boolean} [snapToRight] If `true`, viewport is scrolled to show the cell on the right side of the table.\n   * @param {boolean} [snapToLeft] If `true`, viewport is scrolled to show the cell on the left side of the table.\n   * @returns {boolean}\n   */\n  scrollViewportHorizontally(column, snapToRight, snapToLeft) {\n    return this._wt.scrollViewportHorizontally(column, snapToRight, snapToLeft);\n  }\n\n  /**\n   * Scroll viewport to a row.\n   *\n   * @param {number} row Renderable row index.\n   * @param {boolean} [snapToTop] If `true`, viewport is scrolled to show the cell on the top of the table.\n   * @param {boolean} [snapToBottom] If `true`, viewport is scrolled to show the cell on the bottom side of the table.\n   * @returns {boolean}\n   */\n  scrollViewportVertically(row, snapToTop, snapToBottom) {\n    return this._wt.scrollViewportVertically(row, snapToTop, snapToBottom);\n  }\n\n  /**\n   * Prepares DOMElements and adds correct className to the root element.\n   *\n   * @private\n   */\n  createElements() {\n    const {\n      rootElement,\n      rootDocument\n    } = this.hot;\n    const originalStyle = rootElement.getAttribute('style');\n    if (originalStyle) {\n      rootElement.setAttribute('data-originalstyle', originalStyle); // needed to retrieve original style in jsFiddle link generator in HT examples. may be removed in future versions\n    }\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(rootElement, 'handsontable');\n    _classPrivateFieldSet(_table, this, rootDocument.createElement('TABLE'));\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(_classPrivateFieldGet(_table, this), 'htCore');\n    if (this.hot.getSettings().tableClassName) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(_classPrivateFieldGet(_table, this), this.hot.getSettings().tableClassName);\n    }\n    if (this.settings.ariaTags) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setAttribute\"])(_classPrivateFieldGet(_table, this), [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_8__[\"A11Y_PRESENTATION\"])()]);\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setAttribute\"])(rootElement, [Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_8__[\"A11Y_TREEGRID\"])(), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_8__[\"A11Y_ROWCOUNT\"])(-1), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_8__[\"A11Y_COLCOUNT\"])(this.hot.countCols()), Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_8__[\"A11Y_MULTISELECTABLE\"])()]);\n    }\n    this.THEAD = rootDocument.createElement('THEAD');\n    _classPrivateFieldGet(_table, this).appendChild(this.THEAD);\n    this.TBODY = rootDocument.createElement('TBODY');\n    _classPrivateFieldGet(_table, this).appendChild(this.TBODY);\n    this.hot.table = _classPrivateFieldGet(_table, this);\n    this.hot.container.insertBefore(_classPrivateFieldGet(_table, this), this.hot.container.firstChild);\n  }\n\n  /**\n   * Attaches necessary listeners.\n   *\n   * @private\n   */\n  registerEvents() {\n    const {\n      rootElement,\n      rootDocument,\n      selection,\n      rootWindow\n    } = this.hot;\n    const documentElement = rootDocument.documentElement;\n    this.eventManager.addEventListener(rootElement, 'mousedown', event => {\n      _classPrivateFieldSet(_selectionMouseDown, this, true);\n      if (!this.isTextSelectionAllowed(event.target)) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"clearTextSelection\"])(rootWindow);\n        event.preventDefault();\n        rootWindow.focus(); // make sure that window that contains HOT is active. Important when HOT is in iframe.\n      }\n    });\n    this.eventManager.addEventListener(rootElement, 'mouseup', () => {\n      _classPrivateFieldSet(_selectionMouseDown, this, false);\n    });\n    this.eventManager.addEventListener(rootElement, 'mousemove', event => {\n      if (_classPrivateFieldGet(_selectionMouseDown, this) && !this.isTextSelectionAllowed(event.target)) {\n        // Clear selection only when fragmentSelection is enabled, otherwise clearing selection breaks the IME editor.\n        if (this.settings.fragmentSelection) {\n          Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"clearTextSelection\"])(rootWindow);\n        }\n        event.preventDefault();\n      }\n    });\n    this.eventManager.addEventListener(documentElement, 'keyup', event => {\n      // TODO: is it the best place and way to finish cell selection?\n      if (selection.isInProgress() && !event.shiftKey) {\n        selection.finish();\n      }\n    });\n    this.eventManager.addEventListener(documentElement, 'mouseup', event => {\n      if (selection.isInProgress() && Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isLeftClick\"])(event)) {\n        selection.finish();\n      }\n      _classPrivateFieldSet(_mouseDown, this, false);\n      const isOutsideInputElement = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isOutsideInput\"])(rootDocument.activeElement);\n      if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isInput\"])(rootDocument.activeElement) && !isOutsideInputElement) {\n        return;\n      }\n      if (isOutsideInputElement || !selection.isSelected() && !selection.isSelectedByAnyHeader() && !rootElement.contains(event.target) && !Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isRightClick\"])(event)) {\n        this.hot.unlisten();\n      }\n    });\n    this.eventManager.addEventListener(documentElement, 'contextmenu', event => {\n      if (selection.isInProgress() && Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isRightClick\"])(event)) {\n        selection.finish();\n        _classPrivateFieldSet(_mouseDown, this, false);\n      }\n    });\n    this.eventManager.addEventListener(documentElement, 'touchend', () => {\n      if (selection.isInProgress()) {\n        selection.finish();\n      }\n      _classPrivateFieldSet(_mouseDown, this, false);\n    });\n    this.eventManager.addEventListener(documentElement, 'mousedown', event => {\n      const originalTarget = event.target;\n      const eventX = event.x || event.clientX;\n      const eventY = event.y || event.clientY;\n      let next = event.target;\n      if (_classPrivateFieldGet(_mouseDown, this) || !rootElement || !this.hot.view) {\n        return; // it must have been started in a cell\n      }\n\n      // immediate click on \"holder\" means click on the right side of vertical scrollbar\n      const {\n        holder\n      } = this._wt.wtTable;\n      if (next === holder) {\n        const scrollbarWidth = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getScrollbarWidth\"])(rootDocument);\n        if (rootDocument.elementFromPoint(eventX + scrollbarWidth, eventY) !== holder || rootDocument.elementFromPoint(eventX, eventY + scrollbarWidth) !== holder) {\n          return;\n        }\n      } else {\n        while (next !== documentElement) {\n          if (next === null) {\n            if (event.isTargetWebComponent) {\n              break;\n            }\n\n            // click on something that was a row but now is detached (possibly because your click triggered a rerender)\n            return;\n          }\n          if (next === rootElement) {\n            // click inside container\n            return;\n          }\n          next = next.parentNode;\n        }\n      }\n\n      // function did not return until here, we have an outside click!\n      const outsideClickDeselects = typeof this.settings.outsideClickDeselects === 'function' ? this.settings.outsideClickDeselects(originalTarget) : this.settings.outsideClickDeselects;\n      if (outsideClickDeselects) {\n        this.hot.deselectCell();\n      } else {\n        this.hot.destroyEditor(false, false);\n      }\n    });\n    let parentWindow = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getParentWindow\"])(rootWindow);\n    while (parentWindow !== null) {\n      this.eventManager.addEventListener(parentWindow.document.documentElement, 'click', () => {\n        this.hot.unlisten();\n      });\n      parentWindow = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getParentWindow\"])(parentWindow);\n    }\n    this.eventManager.addEventListener(_classPrivateFieldGet(_table, this), 'selectstart', event => {\n      if (this.settings.fragmentSelection || Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isInput\"])(event.target)) {\n        return;\n      }\n      // https://github.com/handsontable/handsontable/issues/160\n      // Prevent text from being selected when performing drag down.\n      event.preventDefault();\n    });\n  }\n\n  /**\n   * Translate renderable cell coordinates to visual coordinates.\n   *\n   * @param {CellCoords} coords The cell coordinates.\n   * @returns {CellCoords}\n   */\n  translateFromRenderableToVisualCoords(_ref) {\n    let {\n      row,\n      col\n    } = _ref;\n    // TODO: To consider an idea to reusing the CellCoords instance instead creating new one.\n    return this.hot._createCellCoords(...this.translateFromRenderableToVisualIndex(row, col));\n  }\n\n  /**\n   * Translate renderable row and column indexes to visual row and column indexes.\n   *\n   * @param {number} renderableRow Renderable row index.\n   * @param {number} renderableColumn Renderable columnIndex.\n   * @returns {number[]}\n   */\n  translateFromRenderableToVisualIndex(renderableRow, renderableColumn) {\n    // TODO: Some helper may be needed.\n    // We perform translation for indexes (without headers).\n    let visualRow = renderableRow >= 0 ? this.hot.rowIndexMapper.getVisualFromRenderableIndex(renderableRow) : renderableRow;\n    let visualColumn = renderableColumn >= 0 ? this.hot.columnIndexMapper.getVisualFromRenderableIndex(renderableColumn) : renderableColumn;\n    if (visualRow === null) {\n      visualRow = renderableRow;\n    }\n    if (visualColumn === null) {\n      visualColumn = renderableColumn;\n    }\n    return [visualRow, visualColumn];\n  }\n\n  /**\n   * Returns the number of renderable indexes.\n   *\n   * @private\n   * @param {IndexMapper} indexMapper The IndexMapper instance for specific axis.\n   * @param {number} maxElements Maximum number of elements (rows or columns).\n   *\n   * @returns {number|*}\n   */\n  countRenderableIndexes(indexMapper, maxElements) {\n    const consideredElements = Math.min(indexMapper.getNotTrimmedIndexesLength(), maxElements);\n    // Don't take hidden indexes into account. We are looking just for renderable indexes.\n    const firstNotHiddenIndex = indexMapper.getNearestNotHiddenIndex(consideredElements - 1, -1);\n\n    // There are no renderable indexes.\n    if (firstNotHiddenIndex === null) {\n      return 0;\n    }\n    return indexMapper.getRenderableFromVisualIndex(firstNotHiddenIndex) + 1;\n  }\n\n  /**\n   * Returns the number of renderable columns.\n   *\n   * @returns {number}\n   */\n  countRenderableColumns() {\n    return this.countRenderableIndexes(this.hot.columnIndexMapper, this.settings.maxCols);\n  }\n\n  /**\n   * Returns the number of renderable rows.\n   *\n   * @returns {number}\n   */\n  countRenderableRows() {\n    return this.countRenderableIndexes(this.hot.rowIndexMapper, this.settings.maxRows);\n  }\n\n  /**\n   * Returns number of not hidden row indexes counting from the passed starting index.\n   * The counting direction can be controlled by `incrementBy` argument.\n   *\n   * @param {number} visualIndex The visual index from which the counting begins.\n   * @param {number} incrementBy If `-1` then counting is backwards or forward when `1`.\n   * @returns {number}\n   */\n  countNotHiddenRowIndexes(visualIndex, incrementBy) {\n    return this.countNotHiddenIndexes(visualIndex, incrementBy, this.hot.rowIndexMapper, this.countRenderableRows());\n  }\n\n  /**\n   * Returns number of not hidden column indexes counting from the passed starting index.\n   * The counting direction can be controlled by `incrementBy` argument.\n   *\n   * @param {number} visualIndex The visual index from which the counting begins.\n   * @param {number} incrementBy If `-1` then counting is backwards or forward when `1`.\n   * @returns {number}\n   */\n  countNotHiddenColumnIndexes(visualIndex, incrementBy) {\n    return this.countNotHiddenIndexes(visualIndex, incrementBy, this.hot.columnIndexMapper, this.countRenderableColumns());\n  }\n\n  /**\n   * Returns number of not hidden indexes counting from the passed starting index.\n   * The counting direction can be controlled by `incrementBy` argument.\n   *\n   * @param {number} visualIndex The visual index from which the counting begins.\n   * @param {number} incrementBy If `-1` then counting is backwards or forward when `1`.\n   * @param {IndexMapper} indexMapper The IndexMapper instance for specific axis.\n   * @param {number} renderableIndexesCount Total count of renderable indexes for specific axis.\n   * @returns {number}\n   */\n  countNotHiddenIndexes(visualIndex, incrementBy, indexMapper, renderableIndexesCount) {\n    if (isNaN(visualIndex) || visualIndex < 0) {\n      return 0;\n    }\n    const firstVisibleIndex = indexMapper.getNearestNotHiddenIndex(visualIndex, incrementBy);\n    const renderableIndex = indexMapper.getRenderableFromVisualIndex(firstVisibleIndex);\n    if (!Number.isInteger(renderableIndex)) {\n      return 0;\n    }\n    let notHiddenIndexes = 0;\n    if (incrementBy < 0) {\n      // Zero-based numbering for renderable indexes corresponds to a number of not hidden indexes.\n      notHiddenIndexes = renderableIndex + 1;\n    } else if (incrementBy > 0) {\n      notHiddenIndexes = renderableIndexesCount - renderableIndex;\n    }\n    return notHiddenIndexes;\n  }\n\n  /**\n   * The function returns the number of not hidden column indexes that fit between the first and\n   * last fixed column in the left (or right in RTL mode) overlay.\n   *\n   * @returns {number}\n   */\n  countNotHiddenFixedColumnsStart() {\n    const countCols = this.hot.countCols();\n    const visualFixedColumnsStart = Math.min(parseInt(this.settings.fixedColumnsStart, 10), countCols) - 1;\n    return this.countNotHiddenColumnIndexes(visualFixedColumnsStart, -1);\n  }\n\n  /**\n   * The function returns the number of not hidden row indexes that fit between the first and\n   * last fixed row in the top overlay.\n   *\n   * @returns {number}\n   */\n  countNotHiddenFixedRowsTop() {\n    const countRows = this.hot.countRows();\n    const visualFixedRowsTop = Math.min(parseInt(this.settings.fixedRowsTop, 10), countRows) - 1;\n    return this.countNotHiddenRowIndexes(visualFixedRowsTop, -1);\n  }\n\n  /**\n   * The function returns the number of not hidden row indexes that fit between the first and\n   * last fixed row in the bottom overlay.\n   *\n   * @returns {number}\n   */\n  countNotHiddenFixedRowsBottom() {\n    const countRows = this.hot.countRows();\n    const visualFixedRowsBottom = Math.max(countRows - parseInt(this.settings.fixedRowsBottom, 10), 0);\n    return this.countNotHiddenRowIndexes(visualFixedRowsBottom, 1);\n  }\n\n  /**\n   * The function returns the number of renderable column indexes within the passed range of the visual indexes.\n   *\n   * @param {number} columnStart The column visual start index.\n   * @param {number} columnEnd The column visual end index.\n   * @returns {number}\n   */\n  countRenderableColumnsInRange(columnStart, columnEnd) {\n    let count = 0;\n    for (let column = columnStart; column <= columnEnd; column++) {\n      if (this.hot.columnIndexMapper.getRenderableFromVisualIndex(column) !== null) {\n        count += 1;\n      }\n    }\n    return count;\n  }\n\n  /**\n   * The function returns the number of renderable row indexes within the passed range of the visual indexes.\n   *\n   * @param {number} rowStart The row visual start index.\n   * @param {number} rowEnd The row visual end index.\n   * @returns {number}\n   */\n  countRenderableRowsInRange(rowStart, rowEnd) {\n    let count = 0;\n    for (let row = rowStart; row <= rowEnd; row++) {\n      if (this.hot.rowIndexMapper.getRenderableFromVisualIndex(row) !== null) {\n        count += 1;\n      }\n    }\n    return count;\n  }\n\n  /**\n   * Checks if at least one cell than belongs to the main table is not covered by the top, left or\n   * bottom overlay.\n   *\n   * @returns {boolean}\n   */\n  isMainTableNotFullyCoveredByOverlays() {\n    const fixedAllRows = this.countNotHiddenFixedRowsTop() + this.countNotHiddenFixedRowsBottom();\n    const fixedAllColumns = this.countNotHiddenFixedColumnsStart();\n    return this.hot.countRenderedRows() > fixedAllRows && this.hot.countRenderedCols() > fixedAllColumns;\n  }\n\n  /**\n   * Defines default configuration and initializes WalkOnTable instance.\n   *\n   * @private\n   */\n  initializeWalkontable() {\n    const walkontableConfig = {\n      ariaTags: this.settings.ariaTags,\n      rtlMode: this.hot.isRtl(),\n      externalRowCalculator: this.hot.getPlugin('autoRowSize') && this.hot.getPlugin('autoRowSize').isEnabled(),\n      table: _classPrivateFieldGet(_table, this),\n      isDataViewInstance: () => Object(_utils_rootInstance_mjs__WEBPACK_IMPORTED_MODULE_7__[\"isRootInstance\"])(this.hot),\n      preventOverflow: () => this.settings.preventOverflow,\n      preventWheel: () => this.settings.preventWheel,\n      stretchH: () => this.settings.stretchH,\n      data: (renderableRow, renderableColumn) => {\n        return this.hot.getDataAtCell(...this.translateFromRenderableToVisualIndex(renderableRow, renderableColumn));\n      },\n      totalRows: () => this.countRenderableRows(),\n      totalColumns: () => this.countRenderableColumns(),\n      // Number of renderable columns for the left overlay.\n      fixedColumnsStart: () => this.countNotHiddenFixedColumnsStart(),\n      // Number of renderable rows for the top overlay.\n      fixedRowsTop: () => this.countNotHiddenFixedRowsTop(),\n      // Number of renderable rows for the bottom overlay.\n      fixedRowsBottom: () => this.countNotHiddenFixedRowsBottom(),\n      // Enable the inline start overlay when conditions are met.\n      shouldRenderInlineStartOverlay: () => {\n        return this.settings.fixedColumnsStart > 0 || walkontableConfig.rowHeaders().length > 0;\n      },\n      // Enable the top overlay when conditions are met.\n      shouldRenderTopOverlay: () => {\n        return this.settings.fixedRowsTop > 0 || walkontableConfig.columnHeaders().length > 0;\n      },\n      // Enable the bottom overlay when conditions are met.\n      shouldRenderBottomOverlay: () => {\n        return this.settings.fixedRowsBottom > 0;\n      },\n      minSpareRows: () => this.settings.minSpareRows,\n      renderAllRows: this.settings.renderAllRows,\n      renderAllColumns: this.settings.renderAllColumns,\n      rowHeaders: () => {\n        const headerRenderers = [];\n        if (this.hot.hasRowHeaders()) {\n          headerRenderers.push((renderableRowIndex, TH) => {\n            // TODO: Some helper may be needed.\n            // We perform translation for row indexes (without row headers).\n            const visualRowIndex = renderableRowIndex >= 0 ? this.hot.rowIndexMapper.getVisualFromRenderableIndex(renderableRowIndex) : renderableRowIndex;\n            this.appendRowHeader(visualRowIndex, TH);\n          });\n        }\n        this.hot.runHooks('afterGetRowHeaderRenderers', headerRenderers);\n        _classPrivateFieldSet(_rowHeadersCount, this, headerRenderers.length);\n        if (this.hot.getSettings().ariaTags) {\n          // Update the aria-colcount attribute.\n          // Only needs to be done once after initialization/data update.\n          if (_assertClassBrand(_TableView_brand, this, _getAriaColcount).call(this) === this.hot.countCols()) {\n            _assertClassBrand(_TableView_brand, this, _updateAriaColcount).call(this, _classPrivateFieldGet(_rowHeadersCount, this));\n          }\n        }\n        return headerRenderers;\n      },\n      columnHeaders: () => {\n        const headerRenderers = [];\n        if (this.hot.hasColHeaders()) {\n          headerRenderers.push((renderedColumnIndex, TH) => {\n            // TODO: Some helper may be needed.\n            // We perform translation for columns indexes (without column headers).\n            const visualColumnsIndex = renderedColumnIndex >= 0 ? this.hot.columnIndexMapper.getVisualFromRenderableIndex(renderedColumnIndex) : renderedColumnIndex;\n            this.appendColHeader(visualColumnsIndex, TH);\n          });\n        }\n        this.hot.runHooks('afterGetColumnHeaderRenderers', headerRenderers);\n        _classPrivateFieldSet(_columnHeadersCount, this, headerRenderers.length);\n        return headerRenderers;\n      },\n      columnWidth: renderedColumnIndex => {\n        const visualIndex = this.hot.columnIndexMapper.getVisualFromRenderableIndex(renderedColumnIndex);\n\n        // It's not a bug that we can't find visual index for some handled by method indexes. The function is called also\n        // for indexes that are not displayed (indexes that are beyond the grid's boundaries), i.e. when `fixedColumnsStart` > `startCols` (wrong config?) or\n        // scrolling and dataset is empty (scroll should handle that?).\n        return this.hot.getColWidth(visualIndex === null ? renderedColumnIndex : visualIndex);\n      },\n      rowHeight: renderedRowIndex => {\n        const visualIndex = this.hot.rowIndexMapper.getVisualFromRenderableIndex(renderedRowIndex);\n        return this.hot.getRowHeight(visualIndex === null ? renderedRowIndex : visualIndex);\n      },\n      rowHeightByOverlayName: (renderedRowIndex, overlayType) => {\n        const visualIndex = this.hot.rowIndexMapper.getVisualFromRenderableIndex(renderedRowIndex);\n        const visualRowIndex = visualIndex === null ? renderedRowIndex : visualIndex;\n        return this.hot.runHooks('modifyRowHeightByOverlayName', this.hot.getRowHeight(visualRowIndex), visualRowIndex, overlayType);\n      },\n      cellRenderer: (renderedRowIndex, renderedColumnIndex, TD) => {\n        const [visualRowIndex, visualColumnIndex] = this.translateFromRenderableToVisualIndex(renderedRowIndex, renderedColumnIndex);\n\n        // Coords may be modified. For example, by the `MergeCells` plugin. It should affect cell value and cell meta.\n        const modifiedCellCoords = this.hot.runHooks('modifyGetCellCoords', visualRowIndex, visualColumnIndex);\n        let visualRowToCheck = visualRowIndex;\n        let visualColumnToCheck = visualColumnIndex;\n        if (Array.isArray(modifiedCellCoords)) {\n          [visualRowToCheck, visualColumnToCheck] = modifiedCellCoords;\n        }\n        const cellProperties = this.hot.getCellMeta(visualRowToCheck, visualColumnToCheck);\n        const prop = this.hot.colToProp(visualColumnToCheck);\n        let value = this.hot.getDataAtRowProp(visualRowToCheck, prop);\n        if (this.hot.hasHook('beforeValueRender')) {\n          value = this.hot.runHooks('beforeValueRender', value, cellProperties);\n        }\n        this.hot.runHooks('beforeRenderer', TD, visualRowIndex, visualColumnIndex, prop, value, cellProperties);\n        this.hot.getCellRenderer(cellProperties)(this.hot, TD, visualRowIndex, visualColumnIndex, prop, value, cellProperties);\n        this.hot.runHooks('afterRenderer', TD, visualRowIndex, visualColumnIndex, prop, value, cellProperties);\n      },\n      selections: this.hot.selection.highlight,\n      hideBorderOnMouseDownOver: () => this.settings.fragmentSelection,\n      onWindowResize: () => {\n        if (this.hot && !this.hot.isDestroyed) {\n          this.hot.refreshDimensions();\n        }\n      },\n      onContainerElementResize: () => {\n        if (this.hot && !this.hot.isDestroyed && Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isVisible\"])(this.hot.rootElement)) {\n          this.hot.refreshDimensions();\n        }\n      },\n      onCellMouseDown: (event, coords, TD, wt) => {\n        const visualCoords = this.translateFromRenderableToVisualCoords(coords);\n        const controller = {\n          row: false,\n          column: false,\n          cell: false\n        };\n        this.hot.listen();\n        this.activeWt = wt;\n        _classPrivateFieldSet(_mouseDown, this, true);\n        this.hot.runHooks('beforeOnCellMouseDown', event, visualCoords, TD, controller);\n        if (Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isImmediatePropagationStopped\"])(event)) {\n          return;\n        }\n        Object(_selection_mouseEventHandler_mjs__WEBPACK_IMPORTED_MODULE_6__[\"handleMouseEvent\"])(event, {\n          coords: visualCoords,\n          selection: this.hot.selection,\n          controller,\n          cellCoordsFactory: (row, column) => this.hot._createCellCoords(row, column)\n        });\n        this.hot.runHooks('afterOnCellMouseDown', event, visualCoords, TD);\n        this.activeWt = this._wt;\n      },\n      onCellContextMenu: (event, coords, TD, wt) => {\n        const visualCoords = this.translateFromRenderableToVisualCoords(coords);\n        this.activeWt = wt;\n        _classPrivateFieldSet(_mouseDown, this, false);\n        if (this.hot.selection.isInProgress()) {\n          this.hot.selection.finish();\n        }\n        this.hot.runHooks('beforeOnCellContextMenu', event, visualCoords, TD);\n        if (Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isImmediatePropagationStopped\"])(event)) {\n          return;\n        }\n        this.hot.runHooks('afterOnCellContextMenu', event, visualCoords, TD);\n        this.activeWt = this._wt;\n      },\n      onCellMouseOut: (event, coords, TD, wt) => {\n        const visualCoords = this.translateFromRenderableToVisualCoords(coords);\n        this.activeWt = wt;\n        this.hot.runHooks('beforeOnCellMouseOut', event, visualCoords, TD);\n        if (Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isImmediatePropagationStopped\"])(event)) {\n          return;\n        }\n        this.hot.runHooks('afterOnCellMouseOut', event, visualCoords, TD);\n        this.activeWt = this._wt;\n      },\n      onCellMouseOver: (event, coords, TD, wt) => {\n        const visualCoords = this.translateFromRenderableToVisualCoords(coords);\n        const controller = {\n          row: false,\n          column: false,\n          cell: false\n        };\n        this.activeWt = wt;\n        this.hot.runHooks('beforeOnCellMouseOver', event, visualCoords, TD, controller);\n        if (Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isImmediatePropagationStopped\"])(event)) {\n          return;\n        }\n        if (_classPrivateFieldGet(_mouseDown, this)) {\n          Object(_selection_mouseEventHandler_mjs__WEBPACK_IMPORTED_MODULE_6__[\"handleMouseEvent\"])(event, {\n            coords: visualCoords,\n            selection: this.hot.selection,\n            controller,\n            cellCoordsFactory: (row, column) => this.hot._createCellCoords(row, column)\n          });\n        }\n        this.hot.runHooks('afterOnCellMouseOver', event, visualCoords, TD);\n        this.activeWt = this._wt;\n      },\n      onCellMouseUp: (event, coords, TD, wt) => {\n        const visualCoords = this.translateFromRenderableToVisualCoords(coords);\n        this.activeWt = wt;\n        this.hot.runHooks('beforeOnCellMouseUp', event, visualCoords, TD);\n\n        // TODO: The second condition check is a workaround. Callback corresponding the method `updateSettings`\n        // disable plugin and enable it again. Disabling plugin closes the menu. Thus, calling the\n        // `updateSettings` in a body of any callback executed right after some context-menu action\n        // breaks the table (#7231).\n        if (Object(_helpers_dom_event_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isImmediatePropagationStopped\"])(event) || this.hot.isDestroyed) {\n          return;\n        }\n        this.hot.runHooks('afterOnCellMouseUp', event, visualCoords, TD);\n        this.activeWt = this._wt;\n      },\n      onCellCornerMouseDown: event => {\n        event.preventDefault();\n        this.hot.runHooks('afterOnCellCornerMouseDown', event);\n      },\n      onCellCornerDblClick: event => {\n        event.preventDefault();\n        this.hot.runHooks('afterOnCellCornerDblClick', event);\n      },\n      beforeDraw: (force, skipRender) => this.beforeRender(force, skipRender),\n      onDraw: force => this.afterRender(force),\n      onBeforeViewportScrollVertically: renderableRow => {\n        const rowMapper = this.hot.rowIndexMapper;\n        const areColumnHeadersSelected = renderableRow < 0;\n        let visualRow = renderableRow;\n        if (!areColumnHeadersSelected) {\n          visualRow = rowMapper.getVisualFromRenderableIndex(renderableRow);\n\n          // for an empty data return index as is\n          if (visualRow === null) {\n            return renderableRow;\n          }\n        }\n        visualRow = this.hot.runHooks('beforeViewportScrollVertically', visualRow);\n        this.hot.runHooks('beforeViewportScroll');\n        if (!areColumnHeadersSelected) {\n          return rowMapper.getRenderableFromVisualIndex(visualRow);\n        }\n        return visualRow;\n      },\n      onBeforeViewportScrollHorizontally: renderableColumn => {\n        const columnMapper = this.hot.columnIndexMapper;\n        const areRowHeadersSelected = renderableColumn < 0;\n        let visualColumn = renderableColumn;\n        if (!areRowHeadersSelected) {\n          visualColumn = columnMapper.getVisualFromRenderableIndex(renderableColumn);\n\n          // for an empty data return index as is\n          if (visualColumn === null) {\n            return renderableColumn;\n          }\n        }\n        visualColumn = this.hot.runHooks('beforeViewportScrollHorizontally', visualColumn);\n        this.hot.runHooks('beforeViewportScroll');\n        if (!areRowHeadersSelected) {\n          return columnMapper.getRenderableFromVisualIndex(visualColumn);\n        }\n        return visualColumn;\n      },\n      onScrollVertically: () => {\n        this.hot.runHooks('afterScrollVertically');\n        this.hot.runHooks('afterScroll');\n      },\n      onScrollHorizontally: () => {\n        this.hot.runHooks('afterScrollHorizontally');\n        this.hot.runHooks('afterScroll');\n      },\n      onBeforeRemoveCellClassNames: () => this.hot.runHooks('beforeRemoveCellClassNames'),\n      onBeforeHighlightingRowHeader: (renderableRow, headerLevel, highlightMeta) => {\n        const rowMapper = this.hot.rowIndexMapper;\n        const areColumnHeadersSelected = renderableRow < 0;\n        let visualRow = renderableRow;\n        if (!areColumnHeadersSelected) {\n          visualRow = rowMapper.getVisualFromRenderableIndex(renderableRow);\n        }\n        const newVisualRow = this.hot.runHooks('beforeHighlightingRowHeader', visualRow, headerLevel, highlightMeta);\n        if (!areColumnHeadersSelected) {\n          return rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(newVisualRow, 1));\n        }\n        return newVisualRow;\n      },\n      onBeforeHighlightingColumnHeader: (renderableColumn, headerLevel, highlightMeta) => {\n        const columnMapper = this.hot.columnIndexMapper;\n        const areRowHeadersSelected = renderableColumn < 0;\n        let visualColumn = renderableColumn;\n        if (!areRowHeadersSelected) {\n          visualColumn = columnMapper.getVisualFromRenderableIndex(renderableColumn);\n        }\n        const newVisualColumn = this.hot.runHooks('beforeHighlightingColumnHeader', visualColumn, headerLevel, highlightMeta);\n        if (!areRowHeadersSelected) {\n          return columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(newVisualColumn, 1));\n        }\n        return newVisualColumn;\n      },\n      onAfterDrawSelection: (currentRow, currentColumn, layerLevel) => {\n        let cornersOfSelection;\n        const [visualRowIndex, visualColumnIndex] = this.translateFromRenderableToVisualIndex(currentRow, currentColumn);\n        const selectedRange = this.hot.selection.getSelectedRange();\n        const selectionRangeSize = selectedRange.size();\n        if (selectionRangeSize > 0) {\n          const selectionForLayer = selectedRange.peekByIndex(layerLevel !== null && layerLevel !== void 0 ? layerLevel : 0);\n          cornersOfSelection = [selectionForLayer.from.row, selectionForLayer.from.col, selectionForLayer.to.row, selectionForLayer.to.col];\n        }\n        return this.hot.runHooks('afterDrawSelection', visualRowIndex, visualColumnIndex, cornersOfSelection, layerLevel);\n      },\n      onBeforeDrawBorders: (corners, borderClassName) => {\n        const [startRenderableRow, startRenderableColumn, endRenderableRow, endRenderableColumn] = corners;\n        const visualCorners = [this.hot.rowIndexMapper.getVisualFromRenderableIndex(startRenderableRow), this.hot.columnIndexMapper.getVisualFromRenderableIndex(startRenderableColumn), this.hot.rowIndexMapper.getVisualFromRenderableIndex(endRenderableRow), this.hot.columnIndexMapper.getVisualFromRenderableIndex(endRenderableColumn)];\n        return this.hot.runHooks('beforeDrawBorders', visualCorners, borderClassName);\n      },\n      onBeforeTouchScroll: () => this.hot.runHooks('beforeTouchScroll'),\n      onAfterMomentumScroll: () => this.hot.runHooks('afterMomentumScroll'),\n      onBeforeStretchingColumnWidth: (stretchedWidth, renderedColumnIndex) => {\n        const visualColumnIndex = this.hot.columnIndexMapper.getVisualFromRenderableIndex(renderedColumnIndex);\n        return this.hot.runHooks('beforeStretchingColumnWidth', stretchedWidth, visualColumnIndex);\n      },\n      onModifyRowHeaderWidth: rowHeaderWidth => this.hot.runHooks('modifyRowHeaderWidth', rowHeaderWidth),\n      onModifyGetCellCoords: (renderableRowIndex, renderableColumnIndex, topmost) => {\n        const rowMapper = this.hot.rowIndexMapper;\n        const columnMapper = this.hot.columnIndexMapper;\n\n        // Callback handle also headers. We shouldn't translate them.\n        const visualColumnIndex = renderableColumnIndex >= 0 ? columnMapper.getVisualFromRenderableIndex(renderableColumnIndex) : renderableColumnIndex;\n        const visualRowIndex = renderableRowIndex >= 0 ? rowMapper.getVisualFromRenderableIndex(renderableRowIndex) : renderableRowIndex;\n        const visualIndexes = this.hot.runHooks('modifyGetCellCoords', visualRowIndex, visualColumnIndex, topmost);\n        if (Array.isArray(visualIndexes)) {\n          const [visualRowFrom, visualColumnFrom, visualRowTo, visualColumnTo] = visualIndexes;\n\n          // Result of the hook is handled by the Walkontable (renderable indexes).\n          return [visualRowFrom >= 0 ? rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(visualRowFrom, 1)) : visualRowFrom, visualColumnFrom >= 0 ? columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(visualColumnFrom, 1)) : visualColumnFrom, visualRowTo >= 0 ? rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(visualRowTo, -1)) : visualRowTo, visualColumnTo >= 0 ? columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(visualColumnTo, -1)) : visualColumnTo];\n        }\n      },\n      viewportRowCalculatorOverride: calc => {\n        let viewportOffset = this.settings.viewportRowRenderingOffset;\n        if (viewportOffset === 'auto' && this.settings.fixedRowsTop) {\n          viewportOffset = 10;\n        }\n        if (viewportOffset > 0 || viewportOffset === 'auto') {\n          const renderableRows = this.countRenderableRows();\n          const firstRenderedRow = calc.startRow;\n          const lastRenderedRow = calc.endRow;\n          if (typeof viewportOffset === 'number') {\n            calc.startRow = Math.max(firstRenderedRow - viewportOffset, 0);\n            calc.endRow = Math.min(lastRenderedRow + viewportOffset, renderableRows - 1);\n          } else if (viewportOffset === 'auto') {\n            const offset = Math.ceil(lastRenderedRow / renderableRows * 12);\n            calc.startRow = Math.max(firstRenderedRow - offset, 0);\n            calc.endRow = Math.min(lastRenderedRow + offset, renderableRows - 1);\n          }\n        }\n        this.hot.runHooks('afterViewportRowCalculatorOverride', calc);\n      },\n      viewportColumnCalculatorOverride: calc => {\n        let viewportOffset = this.settings.viewportColumnRenderingOffset;\n        if (viewportOffset === 'auto' && this.settings.fixedColumnsStart) {\n          viewportOffset = 10;\n        }\n        if (viewportOffset > 0 || viewportOffset === 'auto') {\n          const renderableColumns = this.countRenderableColumns();\n          const firstRenderedColumn = calc.startColumn;\n          const lastRenderedColumn = calc.endColumn;\n          if (typeof viewportOffset === 'number') {\n            calc.startColumn = Math.max(firstRenderedColumn - viewportOffset, 0);\n            calc.endColumn = Math.min(lastRenderedColumn + viewportOffset, renderableColumns - 1);\n          }\n          if (viewportOffset === 'auto') {\n            const offset = Math.ceil(lastRenderedColumn / renderableColumns * 6);\n            calc.startColumn = Math.max(firstRenderedColumn - offset, 0);\n            calc.endColumn = Math.min(lastRenderedColumn + offset, renderableColumns - 1);\n          }\n        }\n        this.hot.runHooks('afterViewportColumnCalculatorOverride', calc);\n      },\n      rowHeaderWidth: () => this.settings.rowHeaderWidth,\n      columnHeaderHeight: () => {\n        const columnHeaderHeight = this.hot.runHooks('modifyColumnHeaderHeight');\n        return this.settings.columnHeaderHeight || columnHeaderHeight;\n      }\n    };\n    this.hot.runHooks('beforeInitWalkontable', walkontableConfig);\n    this._wt = new _3rdparty_walkontable_src_index_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"](walkontableConfig);\n    this.activeWt = this._wt;\n    const spreader = this._wt.wtTable.spreader;\n    // We have to cache width and height after Walkontable initialization.\n    const {\n      width,\n      height\n    } = this.hot.rootElement.getBoundingClientRect();\n    this.setLastSize(width, height);\n    this.eventManager.addEventListener(spreader, 'mousedown', event => {\n      // right mouse button exactly on spreader means right click on the right hand side of vertical scrollbar\n      if (event.target === spreader && event.which === 3) {\n        event.stopPropagation();\n      }\n    });\n    this.eventManager.addEventListener(spreader, 'contextmenu', event => {\n      // right mouse button exactly on spreader means right click on the right hand side of vertical scrollbar\n      if (event.target === spreader && event.which === 3) {\n        event.stopPropagation();\n      }\n    });\n    this.eventManager.addEventListener(this.hot.rootDocument.documentElement, 'click', () => {\n      if (this.settings.observeDOMVisibility) {\n        if (this._wt.drawInterrupted) {\n          this.hot.forceFullRender = true;\n          this.render();\n        }\n      }\n    });\n  }\n\n  /**\n   * Checks if it's possible to create text selection in element.\n   *\n   * @private\n   * @param {HTMLElement} el The element to check.\n   * @returns {boolean}\n   */\n  isTextSelectionAllowed(el) {\n    if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isInput\"])(el)) {\n      return true;\n    }\n    const isChildOfTableBody = Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isChildOf\"])(el, this._wt.wtTable.spreader);\n    if (this.settings.fragmentSelection === true && isChildOfTableBody) {\n      return true;\n    }\n    if (this.settings.fragmentSelection === 'cell' && this.isSelectedOnlyCell() && isChildOfTableBody) {\n      return true;\n    }\n    if (!this.settings.fragmentSelection && this.isCellEdited() && this.isSelectedOnlyCell()) {\n      return true;\n    }\n    return false;\n  }\n\n  /**\n   * Checks if user's been called mousedown.\n   *\n   * @private\n   * @returns {boolean}\n   */\n  isMouseDown() {\n    return _classPrivateFieldGet(_mouseDown, this);\n  }\n\n  /**\n   * Check if selected only one cell.\n   *\n   * @private\n   * @returns {boolean}\n   */\n  isSelectedOnlyCell() {\n    var _this$hot$getSelected, _this$hot$getSelected2;\n    return (_this$hot$getSelected = (_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.isSingleCell()) !== null && _this$hot$getSelected !== void 0 ? _this$hot$getSelected : false;\n  }\n\n  /**\n   * Checks if active cell is editing.\n   *\n   * @private\n   * @returns {boolean}\n   */\n  isCellEdited() {\n    const activeEditor = this.hot.getActiveEditor();\n    return activeEditor && activeEditor.isOpened();\n  }\n\n  /**\n   * `beforeDraw` callback.\n   *\n   * @private\n   * @param {boolean} force If `true` rendering was triggered by a change of settings or data or `false` if\n   *                        rendering was triggered by scrolling or moving selection.\n   * @param {object} skipRender Object with `skipRender` property, if it is set to `true ` the next rendering\n   *                            cycle will be skipped.\n   */\n  beforeRender(force, skipRender) {\n    if (force) {\n      // this.hot.forceFullRender = did Handsontable request full render?\n      this.hot.runHooks('beforeViewRender', this.hot.forceFullRender, skipRender);\n    }\n  }\n\n  /**\n   * `afterRender` callback.\n   *\n   * @private\n   * @param {boolean} force If `true` rendering was triggered by a change of settings or data or `false` if\n   *                        rendering was triggered by scrolling or moving selection.\n   */\n  afterRender(force) {\n    if (force) {\n      // this.hot.forceFullRender = did Handsontable request full render?\n      this.hot.runHooks('afterViewRender', this.hot.forceFullRender);\n    }\n  }\n\n  /**\n   * Append row header to a TH element.\n   *\n   * @private\n   * @param {number} visualRowIndex The visual row index.\n   * @param {HTMLTableHeaderCellElement} TH The table header element.\n   */\n  appendRowHeader(visualRowIndex, TH) {\n    if (TH.firstChild) {\n      const container = TH.firstChild;\n      if (!Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasClass\"])(container, 'relative')) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"empty\"])(TH);\n        this.appendRowHeader(visualRowIndex, TH);\n        return;\n      }\n      this.updateCellHeader(container.querySelector('.rowHeader'), visualRowIndex, this.hot.getRowHeader);\n    } else {\n      const {\n        rootDocument,\n        getRowHeader\n      } = this.hot;\n      const div = rootDocument.createElement('div');\n      const span = rootDocument.createElement('span');\n      div.className = 'relative';\n      span.className = 'rowHeader';\n      this.updateCellHeader(span, visualRowIndex, getRowHeader);\n      div.appendChild(span);\n      TH.appendChild(div);\n    }\n    this.hot.runHooks('afterGetRowHeader', visualRowIndex, TH);\n  }\n\n  /**\n   * Append column header to a TH element.\n   *\n   * @private\n   * @param {number} visualColumnIndex Visual column index.\n   * @param {HTMLTableCellElement} TH The table header element.\n   * @param {Function} [label] The function that returns the header label.\n   * @param {number} [headerLevel=0] The index of header level counting from the top (positive\n   *                                 values counting from 0 to N).\n   */\n  appendColHeader(visualColumnIndex, TH) {\n    let label = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.hot.getColHeader;\n    let headerLevel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n    const getColumnHeaderClassNames = () => {\n      const metaHeaderClassNames = visualColumnIndex >= 0 ? this.hot.getColumnMeta(visualColumnIndex).headerClassName : null;\n      return metaHeaderClassNames ? metaHeaderClassNames.split(' ') : [];\n    };\n    if (TH.firstChild) {\n      const container = TH.firstChild;\n      if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasClass\"])(container, 'relative')) {\n        this.updateCellHeader(container.querySelector('.colHeader'), visualColumnIndex, label, headerLevel);\n        container.className = '';\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(container, ['relative', ...getColumnHeaderClassNames()]);\n      } else {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"empty\"])(TH);\n        this.appendColHeader(visualColumnIndex, TH, label, headerLevel);\n      }\n    } else {\n      const {\n        rootDocument\n      } = this.hot;\n      const div = rootDocument.createElement('div');\n      const span = rootDocument.createElement('span');\n      const classNames = getColumnHeaderClassNames();\n      div.classList.add('relative', ...classNames);\n      span.className = 'colHeader';\n      if (this.settings.ariaTags) {\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setAttribute\"])(div, ...Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_8__[\"A11Y_PRESENTATION\"])());\n        Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setAttribute\"])(span, ...Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_8__[\"A11Y_PRESENTATION\"])());\n      }\n      this.updateCellHeader(span, visualColumnIndex, label, headerLevel);\n      div.appendChild(span);\n      TH.appendChild(div);\n    }\n    this.hot.runHooks('afterGetColHeader', visualColumnIndex, TH, headerLevel);\n  }\n\n  /**\n   * Updates header cell content.\n   *\n   * @private\n   * @param {HTMLElement} element Element to update.\n   * @param {number} index Row index or column index.\n   * @param {Function} content Function which should be returns content for this cell.\n   * @param {number} [headerLevel=0] The index of header level counting from the top (positive\n   *                                 values counting from 0 to N).\n   */\n  updateCellHeader(element, index, content) {\n    let headerLevel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n    let renderedIndex = index;\n    const parentOverlay = this._wt.wtOverlays.getParentOverlay(element) || this._wt;\n\n    // prevent wrong calculations from SampleGenerator\n    if (element.parentNode) {\n      if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasClass\"])(element, 'colHeader')) {\n        renderedIndex = parentOverlay.wtTable.columnFilter.sourceToRendered(index);\n      } else if (Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"hasClass\"])(element, 'rowHeader')) {\n        renderedIndex = parentOverlay.wtTable.rowFilter.sourceToRendered(index);\n      }\n    }\n    if (renderedIndex > -1) {\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"fastInnerHTML\"])(element, content(index, headerLevel));\n    } else {\n      // workaround for https://github.com/handsontable/handsontable/issues/1946\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"fastInnerText\"])(element, String.fromCharCode(160));\n      Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(element, 'cornerHeader');\n    }\n  }\n\n  /**\n   * Given a element's left (or right in RTL mode) position relative to the viewport, returns maximum\n   * element width until the right (or left) edge of the viewport (before scrollbar).\n   *\n   * @private\n   * @param {number} inlineOffset The left (or right in RTL mode) offset.\n   * @returns {number}\n   */\n  maximumVisibleElementWidth(inlineOffset) {\n    const workspaceWidth = this._wt.wtViewport.getWorkspaceWidth();\n    const maxWidth = workspaceWidth - inlineOffset;\n    return maxWidth > 0 ? maxWidth : 0;\n  }\n\n  /**\n   * Given a element's top position relative to the viewport, returns maximum element height until the bottom\n   * edge of the viewport (before scrollbar).\n   *\n   * @private\n   * @param {number} topOffset The top offset.\n   * @returns {number}\n   */\n  maximumVisibleElementHeight(topOffset) {\n    const workspaceHeight = this._wt.wtViewport.getWorkspaceHeight();\n    const maxHeight = workspaceHeight - topOffset;\n    return maxHeight > 0 ? maxHeight : 0;\n  }\n\n  /**\n   * Sets new dimensions of the container.\n   *\n   * @param {number} width The table width.\n   * @param {number} height The table height.\n   */\n  setLastSize(width, height) {\n    _classPrivateFieldSet(_lastWidth, this, width);\n    _classPrivateFieldSet(_lastHeight, this, height);\n  }\n\n  /**\n   * Returns cached dimensions.\n   *\n   * @returns {object}\n   */\n  getLastSize() {\n    return {\n      width: _classPrivateFieldGet(_lastWidth, this),\n      height: _classPrivateFieldGet(_lastHeight, this)\n    };\n  }\n\n  /**\n   * Returns the first rendered row in the DOM (usually is not visible in the table's viewport).\n   *\n   * @returns {number | null}\n   */\n  getFirstRenderedVisibleRow() {\n    if (!this._wt.wtViewport.rowsRenderCalculator) {\n      return null;\n    }\n    return this.hot.rowIndexMapper.getNearestNotHiddenIndex(this._wt.wtTable.getFirstRenderedRow(), 1);\n  }\n\n  /**\n   * Returns the last rendered row in the DOM (usually is not visible in the table's viewport).\n   *\n   * @returns {number | null}\n   */\n  getLastRenderedVisibleRow() {\n    if (!this._wt.wtViewport.rowsRenderCalculator) {\n      return null;\n    }\n    return this.hot.rowIndexMapper.getNearestNotHiddenIndex(this._wt.wtTable.getLastRenderedRow(), -1);\n  }\n\n  /**\n   * Returns the first rendered column in the DOM (usually is not visible in the table's viewport).\n   *\n   * @returns {number | null}\n   */\n  getFirstRenderedVisibleColumn() {\n    if (!this._wt.wtViewport.columnsRenderCalculator) {\n      return null;\n    }\n    return this.hot.columnIndexMapper.getNearestNotHiddenIndex(this._wt.wtTable.getFirstRenderedColumn(), 1);\n  }\n\n  /**\n   * Returns the last rendered column in the DOM (usually is not visible in the table's viewport).\n   *\n   * @returns {number | null}\n   */\n  getLastRenderedVisibleColumn() {\n    if (!this._wt.wtViewport.columnsRenderCalculator) {\n      return null;\n    }\n    return this.hot.columnIndexMapper.getNearestNotHiddenIndex(this._wt.wtTable.getLastRenderedColumn(), -1);\n  }\n\n  /**\n   * Returns the first fully visible row in the table viewport. When the table has overlays the method returns\n   * the first row of the master table that is not overlapped by overlay.\n   *\n   * @returns {number}\n   */\n  getFirstFullyVisibleRow() {\n    return this.hot.rowIndexMapper.getVisualFromRenderableIndex(this._wt.wtScroll.getFirstVisibleRow());\n  }\n\n  /**\n   * Returns the last fully visible row in the table viewport. When the table has overlays the method returns\n   * the first row of the master table that is not overlapped by overlay.\n   *\n   * @returns {number}\n   */\n  getLastFullyVisibleRow() {\n    return this.hot.rowIndexMapper.getVisualFromRenderableIndex(this._wt.wtScroll.getLastVisibleRow());\n  }\n\n  /**\n   * Returns the first fully visible column in the table viewport. When the table has overlays the method returns\n   * the first row of the master table that is not overlapped by overlay.\n   *\n   * @returns {number}\n   */\n  getFirstFullyVisibleColumn() {\n    return this.hot.columnIndexMapper.getVisualFromRenderableIndex(this._wt.wtScroll.getFirstVisibleColumn());\n  }\n\n  /**\n   * Returns the last fully visible column in the table viewport. When the table has overlays the method returns\n   * the first row of the master table that is not overlapped by overlay.\n   *\n   * @returns {number}\n   */\n  getLastFullyVisibleColumn() {\n    return this.hot.columnIndexMapper.getVisualFromRenderableIndex(this._wt.wtScroll.getLastVisibleColumn());\n  }\n\n  /**\n   * Returns the first partially visible row in the table viewport. When the table has overlays the method returns\n   * the first row of the master table that is not overlapped by overlay.\n   *\n   * @returns {number}\n   */\n  getFirstPartiallyVisibleRow() {\n    return this.hot.rowIndexMapper.getVisualFromRenderableIndex(this._wt.wtScroll.getFirstPartiallyVisibleRow());\n  }\n\n  /**\n   * Returns the last partially visible row in the table viewport. When the table has overlays the method returns\n   * the first row of the master table that is not overlapped by overlay.\n   *\n   * @returns {number}\n   */\n  getLastPartiallyVisibleRow() {\n    return this.hot.rowIndexMapper.getVisualFromRenderableIndex(this._wt.wtScroll.getLastPartiallyVisibleRow());\n  }\n\n  /**\n   * Returns the first partially visible column in the table viewport. When the table has overlays the method returns\n   * the first row of the master table that is not overlapped by overlay.\n   *\n   * @returns {number}\n   */\n  getFirstPartiallyVisibleColumn() {\n    return this.hot.columnIndexMapper.getVisualFromRenderableIndex(this._wt.wtScroll.getFirstPartiallyVisibleColumn());\n  }\n\n  /**\n   * Returns the last partially visible column in the table viewport. When the table has overlays the method returns\n   * the first row of the master table that is not overlapped by overlay.\n   *\n   * @returns {number}\n   */\n  getLastPartiallyVisibleColumn() {\n    return this.hot.columnIndexMapper.getVisualFromRenderableIndex(this._wt.wtScroll.getLastPartiallyVisibleColumn());\n  }\n\n  /**\n   * Returns the total count of the rendered column headers.\n   *\n   * @returns {number}\n   */\n  getColumnHeadersCount() {\n    return _classPrivateFieldGet(_columnHeadersCount, this);\n  }\n\n  /**\n   * Returns the total count of the rendered row headers.\n   *\n   * @returns {number}\n   */\n  getRowHeadersCount() {\n    return _classPrivateFieldGet(_rowHeadersCount, this);\n  }\n\n  /**\n   * Returns the table's viewport width. When the table has defined the size of the container,\n   * and the columns do not fill the entire viewport, the viewport width is equal to the sum of\n   * the columns' widths.\n   *\n   * @returns {number}\n   */\n  getViewportWidth() {\n    return this._wt.wtViewport.getViewportWidth();\n  }\n\n  /**\n   * Returns the table's total width including the scrollbar width.\n   *\n   * @returns {number}\n   */\n  getWorkspaceWidth() {\n    return this._wt.wtViewport.getWorkspaceWidth();\n  }\n\n  /**\n   * Returns the table's viewport height. When the table has defined the size of the container,\n   * and the rows do not fill the entire viewport, the viewport height is equal to the sum of\n   * the rows' heights.\n   *\n   * @returns {number}\n   */\n  getViewportHeight() {\n    return this._wt.wtViewport.getViewportHeight();\n  }\n\n  /**\n   * Returns the table's total height including the scrollbar height.\n   *\n   * @returns {number}\n   */\n  getWorkspaceHeight() {\n    return this._wt.wtViewport.getWorkspaceHeight();\n  }\n\n  /**\n   * Checks to what overlay the provided element belongs.\n   *\n   * @param {HTMLElement} element The DOM element to check.\n   * @returns {'master'|'inline_start'|'top'|'top_inline_start_corner'|'bottom'|'bottom_inline_start_corner'}\n   */\n  getElementOverlayName(element) {\n    var _this$_wt$wtOverlays$;\n    return ((_this$_wt$wtOverlays$ = this._wt.wtOverlays.getParentOverlay(element)) !== null && _this$_wt$wtOverlays$ !== void 0 ? _this$_wt$wtOverlays$ : this._wt).wtTable.name;\n  }\n\n  /**\n   * Gets the overlay instance by its name.\n   *\n   * @param {'inline_start'|'top'|'top_inline_start_corner'|'bottom'|'bottom_inline_start_corner'} overlayName The overlay name.\n   * @returns {Overlay | null}\n   */\n  getOverlayByName(overlayName) {\n    return this._wt.getOverlayByName(overlayName);\n  }\n\n  /**\n   * Checks if the table is visible or not.\n   *\n   * @returns {boolean}\n   */\n  isVisible() {\n    return this._wt.wtTable.isVisible();\n  }\n  /**\n   * Destroys internal WalkOnTable's instance. Detaches all of the bonded listeners.\n   *\n   * @private\n   */\n  destroy() {\n    this._wt.destroy();\n    this.eventManager.destroy();\n  }\n}\nfunction _getAriaColcount() {\n  return parseInt(this.hot.rootElement.getAttribute(Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_8__[\"A11Y_COLCOUNT\"])()[0]), 10);\n}\n/**\n * Update the `aria-colcount` attribute by the provided value.\n *\n * @param {number} delta The number of columns to add or remove to the aria tag.\n */\nfunction _updateAriaColcount(delta) {\n  const colCount = _assertClassBrand(_TableView_brand, this, _getAriaColcount).call(this) + delta;\n  Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"setAttribute\"])(this.hot.rootElement, ...Object(_helpers_a11y_mjs__WEBPACK_IMPORTED_MODULE_8__[\"A11Y_COLCOUNT\"])(colCount));\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (TableView);\n\n//# sourceURL=webpack:///./node_modules/handsontable/tableView.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/changesObservable/observable.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/translations/changesObservable/observable.mjs ***!
  \*********************************************************************************/
/*! exports provided: ChangesObservable */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ChangesObservable\", function() { return ChangesObservable; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _observer_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./observer.mjs */ \"./node_modules/handsontable/translations/changesObservable/observer.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils.mjs */ \"./node_modules/handsontable/translations/changesObservable/utils.mjs\");\n\n\n\n\n\n\n\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n/**\n * The ChangesObservable module is an object that represents a resource that provides\n * the ability to observe the changes that happened in the index map indexes during\n * the code running.\n *\n * @private\n * @class ChangesObservable\n */\nvar _observers = /*#__PURE__*/new WeakMap();\nvar _indexMatrix = /*#__PURE__*/new WeakMap();\nvar _currentIndexState = /*#__PURE__*/new WeakMap();\nvar _isMatrixIndexesInitialized = /*#__PURE__*/new WeakMap();\nvar _initialIndexValue = /*#__PURE__*/new WeakMap();\nclass ChangesObservable {\n  constructor() {\n    let {\n      initialIndexValue\n    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    /**\n     * The list of registered ChangesObserver instances.\n     *\n     * @type {ChangesObserver[]}\n     */\n    _classPrivateFieldInitSpec(this, _observers, new Set());\n    /**\n     * An array with default values that act as a base array that will be compared with\n     * the last saved index state. The changes are generated and immediately send through\n     * the newly created ChangesObserver object. Thanks to that, the observer initially has\n     * all information about what indexes are currently changed.\n     *\n     * @type {Array}\n     */\n    _classPrivateFieldInitSpec(this, _indexMatrix, []);\n    /**\n     * An array that holds the indexes state that is currently valid. The value is changed on every\n     * index mapper cache update.\n     *\n     * @type {Array}\n     */\n    _classPrivateFieldInitSpec(this, _currentIndexState, []);\n    /**\n     * The flag determines if the observable is initialized or not. Not initialized object creates\n     * index matrix once while emitting new changes.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _isMatrixIndexesInitialized, false);\n    /**\n     * The initial index value allows control from what value the index matrix array will be created.\n     * Changing that value changes how the array diff generates the changes for the initial data\n     * sent to the subscribers. For example, the changes can be triggered by detecting the changes\n     * from `false` to `true` value or vice versa. Generally, it depends on which index map type\n     * the Observable will work with. For \"hiding\" or \"trimming\" index types, it will be boolean\n     * values. For various index maps, it can be anything, but I suspect that the most appropriate\n     * initial value will be \"undefined\" in that case.\n     *\n     * @type {boolean}\n     */\n    _classPrivateFieldInitSpec(this, _initialIndexValue, false);\n    _classPrivateFieldSet(_initialIndexValue, this, initialIndexValue !== null && initialIndexValue !== void 0 ? initialIndexValue : false);\n  }\n\n  /* eslint-disable jsdoc/require-description-complete-sentence */\n  /**\n   * Creates and returns a new instance of the ChangesObserver object. The resource\n   * allows subscribing to the index changes that during the code running may change.\n   * Changes are emitted as an array of the index change. Each change is represented\n   * separately as an object with `op`, `index`, `oldValue`, and `newValue` props.\n   *\n   * For example:\n   * ```\n   * [\n   *   { op: 'replace', index: 1, oldValue: false, newValue: true },\n   *   { op: 'replace', index: 3, oldValue: false, newValue: true },\n   *   { op: 'insert', index: 4, oldValue: false, newValue: true },\n   * ]\n   * // or when the new index map changes have less indexes\n   * [\n   *   { op: 'replace', index: 1, oldValue: false, newValue: true },\n   *   { op: 'remove', index: 4, oldValue: false, newValue: true },\n   * ]\n   * ```\n   *\n   * @returns {ChangesObserver}\n   */\n  /* eslint-enable jsdoc/require-description-complete-sentence */\n  createObserver() {\n    const observer = new _observer_mjs__WEBPACK_IMPORTED_MODULE_8__[\"ChangesObserver\"]();\n    _classPrivateFieldGet(_observers, this).add(observer);\n    observer.addLocalHook('unsubscribe', () => {\n      _classPrivateFieldGet(_observers, this).delete(observer);\n    });\n    observer._writeInitialChanges(Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_9__[\"arrayDiff\"])(_classPrivateFieldGet(_indexMatrix, this), _classPrivateFieldGet(_currentIndexState, this)));\n    return observer;\n  }\n\n  /**\n   * The method is an entry point for triggering new index map changes. Emitting the\n   * changes triggers comparing algorithm which compares last saved state with a new\n   * state. When there are some differences, the changes are sent to all subscribers.\n   *\n   * @param {Array} indexesState An array with index map state.\n   */\n  emit(indexesState) {\n    let currentIndexState = _classPrivateFieldGet(_currentIndexState, this);\n    if (!_classPrivateFieldGet(_isMatrixIndexesInitialized, this) || _classPrivateFieldGet(_indexMatrix, this).length !== indexesState.length) {\n      if (indexesState.length === 0) {\n        indexesState = new Array(currentIndexState.length).fill(_classPrivateFieldGet(_initialIndexValue, this));\n      } else {\n        _classPrivateFieldSet(_indexMatrix, this, new Array(indexesState.length).fill(_classPrivateFieldGet(_initialIndexValue, this)));\n      }\n      if (!_classPrivateFieldGet(_isMatrixIndexesInitialized, this)) {\n        _classPrivateFieldSet(_isMatrixIndexesInitialized, this, true);\n        currentIndexState = _classPrivateFieldGet(_indexMatrix, this);\n      }\n    }\n    const changes = Object(_utils_mjs__WEBPACK_IMPORTED_MODULE_9__[\"arrayDiff\"])(currentIndexState, indexesState);\n    _classPrivateFieldGet(_observers, this).forEach(observer => observer._write(changes));\n    _classPrivateFieldSet(_currentIndexState, this, indexesState);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/changesObservable/observable.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/changesObservable/observer.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/translations/changesObservable/observer.mjs ***!
  \*******************************************************************************/
/*! exports provided: ChangesObserver */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ChangesObserver\", function() { return ChangesObserver; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n\n\n/**\n * The ChangesObserver module is an object that represents a disposable resource\n * provided by the ChangesObservable module.\n *\n * @class ChangesObserver\n */\nvar _currentInitialChanges = /*#__PURE__*/new WeakMap();\nclass ChangesObserver {\n  constructor() {\n    /**\n     * The field holds initial changes that will be used to notify the callbacks added using\n     * subscribe method. Regardless of the moment of listening for changes, the subscriber\n     * will be notified once with all changes made before subscribing.\n     *\n     * @type {Array}\n     */\n    _classPrivateFieldInitSpec(this, _currentInitialChanges, []);\n  }\n  /**\n   * Subscribes to the observer.\n   *\n   * @param {Function} callback A function that will be called when the new changes will appear.\n   * @returns {ChangesObserver}\n   */\n  subscribe(callback) {\n    this.addLocalHook('change', callback);\n    this._write(_classPrivateFieldGet(_currentInitialChanges, this));\n    return this;\n  }\n\n  /**\n   * Unsubscribes all subscriptions. After the method call, the observer would not produce\n   * any new events.\n   *\n   * @returns {ChangesObserver}\n   */\n  unsubscribe() {\n    this.runLocalHooks('unsubscribe');\n    this.clearLocalHooks();\n    return this;\n  }\n\n  /**\n   * The write method is executed by the ChangesObservable module. The module produces all\n   * changes events that are distributed further by the observer.\n   *\n   * @private\n   * @param {object} changes The chunk of changes produced by the ChangesObservable module.\n   * @returns {ChangesObserver}\n   */\n  _write(changes) {\n    if (changes.length > 0) {\n      this.runLocalHooks('change', changes);\n    }\n    return this;\n  }\n\n  /**\n   * The write method is executed by the ChangesObservable module. The module produces initial\n   * changes that will be used to notify new subscribers.\n   *\n   * @private\n   * @param {object} initialChanges The chunk of changes produced by the ChangesObservable module.\n   */\n  _writeInitialChanges(initialChanges) {\n    _classPrivateFieldSet(_currentInitialChanges, this, initialChanges);\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_1__[\"mixin\"])(ChangesObserver, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/changesObservable/observer.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/changesObservable/utils.mjs":
/*!****************************************************************************!*\
  !*** ./node_modules/handsontable/translations/changesObservable/utils.mjs ***!
  \****************************************************************************/
/*! exports provided: arrayDiff */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arrayDiff\", function() { return arrayDiff; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n\n/**\n * An array diff implementation. The function iterates through the arrays and depends\n * on the diff results, collect the changes as a list of the objects.\n *\n * Each object contains information about the differences in the indexes of the arrays.\n * The changes also contain data about the new and previous array values.\n *\n * @private\n * @param {Array} baseArray The base array to diff from.\n * @param {Array} newArray The new array to compare with.\n * @returns {Array}\n */\nfunction arrayDiff(baseArray, newArray) {\n  const changes = [];\n  let i = 0;\n  let j = 0;\n\n  /* eslint-disable no-plusplus */\n  for (; i < baseArray.length && j < newArray.length; i++, j++) {\n    if (baseArray[i] !== newArray[j]) {\n      changes.push({\n        op: 'replace',\n        index: j,\n        oldValue: baseArray[i],\n        newValue: newArray[j]\n      });\n    }\n  }\n  for (; i < newArray.length; i++) {\n    changes.push({\n      op: 'insert',\n      index: i,\n      oldValue: undefined,\n      newValue: newArray[i]\n    });\n  }\n  for (; j < baseArray.length; j++) {\n    changes.push({\n      op: 'remove',\n      index: j,\n      oldValue: baseArray[j],\n      newValue: undefined\n    });\n  }\n  return changes;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/changesObservable/utils.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/index.mjs":
/*!**********************************************************!*\
  !*** ./node_modules/handsontable/translations/index.mjs ***!
  \**********************************************************/
/*! exports provided: IndexMapper, getRegisteredMapsCounter, getIncreasedIndexes, getDecreasedIndexes, alterUtilsFactory, IndexesSequence, getListWithInsertedItems, getListWithRemovedItems, HidingMap, IndexMap, LinkedPhysicalIndexToValueMap, PhysicalIndexToValueMap, TrimmingMap, createIndexMap */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _indexMapper_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./indexMapper.mjs */ \"./node_modules/handsontable/translations/indexMapper.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"IndexMapper\", function() { return _indexMapper_mjs__WEBPACK_IMPORTED_MODULE_0__[\"IndexMapper\"]; });\n\n/* harmony import */ var _mapCollections_mapCollection_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mapCollections/mapCollection.mjs */ \"./node_modules/handsontable/translations/mapCollections/mapCollection.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredMapsCounter\", function() { return _mapCollections_mapCollection_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getRegisteredMapsCounter\"]; });\n\n/* harmony import */ var _maps_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./maps/utils/index.mjs */ \"./node_modules/handsontable/translations/maps/utils/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getIncreasedIndexes\", function() { return _maps_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getIncreasedIndexes\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getDecreasedIndexes\", function() { return _maps_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getDecreasedIndexes\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"alterUtilsFactory\", function() { return _maps_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"alterUtilsFactory\"]; });\n\n/* harmony import */ var _maps_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./maps/index.mjs */ \"./node_modules/handsontable/translations/maps/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"IndexesSequence\", function() { return _maps_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"IndexesSequence\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getListWithInsertedItems\", function() { return _maps_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"getListWithInsertedItems\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getListWithRemovedItems\", function() { return _maps_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"getListWithRemovedItems\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HidingMap\", function() { return _maps_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"HidingMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"IndexMap\", function() { return _maps_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"IndexMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LinkedPhysicalIndexToValueMap\", function() { return _maps_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"LinkedPhysicalIndexToValueMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PhysicalIndexToValueMap\", function() { return _maps_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"PhysicalIndexToValueMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TrimmingMap\", function() { return _maps_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"TrimmingMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createIndexMap\", function() { return _maps_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"createIndexMap\"]; });\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/indexMapper.mjs":
/*!****************************************************************!*\
  !*** ./node_modules/handsontable/translations/indexMapper.mjs ***!
  \****************************************************************/
/*! exports provided: IndexMapper */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IndexMapper\", function() { return IndexMapper; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _maps_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./maps/index.mjs */ \"./node_modules/handsontable/translations/maps/index.mjs\");\n/* harmony import */ var _mapCollections_index_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./mapCollections/index.mjs */ \"./node_modules/handsontable/translations/mapCollections/index.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _changesObservable_observable_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./changesObservable/observable.mjs */ \"./node_modules/handsontable/translations/changesObservable/observable.mjs\");\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A set of deprecated feature names.\n *\n * @type {Set<string>}\n */\n// eslint-disable-next-line no-unused-vars\nconst deprecationWarns = new Set();\n\n/**\n * @class IndexMapper\n * @description\n *\n * Index mapper stores, registers and manages the indexes on the basis of calculations collected from the subsidiary maps.\n * It should be seen as a single source of truth (regarding row and column indexes, for example, their sequence, information if they are skipped in the process of rendering (hidden or trimmed), values linked to them)\n * for any operation that considers CRUD actions such as **insertion**, **movement**, **removal** etc, and is used to properly calculate physical and visual indexes translations in both ways.\n * It has a built-in cache that is updated only when the data or structure changes.\n *\n * **Physical index** is a type of an index from the sequence of indexes assigned to the data source rows or columns\n *  (from 0 to n, where n is number of the cells on the axis of data set).\n * **Visual index** is a type of an index from the sequence of indexes assigned to rows or columns existing in {@link DataMap} (from 0 to n, where n is number of the cells on the axis of data set).\n * **Renderable index** is a type of an index from the sequence of indexes assigned to rows or columns whose may be rendered (when they are in a viewport; from 0 to n, where n is number of the cells renderable on the axis).\n *\n * There are different kinds of index maps which may be registered in the collections and can be used by a reference.\n * They also expose public API and trigger two local hooks such as `init` (on initialization) and `change` (on change).\n *\n * These are: {@link IndexesSequence}, {@link PhysicalIndexToValueMap}, {@link LinkedPhysicalIndexToValueMap}, {@link HidingMap}, and {@link TrimmingMap}.\n */\nclass IndexMapper {\n  constructor() {\n    /**\n     * Map for storing the sequence of indexes.\n     *\n     * It is registered by default and may be used from API methods.\n     *\n     * @private\n     * @type {IndexesSequence}\n     */\n    _defineProperty(this, \"indexesSequence\", new _maps_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"IndexesSequence\"]());\n    /**\n     * Collection for different trimming maps. Indexes marked as trimmed in any map WILL NOT be included in\n     * the {@link DataMap} and won't be rendered.\n     *\n     * @private\n     * @type {MapCollection}\n     */\n    _defineProperty(this, \"trimmingMapsCollection\", new _mapCollections_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"AggregatedCollection\"](valuesForIndex => valuesForIndex.some(value => value === true), false));\n    /**\n     * Collection for different hiding maps. Indexes marked as hidden in any map WILL be included in the {@link DataMap},\n     * but won't be rendered.\n     *\n     * @private\n     * @type {MapCollection}\n     */\n    _defineProperty(this, \"hidingMapsCollection\", new _mapCollections_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"AggregatedCollection\"](valuesForIndex => valuesForIndex.some(value => value === true), false));\n    /**\n     * Collection for another kind of maps. There are stored mappings from indexes (visual or physical) to values.\n     *\n     * @private\n     * @type {MapCollection}\n     */\n    _defineProperty(this, \"variousMapsCollection\", new _mapCollections_index_mjs__WEBPACK_IMPORTED_MODULE_10__[\"MapCollection\"]());\n    /**\n     * The class instance collects row and column index changes that happen while the Handsontable\n     * is running. The object allows creating observers that you can subscribe. Each event represents\n     * the index change (e.g., insert, removing, change index value), which can be consumed by a\n     * developer to update its logic.\n     *\n     * @private\n     * @type {ChangesObservable}\n     */\n    _defineProperty(this, \"hidingChangesObservable\", new _changesObservable_observable_mjs__WEBPACK_IMPORTED_MODULE_14__[\"ChangesObservable\"]({\n      initialIndexValue: false\n    }));\n    /**\n     * Cache for list of not trimmed indexes, respecting the indexes sequence (physical indexes).\n     *\n     * Note: Please keep in mind that trimmed index can be also hidden.\n     *\n     * @private\n     * @type {Array}\n     */\n    _defineProperty(this, \"notTrimmedIndexesCache\", []);\n    /**\n     * Cache for list of not hidden indexes, respecting the indexes sequence (physical indexes).\n     *\n     * Note: Please keep in mind that hidden index can be also trimmed.\n     *\n     * @private\n     * @type {Array}\n     */\n    _defineProperty(this, \"notHiddenIndexesCache\", []);\n    /**\n     * Flag determining whether actions performed on index mapper have been batched. It's used for cache management.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _defineProperty(this, \"isBatched\", false);\n    /**\n     * Flag determining whether any action on indexes sequence has been performed. It's used for cache management.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _defineProperty(this, \"indexesSequenceChanged\", false);\n    /**\n     * Flag informing about source of the change.\n     *\n     * @type {undefined|string}\n     */\n    _defineProperty(this, \"indexesChangeSource\", undefined);\n    /**\n     * Flag determining whether any action on trimmed indexes has been performed. It's used for cache management.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _defineProperty(this, \"trimmedIndexesChanged\", false);\n    /**\n     * Flag determining whether any action on hidden indexes has been performed. It's used for cache management.\n     *\n     * @private\n     * @type {boolean}\n     */\n    _defineProperty(this, \"hiddenIndexesChanged\", false);\n    /**\n     * Physical indexes (respecting the sequence of indexes) which may be rendered (when they are in a viewport).\n     *\n     * @private\n     * @type {Array}\n     */\n    _defineProperty(this, \"renderablePhysicalIndexesCache\", []);\n    /**\n     * Visual indexes (native map's value) corresponding to physical indexes (native map's index).\n     *\n     * @private\n     * @type {Map}\n     */\n    _defineProperty(this, \"fromPhysicalToVisualIndexesCache\", new Map());\n    /**\n     * Visual indexes (native map's value) corresponding to physical indexes (native map's index).\n     *\n     * @private\n     * @type {Map}\n     */\n    _defineProperty(this, \"fromVisualToRenderableIndexesCache\", new Map());\n    this.indexesSequence.addLocalHook('change', () => {\n      this.indexesSequenceChanged = true;\n\n      // Sequence of stored indexes might change.\n      this.updateCache();\n      this.runLocalHooks('indexesSequenceChange', this.indexesChangeSource);\n      this.runLocalHooks('change', this.indexesSequence, null);\n    });\n    this.trimmingMapsCollection.addLocalHook('change', changedMap => {\n      this.trimmedIndexesChanged = true;\n\n      // Number of trimmed indexes might change.\n      this.updateCache();\n      this.runLocalHooks('change', changedMap, this.trimmingMapsCollection);\n    });\n    this.hidingMapsCollection.addLocalHook('change', changedMap => {\n      this.hiddenIndexesChanged = true;\n\n      // Number of hidden indexes might change.\n      this.updateCache();\n      this.runLocalHooks('change', changedMap, this.hidingMapsCollection);\n    });\n    this.variousMapsCollection.addLocalHook('change', changedMap => {\n      this.runLocalHooks('change', changedMap, this.variousMapsCollection);\n    });\n  }\n\n  /**\n   * Suspends the cache update for this map. The method is helpful to group multiple\n   * operations, which affects the cache. In this case, the cache will be updated once after\n   * calling the `resumeOperations` method.\n   */\n  suspendOperations() {\n    this.isBatched = true;\n  }\n\n  /**\n   * Resumes the cache update for this map. It recalculates the cache and restores the\n   * default behavior where each map modification updates the cache.\n   */\n  resumeOperations() {\n    this.isBatched = false;\n    this.updateCache();\n  }\n\n  /**\n   * It creates and returns the new instance of the ChangesObserver object. The object\n   * allows listening to the index changes that happen while the Handsontable is running.\n   *\n   * @param {string} indexMapType The index map type which we want to observe.\n   *                              Currently, only the 'hiding' index map types are observable.\n   * @returns {ChangesObserver}\n   */\n  createChangesObserver(indexMapType) {\n    if (indexMapType !== 'hiding') {\n      throw new Error(`Unsupported index map type \"${indexMapType}\".`);\n    }\n    return this.hidingChangesObservable.createObserver();\n  }\n\n  /**\n   * Creates and registers a new `IndexMap` for a specified `IndexMapper` instance.\n   *\n   * @param {string} indexName A unique index name.\n   * @param {string} mapType The index map type (e.g., \"hiding\", \"trimming\", \"physicalIndexToValue\").\n   * @param {*} [initValueOrFn] The initial value for the index map.\n   * @returns {IndexMap}\n   */\n  createAndRegisterIndexMap(indexName, mapType, initValueOrFn) {\n    return this.registerMap(indexName, Object(_maps_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"createIndexMap\"])(mapType, initValueOrFn));\n  }\n\n  /**\n   * Register map which provide some index mappings. Type of map determining to which collection it will be added.\n   *\n   * @param {string} uniqueName Name of the index map. It should be unique.\n   * @param {IndexMap} indexMap Registered index map updated on items removal and insertion.\n   * @returns {IndexMap}\n   */\n  registerMap(uniqueName, indexMap) {\n    if (this.trimmingMapsCollection.get(uniqueName) || this.hidingMapsCollection.get(uniqueName) || this.variousMapsCollection.get(uniqueName)) {\n      throw Error(`Map with name \"${uniqueName}\" has been already registered.`);\n    }\n    if (indexMap instanceof _maps_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"TrimmingMap\"]) {\n      this.trimmingMapsCollection.register(uniqueName, indexMap);\n    } else if (indexMap instanceof _maps_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"HidingMap\"]) {\n      this.hidingMapsCollection.register(uniqueName, indexMap);\n    } else {\n      this.variousMapsCollection.register(uniqueName, indexMap);\n    }\n    const numberOfIndexes = this.getNumberOfIndexes();\n\n    /*\n      We initialize map ony when we have full information about number of indexes and the dataset is not empty.\n      Otherwise it's unnecessary. Initialization of empty array would not give any positive changes. After initializing\n      it with number of indexes equal to 0 the map would be still empty. What's more there would be triggered\n      not needed hook (no real change have occurred). Number of indexes is known after loading data (the `loadData`\n      function from the `Core`).\n     */\n    if (numberOfIndexes > 0) {\n      indexMap.init(numberOfIndexes);\n    }\n    return indexMap;\n  }\n\n  /**\n   * Unregister a map with given name.\n   *\n   * @param {string} name Name of the index map.\n   */\n  unregisterMap(name) {\n    this.trimmingMapsCollection.unregister(name);\n    this.hidingMapsCollection.unregister(name);\n    this.variousMapsCollection.unregister(name);\n  }\n\n  /**\n   * Unregisters all collected index map instances from all map collection types.\n   */\n  unregisterAll() {\n    this.trimmingMapsCollection.unregisterAll();\n    this.hidingMapsCollection.unregisterAll();\n    this.variousMapsCollection.unregisterAll();\n  }\n\n  /**\n   * Get a physical index corresponding to the given visual index.\n   *\n   * @param {number} visualIndex Visual index.\n   * @returns {number|null} Returns translated index mapped by passed visual index.\n   */\n  getPhysicalFromVisualIndex(visualIndex) {\n    // Index in the table boundaries provided by the `DataMap`.\n    const physicalIndex = this.notTrimmedIndexesCache[visualIndex];\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_13__[\"isDefined\"])(physicalIndex)) {\n      return physicalIndex;\n    }\n    return null;\n  }\n\n  /**\n   * Get a physical index corresponding to the given renderable index.\n   *\n   * @param {number} renderableIndex Renderable index.\n   * @returns {null|number}\n   */\n  getPhysicalFromRenderableIndex(renderableIndex) {\n    const physicalIndex = this.renderablePhysicalIndexesCache[renderableIndex];\n\n    // Index in the renderable table boundaries.\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_13__[\"isDefined\"])(physicalIndex)) {\n      return physicalIndex;\n    }\n    return null;\n  }\n\n  /**\n   * Get a visual index corresponding to the given physical index.\n   *\n   * @param {number} physicalIndex Physical index to search.\n   * @returns {number|null} Returns a visual index of the index mapper.\n   */\n  getVisualFromPhysicalIndex(physicalIndex) {\n    const visualIndex = this.fromPhysicalToVisualIndexesCache.get(physicalIndex);\n\n    // Index in the table boundaries provided by the `DataMap`.\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_13__[\"isDefined\"])(visualIndex)) {\n      return visualIndex;\n    }\n    return null;\n  }\n\n  /**\n   * Get a visual index corresponding to the given renderable index.\n   *\n   * @param {number} renderableIndex Renderable index.\n   * @returns {null|number}\n   */\n  getVisualFromRenderableIndex(renderableIndex) {\n    return this.getVisualFromPhysicalIndex(this.getPhysicalFromRenderableIndex(renderableIndex));\n  }\n\n  /**\n   * Get a renderable index corresponding to the given visual index.\n   *\n   * @param {number} visualIndex Visual index.\n   * @returns {null|number}\n   */\n  getRenderableFromVisualIndex(visualIndex) {\n    const renderableIndex = this.fromVisualToRenderableIndexesCache.get(visualIndex);\n\n    // Index in the renderable table boundaries.\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_13__[\"isDefined\"])(renderableIndex)) {\n      return renderableIndex;\n    }\n    return null;\n  }\n\n  /**\n   * Search for the nearest not-hidden row or column.\n   *\n   * @param {number} fromVisualIndex The visual index of the row or column from which the search starts.<br><br>\n   * If the row or column from which the search starts is not hidden, the method simply returns the `fromVisualIndex` number.\n   * @param {number} searchDirection The search direction.<br><br>`1`: search from `fromVisualIndex` to the end of the dataset.<br><br>\n   * `-1`: search from `fromVisualIndex` to the beginning of the dataset (i.e., to the row or column at visual index `0`).\n   * @param {boolean} searchAlsoOtherWayAround `true`: if a search in a first direction failed, try the opposite direction.<br><br>\n   * `false`: search in one direction only.\n   *\n   * @returns {number|null} A visual index of a row or column, or `null`.\n   */\n  getNearestNotHiddenIndex(fromVisualIndex, searchDirection) {\n    let searchAlsoOtherWayAround = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    const physicalIndex = this.getPhysicalFromVisualIndex(fromVisualIndex);\n    if (physicalIndex === null) {\n      return null;\n    }\n    if (this.fromVisualToRenderableIndexesCache.has(fromVisualIndex)) {\n      return fromVisualIndex;\n    }\n    const visibleIndexes = Array.from(this.fromVisualToRenderableIndexesCache.keys());\n    let index = -1;\n    if (searchDirection > 0) {\n      index = visibleIndexes.findIndex(visualIndex => visualIndex > fromVisualIndex);\n    } else {\n      index = visibleIndexes.reverse().findIndex(visualIndex => visualIndex < fromVisualIndex);\n    }\n    if (index === -1) {\n      if (searchAlsoOtherWayAround) {\n        return this.getNearestNotHiddenIndex(fromVisualIndex, -searchDirection, false);\n      }\n      return null;\n    }\n    return visibleIndexes[index];\n  }\n\n  /**\n   * Set default values for all indexes in registered index maps.\n   *\n   * @param {number} [length] Destination length for all stored index maps.\n   */\n  initToLength() {\n    let length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getNumberOfIndexes();\n    this.notTrimmedIndexesCache = [...new Array(length).keys()];\n    this.notHiddenIndexesCache = [...new Array(length).keys()];\n    this.suspendOperations();\n    this.indexesChangeSource = 'init';\n    this.indexesSequence.init(length);\n    this.indexesChangeSource = undefined;\n    this.trimmingMapsCollection.initEvery(length);\n    this.resumeOperations();\n\n    // We move initialization of hidden collection to next batch for purpose of working on sequence of already trimmed indexes.\n    this.suspendOperations();\n    this.hidingMapsCollection.initEvery(length);\n\n    // It shouldn't reset the cache.\n    this.variousMapsCollection.initEvery(length);\n    this.resumeOperations();\n    this.runLocalHooks('init');\n  }\n\n  /**\n   * Trim/extend the mappers to fit the desired length.\n   *\n   * @param {number} length New mapper length.\n   */\n  fitToLength(length) {\n    const currentIndexCount = this.getNumberOfIndexes();\n    if (length < currentIndexCount) {\n      const indexesToBeRemoved = [...Array(this.getNumberOfIndexes() - length).keys()].map(i => i + length);\n      this.removeIndexes(indexesToBeRemoved);\n    } else {\n      this.insertIndexes(currentIndexCount, length - currentIndexCount);\n    }\n  }\n\n  /**\n   * Get sequence of indexes.\n   *\n   * @returns {Array} Physical indexes.\n   */\n  getIndexesSequence() {\n    return this.indexesSequence.getValues();\n  }\n\n  /**\n   * Set completely new indexes sequence.\n   *\n   * @param {Array} indexes Physical indexes.\n   */\n  setIndexesSequence(indexes) {\n    if (this.indexesChangeSource === undefined) {\n      this.indexesChangeSource = 'update';\n    }\n    this.indexesSequence.setValues(indexes);\n    if (this.indexesChangeSource === 'update') {\n      this.indexesChangeSource = undefined;\n    }\n  }\n\n  /**\n   * Get all NOT trimmed indexes.\n   *\n   * Note: Indexes marked as trimmed aren't included in a {@link DataMap} and aren't rendered.\n   *\n   * @param {boolean} [readFromCache=true] Determine if read indexes from cache.\n   * @returns {Array} List of physical indexes. Index of this native array is a \"visual index\",\n   * value of this native array is a \"physical index\".\n   */\n  getNotTrimmedIndexes() {\n    let readFromCache = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n    if (readFromCache === true) {\n      return this.notTrimmedIndexesCache;\n    }\n    const indexesSequence = this.getIndexesSequence();\n    return indexesSequence.filter(physicalIndex => this.isTrimmed(physicalIndex) === false);\n  }\n\n  /**\n   * Get length of all NOT trimmed indexes.\n   *\n   * Note: Indexes marked as trimmed aren't included in a {@link DataMap} and aren't rendered.\n   *\n   * @returns {number}\n   */\n  getNotTrimmedIndexesLength() {\n    return this.getNotTrimmedIndexes().length;\n  }\n\n  /**\n   * Get all NOT hidden indexes.\n   *\n   * Note: Indexes marked as hidden are included in a {@link DataMap}, but aren't rendered.\n   *\n   * @param {boolean} [readFromCache=true] Determine if read indexes from cache.\n   * @returns {Array} List of physical indexes. Please keep in mind that index of this native array IS NOT a \"visual index\".\n   */\n  getNotHiddenIndexes() {\n    let readFromCache = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n    if (readFromCache === true) {\n      return this.notHiddenIndexesCache;\n    }\n    const indexesSequence = this.getIndexesSequence();\n    return indexesSequence.filter(physicalIndex => this.isHidden(physicalIndex) === false);\n  }\n\n  /**\n   * Get length of all NOT hidden indexes.\n   *\n   * Note: Indexes marked as hidden are included in a {@link DataMap}, but aren't rendered.\n   *\n   * @returns {number}\n   */\n  getNotHiddenIndexesLength() {\n    return this.getNotHiddenIndexes().length;\n  }\n\n  /**\n   * Get list of physical indexes (respecting the sequence of indexes) which may be rendered (when they are in a viewport).\n   *\n   * @param {boolean} [readFromCache=true] Determine if read indexes from cache.\n   * @returns {Array} List of physical indexes. Index of this native array is a \"renderable index\",\n   * value of this native array is a \"physical index\".\n   */\n  getRenderableIndexes() {\n    let readFromCache = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n    if (readFromCache === true) {\n      return this.renderablePhysicalIndexesCache;\n    }\n    const notTrimmedIndexes = this.getNotTrimmedIndexes();\n    return notTrimmedIndexes.filter(physicalIndex => this.isHidden(physicalIndex) === false);\n  }\n\n  /**\n   * Get length of all NOT trimmed and NOT hidden indexes.\n   *\n   * @returns {number}\n   */\n  getRenderableIndexesLength() {\n    return this.getRenderableIndexes().length;\n  }\n\n  /**\n   * Get number of all indexes.\n   *\n   * @returns {number}\n   */\n  getNumberOfIndexes() {\n    return this.getIndexesSequence().length;\n  }\n\n  /**\n   * Move indexes in the index mapper.\n   *\n   * @param {number|Array} movedIndexes Visual index(es) to move.\n   * @param {number} finalIndex Visual index being a start index for the moved elements.\n   */\n  moveIndexes(movedIndexes, finalIndex) {\n    if (typeof movedIndexes === 'number') {\n      movedIndexes = [movedIndexes];\n    }\n    const physicalMovedIndexes = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_8__[\"arrayMap\"])(movedIndexes, visualIndex => this.getPhysicalFromVisualIndex(visualIndex));\n    const notTrimmedIndexesLength = this.getNotTrimmedIndexesLength();\n    const movedIndexesLength = movedIndexes.length;\n\n    // Removing moved indexes without re-indexing.\n    const notMovedIndexes = Object(_maps_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"getListWithRemovedItems\"])(this.getIndexesSequence(), physicalMovedIndexes);\n    const notTrimmedNotMovedItems = notMovedIndexes.filter(index => this.isTrimmed(index) === false);\n\n    // When item(s) are moved after the last visible item we assign the last possible index.\n    let destinationPosition = notMovedIndexes.indexOf(notTrimmedNotMovedItems[notTrimmedNotMovedItems.length - 1]) + 1;\n\n    // Otherwise, we find proper index for inserted item(s).\n    if (finalIndex + movedIndexesLength < notTrimmedIndexesLength) {\n      // Physical index at final index position.\n      const physicalIndex = notTrimmedNotMovedItems[finalIndex];\n      destinationPosition = notMovedIndexes.indexOf(physicalIndex);\n    }\n    this.indexesChangeSource = 'move';\n\n    // Adding indexes without re-indexing.\n    this.setIndexesSequence(Object(_maps_index_mjs__WEBPACK_IMPORTED_MODULE_9__[\"getListWithInsertedItems\"])(notMovedIndexes, destinationPosition, physicalMovedIndexes));\n    this.indexesChangeSource = undefined;\n  }\n\n  /**\n   * Get whether index is trimmed. Index marked as trimmed isn't included in a {@link DataMap} and isn't rendered.\n   *\n   * @param {number} physicalIndex Physical index.\n   * @returns {boolean}\n   */\n  isTrimmed(physicalIndex) {\n    return this.trimmingMapsCollection.getMergedValueAtIndex(physicalIndex);\n  }\n\n  /**\n   * Get whether index is hidden. Index marked as hidden is included in a {@link DataMap}, but isn't rendered.\n   *\n   * @param {number} physicalIndex Physical index.\n   * @returns {boolean}\n   */\n  isHidden(physicalIndex) {\n    return this.hidingMapsCollection.getMergedValueAtIndex(physicalIndex);\n  }\n\n  /**\n   * Insert new indexes and corresponding mapping and update values of the others, for all stored index maps.\n   *\n   * @private\n   * @param {number} firstInsertedVisualIndex First inserted visual index.\n   * @param {number} amountOfIndexes Amount of inserted indexes.\n   */\n  insertIndexes(firstInsertedVisualIndex, amountOfIndexes) {\n    const nthVisibleIndex = this.getNotTrimmedIndexes()[firstInsertedVisualIndex];\n    const firstInsertedPhysicalIndex = Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_13__[\"isDefined\"])(nthVisibleIndex) ? nthVisibleIndex : this.getNumberOfIndexes();\n    const insertionIndex = this.getIndexesSequence().includes(nthVisibleIndex) ? this.getIndexesSequence().indexOf(nthVisibleIndex) : this.getNumberOfIndexes();\n    const insertedIndexes = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_8__[\"arrayMap\"])(new Array(amountOfIndexes).fill(firstInsertedPhysicalIndex), (nextIndex, stepsFromStart) => nextIndex + stepsFromStart);\n    this.suspendOperations();\n    this.indexesChangeSource = 'insert';\n    this.indexesSequence.insert(insertionIndex, insertedIndexes);\n    this.indexesChangeSource = undefined;\n    this.trimmingMapsCollection.insertToEvery(insertionIndex, insertedIndexes);\n    this.hidingMapsCollection.insertToEvery(insertionIndex, insertedIndexes);\n    this.variousMapsCollection.insertToEvery(insertionIndex, insertedIndexes);\n    this.resumeOperations();\n  }\n\n  /**\n   * Remove some indexes and corresponding mappings and update values of the others, for all stored index maps.\n   *\n   * @private\n   * @param {Array} removedIndexes List of removed indexes.\n   */\n  removeIndexes(removedIndexes) {\n    this.suspendOperations();\n    this.indexesChangeSource = 'remove';\n    this.indexesSequence.remove(removedIndexes);\n    this.indexesChangeSource = undefined;\n    this.trimmingMapsCollection.removeFromEvery(removedIndexes);\n    this.hidingMapsCollection.removeFromEvery(removedIndexes);\n    this.variousMapsCollection.removeFromEvery(removedIndexes);\n    this.resumeOperations();\n  }\n\n  /**\n   * Rebuild cache for some indexes. Every action on indexes sequence or indexes skipped in the process of rendering\n   * by default reset cache, thus batching some index maps actions is recommended.\n   *\n   * @private\n   * @param {boolean} [force=false] Determine if force cache update.\n   */\n  updateCache() {\n    let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    const anyCachedIndexChanged = this.indexesSequenceChanged || this.trimmedIndexesChanged || this.hiddenIndexesChanged;\n    if (force === true || this.isBatched === false && anyCachedIndexChanged === true) {\n      this.trimmingMapsCollection.updateCache();\n      this.hidingMapsCollection.updateCache();\n      this.notTrimmedIndexesCache = this.getNotTrimmedIndexes(false);\n      this.notHiddenIndexesCache = this.getNotHiddenIndexes(false);\n      this.renderablePhysicalIndexesCache = this.getRenderableIndexes(false);\n      this.cacheFromPhysicalToVisualIndexes();\n      this.cacheFromVisualToRenderableIndexes();\n\n      // Currently there's support only for the \"hiding\" map type.\n      if (this.hiddenIndexesChanged) {\n        this.hidingChangesObservable.emit(this.hidingMapsCollection.getMergedValues());\n      }\n      this.runLocalHooks('cacheUpdated', {\n        indexesSequenceChanged: this.indexesSequenceChanged,\n        trimmedIndexesChanged: this.trimmedIndexesChanged,\n        hiddenIndexesChanged: this.hiddenIndexesChanged\n      });\n      this.indexesSequenceChanged = false;\n      this.trimmedIndexesChanged = false;\n      this.hiddenIndexesChanged = false;\n    }\n  }\n\n  /**\n   * Update cache for translations from physical to visual indexes.\n   *\n   * @private\n   */\n  cacheFromPhysicalToVisualIndexes() {\n    const nrOfNotTrimmedIndexes = this.getNotTrimmedIndexesLength();\n    this.fromPhysicalToVisualIndexesCache.clear();\n    for (let visualIndex = 0; visualIndex < nrOfNotTrimmedIndexes; visualIndex += 1) {\n      const physicalIndex = this.getPhysicalFromVisualIndex(visualIndex);\n\n      // Every visual index have corresponding physical index, but some physical indexes may don't have\n      // corresponding visual indexes (physical indexes may represent trimmed indexes, beyond the table boundaries)\n      this.fromPhysicalToVisualIndexesCache.set(physicalIndex, visualIndex);\n    }\n  }\n\n  /**\n   * Update cache for translations from visual to renderable indexes.\n   *\n   * @private\n   */\n  cacheFromVisualToRenderableIndexes() {\n    const nrOfRenderableIndexes = this.getRenderableIndexesLength();\n    this.fromVisualToRenderableIndexesCache.clear();\n    for (let renderableIndex = 0; renderableIndex < nrOfRenderableIndexes; renderableIndex += 1) {\n      // Can't use getRenderableFromVisualIndex here because we're building the cache here\n      const physicalIndex = this.getPhysicalFromRenderableIndex(renderableIndex);\n      const visualIndex = this.getVisualFromPhysicalIndex(physicalIndex);\n      this.fromVisualToRenderableIndexesCache.set(visualIndex, renderableIndex);\n    }\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_12__[\"mixin\"])(IndexMapper, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_11__[\"default\"]);\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/indexMapper.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/mapCollections/aggregatedCollection.mjs":
/*!****************************************************************************************!*\
  !*** ./node_modules/handsontable/translations/mapCollections/aggregatedCollection.mjs ***!
  \****************************************************************************************/
/*! exports provided: AggregatedCollection */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AggregatedCollection\", function() { return AggregatedCollection; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _mapCollection_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mapCollection.mjs */ \"./node_modules/handsontable/translations/mapCollections/mapCollection.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n/**\n * Collection of maps. This collection aggregate maps with the same type of values. Values from the registered maps\n * can be used to calculate a single result for particular index.\n */\nclass AggregatedCollection extends _mapCollection_mjs__WEBPACK_IMPORTED_MODULE_2__[\"MapCollection\"] {\n  constructor(aggregationFunction, fallbackValue) {\n    super();\n    /**\n     * List of merged values. Value for each index is calculated using values inside registered maps.\n     *\n     * @type {Array}\n     */\n    _defineProperty(this, \"mergedValuesCache\", []);\n    /**\n     * Function which do aggregation on the values for particular index.\n     */\n    _defineProperty(this, \"aggregationFunction\", void 0);\n    /**\n     * Fallback value when there is no calculated value for particular index.\n     */\n    _defineProperty(this, \"fallbackValue\", void 0);\n    this.aggregationFunction = aggregationFunction;\n    this.fallbackValue = fallbackValue;\n  }\n\n  /**\n   * Get merged values for all indexes.\n   *\n   * @param {boolean} [readFromCache=true] Determine if read results from the cache.\n   * @returns {Array}\n   */\n  getMergedValues() {\n    let readFromCache = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n    if (readFromCache === true) {\n      return this.mergedValuesCache;\n    }\n    if (this.getLength() === 0) {\n      return [];\n    }\n\n    // Below variable stores values for every particular map. Example describing situation when we have 2 registered maps,\n    // with length equal to 5.\n    //\n    // +---------+---------------------------------------------+\n    // |         |                  indexes                    |\n    // +---------+---------------------------------------------+\n    // |   maps  |     0    |   1   |    2  |   3   |    4     |\n    // +---------+----------+-------+-------+-------+----------+\n    // |    0    | [[ value,  value,  value,  value,  value ], |\n    // |    1    | [  value,  value,  value,  value,  value ]] |\n    // +---------+----------+-------+-------+-------+----------+\n    const mapsValuesMatrix = Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayMap\"])(this.get(), map => map.getValues());\n    // Below variable stores values for every particular index. Example describing situation when we have 2 registered maps,\n    // with length equal to 5.\n    //\n    // +---------+---------------------+\n    // |         |         maps        |\n    // +---------+---------------------+\n    // | indexes |     0    |    1     |\n    // +---------+----------+----------+\n    // |    0    | [[ value,  value ], |\n    // |    1    | [  value,  value ], |\n    // |    2    | [  value,  value ], |\n    // |    3    | [  value,  value ], |\n    // |    4    | [  value,  value ]] |\n    // +---------+----------+----------+\n    const indexesValuesMatrix = [];\n    const mapsLength = Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isDefined\"])(mapsValuesMatrix[0]) && mapsValuesMatrix[0].length || 0;\n    for (let index = 0; index < mapsLength; index += 1) {\n      const valuesForIndex = [];\n      for (let mapIndex = 0; mapIndex < this.getLength(); mapIndex += 1) {\n        valuesForIndex.push(mapsValuesMatrix[mapIndex][index]);\n      }\n      indexesValuesMatrix.push(valuesForIndex);\n    }\n    return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayMap\"])(indexesValuesMatrix, this.aggregationFunction);\n  }\n\n  /**\n   * Get merged value for particular index.\n   *\n   * @param {number} index Index for which we calculate single result.\n   * @param {boolean} [readFromCache=true] Determine if read results from the cache.\n   * @returns {*}\n   */\n  getMergedValueAtIndex(index, readFromCache) {\n    const valueAtIndex = this.getMergedValues(readFromCache)[index];\n    return Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isDefined\"])(valueAtIndex) ? valueAtIndex : this.fallbackValue;\n  }\n\n  /**\n   * Rebuild cache for the collection.\n   */\n  updateCache() {\n    this.mergedValuesCache = this.getMergedValues(false);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/mapCollections/aggregatedCollection.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/mapCollections/index.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/translations/mapCollections/index.mjs ***!
  \*************************************************************************/
/*! exports provided: AggregatedCollection, MapCollection, getRegisteredMapsCounter */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _aggregatedCollection_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./aggregatedCollection.mjs */ \"./node_modules/handsontable/translations/mapCollections/aggregatedCollection.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AggregatedCollection\", function() { return _aggregatedCollection_mjs__WEBPACK_IMPORTED_MODULE_0__[\"AggregatedCollection\"]; });\n\n/* harmony import */ var _mapCollection_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mapCollection.mjs */ \"./node_modules/handsontable/translations/mapCollections/mapCollection.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MapCollection\", function() { return _mapCollection_mjs__WEBPACK_IMPORTED_MODULE_1__[\"MapCollection\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredMapsCounter\", function() { return _mapCollection_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getRegisteredMapsCounter\"]; });\n\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/mapCollections/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/mapCollections/mapCollection.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/translations/mapCollections/mapCollection.mjs ***!
  \*********************************************************************************/
/*! exports provided: MapCollection, getRegisteredMapsCounter */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MapCollection\", function() { return MapCollection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredMapsCounter\", function() { return getRegisteredMapsCounter; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n // Counter for checking if there is a memory leak.\nlet registeredMaps = 0;\n\n/**\n * Collection of index maps having unique names. It allow us to perform bulk operations such as init, remove, insert on all index maps that have been registered in the collection.\n */\nclass MapCollection {\n  constructor() {\n    /**\n     * Collection of index maps.\n     *\n     * @type {Map<string, IndexMap>}\n     */\n    _defineProperty(this, \"collection\", new Map());\n  }\n  /**\n   * Register custom index map.\n   *\n   * @param {string} uniqueName Unique name of the index map.\n   * @param {IndexMap} indexMap Index map containing miscellaneous (i.e. Meta data, indexes sequence), updated after remove and insert data actions.\n   */\n  register(uniqueName, indexMap) {\n    if (this.collection.has(uniqueName) === false) {\n      this.collection.set(uniqueName, indexMap);\n      indexMap.addLocalHook('change', () => this.runLocalHooks('change', indexMap));\n      registeredMaps += 1;\n    }\n  }\n\n  /**\n   * Unregister custom index map.\n   *\n   * @param {string} name Name of the index map.\n   */\n  unregister(name) {\n    const indexMap = this.collection.get(name);\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isDefined\"])(indexMap)) {\n      indexMap.destroy();\n      this.collection.delete(name);\n      this.runLocalHooks('change', indexMap);\n      registeredMaps -= 1;\n    }\n  }\n\n  /**\n   * Unregisters and destroys all collected index map instances.\n   */\n  unregisterAll() {\n    this.collection.forEach((indexMap, name) => this.unregister(name));\n    this.collection.clear();\n  }\n\n  /**\n   * Get index map for the provided name.\n   *\n   * @param {string} [name] Name of the index map.\n   * @returns {Array|IndexMap}\n   */\n  get(name) {\n    if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isUndefined\"])(name)) {\n      return Array.from(this.collection.values());\n    }\n    return this.collection.get(name);\n  }\n\n  /**\n   * Get collection size.\n   *\n   * @returns {number}\n   */\n  getLength() {\n    return this.collection.size;\n  }\n\n  /**\n   * Remove some indexes and corresponding mappings and update values of the others within all collection's index maps.\n   *\n   * @private\n   * @param {Array} removedIndexes List of removed indexes.\n   */\n  removeFromEvery(removedIndexes) {\n    this.collection.forEach(indexMap => {\n      indexMap.remove(removedIndexes);\n    });\n  }\n\n  /**\n   * Insert new indexes and corresponding mapping and update values of the others all collection's index maps.\n   *\n   * @private\n   * @param {number} insertionIndex Position inside the actual list.\n   * @param {Array} insertedIndexes List of inserted indexes.\n   */\n  insertToEvery(insertionIndex, insertedIndexes) {\n    this.collection.forEach(indexMap => {\n      indexMap.insert(insertionIndex, insertedIndexes);\n    });\n  }\n\n  /**\n   * Set default values to index maps within collection.\n   *\n   * @param {number} length Destination length for all stored maps.\n   */\n  initEvery(length) {\n    this.collection.forEach(indexMap => {\n      indexMap.init(length);\n    });\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"mixin\"])(MapCollection, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n\n/**\n * @returns {number}\n */\nfunction getRegisteredMapsCounter() {\n  return registeredMaps;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/mapCollections/mapCollection.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/maps/hidingMap.mjs":
/*!*******************************************************************!*\
  !*** ./node_modules/handsontable/translations/maps/hidingMap.mjs ***!
  \*******************************************************************/
/*! exports provided: HidingMap */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HidingMap\", function() { return HidingMap; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _physicalIndexToValueMap_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./physicalIndexToValueMap.mjs */ \"./node_modules/handsontable/translations/maps/physicalIndexToValueMap.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n\n\n/**\n * Map for storing mappings from an physical index to a boolean value. It stores information whether physical index is\n * included in a dataset, but skipped in the process of rendering.\n *\n * @class HidingMap\n */\nclass HidingMap extends _physicalIndexToValueMap_mjs__WEBPACK_IMPORTED_MODULE_1__[\"PhysicalIndexToValueMap\"] {\n  constructor() {\n    let initValueOrFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    super(initValueOrFn);\n  }\n\n  /**\n   * Get physical indexes which are hidden.\n   *\n   * Note: Indexes marked as hidden are included in a {@link DataMap}, but aren't rendered.\n   *\n   * @returns {Array}\n   */\n  getHiddenIndexes() {\n    return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayReduce\"])(this.getValues(), (indexesList, isHidden, physicalIndex) => {\n      if (isHidden) {\n        indexesList.push(physicalIndex);\n      }\n      return indexesList;\n    }, []);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/maps/hidingMap.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/maps/index.mjs":
/*!***************************************************************!*\
  !*** ./node_modules/handsontable/translations/maps/index.mjs ***!
  \***************************************************************/
/*! exports provided: IndexesSequence, getListWithInsertedItems, getListWithRemovedItems, HidingMap, IndexMap, LinkedPhysicalIndexToValueMap, PhysicalIndexToValueMap, TrimmingMap, createIndexMap */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createIndexMap\", function() { return createIndexMap; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _hidingMap_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hidingMap.mjs */ \"./node_modules/handsontable/translations/maps/hidingMap.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HidingMap\", function() { return _hidingMap_mjs__WEBPACK_IMPORTED_MODULE_1__[\"HidingMap\"]; });\n\n/* harmony import */ var _indexMap_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./indexMap.mjs */ \"./node_modules/handsontable/translations/maps/indexMap.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"IndexMap\", function() { return _indexMap_mjs__WEBPACK_IMPORTED_MODULE_2__[\"IndexMap\"]; });\n\n/* harmony import */ var _linkedPhysicalIndexToValueMap_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./linkedPhysicalIndexToValueMap.mjs */ \"./node_modules/handsontable/translations/maps/linkedPhysicalIndexToValueMap.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LinkedPhysicalIndexToValueMap\", function() { return _linkedPhysicalIndexToValueMap_mjs__WEBPACK_IMPORTED_MODULE_3__[\"LinkedPhysicalIndexToValueMap\"]; });\n\n/* harmony import */ var _physicalIndexToValueMap_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./physicalIndexToValueMap.mjs */ \"./node_modules/handsontable/translations/maps/physicalIndexToValueMap.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PhysicalIndexToValueMap\", function() { return _physicalIndexToValueMap_mjs__WEBPACK_IMPORTED_MODULE_4__[\"PhysicalIndexToValueMap\"]; });\n\n/* harmony import */ var _trimmingMap_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./trimmingMap.mjs */ \"./node_modules/handsontable/translations/maps/trimmingMap.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TrimmingMap\", function() { return _trimmingMap_mjs__WEBPACK_IMPORTED_MODULE_5__[\"TrimmingMap\"]; });\n\n/* harmony import */ var _indexesSequence_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./indexesSequence.mjs */ \"./node_modules/handsontable/translations/maps/indexesSequence.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"IndexesSequence\", function() { return _indexesSequence_mjs__WEBPACK_IMPORTED_MODULE_6__[\"IndexesSequence\"]; });\n\n/* harmony import */ var _utils_indexesSequence_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/indexesSequence.mjs */ \"./node_modules/handsontable/translations/maps/utils/indexesSequence.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getListWithInsertedItems\", function() { return _utils_indexesSequence_mjs__WEBPACK_IMPORTED_MODULE_7__[\"getListWithInsertedItems\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getListWithRemovedItems\", function() { return _utils_indexesSequence_mjs__WEBPACK_IMPORTED_MODULE_7__[\"getListWithRemovedItems\"]; });\n\n\n\n\n\n\n\n\n\n\nconst availableIndexMapTypes = new Map([['hiding', _hidingMap_mjs__WEBPACK_IMPORTED_MODULE_1__[\"HidingMap\"]], ['index', _indexMap_mjs__WEBPACK_IMPORTED_MODULE_2__[\"IndexMap\"]], ['linkedPhysicalIndexToValue', _linkedPhysicalIndexToValueMap_mjs__WEBPACK_IMPORTED_MODULE_3__[\"LinkedPhysicalIndexToValueMap\"]], ['physicalIndexToValue', _physicalIndexToValueMap_mjs__WEBPACK_IMPORTED_MODULE_4__[\"PhysicalIndexToValueMap\"]], ['trimming', _trimmingMap_mjs__WEBPACK_IMPORTED_MODULE_5__[\"TrimmingMap\"]]]);\n\n/**\n * Creates and returns new IndexMap instance.\n *\n * @param {string} mapType The type of the map.\n * @param {*} [initValueOrFn=null] Initial value or function for index map.\n * @returns {IndexMap}\n */\nfunction createIndexMap(mapType) {\n  let initValueOrFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n  if (!availableIndexMapTypes.has(mapType)) {\n    throw new Error(`The provided map type (\"${mapType}\") does not exist.`);\n  }\n  return new (availableIndexMapTypes.get(mapType))(initValueOrFn);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/maps/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/maps/indexMap.mjs":
/*!******************************************************************!*\
  !*** ./node_modules/handsontable/translations/maps/indexMap.mjs ***!
  \******************************************************************/
/*! exports provided: IndexMap */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IndexMap\", function() { return IndexMap; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n/* harmony import */ var _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/localHooks.mjs */ \"./node_modules/handsontable/mixins/localHooks.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n/**\n * Map for storing mappings from an index to a value.\n *\n * @class IndexMap\n */\nclass IndexMap {\n  constructor() {\n    let initValueOrFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    /**\n     * List of values for particular indexes.\n     *\n     * @private\n     * @type {Array}\n     */\n    _defineProperty(this, \"indexedValues\", []);\n    /**\n     * Initial value or function for each existing index.\n     *\n     * @private\n     * @type {*}\n     */\n    _defineProperty(this, \"initValueOrFn\", void 0);\n    this.initValueOrFn = initValueOrFn;\n  }\n\n  /**\n   * Get full list of values for particular indexes.\n   *\n   * @returns {Array}\n   */\n  getValues() {\n    return this.indexedValues;\n  }\n\n  /**\n   * Get value for the particular index.\n   *\n   * @param {number} index Index for which value is got.\n   * @returns {*}\n   */\n  getValueAtIndex(index) {\n    const values = this.indexedValues;\n    if (index < values.length) {\n      return values[index];\n    }\n  }\n\n  /**\n   * Set new values for particular indexes.\n   *\n   * Note: Please keep in mind that `change` hook triggered by the method may not update cache of a collection immediately.\n   *\n   * @param {Array} values List of set values.\n   */\n  setValues(values) {\n    this.indexedValues = values.slice();\n    this.runLocalHooks('change');\n  }\n\n  /**\n   * Set new value for the particular index.\n   *\n   * @param {number} index The index.\n   * @param {*} value The value to save.\n   *\n   * Note: Please keep in mind that it is not possible to set value beyond the map (not respecting already set\n   * map's size). Please use the `setValues` method when you would like to extend the map.\n   * Note: Please keep in mind that `change` hook triggered by the method may not update cache of a collection immediately.\n   *\n   * @returns {boolean}\n   */\n  setValueAtIndex(index, value) {\n    if (index < this.indexedValues.length) {\n      this.indexedValues[index] = value;\n      this.runLocalHooks('change');\n      return true;\n    }\n    return false;\n  }\n\n  /**\n   * Clear all values to the defaults.\n   */\n  clear() {\n    this.setDefaultValues();\n  }\n\n  /**\n   * Get length of the index map.\n   *\n   * @returns {number}\n   */\n  getLength() {\n    return this.getValues().length;\n  }\n\n  /**\n   * Set default values for elements from `0` to `n`, where `n` is equal to the handled variable.\n   *\n   * Note: Please keep in mind that `change` hook triggered by the method may not update cache of a collection immediately.\n   *\n   * @private\n   * @param {number} [length] Length of list.\n   */\n  setDefaultValues() {\n    let length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.indexedValues.length;\n    this.indexedValues.length = 0;\n    if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_4__[\"isFunction\"])(this.initValueOrFn)) {\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_2__[\"rangeEach\"])(length - 1, index => this.indexedValues.push(this.initValueOrFn(index)));\n    } else {\n      Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_2__[\"rangeEach\"])(length - 1, () => this.indexedValues.push(this.initValueOrFn));\n    }\n    this.runLocalHooks('change');\n  }\n\n  /**\n   * Initialize list with default values for particular indexes.\n   *\n   * @private\n   * @param {number} length New length of indexed list.\n   * @returns {IndexMap}\n   */\n  init(length) {\n    this.setDefaultValues(length);\n    this.runLocalHooks('init');\n    return this;\n  }\n\n  /**\n   * Add values to the list.\n   *\n   * Note: Please keep in mind that `change` hook triggered by the method may not update cache of a collection immediately.\n   *\n   * @private\n   */\n  insert() {\n    this.runLocalHooks('change');\n  }\n\n  /**\n   * Remove values from the list.\n   *\n   * Note: Please keep in mind that `change` hook triggered by the method may not update cache of a collection immediately.\n   *\n   * @private\n   */\n  remove() {\n    this.runLocalHooks('change');\n  }\n\n  /**\n   * Destroys the Map instance.\n   */\n  destroy() {\n    this.clearLocalHooks();\n    this.indexedValues = null;\n    this.initValueOrFn = null;\n  }\n}\nObject(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_3__[\"mixin\"])(IndexMap, _mixins_localHooks_mjs__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/maps/indexMap.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/maps/indexesSequence.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/translations/maps/indexesSequence.mjs ***!
  \*************************************************************************/
/*! exports provided: IndexesSequence */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IndexesSequence\", function() { return IndexesSequence; });\n/* harmony import */ var _indexMap_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./indexMap.mjs */ \"./node_modules/handsontable/translations/maps/indexMap.mjs\");\n/* harmony import */ var _utils_indexesSequence_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/indexesSequence.mjs */ \"./node_modules/handsontable/translations/maps/utils/indexesSequence.mjs\");\n/* harmony import */ var _utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/index.mjs */ \"./node_modules/handsontable/translations/maps/utils/index.mjs\");\n\n\n\n/**\n * Map for storing mappings from an index to a physical index.\n *\n * It also updates the physical indexes (remaining in the map) on remove/add row or column action.\n *\n * @class IndexesSequence\n */\nclass IndexesSequence extends _indexMap_mjs__WEBPACK_IMPORTED_MODULE_0__[\"IndexMap\"] {\n  constructor() {\n    // Not handling custom init function or init value.\n    super(index => index);\n  }\n\n  /**\n   * Add values to list and reorganize.\n   *\n   * @private\n   * @param {number} insertionIndex Position inside the list.\n   * @param {Array} insertedIndexes List of inserted indexes.\n   */\n  insert(insertionIndex, insertedIndexes) {\n    const listAfterUpdate = Object(_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getIncreasedIndexes\"])(this.indexedValues, insertedIndexes);\n    this.indexedValues = Object(_utils_indexesSequence_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getListWithInsertedItems\"])(listAfterUpdate, insertionIndex, insertedIndexes);\n    super.insert(insertionIndex, insertedIndexes);\n  }\n\n  /**\n   * Remove values from the list and reorganize.\n   *\n   * @private\n   * @param {Array} removedIndexes List of removed indexes.\n   */\n  remove(removedIndexes) {\n    const listAfterUpdate = Object(_utils_indexesSequence_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getListWithRemovedItems\"])(this.indexedValues, removedIndexes);\n    this.indexedValues = Object(_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getDecreasedIndexes\"])(listAfterUpdate, removedIndexes);\n    super.remove(removedIndexes);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/maps/indexesSequence.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/maps/linkedPhysicalIndexToValueMap.mjs":
/*!***************************************************************************************!*\
  !*** ./node_modules/handsontable/translations/maps/linkedPhysicalIndexToValueMap.mjs ***!
  \***************************************************************************************/
/*! exports provided: LinkedPhysicalIndexToValueMap */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LinkedPhysicalIndexToValueMap\", function() { return LinkedPhysicalIndexToValueMap; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _indexMap_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./indexMap.mjs */ \"./node_modules/handsontable/translations/maps/indexMap.mjs\");\n/* harmony import */ var _utils_physicallyIndexed_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/physicallyIndexed.mjs */ \"./node_modules/handsontable/translations/maps/utils/physicallyIndexed.mjs\");\n/* harmony import */ var _utils_indexesSequence_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/indexesSequence.mjs */ \"./node_modules/handsontable/translations/maps/utils/indexesSequence.mjs\");\n/* harmony import */ var _utils_actionsOnIndexes_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/actionsOnIndexes.mjs */ \"./node_modules/handsontable/translations/maps/utils/actionsOnIndexes.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n/**\n * Map for storing mappings from an physical index to a value. Those entries are linked and stored in a certain order.\n *\n * It does not update stored values on remove/add row or column action. Otherwise, order of entries is updated after\n * such changes.\n *\n * @class LinkedPhysicalIndexToValueMap\n */\nclass LinkedPhysicalIndexToValueMap extends _indexMap_mjs__WEBPACK_IMPORTED_MODULE_1__[\"IndexMap\"] {\n  constructor() {\n    super(...arguments);\n    /**\n     * Indexes and values corresponding to them (entries) are stored in a certain order.\n     *\n     * @private\n     * @type {Array<number>}\n     */\n    _defineProperty(this, \"orderOfIndexes\", []);\n  }\n  /**\n   * Get full list of ordered values for particular indexes.\n   *\n   * @returns {Array}\n   */\n  getValues() {\n    return this.orderOfIndexes.map(physicalIndex => this.indexedValues[physicalIndex]);\n  }\n\n  /**\n   * Set new values for particular indexes. Entries are linked and stored in a certain order.\n   *\n   * Note: Please keep in mind that `change` hook triggered by the method may not update cache of a collection immediately.\n   *\n   * @param {Array} values List of set values.\n   */\n  setValues(values) {\n    this.orderOfIndexes = [...Array(values.length).keys()];\n    super.setValues(values);\n  }\n\n  /**\n   * Set value at index and add it to the linked list of entries. Entries are stored in a certain order.\n   *\n   * Note: Value will be added at the end of the queue.\n   *\n   * @param {number} index The index.\n   * @param {*} value The value to save.\n   * @param {number} position Position to which entry will be added.\n   *\n   * @returns {boolean}\n   */\n  setValueAtIndex(index, value) {\n    let position = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.orderOfIndexes.length;\n    if (index < this.indexedValues.length) {\n      this.indexedValues[index] = value;\n      if (this.orderOfIndexes.includes(index) === false) {\n        this.orderOfIndexes.splice(position, 0, index);\n      }\n      this.runLocalHooks('change');\n      return true;\n    }\n    return false;\n  }\n\n  /**\n   * Clear value for particular index.\n   *\n   * @param {number} physicalIndex Physical index.\n   */\n  clearValue(physicalIndex) {\n    this.orderOfIndexes = Object(_utils_indexesSequence_mjs__WEBPACK_IMPORTED_MODULE_3__[\"getListWithRemovedItems\"])(this.orderOfIndexes, [physicalIndex]);\n    if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_5__[\"isFunction\"])(this.initValueOrFn)) {\n      super.setValueAtIndex(physicalIndex, this.initValueOrFn(physicalIndex));\n    } else {\n      super.setValueAtIndex(physicalIndex, this.initValueOrFn);\n    }\n  }\n\n  /**\n   * Get length of the index map.\n   *\n   * @returns {number}\n   */\n  getLength() {\n    return this.orderOfIndexes.length;\n  }\n\n  /**\n   * Set default values for elements from `0` to `n`, where `n` is equal to the handled variable.\n   *\n   * Note: Please keep in mind that `change` hook triggered by the method may not update cache of a collection immediately.\n   *\n   * @private\n   * @param {number} [length] Length of list.\n   */\n  setDefaultValues() {\n    let length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.indexedValues.length;\n    this.orderOfIndexes.length = 0;\n    super.setDefaultValues(length);\n  }\n\n  /**\n   * Add values to list and reorganize. It updates list of indexes related to ordered values.\n   *\n   * @private\n   * @param {number} insertionIndex Position inside the list.\n   * @param {Array} insertedIndexes List of inserted indexes.\n   */\n  insert(insertionIndex, insertedIndexes) {\n    this.indexedValues = Object(_utils_physicallyIndexed_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getListWithInsertedItems\"])(this.indexedValues, insertionIndex, insertedIndexes, this.initValueOrFn);\n    this.orderOfIndexes = Object(_utils_actionsOnIndexes_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getIncreasedIndexes\"])(this.orderOfIndexes, insertedIndexes);\n    super.insert(insertionIndex, insertedIndexes);\n  }\n\n  /**\n   * Remove values from the list and reorganize. It updates list of indexes related to ordered values.\n   *\n   * @private\n   * @param {Array} removedIndexes List of removed indexes.\n   */\n  remove(removedIndexes) {\n    this.indexedValues = Object(_utils_physicallyIndexed_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getListWithRemovedItems\"])(this.indexedValues, removedIndexes);\n    this.orderOfIndexes = Object(_utils_indexesSequence_mjs__WEBPACK_IMPORTED_MODULE_3__[\"getListWithRemovedItems\"])(this.orderOfIndexes, removedIndexes);\n    this.orderOfIndexes = Object(_utils_actionsOnIndexes_mjs__WEBPACK_IMPORTED_MODULE_4__[\"getDecreasedIndexes\"])(this.orderOfIndexes, removedIndexes);\n    super.remove(removedIndexes);\n  }\n\n  /**\n   * Get every entry containing index and value, respecting order of indexes.\n   *\n   * @returns {Array}\n   */\n  getEntries() {\n    return this.orderOfIndexes.map(physicalIndex => [physicalIndex, this.getValueAtIndex(physicalIndex)]);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/maps/linkedPhysicalIndexToValueMap.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/maps/physicalIndexToValueMap.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/translations/maps/physicalIndexToValueMap.mjs ***!
  \*********************************************************************************/
/*! exports provided: PhysicalIndexToValueMap */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PhysicalIndexToValueMap\", function() { return PhysicalIndexToValueMap; });\n/* harmony import */ var _indexMap_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./indexMap.mjs */ \"./node_modules/handsontable/translations/maps/indexMap.mjs\");\n/* harmony import */ var _utils_physicallyIndexed_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/physicallyIndexed.mjs */ \"./node_modules/handsontable/translations/maps/utils/physicallyIndexed.mjs\");\n\n\n/**\n * Map for storing mappings from an physical index to a value.\n *\n * Does not update stored values on remove/add row or column action.\n *\n * @class PhysicalIndexToValueMap\n */\nclass PhysicalIndexToValueMap extends _indexMap_mjs__WEBPACK_IMPORTED_MODULE_0__[\"IndexMap\"] {\n  /**\n   * Add values to list and reorganize.\n   *\n   * @private\n   * @param {number} insertionIndex Position inside the list.\n   * @param {Array} insertedIndexes List of inserted indexes.\n   */\n  insert(insertionIndex, insertedIndexes) {\n    this.indexedValues = Object(_utils_physicallyIndexed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getListWithInsertedItems\"])(this.indexedValues, insertionIndex, insertedIndexes, this.initValueOrFn);\n    super.insert(insertionIndex, insertedIndexes);\n  }\n\n  /**\n   * Remove values from the list and reorganize.\n   *\n   * @private\n   * @param {Array} removedIndexes List of removed indexes.\n   */\n  remove(removedIndexes) {\n    this.indexedValues = Object(_utils_physicallyIndexed_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getListWithRemovedItems\"])(this.indexedValues, removedIndexes);\n    super.remove(removedIndexes);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/maps/physicalIndexToValueMap.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/maps/trimmingMap.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/translations/maps/trimmingMap.mjs ***!
  \*********************************************************************/
/*! exports provided: TrimmingMap */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TrimmingMap\", function() { return TrimmingMap; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _physicalIndexToValueMap_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./physicalIndexToValueMap.mjs */ \"./node_modules/handsontable/translations/maps/physicalIndexToValueMap.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n\n\n/**\n * Map for storing mappings from an physical index to a boolean value. It stores information whether physical index is\n * NOT included in a dataset and skipped in the process of rendering.\n *\n * @class TrimmingMap\n */\nclass TrimmingMap extends _physicalIndexToValueMap_mjs__WEBPACK_IMPORTED_MODULE_1__[\"PhysicalIndexToValueMap\"] {\n  constructor() {\n    let initValueOrFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    super(initValueOrFn);\n  }\n\n  /**\n   * Get physical indexes which are trimmed.\n   *\n   * Note: Indexes marked as trimmed aren't included in a {@link DataMap} and aren't rendered.\n   *\n   * @returns {Array}\n   */\n  getTrimmedIndexes() {\n    return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_2__[\"arrayReduce\"])(this.getValues(), (indexesList, isTrimmed, physicalIndex) => {\n      if (isTrimmed) {\n        indexesList.push(physicalIndex);\n      }\n      return indexesList;\n    }, []);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/maps/trimmingMap.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/maps/utils/actionsOnIndexes.mjs":
/*!********************************************************************************!*\
  !*** ./node_modules/handsontable/translations/maps/utils/actionsOnIndexes.mjs ***!
  \********************************************************************************/
/*! exports provided: getDecreasedIndexes, getIncreasedIndexes */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDecreasedIndexes\", function() { return getDecreasedIndexes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getIncreasedIndexes\", function() { return getIncreasedIndexes; });\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n/**\n * Transform mappings after removal.\n *\n * @private\n * @param {Array} indexedValues List of values for particular indexes.\n * @param {Array} removedIndexes List of removed indexes.\n * @returns {Array} List with decreased indexes.\n */\nfunction getDecreasedIndexes(indexedValues, removedIndexes) {\n  return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__[\"arrayMap\"])(indexedValues, index => index - removedIndexes.filter(removedIndex => removedIndex < index).length);\n}\n\n/**\n * Transform mappings after insertion.\n *\n * @private\n * @param {Array} indexedValues List of values for particular indexes.\n * @param {Array} insertedIndexes List of inserted indexes.\n * @returns {Array} List with increased indexes.\n */\nfunction getIncreasedIndexes(indexedValues, insertedIndexes) {\n  const firstInsertedIndex = insertedIndexes[0];\n  const amountOfIndexes = insertedIndexes.length;\n  return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__[\"arrayMap\"])(indexedValues, index => {\n    if (index >= firstInsertedIndex) {\n      return index + amountOfIndexes;\n    }\n    return index;\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/maps/utils/actionsOnIndexes.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/maps/utils/index.mjs":
/*!*********************************************************************!*\
  !*** ./node_modules/handsontable/translations/maps/utils/index.mjs ***!
  \*********************************************************************/
/*! exports provided: getDecreasedIndexes, getIncreasedIndexes, alterUtilsFactory */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"alterUtilsFactory\", function() { return alterUtilsFactory; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _actionsOnIndexes_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./actionsOnIndexes.mjs */ \"./node_modules/handsontable/translations/maps/utils/actionsOnIndexes.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getDecreasedIndexes\", function() { return _actionsOnIndexes_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getDecreasedIndexes\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getIncreasedIndexes\", function() { return _actionsOnIndexes_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getIncreasedIndexes\"]; });\n\n/* harmony import */ var _indexesSequence_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./indexesSequence.mjs */ \"./node_modules/handsontable/translations/maps/utils/indexesSequence.mjs\");\n/* harmony import */ var _physicallyIndexed_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./physicallyIndexed.mjs */ \"./node_modules/handsontable/translations/maps/utils/physicallyIndexed.mjs\");\n\n\n\n\nconst alterStrategies = new Map([['indexesSequence', {\n  getListWithInsertedItems: _indexesSequence_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getListWithInsertedItems\"],\n  getListWithRemovedItems: _indexesSequence_mjs__WEBPACK_IMPORTED_MODULE_2__[\"getListWithRemovedItems\"]\n}], ['physicallyIndexed', {\n  getListWithInsertedItems: _physicallyIndexed_mjs__WEBPACK_IMPORTED_MODULE_3__[\"getListWithInsertedItems\"],\n  getListWithRemovedItems: _physicallyIndexed_mjs__WEBPACK_IMPORTED_MODULE_3__[\"getListWithRemovedItems\"]\n}]]);\nconst alterUtilsFactory = indexationStrategy => {\n  if (alterStrategies.has(indexationStrategy) === false) {\n    throw new Error(`Alter strategy with ID '${indexationStrategy}' does not exist.`);\n  }\n  return alterStrategies.get(indexationStrategy);\n};\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/maps/utils/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/maps/utils/indexesSequence.mjs":
/*!*******************************************************************************!*\
  !*** ./node_modules/handsontable/translations/maps/utils/indexesSequence.mjs ***!
  \*******************************************************************************/
/*! exports provided: getListWithInsertedItems, getListWithRemovedItems */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getListWithInsertedItems\", function() { return getListWithInsertedItems; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getListWithRemovedItems\", function() { return getListWithRemovedItems; });\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n/**\n * Insert new items to the list.\n *\n * @private\n * @param {Array} indexedValues List of values for particular indexes.\n * @param {number} insertionIndex Position inside the actual list.\n * @param {Array} insertedIndexes List of inserted indexes.\n * @returns {Array} List with new mappings.\n */\nfunction getListWithInsertedItems(indexedValues, insertionIndex, insertedIndexes) {\n  return [...indexedValues.slice(0, insertionIndex), ...insertedIndexes, ...indexedValues.slice(insertionIndex)];\n}\n\n/**\n * Filter items from the list.\n *\n * @private\n * @param {Array} indexedValues List of values for particular indexes.\n * @param {Array} removedIndexes List of removed indexes.\n * @returns {Array} Reduced list of mappings.\n */\nfunction getListWithRemovedItems(indexedValues, removedIndexes) {\n  return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_0__[\"arrayFilter\"])(indexedValues, index => {\n    return removedIndexes.includes(index) === false;\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/maps/utils/indexesSequence.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/translations/maps/utils/physicallyIndexed.mjs":
/*!*********************************************************************************!*\
  !*** ./node_modules/handsontable/translations/maps/utils/physicallyIndexed.mjs ***!
  \*********************************************************************************/
/*! exports provided: getListWithInsertedItems, getListWithRemovedItems */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getListWithInsertedItems\", function() { return getListWithInsertedItems; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getListWithRemovedItems\", function() { return getListWithRemovedItems; });\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n\n/**\n * Insert new items to the list.\n *\n * @private\n * @param {Array} indexedValues List of values for particular indexes.\n * @param {number} insertionIndex Position inside the actual list.\n * @param {Array} insertedIndexes List of inserted indexes.\n * @param {*} insertedValuesMapping Mapping which may provide value or function returning value for the specific parameters.\n * @returns {Array} List with new mappings.\n */\nfunction getListWithInsertedItems(indexedValues, insertionIndex, insertedIndexes, insertedValuesMapping) {\n  const firstInsertedIndex = insertedIndexes.length ? insertedIndexes[0] : undefined;\n  return [...indexedValues.slice(0, firstInsertedIndex), ...insertedIndexes.map((insertedIndex, ordinalNumber) => {\n    if (Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(insertedValuesMapping)) {\n      return insertedValuesMapping(insertedIndex, ordinalNumber);\n    }\n    return insertedValuesMapping;\n  }), ...(firstInsertedIndex === undefined ? [] : indexedValues.slice(firstInsertedIndex))];\n}\n\n/**\n * Filter items from the list.\n *\n * @private\n * @param {Array} indexedValues List of values for particular indexes.\n * @param {Array} removedIndexes List of removed indexes.\n * @returns {Array} Reduced list of mappings.\n */\nfunction getListWithRemovedItems(indexedValues, removedIndexes) {\n  return Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_1__[\"arrayFilter\"])(indexedValues, (_, index) => removedIndexes.includes(index) === false);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/translations/maps/utils/physicallyIndexed.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/utils/autoResize.mjs":
/*!********************************************************!*\
  !*** ./node_modules/handsontable/utils/autoResize.mjs ***!
  \********************************************************/
/*! exports provided: createInputElementResizer */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createInputElementResizer\", function() { return createInputElementResizer; });\n/* eslint-disable jsdoc/require-description-complete-sentence */\n/**\n * autoResize - resizes a DOM element to the width and height of another DOM element\n *\n * Copyright 2014, Marcin Warpechowski\n * Licensed under the MIT license\n */\n/* eslint-enable jsdoc/require-description-complete-sentence */\n/**\n * Attaches an event listener to the given element.\n *\n * @param {HTMLElement} element The element to observe.\n * @param {string} eventName The name of the event to listen for.\n * @param {Function} handler The function to call when the event is triggered.\n */\nfunction observe(element, eventName, handler) {\n  element.addEventListener(eventName, handler, false);\n}\n\n/**\n * Removes an event listener from an element.\n *\n * @param {HTMLElement} element The element to remove the event listener from.\n * @param {string} eventName The name of the event to remove.\n * @param {Function} handler The function to remove as a listener.\n */\nfunction unObserve(element, eventName, handler) {\n  element.removeEventListener(eventName, handler, false);\n}\n\n/**\n * Returns the computed style of an element.\n *\n * @param {Element} element The element to get the computed style from.\n * @returns {CSSStyleDeclaration} The computed style of the element.\n */\nfunction getComputedStyle(element) {\n  return element.ownerDocument.defaultView.getComputedStyle(element);\n}\n\n/**\n * @typedef InputElementResizerConfig\n * @property {number} minWidth The minimum width of the element.\n * @property {number} maxWidth The maximum width of the element.\n * @property {number} minHeight The minimum height of the element.\n * @property {number} maxHeight The maximum height of the element.\n */\n/**\n * @typedef InputElementResizer\n * @property {function(HTMLElement, InputElementResizerConfig, boolean): void} init Initializes the resizer.\n * @property {function(): void} resize Resizes the element.\n * @property {function(): void} unObserve Removes the event listeners.\n */\n/**\n * Creates an input element resizer.\n *\n * @param {Document} ownerDocument The document to create the resizer for.\n * @returns {InputElementResizer}\n */\nfunction createInputElementResizer(ownerDocument) {\n  const defaults = {\n    minHeight: 200,\n    maxHeight: 300,\n    minWidth: 100,\n    maxWidth: 300\n  };\n  const body = ownerDocument.body;\n  const textHolder = ownerDocument.createTextNode('');\n  const textContainer = ownerDocument.createElement('span');\n  let observedElement;\n\n  /**\n   * Resizes the element.\n   */\n  function resize() {\n    textHolder.textContent = observedElement.value;\n    // Won't expand the element size for displaying body as for example, `grid`, `inline-grid` or `flex` with\n    // `flex-direction` set as `column`.\n    textContainer.style.position = 'absolute';\n    textContainer.style.fontSize = getComputedStyle(observedElement).fontSize;\n    textContainer.style.fontFamily = getComputedStyle(observedElement).fontFamily;\n    textContainer.style.whiteSpace = 'pre';\n    body.appendChild(textContainer);\n    const width = textContainer.clientWidth + 2;\n    body.removeChild(textContainer);\n    const elementStyle = observedElement.style;\n    elementStyle.height = `${defaults.minHeight}px`;\n    if (defaults.minWidth > width) {\n      elementStyle.width = `${defaults.minWidth}px`;\n    } else if (width > defaults.maxWidth) {\n      elementStyle.width = `${defaults.maxWidth}px`;\n    } else {\n      elementStyle.width = `${width}px`;\n    }\n    const scrollHeight = observedElement.scrollHeight ? observedElement.scrollHeight - 1 : 0;\n    if (defaults.minHeight > scrollHeight) {\n      elementStyle.height = `${defaults.minHeight}px`;\n    } else if (defaults.maxHeight < scrollHeight) {\n      elementStyle.height = `${defaults.maxHeight}px`;\n      elementStyle.overflowY = 'visible';\n    } else {\n      elementStyle.height = `${scrollHeight}px`;\n    }\n  }\n\n  /**\n   * Resizes the element after a delay.\n   */\n  function delayedResize() {\n    ownerDocument.defaultView.setTimeout(resize, 0);\n  }\n\n  /**\n   * Extends the default configuration.\n   *\n   * @param {InputElementResizerConfig} config The configuration to extend the defaults with.\n   */\n  function extendDefaults(config) {\n    if (config && config.minHeight) {\n      if (config.minHeight === 'inherit') {\n        defaults.minHeight = observedElement.clientHeight;\n      } else {\n        const minHeight = parseInt(config.minHeight, 10);\n        if (!isNaN(minHeight)) {\n          defaults.minHeight = minHeight;\n        }\n      }\n    }\n    if (config && config.maxHeight) {\n      if (config.maxHeight === 'inherit') {\n        defaults.maxHeight = observedElement.clientHeight;\n      } else {\n        const maxHeight = parseInt(config.maxHeight, 10);\n        if (!isNaN(maxHeight)) {\n          defaults.maxHeight = maxHeight;\n        }\n      }\n    }\n    if (config && config.minWidth) {\n      if (config.minWidth === 'inherit') {\n        defaults.minWidth = observedElement.clientWidth;\n      } else {\n        const minWidth = parseInt(config.minWidth, 10);\n        if (!isNaN(minWidth)) {\n          defaults.minWidth = minWidth;\n        }\n      }\n    }\n    if (config && config.maxWidth) {\n      if (config.maxWidth === 'inherit') {\n        defaults.maxWidth = observedElement.clientWidth;\n      } else {\n        const maxWidth = parseInt(config.maxWidth, 10);\n        if (!isNaN(maxWidth)) {\n          defaults.maxWidth = maxWidth;\n        }\n      }\n    }\n    if (!textContainer.firstChild) {\n      textContainer.className = 'autoResize';\n      textContainer.style.display = 'inline-block';\n      textContainer.appendChild(textHolder);\n    }\n  }\n\n  /**\n   * Initializes the resizer.\n   *\n   * @param {HTMLElement} elementToObserve The element to observe.\n   * @param {InputElementResizerConfig} config The configuration to extend the defaults with.\n   * @param {boolean} [doObserve=false] Whether to observe the element and resize it on every input change.\n   */\n  function init(elementToObserve, config) {\n    let doObserve = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    observedElement = elementToObserve;\n    extendDefaults(config);\n    if (observedElement.nodeName === 'TEXTAREA') {\n      observedElement.style.resize = 'none';\n      observedElement.style.height = `${defaults.minHeight}px`;\n      observedElement.style.minWidth = `${defaults.minWidth}px`;\n      observedElement.style.maxWidth = `${defaults.maxWidth}px`;\n      observedElement.style.overflowY = 'hidden';\n    }\n    if (doObserve) {\n      observe(observedElement, 'input', resize);\n      // the keydown event is necessary for undo stack to work properly\n      observe(observedElement, 'keydown', delayedResize);\n    }\n    resize();\n  }\n  return {\n    init,\n    resize,\n    unObserve() {\n      unObserve(observedElement, 'input', resize);\n      unObserve(observedElement, 'keydown', delayedResize);\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/utils/autoResize.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/utils/dataStructures/linkedList.mjs":
/*!***********************************************************************!*\
  !*** ./node_modules/handsontable/utils/dataStructures/linkedList.mjs ***!
  \***********************************************************************/
/*! exports provided: NodeStructure, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NodeStructure\", function() { return NodeStructure; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * Refactored implementation of LinkedList (part of javascript-algorithms project) by Github users:\n * mgechev, AndriiHeonia, Microfed and Jakeh (part of javascript-algorithms project - all project contributors\n * at repository website).\n *\n * Link to repository: https://github.com/mgechev/javascript-algorithms.\n */\n\n/**\n * Linked list node.\n *\n * @class NodeStructure\n * @util\n */\nclass NodeStructure {\n  constructor(data) {\n    /**\n     * Data of the node.\n     *\n     * @member {object}\n     */\n    _defineProperty(this, \"data\", void 0);\n    /**\n     * Next node.\n     *\n     * @member {NodeStructure}\n     */\n    _defineProperty(this, \"next\", null);\n    /**\n     * Previous node.\n     *\n     * @member {NodeStructure}\n     */\n    _defineProperty(this, \"prev\", null);\n    this.data = data;\n  }\n}\n\n/**\n * Linked list.\n *\n * @class LinkedList\n * @util\n */\nclass LinkedList {\n  constructor() {\n    _defineProperty(this, \"first\", null);\n    _defineProperty(this, \"last\", null);\n  }\n  /**\n   * Add data to the end of linked list.\n   *\n   * @param {object} data Data which should be added.\n   * @returns {NodeStructure} Returns the node which has been added.\n   */\n  push(data) {\n    const node = new NodeStructure(data);\n    if (this.first === null) {\n      this.first = node;\n      this.last = node;\n    } else {\n      const temp = this.last;\n      this.last = node;\n      node.prev = temp;\n      temp.next = node;\n    }\n    return node;\n  }\n\n  /**\n   * Add data to the beginning of linked list.\n   *\n   * @param {object} data Data which should be added.\n   */\n  unshift(data) {\n    const node = new NodeStructure(data);\n    if (this.first === null) {\n      this.first = node;\n      this.last = node;\n    } else {\n      const temp = this.first;\n      this.first = node;\n      node.next = temp;\n      temp.prev = node;\n    }\n  }\n\n  /**\n   * In order traversal of the linked list.\n   *\n   * @param {Function} callback Callback which should be executed on each node.\n   */\n  inorder(callback) {\n    let temp = this.first;\n    while (temp) {\n      const interrupt = callback(temp);\n      if (temp === this.last || interrupt === true) {\n        break;\n      }\n      temp = temp.next;\n    }\n  }\n\n  /**\n   * Remove data from the linked list.\n   *\n   * @param {object} data Data which should be removed.\n   * @returns {boolean} Returns true if data has been removed.\n   */\n  remove(data) {\n    if (this.first === null) {\n      return false;\n    }\n    let temp = this.first;\n    let next;\n    let prev;\n    while (temp) {\n      if (temp.data === data) {\n        next = temp.next;\n        prev = temp.prev;\n        if (next) {\n          next.prev = prev;\n        }\n        if (prev) {\n          prev.next = next;\n        }\n        if (temp === this.first) {\n          this.first = next;\n        }\n        if (temp === this.last) {\n          this.last = prev;\n        }\n        return true;\n      }\n      temp = temp.next;\n    }\n    return false;\n  }\n\n  /**\n   * Check if linked list contains cycle.\n   *\n   * @returns {boolean} Returns true if linked list contains cycle.\n   */\n  hasCycle() {\n    let fast = this.first;\n    let slow = this.first;\n    while (true) {\n      if (fast === null) {\n        return false;\n      }\n      fast = fast.next;\n      if (fast === null) {\n        return false;\n      }\n      fast = fast.next;\n      slow = slow.next;\n      if (fast === slow) {\n        return true;\n      }\n    }\n  }\n\n  /**\n   * Return last node from the linked list.\n   *\n   * @returns {NodeStructure} Last node.\n   */\n  pop() {\n    if (this.last === null) {\n      return null;\n    }\n    const temp = this.last;\n    this.last = this.last.prev;\n    return temp;\n  }\n\n  /**\n   * Return first node from the linked list.\n   *\n   * @returns {NodeStructure} First node.\n   */\n  shift() {\n    if (this.first === null) {\n      return null;\n    }\n    const temp = this.first;\n    this.first = this.first.next;\n    return temp;\n  }\n\n  /**\n   * Reverses the linked list recursively.\n   */\n  recursiveReverse() {\n    /**\n     * @param {*} current The current value.\n     * @param {*} next The next value.\n     */\n    function inverse(current, next) {\n      if (!next) {\n        return;\n      }\n      inverse(next, next.next);\n      next.next = current;\n    }\n    if (!this.first) {\n      return;\n    }\n    inverse(this.first, this.first.next);\n    this.first.next = null;\n    const temp = this.first;\n    this.first = this.last;\n    this.last = temp;\n  }\n\n  /**\n   * Reverses the linked list iteratively.\n   */\n  reverse() {\n    if (!this.first || !this.first.next) {\n      return;\n    }\n    let current = this.first.next;\n    let prev = this.first;\n    let temp;\n    while (current) {\n      temp = current.next;\n      current.next = prev;\n      prev.prev = current;\n      prev = current;\n      current = temp;\n    }\n    this.first.next = null;\n    this.last.prev = null;\n    temp = this.first;\n    this.first = prev;\n    this.last = temp;\n  }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (LinkedList);\n\n//# sourceURL=webpack:///./node_modules/handsontable/utils/dataStructures/linkedList.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/utils/dataStructures/priorityMap.mjs":
/*!************************************************************************!*\
  !*** ./node_modules/handsontable/utils/dataStructures/priorityMap.mjs ***!
  \************************************************************************/
/*! exports provided: ASC, DESC, createPriorityMap */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ASC\", function() { return ASC; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DESC\", function() { return DESC; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createPriorityMap\", function() { return createPriorityMap; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n\n\n\nconst ASC = 'asc';\nconst DESC = 'desc';\nconst ORDER_MAP = new Map([[ASC, [-1, 1]], [DESC, [1, -1]]]);\nconst DEFAULT_ERROR_PRIORITY_EXISTS = priority => `The priority '${priority}' is already declared in a map.`;\nconst DEFAULT_ERROR_PRIORITY_NAN = priority => `The priority '${priority}' is not a number.`;\n\n/**\n * @typedef {object} PriorityMap\n * @property {Function} addItem Adds items to the priority map.\n * @property {Function} getItems Gets items from the passed map in a ASC or DESC order of priorities.\n */\n/**\n * Creates a new priority map.\n *\n * @param {object} config The config for priority map.\n * @param {Function} config.errorPriorityExists The function to generate a custom error message if priority is already taken.\n * @param {Function} config.errorPriorityNaN The function to generate a custom error message if priority is not a number.\n * @returns {PriorityMap}\n */\nfunction createPriorityMap() {\n  let {\n    errorPriorityExists,\n    errorPriorityNaN\n  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  const priorityMap = new Map();\n  errorPriorityExists = Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(errorPriorityExists) ? errorPriorityExists : DEFAULT_ERROR_PRIORITY_EXISTS;\n  errorPriorityNaN = Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(errorPriorityNaN) ? errorPriorityNaN : DEFAULT_ERROR_PRIORITY_NAN;\n\n  /**\n   * Adds items to priority map. Throws an error if `priority` is not a number or if is already added.\n   *\n   * @param {number} priority The priority for adding item.\n   * @param {*} item The adding item.\n   */\n  function addItem(priority, item) {\n    if (!Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isNumeric\"])(priority)) {\n      throw new Error(errorPriorityNaN(priority));\n    }\n    if (priorityMap.has(priority)) {\n      throw new Error(errorPriorityExists(priority));\n    }\n    priorityMap.set(priority, item);\n  }\n\n  /**\n   * Gets items from the passed map in a ASC or DESC order of priorities.\n   *\n   * @param {string} [order] The order for getting items. ASC is an default.\n   * @returns {*}\n   */\n  function getItems() {\n    let order = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ASC;\n    const [left, right] = ORDER_MAP.get(order) || ORDER_MAP.get(ASC);\n    return [...priorityMap]\n    // we want to be sure we sort over a priority key\n    // if we are sure we can remove custom compare function\n    // then we should replace next line with a default `.sort()`\n    .sort((a, b) => a[0] < b[0] ? left : right).map(item => item[1]);\n  }\n  return {\n    addItem,\n    getItems\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/utils/dataStructures/priorityMap.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/utils/dataStructures/tree.mjs":
/*!*****************************************************************!*\
  !*** ./node_modules/handsontable/utils/dataStructures/tree.mjs ***!
  \*****************************************************************/
/*! exports provided: TRAVERSAL_DF_PRE, depthFirstPreOrder, TRAVERSAL_DF_POST, TRAVERSAL_BF, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TRAVERSAL_DF_PRE\", function() { return TRAVERSAL_DF_PRE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"depthFirstPreOrder\", function() { return depthFirstPreOrder; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TRAVERSAL_DF_POST\", function() { return TRAVERSAL_DF_POST; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TRAVERSAL_BF\", function() { return TRAVERSAL_BF; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return TreeNode; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n/**\n * Depth-first pre-order strategy (https://en.wikipedia.org/wiki/Tree_traversal#Pre-order_(NLR)).\n *\n * @type {string}\n */\nconst TRAVERSAL_DF_PRE = 'DF-pre-order';\n/**\n * @param {Function} callback A callback which will be called on each visited node.\n * @param {*} context A context to pass through.\n * @returns {boolean}\n */\nfunction depthFirstPreOrder(callback, context) {\n  let continueTraverse = callback.call(context, this);\n  for (let i = 0; i < this.childs.length; i++) {\n    if (continueTraverse === false) {\n      return false;\n    }\n    continueTraverse = depthFirstPreOrder.call(this.childs[i], callback, context);\n  }\n  return continueTraverse;\n}\n\n/**\n * Depth-first post-order strategy (https://en.wikipedia.org/wiki/Tree_traversal#Post-order_(NLR)).\n *\n * @type {string}\n */\nconst TRAVERSAL_DF_POST = 'DF-post-order';\n/**\n * @param {Function} callback A callback which will be called on each visited node.\n * @param {*} context A context to pass through.\n * @returns {boolean}\n */\nfunction depthFirstPostOrder(callback, context) {\n  for (let i = 0; i < this.childs.length; i++) {\n    const continueTraverse = depthFirstPostOrder.call(this.childs[i], callback, context);\n    if (continueTraverse === false) {\n      return false;\n    }\n  }\n  return callback.call(context, this);\n}\n\n/**\n * Breadth-first traversal strategy (https://en.wikipedia.org/wiki/Tree_traversal#Breadth-first_search_/_level_order).\n *\n * @type {string}\n */\nconst TRAVERSAL_BF = 'BF';\n/**\n * @param {Function} callback A callback which will be called on each visited node.\n * @param {*} context A context to pass through.\n */\nfunction breadthFirst(callback, context) {\n  const queue = [this];\n\n  /**\n   * Internal processor.\n   */\n  function process() {\n    if (queue.length === 0) {\n      return;\n    }\n    const node = queue.shift();\n    queue.push(...node.childs);\n    if (callback.call(context, node) !== false) {\n      process();\n    }\n  }\n  process();\n}\n\n/**\n * Default strategy for tree traversal.\n *\n * @type {string}\n */\nconst DEFAULT_TRAVERSAL_STRATEGY = TRAVERSAL_BF;\n/**\n * Collection of all available tree traversal strategies.\n *\n * @type {Map<string, Function>}\n */\nconst TRAVERSAL_STRATEGIES = new Map([[TRAVERSAL_DF_PRE, depthFirstPreOrder], [TRAVERSAL_DF_POST, depthFirstPostOrder], [TRAVERSAL_BF, breadthFirst]]);\n\n/**\n *\n */\nclass TreeNode {\n  constructor(data) {\n    /**\n     * A tree data.\n     *\n     * @type {object}\n     */\n    _defineProperty(this, \"data\", {});\n    /**\n     * A parent node.\n     *\n     * @type {TreeNode}\n     */\n    _defineProperty(this, \"parent\", null);\n    /**\n     * A tree leaves.\n     *\n     * @type {TreeNode[]}\n     */\n    _defineProperty(this, \"childs\", []);\n    this.data = data;\n  }\n\n  /**\n   * Adds a node to tree leaves. Added node is linked with the parent node through \"parent\" property.\n   *\n   * @param {TreeNode} node A TreeNode to add.\n   */\n  addChild(node) {\n    node.parent = this;\n    this.childs.push(node);\n  }\n\n  /* eslint-disable jsdoc/require-description-complete-sentence */\n  /**\n   * @memberof TreeNode#\n   * @function cloneTree\n   *\n   * Clones a tree structure deeply.\n   *\n   * For example, for giving a tree structure:\n   *      .--(B1)--.\n   *   .-(C1)   .-(C2)-.----.\n   *  (D1)     (D2)   (D3) (D4)\n   *\n   * Cloning a tree starting from C2 node creates a mirrored tree structure.\n   *     .-(C2')-.-----.\n   *    (D2')   (D3') (D4')\n   *\n   * The cloned tree can be safely modified without affecting the original structure.\n   * After modification, the clone can be merged with a tree using the \"replaceTreeWith\" method.\n   *\n   * @param {TreeNode} [nodeTree=this] A TreeNode to clone.\n   * @returns {TreeNode}\n   */\n  /* eslint-enable jsdoc/require-description-complete-sentence */\n  cloneTree() {\n    let nodeTree = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this;\n    const clonedNode = new TreeNode({\n      ...nodeTree.data\n    });\n    for (let i = 0; i < nodeTree.childs.length; i++) {\n      clonedNode.addChild(this.cloneTree(nodeTree.childs[i]));\n    }\n    return clonedNode;\n  }\n\n  /**\n   * Replaces the current node with a passed tree structure.\n   *\n   * @param {TreeNode} nodeTree A TreeNode to replace with.\n   */\n  replaceTreeWith(nodeTree) {\n    this.data = {\n      ...nodeTree.data\n    };\n    this.childs = [];\n    for (let i = 0; i < nodeTree.childs.length; i++) {\n      this.addChild(nodeTree.childs[i]);\n    }\n  }\n\n  /**\n   * Traverses the tree structure through node childs. The walk down traversing supports\n   * a three different strategies.\n   *  - Depth-first pre-order strategy (https://en.wikipedia.org/wiki/Tree_traversal#Pre-order_(NLR));\n   *  - Depth-first post-order strategy (https://en.wikipedia.org/wiki/Tree_traversal#Post-order_(NLR));\n   *  - Breadth-first traversal strategy (https://en.wikipedia.org/wiki/Tree_traversal#Breadth-first_search_/_level_order).\n   *\n   * @param {Function} callback The callback function which will be called for each node.\n   * @param {string} [traversalStrategy=DEFAULT_TRAVERSAL_STRATEGY] Traversing strategy.\n   */\n  walkDown(callback) {\n    let traversalStrategy = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_TRAVERSAL_STRATEGY;\n    if (!TRAVERSAL_STRATEGIES.has(traversalStrategy)) {\n      throw new Error(`Traversal strategy \"${traversalStrategy}\" does not exist`);\n    }\n    TRAVERSAL_STRATEGIES.get(traversalStrategy).call(this, callback, this);\n  }\n\n  /**\n   * Traverses the tree structure through node parents.\n   *\n   * @param {Function} callback The callback function which will be called for each node.\n   */\n  walkUp(callback) {\n    const context = this;\n    const process = node => {\n      const continueTraverse = callback.call(context, node);\n      if (continueTraverse !== false && node.parent !== null) {\n        process(node.parent);\n      }\n    };\n    process(this);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/utils/dataStructures/tree.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/utils/dataStructures/uniqueMap.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/utils/dataStructures/uniqueMap.mjs ***!
  \**********************************************************************/
/*! exports provided: createUniqueMap */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createUniqueMap\", function() { return createUniqueMap; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n\n\nconst DEFAULT_ERROR_ID_EXISTS = id => `The id '${id}' is already declared in a map.`;\n\n/**\n * @typedef {object} UniqueMap\n * @property {Function} addItem Adds a new item to the unique map.\n * @property {Function} clear Clears the map.\n * @property {Function} getId Returns ID for the passed item.\n * @property {Function} getItem Gets item from the passed ID.\n * @property {Function} getItems Gets all items from the map.\n * @property {Function} hasItem Verifies if the passed ID exists in a map.\n * @property {Function} removeItem Removes item from the passed id if exists.\n */\n/**\n * Creates a new unique map.\n *\n * @param {object} config The config for priority queue.\n * @param {Function} config.errorIdExists The function to generate custom message if ID is already taken.\n * @returns {UniqueMap}\n */\nfunction createUniqueMap() {\n  let {\n    errorIdExists\n  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  const uniqueMap = new Map();\n  errorIdExists = Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(errorIdExists) ? errorIdExists : DEFAULT_ERROR_ID_EXISTS;\n\n  /**\n   * Adds a new item to the unique map. Throws error if `id` is already added.\n   *\n   * @param {*} id The ID of the adding item.\n   * @param {*} item The adding item.\n   */\n  function addItem(id, item) {\n    if (hasItem(id)) {\n      throw new Error(errorIdExists(id));\n    }\n    uniqueMap.set(id, item);\n  }\n\n  /**\n   * Removes item from the passed id if exists.\n   *\n   * @param {*} id The ID to remove.\n   * @returns {boolean}\n   */\n  function removeItem(id) {\n    return uniqueMap.delete(id);\n  }\n\n  /**\n   * Clears the map.\n   */\n  function clear() {\n    uniqueMap.clear();\n  }\n\n  /**\n   * Returns ID for the passed item.\n   *\n   * @param {*} item The item of the getting ID.\n   * @returns {*}\n   */\n  function getId(item) {\n    const [itemId] = getItems().find(_ref => {\n      let [id, element] = _ref;\n      if (item === element) {\n        return id;\n      }\n      return false;\n    }) || [null];\n    return itemId;\n  }\n\n  /**\n   * Returns item from the passed ID.\n   *\n   * @param {*} id The ID of the getting item.\n   * @returns {*}\n   */\n  function getItem(id) {\n    return uniqueMap.get(id);\n  }\n\n  /**\n   * Gets all items from the map.\n   *\n   * @returns {Array}\n   */\n  function getItems() {\n    return [...uniqueMap];\n  }\n\n  /**\n   * Verifies if the passed ID exists in a map.\n   *\n   * @param {*} id The ID to check if registered.\n   * @returns {boolean}\n   */\n  function hasItem(id) {\n    return uniqueMap.has(id);\n  }\n  return {\n    addItem,\n    clear,\n    getId,\n    getItem,\n    getItems,\n    hasItem,\n    removeItem\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/utils/dataStructures/uniqueMap.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/utils/dataStructures/uniqueSet.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/utils/dataStructures/uniqueSet.mjs ***!
  \**********************************************************************/
/*! exports provided: createUniqueSet */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createUniqueSet\", function() { return createUniqueSet; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _helpers_function_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../helpers/function.mjs */ \"./node_modules/handsontable/helpers/function.mjs\");\n\n\n\n\n\n\n\n\n\nconst DEFAULT_ERROR_ITEM_EXISTS = item => `'${item}' value is already declared in a unique set.`;\n\n/**\n * @typedef {object} UniqueSet\n * @property {Function} addItem Adds items to the priority set.\n * @property {Function} getItems Gets items from the set in order of addition.\n */\n/**\n * Creates a new unique set.\n *\n * @param {object} config The config for priority set.\n * @param {Function} config.errorItemExists The function to generate custom error message if item is already in the set.\n * @returns {UniqueSet}\n */\nfunction createUniqueSet() {\n  let {\n    errorItemExists\n  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  const uniqueSet = new Set();\n  errorItemExists = Object(_helpers_function_mjs__WEBPACK_IMPORTED_MODULE_8__[\"isFunction\"])(errorItemExists) ? errorItemExists : DEFAULT_ERROR_ITEM_EXISTS;\n\n  /**\n   * Adds items to the unique set. Throws an error if `item` is already added.\n   *\n   * @param {*} item The adding item.\n   */\n  function addItem(item) {\n    if (uniqueSet.has(item)) {\n      throw new Error(errorItemExists(item));\n    }\n    uniqueSet.add(item);\n  }\n\n  /**\n   * Gets items from the set in order of addition.\n   *\n   * @returns {*}\n   */\n  function getItems() {\n    return [...uniqueSet];\n  }\n\n  /**\n   * Clears the unique set.\n   */\n  function clear() {\n    uniqueSet.clear();\n  }\n  return {\n    addItem,\n    clear,\n    getItems\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/utils/dataStructures/uniqueSet.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/utils/ghostTable.mjs":
/*!********************************************************!*\
  !*** ./node_modules/handsontable/utils/ghostTable.mjs ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../helpers/dom/element.mjs */ \"./node_modules/handsontable/helpers/dom/element.mjs\");\n/* harmony import */ var _helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../helpers/array.mjs */ \"./node_modules/handsontable/helpers/array.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n/**\n * @class GhostTable\n */\nclass GhostTable {\n  constructor(hotInstance) {\n    /**\n     * Handsontable instance.\n     *\n     * @type {Core}\n     */\n    _defineProperty(this, \"hot\", null);\n    /**\n     * Container element where every table will be injected.\n     *\n     * @type {HTMLElement|null}\n     */\n    _defineProperty(this, \"container\", null);\n    /**\n     * Flag which determine is table was injected to DOM.\n     *\n     * @type {boolean}\n     */\n    _defineProperty(this, \"injected\", false);\n    /**\n     * Added rows collection.\n     *\n     * @type {Array}\n     */\n    _defineProperty(this, \"rows\", []);\n    /**\n     * Added columns collection.\n     *\n     * @type {Array}\n     */\n    _defineProperty(this, \"columns\", []);\n    /**\n     * Samples prepared for calculations.\n     *\n     * @type {Map}\n     * @default {null}\n     */\n    _defineProperty(this, \"samples\", null);\n    /**\n     * Ghost table settings.\n     *\n     * @type {object}\n     * @default {Object}\n     */\n    _defineProperty(this, \"settings\", {\n      useHeaders: true\n    });\n    this.hot = hotInstance;\n  }\n\n  /**\n   * Add row.\n   *\n   * @param {number} row Visual row index.\n   * @param {Map} samples Samples Map object.\n   */\n  addRow(row, samples) {\n    if (this.columns.length) {\n      throw new Error('Doesn\\'t support multi-dimensional table');\n    }\n    if (!this.rows.length) {\n      this.container = this.createContainer(this.hot.rootElement.className);\n    }\n    const rowObject = {\n      row\n    };\n    this.rows.push(rowObject);\n    this.samples = samples;\n    this.table = this.createTable(this.hot.table.className);\n    this.table.colGroup.appendChild(this.createColGroupsCol(row));\n    this.table.tr.appendChild(this.createRow(row));\n    this.container.container.appendChild(this.table.fragment);\n    rowObject.table = this.table.table;\n  }\n\n  /**\n   * Add a row consisting of the column headers.\n   *\n   * @param {Map} samples A map with sampled table values.\n   */\n  addColumnHeadersRow(samples) {\n    const colHeader = this.hot.getColHeader(0);\n    if (colHeader !== null && colHeader !== undefined) {\n      const rowObject = {\n        row: -1\n      };\n      this.rows.push(rowObject);\n      this.container = this.createContainer(this.hot.rootElement.className);\n      this.samples = samples;\n      this.table = this.createTable(this.hot.table.className);\n      this.table.colGroup.appendChild(this.createColGroupsCol());\n      this.appendColumnHeadersRow();\n      this.container.container.appendChild(this.table.fragment);\n      rowObject.table = this.table.table;\n    }\n  }\n\n  /**\n   * Add column.\n   *\n   * @param {number} column Visual column index.\n   * @param {Map} samples A map with sampled table values.\n   */\n  addColumn(column, samples) {\n    if (this.rows.length) {\n      throw new Error('Doesn\\'t support multi-dimensional table');\n    }\n    if (!this.columns.length) {\n      this.container = this.createContainer(this.hot.rootElement.className);\n    }\n    const columnObject = {\n      col: column\n    };\n    this.columns.push(columnObject);\n    this.samples = samples;\n    this.table = this.createTable(this.hot.table.className);\n    if (this.getSetting('useHeaders') && this.hot.getColHeader(column) !== null) {\n      // Please keep in mind that the renderable column index equal to the visual columns index for the GhostTable.\n      // We render all columns.\n      this.hot.view.appendColHeader(column, this.table.th);\n    }\n    this.table.tBody.appendChild(this.createCol(column));\n    this.container.container.appendChild(this.table.fragment);\n    columnObject.table = this.table.table;\n  }\n\n  /**\n   * Get calculated heights.\n   *\n   * @param {Function} callback Callback which will be fired for each calculated row.\n   */\n  getHeights(callback) {\n    if (!this.injected) {\n      this.injectTable();\n    }\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(this.rows, row => {\n      // -1 <- reduce border-top from table\n      callback(row.row, Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"outerHeight\"])(row.table) - 1);\n    });\n  }\n\n  /**\n   * Get calculated widths.\n   *\n   * @param {Function} callback Callback which will be fired for each calculated column.\n   */\n  getWidths(callback) {\n    if (!this.injected) {\n      this.injectTable();\n    }\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(this.columns, column => {\n      // The GhostTable class is responsible for calculating the columns' width based on the\n      // contents rendered in the cells. In some cases, when the column's width calculated by\n      // the browser is a decimal point with a fractional component. For example, 35.32px.\n      // The usage of the `.offsetWidth` (or our helper `outerWidth`) is incorrect.\n      // The `outerWidth` in the mentioned example (35.32px) would return 35 pixels that\n      // would cause the text to not fit in the cell, thus increasing the row height.\n      // That's why the `getBoundingClientRect` method is used. The method returns the number\n      // that is rounded up to make sure that there will be a space for the cell's content.\n      const {\n        width\n      } = column.table.getBoundingClientRect();\n      callback(column.col, Math.ceil(width));\n    });\n  }\n\n  /**\n   * Set the Ghost Table settings to the provided object.\n   *\n   * @param {object} settings New Ghost Table Settings.\n   */\n  setSettings(settings) {\n    this.settings = settings;\n  }\n\n  /**\n   * Set a single setting of the Ghost Table.\n   *\n   * @param {string} name Setting name.\n   * @param {*} value Setting value.\n   */\n  setSetting(name, value) {\n    if (!this.settings) {\n      this.settings = {};\n    }\n    this.settings[name] = value;\n  }\n\n  /**\n   * Get the Ghost Table settings.\n   *\n   * @returns {object|null}\n   */\n  getSettings() {\n    return this.settings;\n  }\n\n  /**\n   * Get a single Ghost Table setting.\n   *\n   * @param {string} name The setting name to get.\n   * @returns {boolean|null}\n   */\n  getSetting(name) {\n    if (this.settings) {\n      return this.settings[name];\n    }\n    return null;\n  }\n\n  /**\n   * Create colgroup col elements.\n   *\n   * @param {number} row Visual row index.\n   * @returns {DocumentFragment}\n   */\n  createColGroupsCol(row) {\n    const fragment = this.hot.rootDocument.createDocumentFragment();\n    if (this.hot.hasRowHeaders()) {\n      fragment.appendChild(this.createColElement(-1, -1));\n    }\n    this.samples.forEach(sample => {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(sample.strings, string => {\n        fragment.appendChild(this.createColElement(string.col, row));\n      });\n    });\n    return fragment;\n  }\n\n  /**\n   * Create table row element.\n   *\n   * @param {number} row Visual row index.\n   * @returns {DocumentFragment} Returns created table row elements.\n   */\n  createRow(row) {\n    const {\n      rootDocument\n    } = this.hot;\n    const fragment = rootDocument.createDocumentFragment();\n    const th = rootDocument.createElement('th');\n    if (this.hot.hasRowHeaders()) {\n      this.hot.view.appendRowHeader(row, th);\n      fragment.appendChild(th);\n    }\n    this.samples.forEach(sample => {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(sample.strings, string => {\n        const column = string.col;\n        const cellProperties = this.hot.getCellMeta(row, column);\n        const renderer = this.hot.getCellRenderer(cellProperties);\n        const td = rootDocument.createElement('td');\n\n        // Indicate that this element is created and supported by GhostTable. It can be useful to\n        // exclude rendering performance costly logic or exclude logic which doesn't work within a hidden table.\n        td.setAttribute('ghost-table', 1);\n        renderer(this.hot, td, row, column, this.hot.colToProp(column), string.value, cellProperties);\n        fragment.appendChild(td);\n      });\n    });\n    return fragment;\n  }\n\n  /**\n   * Creates DOM elements for headers and appends them to the THEAD element of the table.\n   */\n  appendColumnHeadersRow() {\n    const {\n      rootDocument\n    } = this.hot;\n    const domFragment = rootDocument.createDocumentFragment();\n    const columnHeaders = [];\n    if (this.hot.hasRowHeaders()) {\n      const th = rootDocument.createElement('th');\n      columnHeaders.push([-1, th]);\n      domFragment.appendChild(th);\n    }\n    this.samples.forEach(sample => {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(sample.strings, string => {\n        const column = string.col;\n        const th = rootDocument.createElement('th');\n        columnHeaders.push([column, th]);\n        domFragment.appendChild(th);\n      });\n    });\n\n    // Appending DOM elements for headers\n    this.table.tHead.appendChild(domFragment);\n    Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(columnHeaders, columnHeader => {\n      const [column, th] = columnHeader;\n\n      // Using source method for filling a header with value.\n      this.hot.view.appendColHeader(column, th);\n    });\n  }\n\n  /**\n   * Create table column elements.\n   *\n   * @param {number} column Visual column index.\n   * @returns {DocumentFragment} Returns created column table column elements.\n   */\n  createCol(column) {\n    const {\n      rootDocument\n    } = this.hot;\n    const fragment = rootDocument.createDocumentFragment();\n    this.samples.forEach(sample => {\n      Object(_helpers_array_mjs__WEBPACK_IMPORTED_MODULE_3__[\"arrayEach\"])(sample.strings, string => {\n        const row = string.row;\n        const cellProperties = this.hot.getCellMeta(row, column);\n        const renderer = this.hot.getCellRenderer(cellProperties);\n        const td = rootDocument.createElement('td');\n        const tr = rootDocument.createElement('tr');\n\n        // Indicate that this element is created and supported by GhostTable. It can be useful to\n        // exclude rendering performance costly logic or exclude logic which doesn't work within a hidden table.\n        td.setAttribute('ghost-table', 1);\n        renderer(this.hot, td, row, column, this.hot.colToProp(column), string.value, cellProperties);\n        tr.appendChild(td);\n        fragment.appendChild(tr);\n      });\n    });\n    return fragment;\n  }\n\n  /**\n   * Remove table from document and reset internal state.\n   */\n  clean() {\n    this.rows.length = 0;\n    this.rows[-1] = undefined;\n    this.columns.length = 0;\n    if (this.samples) {\n      this.samples.clear();\n    }\n    this.samples = null;\n    this.removeTable();\n  }\n\n  /**\n   * Inject generated table into document.\n   *\n   * @param {HTMLElement} [parent=null] The element to which the ghost table is injected.\n   */\n  injectTable() {\n    let parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    if (!this.injected) {\n      (parent || this.hot.rootElement).appendChild(this.container.fragment);\n      this.injected = true;\n    }\n  }\n\n  /**\n   * Remove table from document.\n   */\n  removeTable() {\n    if (this.injected && this.container.container.parentNode) {\n      this.container.container.parentNode.removeChild(this.container.container);\n      this.container = null;\n      this.injected = false;\n    }\n  }\n\n  /**\n   * Create col element.\n   *\n   * @param {number} column Visual column index.\n   * @param {number} row Visual row index.\n   * @returns {HTMLElement}\n   */\n  createColElement(column, row) {\n    const col = this.hot.rootDocument.createElement('col');\n    let colspan = 0;\n    if (row >= 0 && column >= 0) {\n      colspan = this.hot.getCellMeta(row, column).colspan;\n    }\n    let width = this.hot.getColWidth(column);\n    if (colspan > 1) {\n      for (let nextColumn = column + 1; nextColumn < column + colspan; nextColumn++) {\n        width += this.hot.getColWidth(nextColumn);\n      }\n    }\n    col.style.width = `${width}px`;\n    return col;\n  }\n\n  /**\n   * Create table element.\n   *\n   * @param {string} className The CSS classes to add.\n   * @returns {object}\n   */\n  createTable() {\n    let className = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n    const {\n      rootDocument\n    } = this.hot;\n    const fragment = rootDocument.createDocumentFragment();\n    const table = rootDocument.createElement('table');\n    const tHead = rootDocument.createElement('thead');\n    const tBody = rootDocument.createElement('tbody');\n    const colGroup = rootDocument.createElement('colgroup');\n    const tr = rootDocument.createElement('tr');\n    const th = rootDocument.createElement('th');\n    if (this.isVertical()) {\n      table.appendChild(colGroup);\n    }\n    if (this.isHorizontal()) {\n      tr.appendChild(th);\n      tHead.appendChild(tr);\n      table.style.tableLayout = 'auto';\n      table.style.width = 'auto';\n    }\n    table.appendChild(tHead);\n    if (this.isVertical()) {\n      tBody.appendChild(tr);\n    }\n    table.appendChild(tBody);\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(table, className);\n    fragment.appendChild(table);\n    return {\n      fragment,\n      table,\n      tHead,\n      tBody,\n      colGroup,\n      tr,\n      th\n    };\n  }\n\n  /**\n   * Create container for tables.\n   *\n   * @param {string} className The CSS classes to add.\n   * @returns {object}\n   */\n  createContainer() {\n    let className = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n    const {\n      rootDocument\n    } = this.hot;\n    const fragment = rootDocument.createDocumentFragment();\n    const container = rootDocument.createElement('div');\n    const containerClassName = `htGhostTable htAutoSize ${className.trim()}`;\n    Object(_helpers_dom_element_mjs__WEBPACK_IMPORTED_MODULE_2__[\"addClass\"])(container, containerClassName);\n    fragment.appendChild(container);\n    return {\n      fragment,\n      container\n    };\n  }\n\n  /**\n   * Checks if table is raised vertically (checking rows).\n   *\n   * @returns {boolean}\n   */\n  isVertical() {\n    return !!(this.rows.length && !this.columns.length);\n  }\n\n  /**\n   * Checks if table is raised horizontally (checking columns).\n   *\n   * @returns {boolean}\n   */\n  isHorizontal() {\n    return !!(this.columns.length && !this.rows.length);\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (GhostTable);\n\n//# sourceURL=webpack:///./node_modules/handsontable/utils/ghostTable.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/utils/paginator.mjs":
/*!*******************************************************!*\
  !*** ./node_modules/handsontable/utils/paginator.mjs ***!
  \*******************************************************/
/*! exports provided: createPaginator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createPaginator\", function() { return createPaginator; });\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n\n\n\n\n\n\n\n\n/**\n * @typedef Paginator\n * @property {function(number): void} setCurrentPage Sets the current index to the specific page.\n * @property {function(): number} getCurrentPage Gets the current page.\n * @property {function(): number} getSize Gets the total number of pages.\n * @property {function(): void} toFirstItem Move the index to the first page.\n * @property {function(): void} toLastItem Move the index to the last page.\n * @property {function(): void} toNextItem Move the index to the next page.\n * @property {function(): void} toPreviousItem Move the index to the previous page.\n * @property {function(): void} clear Clear the internal state of the paginator.\n */\n/**\n * @param {object} options Paginator options.\n * @param {number} [options.initialPage] Initial index from which paging starts. Also, after clearing the paginator\n * the page is cleared to the initial page.\n * @param {function(): number} [options.size] Sets the max size of the pages.\n * @param {function(number): boolean | void} [options.onItemSelect] Fires the function on each page change.\n * @param {function(): void} [options.onClear] Fires the function after clearing the state.\n * @returns {Paginator}\n */\nfunction createPaginator(_ref) {\n  let {\n    initialPage = -1,\n    size = () => 0,\n    onItemSelect = () => {},\n    onClear = () => {}\n  } = _ref;\n  const visitedPages = new Set();\n  let currentIndex = Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_7__[\"clamp\"])(initialPage, -1, getSize() - 1);\n\n  /**\n   * Updates the internal state of the paginator.\n   *\n   * @param {number} newIndex The page index to switch.\n   * @param {-1|1} direction The direction of traversing the pages in case when they are disabled.\n   * @returns {number} Returns the final index of the page.\n   */\n  function _updateState(newIndex, direction) {\n    const lastIndex = getSize() - 1;\n    if (newIndex < 0) {\n      newIndex = lastIndex;\n    }\n    if (newIndex > lastIndex) {\n      newIndex = 0;\n    }\n    if (visitedPages.has(newIndex)) {\n      return -1;\n    }\n    visitedPages.add(newIndex);\n    const changeProceed = onItemSelect(newIndex, false);\n    if (changeProceed === false) {\n      newIndex = _updateState(direction === 1 ? ++newIndex : --newIndex,\n      // eslint-disable-line no-plusplus\n      direction);\n    }\n    return newIndex;\n  }\n\n  /**\n   * Sets the page index as current one.\n   *\n   * @param {number} index The index to set.\n   */\n  function setCurrentPage(index) {\n    if (index > -1 && index < getSize() && onItemSelect(index, true) !== false) {\n      currentIndex = index;\n    }\n  }\n\n  /**\n   * Gets the current page.\n   *\n   * @returns {number}\n   */\n  function getCurrentPage() {\n    return currentIndex;\n  }\n\n  /**\n   * Moves the index to the first page.\n   */\n  function toFirstItem() {\n    if (getSize() > 0) {\n      visitedPages.clear();\n      currentIndex = _updateState(0, 1);\n    }\n  }\n\n  /**\n   * Moves the index to the last page.\n   */\n  function toLastItem() {\n    if (getSize() > 0) {\n      visitedPages.clear();\n      currentIndex = _updateState(getSize() - 1, -1);\n    }\n  }\n\n  /**\n   * Moves the index to the next page.\n   */\n  function toNextItem() {\n    if (getSize() > 0) {\n      visitedPages.clear();\n      currentIndex = _updateState(++currentIndex, 1); // eslint-disable-line no-plusplus\n    }\n  }\n\n  /**\n   * Moves the index to the previous page.\n   */\n  function toPreviousItem() {\n    if (getSize() > 0) {\n      visitedPages.clear();\n      currentIndex = _updateState(--currentIndex, -1); // eslint-disable-line no-plusplus\n    }\n  }\n\n  /**\n   * Gets the total number of pages.\n   *\n   * @returns {number}\n   */\n  function getSize() {\n    return Math.max(size(), 0);\n  }\n\n  /**\n   * Clears the internal state of the paginator.\n   */\n  function clear() {\n    visitedPages.clear();\n    currentIndex = initialPage;\n    onClear();\n  }\n  return {\n    setCurrentPage,\n    getCurrentPage,\n    toFirstItem,\n    toLastItem,\n    toNextItem,\n    toPreviousItem,\n    getSize,\n    clear\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/utils/paginator.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/utils/parseTable.mjs":
/*!********************************************************!*\
  !*** ./node_modules/handsontable/utils/parseTable.mjs ***!
  \********************************************************/
/*! exports provided: instanceToHTML, _dataToHTML, htmlToGridSettings */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"instanceToHTML\", function() { return instanceToHTML; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_dataToHTML\", function() { return _dataToHTML; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"htmlToGridSettings\", function() { return htmlToGridSettings; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_string_replace_all_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace-all.js */ \"./node_modules/core-js/modules/es.string.replace-all.js\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n\n\n\nconst ESCAPED_HTML_CHARS = {\n  '&nbsp;': '\\x20',\n  '&amp;': '&',\n  '&lt;': '<',\n  '&gt;': '>'\n};\nconst regEscapedChars = new RegExp(Object.keys(ESCAPED_HTML_CHARS).map(key => `(${key})`).join('|'), 'gi');\n\n/**\n * Verifies if node is an HTMLTable element.\n *\n * @param {Node} element Node to verify if it's an HTMLTable.\n * @returns {boolean}\n */\nfunction isHTMLTable(element) {\n  return (element && element.nodeName || '') === 'TABLE';\n}\n\n/**\n * Converts Handsontable into HTMLTableElement.\n *\n * @param {Core} instance The Handsontable instance.\n * @returns {string} OuterHTML of the HTMLTableElement.\n */\nfunction instanceToHTML(instance) {\n  const hasColumnHeaders = instance.hasColHeaders();\n  const hasRowHeaders = instance.hasRowHeaders();\n  const coords = [hasColumnHeaders ? -1 : 0, hasRowHeaders ? -1 : 0, instance.countRows() - 1, instance.countCols() - 1];\n  const data = instance.getData(...coords);\n  const countRows = data.length;\n  const countCols = countRows > 0 ? data[0].length : 0;\n  const TABLE = ['<table>', '</table>'];\n  const THEAD = hasColumnHeaders ? ['<thead>', '</thead>'] : [];\n  const TBODY = ['<tbody>', '</tbody>'];\n  const rowModifier = hasRowHeaders ? 1 : 0;\n  const columnModifier = hasColumnHeaders ? 1 : 0;\n  for (let row = 0; row < countRows; row += 1) {\n    const isColumnHeadersRow = hasColumnHeaders && row === 0;\n    const CELLS = [];\n    for (let column = 0; column < countCols; column += 1) {\n      const isRowHeadersColumn = !isColumnHeadersRow && hasRowHeaders && column === 0;\n      let cell = '';\n      if (isColumnHeadersRow) {\n        cell = `<th>${instance.getColHeader(column - rowModifier)}</th>`;\n      } else if (isRowHeadersColumn) {\n        cell = `<th>${instance.getRowHeader(row - columnModifier)}</th>`;\n      } else {\n        const cellData = data[row][column];\n        const {\n          hidden,\n          rowspan,\n          colspan\n        } = instance.getCellMeta(row - columnModifier, column - rowModifier);\n        if (!hidden) {\n          const attrs = [];\n          if (rowspan) {\n            attrs.push(`rowspan=\"${rowspan}\"`);\n          }\n          if (colspan) {\n            attrs.push(`colspan=\"${colspan}\"`);\n          }\n          if (Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isEmpty\"])(cellData)) {\n            cell = `<td ${attrs.join(' ')}></td>`;\n          } else {\n            const value = cellData.toString().replace('<', '&lt;').replace('>', '&gt;').replace(/(<br(\\s*|\\/)>(\\r\\n|\\n)?|\\r\\n|\\n)/g, '<br>\\r\\n').replace(/\\x20/gi, '&nbsp;').replace(/\\t/gi, '&#9;');\n            cell = `<td ${attrs.join(' ')}>${value}</td>`;\n          }\n        }\n      }\n      CELLS.push(cell);\n    }\n    const TR = ['<tr>', ...CELLS, '</tr>'].join('');\n    if (isColumnHeadersRow) {\n      THEAD.splice(1, 0, TR);\n    } else {\n      TBODY.splice(-1, 0, TR);\n    }\n  }\n  TABLE.splice(1, 0, THEAD.join(''), TBODY.join(''));\n  return TABLE.join('');\n}\n\n/**\n * Converts 2D array into HTMLTableElement.\n *\n * @param {Array} input Input array which will be converted to HTMLTable.\n * @returns {string} OuterHTML of the HTMLTableElement.\n */\n// eslint-disable-next-line no-restricted-globals\nfunction _dataToHTML(input) {\n  const inputLen = input.length;\n  const result = ['<table>'];\n  for (let row = 0; row < inputLen; row += 1) {\n    const rowData = input[row];\n    const columnsLen = rowData.length;\n    const columnsResult = [];\n    if (row === 0) {\n      result.push('<tbody>');\n    }\n    for (let column = 0; column < columnsLen; column += 1) {\n      const cellData = rowData[column];\n      const parsedCellData = Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isEmpty\"])(cellData) ? '' : cellData.toString().replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/(<br(\\s*|\\/)>(\\r\\n|\\n)?|\\r\\n|\\n)/g, '<br>\\r\\n').replace(/\\x20{2,}/gi, substring => {\n        // The way how Excel serializes data with at least two spaces.\n        return `<span style=\"mso-spacerun: yes\">${'&nbsp;'.repeat(substring.length - 1)} </span>`;\n      }).replace(/\\t/gi, '&#9;');\n      columnsResult.push(`<td>${parsedCellData}</td>`);\n    }\n    result.push('<tr>', ...columnsResult, '</tr>');\n    if (row + 1 === inputLen) {\n      result.push('</tbody>');\n    }\n  }\n  result.push('</table>');\n  return result.join('');\n}\n\n/**\n * Converts HTMLTable or string into Handsontable configuration object.\n *\n * @param {Element|string} element Node element which should contain `<table>...</table>`.\n * @param {Document} [rootDocument] The document window owner.\n * @returns {object} Return configuration object. Contains keys as DefaultSettings.\n */\n// eslint-disable-next-line no-restricted-globals\nfunction htmlToGridSettings(element) {\n  let rootDocument = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n  const settingsObj = {};\n  const fragment = rootDocument.createDocumentFragment();\n  const tempElem = rootDocument.createElement('div');\n  fragment.appendChild(tempElem);\n  let checkElement = element;\n  if (typeof checkElement === 'string') {\n    const escapedAdjacentHTML = checkElement.replace(/<td\\b[^>]*?>([\\s\\S]*?)<\\/\\s*td>/g, cellFragment => {\n      const openingTag = cellFragment.match(/<td\\b[^>]*?>/g)[0];\n      const paragraphRegexp = /<p.*?>/g;\n      const cellValue = cellFragment.substring(openingTag.length, cellFragment.lastIndexOf('<')).trim() // Removing whitespaces from the start and the end of HTML fragment\n      .replaceAll(/\\n\\s+/g, ' ') // HTML tags may be split using multiple new lines and whitespaces\n      .replaceAll(paragraphRegexp, '\\n') // Only paragraphs should split text using new line characters\n      .replace('\\n', '') // First paragraph shouldn't start with new line characters\n      .replaceAll(/<\\/(.*)>\\s+$/mg, '</$1>') // HTML tags may end with whitespace.\n      .replace(/(<(?!br)([^>]+)>)/gi, '') // Removing HTML tags\n      .replaceAll(/^&nbsp;$/mg, ''); // Removing single &nbsp; characters separating new lines\n      const closingTag = '</td>';\n      return `${openingTag}${cellValue}${closingTag}`;\n    });\n    tempElem.insertAdjacentHTML('afterbegin', `${escapedAdjacentHTML}`);\n    checkElement = tempElem.querySelector('table');\n  }\n  if (!checkElement || !isHTMLTable(checkElement)) {\n    return;\n  }\n  const generator = tempElem.querySelector('meta[name$=\"enerator\"]');\n  const hasRowHeaders = checkElement.querySelector('tbody th') !== null;\n  const trElement = checkElement.querySelector('tr');\n  const countCols = !trElement ? 0 : Array.from(trElement.cells).reduce((cols, cell) => cols + cell.colSpan, 0) - (hasRowHeaders ? 1 : 0);\n  const fixedRowsBottom = checkElement.tFoot && Array.from(checkElement.tFoot.rows) || [];\n  const fixedRowsTop = [];\n  let hasColHeaders = false;\n  let thRowsLen = 0;\n  let countRows = 0;\n  if (checkElement.tHead) {\n    const thRows = Array.from(checkElement.tHead.rows).filter(tr => {\n      const isDataRow = tr.querySelector('td') !== null;\n      if (isDataRow) {\n        fixedRowsTop.push(tr);\n      }\n      return !isDataRow;\n    });\n    thRowsLen = thRows.length;\n    hasColHeaders = thRowsLen > 0;\n    if (thRowsLen > 1) {\n      settingsObj.nestedHeaders = Array.from(thRows).reduce((rows, row) => {\n        const headersRow = Array.from(row.cells).reduce((headers, header, currentIndex) => {\n          if (hasRowHeaders && currentIndex === 0) {\n            return headers;\n          }\n          const {\n            colSpan: colspan,\n            innerHTML\n          } = header;\n          const nextHeader = colspan > 1 ? {\n            label: innerHTML,\n            colspan\n          } : innerHTML;\n          headers.push(nextHeader);\n          return headers;\n        }, []);\n        rows.push(headersRow);\n        return rows;\n      }, []);\n    } else if (hasColHeaders) {\n      settingsObj.colHeaders = Array.from(thRows[0].children).reduce((headers, header, index) => {\n        if (hasRowHeaders && index === 0) {\n          return headers;\n        }\n        headers.push(header.innerHTML);\n        return headers;\n      }, []);\n    }\n  }\n  if (fixedRowsTop.length) {\n    settingsObj.fixedRowsTop = fixedRowsTop.length;\n  }\n  if (fixedRowsBottom.length) {\n    settingsObj.fixedRowsBottom = fixedRowsBottom.length;\n  }\n  const dataRows = [...fixedRowsTop, ...Array.from(checkElement.tBodies).reduce((sections, section) => {\n    sections.push(...Array.from(section.rows));\n    return sections;\n  }, []), ...fixedRowsBottom];\n  countRows = dataRows.length;\n  const dataArr = new Array(countRows);\n  for (let r = 0; r < countRows; r++) {\n    dataArr[r] = new Array(countCols);\n  }\n  const mergeCells = [];\n  const rowHeaders = [];\n  for (let row = 0; row < countRows; row++) {\n    const tr = dataRows[row];\n    const cells = Array.from(tr.cells);\n    const cellsLen = cells.length;\n    for (let cellId = 0; cellId < cellsLen; cellId++) {\n      const cell = cells[cellId];\n      const {\n        nodeName,\n        innerHTML,\n        rowSpan: rowspan,\n        colSpan: colspan\n      } = cell;\n      const col = dataArr[row].findIndex(value => value === undefined);\n      if (nodeName === 'TD') {\n        if (rowspan > 1 || colspan > 1) {\n          for (let rstart = row; rstart < row + rowspan; rstart++) {\n            if (rstart < countRows) {\n              for (let cstart = col; cstart < col + colspan; cstart++) {\n                dataArr[rstart][cstart] = null;\n              }\n            }\n          }\n          const styleAttr = cell.getAttribute('style');\n          const ignoreMerge = styleAttr && styleAttr.includes('mso-ignore:colspan');\n          if (!ignoreMerge) {\n            mergeCells.push({\n              col,\n              row,\n              rowspan,\n              colspan\n            });\n          }\n        }\n        let cellValue = '';\n        if (generator && /excel/gi.test(generator.content)) {\n          cellValue = innerHTML.replace(/[\\r\\n][\\x20]{0,2}/g, '\\x20').replace(/<br(\\s*|\\/)>[\\r\\n]?[\\x20]{0,3}/gim, '\\r\\n');\n        } else {\n          cellValue = innerHTML.replace(/<br(\\s*|\\/)>[\\r\\n]?/gim, '\\r\\n');\n        }\n        dataArr[row][col] = cellValue.replace(regEscapedChars, match => ESCAPED_HTML_CHARS[match]);\n      } else {\n        rowHeaders.push(innerHTML);\n      }\n    }\n  }\n  if (mergeCells.length) {\n    settingsObj.mergeCells = mergeCells;\n  }\n  if (rowHeaders.length) {\n    settingsObj.rowHeaders = rowHeaders;\n  }\n  if (dataArr.length) {\n    settingsObj.data = dataArr;\n  }\n  return settingsObj;\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/utils/parseTable.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/utils/rootInstance.mjs":
/*!**********************************************************!*\
  !*** ./node_modules/handsontable/utils/rootInstance.mjs ***!
  \**********************************************************/
/*! exports provided: holder, rootInstanceSymbol, registerAsRootInstance, hasValidParameter, isRootInstance */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"holder\", function() { return holder; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rootInstanceSymbol\", function() { return rootInstanceSymbol; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerAsRootInstance\", function() { return registerAsRootInstance; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasValidParameter\", function() { return hasValidParameter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isRootInstance\", function() { return isRootInstance; });\nconst holder = new WeakMap();\nconst rootInstanceSymbol = Symbol('rootInstance');\n\n/**\n * Register an object as a root instance.\n *\n * @param  {object} object An object to associate with root instance flag.\n */\nfunction registerAsRootInstance(object) {\n  holder.set(object, true);\n}\n\n/**\n * Check if the source of the root indication call is valid.\n *\n * @param  {symbol} rootSymbol A symbol as a source of truth.\n * @returns {boolean}\n */\nfunction hasValidParameter(rootSymbol) {\n  return rootSymbol === rootInstanceSymbol;\n}\n\n/**\n * Check if passed an object was flagged as a root instance.\n *\n * @param  {object} object An object to check.\n * @returns {boolean}\n */\nfunction isRootInstance(object) {\n  return holder.has(object);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/utils/rootInstance.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/utils/samplesGenerator.mjs":
/*!**************************************************************!*\
  !*** ./node_modules/handsontable/utils/samplesGenerator.mjs ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var _helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../helpers/object.mjs */ \"./node_modules/handsontable/helpers/object.mjs\");\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n/* harmony import */ var _helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../helpers/mixed.mjs */ \"./node_modules/handsontable/helpers/mixed.mjs\");\n\n\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n/**\n * @class SamplesGenerator\n */\nclass SamplesGenerator {\n  /**\n   * Number of samples to take of each value length.\n   *\n   * @type {number}\n   */\n  static get SAMPLE_COUNT() {\n    return 3;\n  }\n  /**\n   * Samples prepared for calculations.\n   *\n   * @type {Map}\n   * @default {null}\n   */\n\n  constructor(dataFactory) {\n    _defineProperty(this, \"samples\", null);\n    /**\n     * Function which give the data to collect samples.\n     *\n     * @type {Function}\n     */\n    _defineProperty(this, \"dataFactory\", null);\n    /**\n     * Custom number of samples to take of each value length.\n     *\n     * @type {number}\n     * @default {null}\n     */\n    _defineProperty(this, \"customSampleCount\", null);\n    /**\n     * `true` if duplicate samples collection should be allowed, `false` otherwise.\n     *\n     * @type {boolean}\n     * @default {false}\n     */\n    _defineProperty(this, \"allowDuplicates\", false);\n    this.dataFactory = dataFactory;\n  }\n\n  /**\n   * Get the sample count for this instance.\n   *\n   * @returns {number}\n   */\n  getSampleCount() {\n    if (this.customSampleCount) {\n      return this.customSampleCount;\n    }\n    return SamplesGenerator.SAMPLE_COUNT;\n  }\n\n  /**\n   * Set the sample count.\n   *\n   * @param {number} sampleCount Number of samples to be collected.\n   */\n  setSampleCount(sampleCount) {\n    this.customSampleCount = sampleCount;\n  }\n\n  /**\n   * Set if the generator should accept duplicate values.\n   *\n   * @param {boolean} allowDuplicates `true` to allow duplicate values.\n   */\n  setAllowDuplicates(allowDuplicates) {\n    this.allowDuplicates = allowDuplicates;\n  }\n\n  /**\n   * Generate samples for row. You can control which area should be sampled by passing `rowRange` object and `colRange` object.\n   *\n   * @param {object|number} rowRange The rows range to generate the samples.\n   * @param {object} colRange The column range to generate the samples.\n   * @returns {object}\n   */\n  generateRowSamples(rowRange, colRange) {\n    return this.generateSamples('row', colRange, rowRange);\n  }\n\n  /**\n   * Generate samples for column. You can control which area should be sampled by passing `colRange` object and `rowRange` object.\n   *\n   * @param {object} colRange Column index.\n   * @param {object} rowRange Column index.\n   * @returns {object}\n   */\n  generateColumnSamples(colRange, rowRange) {\n    return this.generateSamples('col', rowRange, colRange);\n  }\n\n  /**\n   * Generate collection of samples.\n   *\n   * @param {string} type Type to generate. Can be `col` or `row`.\n   * @param {object} range The range to generate the samples.\n   * @param {object|number} specifierRange The range to generate the samples.\n   * @returns {Map}\n   */\n  generateSamples(type, range, specifierRange) {\n    const samples = new Map();\n    const {\n      from,\n      to\n    } = typeof specifierRange === 'number' ? {\n      from: specifierRange,\n      to: specifierRange\n    } : specifierRange;\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__[\"rangeEach\"])(from, to, index => {\n      const sample = this.generateSample(type, range, index);\n      samples.set(index, sample);\n    });\n    return samples;\n  }\n\n  /**\n   * Generate sample for specified type (`row` or `col`).\n   *\n   * @param {string} type Samples type `row` or `col`.\n   * @param {object} range The range to generate the samples.\n   * @param {number} specifierValue The range to generate the samples.\n   * @returns {Map}\n   */\n  generateSample(type, range, specifierValue) {\n    if (type !== 'row' && type !== 'col') {\n      throw new Error('Unsupported sample type');\n    }\n    const samples = new Map();\n    const computedKey = type === 'row' ? 'col' : 'row';\n    const sampledValues = [];\n    Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_3__[\"rangeEach\"])(range.from, range.to, index => {\n      const data = type === 'row' ? this.dataFactory(specifierValue, index) : this.dataFactory(index, specifierValue);\n      if (data === false) {\n        return;\n      }\n      const {\n        value,\n        bundleSeed\n      } = data;\n      const hasCustomBundleSeed = typeof bundleSeed === 'string' && bundleSeed.length > 0;\n      let seed;\n      if (hasCustomBundleSeed) {\n        seed = bundleSeed;\n      } else if (Object(_helpers_object_mjs__WEBPACK_IMPORTED_MODULE_2__[\"isObject\"])(value)) {\n        seed = `${Object.keys(value).length}`;\n      } else if (Array.isArray(value)) {\n        seed = `${value.length}`;\n      } else {\n        seed = `${Object(_helpers_mixed_mjs__WEBPACK_IMPORTED_MODULE_4__[\"stringify\"])(value).length}`;\n      }\n      if (!samples.has(seed)) {\n        samples.set(seed, {\n          needed: this.getSampleCount(),\n          strings: []\n        });\n      }\n      const sample = samples.get(seed);\n      if (sample.needed) {\n        const duplicate = sampledValues.indexOf(value) > -1;\n        if (!duplicate || this.allowDuplicates || hasCustomBundleSeed) {\n          sample.strings.push({\n            value,\n            [computedKey]: index\n          });\n          sampledValues.push(value);\n          sample.needed -= 1;\n        }\n      }\n    });\n    return samples;\n  }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (SamplesGenerator);\n\n//# sourceURL=webpack:///./node_modules/handsontable/utils/samplesGenerator.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/utils/staticRegister.mjs":
/*!************************************************************!*\
  !*** ./node_modules/handsontable/utils/staticRegister.mjs ***!
  \************************************************************/
/*! exports provided: collection, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"collection\", function() { return collection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return staticRegister; });\nconst collection = new Map();\n\n/**\n * @param {string} namespace The namespace for the storage.\n * @returns {object}\n */\nfunction staticRegister() {\n  let namespace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'common';\n  if (!collection.has(namespace)) {\n    collection.set(namespace, new Map());\n  }\n  const subCollection = collection.get(namespace);\n\n  /**\n   * Register an item to the collection. If the item under the same was exist earlier then this item will be replaced with new one.\n   *\n   * @param {string} name Identification of the item.\n   * @param {*} item Item to save in the collection.\n   */\n  function register(name, item) {\n    subCollection.set(name, item);\n  }\n\n  /**\n   * Retrieve the item from the collection.\n   *\n   * @param {string} name Identification of the item.\n   * @returns {*} Returns item which was saved in the collection.\n   */\n  function getItem(name) {\n    return subCollection.get(name);\n  }\n\n  /**\n   * Check if item under specified name is exists.\n   *\n   * @param {string} name Identification of the item.\n   * @returns {boolean} Returns `true` or `false` depends on if element exists in the collection.\n   */\n  function hasItem(name) {\n    return subCollection.has(name);\n  }\n\n  /**\n   * Retrieve list of names registered from the collection.\n   *\n   * @returns {Array} Returns an array of strings with all names under which objects are stored.\n   */\n  function getNames() {\n    return [...subCollection.keys()];\n  }\n\n  /**\n   * Retrieve all registered values from the collection.\n   *\n   * @returns {Array} Returns an array with all values stored in the collection.\n   */\n  function getValues() {\n    return [...subCollection.values()];\n  }\n  return {\n    register,\n    getItem,\n    hasItem,\n    getNames,\n    getValues\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/utils/staticRegister.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/validators/autocompleteValidator/autocompleteValidator.mjs":
/*!**********************************************************************************************!*\
  !*** ./node_modules/handsontable/validators/autocompleteValidator/autocompleteValidator.mjs ***!
  \**********************************************************************************************/
/*! exports provided: VALIDATOR_TYPE, autocompleteValidator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VALIDATOR_TYPE\", function() { return VALIDATOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autocompleteValidator\", function() { return autocompleteValidator; });\nconst VALIDATOR_TYPE = 'autocomplete';\n\n/**\n * The Autocomplete cell validator.\n *\n * @private\n * @param {*} value Value of edited cell.\n * @param {Function} callback Callback called with validation result.\n */\nfunction autocompleteValidator(value, callback) {\n  let valueToValidate = value;\n  if (valueToValidate === null || valueToValidate === undefined) {\n    valueToValidate = '';\n  }\n  if (this.allowEmpty && valueToValidate === '') {\n    callback(true);\n    return;\n  }\n  if (this.strict && this.source) {\n    if (typeof this.source === 'function') {\n      this.source(valueToValidate, process(valueToValidate, callback));\n    } else {\n      process(valueToValidate, callback)(this.source);\n    }\n  } else {\n    callback(true);\n  }\n}\nautocompleteValidator.VALIDATOR_TYPE = VALIDATOR_TYPE;\n\n/**\n * Function responsible for validation of autocomplete value.\n *\n * @param {*} value Value of edited cell.\n * @param {Function} callback Callback called with validation result.\n * @returns {Function}\n */\nfunction process(value, callback) {\n  const originalVal = value;\n  return function (source) {\n    let found = false;\n    for (let s = 0, slen = source.length; s < slen; s++) {\n      if (originalVal === source[s]) {\n        found = true; // perfect match\n        break;\n      }\n    }\n    callback(found);\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/validators/autocompleteValidator/autocompleteValidator.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/validators/autocompleteValidator/index.mjs":
/*!******************************************************************************!*\
  !*** ./node_modules/handsontable/validators/autocompleteValidator/index.mjs ***!
  \******************************************************************************/
/*! exports provided: VALIDATOR_TYPE, autocompleteValidator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _autocompleteValidator_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./autocompleteValidator.mjs */ \"./node_modules/handsontable/validators/autocompleteValidator/autocompleteValidator.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VALIDATOR_TYPE\", function() { return _autocompleteValidator_mjs__WEBPACK_IMPORTED_MODULE_0__[\"VALIDATOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"autocompleteValidator\", function() { return _autocompleteValidator_mjs__WEBPACK_IMPORTED_MODULE_0__[\"autocompleteValidator\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/validators/autocompleteValidator/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/validators/dateValidator/dateValidator.mjs":
/*!******************************************************************************!*\
  !*** ./node_modules/handsontable/validators/dateValidator/dateValidator.mjs ***!
  \******************************************************************************/
/*! exports provided: VALIDATOR_TYPE, dateValidator, correctFormat */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VALIDATOR_TYPE\", function() { return VALIDATOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dateValidator\", function() { return dateValidator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"correctFormat\", function() { return correctFormat; });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var _editors_registry_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../editors/registry.mjs */ \"./node_modules/handsontable/editors/registry.mjs\");\n/* harmony import */ var _editors_dateEditor_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../editors/dateEditor/index.mjs */ \"./node_modules/handsontable/editors/dateEditor/index.mjs\");\n/* harmony import */ var _helpers_date_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/date.mjs */ \"./node_modules/handsontable/helpers/date.mjs\");\n\n\n\n\nconst VALIDATOR_TYPE = 'date';\n\n/**\n * The Date cell validator.\n *\n * @private\n * @param {*} value Value of edited cell.\n * @param {Function} callback Callback called with validation result.\n */\nfunction dateValidator(value, callback) {\n  const dateEditor = Object(_editors_registry_mjs__WEBPACK_IMPORTED_MODULE_1__[\"getEditorInstance\"])(_editors_dateEditor_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"EDITOR_TYPE\"], this.instance);\n  let valueToValidate = value;\n  let valid = true;\n  if (valueToValidate === null || valueToValidate === undefined) {\n    valueToValidate = '';\n  }\n  let isValidFormat = moment__WEBPACK_IMPORTED_MODULE_0__(valueToValidate, this.dateFormat || dateEditor.defaultDateFormat, true).isValid();\n  let isValidDate = moment__WEBPACK_IMPORTED_MODULE_0__(new Date(valueToValidate)).isValid() || isValidFormat;\n  if (this.allowEmpty && valueToValidate === '') {\n    isValidDate = true;\n    isValidFormat = true;\n  }\n  if (!isValidDate) {\n    valid = false;\n  }\n  if (!isValidDate && isValidFormat) {\n    valid = true;\n  }\n  if (isValidDate && !isValidFormat) {\n    if (this.correctFormat === true) {\n      // if format correction is enabled\n      const correctedValue = correctFormat(valueToValidate, this.dateFormat);\n      this.instance.setDataAtCell(this.visualRow, this.visualCol, correctedValue, 'dateValidator');\n      valid = true;\n    } else {\n      valid = false;\n    }\n  }\n  callback(valid);\n}\ndateValidator.VALIDATOR_TYPE = VALIDATOR_TYPE;\n\n/**\n * Format the given string using moment.js' format feature.\n *\n * @param {string} value The value to format.\n * @param {string} dateFormat The date pattern to format to.\n * @returns {string}\n */\nfunction correctFormat(value, dateFormat) {\n  const dateFromDate = moment__WEBPACK_IMPORTED_MODULE_0__(Object(_helpers_date_mjs__WEBPACK_IMPORTED_MODULE_3__[\"getNormalizedDate\"])(value));\n  const dateFromMoment = moment__WEBPACK_IMPORTED_MODULE_0__(value, dateFormat);\n  const isAlphanumeric = value.search(/[A-z]/g) > -1;\n  let date;\n  if (dateFromDate.isValid() && dateFromDate.format('x') === dateFromMoment.format('x') || !dateFromMoment.isValid() || isAlphanumeric) {\n    date = dateFromDate;\n  } else {\n    date = dateFromMoment;\n  }\n  return date.format(dateFormat);\n}\n\n//# sourceURL=webpack:///./node_modules/handsontable/validators/dateValidator/dateValidator.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/validators/dateValidator/index.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/validators/dateValidator/index.mjs ***!
  \**********************************************************************/
/*! exports provided: VALIDATOR_TYPE, correctFormat, dateValidator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dateValidator_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dateValidator.mjs */ \"./node_modules/handsontable/validators/dateValidator/dateValidator.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VALIDATOR_TYPE\", function() { return _dateValidator_mjs__WEBPACK_IMPORTED_MODULE_0__[\"VALIDATOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"correctFormat\", function() { return _dateValidator_mjs__WEBPACK_IMPORTED_MODULE_0__[\"correctFormat\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dateValidator\", function() { return _dateValidator_mjs__WEBPACK_IMPORTED_MODULE_0__[\"dateValidator\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/validators/dateValidator/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/validators/dropdownValidator/dropdownValidator.mjs":
/*!**************************************************************************************!*\
  !*** ./node_modules/handsontable/validators/dropdownValidator/dropdownValidator.mjs ***!
  \**************************************************************************************/
/*! exports provided: VALIDATOR_TYPE, dropdownValidator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VALIDATOR_TYPE\", function() { return VALIDATOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dropdownValidator\", function() { return dropdownValidator; });\n/* harmony import */ var _autocompleteValidator_autocompleteValidator_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../autocompleteValidator/autocompleteValidator.mjs */ \"./node_modules/handsontable/validators/autocompleteValidator/autocompleteValidator.mjs\");\n\nconst VALIDATOR_TYPE = 'dropdown';\n\n/**\n * The Dropdown cell validator.\n *\n * @private\n * @param {*} value Value of edited cell.\n * @param {Function} callback Callback called with validation result.\n */\nfunction dropdownValidator(value, callback) {\n  _autocompleteValidator_autocompleteValidator_mjs__WEBPACK_IMPORTED_MODULE_0__[\"autocompleteValidator\"].apply(this, [value, callback]);\n}\ndropdownValidator.VALIDATOR_TYPE = VALIDATOR_TYPE;\n\n//# sourceURL=webpack:///./node_modules/handsontable/validators/dropdownValidator/dropdownValidator.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/validators/dropdownValidator/index.mjs":
/*!**************************************************************************!*\
  !*** ./node_modules/handsontable/validators/dropdownValidator/index.mjs ***!
  \**************************************************************************/
/*! exports provided: VALIDATOR_TYPE, dropdownValidator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dropdownValidator_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dropdownValidator.mjs */ \"./node_modules/handsontable/validators/dropdownValidator/dropdownValidator.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VALIDATOR_TYPE\", function() { return _dropdownValidator_mjs__WEBPACK_IMPORTED_MODULE_0__[\"VALIDATOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropdownValidator\", function() { return _dropdownValidator_mjs__WEBPACK_IMPORTED_MODULE_0__[\"dropdownValidator\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/validators/dropdownValidator/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/validators/index.mjs":
/*!********************************************************!*\
  !*** ./node_modules/handsontable/validators/index.mjs ***!
  \********************************************************/
/*! exports provided: registerAllValidators, autocompleteValidator, AUTOCOMPLETE_VALIDATOR, dropdownValidator, DROPDOWN_VALIDATOR, dateValidator, DATE_VALIDATOR, numericValidator, NUMERIC_VALIDATOR, timeValidator, TIME_VALIDATOR, getRegisteredValidatorNames, getRegisteredValidators, getValidator, hasValidator, registerValidator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerAllValidators\", function() { return registerAllValidators; });\n/* harmony import */ var _autocompleteValidator_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./autocompleteValidator/index.mjs */ \"./node_modules/handsontable/validators/autocompleteValidator/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"autocompleteValidator\", function() { return _autocompleteValidator_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"autocompleteValidator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AUTOCOMPLETE_VALIDATOR\", function() { return _autocompleteValidator_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"VALIDATOR_TYPE\"]; });\n\n/* harmony import */ var _dateValidator_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dateValidator/index.mjs */ \"./node_modules/handsontable/validators/dateValidator/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dateValidator\", function() { return _dateValidator_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"dateValidator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DATE_VALIDATOR\", function() { return _dateValidator_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"VALIDATOR_TYPE\"]; });\n\n/* harmony import */ var _dropdownValidator_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dropdownValidator/index.mjs */ \"./node_modules/handsontable/validators/dropdownValidator/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropdownValidator\", function() { return _dropdownValidator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"dropdownValidator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DROPDOWN_VALIDATOR\", function() { return _dropdownValidator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"VALIDATOR_TYPE\"]; });\n\n/* harmony import */ var _numericValidator_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./numericValidator/index.mjs */ \"./node_modules/handsontable/validators/numericValidator/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"numericValidator\", function() { return _numericValidator_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"numericValidator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NUMERIC_VALIDATOR\", function() { return _numericValidator_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"VALIDATOR_TYPE\"]; });\n\n/* harmony import */ var _timeValidator_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./timeValidator/index.mjs */ \"./node_modules/handsontable/validators/timeValidator/index.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeValidator\", function() { return _timeValidator_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"timeValidator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TIME_VALIDATOR\", function() { return _timeValidator_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"VALIDATOR_TYPE\"]; });\n\n/* harmony import */ var _registry_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./registry.mjs */ \"./node_modules/handsontable/validators/registry.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredValidatorNames\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_5__[\"getRegisteredValidatorNames\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredValidators\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_5__[\"getRegisteredValidators\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getValidator\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_5__[\"getValidator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasValidator\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_5__[\"hasValidator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"registerValidator\", function() { return _registry_mjs__WEBPACK_IMPORTED_MODULE_5__[\"registerValidator\"]; });\n\n\n\n\n\n\n\n/**\n * Registers all available validators.\n */\nfunction registerAllValidators() {\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_5__[\"registerValidator\"])(_autocompleteValidator_index_mjs__WEBPACK_IMPORTED_MODULE_0__[\"autocompleteValidator\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_5__[\"registerValidator\"])(_dropdownValidator_index_mjs__WEBPACK_IMPORTED_MODULE_2__[\"dropdownValidator\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_5__[\"registerValidator\"])(_dateValidator_index_mjs__WEBPACK_IMPORTED_MODULE_1__[\"dateValidator\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_5__[\"registerValidator\"])(_numericValidator_index_mjs__WEBPACK_IMPORTED_MODULE_3__[\"numericValidator\"]);\n  Object(_registry_mjs__WEBPACK_IMPORTED_MODULE_5__[\"registerValidator\"])(_timeValidator_index_mjs__WEBPACK_IMPORTED_MODULE_4__[\"timeValidator\"]);\n}\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/validators/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/validators/numericValidator/index.mjs":
/*!*************************************************************************!*\
  !*** ./node_modules/handsontable/validators/numericValidator/index.mjs ***!
  \*************************************************************************/
/*! exports provided: VALIDATOR_TYPE, numericValidator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _numericValidator_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numericValidator.mjs */ \"./node_modules/handsontable/validators/numericValidator/numericValidator.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VALIDATOR_TYPE\", function() { return _numericValidator_mjs__WEBPACK_IMPORTED_MODULE_0__[\"VALIDATOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"numericValidator\", function() { return _numericValidator_mjs__WEBPACK_IMPORTED_MODULE_0__[\"numericValidator\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/validators/numericValidator/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/validators/numericValidator/numericValidator.mjs":
/*!************************************************************************************!*\
  !*** ./node_modules/handsontable/validators/numericValidator/numericValidator.mjs ***!
  \************************************************************************************/
/*! exports provided: VALIDATOR_TYPE, numericValidator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VALIDATOR_TYPE\", function() { return VALIDATOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"numericValidator\", function() { return numericValidator; });\n/* harmony import */ var _helpers_number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../helpers/number.mjs */ \"./node_modules/handsontable/helpers/number.mjs\");\n\nconst VALIDATOR_TYPE = 'numeric';\n\n/**\n * The Numeric cell validator.\n *\n * @private\n * @param {*} value Value of edited cell.\n * @param {Function} callback Callback called with validation result.\n */\nfunction numericValidator(value, callback) {\n  let valueToValidate = value;\n  if (valueToValidate === null || valueToValidate === undefined) {\n    valueToValidate = '';\n  }\n  if (this.allowEmpty && valueToValidate === '') {\n    callback(true);\n  } else if (valueToValidate === '') {\n    callback(false);\n  } else {\n    callback(Object(_helpers_number_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isNumeric\"])(value));\n  }\n}\nnumericValidator.VALIDATOR_TYPE = VALIDATOR_TYPE;\n\n//# sourceURL=webpack:///./node_modules/handsontable/validators/numericValidator/numericValidator.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/validators/registry.mjs":
/*!***********************************************************!*\
  !*** ./node_modules/handsontable/validators/registry.mjs ***!
  \***********************************************************/
/*! exports provided: registerValidator, getValidator, hasValidator, getRegisteredValidatorNames, getRegisteredValidators */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerValidator\", function() { return _register; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getValidator\", function() { return _getItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasValidator\", function() { return hasItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredValidatorNames\", function() { return getNames; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredValidators\", function() { return getValues; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var _utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/staticRegister.mjs */ \"./node_modules/handsontable/utils/staticRegister.mjs\");\n\n\nconst {\n  register,\n  getItem,\n  hasItem,\n  getNames,\n  getValues\n} = Object(_utils_staticRegister_mjs__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('validators');\n\n/**\n * Retrieve validator function.\n *\n * @param {string} name Validator identification.\n * @returns {Function} Returns validator function.\n */\nfunction _getItem(name) {\n  if (typeof name === 'function') {\n    return name;\n  }\n  if (!hasItem(name)) {\n    throw Error(`No registered validator found under \"${name}\" name`);\n  }\n  return getItem(name);\n}\n\n/**\n * Register validator under its alias.\n *\n * @param {string|Function} name Validator's alias or validator function with its descriptor.\n * @param {Function} [validator] Validator function.\n */\nfunction _register(name, validator) {\n  if (typeof name !== 'string') {\n    validator = name;\n    name = validator.VALIDATOR_TYPE;\n  }\n  register(name, validator);\n}\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/validators/registry.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/validators/timeValidator/index.mjs":
/*!**********************************************************************!*\
  !*** ./node_modules/handsontable/validators/timeValidator/index.mjs ***!
  \**********************************************************************/
/*! exports provided: VALIDATOR_TYPE, timeValidator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _timeValidator_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timeValidator.mjs */ \"./node_modules/handsontable/validators/timeValidator/timeValidator.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VALIDATOR_TYPE\", function() { return _timeValidator_mjs__WEBPACK_IMPORTED_MODULE_0__[\"VALIDATOR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeValidator\", function() { return _timeValidator_mjs__WEBPACK_IMPORTED_MODULE_0__[\"timeValidator\"]; });\n\n\n\n//# sourceURL=webpack:///./node_modules/handsontable/validators/timeValidator/index.mjs?");

/***/ }),

/***/ "./node_modules/handsontable/validators/timeValidator/timeValidator.mjs":
/*!******************************************************************************!*\
  !*** ./node_modules/handsontable/validators/timeValidator/timeValidator.mjs ***!
  \******************************************************************************/
/*! exports provided: VALIDATOR_TYPE, timeValidator */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VALIDATOR_TYPE\", function() { return VALIDATOR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeValidator\", function() { return timeValidator; });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n\n\n// Formats which are correctly parsed to time (supported by momentjs)\nconst STRICT_FORMATS = ['YYYY-MM-DDTHH:mm:ss.SSSZ', 'X',\n// Unix timestamp\n'x' // Unix ms timestamp\n];\nconst VALIDATOR_TYPE = 'time';\n\n/**\n * The Time cell validator.\n *\n * @private\n * @param {*} value Value of edited cell.\n * @param {Function} callback Callback called with validation result.\n */\nfunction timeValidator(value, callback) {\n  const timeFormat = this.timeFormat || 'h:mm:ss a';\n  let valid = true;\n  let valueToValidate = value;\n  if (valueToValidate === null) {\n    valueToValidate = '';\n  }\n  valueToValidate = /^\\d{3,}$/.test(valueToValidate) ? parseInt(valueToValidate, 10) : valueToValidate;\n  const twoDigitValue = /^\\d{1,2}$/.test(valueToValidate);\n  if (twoDigitValue) {\n    valueToValidate += ':00';\n  }\n  const date = moment__WEBPACK_IMPORTED_MODULE_0__(valueToValidate, STRICT_FORMATS, true).isValid() ? moment__WEBPACK_IMPORTED_MODULE_0__(valueToValidate) : moment__WEBPACK_IMPORTED_MODULE_0__(valueToValidate, timeFormat);\n  let isValidTime = date.isValid();\n\n  // is it in the specified format\n  let isValidFormat = moment__WEBPACK_IMPORTED_MODULE_0__(valueToValidate, timeFormat, true).isValid() && !twoDigitValue;\n  if (this.allowEmpty && valueToValidate === '') {\n    isValidTime = true;\n    isValidFormat = true;\n  }\n  if (!isValidTime) {\n    valid = false;\n  }\n  if (!isValidTime && isValidFormat) {\n    valid = true;\n  }\n  if (isValidTime && !isValidFormat) {\n    if (this.correctFormat === true) {\n      // if format correction is enabled\n      const correctedValue = date.format(timeFormat);\n      this.instance.setDataAtCell(this.visualRow, this.visualCol, correctedValue, 'timeValidator');\n      valid = true;\n    } else {\n      valid = false;\n    }\n  }\n  callback(valid);\n}\ntimeValidator.VALIDATOR_TYPE = VALIDATOR_TYPE;\n\n//# sourceURL=webpack:///./node_modules/handsontable/validators/timeValidator/timeValidator.mjs?");

/***/ }),

/***/ "./node_modules/has-property-descriptors/index.js":
/*!********************************************************!*\
  !*** ./node_modules/has-property-descriptors/index.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar $defineProperty = __webpack_require__(/*! es-define-property */ \"./node_modules/es-define-property/index.js\");\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n\n\n//# sourceURL=webpack:///./node_modules/has-property-descriptors/index.js?");

/***/ }),

/***/ "./node_modules/has-proto/index.js":
/*!*****************************************!*\
  !*** ./node_modules/has-proto/index.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar test = {\n\t__proto__: null,\n\tfoo: {}\n};\n\nvar $Object = Object;\n\n/** @type {import('.')} */\nmodule.exports = function hasProto() {\n\t// @ts-expect-error: TS errors on an inherited property for some reason\n\treturn { __proto__: test }.foo === test.foo\n\t\t&& !(test instanceof $Object);\n};\n\n\n//# sourceURL=webpack:///./node_modules/has-proto/index.js?");

/***/ }),

/***/ "./node_modules/has-symbols/index.js":
/*!*******************************************!*\
  !*** ./node_modules/has-symbols/index.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = __webpack_require__(/*! ./shams */ \"./node_modules/has-symbols/shams.js\");\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n\n\n//# sourceURL=webpack:///./node_modules/has-symbols/index.js?");

/***/ }),

/***/ "./node_modules/has-symbols/shams.js":
/*!*******************************************!*\
  !*** ./node_modules/has-symbols/shams.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/has-symbols/shams.js?");

/***/ }),

/***/ "./node_modules/hasown/index.js":
/*!**************************************!*\
  !*** ./node_modules/hasown/index.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = __webpack_require__(/*! function-bind */ \"./node_modules/function-bind/index.js\");\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n\n\n//# sourceURL=webpack:///./node_modules/hasown/index.js?");

/***/ }),

/***/ "./node_modules/ieee754/index.js":
/*!***************************************!*\
  !*** ./node_modules/ieee754/index.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var nBits = -7\n  var i = isLE ? (nBytes - 1) : 0\n  var d = isLE ? -1 : 1\n  var s = buffer[offset + i]\n\n  i += d\n\n  e = s & ((1 << (-nBits)) - 1)\n  s >>= (-nBits)\n  nBits += eLen\n  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & ((1 << (-nBits)) - 1)\n  e >>= (-nBits)\n  nBits += mLen\n  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias\n  } else if (e === eMax) {\n    return m ? NaN : ((s ? -1 : 1) * Infinity)\n  } else {\n    m = m + Math.pow(2, mLen)\n    e = e - eBias\n  }\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n  var i = isLE ? 0 : (nBytes - 1)\n  var d = isLE ? 1 : -1\n  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n  value = Math.abs(value)\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0\n    e = eMax\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2)\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--\n      c *= 2\n    }\n    if (e + eBias >= 1) {\n      value += rt / c\n    } else {\n      value += rt * Math.pow(2, 1 - eBias)\n    }\n    if (value * c >= 2) {\n      e++\n      c /= 2\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0\n      e = eMax\n    } else if (e + eBias >= 1) {\n      m = ((value * c) - 1) * Math.pow(2, mLen)\n      e = e + eBias\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n      e = 0\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = (e << mLen) | m\n  eLen += mLen\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128\n}\n\n\n//# sourceURL=webpack:///./node_modules/ieee754/index.js?");

/***/ }),

/***/ "./node_modules/is-buffer/index.js":
/*!*****************************************!*\
  !*** ./node_modules/is-buffer/index.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/*!\n * Determine if an object is a Buffer\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n  return obj != null && obj.constructor != null &&\n    typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n\n//# sourceURL=webpack:///./node_modules/is-buffer/index.js?");

/***/ }),

/***/ "./node_modules/js-cookie/src/js.cookie.js":
/*!*************************************************!*\
  !*** ./node_modules/js-cookie/src/js.cookie.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * JavaScript Cookie v2.2.0\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader = false;\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (true) {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api (key, value, attributes) {\n\t\t\tvar result;\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Write\n\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tattributes = extend({\n\t\t\t\t\tpath: '/'\n\t\t\t\t}, api.defaults, attributes);\n\n\t\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\t\tvar expires = new Date();\n\t\t\t\t\texpires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\n\t\t\t\t\tattributes.expires = expires;\n\t\t\t\t}\n\n\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\t\ttry {\n\t\t\t\t\tresult = JSON.stringify(value);\n\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\t\tvalue = result;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\n\t\t\t\tif (!converter.write) {\n\t\t\t\t\tvalue = encodeURIComponent(String(value))\n\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\t\t\t\t} else {\n\t\t\t\t\tvalue = converter.write(value, key);\n\t\t\t\t}\n\n\t\t\t\tkey = encodeURIComponent(String(key));\n\t\t\t\tkey = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\n\t\t\t\tkey = key.replace(/[\\(\\)]/g, escape);\n\n\t\t\t\tvar stringifiedAttributes = '';\n\n\t\t\t\tfor (var attributeName in attributes) {\n\t\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName];\n\t\t\t\t}\n\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t\t}\n\n\t\t\t// Read\n\n\t\t\tif (!key) {\n\t\t\t\tresult = {};\n\t\t\t}\n\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all. Also prevents odd result when\n\t\t\t// calling \"get()\"\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar rdecode = /(%[0-9A-Z]{2})+/g;\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!this.json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = parts[0].replace(rdecode, decodeURIComponent);\n\t\t\t\t\tcookie = converter.read ?\n\t\t\t\t\t\tconverter.read(cookie, name) : converter(cookie, name) ||\n\t\t\t\t\t\tcookie.replace(rdecode, decodeURIComponent);\n\n\t\t\t\t\tif (this.json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tresult = cookie;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!key) {\n\t\t\t\t\t\tresult[name] = cookie;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tapi.set = api;\n\t\tapi.get = function (key) {\n\t\t\treturn api.call(api, key);\n\t\t};\n\t\tapi.getJSON = function () {\n\t\t\treturn api.apply({\n\t\t\t\tjson: true\n\t\t\t}, [].slice.call(arguments));\n\t\t};\n\t\tapi.defaults = {};\n\n\t\tapi.remove = function (key, attributes) {\n\t\t\tapi(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n\n\n//# sourceURL=webpack:///./node_modules/js-cookie/src/js.cookie.js?");

/***/ }),

/***/ "./node_modules/js-md5/src/md5.js":
/*!****************************************!*\
  !*** ./node_modules/js-md5/src/md5.js ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(process, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/**\n * [js-md5]{@link https://github.com/emn178/js-md5}\n *\n * @namespace md5\n * @version 0.8.3\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2023\n * @license MIT\n */\n(function () {\n  'use strict';\n\n  var INPUT_ERROR = 'input is invalid type';\n  var FINALIZE_ERROR = 'finalize already called';\n  var WINDOW = typeof window === 'object';\n  var root = WINDOW ? window : {};\n  if (root.JS_MD5_NO_WINDOW) {\n    WINDOW = false;\n  }\n  var WEB_WORKER = !WINDOW && typeof self === 'object';\n  var NODE_JS = !root.JS_MD5_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n  if (NODE_JS) {\n    root = global;\n  } else if (WEB_WORKER) {\n    root = self;\n  }\n  var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && typeof module === 'object' && module.exports;\n  var AMD =  true && __webpack_require__(/*! !webpack amd options */ \"./node_modules/webpack/buildin/amd-options.js\");\n  var ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n  var HEX_CHARS = '0123456789abcdef'.split('');\n  var EXTRA = [128, 32768, 8388608, -2147483648];\n  var SHIFT = [0, 8, 16, 24];\n  var OUTPUT_TYPES = ['hex', 'array', 'digest', 'buffer', 'arrayBuffer', 'base64'];\n  var BASE64_ENCODE_CHAR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n  var blocks = [], buffer8;\n  if (ARRAY_BUFFER) {\n    var buffer = new ArrayBuffer(68);\n    buffer8 = new Uint8Array(buffer);\n    blocks = new Uint32Array(buffer);\n  }\n\n  var isArray = Array.isArray;\n  if (root.JS_MD5_NO_NODE_JS || !isArray) {\n    isArray = function (obj) {\n      return Object.prototype.toString.call(obj) === '[object Array]';\n    };\n  }\n\n  var isView = ArrayBuffer.isView;\n  if (ARRAY_BUFFER && (root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW || !isView)) {\n    isView = function (obj) {\n      return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n    };\n  }\n\n  // [message: string, isString: bool]\n  var formatMessage = function (message) {\n    var type = typeof message;\n    if (type === 'string') {\n      return [message, true];\n    }\n    if (type !== 'object' || message === null) {\n      throw new Error(INPUT_ERROR);\n    }\n    if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n      return [new Uint8Array(message), false];\n    }\n    if (!isArray(message) && !isView(message)) {\n      throw new Error(INPUT_ERROR);\n    }\n    return [message, false];\n  }\n\n  /**\n   * @method hex\n   * @memberof md5\n   * @description Output hash as hex string\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {String} Hex string\n   * @example\n   * md5.hex('The quick brown fox jumps over the lazy dog');\n   * // equal to\n   * md5('The quick brown fox jumps over the lazy dog');\n   */\n  /**\n   * @method digest\n   * @memberof md5\n   * @description Output hash as bytes array\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {Array} Bytes array\n   * @example\n   * md5.digest('The quick brown fox jumps over the lazy dog');\n   */\n  /**\n   * @method array\n   * @memberof md5\n   * @description Output hash as bytes array\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {Array} Bytes array\n   * @example\n   * md5.array('The quick brown fox jumps over the lazy dog');\n   */\n  /**\n   * @method arrayBuffer\n   * @memberof md5\n   * @description Output hash as ArrayBuffer\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {ArrayBuffer} ArrayBuffer\n   * @example\n   * md5.arrayBuffer('The quick brown fox jumps over the lazy dog');\n   */\n  /**\n   * @method buffer\n   * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.\n   * @memberof md5\n   * @description Output hash as ArrayBuffer\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {ArrayBuffer} ArrayBuffer\n   * @example\n   * md5.buffer('The quick brown fox jumps over the lazy dog');\n   */\n  /**\n   * @method base64\n   * @memberof md5\n   * @description Output hash as base64 string\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {String} base64 string\n   * @example\n   * md5.base64('The quick brown fox jumps over the lazy dog');\n   */\n  var createOutputMethod = function (outputType) {\n    return function (message) {\n      return new Md5(true).update(message)[outputType]();\n    };\n  };\n\n  /**\n   * @method create\n   * @memberof md5\n   * @description Create Md5 object\n   * @returns {Md5} Md5 object.\n   * @example\n   * var hash = md5.create();\n   */\n  /**\n   * @method update\n   * @memberof md5\n   * @description Create and update Md5 object\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {Md5} Md5 object.\n   * @example\n   * var hash = md5.update('The quick brown fox jumps over the lazy dog');\n   * // equal to\n   * var hash = md5.create();\n   * hash.update('The quick brown fox jumps over the lazy dog');\n   */\n  var createMethod = function () {\n    var method = createOutputMethod('hex');\n    if (NODE_JS) {\n      method = nodeWrap(method);\n    }\n    method.create = function () {\n      return new Md5();\n    };\n    method.update = function (message) {\n      return method.create().update(message);\n    };\n    for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n      var type = OUTPUT_TYPES[i];\n      method[type] = createOutputMethod(type);\n    }\n    return method;\n  };\n\n  var nodeWrap = function (method) {\n    var crypto = __webpack_require__(/*! crypto */ 8)\n    var Buffer = __webpack_require__(/*! buffer */ 9).Buffer;\n    var bufferFrom;\n    if (Buffer.from && !root.JS_MD5_NO_BUFFER_FROM) {\n      bufferFrom = Buffer.from;\n    } else {\n      bufferFrom = function (message) {\n        return new Buffer(message);\n      };\n    }\n    var nodeMethod = function (message) {\n      if (typeof message === 'string') {\n        return crypto.createHash('md5').update(message, 'utf8').digest('hex');\n      } else {\n        if (message === null || message === undefined) {\n          throw new Error(INPUT_ERROR);\n        } else if (message.constructor === ArrayBuffer) {\n          message = new Uint8Array(message);\n        }\n      }\n      if (isArray(message) || isView(message) ||\n        message.constructor === Buffer) {\n        return crypto.createHash('md5').update(bufferFrom(message)).digest('hex');\n      } else {\n        return method(message);\n      }\n    };\n    return nodeMethod;\n  };\n\n  /**\n   * @namespace md5.hmac\n   */\n  /**\n   * @method hex\n   * @memberof md5.hmac\n   * @description Output hash as hex string\n   * @param {String|Array|Uint8Array|ArrayBuffer} key key\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {String} Hex string\n   * @example\n   * md5.hmac.hex('key', 'The quick brown fox jumps over the lazy dog');\n   * // equal to\n   * md5.hmac('key', 'The quick brown fox jumps over the lazy dog');\n   */\n\n  /**\n   * @method digest\n   * @memberof md5.hmac\n   * @description Output hash as bytes array\n   * @param {String|Array|Uint8Array|ArrayBuffer} key key\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {Array} Bytes array\n   * @example\n   * md5.hmac.digest('key', 'The quick brown fox jumps over the lazy dog');\n   */\n  /**\n   * @method array\n   * @memberof md5.hmac\n   * @description Output hash as bytes array\n   * @param {String|Array|Uint8Array|ArrayBuffer} key key\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {Array} Bytes array\n   * @example\n   * md5.hmac.array('key', 'The quick brown fox jumps over the lazy dog');\n   */\n  /**\n   * @method arrayBuffer\n   * @memberof md5.hmac\n   * @description Output hash as ArrayBuffer\n   * @param {String|Array|Uint8Array|ArrayBuffer} key key\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {ArrayBuffer} ArrayBuffer\n   * @example\n   * md5.hmac.arrayBuffer('key', 'The quick brown fox jumps over the lazy dog');\n   */\n  /**\n   * @method buffer\n   * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.\n   * @memberof md5.hmac\n   * @description Output hash as ArrayBuffer\n   * @param {String|Array|Uint8Array|ArrayBuffer} key key\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {ArrayBuffer} ArrayBuffer\n   * @example\n   * md5.hmac.buffer('key', 'The quick brown fox jumps over the lazy dog');\n   */\n  /**\n   * @method base64\n   * @memberof md5.hmac\n   * @description Output hash as base64 string\n   * @param {String|Array|Uint8Array|ArrayBuffer} key key\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {String} base64 string\n   * @example\n   * md5.hmac.base64('key', 'The quick brown fox jumps over the lazy dog');\n   */\n  var createHmacOutputMethod = function (outputType) {\n    return function (key, message) {\n      return new HmacMd5(key, true).update(message)[outputType]();\n    };\n  };\n\n  /**\n   * @method create\n   * @memberof md5.hmac\n   * @description Create HmacMd5 object\n   * @param {String|Array|Uint8Array|ArrayBuffer} key key\n   * @returns {HmacMd5} HmacMd5 object.\n   * @example\n   * var hash = md5.hmac.create('key');\n   */\n  /**\n   * @method update\n   * @memberof md5.hmac\n   * @description Create and update HmacMd5 object\n   * @param {String|Array|Uint8Array|ArrayBuffer} key key\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {HmacMd5} HmacMd5 object.\n   * @example\n   * var hash = md5.hmac.update('key', 'The quick brown fox jumps over the lazy dog');\n   * // equal to\n   * var hash = md5.hmac.create('key');\n   * hash.update('The quick brown fox jumps over the lazy dog');\n   */\n  var createHmacMethod = function () {\n    var method = createHmacOutputMethod('hex');\n    method.create = function (key) {\n      return new HmacMd5(key);\n    };\n    method.update = function (key, message) {\n      return method.create(key).update(message);\n    };\n    for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n      var type = OUTPUT_TYPES[i];\n      method[type] = createHmacOutputMethod(type);\n    }\n    return method;\n  };\n\n  /**\n   * Md5 class\n   * @class Md5\n   * @description This is internal class.\n   * @see {@link md5.create}\n   */\n  function Md5(sharedMemory) {\n    if (sharedMemory) {\n      blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n      blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n      blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n      blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n      this.blocks = blocks;\n      this.buffer8 = buffer8;\n    } else {\n      if (ARRAY_BUFFER) {\n        var buffer = new ArrayBuffer(68);\n        this.buffer8 = new Uint8Array(buffer);\n        this.blocks = new Uint32Array(buffer);\n      } else {\n        this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n      }\n    }\n    this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0;\n    this.finalized = this.hashed = false;\n    this.first = true;\n  }\n\n  /**\n   * @method update\n   * @memberof Md5\n   * @instance\n   * @description Update hash\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {Md5} Md5 object.\n   * @see {@link md5.update}\n   */\n  Md5.prototype.update = function (message) {\n    if (this.finalized) {\n      throw new Error(FINALIZE_ERROR);\n    }\n\n    var result = formatMessage(message);\n    message = result[0];\n    var isString = result[1];\n    var code, index = 0, i, length = message.length, blocks = this.blocks;\n    var buffer8 = this.buffer8;\n\n    while (index < length) {\n      if (this.hashed) {\n        this.hashed = false;\n        blocks[0] = blocks[16];\n        blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n        blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n        blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n        blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n      }\n\n      if (isString) {\n        if (ARRAY_BUFFER) {\n          for (i = this.start; index < length && i < 64; ++index) {\n            code = message.charCodeAt(index);\n            if (code < 0x80) {\n              buffer8[i++] = code;\n            } else if (code < 0x800) {\n              buffer8[i++] = 0xc0 | (code >>> 6);\n              buffer8[i++] = 0x80 | (code & 0x3f);\n            } else if (code < 0xd800 || code >= 0xe000) {\n              buffer8[i++] = 0xe0 | (code >>> 12);\n              buffer8[i++] = 0x80 | ((code >>> 6) & 0x3f);\n              buffer8[i++] = 0x80 | (code & 0x3f);\n            } else {\n              code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n              buffer8[i++] = 0xf0 | (code >>> 18);\n              buffer8[i++] = 0x80 | ((code >>> 12) & 0x3f);\n              buffer8[i++] = 0x80 | ((code >>> 6) & 0x3f);\n              buffer8[i++] = 0x80 | (code & 0x3f);\n            }\n          }\n        } else {\n          for (i = this.start; index < length && i < 64; ++index) {\n            code = message.charCodeAt(index);\n            if (code < 0x80) {\n              blocks[i >>> 2] |= code << SHIFT[i++ & 3];\n            } else if (code < 0x800) {\n              blocks[i >>> 2] |= (0xc0 | (code >>> 6)) << SHIFT[i++ & 3];\n              blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n            } else if (code < 0xd800 || code >= 0xe000) {\n              blocks[i >>> 2] |= (0xe0 | (code >>> 12)) << SHIFT[i++ & 3];\n              blocks[i >>> 2] |= (0x80 | ((code >>> 6) & 0x3f)) << SHIFT[i++ & 3];\n              blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n            } else {\n              code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n              blocks[i >>> 2] |= (0xf0 | (code >>> 18)) << SHIFT[i++ & 3];\n              blocks[i >>> 2] |= (0x80 | ((code >>> 12) & 0x3f)) << SHIFT[i++ & 3];\n              blocks[i >>> 2] |= (0x80 | ((code >>> 6) & 0x3f)) << SHIFT[i++ & 3];\n              blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n            }\n          }\n        }\n      } else {\n        if (ARRAY_BUFFER) {\n          for (i = this.start; index < length && i < 64; ++index) {\n            buffer8[i++] = message[index];\n          }\n        } else {\n          for (i = this.start; index < length && i < 64; ++index) {\n            blocks[i >>> 2] |= message[index] << SHIFT[i++ & 3];\n          }\n        }\n      }\n      this.lastByteIndex = i;\n      this.bytes += i - this.start;\n      if (i >= 64) {\n        this.start = i - 64;\n        this.hash();\n        this.hashed = true;\n      } else {\n        this.start = i;\n      }\n    }\n    if (this.bytes > 4294967295) {\n      this.hBytes += this.bytes / 4294967296 << 0;\n      this.bytes = this.bytes % 4294967296;\n    }\n    return this;\n  };\n\n  Md5.prototype.finalize = function () {\n    if (this.finalized) {\n      return;\n    }\n    this.finalized = true;\n    var blocks = this.blocks, i = this.lastByteIndex;\n    blocks[i >>> 2] |= EXTRA[i & 3];\n    if (i >= 56) {\n      if (!this.hashed) {\n        this.hash();\n      }\n      blocks[0] = blocks[16];\n      blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n      blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n      blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n      blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n    }\n    blocks[14] = this.bytes << 3;\n    blocks[15] = this.hBytes << 3 | this.bytes >>> 29;\n    this.hash();\n  };\n\n  Md5.prototype.hash = function () {\n    var a, b, c, d, bc, da, blocks = this.blocks;\n\n    if (this.first) {\n      a = blocks[0] - 680876937;\n      a = (a << 7 | a >>> 25) - 271733879 << 0;\n      d = (-1732584194 ^ a & 2004318071) + blocks[1] - 117830708;\n      d = (d << 12 | d >>> 20) + a << 0;\n      c = (-271733879 ^ (d & (a ^ -271733879))) + blocks[2] - 1126478375;\n      c = (c << 17 | c >>> 15) + d << 0;\n      b = (a ^ (c & (d ^ a))) + blocks[3] - 1316259209;\n      b = (b << 22 | b >>> 10) + c << 0;\n    } else {\n      a = this.h0;\n      b = this.h1;\n      c = this.h2;\n      d = this.h3;\n      a += (d ^ (b & (c ^ d))) + blocks[0] - 680876936;\n      a = (a << 7 | a >>> 25) + b << 0;\n      d += (c ^ (a & (b ^ c))) + blocks[1] - 389564586;\n      d = (d << 12 | d >>> 20) + a << 0;\n      c += (b ^ (d & (a ^ b))) + blocks[2] + 606105819;\n      c = (c << 17 | c >>> 15) + d << 0;\n      b += (a ^ (c & (d ^ a))) + blocks[3] - 1044525330;\n      b = (b << 22 | b >>> 10) + c << 0;\n    }\n\n    a += (d ^ (b & (c ^ d))) + blocks[4] - 176418897;\n    a = (a << 7 | a >>> 25) + b << 0;\n    d += (c ^ (a & (b ^ c))) + blocks[5] + 1200080426;\n    d = (d << 12 | d >>> 20) + a << 0;\n    c += (b ^ (d & (a ^ b))) + blocks[6] - 1473231341;\n    c = (c << 17 | c >>> 15) + d << 0;\n    b += (a ^ (c & (d ^ a))) + blocks[7] - 45705983;\n    b = (b << 22 | b >>> 10) + c << 0;\n    a += (d ^ (b & (c ^ d))) + blocks[8] + 1770035416;\n    a = (a << 7 | a >>> 25) + b << 0;\n    d += (c ^ (a & (b ^ c))) + blocks[9] - 1958414417;\n    d = (d << 12 | d >>> 20) + a << 0;\n    c += (b ^ (d & (a ^ b))) + blocks[10] - 42063;\n    c = (c << 17 | c >>> 15) + d << 0;\n    b += (a ^ (c & (d ^ a))) + blocks[11] - 1990404162;\n    b = (b << 22 | b >>> 10) + c << 0;\n    a += (d ^ (b & (c ^ d))) + blocks[12] + 1804603682;\n    a = (a << 7 | a >>> 25) + b << 0;\n    d += (c ^ (a & (b ^ c))) + blocks[13] - 40341101;\n    d = (d << 12 | d >>> 20) + a << 0;\n    c += (b ^ (d & (a ^ b))) + blocks[14] - 1502002290;\n    c = (c << 17 | c >>> 15) + d << 0;\n    b += (a ^ (c & (d ^ a))) + blocks[15] + 1236535329;\n    b = (b << 22 | b >>> 10) + c << 0;\n    a += (c ^ (d & (b ^ c))) + blocks[1] - 165796510;\n    a = (a << 5 | a >>> 27) + b << 0;\n    d += (b ^ (c & (a ^ b))) + blocks[6] - 1069501632;\n    d = (d << 9 | d >>> 23) + a << 0;\n    c += (a ^ (b & (d ^ a))) + blocks[11] + 643717713;\n    c = (c << 14 | c >>> 18) + d << 0;\n    b += (d ^ (a & (c ^ d))) + blocks[0] - 373897302;\n    b = (b << 20 | b >>> 12) + c << 0;\n    a += (c ^ (d & (b ^ c))) + blocks[5] - 701558691;\n    a = (a << 5 | a >>> 27) + b << 0;\n    d += (b ^ (c & (a ^ b))) + blocks[10] + 38016083;\n    d = (d << 9 | d >>> 23) + a << 0;\n    c += (a ^ (b & (d ^ a))) + blocks[15] - 660478335;\n    c = (c << 14 | c >>> 18) + d << 0;\n    b += (d ^ (a & (c ^ d))) + blocks[4] - 405537848;\n    b = (b << 20 | b >>> 12) + c << 0;\n    a += (c ^ (d & (b ^ c))) + blocks[9] + 568446438;\n    a = (a << 5 | a >>> 27) + b << 0;\n    d += (b ^ (c & (a ^ b))) + blocks[14] - 1019803690;\n    d = (d << 9 | d >>> 23) + a << 0;\n    c += (a ^ (b & (d ^ a))) + blocks[3] - 187363961;\n    c = (c << 14 | c >>> 18) + d << 0;\n    b += (d ^ (a & (c ^ d))) + blocks[8] + 1163531501;\n    b = (b << 20 | b >>> 12) + c << 0;\n    a += (c ^ (d & (b ^ c))) + blocks[13] - 1444681467;\n    a = (a << 5 | a >>> 27) + b << 0;\n    d += (b ^ (c & (a ^ b))) + blocks[2] - 51403784;\n    d = (d << 9 | d >>> 23) + a << 0;\n    c += (a ^ (b & (d ^ a))) + blocks[7] + 1735328473;\n    c = (c << 14 | c >>> 18) + d << 0;\n    b += (d ^ (a & (c ^ d))) + blocks[12] - 1926607734;\n    b = (b << 20 | b >>> 12) + c << 0;\n    bc = b ^ c;\n    a += (bc ^ d) + blocks[5] - 378558;\n    a = (a << 4 | a >>> 28) + b << 0;\n    d += (bc ^ a) + blocks[8] - 2022574463;\n    d = (d << 11 | d >>> 21) + a << 0;\n    da = d ^ a;\n    c += (da ^ b) + blocks[11] + 1839030562;\n    c = (c << 16 | c >>> 16) + d << 0;\n    b += (da ^ c) + blocks[14] - 35309556;\n    b = (b << 23 | b >>> 9) + c << 0;\n    bc = b ^ c;\n    a += (bc ^ d) + blocks[1] - 1530992060;\n    a = (a << 4 | a >>> 28) + b << 0;\n    d += (bc ^ a) + blocks[4] + 1272893353;\n    d = (d << 11 | d >>> 21) + a << 0;\n    da = d ^ a;\n    c += (da ^ b) + blocks[7] - 155497632;\n    c = (c << 16 | c >>> 16) + d << 0;\n    b += (da ^ c) + blocks[10] - 1094730640;\n    b = (b << 23 | b >>> 9) + c << 0;\n    bc = b ^ c;\n    a += (bc ^ d) + blocks[13] + 681279174;\n    a = (a << 4 | a >>> 28) + b << 0;\n    d += (bc ^ a) + blocks[0] - 358537222;\n    d = (d << 11 | d >>> 21) + a << 0;\n    da = d ^ a;\n    c += (da ^ b) + blocks[3] - 722521979;\n    c = (c << 16 | c >>> 16) + d << 0;\n    b += (da ^ c) + blocks[6] + 76029189;\n    b = (b << 23 | b >>> 9) + c << 0;\n    bc = b ^ c;\n    a += (bc ^ d) + blocks[9] - 640364487;\n    a = (a << 4 | a >>> 28) + b << 0;\n    d += (bc ^ a) + blocks[12] - 421815835;\n    d = (d << 11 | d >>> 21) + a << 0;\n    da = d ^ a;\n    c += (da ^ b) + blocks[15] + 530742520;\n    c = (c << 16 | c >>> 16) + d << 0;\n    b += (da ^ c) + blocks[2] - 995338651;\n    b = (b << 23 | b >>> 9) + c << 0;\n    a += (c ^ (b | ~d)) + blocks[0] - 198630844;\n    a = (a << 6 | a >>> 26) + b << 0;\n    d += (b ^ (a | ~c)) + blocks[7] + 1126891415;\n    d = (d << 10 | d >>> 22) + a << 0;\n    c += (a ^ (d | ~b)) + blocks[14] - 1416354905;\n    c = (c << 15 | c >>> 17) + d << 0;\n    b += (d ^ (c | ~a)) + blocks[5] - 57434055;\n    b = (b << 21 | b >>> 11) + c << 0;\n    a += (c ^ (b | ~d)) + blocks[12] + 1700485571;\n    a = (a << 6 | a >>> 26) + b << 0;\n    d += (b ^ (a | ~c)) + blocks[3] - 1894986606;\n    d = (d << 10 | d >>> 22) + a << 0;\n    c += (a ^ (d | ~b)) + blocks[10] - 1051523;\n    c = (c << 15 | c >>> 17) + d << 0;\n    b += (d ^ (c | ~a)) + blocks[1] - 2054922799;\n    b = (b << 21 | b >>> 11) + c << 0;\n    a += (c ^ (b | ~d)) + blocks[8] + 1873313359;\n    a = (a << 6 | a >>> 26) + b << 0;\n    d += (b ^ (a | ~c)) + blocks[15] - 30611744;\n    d = (d << 10 | d >>> 22) + a << 0;\n    c += (a ^ (d | ~b)) + blocks[6] - 1560198380;\n    c = (c << 15 | c >>> 17) + d << 0;\n    b += (d ^ (c | ~a)) + blocks[13] + 1309151649;\n    b = (b << 21 | b >>> 11) + c << 0;\n    a += (c ^ (b | ~d)) + blocks[4] - 145523070;\n    a = (a << 6 | a >>> 26) + b << 0;\n    d += (b ^ (a | ~c)) + blocks[11] - 1120210379;\n    d = (d << 10 | d >>> 22) + a << 0;\n    c += (a ^ (d | ~b)) + blocks[2] + 718787259;\n    c = (c << 15 | c >>> 17) + d << 0;\n    b += (d ^ (c | ~a)) + blocks[9] - 343485551;\n    b = (b << 21 | b >>> 11) + c << 0;\n\n    if (this.first) {\n      this.h0 = a + 1732584193 << 0;\n      this.h1 = b - 271733879 << 0;\n      this.h2 = c - 1732584194 << 0;\n      this.h3 = d + 271733878 << 0;\n      this.first = false;\n    } else {\n      this.h0 = this.h0 + a << 0;\n      this.h1 = this.h1 + b << 0;\n      this.h2 = this.h2 + c << 0;\n      this.h3 = this.h3 + d << 0;\n    }\n  };\n\n  /**\n   * @method hex\n   * @memberof Md5\n   * @instance\n   * @description Output hash as hex string\n   * @returns {String} Hex string\n   * @see {@link md5.hex}\n   * @example\n   * hash.hex();\n   */\n  Md5.prototype.hex = function () {\n    this.finalize();\n\n    var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3;\n\n    return HEX_CHARS[(h0 >>> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n      HEX_CHARS[(h0 >>> 12) & 0x0F] + HEX_CHARS[(h0 >>> 8) & 0x0F] +\n      HEX_CHARS[(h0 >>> 20) & 0x0F] + HEX_CHARS[(h0 >>> 16) & 0x0F] +\n      HEX_CHARS[(h0 >>> 28) & 0x0F] + HEX_CHARS[(h0 >>> 24) & 0x0F] +\n      HEX_CHARS[(h1 >>> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n      HEX_CHARS[(h1 >>> 12) & 0x0F] + HEX_CHARS[(h1 >>> 8) & 0x0F] +\n      HEX_CHARS[(h1 >>> 20) & 0x0F] + HEX_CHARS[(h1 >>> 16) & 0x0F] +\n      HEX_CHARS[(h1 >>> 28) & 0x0F] + HEX_CHARS[(h1 >>> 24) & 0x0F] +\n      HEX_CHARS[(h2 >>> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n      HEX_CHARS[(h2 >>> 12) & 0x0F] + HEX_CHARS[(h2 >>> 8) & 0x0F] +\n      HEX_CHARS[(h2 >>> 20) & 0x0F] + HEX_CHARS[(h2 >>> 16) & 0x0F] +\n      HEX_CHARS[(h2 >>> 28) & 0x0F] + HEX_CHARS[(h2 >>> 24) & 0x0F] +\n      HEX_CHARS[(h3 >>> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n      HEX_CHARS[(h3 >>> 12) & 0x0F] + HEX_CHARS[(h3 >>> 8) & 0x0F] +\n      HEX_CHARS[(h3 >>> 20) & 0x0F] + HEX_CHARS[(h3 >>> 16) & 0x0F] +\n      HEX_CHARS[(h3 >>> 28) & 0x0F] + HEX_CHARS[(h3 >>> 24) & 0x0F];\n  };\n\n  /**\n   * @method toString\n   * @memberof Md5\n   * @instance\n   * @description Output hash as hex string\n   * @returns {String} Hex string\n   * @see {@link md5.hex}\n   * @example\n   * hash.toString();\n   */\n  Md5.prototype.toString = Md5.prototype.hex;\n\n  /**\n   * @method digest\n   * @memberof Md5\n   * @instance\n   * @description Output hash as bytes array\n   * @returns {Array} Bytes array\n   * @see {@link md5.digest}\n   * @example\n   * hash.digest();\n   */\n  Md5.prototype.digest = function () {\n    this.finalize();\n\n    var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3;\n    return [\n      h0 & 0xFF, (h0 >>> 8) & 0xFF, (h0 >>> 16) & 0xFF, (h0 >>> 24) & 0xFF,\n      h1 & 0xFF, (h1 >>> 8) & 0xFF, (h1 >>> 16) & 0xFF, (h1 >>> 24) & 0xFF,\n      h2 & 0xFF, (h2 >>> 8) & 0xFF, (h2 >>> 16) & 0xFF, (h2 >>> 24) & 0xFF,\n      h3 & 0xFF, (h3 >>> 8) & 0xFF, (h3 >>> 16) & 0xFF, (h3 >>> 24) & 0xFF\n    ];\n  };\n\n  /**\n   * @method array\n   * @memberof Md5\n   * @instance\n   * @description Output hash as bytes array\n   * @returns {Array} Bytes array\n   * @see {@link md5.array}\n   * @example\n   * hash.array();\n   */\n  Md5.prototype.array = Md5.prototype.digest;\n\n  /**\n   * @method arrayBuffer\n   * @memberof Md5\n   * @instance\n   * @description Output hash as ArrayBuffer\n   * @returns {ArrayBuffer} ArrayBuffer\n   * @see {@link md5.arrayBuffer}\n   * @example\n   * hash.arrayBuffer();\n   */\n  Md5.prototype.arrayBuffer = function () {\n    this.finalize();\n\n    var buffer = new ArrayBuffer(16);\n    var blocks = new Uint32Array(buffer);\n    blocks[0] = this.h0;\n    blocks[1] = this.h1;\n    blocks[2] = this.h2;\n    blocks[3] = this.h3;\n    return buffer;\n  };\n\n  /**\n   * @method buffer\n   * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.\n   * @memberof Md5\n   * @instance\n   * @description Output hash as ArrayBuffer\n   * @returns {ArrayBuffer} ArrayBuffer\n   * @see {@link md5.buffer}\n   * @example\n   * hash.buffer();\n   */\n  Md5.prototype.buffer = Md5.prototype.arrayBuffer;\n\n  /**\n   * @method base64\n   * @memberof Md5\n   * @instance\n   * @description Output hash as base64 string\n   * @returns {String} base64 string\n   * @see {@link md5.base64}\n   * @example\n   * hash.base64();\n   */\n  Md5.prototype.base64 = function () {\n    var v1, v2, v3, base64Str = '', bytes = this.array();\n    for (var i = 0; i < 15;) {\n      v1 = bytes[i++];\n      v2 = bytes[i++];\n      v3 = bytes[i++];\n      base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] +\n        BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] +\n        BASE64_ENCODE_CHAR[(v2 << 2 | v3 >>> 6) & 63] +\n        BASE64_ENCODE_CHAR[v3 & 63];\n    }\n    v1 = bytes[i];\n    base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] +\n      BASE64_ENCODE_CHAR[(v1 << 4) & 63] +\n      '==';\n    return base64Str;\n  };\n\n  /**\n   * HmacMd5 class\n   * @class HmacMd5\n   * @extends Md5\n   * @description This is internal class.\n   * @see {@link md5.hmac.create}\n   */\n  function HmacMd5(key, sharedMemory) {\n    var i, result = formatMessage(key);\n    key = result[0];\n    if (result[1]) {\n      var bytes = [], length = key.length, index = 0, code;\n      for (i = 0; i < length; ++i) {\n        code = key.charCodeAt(i);\n        if (code < 0x80) {\n          bytes[index++] = code;\n        } else if (code < 0x800) {\n          bytes[index++] = (0xc0 | (code >>> 6));\n          bytes[index++] = (0x80 | (code & 0x3f));\n        } else if (code < 0xd800 || code >= 0xe000) {\n          bytes[index++] = (0xe0 | (code >>> 12));\n          bytes[index++] = (0x80 | ((code >>> 6) & 0x3f));\n          bytes[index++] = (0x80 | (code & 0x3f));\n        } else {\n          code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n          bytes[index++] = (0xf0 | (code >>> 18));\n          bytes[index++] = (0x80 | ((code >>> 12) & 0x3f));\n          bytes[index++] = (0x80 | ((code >>> 6) & 0x3f));\n          bytes[index++] = (0x80 | (code & 0x3f));\n        }\n      }\n      key = bytes;\n    }\n\n    if (key.length > 64) {\n      key = (new Md5(true)).update(key).array();\n    }\n\n    var oKeyPad = [], iKeyPad = [];\n    for (i = 0; i < 64; ++i) {\n      var b = key[i] || 0;\n      oKeyPad[i] = 0x5c ^ b;\n      iKeyPad[i] = 0x36 ^ b;\n    }\n\n    Md5.call(this, sharedMemory);\n\n    this.update(iKeyPad);\n    this.oKeyPad = oKeyPad;\n    this.inner = true;\n    this.sharedMemory = sharedMemory;\n  }\n  HmacMd5.prototype = new Md5();\n\n  HmacMd5.prototype.finalize = function () {\n    Md5.prototype.finalize.call(this);\n    if (this.inner) {\n      this.inner = false;\n      var innerHash = this.array();\n      Md5.call(this, this.sharedMemory);\n      this.update(this.oKeyPad);\n      this.update(innerHash);\n      Md5.prototype.finalize.call(this);\n    }\n  };\n\n  var exports = createMethod();\n  exports.md5 = exports;\n  exports.md5.hmac = createHmacMethod();\n\n  if (COMMON_JS) {\n    module.exports = exports;\n  } else {\n    /**\n     * @method md5\b\n     * @description Md5 hash function, export to global in browsers.\n     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n     * @returns {String} md5 hashes\n     * @example\n     * md5(''); // d41d8cd98f00b204e9800998ecf8427e\n     * md5('The quick brown fox jumps over the lazy dog'); // 9e107d9d372bb6826bd81d3542a419d6\n     * md5('The quick brown fox jumps over the lazy dog.'); // e4d909c290d0fb1ca068ffaddf22cbd0\n     *\n     * // It also supports UTF-8 encoding\n     * md5('中文'); // a7bac2239fcdcb3a067903d8077c4a07\n     *\n     * // It also supports byte `Array`, `Uint8Array`, `ArrayBuffer`\n     * md5([]); // d41d8cd98f00b204e9800998ecf8427e\n     * md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e\n     */\n    root.md5 = exports;\n    if (AMD) {\n      !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n        return exports;\n      }).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n    }\n  }\n})();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node-libs-browser/mock/process.js */ \"./node_modules/node-libs-browser/mock/process.js\"), __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/js-md5/src/md5.js?");

/***/ }),

/***/ "./node_modules/jszip/dist/jszip.min.js":
/*!**********************************************!*\
  !*** ./node_modules/jszip/dist/jszip.min.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(Buffer, global, process) {var require;var require;/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(true)module.exports=e();else {}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return require(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){\"use strict\";var d=e(\"./utils\"),c=e(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c=\"string\"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u=\"data:\";if(e.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,\"\")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r<t;r++)n+=String.fromCharCode(255&e),e>>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var r=this.bytesWritten-e,n=function(e,t,r,n,i){var s=I.transformTo(\"string\",i(n));return R.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+A(e,2)+A(e,2)+A(t,4)+A(r,4)+A(s.length,2)+s}(this.dirRecords.length,r,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}})},s.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},s.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()}),e.on(\"error\",function(e){t.error(e)}),this},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},s.prototype.error=function(e){var t=this._sources;if(!i.prototype.error.call(this,e))return!1;for(var r=0;r<t.length;r++)try{t[r].error(e)}catch(e){}return!0},s.prototype.lock=function(){i.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()},t.exports=s},{\"../crc32\":4,\"../signature\":23,\"../stream/GenericWorker\":28,\"../utf8\":31,\"../utils\":32}],9:[function(e,t,r){\"use strict\";var u=e(\"../compressions\"),n=e(\"./ZipFileWorker\");r.generateWorker=function(e,a,t){var o=new n(a.streamFiles,t,a.platform,a.encodeFileName),h=0;try{e.forEach(function(e,t){h++;var r=function(e,t){var r=e||t,n=u[r];if(!n)throw new Error(r+\" is not a valid compression method !\");return n}(t.options.compression,a.compression),n=t.options.compressionOptions||a.compressionOptions||{},i=t.dir,s=t.date;t._compressWorker(r,n).withStreamInfo(\"file\",{name:e,dir:i,date:s,comment:t.comment||\"\",unixPermissions:t.unixPermissions,dosPermissions:t.dosPermissions}).pipe(o)}),o.entriesCount=h}catch(e){o.error(e)}return o}},{\"../compressions\":3,\"./ZipFileWorker\":8}],10:[function(e,t,r){\"use strict\";function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error(\"The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.\");this.files=Object.create(null),this.comment=null,this.root=\"\",this.clone=function(){var e=new n;for(var t in this)\"function\"!=typeof this[t]&&(e[t]=this[t]);return e}}(n.prototype=e(\"./object\")).loadAsync=e(\"./load\"),n.support=e(\"./support\"),n.defaults=e(\"./defaults\"),n.version=\"3.10.1\",n.loadAsync=function(e,t){return(new n).loadAsync(e,t)},n.external=e(\"./external\"),t.exports=n},{\"./defaults\":5,\"./external\":6,\"./load\":11,\"./object\":15,\"./support\":30}],11:[function(e,t,r){\"use strict\";var u=e(\"./utils\"),i=e(\"./external\"),n=e(\"./utf8\"),s=e(\"./zipEntries\"),a=e(\"./stream/Crc32Probe\"),l=e(\"./nodejsUtils\");function f(n){return new i.Promise(function(e,t){var r=n.decompressed.getContentWorker().pipe(new a);r.on(\"error\",function(e){t(e)}).on(\"end\",function(){r.streamInfo.crc32!==n.decompressed.crc32?t(new Error(\"Corrupted zip : CRC32 mismatch\")):e()}).resume()})}t.exports=function(e,o){var h=this;return o=u.extend(o||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:n.utf8decode}),l.isNode&&l.isStream(e)?i.Promise.reject(new Error(\"JSZip can't accept a stream when loading a zip file.\")):u.prepareContent(\"the loaded zip file\",e,!0,o.optimizedBinaryString,o.base64).then(function(e){var t=new s(o);return t.load(e),t}).then(function(e){var t=[i.Promise.resolve(e)],r=e.files;if(o.checkCRC32)for(var n=0;n<r.length;n++)t.push(f(r[n]));return i.Promise.all(t)}).then(function(e){for(var t=e.shift(),r=t.files,n=0;n<r.length;n++){var i=r[n],s=i.fileNameStr,a=u.resolve(i.fileNameStr);h.file(a,i.decompressed,{binary:!0,optimizedBinaryString:!0,date:i.date,dir:i.dir,comment:i.fileCommentStr.length?i.fileCommentStr:null,unixPermissions:i.unixPermissions,dosPermissions:i.dosPermissions,createFolders:o.createFolders}),i.dir||(h.file(a).unsafeOriginalName=s)}return t.zipComment.length&&(h.comment=t.zipComment),h})}},{\"./external\":6,\"./nodejsUtils\":14,\"./stream/Crc32Probe\":25,\"./utf8\":31,\"./utils\":32,\"./zipEntries\":33}],12:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../stream/GenericWorker\");function s(e,t){i.call(this,\"Nodejs stream input adapter for \"+e),this._upstreamEnded=!1,this._bindStream(t)}n.inherits(s,i),s.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on(\"data\",function(e){t.push({data:e,meta:{percent:0}})}).on(\"error\",function(e){t.isPaused?this.generatedError=e:t.error(e)}).on(\"end\",function(){t.isPaused?t._upstreamEnded=!0:t.end()})},s.prototype.pause=function(){return!!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s},{\"../stream/GenericWorker\":28,\"../utils\":32}],13:[function(e,t,r){\"use strict\";var i=e(\"readable-stream\").Readable;function n(e,t,r){i.call(this,t),this._helper=e;var n=this;e.on(\"data\",function(e,t){n.push(e)||n._helper.pause(),r&&r(t)}).on(\"error\",function(e){n.emit(\"error\",e)}).on(\"end\",function(){n.push(null)})}e(\"../utils\").inherits(n,i),n.prototype._read=function(){this._helper.resume()},t.exports=n},{\"../utils\":32,\"readable-stream\":16}],14:[function(e,t,r){\"use strict\";t.exports={isNode:\"undefined\"!=typeof Buffer,newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if(\"number\"==typeof e)throw new Error('The \"data\" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&\"function\"==typeof e.on&&\"function\"==typeof e.pause&&\"function\"==typeof e.resume}}},{}],15:[function(e,t,r){\"use strict\";function s(e,t,r){var n,i=u.getTypeOf(t),s=u.extend(r||{},f);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),\"string\"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(e=g(e)),s.createFolders&&(n=_(e))&&b.call(this,n,!0);var a=\"string\"===i&&!1===s.binary&&!1===s.base64;r&&void 0!==r.binary||(s.binary=!a),(t instanceof c&&0===t.uncompressedSize||s.dir||!t||0===t.length)&&(s.base64=!1,s.binary=!0,t=\"\",s.compression=\"STORE\",i=\"string\");var o=null;o=t instanceof c||t instanceof l?t:p.isNode&&p.isStream(t)?new m(e,t):u.prepareContent(e,t,s.binary,s.optimizedBinaryString,s.base64);var h=new d(e,o,s);this.files[e]=h}var i=e(\"./utf8\"),u=e(\"./utils\"),l=e(\"./stream/GenericWorker\"),a=e(\"./stream/StreamHelper\"),f=e(\"./defaults\"),c=e(\"./compressedObject\"),d=e(\"./zipObject\"),o=e(\"./generate\"),p=e(\"./nodejsUtils\"),m=e(\"./nodejs/NodejsStreamInputAdapter\"),_=function(e){\"/\"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf(\"/\");return 0<t?e.substring(0,t):\"\"},g=function(e){return\"/\"!==e.slice(-1)&&(e+=\"/\"),e},b=function(e,t){return t=void 0!==t?t:f.createFolders,e=g(e),this.files[e]||s.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function h(e){return\"[object RegExp]\"===Object.prototype.toString.call(e)}var n={load:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},forEach:function(e){var t,r,n;for(t in this.files)n=this.files[t],(r=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(r,n)},filter:function(r){var n=[];return this.forEach(function(e,t){r(e,t)&&n.push(t)}),n},file:function(e,t,r){if(1!==arguments.length)return e=this.root+e,s.call(this,e,t,r),this;if(h(e)){var n=e;return this.filter(function(e,t){return!t.dir&&n.test(e)})}var i=this.files[this.root+e];return i&&!i.dir?i:null},folder:function(r){if(!r)return this;if(h(r))return this.filter(function(e,t){return t.dir&&r.test(e)});var e=this.root+r,t=b.call(this,e),n=this.clone();return n.root=t.name,n},remove:function(r){r=this.root+r;var e=this.files[r];if(e||(\"/\"!==r.slice(-1)&&(r+=\"/\"),e=this.files[r]),e&&!e.dir)delete this.files[r];else for(var t=this.filter(function(e,t){return t.name.slice(0,r.length)===r}),n=0;n<t.length;n++)delete this.files[t[n].name];return this},generate:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},generateInternalStream:function(e){var t,r={};try{if((r=u.extend(e||{},{streamFiles:!1,compression:\"STORE\",compressionOptions:null,type:\"\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:i.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),\"binarystring\"===r.type&&(r.type=\"string\"),!r.type)throw new Error(\"No output type specified.\");u.checkSupport(r.type),\"darwin\"!==r.platform&&\"freebsd\"!==r.platform&&\"linux\"!==r.platform&&\"sunos\"!==r.platform||(r.platform=\"UNIX\"),\"win32\"===r.platform&&(r.platform=\"DOS\");var n=r.comment||this.comment||\"\";t=o.generateWorker(this,r,n)}catch(e){(t=new l(\"error\")).error(e)}return new a(t,r.type||\"string\",r.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return(e=e||{}).type||(e.type=\"nodebuffer\"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=n},{\"./compressedObject\":2,\"./defaults\":5,\"./generate\":9,\"./nodejs/NodejsStreamInputAdapter\":12,\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31,\"./utils\":32,\"./zipObject\":35}],16:[function(e,t,r){\"use strict\";t.exports=e(\"stream\")},{stream:void 0}],17:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t]}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data[this.zero+e]},i.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===t&&this.data[s+1]===r&&this.data[s+2]===n&&this.data[s+3]===i)return s-this.zero;return-1},i.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.readData(4);return t===s[0]&&r===s[1]&&n===s[2]&&i===s[3]},i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],18:[function(e,t,r){\"use strict\";var n=e(\"../utils\");function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+e+\"). Corrupted zip ?\")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t,r=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r<this._listeners[e].length;r++)this._listeners[e][r].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.end()}),e.on(\"error\",function(e){t.error(e)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e=\"Worker \"+this.name;return this.previous?this.previous+\" -> \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r<t.length;r++)s+=t[r].length;switch(e){case\"string\":return t.join(\"\");case\"array\":return Array.prototype.concat.apply([],t);case\"uint8array\":for(i=new Uint8Array(s),r=0;r<t.length;r++)i.set(t[r],n),n+=t[r].length;return i;case\"nodebuffer\":return Buffer.concat(t);default:throw new Error(\"concat : unsupported type '\"+e+\"'\")}}(i,n),a);t(e)}catch(e){r(e)}n=[]}).resume()})}function f(e,t,r){var n=t;switch(t){case\"blob\":case\"arraybuffer\":n=\"uint8array\";break;case\"base64\":n=\"string\"}try{this._internalType=n,this._outputType=t,this._mimeType=r,h.checkSupport(n),this._worker=e.pipe(new i(n)),e.lock()}catch(e){this._worker=new s(\"error\"),this._worker.error(e)}}f.prototype={accumulate:function(e){return l(this,e)},on:function(e,t){var r=this;return\"data\"===e?this._worker.on(e,function(e){t.call(r,e.data,e.meta)}):this._worker.on(e,function(){h.delay(t,arguments,r)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(h.checkSupport(\"nodestream\"),\"nodebuffer\"!==this._outputType)throw new Error(this._outputType+\" is not supported by this method\");return new o(this,{objectMode:\"nodebuffer\"!==this._outputType},e)}},t.exports=f},{\"../base64\":1,\"../external\":6,\"../nodejs/NodejsStreamOutputAdapter\":13,\"../support\":30,\"../utils\":32,\"./ConvertWorker\":24,\"./GenericWorker\":28}],30:[function(e,t,r){\"use strict\";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,r.nodebuffer=\"undefined\"!=typeof Buffer,r.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)r.blob=!1;else{var n=new ArrayBuffer(0);try{r.blob=0===new Blob([n],{type:\"application/zip\"}).size}catch(e){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(n),r.blob=0===i.getBlob(\"application/zip\").size}catch(e){r.blob=!1}}}try{r.nodestream=!!e(\"readable-stream\").Readable}catch(e){r.nodestream=!1}},{\"readable-stream\":16}],31:[function(e,t,s){\"use strict\";for(var o=e(\"./utils\"),h=e(\"./support\"),r=e(\"./nodejsUtils\"),n=e(\"./stream/GenericWorker\"),u=new Array(256),i=0;i<256;i++)u[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;u[254]=u[254]=1;function a(){n.call(this,\"utf-8 decode\"),this.leftOver=null}function l(){n.call(this,\"utf-8 encode\")}s.utf8encode=function(e){return h.nodebuffer?r.newBufferFrom(e,\"utf-8\"):function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=h.uint8array?new Uint8Array(o):new Array(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t<s;)if((n=e[t++])<128)a[r++]=n;else if(4<(i=u[n]))a[r++]=65533,t+=i-1;else{for(n&=2===i?31:3===i?15:7;1<i&&t<s;)n=n<<6|63&e[t++],i--;1<i?a[r++]=65533:n<65536?a[r++]=n:(n-=65536,a[r++]=55296|n>>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r<e.length;++r)t[r]=255&e.charCodeAt(r);return t}e(\"setimmediate\"),a.newBlob=function(t,r){a.checkSupport(\"blob\");try{return new Blob([t],{type:r})}catch(e){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(t),n.getBlob(r)}catch(e){throw new Error(\"Bug : can't construct the Blob.\")}}};var i={stringifyByChunk:function(e,t,r){var n=[],i=0,s=e.length;if(s<=r)return String.fromCharCode.apply(null,e);for(;i<s;)\"array\"===t||\"nodebuffer\"===t?n.push(String.fromCharCode.apply(null,e.slice(i,Math.min(i+r,s)))):n.push(String.fromCharCode.apply(null,e.subarray(i,Math.min(i+r,s)))),i+=r;return n.join(\"\")},stringifyByChar:function(e){for(var t=\"\",r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},applyCanBeUsed:{uint8array:function(){try{return o.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return!1}}(),nodebuffer:function(){try{return o.nodebuffer&&1===String.fromCharCode.apply(null,r.allocBuffer(1)).length}catch(e){return!1}}()}};function s(e){var t=65536,r=a.getTypeOf(e),n=!0;if(\"uint8array\"===r?n=i.applyCanBeUsed.uint8array:\"nodebuffer\"===r&&(n=i.applyCanBeUsed.nodebuffer),n)for(;1<t;)try{return i.stringifyByChunk(e,r,t)}catch(e){t=Math.floor(t/2)}return i.stringifyByChar(e)}function f(e,t){for(var r=0;r<e.length;r++)t[r]=e[r];return t}a.applyFromCharCode=s;var c={};c.string={string:n,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return c.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,r.allocBuffer(e.length))}},c.array={string:s,array:n,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(e)}},c.arraybuffer={string:function(e){return s(new Uint8Array(e))},array:function(e){return f(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:n,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(new Uint8Array(e))}},c.uint8array={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:n,nodebuffer:function(e){return r.newBufferFrom(e)}},c.nodebuffer={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return c.nodebuffer.uint8array(e).buffer},uint8array:function(e){return f(e,new Uint8Array(e.length))},nodebuffer:n},a.transformTo=function(e,t){if(t=t||\"\",!e)return t;a.checkSupport(e);var r=a.getTypeOf(t);return c[r][e](t)},a.resolve=function(e){for(var t=e.split(\"/\"),r=[],n=0;n<t.length;n++){var i=t[n];\".\"===i||\"\"===i&&0!==n&&n!==t.length-1||(\"..\"===i?r.pop():r.push(i))}return r.join(\"/\")},a.getTypeOf=function(e){return\"string\"==typeof e?\"string\":\"[object Array]\"===Object.prototype.toString.call(e)?\"array\":o.nodebuffer&&r.isBuffer(e)?\"nodebuffer\":o.uint8array&&e instanceof Uint8Array?\"uint8array\":o.arraybuffer&&e instanceof ArrayBuffer?\"arraybuffer\":void 0},a.checkSupport=function(e){if(!o[e.toLowerCase()])throw new Error(e+\" is not supported by this platform\")},a.MAX_VALUE_16BITS=65535,a.MAX_VALUE_32BITS=-1,a.pretty=function(e){var t,r,n=\"\";for(r=0;r<(e||\"\").length;r++)n+=\"\\\\x\"+((t=e.charCodeAt(r))<16?\"0\":\"\")+t.toString(16).toUpperCase();return n},a.delay=function(e,t,r){setImmediate(function(){e.apply(r||null,t||[])})},a.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.prototype=new r},a.extend=function(){var e,t,r={};for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&void 0===r[t]&&(r[t]=arguments[e][t]);return r},a.prepareContent=function(r,e,n,i,s){return u.Promise.resolve(e).then(function(n){return o.blob&&(n instanceof Blob||-1!==[\"[object File]\",\"[object Blob]\"].indexOf(Object.prototype.toString.call(n)))&&\"undefined\"!=typeof FileReader?new u.Promise(function(t,r){var e=new FileReader;e.onload=function(e){t(e.target.result)},e.onerror=function(e){r(e.target.error)},e.readAsArrayBuffer(n)}):n}).then(function(e){var t=a.getTypeOf(e);return t?(\"arraybuffer\"===t?e=a.transformTo(\"uint8array\",e):\"string\"===t&&(s?e=h.decode(e):n&&!0!==i&&(e=function(e){return l(e,o.uint8array?new Uint8Array(e.length):new Array(e.length))}(e))),e):u.Promise.reject(new Error(\"Can't read the data of '\"+r+\"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\"))})}},{\"./base64\":1,\"./external\":6,\"./nodejsUtils\":14,\"./support\":30,setimmediate:54}],33:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),i=e(\"./utils\"),s=e(\"./signature\"),a=e(\"./zipEntry\"),o=e(\"./support\");function h(e){this.files=[],this.loadOptions=e}h.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error(\"Corrupted zip or bug: unexpected signature (\"+i.pretty(t)+\", expected \"+i.pretty(e)+\")\")}},isSignature:function(e,t){var r=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4)===t;return this.reader.setIndex(r),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=o.uint8array?\"uint8array\":\"array\",r=i.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,r,n=this.zip64EndOfCentralSize-44;0<n;)e=this.reader.readInt(2),t=this.reader.readInt(4),r=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(e=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(e<0)throw!this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error(\"Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html\"):new Error(\"Corrupted zip: can't find end of central directory\");this.reader.setIndex(e);var t=e;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(e),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var n=t-r;if(0<n)this.isSignature(t,s.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(n)+\" bytes.\")},prepareReader:function(e){this.reader=n(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=h},{\"./reader/readerFor\":22,\"./signature\":23,\"./support\":30,\"./utils\":32,\"./zipEntry\":34}],34:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),s=e(\"./utils\"),i=e(\"./compressedObject\"),a=e(\"./crc32\"),o=e(\"./utf8\"),h=e(\"./compressions\"),u=e(\"./support\");function l(e,t){this.options=e,this.loadOptions=t}l.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error(\"Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)\");if(null===(t=function(e){for(var t in h)if(Object.prototype.hasOwnProperty.call(h,t)&&h[t].magic===e)return h[t];return null}(this.compressionMethod)))throw new Error(\"Corrupted zip : compression \"+s.pretty(this.compressionMethod)+\" unknown (inner file : \"+s.transformTo(\"string\",this.fileName)+\")\");this.decompressed=new i(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<i;)t=e.readInt(2),r=e.readInt(2),n=e.readData(r),this.extraFields[t]={id:t,length:r,value:n};e.setIndex(i)},handleUTF8:function(){var e=u.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else{var r=s.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var n=this.findExtraFieldUnicodeComment();if(null!==n)this.fileCommentStr=n;else{var i=s.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(i)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileName)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileComment)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null}},t.exports=l},{\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./reader/readerFor\":22,\"./support\":30,\"./utf8\":31,\"./utils\":32}],35:[function(e,t,r){\"use strict\";function n(e,t,r){this.name=e,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=t,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}}var s=e(\"./stream/StreamHelper\"),i=e(\"./stream/DataWorker\"),a=e(\"./utf8\"),o=e(\"./compressedObject\"),h=e(\"./stream/GenericWorker\");n.prototype={internalStream:function(e){var t=null,r=\"string\";try{if(!e)throw new Error(\"No output type specified.\");var n=\"string\"===(r=e.toLowerCase())||\"text\"===r;\"binarystring\"!==r&&\"text\"!==r||(r=\"string\"),t=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(t=t.pipe(new a.Utf8EncodeWorker)),!i&&n&&(t=t.pipe(new a.Utf8DecodeWorker))}catch(e){(t=new h(\"error\")).error(e)}return new s(t,r,\"\")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||\"nodebuffer\").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof o&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,e,t)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof h?this._data:new i(this._data)}};for(var u=[\"asText\",\"asBinary\",\"asNodeBuffer\",\"asUint8Array\",\"asArrayBuffer\"],l=function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},f=0;f<u.length;f++)n.prototype[u[f]]=l;t.exports=n},{\"./compressedObject\":2,\"./stream/DataWorker\":27,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31}],36:[function(e,l,t){(function(t){\"use strict\";var r,n,e=t.MutationObserver||t.WebKitMutationObserver;if(e){var i=0,s=new e(u),a=t.document.createTextNode(\"\");s.observe(a,{characterData:!0}),r=function(){a.data=i=++i%2}}else if(t.setImmediate||void 0===t.MessageChannel)r=\"document\"in t&&\"onreadystatechange\"in t.document.createElement(\"script\")?function(){var e=t.document.createElement(\"script\");e.onreadystatechange=function(){u(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(u,0)};else{var o=new t.MessageChannel;o.port1.onmessage=u,r=function(){o.port2.postMessage(0)}}var h=[];function u(){var e,t;n=!0;for(var r=h.length;r;){for(t=h,h=[],e=-1;++e<r;)t[e]();r=h.length}n=!1}l.exports=function(e){1!==h.push(e)||n||r()}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],37:[function(e,t,r){\"use strict\";var i=e(\"immediate\");function u(){}var l={},s=[\"REJECTED\"],a=[\"FULFILLED\"],n=[\"PENDING\"];function o(e){if(\"function\"!=typeof e)throw new TypeError(\"resolver must be a function\");this.state=n,this.queue=[],this.outcome=void 0,e!==u&&d(this,e)}function h(e,t,r){this.promise=e,\"function\"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(t,r,n){i(function(){var e;try{e=r(n)}catch(e){return l.reject(t,e)}e===t?l.reject(t,new TypeError(\"Cannot resolve promise with itself\")):l.resolve(t,e)})}function c(e){var t=e&&e.then;if(e&&(\"object\"==typeof e||\"function\"==typeof e)&&\"function\"==typeof t)return function(){t.apply(e,arguments)}}function d(t,e){var r=!1;function n(e){r||(r=!0,l.reject(t,e))}function i(e){r||(r=!0,l.resolve(t,e))}var s=p(function(){e(i,n)});\"error\"===s.status&&n(s.value)}function p(e,t){var r={};try{r.value=e(t),r.status=\"success\"}catch(e){r.status=\"error\",r.value=e}return r}(t.exports=o).prototype.finally=function(t){if(\"function\"!=typeof t)return this;var r=this.constructor;return this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})})},o.prototype.catch=function(e){return this.then(null,e)},o.prototype.then=function(e,t){if(\"function\"!=typeof e&&this.state===a||\"function\"!=typeof t&&this.state===s)return this;var r=new this.constructor(u);this.state!==n?f(r,this.state===a?e:t,this.outcome):this.queue.push(new h(r,e,t));return r},h.prototype.callFulfilled=function(e){l.resolve(this.promise,e)},h.prototype.otherCallFulfilled=function(e){f(this.promise,this.onFulfilled,e)},h.prototype.callRejected=function(e){l.reject(this.promise,e)},h.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e)},l.resolve=function(e,t){var r=p(c,t);if(\"error\"===r.status)return l.reject(e,r.value);var n=r.value;if(n)d(e,n);else{e.state=a,e.outcome=t;for(var i=-1,s=e.queue.length;++i<s;)e.queue[i].callFulfilled(t)}return e},l.reject=function(e,t){e.state=s,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},o.resolve=function(e){if(e instanceof this)return e;return l.resolve(new this(u),e)},o.reject=function(e){var t=new this(u);return l.reject(t,e)},o.all=function(e){var r=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var n=e.length,i=!1;if(!n)return this.resolve([]);var s=new Array(n),a=0,t=-1,o=new this(u);for(;++t<n;)h(e[t],t);return o;function h(e,t){r.resolve(e).then(function(e){s[t]=e,++a!==n||i||(i=!0,l.resolve(o,s))},function(e){i||(i=!0,l.reject(o,e))})}},o.race=function(e){var t=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var r=e.length,n=!1;if(!r)return this.resolve([]);var i=-1,s=new this(u);for(;++i<r;)a=e[i],t.resolve(a).then(function(e){n||(n=!0,l.resolve(s,e))},function(e){n||(n=!0,l.reject(s,e))});var a;return s}},{immediate:36}],38:[function(e,t,r){\"use strict\";var n={};(0,e(\"./lib/utils/common\").assign)(n,e(\"./lib/deflate\"),e(\"./lib/inflate\"),e(\"./lib/zlib/constants\")),t.exports=n},{\"./lib/deflate\":39,\"./lib/inflate\":40,\"./lib/utils/common\":41,\"./lib/zlib/constants\":44}],39:[function(e,t,r){\"use strict\";var a=e(\"./zlib/deflate\"),o=e(\"./utils/common\"),h=e(\"./utils/strings\"),i=e(\"./zlib/messages\"),s=e(\"./zlib/zstream\"),u=Object.prototype.toString,l=0,f=-1,c=0,d=8;function p(e){if(!(this instanceof p))return new p(e);this.options=o.assign({level:f,method:d,chunkSize:16384,windowBits:15,memLevel:8,strategy:c,to:\"\"},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=a.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==l)throw new Error(i[r]);if(t.header&&a.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(n=\"string\"==typeof t.dictionary?h.string2buf(t.dictionary):\"[object ArrayBuffer]\"===u.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(r=a.deflateSetDictionary(this.strm,n))!==l)throw new Error(i[r]);this._dict_set=!0}}function n(e,t){var r=new p(t);if(r.push(e,!0),r.err)throw r.msg||i[r.err];return r.result}p.prototype.push=function(e,t){var r,n,i=this.strm,s=this.options.chunkSize;if(this.ended)return!1;n=t===~~t?t:!0===t?4:0,\"string\"==typeof e?i.input=h.string2buf(e):\"[object ArrayBuffer]\"===u.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new o.Buf8(s),i.next_out=0,i.avail_out=s),1!==(r=a.deflate(i,n))&&r!==l)return this.onEnd(r),!(this.ended=!0);0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||(\"string\"===this.options.to?this.onData(h.buf2binstring(o.shrinkBuf(i.output,i.next_out))):this.onData(o.shrinkBuf(i.output,i.next_out)))}while((0<i.avail_in||0===i.avail_out)&&1!==r);return 4===n?(r=a.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===l):2!==n||(this.onEnd(l),!(i.avail_out=0))},p.prototype.onData=function(e){this.chunks.push(e)},p.prototype.onEnd=function(e){e===l&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Deflate=p,r.deflate=n,r.deflateRaw=function(e,t){return(t=t||{}).raw=!0,n(e,t)},r.gzip=function(e,t){return(t=t||{}).gzip=!0,n(e,t)}},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/deflate\":46,\"./zlib/messages\":51,\"./zlib/zstream\":53}],40:[function(e,t,r){\"use strict\";var c=e(\"./zlib/inflate\"),d=e(\"./utils/common\"),p=e(\"./utils/strings\"),m=e(\"./zlib/constants\"),n=e(\"./zlib/messages\"),i=e(\"./zlib/zstream\"),s=e(\"./zlib/gzheader\"),_=Object.prototype.toString;function a(e){if(!(this instanceof a))return new a(e);this.options=d.assign({chunkSize:16384,windowBits:0,to:\"\"},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new i,this.strm.avail_out=0;var r=c.inflateInit2(this.strm,t.windowBits);if(r!==m.Z_OK)throw new Error(n[r]);this.header=new s,c.inflateGetHeader(this.strm,this.header)}function o(e,t){var r=new a(t);if(r.push(e,!0),r.err)throw r.msg||n[r.err];return r.result}a.prototype.push=function(e,t){var r,n,i,s,a,o,h=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return!1;n=t===~~t?t:!0===t?m.Z_FINISH:m.Z_NO_FLUSH,\"string\"==typeof e?h.input=p.binstring2buf(e):\"[object ArrayBuffer]\"===_.call(e)?h.input=new Uint8Array(e):h.input=e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new d.Buf8(u),h.next_out=0,h.avail_out=u),(r=c.inflate(h,m.Z_NO_FLUSH))===m.Z_NEED_DICT&&l&&(o=\"string\"==typeof l?p.string2buf(l):\"[object ArrayBuffer]\"===_.call(l)?new Uint8Array(l):l,r=c.inflateSetDictionary(this.strm,o)),r===m.Z_BUF_ERROR&&!0===f&&(r=m.Z_OK,f=!1),r!==m.Z_STREAM_END&&r!==m.Z_OK)return this.onEnd(r),!(this.ended=!0);h.next_out&&(0!==h.avail_out&&r!==m.Z_STREAM_END&&(0!==h.avail_in||n!==m.Z_FINISH&&n!==m.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(i=p.utf8border(h.output,h.next_out),s=h.next_out-i,a=p.buf2string(h.output,i),h.next_out=s,h.avail_out=u-s,s&&d.arraySet(h.output,h.output,i,s,0),this.onData(a)):this.onData(d.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(f=!0)}while((0<h.avail_in||0===h.avail_out)&&r!==m.Z_STREAM_END);return r===m.Z_STREAM_END&&(n=m.Z_FINISH),n===m.Z_FINISH?(r=c.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===m.Z_OK):n!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),!(h.avail_out=0))},a.prototype.onData=function(e){this.chunks.push(e)},a.prototype.onEnd=function(e){e===m.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=d.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Inflate=a,r.inflate=o,r.inflateRaw=function(e,t){return(t=t||{}).raw=!0,o(e,t)},r.ungzip=o},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/constants\":44,\"./zlib/gzheader\":47,\"./zlib/inflate\":49,\"./zlib/messages\":51,\"./zlib/zstream\":53}],41:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if(\"object\"!=typeof r)throw new TypeError(r+\"must be non-object\");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){var t,r,n,i,s,a;for(t=n=0,r=e.length;t<r;t++)n+=e[t].length;for(a=new Uint8Array(n),t=i=0,r=e.length;t<r;t++)s=e[t],a.set(s,i),i+=s.length;return a}},s={arraySet:function(e,t,r,n,i){for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){return[].concat.apply([],e)}};r.setTyped=function(e){e?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,i)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(n)},{}],42:[function(e,t,r){\"use strict\";var h=e(\"./common\"),i=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(e){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){s=!1}for(var u=new h.Buf8(256),n=0;n<256;n++)u[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;function l(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,h.shrinkBuf(e,t));for(var r=\"\",n=0;n<t;n++)r+=String.fromCharCode(e[n]);return r}u[254]=u[254]=1,r.string2buf=function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=new h.Buf8(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t},r.buf2string=function(e,t){var r,n,i,s,a=t||e.length,o=new Array(2*a);for(r=n=0;r<a;)if((i=e[r++])<128)o[n++]=i;else if(4<(s=u[i]))o[n++]=65533,r+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&r<a;)i=i<<6|63&e[r++],s--;1<s?o[n++]=65533:i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3<r?2e3:r;s=s+(i=i+t[n++]|0)|0,--a;);i%=65521,s%=65521}return i|s<<16|0}},{}],44:[function(e,t,r){\"use strict\";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,r){\"use strict\";var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4<e?9:0)}function D(e){for(var t=e.length;0<=--t;)e[t]=0}function F(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&s<c);if(n=S-(c-s),s=c-S,a<n){if(e.match_start=t,o<=(a=n))break;d=u[s+a-1],p=u[s+a]}}}while((t=f[t&l])>h&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u<l&&(l=u),r=0===l?0:(a.avail_in-=l,c.arraySet(o,a.input,a.next_in,l,h),1===a.state.wrap?a.adler=d(a.adler,o,l,h):2===a.state.wrap&&(a.adler=p(a.adler,o,l,h)),a.next_in+=l,a.total_in+=l,l),e.lookahead+=r,e.lookahead+e.insert>=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+x-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<x)););}while(e.lookahead<z&&0!==e.strm.avail_in)}function Z(e,t){for(var r,n;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r)),e.match_length>=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function W(e,t){for(var r,n,i;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=x-1,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r),e.match_length<=5&&(1===e.strategy||e.match_length===x&&4096<e.strstart-e.match_start)&&(e.match_length=x-1)),e.prev_length>=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=x-1,e.strstart++,n&&(N(e,!1),0===e.strm.avail_out))return A}else if(e.match_available){if((n=u._tr_tally(e,0,e.window[e.strstart-1]))&&N(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return A}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=u._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function M(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}function H(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=v,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new c.Buf16(2*w),this.dyn_dtree=new c.Buf16(2*(2*a+1)),this.bl_tree=new c.Buf16(2*(2*o+1)),D(this.dyn_ltree),D(this.dyn_dtree),D(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new c.Buf16(k+1),this.heap=new c.Buf16(2*s+1),D(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new c.Buf16(2*s+1),D(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function G(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=i,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?C:E,e.adler=2===t.wrap?0:1,t.last_flush=l,u._tr_init(t),m):R(e,_)}function K(e){var t=G(e);return t===m&&function(e){e.window_size=2*e.w_size,D(e.head),e.max_lazy_match=h[e.level].max_lazy,e.good_match=h[e.level].good_length,e.nice_match=h[e.level].nice_length,e.max_chain_length=h[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=x-1,e.match_available=0,e.ins_h=0}(e.state),t}function Y(e,t,r,n,i,s){if(!e)return _;var a=1;if(t===g&&(t=6),n<0?(a=0,n=-n):15<n&&(a=2,n-=16),i<1||y<i||r!==v||n<8||15<n||t<0||9<t||s<0||b<s)return R(e,_);8===n&&(n=9);var o=new H;return(e.state=o).strm=e,o.wrap=a,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+x-1)/x),o.window=new c.Buf8(2*o.w_size),o.head=new c.Buf16(o.hash_size),o.prev=new c.Buf16(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new c.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=s,o.method=r,K(e)}h=[new M(0,0,0,0,function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5<t||t<0)return e?R(e,_):_;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||666===n.status&&t!==f)return R(e,0===e.avail_out?-5:_);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===C)if(2===n.wrap)e.adler=0,U(n,31),U(n,139),U(n,8),n.gzhead?(U(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),U(n,255&n.gzhead.time),U(n,n.gzhead.time>>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0<e.strstart&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){s=e.strstart+S;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i<s);e.match_length=S-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0<n.wrap&&(n.wrap=-n.wrap),0!==n.pending?m:1)},r.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==C&&69!==t&&73!==t&&91!==t&&103!==t&&t!==E&&666!==t?R(e,_):(e.state=null,t===E?R(e,-3):m):_},r.deflateSetDictionary=function(e,t){var r,n,i,s,a,o,h,u,l=t.length;if(!e||!e.state)return _;if(2===(s=(r=e.state).wrap)||1===s&&r.status!==C||r.lookahead)return _;for(1===s&&(e.adler=d(e.adler,t,l,0)),r.wrap=0,l>=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+x-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++,--i;);r.strstart=n,r.lookahead=x-1,j(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=x-1,r.match_available=0,e.next_in=o,e.input=h,e.avail_in=a,r.wrap=s,m},r.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./messages\":51,\"./trees\":52}],47:[function(e,t,r){\"use strict\";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},{}],48:[function(e,t,r){\"use strict\";t.exports=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C;r=e.state,n=e.next_in,z=e.input,i=n+(e.avail_in-5),s=e.next_out,C=e.output,a=s-(t-e.avail_out),o=s+(e.avail_out-257),h=r.dmax,u=r.wsize,l=r.whave,f=r.wnext,c=r.window,d=r.hold,p=r.bits,m=r.lencode,_=r.distcode,g=(1<<r.lenbits)-1,b=(1<<r.distbits)-1;e:do{p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=m[d&g];t:for(;;){if(d>>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<<y)-1)];continue t}if(32&y){r.mode=12;break e}e.msg=\"invalid literal/length code\",r.mode=30;break e}w=65535&v,(y&=15)&&(p<y&&(d+=z[n++]<<p,p+=8),w+=d&(1<<y)-1,d>>>=y,p-=y),p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=_[d&b];r:for(;;){if(d>>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<<y)-1)];continue r}e.msg=\"invalid distance code\",r.mode=30;break e}if(k=65535&v,p<(y&=15)&&(d+=z[n++]<<p,(p+=8)<y&&(d+=z[n++]<<p,p+=8)),h<(k+=d&(1<<y)-1)){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(d>>>=y,p-=y,(y=s-a)<k){if(l<(y=k-y)&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(S=c,(x=0)===f){if(x+=u-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}}else if(f<y){if(x+=u+f-y,(y-=f)<w){for(w-=y;C[s++]=c[x++],--y;);if(x=0,f<w){for(w-=y=f;C[s++]=c[x++],--y;);x=s-k,S=C}}}else if(x+=f-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}for(;2<w;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],w-=3;w&&(C[s++]=S[x++],1<w&&(C[s++]=S[x++]))}else{for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(w-=3););w&&(C[s++]=C[x++],1<w&&(C[s++]=C[x++]))}break}}break}}while(n<i&&s<o);n-=w=p>>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=s<o?o-s+257:257-(s-o),r.hold=d,r.bits=p}},{}],49:[function(e,t,r){\"use strict\";var I=e(\"../utils/common\"),O=e(\"./adler32\"),B=e(\"./crc32\"),R=e(\"./inffast\"),T=e(\"./inftrees\"),D=1,F=2,N=0,U=-2,P=1,n=852,i=592;function L(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?U:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,o(e))):U}function u(e,t){var r,n;return e?(n=new s,(e.state=n).window=null,(r=h(e,t))!==N&&(e.state=null),r):U}var l,f,c=!0;function j(e){if(c){var t;for(l=new I.Buf32(512),f=new I.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(T(D,e.lens,0,288,l,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;T(F,e.lens,0,32,f,0,e.work,{bits:5}),c=!1}e.lencode=l,e.lenbits=9,e.distcode=f,e.distbits=5}function Z(e,t,r,n){var i,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new I.Buf8(s.wsize)),n>=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0}r.inflateReset=o,r.inflateReset2=h,r.inflateResetKeep=a,r.inflateInit=function(e){return u(e,15)},r.inflateInit2=u,r.inflate=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C=0,E=new I.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return U;12===(r=e.state).mode&&(r.mode=13),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,f=o,c=h,x=N;e:for(;;)switch(r.mode){case P:if(0===r.wrap){r.mode=13;break}for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(2&r.wrap&&35615===u){E[r.check=0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<<k,e.adler=r.check=1,r.mode=512&u?10:12,l=u=0;break;case 2:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.flags=u,8!=(255&r.flags)){e.msg=\"unknown compression method\",r.mode=30;break}if(57344&r.flags){e.msg=\"unknown header flags set\",r.mode=30;break}r.head&&(r.head.text=u>>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.head&&(r.head.time=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.head&&(r.head.xflags=255&u,r.head.os=u>>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.length=u,r.head&&(r.head.extra_len=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(65535&r.check)){e.msg=\"header crc mismatch\",r.mode=30;break}l=u=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}e.adler=r.check=L(u),l=u=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){u>>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}switch(r.last=1&u,l-=1,3&(u>>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if((65535&u)!=(u>>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o<d&&(d=o),h<d&&(d=h),0===d)break e;I.arraySet(i,n,s,d,a),o-=d,s+=d,h-=d,a+=d,r.length-=d;break}r.mode=12;break;case 17:for(;l<14;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.nlen=257+(31&u),u>>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286<r.nlen||30<r.ndist){e.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.lens[A[r.have++]]=7&u,u>>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(b<16)u>>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u>>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=3+(7&(u>>>=_)),u>>>=3,l-=3}else{for(z=_+7;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=11+(127&(u>>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(g&&0==(240&g)){for(v=_,y=g,w=b;g=(C=r.lencode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.length+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<<r.distbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(0==(240&g)){for(v=_,y=g,w=b;g=(C=r.distcode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.offset+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(h<d&&(d=h),h-=d,r.length-=d;i[a++]=m[p++],--d;);0===r.length&&(r.mode=21);break;case 26:if(0===h)break e;i[a++]=r.length,h--,r.mode=21;break;case 27:if(r.wrap){for(;l<32;){if(0===o)break e;o--,u|=n[s++]<<l,l+=8}if(c-=h,e.total_out+=c,r.total+=c,c&&(e.adler=r.check=r.flags?B(r.check,i,c,a-c):O(r.check,i,c,a-c)),c=h,(r.flags?u:L(u))!==r.check){e.msg=\"incorrect data check\",r.mode=30;break}l=u=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(4294967295&r.total)){e.msg=\"incorrect length check\",r.mode=30;break}l=u=0}r.mode=29;case 29:x=1;break e;case 30:x=-3;break e;case 31:return-4;case 32:default:return U}return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,(r.wsize||c!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&Z(e,e.output,e.next_out,c-e.avail_out)?(r.mode=31,-4):(f-=e.avail_in,c-=e.avail_out,e.total_in+=f,e.total_out+=c,r.total+=c,r.wrap&&c&&(e.adler=r.check=r.flags?B(r.check,i,c,e.next_out-c):O(r.check,i,c,e.next_out-c)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==f&&0===c||4===t)&&x===N&&(x=-5),x)},r.inflateEnd=function(e){if(!e||!e.state)return U;var t=e.state;return t.window&&(t.window=null),e.state=null,N},r.inflateGetHeader=function(e,t){var r;return e&&e.state?0==(2&(r=e.state).wrap)?U:((r.head=t).done=!1,N):U},r.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?U:11===r.mode&&O(1,t,n,0)!==r.check?-3:Z(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,N):U},r.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./inffast\":48,\"./inftrees\":50}],50:[function(e,t,r){\"use strict\";var D=e(\"../utils/common\"),F=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],N=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],U=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],P=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,r,n,i,s,a,o){var h,u,l,f,c,d,p,m,_,g=o.bits,b=0,v=0,y=0,w=0,k=0,x=0,S=0,z=0,C=0,E=0,A=null,I=0,O=new D.Buf16(16),B=new D.Buf16(16),R=null,T=0;for(b=0;b<=15;b++)O[b]=0;for(v=0;v<n;v++)O[t[r+v]]++;for(k=g,w=15;1<=w&&0===O[w];w--);if(w<k&&(k=w),0===w)return i[s++]=20971520,i[s++]=20971520,o.bits=1,0;for(y=1;y<w&&0===O[y];y++);for(k<y&&(k=y),b=z=1;b<=15;b++)if(z<<=1,(z-=O[b])<0)return-1;if(0<z&&(0===e||1!==w))return-1;for(B[1]=0,b=1;b<15;b++)B[b+1]=B[b]+O[b];for(v=0;v<n;v++)0!==t[r+v]&&(a[B[t[r+v]]++]=v);if(d=0===e?(A=R=a,19):1===e?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),b=y,c=s,S=v=E=0,l=-1,f=(C=1<<(x=k))-1,1===e&&852<C||2===e&&592<C)return 1;for(;;){for(p=b-S,_=a[v]<d?(m=0,a[v]):a[v]>d?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<<b-S,y=u=1<<x;i[c+(E>>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<<b-1;E&h;)h>>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k<b&&(E&f)!==l){for(0===S&&(S=k),c+=y,z=1<<(x=b-S);x+S<w&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<<x,1===e&&852<C||2===e&&592<C)return 1;i[l=E&f]=k<<24|x<<16|c-s|0}}return 0!==E&&(i[c+E]=b-S<<24|64<<16|0),o.bits=k,0}},{\"../utils/common\":41}],51:[function(e,t,r){\"use strict\";t.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],52:[function(e,t,r){\"use strict\";var i=e(\"../utils/common\"),o=0,h=1;function n(e){for(var t=e.length;0<=--t;)e[t]=0}var s=0,a=29,u=256,l=u+1+a,f=30,c=19,_=2*l+1,g=15,d=16,p=7,m=256,b=16,v=17,y=18,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=new Array(2*(l+2));n(z);var C=new Array(2*f);n(C);var E=new Array(512);n(E);var A=new Array(256);n(A);var I=new Array(a);n(I);var O,B,R,T=new Array(f);function D(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function F(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function N(e){return e<256?E[e]:E[256+(e>>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<<e.bi_valid&65535,U(e,e.bi_buf),e.bi_buf=t>>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function L(e,t,r){P(e,r[2*t],r[2*t+1])}function j(e,t){for(var r=0;r|=1&e,e>>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t<l;t++)e.dyn_ltree[2*t]=0;for(t=0;t<f;t++)e.dyn_dtree[2*t]=0;for(t=0;t<c;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*m]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function M(e){8<e.bi_valid?U(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function H(e,t,r,n){var i=2*t,s=2*r;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]}function G(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&H(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!H(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function K(e,t,r){var n,i,s,a,o=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],i=e.pending_buf[e.l_buf+o],o++,0===n?L(e,i,t):(L(e,(s=A[i])+u+1,t),0!==(a=w[s])&&P(e,i-=I[s],a),L(e,s=N(--n),r),0!==(a=k[s])&&P(e,n-=T[s],a)),o<e.last_lit;);L(e,m,t)}function Y(e,t){var r,n,i,s=t.dyn_tree,a=t.stat_desc.static_tree,o=t.stat_desc.has_stree,h=t.stat_desc.elems,u=-1;for(e.heap_len=0,e.heap_max=_,r=0;r<h;r++)0!==s[2*r]?(e.heap[++e.heap_len]=u=r,e.depth[r]=0):s[2*r+1]=0;for(;e.heap_len<2;)s[2*(i=e.heap[++e.heap_len]=u<2?++u:0)]=1,e.depth[i]=0,e.opt_len--,o&&(e.static_len-=a[2*i+1]);for(t.max_code=u,r=e.heap_len>>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u<n||(e.bl_count[s]++,a=0,d<=n&&(a=c[n-d]),o=h[2*n],e.opt_len+=o*(s+a),f&&(e.static_len+=o*(l[2*n+1]+a)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2}while(0<m);for(s=p;0!==s;s--)for(n=e.bl_count[s];0!==n;)u<(i=e.heap[--r])||(h[2*i+1]!==s&&(e.opt_len+=(s-h[2*i+1])*h[2*i],h[2*i+1]=s),n--)}}(e,t),Z(s,u,e.bl_count)}function X(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++o<h&&i===a||(o<u?e.bl_tree[2*i]+=o:0!==i?(i!==s&&e.bl_tree[2*i]++,e.bl_tree[2*b]++):o<=10?e.bl_tree[2*v]++:e.bl_tree[2*y]++,s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4))}function V(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),n=0;n<=r;n++)if(i=a,a=t[2*(n+1)+1],!(++o<h&&i===a)){if(o<u)for(;L(e,i,e.bl_tree),0!=--o;);else 0!==i?(i!==s&&(L(e,i,e.bl_tree),o--),L(e,b,e.bl_tree),P(e,o-3,2)):o<=10?(L(e,v,e.bl_tree),P(e,o-3,3)):(L(e,y,e.bl_tree),P(e,o-11,7));s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4)}}n(T);var q=!1;function J(e,t,r,n){P(e,(s<<1)+(n?1:0),3),function(e,t,r,n){M(e),n&&(U(e,r),U(e,~r)),i.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}(e,t,r,!0)}r._tr_init=function(e){q||(function(){var e,t,r,n,i,s=new Array(g+1);for(n=r=0;n<a-1;n++)for(I[n]=r,e=0;e<1<<w[n];e++)A[r++]=n;for(A[r-1]=n,n=i=0;n<16;n++)for(T[n]=i,e=0;e<1<<k[n];e++)E[i++]=n;for(i>>=7;n<f;n++)for(T[n]=i<<7,e=0;e<1<<k[n]-7;e++)E[256+i++]=n;for(t=0;t<=g;t++)s[t]=0;for(e=0;e<=143;)z[2*e+1]=8,e++,s[8]++;for(;e<=255;)z[2*e+1]=9,e++,s[9]++;for(;e<=279;)z[2*e+1]=7,e++,s[7]++;for(;e<=287;)z[2*e+1]=8,e++,s[8]++;for(Z(z,l+1,s),e=0;e<f;e++)C[2*e+1]=5,C[2*e]=j(e,5);O=new D(z,w,u+1,l,g),B=new D(C,k,0,f,g),R=new D(new Array(0),x,0,c,p)}(),q=!0),e.l_desc=new F(e.dyn_ltree,O),e.d_desc=new F(e.dyn_dtree,B),e.bl_desc=new F(e.bl_tree,R),e.bi_buf=0,e.bi_valid=0,W(e)},r._tr_stored_block=J,r._tr_flush_block=function(e,t,r,n){var i,s,a=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t<u;t++)if(0!==e.dyn_ltree[2*t])return h;return o}(e)),Y(e,e.l_desc),Y(e,e.d_desc),a=function(e){var t;for(X(e,e.dyn_ltree,e.l_desc.max_code),X(e,e.dyn_dtree,e.d_desc.max_code),Y(e,e.bl_desc),t=c-1;3<=t&&0===e.bl_tree[2*S[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i<n;i++)P(e,e.bl_tree[2*S[i]+1],3);V(e,e.dyn_ltree,t-1),V(e,e.dyn_dtree,r-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),K(e,e.dyn_ltree,e.dyn_dtree)),W(e),n&&M(e)},r._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var n={callback:e,args:t};return h[o]=n,i(o),o++},e.clearImmediate=f}function f(e){delete h[e]}function c(e){if(u)setTimeout(c,0,e);else{var t=h[e];if(t){u=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r)}}(t)}finally{f(e),u=!1}}}}function d(e){e.source===r&&\"string\"==typeof e.data&&0===e.data.indexOf(a)&&c(+e.data.slice(a.length))}}(\"undefined\"==typeof self?void 0===e?this:e:self)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[10])(10)});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../../node-libs-browser/mock/process.js */ \"./node_modules/node-libs-browser/mock/process.js\")))\n\n//# sourceURL=webpack:///./node_modules/jszip/dist/jszip.min.js?");

/***/ }),

/***/ "./node_modules/moment/locale/af.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/af.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var af = moment.defineLocale('af', {\n        months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n        weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n            '_'\n        ),\n        weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n        weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n        meridiemParse: /vm|nm/i,\n        isPM: function (input) {\n            return /^nm$/i.test(input);\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower ? 'vm' : 'VM';\n            } else {\n                return isLower ? 'nm' : 'NM';\n            }\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Vandag om] LT',\n            nextDay: '[Môre om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[Gister om] LT',\n            lastWeek: '[Laas] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'oor %s',\n            past: '%s gelede',\n            s: \"'n paar sekondes\",\n            ss: '%d sekondes',\n            m: \"'n minuut\",\n            mm: '%d minute',\n            h: \"'n uur\",\n            hh: '%d ure',\n            d: \"'n dag\",\n            dd: '%d dae',\n            M: \"'n maand\",\n            MM: '%d maande',\n            y: \"'n jaar\",\n            yy: '%d jaar',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            ); // Thanks to Joris Röling : https://github.com/jjupiter\n        },\n        week: {\n            dow: 1, // Maandag is die eerste dag van die week.\n            doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n        },\n    });\n\n    return af;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/af.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ar-dz.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ar-dz.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var pluralForm = function (n) {\n            return n === 0\n                ? 0\n                : n === 1\n                  ? 1\n                  : n === 2\n                    ? 2\n                    : n % 100 >= 3 && n % 100 <= 10\n                      ? 3\n                      : n % 100 >= 11\n                        ? 4\n                        : 5;\n        },\n        plurals = {\n            s: [\n                'أقل من ثانية',\n                'ثانية واحدة',\n                ['ثانيتان', 'ثانيتين'],\n                '%d ثوان',\n                '%d ثانية',\n                '%d ثانية',\n            ],\n            m: [\n                'أقل من دقيقة',\n                'دقيقة واحدة',\n                ['دقيقتان', 'دقيقتين'],\n                '%d دقائق',\n                '%d دقيقة',\n                '%d دقيقة',\n            ],\n            h: [\n                'أقل من ساعة',\n                'ساعة واحدة',\n                ['ساعتان', 'ساعتين'],\n                '%d ساعات',\n                '%d ساعة',\n                '%d ساعة',\n            ],\n            d: [\n                'أقل من يوم',\n                'يوم واحد',\n                ['يومان', 'يومين'],\n                '%d أيام',\n                '%d يومًا',\n                '%d يوم',\n            ],\n            M: [\n                'أقل من شهر',\n                'شهر واحد',\n                ['شهران', 'شهرين'],\n                '%d أشهر',\n                '%d شهرا',\n                '%d شهر',\n            ],\n            y: [\n                'أقل من عام',\n                'عام واحد',\n                ['عامان', 'عامين'],\n                '%d أعوام',\n                '%d عامًا',\n                '%d عام',\n            ],\n        },\n        pluralize = function (u) {\n            return function (number, withoutSuffix, string, isFuture) {\n                var f = pluralForm(number),\n                    str = plurals[u][pluralForm(number)];\n                if (f === 2) {\n                    str = str[withoutSuffix ? 0 : 1];\n                }\n                return str.replace(/%d/i, number);\n            };\n        },\n        months = [\n            'جانفي',\n            'فيفري',\n            'مارس',\n            'أفريل',\n            'ماي',\n            'جوان',\n            'جويلية',\n            'أوت',\n            'سبتمبر',\n            'أكتوبر',\n            'نوفمبر',\n            'ديسمبر',\n        ];\n\n    var arDz = moment.defineLocale('ar-dz', {\n        months: months,\n        monthsShort: months,\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/\\u200FM/\\u200FYYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم عند الساعة] LT',\n            nextDay: '[غدًا عند الساعة] LT',\n            nextWeek: 'dddd [عند الساعة] LT',\n            lastDay: '[أمس عند الساعة] LT',\n            lastWeek: 'dddd [عند الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'بعد %s',\n            past: 'منذ %s',\n            s: pluralize('s'),\n            ss: pluralize('s'),\n            m: pluralize('m'),\n            mm: pluralize('m'),\n            h: pluralize('h'),\n            hh: pluralize('h'),\n            d: pluralize('d'),\n            dd: pluralize('d'),\n            M: pluralize('M'),\n            MM: pluralize('M'),\n            y: pluralize('y'),\n            yy: pluralize('y'),\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return arDz;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ar-dz.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ar-kw.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ar-kw.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var arKw = moment.defineLocale('ar-kw', {\n        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n            '_'\n        ),\n        monthsShort:\n            'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n                '_'\n            ),\n        weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return arKw;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ar-kw.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ar-ly.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ar-ly.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '1',\n            2: '2',\n            3: '3',\n            4: '4',\n            5: '5',\n            6: '6',\n            7: '7',\n            8: '8',\n            9: '9',\n            0: '0',\n        },\n        pluralForm = function (n) {\n            return n === 0\n                ? 0\n                : n === 1\n                  ? 1\n                  : n === 2\n                    ? 2\n                    : n % 100 >= 3 && n % 100 <= 10\n                      ? 3\n                      : n % 100 >= 11\n                        ? 4\n                        : 5;\n        },\n        plurals = {\n            s: [\n                'أقل من ثانية',\n                'ثانية واحدة',\n                ['ثانيتان', 'ثانيتين'],\n                '%d ثوان',\n                '%d ثانية',\n                '%d ثانية',\n            ],\n            m: [\n                'أقل من دقيقة',\n                'دقيقة واحدة',\n                ['دقيقتان', 'دقيقتين'],\n                '%d دقائق',\n                '%d دقيقة',\n                '%d دقيقة',\n            ],\n            h: [\n                'أقل من ساعة',\n                'ساعة واحدة',\n                ['ساعتان', 'ساعتين'],\n                '%d ساعات',\n                '%d ساعة',\n                '%d ساعة',\n            ],\n            d: [\n                'أقل من يوم',\n                'يوم واحد',\n                ['يومان', 'يومين'],\n                '%d أيام',\n                '%d يومًا',\n                '%d يوم',\n            ],\n            M: [\n                'أقل من شهر',\n                'شهر واحد',\n                ['شهران', 'شهرين'],\n                '%d أشهر',\n                '%d شهرا',\n                '%d شهر',\n            ],\n            y: [\n                'أقل من عام',\n                'عام واحد',\n                ['عامان', 'عامين'],\n                '%d أعوام',\n                '%d عامًا',\n                '%d عام',\n            ],\n        },\n        pluralize = function (u) {\n            return function (number, withoutSuffix, string, isFuture) {\n                var f = pluralForm(number),\n                    str = plurals[u][pluralForm(number)];\n                if (f === 2) {\n                    str = str[withoutSuffix ? 0 : 1];\n                }\n                return str.replace(/%d/i, number);\n            };\n        },\n        months = [\n            'يناير',\n            'فبراير',\n            'مارس',\n            'أبريل',\n            'مايو',\n            'يونيو',\n            'يوليو',\n            'أغسطس',\n            'سبتمبر',\n            'أكتوبر',\n            'نوفمبر',\n            'ديسمبر',\n        ];\n\n    var arLy = moment.defineLocale('ar-ly', {\n        months: months,\n        monthsShort: months,\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/\\u200FM/\\u200FYYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم عند الساعة] LT',\n            nextDay: '[غدًا عند الساعة] LT',\n            nextWeek: 'dddd [عند الساعة] LT',\n            lastDay: '[أمس عند الساعة] LT',\n            lastWeek: 'dddd [عند الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'بعد %s',\n            past: 'منذ %s',\n            s: pluralize('s'),\n            ss: pluralize('s'),\n            m: pluralize('m'),\n            mm: pluralize('m'),\n            h: pluralize('h'),\n            hh: pluralize('h'),\n            d: pluralize('d'),\n            dd: pluralize('d'),\n            M: pluralize('M'),\n            MM: pluralize('M'),\n            y: pluralize('y'),\n            yy: pluralize('y'),\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return arLy;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ar-ly.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ar-ma.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ar-ma.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var arMa = moment.defineLocale('ar-ma', {\n        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n            '_'\n        ),\n        monthsShort:\n            'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n                '_'\n            ),\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return arMa;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ar-ma.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ar-ps.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ar-ps.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Arabic (Palestine) [ar-ps]\n//! author : Majd Al-Shihabi : https://github.com/majdal\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '١',\n            2: '٢',\n            3: '٣',\n            4: '٤',\n            5: '٥',\n            6: '٦',\n            7: '٧',\n            8: '٨',\n            9: '٩',\n            0: '٠',\n        },\n        numberMap = {\n            '١': '1',\n            '٢': '2',\n            '٣': '3',\n            '٤': '4',\n            '٥': '5',\n            '٦': '6',\n            '٧': '7',\n            '٨': '8',\n            '٩': '9',\n            '٠': '0',\n        };\n\n    var arPs = moment.defineLocale('ar-ps', {\n        months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split(\n            '_'\n        ),\n        monthsShort:\n            'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'),\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) {\n                    return numberMap[match];\n                })\n                .split('') // reversed since negative lookbehind not supported everywhere\n                .reverse()\n                .join('')\n                .replace(/[١٢](?![\\u062a\\u0643])/g, function (match) {\n                    return numberMap[match];\n                })\n                .split('')\n                .reverse()\n                .join('')\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return arPs;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ar-ps.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ar-sa.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ar-sa.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '١',\n            2: '٢',\n            3: '٣',\n            4: '٤',\n            5: '٥',\n            6: '٦',\n            7: '٧',\n            8: '٨',\n            9: '٩',\n            0: '٠',\n        },\n        numberMap = {\n            '١': '1',\n            '٢': '2',\n            '٣': '3',\n            '٤': '4',\n            '٥': '5',\n            '٦': '6',\n            '٧': '7',\n            '٨': '8',\n            '٩': '9',\n            '٠': '0',\n        };\n\n    var arSa = moment.defineLocale('ar-sa', {\n        months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n            '_'\n        ),\n        monthsShort:\n            'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n                '_'\n            ),\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n                    return numberMap[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return arSa;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ar-sa.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ar-tn.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ar-tn.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale  :  Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var arTn = moment.defineLocale('ar-tn', {\n        months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n            '_'\n        ),\n        monthsShort:\n            'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n                '_'\n            ),\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[اليوم على الساعة] LT',\n            nextDay: '[غدا على الساعة] LT',\n            nextWeek: 'dddd [على الساعة] LT',\n            lastDay: '[أمس على الساعة] LT',\n            lastWeek: 'dddd [على الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'في %s',\n            past: 'منذ %s',\n            s: 'ثوان',\n            ss: '%d ثانية',\n            m: 'دقيقة',\n            mm: '%d دقائق',\n            h: 'ساعة',\n            hh: '%d ساعات',\n            d: 'يوم',\n            dd: '%d أيام',\n            M: 'شهر',\n            MM: '%d أشهر',\n            y: 'سنة',\n            yy: '%d سنوات',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return arTn;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ar-tn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ar.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ar.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '١',\n            2: '٢',\n            3: '٣',\n            4: '٤',\n            5: '٥',\n            6: '٦',\n            7: '٧',\n            8: '٨',\n            9: '٩',\n            0: '٠',\n        },\n        numberMap = {\n            '١': '1',\n            '٢': '2',\n            '٣': '3',\n            '٤': '4',\n            '٥': '5',\n            '٦': '6',\n            '٧': '7',\n            '٨': '8',\n            '٩': '9',\n            '٠': '0',\n        },\n        pluralForm = function (n) {\n            return n === 0\n                ? 0\n                : n === 1\n                  ? 1\n                  : n === 2\n                    ? 2\n                    : n % 100 >= 3 && n % 100 <= 10\n                      ? 3\n                      : n % 100 >= 11\n                        ? 4\n                        : 5;\n        },\n        plurals = {\n            s: [\n                'أقل من ثانية',\n                'ثانية واحدة',\n                ['ثانيتان', 'ثانيتين'],\n                '%d ثوان',\n                '%d ثانية',\n                '%d ثانية',\n            ],\n            m: [\n                'أقل من دقيقة',\n                'دقيقة واحدة',\n                ['دقيقتان', 'دقيقتين'],\n                '%d دقائق',\n                '%d دقيقة',\n                '%d دقيقة',\n            ],\n            h: [\n                'أقل من ساعة',\n                'ساعة واحدة',\n                ['ساعتان', 'ساعتين'],\n                '%d ساعات',\n                '%d ساعة',\n                '%d ساعة',\n            ],\n            d: [\n                'أقل من يوم',\n                'يوم واحد',\n                ['يومان', 'يومين'],\n                '%d أيام',\n                '%d يومًا',\n                '%d يوم',\n            ],\n            M: [\n                'أقل من شهر',\n                'شهر واحد',\n                ['شهران', 'شهرين'],\n                '%d أشهر',\n                '%d شهرا',\n                '%d شهر',\n            ],\n            y: [\n                'أقل من عام',\n                'عام واحد',\n                ['عامان', 'عامين'],\n                '%d أعوام',\n                '%d عامًا',\n                '%d عام',\n            ],\n        },\n        pluralize = function (u) {\n            return function (number, withoutSuffix, string, isFuture) {\n                var f = pluralForm(number),\n                    str = plurals[u][pluralForm(number)];\n                if (f === 2) {\n                    str = str[withoutSuffix ? 0 : 1];\n                }\n                return str.replace(/%d/i, number);\n            };\n        },\n        months = [\n            'يناير',\n            'فبراير',\n            'مارس',\n            'أبريل',\n            'مايو',\n            'يونيو',\n            'يوليو',\n            'أغسطس',\n            'سبتمبر',\n            'أكتوبر',\n            'نوفمبر',\n            'ديسمبر',\n        ];\n\n    var ar = moment.defineLocale('ar', {\n        months: months,\n        monthsShort: months,\n        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/\\u200FM/\\u200FYYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ص|م/,\n        isPM: function (input) {\n            return 'م' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ص';\n            } else {\n                return 'م';\n            }\n        },\n        calendar: {\n            sameDay: '[اليوم عند الساعة] LT',\n            nextDay: '[غدًا عند الساعة] LT',\n            nextWeek: 'dddd [عند الساعة] LT',\n            lastDay: '[أمس عند الساعة] LT',\n            lastWeek: 'dddd [عند الساعة] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'بعد %s',\n            past: 'منذ %s',\n            s: pluralize('s'),\n            ss: pluralize('s'),\n            m: pluralize('m'),\n            mm: pluralize('m'),\n            h: pluralize('h'),\n            hh: pluralize('h'),\n            d: pluralize('d'),\n            dd: pluralize('d'),\n            M: pluralize('M'),\n            MM: pluralize('M'),\n            y: pluralize('y'),\n            yy: pluralize('y'),\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n                    return numberMap[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return ar;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ar.js?");

/***/ }),

/***/ "./node_modules/moment/locale/az.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/az.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var suffixes = {\n        1: '-inci',\n        5: '-inci',\n        8: '-inci',\n        70: '-inci',\n        80: '-inci',\n        2: '-nci',\n        7: '-nci',\n        20: '-nci',\n        50: '-nci',\n        3: '-üncü',\n        4: '-üncü',\n        100: '-üncü',\n        6: '-ncı',\n        9: '-uncu',\n        10: '-uncu',\n        30: '-uncu',\n        60: '-ıncı',\n        90: '-ıncı',\n    };\n\n    var az = moment.defineLocale('az', {\n        months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n            '_'\n        ),\n        monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n        weekdays:\n            'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n                '_'\n            ),\n        weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n        weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[bugün saat] LT',\n            nextDay: '[sabah saat] LT',\n            nextWeek: '[gələn həftə] dddd [saat] LT',\n            lastDay: '[dünən] LT',\n            lastWeek: '[keçən həftə] dddd [saat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s sonra',\n            past: '%s əvvəl',\n            s: 'bir neçə saniyə',\n            ss: '%d saniyə',\n            m: 'bir dəqiqə',\n            mm: '%d dəqiqə',\n            h: 'bir saat',\n            hh: '%d saat',\n            d: 'bir gün',\n            dd: '%d gün',\n            M: 'bir ay',\n            MM: '%d ay',\n            y: 'bir il',\n            yy: '%d il',\n        },\n        meridiemParse: /gecə|səhər|gündüz|axşam/,\n        isPM: function (input) {\n            return /^(gündüz|axşam)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'gecə';\n            } else if (hour < 12) {\n                return 'səhər';\n            } else if (hour < 17) {\n                return 'gündüz';\n            } else {\n                return 'axşam';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n        ordinal: function (number) {\n            if (number === 0) {\n                // special case for zero\n                return number + '-ıncı';\n            }\n            var a = number % 10,\n                b = (number % 100) - a,\n                c = number >= 100 ? 100 : null;\n            return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return az;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/az.js?");

/***/ }),

/***/ "./node_modules/moment/locale/be.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/be.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function plural(word, num) {\n        var forms = word.split('_');\n        return num % 10 === 1 && num % 100 !== 11\n            ? forms[0]\n            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n              ? forms[1]\n              : forms[2];\n    }\n    function relativeTimeWithPlural(number, withoutSuffix, key) {\n        var format = {\n            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n            mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n            hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n            dd: 'дзень_дні_дзён',\n            MM: 'месяц_месяцы_месяцаў',\n            yy: 'год_гады_гадоў',\n        };\n        if (key === 'm') {\n            return withoutSuffix ? 'хвіліна' : 'хвіліну';\n        } else if (key === 'h') {\n            return withoutSuffix ? 'гадзіна' : 'гадзіну';\n        } else {\n            return number + ' ' + plural(format[key], +number);\n        }\n    }\n\n    var be = moment.defineLocale('be', {\n        months: {\n            format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n                '_'\n            ),\n            standalone:\n                'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n                    '_'\n                ),\n        },\n        monthsShort:\n            'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n        weekdays: {\n            format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n                '_'\n            ),\n            standalone:\n                'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n                    '_'\n                ),\n            isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n        },\n        weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n        weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY г.',\n            LLL: 'D MMMM YYYY г., HH:mm',\n            LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n        },\n        calendar: {\n            sameDay: '[Сёння ў] LT',\n            nextDay: '[Заўтра ў] LT',\n            lastDay: '[Учора ў] LT',\n            nextWeek: function () {\n                return '[У] dddd [ў] LT';\n            },\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 5:\n                    case 6:\n                        return '[У мінулую] dddd [ў] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                        return '[У мінулы] dddd [ў] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'праз %s',\n            past: '%s таму',\n            s: 'некалькі секунд',\n            m: relativeTimeWithPlural,\n            mm: relativeTimeWithPlural,\n            h: relativeTimeWithPlural,\n            hh: relativeTimeWithPlural,\n            d: 'дзень',\n            dd: relativeTimeWithPlural,\n            M: 'месяц',\n            MM: relativeTimeWithPlural,\n            y: 'год',\n            yy: relativeTimeWithPlural,\n        },\n        meridiemParse: /ночы|раніцы|дня|вечара/,\n        isPM: function (input) {\n            return /^(дня|вечара)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ночы';\n            } else if (hour < 12) {\n                return 'раніцы';\n            } else if (hour < 17) {\n                return 'дня';\n            } else {\n                return 'вечара';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'M':\n                case 'd':\n                case 'DDD':\n                case 'w':\n                case 'W':\n                    return (number % 10 === 2 || number % 10 === 3) &&\n                        number % 100 !== 12 &&\n                        number % 100 !== 13\n                        ? number + '-і'\n                        : number + '-ы';\n                case 'D':\n                    return number + '-га';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return be;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/be.js?");

/***/ }),

/***/ "./node_modules/moment/locale/bg.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/bg.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var bg = moment.defineLocale('bg', {\n        months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n            '_'\n        ),\n        monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n        weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n            '_'\n        ),\n        weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY H:mm',\n            LLLL: 'dddd, D MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[Днес в] LT',\n            nextDay: '[Утре в] LT',\n            nextWeek: 'dddd [в] LT',\n            lastDay: '[Вчера в] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 6:\n                        return '[Миналата] dddd [в] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[Миналия] dddd [в] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'след %s',\n            past: 'преди %s',\n            s: 'няколко секунди',\n            ss: '%d секунди',\n            m: 'минута',\n            mm: '%d минути',\n            h: 'час',\n            hh: '%d часа',\n            d: 'ден',\n            dd: '%d дена',\n            w: 'седмица',\n            ww: '%d седмици',\n            M: 'месец',\n            MM: '%d месеца',\n            y: 'година',\n            yy: '%d години',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n        ordinal: function (number) {\n            var lastDigit = number % 10,\n                last2Digits = number % 100;\n            if (number === 0) {\n                return number + '-ев';\n            } else if (last2Digits === 0) {\n                return number + '-ен';\n            } else if (last2Digits > 10 && last2Digits < 20) {\n                return number + '-ти';\n            } else if (lastDigit === 1) {\n                return number + '-ви';\n            } else if (lastDigit === 2) {\n                return number + '-ри';\n            } else if (lastDigit === 7 || lastDigit === 8) {\n                return number + '-ми';\n            } else {\n                return number + '-ти';\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return bg;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/bg.js?");

/***/ }),

/***/ "./node_modules/moment/locale/bm.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/bm.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var bm = moment.defineLocale('bm', {\n        months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n            '_'\n        ),\n        monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n        weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n        weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n        weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'MMMM [tile] D [san] YYYY',\n            LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n            LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n        },\n        calendar: {\n            sameDay: '[Bi lɛrɛ] LT',\n            nextDay: '[Sini lɛrɛ] LT',\n            nextWeek: 'dddd [don lɛrɛ] LT',\n            lastDay: '[Kunu lɛrɛ] LT',\n            lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s kɔnɔ',\n            past: 'a bɛ %s bɔ',\n            s: 'sanga dama dama',\n            ss: 'sekondi %d',\n            m: 'miniti kelen',\n            mm: 'miniti %d',\n            h: 'lɛrɛ kelen',\n            hh: 'lɛrɛ %d',\n            d: 'tile kelen',\n            dd: 'tile %d',\n            M: 'kalo kelen',\n            MM: 'kalo %d',\n            y: 'san kelen',\n            yy: 'san %d',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return bm;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/bm.js?");

/***/ }),

/***/ "./node_modules/moment/locale/bn-bd.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/bn-bd.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '১',\n            2: '২',\n            3: '৩',\n            4: '৪',\n            5: '৫',\n            6: '৬',\n            7: '৭',\n            8: '৮',\n            9: '৯',\n            0: '০',\n        },\n        numberMap = {\n            '১': '1',\n            '২': '2',\n            '৩': '3',\n            '৪': '4',\n            '৫': '5',\n            '৬': '6',\n            '৭': '7',\n            '৮': '8',\n            '৯': '9',\n            '০': '0',\n        };\n\n    var bnBd = moment.defineLocale('bn-bd', {\n        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n            '_'\n        ),\n        monthsShort:\n            'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n                '_'\n            ),\n        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n            '_'\n        ),\n        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm সময়',\n            LTS: 'A h:mm:ss সময়',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm সময়',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n        },\n        calendar: {\n            sameDay: '[আজ] LT',\n            nextDay: '[আগামীকাল] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[গতকাল] LT',\n            lastWeek: '[গত] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s পরে',\n            past: '%s আগে',\n            s: 'কয়েক সেকেন্ড',\n            ss: '%d সেকেন্ড',\n            m: 'এক মিনিট',\n            mm: '%d মিনিট',\n            h: 'এক ঘন্টা',\n            hh: '%d ঘন্টা',\n            d: 'এক দিন',\n            dd: '%d দিন',\n            M: 'এক মাস',\n            MM: '%d মাস',\n            y: 'এক বছর',\n            yy: '%d বছর',\n        },\n        preparse: function (string) {\n            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n\n        meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'রাত') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ভোর') {\n                return hour;\n            } else if (meridiem === 'সকাল') {\n                return hour;\n            } else if (meridiem === 'দুপুর') {\n                return hour >= 3 ? hour : hour + 12;\n            } else if (meridiem === 'বিকাল') {\n                return hour + 12;\n            } else if (meridiem === 'সন্ধ্যা') {\n                return hour + 12;\n            }\n        },\n\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'রাত';\n            } else if (hour < 6) {\n                return 'ভোর';\n            } else if (hour < 12) {\n                return 'সকাল';\n            } else if (hour < 15) {\n                return 'দুপুর';\n            } else if (hour < 18) {\n                return 'বিকাল';\n            } else if (hour < 20) {\n                return 'সন্ধ্যা';\n            } else {\n                return 'রাত';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return bnBd;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/bn-bd.js?");

/***/ }),

/***/ "./node_modules/moment/locale/bn.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/bn.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '১',\n            2: '২',\n            3: '৩',\n            4: '৪',\n            5: '৫',\n            6: '৬',\n            7: '৭',\n            8: '৮',\n            9: '৯',\n            0: '০',\n        },\n        numberMap = {\n            '১': '1',\n            '২': '2',\n            '৩': '3',\n            '৪': '4',\n            '৫': '5',\n            '৬': '6',\n            '৭': '7',\n            '৮': '8',\n            '৯': '9',\n            '০': '0',\n        };\n\n    var bn = moment.defineLocale('bn', {\n        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n            '_'\n        ),\n        monthsShort:\n            'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n                '_'\n            ),\n        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n            '_'\n        ),\n        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm সময়',\n            LTS: 'A h:mm:ss সময়',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm সময়',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n        },\n        calendar: {\n            sameDay: '[আজ] LT',\n            nextDay: '[আগামীকাল] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[গতকাল] LT',\n            lastWeek: '[গত] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s পরে',\n            past: '%s আগে',\n            s: 'কয়েক সেকেন্ড',\n            ss: '%d সেকেন্ড',\n            m: 'এক মিনিট',\n            mm: '%d মিনিট',\n            h: 'এক ঘন্টা',\n            hh: '%d ঘন্টা',\n            d: 'এক দিন',\n            dd: '%d দিন',\n            M: 'এক মাস',\n            MM: '%d মাস',\n            y: 'এক বছর',\n            yy: '%d বছর',\n        },\n        preparse: function (string) {\n            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                (meridiem === 'রাত' && hour >= 4) ||\n                (meridiem === 'দুপুর' && hour < 5) ||\n                meridiem === 'বিকাল'\n            ) {\n                return hour + 12;\n            } else {\n                return hour;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'রাত';\n            } else if (hour < 10) {\n                return 'সকাল';\n            } else if (hour < 17) {\n                return 'দুপুর';\n            } else if (hour < 20) {\n                return 'বিকাল';\n            } else {\n                return 'রাত';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return bn;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/bn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/bo.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/bo.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '༡',\n            2: '༢',\n            3: '༣',\n            4: '༤',\n            5: '༥',\n            6: '༦',\n            7: '༧',\n            8: '༨',\n            9: '༩',\n            0: '༠',\n        },\n        numberMap = {\n            '༡': '1',\n            '༢': '2',\n            '༣': '3',\n            '༤': '4',\n            '༥': '5',\n            '༦': '6',\n            '༧': '7',\n            '༨': '8',\n            '༩': '9',\n            '༠': '0',\n        };\n\n    var bo = moment.defineLocale('bo', {\n        months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n            '_'\n        ),\n        monthsShort:\n            'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n                '_'\n            ),\n        monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n        monthsParseExact: true,\n        weekdays:\n            'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n                '_'\n            ),\n        weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n            '_'\n        ),\n        weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm',\n        },\n        calendar: {\n            sameDay: '[དི་རིང] LT',\n            nextDay: '[སང་ཉིན] LT',\n            nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n            lastDay: '[ཁ་སང] LT',\n            lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ལ་',\n            past: '%s སྔན་ལ',\n            s: 'ལམ་སང',\n            ss: '%d སྐར་ཆ།',\n            m: 'སྐར་མ་གཅིག',\n            mm: '%d སྐར་མ',\n            h: 'ཆུ་ཚོད་གཅིག',\n            hh: '%d ཆུ་ཚོད',\n            d: 'ཉིན་གཅིག',\n            dd: '%d ཉིན་',\n            M: 'ཟླ་བ་གཅིག',\n            MM: '%d ཟླ་བ',\n            y: 'ལོ་གཅིག',\n            yy: '%d ལོ',\n        },\n        preparse: function (string) {\n            return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                (meridiem === 'མཚན་མོ' && hour >= 4) ||\n                (meridiem === 'ཉིན་གུང' && hour < 5) ||\n                meridiem === 'དགོང་དག'\n            ) {\n                return hour + 12;\n            } else {\n                return hour;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'མཚན་མོ';\n            } else if (hour < 10) {\n                return 'ཞོགས་ཀས';\n            } else if (hour < 17) {\n                return 'ཉིན་གུང';\n            } else if (hour < 20) {\n                return 'དགོང་དག';\n            } else {\n                return 'མཚན་མོ';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return bo;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/bo.js?");

/***/ }),

/***/ "./node_modules/moment/locale/br.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/br.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function relativeTimeWithMutation(number, withoutSuffix, key) {\n        var format = {\n            mm: 'munutenn',\n            MM: 'miz',\n            dd: 'devezh',\n        };\n        return number + ' ' + mutation(format[key], number);\n    }\n    function specialMutationForYears(number) {\n        switch (lastNumber(number)) {\n            case 1:\n            case 3:\n            case 4:\n            case 5:\n            case 9:\n                return number + ' bloaz';\n            default:\n                return number + ' vloaz';\n        }\n    }\n    function lastNumber(number) {\n        if (number > 9) {\n            return lastNumber(number % 10);\n        }\n        return number;\n    }\n    function mutation(text, number) {\n        if (number === 2) {\n            return softMutation(text);\n        }\n        return text;\n    }\n    function softMutation(text) {\n        var mutationTable = {\n            m: 'v',\n            b: 'v',\n            d: 'z',\n        };\n        if (mutationTable[text.charAt(0)] === undefined) {\n            return text;\n        }\n        return mutationTable[text.charAt(0)] + text.substring(1);\n    }\n\n    var monthsParse = [\n            /^gen/i,\n            /^c[ʼ\\']hwe/i,\n            /^meu/i,\n            /^ebr/i,\n            /^mae/i,\n            /^(mez|eve)/i,\n            /^gou/i,\n            /^eos/i,\n            /^gwe/i,\n            /^her/i,\n            /^du/i,\n            /^ker/i,\n        ],\n        monthsRegex =\n            /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n        monthsStrictRegex =\n            /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n        monthsShortStrictRegex =\n            /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n        fullWeekdaysParse = [\n            /^sul/i,\n            /^lun/i,\n            /^meurzh/i,\n            /^merc[ʼ\\']her/i,\n            /^yaou/i,\n            /^gwener/i,\n            /^sadorn/i,\n        ],\n        shortWeekdaysParse = [\n            /^Sul/i,\n            /^Lun/i,\n            /^Meu/i,\n            /^Mer/i,\n            /^Yao/i,\n            /^Gwe/i,\n            /^Sad/i,\n        ],\n        minWeekdaysParse = [\n            /^Su/i,\n            /^Lu/i,\n            /^Me([^r]|$)/i,\n            /^Mer/i,\n            /^Ya/i,\n            /^Gw/i,\n            /^Sa/i,\n        ];\n\n    var br = moment.defineLocale('br', {\n        months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n            '_'\n        ),\n        monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n        weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n        weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n        weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n        weekdaysParse: minWeekdaysParse,\n        fullWeekdaysParse: fullWeekdaysParse,\n        shortWeekdaysParse: shortWeekdaysParse,\n        minWeekdaysParse: minWeekdaysParse,\n\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex: monthsStrictRegex,\n        monthsShortStrictRegex: monthsShortStrictRegex,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [a viz] MMMM YYYY',\n            LLL: 'D [a viz] MMMM YYYY HH:mm',\n            LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hiziv da] LT',\n            nextDay: '[Warcʼhoazh da] LT',\n            nextWeek: 'dddd [da] LT',\n            lastDay: '[Decʼh da] LT',\n            lastWeek: 'dddd [paset da] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'a-benn %s',\n            past: '%s ʼzo',\n            s: 'un nebeud segondennoù',\n            ss: '%d eilenn',\n            m: 'ur vunutenn',\n            mm: relativeTimeWithMutation,\n            h: 'un eur',\n            hh: '%d eur',\n            d: 'un devezh',\n            dd: relativeTimeWithMutation,\n            M: 'ur miz',\n            MM: relativeTimeWithMutation,\n            y: 'ur bloaz',\n            yy: specialMutationForYears,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n        ordinal: function (number) {\n            var output = number === 1 ? 'añ' : 'vet';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n        meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n        isPM: function (token) {\n            return token === 'g.m.';\n        },\n        meridiem: function (hour, minute, isLower) {\n            return hour < 12 ? 'a.m.' : 'g.m.';\n        },\n    });\n\n    return br;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/br.js?");

/***/ }),

/***/ "./node_modules/moment/locale/bs.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/bs.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! author : Rasid Redzic : https://github.com/rasidre\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        switch (key) {\n            case 'm':\n                return withoutSuffix\n                    ? 'jedna minuta'\n                    : isFuture\n                      ? 'jednu minutu'\n                      : 'jedne minute';\n        }\n    }\n\n    function translate(number, withoutSuffix, key) {\n        var result = number + ' ';\n        switch (key) {\n            case 'ss':\n                if (number === 1) {\n                    result += 'sekunda';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sekunde';\n                } else {\n                    result += 'sekundi';\n                }\n                return result;\n            case 'mm':\n                if (number === 1) {\n                    result += 'minuta';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'minute';\n                } else {\n                    result += 'minuta';\n                }\n                return result;\n            case 'h':\n                return withoutSuffix ? 'jedan sat' : 'jedan sat';\n            case 'hh':\n                if (number === 1) {\n                    result += 'sat';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sata';\n                } else {\n                    result += 'sati';\n                }\n                return result;\n            case 'dd':\n                if (number === 1) {\n                    result += 'dan';\n                } else {\n                    result += 'dana';\n                }\n                return result;\n            case 'MM':\n                if (number === 1) {\n                    result += 'mjesec';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'mjeseca';\n                } else {\n                    result += 'mjeseci';\n                }\n                return result;\n            case 'yy':\n                if (number === 1) {\n                    result += 'godina';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'godine';\n                } else {\n                    result += 'godina';\n                }\n                return result;\n        }\n    }\n\n    var bs = moment.defineLocale('bs', {\n        months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n            '_'\n        ),\n        monthsShort:\n            'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sutra u] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedjelju] [u] LT';\n                    case 3:\n                        return '[u] [srijedu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[jučer u] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                        return '[prošlu] dddd [u] LT';\n                    case 6:\n                        return '[prošle] [subote] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[prošli] dddd [u] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'prije %s',\n            s: 'par sekundi',\n            ss: translate,\n            m: processRelativeTime,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: 'dan',\n            dd: translate,\n            M: 'mjesec',\n            MM: translate,\n            y: 'godinu',\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return bs;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/bs.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ca.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ca.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ca = moment.defineLocale('ca', {\n        months: {\n            standalone:\n                'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n                    '_'\n                ),\n            format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n                '_'\n            ),\n            isFormat: /D[oD]?(\\s)+MMMM/,\n        },\n        monthsShort:\n            'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays:\n            'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n                '_'\n            ),\n        weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n        weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM [de] YYYY',\n            ll: 'D MMM YYYY',\n            LLL: 'D MMMM [de] YYYY [a les] H:mm',\n            lll: 'D MMM YYYY, H:mm',\n            LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n            llll: 'ddd D MMM YYYY, H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            nextDay: function () {\n                return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            lastDay: function () {\n                return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [passat a ' +\n                    (this.hours() !== 1 ? 'les' : 'la') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: \"d'aquí %s\",\n            past: 'fa %s',\n            s: 'uns segons',\n            ss: '%d segons',\n            m: 'un minut',\n            mm: '%d minuts',\n            h: 'una hora',\n            hh: '%d hores',\n            d: 'un dia',\n            dd: '%d dies',\n            M: 'un mes',\n            MM: '%d mesos',\n            y: 'un any',\n            yy: '%d anys',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n        ordinal: function (number, period) {\n            var output =\n                number === 1\n                    ? 'r'\n                    : number === 2\n                      ? 'n'\n                      : number === 3\n                        ? 'r'\n                        : number === 4\n                          ? 't'\n                          : 'è';\n            if (period === 'w' || period === 'W') {\n                output = 'a';\n            }\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return ca;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ca.js?");

/***/ }),

/***/ "./node_modules/moment/locale/cs.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/cs.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var months = {\n            standalone:\n                'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n                    '_'\n                ),\n            format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n                '_'\n            ),\n            isFormat: /DD?[o.]?(\\[[^\\[\\]]*\\]|\\s)+MMMM/,\n        },\n        monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n        monthsParse = [\n            /^led/i,\n            /^úno/i,\n            /^bře/i,\n            /^dub/i,\n            /^kvě/i,\n            /^(čvn|červen$|června)/i,\n            /^(čvc|červenec|července)/i,\n            /^srp/i,\n            /^zář/i,\n            /^říj/i,\n            /^lis/i,\n            /^pro/i,\n        ],\n        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n        monthsRegex =\n            /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n    function plural(n) {\n        return n > 1 && n < 5 && ~~(n / 10) !== 1;\n    }\n    function translate(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's': // a few seconds / in a few seconds / a few seconds ago\n                return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'sekundy' : 'sekund');\n                } else {\n                    return result + 'sekundami';\n                }\n            case 'm': // a minute / in a minute / a minute ago\n                return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'minuty' : 'minut');\n                } else {\n                    return result + 'minutami';\n                }\n            case 'h': // an hour / in an hour / an hour ago\n                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n            case 'hh': // 9 hours / in 9 hours / 9 hours ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'hodiny' : 'hodin');\n                } else {\n                    return result + 'hodinami';\n                }\n            case 'd': // a day / in a day / a day ago\n                return withoutSuffix || isFuture ? 'den' : 'dnem';\n            case 'dd': // 9 days / in 9 days / 9 days ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'dny' : 'dní');\n                } else {\n                    return result + 'dny';\n                }\n            case 'M': // a month / in a month / a month ago\n                return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n            case 'MM': // 9 months / in 9 months / 9 months ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'měsíce' : 'měsíců');\n                } else {\n                    return result + 'měsíci';\n                }\n            case 'y': // a year / in a year / a year ago\n                return withoutSuffix || isFuture ? 'rok' : 'rokem';\n            case 'yy': // 9 years / in 9 years / 9 years ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'roky' : 'let');\n                } else {\n                    return result + 'lety';\n                }\n        }\n    }\n\n    var cs = moment.defineLocale('cs', {\n        months: months,\n        monthsShort: monthsShort,\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n        monthsStrictRegex:\n            /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n        monthsShortStrictRegex:\n            /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n        weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n        weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n        weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd D. MMMM YYYY H:mm',\n            l: 'D. M. YYYY',\n        },\n        calendar: {\n            sameDay: '[dnes v] LT',\n            nextDay: '[zítra v] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[v neděli v] LT';\n                    case 1:\n                    case 2:\n                        return '[v] dddd [v] LT';\n                    case 3:\n                        return '[ve středu v] LT';\n                    case 4:\n                        return '[ve čtvrtek v] LT';\n                    case 5:\n                        return '[v pátek v] LT';\n                    case 6:\n                        return '[v sobotu v] LT';\n                }\n            },\n            lastDay: '[včera v] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[minulou neděli v] LT';\n                    case 1:\n                    case 2:\n                        return '[minulé] dddd [v] LT';\n                    case 3:\n                        return '[minulou středu v] LT';\n                    case 4:\n                    case 5:\n                        return '[minulý] dddd [v] LT';\n                    case 6:\n                        return '[minulou sobotu v] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'před %s',\n            s: translate,\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: translate,\n            dd: translate,\n            M: translate,\n            MM: translate,\n            y: translate,\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return cs;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/cs.js?");

/***/ }),

/***/ "./node_modules/moment/locale/cv.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/cv.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var cv = moment.defineLocale('cv', {\n        months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n            '_'\n        ),\n        monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n        weekdays:\n            'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n                '_'\n            ),\n        weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n        weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD-MM-YYYY',\n            LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n            LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n            LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n        },\n        calendar: {\n            sameDay: '[Паян] LT [сехетре]',\n            nextDay: '[Ыран] LT [сехетре]',\n            lastDay: '[Ӗнер] LT [сехетре]',\n            nextWeek: '[Ҫитес] dddd LT [сехетре]',\n            lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (output) {\n                var affix = /сехет$/i.exec(output)\n                    ? 'рен'\n                    : /ҫул$/i.exec(output)\n                      ? 'тан'\n                      : 'ран';\n                return output + affix;\n            },\n            past: '%s каялла',\n            s: 'пӗр-ик ҫеккунт',\n            ss: '%d ҫеккунт',\n            m: 'пӗр минут',\n            mm: '%d минут',\n            h: 'пӗр сехет',\n            hh: '%d сехет',\n            d: 'пӗр кун',\n            dd: '%d кун',\n            M: 'пӗр уйӑх',\n            MM: '%d уйӑх',\n            y: 'пӗр ҫул',\n            yy: '%d ҫул',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n        ordinal: '%d-мӗш',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return cv;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/cv.js?");

/***/ }),

/***/ "./node_modules/moment/locale/cy.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/cy.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var cy = moment.defineLocale('cy', {\n        months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n            '_'\n        ),\n        monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n            '_'\n        ),\n        weekdays:\n            'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n                '_'\n            ),\n        weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n        weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n        weekdaysParseExact: true,\n        // time formats are the same as en-gb\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Heddiw am] LT',\n            nextDay: '[Yfory am] LT',\n            nextWeek: 'dddd [am] LT',\n            lastDay: '[Ddoe am] LT',\n            lastWeek: 'dddd [diwethaf am] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'mewn %s',\n            past: '%s yn ôl',\n            s: 'ychydig eiliadau',\n            ss: '%d eiliad',\n            m: 'munud',\n            mm: '%d munud',\n            h: 'awr',\n            hh: '%d awr',\n            d: 'diwrnod',\n            dd: '%d diwrnod',\n            M: 'mis',\n            MM: '%d mis',\n            y: 'blwyddyn',\n            yy: '%d flynedd',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n        // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n        ordinal: function (number) {\n            var b = number,\n                output = '',\n                lookup = [\n                    '',\n                    'af',\n                    'il',\n                    'ydd',\n                    'ydd',\n                    'ed',\n                    'ed',\n                    'ed',\n                    'fed',\n                    'fed',\n                    'fed', // 1af to 10fed\n                    'eg',\n                    'fed',\n                    'eg',\n                    'eg',\n                    'fed',\n                    'eg',\n                    'eg',\n                    'fed',\n                    'eg',\n                    'fed', // 11eg to 20fed\n                ];\n            if (b > 20) {\n                if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n                    output = 'fed'; // not 30ain, 70ain or 90ain\n                } else {\n                    output = 'ain';\n                }\n            } else if (b > 0) {\n                output = lookup[b];\n            }\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return cy;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/cy.js?");

/***/ }),

/***/ "./node_modules/moment/locale/da.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/da.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var da = moment.defineLocale('da', {\n        months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n        weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[i dag kl.] LT',\n            nextDay: '[i morgen kl.] LT',\n            nextWeek: 'på dddd [kl.] LT',\n            lastDay: '[i går kl.] LT',\n            lastWeek: '[i] dddd[s kl.] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: '%s siden',\n            s: 'få sekunder',\n            ss: '%d sekunder',\n            m: 'et minut',\n            mm: '%d minutter',\n            h: 'en time',\n            hh: '%d timer',\n            d: 'en dag',\n            dd: '%d dage',\n            M: 'en måned',\n            MM: '%d måneder',\n            y: 'et år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return da;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/da.js?");

/***/ }),

/***/ "./node_modules/moment/locale/de-at.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/de-at.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eine Minute', 'einer Minute'],\n            h: ['eine Stunde', 'einer Stunde'],\n            d: ['ein Tag', 'einem Tag'],\n            dd: [number + ' Tage', number + ' Tagen'],\n            w: ['eine Woche', 'einer Woche'],\n            M: ['ein Monat', 'einem Monat'],\n            MM: [number + ' Monate', number + ' Monaten'],\n            y: ['ein Jahr', 'einem Jahr'],\n            yy: [number + ' Jahre', number + ' Jahren'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n\n    var deAt = moment.defineLocale('de-at', {\n        months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort:\n            'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n        monthsParseExact: true,\n        weekdays:\n            'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n                '_'\n            ),\n        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd, D. MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[heute um] LT [Uhr]',\n            sameElse: 'L',\n            nextDay: '[morgen um] LT [Uhr]',\n            nextWeek: 'dddd [um] LT [Uhr]',\n            lastDay: '[gestern um] LT [Uhr]',\n            lastWeek: '[letzten] dddd [um] LT [Uhr]',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: 'vor %s',\n            s: 'ein paar Sekunden',\n            ss: '%d Sekunden',\n            m: processRelativeTime,\n            mm: '%d Minuten',\n            h: processRelativeTime,\n            hh: '%d Stunden',\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            w: processRelativeTime,\n            ww: '%d Wochen',\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return deAt;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/de-at.js?");

/***/ }),

/***/ "./node_modules/moment/locale/de-ch.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/de-ch.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eine Minute', 'einer Minute'],\n            h: ['eine Stunde', 'einer Stunde'],\n            d: ['ein Tag', 'einem Tag'],\n            dd: [number + ' Tage', number + ' Tagen'],\n            w: ['eine Woche', 'einer Woche'],\n            M: ['ein Monat', 'einem Monat'],\n            MM: [number + ' Monate', number + ' Monaten'],\n            y: ['ein Jahr', 'einem Jahr'],\n            yy: [number + ' Jahre', number + ' Jahren'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n\n    var deCh = moment.defineLocale('de-ch', {\n        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort:\n            'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n        monthsParseExact: true,\n        weekdays:\n            'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n                '_'\n            ),\n        weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd, D. MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[heute um] LT [Uhr]',\n            sameElse: 'L',\n            nextDay: '[morgen um] LT [Uhr]',\n            nextWeek: 'dddd [um] LT [Uhr]',\n            lastDay: '[gestern um] LT [Uhr]',\n            lastWeek: '[letzten] dddd [um] LT [Uhr]',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: 'vor %s',\n            s: 'ein paar Sekunden',\n            ss: '%d Sekunden',\n            m: processRelativeTime,\n            mm: '%d Minuten',\n            h: processRelativeTime,\n            hh: '%d Stunden',\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            w: processRelativeTime,\n            ww: '%d Wochen',\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return deCh;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/de-ch.js?");

/***/ }),

/***/ "./node_modules/moment/locale/de.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/de.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eine Minute', 'einer Minute'],\n            h: ['eine Stunde', 'einer Stunde'],\n            d: ['ein Tag', 'einem Tag'],\n            dd: [number + ' Tage', number + ' Tagen'],\n            w: ['eine Woche', 'einer Woche'],\n            M: ['ein Monat', 'einem Monat'],\n            MM: [number + ' Monate', number + ' Monaten'],\n            y: ['ein Jahr', 'einem Jahr'],\n            yy: [number + ' Jahre', number + ' Jahren'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n\n    var de = moment.defineLocale('de', {\n        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort:\n            'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n        monthsParseExact: true,\n        weekdays:\n            'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n                '_'\n            ),\n        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY HH:mm',\n            LLLL: 'dddd, D. MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[heute um] LT [Uhr]',\n            sameElse: 'L',\n            nextDay: '[morgen um] LT [Uhr]',\n            nextWeek: 'dddd [um] LT [Uhr]',\n            lastDay: '[gestern um] LT [Uhr]',\n            lastWeek: '[letzten] dddd [um] LT [Uhr]',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: 'vor %s',\n            s: 'ein paar Sekunden',\n            ss: '%d Sekunden',\n            m: processRelativeTime,\n            mm: '%d Minuten',\n            h: processRelativeTime,\n            hh: '%d Stunden',\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            w: processRelativeTime,\n            ww: '%d Wochen',\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return de;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/de.js?");

/***/ }),

/***/ "./node_modules/moment/locale/dv.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/dv.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var months = [\n            'ޖެނުއަރީ',\n            'ފެބްރުއަރީ',\n            'މާރިޗު',\n            'އޭޕްރީލު',\n            'މޭ',\n            'ޖޫން',\n            'ޖުލައި',\n            'އޯގަސްޓު',\n            'ސެޕްޓެމްބަރު',\n            'އޮކްޓޯބަރު',\n            'ނޮވެމްބަރު',\n            'ޑިސެމްބަރު',\n        ],\n        weekdays = [\n            'އާދިއްތަ',\n            'ހޯމަ',\n            'އަންގާރަ',\n            'ބުދަ',\n            'ބުރާސްފަތި',\n            'ހުކުރު',\n            'ހޮނިހިރު',\n        ];\n\n    var dv = moment.defineLocale('dv', {\n        months: months,\n        monthsShort: months,\n        weekdays: weekdays,\n        weekdaysShort: weekdays,\n        weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'D/M/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /މކ|މފ/,\n        isPM: function (input) {\n            return 'މފ' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'މކ';\n            } else {\n                return 'މފ';\n            }\n        },\n        calendar: {\n            sameDay: '[މިއަދު] LT',\n            nextDay: '[މާދަމާ] LT',\n            nextWeek: 'dddd LT',\n            lastDay: '[އިއްޔެ] LT',\n            lastWeek: '[ފާއިތުވި] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ތެރޭގައި %s',\n            past: 'ކުރިން %s',\n            s: 'ސިކުންތުކޮޅެއް',\n            ss: 'd% ސިކުންތު',\n            m: 'މިނިޓެއް',\n            mm: 'މިނިޓު %d',\n            h: 'ގަޑިއިރެއް',\n            hh: 'ގަޑިއިރު %d',\n            d: 'ދުވަހެއް',\n            dd: 'ދުވަސް %d',\n            M: 'މަހެއް',\n            MM: 'މަސް %d',\n            y: 'އަހަރެއް',\n            yy: 'އަހަރު %d',\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 7, // Sunday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return dv;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/dv.js?");

/***/ }),

/***/ "./node_modules/moment/locale/el.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/el.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function isFunction(input) {\n        return (\n            (typeof Function !== 'undefined' && input instanceof Function) ||\n            Object.prototype.toString.call(input) === '[object Function]'\n        );\n    }\n\n    var el = moment.defineLocale('el', {\n        monthsNominativeEl:\n            'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n                '_'\n            ),\n        monthsGenitiveEl:\n            'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n                '_'\n            ),\n        months: function (momentToFormat, format) {\n            if (!momentToFormat) {\n                return this._monthsNominativeEl;\n            } else if (\n                typeof format === 'string' &&\n                /D/.test(format.substring(0, format.indexOf('MMMM')))\n            ) {\n                // if there is a day number before 'MMMM'\n                return this._monthsGenitiveEl[momentToFormat.month()];\n            } else {\n                return this._monthsNominativeEl[momentToFormat.month()];\n            }\n        },\n        monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n        weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n            '_'\n        ),\n        weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n        weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? 'μμ' : 'ΜΜ';\n            } else {\n                return isLower ? 'πμ' : 'ΠΜ';\n            }\n        },\n        isPM: function (input) {\n            return (input + '').toLowerCase()[0] === 'μ';\n        },\n        meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendarEl: {\n            sameDay: '[Σήμερα {}] LT',\n            nextDay: '[Αύριο {}] LT',\n            nextWeek: 'dddd [{}] LT',\n            lastDay: '[Χθες {}] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 6:\n                        return '[το προηγούμενο] dddd [{}] LT';\n                    default:\n                        return '[την προηγούμενη] dddd [{}] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        calendar: function (key, mom) {\n            var output = this._calendarEl[key],\n                hours = mom && mom.hours();\n            if (isFunction(output)) {\n                output = output.apply(mom);\n            }\n            return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n        },\n        relativeTime: {\n            future: 'σε %s',\n            past: '%s πριν',\n            s: 'λίγα δευτερόλεπτα',\n            ss: '%d δευτερόλεπτα',\n            m: 'ένα λεπτό',\n            mm: '%d λεπτά',\n            h: 'μία ώρα',\n            hh: '%d ώρες',\n            d: 'μία μέρα',\n            dd: '%d μέρες',\n            M: 'ένας μήνας',\n            MM: '%d μήνες',\n            y: 'ένας χρόνος',\n            yy: '%d χρόνια',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}η/,\n        ordinal: '%dη',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4st is the first week of the year.\n        },\n    });\n\n    return el;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/el.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-au.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-au.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enAu = moment.defineLocale('en-au', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                          ? 'st'\n                          : b === 2\n                            ? 'nd'\n                            : b === 3\n                              ? 'rd'\n                              : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return enAu;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-au.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-ca.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-ca.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enCa = moment.defineLocale('en-ca', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'YYYY-MM-DD',\n            LL: 'MMMM D, YYYY',\n            LLL: 'MMMM D, YYYY h:mm A',\n            LLLL: 'dddd, MMMM D, YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                          ? 'st'\n                          : b === 2\n                            ? 'nd'\n                            : b === 3\n                              ? 'rd'\n                              : 'th';\n            return number + output;\n        },\n    });\n\n    return enCa;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-ca.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-gb.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-gb.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enGb = moment.defineLocale('en-gb', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                          ? 'st'\n                          : b === 2\n                            ? 'nd'\n                            : b === 3\n                              ? 'rd'\n                              : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return enGb;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-gb.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-ie.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-ie.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enIe = moment.defineLocale('en-ie', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                          ? 'st'\n                          : b === 2\n                            ? 'nd'\n                            : b === 3\n                              ? 'rd'\n                              : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return enIe;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-ie.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-il.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-il.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enIl = moment.defineLocale('en-il', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                          ? 'st'\n                          : b === 2\n                            ? 'nd'\n                            : b === 3\n                              ? 'rd'\n                              : 'th';\n            return number + output;\n        },\n    });\n\n    return enIl;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-il.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-in.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-in.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enIn = moment.defineLocale('en-in', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                          ? 'st'\n                          : b === 2\n                            ? 'nd'\n                            : b === 3\n                              ? 'rd'\n                              : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 1st is the first week of the year.\n        },\n    });\n\n    return enIn;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-in.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-nz.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-nz.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enNz = moment.defineLocale('en-nz', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                          ? 'st'\n                          : b === 2\n                            ? 'nd'\n                            : b === 3\n                              ? 'rd'\n                              : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return enNz;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-nz.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-sg.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-sg.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var enSg = moment.defineLocale('en-sg', {\n        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Today at] LT',\n            nextDay: '[Tomorrow at] LT',\n            nextWeek: 'dddd [at] LT',\n            lastDay: '[Yesterday at] LT',\n            lastWeek: '[Last] dddd [at] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'in %s',\n            past: '%s ago',\n            s: 'a few seconds',\n            ss: '%d seconds',\n            m: 'a minute',\n            mm: '%d minutes',\n            h: 'an hour',\n            hh: '%d hours',\n            d: 'a day',\n            dd: '%d days',\n            M: 'a month',\n            MM: '%d months',\n            y: 'a year',\n            yy: '%d years',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                          ? 'st'\n                          : b === 2\n                            ? 'nd'\n                            : b === 3\n                              ? 'rd'\n                              : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return enSg;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-sg.js?");

/***/ }),

/***/ "./node_modules/moment/locale/eo.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/eo.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var eo = moment.defineLocale('eo', {\n        months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n        weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n        weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: '[la] D[-an de] MMMM, YYYY',\n            LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n            LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n            llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n        },\n        meridiemParse: /[ap]\\.t\\.m/i,\n        isPM: function (input) {\n            return input.charAt(0).toLowerCase() === 'p';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? 'p.t.m.' : 'P.T.M.';\n            } else {\n                return isLower ? 'a.t.m.' : 'A.T.M.';\n            }\n        },\n        calendar: {\n            sameDay: '[Hodiaŭ je] LT',\n            nextDay: '[Morgaŭ je] LT',\n            nextWeek: 'dddd[n je] LT',\n            lastDay: '[Hieraŭ je] LT',\n            lastWeek: '[pasintan] dddd[n je] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'post %s',\n            past: 'antaŭ %s',\n            s: 'kelkaj sekundoj',\n            ss: '%d sekundoj',\n            m: 'unu minuto',\n            mm: '%d minutoj',\n            h: 'unu horo',\n            hh: '%d horoj',\n            d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n            dd: '%d tagoj',\n            M: 'unu monato',\n            MM: '%d monatoj',\n            y: 'unu jaro',\n            yy: '%d jaroj',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}a/,\n        ordinal: '%da',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return eo;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/eo.js?");

/***/ }),

/***/ "./node_modules/moment/locale/es-do.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/es-do.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsShortDot =\n            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n                '_'\n            ),\n        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex =\n            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    var esDo = moment.defineLocale('es-do', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort[m.month()];\n            } else {\n                return monthsShortDot[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex:\n            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex:\n            /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY h:mm A',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return esDo;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/es-do.js?");

/***/ }),

/***/ "./node_modules/moment/locale/es-mx.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/es-mx.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsShortDot =\n            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n                '_'\n            ),\n        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex =\n            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    var esMx = moment.defineLocale('es-mx', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort[m.month()];\n            } else {\n                return monthsShortDot[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex:\n            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex:\n            /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY H:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n        invalidDate: 'Fecha inválida',\n    });\n\n    return esMx;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/es-mx.js?");

/***/ }),

/***/ "./node_modules/moment/locale/es-us.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/es-us.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsShortDot =\n            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n                '_'\n            ),\n        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex =\n            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    var esUs = moment.defineLocale('es-us', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort[m.month()];\n            } else {\n                return monthsShortDot[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex:\n            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex:\n            /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'MM/DD/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY h:mm A',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return esUs;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/es-us.js?");

/***/ }),

/***/ "./node_modules/moment/locale/es.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/es.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsShortDot =\n            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n                '_'\n            ),\n        monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n        monthsParse = [\n            /^ene/i,\n            /^feb/i,\n            /^mar/i,\n            /^abr/i,\n            /^may/i,\n            /^jun/i,\n            /^jul/i,\n            /^ago/i,\n            /^sep/i,\n            /^oct/i,\n            /^nov/i,\n            /^dic/i,\n        ],\n        monthsRegex =\n            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n    var es = moment.defineLocale('es', {\n        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortDot;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShort[m.month()];\n            } else {\n                return monthsShortDot[m.month()];\n            }\n        },\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex:\n            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n        monthsShortStrictRegex:\n            /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY H:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastDay: function () {\n                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[el] dddd [pasado a la' +\n                    (this.hours() !== 1 ? 's' : '') +\n                    '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'en %s',\n            past: 'hace %s',\n            s: 'unos segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'una hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            w: 'una semana',\n            ww: '%d semanas',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un año',\n            yy: '%d años',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n        invalidDate: 'Fecha inválida',\n    });\n\n    return es;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/es.js?");

/***/ }),

/***/ "./node_modules/moment/locale/et.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/et.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n            ss: [number + 'sekundi', number + 'sekundit'],\n            m: ['ühe minuti', 'üks minut'],\n            mm: [number + ' minuti', number + ' minutit'],\n            h: ['ühe tunni', 'tund aega', 'üks tund'],\n            hh: [number + ' tunni', number + ' tundi'],\n            d: ['ühe päeva', 'üks päev'],\n            M: ['kuu aja', 'kuu aega', 'üks kuu'],\n            MM: [number + ' kuu', number + ' kuud'],\n            y: ['ühe aasta', 'aasta', 'üks aasta'],\n            yy: [number + ' aasta', number + ' aastat'],\n        };\n        if (withoutSuffix) {\n            return format[key][2] ? format[key][2] : format[key][1];\n        }\n        return isFuture ? format[key][0] : format[key][1];\n    }\n\n    var et = moment.defineLocale('et', {\n        months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n            '_'\n        ),\n        monthsShort:\n            'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n        weekdays:\n            'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n                '_'\n            ),\n        weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n        weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[Täna,] LT',\n            nextDay: '[Homme,] LT',\n            nextWeek: '[Järgmine] dddd LT',\n            lastDay: '[Eile,] LT',\n            lastWeek: '[Eelmine] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s pärast',\n            past: '%s tagasi',\n            s: processRelativeTime,\n            ss: processRelativeTime,\n            m: processRelativeTime,\n            mm: processRelativeTime,\n            h: processRelativeTime,\n            hh: processRelativeTime,\n            d: processRelativeTime,\n            dd: '%d päeva',\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return et;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/et.js?");

/***/ }),

/***/ "./node_modules/moment/locale/eu.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/eu.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var eu = moment.defineLocale('eu', {\n        months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n            '_'\n        ),\n        monthsShort:\n            'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays:\n            'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n                '_'\n            ),\n        weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n        weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY[ko] MMMM[ren] D[a]',\n            LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n            LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n            l: 'YYYY-M-D',\n            ll: 'YYYY[ko] MMM D[a]',\n            lll: 'YYYY[ko] MMM D[a] HH:mm',\n            llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n        },\n        calendar: {\n            sameDay: '[gaur] LT[etan]',\n            nextDay: '[bihar] LT[etan]',\n            nextWeek: 'dddd LT[etan]',\n            lastDay: '[atzo] LT[etan]',\n            lastWeek: '[aurreko] dddd LT[etan]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s barru',\n            past: 'duela %s',\n            s: 'segundo batzuk',\n            ss: '%d segundo',\n            m: 'minutu bat',\n            mm: '%d minutu',\n            h: 'ordu bat',\n            hh: '%d ordu',\n            d: 'egun bat',\n            dd: '%d egun',\n            M: 'hilabete bat',\n            MM: '%d hilabete',\n            y: 'urte bat',\n            yy: '%d urte',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return eu;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/eu.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fa.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/fa.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '۱',\n            2: '۲',\n            3: '۳',\n            4: '۴',\n            5: '۵',\n            6: '۶',\n            7: '۷',\n            8: '۸',\n            9: '۹',\n            0: '۰',\n        },\n        numberMap = {\n            '۱': '1',\n            '۲': '2',\n            '۳': '3',\n            '۴': '4',\n            '۵': '5',\n            '۶': '6',\n            '۷': '7',\n            '۸': '8',\n            '۹': '9',\n            '۰': '0',\n        };\n\n    var fa = moment.defineLocale('fa', {\n        months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n            '_'\n        ),\n        monthsShort:\n            'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n                '_'\n            ),\n        weekdays:\n            'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n                '_'\n            ),\n        weekdaysShort:\n            'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n                '_'\n            ),\n        weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /قبل از ظهر|بعد از ظهر/,\n        isPM: function (input) {\n            return /بعد از ظهر/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'قبل از ظهر';\n            } else {\n                return 'بعد از ظهر';\n            }\n        },\n        calendar: {\n            sameDay: '[امروز ساعت] LT',\n            nextDay: '[فردا ساعت] LT',\n            nextWeek: 'dddd [ساعت] LT',\n            lastDay: '[دیروز ساعت] LT',\n            lastWeek: 'dddd [پیش] [ساعت] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'در %s',\n            past: '%s پیش',\n            s: 'چند ثانیه',\n            ss: '%d ثانیه',\n            m: 'یک دقیقه',\n            mm: '%d دقیقه',\n            h: 'یک ساعت',\n            hh: '%d ساعت',\n            d: 'یک روز',\n            dd: '%d روز',\n            M: 'یک ماه',\n            MM: '%d ماه',\n            y: 'یک سال',\n            yy: '%d سال',\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[۰-۹]/g, function (match) {\n                    return numberMap[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap[match];\n                })\n                .replace(/,/g, '،');\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}م/,\n        ordinal: '%dم',\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return fa;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fa.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fi.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/fi.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var numbersPast =\n            'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n                ' '\n            ),\n        numbersFuture = [\n            'nolla',\n            'yhden',\n            'kahden',\n            'kolmen',\n            'neljän',\n            'viiden',\n            'kuuden',\n            numbersPast[7],\n            numbersPast[8],\n            numbersPast[9],\n        ];\n    function translate(number, withoutSuffix, key, isFuture) {\n        var result = '';\n        switch (key) {\n            case 's':\n                return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n            case 'ss':\n                result = isFuture ? 'sekunnin' : 'sekuntia';\n                break;\n            case 'm':\n                return isFuture ? 'minuutin' : 'minuutti';\n            case 'mm':\n                result = isFuture ? 'minuutin' : 'minuuttia';\n                break;\n            case 'h':\n                return isFuture ? 'tunnin' : 'tunti';\n            case 'hh':\n                result = isFuture ? 'tunnin' : 'tuntia';\n                break;\n            case 'd':\n                return isFuture ? 'päivän' : 'päivä';\n            case 'dd':\n                result = isFuture ? 'päivän' : 'päivää';\n                break;\n            case 'M':\n                return isFuture ? 'kuukauden' : 'kuukausi';\n            case 'MM':\n                result = isFuture ? 'kuukauden' : 'kuukautta';\n                break;\n            case 'y':\n                return isFuture ? 'vuoden' : 'vuosi';\n            case 'yy':\n                result = isFuture ? 'vuoden' : 'vuotta';\n                break;\n        }\n        result = verbalNumber(number, isFuture) + ' ' + result;\n        return result;\n    }\n    function verbalNumber(number, isFuture) {\n        return number < 10\n            ? isFuture\n                ? numbersFuture[number]\n                : numbersPast[number]\n            : number;\n    }\n\n    var fi = moment.defineLocale('fi', {\n        months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n            '_'\n        ),\n        monthsShort:\n            'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n                '_'\n            ),\n        weekdays:\n            'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n                '_'\n            ),\n        weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n        weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD.MM.YYYY',\n            LL: 'Do MMMM[ta] YYYY',\n            LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n            LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n            l: 'D.M.YYYY',\n            ll: 'Do MMM YYYY',\n            lll: 'Do MMM YYYY, [klo] HH.mm',\n            llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n        },\n        calendar: {\n            sameDay: '[tänään] [klo] LT',\n            nextDay: '[huomenna] [klo] LT',\n            nextWeek: 'dddd [klo] LT',\n            lastDay: '[eilen] [klo] LT',\n            lastWeek: '[viime] dddd[na] [klo] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s päästä',\n            past: '%s sitten',\n            s: translate,\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: translate,\n            dd: translate,\n            M: translate,\n            MM: translate,\n            y: translate,\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return fi;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fi.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fil.js":
/*!*******************************************!*\
  !*** ./node_modules/moment/locale/fil.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var fil = moment.defineLocale('fil', {\n        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n            '_'\n        ),\n        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n            '_'\n        ),\n        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'MM/D/YYYY',\n            LL: 'MMMM D, YYYY',\n            LLL: 'MMMM D, YYYY HH:mm',\n            LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: 'LT [ngayong araw]',\n            nextDay: '[Bukas ng] LT',\n            nextWeek: 'LT [sa susunod na] dddd',\n            lastDay: 'LT [kahapon]',\n            lastWeek: 'LT [noong nakaraang] dddd',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'sa loob ng %s',\n            past: '%s ang nakalipas',\n            s: 'ilang segundo',\n            ss: '%d segundo',\n            m: 'isang minuto',\n            mm: '%d minuto',\n            h: 'isang oras',\n            hh: '%d oras',\n            d: 'isang araw',\n            dd: '%d araw',\n            M: 'isang buwan',\n            MM: '%d buwan',\n            y: 'isang taon',\n            yy: '%d taon',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: function (number) {\n            return number;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return fil;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fil.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fo.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/fo.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var fo = moment.defineLocale('fo', {\n        months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n        weekdays:\n            'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n                '_'\n            ),\n        weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n        weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D. MMMM, YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Í dag kl.] LT',\n            nextDay: '[Í morgin kl.] LT',\n            nextWeek: 'dddd [kl.] LT',\n            lastDay: '[Í gjár kl.] LT',\n            lastWeek: '[síðstu] dddd [kl] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'um %s',\n            past: '%s síðani',\n            s: 'fá sekund',\n            ss: '%d sekundir',\n            m: 'ein minuttur',\n            mm: '%d minuttir',\n            h: 'ein tími',\n            hh: '%d tímar',\n            d: 'ein dagur',\n            dd: '%d dagar',\n            M: 'ein mánaður',\n            MM: '%d mánaðir',\n            y: 'eitt ár',\n            yy: '%d ár',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return fo;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fo.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fr-ca.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/fr-ca.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var frCa = moment.defineLocale('fr-ca', {\n        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n            '_'\n        ),\n        monthsShort:\n            'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Aujourd’hui à] LT',\n            nextDay: '[Demain à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[Hier à] LT',\n            lastWeek: 'dddd [dernier à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dans %s',\n            past: 'il y a %s',\n            s: 'quelques secondes',\n            ss: '%d secondes',\n            m: 'une minute',\n            mm: '%d minutes',\n            h: 'une heure',\n            hh: '%d heures',\n            d: 'un jour',\n            dd: '%d jours',\n            M: 'un mois',\n            MM: '%d mois',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // Words with masculine grammatical gender: mois, trimestre, jour\n                default:\n                case 'M':\n                case 'Q':\n                case 'D':\n                case 'DDD':\n                case 'd':\n                    return number + (number === 1 ? 'er' : 'e');\n\n                // Words with feminine grammatical gender: semaine\n                case 'w':\n                case 'W':\n                    return number + (number === 1 ? 're' : 'e');\n            }\n        },\n    });\n\n    return frCa;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fr-ca.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fr-ch.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/fr-ch.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var frCh = moment.defineLocale('fr-ch', {\n        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n            '_'\n        ),\n        monthsShort:\n            'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Aujourd’hui à] LT',\n            nextDay: '[Demain à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[Hier à] LT',\n            lastWeek: 'dddd [dernier à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dans %s',\n            past: 'il y a %s',\n            s: 'quelques secondes',\n            ss: '%d secondes',\n            m: 'une minute',\n            mm: '%d minutes',\n            h: 'une heure',\n            hh: '%d heures',\n            d: 'un jour',\n            dd: '%d jours',\n            M: 'un mois',\n            MM: '%d mois',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // Words with masculine grammatical gender: mois, trimestre, jour\n                default:\n                case 'M':\n                case 'Q':\n                case 'D':\n                case 'DDD':\n                case 'd':\n                    return number + (number === 1 ? 'er' : 'e');\n\n                // Words with feminine grammatical gender: semaine\n                case 'w':\n                case 'W':\n                    return number + (number === 1 ? 're' : 'e');\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return frCh;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fr-ch.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fr.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/fr.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsStrictRegex =\n            /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n        monthsShortStrictRegex =\n            /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n        monthsRegex =\n            /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n        monthsParse = [\n            /^janv/i,\n            /^févr/i,\n            /^mars/i,\n            /^avr/i,\n            /^mai/i,\n            /^juin/i,\n            /^juil/i,\n            /^août/i,\n            /^sept/i,\n            /^oct/i,\n            /^nov/i,\n            /^déc/i,\n        ];\n\n    var fr = moment.defineLocale('fr', {\n        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n            '_'\n        ),\n        monthsShort:\n            'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n                '_'\n            ),\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex: monthsStrictRegex,\n        monthsShortStrictRegex: monthsShortStrictRegex,\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Aujourd’hui à] LT',\n            nextDay: '[Demain à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[Hier à] LT',\n            lastWeek: 'dddd [dernier à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dans %s',\n            past: 'il y a %s',\n            s: 'quelques secondes',\n            ss: '%d secondes',\n            m: 'une minute',\n            mm: '%d minutes',\n            h: 'une heure',\n            hh: '%d heures',\n            d: 'un jour',\n            dd: '%d jours',\n            w: 'une semaine',\n            ww: '%d semaines',\n            M: 'un mois',\n            MM: '%d mois',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // TODO: Return 'e' when day of month > 1. Move this case inside\n                // block for masculine words below.\n                // See https://github.com/moment/moment/issues/3375\n                case 'D':\n                    return number + (number === 1 ? 'er' : '');\n\n                // Words with masculine grammatical gender: mois, trimestre, jour\n                default:\n                case 'M':\n                case 'Q':\n                case 'DDD':\n                case 'd':\n                    return number + (number === 1 ? 'er' : 'e');\n\n                // Words with feminine grammatical gender: semaine\n                case 'w':\n                case 'W':\n                    return number + (number === 1 ? 're' : 'e');\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return fr;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fr.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fy.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/fy.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsShortWithDots =\n            'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n        monthsShortWithoutDots =\n            'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n    var fy = moment.defineLocale('fy', {\n        months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortWithDots;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShortWithoutDots[m.month()];\n            } else {\n                return monthsShortWithDots[m.month()];\n            }\n        },\n        monthsParseExact: true,\n        weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n            '_'\n        ),\n        weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n        weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[hjoed om] LT',\n            nextDay: '[moarn om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[juster om] LT',\n            lastWeek: '[ôfrûne] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'oer %s',\n            past: '%s lyn',\n            s: 'in pear sekonden',\n            ss: '%d sekonden',\n            m: 'ien minút',\n            mm: '%d minuten',\n            h: 'ien oere',\n            hh: '%d oeren',\n            d: 'ien dei',\n            dd: '%d dagen',\n            M: 'ien moanne',\n            MM: '%d moannen',\n            y: 'ien jier',\n            yy: '%d jierren',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            );\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return fy;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fy.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ga.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ga.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var months = [\n            'Eanáir',\n            'Feabhra',\n            'Márta',\n            'Aibreán',\n            'Bealtaine',\n            'Meitheamh',\n            'Iúil',\n            'Lúnasa',\n            'Meán Fómhair',\n            'Deireadh Fómhair',\n            'Samhain',\n            'Nollaig',\n        ],\n        monthsShort = [\n            'Ean',\n            'Feabh',\n            'Márt',\n            'Aib',\n            'Beal',\n            'Meith',\n            'Iúil',\n            'Lún',\n            'M.F.',\n            'D.F.',\n            'Samh',\n            'Noll',\n        ],\n        weekdays = [\n            'Dé Domhnaigh',\n            'Dé Luain',\n            'Dé Máirt',\n            'Dé Céadaoin',\n            'Déardaoin',\n            'Dé hAoine',\n            'Dé Sathairn',\n        ],\n        weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n        weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n    var ga = moment.defineLocale('ga', {\n        months: months,\n        monthsShort: monthsShort,\n        monthsParseExact: true,\n        weekdays: weekdays,\n        weekdaysShort: weekdaysShort,\n        weekdaysMin: weekdaysMin,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Inniu ag] LT',\n            nextDay: '[Amárach ag] LT',\n            nextWeek: 'dddd [ag] LT',\n            lastDay: '[Inné ag] LT',\n            lastWeek: 'dddd [seo caite] [ag] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'i %s',\n            past: '%s ó shin',\n            s: 'cúpla soicind',\n            ss: '%d soicind',\n            m: 'nóiméad',\n            mm: '%d nóiméad',\n            h: 'uair an chloig',\n            hh: '%d uair an chloig',\n            d: 'lá',\n            dd: '%d lá',\n            M: 'mí',\n            MM: '%d míonna',\n            y: 'bliain',\n            yy: '%d bliain',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n        ordinal: function (number) {\n            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return ga;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ga.js?");

/***/ }),

/***/ "./node_modules/moment/locale/gd.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/gd.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var months = [\n            'Am Faoilleach',\n            'An Gearran',\n            'Am Màrt',\n            'An Giblean',\n            'An Cèitean',\n            'An t-Ògmhios',\n            'An t-Iuchar',\n            'An Lùnastal',\n            'An t-Sultain',\n            'An Dàmhair',\n            'An t-Samhain',\n            'An Dùbhlachd',\n        ],\n        monthsShort = [\n            'Faoi',\n            'Gear',\n            'Màrt',\n            'Gibl',\n            'Cèit',\n            'Ògmh',\n            'Iuch',\n            'Lùn',\n            'Sult',\n            'Dàmh',\n            'Samh',\n            'Dùbh',\n        ],\n        weekdays = [\n            'Didòmhnaich',\n            'Diluain',\n            'Dimàirt',\n            'Diciadain',\n            'Diardaoin',\n            'Dihaoine',\n            'Disathairne',\n        ],\n        weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n        weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n    var gd = moment.defineLocale('gd', {\n        months: months,\n        monthsShort: monthsShort,\n        monthsParseExact: true,\n        weekdays: weekdays,\n        weekdaysShort: weekdaysShort,\n        weekdaysMin: weekdaysMin,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[An-diugh aig] LT',\n            nextDay: '[A-màireach aig] LT',\n            nextWeek: 'dddd [aig] LT',\n            lastDay: '[An-dè aig] LT',\n            lastWeek: 'dddd [seo chaidh] [aig] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ann an %s',\n            past: 'bho chionn %s',\n            s: 'beagan diogan',\n            ss: '%d diogan',\n            m: 'mionaid',\n            mm: '%d mionaidean',\n            h: 'uair',\n            hh: '%d uairean',\n            d: 'latha',\n            dd: '%d latha',\n            M: 'mìos',\n            MM: '%d mìosan',\n            y: 'bliadhna',\n            yy: '%d bliadhna',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n        ordinal: function (number) {\n            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return gd;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/gd.js?");

/***/ }),

/***/ "./node_modules/moment/locale/gl.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/gl.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var gl = moment.defineLocale('gl', {\n        months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n            '_'\n        ),\n        monthsShort:\n            'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n        weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n        weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY H:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n            },\n            nextDay: function () {\n                return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n            },\n            nextWeek: function () {\n                return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n            },\n            lastDay: function () {\n                return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n            },\n            lastWeek: function () {\n                return (\n                    '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n                );\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (str) {\n                if (str.indexOf('un') === 0) {\n                    return 'n' + str;\n                }\n                return 'en ' + str;\n            },\n            past: 'hai %s',\n            s: 'uns segundos',\n            ss: '%d segundos',\n            m: 'un minuto',\n            mm: '%d minutos',\n            h: 'unha hora',\n            hh: '%d horas',\n            d: 'un día',\n            dd: '%d días',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un ano',\n            yy: '%d anos',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return gl;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/gl.js?");

/***/ }),

/***/ "./node_modules/moment/locale/gom-deva.js":
/*!************************************************!*\
  !*** ./node_modules/moment/locale/gom-deva.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n            ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n            m: ['एका मिणटान', 'एक मिनूट'],\n            mm: [number + ' मिणटांनी', number + ' मिणटां'],\n            h: ['एका वरान', 'एक वर'],\n            hh: [number + ' वरांनी', number + ' वरां'],\n            d: ['एका दिसान', 'एक दीस'],\n            dd: [number + ' दिसांनी', number + ' दीस'],\n            M: ['एका म्हयन्यान', 'एक म्हयनो'],\n            MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n            y: ['एका वर्सान', 'एक वर्स'],\n            yy: [number + ' वर्सांनी', number + ' वर्सां'],\n        };\n        return isFuture ? format[key][0] : format[key][1];\n    }\n\n    var gomDeva = moment.defineLocale('gom-deva', {\n        months: {\n            standalone:\n                'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n                    '_'\n                ),\n            format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n                '_'\n            ),\n            isFormat: /MMMM(\\s)+D[oD]?/,\n        },\n        monthsShort:\n            'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n        weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n        weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'A h:mm [वाजतां]',\n            LTS: 'A h:mm:ss [वाजतां]',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n            llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n        },\n        calendar: {\n            sameDay: '[आयज] LT',\n            nextDay: '[फाल्यां] LT',\n            nextWeek: '[फुडलो] dddd[,] LT',\n            lastDay: '[काल] LT',\n            lastWeek: '[फाटलो] dddd[,] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s',\n            past: '%s आदीं',\n            s: processRelativeTime,\n            ss: processRelativeTime,\n            m: processRelativeTime,\n            mm: processRelativeTime,\n            h: processRelativeTime,\n            hh: processRelativeTime,\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // the ordinal 'वेर' only applies to day of the month\n                case 'D':\n                    return number + 'वेर';\n                default:\n                case 'M':\n                case 'Q':\n                case 'DDD':\n                case 'd':\n                case 'w':\n                case 'W':\n                    return number;\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week\n            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n        },\n        meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'राती') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'सकाळीं') {\n                return hour;\n            } else if (meridiem === 'दनपारां') {\n                return hour > 12 ? hour : hour + 12;\n            } else if (meridiem === 'सांजे') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'राती';\n            } else if (hour < 12) {\n                return 'सकाळीं';\n            } else if (hour < 16) {\n                return 'दनपारां';\n            } else if (hour < 20) {\n                return 'सांजे';\n            } else {\n                return 'राती';\n            }\n        },\n    });\n\n    return gomDeva;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/gom-deva.js?");

/***/ }),

/***/ "./node_modules/moment/locale/gom-latn.js":
/*!************************************************!*\
  !*** ./node_modules/moment/locale/gom-latn.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['thoddea sekondamni', 'thodde sekond'],\n            ss: [number + ' sekondamni', number + ' sekond'],\n            m: ['eka mintan', 'ek minut'],\n            mm: [number + ' mintamni', number + ' mintam'],\n            h: ['eka voran', 'ek vor'],\n            hh: [number + ' voramni', number + ' voram'],\n            d: ['eka disan', 'ek dis'],\n            dd: [number + ' disamni', number + ' dis'],\n            M: ['eka mhoinean', 'ek mhoino'],\n            MM: [number + ' mhoineamni', number + ' mhoine'],\n            y: ['eka vorsan', 'ek voros'],\n            yy: [number + ' vorsamni', number + ' vorsam'],\n        };\n        return isFuture ? format[key][0] : format[key][1];\n    }\n\n    var gomLatn = moment.defineLocale('gom-latn', {\n        months: {\n            standalone:\n                'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n                    '_'\n                ),\n            format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n                '_'\n            ),\n            isFormat: /MMMM(\\s)+D[oD]?/,\n        },\n        monthsShort:\n            'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n        monthsParseExact: true,\n        weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n        weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n        weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'A h:mm [vazta]',\n            LTS: 'A h:mm:ss [vazta]',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY A h:mm [vazta]',\n            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n            llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n        },\n        calendar: {\n            sameDay: '[Aiz] LT',\n            nextDay: '[Faleam] LT',\n            nextWeek: '[Fuddlo] dddd[,] LT',\n            lastDay: '[Kal] LT',\n            lastWeek: '[Fattlo] dddd[,] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s',\n            past: '%s adim',\n            s: processRelativeTime,\n            ss: processRelativeTime,\n            m: processRelativeTime,\n            mm: processRelativeTime,\n            h: processRelativeTime,\n            hh: processRelativeTime,\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                // the ordinal 'er' only applies to day of the month\n                case 'D':\n                    return number + 'er';\n                default:\n                case 'M':\n                case 'Q':\n                case 'DDD':\n                case 'd':\n                case 'w':\n                case 'W':\n                    return number;\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week\n            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n        },\n        meridiemParse: /rati|sokallim|donparam|sanje/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'rati') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'sokallim') {\n                return hour;\n            } else if (meridiem === 'donparam') {\n                return hour > 12 ? hour : hour + 12;\n            } else if (meridiem === 'sanje') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'rati';\n            } else if (hour < 12) {\n                return 'sokallim';\n            } else if (hour < 16) {\n                return 'donparam';\n            } else if (hour < 20) {\n                return 'sanje';\n            } else {\n                return 'rati';\n            }\n        },\n    });\n\n    return gomLatn;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/gom-latn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/gu.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/gu.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '૧',\n            2: '૨',\n            3: '૩',\n            4: '૪',\n            5: '૫',\n            6: '૬',\n            7: '૭',\n            8: '૮',\n            9: '૯',\n            0: '૦',\n        },\n        numberMap = {\n            '૧': '1',\n            '૨': '2',\n            '૩': '3',\n            '૪': '4',\n            '૫': '5',\n            '૬': '6',\n            '૭': '7',\n            '૮': '8',\n            '૯': '9',\n            '૦': '0',\n        };\n\n    var gu = moment.defineLocale('gu', {\n        months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n            '_'\n        ),\n        monthsShort:\n            'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n            '_'\n        ),\n        weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n        weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm વાગ્યે',\n            LTS: 'A h:mm:ss વાગ્યે',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n        },\n        calendar: {\n            sameDay: '[આજ] LT',\n            nextDay: '[કાલે] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[ગઇકાલે] LT',\n            lastWeek: '[પાછલા] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s મા',\n            past: '%s પહેલા',\n            s: 'અમુક પળો',\n            ss: '%d સેકંડ',\n            m: 'એક મિનિટ',\n            mm: '%d મિનિટ',\n            h: 'એક કલાક',\n            hh: '%d કલાક',\n            d: 'એક દિવસ',\n            dd: '%d દિવસ',\n            M: 'એક મહિનો',\n            MM: '%d મહિનો',\n            y: 'એક વર્ષ',\n            yy: '%d વર્ષ',\n        },\n        preparse: function (string) {\n            return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n        meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'રાત') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'સવાર') {\n                return hour;\n            } else if (meridiem === 'બપોર') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'સાંજ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'રાત';\n            } else if (hour < 10) {\n                return 'સવાર';\n            } else if (hour < 17) {\n                return 'બપોર';\n            } else if (hour < 20) {\n                return 'સાંજ';\n            } else {\n                return 'રાત';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return gu;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/gu.js?");

/***/ }),

/***/ "./node_modules/moment/locale/he.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/he.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var he = moment.defineLocale('he', {\n        months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n            '_'\n        ),\n        monthsShort:\n            'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n        weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n        weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n        weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [ב]MMMM YYYY',\n            LLL: 'D [ב]MMMM YYYY HH:mm',\n            LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n            l: 'D/M/YYYY',\n            ll: 'D MMM YYYY',\n            lll: 'D MMM YYYY HH:mm',\n            llll: 'ddd, D MMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[היום ב־]LT',\n            nextDay: '[מחר ב־]LT',\n            nextWeek: 'dddd [בשעה] LT',\n            lastDay: '[אתמול ב־]LT',\n            lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'בעוד %s',\n            past: 'לפני %s',\n            s: 'מספר שניות',\n            ss: '%d שניות',\n            m: 'דקה',\n            mm: '%d דקות',\n            h: 'שעה',\n            hh: function (number) {\n                if (number === 2) {\n                    return 'שעתיים';\n                }\n                return number + ' שעות';\n            },\n            d: 'יום',\n            dd: function (number) {\n                if (number === 2) {\n                    return 'יומיים';\n                }\n                return number + ' ימים';\n            },\n            M: 'חודש',\n            MM: function (number) {\n                if (number === 2) {\n                    return 'חודשיים';\n                }\n                return number + ' חודשים';\n            },\n            y: 'שנה',\n            yy: function (number) {\n                if (number === 2) {\n                    return 'שנתיים';\n                } else if (number % 10 === 0 && number !== 10) {\n                    return number + ' שנה';\n                }\n                return number + ' שנים';\n            },\n        },\n        meridiemParse:\n            /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n        isPM: function (input) {\n            return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 5) {\n                return 'לפנות בוקר';\n            } else if (hour < 10) {\n                return 'בבוקר';\n            } else if (hour < 12) {\n                return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n            } else if (hour < 18) {\n                return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n            } else {\n                return 'בערב';\n            }\n        },\n    });\n\n    return he;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/he.js?");

/***/ }),

/***/ "./node_modules/moment/locale/hi.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/hi.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '१',\n            2: '२',\n            3: '३',\n            4: '४',\n            5: '५',\n            6: '६',\n            7: '७',\n            8: '८',\n            9: '९',\n            0: '०',\n        },\n        numberMap = {\n            '१': '1',\n            '२': '2',\n            '३': '3',\n            '४': '4',\n            '५': '5',\n            '६': '6',\n            '७': '7',\n            '८': '8',\n            '९': '9',\n            '०': '0',\n        },\n        monthsParse = [\n            /^जन/i,\n            /^फ़र|फर/i,\n            /^मार्च/i,\n            /^अप्रै/i,\n            /^मई/i,\n            /^जून/i,\n            /^जुल/i,\n            /^अग/i,\n            /^सितं|सित/i,\n            /^अक्टू/i,\n            /^नव|नवं/i,\n            /^दिसं|दिस/i,\n        ],\n        shortMonthsParse = [\n            /^जन/i,\n            /^फ़र/i,\n            /^मार्च/i,\n            /^अप्रै/i,\n            /^मई/i,\n            /^जून/i,\n            /^जुल/i,\n            /^अग/i,\n            /^सित/i,\n            /^अक्टू/i,\n            /^नव/i,\n            /^दिस/i,\n        ];\n\n    var hi = moment.defineLocale('hi', {\n        months: {\n            format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n                '_'\n            ),\n            standalone:\n                'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n                    '_'\n                ),\n        },\n        monthsShort:\n            'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n        weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n        weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm बजे',\n            LTS: 'A h:mm:ss बजे',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm बजे',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n        },\n\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: shortMonthsParse,\n\n        monthsRegex:\n            /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n        monthsShortRegex:\n            /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n        monthsStrictRegex:\n            /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n        monthsShortStrictRegex:\n            /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n        calendar: {\n            sameDay: '[आज] LT',\n            nextDay: '[कल] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[कल] LT',\n            lastWeek: '[पिछले] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s में',\n            past: '%s पहले',\n            s: 'कुछ ही क्षण',\n            ss: '%d सेकंड',\n            m: 'एक मिनट',\n            mm: '%d मिनट',\n            h: 'एक घंटा',\n            hh: '%d घंटे',\n            d: 'एक दिन',\n            dd: '%d दिन',\n            M: 'एक महीने',\n            MM: '%d महीने',\n            y: 'एक वर्ष',\n            yy: '%d वर्ष',\n        },\n        preparse: function (string) {\n            return string.replace(/[१२३४५६७८९०]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n        meridiemParse: /रात|सुबह|दोपहर|शाम/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'रात') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'सुबह') {\n                return hour;\n            } else if (meridiem === 'दोपहर') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'शाम') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'रात';\n            } else if (hour < 10) {\n                return 'सुबह';\n            } else if (hour < 17) {\n                return 'दोपहर';\n            } else if (hour < 20) {\n                return 'शाम';\n            } else {\n                return 'रात';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return hi;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/hi.js?");

/***/ }),

/***/ "./node_modules/moment/locale/hr.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/hr.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function translate(number, withoutSuffix, key) {\n        var result = number + ' ';\n        switch (key) {\n            case 'ss':\n                if (number === 1) {\n                    result += 'sekunda';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sekunde';\n                } else {\n                    result += 'sekundi';\n                }\n                return result;\n            case 'm':\n                return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n            case 'mm':\n                if (number === 1) {\n                    result += 'minuta';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'minute';\n                } else {\n                    result += 'minuta';\n                }\n                return result;\n            case 'h':\n                return withoutSuffix ? 'jedan sat' : 'jednog sata';\n            case 'hh':\n                if (number === 1) {\n                    result += 'sat';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'sata';\n                } else {\n                    result += 'sati';\n                }\n                return result;\n            case 'dd':\n                if (number === 1) {\n                    result += 'dan';\n                } else {\n                    result += 'dana';\n                }\n                return result;\n            case 'MM':\n                if (number === 1) {\n                    result += 'mjesec';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'mjeseca';\n                } else {\n                    result += 'mjeseci';\n                }\n                return result;\n            case 'yy':\n                if (number === 1) {\n                    result += 'godina';\n                } else if (number === 2 || number === 3 || number === 4) {\n                    result += 'godine';\n                } else {\n                    result += 'godina';\n                }\n                return result;\n        }\n    }\n\n    var hr = moment.defineLocale('hr', {\n        months: {\n            format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n                '_'\n            ),\n            standalone:\n                'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n                    '_'\n                ),\n        },\n        monthsShort:\n            'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'Do MMMM YYYY',\n            LLL: 'Do MMMM YYYY H:mm',\n            LLLL: 'dddd, Do MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sutra u] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedjelju] [u] LT';\n                    case 3:\n                        return '[u] [srijedu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[jučer u] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[prošlu] [nedjelju] [u] LT';\n                    case 3:\n                        return '[prošlu] [srijedu] [u] LT';\n                    case 6:\n                        return '[prošle] [subote] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[prošli] dddd [u] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'prije %s',\n            s: 'par sekundi',\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: 'dan',\n            dd: translate,\n            M: 'mjesec',\n            MM: translate,\n            y: 'godinu',\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return hr;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/hr.js?");

/***/ }),

/***/ "./node_modules/moment/locale/hu.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/hu.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt  : https://github.com/passatgt\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var weekEndings =\n        'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n    function translate(number, withoutSuffix, key, isFuture) {\n        var num = number;\n        switch (key) {\n            case 's':\n                return isFuture || withoutSuffix\n                    ? 'néhány másodperc'\n                    : 'néhány másodperce';\n            case 'ss':\n                return num + (isFuture || withoutSuffix)\n                    ? ' másodperc'\n                    : ' másodperce';\n            case 'm':\n                return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n            case 'mm':\n                return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n            case 'h':\n                return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n            case 'hh':\n                return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n            case 'd':\n                return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n            case 'dd':\n                return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n            case 'M':\n                return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n            case 'MM':\n                return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n            case 'y':\n                return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n            case 'yy':\n                return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n        }\n        return '';\n    }\n    function week(isFuture) {\n        return (\n            (isFuture ? '' : '[múlt] ') +\n            '[' +\n            weekEndings[this.day()] +\n            '] LT[-kor]'\n        );\n    }\n\n    var hu = moment.defineLocale('hu', {\n        months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n            '_'\n        ),\n        monthsShort:\n            'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n        weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n        weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'YYYY.MM.DD.',\n            LL: 'YYYY. MMMM D.',\n            LLL: 'YYYY. MMMM D. H:mm',\n            LLLL: 'YYYY. MMMM D., dddd H:mm',\n        },\n        meridiemParse: /de|du/i,\n        isPM: function (input) {\n            return input.charAt(1).toLowerCase() === 'u';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower === true ? 'de' : 'DE';\n            } else {\n                return isLower === true ? 'du' : 'DU';\n            }\n        },\n        calendar: {\n            sameDay: '[ma] LT[-kor]',\n            nextDay: '[holnap] LT[-kor]',\n            nextWeek: function () {\n                return week.call(this, true);\n            },\n            lastDay: '[tegnap] LT[-kor]',\n            lastWeek: function () {\n                return week.call(this, false);\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s múlva',\n            past: '%s',\n            s: translate,\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: translate,\n            dd: translate,\n            M: translate,\n            MM: translate,\n            y: translate,\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return hu;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/hu.js?");

/***/ }),

/***/ "./node_modules/moment/locale/hy-am.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/hy-am.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var hyAm = moment.defineLocale('hy-am', {\n        months: {\n            format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n                '_'\n            ),\n            standalone:\n                'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n                    '_'\n                ),\n        },\n        monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n        weekdays:\n            'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n                '_'\n            ),\n        weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n        weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY թ.',\n            LLL: 'D MMMM YYYY թ., HH:mm',\n            LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n        },\n        calendar: {\n            sameDay: '[այսօր] LT',\n            nextDay: '[վաղը] LT',\n            lastDay: '[երեկ] LT',\n            nextWeek: function () {\n                return 'dddd [օրը ժամը] LT';\n            },\n            lastWeek: function () {\n                return '[անցած] dddd [օրը ժամը] LT';\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s հետո',\n            past: '%s առաջ',\n            s: 'մի քանի վայրկյան',\n            ss: '%d վայրկյան',\n            m: 'րոպե',\n            mm: '%d րոպե',\n            h: 'ժամ',\n            hh: '%d ժամ',\n            d: 'օր',\n            dd: '%d օր',\n            M: 'ամիս',\n            MM: '%d ամիս',\n            y: 'տարի',\n            yy: '%d տարի',\n        },\n        meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n        isPM: function (input) {\n            return /^(ցերեկվա|երեկոյան)$/.test(input);\n        },\n        meridiem: function (hour) {\n            if (hour < 4) {\n                return 'գիշերվա';\n            } else if (hour < 12) {\n                return 'առավոտվա';\n            } else if (hour < 17) {\n                return 'ցերեկվա';\n            } else {\n                return 'երեկոյան';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'DDD':\n                case 'w':\n                case 'W':\n                case 'DDDo':\n                    if (number === 1) {\n                        return number + '-ին';\n                    }\n                    return number + '-րդ';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return hyAm;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/hy-am.js?");

/***/ }),

/***/ "./node_modules/moment/locale/id.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/id.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var id = moment.defineLocale('id', {\n        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n        weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n        weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /pagi|siang|sore|malam/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'pagi') {\n                return hour;\n            } else if (meridiem === 'siang') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'sore' || meridiem === 'malam') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'pagi';\n            } else if (hours < 15) {\n                return 'siang';\n            } else if (hours < 19) {\n                return 'sore';\n            } else {\n                return 'malam';\n            }\n        },\n        calendar: {\n            sameDay: '[Hari ini pukul] LT',\n            nextDay: '[Besok pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kemarin pukul] LT',\n            lastWeek: 'dddd [lalu pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dalam %s',\n            past: '%s yang lalu',\n            s: 'beberapa detik',\n            ss: '%d detik',\n            m: 'semenit',\n            mm: '%d menit',\n            h: 'sejam',\n            hh: '%d jam',\n            d: 'sehari',\n            dd: '%d hari',\n            M: 'sebulan',\n            MM: '%d bulan',\n            y: 'setahun',\n            yy: '%d tahun',\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return id;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/id.js?");

/***/ }),

/***/ "./node_modules/moment/locale/is.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/is.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function plural(n) {\n        if (n % 100 === 11) {\n            return true;\n        } else if (n % 10 === 1) {\n            return false;\n        }\n        return true;\n    }\n    function translate(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's':\n                return withoutSuffix || isFuture\n                    ? 'nokkrar sekúndur'\n                    : 'nokkrum sekúndum';\n            case 'ss':\n                if (plural(number)) {\n                    return (\n                        result +\n                        (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n                    );\n                }\n                return result + 'sekúnda';\n            case 'm':\n                return withoutSuffix ? 'mínúta' : 'mínútu';\n            case 'mm':\n                if (plural(number)) {\n                    return (\n                        result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n                    );\n                } else if (withoutSuffix) {\n                    return result + 'mínúta';\n                }\n                return result + 'mínútu';\n            case 'hh':\n                if (plural(number)) {\n                    return (\n                        result +\n                        (withoutSuffix || isFuture\n                            ? 'klukkustundir'\n                            : 'klukkustundum')\n                    );\n                }\n                return result + 'klukkustund';\n            case 'd':\n                if (withoutSuffix) {\n                    return 'dagur';\n                }\n                return isFuture ? 'dag' : 'degi';\n            case 'dd':\n                if (plural(number)) {\n                    if (withoutSuffix) {\n                        return result + 'dagar';\n                    }\n                    return result + (isFuture ? 'daga' : 'dögum');\n                } else if (withoutSuffix) {\n                    return result + 'dagur';\n                }\n                return result + (isFuture ? 'dag' : 'degi');\n            case 'M':\n                if (withoutSuffix) {\n                    return 'mánuður';\n                }\n                return isFuture ? 'mánuð' : 'mánuði';\n            case 'MM':\n                if (plural(number)) {\n                    if (withoutSuffix) {\n                        return result + 'mánuðir';\n                    }\n                    return result + (isFuture ? 'mánuði' : 'mánuðum');\n                } else if (withoutSuffix) {\n                    return result + 'mánuður';\n                }\n                return result + (isFuture ? 'mánuð' : 'mánuði');\n            case 'y':\n                return withoutSuffix || isFuture ? 'ár' : 'ári';\n            case 'yy':\n                if (plural(number)) {\n                    return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n                }\n                return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n        }\n    }\n\n    var is = moment.defineLocale('is', {\n        months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n        weekdays:\n            'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n                '_'\n            ),\n        weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n        weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY [kl.] H:mm',\n            LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n        },\n        calendar: {\n            sameDay: '[í dag kl.] LT',\n            nextDay: '[á morgun kl.] LT',\n            nextWeek: 'dddd [kl.] LT',\n            lastDay: '[í gær kl.] LT',\n            lastWeek: '[síðasta] dddd [kl.] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'eftir %s',\n            past: 'fyrir %s síðan',\n            s: translate,\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: 'klukkustund',\n            hh: translate,\n            d: translate,\n            dd: translate,\n            M: translate,\n            MM: translate,\n            y: translate,\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return is;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/is.js?");

/***/ }),

/***/ "./node_modules/moment/locale/it-ch.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/it-ch.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var itCh = moment.defineLocale('it-ch', {\n        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n            '_'\n        ),\n        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n            '_'\n        ),\n        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Oggi alle] LT',\n            nextDay: '[Domani alle] LT',\n            nextWeek: 'dddd [alle] LT',\n            lastDay: '[Ieri alle] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[la scorsa] dddd [alle] LT';\n                    default:\n                        return '[lo scorso] dddd [alle] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (s) {\n                return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n            },\n            past: '%s fa',\n            s: 'alcuni secondi',\n            ss: '%d secondi',\n            m: 'un minuto',\n            mm: '%d minuti',\n            h: \"un'ora\",\n            hh: '%d ore',\n            d: 'un giorno',\n            dd: '%d giorni',\n            M: 'un mese',\n            MM: '%d mesi',\n            y: 'un anno',\n            yy: '%d anni',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return itCh;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/it-ch.js?");

/***/ }),

/***/ "./node_modules/moment/locale/it.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/it.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var it = moment.defineLocale('it', {\n        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n            '_'\n        ),\n        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n            '_'\n        ),\n        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: function () {\n                return (\n                    '[Oggi a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            nextDay: function () {\n                return (\n                    '[Domani a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            nextWeek: function () {\n                return (\n                    'dddd [a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            lastDay: function () {\n                return (\n                    '[Ieri a' +\n                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n                    ']LT'\n                );\n            },\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return (\n                            '[La scorsa] dddd [a' +\n                            (this.hours() > 1\n                                ? 'lle '\n                                : this.hours() === 0\n                                  ? ' '\n                                  : \"ll'\") +\n                            ']LT'\n                        );\n                    default:\n                        return (\n                            '[Lo scorso] dddd [a' +\n                            (this.hours() > 1\n                                ? 'lle '\n                                : this.hours() === 0\n                                  ? ' '\n                                  : \"ll'\") +\n                            ']LT'\n                        );\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'tra %s',\n            past: '%s fa',\n            s: 'alcuni secondi',\n            ss: '%d secondi',\n            m: 'un minuto',\n            mm: '%d minuti',\n            h: \"un'ora\",\n            hh: '%d ore',\n            d: 'un giorno',\n            dd: '%d giorni',\n            w: 'una settimana',\n            ww: '%d settimane',\n            M: 'un mese',\n            MM: '%d mesi',\n            y: 'un anno',\n            yy: '%d anni',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return it;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/it.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ja.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ja.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ja = moment.defineLocale('ja', {\n        eras: [\n            {\n                since: '2019-05-01',\n                offset: 1,\n                name: '令和',\n                narrow: '㋿',\n                abbr: 'R',\n            },\n            {\n                since: '1989-01-08',\n                until: '2019-04-30',\n                offset: 1,\n                name: '平成',\n                narrow: '㍻',\n                abbr: 'H',\n            },\n            {\n                since: '1926-12-25',\n                until: '1989-01-07',\n                offset: 1,\n                name: '昭和',\n                narrow: '㍼',\n                abbr: 'S',\n            },\n            {\n                since: '1912-07-30',\n                until: '1926-12-24',\n                offset: 1,\n                name: '大正',\n                narrow: '㍽',\n                abbr: 'T',\n            },\n            {\n                since: '1873-01-01',\n                until: '1912-07-29',\n                offset: 6,\n                name: '明治',\n                narrow: '㍾',\n                abbr: 'M',\n            },\n            {\n                since: '0001-01-01',\n                until: '1873-12-31',\n                offset: 1,\n                name: '西暦',\n                narrow: 'AD',\n                abbr: 'AD',\n            },\n            {\n                since: '0000-12-31',\n                until: -Infinity,\n                offset: 1,\n                name: '紀元前',\n                narrow: 'BC',\n                abbr: 'BC',\n            },\n        ],\n        eraYearOrdinalRegex: /(元|\\d+)年/,\n        eraYearOrdinalParse: function (input, match) {\n            return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n        },\n        months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n        weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n        weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日 dddd HH:mm',\n            l: 'YYYY/MM/DD',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日(ddd) HH:mm',\n        },\n        meridiemParse: /午前|午後/i,\n        isPM: function (input) {\n            return input === '午後';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return '午前';\n            } else {\n                return '午後';\n            }\n        },\n        calendar: {\n            sameDay: '[今日] LT',\n            nextDay: '[明日] LT',\n            nextWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    return '[来週]dddd LT';\n                } else {\n                    return 'dddd LT';\n                }\n            },\n            lastDay: '[昨日] LT',\n            lastWeek: function (now) {\n                if (this.week() !== now.week()) {\n                    return '[先週]dddd LT';\n                } else {\n                    return 'dddd LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}日/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'y':\n                    return number === 1 ? '元年' : number + '年';\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s後',\n            past: '%s前',\n            s: '数秒',\n            ss: '%d秒',\n            m: '1分',\n            mm: '%d分',\n            h: '1時間',\n            hh: '%d時間',\n            d: '1日',\n            dd: '%d日',\n            M: '1ヶ月',\n            MM: '%dヶ月',\n            y: '1年',\n            yy: '%d年',\n        },\n    });\n\n    return ja;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ja.js?");

/***/ }),

/***/ "./node_modules/moment/locale/jv.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/jv.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var jv = moment.defineLocale('jv', {\n        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n        weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n        weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /enjing|siyang|sonten|ndalu/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'enjing') {\n                return hour;\n            } else if (meridiem === 'siyang') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'enjing';\n            } else if (hours < 15) {\n                return 'siyang';\n            } else if (hours < 19) {\n                return 'sonten';\n            } else {\n                return 'ndalu';\n            }\n        },\n        calendar: {\n            sameDay: '[Dinten puniko pukul] LT',\n            nextDay: '[Mbenjang pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kala wingi pukul] LT',\n            lastWeek: 'dddd [kepengker pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'wonten ing %s',\n            past: '%s ingkang kepengker',\n            s: 'sawetawis detik',\n            ss: '%d detik',\n            m: 'setunggal menit',\n            mm: '%d menit',\n            h: 'setunggal jam',\n            hh: '%d jam',\n            d: 'sedinten',\n            dd: '%d dinten',\n            M: 'sewulan',\n            MM: '%d wulan',\n            y: 'setaun',\n            yy: '%d taun',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return jv;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/jv.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ka.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ka.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ka = moment.defineLocale('ka', {\n        months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n            '_'\n        ),\n        monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n        weekdays: {\n            standalone:\n                'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n                    '_'\n                ),\n            format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n                '_'\n            ),\n            isFormat: /(წინა|შემდეგ)/,\n        },\n        weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n        weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[დღეს] LT[-ზე]',\n            nextDay: '[ხვალ] LT[-ზე]',\n            lastDay: '[გუშინ] LT[-ზე]',\n            nextWeek: '[შემდეგ] dddd LT[-ზე]',\n            lastWeek: '[წინა] dddd LT-ზე',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: function (s) {\n                return s.replace(\n                    /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,\n                    function ($0, $1, $2) {\n                        return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n                    }\n                );\n            },\n            past: function (s) {\n                if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n                    return s.replace(/(ი|ე)$/, 'ის წინ');\n                }\n                if (/წელი/.test(s)) {\n                    return s.replace(/წელი$/, 'წლის წინ');\n                }\n                return s;\n            },\n            s: 'რამდენიმე წამი',\n            ss: '%d წამი',\n            m: 'წუთი',\n            mm: '%d წუთი',\n            h: 'საათი',\n            hh: '%d საათი',\n            d: 'დღე',\n            dd: '%d დღე',\n            M: 'თვე',\n            MM: '%d თვე',\n            y: 'წელი',\n            yy: '%d წელი',\n        },\n        dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n        ordinal: function (number) {\n            if (number === 0) {\n                return number;\n            }\n            if (number === 1) {\n                return number + '-ლი';\n            }\n            if (\n                number < 20 ||\n                (number <= 100 && number % 20 === 0) ||\n                number % 100 === 0\n            ) {\n                return 'მე-' + number;\n            }\n            return number + '-ე';\n        },\n        week: {\n            dow: 1,\n            doy: 7,\n        },\n    });\n\n    return ka;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ka.js?");

/***/ }),

/***/ "./node_modules/moment/locale/kk.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/kk.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var suffixes = {\n        0: '-ші',\n        1: '-ші',\n        2: '-ші',\n        3: '-ші',\n        4: '-ші',\n        5: '-ші',\n        6: '-шы',\n        7: '-ші',\n        8: '-ші',\n        9: '-шы',\n        10: '-шы',\n        20: '-шы',\n        30: '-шы',\n        40: '-шы',\n        50: '-ші',\n        60: '-шы',\n        70: '-ші',\n        80: '-ші',\n        90: '-шы',\n        100: '-ші',\n    };\n\n    var kk = moment.defineLocale('kk', {\n        months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n            '_'\n        ),\n        monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n        weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n            '_'\n        ),\n        weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n        weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Бүгін сағат] LT',\n            nextDay: '[Ертең сағат] LT',\n            nextWeek: 'dddd [сағат] LT',\n            lastDay: '[Кеше сағат] LT',\n            lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ішінде',\n            past: '%s бұрын',\n            s: 'бірнеше секунд',\n            ss: '%d секунд',\n            m: 'бір минут',\n            mm: '%d минут',\n            h: 'бір сағат',\n            hh: '%d сағат',\n            d: 'бір күн',\n            dd: '%d күн',\n            M: 'бір ай',\n            MM: '%d ай',\n            y: 'бір жыл',\n            yy: '%d жыл',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n        ordinal: function (number) {\n            var a = number % 10,\n                b = number >= 100 ? 100 : null;\n            return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return kk;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/kk.js?");

/***/ }),

/***/ "./node_modules/moment/locale/km.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/km.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '១',\n            2: '២',\n            3: '៣',\n            4: '៤',\n            5: '៥',\n            6: '៦',\n            7: '៧',\n            8: '៨',\n            9: '៩',\n            0: '០',\n        },\n        numberMap = {\n            '១': '1',\n            '២': '2',\n            '៣': '3',\n            '៤': '4',\n            '៥': '5',\n            '៦': '6',\n            '៧': '7',\n            '៨': '8',\n            '៩': '9',\n            '០': '0',\n        };\n\n    var km = moment.defineLocale('km', {\n        months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n            '_'\n        ),\n        monthsShort:\n            'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n                '_'\n            ),\n        weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n        weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n        weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ព្រឹក|ល្ងាច/,\n        isPM: function (input) {\n            return input === 'ល្ងាច';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ព្រឹក';\n            } else {\n                return 'ល្ងាច';\n            }\n        },\n        calendar: {\n            sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n            nextDay: '[ស្អែក ម៉ោង] LT',\n            nextWeek: 'dddd [ម៉ោង] LT',\n            lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n            lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sទៀត',\n            past: '%sមុន',\n            s: 'ប៉ុន្មានវិនាទី',\n            ss: '%d វិនាទី',\n            m: 'មួយនាទី',\n            mm: '%d នាទី',\n            h: 'មួយម៉ោង',\n            hh: '%d ម៉ោង',\n            d: 'មួយថ្ងៃ',\n            dd: '%d ថ្ងៃ',\n            M: 'មួយខែ',\n            MM: '%d ខែ',\n            y: 'មួយឆ្នាំ',\n            yy: '%d ឆ្នាំ',\n        },\n        dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n        ordinal: 'ទី%d',\n        preparse: function (string) {\n            return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return km;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/km.js?");

/***/ }),

/***/ "./node_modules/moment/locale/kn.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/kn.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '೧',\n            2: '೨',\n            3: '೩',\n            4: '೪',\n            5: '೫',\n            6: '೬',\n            7: '೭',\n            8: '೮',\n            9: '೯',\n            0: '೦',\n        },\n        numberMap = {\n            '೧': '1',\n            '೨': '2',\n            '೩': '3',\n            '೪': '4',\n            '೫': '5',\n            '೬': '6',\n            '೭': '7',\n            '೮': '8',\n            '೯': '9',\n            '೦': '0',\n        };\n\n    var kn = moment.defineLocale('kn', {\n        months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n            '_'\n        ),\n        monthsShort:\n            'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n            '_'\n        ),\n        weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n        weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm',\n        },\n        calendar: {\n            sameDay: '[ಇಂದು] LT',\n            nextDay: '[ನಾಳೆ] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[ನಿನ್ನೆ] LT',\n            lastWeek: '[ಕೊನೆಯ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ನಂತರ',\n            past: '%s ಹಿಂದೆ',\n            s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n            ss: '%d ಸೆಕೆಂಡುಗಳು',\n            m: 'ಒಂದು ನಿಮಿಷ',\n            mm: '%d ನಿಮಿಷ',\n            h: 'ಒಂದು ಗಂಟೆ',\n            hh: '%d ಗಂಟೆ',\n            d: 'ಒಂದು ದಿನ',\n            dd: '%d ದಿನ',\n            M: 'ಒಂದು ತಿಂಗಳು',\n            MM: '%d ತಿಂಗಳು',\n            y: 'ಒಂದು ವರ್ಷ',\n            yy: '%d ವರ್ಷ',\n        },\n        preparse: function (string) {\n            return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'ರಾತ್ರಿ') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n                return hour;\n            } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'ಸಂಜೆ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ರಾತ್ರಿ';\n            } else if (hour < 10) {\n                return 'ಬೆಳಿಗ್ಗೆ';\n            } else if (hour < 17) {\n                return 'ಮಧ್ಯಾಹ್ನ';\n            } else if (hour < 20) {\n                return 'ಸಂಜೆ';\n            } else {\n                return 'ರಾತ್ರಿ';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n        ordinal: function (number) {\n            return number + 'ನೇ';\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return kn;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/kn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ko.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ko.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ko = moment.defineLocale('ko', {\n        months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n        monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n            '_'\n        ),\n        weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n        weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n        weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'YYYY.MM.DD.',\n            LL: 'YYYY년 MMMM D일',\n            LLL: 'YYYY년 MMMM D일 A h:mm',\n            LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n            l: 'YYYY.MM.DD.',\n            ll: 'YYYY년 MMMM D일',\n            lll: 'YYYY년 MMMM D일 A h:mm',\n            llll: 'YYYY년 MMMM D일 dddd A h:mm',\n        },\n        calendar: {\n            sameDay: '오늘 LT',\n            nextDay: '내일 LT',\n            nextWeek: 'dddd LT',\n            lastDay: '어제 LT',\n            lastWeek: '지난주 dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s 후',\n            past: '%s 전',\n            s: '몇 초',\n            ss: '%d초',\n            m: '1분',\n            mm: '%d분',\n            h: '한 시간',\n            hh: '%d시간',\n            d: '하루',\n            dd: '%d일',\n            M: '한 달',\n            MM: '%d달',\n            y: '일 년',\n            yy: '%d년',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '일';\n                case 'M':\n                    return number + '월';\n                case 'w':\n                case 'W':\n                    return number + '주';\n                default:\n                    return number;\n            }\n        },\n        meridiemParse: /오전|오후/,\n        isPM: function (token) {\n            return token === '오후';\n        },\n        meridiem: function (hour, minute, isUpper) {\n            return hour < 12 ? '오전' : '오후';\n        },\n    });\n\n    return ko;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ko.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ku-kmr.js":
/*!**********************************************!*\
  !*** ./node_modules/moment/locale/ku-kmr.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Northern Kurdish [ku-kmr]\n//! authors : Mazlum Özdogan : https://github.com/mergehez\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(num, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['çend sanîye', 'çend sanîyeyan'],\n            ss: [num + ' sanîye', num + ' sanîyeyan'],\n            m: ['deqîqeyek', 'deqîqeyekê'],\n            mm: [num + ' deqîqe', num + ' deqîqeyan'],\n            h: ['saetek', 'saetekê'],\n            hh: [num + ' saet', num + ' saetan'],\n            d: ['rojek', 'rojekê'],\n            dd: [num + ' roj', num + ' rojan'],\n            w: ['hefteyek', 'hefteyekê'],\n            ww: [num + ' hefte', num + ' hefteyan'],\n            M: ['mehek', 'mehekê'],\n            MM: [num + ' meh', num + ' mehan'],\n            y: ['salek', 'salekê'],\n            yy: [num + ' sal', num + ' salan'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n    // function obliqueNumSuffix(num) {\n    //     if(num.includes(':'))\n    //         num = parseInt(num.split(':')[0]);\n    //     else\n    //         num = parseInt(num);\n    //     return num == 0 || num % 10 == 1 ? 'ê'\n    //                         : (num > 10 && num % 10 == 0 ? 'î' : 'an');\n    // }\n    function ezafeNumSuffix(num) {\n        num = '' + num;\n        var l = num.substring(num.length - 1),\n            ll = num.length > 1 ? num.substring(num.length - 2) : '';\n        if (\n            !(ll == 12 || ll == 13) &&\n            (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')\n        )\n            return 'yê';\n        return 'ê';\n    }\n\n    var kuKmr = moment.defineLocale('ku-kmr', {\n        // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)\n        // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'\n        // But the names below are more well known and handy\n        months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split(\n            '_'\n        ),\n        monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'),\n        monthsParseExact: true,\n        weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'),\n        weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'),\n        weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'),\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower ? 'bn' : 'BN';\n            } else {\n                return isLower ? 'pn' : 'PN';\n            }\n        },\n        meridiemParse: /bn|BN|pn|PN/,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'Do MMMM[a] YYYY[an]',\n            LLL: 'Do MMMM[a] YYYY[an] HH:mm',\n            LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',\n            ll: 'Do MMM[.] YYYY[an]',\n            lll: 'Do MMM[.] YYYY[an] HH:mm',\n            llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm',\n        },\n        calendar: {\n            sameDay: '[Îro di saet] LT [de]',\n            nextDay: '[Sibê di saet] LT [de]',\n            nextWeek: 'dddd [di saet] LT [de]',\n            lastDay: '[Duh di saet] LT [de]',\n            lastWeek: 'dddd[a borî di saet] LT [de]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'di %s de',\n            past: 'berî %s',\n            s: processRelativeTime,\n            ss: processRelativeTime,\n            m: processRelativeTime,\n            mm: processRelativeTime,\n            h: processRelativeTime,\n            hh: processRelativeTime,\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            w: processRelativeTime,\n            ww: processRelativeTime,\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(?:yê|ê|\\.)/,\n        ordinal: function (num, period) {\n            var p = period.toLowerCase();\n            if (p.includes('w') || p.includes('m')) return num + '.';\n\n            return num + ezafeNumSuffix(num);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return kuKmr;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ku-kmr.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ku.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ku.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '١',\n            2: '٢',\n            3: '٣',\n            4: '٤',\n            5: '٥',\n            6: '٦',\n            7: '٧',\n            8: '٨',\n            9: '٩',\n            0: '٠',\n        },\n        numberMap = {\n            '١': '1',\n            '٢': '2',\n            '٣': '3',\n            '٤': '4',\n            '٥': '5',\n            '٦': '6',\n            '٧': '7',\n            '٨': '8',\n            '٩': '9',\n            '٠': '0',\n        },\n        months = [\n            'کانونی دووەم',\n            'شوبات',\n            'ئازار',\n            'نیسان',\n            'ئایار',\n            'حوزەیران',\n            'تەمموز',\n            'ئاب',\n            'ئەیلوول',\n            'تشرینی یەكەم',\n            'تشرینی دووەم',\n            'كانونی یەکەم',\n        ];\n\n    var ku = moment.defineLocale('ku', {\n        months: months,\n        monthsShort: months,\n        weekdays:\n            'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n                '_'\n            ),\n        weekdaysShort:\n            'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n        weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ئێواره‌|به‌یانی/,\n        isPM: function (input) {\n            return /ئێواره‌/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'به‌یانی';\n            } else {\n                return 'ئێواره‌';\n            }\n        },\n        calendar: {\n            sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n            nextDay: '[به‌یانی كاتژمێر] LT',\n            nextWeek: 'dddd [كاتژمێر] LT',\n            lastDay: '[دوێنێ كاتژمێر] LT',\n            lastWeek: 'dddd [كاتژمێر] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'له‌ %s',\n            past: '%s',\n            s: 'چه‌ند چركه‌یه‌ك',\n            ss: 'چركه‌ %d',\n            m: 'یه‌ك خوله‌ك',\n            mm: '%d خوله‌ك',\n            h: 'یه‌ك كاتژمێر',\n            hh: '%d كاتژمێر',\n            d: 'یه‌ك ڕۆژ',\n            dd: '%d ڕۆژ',\n            M: 'یه‌ك مانگ',\n            MM: '%d مانگ',\n            y: 'یه‌ك ساڵ',\n            yy: '%d ساڵ',\n        },\n        preparse: function (string) {\n            return string\n                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n                    return numberMap[match];\n                })\n                .replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string\n                .replace(/\\d/g, function (match) {\n                    return symbolMap[match];\n                })\n                .replace(/,/g, '،');\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return ku;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ku.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ky.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ky.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var suffixes = {\n        0: '-чү',\n        1: '-чи',\n        2: '-чи',\n        3: '-чү',\n        4: '-чү',\n        5: '-чи',\n        6: '-чы',\n        7: '-чи',\n        8: '-чи',\n        9: '-чу',\n        10: '-чу',\n        20: '-чы',\n        30: '-чу',\n        40: '-чы',\n        50: '-чү',\n        60: '-чы',\n        70: '-чи',\n        80: '-чи',\n        90: '-чу',\n        100: '-чү',\n    };\n\n    var ky = moment.defineLocale('ky', {\n        months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n            '_'\n        ),\n        monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n            '_'\n        ),\n        weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n            '_'\n        ),\n        weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n        weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Бүгүн саат] LT',\n            nextDay: '[Эртең саат] LT',\n            nextWeek: 'dddd [саат] LT',\n            lastDay: '[Кечээ саат] LT',\n            lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ичинде',\n            past: '%s мурун',\n            s: 'бирнече секунд',\n            ss: '%d секунд',\n            m: 'бир мүнөт',\n            mm: '%d мүнөт',\n            h: 'бир саат',\n            hh: '%d саат',\n            d: 'бир күн',\n            dd: '%d күн',\n            M: 'бир ай',\n            MM: '%d ай',\n            y: 'бир жыл',\n            yy: '%d жыл',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n        ordinal: function (number) {\n            var a = number % 10,\n                b = number >= 100 ? 100 : null;\n            return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return ky;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ky.js?");

/***/ }),

/***/ "./node_modules/moment/locale/lb.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/lb.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            m: ['eng Minutt', 'enger Minutt'],\n            h: ['eng Stonn', 'enger Stonn'],\n            d: ['een Dag', 'engem Dag'],\n            M: ['ee Mount', 'engem Mount'],\n            y: ['ee Joer', 'engem Joer'],\n        };\n        return withoutSuffix ? format[key][0] : format[key][1];\n    }\n    function processFutureTime(string) {\n        var number = string.substr(0, string.indexOf(' '));\n        if (eifelerRegelAppliesToNumber(number)) {\n            return 'a ' + string;\n        }\n        return 'an ' + string;\n    }\n    function processPastTime(string) {\n        var number = string.substr(0, string.indexOf(' '));\n        if (eifelerRegelAppliesToNumber(number)) {\n            return 'viru ' + string;\n        }\n        return 'virun ' + string;\n    }\n    /**\n     * Returns true if the word before the given number loses the '-n' ending.\n     * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n     *\n     * @param number {integer}\n     * @returns {boolean}\n     */\n    function eifelerRegelAppliesToNumber(number) {\n        number = parseInt(number, 10);\n        if (isNaN(number)) {\n            return false;\n        }\n        if (number < 0) {\n            // Negative Number --> always true\n            return true;\n        } else if (number < 10) {\n            // Only 1 digit\n            if (4 <= number && number <= 7) {\n                return true;\n            }\n            return false;\n        } else if (number < 100) {\n            // 2 digits\n            var lastDigit = number % 10,\n                firstDigit = number / 10;\n            if (lastDigit === 0) {\n                return eifelerRegelAppliesToNumber(firstDigit);\n            }\n            return eifelerRegelAppliesToNumber(lastDigit);\n        } else if (number < 10000) {\n            // 3 or 4 digits --> recursively check first digit\n            while (number >= 10) {\n                number = number / 10;\n            }\n            return eifelerRegelAppliesToNumber(number);\n        } else {\n            // Anything larger than 4 digits: recursively check first n-3 digits\n            number = number / 1000;\n            return eifelerRegelAppliesToNumber(number);\n        }\n    }\n\n    var lb = moment.defineLocale('lb', {\n        months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n            '_'\n        ),\n        monthsShort:\n            'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays:\n            'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n                '_'\n            ),\n        weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n        weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm [Auer]',\n            LTS: 'H:mm:ss [Auer]',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm [Auer]',\n            LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n        },\n        calendar: {\n            sameDay: '[Haut um] LT',\n            sameElse: 'L',\n            nextDay: '[Muer um] LT',\n            nextWeek: 'dddd [um] LT',\n            lastDay: '[Gëschter um] LT',\n            lastWeek: function () {\n                // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n                switch (this.day()) {\n                    case 2:\n                    case 4:\n                        return '[Leschten] dddd [um] LT';\n                    default:\n                        return '[Leschte] dddd [um] LT';\n                }\n            },\n        },\n        relativeTime: {\n            future: processFutureTime,\n            past: processPastTime,\n            s: 'e puer Sekonnen',\n            ss: '%d Sekonnen',\n            m: processRelativeTime,\n            mm: '%d Minutten',\n            h: processRelativeTime,\n            hh: '%d Stonnen',\n            d: processRelativeTime,\n            dd: '%d Deeg',\n            M: processRelativeTime,\n            MM: '%d Méint',\n            y: processRelativeTime,\n            yy: '%d Joer',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return lb;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/lb.js?");

/***/ }),

/***/ "./node_modules/moment/locale/lo.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/lo.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var lo = moment.defineLocale('lo', {\n        months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n            '_'\n        ),\n        monthsShort:\n            'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n                '_'\n            ),\n        weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n        weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n        weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n        isPM: function (input) {\n            return input === 'ຕອນແລງ';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ຕອນເຊົ້າ';\n            } else {\n                return 'ຕອນແລງ';\n            }\n        },\n        calendar: {\n            sameDay: '[ມື້ນີ້ເວລາ] LT',\n            nextDay: '[ມື້ອື່ນເວລາ] LT',\n            nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n            lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n            lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ອີກ %s',\n            past: '%sຜ່ານມາ',\n            s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n            ss: '%d ວິນາທີ',\n            m: '1 ນາທີ',\n            mm: '%d ນາທີ',\n            h: '1 ຊົ່ວໂມງ',\n            hh: '%d ຊົ່ວໂມງ',\n            d: '1 ມື້',\n            dd: '%d ມື້',\n            M: '1 ເດືອນ',\n            MM: '%d ເດືອນ',\n            y: '1 ປີ',\n            yy: '%d ປີ',\n        },\n        dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n        ordinal: function (number) {\n            return 'ທີ່' + number;\n        },\n    });\n\n    return lo;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/lo.js?");

/***/ }),

/***/ "./node_modules/moment/locale/lt.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/lt.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var units = {\n        ss: 'sekundė_sekundžių_sekundes',\n        m: 'minutė_minutės_minutę',\n        mm: 'minutės_minučių_minutes',\n        h: 'valanda_valandos_valandą',\n        hh: 'valandos_valandų_valandas',\n        d: 'diena_dienos_dieną',\n        dd: 'dienos_dienų_dienas',\n        M: 'mėnuo_mėnesio_mėnesį',\n        MM: 'mėnesiai_mėnesių_mėnesius',\n        y: 'metai_metų_metus',\n        yy: 'metai_metų_metus',\n    };\n    function translateSeconds(number, withoutSuffix, key, isFuture) {\n        if (withoutSuffix) {\n            return 'kelios sekundės';\n        } else {\n            return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n        }\n    }\n    function translateSingular(number, withoutSuffix, key, isFuture) {\n        return withoutSuffix\n            ? forms(key)[0]\n            : isFuture\n              ? forms(key)[1]\n              : forms(key)[2];\n    }\n    function special(number) {\n        return number % 10 === 0 || (number > 10 && number < 20);\n    }\n    function forms(key) {\n        return units[key].split('_');\n    }\n    function translate(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        if (number === 1) {\n            return (\n                result + translateSingular(number, withoutSuffix, key[0], isFuture)\n            );\n        } else if (withoutSuffix) {\n            return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n        } else {\n            if (isFuture) {\n                return result + forms(key)[1];\n            } else {\n                return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n            }\n        }\n    }\n    var lt = moment.defineLocale('lt', {\n        months: {\n            format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n                '_'\n            ),\n            standalone:\n                'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n                    '_'\n                ),\n            isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n        },\n        monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n        weekdays: {\n            format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n                '_'\n            ),\n            standalone:\n                'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n                    '_'\n                ),\n            isFormat: /dddd HH:mm/,\n        },\n        weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n        weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY [m.] MMMM D [d.]',\n            LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n            LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n            l: 'YYYY-MM-DD',\n            ll: 'YYYY [m.] MMMM D [d.]',\n            lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n            llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n        },\n        calendar: {\n            sameDay: '[Šiandien] LT',\n            nextDay: '[Rytoj] LT',\n            nextWeek: 'dddd LT',\n            lastDay: '[Vakar] LT',\n            lastWeek: '[Praėjusį] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'po %s',\n            past: 'prieš %s',\n            s: translateSeconds,\n            ss: translate,\n            m: translateSingular,\n            mm: translate,\n            h: translateSingular,\n            hh: translate,\n            d: translateSingular,\n            dd: translate,\n            M: translateSingular,\n            MM: translate,\n            y: translateSingular,\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n        ordinal: function (number) {\n            return number + '-oji';\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return lt;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/lt.js?");

/***/ }),

/***/ "./node_modules/moment/locale/lv.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/lv.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var units = {\n        ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n        m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n        mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n        h: 'stundas_stundām_stunda_stundas'.split('_'),\n        hh: 'stundas_stundām_stunda_stundas'.split('_'),\n        d: 'dienas_dienām_diena_dienas'.split('_'),\n        dd: 'dienas_dienām_diena_dienas'.split('_'),\n        M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n        MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n        y: 'gada_gadiem_gads_gadi'.split('_'),\n        yy: 'gada_gadiem_gads_gadi'.split('_'),\n    };\n    /**\n     * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n     */\n    function format(forms, number, withoutSuffix) {\n        if (withoutSuffix) {\n            // E.g. \"21 minūte\", \"3 minūtes\".\n            return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n        } else {\n            // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n            // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n            return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n        }\n    }\n    function relativeTimeWithPlural(number, withoutSuffix, key) {\n        return number + ' ' + format(units[key], number, withoutSuffix);\n    }\n    function relativeTimeWithSingular(number, withoutSuffix, key) {\n        return format(units[key], number, withoutSuffix);\n    }\n    function relativeSeconds(number, withoutSuffix) {\n        return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n    }\n\n    var lv = moment.defineLocale('lv', {\n        months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n        weekdays:\n            'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n                '_'\n            ),\n        weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n        weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY.',\n            LL: 'YYYY. [gada] D. MMMM',\n            LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n            LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n        },\n        calendar: {\n            sameDay: '[Šodien pulksten] LT',\n            nextDay: '[Rīt pulksten] LT',\n            nextWeek: 'dddd [pulksten] LT',\n            lastDay: '[Vakar pulksten] LT',\n            lastWeek: '[Pagājušā] dddd [pulksten] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'pēc %s',\n            past: 'pirms %s',\n            s: relativeSeconds,\n            ss: relativeTimeWithPlural,\n            m: relativeTimeWithSingular,\n            mm: relativeTimeWithPlural,\n            h: relativeTimeWithSingular,\n            hh: relativeTimeWithPlural,\n            d: relativeTimeWithSingular,\n            dd: relativeTimeWithPlural,\n            M: relativeTimeWithSingular,\n            MM: relativeTimeWithPlural,\n            y: relativeTimeWithSingular,\n            yy: relativeTimeWithPlural,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return lv;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/lv.js?");

/***/ }),

/***/ "./node_modules/moment/locale/me.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/me.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var translator = {\n        words: {\n            //Different grammatical cases\n            ss: ['sekund', 'sekunda', 'sekundi'],\n            m: ['jedan minut', 'jednog minuta'],\n            mm: ['minut', 'minuta', 'minuta'],\n            h: ['jedan sat', 'jednog sata'],\n            hh: ['sat', 'sata', 'sati'],\n            dd: ['dan', 'dana', 'dana'],\n            MM: ['mjesec', 'mjeseca', 'mjeseci'],\n            yy: ['godina', 'godine', 'godina'],\n        },\n        correctGrammaticalCase: function (number, wordKey) {\n            return number === 1\n                ? wordKey[0]\n                : number >= 2 && number <= 4\n                  ? wordKey[1]\n                  : wordKey[2];\n        },\n        translate: function (number, withoutSuffix, key) {\n            var wordKey = translator.words[key];\n            if (key.length === 1) {\n                return withoutSuffix ? wordKey[0] : wordKey[1];\n            } else {\n                return (\n                    number +\n                    ' ' +\n                    translator.correctGrammaticalCase(number, wordKey)\n                );\n            }\n        },\n    };\n\n    var me = moment.defineLocale('me', {\n        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n            '_'\n        ),\n        monthsShort:\n            'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n        monthsParseExact: true,\n        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sjutra u] LT',\n\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedjelju] [u] LT';\n                    case 3:\n                        return '[u] [srijedu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[juče u] LT',\n            lastWeek: function () {\n                var lastWeekDays = [\n                    '[prošle] [nedjelje] [u] LT',\n                    '[prošlog] [ponedjeljka] [u] LT',\n                    '[prošlog] [utorka] [u] LT',\n                    '[prošle] [srijede] [u] LT',\n                    '[prošlog] [četvrtka] [u] LT',\n                    '[prošlog] [petka] [u] LT',\n                    '[prošle] [subote] [u] LT',\n                ];\n                return lastWeekDays[this.day()];\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'prije %s',\n            s: 'nekoliko sekundi',\n            ss: translator.translate,\n            m: translator.translate,\n            mm: translator.translate,\n            h: translator.translate,\n            hh: translator.translate,\n            d: 'dan',\n            dd: translator.translate,\n            M: 'mjesec',\n            MM: translator.translate,\n            y: 'godinu',\n            yy: translator.translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return me;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/me.js?");

/***/ }),

/***/ "./node_modules/moment/locale/mi.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/mi.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var mi = moment.defineLocale('mi', {\n        months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n            '_'\n        ),\n        monthsShort:\n            'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n                '_'\n            ),\n        monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n        monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n        monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n        monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n        weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n        weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n        weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [i] HH:mm',\n            LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n        },\n        calendar: {\n            sameDay: '[i teie mahana, i] LT',\n            nextDay: '[apopo i] LT',\n            nextWeek: 'dddd [i] LT',\n            lastDay: '[inanahi i] LT',\n            lastWeek: 'dddd [whakamutunga i] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'i roto i %s',\n            past: '%s i mua',\n            s: 'te hēkona ruarua',\n            ss: '%d hēkona',\n            m: 'he meneti',\n            mm: '%d meneti',\n            h: 'te haora',\n            hh: '%d haora',\n            d: 'he ra',\n            dd: '%d ra',\n            M: 'he marama',\n            MM: '%d marama',\n            y: 'he tau',\n            yy: '%d tau',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return mi;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/mi.js?");

/***/ }),

/***/ "./node_modules/moment/locale/mk.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/mk.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var mk = moment.defineLocale('mk', {\n        months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n            '_'\n        ),\n        monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n        weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n            '_'\n        ),\n        weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n        weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY H:mm',\n            LLLL: 'dddd, D MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[Денес во] LT',\n            nextDay: '[Утре во] LT',\n            nextWeek: '[Во] dddd [во] LT',\n            lastDay: '[Вчера во] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 6:\n                        return '[Изминатата] dddd [во] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[Изминатиот] dddd [во] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'за %s',\n            past: 'пред %s',\n            s: 'неколку секунди',\n            ss: '%d секунди',\n            m: 'една минута',\n            mm: '%d минути',\n            h: 'еден час',\n            hh: '%d часа',\n            d: 'еден ден',\n            dd: '%d дена',\n            M: 'еден месец',\n            MM: '%d месеци',\n            y: 'една година',\n            yy: '%d години',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n        ordinal: function (number) {\n            var lastDigit = number % 10,\n                last2Digits = number % 100;\n            if (number === 0) {\n                return number + '-ев';\n            } else if (last2Digits === 0) {\n                return number + '-ен';\n            } else if (last2Digits > 10 && last2Digits < 20) {\n                return number + '-ти';\n            } else if (lastDigit === 1) {\n                return number + '-ви';\n            } else if (lastDigit === 2) {\n                return number + '-ри';\n            } else if (lastDigit === 7 || lastDigit === 8) {\n                return number + '-ми';\n            } else {\n                return number + '-ти';\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return mk;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/mk.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ml.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ml.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ml = moment.defineLocale('ml', {\n        months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n            '_'\n        ),\n        monthsShort:\n            'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays:\n            'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n                '_'\n            ),\n        weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n        weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm -നു',\n            LTS: 'A h:mm:ss -നു',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm -നു',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n        },\n        calendar: {\n            sameDay: '[ഇന്ന്] LT',\n            nextDay: '[നാളെ] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[ഇന്നലെ] LT',\n            lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s കഴിഞ്ഞ്',\n            past: '%s മുൻപ്',\n            s: 'അൽപ നിമിഷങ്ങൾ',\n            ss: '%d സെക്കൻഡ്',\n            m: 'ഒരു മിനിറ്റ്',\n            mm: '%d മിനിറ്റ്',\n            h: 'ഒരു മണിക്കൂർ',\n            hh: '%d മണിക്കൂർ',\n            d: 'ഒരു ദിവസം',\n            dd: '%d ദിവസം',\n            M: 'ഒരു മാസം',\n            MM: '%d മാസം',\n            y: 'ഒരു വർഷം',\n            yy: '%d വർഷം',\n        },\n        meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                (meridiem === 'രാത്രി' && hour >= 4) ||\n                meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n                meridiem === 'വൈകുന്നേരം'\n            ) {\n                return hour + 12;\n            } else {\n                return hour;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'രാത്രി';\n            } else if (hour < 12) {\n                return 'രാവിലെ';\n            } else if (hour < 17) {\n                return 'ഉച്ച കഴിഞ്ഞ്';\n            } else if (hour < 20) {\n                return 'വൈകുന്നേരം';\n            } else {\n                return 'രാത്രി';\n            }\n        },\n    });\n\n    return ml;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ml.js?");

/***/ }),

/***/ "./node_modules/moment/locale/mn.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/mn.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function translate(number, withoutSuffix, key, isFuture) {\n        switch (key) {\n            case 's':\n                return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n            case 'ss':\n                return number + (withoutSuffix ? ' секунд' : ' секундын');\n            case 'm':\n            case 'mm':\n                return number + (withoutSuffix ? ' минут' : ' минутын');\n            case 'h':\n            case 'hh':\n                return number + (withoutSuffix ? ' цаг' : ' цагийн');\n            case 'd':\n            case 'dd':\n                return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n            case 'M':\n            case 'MM':\n                return number + (withoutSuffix ? ' сар' : ' сарын');\n            case 'y':\n            case 'yy':\n                return number + (withoutSuffix ? ' жил' : ' жилийн');\n            default:\n                return number;\n        }\n    }\n\n    var mn = moment.defineLocale('mn', {\n        months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n            '_'\n        ),\n        monthsShort:\n            '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n        weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n        weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY оны MMMMын D',\n            LLL: 'YYYY оны MMMMын D HH:mm',\n            LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n        },\n        meridiemParse: /ҮӨ|ҮХ/i,\n        isPM: function (input) {\n            return input === 'ҮХ';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ҮӨ';\n            } else {\n                return 'ҮХ';\n            }\n        },\n        calendar: {\n            sameDay: '[Өнөөдөр] LT',\n            nextDay: '[Маргааш] LT',\n            nextWeek: '[Ирэх] dddd LT',\n            lastDay: '[Өчигдөр] LT',\n            lastWeek: '[Өнгөрсөн] dddd LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s дараа',\n            past: '%s өмнө',\n            s: translate,\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: translate,\n            dd: translate,\n            M: translate,\n            MM: translate,\n            y: translate,\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + ' өдөр';\n                default:\n                    return number;\n            }\n        },\n    });\n\n    return mn;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/mn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/mr.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/mr.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '१',\n            2: '२',\n            3: '३',\n            4: '४',\n            5: '५',\n            6: '६',\n            7: '७',\n            8: '८',\n            9: '९',\n            0: '०',\n        },\n        numberMap = {\n            '१': '1',\n            '२': '2',\n            '३': '3',\n            '४': '4',\n            '५': '5',\n            '६': '6',\n            '७': '7',\n            '८': '8',\n            '९': '9',\n            '०': '0',\n        };\n\n    function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n        var output = '';\n        if (withoutSuffix) {\n            switch (string) {\n                case 's':\n                    output = 'काही सेकंद';\n                    break;\n                case 'ss':\n                    output = '%d सेकंद';\n                    break;\n                case 'm':\n                    output = 'एक मिनिट';\n                    break;\n                case 'mm':\n                    output = '%d मिनिटे';\n                    break;\n                case 'h':\n                    output = 'एक तास';\n                    break;\n                case 'hh':\n                    output = '%d तास';\n                    break;\n                case 'd':\n                    output = 'एक दिवस';\n                    break;\n                case 'dd':\n                    output = '%d दिवस';\n                    break;\n                case 'M':\n                    output = 'एक महिना';\n                    break;\n                case 'MM':\n                    output = '%d महिने';\n                    break;\n                case 'y':\n                    output = 'एक वर्ष';\n                    break;\n                case 'yy':\n                    output = '%d वर्षे';\n                    break;\n            }\n        } else {\n            switch (string) {\n                case 's':\n                    output = 'काही सेकंदां';\n                    break;\n                case 'ss':\n                    output = '%d सेकंदां';\n                    break;\n                case 'm':\n                    output = 'एका मिनिटा';\n                    break;\n                case 'mm':\n                    output = '%d मिनिटां';\n                    break;\n                case 'h':\n                    output = 'एका तासा';\n                    break;\n                case 'hh':\n                    output = '%d तासां';\n                    break;\n                case 'd':\n                    output = 'एका दिवसा';\n                    break;\n                case 'dd':\n                    output = '%d दिवसां';\n                    break;\n                case 'M':\n                    output = 'एका महिन्या';\n                    break;\n                case 'MM':\n                    output = '%d महिन्यां';\n                    break;\n                case 'y':\n                    output = 'एका वर्षा';\n                    break;\n                case 'yy':\n                    output = '%d वर्षां';\n                    break;\n            }\n        }\n        return output.replace(/%d/i, number);\n    }\n\n    var mr = moment.defineLocale('mr', {\n        months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n            '_'\n        ),\n        monthsShort:\n            'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n        weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm वाजता',\n            LTS: 'A h:mm:ss वाजता',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm वाजता',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n        },\n        calendar: {\n            sameDay: '[आज] LT',\n            nextDay: '[उद्या] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[काल] LT',\n            lastWeek: '[मागील] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sमध्ये',\n            past: '%sपूर्वी',\n            s: relativeTimeMr,\n            ss: relativeTimeMr,\n            m: relativeTimeMr,\n            mm: relativeTimeMr,\n            h: relativeTimeMr,\n            hh: relativeTimeMr,\n            d: relativeTimeMr,\n            dd: relativeTimeMr,\n            M: relativeTimeMr,\n            MM: relativeTimeMr,\n            y: relativeTimeMr,\n            yy: relativeTimeMr,\n        },\n        preparse: function (string) {\n            return string.replace(/[१२३४५६७८९०]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n                return hour;\n            } else if (\n                meridiem === 'दुपारी' ||\n                meridiem === 'सायंकाळी' ||\n                meridiem === 'रात्री'\n            ) {\n                return hour >= 12 ? hour : hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour >= 0 && hour < 6) {\n                return 'पहाटे';\n            } else if (hour < 12) {\n                return 'सकाळी';\n            } else if (hour < 17) {\n                return 'दुपारी';\n            } else if (hour < 20) {\n                return 'सायंकाळी';\n            } else {\n                return 'रात्री';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return mr;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/mr.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ms-my.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ms-my.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var msMy = moment.defineLocale('ms-my', {\n        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /pagi|tengahari|petang|malam/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'pagi') {\n                return hour;\n            } else if (meridiem === 'tengahari') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'petang' || meridiem === 'malam') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'pagi';\n            } else if (hours < 15) {\n                return 'tengahari';\n            } else if (hours < 19) {\n                return 'petang';\n            } else {\n                return 'malam';\n            }\n        },\n        calendar: {\n            sameDay: '[Hari ini pukul] LT',\n            nextDay: '[Esok pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kelmarin pukul] LT',\n            lastWeek: 'dddd [lepas pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dalam %s',\n            past: '%s yang lepas',\n            s: 'beberapa saat',\n            ss: '%d saat',\n            m: 'seminit',\n            mm: '%d minit',\n            h: 'sejam',\n            hh: '%d jam',\n            d: 'sehari',\n            dd: '%d hari',\n            M: 'sebulan',\n            MM: '%d bulan',\n            y: 'setahun',\n            yy: '%d tahun',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return msMy;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ms-my.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ms.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ms.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ms = moment.defineLocale('ms', {\n        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [pukul] HH.mm',\n            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n        },\n        meridiemParse: /pagi|tengahari|petang|malam/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'pagi') {\n                return hour;\n            } else if (meridiem === 'tengahari') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'petang' || meridiem === 'malam') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'pagi';\n            } else if (hours < 15) {\n                return 'tengahari';\n            } else if (hours < 19) {\n                return 'petang';\n            } else {\n                return 'malam';\n            }\n        },\n        calendar: {\n            sameDay: '[Hari ini pukul] LT',\n            nextDay: '[Esok pukul] LT',\n            nextWeek: 'dddd [pukul] LT',\n            lastDay: '[Kelmarin pukul] LT',\n            lastWeek: 'dddd [lepas pukul] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dalam %s',\n            past: '%s yang lepas',\n            s: 'beberapa saat',\n            ss: '%d saat',\n            m: 'seminit',\n            mm: '%d minit',\n            h: 'sejam',\n            hh: '%d jam',\n            d: 'sehari',\n            dd: '%d hari',\n            M: 'sebulan',\n            MM: '%d bulan',\n            y: 'setahun',\n            yy: '%d tahun',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return ms;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ms.js?");

/***/ }),

/***/ "./node_modules/moment/locale/mt.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/mt.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var mt = moment.defineLocale('mt', {\n        months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n        weekdays:\n            'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n                '_'\n            ),\n        weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n        weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Illum fil-]LT',\n            nextDay: '[Għada fil-]LT',\n            nextWeek: 'dddd [fil-]LT',\n            lastDay: '[Il-bieraħ fil-]LT',\n            lastWeek: 'dddd [li għadda] [fil-]LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'f’ %s',\n            past: '%s ilu',\n            s: 'ftit sekondi',\n            ss: '%d sekondi',\n            m: 'minuta',\n            mm: '%d minuti',\n            h: 'siegħa',\n            hh: '%d siegħat',\n            d: 'ġurnata',\n            dd: '%d ġranet',\n            M: 'xahar',\n            MM: '%d xhur',\n            y: 'sena',\n            yy: '%d sni',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return mt;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/mt.js?");

/***/ }),

/***/ "./node_modules/moment/locale/my.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/my.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '၁',\n            2: '၂',\n            3: '၃',\n            4: '၄',\n            5: '၅',\n            6: '၆',\n            7: '၇',\n            8: '၈',\n            9: '၉',\n            0: '၀',\n        },\n        numberMap = {\n            '၁': '1',\n            '၂': '2',\n            '၃': '3',\n            '၄': '4',\n            '၅': '5',\n            '၆': '6',\n            '၇': '7',\n            '၈': '8',\n            '၉': '9',\n            '၀': '0',\n        };\n\n    var my = moment.defineLocale('my', {\n        months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n            '_'\n        ),\n        monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n        weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n            '_'\n        ),\n        weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n        weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[ယနေ.] LT [မှာ]',\n            nextDay: '[မနက်ဖြန်] LT [မှာ]',\n            nextWeek: 'dddd LT [မှာ]',\n            lastDay: '[မနေ.က] LT [မှာ]',\n            lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'လာမည့် %s မှာ',\n            past: 'လွန်ခဲ့သော %s က',\n            s: 'စက္ကန်.အနည်းငယ်',\n            ss: '%d စက္ကန့်',\n            m: 'တစ်မိနစ်',\n            mm: '%d မိနစ်',\n            h: 'တစ်နာရီ',\n            hh: '%d နာရီ',\n            d: 'တစ်ရက်',\n            dd: '%d ရက်',\n            M: 'တစ်လ',\n            MM: '%d လ',\n            y: 'တစ်နှစ်',\n            yy: '%d နှစ်',\n        },\n        preparse: function (string) {\n            return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return my;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/my.js?");

/***/ }),

/***/ "./node_modules/moment/locale/nb.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/nb.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//!           Sigurd Gartmann : https://github.com/sigurdga\n//!           Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var nb = moment.defineLocale('nb', {\n        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n            '_'\n        ),\n        monthsShort:\n            'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n        monthsParseExact: true,\n        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n        weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY [kl.] HH:mm',\n            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[i dag kl.] LT',\n            nextDay: '[i morgen kl.] LT',\n            nextWeek: 'dddd [kl.] LT',\n            lastDay: '[i går kl.] LT',\n            lastWeek: '[forrige] dddd [kl.] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: '%s siden',\n            s: 'noen sekunder',\n            ss: '%d sekunder',\n            m: 'ett minutt',\n            mm: '%d minutter',\n            h: 'én time',\n            hh: '%d timer',\n            d: 'én dag',\n            dd: '%d dager',\n            w: 'én uke',\n            ww: '%d uker',\n            M: 'én måned',\n            MM: '%d måneder',\n            y: 'ett år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return nb;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/nb.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ne.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ne.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '१',\n            2: '२',\n            3: '३',\n            4: '४',\n            5: '५',\n            6: '६',\n            7: '७',\n            8: '८',\n            9: '९',\n            0: '०',\n        },\n        numberMap = {\n            '१': '1',\n            '२': '2',\n            '३': '3',\n            '४': '4',\n            '५': '5',\n            '६': '6',\n            '७': '7',\n            '८': '8',\n            '९': '9',\n            '०': '0',\n        };\n\n    var ne = moment.defineLocale('ne', {\n        months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n            '_'\n        ),\n        monthsShort:\n            'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n            '_'\n        ),\n        weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n        weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'Aको h:mm बजे',\n            LTS: 'Aको h:mm:ss बजे',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, Aको h:mm बजे',\n            LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n        },\n        preparse: function (string) {\n            return string.replace(/[१२३४५६७८९०]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'राति') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'बिहान') {\n                return hour;\n            } else if (meridiem === 'दिउँसो') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'साँझ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 3) {\n                return 'राति';\n            } else if (hour < 12) {\n                return 'बिहान';\n            } else if (hour < 16) {\n                return 'दिउँसो';\n            } else if (hour < 20) {\n                return 'साँझ';\n            } else {\n                return 'राति';\n            }\n        },\n        calendar: {\n            sameDay: '[आज] LT',\n            nextDay: '[भोलि] LT',\n            nextWeek: '[आउँदो] dddd[,] LT',\n            lastDay: '[हिजो] LT',\n            lastWeek: '[गएको] dddd[,] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sमा',\n            past: '%s अगाडि',\n            s: 'केही क्षण',\n            ss: '%d सेकेण्ड',\n            m: 'एक मिनेट',\n            mm: '%d मिनेट',\n            h: 'एक घण्टा',\n            hh: '%d घण्टा',\n            d: 'एक दिन',\n            dd: '%d दिन',\n            M: 'एक महिना',\n            MM: '%d महिना',\n            y: 'एक बर्ष',\n            yy: '%d बर्ष',\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return ne;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ne.js?");

/***/ }),

/***/ "./node_modules/moment/locale/nl-be.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/nl-be.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsShortWithDots =\n            'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n        monthsShortWithoutDots =\n            'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n        monthsParse = [\n            /^jan/i,\n            /^feb/i,\n            /^(maart|mrt\\.?)$/i,\n            /^apr/i,\n            /^mei$/i,\n            /^jun[i.]?$/i,\n            /^jul[i.]?$/i,\n            /^aug/i,\n            /^sep/i,\n            /^okt/i,\n            /^nov/i,\n            /^dec/i,\n        ],\n        monthsRegex =\n            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n    var nlBe = moment.defineLocale('nl-be', {\n        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortWithDots;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShortWithoutDots[m.month()];\n            } else {\n                return monthsShortWithDots[m.month()];\n            }\n        },\n\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex:\n            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n        monthsShortStrictRegex:\n            /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n\n        weekdays:\n            'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[vandaag om] LT',\n            nextDay: '[morgen om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[gisteren om] LT',\n            lastWeek: '[afgelopen] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'over %s',\n            past: '%s geleden',\n            s: 'een paar seconden',\n            ss: '%d seconden',\n            m: 'één minuut',\n            mm: '%d minuten',\n            h: 'één uur',\n            hh: '%d uur',\n            d: 'één dag',\n            dd: '%d dagen',\n            M: 'één maand',\n            MM: '%d maanden',\n            y: 'één jaar',\n            yy: '%d jaar',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            );\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return nlBe;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/nl-be.js?");

/***/ }),

/***/ "./node_modules/moment/locale/nl.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/nl.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsShortWithDots =\n            'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n        monthsShortWithoutDots =\n            'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n        monthsParse = [\n            /^jan/i,\n            /^feb/i,\n            /^(maart|mrt\\.?)$/i,\n            /^apr/i,\n            /^mei$/i,\n            /^jun[i.]?$/i,\n            /^jul[i.]?$/i,\n            /^aug/i,\n            /^sep/i,\n            /^okt/i,\n            /^nov/i,\n            /^dec/i,\n        ],\n        monthsRegex =\n            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n    var nl = moment.defineLocale('nl', {\n        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: function (m, format) {\n            if (!m) {\n                return monthsShortWithDots;\n            } else if (/-MMM-/.test(format)) {\n                return monthsShortWithoutDots[m.month()];\n            } else {\n                return monthsShortWithDots[m.month()];\n            }\n        },\n\n        monthsRegex: monthsRegex,\n        monthsShortRegex: monthsRegex,\n        monthsStrictRegex:\n            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n        monthsShortStrictRegex:\n            /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n\n        weekdays:\n            'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD-MM-YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[vandaag om] LT',\n            nextDay: '[morgen om] LT',\n            nextWeek: 'dddd [om] LT',\n            lastDay: '[gisteren om] LT',\n            lastWeek: '[afgelopen] dddd [om] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'over %s',\n            past: '%s geleden',\n            s: 'een paar seconden',\n            ss: '%d seconden',\n            m: 'één minuut',\n            mm: '%d minuten',\n            h: 'één uur',\n            hh: '%d uur',\n            d: 'één dag',\n            dd: '%d dagen',\n            w: 'één week',\n            ww: '%d weken',\n            M: 'één maand',\n            MM: '%d maanden',\n            y: 'één jaar',\n            yy: '%d jaar',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n        ordinal: function (number) {\n            return (\n                number +\n                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n            );\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return nl;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/nl.js?");

/***/ }),

/***/ "./node_modules/moment/locale/nn.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/nn.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//!           Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var nn = moment.defineLocale('nn', {\n        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n            '_'\n        ),\n        monthsShort:\n            'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n        monthsParseExact: true,\n        weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n        weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n        weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY [kl.] H:mm',\n            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[I dag klokka] LT',\n            nextDay: '[I morgon klokka] LT',\n            nextWeek: 'dddd [klokka] LT',\n            lastDay: '[I går klokka] LT',\n            lastWeek: '[Føregåande] dddd [klokka] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: '%s sidan',\n            s: 'nokre sekund',\n            ss: '%d sekund',\n            m: 'eit minutt',\n            mm: '%d minutt',\n            h: 'ein time',\n            hh: '%d timar',\n            d: 'ein dag',\n            dd: '%d dagar',\n            w: 'ei veke',\n            ww: '%d veker',\n            M: 'ein månad',\n            MM: '%d månader',\n            y: 'eit år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return nn;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/nn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/oc-lnc.js":
/*!**********************************************!*\
  !*** ./node_modules/moment/locale/oc-lnc.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ocLnc = moment.defineLocale('oc-lnc', {\n        months: {\n            standalone:\n                'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n                    '_'\n                ),\n            format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n                '_'\n            ),\n            isFormat: /D[oD]?(\\s)+MMMM/,\n        },\n        monthsShort:\n            'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n            '_'\n        ),\n        weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n        weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM [de] YYYY',\n            ll: 'D MMM YYYY',\n            LLL: 'D MMMM [de] YYYY [a] H:mm',\n            lll: 'D MMM YYYY, H:mm',\n            LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n            llll: 'ddd D MMM YYYY, H:mm',\n        },\n        calendar: {\n            sameDay: '[uèi a] LT',\n            nextDay: '[deman a] LT',\n            nextWeek: 'dddd [a] LT',\n            lastDay: '[ièr a] LT',\n            lastWeek: 'dddd [passat a] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: \"d'aquí %s\",\n            past: 'fa %s',\n            s: 'unas segondas',\n            ss: '%d segondas',\n            m: 'una minuta',\n            mm: '%d minutas',\n            h: 'una ora',\n            hh: '%d oras',\n            d: 'un jorn',\n            dd: '%d jorns',\n            M: 'un mes',\n            MM: '%d meses',\n            y: 'un an',\n            yy: '%d ans',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n        ordinal: function (number, period) {\n            var output =\n                number === 1\n                    ? 'r'\n                    : number === 2\n                      ? 'n'\n                      : number === 3\n                        ? 'r'\n                        : number === 4\n                          ? 't'\n                          : 'è';\n            if (period === 'w' || period === 'W') {\n                output = 'a';\n            }\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4,\n        },\n    });\n\n    return ocLnc;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/oc-lnc.js?");

/***/ }),

/***/ "./node_modules/moment/locale/pa-in.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/pa-in.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '੧',\n            2: '੨',\n            3: '੩',\n            4: '੪',\n            5: '੫',\n            6: '੬',\n            7: '੭',\n            8: '੮',\n            9: '੯',\n            0: '੦',\n        },\n        numberMap = {\n            '੧': '1',\n            '੨': '2',\n            '੩': '3',\n            '੪': '4',\n            '੫': '5',\n            '੬': '6',\n            '੭': '7',\n            '੮': '8',\n            '੯': '9',\n            '੦': '0',\n        };\n\n    var paIn = moment.defineLocale('pa-in', {\n        // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n        months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n            '_'\n        ),\n        monthsShort:\n            'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n                '_'\n            ),\n        weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n            '_'\n        ),\n        weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n        weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm ਵਜੇ',\n            LTS: 'A h:mm:ss ਵਜੇ',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n        },\n        calendar: {\n            sameDay: '[ਅਜ] LT',\n            nextDay: '[ਕਲ] LT',\n            nextWeek: '[ਅਗਲਾ] dddd, LT',\n            lastDay: '[ਕਲ] LT',\n            lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s ਵਿੱਚ',\n            past: '%s ਪਿਛਲੇ',\n            s: 'ਕੁਝ ਸਕਿੰਟ',\n            ss: '%d ਸਕਿੰਟ',\n            m: 'ਇਕ ਮਿੰਟ',\n            mm: '%d ਮਿੰਟ',\n            h: 'ਇੱਕ ਘੰਟਾ',\n            hh: '%d ਘੰਟੇ',\n            d: 'ਇੱਕ ਦਿਨ',\n            dd: '%d ਦਿਨ',\n            M: 'ਇੱਕ ਮਹੀਨਾ',\n            MM: '%d ਮਹੀਨੇ',\n            y: 'ਇੱਕ ਸਾਲ',\n            yy: '%d ਸਾਲ',\n        },\n        preparse: function (string) {\n            return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n        meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'ਰਾਤ') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ਸਵੇਰ') {\n                return hour;\n            } else if (meridiem === 'ਦੁਪਹਿਰ') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'ਸ਼ਾਮ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ਰਾਤ';\n            } else if (hour < 10) {\n                return 'ਸਵੇਰ';\n            } else if (hour < 17) {\n                return 'ਦੁਪਹਿਰ';\n            } else if (hour < 20) {\n                return 'ਸ਼ਾਮ';\n            } else {\n                return 'ਰਾਤ';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return paIn;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/pa-in.js?");

/***/ }),

/***/ "./node_modules/moment/locale/pl.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/pl.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var monthsNominative =\n            'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n                '_'\n            ),\n        monthsSubjective =\n            'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n                '_'\n            ),\n        monthsParse = [\n            /^sty/i,\n            /^lut/i,\n            /^mar/i,\n            /^kwi/i,\n            /^maj/i,\n            /^cze/i,\n            /^lip/i,\n            /^sie/i,\n            /^wrz/i,\n            /^paź/i,\n            /^lis/i,\n            /^gru/i,\n        ];\n    function plural(n) {\n        return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n    }\n    function translate(number, withoutSuffix, key) {\n        var result = number + ' ';\n        switch (key) {\n            case 'ss':\n                return result + (plural(number) ? 'sekundy' : 'sekund');\n            case 'm':\n                return withoutSuffix ? 'minuta' : 'minutę';\n            case 'mm':\n                return result + (plural(number) ? 'minuty' : 'minut');\n            case 'h':\n                return withoutSuffix ? 'godzina' : 'godzinę';\n            case 'hh':\n                return result + (plural(number) ? 'godziny' : 'godzin');\n            case 'ww':\n                return result + (plural(number) ? 'tygodnie' : 'tygodni');\n            case 'MM':\n                return result + (plural(number) ? 'miesiące' : 'miesięcy');\n            case 'yy':\n                return result + (plural(number) ? 'lata' : 'lat');\n        }\n    }\n\n    var pl = moment.defineLocale('pl', {\n        months: function (momentToFormat, format) {\n            if (!momentToFormat) {\n                return monthsNominative;\n            } else if (/D MMMM/.test(format)) {\n                return monthsSubjective[momentToFormat.month()];\n            } else {\n                return monthsNominative[momentToFormat.month()];\n            }\n        },\n        monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n        weekdays:\n            'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n        weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n        weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Dziś o] LT',\n            nextDay: '[Jutro o] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[W niedzielę o] LT';\n\n                    case 2:\n                        return '[We wtorek o] LT';\n\n                    case 3:\n                        return '[W środę o] LT';\n\n                    case 6:\n                        return '[W sobotę o] LT';\n\n                    default:\n                        return '[W] dddd [o] LT';\n                }\n            },\n            lastDay: '[Wczoraj o] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[W zeszłą niedzielę o] LT';\n                    case 3:\n                        return '[W zeszłą środę o] LT';\n                    case 6:\n                        return '[W zeszłą sobotę o] LT';\n                    default:\n                        return '[W zeszły] dddd [o] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: '%s temu',\n            s: 'kilka sekund',\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: '1 dzień',\n            dd: '%d dni',\n            w: 'tydzień',\n            ww: translate,\n            M: 'miesiąc',\n            MM: translate,\n            y: 'rok',\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return pl;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/pl.js?");

/***/ }),

/***/ "./node_modules/moment/locale/pt-br.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/pt-br.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ptBr = moment.defineLocale('pt-br', {\n        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n            '_'\n        ),\n        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n        weekdays:\n            'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n                '_'\n            ),\n        weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n        weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hoje às] LT',\n            nextDay: '[Amanhã às] LT',\n            nextWeek: 'dddd [às] LT',\n            lastDay: '[Ontem às] LT',\n            lastWeek: function () {\n                return this.day() === 0 || this.day() === 6\n                    ? '[Último] dddd [às] LT' // Saturday + Sunday\n                    : '[Última] dddd [às] LT'; // Monday - Friday\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'em %s',\n            past: 'há %s',\n            s: 'poucos segundos',\n            ss: '%d segundos',\n            m: 'um minuto',\n            mm: '%d minutos',\n            h: 'uma hora',\n            hh: '%d horas',\n            d: 'um dia',\n            dd: '%d dias',\n            M: 'um mês',\n            MM: '%d meses',\n            y: 'um ano',\n            yy: '%d anos',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        invalidDate: 'Data inválida',\n    });\n\n    return ptBr;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/pt-br.js?");

/***/ }),

/***/ "./node_modules/moment/locale/pt.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/pt.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var pt = moment.defineLocale('pt', {\n        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n            '_'\n        ),\n        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n        weekdays:\n            'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n                '_'\n            ),\n        weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n        weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D [de] MMMM [de] YYYY',\n            LLL: 'D [de] MMMM [de] YYYY HH:mm',\n            LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hoje às] LT',\n            nextDay: '[Amanhã às] LT',\n            nextWeek: 'dddd [às] LT',\n            lastDay: '[Ontem às] LT',\n            lastWeek: function () {\n                return this.day() === 0 || this.day() === 6\n                    ? '[Último] dddd [às] LT' // Saturday + Sunday\n                    : '[Última] dddd [às] LT'; // Monday - Friday\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'em %s',\n            past: 'há %s',\n            s: 'segundos',\n            ss: '%d segundos',\n            m: 'um minuto',\n            mm: '%d minutos',\n            h: 'uma hora',\n            hh: '%d horas',\n            d: 'um dia',\n            dd: '%d dias',\n            w: 'uma semana',\n            ww: '%d semanas',\n            M: 'um mês',\n            MM: '%d meses',\n            y: 'um ano',\n            yy: '%d anos',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}º/,\n        ordinal: '%dº',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return pt;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/pt.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ro.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ro.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function relativeTimeWithPlural(number, withoutSuffix, key) {\n        var format = {\n                ss: 'secunde',\n                mm: 'minute',\n                hh: 'ore',\n                dd: 'zile',\n                ww: 'săptămâni',\n                MM: 'luni',\n                yy: 'ani',\n            },\n            separator = ' ';\n        if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n            separator = ' de ';\n        }\n        return number + separator + format[key];\n    }\n\n    var ro = moment.defineLocale('ro', {\n        months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n            '_'\n        ),\n        monthsShort:\n            'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n        weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n        weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY H:mm',\n            LLLL: 'dddd, D MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[azi la] LT',\n            nextDay: '[mâine la] LT',\n            nextWeek: 'dddd [la] LT',\n            lastDay: '[ieri la] LT',\n            lastWeek: '[fosta] dddd [la] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'peste %s',\n            past: '%s în urmă',\n            s: 'câteva secunde',\n            ss: relativeTimeWithPlural,\n            m: 'un minut',\n            mm: relativeTimeWithPlural,\n            h: 'o oră',\n            hh: relativeTimeWithPlural,\n            d: 'o zi',\n            dd: relativeTimeWithPlural,\n            w: 'o săptămână',\n            ww: relativeTimeWithPlural,\n            M: 'o lună',\n            MM: relativeTimeWithPlural,\n            y: 'un an',\n            yy: relativeTimeWithPlural,\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return ro;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ro.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ru.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ru.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function plural(word, num) {\n        var forms = word.split('_');\n        return num % 10 === 1 && num % 100 !== 11\n            ? forms[0]\n            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n              ? forms[1]\n              : forms[2];\n    }\n    function relativeTimeWithPlural(number, withoutSuffix, key) {\n        var format = {\n            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n            mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n            hh: 'час_часа_часов',\n            dd: 'день_дня_дней',\n            ww: 'неделя_недели_недель',\n            MM: 'месяц_месяца_месяцев',\n            yy: 'год_года_лет',\n        };\n        if (key === 'm') {\n            return withoutSuffix ? 'минута' : 'минуту';\n        } else {\n            return number + ' ' + plural(format[key], +number);\n        }\n    }\n    var monthsParse = [\n        /^янв/i,\n        /^фев/i,\n        /^мар/i,\n        /^апр/i,\n        /^ма[йя]/i,\n        /^июн/i,\n        /^июл/i,\n        /^авг/i,\n        /^сен/i,\n        /^окт/i,\n        /^ноя/i,\n        /^дек/i,\n    ];\n\n    // http://new.gramota.ru/spravka/rules/139-prop : § 103\n    // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n    // CLDR data:          http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n    var ru = moment.defineLocale('ru', {\n        months: {\n            format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n                '_'\n            ),\n            standalone:\n                'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n                    '_'\n                ),\n        },\n        monthsShort: {\n            // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n            format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n                '_'\n            ),\n            standalone:\n                'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n                    '_'\n                ),\n        },\n        weekdays: {\n            standalone:\n                'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n                    '_'\n                ),\n            format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n                '_'\n            ),\n            isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n        },\n        weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n        weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n        monthsParse: monthsParse,\n        longMonthsParse: monthsParse,\n        shortMonthsParse: monthsParse,\n\n        // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n        monthsRegex:\n            /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n        // копия предыдущего\n        monthsShortRegex:\n            /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n        // полные названия с падежами\n        monthsStrictRegex:\n            /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n        // Выражение, которое соответствует только сокращённым формам\n        monthsShortStrictRegex:\n            /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY г.',\n            LLL: 'D MMMM YYYY г., H:mm',\n            LLLL: 'dddd, D MMMM YYYY г., H:mm',\n        },\n        calendar: {\n            sameDay: '[Сегодня, в] LT',\n            nextDay: '[Завтра, в] LT',\n            lastDay: '[Вчера, в] LT',\n            nextWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    switch (this.day()) {\n                        case 0:\n                            return '[В следующее] dddd, [в] LT';\n                        case 1:\n                        case 2:\n                        case 4:\n                            return '[В следующий] dddd, [в] LT';\n                        case 3:\n                        case 5:\n                        case 6:\n                            return '[В следующую] dddd, [в] LT';\n                    }\n                } else {\n                    if (this.day() === 2) {\n                        return '[Во] dddd, [в] LT';\n                    } else {\n                        return '[В] dddd, [в] LT';\n                    }\n                }\n            },\n            lastWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    switch (this.day()) {\n                        case 0:\n                            return '[В прошлое] dddd, [в] LT';\n                        case 1:\n                        case 2:\n                        case 4:\n                            return '[В прошлый] dddd, [в] LT';\n                        case 3:\n                        case 5:\n                        case 6:\n                            return '[В прошлую] dddd, [в] LT';\n                    }\n                } else {\n                    if (this.day() === 2) {\n                        return '[Во] dddd, [в] LT';\n                    } else {\n                        return '[В] dddd, [в] LT';\n                    }\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'через %s',\n            past: '%s назад',\n            s: 'несколько секунд',\n            ss: relativeTimeWithPlural,\n            m: relativeTimeWithPlural,\n            mm: relativeTimeWithPlural,\n            h: 'час',\n            hh: relativeTimeWithPlural,\n            d: 'день',\n            dd: relativeTimeWithPlural,\n            w: 'неделя',\n            ww: relativeTimeWithPlural,\n            M: 'месяц',\n            MM: relativeTimeWithPlural,\n            y: 'год',\n            yy: relativeTimeWithPlural,\n        },\n        meridiemParse: /ночи|утра|дня|вечера/i,\n        isPM: function (input) {\n            return /^(дня|вечера)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ночи';\n            } else if (hour < 12) {\n                return 'утра';\n            } else if (hour < 17) {\n                return 'дня';\n            } else {\n                return 'вечера';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'M':\n                case 'd':\n                case 'DDD':\n                    return number + '-й';\n                case 'D':\n                    return number + '-го';\n                case 'w':\n                case 'W':\n                    return number + '-я';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return ru;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ru.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sd.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/sd.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var months = [\n            'جنوري',\n            'فيبروري',\n            'مارچ',\n            'اپريل',\n            'مئي',\n            'جون',\n            'جولاءِ',\n            'آگسٽ',\n            'سيپٽمبر',\n            'آڪٽوبر',\n            'نومبر',\n            'ڊسمبر',\n        ],\n        days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n    var sd = moment.defineLocale('sd', {\n        months: months,\n        monthsShort: months,\n        weekdays: days,\n        weekdaysShort: days,\n        weekdaysMin: days,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd، D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /صبح|شام/,\n        isPM: function (input) {\n            return 'شام' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'صبح';\n            }\n            return 'شام';\n        },\n        calendar: {\n            sameDay: '[اڄ] LT',\n            nextDay: '[سڀاڻي] LT',\n            nextWeek: 'dddd [اڳين هفتي تي] LT',\n            lastDay: '[ڪالهه] LT',\n            lastWeek: '[گزريل هفتي] dddd [تي] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s پوء',\n            past: '%s اڳ',\n            s: 'چند سيڪنڊ',\n            ss: '%d سيڪنڊ',\n            m: 'هڪ منٽ',\n            mm: '%d منٽ',\n            h: 'هڪ ڪلاڪ',\n            hh: '%d ڪلاڪ',\n            d: 'هڪ ڏينهن',\n            dd: '%d ڏينهن',\n            M: 'هڪ مهينو',\n            MM: '%d مهينا',\n            y: 'هڪ سال',\n            yy: '%d سال',\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return sd;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sd.js?");

/***/ }),

/***/ "./node_modules/moment/locale/se.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/se.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var se = moment.defineLocale('se', {\n        months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n            '_'\n        ),\n        monthsShort:\n            'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n        weekdays:\n            'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n                '_'\n            ),\n        weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n        weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'MMMM D. [b.] YYYY',\n            LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n            LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n        },\n        calendar: {\n            sameDay: '[otne ti] LT',\n            nextDay: '[ihttin ti] LT',\n            nextWeek: 'dddd [ti] LT',\n            lastDay: '[ikte ti] LT',\n            lastWeek: '[ovddit] dddd [ti] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s geažes',\n            past: 'maŋit %s',\n            s: 'moadde sekunddat',\n            ss: '%d sekunddat',\n            m: 'okta minuhta',\n            mm: '%d minuhtat',\n            h: 'okta diimmu',\n            hh: '%d diimmut',\n            d: 'okta beaivi',\n            dd: '%d beaivvit',\n            M: 'okta mánnu',\n            MM: '%d mánut',\n            y: 'okta jahki',\n            yy: '%d jagit',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return se;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/se.js?");

/***/ }),

/***/ "./node_modules/moment/locale/si.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/si.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    /*jshint -W100*/\n    var si = moment.defineLocale('si', {\n        months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n            '_'\n        ),\n        monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n            '_'\n        ),\n        weekdays:\n            'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n                '_'\n            ),\n        weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n        weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'a h:mm',\n            LTS: 'a h:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY MMMM D',\n            LLL: 'YYYY MMMM D, a h:mm',\n            LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n        },\n        calendar: {\n            sameDay: '[අද] LT[ට]',\n            nextDay: '[හෙට] LT[ට]',\n            nextWeek: 'dddd LT[ට]',\n            lastDay: '[ඊයේ] LT[ට]',\n            lastWeek: '[පසුගිය] dddd LT[ට]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%sකින්',\n            past: '%sකට පෙර',\n            s: 'තත්පර කිහිපය',\n            ss: 'තත්පර %d',\n            m: 'මිනිත්තුව',\n            mm: 'මිනිත්තු %d',\n            h: 'පැය',\n            hh: 'පැය %d',\n            d: 'දිනය',\n            dd: 'දින %d',\n            M: 'මාසය',\n            MM: 'මාස %d',\n            y: 'වසර',\n            yy: 'වසර %d',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n        ordinal: function (number) {\n            return number + ' වැනි';\n        },\n        meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n        isPM: function (input) {\n            return input === 'ප.ව.' || input === 'පස් වරු';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? 'ප.ව.' : 'පස් වරු';\n            } else {\n                return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n            }\n        },\n    });\n\n    return si;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/si.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sk.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/sk.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var months =\n            'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n                '_'\n            ),\n        monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n    function plural(n) {\n        return n > 1 && n < 5;\n    }\n    function translate(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's': // a few seconds / in a few seconds / a few seconds ago\n                return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'sekundy' : 'sekúnd');\n                } else {\n                    return result + 'sekundami';\n                }\n            case 'm': // a minute / in a minute / a minute ago\n                return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'minúty' : 'minút');\n                } else {\n                    return result + 'minútami';\n                }\n            case 'h': // an hour / in an hour / an hour ago\n                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n            case 'hh': // 9 hours / in 9 hours / 9 hours ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'hodiny' : 'hodín');\n                } else {\n                    return result + 'hodinami';\n                }\n            case 'd': // a day / in a day / a day ago\n                return withoutSuffix || isFuture ? 'deň' : 'dňom';\n            case 'dd': // 9 days / in 9 days / 9 days ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'dni' : 'dní');\n                } else {\n                    return result + 'dňami';\n                }\n            case 'M': // a month / in a month / a month ago\n                return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n            case 'MM': // 9 months / in 9 months / 9 months ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'mesiace' : 'mesiacov');\n                } else {\n                    return result + 'mesiacmi';\n                }\n            case 'y': // a year / in a year / a year ago\n                return withoutSuffix || isFuture ? 'rok' : 'rokom';\n            case 'yy': // 9 years / in 9 years / 9 years ago\n                if (withoutSuffix || isFuture) {\n                    return result + (plural(number) ? 'roky' : 'rokov');\n                } else {\n                    return result + 'rokmi';\n                }\n        }\n    }\n\n    var sk = moment.defineLocale('sk', {\n        months: months,\n        monthsShort: monthsShort,\n        weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n        weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n        weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[dnes o] LT',\n            nextDay: '[zajtra o] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[v nedeľu o] LT';\n                    case 1:\n                    case 2:\n                        return '[v] dddd [o] LT';\n                    case 3:\n                        return '[v stredu o] LT';\n                    case 4:\n                        return '[vo štvrtok o] LT';\n                    case 5:\n                        return '[v piatok o] LT';\n                    case 6:\n                        return '[v sobotu o] LT';\n                }\n            },\n            lastDay: '[včera o] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[minulú nedeľu o] LT';\n                    case 1:\n                    case 2:\n                        return '[minulý] dddd [o] LT';\n                    case 3:\n                        return '[minulú stredu o] LT';\n                    case 4:\n                    case 5:\n                        return '[minulý] dddd [o] LT';\n                    case 6:\n                        return '[minulú sobotu o] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'pred %s',\n            s: translate,\n            ss: translate,\n            m: translate,\n            mm: translate,\n            h: translate,\n            hh: translate,\n            d: translate,\n            dd: translate,\n            M: translate,\n            MM: translate,\n            y: translate,\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return sk;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sk.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sl.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/sl.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var result = number + ' ';\n        switch (key) {\n            case 's':\n                return withoutSuffix || isFuture\n                    ? 'nekaj sekund'\n                    : 'nekaj sekundami';\n            case 'ss':\n                if (number === 1) {\n                    result += withoutSuffix ? 'sekundo' : 'sekundi';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n                } else {\n                    result += 'sekund';\n                }\n                return result;\n            case 'm':\n                return withoutSuffix ? 'ena minuta' : 'eno minuto';\n            case 'mm':\n                if (number === 1) {\n                    result += withoutSuffix ? 'minuta' : 'minuto';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n                } else {\n                    result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n                }\n                return result;\n            case 'h':\n                return withoutSuffix ? 'ena ura' : 'eno uro';\n            case 'hh':\n                if (number === 1) {\n                    result += withoutSuffix ? 'ura' : 'uro';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'uri' : 'urama';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'ure' : 'urami';\n                } else {\n                    result += withoutSuffix || isFuture ? 'ur' : 'urami';\n                }\n                return result;\n            case 'd':\n                return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n            case 'dd':\n                if (number === 1) {\n                    result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n                } else {\n                    result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n                }\n                return result;\n            case 'M':\n                return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n            case 'MM':\n                if (number === 1) {\n                    result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n                } else {\n                    result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n                }\n                return result;\n            case 'y':\n                return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n            case 'yy':\n                if (number === 1) {\n                    result += withoutSuffix || isFuture ? 'leto' : 'letom';\n                } else if (number === 2) {\n                    result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n                } else if (number < 5) {\n                    result += withoutSuffix || isFuture ? 'leta' : 'leti';\n                } else {\n                    result += withoutSuffix || isFuture ? 'let' : 'leti';\n                }\n                return result;\n        }\n    }\n\n    var sl = moment.defineLocale('sl', {\n        months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort:\n            'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n        weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n        weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD. MM. YYYY',\n            LL: 'D. MMMM YYYY',\n            LLL: 'D. MMMM YYYY H:mm',\n            LLLL: 'dddd, D. MMMM YYYY H:mm',\n        },\n        calendar: {\n            sameDay: '[danes ob] LT',\n            nextDay: '[jutri ob] LT',\n\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[v] [nedeljo] [ob] LT';\n                    case 3:\n                        return '[v] [sredo] [ob] LT';\n                    case 6:\n                        return '[v] [soboto] [ob] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[v] dddd [ob] LT';\n                }\n            },\n            lastDay: '[včeraj ob] LT',\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[prejšnjo] [nedeljo] [ob] LT';\n                    case 3:\n                        return '[prejšnjo] [sredo] [ob] LT';\n                    case 6:\n                        return '[prejšnjo] [soboto] [ob] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[prejšnji] dddd [ob] LT';\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'čez %s',\n            past: 'pred %s',\n            s: processRelativeTime,\n            ss: processRelativeTime,\n            m: processRelativeTime,\n            mm: processRelativeTime,\n            h: processRelativeTime,\n            hh: processRelativeTime,\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return sl;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sl.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sq.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/sq.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var sq = moment.defineLocale('sq', {\n        months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n        weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n            '_'\n        ),\n        weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n        weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n        weekdaysParseExact: true,\n        meridiemParse: /PD|MD/,\n        isPM: function (input) {\n            return input.charAt(0) === 'M';\n        },\n        meridiem: function (hours, minutes, isLower) {\n            return hours < 12 ? 'PD' : 'MD';\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Sot në] LT',\n            nextDay: '[Nesër në] LT',\n            nextWeek: 'dddd [në] LT',\n            lastDay: '[Dje në] LT',\n            lastWeek: 'dddd [e kaluar në] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'në %s',\n            past: '%s më parë',\n            s: 'disa sekonda',\n            ss: '%d sekonda',\n            m: 'një minutë',\n            mm: '%d minuta',\n            h: 'një orë',\n            hh: '%d orë',\n            d: 'një ditë',\n            dd: '%d ditë',\n            M: 'një muaj',\n            MM: '%d muaj',\n            y: 'një vit',\n            yy: '%d vite',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return sq;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sq.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sr-cyrl.js":
/*!***********************************************!*\
  !*** ./node_modules/moment/locale/sr-cyrl.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var translator = {\n        words: {\n            //Different grammatical cases\n            ss: ['секунда', 'секунде', 'секунди'],\n            m: ['један минут', 'једног минута'],\n            mm: ['минут', 'минута', 'минута'],\n            h: ['један сат', 'једног сата'],\n            hh: ['сат', 'сата', 'сати'],\n            d: ['један дан', 'једног дана'],\n            dd: ['дан', 'дана', 'дана'],\n            M: ['један месец', 'једног месеца'],\n            MM: ['месец', 'месеца', 'месеци'],\n            y: ['једну годину', 'једне године'],\n            yy: ['годину', 'године', 'година'],\n        },\n        correctGrammaticalCase: function (number, wordKey) {\n            if (\n                number % 10 >= 1 &&\n                number % 10 <= 4 &&\n                (number % 100 < 10 || number % 100 >= 20)\n            ) {\n                return number % 10 === 1 ? wordKey[0] : wordKey[1];\n            }\n            return wordKey[2];\n        },\n        translate: function (number, withoutSuffix, key, isFuture) {\n            var wordKey = translator.words[key],\n                word;\n\n            if (key.length === 1) {\n                // Nominativ\n                if (key === 'y' && withoutSuffix) return 'једна година';\n                return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n            }\n\n            word = translator.correctGrammaticalCase(number, wordKey);\n            // Nominativ\n            if (key === 'yy' && withoutSuffix && word === 'годину') {\n                return number + ' година';\n            }\n\n            return number + ' ' + word;\n        },\n    };\n\n    var srCyrl = moment.defineLocale('sr-cyrl', {\n        months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n            '_'\n        ),\n        monthsShort:\n            'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n        monthsParseExact: true,\n        weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n        weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n        weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D. M. YYYY.',\n            LL: 'D. MMMM YYYY.',\n            LLL: 'D. MMMM YYYY. H:mm',\n            LLLL: 'dddd, D. MMMM YYYY. H:mm',\n        },\n        calendar: {\n            sameDay: '[данас у] LT',\n            nextDay: '[сутра у] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[у] [недељу] [у] LT';\n                    case 3:\n                        return '[у] [среду] [у] LT';\n                    case 6:\n                        return '[у] [суботу] [у] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[у] dddd [у] LT';\n                }\n            },\n            lastDay: '[јуче у] LT',\n            lastWeek: function () {\n                var lastWeekDays = [\n                    '[прошле] [недеље] [у] LT',\n                    '[прошлог] [понедељка] [у] LT',\n                    '[прошлог] [уторка] [у] LT',\n                    '[прошле] [среде] [у] LT',\n                    '[прошлог] [четвртка] [у] LT',\n                    '[прошлог] [петка] [у] LT',\n                    '[прошле] [суботе] [у] LT',\n                ];\n                return lastWeekDays[this.day()];\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'за %s',\n            past: 'пре %s',\n            s: 'неколико секунди',\n            ss: translator.translate,\n            m: translator.translate,\n            mm: translator.translate,\n            h: translator.translate,\n            hh: translator.translate,\n            d: translator.translate,\n            dd: translator.translate,\n            M: translator.translate,\n            MM: translator.translate,\n            y: translator.translate,\n            yy: translator.translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 1st is the first week of the year.\n        },\n    });\n\n    return srCyrl;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sr-cyrl.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sr.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/sr.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var translator = {\n        words: {\n            //Different grammatical cases\n            ss: ['sekunda', 'sekunde', 'sekundi'],\n            m: ['jedan minut', 'jednog minuta'],\n            mm: ['minut', 'minuta', 'minuta'],\n            h: ['jedan sat', 'jednog sata'],\n            hh: ['sat', 'sata', 'sati'],\n            d: ['jedan dan', 'jednog dana'],\n            dd: ['dan', 'dana', 'dana'],\n            M: ['jedan mesec', 'jednog meseca'],\n            MM: ['mesec', 'meseca', 'meseci'],\n            y: ['jednu godinu', 'jedne godine'],\n            yy: ['godinu', 'godine', 'godina'],\n        },\n        correctGrammaticalCase: function (number, wordKey) {\n            if (\n                number % 10 >= 1 &&\n                number % 10 <= 4 &&\n                (number % 100 < 10 || number % 100 >= 20)\n            ) {\n                return number % 10 === 1 ? wordKey[0] : wordKey[1];\n            }\n            return wordKey[2];\n        },\n        translate: function (number, withoutSuffix, key, isFuture) {\n            var wordKey = translator.words[key],\n                word;\n\n            if (key.length === 1) {\n                // Nominativ\n                if (key === 'y' && withoutSuffix) return 'jedna godina';\n                return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n            }\n\n            word = translator.correctGrammaticalCase(number, wordKey);\n            // Nominativ\n            if (key === 'yy' && withoutSuffix && word === 'godinu') {\n                return number + ' godina';\n            }\n\n            return number + ' ' + word;\n        },\n    };\n\n    var sr = moment.defineLocale('sr', {\n        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n            '_'\n        ),\n        monthsShort:\n            'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n        monthsParseExact: true,\n        weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n            '_'\n        ),\n        weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'D. M. YYYY.',\n            LL: 'D. MMMM YYYY.',\n            LLL: 'D. MMMM YYYY. H:mm',\n            LLLL: 'dddd, D. MMMM YYYY. H:mm',\n        },\n        calendar: {\n            sameDay: '[danas u] LT',\n            nextDay: '[sutra u] LT',\n            nextWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                        return '[u] [nedelju] [u] LT';\n                    case 3:\n                        return '[u] [sredu] [u] LT';\n                    case 6:\n                        return '[u] [subotu] [u] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                    case 5:\n                        return '[u] dddd [u] LT';\n                }\n            },\n            lastDay: '[juče u] LT',\n            lastWeek: function () {\n                var lastWeekDays = [\n                    '[prošle] [nedelje] [u] LT',\n                    '[prošlog] [ponedeljka] [u] LT',\n                    '[prošlog] [utorka] [u] LT',\n                    '[prošle] [srede] [u] LT',\n                    '[prošlog] [četvrtka] [u] LT',\n                    '[prošlog] [petka] [u] LT',\n                    '[prošle] [subote] [u] LT',\n                ];\n                return lastWeekDays[this.day()];\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'za %s',\n            past: 'pre %s',\n            s: 'nekoliko sekundi',\n            ss: translator.translate,\n            m: translator.translate,\n            mm: translator.translate,\n            h: translator.translate,\n            hh: translator.translate,\n            d: translator.translate,\n            dd: translator.translate,\n            M: translator.translate,\n            MM: translator.translate,\n            y: translator.translate,\n            yy: translator.translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return sr;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sr.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ss.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ss.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ss = moment.defineLocale('ss', {\n        months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n            '_'\n        ),\n        monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n        weekdays:\n            'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n                '_'\n            ),\n        weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n        weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Namuhla nga] LT',\n            nextDay: '[Kusasa nga] LT',\n            nextWeek: 'dddd [nga] LT',\n            lastDay: '[Itolo nga] LT',\n            lastWeek: 'dddd [leliphelile] [nga] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'nga %s',\n            past: 'wenteka nga %s',\n            s: 'emizuzwana lomcane',\n            ss: '%d mzuzwana',\n            m: 'umzuzu',\n            mm: '%d emizuzu',\n            h: 'lihora',\n            hh: '%d emahora',\n            d: 'lilanga',\n            dd: '%d emalanga',\n            M: 'inyanga',\n            MM: '%d tinyanga',\n            y: 'umnyaka',\n            yy: '%d iminyaka',\n        },\n        meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 11) {\n                return 'ekuseni';\n            } else if (hours < 15) {\n                return 'emini';\n            } else if (hours < 19) {\n                return 'entsambama';\n            } else {\n                return 'ebusuku';\n            }\n        },\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'ekuseni') {\n                return hour;\n            } else if (meridiem === 'emini') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n                if (hour === 0) {\n                    return 0;\n                }\n                return hour + 12;\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: '%d',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return ss;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ss.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sv.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/sv.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var sv = moment.defineLocale('sv', {\n        months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n            '_'\n        ),\n        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n        weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n        weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n        weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY [kl.] HH:mm',\n            LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n            lll: 'D MMM YYYY HH:mm',\n            llll: 'ddd D MMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Idag] LT',\n            nextDay: '[Imorgon] LT',\n            lastDay: '[Igår] LT',\n            nextWeek: '[På] dddd LT',\n            lastWeek: '[I] dddd[s] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'om %s',\n            past: 'för %s sedan',\n            s: 'några sekunder',\n            ss: '%d sekunder',\n            m: 'en minut',\n            mm: '%d minuter',\n            h: 'en timme',\n            hh: '%d timmar',\n            d: 'en dag',\n            dd: '%d dagar',\n            M: 'en månad',\n            MM: '%d månader',\n            y: 'ett år',\n            yy: '%d år',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? ':e'\n                        : b === 1\n                          ? ':a'\n                          : b === 2\n                            ? ':a'\n                            : b === 3\n                              ? ':e'\n                              : ':e';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return sv;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sv.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sw.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/sw.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var sw = moment.defineLocale('sw', {\n        months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n        weekdays:\n            'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n                '_'\n            ),\n        weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n        weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'hh:mm A',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[leo saa] LT',\n            nextDay: '[kesho saa] LT',\n            nextWeek: '[wiki ijayo] dddd [saat] LT',\n            lastDay: '[jana] LT',\n            lastWeek: '[wiki iliyopita] dddd [saat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s baadaye',\n            past: 'tokea %s',\n            s: 'hivi punde',\n            ss: 'sekunde %d',\n            m: 'dakika moja',\n            mm: 'dakika %d',\n            h: 'saa limoja',\n            hh: 'masaa %d',\n            d: 'siku moja',\n            dd: 'siku %d',\n            M: 'mwezi mmoja',\n            MM: 'miezi %d',\n            y: 'mwaka mmoja',\n            yy: 'miaka %d',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return sw;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sw.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ta.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ta.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '௧',\n            2: '௨',\n            3: '௩',\n            4: '௪',\n            5: '௫',\n            6: '௬',\n            7: '௭',\n            8: '௮',\n            9: '௯',\n            0: '௦',\n        },\n        numberMap = {\n            '௧': '1',\n            '௨': '2',\n            '௩': '3',\n            '௪': '4',\n            '௫': '5',\n            '௬': '6',\n            '௭': '7',\n            '௮': '8',\n            '௯': '9',\n            '௦': '0',\n        };\n\n    var ta = moment.defineLocale('ta', {\n        months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n            '_'\n        ),\n        monthsShort:\n            'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n                '_'\n            ),\n        weekdays:\n            'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n                '_'\n            ),\n        weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n            '_'\n        ),\n        weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, HH:mm',\n            LLLL: 'dddd, D MMMM YYYY, HH:mm',\n        },\n        calendar: {\n            sameDay: '[இன்று] LT',\n            nextDay: '[நாளை] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[நேற்று] LT',\n            lastWeek: '[கடந்த வாரம்] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s இல்',\n            past: '%s முன்',\n            s: 'ஒரு சில விநாடிகள்',\n            ss: '%d விநாடிகள்',\n            m: 'ஒரு நிமிடம்',\n            mm: '%d நிமிடங்கள்',\n            h: 'ஒரு மணி நேரம்',\n            hh: '%d மணி நேரம்',\n            d: 'ஒரு நாள்',\n            dd: '%d நாட்கள்',\n            M: 'ஒரு மாதம்',\n            MM: '%d மாதங்கள்',\n            y: 'ஒரு வருடம்',\n            yy: '%d ஆண்டுகள்',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n        ordinal: function (number) {\n            return number + 'வது';\n        },\n        preparse: function (string) {\n            return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n                return numberMap[match];\n            });\n        },\n        postformat: function (string) {\n            return string.replace(/\\d/g, function (match) {\n                return symbolMap[match];\n            });\n        },\n        // refer http://ta.wikipedia.org/s/1er1\n        meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 2) {\n                return ' யாமம்';\n            } else if (hour < 6) {\n                return ' வைகறை'; // வைகறை\n            } else if (hour < 10) {\n                return ' காலை'; // காலை\n            } else if (hour < 14) {\n                return ' நண்பகல்'; // நண்பகல்\n            } else if (hour < 18) {\n                return ' எற்பாடு'; // எற்பாடு\n            } else if (hour < 22) {\n                return ' மாலை'; // மாலை\n            } else {\n                return ' யாமம்';\n            }\n        },\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'யாமம்') {\n                return hour < 2 ? hour : hour + 12;\n            } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n                return hour;\n            } else if (meridiem === 'நண்பகல்') {\n                return hour >= 10 ? hour : hour + 12;\n            } else {\n                return hour + 12;\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return ta;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ta.js?");

/***/ }),

/***/ "./node_modules/moment/locale/te.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/te.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var te = moment.defineLocale('te', {\n        months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n            '_'\n        ),\n        monthsShort:\n            'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays:\n            'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n                '_'\n            ),\n        weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n        weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n        longDateFormat: {\n            LT: 'A h:mm',\n            LTS: 'A h:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY, A h:mm',\n            LLLL: 'dddd, D MMMM YYYY, A h:mm',\n        },\n        calendar: {\n            sameDay: '[నేడు] LT',\n            nextDay: '[రేపు] LT',\n            nextWeek: 'dddd, LT',\n            lastDay: '[నిన్న] LT',\n            lastWeek: '[గత] dddd, LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s లో',\n            past: '%s క్రితం',\n            s: 'కొన్ని క్షణాలు',\n            ss: '%d సెకన్లు',\n            m: 'ఒక నిమిషం',\n            mm: '%d నిమిషాలు',\n            h: 'ఒక గంట',\n            hh: '%d గంటలు',\n            d: 'ఒక రోజు',\n            dd: '%d రోజులు',\n            M: 'ఒక నెల',\n            MM: '%d నెలలు',\n            y: 'ఒక సంవత్సరం',\n            yy: '%d సంవత్సరాలు',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n        ordinal: '%dవ',\n        meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'రాత్రి') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'ఉదయం') {\n                return hour;\n            } else if (meridiem === 'మధ్యాహ్నం') {\n                return hour >= 10 ? hour : hour + 12;\n            } else if (meridiem === 'సాయంత్రం') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'రాత్రి';\n            } else if (hour < 10) {\n                return 'ఉదయం';\n            } else if (hour < 17) {\n                return 'మధ్యాహ్నం';\n            } else if (hour < 20) {\n                return 'సాయంత్రం';\n            } else {\n                return 'రాత్రి';\n            }\n        },\n        week: {\n            dow: 0, // Sunday is the first day of the week.\n            doy: 6, // The week that contains Jan 6th is the first week of the year.\n        },\n    });\n\n    return te;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/te.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tet.js":
/*!*******************************************!*\
  !*** ./node_modules/moment/locale/tet.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var tet = moment.defineLocale('tet', {\n        months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n        weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n        weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n        weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Ohin iha] LT',\n            nextDay: '[Aban iha] LT',\n            nextWeek: 'dddd [iha] LT',\n            lastDay: '[Horiseik iha] LT',\n            lastWeek: 'dddd [semana kotuk] [iha] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'iha %s',\n            past: '%s liuba',\n            s: 'segundu balun',\n            ss: 'segundu %d',\n            m: 'minutu ida',\n            mm: 'minutu %d',\n            h: 'oras ida',\n            hh: 'oras %d',\n            d: 'loron ida',\n            dd: 'loron %d',\n            M: 'fulan ida',\n            MM: 'fulan %d',\n            y: 'tinan ida',\n            yy: 'tinan %d',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                          ? 'st'\n                          : b === 2\n                            ? 'nd'\n                            : b === 3\n                              ? 'rd'\n                              : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return tet;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tet.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tg.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/tg.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var suffixes = {\n        0: '-ум',\n        1: '-ум',\n        2: '-юм',\n        3: '-юм',\n        4: '-ум',\n        5: '-ум',\n        6: '-ум',\n        7: '-ум',\n        8: '-ум',\n        9: '-ум',\n        10: '-ум',\n        12: '-ум',\n        13: '-ум',\n        20: '-ум',\n        30: '-юм',\n        40: '-ум',\n        50: '-ум',\n        60: '-ум',\n        70: '-ум',\n        80: '-ум',\n        90: '-ум',\n        100: '-ум',\n    };\n\n    var tg = moment.defineLocale('tg', {\n        months: {\n            format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n                '_'\n            ),\n            standalone:\n                'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n                    '_'\n                ),\n        },\n        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n        weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n            '_'\n        ),\n        weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n        weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Имрӯз соати] LT',\n            nextDay: '[Фардо соати] LT',\n            lastDay: '[Дирӯз соати] LT',\n            nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n            lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'баъди %s',\n            past: '%s пеш',\n            s: 'якчанд сония',\n            m: 'як дақиқа',\n            mm: '%d дақиқа',\n            h: 'як соат',\n            hh: '%d соат',\n            d: 'як рӯз',\n            dd: '%d рӯз',\n            M: 'як моҳ',\n            MM: '%d моҳ',\n            y: 'як сол',\n            yy: '%d сол',\n        },\n        meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === 'шаб') {\n                return hour < 4 ? hour : hour + 12;\n            } else if (meridiem === 'субҳ') {\n                return hour;\n            } else if (meridiem === 'рӯз') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === 'бегоҳ') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'шаб';\n            } else if (hour < 11) {\n                return 'субҳ';\n            } else if (hour < 16) {\n                return 'рӯз';\n            } else if (hour < 19) {\n                return 'бегоҳ';\n            } else {\n                return 'шаб';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n        ordinal: function (number) {\n            var a = number % 10,\n                b = number >= 100 ? 100 : null;\n            return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 1th is the first week of the year.\n        },\n    });\n\n    return tg;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tg.js?");

/***/ }),

/***/ "./node_modules/moment/locale/th.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/th.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var th = moment.defineLocale('th', {\n        months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n            '_'\n        ),\n        monthsShort:\n            'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n        weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n        weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'H:mm',\n            LTS: 'H:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY เวลา H:mm',\n            LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n        },\n        meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n        isPM: function (input) {\n            return input === 'หลังเที่ยง';\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'ก่อนเที่ยง';\n            } else {\n                return 'หลังเที่ยง';\n            }\n        },\n        calendar: {\n            sameDay: '[วันนี้ เวลา] LT',\n            nextDay: '[พรุ่งนี้ เวลา] LT',\n            nextWeek: 'dddd[หน้า เวลา] LT',\n            lastDay: '[เมื่อวานนี้ เวลา] LT',\n            lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'อีก %s',\n            past: '%sที่แล้ว',\n            s: 'ไม่กี่วินาที',\n            ss: '%d วินาที',\n            m: '1 นาที',\n            mm: '%d นาที',\n            h: '1 ชั่วโมง',\n            hh: '%d ชั่วโมง',\n            d: '1 วัน',\n            dd: '%d วัน',\n            w: '1 สัปดาห์',\n            ww: '%d สัปดาห์',\n            M: '1 เดือน',\n            MM: '%d เดือน',\n            y: '1 ปี',\n            yy: '%d ปี',\n        },\n    });\n\n    return th;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/th.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tk.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/tk.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var suffixes = {\n        1: \"'inji\",\n        5: \"'inji\",\n        8: \"'inji\",\n        70: \"'inji\",\n        80: \"'inji\",\n        2: \"'nji\",\n        7: \"'nji\",\n        20: \"'nji\",\n        50: \"'nji\",\n        3: \"'ünji\",\n        4: \"'ünji\",\n        100: \"'ünji\",\n        6: \"'njy\",\n        9: \"'unjy\",\n        10: \"'unjy\",\n        30: \"'unjy\",\n        60: \"'ynjy\",\n        90: \"'ynjy\",\n    };\n\n    var tk = moment.defineLocale('tk', {\n        months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n            '_'\n        ),\n        monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n        weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n            '_'\n        ),\n        weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n        weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[bugün sagat] LT',\n            nextDay: '[ertir sagat] LT',\n            nextWeek: '[indiki] dddd [sagat] LT',\n            lastDay: '[düýn] LT',\n            lastWeek: '[geçen] dddd [sagat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s soň',\n            past: '%s öň',\n            s: 'birnäçe sekunt',\n            m: 'bir minut',\n            mm: '%d minut',\n            h: 'bir sagat',\n            hh: '%d sagat',\n            d: 'bir gün',\n            dd: '%d gün',\n            M: 'bir aý',\n            MM: '%d aý',\n            y: 'bir ýyl',\n            yy: '%d ýyl',\n        },\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'Do':\n                case 'DD':\n                    return number;\n                default:\n                    if (number === 0) {\n                        // special case for zero\n                        return number + \"'unjy\";\n                    }\n                    var a = number % 10,\n                        b = (number % 100) - a,\n                        c = number >= 100 ? 100 : null;\n                    return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return tk;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tk.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tl-ph.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/tl-ph.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var tlPh = moment.defineLocale('tl-ph', {\n        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n            '_'\n        ),\n        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n            '_'\n        ),\n        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'MM/D/YYYY',\n            LL: 'MMMM D, YYYY',\n            LLL: 'MMMM D, YYYY HH:mm',\n            LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: 'LT [ngayong araw]',\n            nextDay: '[Bukas ng] LT',\n            nextWeek: 'LT [sa susunod na] dddd',\n            lastDay: 'LT [kahapon]',\n            lastWeek: 'LT [noong nakaraang] dddd',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'sa loob ng %s',\n            past: '%s ang nakalipas',\n            s: 'ilang segundo',\n            ss: '%d segundo',\n            m: 'isang minuto',\n            mm: '%d minuto',\n            h: 'isang oras',\n            hh: '%d oras',\n            d: 'isang araw',\n            dd: '%d araw',\n            M: 'isang buwan',\n            MM: '%d buwan',\n            y: 'isang taon',\n            yy: '%d taon',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: function (number) {\n            return number;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return tlPh;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tl-ph.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tlh.js":
/*!*******************************************!*\
  !*** ./node_modules/moment/locale/tlh.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n    function translateFuture(output) {\n        var time = output;\n        time =\n            output.indexOf('jaj') !== -1\n                ? time.slice(0, -3) + 'leS'\n                : output.indexOf('jar') !== -1\n                  ? time.slice(0, -3) + 'waQ'\n                  : output.indexOf('DIS') !== -1\n                    ? time.slice(0, -3) + 'nem'\n                    : time + ' pIq';\n        return time;\n    }\n\n    function translatePast(output) {\n        var time = output;\n        time =\n            output.indexOf('jaj') !== -1\n                ? time.slice(0, -3) + 'Hu’'\n                : output.indexOf('jar') !== -1\n                  ? time.slice(0, -3) + 'wen'\n                  : output.indexOf('DIS') !== -1\n                    ? time.slice(0, -3) + 'ben'\n                    : time + ' ret';\n        return time;\n    }\n\n    function translate(number, withoutSuffix, string, isFuture) {\n        var numberNoun = numberAsNoun(number);\n        switch (string) {\n            case 'ss':\n                return numberNoun + ' lup';\n            case 'mm':\n                return numberNoun + ' tup';\n            case 'hh':\n                return numberNoun + ' rep';\n            case 'dd':\n                return numberNoun + ' jaj';\n            case 'MM':\n                return numberNoun + ' jar';\n            case 'yy':\n                return numberNoun + ' DIS';\n        }\n    }\n\n    function numberAsNoun(number) {\n        var hundred = Math.floor((number % 1000) / 100),\n            ten = Math.floor((number % 100) / 10),\n            one = number % 10,\n            word = '';\n        if (hundred > 0) {\n            word += numbersNouns[hundred] + 'vatlh';\n        }\n        if (ten > 0) {\n            word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n        }\n        if (one > 0) {\n            word += (word !== '' ? ' ' : '') + numbersNouns[one];\n        }\n        return word === '' ? 'pagh' : word;\n    }\n\n    var tlh = moment.defineLocale('tlh', {\n        months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n            '_'\n        ),\n        monthsShort:\n            'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n            '_'\n        ),\n        weekdaysShort:\n            'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n        weekdaysMin:\n            'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[DaHjaj] LT',\n            nextDay: '[wa’leS] LT',\n            nextWeek: 'LLL',\n            lastDay: '[wa’Hu’] LT',\n            lastWeek: 'LLL',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: translateFuture,\n            past: translatePast,\n            s: 'puS lup',\n            ss: translate,\n            m: 'wa’ tup',\n            mm: translate,\n            h: 'wa’ rep',\n            hh: translate,\n            d: 'wa’ jaj',\n            dd: translate,\n            M: 'wa’ jar',\n            MM: translate,\n            y: 'wa’ DIS',\n            yy: translate,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return tlh;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tlh.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tr.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/tr.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//!           Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var suffixes = {\n        1: \"'inci\",\n        5: \"'inci\",\n        8: \"'inci\",\n        70: \"'inci\",\n        80: \"'inci\",\n        2: \"'nci\",\n        7: \"'nci\",\n        20: \"'nci\",\n        50: \"'nci\",\n        3: \"'üncü\",\n        4: \"'üncü\",\n        100: \"'üncü\",\n        6: \"'ncı\",\n        9: \"'uncu\",\n        10: \"'uncu\",\n        30: \"'uncu\",\n        60: \"'ıncı\",\n        90: \"'ıncı\",\n    };\n\n    var tr = moment.defineLocale('tr', {\n        months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n            '_'\n        ),\n        monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n        weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n            '_'\n        ),\n        weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n        weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower ? 'öö' : 'ÖÖ';\n            } else {\n                return isLower ? 'ös' : 'ÖS';\n            }\n        },\n        meridiemParse: /öö|ÖÖ|ös|ÖS/,\n        isPM: function (input) {\n            return input === 'ös' || input === 'ÖS';\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[bugün saat] LT',\n            nextDay: '[yarın saat] LT',\n            nextWeek: '[gelecek] dddd [saat] LT',\n            lastDay: '[dün] LT',\n            lastWeek: '[geçen] dddd [saat] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s sonra',\n            past: '%s önce',\n            s: 'birkaç saniye',\n            ss: '%d saniye',\n            m: 'bir dakika',\n            mm: '%d dakika',\n            h: 'bir saat',\n            hh: '%d saat',\n            d: 'bir gün',\n            dd: '%d gün',\n            w: 'bir hafta',\n            ww: '%d hafta',\n            M: 'bir ay',\n            MM: '%d ay',\n            y: 'bir yıl',\n            yy: '%d yıl',\n        },\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'Do':\n                case 'DD':\n                    return number;\n                default:\n                    if (number === 0) {\n                        // special case for zero\n                        return number + \"'ıncı\";\n                    }\n                    var a = number % 10,\n                        b = (number % 100) - a,\n                        c = number >= 100 ? 100 : null;\n                    return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return tr;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tr.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tzl.js":
/*!*******************************************!*\
  !*** ./node_modules/moment/locale/tzl.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n    // This is currently too difficult (maybe even impossible) to add.\n    var tzl = moment.defineLocale('tzl', {\n        months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n            '_'\n        ),\n        monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n        weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n        weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n        weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n        longDateFormat: {\n            LT: 'HH.mm',\n            LTS: 'HH.mm.ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D. MMMM [dallas] YYYY',\n            LLL: 'D. MMMM [dallas] YYYY HH.mm',\n            LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n        },\n        meridiemParse: /d\\'o|d\\'a/i,\n        isPM: function (input) {\n            return \"d'o\" === input.toLowerCase();\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours > 11) {\n                return isLower ? \"d'o\" : \"D'O\";\n            } else {\n                return isLower ? \"d'a\" : \"D'A\";\n            }\n        },\n        calendar: {\n            sameDay: '[oxhi à] LT',\n            nextDay: '[demà à] LT',\n            nextWeek: 'dddd [à] LT',\n            lastDay: '[ieiri à] LT',\n            lastWeek: '[sür el] dddd [lasteu à] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'osprei %s',\n            past: 'ja%s',\n            s: processRelativeTime,\n            ss: processRelativeTime,\n            m: processRelativeTime,\n            mm: processRelativeTime,\n            h: processRelativeTime,\n            hh: processRelativeTime,\n            d: processRelativeTime,\n            dd: processRelativeTime,\n            M: processRelativeTime,\n            MM: processRelativeTime,\n            y: processRelativeTime,\n            yy: processRelativeTime,\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n        ordinal: '%d.',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    function processRelativeTime(number, withoutSuffix, key, isFuture) {\n        var format = {\n            s: ['viensas secunds', \"'iensas secunds\"],\n            ss: [number + ' secunds', '' + number + ' secunds'],\n            m: [\"'n míut\", \"'iens míut\"],\n            mm: [number + ' míuts', '' + number + ' míuts'],\n            h: [\"'n þora\", \"'iensa þora\"],\n            hh: [number + ' þoras', '' + number + ' þoras'],\n            d: [\"'n ziua\", \"'iensa ziua\"],\n            dd: [number + ' ziuas', '' + number + ' ziuas'],\n            M: [\"'n mes\", \"'iens mes\"],\n            MM: [number + ' mesen', '' + number + ' mesen'],\n            y: [\"'n ar\", \"'iens ar\"],\n            yy: [number + ' ars', '' + number + ' ars'],\n        };\n        return isFuture\n            ? format[key][0]\n            : withoutSuffix\n              ? format[key][0]\n              : format[key][1];\n    }\n\n    return tzl;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tzl.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tzm-latn.js":
/*!************************************************!*\
  !*** ./node_modules/moment/locale/tzm-latn.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var tzmLatn = moment.defineLocale('tzm-latn', {\n        months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n            '_'\n        ),\n        monthsShort:\n            'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n                '_'\n            ),\n        weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n        weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n        weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[asdkh g] LT',\n            nextDay: '[aska g] LT',\n            nextWeek: 'dddd [g] LT',\n            lastDay: '[assant g] LT',\n            lastWeek: 'dddd [g] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'dadkh s yan %s',\n            past: 'yan %s',\n            s: 'imik',\n            ss: '%d imik',\n            m: 'minuḍ',\n            mm: '%d minuḍ',\n            h: 'saɛa',\n            hh: '%d tassaɛin',\n            d: 'ass',\n            dd: '%d ossan',\n            M: 'ayowr',\n            MM: '%d iyyirn',\n            y: 'asgas',\n            yy: '%d isgasn',\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return tzmLatn;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tzm-latn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tzm.js":
/*!*******************************************!*\
  !*** ./node_modules/moment/locale/tzm.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var tzm = moment.defineLocale('tzm', {\n        months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n            '_'\n        ),\n        monthsShort:\n            'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n                '_'\n            ),\n        weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n        weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n        weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n            nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n            nextWeek: 'dddd [ⴴ] LT',\n            lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n            lastWeek: 'dddd [ⴴ] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n            past: 'ⵢⴰⵏ %s',\n            s: 'ⵉⵎⵉⴽ',\n            ss: '%d ⵉⵎⵉⴽ',\n            m: 'ⵎⵉⵏⵓⴺ',\n            mm: '%d ⵎⵉⵏⵓⴺ',\n            h: 'ⵙⴰⵄⴰ',\n            hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n            d: 'ⴰⵙⵙ',\n            dd: '%d oⵙⵙⴰⵏ',\n            M: 'ⴰⵢoⵓⵔ',\n            MM: '%d ⵉⵢⵢⵉⵔⵏ',\n            y: 'ⴰⵙⴳⴰⵙ',\n            yy: '%d ⵉⵙⴳⴰⵙⵏ',\n        },\n        week: {\n            dow: 6, // Saturday is the first day of the week.\n            doy: 12, // The week that contains Jan 12th is the first week of the year.\n        },\n    });\n\n    return tzm;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tzm.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ug-cn.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ug-cn.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var ugCn = moment.defineLocale('ug-cn', {\n        months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n            '_'\n        ),\n        monthsShort:\n            'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n                '_'\n            ),\n        weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n            '_'\n        ),\n        weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n        weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY-MM-DD',\n            LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n            LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n            LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n        },\n        meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (\n                meridiem === 'يېرىم كېچە' ||\n                meridiem === 'سەھەر' ||\n                meridiem === 'چۈشتىن بۇرۇن'\n            ) {\n                return hour;\n            } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n                return hour + 12;\n            } else {\n                return hour >= 11 ? hour : hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return 'يېرىم كېچە';\n            } else if (hm < 900) {\n                return 'سەھەر';\n            } else if (hm < 1130) {\n                return 'چۈشتىن بۇرۇن';\n            } else if (hm < 1230) {\n                return 'چۈش';\n            } else if (hm < 1800) {\n                return 'چۈشتىن كېيىن';\n            } else {\n                return 'كەچ';\n            }\n        },\n        calendar: {\n            sameDay: '[بۈگۈن سائەت] LT',\n            nextDay: '[ئەتە سائەت] LT',\n            nextWeek: '[كېلەركى] dddd [سائەت] LT',\n            lastDay: '[تۆنۈگۈن] LT',\n            lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s كېيىن',\n            past: '%s بۇرۇن',\n            s: 'نەچچە سېكونت',\n            ss: '%d سېكونت',\n            m: 'بىر مىنۇت',\n            mm: '%d مىنۇت',\n            h: 'بىر سائەت',\n            hh: '%d سائەت',\n            d: 'بىر كۈن',\n            dd: '%d كۈن',\n            M: 'بىر ئاي',\n            MM: '%d ئاي',\n            y: 'بىر يىل',\n            yy: '%d يىل',\n        },\n\n        dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '-كۈنى';\n                case 'w':\n                case 'W':\n                    return number + '-ھەپتە';\n                default:\n                    return number;\n            }\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 1st is the first week of the year.\n        },\n    });\n\n    return ugCn;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ug-cn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/uk.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/uk.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    function plural(word, num) {\n        var forms = word.split('_');\n        return num % 10 === 1 && num % 100 !== 11\n            ? forms[0]\n            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n              ? forms[1]\n              : forms[2];\n    }\n    function relativeTimeWithPlural(number, withoutSuffix, key) {\n        var format = {\n            ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n            mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n            hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n            dd: 'день_дні_днів',\n            MM: 'місяць_місяці_місяців',\n            yy: 'рік_роки_років',\n        };\n        if (key === 'm') {\n            return withoutSuffix ? 'хвилина' : 'хвилину';\n        } else if (key === 'h') {\n            return withoutSuffix ? 'година' : 'годину';\n        } else {\n            return number + ' ' + plural(format[key], +number);\n        }\n    }\n    function weekdaysCaseReplace(m, format) {\n        var weekdays = {\n                nominative:\n                    'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n                        '_'\n                    ),\n                accusative:\n                    'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n                        '_'\n                    ),\n                genitive:\n                    'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n                        '_'\n                    ),\n            },\n            nounCase;\n\n        if (m === true) {\n            return weekdays['nominative']\n                .slice(1, 7)\n                .concat(weekdays['nominative'].slice(0, 1));\n        }\n        if (!m) {\n            return weekdays['nominative'];\n        }\n\n        nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n            ? 'accusative'\n            : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n              ? 'genitive'\n              : 'nominative';\n        return weekdays[nounCase][m.day()];\n    }\n    function processHoursFunction(str) {\n        return function () {\n            return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n        };\n    }\n\n    var uk = moment.defineLocale('uk', {\n        months: {\n            format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n                '_'\n            ),\n            standalone:\n                'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n                    '_'\n                ),\n        },\n        monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n            '_'\n        ),\n        weekdays: weekdaysCaseReplace,\n        weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD.MM.YYYY',\n            LL: 'D MMMM YYYY р.',\n            LLL: 'D MMMM YYYY р., HH:mm',\n            LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n        },\n        calendar: {\n            sameDay: processHoursFunction('[Сьогодні '),\n            nextDay: processHoursFunction('[Завтра '),\n            lastDay: processHoursFunction('[Вчора '),\n            nextWeek: processHoursFunction('[У] dddd ['),\n            lastWeek: function () {\n                switch (this.day()) {\n                    case 0:\n                    case 3:\n                    case 5:\n                    case 6:\n                        return processHoursFunction('[Минулої] dddd [').call(this);\n                    case 1:\n                    case 2:\n                    case 4:\n                        return processHoursFunction('[Минулого] dddd [').call(this);\n                }\n            },\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'за %s',\n            past: '%s тому',\n            s: 'декілька секунд',\n            ss: relativeTimeWithPlural,\n            m: relativeTimeWithPlural,\n            mm: relativeTimeWithPlural,\n            h: 'годину',\n            hh: relativeTimeWithPlural,\n            d: 'день',\n            dd: relativeTimeWithPlural,\n            M: 'місяць',\n            MM: relativeTimeWithPlural,\n            y: 'рік',\n            yy: relativeTimeWithPlural,\n        },\n        // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n        meridiemParse: /ночі|ранку|дня|вечора/,\n        isPM: function (input) {\n            return /^(дня|вечора)$/.test(input);\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 4) {\n                return 'ночі';\n            } else if (hour < 12) {\n                return 'ранку';\n            } else if (hour < 17) {\n                return 'дня';\n            } else {\n                return 'вечора';\n            }\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'M':\n                case 'd':\n                case 'DDD':\n                case 'w':\n                case 'W':\n                    return number + '-й';\n                case 'D':\n                    return number + '-го';\n                default:\n                    return number;\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return uk;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/uk.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ur.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ur.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var months = [\n            'جنوری',\n            'فروری',\n            'مارچ',\n            'اپریل',\n            'مئی',\n            'جون',\n            'جولائی',\n            'اگست',\n            'ستمبر',\n            'اکتوبر',\n            'نومبر',\n            'دسمبر',\n        ],\n        days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n    var ur = moment.defineLocale('ur', {\n        months: months,\n        monthsShort: months,\n        weekdays: days,\n        weekdaysShort: days,\n        weekdaysMin: days,\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd، D MMMM YYYY HH:mm',\n        },\n        meridiemParse: /صبح|شام/,\n        isPM: function (input) {\n            return 'شام' === input;\n        },\n        meridiem: function (hour, minute, isLower) {\n            if (hour < 12) {\n                return 'صبح';\n            }\n            return 'شام';\n        },\n        calendar: {\n            sameDay: '[آج بوقت] LT',\n            nextDay: '[کل بوقت] LT',\n            nextWeek: 'dddd [بوقت] LT',\n            lastDay: '[گذشتہ روز بوقت] LT',\n            lastWeek: '[گذشتہ] dddd [بوقت] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s بعد',\n            past: '%s قبل',\n            s: 'چند سیکنڈ',\n            ss: '%d سیکنڈ',\n            m: 'ایک منٹ',\n            mm: '%d منٹ',\n            h: 'ایک گھنٹہ',\n            hh: '%d گھنٹے',\n            d: 'ایک دن',\n            dd: '%d دن',\n            M: 'ایک ماہ',\n            MM: '%d ماہ',\n            y: 'ایک سال',\n            yy: '%d سال',\n        },\n        preparse: function (string) {\n            return string.replace(/،/g, ',');\n        },\n        postformat: function (string) {\n            return string.replace(/,/g, '،');\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return ur;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ur.js?");

/***/ }),

/***/ "./node_modules/moment/locale/uz-latn.js":
/*!***********************************************!*\
  !*** ./node_modules/moment/locale/uz-latn.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var uzLatn = moment.defineLocale('uz-latn', {\n        months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n            '_'\n        ),\n        monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n        weekdays:\n            'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n                '_'\n            ),\n        weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n        weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'D MMMM YYYY, dddd HH:mm',\n        },\n        calendar: {\n            sameDay: '[Bugun soat] LT [da]',\n            nextDay: '[Ertaga] LT [da]',\n            nextWeek: 'dddd [kuni soat] LT [da]',\n            lastDay: '[Kecha soat] LT [da]',\n            lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'Yaqin %s ichida',\n            past: 'Bir necha %s oldin',\n            s: 'soniya',\n            ss: '%d soniya',\n            m: 'bir daqiqa',\n            mm: '%d daqiqa',\n            h: 'bir soat',\n            hh: '%d soat',\n            d: 'bir kun',\n            dd: '%d kun',\n            M: 'bir oy',\n            MM: '%d oy',\n            y: 'bir yil',\n            yy: '%d yil',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 7th is the first week of the year.\n        },\n    });\n\n    return uzLatn;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/uz-latn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/uz.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/uz.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var uz = moment.defineLocale('uz', {\n        months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n            '_'\n        ),\n        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n        weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n        weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n        weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'D MMMM YYYY, dddd HH:mm',\n        },\n        calendar: {\n            sameDay: '[Бугун соат] LT [да]',\n            nextDay: '[Эртага] LT [да]',\n            nextWeek: 'dddd [куни соат] LT [да]',\n            lastDay: '[Кеча соат] LT [да]',\n            lastWeek: '[Утган] dddd [куни соат] LT [да]',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'Якин %s ичида',\n            past: 'Бир неча %s олдин',\n            s: 'фурсат',\n            ss: '%d фурсат',\n            m: 'бир дакика',\n            mm: '%d дакика',\n            h: 'бир соат',\n            hh: '%d соат',\n            d: 'бир кун',\n            dd: '%d кун',\n            M: 'бир ой',\n            MM: '%d ой',\n            y: 'бир йил',\n            yy: '%d йил',\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 7, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return uz;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/uz.js?");

/***/ }),

/***/ "./node_modules/moment/locale/vi.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/vi.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var vi = moment.defineLocale('vi', {\n        months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n            '_'\n        ),\n        monthsShort:\n            'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n            '_'\n        ),\n        weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n        weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n        weekdaysParseExact: true,\n        meridiemParse: /sa|ch/i,\n        isPM: function (input) {\n            return /^ch$/i.test(input);\n        },\n        meridiem: function (hours, minutes, isLower) {\n            if (hours < 12) {\n                return isLower ? 'sa' : 'SA';\n            } else {\n                return isLower ? 'ch' : 'CH';\n            }\n        },\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM [năm] YYYY',\n            LLL: 'D MMMM [năm] YYYY HH:mm',\n            LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n            l: 'DD/M/YYYY',\n            ll: 'D MMM YYYY',\n            lll: 'D MMM YYYY HH:mm',\n            llll: 'ddd, D MMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[Hôm nay lúc] LT',\n            nextDay: '[Ngày mai lúc] LT',\n            nextWeek: 'dddd [tuần tới lúc] LT',\n            lastDay: '[Hôm qua lúc] LT',\n            lastWeek: 'dddd [tuần trước lúc] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: '%s tới',\n            past: '%s trước',\n            s: 'vài giây',\n            ss: '%d giây',\n            m: 'một phút',\n            mm: '%d phút',\n            h: 'một giờ',\n            hh: '%d giờ',\n            d: 'một ngày',\n            dd: '%d ngày',\n            w: 'một tuần',\n            ww: '%d tuần',\n            M: 'một tháng',\n            MM: '%d tháng',\n            y: 'một năm',\n            yy: '%d năm',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}/,\n        ordinal: function (number) {\n            return number;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return vi;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/vi.js?");

/***/ }),

/***/ "./node_modules/moment/locale/x-pseudo.js":
/*!************************************************!*\
  !*** ./node_modules/moment/locale/x-pseudo.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var xPseudo = moment.defineLocale('x-pseudo', {\n        months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n            '_'\n        ),\n        monthsShort:\n            'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n                '_'\n            ),\n        monthsParseExact: true,\n        weekdays:\n            'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n                '_'\n            ),\n        weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n        weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY HH:mm',\n            LLLL: 'dddd, D MMMM YYYY HH:mm',\n        },\n        calendar: {\n            sameDay: '[T~ódá~ý át] LT',\n            nextDay: '[T~ómó~rró~w át] LT',\n            nextWeek: 'dddd [át] LT',\n            lastDay: '[Ý~ést~érdá~ý át] LT',\n            lastWeek: '[L~ást] dddd [át] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'í~ñ %s',\n            past: '%s á~gó',\n            s: 'á ~féw ~sécó~ñds',\n            ss: '%d s~écóñ~ds',\n            m: 'á ~míñ~úté',\n            mm: '%d m~íñú~tés',\n            h: 'á~ñ hó~úr',\n            hh: '%d h~óúrs',\n            d: 'á ~dáý',\n            dd: '%d d~áýs',\n            M: 'á ~móñ~th',\n            MM: '%d m~óñt~hs',\n            y: 'á ~ýéár',\n            yy: '%d ý~éárs',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    ~~((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                          ? 'st'\n                          : b === 2\n                            ? 'nd'\n                            : b === 3\n                              ? 'rd'\n                              : 'th';\n            return number + output;\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return xPseudo;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/x-pseudo.js?");

/***/ }),

/***/ "./node_modules/moment/locale/yo.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/yo.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var yo = moment.defineLocale('yo', {\n        months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n            '_'\n        ),\n        monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n        weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n        weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n        weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n        longDateFormat: {\n            LT: 'h:mm A',\n            LTS: 'h:mm:ss A',\n            L: 'DD/MM/YYYY',\n            LL: 'D MMMM YYYY',\n            LLL: 'D MMMM YYYY h:mm A',\n            LLLL: 'dddd, D MMMM YYYY h:mm A',\n        },\n        calendar: {\n            sameDay: '[Ònì ni] LT',\n            nextDay: '[Ọ̀la ni] LT',\n            nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n            lastDay: '[Àna ni] LT',\n            lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n            sameElse: 'L',\n        },\n        relativeTime: {\n            future: 'ní %s',\n            past: '%s kọjá',\n            s: 'ìsẹjú aayá die',\n            ss: 'aayá %d',\n            m: 'ìsẹjú kan',\n            mm: 'ìsẹjú %d',\n            h: 'wákati kan',\n            hh: 'wákati %d',\n            d: 'ọjọ́ kan',\n            dd: 'ọjọ́ %d',\n            M: 'osù kan',\n            MM: 'osù %d',\n            y: 'ọdún kan',\n            yy: 'ọdún %d',\n        },\n        dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n        ordinal: 'ọjọ́ %d',\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return yo;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/yo.js?");

/***/ }),

/***/ "./node_modules/moment/locale/zh-cn.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/zh-cn.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var zhCn = moment.defineLocale('zh-cn', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日Ah点mm分',\n            LLLL: 'YYYY年M月D日ddddAh点mm分',\n            l: 'YYYY/M/D',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            } else {\n                // '中午'\n                return hour >= 11 ? hour : hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1130) {\n                return '上午';\n            } else if (hm < 1230) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天]LT',\n            nextDay: '[明天]LT',\n            nextWeek: function (now) {\n                if (now.week() !== this.week()) {\n                    return '[下]dddLT';\n                } else {\n                    return '[本]dddLT';\n                }\n            },\n            lastDay: '[昨天]LT',\n            lastWeek: function (now) {\n                if (this.week() !== now.week()) {\n                    return '[上]dddLT';\n                } else {\n                    return '[本]dddLT';\n                }\n            },\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '周';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s后',\n            past: '%s前',\n            s: '几秒',\n            ss: '%d 秒',\n            m: '1 分钟',\n            mm: '%d 分钟',\n            h: '1 小时',\n            hh: '%d 小时',\n            d: '1 天',\n            dd: '%d 天',\n            w: '1 周',\n            ww: '%d 周',\n            M: '1 个月',\n            MM: '%d 个月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n        week: {\n            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n            dow: 1, // Monday is the first day of the week.\n            doy: 4, // The week that contains Jan 4th is the first week of the year.\n        },\n    });\n\n    return zhCn;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/zh-cn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/zh-hk.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/zh-hk.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var zhHk = moment.defineLocale('zh-hk', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日dddd HH:mm',\n            l: 'YYYY/M/D',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '中午') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1200) {\n                return '上午';\n            } else if (hm === 1200) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天]LT',\n            nextDay: '[明天]LT',\n            nextWeek: '[下]ddddLT',\n            lastDay: '[昨天]LT',\n            lastWeek: '[上]ddddLT',\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '週';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s後',\n            past: '%s前',\n            s: '幾秒',\n            ss: '%d 秒',\n            m: '1 分鐘',\n            mm: '%d 分鐘',\n            h: '1 小時',\n            hh: '%d 小時',\n            d: '1 天',\n            dd: '%d 天',\n            M: '1 個月',\n            MM: '%d 個月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n    });\n\n    return zhHk;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/zh-hk.js?");

/***/ }),

/***/ "./node_modules/moment/locale/zh-mo.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/zh-mo.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var zhMo = moment.defineLocale('zh-mo', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'DD/MM/YYYY',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日dddd HH:mm',\n            l: 'D/M/YYYY',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '中午') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1130) {\n                return '上午';\n            } else if (hm < 1230) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天] LT',\n            nextDay: '[明天] LT',\n            nextWeek: '[下]dddd LT',\n            lastDay: '[昨天] LT',\n            lastWeek: '[上]dddd LT',\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '週';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s內',\n            past: '%s前',\n            s: '幾秒',\n            ss: '%d 秒',\n            m: '1 分鐘',\n            mm: '%d 分鐘',\n            h: '1 小時',\n            hh: '%d 小時',\n            d: '1 天',\n            dd: '%d 天',\n            M: '1 個月',\n            MM: '%d 個月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n    });\n\n    return zhMo;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/zh-mo.js?");

/***/ }),

/***/ "./node_modules/moment/locale/zh-tw.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/zh-tw.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n    true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n   undefined\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var zhTw = moment.defineLocale('zh-tw', {\n        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n            '_'\n        ),\n        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n            '_'\n        ),\n        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n        longDateFormat: {\n            LT: 'HH:mm',\n            LTS: 'HH:mm:ss',\n            L: 'YYYY/MM/DD',\n            LL: 'YYYY年M月D日',\n            LLL: 'YYYY年M月D日 HH:mm',\n            LLLL: 'YYYY年M月D日dddd HH:mm',\n            l: 'YYYY/M/D',\n            ll: 'YYYY年M月D日',\n            lll: 'YYYY年M月D日 HH:mm',\n            llll: 'YYYY年M月D日dddd HH:mm',\n        },\n        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n        meridiemHour: function (hour, meridiem) {\n            if (hour === 12) {\n                hour = 0;\n            }\n            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n                return hour;\n            } else if (meridiem === '中午') {\n                return hour >= 11 ? hour : hour + 12;\n            } else if (meridiem === '下午' || meridiem === '晚上') {\n                return hour + 12;\n            }\n        },\n        meridiem: function (hour, minute, isLower) {\n            var hm = hour * 100 + minute;\n            if (hm < 600) {\n                return '凌晨';\n            } else if (hm < 900) {\n                return '早上';\n            } else if (hm < 1130) {\n                return '上午';\n            } else if (hm < 1230) {\n                return '中午';\n            } else if (hm < 1800) {\n                return '下午';\n            } else {\n                return '晚上';\n            }\n        },\n        calendar: {\n            sameDay: '[今天] LT',\n            nextDay: '[明天] LT',\n            nextWeek: '[下]dddd LT',\n            lastDay: '[昨天] LT',\n            lastWeek: '[上]dddd LT',\n            sameElse: 'L',\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n        ordinal: function (number, period) {\n            switch (period) {\n                case 'd':\n                case 'D':\n                case 'DDD':\n                    return number + '日';\n                case 'M':\n                    return number + '月';\n                case 'w':\n                case 'W':\n                    return number + '週';\n                default:\n                    return number;\n            }\n        },\n        relativeTime: {\n            future: '%s後',\n            past: '%s前',\n            s: '幾秒',\n            ss: '%d 秒',\n            m: '1 分鐘',\n            mm: '%d 分鐘',\n            h: '1 小時',\n            hh: '%d 小時',\n            d: '1 天',\n            dd: '%d 天',\n            M: '1 個月',\n            MM: '%d 個月',\n            y: '1 年',\n            yy: '%d 年',\n        },\n    });\n\n    return zhTw;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/zh-tw.js?");

/***/ }),

/***/ "./node_modules/moment/moment.js":
/*!***************************************!*\
  !*** ./node_modules/moment/moment.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n     true ? module.exports = factory() :\n    undefined\n}(this, (function () { 'use strict';\n\n    var hookCallback;\n\n    function hooks() {\n        return hookCallback.apply(null, arguments);\n    }\n\n    // This is done to register the method called with moment()\n    // without creating circular dependencies.\n    function setHookCallback(callback) {\n        hookCallback = callback;\n    }\n\n    function isArray(input) {\n        return (\n            input instanceof Array ||\n            Object.prototype.toString.call(input) === '[object Array]'\n        );\n    }\n\n    function isObject(input) {\n        // IE8 will treat undefined and null as object if it wasn't for\n        // input != null\n        return (\n            input != null &&\n            Object.prototype.toString.call(input) === '[object Object]'\n        );\n    }\n\n    function hasOwnProp(a, b) {\n        return Object.prototype.hasOwnProperty.call(a, b);\n    }\n\n    function isObjectEmpty(obj) {\n        if (Object.getOwnPropertyNames) {\n            return Object.getOwnPropertyNames(obj).length === 0;\n        } else {\n            var k;\n            for (k in obj) {\n                if (hasOwnProp(obj, k)) {\n                    return false;\n                }\n            }\n            return true;\n        }\n    }\n\n    function isUndefined(input) {\n        return input === void 0;\n    }\n\n    function isNumber(input) {\n        return (\n            typeof input === 'number' ||\n            Object.prototype.toString.call(input) === '[object Number]'\n        );\n    }\n\n    function isDate(input) {\n        return (\n            input instanceof Date ||\n            Object.prototype.toString.call(input) === '[object Date]'\n        );\n    }\n\n    function map(arr, fn) {\n        var res = [],\n            i,\n            arrLen = arr.length;\n        for (i = 0; i < arrLen; ++i) {\n            res.push(fn(arr[i], i));\n        }\n        return res;\n    }\n\n    function extend(a, b) {\n        for (var i in b) {\n            if (hasOwnProp(b, i)) {\n                a[i] = b[i];\n            }\n        }\n\n        if (hasOwnProp(b, 'toString')) {\n            a.toString = b.toString;\n        }\n\n        if (hasOwnProp(b, 'valueOf')) {\n            a.valueOf = b.valueOf;\n        }\n\n        return a;\n    }\n\n    function createUTC(input, format, locale, strict) {\n        return createLocalOrUTC(input, format, locale, strict, true).utc();\n    }\n\n    function defaultParsingFlags() {\n        // We need to deep clone this object.\n        return {\n            empty: false,\n            unusedTokens: [],\n            unusedInput: [],\n            overflow: -2,\n            charsLeftOver: 0,\n            nullInput: false,\n            invalidEra: null,\n            invalidMonth: null,\n            invalidFormat: false,\n            userInvalidated: false,\n            iso: false,\n            parsedDateParts: [],\n            era: null,\n            meridiem: null,\n            rfc2822: false,\n            weekdayMismatch: false,\n        };\n    }\n\n    function getParsingFlags(m) {\n        if (m._pf == null) {\n            m._pf = defaultParsingFlags();\n        }\n        return m._pf;\n    }\n\n    var some;\n    if (Array.prototype.some) {\n        some = Array.prototype.some;\n    } else {\n        some = function (fun) {\n            var t = Object(this),\n                len = t.length >>> 0,\n                i;\n\n            for (i = 0; i < len; i++) {\n                if (i in t && fun.call(this, t[i], i, t)) {\n                    return true;\n                }\n            }\n\n            return false;\n        };\n    }\n\n    function isValid(m) {\n        var flags = null,\n            parsedParts = false,\n            isNowValid = m._d && !isNaN(m._d.getTime());\n        if (isNowValid) {\n            flags = getParsingFlags(m);\n            parsedParts = some.call(flags.parsedDateParts, function (i) {\n                return i != null;\n            });\n            isNowValid =\n                flags.overflow < 0 &&\n                !flags.empty &&\n                !flags.invalidEra &&\n                !flags.invalidMonth &&\n                !flags.invalidWeekday &&\n                !flags.weekdayMismatch &&\n                !flags.nullInput &&\n                !flags.invalidFormat &&\n                !flags.userInvalidated &&\n                (!flags.meridiem || (flags.meridiem && parsedParts));\n            if (m._strict) {\n                isNowValid =\n                    isNowValid &&\n                    flags.charsLeftOver === 0 &&\n                    flags.unusedTokens.length === 0 &&\n                    flags.bigHour === undefined;\n            }\n        }\n        if (Object.isFrozen == null || !Object.isFrozen(m)) {\n            m._isValid = isNowValid;\n        } else {\n            return isNowValid;\n        }\n        return m._isValid;\n    }\n\n    function createInvalid(flags) {\n        var m = createUTC(NaN);\n        if (flags != null) {\n            extend(getParsingFlags(m), flags);\n        } else {\n            getParsingFlags(m).userInvalidated = true;\n        }\n\n        return m;\n    }\n\n    // Plugins that add properties should also add the key here (null value),\n    // so we can properly clone ourselves.\n    var momentProperties = (hooks.momentProperties = []),\n        updateInProgress = false;\n\n    function copyConfig(to, from) {\n        var i,\n            prop,\n            val,\n            momentPropertiesLen = momentProperties.length;\n\n        if (!isUndefined(from._isAMomentObject)) {\n            to._isAMomentObject = from._isAMomentObject;\n        }\n        if (!isUndefined(from._i)) {\n            to._i = from._i;\n        }\n        if (!isUndefined(from._f)) {\n            to._f = from._f;\n        }\n        if (!isUndefined(from._l)) {\n            to._l = from._l;\n        }\n        if (!isUndefined(from._strict)) {\n            to._strict = from._strict;\n        }\n        if (!isUndefined(from._tzm)) {\n            to._tzm = from._tzm;\n        }\n        if (!isUndefined(from._isUTC)) {\n            to._isUTC = from._isUTC;\n        }\n        if (!isUndefined(from._offset)) {\n            to._offset = from._offset;\n        }\n        if (!isUndefined(from._pf)) {\n            to._pf = getParsingFlags(from);\n        }\n        if (!isUndefined(from._locale)) {\n            to._locale = from._locale;\n        }\n\n        if (momentPropertiesLen > 0) {\n            for (i = 0; i < momentPropertiesLen; i++) {\n                prop = momentProperties[i];\n                val = from[prop];\n                if (!isUndefined(val)) {\n                    to[prop] = val;\n                }\n            }\n        }\n\n        return to;\n    }\n\n    // Moment prototype object\n    function Moment(config) {\n        copyConfig(this, config);\n        this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n        if (!this.isValid()) {\n            this._d = new Date(NaN);\n        }\n        // Prevent infinite loop in case updateOffset creates new moment\n        // objects.\n        if (updateInProgress === false) {\n            updateInProgress = true;\n            hooks.updateOffset(this);\n            updateInProgress = false;\n        }\n    }\n\n    function isMoment(obj) {\n        return (\n            obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n        );\n    }\n\n    function warn(msg) {\n        if (\n            hooks.suppressDeprecationWarnings === false &&\n            typeof console !== 'undefined' &&\n            console.warn\n        ) {\n            console.warn('Deprecation warning: ' + msg);\n        }\n    }\n\n    function deprecate(msg, fn) {\n        var firstTime = true;\n\n        return extend(function () {\n            if (hooks.deprecationHandler != null) {\n                hooks.deprecationHandler(null, msg);\n            }\n            if (firstTime) {\n                var args = [],\n                    arg,\n                    i,\n                    key,\n                    argLen = arguments.length;\n                for (i = 0; i < argLen; i++) {\n                    arg = '';\n                    if (typeof arguments[i] === 'object') {\n                        arg += '\\n[' + i + '] ';\n                        for (key in arguments[0]) {\n                            if (hasOwnProp(arguments[0], key)) {\n                                arg += key + ': ' + arguments[0][key] + ', ';\n                            }\n                        }\n                        arg = arg.slice(0, -2); // Remove trailing comma and space\n                    } else {\n                        arg = arguments[i];\n                    }\n                    args.push(arg);\n                }\n                warn(\n                    msg +\n                        '\\nArguments: ' +\n                        Array.prototype.slice.call(args).join('') +\n                        '\\n' +\n                        new Error().stack\n                );\n                firstTime = false;\n            }\n            return fn.apply(this, arguments);\n        }, fn);\n    }\n\n    var deprecations = {};\n\n    function deprecateSimple(name, msg) {\n        if (hooks.deprecationHandler != null) {\n            hooks.deprecationHandler(name, msg);\n        }\n        if (!deprecations[name]) {\n            warn(msg);\n            deprecations[name] = true;\n        }\n    }\n\n    hooks.suppressDeprecationWarnings = false;\n    hooks.deprecationHandler = null;\n\n    function isFunction(input) {\n        return (\n            (typeof Function !== 'undefined' && input instanceof Function) ||\n            Object.prototype.toString.call(input) === '[object Function]'\n        );\n    }\n\n    function set(config) {\n        var prop, i;\n        for (i in config) {\n            if (hasOwnProp(config, i)) {\n                prop = config[i];\n                if (isFunction(prop)) {\n                    this[i] = prop;\n                } else {\n                    this['_' + i] = prop;\n                }\n            }\n        }\n        this._config = config;\n        // Lenient ordinal parsing accepts just a number in addition to\n        // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n        // TODO: Remove \"ordinalParse\" fallback in next major release.\n        this._dayOfMonthOrdinalParseLenient = new RegExp(\n            (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n                '|' +\n                /\\d{1,2}/.source\n        );\n    }\n\n    function mergeConfigs(parentConfig, childConfig) {\n        var res = extend({}, parentConfig),\n            prop;\n        for (prop in childConfig) {\n            if (hasOwnProp(childConfig, prop)) {\n                if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n                    res[prop] = {};\n                    extend(res[prop], parentConfig[prop]);\n                    extend(res[prop], childConfig[prop]);\n                } else if (childConfig[prop] != null) {\n                    res[prop] = childConfig[prop];\n                } else {\n                    delete res[prop];\n                }\n            }\n        }\n        for (prop in parentConfig) {\n            if (\n                hasOwnProp(parentConfig, prop) &&\n                !hasOwnProp(childConfig, prop) &&\n                isObject(parentConfig[prop])\n            ) {\n                // make sure changes to properties don't modify parent config\n                res[prop] = extend({}, res[prop]);\n            }\n        }\n        return res;\n    }\n\n    function Locale(config) {\n        if (config != null) {\n            this.set(config);\n        }\n    }\n\n    var keys;\n\n    if (Object.keys) {\n        keys = Object.keys;\n    } else {\n        keys = function (obj) {\n            var i,\n                res = [];\n            for (i in obj) {\n                if (hasOwnProp(obj, i)) {\n                    res.push(i);\n                }\n            }\n            return res;\n        };\n    }\n\n    var defaultCalendar = {\n        sameDay: '[Today at] LT',\n        nextDay: '[Tomorrow at] LT',\n        nextWeek: 'dddd [at] LT',\n        lastDay: '[Yesterday at] LT',\n        lastWeek: '[Last] dddd [at] LT',\n        sameElse: 'L',\n    };\n\n    function calendar(key, mom, now) {\n        var output = this._calendar[key] || this._calendar['sameElse'];\n        return isFunction(output) ? output.call(mom, now) : output;\n    }\n\n    function zeroFill(number, targetLength, forceSign) {\n        var absNumber = '' + Math.abs(number),\n            zerosToFill = targetLength - absNumber.length,\n            sign = number >= 0;\n        return (\n            (sign ? (forceSign ? '+' : '') : '-') +\n            Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n            absNumber\n        );\n    }\n\n    var formattingTokens =\n            /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n        localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n        formatFunctions = {},\n        formatTokenFunctions = {};\n\n    // token:    'M'\n    // padded:   ['MM', 2]\n    // ordinal:  'Mo'\n    // callback: function () { this.month() + 1 }\n    function addFormatToken(token, padded, ordinal, callback) {\n        var func = callback;\n        if (typeof callback === 'string') {\n            func = function () {\n                return this[callback]();\n            };\n        }\n        if (token) {\n            formatTokenFunctions[token] = func;\n        }\n        if (padded) {\n            formatTokenFunctions[padded[0]] = function () {\n                return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n            };\n        }\n        if (ordinal) {\n            formatTokenFunctions[ordinal] = function () {\n                return this.localeData().ordinal(\n                    func.apply(this, arguments),\n                    token\n                );\n            };\n        }\n    }\n\n    function removeFormattingTokens(input) {\n        if (input.match(/\\[[\\s\\S]/)) {\n            return input.replace(/^\\[|\\]$/g, '');\n        }\n        return input.replace(/\\\\/g, '');\n    }\n\n    function makeFormatFunction(format) {\n        var array = format.match(formattingTokens),\n            i,\n            length;\n\n        for (i = 0, length = array.length; i < length; i++) {\n            if (formatTokenFunctions[array[i]]) {\n                array[i] = formatTokenFunctions[array[i]];\n            } else {\n                array[i] = removeFormattingTokens(array[i]);\n            }\n        }\n\n        return function (mom) {\n            var output = '',\n                i;\n            for (i = 0; i < length; i++) {\n                output += isFunction(array[i])\n                    ? array[i].call(mom, format)\n                    : array[i];\n            }\n            return output;\n        };\n    }\n\n    // format date using native date object\n    function formatMoment(m, format) {\n        if (!m.isValid()) {\n            return m.localeData().invalidDate();\n        }\n\n        format = expandFormat(format, m.localeData());\n        formatFunctions[format] =\n            formatFunctions[format] || makeFormatFunction(format);\n\n        return formatFunctions[format](m);\n    }\n\n    function expandFormat(format, locale) {\n        var i = 5;\n\n        function replaceLongDateFormatTokens(input) {\n            return locale.longDateFormat(input) || input;\n        }\n\n        localFormattingTokens.lastIndex = 0;\n        while (i >= 0 && localFormattingTokens.test(format)) {\n            format = format.replace(\n                localFormattingTokens,\n                replaceLongDateFormatTokens\n            );\n            localFormattingTokens.lastIndex = 0;\n            i -= 1;\n        }\n\n        return format;\n    }\n\n    var defaultLongDateFormat = {\n        LTS: 'h:mm:ss A',\n        LT: 'h:mm A',\n        L: 'MM/DD/YYYY',\n        LL: 'MMMM D, YYYY',\n        LLL: 'MMMM D, YYYY h:mm A',\n        LLLL: 'dddd, MMMM D, YYYY h:mm A',\n    };\n\n    function longDateFormat(key) {\n        var format = this._longDateFormat[key],\n            formatUpper = this._longDateFormat[key.toUpperCase()];\n\n        if (format || !formatUpper) {\n            return format;\n        }\n\n        this._longDateFormat[key] = formatUpper\n            .match(formattingTokens)\n            .map(function (tok) {\n                if (\n                    tok === 'MMMM' ||\n                    tok === 'MM' ||\n                    tok === 'DD' ||\n                    tok === 'dddd'\n                ) {\n                    return tok.slice(1);\n                }\n                return tok;\n            })\n            .join('');\n\n        return this._longDateFormat[key];\n    }\n\n    var defaultInvalidDate = 'Invalid date';\n\n    function invalidDate() {\n        return this._invalidDate;\n    }\n\n    var defaultOrdinal = '%d',\n        defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n    function ordinal(number) {\n        return this._ordinal.replace('%d', number);\n    }\n\n    var defaultRelativeTime = {\n        future: 'in %s',\n        past: '%s ago',\n        s: 'a few seconds',\n        ss: '%d seconds',\n        m: 'a minute',\n        mm: '%d minutes',\n        h: 'an hour',\n        hh: '%d hours',\n        d: 'a day',\n        dd: '%d days',\n        w: 'a week',\n        ww: '%d weeks',\n        M: 'a month',\n        MM: '%d months',\n        y: 'a year',\n        yy: '%d years',\n    };\n\n    function relativeTime(number, withoutSuffix, string, isFuture) {\n        var output = this._relativeTime[string];\n        return isFunction(output)\n            ? output(number, withoutSuffix, string, isFuture)\n            : output.replace(/%d/i, number);\n    }\n\n    function pastFuture(diff, output) {\n        var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n        return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n    }\n\n    var aliases = {\n        D: 'date',\n        dates: 'date',\n        date: 'date',\n        d: 'day',\n        days: 'day',\n        day: 'day',\n        e: 'weekday',\n        weekdays: 'weekday',\n        weekday: 'weekday',\n        E: 'isoWeekday',\n        isoweekdays: 'isoWeekday',\n        isoweekday: 'isoWeekday',\n        DDD: 'dayOfYear',\n        dayofyears: 'dayOfYear',\n        dayofyear: 'dayOfYear',\n        h: 'hour',\n        hours: 'hour',\n        hour: 'hour',\n        ms: 'millisecond',\n        milliseconds: 'millisecond',\n        millisecond: 'millisecond',\n        m: 'minute',\n        minutes: 'minute',\n        minute: 'minute',\n        M: 'month',\n        months: 'month',\n        month: 'month',\n        Q: 'quarter',\n        quarters: 'quarter',\n        quarter: 'quarter',\n        s: 'second',\n        seconds: 'second',\n        second: 'second',\n        gg: 'weekYear',\n        weekyears: 'weekYear',\n        weekyear: 'weekYear',\n        GG: 'isoWeekYear',\n        isoweekyears: 'isoWeekYear',\n        isoweekyear: 'isoWeekYear',\n        w: 'week',\n        weeks: 'week',\n        week: 'week',\n        W: 'isoWeek',\n        isoweeks: 'isoWeek',\n        isoweek: 'isoWeek',\n        y: 'year',\n        years: 'year',\n        year: 'year',\n    };\n\n    function normalizeUnits(units) {\n        return typeof units === 'string'\n            ? aliases[units] || aliases[units.toLowerCase()]\n            : undefined;\n    }\n\n    function normalizeObjectUnits(inputObject) {\n        var normalizedInput = {},\n            normalizedProp,\n            prop;\n\n        for (prop in inputObject) {\n            if (hasOwnProp(inputObject, prop)) {\n                normalizedProp = normalizeUnits(prop);\n                if (normalizedProp) {\n                    normalizedInput[normalizedProp] = inputObject[prop];\n                }\n            }\n        }\n\n        return normalizedInput;\n    }\n\n    var priorities = {\n        date: 9,\n        day: 11,\n        weekday: 11,\n        isoWeekday: 11,\n        dayOfYear: 4,\n        hour: 13,\n        millisecond: 16,\n        minute: 14,\n        month: 8,\n        quarter: 7,\n        second: 15,\n        weekYear: 1,\n        isoWeekYear: 1,\n        week: 5,\n        isoWeek: 5,\n        year: 1,\n    };\n\n    function getPrioritizedUnits(unitsObj) {\n        var units = [],\n            u;\n        for (u in unitsObj) {\n            if (hasOwnProp(unitsObj, u)) {\n                units.push({ unit: u, priority: priorities[u] });\n            }\n        }\n        units.sort(function (a, b) {\n            return a.priority - b.priority;\n        });\n        return units;\n    }\n\n    var match1 = /\\d/, //       0 - 9\n        match2 = /\\d\\d/, //      00 - 99\n        match3 = /\\d{3}/, //     000 - 999\n        match4 = /\\d{4}/, //    0000 - 9999\n        match6 = /[+-]?\\d{6}/, // -999999 - 999999\n        match1to2 = /\\d\\d?/, //       0 - 99\n        match3to4 = /\\d\\d\\d\\d?/, //     999 - 9999\n        match5to6 = /\\d\\d\\d\\d\\d\\d?/, //   99999 - 999999\n        match1to3 = /\\d{1,3}/, //       0 - 999\n        match1to4 = /\\d{1,4}/, //       0 - 9999\n        match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n        matchUnsigned = /\\d+/, //       0 - inf\n        matchSigned = /[+-]?\\d+/, //    -inf - inf\n        matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n        matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n        matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n        // any word (or two) characters or numbers including two/three word month in arabic.\n        // includes scottish gaelic two word and hyphenated months\n        matchWord =\n            /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n        match1to2NoLeadingZero = /^[1-9]\\d?/, //         1-99\n        match1to2HasZero = /^([1-9]\\d|\\d)/, //           0-99\n        regexes;\n\n    regexes = {};\n\n    function addRegexToken(token, regex, strictRegex) {\n        regexes[token] = isFunction(regex)\n            ? regex\n            : function (isStrict, localeData) {\n                  return isStrict && strictRegex ? strictRegex : regex;\n              };\n    }\n\n    function getParseRegexForToken(token, config) {\n        if (!hasOwnProp(regexes, token)) {\n            return new RegExp(unescapeFormat(token));\n        }\n\n        return regexes[token](config._strict, config._locale);\n    }\n\n    // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n    function unescapeFormat(s) {\n        return regexEscape(\n            s\n                .replace('\\\\', '')\n                .replace(\n                    /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n                    function (matched, p1, p2, p3, p4) {\n                        return p1 || p2 || p3 || p4;\n                    }\n                )\n        );\n    }\n\n    function regexEscape(s) {\n        return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n    }\n\n    function absFloor(number) {\n        if (number < 0) {\n            // -0 -> 0\n            return Math.ceil(number) || 0;\n        } else {\n            return Math.floor(number);\n        }\n    }\n\n    function toInt(argumentForCoercion) {\n        var coercedNumber = +argumentForCoercion,\n            value = 0;\n\n        if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n            value = absFloor(coercedNumber);\n        }\n\n        return value;\n    }\n\n    var tokens = {};\n\n    function addParseToken(token, callback) {\n        var i,\n            func = callback,\n            tokenLen;\n        if (typeof token === 'string') {\n            token = [token];\n        }\n        if (isNumber(callback)) {\n            func = function (input, array) {\n                array[callback] = toInt(input);\n            };\n        }\n        tokenLen = token.length;\n        for (i = 0; i < tokenLen; i++) {\n            tokens[token[i]] = func;\n        }\n    }\n\n    function addWeekParseToken(token, callback) {\n        addParseToken(token, function (input, array, config, token) {\n            config._w = config._w || {};\n            callback(input, config._w, config, token);\n        });\n    }\n\n    function addTimeToArrayFromToken(token, input, config) {\n        if (input != null && hasOwnProp(tokens, token)) {\n            tokens[token](input, config._a, config, token);\n        }\n    }\n\n    function isLeapYear(year) {\n        return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n    }\n\n    var YEAR = 0,\n        MONTH = 1,\n        DATE = 2,\n        HOUR = 3,\n        MINUTE = 4,\n        SECOND = 5,\n        MILLISECOND = 6,\n        WEEK = 7,\n        WEEKDAY = 8;\n\n    // FORMATTING\n\n    addFormatToken('Y', 0, 0, function () {\n        var y = this.year();\n        return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n    });\n\n    addFormatToken(0, ['YY', 2], 0, function () {\n        return this.year() % 100;\n    });\n\n    addFormatToken(0, ['YYYY', 4], 0, 'year');\n    addFormatToken(0, ['YYYYY', 5], 0, 'year');\n    addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n    // PARSING\n\n    addRegexToken('Y', matchSigned);\n    addRegexToken('YY', match1to2, match2);\n    addRegexToken('YYYY', match1to4, match4);\n    addRegexToken('YYYYY', match1to6, match6);\n    addRegexToken('YYYYYY', match1to6, match6);\n\n    addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n    addParseToken('YYYY', function (input, array) {\n        array[YEAR] =\n            input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n    });\n    addParseToken('YY', function (input, array) {\n        array[YEAR] = hooks.parseTwoDigitYear(input);\n    });\n    addParseToken('Y', function (input, array) {\n        array[YEAR] = parseInt(input, 10);\n    });\n\n    // HELPERS\n\n    function daysInYear(year) {\n        return isLeapYear(year) ? 366 : 365;\n    }\n\n    // HOOKS\n\n    hooks.parseTwoDigitYear = function (input) {\n        return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n    };\n\n    // MOMENTS\n\n    var getSetYear = makeGetSet('FullYear', true);\n\n    function getIsLeapYear() {\n        return isLeapYear(this.year());\n    }\n\n    function makeGetSet(unit, keepTime) {\n        return function (value) {\n            if (value != null) {\n                set$1(this, unit, value);\n                hooks.updateOffset(this, keepTime);\n                return this;\n            } else {\n                return get(this, unit);\n            }\n        };\n    }\n\n    function get(mom, unit) {\n        if (!mom.isValid()) {\n            return NaN;\n        }\n\n        var d = mom._d,\n            isUTC = mom._isUTC;\n\n        switch (unit) {\n            case 'Milliseconds':\n                return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n            case 'Seconds':\n                return isUTC ? d.getUTCSeconds() : d.getSeconds();\n            case 'Minutes':\n                return isUTC ? d.getUTCMinutes() : d.getMinutes();\n            case 'Hours':\n                return isUTC ? d.getUTCHours() : d.getHours();\n            case 'Date':\n                return isUTC ? d.getUTCDate() : d.getDate();\n            case 'Day':\n                return isUTC ? d.getUTCDay() : d.getDay();\n            case 'Month':\n                return isUTC ? d.getUTCMonth() : d.getMonth();\n            case 'FullYear':\n                return isUTC ? d.getUTCFullYear() : d.getFullYear();\n            default:\n                return NaN; // Just in case\n        }\n    }\n\n    function set$1(mom, unit, value) {\n        var d, isUTC, year, month, date;\n\n        if (!mom.isValid() || isNaN(value)) {\n            return;\n        }\n\n        d = mom._d;\n        isUTC = mom._isUTC;\n\n        switch (unit) {\n            case 'Milliseconds':\n                return void (isUTC\n                    ? d.setUTCMilliseconds(value)\n                    : d.setMilliseconds(value));\n            case 'Seconds':\n                return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n            case 'Minutes':\n                return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n            case 'Hours':\n                return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n            case 'Date':\n                return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n            // case 'Day': // Not real\n            //    return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n            // case 'Month': // Not used because we need to pass two variables\n            //     return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n            case 'FullYear':\n                break; // See below ...\n            default:\n                return; // Just in case\n        }\n\n        year = value;\n        month = mom.month();\n        date = mom.date();\n        date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n        void (isUTC\n            ? d.setUTCFullYear(year, month, date)\n            : d.setFullYear(year, month, date));\n    }\n\n    // MOMENTS\n\n    function stringGet(units) {\n        units = normalizeUnits(units);\n        if (isFunction(this[units])) {\n            return this[units]();\n        }\n        return this;\n    }\n\n    function stringSet(units, value) {\n        if (typeof units === 'object') {\n            units = normalizeObjectUnits(units);\n            var prioritized = getPrioritizedUnits(units),\n                i,\n                prioritizedLen = prioritized.length;\n            for (i = 0; i < prioritizedLen; i++) {\n                this[prioritized[i].unit](units[prioritized[i].unit]);\n            }\n        } else {\n            units = normalizeUnits(units);\n            if (isFunction(this[units])) {\n                return this[units](value);\n            }\n        }\n        return this;\n    }\n\n    function mod(n, x) {\n        return ((n % x) + x) % x;\n    }\n\n    var indexOf;\n\n    if (Array.prototype.indexOf) {\n        indexOf = Array.prototype.indexOf;\n    } else {\n        indexOf = function (o) {\n            // I know\n            var i;\n            for (i = 0; i < this.length; ++i) {\n                if (this[i] === o) {\n                    return i;\n                }\n            }\n            return -1;\n        };\n    }\n\n    function daysInMonth(year, month) {\n        if (isNaN(year) || isNaN(month)) {\n            return NaN;\n        }\n        var modMonth = mod(month, 12);\n        year += (month - modMonth) / 12;\n        return modMonth === 1\n            ? isLeapYear(year)\n                ? 29\n                : 28\n            : 31 - ((modMonth % 7) % 2);\n    }\n\n    // FORMATTING\n\n    addFormatToken('M', ['MM', 2], 'Mo', function () {\n        return this.month() + 1;\n    });\n\n    addFormatToken('MMM', 0, 0, function (format) {\n        return this.localeData().monthsShort(this, format);\n    });\n\n    addFormatToken('MMMM', 0, 0, function (format) {\n        return this.localeData().months(this, format);\n    });\n\n    // PARSING\n\n    addRegexToken('M', match1to2, match1to2NoLeadingZero);\n    addRegexToken('MM', match1to2, match2);\n    addRegexToken('MMM', function (isStrict, locale) {\n        return locale.monthsShortRegex(isStrict);\n    });\n    addRegexToken('MMMM', function (isStrict, locale) {\n        return locale.monthsRegex(isStrict);\n    });\n\n    addParseToken(['M', 'MM'], function (input, array) {\n        array[MONTH] = toInt(input) - 1;\n    });\n\n    addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n        var month = config._locale.monthsParse(input, token, config._strict);\n        // if we didn't find a month name, mark the date as invalid.\n        if (month != null) {\n            array[MONTH] = month;\n        } else {\n            getParsingFlags(config).invalidMonth = input;\n        }\n    });\n\n    // LOCALES\n\n    var defaultLocaleMonths =\n            'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n                '_'\n            ),\n        defaultLocaleMonthsShort =\n            'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n        MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n        defaultMonthsShortRegex = matchWord,\n        defaultMonthsRegex = matchWord;\n\n    function localeMonths(m, format) {\n        if (!m) {\n            return isArray(this._months)\n                ? this._months\n                : this._months['standalone'];\n        }\n        return isArray(this._months)\n            ? this._months[m.month()]\n            : this._months[\n                  (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n                      ? 'format'\n                      : 'standalone'\n              ][m.month()];\n    }\n\n    function localeMonthsShort(m, format) {\n        if (!m) {\n            return isArray(this._monthsShort)\n                ? this._monthsShort\n                : this._monthsShort['standalone'];\n        }\n        return isArray(this._monthsShort)\n            ? this._monthsShort[m.month()]\n            : this._monthsShort[\n                  MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n              ][m.month()];\n    }\n\n    function handleStrictParse(monthName, format, strict) {\n        var i,\n            ii,\n            mom,\n            llc = monthName.toLocaleLowerCase();\n        if (!this._monthsParse) {\n            // this is not used\n            this._monthsParse = [];\n            this._longMonthsParse = [];\n            this._shortMonthsParse = [];\n            for (i = 0; i < 12; ++i) {\n                mom = createUTC([2000, i]);\n                this._shortMonthsParse[i] = this.monthsShort(\n                    mom,\n                    ''\n                ).toLocaleLowerCase();\n                this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n            }\n        }\n\n        if (strict) {\n            if (format === 'MMM') {\n                ii = indexOf.call(this._shortMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._longMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        } else {\n            if (format === 'MMM') {\n                ii = indexOf.call(this._shortMonthsParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._longMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._longMonthsParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._shortMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        }\n    }\n\n    function localeMonthsParse(monthName, format, strict) {\n        var i, mom, regex;\n\n        if (this._monthsParseExact) {\n            return handleStrictParse.call(this, monthName, format, strict);\n        }\n\n        if (!this._monthsParse) {\n            this._monthsParse = [];\n            this._longMonthsParse = [];\n            this._shortMonthsParse = [];\n        }\n\n        // TODO: add sorting\n        // Sorting makes sure if one month (or abbr) is a prefix of another\n        // see sorting in computeMonthsParse\n        for (i = 0; i < 12; i++) {\n            // make the regex if we don't have it already\n            mom = createUTC([2000, i]);\n            if (strict && !this._longMonthsParse[i]) {\n                this._longMonthsParse[i] = new RegExp(\n                    '^' + this.months(mom, '').replace('.', '') + '$',\n                    'i'\n                );\n                this._shortMonthsParse[i] = new RegExp(\n                    '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n                    'i'\n                );\n            }\n            if (!strict && !this._monthsParse[i]) {\n                regex =\n                    '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n                this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n            }\n            // test the regex\n            if (\n                strict &&\n                format === 'MMMM' &&\n                this._longMonthsParse[i].test(monthName)\n            ) {\n                return i;\n            } else if (\n                strict &&\n                format === 'MMM' &&\n                this._shortMonthsParse[i].test(monthName)\n            ) {\n                return i;\n            } else if (!strict && this._monthsParse[i].test(monthName)) {\n                return i;\n            }\n        }\n    }\n\n    // MOMENTS\n\n    function setMonth(mom, value) {\n        if (!mom.isValid()) {\n            // No op\n            return mom;\n        }\n\n        if (typeof value === 'string') {\n            if (/^\\d+$/.test(value)) {\n                value = toInt(value);\n            } else {\n                value = mom.localeData().monthsParse(value);\n                // TODO: Another silent failure?\n                if (!isNumber(value)) {\n                    return mom;\n                }\n            }\n        }\n\n        var month = value,\n            date = mom.date();\n\n        date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n        void (mom._isUTC\n            ? mom._d.setUTCMonth(month, date)\n            : mom._d.setMonth(month, date));\n        return mom;\n    }\n\n    function getSetMonth(value) {\n        if (value != null) {\n            setMonth(this, value);\n            hooks.updateOffset(this, true);\n            return this;\n        } else {\n            return get(this, 'Month');\n        }\n    }\n\n    function getDaysInMonth() {\n        return daysInMonth(this.year(), this.month());\n    }\n\n    function monthsShortRegex(isStrict) {\n        if (this._monthsParseExact) {\n            if (!hasOwnProp(this, '_monthsRegex')) {\n                computeMonthsParse.call(this);\n            }\n            if (isStrict) {\n                return this._monthsShortStrictRegex;\n            } else {\n                return this._monthsShortRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_monthsShortRegex')) {\n                this._monthsShortRegex = defaultMonthsShortRegex;\n            }\n            return this._monthsShortStrictRegex && isStrict\n                ? this._monthsShortStrictRegex\n                : this._monthsShortRegex;\n        }\n    }\n\n    function monthsRegex(isStrict) {\n        if (this._monthsParseExact) {\n            if (!hasOwnProp(this, '_monthsRegex')) {\n                computeMonthsParse.call(this);\n            }\n            if (isStrict) {\n                return this._monthsStrictRegex;\n            } else {\n                return this._monthsRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_monthsRegex')) {\n                this._monthsRegex = defaultMonthsRegex;\n            }\n            return this._monthsStrictRegex && isStrict\n                ? this._monthsStrictRegex\n                : this._monthsRegex;\n        }\n    }\n\n    function computeMonthsParse() {\n        function cmpLenRev(a, b) {\n            return b.length - a.length;\n        }\n\n        var shortPieces = [],\n            longPieces = [],\n            mixedPieces = [],\n            i,\n            mom,\n            shortP,\n            longP;\n        for (i = 0; i < 12; i++) {\n            // make the regex if we don't have it already\n            mom = createUTC([2000, i]);\n            shortP = regexEscape(this.monthsShort(mom, ''));\n            longP = regexEscape(this.months(mom, ''));\n            shortPieces.push(shortP);\n            longPieces.push(longP);\n            mixedPieces.push(longP);\n            mixedPieces.push(shortP);\n        }\n        // Sorting makes sure if one month (or abbr) is a prefix of another it\n        // will match the longer piece.\n        shortPieces.sort(cmpLenRev);\n        longPieces.sort(cmpLenRev);\n        mixedPieces.sort(cmpLenRev);\n\n        this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n        this._monthsShortRegex = this._monthsRegex;\n        this._monthsStrictRegex = new RegExp(\n            '^(' + longPieces.join('|') + ')',\n            'i'\n        );\n        this._monthsShortStrictRegex = new RegExp(\n            '^(' + shortPieces.join('|') + ')',\n            'i'\n        );\n    }\n\n    function createDate(y, m, d, h, M, s, ms) {\n        // can't just apply() to create a date:\n        // https://stackoverflow.com/q/181348\n        var date;\n        // the date constructor remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            // preserve leap years using a full 400 year cycle, then reset\n            date = new Date(y + 400, m, d, h, M, s, ms);\n            if (isFinite(date.getFullYear())) {\n                date.setFullYear(y);\n            }\n        } else {\n            date = new Date(y, m, d, h, M, s, ms);\n        }\n\n        return date;\n    }\n\n    function createUTCDate(y) {\n        var date, args;\n        // the Date.UTC function remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            args = Array.prototype.slice.call(arguments);\n            // preserve leap years using a full 400 year cycle, then reset\n            args[0] = y + 400;\n            date = new Date(Date.UTC.apply(null, args));\n            if (isFinite(date.getUTCFullYear())) {\n                date.setUTCFullYear(y);\n            }\n        } else {\n            date = new Date(Date.UTC.apply(null, arguments));\n        }\n\n        return date;\n    }\n\n    // start-of-first-week - start-of-year\n    function firstWeekOffset(year, dow, doy) {\n        var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n            fwd = 7 + dow - doy,\n            // first-week day local weekday -- which local weekday is fwd\n            fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n        return -fwdlw + fwd - 1;\n    }\n\n    // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n    function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n        var localWeekday = (7 + weekday - dow) % 7,\n            weekOffset = firstWeekOffset(year, dow, doy),\n            dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n            resYear,\n            resDayOfYear;\n\n        if (dayOfYear <= 0) {\n            resYear = year - 1;\n            resDayOfYear = daysInYear(resYear) + dayOfYear;\n        } else if (dayOfYear > daysInYear(year)) {\n            resYear = year + 1;\n            resDayOfYear = dayOfYear - daysInYear(year);\n        } else {\n            resYear = year;\n            resDayOfYear = dayOfYear;\n        }\n\n        return {\n            year: resYear,\n            dayOfYear: resDayOfYear,\n        };\n    }\n\n    function weekOfYear(mom, dow, doy) {\n        var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n            week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n            resWeek,\n            resYear;\n\n        if (week < 1) {\n            resYear = mom.year() - 1;\n            resWeek = week + weeksInYear(resYear, dow, doy);\n        } else if (week > weeksInYear(mom.year(), dow, doy)) {\n            resWeek = week - weeksInYear(mom.year(), dow, doy);\n            resYear = mom.year() + 1;\n        } else {\n            resYear = mom.year();\n            resWeek = week;\n        }\n\n        return {\n            week: resWeek,\n            year: resYear,\n        };\n    }\n\n    function weeksInYear(year, dow, doy) {\n        var weekOffset = firstWeekOffset(year, dow, doy),\n            weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n        return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n    }\n\n    // FORMATTING\n\n    addFormatToken('w', ['ww', 2], 'wo', 'week');\n    addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n    // PARSING\n\n    addRegexToken('w', match1to2, match1to2NoLeadingZero);\n    addRegexToken('ww', match1to2, match2);\n    addRegexToken('W', match1to2, match1to2NoLeadingZero);\n    addRegexToken('WW', match1to2, match2);\n\n    addWeekParseToken(\n        ['w', 'ww', 'W', 'WW'],\n        function (input, week, config, token) {\n            week[token.substr(0, 1)] = toInt(input);\n        }\n    );\n\n    // HELPERS\n\n    // LOCALES\n\n    function localeWeek(mom) {\n        return weekOfYear(mom, this._week.dow, this._week.doy).week;\n    }\n\n    var defaultLocaleWeek = {\n        dow: 0, // Sunday is the first day of the week.\n        doy: 6, // The week that contains Jan 6th is the first week of the year.\n    };\n\n    function localeFirstDayOfWeek() {\n        return this._week.dow;\n    }\n\n    function localeFirstDayOfYear() {\n        return this._week.doy;\n    }\n\n    // MOMENTS\n\n    function getSetWeek(input) {\n        var week = this.localeData().week(this);\n        return input == null ? week : this.add((input - week) * 7, 'd');\n    }\n\n    function getSetISOWeek(input) {\n        var week = weekOfYear(this, 1, 4).week;\n        return input == null ? week : this.add((input - week) * 7, 'd');\n    }\n\n    // FORMATTING\n\n    addFormatToken('d', 0, 'do', 'day');\n\n    addFormatToken('dd', 0, 0, function (format) {\n        return this.localeData().weekdaysMin(this, format);\n    });\n\n    addFormatToken('ddd', 0, 0, function (format) {\n        return this.localeData().weekdaysShort(this, format);\n    });\n\n    addFormatToken('dddd', 0, 0, function (format) {\n        return this.localeData().weekdays(this, format);\n    });\n\n    addFormatToken('e', 0, 0, 'weekday');\n    addFormatToken('E', 0, 0, 'isoWeekday');\n\n    // PARSING\n\n    addRegexToken('d', match1to2);\n    addRegexToken('e', match1to2);\n    addRegexToken('E', match1to2);\n    addRegexToken('dd', function (isStrict, locale) {\n        return locale.weekdaysMinRegex(isStrict);\n    });\n    addRegexToken('ddd', function (isStrict, locale) {\n        return locale.weekdaysShortRegex(isStrict);\n    });\n    addRegexToken('dddd', function (isStrict, locale) {\n        return locale.weekdaysRegex(isStrict);\n    });\n\n    addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n        var weekday = config._locale.weekdaysParse(input, token, config._strict);\n        // if we didn't get a weekday name, mark the date as invalid\n        if (weekday != null) {\n            week.d = weekday;\n        } else {\n            getParsingFlags(config).invalidWeekday = input;\n        }\n    });\n\n    addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n        week[token] = toInt(input);\n    });\n\n    // HELPERS\n\n    function parseWeekday(input, locale) {\n        if (typeof input !== 'string') {\n            return input;\n        }\n\n        if (!isNaN(input)) {\n            return parseInt(input, 10);\n        }\n\n        input = locale.weekdaysParse(input);\n        if (typeof input === 'number') {\n            return input;\n        }\n\n        return null;\n    }\n\n    function parseIsoWeekday(input, locale) {\n        if (typeof input === 'string') {\n            return locale.weekdaysParse(input) % 7 || 7;\n        }\n        return isNaN(input) ? null : input;\n    }\n\n    // LOCALES\n    function shiftWeekdays(ws, n) {\n        return ws.slice(n, 7).concat(ws.slice(0, n));\n    }\n\n    var defaultLocaleWeekdays =\n            'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n        defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        defaultWeekdaysRegex = matchWord,\n        defaultWeekdaysShortRegex = matchWord,\n        defaultWeekdaysMinRegex = matchWord;\n\n    function localeWeekdays(m, format) {\n        var weekdays = isArray(this._weekdays)\n            ? this._weekdays\n            : this._weekdays[\n                  m && m !== true && this._weekdays.isFormat.test(format)\n                      ? 'format'\n                      : 'standalone'\n              ];\n        return m === true\n            ? shiftWeekdays(weekdays, this._week.dow)\n            : m\n              ? weekdays[m.day()]\n              : weekdays;\n    }\n\n    function localeWeekdaysShort(m) {\n        return m === true\n            ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n            : m\n              ? this._weekdaysShort[m.day()]\n              : this._weekdaysShort;\n    }\n\n    function localeWeekdaysMin(m) {\n        return m === true\n            ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n            : m\n              ? this._weekdaysMin[m.day()]\n              : this._weekdaysMin;\n    }\n\n    function handleStrictParse$1(weekdayName, format, strict) {\n        var i,\n            ii,\n            mom,\n            llc = weekdayName.toLocaleLowerCase();\n        if (!this._weekdaysParse) {\n            this._weekdaysParse = [];\n            this._shortWeekdaysParse = [];\n            this._minWeekdaysParse = [];\n\n            for (i = 0; i < 7; ++i) {\n                mom = createUTC([2000, 1]).day(i);\n                this._minWeekdaysParse[i] = this.weekdaysMin(\n                    mom,\n                    ''\n                ).toLocaleLowerCase();\n                this._shortWeekdaysParse[i] = this.weekdaysShort(\n                    mom,\n                    ''\n                ).toLocaleLowerCase();\n                this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n            }\n        }\n\n        if (strict) {\n            if (format === 'dddd') {\n                ii = indexOf.call(this._weekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else if (format === 'ddd') {\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        } else {\n            if (format === 'dddd') {\n                ii = indexOf.call(this._weekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else if (format === 'ddd') {\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._weekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._weekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        }\n    }\n\n    function localeWeekdaysParse(weekdayName, format, strict) {\n        var i, mom, regex;\n\n        if (this._weekdaysParseExact) {\n            return handleStrictParse$1.call(this, weekdayName, format, strict);\n        }\n\n        if (!this._weekdaysParse) {\n            this._weekdaysParse = [];\n            this._minWeekdaysParse = [];\n            this._shortWeekdaysParse = [];\n            this._fullWeekdaysParse = [];\n        }\n\n        for (i = 0; i < 7; i++) {\n            // make the regex if we don't have it already\n\n            mom = createUTC([2000, 1]).day(i);\n            if (strict && !this._fullWeekdaysParse[i]) {\n                this._fullWeekdaysParse[i] = new RegExp(\n                    '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n                    'i'\n                );\n                this._shortWeekdaysParse[i] = new RegExp(\n                    '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n                    'i'\n                );\n                this._minWeekdaysParse[i] = new RegExp(\n                    '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n                    'i'\n                );\n            }\n            if (!this._weekdaysParse[i]) {\n                regex =\n                    '^' +\n                    this.weekdays(mom, '') +\n                    '|^' +\n                    this.weekdaysShort(mom, '') +\n                    '|^' +\n                    this.weekdaysMin(mom, '');\n                this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n            }\n            // test the regex\n            if (\n                strict &&\n                format === 'dddd' &&\n                this._fullWeekdaysParse[i].test(weekdayName)\n            ) {\n                return i;\n            } else if (\n                strict &&\n                format === 'ddd' &&\n                this._shortWeekdaysParse[i].test(weekdayName)\n            ) {\n                return i;\n            } else if (\n                strict &&\n                format === 'dd' &&\n                this._minWeekdaysParse[i].test(weekdayName)\n            ) {\n                return i;\n            } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n                return i;\n            }\n        }\n    }\n\n    // MOMENTS\n\n    function getSetDayOfWeek(input) {\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n\n        var day = get(this, 'Day');\n        if (input != null) {\n            input = parseWeekday(input, this.localeData());\n            return this.add(input - day, 'd');\n        } else {\n            return day;\n        }\n    }\n\n    function getSetLocaleDayOfWeek(input) {\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n        var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n        return input == null ? weekday : this.add(input - weekday, 'd');\n    }\n\n    function getSetISODayOfWeek(input) {\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n\n        // behaves the same as moment#day except\n        // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n        // as a setter, sunday should belong to the previous week.\n\n        if (input != null) {\n            var weekday = parseIsoWeekday(input, this.localeData());\n            return this.day(this.day() % 7 ? weekday : weekday - 7);\n        } else {\n            return this.day() || 7;\n        }\n    }\n\n    function weekdaysRegex(isStrict) {\n        if (this._weekdaysParseExact) {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                computeWeekdaysParse.call(this);\n            }\n            if (isStrict) {\n                return this._weekdaysStrictRegex;\n            } else {\n                return this._weekdaysRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                this._weekdaysRegex = defaultWeekdaysRegex;\n            }\n            return this._weekdaysStrictRegex && isStrict\n                ? this._weekdaysStrictRegex\n                : this._weekdaysRegex;\n        }\n    }\n\n    function weekdaysShortRegex(isStrict) {\n        if (this._weekdaysParseExact) {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                computeWeekdaysParse.call(this);\n            }\n            if (isStrict) {\n                return this._weekdaysShortStrictRegex;\n            } else {\n                return this._weekdaysShortRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n                this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n            }\n            return this._weekdaysShortStrictRegex && isStrict\n                ? this._weekdaysShortStrictRegex\n                : this._weekdaysShortRegex;\n        }\n    }\n\n    function weekdaysMinRegex(isStrict) {\n        if (this._weekdaysParseExact) {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                computeWeekdaysParse.call(this);\n            }\n            if (isStrict) {\n                return this._weekdaysMinStrictRegex;\n            } else {\n                return this._weekdaysMinRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n                this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n            }\n            return this._weekdaysMinStrictRegex && isStrict\n                ? this._weekdaysMinStrictRegex\n                : this._weekdaysMinRegex;\n        }\n    }\n\n    function computeWeekdaysParse() {\n        function cmpLenRev(a, b) {\n            return b.length - a.length;\n        }\n\n        var minPieces = [],\n            shortPieces = [],\n            longPieces = [],\n            mixedPieces = [],\n            i,\n            mom,\n            minp,\n            shortp,\n            longp;\n        for (i = 0; i < 7; i++) {\n            // make the regex if we don't have it already\n            mom = createUTC([2000, 1]).day(i);\n            minp = regexEscape(this.weekdaysMin(mom, ''));\n            shortp = regexEscape(this.weekdaysShort(mom, ''));\n            longp = regexEscape(this.weekdays(mom, ''));\n            minPieces.push(minp);\n            shortPieces.push(shortp);\n            longPieces.push(longp);\n            mixedPieces.push(minp);\n            mixedPieces.push(shortp);\n            mixedPieces.push(longp);\n        }\n        // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n        // will match the longer piece.\n        minPieces.sort(cmpLenRev);\n        shortPieces.sort(cmpLenRev);\n        longPieces.sort(cmpLenRev);\n        mixedPieces.sort(cmpLenRev);\n\n        this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n        this._weekdaysShortRegex = this._weekdaysRegex;\n        this._weekdaysMinRegex = this._weekdaysRegex;\n\n        this._weekdaysStrictRegex = new RegExp(\n            '^(' + longPieces.join('|') + ')',\n            'i'\n        );\n        this._weekdaysShortStrictRegex = new RegExp(\n            '^(' + shortPieces.join('|') + ')',\n            'i'\n        );\n        this._weekdaysMinStrictRegex = new RegExp(\n            '^(' + minPieces.join('|') + ')',\n            'i'\n        );\n    }\n\n    // FORMATTING\n\n    function hFormat() {\n        return this.hours() % 12 || 12;\n    }\n\n    function kFormat() {\n        return this.hours() || 24;\n    }\n\n    addFormatToken('H', ['HH', 2], 0, 'hour');\n    addFormatToken('h', ['hh', 2], 0, hFormat);\n    addFormatToken('k', ['kk', 2], 0, kFormat);\n\n    addFormatToken('hmm', 0, 0, function () {\n        return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n    });\n\n    addFormatToken('hmmss', 0, 0, function () {\n        return (\n            '' +\n            hFormat.apply(this) +\n            zeroFill(this.minutes(), 2) +\n            zeroFill(this.seconds(), 2)\n        );\n    });\n\n    addFormatToken('Hmm', 0, 0, function () {\n        return '' + this.hours() + zeroFill(this.minutes(), 2);\n    });\n\n    addFormatToken('Hmmss', 0, 0, function () {\n        return (\n            '' +\n            this.hours() +\n            zeroFill(this.minutes(), 2) +\n            zeroFill(this.seconds(), 2)\n        );\n    });\n\n    function meridiem(token, lowercase) {\n        addFormatToken(token, 0, 0, function () {\n            return this.localeData().meridiem(\n                this.hours(),\n                this.minutes(),\n                lowercase\n            );\n        });\n    }\n\n    meridiem('a', true);\n    meridiem('A', false);\n\n    // PARSING\n\n    function matchMeridiem(isStrict, locale) {\n        return locale._meridiemParse;\n    }\n\n    addRegexToken('a', matchMeridiem);\n    addRegexToken('A', matchMeridiem);\n    addRegexToken('H', match1to2, match1to2HasZero);\n    addRegexToken('h', match1to2, match1to2NoLeadingZero);\n    addRegexToken('k', match1to2, match1to2NoLeadingZero);\n    addRegexToken('HH', match1to2, match2);\n    addRegexToken('hh', match1to2, match2);\n    addRegexToken('kk', match1to2, match2);\n\n    addRegexToken('hmm', match3to4);\n    addRegexToken('hmmss', match5to6);\n    addRegexToken('Hmm', match3to4);\n    addRegexToken('Hmmss', match5to6);\n\n    addParseToken(['H', 'HH'], HOUR);\n    addParseToken(['k', 'kk'], function (input, array, config) {\n        var kInput = toInt(input);\n        array[HOUR] = kInput === 24 ? 0 : kInput;\n    });\n    addParseToken(['a', 'A'], function (input, array, config) {\n        config._isPm = config._locale.isPM(input);\n        config._meridiem = input;\n    });\n    addParseToken(['h', 'hh'], function (input, array, config) {\n        array[HOUR] = toInt(input);\n        getParsingFlags(config).bigHour = true;\n    });\n    addParseToken('hmm', function (input, array, config) {\n        var pos = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos));\n        array[MINUTE] = toInt(input.substr(pos));\n        getParsingFlags(config).bigHour = true;\n    });\n    addParseToken('hmmss', function (input, array, config) {\n        var pos1 = input.length - 4,\n            pos2 = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos1));\n        array[MINUTE] = toInt(input.substr(pos1, 2));\n        array[SECOND] = toInt(input.substr(pos2));\n        getParsingFlags(config).bigHour = true;\n    });\n    addParseToken('Hmm', function (input, array, config) {\n        var pos = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos));\n        array[MINUTE] = toInt(input.substr(pos));\n    });\n    addParseToken('Hmmss', function (input, array, config) {\n        var pos1 = input.length - 4,\n            pos2 = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos1));\n        array[MINUTE] = toInt(input.substr(pos1, 2));\n        array[SECOND] = toInt(input.substr(pos2));\n    });\n\n    // LOCALES\n\n    function localeIsPM(input) {\n        // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n        // Using charAt should be more compatible.\n        return (input + '').toLowerCase().charAt(0) === 'p';\n    }\n\n    var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n        // Setting the hour should keep the time, because the user explicitly\n        // specified which hour they want. So trying to maintain the same hour (in\n        // a new timezone) makes sense. Adding/subtracting hours does not follow\n        // this rule.\n        getSetHour = makeGetSet('Hours', true);\n\n    function localeMeridiem(hours, minutes, isLower) {\n        if (hours > 11) {\n            return isLower ? 'pm' : 'PM';\n        } else {\n            return isLower ? 'am' : 'AM';\n        }\n    }\n\n    var baseConfig = {\n        calendar: defaultCalendar,\n        longDateFormat: defaultLongDateFormat,\n        invalidDate: defaultInvalidDate,\n        ordinal: defaultOrdinal,\n        dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n        relativeTime: defaultRelativeTime,\n\n        months: defaultLocaleMonths,\n        monthsShort: defaultLocaleMonthsShort,\n\n        week: defaultLocaleWeek,\n\n        weekdays: defaultLocaleWeekdays,\n        weekdaysMin: defaultLocaleWeekdaysMin,\n        weekdaysShort: defaultLocaleWeekdaysShort,\n\n        meridiemParse: defaultLocaleMeridiemParse,\n    };\n\n    // internal storage for locale config files\n    var locales = {},\n        localeFamilies = {},\n        globalLocale;\n\n    function commonPrefix(arr1, arr2) {\n        var i,\n            minl = Math.min(arr1.length, arr2.length);\n        for (i = 0; i < minl; i += 1) {\n            if (arr1[i] !== arr2[i]) {\n                return i;\n            }\n        }\n        return minl;\n    }\n\n    function normalizeLocale(key) {\n        return key ? key.toLowerCase().replace('_', '-') : key;\n    }\n\n    // pick the locale from the array\n    // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n    // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n    function chooseLocale(names) {\n        var i = 0,\n            j,\n            next,\n            locale,\n            split;\n\n        while (i < names.length) {\n            split = normalizeLocale(names[i]).split('-');\n            j = split.length;\n            next = normalizeLocale(names[i + 1]);\n            next = next ? next.split('-') : null;\n            while (j > 0) {\n                locale = loadLocale(split.slice(0, j).join('-'));\n                if (locale) {\n                    return locale;\n                }\n                if (\n                    next &&\n                    next.length >= j &&\n                    commonPrefix(split, next) >= j - 1\n                ) {\n                    //the next array item is better than a shallower substring of this one\n                    break;\n                }\n                j--;\n            }\n            i++;\n        }\n        return globalLocale;\n    }\n\n    function isLocaleNameSane(name) {\n        // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n        // Ensure name is available and function returns boolean\n        return !!(name && name.match('^[^/\\\\\\\\]*$'));\n    }\n\n    function loadLocale(name) {\n        var oldLocale = null,\n            aliasedRequire;\n        // TODO: Find a better way to register and load all the locales in Node\n        if (\n            locales[name] === undefined &&\n            typeof module !== 'undefined' &&\n            module &&\n            module.exports &&\n            isLocaleNameSane(name)\n        ) {\n            try {\n                oldLocale = globalLocale._abbr;\n                aliasedRequire = require;\n                __webpack_require__(\"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\")(\"./\" + name);\n                getSetGlobalLocale(oldLocale);\n            } catch (e) {\n                // mark as not found to avoid repeating expensive file require call causing high CPU\n                // when trying to find en-US, en_US, en-us for every format call\n                locales[name] = null; // null means not found\n            }\n        }\n        return locales[name];\n    }\n\n    // This function will load locale and then set the global locale.  If\n    // no arguments are passed in, it will simply return the current global\n    // locale key.\n    function getSetGlobalLocale(key, values) {\n        var data;\n        if (key) {\n            if (isUndefined(values)) {\n                data = getLocale(key);\n            } else {\n                data = defineLocale(key, values);\n            }\n\n            if (data) {\n                // moment.duration._locale = moment._locale = data;\n                globalLocale = data;\n            } else {\n                if (typeof console !== 'undefined' && console.warn) {\n                    //warn user if arguments are passed but the locale could not be set\n                    console.warn(\n                        'Locale ' + key + ' not found. Did you forget to load it?'\n                    );\n                }\n            }\n        }\n\n        return globalLocale._abbr;\n    }\n\n    function defineLocale(name, config) {\n        if (config !== null) {\n            var locale,\n                parentConfig = baseConfig;\n            config.abbr = name;\n            if (locales[name] != null) {\n                deprecateSimple(\n                    'defineLocaleOverride',\n                    'use moment.updateLocale(localeName, config) to change ' +\n                        'an existing locale. moment.defineLocale(localeName, ' +\n                        'config) should only be used for creating a new locale ' +\n                        'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n                );\n                parentConfig = locales[name]._config;\n            } else if (config.parentLocale != null) {\n                if (locales[config.parentLocale] != null) {\n                    parentConfig = locales[config.parentLocale]._config;\n                } else {\n                    locale = loadLocale(config.parentLocale);\n                    if (locale != null) {\n                        parentConfig = locale._config;\n                    } else {\n                        if (!localeFamilies[config.parentLocale]) {\n                            localeFamilies[config.parentLocale] = [];\n                        }\n                        localeFamilies[config.parentLocale].push({\n                            name: name,\n                            config: config,\n                        });\n                        return null;\n                    }\n                }\n            }\n            locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n            if (localeFamilies[name]) {\n                localeFamilies[name].forEach(function (x) {\n                    defineLocale(x.name, x.config);\n                });\n            }\n\n            // backwards compat for now: also set the locale\n            // make sure we set the locale AFTER all child locales have been\n            // created, so we won't end up with the child locale set.\n            getSetGlobalLocale(name);\n\n            return locales[name];\n        } else {\n            // useful for testing\n            delete locales[name];\n            return null;\n        }\n    }\n\n    function updateLocale(name, config) {\n        if (config != null) {\n            var locale,\n                tmpLocale,\n                parentConfig = baseConfig;\n\n            if (locales[name] != null && locales[name].parentLocale != null) {\n                // Update existing child locale in-place to avoid memory-leaks\n                locales[name].set(mergeConfigs(locales[name]._config, config));\n            } else {\n                // MERGE\n                tmpLocale = loadLocale(name);\n                if (tmpLocale != null) {\n                    parentConfig = tmpLocale._config;\n                }\n                config = mergeConfigs(parentConfig, config);\n                if (tmpLocale == null) {\n                    // updateLocale is called for creating a new locale\n                    // Set abbr so it will have a name (getters return\n                    // undefined otherwise).\n                    config.abbr = name;\n                }\n                locale = new Locale(config);\n                locale.parentLocale = locales[name];\n                locales[name] = locale;\n            }\n\n            // backwards compat for now: also set the locale\n            getSetGlobalLocale(name);\n        } else {\n            // pass null for config to unupdate, useful for tests\n            if (locales[name] != null) {\n                if (locales[name].parentLocale != null) {\n                    locales[name] = locales[name].parentLocale;\n                    if (name === getSetGlobalLocale()) {\n                        getSetGlobalLocale(name);\n                    }\n                } else if (locales[name] != null) {\n                    delete locales[name];\n                }\n            }\n        }\n        return locales[name];\n    }\n\n    // returns locale data\n    function getLocale(key) {\n        var locale;\n\n        if (key && key._locale && key._locale._abbr) {\n            key = key._locale._abbr;\n        }\n\n        if (!key) {\n            return globalLocale;\n        }\n\n        if (!isArray(key)) {\n            //short-circuit everything else\n            locale = loadLocale(key);\n            if (locale) {\n                return locale;\n            }\n            key = [key];\n        }\n\n        return chooseLocale(key);\n    }\n\n    function listLocales() {\n        return keys(locales);\n    }\n\n    function checkOverflow(m) {\n        var overflow,\n            a = m._a;\n\n        if (a && getParsingFlags(m).overflow === -2) {\n            overflow =\n                a[MONTH] < 0 || a[MONTH] > 11\n                    ? MONTH\n                    : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n                      ? DATE\n                      : a[HOUR] < 0 ||\n                          a[HOUR] > 24 ||\n                          (a[HOUR] === 24 &&\n                              (a[MINUTE] !== 0 ||\n                                  a[SECOND] !== 0 ||\n                                  a[MILLISECOND] !== 0))\n                        ? HOUR\n                        : a[MINUTE] < 0 || a[MINUTE] > 59\n                          ? MINUTE\n                          : a[SECOND] < 0 || a[SECOND] > 59\n                            ? SECOND\n                            : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n                              ? MILLISECOND\n                              : -1;\n\n            if (\n                getParsingFlags(m)._overflowDayOfYear &&\n                (overflow < YEAR || overflow > DATE)\n            ) {\n                overflow = DATE;\n            }\n            if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n                overflow = WEEK;\n            }\n            if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n                overflow = WEEKDAY;\n            }\n\n            getParsingFlags(m).overflow = overflow;\n        }\n\n        return m;\n    }\n\n    // iso 8601 regex\n    // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n    var extendedIsoRegex =\n            /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n        basicIsoRegex =\n            /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n        tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n        isoDates = [\n            ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n            ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n            ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n            ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n            ['YYYY-DDD', /\\d{4}-\\d{3}/],\n            ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n            ['YYYYYYMMDD', /[+-]\\d{10}/],\n            ['YYYYMMDD', /\\d{8}/],\n            ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n            ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n            ['YYYYDDD', /\\d{7}/],\n            ['YYYYMM', /\\d{6}/, false],\n            ['YYYY', /\\d{4}/, false],\n        ],\n        // iso time formats and regexes\n        isoTimes = [\n            ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n            ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n            ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n            ['HH:mm', /\\d\\d:\\d\\d/],\n            ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n            ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n            ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n            ['HHmm', /\\d\\d\\d\\d/],\n            ['HH', /\\d\\d/],\n        ],\n        aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n        // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n        rfc2822 =\n            /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n        obsOffsets = {\n            UT: 0,\n            GMT: 0,\n            EDT: -4 * 60,\n            EST: -5 * 60,\n            CDT: -5 * 60,\n            CST: -6 * 60,\n            MDT: -6 * 60,\n            MST: -7 * 60,\n            PDT: -7 * 60,\n            PST: -8 * 60,\n        };\n\n    // date from iso format\n    function configFromISO(config) {\n        var i,\n            l,\n            string = config._i,\n            match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n            allowTime,\n            dateFormat,\n            timeFormat,\n            tzFormat,\n            isoDatesLen = isoDates.length,\n            isoTimesLen = isoTimes.length;\n\n        if (match) {\n            getParsingFlags(config).iso = true;\n            for (i = 0, l = isoDatesLen; i < l; i++) {\n                if (isoDates[i][1].exec(match[1])) {\n                    dateFormat = isoDates[i][0];\n                    allowTime = isoDates[i][2] !== false;\n                    break;\n                }\n            }\n            if (dateFormat == null) {\n                config._isValid = false;\n                return;\n            }\n            if (match[3]) {\n                for (i = 0, l = isoTimesLen; i < l; i++) {\n                    if (isoTimes[i][1].exec(match[3])) {\n                        // match[2] should be 'T' or space\n                        timeFormat = (match[2] || ' ') + isoTimes[i][0];\n                        break;\n                    }\n                }\n                if (timeFormat == null) {\n                    config._isValid = false;\n                    return;\n                }\n            }\n            if (!allowTime && timeFormat != null) {\n                config._isValid = false;\n                return;\n            }\n            if (match[4]) {\n                if (tzRegex.exec(match[4])) {\n                    tzFormat = 'Z';\n                } else {\n                    config._isValid = false;\n                    return;\n                }\n            }\n            config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n            configFromStringAndFormat(config);\n        } else {\n            config._isValid = false;\n        }\n    }\n\n    function extractFromRFC2822Strings(\n        yearStr,\n        monthStr,\n        dayStr,\n        hourStr,\n        minuteStr,\n        secondStr\n    ) {\n        var result = [\n            untruncateYear(yearStr),\n            defaultLocaleMonthsShort.indexOf(monthStr),\n            parseInt(dayStr, 10),\n            parseInt(hourStr, 10),\n            parseInt(minuteStr, 10),\n        ];\n\n        if (secondStr) {\n            result.push(parseInt(secondStr, 10));\n        }\n\n        return result;\n    }\n\n    function untruncateYear(yearStr) {\n        var year = parseInt(yearStr, 10);\n        if (year <= 49) {\n            return 2000 + year;\n        } else if (year <= 999) {\n            return 1900 + year;\n        }\n        return year;\n    }\n\n    function preprocessRFC2822(s) {\n        // Remove comments and folding whitespace and replace multiple-spaces with a single space\n        return s\n            .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n            .replace(/(\\s\\s+)/g, ' ')\n            .replace(/^\\s\\s*/, '')\n            .replace(/\\s\\s*$/, '');\n    }\n\n    function checkWeekday(weekdayStr, parsedInput, config) {\n        if (weekdayStr) {\n            // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n            var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n                weekdayActual = new Date(\n                    parsedInput[0],\n                    parsedInput[1],\n                    parsedInput[2]\n                ).getDay();\n            if (weekdayProvided !== weekdayActual) {\n                getParsingFlags(config).weekdayMismatch = true;\n                config._isValid = false;\n                return false;\n            }\n        }\n        return true;\n    }\n\n    function calculateOffset(obsOffset, militaryOffset, numOffset) {\n        if (obsOffset) {\n            return obsOffsets[obsOffset];\n        } else if (militaryOffset) {\n            // the only allowed military tz is Z\n            return 0;\n        } else {\n            var hm = parseInt(numOffset, 10),\n                m = hm % 100,\n                h = (hm - m) / 100;\n            return h * 60 + m;\n        }\n    }\n\n    // date and time from ref 2822 format\n    function configFromRFC2822(config) {\n        var match = rfc2822.exec(preprocessRFC2822(config._i)),\n            parsedArray;\n        if (match) {\n            parsedArray = extractFromRFC2822Strings(\n                match[4],\n                match[3],\n                match[2],\n                match[5],\n                match[6],\n                match[7]\n            );\n            if (!checkWeekday(match[1], parsedArray, config)) {\n                return;\n            }\n\n            config._a = parsedArray;\n            config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n            config._d = createUTCDate.apply(null, config._a);\n            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n            getParsingFlags(config).rfc2822 = true;\n        } else {\n            config._isValid = false;\n        }\n    }\n\n    // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n    function configFromString(config) {\n        var matched = aspNetJsonRegex.exec(config._i);\n        if (matched !== null) {\n            config._d = new Date(+matched[1]);\n            return;\n        }\n\n        configFromISO(config);\n        if (config._isValid === false) {\n            delete config._isValid;\n        } else {\n            return;\n        }\n\n        configFromRFC2822(config);\n        if (config._isValid === false) {\n            delete config._isValid;\n        } else {\n            return;\n        }\n\n        if (config._strict) {\n            config._isValid = false;\n        } else {\n            // Final attempt, use Input Fallback\n            hooks.createFromInputFallback(config);\n        }\n    }\n\n    hooks.createFromInputFallback = deprecate(\n        'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n            'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n            'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n        function (config) {\n            config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n        }\n    );\n\n    // Pick the first defined of two or three arguments.\n    function defaults(a, b, c) {\n        if (a != null) {\n            return a;\n        }\n        if (b != null) {\n            return b;\n        }\n        return c;\n    }\n\n    function currentDateArray(config) {\n        // hooks is actually the exported moment object\n        var nowValue = new Date(hooks.now());\n        if (config._useUTC) {\n            return [\n                nowValue.getUTCFullYear(),\n                nowValue.getUTCMonth(),\n                nowValue.getUTCDate(),\n            ];\n        }\n        return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n    }\n\n    // convert an array to a date.\n    // the array should mirror the parameters below\n    // note: all values past the year are optional and will default to the lowest possible value.\n    // [year, month, day , hour, minute, second, millisecond]\n    function configFromArray(config) {\n        var i,\n            date,\n            input = [],\n            currentDate,\n            expectedWeekday,\n            yearToUse;\n\n        if (config._d) {\n            return;\n        }\n\n        currentDate = currentDateArray(config);\n\n        //compute day of the year from weeks and weekdays\n        if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n            dayOfYearFromWeekInfo(config);\n        }\n\n        //if the day of the year is set, figure out what it is\n        if (config._dayOfYear != null) {\n            yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n            if (\n                config._dayOfYear > daysInYear(yearToUse) ||\n                config._dayOfYear === 0\n            ) {\n                getParsingFlags(config)._overflowDayOfYear = true;\n            }\n\n            date = createUTCDate(yearToUse, 0, config._dayOfYear);\n            config._a[MONTH] = date.getUTCMonth();\n            config._a[DATE] = date.getUTCDate();\n        }\n\n        // Default to current date.\n        // * if no year, month, day of month are given, default to today\n        // * if day of month is given, default month and year\n        // * if month is given, default only year\n        // * if year is given, don't default anything\n        for (i = 0; i < 3 && config._a[i] == null; ++i) {\n            config._a[i] = input[i] = currentDate[i];\n        }\n\n        // Zero out whatever was not defaulted, including time\n        for (; i < 7; i++) {\n            config._a[i] = input[i] =\n                config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n        }\n\n        // Check for 24:00:00.000\n        if (\n            config._a[HOUR] === 24 &&\n            config._a[MINUTE] === 0 &&\n            config._a[SECOND] === 0 &&\n            config._a[MILLISECOND] === 0\n        ) {\n            config._nextDay = true;\n            config._a[HOUR] = 0;\n        }\n\n        config._d = (config._useUTC ? createUTCDate : createDate).apply(\n            null,\n            input\n        );\n        expectedWeekday = config._useUTC\n            ? config._d.getUTCDay()\n            : config._d.getDay();\n\n        // Apply timezone offset from input. The actual utcOffset can be changed\n        // with parseZone.\n        if (config._tzm != null) {\n            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n        }\n\n        if (config._nextDay) {\n            config._a[HOUR] = 24;\n        }\n\n        // check for mismatching day of week\n        if (\n            config._w &&\n            typeof config._w.d !== 'undefined' &&\n            config._w.d !== expectedWeekday\n        ) {\n            getParsingFlags(config).weekdayMismatch = true;\n        }\n    }\n\n    function dayOfYearFromWeekInfo(config) {\n        var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n        w = config._w;\n        if (w.GG != null || w.W != null || w.E != null) {\n            dow = 1;\n            doy = 4;\n\n            // TODO: We need to take the current isoWeekYear, but that depends on\n            // how we interpret now (local, utc, fixed offset). So create\n            // a now version of current config (take local/utc/offset flags, and\n            // create now).\n            weekYear = defaults(\n                w.GG,\n                config._a[YEAR],\n                weekOfYear(createLocal(), 1, 4).year\n            );\n            week = defaults(w.W, 1);\n            weekday = defaults(w.E, 1);\n            if (weekday < 1 || weekday > 7) {\n                weekdayOverflow = true;\n            }\n        } else {\n            dow = config._locale._week.dow;\n            doy = config._locale._week.doy;\n\n            curWeek = weekOfYear(createLocal(), dow, doy);\n\n            weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n            // Default to current week.\n            week = defaults(w.w, curWeek.week);\n\n            if (w.d != null) {\n                // weekday -- low day numbers are considered next week\n                weekday = w.d;\n                if (weekday < 0 || weekday > 6) {\n                    weekdayOverflow = true;\n                }\n            } else if (w.e != null) {\n                // local weekday -- counting starts from beginning of week\n                weekday = w.e + dow;\n                if (w.e < 0 || w.e > 6) {\n                    weekdayOverflow = true;\n                }\n            } else {\n                // default to beginning of week\n                weekday = dow;\n            }\n        }\n        if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n            getParsingFlags(config)._overflowWeeks = true;\n        } else if (weekdayOverflow != null) {\n            getParsingFlags(config)._overflowWeekday = true;\n        } else {\n            temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n            config._a[YEAR] = temp.year;\n            config._dayOfYear = temp.dayOfYear;\n        }\n    }\n\n    // constant that refers to the ISO standard\n    hooks.ISO_8601 = function () {};\n\n    // constant that refers to the RFC 2822 form\n    hooks.RFC_2822 = function () {};\n\n    // date from string and format string\n    function configFromStringAndFormat(config) {\n        // TODO: Move this to another part of the creation flow to prevent circular deps\n        if (config._f === hooks.ISO_8601) {\n            configFromISO(config);\n            return;\n        }\n        if (config._f === hooks.RFC_2822) {\n            configFromRFC2822(config);\n            return;\n        }\n        config._a = [];\n        getParsingFlags(config).empty = true;\n\n        // This array is used to make a Date, either with `new Date` or `Date.UTC`\n        var string = '' + config._i,\n            i,\n            parsedInput,\n            tokens,\n            token,\n            skipped,\n            stringLength = string.length,\n            totalParsedInputLength = 0,\n            era,\n            tokenLen;\n\n        tokens =\n            expandFormat(config._f, config._locale).match(formattingTokens) || [];\n        tokenLen = tokens.length;\n        for (i = 0; i < tokenLen; i++) {\n            token = tokens[i];\n            parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n                [])[0];\n            if (parsedInput) {\n                skipped = string.substr(0, string.indexOf(parsedInput));\n                if (skipped.length > 0) {\n                    getParsingFlags(config).unusedInput.push(skipped);\n                }\n                string = string.slice(\n                    string.indexOf(parsedInput) + parsedInput.length\n                );\n                totalParsedInputLength += parsedInput.length;\n            }\n            // don't parse if it's not a known token\n            if (formatTokenFunctions[token]) {\n                if (parsedInput) {\n                    getParsingFlags(config).empty = false;\n                } else {\n                    getParsingFlags(config).unusedTokens.push(token);\n                }\n                addTimeToArrayFromToken(token, parsedInput, config);\n            } else if (config._strict && !parsedInput) {\n                getParsingFlags(config).unusedTokens.push(token);\n            }\n        }\n\n        // add remaining unparsed input length to the string\n        getParsingFlags(config).charsLeftOver =\n            stringLength - totalParsedInputLength;\n        if (string.length > 0) {\n            getParsingFlags(config).unusedInput.push(string);\n        }\n\n        // clear _12h flag if hour is <= 12\n        if (\n            config._a[HOUR] <= 12 &&\n            getParsingFlags(config).bigHour === true &&\n            config._a[HOUR] > 0\n        ) {\n            getParsingFlags(config).bigHour = undefined;\n        }\n\n        getParsingFlags(config).parsedDateParts = config._a.slice(0);\n        getParsingFlags(config).meridiem = config._meridiem;\n        // handle meridiem\n        config._a[HOUR] = meridiemFixWrap(\n            config._locale,\n            config._a[HOUR],\n            config._meridiem\n        );\n\n        // handle era\n        era = getParsingFlags(config).era;\n        if (era !== null) {\n            config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n        }\n\n        configFromArray(config);\n        checkOverflow(config);\n    }\n\n    function meridiemFixWrap(locale, hour, meridiem) {\n        var isPm;\n\n        if (meridiem == null) {\n            // nothing to do\n            return hour;\n        }\n        if (locale.meridiemHour != null) {\n            return locale.meridiemHour(hour, meridiem);\n        } else if (locale.isPM != null) {\n            // Fallback\n            isPm = locale.isPM(meridiem);\n            if (isPm && hour < 12) {\n                hour += 12;\n            }\n            if (!isPm && hour === 12) {\n                hour = 0;\n            }\n            return hour;\n        } else {\n            // this is not supposed to happen\n            return hour;\n        }\n    }\n\n    // date from string and array of format strings\n    function configFromStringAndArray(config) {\n        var tempConfig,\n            bestMoment,\n            scoreToBeat,\n            i,\n            currentScore,\n            validFormatFound,\n            bestFormatIsValid = false,\n            configfLen = config._f.length;\n\n        if (configfLen === 0) {\n            getParsingFlags(config).invalidFormat = true;\n            config._d = new Date(NaN);\n            return;\n        }\n\n        for (i = 0; i < configfLen; i++) {\n            currentScore = 0;\n            validFormatFound = false;\n            tempConfig = copyConfig({}, config);\n            if (config._useUTC != null) {\n                tempConfig._useUTC = config._useUTC;\n            }\n            tempConfig._f = config._f[i];\n            configFromStringAndFormat(tempConfig);\n\n            if (isValid(tempConfig)) {\n                validFormatFound = true;\n            }\n\n            // if there is any input that was not parsed add a penalty for that format\n            currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n            //or tokens\n            currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n            getParsingFlags(tempConfig).score = currentScore;\n\n            if (!bestFormatIsValid) {\n                if (\n                    scoreToBeat == null ||\n                    currentScore < scoreToBeat ||\n                    validFormatFound\n                ) {\n                    scoreToBeat = currentScore;\n                    bestMoment = tempConfig;\n                    if (validFormatFound) {\n                        bestFormatIsValid = true;\n                    }\n                }\n            } else {\n                if (currentScore < scoreToBeat) {\n                    scoreToBeat = currentScore;\n                    bestMoment = tempConfig;\n                }\n            }\n        }\n\n        extend(config, bestMoment || tempConfig);\n    }\n\n    function configFromObject(config) {\n        if (config._d) {\n            return;\n        }\n\n        var i = normalizeObjectUnits(config._i),\n            dayOrDate = i.day === undefined ? i.date : i.day;\n        config._a = map(\n            [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n            function (obj) {\n                return obj && parseInt(obj, 10);\n            }\n        );\n\n        configFromArray(config);\n    }\n\n    function createFromConfig(config) {\n        var res = new Moment(checkOverflow(prepareConfig(config)));\n        if (res._nextDay) {\n            // Adding is smart enough around DST\n            res.add(1, 'd');\n            res._nextDay = undefined;\n        }\n\n        return res;\n    }\n\n    function prepareConfig(config) {\n        var input = config._i,\n            format = config._f;\n\n        config._locale = config._locale || getLocale(config._l);\n\n        if (input === null || (format === undefined && input === '')) {\n            return createInvalid({ nullInput: true });\n        }\n\n        if (typeof input === 'string') {\n            config._i = input = config._locale.preparse(input);\n        }\n\n        if (isMoment(input)) {\n            return new Moment(checkOverflow(input));\n        } else if (isDate(input)) {\n            config._d = input;\n        } else if (isArray(format)) {\n            configFromStringAndArray(config);\n        } else if (format) {\n            configFromStringAndFormat(config);\n        } else {\n            configFromInput(config);\n        }\n\n        if (!isValid(config)) {\n            config._d = null;\n        }\n\n        return config;\n    }\n\n    function configFromInput(config) {\n        var input = config._i;\n        if (isUndefined(input)) {\n            config._d = new Date(hooks.now());\n        } else if (isDate(input)) {\n            config._d = new Date(input.valueOf());\n        } else if (typeof input === 'string') {\n            configFromString(config);\n        } else if (isArray(input)) {\n            config._a = map(input.slice(0), function (obj) {\n                return parseInt(obj, 10);\n            });\n            configFromArray(config);\n        } else if (isObject(input)) {\n            configFromObject(config);\n        } else if (isNumber(input)) {\n            // from milliseconds\n            config._d = new Date(input);\n        } else {\n            hooks.createFromInputFallback(config);\n        }\n    }\n\n    function createLocalOrUTC(input, format, locale, strict, isUTC) {\n        var c = {};\n\n        if (format === true || format === false) {\n            strict = format;\n            format = undefined;\n        }\n\n        if (locale === true || locale === false) {\n            strict = locale;\n            locale = undefined;\n        }\n\n        if (\n            (isObject(input) && isObjectEmpty(input)) ||\n            (isArray(input) && input.length === 0)\n        ) {\n            input = undefined;\n        }\n        // object construction must be done this way.\n        // https://github.com/moment/moment/issues/1423\n        c._isAMomentObject = true;\n        c._useUTC = c._isUTC = isUTC;\n        c._l = locale;\n        c._i = input;\n        c._f = format;\n        c._strict = strict;\n\n        return createFromConfig(c);\n    }\n\n    function createLocal(input, format, locale, strict) {\n        return createLocalOrUTC(input, format, locale, strict, false);\n    }\n\n    var prototypeMin = deprecate(\n            'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n            function () {\n                var other = createLocal.apply(null, arguments);\n                if (this.isValid() && other.isValid()) {\n                    return other < this ? this : other;\n                } else {\n                    return createInvalid();\n                }\n            }\n        ),\n        prototypeMax = deprecate(\n            'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n            function () {\n                var other = createLocal.apply(null, arguments);\n                if (this.isValid() && other.isValid()) {\n                    return other > this ? this : other;\n                } else {\n                    return createInvalid();\n                }\n            }\n        );\n\n    // Pick a moment m from moments so that m[fn](other) is true for all\n    // other. This relies on the function fn to be transitive.\n    //\n    // moments should either be an array of moment objects or an array, whose\n    // first element is an array of moment objects.\n    function pickBy(fn, moments) {\n        var res, i;\n        if (moments.length === 1 && isArray(moments[0])) {\n            moments = moments[0];\n        }\n        if (!moments.length) {\n            return createLocal();\n        }\n        res = moments[0];\n        for (i = 1; i < moments.length; ++i) {\n            if (!moments[i].isValid() || moments[i][fn](res)) {\n                res = moments[i];\n            }\n        }\n        return res;\n    }\n\n    // TODO: Use [].sort instead?\n    function min() {\n        var args = [].slice.call(arguments, 0);\n\n        return pickBy('isBefore', args);\n    }\n\n    function max() {\n        var args = [].slice.call(arguments, 0);\n\n        return pickBy('isAfter', args);\n    }\n\n    var now = function () {\n        return Date.now ? Date.now() : +new Date();\n    };\n\n    var ordering = [\n        'year',\n        'quarter',\n        'month',\n        'week',\n        'day',\n        'hour',\n        'minute',\n        'second',\n        'millisecond',\n    ];\n\n    function isDurationValid(m) {\n        var key,\n            unitHasDecimal = false,\n            i,\n            orderLen = ordering.length;\n        for (key in m) {\n            if (\n                hasOwnProp(m, key) &&\n                !(\n                    indexOf.call(ordering, key) !== -1 &&\n                    (m[key] == null || !isNaN(m[key]))\n                )\n            ) {\n                return false;\n            }\n        }\n\n        for (i = 0; i < orderLen; ++i) {\n            if (m[ordering[i]]) {\n                if (unitHasDecimal) {\n                    return false; // only allow non-integers for smallest unit\n                }\n                if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n                    unitHasDecimal = true;\n                }\n            }\n        }\n\n        return true;\n    }\n\n    function isValid$1() {\n        return this._isValid;\n    }\n\n    function createInvalid$1() {\n        return createDuration(NaN);\n    }\n\n    function Duration(duration) {\n        var normalizedInput = normalizeObjectUnits(duration),\n            years = normalizedInput.year || 0,\n            quarters = normalizedInput.quarter || 0,\n            months = normalizedInput.month || 0,\n            weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n            days = normalizedInput.day || 0,\n            hours = normalizedInput.hour || 0,\n            minutes = normalizedInput.minute || 0,\n            seconds = normalizedInput.second || 0,\n            milliseconds = normalizedInput.millisecond || 0;\n\n        this._isValid = isDurationValid(normalizedInput);\n\n        // representation for dateAddRemove\n        this._milliseconds =\n            +milliseconds +\n            seconds * 1e3 + // 1000\n            minutes * 6e4 + // 1000 * 60\n            hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n        // Because of dateAddRemove treats 24 hours as different from a\n        // day when working around DST, we need to store them separately\n        this._days = +days + weeks * 7;\n        // It is impossible to translate months into days without knowing\n        // which months you are are talking about, so we have to store\n        // it separately.\n        this._months = +months + quarters * 3 + years * 12;\n\n        this._data = {};\n\n        this._locale = getLocale();\n\n        this._bubble();\n    }\n\n    function isDuration(obj) {\n        return obj instanceof Duration;\n    }\n\n    function absRound(number) {\n        if (number < 0) {\n            return Math.round(-1 * number) * -1;\n        } else {\n            return Math.round(number);\n        }\n    }\n\n    // compare two arrays, return the number of differences\n    function compareArrays(array1, array2, dontConvert) {\n        var len = Math.min(array1.length, array2.length),\n            lengthDiff = Math.abs(array1.length - array2.length),\n            diffs = 0,\n            i;\n        for (i = 0; i < len; i++) {\n            if (\n                (dontConvert && array1[i] !== array2[i]) ||\n                (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n            ) {\n                diffs++;\n            }\n        }\n        return diffs + lengthDiff;\n    }\n\n    // FORMATTING\n\n    function offset(token, separator) {\n        addFormatToken(token, 0, 0, function () {\n            var offset = this.utcOffset(),\n                sign = '+';\n            if (offset < 0) {\n                offset = -offset;\n                sign = '-';\n            }\n            return (\n                sign +\n                zeroFill(~~(offset / 60), 2) +\n                separator +\n                zeroFill(~~offset % 60, 2)\n            );\n        });\n    }\n\n    offset('Z', ':');\n    offset('ZZ', '');\n\n    // PARSING\n\n    addRegexToken('Z', matchShortOffset);\n    addRegexToken('ZZ', matchShortOffset);\n    addParseToken(['Z', 'ZZ'], function (input, array, config) {\n        config._useUTC = true;\n        config._tzm = offsetFromString(matchShortOffset, input);\n    });\n\n    // HELPERS\n\n    // timezone chunker\n    // '+10:00' > ['10',  '00']\n    // '-1530'  > ['-15', '30']\n    var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n    function offsetFromString(matcher, string) {\n        var matches = (string || '').match(matcher),\n            chunk,\n            parts,\n            minutes;\n\n        if (matches === null) {\n            return null;\n        }\n\n        chunk = matches[matches.length - 1] || [];\n        parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n        minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n        return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n    }\n\n    // Return a moment from input, that is local/utc/zone equivalent to model.\n    function cloneWithOffset(input, model) {\n        var res, diff;\n        if (model._isUTC) {\n            res = model.clone();\n            diff =\n                (isMoment(input) || isDate(input)\n                    ? input.valueOf()\n                    : createLocal(input).valueOf()) - res.valueOf();\n            // Use low-level api, because this fn is low-level api.\n            res._d.setTime(res._d.valueOf() + diff);\n            hooks.updateOffset(res, false);\n            return res;\n        } else {\n            return createLocal(input).local();\n        }\n    }\n\n    function getDateOffset(m) {\n        // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n        // https://github.com/moment/moment/pull/1871\n        return -Math.round(m._d.getTimezoneOffset());\n    }\n\n    // HOOKS\n\n    // This function will be called whenever a moment is mutated.\n    // It is intended to keep the offset in sync with the timezone.\n    hooks.updateOffset = function () {};\n\n    // MOMENTS\n\n    // keepLocalTime = true means only change the timezone, without\n    // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n    // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n    // +0200, so we adjust the time as needed, to be valid.\n    //\n    // Keeping the time actually adds/subtracts (one hour)\n    // from the actual represented time. That is why we call updateOffset\n    // a second time. In case it wants us to change the offset again\n    // _changeInProgress == true case, then we have to adjust, because\n    // there is no such time in the given timezone.\n    function getSetOffset(input, keepLocalTime, keepMinutes) {\n        var offset = this._offset || 0,\n            localAdjust;\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n        if (input != null) {\n            if (typeof input === 'string') {\n                input = offsetFromString(matchShortOffset, input);\n                if (input === null) {\n                    return this;\n                }\n            } else if (Math.abs(input) < 16 && !keepMinutes) {\n                input = input * 60;\n            }\n            if (!this._isUTC && keepLocalTime) {\n                localAdjust = getDateOffset(this);\n            }\n            this._offset = input;\n            this._isUTC = true;\n            if (localAdjust != null) {\n                this.add(localAdjust, 'm');\n            }\n            if (offset !== input) {\n                if (!keepLocalTime || this._changeInProgress) {\n                    addSubtract(\n                        this,\n                        createDuration(input - offset, 'm'),\n                        1,\n                        false\n                    );\n                } else if (!this._changeInProgress) {\n                    this._changeInProgress = true;\n                    hooks.updateOffset(this, true);\n                    this._changeInProgress = null;\n                }\n            }\n            return this;\n        } else {\n            return this._isUTC ? offset : getDateOffset(this);\n        }\n    }\n\n    function getSetZone(input, keepLocalTime) {\n        if (input != null) {\n            if (typeof input !== 'string') {\n                input = -input;\n            }\n\n            this.utcOffset(input, keepLocalTime);\n\n            return this;\n        } else {\n            return -this.utcOffset();\n        }\n    }\n\n    function setOffsetToUTC(keepLocalTime) {\n        return this.utcOffset(0, keepLocalTime);\n    }\n\n    function setOffsetToLocal(keepLocalTime) {\n        if (this._isUTC) {\n            this.utcOffset(0, keepLocalTime);\n            this._isUTC = false;\n\n            if (keepLocalTime) {\n                this.subtract(getDateOffset(this), 'm');\n            }\n        }\n        return this;\n    }\n\n    function setOffsetToParsedOffset() {\n        if (this._tzm != null) {\n            this.utcOffset(this._tzm, false, true);\n        } else if (typeof this._i === 'string') {\n            var tZone = offsetFromString(matchOffset, this._i);\n            if (tZone != null) {\n                this.utcOffset(tZone);\n            } else {\n                this.utcOffset(0, true);\n            }\n        }\n        return this;\n    }\n\n    function hasAlignedHourOffset(input) {\n        if (!this.isValid()) {\n            return false;\n        }\n        input = input ? createLocal(input).utcOffset() : 0;\n\n        return (this.utcOffset() - input) % 60 === 0;\n    }\n\n    function isDaylightSavingTime() {\n        return (\n            this.utcOffset() > this.clone().month(0).utcOffset() ||\n            this.utcOffset() > this.clone().month(5).utcOffset()\n        );\n    }\n\n    function isDaylightSavingTimeShifted() {\n        if (!isUndefined(this._isDSTShifted)) {\n            return this._isDSTShifted;\n        }\n\n        var c = {},\n            other;\n\n        copyConfig(c, this);\n        c = prepareConfig(c);\n\n        if (c._a) {\n            other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n            this._isDSTShifted =\n                this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n        } else {\n            this._isDSTShifted = false;\n        }\n\n        return this._isDSTShifted;\n    }\n\n    function isLocal() {\n        return this.isValid() ? !this._isUTC : false;\n    }\n\n    function isUtcOffset() {\n        return this.isValid() ? this._isUTC : false;\n    }\n\n    function isUtc() {\n        return this.isValid() ? this._isUTC && this._offset === 0 : false;\n    }\n\n    // ASP.NET json date format regex\n    var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n        // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n        // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n        // and further modified to allow for strings containing both week and day\n        isoRegex =\n            /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n    function createDuration(input, key) {\n        var duration = input,\n            // matching against regexp is expensive, do it on demand\n            match = null,\n            sign,\n            ret,\n            diffRes;\n\n        if (isDuration(input)) {\n            duration = {\n                ms: input._milliseconds,\n                d: input._days,\n                M: input._months,\n            };\n        } else if (isNumber(input) || !isNaN(+input)) {\n            duration = {};\n            if (key) {\n                duration[key] = +input;\n            } else {\n                duration.milliseconds = +input;\n            }\n        } else if ((match = aspNetRegex.exec(input))) {\n            sign = match[1] === '-' ? -1 : 1;\n            duration = {\n                y: 0,\n                d: toInt(match[DATE]) * sign,\n                h: toInt(match[HOUR]) * sign,\n                m: toInt(match[MINUTE]) * sign,\n                s: toInt(match[SECOND]) * sign,\n                ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n            };\n        } else if ((match = isoRegex.exec(input))) {\n            sign = match[1] === '-' ? -1 : 1;\n            duration = {\n                y: parseIso(match[2], sign),\n                M: parseIso(match[3], sign),\n                w: parseIso(match[4], sign),\n                d: parseIso(match[5], sign),\n                h: parseIso(match[6], sign),\n                m: parseIso(match[7], sign),\n                s: parseIso(match[8], sign),\n            };\n        } else if (duration == null) {\n            // checks for null or undefined\n            duration = {};\n        } else if (\n            typeof duration === 'object' &&\n            ('from' in duration || 'to' in duration)\n        ) {\n            diffRes = momentsDifference(\n                createLocal(duration.from),\n                createLocal(duration.to)\n            );\n\n            duration = {};\n            duration.ms = diffRes.milliseconds;\n            duration.M = diffRes.months;\n        }\n\n        ret = new Duration(duration);\n\n        if (isDuration(input) && hasOwnProp(input, '_locale')) {\n            ret._locale = input._locale;\n        }\n\n        if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n            ret._isValid = input._isValid;\n        }\n\n        return ret;\n    }\n\n    createDuration.fn = Duration.prototype;\n    createDuration.invalid = createInvalid$1;\n\n    function parseIso(inp, sign) {\n        // We'd normally use ~~inp for this, but unfortunately it also\n        // converts floats to ints.\n        // inp may be undefined, so careful calling replace on it.\n        var res = inp && parseFloat(inp.replace(',', '.'));\n        // apply sign while we're at it\n        return (isNaN(res) ? 0 : res) * sign;\n    }\n\n    function positiveMomentsDifference(base, other) {\n        var res = {};\n\n        res.months =\n            other.month() - base.month() + (other.year() - base.year()) * 12;\n        if (base.clone().add(res.months, 'M').isAfter(other)) {\n            --res.months;\n        }\n\n        res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n        return res;\n    }\n\n    function momentsDifference(base, other) {\n        var res;\n        if (!(base.isValid() && other.isValid())) {\n            return { milliseconds: 0, months: 0 };\n        }\n\n        other = cloneWithOffset(other, base);\n        if (base.isBefore(other)) {\n            res = positiveMomentsDifference(base, other);\n        } else {\n            res = positiveMomentsDifference(other, base);\n            res.milliseconds = -res.milliseconds;\n            res.months = -res.months;\n        }\n\n        return res;\n    }\n\n    // TODO: remove 'name' arg after deprecation is removed\n    function createAdder(direction, name) {\n        return function (val, period) {\n            var dur, tmp;\n            //invert the arguments, but complain about it\n            if (period !== null && !isNaN(+period)) {\n                deprecateSimple(\n                    name,\n                    'moment().' +\n                        name +\n                        '(period, number) is deprecated. Please use moment().' +\n                        name +\n                        '(number, period). ' +\n                        'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n                );\n                tmp = val;\n                val = period;\n                period = tmp;\n            }\n\n            dur = createDuration(val, period);\n            addSubtract(this, dur, direction);\n            return this;\n        };\n    }\n\n    function addSubtract(mom, duration, isAdding, updateOffset) {\n        var milliseconds = duration._milliseconds,\n            days = absRound(duration._days),\n            months = absRound(duration._months);\n\n        if (!mom.isValid()) {\n            // No op\n            return;\n        }\n\n        updateOffset = updateOffset == null ? true : updateOffset;\n\n        if (months) {\n            setMonth(mom, get(mom, 'Month') + months * isAdding);\n        }\n        if (days) {\n            set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n        }\n        if (milliseconds) {\n            mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n        }\n        if (updateOffset) {\n            hooks.updateOffset(mom, days || months);\n        }\n    }\n\n    var add = createAdder(1, 'add'),\n        subtract = createAdder(-1, 'subtract');\n\n    function isString(input) {\n        return typeof input === 'string' || input instanceof String;\n    }\n\n    // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n    function isMomentInput(input) {\n        return (\n            isMoment(input) ||\n            isDate(input) ||\n            isString(input) ||\n            isNumber(input) ||\n            isNumberOrStringArray(input) ||\n            isMomentInputObject(input) ||\n            input === null ||\n            input === undefined\n        );\n    }\n\n    function isMomentInputObject(input) {\n        var objectTest = isObject(input) && !isObjectEmpty(input),\n            propertyTest = false,\n            properties = [\n                'years',\n                'year',\n                'y',\n                'months',\n                'month',\n                'M',\n                'days',\n                'day',\n                'd',\n                'dates',\n                'date',\n                'D',\n                'hours',\n                'hour',\n                'h',\n                'minutes',\n                'minute',\n                'm',\n                'seconds',\n                'second',\n                's',\n                'milliseconds',\n                'millisecond',\n                'ms',\n            ],\n            i,\n            property,\n            propertyLen = properties.length;\n\n        for (i = 0; i < propertyLen; i += 1) {\n            property = properties[i];\n            propertyTest = propertyTest || hasOwnProp(input, property);\n        }\n\n        return objectTest && propertyTest;\n    }\n\n    function isNumberOrStringArray(input) {\n        var arrayTest = isArray(input),\n            dataTypeTest = false;\n        if (arrayTest) {\n            dataTypeTest =\n                input.filter(function (item) {\n                    return !isNumber(item) && isString(input);\n                }).length === 0;\n        }\n        return arrayTest && dataTypeTest;\n    }\n\n    function isCalendarSpec(input) {\n        var objectTest = isObject(input) && !isObjectEmpty(input),\n            propertyTest = false,\n            properties = [\n                'sameDay',\n                'nextDay',\n                'lastDay',\n                'nextWeek',\n                'lastWeek',\n                'sameElse',\n            ],\n            i,\n            property;\n\n        for (i = 0; i < properties.length; i += 1) {\n            property = properties[i];\n            propertyTest = propertyTest || hasOwnProp(input, property);\n        }\n\n        return objectTest && propertyTest;\n    }\n\n    function getCalendarFormat(myMoment, now) {\n        var diff = myMoment.diff(now, 'days', true);\n        return diff < -6\n            ? 'sameElse'\n            : diff < -1\n              ? 'lastWeek'\n              : diff < 0\n                ? 'lastDay'\n                : diff < 1\n                  ? 'sameDay'\n                  : diff < 2\n                    ? 'nextDay'\n                    : diff < 7\n                      ? 'nextWeek'\n                      : 'sameElse';\n    }\n\n    function calendar$1(time, formats) {\n        // Support for single parameter, formats only overload to the calendar function\n        if (arguments.length === 1) {\n            if (!arguments[0]) {\n                time = undefined;\n                formats = undefined;\n            } else if (isMomentInput(arguments[0])) {\n                time = arguments[0];\n                formats = undefined;\n            } else if (isCalendarSpec(arguments[0])) {\n                formats = arguments[0];\n                time = undefined;\n            }\n        }\n        // We want to compare the start of today, vs this.\n        // Getting start-of-today depends on whether we're local/utc/offset or not.\n        var now = time || createLocal(),\n            sod = cloneWithOffset(now, this).startOf('day'),\n            format = hooks.calendarFormat(this, sod) || 'sameElse',\n            output =\n                formats &&\n                (isFunction(formats[format])\n                    ? formats[format].call(this, now)\n                    : formats[format]);\n\n        return this.format(\n            output || this.localeData().calendar(format, this, createLocal(now))\n        );\n    }\n\n    function clone() {\n        return new Moment(this);\n    }\n\n    function isAfter(input, units) {\n        var localInput = isMoment(input) ? input : createLocal(input);\n        if (!(this.isValid() && localInput.isValid())) {\n            return false;\n        }\n        units = normalizeUnits(units) || 'millisecond';\n        if (units === 'millisecond') {\n            return this.valueOf() > localInput.valueOf();\n        } else {\n            return localInput.valueOf() < this.clone().startOf(units).valueOf();\n        }\n    }\n\n    function isBefore(input, units) {\n        var localInput = isMoment(input) ? input : createLocal(input);\n        if (!(this.isValid() && localInput.isValid())) {\n            return false;\n        }\n        units = normalizeUnits(units) || 'millisecond';\n        if (units === 'millisecond') {\n            return this.valueOf() < localInput.valueOf();\n        } else {\n            return this.clone().endOf(units).valueOf() < localInput.valueOf();\n        }\n    }\n\n    function isBetween(from, to, units, inclusivity) {\n        var localFrom = isMoment(from) ? from : createLocal(from),\n            localTo = isMoment(to) ? to : createLocal(to);\n        if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n            return false;\n        }\n        inclusivity = inclusivity || '()';\n        return (\n            (inclusivity[0] === '('\n                ? this.isAfter(localFrom, units)\n                : !this.isBefore(localFrom, units)) &&\n            (inclusivity[1] === ')'\n                ? this.isBefore(localTo, units)\n                : !this.isAfter(localTo, units))\n        );\n    }\n\n    function isSame(input, units) {\n        var localInput = isMoment(input) ? input : createLocal(input),\n            inputMs;\n        if (!(this.isValid() && localInput.isValid())) {\n            return false;\n        }\n        units = normalizeUnits(units) || 'millisecond';\n        if (units === 'millisecond') {\n            return this.valueOf() === localInput.valueOf();\n        } else {\n            inputMs = localInput.valueOf();\n            return (\n                this.clone().startOf(units).valueOf() <= inputMs &&\n                inputMs <= this.clone().endOf(units).valueOf()\n            );\n        }\n    }\n\n    function isSameOrAfter(input, units) {\n        return this.isSame(input, units) || this.isAfter(input, units);\n    }\n\n    function isSameOrBefore(input, units) {\n        return this.isSame(input, units) || this.isBefore(input, units);\n    }\n\n    function diff(input, units, asFloat) {\n        var that, zoneDelta, output;\n\n        if (!this.isValid()) {\n            return NaN;\n        }\n\n        that = cloneWithOffset(input, this);\n\n        if (!that.isValid()) {\n            return NaN;\n        }\n\n        zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n        units = normalizeUnits(units);\n\n        switch (units) {\n            case 'year':\n                output = monthDiff(this, that) / 12;\n                break;\n            case 'month':\n                output = monthDiff(this, that);\n                break;\n            case 'quarter':\n                output = monthDiff(this, that) / 3;\n                break;\n            case 'second':\n                output = (this - that) / 1e3;\n                break; // 1000\n            case 'minute':\n                output = (this - that) / 6e4;\n                break; // 1000 * 60\n            case 'hour':\n                output = (this - that) / 36e5;\n                break; // 1000 * 60 * 60\n            case 'day':\n                output = (this - that - zoneDelta) / 864e5;\n                break; // 1000 * 60 * 60 * 24, negate dst\n            case 'week':\n                output = (this - that - zoneDelta) / 6048e5;\n                break; // 1000 * 60 * 60 * 24 * 7, negate dst\n            default:\n                output = this - that;\n        }\n\n        return asFloat ? output : absFloor(output);\n    }\n\n    function monthDiff(a, b) {\n        if (a.date() < b.date()) {\n            // end-of-month calculations work correct when the start month has more\n            // days than the end month.\n            return -monthDiff(b, a);\n        }\n        // difference in months\n        var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n            // b is in (anchor - 1 month, anchor + 1 month)\n            anchor = a.clone().add(wholeMonthDiff, 'months'),\n            anchor2,\n            adjust;\n\n        if (b - anchor < 0) {\n            anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n            // linear across the month\n            adjust = (b - anchor) / (anchor - anchor2);\n        } else {\n            anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n            // linear across the month\n            adjust = (b - anchor) / (anchor2 - anchor);\n        }\n\n        //check for negative zero, return zero if negative zero\n        return -(wholeMonthDiff + adjust) || 0;\n    }\n\n    hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n    hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n    function toString() {\n        return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n    }\n\n    function toISOString(keepOffset) {\n        if (!this.isValid()) {\n            return null;\n        }\n        var utc = keepOffset !== true,\n            m = utc ? this.clone().utc() : this;\n        if (m.year() < 0 || m.year() > 9999) {\n            return formatMoment(\n                m,\n                utc\n                    ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n                    : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n            );\n        }\n        if (isFunction(Date.prototype.toISOString)) {\n            // native implementation is ~50x faster, use it when we can\n            if (utc) {\n                return this.toDate().toISOString();\n            } else {\n                return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n                    .toISOString()\n                    .replace('Z', formatMoment(m, 'Z'));\n            }\n        }\n        return formatMoment(\n            m,\n            utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n        );\n    }\n\n    /**\n     * Return a human readable representation of a moment that can\n     * also be evaluated to get a new moment which is the same\n     *\n     * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n     */\n    function inspect() {\n        if (!this.isValid()) {\n            return 'moment.invalid(/* ' + this._i + ' */)';\n        }\n        var func = 'moment',\n            zone = '',\n            prefix,\n            year,\n            datetime,\n            suffix;\n        if (!this.isLocal()) {\n            func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n            zone = 'Z';\n        }\n        prefix = '[' + func + '(\"]';\n        year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n        datetime = '-MM-DD[T]HH:mm:ss.SSS';\n        suffix = zone + '[\")]';\n\n        return this.format(prefix + year + datetime + suffix);\n    }\n\n    function format(inputString) {\n        if (!inputString) {\n            inputString = this.isUtc()\n                ? hooks.defaultFormatUtc\n                : hooks.defaultFormat;\n        }\n        var output = formatMoment(this, inputString);\n        return this.localeData().postformat(output);\n    }\n\n    function from(time, withoutSuffix) {\n        if (\n            this.isValid() &&\n            ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n        ) {\n            return createDuration({ to: this, from: time })\n                .locale(this.locale())\n                .humanize(!withoutSuffix);\n        } else {\n            return this.localeData().invalidDate();\n        }\n    }\n\n    function fromNow(withoutSuffix) {\n        return this.from(createLocal(), withoutSuffix);\n    }\n\n    function to(time, withoutSuffix) {\n        if (\n            this.isValid() &&\n            ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n        ) {\n            return createDuration({ from: this, to: time })\n                .locale(this.locale())\n                .humanize(!withoutSuffix);\n        } else {\n            return this.localeData().invalidDate();\n        }\n    }\n\n    function toNow(withoutSuffix) {\n        return this.to(createLocal(), withoutSuffix);\n    }\n\n    // If passed a locale key, it will set the locale for this\n    // instance.  Otherwise, it will return the locale configuration\n    // variables for this instance.\n    function locale(key) {\n        var newLocaleData;\n\n        if (key === undefined) {\n            return this._locale._abbr;\n        } else {\n            newLocaleData = getLocale(key);\n            if (newLocaleData != null) {\n                this._locale = newLocaleData;\n            }\n            return this;\n        }\n    }\n\n    var lang = deprecate(\n        'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n        function (key) {\n            if (key === undefined) {\n                return this.localeData();\n            } else {\n                return this.locale(key);\n            }\n        }\n    );\n\n    function localeData() {\n        return this._locale;\n    }\n\n    var MS_PER_SECOND = 1000,\n        MS_PER_MINUTE = 60 * MS_PER_SECOND,\n        MS_PER_HOUR = 60 * MS_PER_MINUTE,\n        MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n    // actual modulo - handles negative numbers (for dates before 1970):\n    function mod$1(dividend, divisor) {\n        return ((dividend % divisor) + divisor) % divisor;\n    }\n\n    function localStartOfDate(y, m, d) {\n        // the date constructor remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            // preserve leap years using a full 400 year cycle, then reset\n            return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n        } else {\n            return new Date(y, m, d).valueOf();\n        }\n    }\n\n    function utcStartOfDate(y, m, d) {\n        // Date.UTC remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            // preserve leap years using a full 400 year cycle, then reset\n            return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n        } else {\n            return Date.UTC(y, m, d);\n        }\n    }\n\n    function startOf(units) {\n        var time, startOfDate;\n        units = normalizeUnits(units);\n        if (units === undefined || units === 'millisecond' || !this.isValid()) {\n            return this;\n        }\n\n        startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n        switch (units) {\n            case 'year':\n                time = startOfDate(this.year(), 0, 1);\n                break;\n            case 'quarter':\n                time = startOfDate(\n                    this.year(),\n                    this.month() - (this.month() % 3),\n                    1\n                );\n                break;\n            case 'month':\n                time = startOfDate(this.year(), this.month(), 1);\n                break;\n            case 'week':\n                time = startOfDate(\n                    this.year(),\n                    this.month(),\n                    this.date() - this.weekday()\n                );\n                break;\n            case 'isoWeek':\n                time = startOfDate(\n                    this.year(),\n                    this.month(),\n                    this.date() - (this.isoWeekday() - 1)\n                );\n                break;\n            case 'day':\n            case 'date':\n                time = startOfDate(this.year(), this.month(), this.date());\n                break;\n            case 'hour':\n                time = this._d.valueOf();\n                time -= mod$1(\n                    time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n                    MS_PER_HOUR\n                );\n                break;\n            case 'minute':\n                time = this._d.valueOf();\n                time -= mod$1(time, MS_PER_MINUTE);\n                break;\n            case 'second':\n                time = this._d.valueOf();\n                time -= mod$1(time, MS_PER_SECOND);\n                break;\n        }\n\n        this._d.setTime(time);\n        hooks.updateOffset(this, true);\n        return this;\n    }\n\n    function endOf(units) {\n        var time, startOfDate;\n        units = normalizeUnits(units);\n        if (units === undefined || units === 'millisecond' || !this.isValid()) {\n            return this;\n        }\n\n        startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n        switch (units) {\n            case 'year':\n                time = startOfDate(this.year() + 1, 0, 1) - 1;\n                break;\n            case 'quarter':\n                time =\n                    startOfDate(\n                        this.year(),\n                        this.month() - (this.month() % 3) + 3,\n                        1\n                    ) - 1;\n                break;\n            case 'month':\n                time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n                break;\n            case 'week':\n                time =\n                    startOfDate(\n                        this.year(),\n                        this.month(),\n                        this.date() - this.weekday() + 7\n                    ) - 1;\n                break;\n            case 'isoWeek':\n                time =\n                    startOfDate(\n                        this.year(),\n                        this.month(),\n                        this.date() - (this.isoWeekday() - 1) + 7\n                    ) - 1;\n                break;\n            case 'day':\n            case 'date':\n                time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n                break;\n            case 'hour':\n                time = this._d.valueOf();\n                time +=\n                    MS_PER_HOUR -\n                    mod$1(\n                        time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n                        MS_PER_HOUR\n                    ) -\n                    1;\n                break;\n            case 'minute':\n                time = this._d.valueOf();\n                time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n                break;\n            case 'second':\n                time = this._d.valueOf();\n                time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n                break;\n        }\n\n        this._d.setTime(time);\n        hooks.updateOffset(this, true);\n        return this;\n    }\n\n    function valueOf() {\n        return this._d.valueOf() - (this._offset || 0) * 60000;\n    }\n\n    function unix() {\n        return Math.floor(this.valueOf() / 1000);\n    }\n\n    function toDate() {\n        return new Date(this.valueOf());\n    }\n\n    function toArray() {\n        var m = this;\n        return [\n            m.year(),\n            m.month(),\n            m.date(),\n            m.hour(),\n            m.minute(),\n            m.second(),\n            m.millisecond(),\n        ];\n    }\n\n    function toObject() {\n        var m = this;\n        return {\n            years: m.year(),\n            months: m.month(),\n            date: m.date(),\n            hours: m.hours(),\n            minutes: m.minutes(),\n            seconds: m.seconds(),\n            milliseconds: m.milliseconds(),\n        };\n    }\n\n    function toJSON() {\n        // new Date(NaN).toJSON() === null\n        return this.isValid() ? this.toISOString() : null;\n    }\n\n    function isValid$2() {\n        return isValid(this);\n    }\n\n    function parsingFlags() {\n        return extend({}, getParsingFlags(this));\n    }\n\n    function invalidAt() {\n        return getParsingFlags(this).overflow;\n    }\n\n    function creationData() {\n        return {\n            input: this._i,\n            format: this._f,\n            locale: this._locale,\n            isUTC: this._isUTC,\n            strict: this._strict,\n        };\n    }\n\n    addFormatToken('N', 0, 0, 'eraAbbr');\n    addFormatToken('NN', 0, 0, 'eraAbbr');\n    addFormatToken('NNN', 0, 0, 'eraAbbr');\n    addFormatToken('NNNN', 0, 0, 'eraName');\n    addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n    addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n    addFormatToken('y', ['yy', 2], 0, 'eraYear');\n    addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n    addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n    addRegexToken('N', matchEraAbbr);\n    addRegexToken('NN', matchEraAbbr);\n    addRegexToken('NNN', matchEraAbbr);\n    addRegexToken('NNNN', matchEraName);\n    addRegexToken('NNNNN', matchEraNarrow);\n\n    addParseToken(\n        ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n        function (input, array, config, token) {\n            var era = config._locale.erasParse(input, token, config._strict);\n            if (era) {\n                getParsingFlags(config).era = era;\n            } else {\n                getParsingFlags(config).invalidEra = input;\n            }\n        }\n    );\n\n    addRegexToken('y', matchUnsigned);\n    addRegexToken('yy', matchUnsigned);\n    addRegexToken('yyy', matchUnsigned);\n    addRegexToken('yyyy', matchUnsigned);\n    addRegexToken('yo', matchEraYearOrdinal);\n\n    addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n    addParseToken(['yo'], function (input, array, config, token) {\n        var match;\n        if (config._locale._eraYearOrdinalRegex) {\n            match = input.match(config._locale._eraYearOrdinalRegex);\n        }\n\n        if (config._locale.eraYearOrdinalParse) {\n            array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n        } else {\n            array[YEAR] = parseInt(input, 10);\n        }\n    });\n\n    function localeEras(m, format) {\n        var i,\n            l,\n            date,\n            eras = this._eras || getLocale('en')._eras;\n        for (i = 0, l = eras.length; i < l; ++i) {\n            switch (typeof eras[i].since) {\n                case 'string':\n                    // truncate time\n                    date = hooks(eras[i].since).startOf('day');\n                    eras[i].since = date.valueOf();\n                    break;\n            }\n\n            switch (typeof eras[i].until) {\n                case 'undefined':\n                    eras[i].until = +Infinity;\n                    break;\n                case 'string':\n                    // truncate time\n                    date = hooks(eras[i].until).startOf('day').valueOf();\n                    eras[i].until = date.valueOf();\n                    break;\n            }\n        }\n        return eras;\n    }\n\n    function localeErasParse(eraName, format, strict) {\n        var i,\n            l,\n            eras = this.eras(),\n            name,\n            abbr,\n            narrow;\n        eraName = eraName.toUpperCase();\n\n        for (i = 0, l = eras.length; i < l; ++i) {\n            name = eras[i].name.toUpperCase();\n            abbr = eras[i].abbr.toUpperCase();\n            narrow = eras[i].narrow.toUpperCase();\n\n            if (strict) {\n                switch (format) {\n                    case 'N':\n                    case 'NN':\n                    case 'NNN':\n                        if (abbr === eraName) {\n                            return eras[i];\n                        }\n                        break;\n\n                    case 'NNNN':\n                        if (name === eraName) {\n                            return eras[i];\n                        }\n                        break;\n\n                    case 'NNNNN':\n                        if (narrow === eraName) {\n                            return eras[i];\n                        }\n                        break;\n                }\n            } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n                return eras[i];\n            }\n        }\n    }\n\n    function localeErasConvertYear(era, year) {\n        var dir = era.since <= era.until ? +1 : -1;\n        if (year === undefined) {\n            return hooks(era.since).year();\n        } else {\n            return hooks(era.since).year() + (year - era.offset) * dir;\n        }\n    }\n\n    function getEraName() {\n        var i,\n            l,\n            val,\n            eras = this.localeData().eras();\n        for (i = 0, l = eras.length; i < l; ++i) {\n            // truncate time\n            val = this.clone().startOf('day').valueOf();\n\n            if (eras[i].since <= val && val <= eras[i].until) {\n                return eras[i].name;\n            }\n            if (eras[i].until <= val && val <= eras[i].since) {\n                return eras[i].name;\n            }\n        }\n\n        return '';\n    }\n\n    function getEraNarrow() {\n        var i,\n            l,\n            val,\n            eras = this.localeData().eras();\n        for (i = 0, l = eras.length; i < l; ++i) {\n            // truncate time\n            val = this.clone().startOf('day').valueOf();\n\n            if (eras[i].since <= val && val <= eras[i].until) {\n                return eras[i].narrow;\n            }\n            if (eras[i].until <= val && val <= eras[i].since) {\n                return eras[i].narrow;\n            }\n        }\n\n        return '';\n    }\n\n    function getEraAbbr() {\n        var i,\n            l,\n            val,\n            eras = this.localeData().eras();\n        for (i = 0, l = eras.length; i < l; ++i) {\n            // truncate time\n            val = this.clone().startOf('day').valueOf();\n\n            if (eras[i].since <= val && val <= eras[i].until) {\n                return eras[i].abbr;\n            }\n            if (eras[i].until <= val && val <= eras[i].since) {\n                return eras[i].abbr;\n            }\n        }\n\n        return '';\n    }\n\n    function getEraYear() {\n        var i,\n            l,\n            dir,\n            val,\n            eras = this.localeData().eras();\n        for (i = 0, l = eras.length; i < l; ++i) {\n            dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n            // truncate time\n            val = this.clone().startOf('day').valueOf();\n\n            if (\n                (eras[i].since <= val && val <= eras[i].until) ||\n                (eras[i].until <= val && val <= eras[i].since)\n            ) {\n                return (\n                    (this.year() - hooks(eras[i].since).year()) * dir +\n                    eras[i].offset\n                );\n            }\n        }\n\n        return this.year();\n    }\n\n    function erasNameRegex(isStrict) {\n        if (!hasOwnProp(this, '_erasNameRegex')) {\n            computeErasParse.call(this);\n        }\n        return isStrict ? this._erasNameRegex : this._erasRegex;\n    }\n\n    function erasAbbrRegex(isStrict) {\n        if (!hasOwnProp(this, '_erasAbbrRegex')) {\n            computeErasParse.call(this);\n        }\n        return isStrict ? this._erasAbbrRegex : this._erasRegex;\n    }\n\n    function erasNarrowRegex(isStrict) {\n        if (!hasOwnProp(this, '_erasNarrowRegex')) {\n            computeErasParse.call(this);\n        }\n        return isStrict ? this._erasNarrowRegex : this._erasRegex;\n    }\n\n    function matchEraAbbr(isStrict, locale) {\n        return locale.erasAbbrRegex(isStrict);\n    }\n\n    function matchEraName(isStrict, locale) {\n        return locale.erasNameRegex(isStrict);\n    }\n\n    function matchEraNarrow(isStrict, locale) {\n        return locale.erasNarrowRegex(isStrict);\n    }\n\n    function matchEraYearOrdinal(isStrict, locale) {\n        return locale._eraYearOrdinalRegex || matchUnsigned;\n    }\n\n    function computeErasParse() {\n        var abbrPieces = [],\n            namePieces = [],\n            narrowPieces = [],\n            mixedPieces = [],\n            i,\n            l,\n            erasName,\n            erasAbbr,\n            erasNarrow,\n            eras = this.eras();\n\n        for (i = 0, l = eras.length; i < l; ++i) {\n            erasName = regexEscape(eras[i].name);\n            erasAbbr = regexEscape(eras[i].abbr);\n            erasNarrow = regexEscape(eras[i].narrow);\n\n            namePieces.push(erasName);\n            abbrPieces.push(erasAbbr);\n            narrowPieces.push(erasNarrow);\n            mixedPieces.push(erasName);\n            mixedPieces.push(erasAbbr);\n            mixedPieces.push(erasNarrow);\n        }\n\n        this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n        this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n        this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n        this._erasNarrowRegex = new RegExp(\n            '^(' + narrowPieces.join('|') + ')',\n            'i'\n        );\n    }\n\n    // FORMATTING\n\n    addFormatToken(0, ['gg', 2], 0, function () {\n        return this.weekYear() % 100;\n    });\n\n    addFormatToken(0, ['GG', 2], 0, function () {\n        return this.isoWeekYear() % 100;\n    });\n\n    function addWeekYearFormatToken(token, getter) {\n        addFormatToken(0, [token, token.length], 0, getter);\n    }\n\n    addWeekYearFormatToken('gggg', 'weekYear');\n    addWeekYearFormatToken('ggggg', 'weekYear');\n    addWeekYearFormatToken('GGGG', 'isoWeekYear');\n    addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n    // ALIASES\n\n    // PARSING\n\n    addRegexToken('G', matchSigned);\n    addRegexToken('g', matchSigned);\n    addRegexToken('GG', match1to2, match2);\n    addRegexToken('gg', match1to2, match2);\n    addRegexToken('GGGG', match1to4, match4);\n    addRegexToken('gggg', match1to4, match4);\n    addRegexToken('GGGGG', match1to6, match6);\n    addRegexToken('ggggg', match1to6, match6);\n\n    addWeekParseToken(\n        ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n        function (input, week, config, token) {\n            week[token.substr(0, 2)] = toInt(input);\n        }\n    );\n\n    addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n        week[token] = hooks.parseTwoDigitYear(input);\n    });\n\n    // MOMENTS\n\n    function getSetWeekYear(input) {\n        return getSetWeekYearHelper.call(\n            this,\n            input,\n            this.week(),\n            this.weekday() + this.localeData()._week.dow,\n            this.localeData()._week.dow,\n            this.localeData()._week.doy\n        );\n    }\n\n    function getSetISOWeekYear(input) {\n        return getSetWeekYearHelper.call(\n            this,\n            input,\n            this.isoWeek(),\n            this.isoWeekday(),\n            1,\n            4\n        );\n    }\n\n    function getISOWeeksInYear() {\n        return weeksInYear(this.year(), 1, 4);\n    }\n\n    function getISOWeeksInISOWeekYear() {\n        return weeksInYear(this.isoWeekYear(), 1, 4);\n    }\n\n    function getWeeksInYear() {\n        var weekInfo = this.localeData()._week;\n        return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n    }\n\n    function getWeeksInWeekYear() {\n        var weekInfo = this.localeData()._week;\n        return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n    }\n\n    function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n        var weeksTarget;\n        if (input == null) {\n            return weekOfYear(this, dow, doy).year;\n        } else {\n            weeksTarget = weeksInYear(input, dow, doy);\n            if (week > weeksTarget) {\n                week = weeksTarget;\n            }\n            return setWeekAll.call(this, input, week, weekday, dow, doy);\n        }\n    }\n\n    function setWeekAll(weekYear, week, weekday, dow, doy) {\n        var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n            date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n        this.year(date.getUTCFullYear());\n        this.month(date.getUTCMonth());\n        this.date(date.getUTCDate());\n        return this;\n    }\n\n    // FORMATTING\n\n    addFormatToken('Q', 0, 'Qo', 'quarter');\n\n    // PARSING\n\n    addRegexToken('Q', match1);\n    addParseToken('Q', function (input, array) {\n        array[MONTH] = (toInt(input) - 1) * 3;\n    });\n\n    // MOMENTS\n\n    function getSetQuarter(input) {\n        return input == null\n            ? Math.ceil((this.month() + 1) / 3)\n            : this.month((input - 1) * 3 + (this.month() % 3));\n    }\n\n    // FORMATTING\n\n    addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n    // PARSING\n\n    addRegexToken('D', match1to2, match1to2NoLeadingZero);\n    addRegexToken('DD', match1to2, match2);\n    addRegexToken('Do', function (isStrict, locale) {\n        // TODO: Remove \"ordinalParse\" fallback in next major release.\n        return isStrict\n            ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n            : locale._dayOfMonthOrdinalParseLenient;\n    });\n\n    addParseToken(['D', 'DD'], DATE);\n    addParseToken('Do', function (input, array) {\n        array[DATE] = toInt(input.match(match1to2)[0]);\n    });\n\n    // MOMENTS\n\n    var getSetDayOfMonth = makeGetSet('Date', true);\n\n    // FORMATTING\n\n    addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n    // PARSING\n\n    addRegexToken('DDD', match1to3);\n    addRegexToken('DDDD', match3);\n    addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n        config._dayOfYear = toInt(input);\n    });\n\n    // HELPERS\n\n    // MOMENTS\n\n    function getSetDayOfYear(input) {\n        var dayOfYear =\n            Math.round(\n                (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n            ) + 1;\n        return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n    }\n\n    // FORMATTING\n\n    addFormatToken('m', ['mm', 2], 0, 'minute');\n\n    // PARSING\n\n    addRegexToken('m', match1to2, match1to2HasZero);\n    addRegexToken('mm', match1to2, match2);\n    addParseToken(['m', 'mm'], MINUTE);\n\n    // MOMENTS\n\n    var getSetMinute = makeGetSet('Minutes', false);\n\n    // FORMATTING\n\n    addFormatToken('s', ['ss', 2], 0, 'second');\n\n    // PARSING\n\n    addRegexToken('s', match1to2, match1to2HasZero);\n    addRegexToken('ss', match1to2, match2);\n    addParseToken(['s', 'ss'], SECOND);\n\n    // MOMENTS\n\n    var getSetSecond = makeGetSet('Seconds', false);\n\n    // FORMATTING\n\n    addFormatToken('S', 0, 0, function () {\n        return ~~(this.millisecond() / 100);\n    });\n\n    addFormatToken(0, ['SS', 2], 0, function () {\n        return ~~(this.millisecond() / 10);\n    });\n\n    addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n    addFormatToken(0, ['SSSS', 4], 0, function () {\n        return this.millisecond() * 10;\n    });\n    addFormatToken(0, ['SSSSS', 5], 0, function () {\n        return this.millisecond() * 100;\n    });\n    addFormatToken(0, ['SSSSSS', 6], 0, function () {\n        return this.millisecond() * 1000;\n    });\n    addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n        return this.millisecond() * 10000;\n    });\n    addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n        return this.millisecond() * 100000;\n    });\n    addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n        return this.millisecond() * 1000000;\n    });\n\n    // PARSING\n\n    addRegexToken('S', match1to3, match1);\n    addRegexToken('SS', match1to3, match2);\n    addRegexToken('SSS', match1to3, match3);\n\n    var token, getSetMillisecond;\n    for (token = 'SSSS'; token.length <= 9; token += 'S') {\n        addRegexToken(token, matchUnsigned);\n    }\n\n    function parseMs(input, array) {\n        array[MILLISECOND] = toInt(('0.' + input) * 1000);\n    }\n\n    for (token = 'S'; token.length <= 9; token += 'S') {\n        addParseToken(token, parseMs);\n    }\n\n    getSetMillisecond = makeGetSet('Milliseconds', false);\n\n    // FORMATTING\n\n    addFormatToken('z', 0, 0, 'zoneAbbr');\n    addFormatToken('zz', 0, 0, 'zoneName');\n\n    // MOMENTS\n\n    function getZoneAbbr() {\n        return this._isUTC ? 'UTC' : '';\n    }\n\n    function getZoneName() {\n        return this._isUTC ? 'Coordinated Universal Time' : '';\n    }\n\n    var proto = Moment.prototype;\n\n    proto.add = add;\n    proto.calendar = calendar$1;\n    proto.clone = clone;\n    proto.diff = diff;\n    proto.endOf = endOf;\n    proto.format = format;\n    proto.from = from;\n    proto.fromNow = fromNow;\n    proto.to = to;\n    proto.toNow = toNow;\n    proto.get = stringGet;\n    proto.invalidAt = invalidAt;\n    proto.isAfter = isAfter;\n    proto.isBefore = isBefore;\n    proto.isBetween = isBetween;\n    proto.isSame = isSame;\n    proto.isSameOrAfter = isSameOrAfter;\n    proto.isSameOrBefore = isSameOrBefore;\n    proto.isValid = isValid$2;\n    proto.lang = lang;\n    proto.locale = locale;\n    proto.localeData = localeData;\n    proto.max = prototypeMax;\n    proto.min = prototypeMin;\n    proto.parsingFlags = parsingFlags;\n    proto.set = stringSet;\n    proto.startOf = startOf;\n    proto.subtract = subtract;\n    proto.toArray = toArray;\n    proto.toObject = toObject;\n    proto.toDate = toDate;\n    proto.toISOString = toISOString;\n    proto.inspect = inspect;\n    if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n        proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n            return 'Moment<' + this.format() + '>';\n        };\n    }\n    proto.toJSON = toJSON;\n    proto.toString = toString;\n    proto.unix = unix;\n    proto.valueOf = valueOf;\n    proto.creationData = creationData;\n    proto.eraName = getEraName;\n    proto.eraNarrow = getEraNarrow;\n    proto.eraAbbr = getEraAbbr;\n    proto.eraYear = getEraYear;\n    proto.year = getSetYear;\n    proto.isLeapYear = getIsLeapYear;\n    proto.weekYear = getSetWeekYear;\n    proto.isoWeekYear = getSetISOWeekYear;\n    proto.quarter = proto.quarters = getSetQuarter;\n    proto.month = getSetMonth;\n    proto.daysInMonth = getDaysInMonth;\n    proto.week = proto.weeks = getSetWeek;\n    proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n    proto.weeksInYear = getWeeksInYear;\n    proto.weeksInWeekYear = getWeeksInWeekYear;\n    proto.isoWeeksInYear = getISOWeeksInYear;\n    proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n    proto.date = getSetDayOfMonth;\n    proto.day = proto.days = getSetDayOfWeek;\n    proto.weekday = getSetLocaleDayOfWeek;\n    proto.isoWeekday = getSetISODayOfWeek;\n    proto.dayOfYear = getSetDayOfYear;\n    proto.hour = proto.hours = getSetHour;\n    proto.minute = proto.minutes = getSetMinute;\n    proto.second = proto.seconds = getSetSecond;\n    proto.millisecond = proto.milliseconds = getSetMillisecond;\n    proto.utcOffset = getSetOffset;\n    proto.utc = setOffsetToUTC;\n    proto.local = setOffsetToLocal;\n    proto.parseZone = setOffsetToParsedOffset;\n    proto.hasAlignedHourOffset = hasAlignedHourOffset;\n    proto.isDST = isDaylightSavingTime;\n    proto.isLocal = isLocal;\n    proto.isUtcOffset = isUtcOffset;\n    proto.isUtc = isUtc;\n    proto.isUTC = isUtc;\n    proto.zoneAbbr = getZoneAbbr;\n    proto.zoneName = getZoneName;\n    proto.dates = deprecate(\n        'dates accessor is deprecated. Use date instead.',\n        getSetDayOfMonth\n    );\n    proto.months = deprecate(\n        'months accessor is deprecated. Use month instead',\n        getSetMonth\n    );\n    proto.years = deprecate(\n        'years accessor is deprecated. Use year instead',\n        getSetYear\n    );\n    proto.zone = deprecate(\n        'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n        getSetZone\n    );\n    proto.isDSTShifted = deprecate(\n        'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n        isDaylightSavingTimeShifted\n    );\n\n    function createUnix(input) {\n        return createLocal(input * 1000);\n    }\n\n    function createInZone() {\n        return createLocal.apply(null, arguments).parseZone();\n    }\n\n    function preParsePostFormat(string) {\n        return string;\n    }\n\n    var proto$1 = Locale.prototype;\n\n    proto$1.calendar = calendar;\n    proto$1.longDateFormat = longDateFormat;\n    proto$1.invalidDate = invalidDate;\n    proto$1.ordinal = ordinal;\n    proto$1.preparse = preParsePostFormat;\n    proto$1.postformat = preParsePostFormat;\n    proto$1.relativeTime = relativeTime;\n    proto$1.pastFuture = pastFuture;\n    proto$1.set = set;\n    proto$1.eras = localeEras;\n    proto$1.erasParse = localeErasParse;\n    proto$1.erasConvertYear = localeErasConvertYear;\n    proto$1.erasAbbrRegex = erasAbbrRegex;\n    proto$1.erasNameRegex = erasNameRegex;\n    proto$1.erasNarrowRegex = erasNarrowRegex;\n\n    proto$1.months = localeMonths;\n    proto$1.monthsShort = localeMonthsShort;\n    proto$1.monthsParse = localeMonthsParse;\n    proto$1.monthsRegex = monthsRegex;\n    proto$1.monthsShortRegex = monthsShortRegex;\n    proto$1.week = localeWeek;\n    proto$1.firstDayOfYear = localeFirstDayOfYear;\n    proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n    proto$1.weekdays = localeWeekdays;\n    proto$1.weekdaysMin = localeWeekdaysMin;\n    proto$1.weekdaysShort = localeWeekdaysShort;\n    proto$1.weekdaysParse = localeWeekdaysParse;\n\n    proto$1.weekdaysRegex = weekdaysRegex;\n    proto$1.weekdaysShortRegex = weekdaysShortRegex;\n    proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n    proto$1.isPM = localeIsPM;\n    proto$1.meridiem = localeMeridiem;\n\n    function get$1(format, index, field, setter) {\n        var locale = getLocale(),\n            utc = createUTC().set(setter, index);\n        return locale[field](utc, format);\n    }\n\n    function listMonthsImpl(format, index, field) {\n        if (isNumber(format)) {\n            index = format;\n            format = undefined;\n        }\n\n        format = format || '';\n\n        if (index != null) {\n            return get$1(format, index, field, 'month');\n        }\n\n        var i,\n            out = [];\n        for (i = 0; i < 12; i++) {\n            out[i] = get$1(format, i, field, 'month');\n        }\n        return out;\n    }\n\n    // ()\n    // (5)\n    // (fmt, 5)\n    // (fmt)\n    // (true)\n    // (true, 5)\n    // (true, fmt, 5)\n    // (true, fmt)\n    function listWeekdaysImpl(localeSorted, format, index, field) {\n        if (typeof localeSorted === 'boolean') {\n            if (isNumber(format)) {\n                index = format;\n                format = undefined;\n            }\n\n            format = format || '';\n        } else {\n            format = localeSorted;\n            index = format;\n            localeSorted = false;\n\n            if (isNumber(format)) {\n                index = format;\n                format = undefined;\n            }\n\n            format = format || '';\n        }\n\n        var locale = getLocale(),\n            shift = localeSorted ? locale._week.dow : 0,\n            i,\n            out = [];\n\n        if (index != null) {\n            return get$1(format, (index + shift) % 7, field, 'day');\n        }\n\n        for (i = 0; i < 7; i++) {\n            out[i] = get$1(format, (i + shift) % 7, field, 'day');\n        }\n        return out;\n    }\n\n    function listMonths(format, index) {\n        return listMonthsImpl(format, index, 'months');\n    }\n\n    function listMonthsShort(format, index) {\n        return listMonthsImpl(format, index, 'monthsShort');\n    }\n\n    function listWeekdays(localeSorted, format, index) {\n        return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n    }\n\n    function listWeekdaysShort(localeSorted, format, index) {\n        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n    }\n\n    function listWeekdaysMin(localeSorted, format, index) {\n        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n    }\n\n    getSetGlobalLocale('en', {\n        eras: [\n            {\n                since: '0001-01-01',\n                until: +Infinity,\n                offset: 1,\n                name: 'Anno Domini',\n                narrow: 'AD',\n                abbr: 'AD',\n            },\n            {\n                since: '0000-12-31',\n                until: -Infinity,\n                offset: 1,\n                name: 'Before Christ',\n                narrow: 'BC',\n                abbr: 'BC',\n            },\n        ],\n        dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    toInt((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                          ? 'st'\n                          : b === 2\n                            ? 'nd'\n                            : b === 3\n                              ? 'rd'\n                              : 'th';\n            return number + output;\n        },\n    });\n\n    // Side effect imports\n\n    hooks.lang = deprecate(\n        'moment.lang is deprecated. Use moment.locale instead.',\n        getSetGlobalLocale\n    );\n    hooks.langData = deprecate(\n        'moment.langData is deprecated. Use moment.localeData instead.',\n        getLocale\n    );\n\n    var mathAbs = Math.abs;\n\n    function abs() {\n        var data = this._data;\n\n        this._milliseconds = mathAbs(this._milliseconds);\n        this._days = mathAbs(this._days);\n        this._months = mathAbs(this._months);\n\n        data.milliseconds = mathAbs(data.milliseconds);\n        data.seconds = mathAbs(data.seconds);\n        data.minutes = mathAbs(data.minutes);\n        data.hours = mathAbs(data.hours);\n        data.months = mathAbs(data.months);\n        data.years = mathAbs(data.years);\n\n        return this;\n    }\n\n    function addSubtract$1(duration, input, value, direction) {\n        var other = createDuration(input, value);\n\n        duration._milliseconds += direction * other._milliseconds;\n        duration._days += direction * other._days;\n        duration._months += direction * other._months;\n\n        return duration._bubble();\n    }\n\n    // supports only 2.0-style add(1, 's') or add(duration)\n    function add$1(input, value) {\n        return addSubtract$1(this, input, value, 1);\n    }\n\n    // supports only 2.0-style subtract(1, 's') or subtract(duration)\n    function subtract$1(input, value) {\n        return addSubtract$1(this, input, value, -1);\n    }\n\n    function absCeil(number) {\n        if (number < 0) {\n            return Math.floor(number);\n        } else {\n            return Math.ceil(number);\n        }\n    }\n\n    function bubble() {\n        var milliseconds = this._milliseconds,\n            days = this._days,\n            months = this._months,\n            data = this._data,\n            seconds,\n            minutes,\n            hours,\n            years,\n            monthsFromDays;\n\n        // if we have a mix of positive and negative values, bubble down first\n        // check: https://github.com/moment/moment/issues/2166\n        if (\n            !(\n                (milliseconds >= 0 && days >= 0 && months >= 0) ||\n                (milliseconds <= 0 && days <= 0 && months <= 0)\n            )\n        ) {\n            milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n            days = 0;\n            months = 0;\n        }\n\n        // The following code bubbles up values, see the tests for\n        // examples of what that means.\n        data.milliseconds = milliseconds % 1000;\n\n        seconds = absFloor(milliseconds / 1000);\n        data.seconds = seconds % 60;\n\n        minutes = absFloor(seconds / 60);\n        data.minutes = minutes % 60;\n\n        hours = absFloor(minutes / 60);\n        data.hours = hours % 24;\n\n        days += absFloor(hours / 24);\n\n        // convert days to months\n        monthsFromDays = absFloor(daysToMonths(days));\n        months += monthsFromDays;\n        days -= absCeil(monthsToDays(monthsFromDays));\n\n        // 12 months -> 1 year\n        years = absFloor(months / 12);\n        months %= 12;\n\n        data.days = days;\n        data.months = months;\n        data.years = years;\n\n        return this;\n    }\n\n    function daysToMonths(days) {\n        // 400 years have 146097 days (taking into account leap year rules)\n        // 400 years have 12 months === 4800\n        return (days * 4800) / 146097;\n    }\n\n    function monthsToDays(months) {\n        // the reverse of daysToMonths\n        return (months * 146097) / 4800;\n    }\n\n    function as(units) {\n        if (!this.isValid()) {\n            return NaN;\n        }\n        var days,\n            months,\n            milliseconds = this._milliseconds;\n\n        units = normalizeUnits(units);\n\n        if (units === 'month' || units === 'quarter' || units === 'year') {\n            days = this._days + milliseconds / 864e5;\n            months = this._months + daysToMonths(days);\n            switch (units) {\n                case 'month':\n                    return months;\n                case 'quarter':\n                    return months / 3;\n                case 'year':\n                    return months / 12;\n            }\n        } else {\n            // handle milliseconds separately because of floating point math errors (issue #1867)\n            days = this._days + Math.round(monthsToDays(this._months));\n            switch (units) {\n                case 'week':\n                    return days / 7 + milliseconds / 6048e5;\n                case 'day':\n                    return days + milliseconds / 864e5;\n                case 'hour':\n                    return days * 24 + milliseconds / 36e5;\n                case 'minute':\n                    return days * 1440 + milliseconds / 6e4;\n                case 'second':\n                    return days * 86400 + milliseconds / 1000;\n                // Math.floor prevents floating point math errors here\n                case 'millisecond':\n                    return Math.floor(days * 864e5) + milliseconds;\n                default:\n                    throw new Error('Unknown unit ' + units);\n            }\n        }\n    }\n\n    function makeAs(alias) {\n        return function () {\n            return this.as(alias);\n        };\n    }\n\n    var asMilliseconds = makeAs('ms'),\n        asSeconds = makeAs('s'),\n        asMinutes = makeAs('m'),\n        asHours = makeAs('h'),\n        asDays = makeAs('d'),\n        asWeeks = makeAs('w'),\n        asMonths = makeAs('M'),\n        asQuarters = makeAs('Q'),\n        asYears = makeAs('y'),\n        valueOf$1 = asMilliseconds;\n\n    function clone$1() {\n        return createDuration(this);\n    }\n\n    function get$2(units) {\n        units = normalizeUnits(units);\n        return this.isValid() ? this[units + 's']() : NaN;\n    }\n\n    function makeGetter(name) {\n        return function () {\n            return this.isValid() ? this._data[name] : NaN;\n        };\n    }\n\n    var milliseconds = makeGetter('milliseconds'),\n        seconds = makeGetter('seconds'),\n        minutes = makeGetter('minutes'),\n        hours = makeGetter('hours'),\n        days = makeGetter('days'),\n        months = makeGetter('months'),\n        years = makeGetter('years');\n\n    function weeks() {\n        return absFloor(this.days() / 7);\n    }\n\n    var round = Math.round,\n        thresholds = {\n            ss: 44, // a few seconds to seconds\n            s: 45, // seconds to minute\n            m: 45, // minutes to hour\n            h: 22, // hours to day\n            d: 26, // days to month/week\n            w: null, // weeks to month\n            M: 11, // months to year\n        };\n\n    // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n    function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n        return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n    }\n\n    function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n        var duration = createDuration(posNegDuration).abs(),\n            seconds = round(duration.as('s')),\n            minutes = round(duration.as('m')),\n            hours = round(duration.as('h')),\n            days = round(duration.as('d')),\n            months = round(duration.as('M')),\n            weeks = round(duration.as('w')),\n            years = round(duration.as('y')),\n            a =\n                (seconds <= thresholds.ss && ['s', seconds]) ||\n                (seconds < thresholds.s && ['ss', seconds]) ||\n                (minutes <= 1 && ['m']) ||\n                (minutes < thresholds.m && ['mm', minutes]) ||\n                (hours <= 1 && ['h']) ||\n                (hours < thresholds.h && ['hh', hours]) ||\n                (days <= 1 && ['d']) ||\n                (days < thresholds.d && ['dd', days]);\n\n        if (thresholds.w != null) {\n            a =\n                a ||\n                (weeks <= 1 && ['w']) ||\n                (weeks < thresholds.w && ['ww', weeks]);\n        }\n        a = a ||\n            (months <= 1 && ['M']) ||\n            (months < thresholds.M && ['MM', months]) ||\n            (years <= 1 && ['y']) || ['yy', years];\n\n        a[2] = withoutSuffix;\n        a[3] = +posNegDuration > 0;\n        a[4] = locale;\n        return substituteTimeAgo.apply(null, a);\n    }\n\n    // This function allows you to set the rounding function for relative time strings\n    function getSetRelativeTimeRounding(roundingFunction) {\n        if (roundingFunction === undefined) {\n            return round;\n        }\n        if (typeof roundingFunction === 'function') {\n            round = roundingFunction;\n            return true;\n        }\n        return false;\n    }\n\n    // This function allows you to set a threshold for relative time strings\n    function getSetRelativeTimeThreshold(threshold, limit) {\n        if (thresholds[threshold] === undefined) {\n            return false;\n        }\n        if (limit === undefined) {\n            return thresholds[threshold];\n        }\n        thresholds[threshold] = limit;\n        if (threshold === 's') {\n            thresholds.ss = limit - 1;\n        }\n        return true;\n    }\n\n    function humanize(argWithSuffix, argThresholds) {\n        if (!this.isValid()) {\n            return this.localeData().invalidDate();\n        }\n\n        var withSuffix = false,\n            th = thresholds,\n            locale,\n            output;\n\n        if (typeof argWithSuffix === 'object') {\n            argThresholds = argWithSuffix;\n            argWithSuffix = false;\n        }\n        if (typeof argWithSuffix === 'boolean') {\n            withSuffix = argWithSuffix;\n        }\n        if (typeof argThresholds === 'object') {\n            th = Object.assign({}, thresholds, argThresholds);\n            if (argThresholds.s != null && argThresholds.ss == null) {\n                th.ss = argThresholds.s - 1;\n            }\n        }\n\n        locale = this.localeData();\n        output = relativeTime$1(this, !withSuffix, th, locale);\n\n        if (withSuffix) {\n            output = locale.pastFuture(+this, output);\n        }\n\n        return locale.postformat(output);\n    }\n\n    var abs$1 = Math.abs;\n\n    function sign(x) {\n        return (x > 0) - (x < 0) || +x;\n    }\n\n    function toISOString$1() {\n        // for ISO strings we do not use the normal bubbling rules:\n        //  * milliseconds bubble up until they become hours\n        //  * days do not bubble at all\n        //  * months bubble up until they become years\n        // This is because there is no context-free conversion between hours and days\n        // (think of clock changes)\n        // and also not between days and months (28-31 days per month)\n        if (!this.isValid()) {\n            return this.localeData().invalidDate();\n        }\n\n        var seconds = abs$1(this._milliseconds) / 1000,\n            days = abs$1(this._days),\n            months = abs$1(this._months),\n            minutes,\n            hours,\n            years,\n            s,\n            total = this.asSeconds(),\n            totalSign,\n            ymSign,\n            daysSign,\n            hmsSign;\n\n        if (!total) {\n            // this is the same as C#'s (Noda) and python (isodate)...\n            // but not other JS (goog.date)\n            return 'P0D';\n        }\n\n        // 3600 seconds -> 60 minutes -> 1 hour\n        minutes = absFloor(seconds / 60);\n        hours = absFloor(minutes / 60);\n        seconds %= 60;\n        minutes %= 60;\n\n        // 12 months -> 1 year\n        years = absFloor(months / 12);\n        months %= 12;\n\n        // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n        s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n        totalSign = total < 0 ? '-' : '';\n        ymSign = sign(this._months) !== sign(total) ? '-' : '';\n        daysSign = sign(this._days) !== sign(total) ? '-' : '';\n        hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n        return (\n            totalSign +\n            'P' +\n            (years ? ymSign + years + 'Y' : '') +\n            (months ? ymSign + months + 'M' : '') +\n            (days ? daysSign + days + 'D' : '') +\n            (hours || minutes || seconds ? 'T' : '') +\n            (hours ? hmsSign + hours + 'H' : '') +\n            (minutes ? hmsSign + minutes + 'M' : '') +\n            (seconds ? hmsSign + s + 'S' : '')\n        );\n    }\n\n    var proto$2 = Duration.prototype;\n\n    proto$2.isValid = isValid$1;\n    proto$2.abs = abs;\n    proto$2.add = add$1;\n    proto$2.subtract = subtract$1;\n    proto$2.as = as;\n    proto$2.asMilliseconds = asMilliseconds;\n    proto$2.asSeconds = asSeconds;\n    proto$2.asMinutes = asMinutes;\n    proto$2.asHours = asHours;\n    proto$2.asDays = asDays;\n    proto$2.asWeeks = asWeeks;\n    proto$2.asMonths = asMonths;\n    proto$2.asQuarters = asQuarters;\n    proto$2.asYears = asYears;\n    proto$2.valueOf = valueOf$1;\n    proto$2._bubble = bubble;\n    proto$2.clone = clone$1;\n    proto$2.get = get$2;\n    proto$2.milliseconds = milliseconds;\n    proto$2.seconds = seconds;\n    proto$2.minutes = minutes;\n    proto$2.hours = hours;\n    proto$2.days = days;\n    proto$2.weeks = weeks;\n    proto$2.months = months;\n    proto$2.years = years;\n    proto$2.humanize = humanize;\n    proto$2.toISOString = toISOString$1;\n    proto$2.toString = toISOString$1;\n    proto$2.toJSON = toISOString$1;\n    proto$2.locale = locale;\n    proto$2.localeData = localeData;\n\n    proto$2.toIsoString = deprecate(\n        'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n        toISOString$1\n    );\n    proto$2.lang = lang;\n\n    // FORMATTING\n\n    addFormatToken('X', 0, 0, 'unix');\n    addFormatToken('x', 0, 0, 'valueOf');\n\n    // PARSING\n\n    addRegexToken('x', matchSigned);\n    addRegexToken('X', matchTimestamp);\n    addParseToken('X', function (input, array, config) {\n        config._d = new Date(parseFloat(input) * 1000);\n    });\n    addParseToken('x', function (input, array, config) {\n        config._d = new Date(toInt(input));\n    });\n\n    //! moment.js\n\n    hooks.version = '2.30.1';\n\n    setHookCallback(createLocal);\n\n    hooks.fn = proto;\n    hooks.min = min;\n    hooks.max = max;\n    hooks.now = now;\n    hooks.utc = createUTC;\n    hooks.unix = createUnix;\n    hooks.months = listMonths;\n    hooks.isDate = isDate;\n    hooks.locale = getSetGlobalLocale;\n    hooks.invalid = createInvalid;\n    hooks.duration = createDuration;\n    hooks.isMoment = isMoment;\n    hooks.weekdays = listWeekdays;\n    hooks.parseZone = createInZone;\n    hooks.localeData = getLocale;\n    hooks.isDuration = isDuration;\n    hooks.monthsShort = listMonthsShort;\n    hooks.weekdaysMin = listWeekdaysMin;\n    hooks.defineLocale = defineLocale;\n    hooks.updateLocale = updateLocale;\n    hooks.locales = listLocales;\n    hooks.weekdaysShort = listWeekdaysShort;\n    hooks.normalizeUnits = normalizeUnits;\n    hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n    hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n    hooks.calendarFormat = getCalendarFormat;\n    hooks.prototype = proto;\n\n    // currently HTML5 input type only supports 24-hour formats\n    hooks.HTML5_FMT = {\n        DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n        DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n        DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n        DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n        TIME: 'HH:mm', // <input type=\"time\" />\n        TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n        TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n        WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n        MONTH: 'YYYY-MM', // <input type=\"month\" />\n    };\n\n    return hooks;\n\n})));\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack:///./node_modules/moment/moment.js?");

/***/ }),

/***/ "./node_modules/node-libs-browser/mock/process.js":
/*!********************************************************!*\
  !*** ./node_modules/node-libs-browser/mock/process.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("exports.nextTick = function nextTick(fn) {\n    var args = Array.prototype.slice.call(arguments);\n    args.shift();\n    setTimeout(function () {\n        fn.apply(null, args);\n    }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n    var cwd = '/';\n    var path;\n    exports.cwd = function () { return cwd };\n    exports.chdir = function (dir) {\n        if (!path) path = __webpack_require__(/*! path */ \"./node_modules/path-browserify/index.js\");\n        cwd = path.resolve(dir, cwd);\n    };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n\n\n//# sourceURL=webpack:///./node_modules/node-libs-browser/mock/process.js?");

/***/ }),

/***/ "./node_modules/node-libs-browser/node_modules/buffer/index.js":
/*!*********************************************************************!*\
  !*** ./node_modules/node-libs-browser/node_modules/buffer/index.js ***!
  \*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <http://feross.org>\n * @license  MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\")\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\")\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/node-libs-browser/node_modules/isarray/index.js\")\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n *     incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n  ? global.TYPED_ARRAY_SUPPORT\n  : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n  try {\n    var arr = new Uint8Array(1)\n    arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n    return arr.foo() === 42 && // typed array instances can be augmented\n        typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n        arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n  } catch (e) {\n    return false\n  }\n}\n\nfunction kMaxLength () {\n  return Buffer.TYPED_ARRAY_SUPPORT\n    ? 0x7fffffff\n    : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n  if (kMaxLength() < length) {\n    throw new RangeError('Invalid typed array length')\n  }\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = new Uint8Array(length)\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    if (that === null) {\n      that = new Buffer(length)\n    }\n    that.length = length\n  }\n\n  return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n    return new Buffer(arg, encodingOrOffset, length)\n  }\n\n  // Common case.\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new Error(\n        'If encoding is specified then the first argument must be a string'\n      )\n    }\n    return allocUnsafe(this, arg)\n  }\n  return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n  arr.__proto__ = Buffer.prototype\n  return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n  if (typeof value === 'number') {\n    throw new TypeError('\"value\" argument must not be a number')\n  }\n\n  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n    return fromArrayBuffer(that, value, encodingOrOffset, length)\n  }\n\n  if (typeof value === 'string') {\n    return fromString(that, value, encodingOrOffset)\n  }\n\n  return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n  return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n  Buffer.prototype.__proto__ = Uint8Array.prototype\n  Buffer.__proto__ = Uint8Array\n  if (typeof Symbol !== 'undefined' && Symbol.species &&\n      Buffer[Symbol.species] === Buffer) {\n    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n    Object.defineProperty(Buffer, Symbol.species, {\n      value: null,\n      configurable: true\n    })\n  }\n}\n\nfunction assertSize (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be a number')\n  } else if (size < 0) {\n    throw new RangeError('\"size\" argument must not be negative')\n  }\n}\n\nfunction alloc (that, size, fill, encoding) {\n  assertSize(size)\n  if (size <= 0) {\n    return createBuffer(that, size)\n  }\n  if (fill !== undefined) {\n    // Only pay attention to encoding if it's a string. This\n    // prevents accidentally sending in a number that would\n    // be interpretted as a start offset.\n    return typeof encoding === 'string'\n      ? createBuffer(that, size).fill(fill, encoding)\n      : createBuffer(that, size).fill(fill)\n  }\n  return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n  return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n  assertSize(size)\n  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) {\n    for (var i = 0; i < size; ++i) {\n      that[i] = 0\n    }\n  }\n  return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n  return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n  return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8'\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('\"encoding\" must be a valid string encoding')\n  }\n\n  var length = byteLength(string, encoding) | 0\n  that = createBuffer(that, length)\n\n  var actual = that.write(string, encoding)\n\n  if (actual !== length) {\n    // Writing a hex string, for example, that contains invalid characters will\n    // cause everything after the first invalid character to be ignored. (e.g.\n    // 'abxxcd' will be treated as 'ab')\n    that = that.slice(0, actual)\n  }\n\n  return that\n}\n\nfunction fromArrayLike (that, array) {\n  var length = array.length < 0 ? 0 : checked(array.length) | 0\n  that = createBuffer(that, length)\n  for (var i = 0; i < length; i += 1) {\n    that[i] = array[i] & 255\n  }\n  return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n  array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\\'offset\\' is out of bounds')\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\\'length\\' is out of bounds')\n  }\n\n  if (byteOffset === undefined && length === undefined) {\n    array = new Uint8Array(array)\n  } else if (length === undefined) {\n    array = new Uint8Array(array, byteOffset)\n  } else {\n    array = new Uint8Array(array, byteOffset, length)\n  }\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = array\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    that = fromArrayLike(that, array)\n  }\n  return that\n}\n\nfunction fromObject (that, obj) {\n  if (Buffer.isBuffer(obj)) {\n    var len = checked(obj.length) | 0\n    that = createBuffer(that, len)\n\n    if (that.length === 0) {\n      return that\n    }\n\n    obj.copy(that, 0, 0, len)\n    return that\n  }\n\n  if (obj) {\n    if ((typeof ArrayBuffer !== 'undefined' &&\n        obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n      if (typeof obj.length !== 'number' || isnan(obj.length)) {\n        return createBuffer(that, 0)\n      }\n      return fromArrayLike(that, obj)\n    }\n\n    if (obj.type === 'Buffer' && isArray(obj.data)) {\n      return fromArrayLike(that, obj.data)\n    }\n  }\n\n  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n  // Note: cannot use `length < kMaxLength()` here because that fails when\n  // length is NaN (which is otherwise coerced to zero.)\n  if (length >= kMaxLength()) {\n    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n                         'size: 0x' + kMaxLength().toString(16) + ' bytes')\n  }\n  return length | 0\n}\n\nfunction SlowBuffer (length) {\n  if (+length != length) { // eslint-disable-line eqeqeq\n    length = 0\n  }\n  return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n  return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError('Arguments must be Buffers')\n  }\n\n  if (a === b) return 0\n\n  var x = a.length\n  var y = b.length\n\n  for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i]\n      y = b[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'latin1':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return true\n    default:\n      return false\n  }\n}\n\nBuffer.concat = function concat (list, length) {\n  if (!isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers')\n  }\n\n  if (list.length === 0) {\n    return Buffer.alloc(0)\n  }\n\n  var i\n  if (length === undefined) {\n    length = 0\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length\n    }\n  }\n\n  var buffer = Buffer.allocUnsafe(length)\n  var pos = 0\n  for (i = 0; i < list.length; ++i) {\n    var buf = list[i]\n    if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers')\n    }\n    buf.copy(buffer, pos)\n    pos += buf.length\n  }\n  return buffer\n}\n\nfunction byteLength (string, encoding) {\n  if (Buffer.isBuffer(string)) {\n    return string.length\n  }\n  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n      (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n    return string.byteLength\n  }\n  if (typeof string !== 'string') {\n    string = '' + string\n  }\n\n  var len = string.length\n  if (len === 0) return 0\n\n  // Use a for loop to avoid recursion\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return len\n      case 'utf8':\n      case 'utf-8':\n      case undefined:\n        return utf8ToBytes(string).length\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return len * 2\n      case 'hex':\n        return len >>> 1\n      case 'base64':\n        return base64ToBytes(string).length\n      default:\n        if (loweredCase) return utf8ToBytes(string).length // assume utf8\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n  var loweredCase = false\n\n  // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n  // property of a typed array.\n\n  // This behaves neither like String nor Uint8Array in that we set start/end\n  // to their upper/lower bounds if the value passed is out of range.\n  // undefined is handled specially as per ECMA-262 6th Edition,\n  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n  if (start === undefined || start < 0) {\n    start = 0\n  }\n  // Return early if start > this.length. Done here to prevent potential uint32\n  // coercion fail below.\n  if (start > this.length) {\n    return ''\n  }\n\n  if (end === undefined || end > this.length) {\n    end = this.length\n  }\n\n  if (end <= 0) {\n    return ''\n  }\n\n  // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n  end >>>= 0\n  start >>>= 0\n\n  if (end <= start) {\n    return ''\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  while (true) {\n    switch (encoding) {\n      case 'hex':\n        return hexSlice(this, start, end)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Slice(this, start, end)\n\n      case 'ascii':\n        return asciiSlice(this, start, end)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Slice(this, start, end)\n\n      case 'base64':\n        return base64Slice(this, start, end)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return utf16leSlice(this, start, end)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = (encoding + '').toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n  var i = b[n]\n  b[n] = b[m]\n  b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n  var len = this.length\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits')\n  }\n  for (var i = 0; i < len; i += 2) {\n    swap(this, i, i + 1)\n  }\n  return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n  var len = this.length\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits')\n  }\n  for (var i = 0; i < len; i += 4) {\n    swap(this, i, i + 3)\n    swap(this, i + 1, i + 2)\n  }\n  return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n  var len = this.length\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits')\n  }\n  for (var i = 0; i < len; i += 8) {\n    swap(this, i, i + 7)\n    swap(this, i + 1, i + 6)\n    swap(this, i + 2, i + 5)\n    swap(this, i + 3, i + 4)\n  }\n  return this\n}\n\nBuffer.prototype.toString = function toString () {\n  var length = this.length | 0\n  if (length === 0) return ''\n  if (arguments.length === 0) return utf8Slice(this, 0, length)\n  return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n  if (this === b) return true\n  return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n  var str = ''\n  var max = exports.INSPECT_MAX_BYTES\n  if (this.length > 0) {\n    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n    if (this.length > max) str += ' ... '\n  }\n  return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError('Argument must be a Buffer')\n  }\n\n  if (start === undefined) {\n    start = 0\n  }\n  if (end === undefined) {\n    end = target ? target.length : 0\n  }\n  if (thisStart === undefined) {\n    thisStart = 0\n  }\n  if (thisEnd === undefined) {\n    thisEnd = this.length\n  }\n\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError('out of range index')\n  }\n\n  if (thisStart >= thisEnd && start >= end) {\n    return 0\n  }\n  if (thisStart >= thisEnd) {\n    return -1\n  }\n  if (start >= end) {\n    return 1\n  }\n\n  start >>>= 0\n  end >>>= 0\n  thisStart >>>= 0\n  thisEnd >>>= 0\n\n  if (this === target) return 0\n\n  var x = thisEnd - thisStart\n  var y = end - start\n  var len = Math.min(x, y)\n\n  var thisCopy = this.slice(thisStart, thisEnd)\n  var targetCopy = target.slice(start, end)\n\n  for (var i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i]\n      y = targetCopy[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n  // Empty buffer means no match\n  if (buffer.length === 0) return -1\n\n  // Normalize byteOffset\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset\n    byteOffset = 0\n  } else if (byteOffset > 0x7fffffff) {\n    byteOffset = 0x7fffffff\n  } else if (byteOffset < -0x80000000) {\n    byteOffset = -0x80000000\n  }\n  byteOffset = +byteOffset  // Coerce to Number.\n  if (isNaN(byteOffset)) {\n    // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n    byteOffset = dir ? 0 : (buffer.length - 1)\n  }\n\n  // Normalize byteOffset: negative offsets start from the end of the buffer\n  if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n  if (byteOffset >= buffer.length) {\n    if (dir) return -1\n    else byteOffset = buffer.length - 1\n  } else if (byteOffset < 0) {\n    if (dir) byteOffset = 0\n    else return -1\n  }\n\n  // Normalize val\n  if (typeof val === 'string') {\n    val = Buffer.from(val, encoding)\n  }\n\n  // Finally, search either indexOf (if dir is true) or lastIndexOf\n  if (Buffer.isBuffer(val)) {\n    // Special case: looking for empty string/buffer always fails\n    if (val.length === 0) {\n      return -1\n    }\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n  } else if (typeof val === 'number') {\n    val = val & 0xFF // Search for a byte value [0-255]\n    if (Buffer.TYPED_ARRAY_SUPPORT &&\n        typeof Uint8Array.prototype.indexOf === 'function') {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n      }\n    }\n    return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n  }\n\n  throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n  var indexSize = 1\n  var arrLength = arr.length\n  var valLength = val.length\n\n  if (encoding !== undefined) {\n    encoding = String(encoding).toLowerCase()\n    if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n        encoding === 'utf16le' || encoding === 'utf-16le') {\n      if (arr.length < 2 || val.length < 2) {\n        return -1\n      }\n      indexSize = 2\n      arrLength /= 2\n      valLength /= 2\n      byteOffset /= 2\n    }\n  }\n\n  function read (buf, i) {\n    if (indexSize === 1) {\n      return buf[i]\n    } else {\n      return buf.readUInt16BE(i * indexSize)\n    }\n  }\n\n  var i\n  if (dir) {\n    var foundIndex = -1\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1) foundIndex = i\n        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex\n        foundIndex = -1\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n    for (i = byteOffset; i >= 0; i--) {\n      var found = true\n      for (var j = 0; j < valLength; j++) {\n        if (read(arr, i + j) !== read(val, j)) {\n          found = false\n          break\n        }\n      }\n      if (found) return i\n    }\n  }\n\n  return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n  offset = Number(offset) || 0\n  var remaining = buf.length - offset\n  if (!length) {\n    length = remaining\n  } else {\n    length = Number(length)\n    if (length > remaining) {\n      length = remaining\n    }\n  }\n\n  // must be an even number of digits\n  var strLen = string.length\n  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n  if (length > strLen / 2) {\n    length = strLen / 2\n  }\n  for (var i = 0; i < length; ++i) {\n    var parsed = parseInt(string.substr(i * 2, 2), 16)\n    if (isNaN(parsed)) return i\n    buf[offset + i] = parsed\n  }\n  return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n  return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n  // Buffer#write(string)\n  if (offset === undefined) {\n    encoding = 'utf8'\n    length = this.length\n    offset = 0\n  // Buffer#write(string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset\n    length = this.length\n    offset = 0\n  // Buffer#write(string, offset[, length][, encoding])\n  } else if (isFinite(offset)) {\n    offset = offset | 0\n    if (isFinite(length)) {\n      length = length | 0\n      if (encoding === undefined) encoding = 'utf8'\n    } else {\n      encoding = length\n      length = undefined\n    }\n  // legacy write(string, encoding, offset, length) - remove in v0.13\n  } else {\n    throw new Error(\n      'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n    )\n  }\n\n  var remaining = this.length - offset\n  if (length === undefined || length > remaining) length = remaining\n\n  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n    throw new RangeError('Attempt to write outside buffer bounds')\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'hex':\n        return hexWrite(this, string, offset, length)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Write(this, string, offset, length)\n\n      case 'ascii':\n        return asciiWrite(this, string, offset, length)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Write(this, string, offset, length)\n\n      case 'base64':\n        // Warning: maxLength not taken into account in base64Write\n        return base64Write(this, string, offset, length)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return ucs2Write(this, string, offset, length)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n  return {\n    type: 'Buffer',\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  }\n}\n\nfunction base64Slice (buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return base64.fromByteArray(buf)\n  } else {\n    return base64.fromByteArray(buf.slice(start, end))\n  }\n}\n\nfunction utf8Slice (buf, start, end) {\n  end = Math.min(buf.length, end)\n  var res = []\n\n  var i = start\n  while (i < end) {\n    var firstByte = buf[i]\n    var codePoint = null\n    var bytesPerSequence = (firstByte > 0xEF) ? 4\n      : (firstByte > 0xDF) ? 3\n      : (firstByte > 0xBF) ? 2\n      : 1\n\n    if (i + bytesPerSequence <= end) {\n      var secondByte, thirdByte, fourthByte, tempCodePoint\n\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 0x80) {\n            codePoint = firstByte\n          }\n          break\n        case 2:\n          secondByte = buf[i + 1]\n          if ((secondByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n            if (tempCodePoint > 0x7F) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 3:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 4:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          fourthByte = buf[i + 3]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n              codePoint = tempCodePoint\n            }\n          }\n      }\n    }\n\n    if (codePoint === null) {\n      // we did not generate a valid codePoint so insert a\n      // replacement char (U+FFFD) and advance only 1 byte\n      codePoint = 0xFFFD\n      bytesPerSequence = 1\n    } else if (codePoint > 0xFFFF) {\n      // encode to utf16 (surrogate pair dance)\n      codePoint -= 0x10000\n      res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n      codePoint = 0xDC00 | codePoint & 0x3FF\n    }\n\n    res.push(codePoint)\n    i += bytesPerSequence\n  }\n\n  return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n  var len = codePoints.length\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n  }\n\n  // Decode in chunks to avoid \"call stack size exceeded\".\n  var res = ''\n  var i = 0\n  while (i < len) {\n    res += String.fromCharCode.apply(\n      String,\n      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n    )\n  }\n  return res\n}\n\nfunction asciiSlice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F)\n  }\n  return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i])\n  }\n  return ret\n}\n\nfunction hexSlice (buf, start, end) {\n  var len = buf.length\n\n  if (!start || start < 0) start = 0\n  if (!end || end < 0 || end > len) end = len\n\n  var out = ''\n  for (var i = start; i < end; ++i) {\n    out += toHex(buf[i])\n  }\n  return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n  var bytes = buf.slice(start, end)\n  var res = ''\n  for (var i = 0; i < bytes.length; i += 2) {\n    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n  }\n  return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n  var len = this.length\n  start = ~~start\n  end = end === undefined ? len : ~~end\n\n  if (start < 0) {\n    start += len\n    if (start < 0) start = 0\n  } else if (start > len) {\n    start = len\n  }\n\n  if (end < 0) {\n    end += len\n    if (end < 0) end = 0\n  } else if (end > len) {\n    end = len\n  }\n\n  if (end < start) end = start\n\n  var newBuf\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    newBuf = this.subarray(start, end)\n    newBuf.__proto__ = Buffer.prototype\n  } else {\n    var sliceLen = end - start\n    newBuf = new Buffer(sliceLen, undefined)\n    for (var i = 0; i < sliceLen; ++i) {\n      newBuf[i] = this[i + start]\n    }\n  }\n\n  return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    checkOffset(offset, byteLength, this.length)\n  }\n\n  var val = this[offset + --byteLength]\n  var mul = 1\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return ((this[offset]) |\n      (this[offset + 1] << 8) |\n      (this[offset + 2] << 16)) +\n      (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] * 0x1000000) +\n    ((this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var i = byteLength\n  var mul = 1\n  var val = this[offset + --i]\n  while (i > 0 && (mul *= 0x100)) {\n    val += this[offset + --i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  if (!(this[offset] & 0x80)) return (this[offset])\n  return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset] | (this[offset + 1] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset + 1] | (this[offset] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset]) |\n    (this[offset + 1] << 8) |\n    (this[offset + 2] << 16) |\n    (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] << 24) |\n    (this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n  if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n  if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var mul = 1\n  var i = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n    buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n      (littleEndian ? i : 1 - i) * 8\n  }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffffffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n    buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n  }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset + 3] = (value >>> 24)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 1] = (value >>> 8)\n    this[offset] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = 0\n  var mul = 1\n  var sub = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  var sub = 0\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  if (value < 0) value = 0xff + value + 1\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 3] = (value >>> 24)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (value < 0) value = 0xffffffff + value + 1\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n  if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 23, 4)\n  return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 52, 8)\n  return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n  if (!start) start = 0\n  if (!end && end !== 0) end = this.length\n  if (targetStart >= target.length) targetStart = target.length\n  if (!targetStart) targetStart = 0\n  if (end > 0 && end < start) end = start\n\n  // Copy 0 bytes; we're done\n  if (end === start) return 0\n  if (target.length === 0 || this.length === 0) return 0\n\n  // Fatal error conditions\n  if (targetStart < 0) {\n    throw new RangeError('targetStart out of bounds')\n  }\n  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n  if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n  // Are we oob?\n  if (end > this.length) end = this.length\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start\n  }\n\n  var len = end - start\n  var i\n\n  if (this === target && start < targetStart && targetStart < end) {\n    // descending copy from end\n    for (i = len - 1; i >= 0; --i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n    // ascending copy from start\n    for (i = 0; i < len; ++i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else {\n    Uint8Array.prototype.set.call(\n      target,\n      this.subarray(start, start + len),\n      targetStart\n    )\n  }\n\n  return len\n}\n\n// Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n  // Handle string cases:\n  if (typeof val === 'string') {\n    if (typeof start === 'string') {\n      encoding = start\n      start = 0\n      end = this.length\n    } else if (typeof end === 'string') {\n      encoding = end\n      end = this.length\n    }\n    if (val.length === 1) {\n      var code = val.charCodeAt(0)\n      if (code < 256) {\n        val = code\n      }\n    }\n    if (encoding !== undefined && typeof encoding !== 'string') {\n      throw new TypeError('encoding must be a string')\n    }\n    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n      throw new TypeError('Unknown encoding: ' + encoding)\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255\n  }\n\n  // Invalid ranges are not set to a default, so can range check early.\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError('Out of range index')\n  }\n\n  if (end <= start) {\n    return this\n  }\n\n  start = start >>> 0\n  end = end === undefined ? this.length : end >>> 0\n\n  if (!val) val = 0\n\n  var i\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val\n    }\n  } else {\n    var bytes = Buffer.isBuffer(val)\n      ? val\n      : utf8ToBytes(new Buffer(val, encoding).toString())\n    var len = bytes.length\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len]\n    }\n  }\n\n  return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n  // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n  str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n  // Node converts strings with length < 2 to ''\n  if (str.length < 2) return ''\n  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n  while (str.length % 4 !== 0) {\n    str = str + '='\n  }\n  return str\n}\n\nfunction stringtrim (str) {\n  if (str.trim) return str.trim()\n  return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n  if (n < 16) return '0' + n.toString(16)\n  return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n  units = units || Infinity\n  var codePoint\n  var length = string.length\n  var leadSurrogate = null\n  var bytes = []\n\n  for (var i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i)\n\n    // is surrogate component\n    if (codePoint > 0xD7FF && codePoint < 0xE000) {\n      // last char was a lead\n      if (!leadSurrogate) {\n        // no lead yet\n        if (codePoint > 0xDBFF) {\n          // unexpected trail\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        } else if (i + 1 === length) {\n          // unpaired lead\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        }\n\n        // valid lead\n        leadSurrogate = codePoint\n\n        continue\n      }\n\n      // 2 leads in a row\n      if (codePoint < 0xDC00) {\n        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n        leadSurrogate = codePoint\n        continue\n      }\n\n      // valid surrogate pair\n      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n    } else if (leadSurrogate) {\n      // valid bmp char, but last char was a lead\n      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n    }\n\n    leadSurrogate = null\n\n    // encode utf8\n    if (codePoint < 0x80) {\n      if ((units -= 1) < 0) break\n      bytes.push(codePoint)\n    } else if (codePoint < 0x800) {\n      if ((units -= 2) < 0) break\n      bytes.push(\n        codePoint >> 0x6 | 0xC0,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x10000) {\n      if ((units -= 3) < 0) break\n      bytes.push(\n        codePoint >> 0xC | 0xE0,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x110000) {\n      if ((units -= 4) < 0) break\n      bytes.push(\n        codePoint >> 0x12 | 0xF0,\n        codePoint >> 0xC & 0x3F | 0x80,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else {\n      throw new Error('Invalid code point')\n    }\n  }\n\n  return bytes\n}\n\nfunction asciiToBytes (str) {\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    // Node's code seems to be doing this and not & 0x7F..\n    byteArray.push(str.charCodeAt(i) & 0xFF)\n  }\n  return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n  var c, hi, lo\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0) break\n\n    c = str.charCodeAt(i)\n    hi = c >> 8\n    lo = c % 256\n    byteArray.push(lo)\n    byteArray.push(hi)\n  }\n\n  return byteArray\n}\n\nfunction base64ToBytes (str) {\n  return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n  for (var i = 0; i < length; ++i) {\n    if ((i + offset >= dst.length) || (i >= src.length)) break\n    dst[i + offset] = src[i]\n  }\n  return i\n}\n\nfunction isnan (val) {\n  return val !== val // eslint-disable-line no-self-compare\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js?");

/***/ }),

/***/ "./node_modules/node-libs-browser/node_modules/isarray/index.js":
/*!**********************************************************************!*\
  !*** ./node_modules/node-libs-browser/node_modules/isarray/index.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n\n//# sourceURL=webpack:///./node_modules/node-libs-browser/node_modules/isarray/index.js?");

/***/ }),

/***/ "./node_modules/normalize-wheel/index.js":
/*!***********************************************!*\
  !*** ./node_modules/normalize-wheel/index.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = __webpack_require__(/*! ./src/normalizeWheel.js */ \"./node_modules/normalize-wheel/src/normalizeWheel.js\");\n\n\n//# sourceURL=webpack:///./node_modules/normalize-wheel/index.js?");

/***/ }),

/***/ "./node_modules/normalize-wheel/src/ExecutionEnvironment.js":
/*!******************************************************************!*\
  !*** ./node_modules/normalize-wheel/src/ExecutionEnvironment.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ExecutionEnvironment\n */\n\n/*jslint evil: true */\n\n\n\nvar canUseDOM = !!(\n  typeof window !== 'undefined' &&\n  window.document &&\n  window.document.createElement\n);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n  canUseDOM: canUseDOM,\n\n  canUseWorkers: typeof Worker !== 'undefined',\n\n  canUseEventListeners:\n    canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n  canUseViewport: canUseDOM && !!window.screen,\n\n  isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n\n//# sourceURL=webpack:///./node_modules/normalize-wheel/src/ExecutionEnvironment.js?");

/***/ }),

/***/ "./node_modules/normalize-wheel/src/UserAgent_DEPRECATED.js":
/*!******************************************************************!*\
  !*** ./node_modules/normalize-wheel/src/UserAgent_DEPRECATED.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/**\n * Copyright 2004-present Facebook. All Rights Reserved.\n *\n * @providesModule UserAgent_DEPRECATED\n */\n\n/**\n *  Provides entirely client-side User Agent and OS detection. You should prefer\n *  the non-deprecated UserAgent module when possible, which exposes our\n *  authoritative server-side PHP-based detection to the client.\n *\n *  Usage is straightforward:\n *\n *    if (UserAgent_DEPRECATED.ie()) {\n *      //  IE\n *    }\n *\n *  You can also do version checks:\n *\n *    if (UserAgent_DEPRECATED.ie() >= 7) {\n *      //  IE7 or better\n *    }\n *\n *  The browser functions will return NaN if the browser does not match, so\n *  you can also do version compares the other way:\n *\n *    if (UserAgent_DEPRECATED.ie() < 7) {\n *      //  IE6 or worse\n *    }\n *\n *  Note that the version is a float and may include a minor version number,\n *  so you should always use range operators to perform comparisons, not\n *  strict equality.\n *\n *  **Note:** You should **strongly** prefer capability detection to browser\n *  version detection where it's reasonable:\n *\n *    http://www.quirksmode.org/js/support.html\n *\n *  Further, we have a large number of mature wrapper functions and classes\n *  which abstract away many browser irregularities. Check the documentation,\n *  grep for things, or ask on javascript@lists.facebook.com before writing yet\n *  another copy of \"event || window.event\".\n *\n */\n\nvar _populated = false;\n\n// Browsers\nvar _ie, _firefox, _opera, _webkit, _chrome;\n\n// Actual IE browser for compatibility mode\nvar _ie_real_version;\n\n// Platforms\nvar _osx, _windows, _linux, _android;\n\n// Architectures\nvar _win64;\n\n// Devices\nvar _iphone, _ipad, _native;\n\nvar _mobile;\n\nfunction _populate() {\n  if (_populated) {\n    return;\n  }\n\n  _populated = true;\n\n  // To work around buggy JS libraries that can't handle multi-digit\n  // version numbers, Opera 10's user agent string claims it's Opera\n  // 9, then later includes a Version/X.Y field:\n  //\n  // Opera/9.80 (foo) Presto/2.2.15 Version/10.10\n  var uas = navigator.userAgent;\n  var agent = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(uas);\n  var os    = /(Mac OS X)|(Windows)|(Linux)/.exec(uas);\n\n  _iphone = /\\b(iPhone|iP[ao]d)/.exec(uas);\n  _ipad = /\\b(iP[ao]d)/.exec(uas);\n  _android = /Android/i.exec(uas);\n  _native = /FBAN\\/\\w+;/i.exec(uas);\n  _mobile = /Mobile/i.exec(uas);\n\n  // Note that the IE team blog would have you believe you should be checking\n  // for 'Win64; x64'.  But MSDN then reveals that you can actually be coming\n  // from either x64 or ia64;  so ultimately, you should just check for Win64\n  // as in indicator of whether you're in 64-bit IE.  32-bit IE on 64-bit\n  // Windows will send 'WOW64' instead.\n  _win64 = !!(/Win64/.exec(uas));\n\n  if (agent) {\n    _ie = agent[1] ? parseFloat(agent[1]) : (\n          agent[5] ? parseFloat(agent[5]) : NaN);\n    // IE compatibility mode\n    if (_ie && document && document.documentMode) {\n      _ie = document.documentMode;\n    }\n    // grab the \"true\" ie version from the trident token if available\n    var trident = /(?:Trident\\/(\\d+.\\d+))/.exec(uas);\n    _ie_real_version = trident ? parseFloat(trident[1]) + 4 : _ie;\n\n    _firefox = agent[2] ? parseFloat(agent[2]) : NaN;\n    _opera   = agent[3] ? parseFloat(agent[3]) : NaN;\n    _webkit  = agent[4] ? parseFloat(agent[4]) : NaN;\n    if (_webkit) {\n      // We do not add the regexp to the above test, because it will always\n      // match 'safari' only since 'AppleWebKit' appears before 'Chrome' in\n      // the userAgent string.\n      agent = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(uas);\n      _chrome = agent && agent[1] ? parseFloat(agent[1]) : NaN;\n    } else {\n      _chrome = NaN;\n    }\n  } else {\n    _ie = _firefox = _opera = _chrome = _webkit = NaN;\n  }\n\n  if (os) {\n    if (os[1]) {\n      // Detect OS X version.  If no version number matches, set _osx to true.\n      // Version examples:  10, 10_6_1, 10.7\n      // Parses version number as a float, taking only first two sets of\n      // digits.  If only one set of digits is found, returns just the major\n      // version number.\n      var ver = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(uas);\n\n      _osx = ver ? parseFloat(ver[1].replace('_', '.')) : true;\n    } else {\n      _osx = false;\n    }\n    _windows = !!os[2];\n    _linux   = !!os[3];\n  } else {\n    _osx = _windows = _linux = false;\n  }\n}\n\nvar UserAgent_DEPRECATED = {\n\n  /**\n   *  Check if the UA is Internet Explorer.\n   *\n   *\n   *  @return float|NaN Version number (if match) or NaN.\n   */\n  ie: function() {\n    return _populate() || _ie;\n  },\n\n  /**\n   * Check if we're in Internet Explorer compatibility mode.\n   *\n   * @return bool true if in compatibility mode, false if\n   * not compatibility mode or not ie\n   */\n  ieCompatibilityMode: function() {\n    return _populate() || (_ie_real_version > _ie);\n  },\n\n\n  /**\n   * Whether the browser is 64-bit IE.  Really, this is kind of weak sauce;  we\n   * only need this because Skype can't handle 64-bit IE yet.  We need to remove\n   * this when we don't need it -- tracked by #601957.\n   */\n  ie64: function() {\n    return UserAgent_DEPRECATED.ie() && _win64;\n  },\n\n  /**\n   *  Check if the UA is Firefox.\n   *\n   *\n   *  @return float|NaN Version number (if match) or NaN.\n   */\n  firefox: function() {\n    return _populate() || _firefox;\n  },\n\n\n  /**\n   *  Check if the UA is Opera.\n   *\n   *\n   *  @return float|NaN Version number (if match) or NaN.\n   */\n  opera: function() {\n    return _populate() || _opera;\n  },\n\n\n  /**\n   *  Check if the UA is WebKit.\n   *\n   *\n   *  @return float|NaN Version number (if match) or NaN.\n   */\n  webkit: function() {\n    return _populate() || _webkit;\n  },\n\n  /**\n   *  For Push\n   *  WILL BE REMOVED VERY SOON. Use UserAgent_DEPRECATED.webkit\n   */\n  safari: function() {\n    return UserAgent_DEPRECATED.webkit();\n  },\n\n  /**\n   *  Check if the UA is a Chrome browser.\n   *\n   *\n   *  @return float|NaN Version number (if match) or NaN.\n   */\n  chrome : function() {\n    return _populate() || _chrome;\n  },\n\n\n  /**\n   *  Check if the user is running Windows.\n   *\n   *  @return bool `true' if the user's OS is Windows.\n   */\n  windows: function() {\n    return _populate() || _windows;\n  },\n\n\n  /**\n   *  Check if the user is running Mac OS X.\n   *\n   *  @return float|bool   Returns a float if a version number is detected,\n   *                       otherwise true/false.\n   */\n  osx: function() {\n    return _populate() || _osx;\n  },\n\n  /**\n   * Check if the user is running Linux.\n   *\n   * @return bool `true' if the user's OS is some flavor of Linux.\n   */\n  linux: function() {\n    return _populate() || _linux;\n  },\n\n  /**\n   * Check if the user is running on an iPhone or iPod platform.\n   *\n   * @return bool `true' if the user is running some flavor of the\n   *    iPhone OS.\n   */\n  iphone: function() {\n    return _populate() || _iphone;\n  },\n\n  mobile: function() {\n    return _populate() || (_iphone || _ipad || _android || _mobile);\n  },\n\n  nativeApp: function() {\n    // webviews inside of the native apps\n    return _populate() || _native;\n  },\n\n  android: function() {\n    return _populate() || _android;\n  },\n\n  ipad: function() {\n    return _populate() || _ipad;\n  }\n};\n\nmodule.exports = UserAgent_DEPRECATED;\n\n\n//# sourceURL=webpack:///./node_modules/normalize-wheel/src/UserAgent_DEPRECATED.js?");

/***/ }),

/***/ "./node_modules/normalize-wheel/src/isEventSupported.js":
/*!**************************************************************!*\
  !*** ./node_modules/normalize-wheel/src/isEventSupported.js ***!
  \**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(/*! ./ExecutionEnvironment */ \"./node_modules/normalize-wheel/src/ExecutionEnvironment.js\");\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n  useHasFeature =\n    document.implementation &&\n    document.implementation.hasFeature &&\n    // always returns true in newer browsers as per the standard.\n    // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n    document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n  if (!ExecutionEnvironment.canUseDOM ||\n      capture && !('addEventListener' in document)) {\n    return false;\n  }\n\n  var eventName = 'on' + eventNameSuffix;\n  var isSupported = eventName in document;\n\n  if (!isSupported) {\n    var element = document.createElement('div');\n    element.setAttribute(eventName, 'return;');\n    isSupported = typeof element[eventName] === 'function';\n  }\n\n  if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n    // This is the only way to test support for the `wheel` event in IE9+.\n    isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n  }\n\n  return isSupported;\n}\n\nmodule.exports = isEventSupported;\n\n\n//# sourceURL=webpack:///./node_modules/normalize-wheel/src/isEventSupported.js?");

/***/ }),

/***/ "./node_modules/normalize-wheel/src/normalizeWheel.js":
/*!************************************************************!*\
  !*** ./node_modules/normalize-wheel/src/normalizeWheel.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule normalizeWheel\n * @typechecks\n */\n\n\n\nvar UserAgent_DEPRECATED = __webpack_require__(/*! ./UserAgent_DEPRECATED */ \"./node_modules/normalize-wheel/src/UserAgent_DEPRECATED.js\");\n\nvar isEventSupported = __webpack_require__(/*! ./isEventSupported */ \"./node_modules/normalize-wheel/src/isEventSupported.js\");\n\n\n// Reasonable defaults\nvar PIXEL_STEP  = 10;\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\n\n/**\n * Mouse wheel (and 2-finger trackpad) support on the web sucks.  It is\n * complicated, thus this doc is long and (hopefully) detailed enough to answer\n * your questions.\n *\n * If you need to react to the mouse wheel in a predictable way, this code is\n * like your bestest friend. * hugs *\n *\n * As of today, there are 4 DOM event types you can listen to:\n *\n *   'wheel'                -- Chrome(31+), FF(17+), IE(9+)\n *   'mousewheel'           -- Chrome, IE(6+), Opera, Safari\n *   'MozMousePixelScroll'  -- FF(3.5 only!) (2010-2013) -- don't bother!\n *   'DOMMouseScroll'       -- FF(0.9.7+) since 2003\n *\n * So what to do?  The is the best:\n *\n *   normalizeWheel.getEventType();\n *\n * In your event callback, use this code to get sane interpretation of the\n * deltas.  This code will return an object with properties:\n *\n *   spinX   -- normalized spin speed (use for zoom) - x plane\n *   spinY   -- \" - y plane\n *   pixelX  -- normalized distance (to pixels) - x plane\n *   pixelY  -- \" - y plane\n *\n * Wheel values are provided by the browser assuming you are using the wheel to\n * scroll a web page by a number of lines or pixels (or pages).  Values can vary\n * significantly on different platforms and browsers, forgetting that you can\n * scroll at different speeds.  Some devices (like trackpads) emit more events\n * at smaller increments with fine granularity, and some emit massive jumps with\n * linear speed or acceleration.\n *\n * This code does its best to normalize the deltas for you:\n *\n *   - spin is trying to normalize how far the wheel was spun (or trackpad\n *     dragged).  This is super useful for zoom support where you want to\n *     throw away the chunky scroll steps on the PC and make those equal to\n *     the slow and smooth tiny steps on the Mac. Key data: This code tries to\n *     resolve a single slow step on a wheel to 1.\n *\n *   - pixel is normalizing the desired scroll delta in pixel units.  You'll\n *     get the crazy differences between browsers, but at least it'll be in\n *     pixels!\n *\n *   - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT.  This\n *     should translate to positive value zooming IN, negative zooming OUT.\n *     This matches the newer 'wheel' event.\n *\n * Why are there spinX, spinY (or pixels)?\n *\n *   - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\n *     with a mouse.  It results in side-scrolling in the browser by default.\n *\n *   - spinY is what you expect -- it's the classic axis of a mouse wheel.\n *\n *   - I dropped spinZ/pixelZ.  It is supported by the DOM 3 'wheel' event and\n *     probably is by browsers in conjunction with fancy 3D controllers .. but\n *     you know.\n *\n * Implementation info:\n *\n * Examples of 'wheel' event if you scroll slowly (down) by one step with an\n * average mouse:\n *\n *   OS X + Chrome  (mouse)     -    4   pixel delta  (wheelDelta -120)\n *   OS X + Safari  (mouse)     -  N/A   pixel delta  (wheelDelta  -12)\n *   OS X + Firefox (mouse)     -    0.1 line  delta  (wheelDelta  N/A)\n *   Win8 + Chrome  (mouse)     -  100   pixel delta  (wheelDelta -120)\n *   Win8 + Firefox (mouse)     -    3   line  delta  (wheelDelta -120)\n *\n * On the trackpad:\n *\n *   OS X + Chrome  (trackpad)  -    2   pixel delta  (wheelDelta   -6)\n *   OS X + Firefox (trackpad)  -    1   pixel delta  (wheelDelta  N/A)\n *\n * On other/older browsers.. it's more complicated as there can be multiple and\n * also missing delta values.\n *\n * The 'wheel' event is more standard:\n *\n * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\n *\n * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\n * deltaX, deltaY and deltaZ.  Some browsers provide other values to maintain\n * backward compatibility with older events.  Those other values help us\n * better normalize spin speed.  Example of what the browsers provide:\n *\n *                          | event.wheelDelta | event.detail\n *        ------------------+------------------+--------------\n *          Safari v5/OS X  |       -120       |       0\n *          Safari v5/Win7  |       -120       |       0\n *         Chrome v17/OS X  |       -120       |       0\n *         Chrome v17/Win7  |       -120       |       0\n *                IE9/Win7  |       -120       |   undefined\n *         Firefox v4/OS X  |     undefined    |       1\n *         Firefox v4/Win7  |     undefined    |       3\n *\n */\nfunction normalizeWheel(/*object*/ event) /*object*/ {\n  var sX = 0, sY = 0,       // spinX, spinY\n      pX = 0, pY = 0;       // pixelX, pixelY\n\n  // Legacy\n  if ('detail'      in event) { sY = event.detail; }\n  if ('wheelDelta'  in event) { sY = -event.wheelDelta / 120; }\n  if ('wheelDeltaY' in event) { sY = -event.wheelDeltaY / 120; }\n  if ('wheelDeltaX' in event) { sX = -event.wheelDeltaX / 120; }\n\n  // side scrolling on FF with DOMMouseScroll\n  if ( 'axis' in event && event.axis === event.HORIZONTAL_AXIS ) {\n    sX = sY;\n    sY = 0;\n  }\n\n  pX = sX * PIXEL_STEP;\n  pY = sY * PIXEL_STEP;\n\n  if ('deltaY' in event) { pY = event.deltaY; }\n  if ('deltaX' in event) { pX = event.deltaX; }\n\n  if ((pX || pY) && event.deltaMode) {\n    if (event.deltaMode == 1) {          // delta in LINE units\n      pX *= LINE_HEIGHT;\n      pY *= LINE_HEIGHT;\n    } else {                             // delta in PAGE units\n      pX *= PAGE_HEIGHT;\n      pY *= PAGE_HEIGHT;\n    }\n  }\n\n  // Fall-back if spin cannot be determined\n  if (pX && !sX) { sX = (pX < 1) ? -1 : 1; }\n  if (pY && !sY) { sY = (pY < 1) ? -1 : 1; }\n\n  return { spinX  : sX,\n           spinY  : sY,\n           pixelX : pX,\n           pixelY : pY };\n}\n\n\n/**\n * The best combination if you prefer spinX + spinY normalization.  It favors\n * the older DOMMouseScroll for Firefox, as FF does not include wheelDelta with\n * 'wheel' event, making spin speed determination impossible.\n */\nnormalizeWheel.getEventType = function() /*string*/ {\n  return (UserAgent_DEPRECATED.firefox())\n           ? 'DOMMouseScroll'\n           : (isEventSupported('wheel'))\n               ? 'wheel'\n               : 'mousewheel';\n};\n\nmodule.exports = normalizeWheel;\n\n\n//# sourceURL=webpack:///./node_modules/normalize-wheel/src/normalizeWheel.js?");

/***/ }),

/***/ "./node_modules/normalize.css/normalize.css":
/*!**************************************************!*\
  !*** ./node_modules/normalize.css/normalize.css ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../css-loader/dist/cjs.js??ref--6-oneOf-3-1!../postcss-loader/src??ref--6-oneOf-3-2!./normalize.css */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/normalize.css/normalize.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"50d5a310\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./node_modules/normalize.css/normalize.css?");

/***/ }),

/***/ "./node_modules/nprogress/nprogress.css":
/*!**********************************************!*\
  !*** ./node_modules/nprogress/nprogress.css ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../css-loader/dist/cjs.js??ref--6-oneOf-3-1!../postcss-loader/src??ref--6-oneOf-3-2!./nprogress.css */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/nprogress/nprogress.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2c969071\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./node_modules/nprogress/nprogress.css?");

/***/ }),

/***/ "./node_modules/nprogress/nprogress.js":
/*!*********************************************!*\
  !*** ./node_modules/nprogress/nprogress.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n  if (true) {\n    !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n  } else {}\n\n})(this, function() {\n  var NProgress = {};\n\n  NProgress.version = '0.2.0';\n\n  var Settings = NProgress.settings = {\n    minimum: 0.08,\n    easing: 'ease',\n    positionUsing: '',\n    speed: 200,\n    trickle: true,\n    trickleRate: 0.02,\n    trickleSpeed: 800,\n    showSpinner: true,\n    barSelector: '[role=\"bar\"]',\n    spinnerSelector: '[role=\"spinner\"]',\n    parent: 'body',\n    template: '<div class=\"bar\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>'\n  };\n\n  /**\n   * Updates configuration.\n   *\n   *     NProgress.configure({\n   *       minimum: 0.1\n   *     });\n   */\n  NProgress.configure = function(options) {\n    var key, value;\n    for (key in options) {\n      value = options[key];\n      if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n    }\n\n    return this;\n  };\n\n  /**\n   * Last number.\n   */\n\n  NProgress.status = null;\n\n  /**\n   * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n   *\n   *     NProgress.set(0.4);\n   *     NProgress.set(1.0);\n   */\n\n  NProgress.set = function(n) {\n    var started = NProgress.isStarted();\n\n    n = clamp(n, Settings.minimum, 1);\n    NProgress.status = (n === 1 ? null : n);\n\n    var progress = NProgress.render(!started),\n        bar      = progress.querySelector(Settings.barSelector),\n        speed    = Settings.speed,\n        ease     = Settings.easing;\n\n    progress.offsetWidth; /* Repaint */\n\n    queue(function(next) {\n      // Set positionUsing if it hasn't already been set\n      if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n      // Add transition\n      css(bar, barPositionCSS(n, speed, ease));\n\n      if (n === 1) {\n        // Fade out\n        css(progress, { \n          transition: 'none', \n          opacity: 1 \n        });\n        progress.offsetWidth; /* Repaint */\n\n        setTimeout(function() {\n          css(progress, { \n            transition: 'all ' + speed + 'ms linear', \n            opacity: 0 \n          });\n          setTimeout(function() {\n            NProgress.remove();\n            next();\n          }, speed);\n        }, speed);\n      } else {\n        setTimeout(next, speed);\n      }\n    });\n\n    return this;\n  };\n\n  NProgress.isStarted = function() {\n    return typeof NProgress.status === 'number';\n  };\n\n  /**\n   * Shows the progress bar.\n   * This is the same as setting the status to 0%, except that it doesn't go backwards.\n   *\n   *     NProgress.start();\n   *\n   */\n  NProgress.start = function() {\n    if (!NProgress.status) NProgress.set(0);\n\n    var work = function() {\n      setTimeout(function() {\n        if (!NProgress.status) return;\n        NProgress.trickle();\n        work();\n      }, Settings.trickleSpeed);\n    };\n\n    if (Settings.trickle) work();\n\n    return this;\n  };\n\n  /**\n   * Hides the progress bar.\n   * This is the *sort of* the same as setting the status to 100%, with the\n   * difference being `done()` makes some placebo effect of some realistic motion.\n   *\n   *     NProgress.done();\n   *\n   * If `true` is passed, it will show the progress bar even if its hidden.\n   *\n   *     NProgress.done(true);\n   */\n\n  NProgress.done = function(force) {\n    if (!force && !NProgress.status) return this;\n\n    return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n  };\n\n  /**\n   * Increments by a random amount.\n   */\n\n  NProgress.inc = function(amount) {\n    var n = NProgress.status;\n\n    if (!n) {\n      return NProgress.start();\n    } else {\n      if (typeof amount !== 'number') {\n        amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n      }\n\n      n = clamp(n + amount, 0, 0.994);\n      return NProgress.set(n);\n    }\n  };\n\n  NProgress.trickle = function() {\n    return NProgress.inc(Math.random() * Settings.trickleRate);\n  };\n\n  /**\n   * Waits for all supplied jQuery promises and\n   * increases the progress as the promises resolve.\n   *\n   * @param $promise jQUery Promise\n   */\n  (function() {\n    var initial = 0, current = 0;\n\n    NProgress.promise = function($promise) {\n      if (!$promise || $promise.state() === \"resolved\") {\n        return this;\n      }\n\n      if (current === 0) {\n        NProgress.start();\n      }\n\n      initial++;\n      current++;\n\n      $promise.always(function() {\n        current--;\n        if (current === 0) {\n            initial = 0;\n            NProgress.done();\n        } else {\n            NProgress.set((initial - current) / initial);\n        }\n      });\n\n      return this;\n    };\n\n  })();\n\n  /**\n   * (Internal) renders the progress bar markup based on the `template`\n   * setting.\n   */\n\n  NProgress.render = function(fromStart) {\n    if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n    addClass(document.documentElement, 'nprogress-busy');\n    \n    var progress = document.createElement('div');\n    progress.id = 'nprogress';\n    progress.innerHTML = Settings.template;\n\n    var bar      = progress.querySelector(Settings.barSelector),\n        perc     = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n        parent   = document.querySelector(Settings.parent),\n        spinner;\n    \n    css(bar, {\n      transition: 'all 0 linear',\n      transform: 'translate3d(' + perc + '%,0,0)'\n    });\n\n    if (!Settings.showSpinner) {\n      spinner = progress.querySelector(Settings.spinnerSelector);\n      spinner && removeElement(spinner);\n    }\n\n    if (parent != document.body) {\n      addClass(parent, 'nprogress-custom-parent');\n    }\n\n    parent.appendChild(progress);\n    return progress;\n  };\n\n  /**\n   * Removes the element. Opposite of render().\n   */\n\n  NProgress.remove = function() {\n    removeClass(document.documentElement, 'nprogress-busy');\n    removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n    var progress = document.getElementById('nprogress');\n    progress && removeElement(progress);\n  };\n\n  /**\n   * Checks if the progress bar is rendered.\n   */\n\n  NProgress.isRendered = function() {\n    return !!document.getElementById('nprogress');\n  };\n\n  /**\n   * Determine which positioning CSS rule to use.\n   */\n\n  NProgress.getPositioningCSS = function() {\n    // Sniff on document.body.style\n    var bodyStyle = document.body.style;\n\n    // Sniff prefixes\n    var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n                       ('MozTransform' in bodyStyle) ? 'Moz' :\n                       ('msTransform' in bodyStyle) ? 'ms' :\n                       ('OTransform' in bodyStyle) ? 'O' : '';\n\n    if (vendorPrefix + 'Perspective' in bodyStyle) {\n      // Modern browsers with 3D support, e.g. Webkit, IE10\n      return 'translate3d';\n    } else if (vendorPrefix + 'Transform' in bodyStyle) {\n      // Browsers without 3D support, e.g. IE9\n      return 'translate';\n    } else {\n      // Browsers without translate() support, e.g. IE7-8\n      return 'margin';\n    }\n  };\n\n  /**\n   * Helpers\n   */\n\n  function clamp(n, min, max) {\n    if (n < min) return min;\n    if (n > max) return max;\n    return n;\n  }\n\n  /**\n   * (Internal) converts a percentage (`0..1`) to a bar translateX\n   * percentage (`-100%..0%`).\n   */\n\n  function toBarPerc(n) {\n    return (-1 + n) * 100;\n  }\n\n\n  /**\n   * (Internal) returns the correct CSS for changing the bar's\n   * position given an n percentage, and speed and ease from Settings\n   */\n\n  function barPositionCSS(n, speed, ease) {\n    var barCSS;\n\n    if (Settings.positionUsing === 'translate3d') {\n      barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n    } else if (Settings.positionUsing === 'translate') {\n      barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n    } else {\n      barCSS = { 'margin-left': toBarPerc(n)+'%' };\n    }\n\n    barCSS.transition = 'all '+speed+'ms '+ease;\n\n    return barCSS;\n  }\n\n  /**\n   * (Internal) Queues a function to be executed.\n   */\n\n  var queue = (function() {\n    var pending = [];\n    \n    function next() {\n      var fn = pending.shift();\n      if (fn) {\n        fn(next);\n      }\n    }\n\n    return function(fn) {\n      pending.push(fn);\n      if (pending.length == 1) next();\n    };\n  })();\n\n  /**\n   * (Internal) Applies css properties to an element, similar to the jQuery \n   * css method.\n   *\n   * While this helper does assist with vendor prefixed property names, it \n   * does not perform any manipulation of values prior to setting styles.\n   */\n\n  var css = (function() {\n    var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n        cssProps    = {};\n\n    function camelCase(string) {\n      return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n        return letter.toUpperCase();\n      });\n    }\n\n    function getVendorProp(name) {\n      var style = document.body.style;\n      if (name in style) return name;\n\n      var i = cssPrefixes.length,\n          capName = name.charAt(0).toUpperCase() + name.slice(1),\n          vendorName;\n      while (i--) {\n        vendorName = cssPrefixes[i] + capName;\n        if (vendorName in style) return vendorName;\n      }\n\n      return name;\n    }\n\n    function getStyleProp(name) {\n      name = camelCase(name);\n      return cssProps[name] || (cssProps[name] = getVendorProp(name));\n    }\n\n    function applyCss(element, prop, value) {\n      prop = getStyleProp(prop);\n      element.style[prop] = value;\n    }\n\n    return function(element, properties) {\n      var args = arguments,\n          prop, \n          value;\n\n      if (args.length == 2) {\n        for (prop in properties) {\n          value = properties[prop];\n          if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n        }\n      } else {\n        applyCss(element, args[1], args[2]);\n      }\n    }\n  })();\n\n  /**\n   * (Internal) Determines if an element or space separated list of class names contains a class name.\n   */\n\n  function hasClass(element, name) {\n    var list = typeof element == 'string' ? element : classList(element);\n    return list.indexOf(' ' + name + ' ') >= 0;\n  }\n\n  /**\n   * (Internal) Adds a class to an element.\n   */\n\n  function addClass(element, name) {\n    var oldList = classList(element),\n        newList = oldList + name;\n\n    if (hasClass(oldList, name)) return; \n\n    // Trim the opening space.\n    element.className = newList.substring(1);\n  }\n\n  /**\n   * (Internal) Removes a class from an element.\n   */\n\n  function removeClass(element, name) {\n    var oldList = classList(element),\n        newList;\n\n    if (!hasClass(element, name)) return;\n\n    // Replace the class name.\n    newList = oldList.replace(' ' + name + ' ', ' ');\n\n    // Trim the opening and closing spaces.\n    element.className = newList.substring(1, newList.length - 1);\n  }\n\n  /**\n   * (Internal) Gets a space separated list of the class names on the element. \n   * The list is wrapped with a single space on each end to facilitate finding \n   * matches within the list.\n   */\n\n  function classList(element) {\n    return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n  }\n\n  /**\n   * (Internal) Removes an element from the DOM.\n   */\n\n  function removeElement(element) {\n    element && element.parentNode && element.parentNode.removeChild(element);\n  }\n\n  return NProgress;\n});\n\n\n\n//# sourceURL=webpack:///./node_modules/nprogress/nprogress.js?");

/***/ }),

/***/ "./node_modules/numbro/dist/numbro.min.js":
/*!************************************************!*\
  !*** ./node_modules/numbro/dist/numbro.min.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var require;var require;!function(e){if(true)module.exports=e();else {}}(function(){return function a(o,u,c){function s(t,e){if(!u[t]){if(!o[t]){var r=\"function\"==typeof require&&require;if(!e&&r)return require(t,!0);if(l)return l(t,!0);var n=new Error(\"Cannot find module '\"+t+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=u[t]={exports:{}};o[t][0].call(i.exports,function(e){return s(o[t][1][e]||e)},i,i.exports,a,o,u,c)}return u[t].exports}for(var l=\"function\"==typeof require&&require,e=0;e<c.length;e++)s(c[e]);return s}({1:[function(e,r,t){!function(e){\"use strict\";var t,k=/^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,_=Math.ceil,L=Math.floor,T=\"[BigNumber Error] \",P=T+\"Number primitive has more than 15 significant digits: \",U=1e14,j=14,C=9007199254740991,R=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],I=1e7,$=1e9;function G(e){var t=0|e;return 0<e||e===t?t:t-1}function V(e){for(var t,r,n=1,i=e.length,a=e[0]+\"\";n<i;){for(t=e[n++]+\"\",r=j-t.length;r--;t=\"0\"+t);a+=t}for(i=a.length;48===a.charCodeAt(--i););return a.slice(0,i+1||1)}function q(e,t){var r,n,i=e.c,a=t.c,o=e.s,u=t.s,c=e.e,s=t.e;if(!o||!u)return null;if(r=i&&!i[0],n=a&&!a[0],r||n)return r?n?0:-u:o;if(o!=u)return o;if(r=o<0,n=c==s,!i||!a)return n?0:!i^r?1:-1;if(!n)return s<c^r?1:-1;for(u=(c=i.length)<(s=a.length)?c:s,o=0;o<u;o++)if(i[o]!=a[o])return i[o]>a[o]^r?1:-1;return c==s?0:s<c^r?1:-1}function Z(e,t,r,n){if(e<t||r<e||e!==(e<0?_(e):L(e)))throw Error(T+(n||\"Argument\")+(\"number\"==typeof e?e<t||r<e?\" out of range: \":\" not an integer: \":\" not a primitive number: \")+String(e))}function z(e){var t=e.c.length-1;return G(e.e/j)==t&&e.c[t]%2!=0}function W(e,t){return(1<e.length?e.charAt(0)+\".\"+e.slice(1):e)+(t<0?\"e\":\"e+\")+t}function H(e,t,r){var n,i;if(t<0){for(i=r+\".\";++t;i+=r);e=i+e}else if(++t>(n=e.length)){for(i=r,t-=n;--t;i+=r);e+=i}else t<n&&(e=e.slice(0,t)+\".\"+e.slice(t));return e}(t=function e(t){var y,f,p,r,s,o,u,c,l,g,n=A.prototype={constructor:A,toString:null,valueOf:null},d=new A(1),b=20,w=4,h=-7,v=21,m=-1e7,O=1e7,x=!1,a=1,S=0,N={prefix:\"\",groupSize:3,secondaryGroupSize:0,groupSeparator:\",\",decimalSeparator:\".\",fractionGroupSize:0,fractionGroupSeparator:\" \",suffix:\"\"},M=\"0123456789abcdefghijklmnopqrstuvwxyz\";function A(e,t){var r,n,i,a,o,u,c,s,l=this;if(!(l instanceof A))return new A(e,t);if(null==t){if(e instanceof A)return l.s=e.s,l.e=e.e,void(l.c=(e=e.c)?e.slice():e);if((u=\"number\"==typeof e)&&0*e==0){if(l.s=1/e<0?(e=-e,-1):1,e===~~e){for(a=0,o=e;10<=o;o/=10,a++);return l.e=a,void(l.c=[e])}s=String(e)}else{if(s=String(e),!k.test(s))return p(l,s,u);l.s=45==s.charCodeAt(0)?(s=s.slice(1),-1):1}-1<(a=s.indexOf(\".\"))&&(s=s.replace(\".\",\"\")),0<(o=s.search(/e/i))?(a<0&&(a=o),a+=+s.slice(o+1),s=s.substring(0,o)):a<0&&(a=s.length)}else{if(Z(t,2,M.length,\"Base\"),s=String(e),10==t)return E(l=new A(e instanceof A?e:s),b+l.e+1,w);if(u=\"number\"==typeof e){if(0*e!=0)return p(l,s,u,t);if(l.s=1/e<0?(s=s.slice(1),-1):1,A.DEBUG&&15<s.replace(/^0\\.0*|\\./,\"\").length)throw Error(P+e);u=!1}else l.s=45===s.charCodeAt(0)?(s=s.slice(1),-1):1;for(r=M.slice(0,t),a=o=0,c=s.length;o<c;o++)if(r.indexOf(n=s.charAt(o))<0){if(\".\"==n){if(a<o){a=c;continue}}else if(!i&&(s==s.toUpperCase()&&(s=s.toLowerCase())||s==s.toLowerCase()&&(s=s.toUpperCase()))){i=!0,o=-1,a=0;continue}return p(l,String(e),u,t)}-1<(a=(s=f(s,t,10,l.s)).indexOf(\".\"))?s=s.replace(\".\",\"\"):a=s.length}for(o=0;48===s.charCodeAt(o);o++);for(c=s.length;48===s.charCodeAt(--c););if(s=s.slice(o,++c)){if(c-=o,u&&A.DEBUG&&15<c&&(C<e||e!==L(e)))throw Error(P+l.s*e);if(O<(a=a-o-1))l.c=l.e=null;else if(a<m)l.c=[l.e=0];else{if(l.e=a,l.c=[],o=(a+1)%j,a<0&&(o+=j),o<c){for(o&&l.c.push(+s.slice(0,o)),c-=j;o<c;)l.c.push(+s.slice(o,o+=j));s=s.slice(o),o=j-s.length}else o-=c;for(;o--;s+=\"0\");l.c.push(+s)}}else l.c=[l.e=0]}function i(e,t,r,n){var i,a,o,u,c;if(null==r?r=w:Z(r,0,8),!e.c)return e.toString();if(i=e.c[0],o=e.e,null==t)c=V(e.c),c=1==n||2==n&&(o<=h||v<=o)?W(c,o):H(c,o,\"0\");else if(a=(e=E(new A(e),t,r)).e,u=(c=V(e.c)).length,1==n||2==n&&(t<=a||a<=h)){for(;u<t;c+=\"0\",u++);c=W(c,a)}else if(t-=o,c=H(c,a,\"0\"),u<a+1){if(0<--t)for(c+=\".\";t--;c+=\"0\");}else if(0<(t+=a-u))for(a+1==u&&(c+=\".\");t--;c+=\"0\");return e.s<0&&i?\"-\"+c:c}function B(e,t){for(var r,n=1,i=new A(e[0]);n<e.length;n++){if(!(r=new A(e[n])).s){i=r;break}t.call(i,r)&&(i=r)}return i}function D(e,t,r){for(var n=1,i=t.length;!t[--i];t.pop());for(i=t[0];10<=i;i/=10,n++);return(r=n+r*j-1)>O?e.c=e.e=null:e.c=r<m?[e.e=0]:(e.e=r,t),e}function E(e,t,r,n){var i,a,o,u,c,s,l,f=e.c,p=R;if(f){e:{for(i=1,u=f[0];10<=u;u/=10,i++);if((a=t-i)<0)a+=j,o=t,l=(c=f[s=0])/p[i-o-1]%10|0;else if((s=_((a+1)/j))>=f.length){if(!n)break e;for(;f.length<=s;f.push(0));c=l=0,o=(a%=j)-j+(i=1)}else{for(c=u=f[s],i=1;10<=u;u/=10,i++);l=(o=(a%=j)-j+i)<0?0:c/p[i-o-1]%10|0}if(n=n||t<0||null!=f[s+1]||(o<0?c:c%p[i-o-1]),n=r<4?(l||n)&&(0==r||r==(e.s<0?3:2)):5<l||5==l&&(4==r||n||6==r&&(0<a?0<o?c/p[i-o]:0:f[s-1])%10&1||r==(e.s<0?8:7)),t<1||!f[0])return f.length=0,n?(t-=e.e+1,f[0]=p[(j-t%j)%j],e.e=-t||0):f[0]=e.e=0,e;if(0==a?(f.length=s,u=1,s--):(f.length=s+1,u=p[j-a],f[s]=0<o?L(c/p[i-o]%p[o])*u:0),n)for(;;){if(0==s){for(a=1,o=f[0];10<=o;o/=10,a++);for(o=f[0]+=u,u=1;10<=o;o/=10,u++);a!=u&&(e.e++,f[0]==U&&(f[0]=1));break}if(f[s]+=u,f[s]!=U)break;f[s--]=0,u=1}for(a=f.length;0===f[--a];f.pop());}e.e>O?e.c=e.e=null:e.e<m&&(e.c=[e.e=0])}return e}function F(e){var t,r=e.e;return null===r?e.toString():(t=V(e.c),t=r<=h||v<=r?W(t,r):H(t,r,\"0\"),e.s<0?\"-\"+t:t)}return A.clone=e,A.ROUND_UP=0,A.ROUND_DOWN=1,A.ROUND_CEIL=2,A.ROUND_FLOOR=3,A.ROUND_HALF_UP=4,A.ROUND_HALF_DOWN=5,A.ROUND_HALF_EVEN=6,A.ROUND_HALF_CEIL=7,A.ROUND_HALF_FLOOR=8,A.EUCLID=9,A.config=A.set=function(e){var t,r;if(null!=e){if(\"object\"!=typeof e)throw Error(T+\"Object expected: \"+e);if(e.hasOwnProperty(t=\"DECIMAL_PLACES\")&&(Z(r=e[t],0,$,t),b=r),e.hasOwnProperty(t=\"ROUNDING_MODE\")&&(Z(r=e[t],0,8,t),w=r),e.hasOwnProperty(t=\"EXPONENTIAL_AT\")&&((r=e[t])&&r.pop?(Z(r[0],-$,0,t),Z(r[1],0,$,t),h=r[0],v=r[1]):(Z(r,-$,$,t),h=-(v=r<0?-r:r))),e.hasOwnProperty(t=\"RANGE\"))if((r=e[t])&&r.pop)Z(r[0],-$,-1,t),Z(r[1],1,$,t),m=r[0],O=r[1];else{if(Z(r,-$,$,t),!r)throw Error(T+t+\" cannot be zero: \"+r);m=-(O=r<0?-r:r)}if(e.hasOwnProperty(t=\"CRYPTO\")){if((r=e[t])!==!!r)throw Error(T+t+\" not true or false: \"+r);if(r){if(\"undefined\"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw x=!r,Error(T+\"crypto unavailable\");x=r}else x=r}if(e.hasOwnProperty(t=\"MODULO_MODE\")&&(Z(r=e[t],0,9,t),a=r),e.hasOwnProperty(t=\"POW_PRECISION\")&&(Z(r=e[t],0,$,t),S=r),e.hasOwnProperty(t=\"FORMAT\")){if(\"object\"!=typeof(r=e[t]))throw Error(T+t+\" not an object: \"+r);N=r}if(e.hasOwnProperty(t=\"ALPHABET\")){if(\"string\"!=typeof(r=e[t])||/^.$|[+-.\\s]|(.).*\\1/.test(r))throw Error(T+t+\" invalid: \"+r);M=r}}return{DECIMAL_PLACES:b,ROUNDING_MODE:w,EXPONENTIAL_AT:[h,v],RANGE:[m,O],CRYPTO:x,MODULO_MODE:a,POW_PRECISION:S,FORMAT:N,ALPHABET:M}},A.isBigNumber=function(e){return e instanceof A||e&&!0===e._isBigNumber||!1},A.maximum=A.max=function(){return B(arguments,n.lt)},A.minimum=A.min=function(){return B(arguments,n.gt)},A.random=(r=9007199254740992,s=Math.random()*r&2097151?function(){return L(Math.random()*r)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(e){var t,r,n,i,a,o=0,u=[],c=new A(d);if(null==e?e=b:Z(e,0,$),i=_(e/j),x)if(crypto.getRandomValues){for(t=crypto.getRandomValues(new Uint32Array(i*=2));o<i;)9e15<=(a=131072*t[o]+(t[o+1]>>>11))?(r=crypto.getRandomValues(new Uint32Array(2)),t[o]=r[0],t[o+1]=r[1]):(u.push(a%1e14),o+=2);o=i/2}else{if(!crypto.randomBytes)throw x=!1,Error(T+\"crypto unavailable\");for(t=crypto.randomBytes(i*=7);o<i;)9e15<=(a=281474976710656*(31&t[o])+1099511627776*t[o+1]+4294967296*t[o+2]+16777216*t[o+3]+(t[o+4]<<16)+(t[o+5]<<8)+t[o+6])?crypto.randomBytes(7).copy(t,o):(u.push(a%1e14),o+=7);o=i/7}if(!x)for(;o<i;)(a=s())<9e15&&(u[o++]=a%1e14);for(i=u[--o],e%=j,i&&e&&(a=R[j-e],u[o]=L(i/a)*a);0===u[o];u.pop(),o--);if(o<0)u=[n=0];else{for(n=-1;0===u[0];u.splice(0,1),n-=j);for(o=1,a=u[0];10<=a;a/=10,o++);o<j&&(n-=j-o)}return c.e=n,c.c=u,c}),A.sum=function(){for(var e=1,t=arguments,r=new A(t[0]);e<t.length;)r=r.plus(t[e++]);return r},f=function(){var v=\"0123456789\";function m(e,t,r,n){for(var i,a,o=[0],u=0,c=e.length;u<c;){for(a=o.length;a--;o[a]*=t);for(o[0]+=n.indexOf(e.charAt(u++)),i=0;i<o.length;i++)o[i]>r-1&&(null==o[i+1]&&(o[i+1]=0),o[i+1]+=o[i]/r|0,o[i]%=r)}return o.reverse()}return function(e,t,r,n,i){var a,o,u,c,s,l,f,p,g=e.indexOf(\".\"),h=b,d=w;for(0<=g&&(c=S,S=0,e=e.replace(\".\",\"\"),l=(p=new A(t)).pow(e.length-g),S=c,p.c=m(H(V(l.c),l.e,\"0\"),10,r,v),p.e=p.c.length),u=c=(f=m(e,t,r,i?(a=M,v):(a=v,M))).length;0==f[--c];f.pop());if(!f[0])return a.charAt(0);if(g<0?--u:(l.c=f,l.e=u,l.s=n,f=(l=y(l,p,h,d,r)).c,s=l.r,u=l.e),g=f[o=u+h+1],c=r/2,s=s||o<0||null!=f[o+1],s=d<4?(null!=g||s)&&(0==d||d==(l.s<0?3:2)):c<g||g==c&&(4==d||s||6==d&&1&f[o-1]||d==(l.s<0?8:7)),o<1||!f[0])e=s?H(a.charAt(1),-h,a.charAt(0)):a.charAt(0);else{if(f.length=o,s)for(--r;++f[--o]>r;)f[o]=0,o||(++u,f=[1].concat(f));for(c=f.length;!f[--c];);for(g=0,e=\"\";g<=c;e+=a.charAt(f[g++]));e=H(e,u,a.charAt(0))}return e}}(),y=function(){function M(e,t,r){var n,i,a,o,u=0,c=e.length,s=t%I,l=t/I|0;for(e=e.slice();c--;)u=((i=s*(a=e[c]%I)+(n=l*a+(o=e[c]/I|0)*s)%I*I+u)/r|0)+(n/I|0)+l*o,e[c]=i%r;return u&&(e=[u].concat(e)),e}function B(e,t,r,n){var i,a;if(r!=n)a=n<r?1:-1;else for(i=a=0;i<r;i++)if(e[i]!=t[i]){a=e[i]>t[i]?1:-1;break}return a}function D(e,t,r,n){for(var i=0;r--;)e[r]-=i,i=e[r]<t[r]?1:0,e[r]=i*n+e[r]-t[r];for(;!e[0]&&1<e.length;e.splice(0,1));}return function(e,t,r,n,i){var a,o,u,c,s,l,f,p,g,h,d,v,m,y,b,w,O,x=e.s==t.s?1:-1,S=e.c,N=t.c;if(!(S&&S[0]&&N&&N[0]))return new A(e.s&&t.s&&(S?!N||S[0]!=N[0]:N)?S&&0==S[0]||!N?0*x:x/0:NaN);for(g=(p=new A(x)).c=[],x=r+(o=e.e-t.e)+1,i||(i=U,o=G(e.e/j)-G(t.e/j),x=x/j|0),u=0;N[u]==(S[u]||0);u++);if(N[u]>(S[u]||0)&&o--,x<0)g.push(1),c=!0;else{for(y=S.length,w=N.length,x+=2,1<(s=L(i/(N[u=0]+1)))&&(N=M(N,s,i),S=M(S,s,i),w=N.length,y=S.length),m=w,d=(h=S.slice(0,w)).length;d<w;h[d++]=0);O=N.slice(),O=[0].concat(O),b=N[0],N[1]>=i/2&&b++;do{if(s=0,(a=B(N,h,w,d))<0){if(v=h[0],w!=d&&(v=v*i+(h[1]||0)),1<(s=L(v/b)))for(i<=s&&(s=i-1),f=(l=M(N,s,i)).length,d=h.length;1==B(l,h,f,d);)s--,D(l,w<f?O:N,f,i),f=l.length,a=1;else 0==s&&(a=s=1),f=(l=N.slice()).length;if(f<d&&(l=[0].concat(l)),D(h,l,d,i),d=h.length,-1==a)for(;B(N,h,w,d)<1;)s++,D(h,w<d?O:N,d,i),d=h.length}else 0===a&&(s++,h=[0]);g[u++]=s,h[0]?h[d++]=S[m]||0:(h=[S[m]],d=1)}while((m++<y||null!=h[0])&&x--);c=null!=h[0],g[0]||g.splice(0,1)}if(i==U){for(u=1,x=g[0];10<=x;x/=10,u++);E(p,r+(p.e=u+o*j-1)+1,n,c)}else p.e=o,p.r=+c;return p}}(),o=/^(-?)0([xbo])(?=\\w[\\w.]*$)/i,u=/^([^.]+)\\.$/,c=/^\\.([^.]+)$/,l=/^-?(Infinity|NaN)$/,g=/^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g,p=function(e,t,r,n){var i,a=r?t:t.replace(g,\"\");if(l.test(a))e.s=isNaN(a)?null:a<0?-1:1,e.c=e.e=null;else{if(!r&&(a=a.replace(o,function(e,t,r){return i=\"x\"==(r=r.toLowerCase())?16:\"b\"==r?2:8,n&&n!=i?e:t}),n&&(i=n,a=a.replace(u,\"$1\").replace(c,\"0.$1\")),t!=a))return new A(a,i);if(A.DEBUG)throw Error(T+\"Not a\"+(n?\" base \"+n:\"\")+\" number: \"+t);e.c=e.e=e.s=null}},n.absoluteValue=n.abs=function(){var e=new A(this);return e.s<0&&(e.s=1),e},n.comparedTo=function(e,t){return q(this,new A(e,t))},n.decimalPlaces=n.dp=function(e,t){var r,n,i;if(null!=e)return Z(e,0,$),null==t?t=w:Z(t,0,8),E(new A(this),e+this.e+1,t);if(!(r=this.c))return null;if(n=((i=r.length-1)-G(this.e/j))*j,i=r[i])for(;i%10==0;i/=10,n--);return n<0&&(n=0),n},n.dividedBy=n.div=function(e,t){return y(this,new A(e,t),b,w)},n.dividedToIntegerBy=n.idiv=function(e,t){return y(this,new A(e,t),0,1)},n.exponentiatedBy=n.pow=function(e,t){var r,n,i,a,o,u,c,s,l=this;if((e=new A(e)).c&&!e.isInteger())throw Error(T+\"Exponent not an integer: \"+F(e));if(null!=t&&(t=new A(t)),o=14<e.e,!l.c||!l.c[0]||1==l.c[0]&&!l.e&&1==l.c.length||!e.c||!e.c[0])return s=new A(Math.pow(+F(l),o?2-z(e):+F(e))),t?s.mod(t):s;if(u=e.s<0,t){if(t.c?!t.c[0]:!t.s)return new A(NaN);(n=!u&&l.isInteger()&&t.isInteger())&&(l=l.mod(t))}else{if(9<e.e&&(0<l.e||l.e<-1||(0==l.e?1<l.c[0]||o&&24e7<=l.c[1]:l.c[0]<8e13||o&&l.c[0]<=9999975e7)))return a=l.s<0&&z(e)?-0:0,-1<l.e&&(a=1/a),new A(u?1/a:a);S&&(a=_(S/j+2))}for(c=o?(r=new A(.5),u&&(e.s=1),z(e)):(i=Math.abs(+F(e)))%2,s=new A(d);;){if(c){if(!(s=s.times(l)).c)break;a?s.c.length>a&&(s.c.length=a):n&&(s=s.mod(t))}if(i){if(0===(i=L(i/2)))break;c=i%2}else if(E(e=e.times(r),e.e+1,1),14<e.e)c=z(e);else{if(0==(i=+F(e)))break;c=i%2}l=l.times(l),a?l.c&&l.c.length>a&&(l.c.length=a):n&&(l=l.mod(t))}return n?s:(u&&(s=d.div(s)),t?s.mod(t):a?E(s,S,w,void 0):s)},n.integerValue=function(e){var t=new A(this);return null==e?e=w:Z(e,0,8),E(t,t.e+1,e)},n.isEqualTo=n.eq=function(e,t){return 0===q(this,new A(e,t))},n.isFinite=function(){return!!this.c},n.isGreaterThan=n.gt=function(e,t){return 0<q(this,new A(e,t))},n.isGreaterThanOrEqualTo=n.gte=function(e,t){return 1===(t=q(this,new A(e,t)))||0===t},n.isInteger=function(){return!!this.c&&G(this.e/j)>this.c.length-2},n.isLessThan=n.lt=function(e,t){return q(this,new A(e,t))<0},n.isLessThanOrEqualTo=n.lte=function(e,t){return-1===(t=q(this,new A(e,t)))||0===t},n.isNaN=function(){return!this.s},n.isNegative=function(){return this.s<0},n.isPositive=function(){return 0<this.s},n.isZero=function(){return!!this.c&&0==this.c[0]},n.minus=function(e,t){var r,n,i,a,o=this,u=o.s;if(t=(e=new A(e,t)).s,!u||!t)return new A(NaN);if(u!=t)return e.s=-t,o.plus(e);var c=o.e/j,s=e.e/j,l=o.c,f=e.c;if(!c||!s){if(!l||!f)return l?(e.s=-t,e):new A(f?o:NaN);if(!l[0]||!f[0])return f[0]?(e.s=-t,e):new A(l[0]?o:3==w?-0:0)}if(c=G(c),s=G(s),l=l.slice(),u=c-s){for((i=(a=u<0)?(u=-u,l):(s=c,f)).reverse(),t=u;t--;i.push(0));i.reverse()}else for(n=(a=(u=l.length)<(t=f.length))?u:t,u=t=0;t<n;t++)if(l[t]!=f[t]){a=l[t]<f[t];break}if(a&&(i=l,l=f,f=i,e.s=-e.s),0<(t=(n=f.length)-(r=l.length)))for(;t--;l[r++]=0);for(t=U-1;u<n;){if(l[--n]<f[n]){for(r=n;r&&!l[--r];l[r]=t);--l[r],l[n]+=U}l[n]-=f[n]}for(;0==l[0];l.splice(0,1),--s);return l[0]?D(e,l,s):(e.s=3==w?-1:1,e.c=[e.e=0],e)},n.modulo=n.mod=function(e,t){var r,n,i=this;return e=new A(e,t),!i.c||!e.s||e.c&&!e.c[0]?new A(NaN):!e.c||i.c&&!i.c[0]?new A(i):(9==a?(n=e.s,e.s=1,r=y(i,e,0,3),e.s=n,r.s*=n):r=y(i,e,0,a),(e=i.minus(r.times(e))).c[0]||1!=a||(e.s=i.s),e)},n.multipliedBy=n.times=function(e,t){var r,n,i,a,o,u,c,s,l,f,p,g,h,d,v,m=this,y=m.c,b=(e=new A(e,t)).c;if(!(y&&b&&y[0]&&b[0]))return!m.s||!e.s||y&&!y[0]&&!b||b&&!b[0]&&!y?e.c=e.e=e.s=null:(e.s*=m.s,y&&b?(e.c=[0],e.e=0):e.c=e.e=null),e;for(n=G(m.e/j)+G(e.e/j),e.s*=m.s,(c=y.length)<(f=b.length)&&(h=y,y=b,b=h,i=c,c=f,f=i),i=c+f,h=[];i--;h.push(0));for(d=U,v=I,i=f;0<=--i;){for(r=0,p=b[i]%v,g=b[i]/v|0,a=i+(o=c);i<a;)r=((s=p*(s=y[--o]%v)+(u=g*s+(l=y[o]/v|0)*p)%v*v+h[a]+r)/d|0)+(u/v|0)+g*l,h[a--]=s%d;h[a]=r}return r?++n:h.splice(0,1),D(e,h,n)},n.negated=function(){var e=new A(this);return e.s=-e.s||null,e},n.plus=function(e,t){var r,n=this,i=n.s;if(t=(e=new A(e,t)).s,!i||!t)return new A(NaN);if(i!=t)return e.s=-t,n.minus(e);var a=n.e/j,o=e.e/j,u=n.c,c=e.c;if(!a||!o){if(!u||!c)return new A(i/0);if(!u[0]||!c[0])return c[0]?e:new A(u[0]?n:0*i)}if(a=G(a),o=G(o),u=u.slice(),i=a-o){for((r=0<i?(o=a,c):(i=-i,u)).reverse();i--;r.push(0));r.reverse()}for((i=u.length)-(t=c.length)<0&&(r=c,c=u,u=r,t=i),i=0;t;)i=(u[--t]=u[t]+c[t]+i)/U|0,u[t]=U===u[t]?0:u[t]%U;return i&&(u=[i].concat(u),++o),D(e,u,o)},n.precision=n.sd=function(e,t){var r,n,i;if(null!=e&&e!==!!e)return Z(e,1,$),null==t?t=w:Z(t,0,8),E(new A(this),e,t);if(!(r=this.c))return null;if(n=(i=r.length-1)*j+1,i=r[i]){for(;i%10==0;i/=10,n--);for(i=r[0];10<=i;i/=10,n++);}return e&&this.e+1>n&&(n=this.e+1),n},n.shiftedBy=function(e){return Z(e,-C,C),this.times(\"1e\"+e)},n.squareRoot=n.sqrt=function(){var e,t,r,n,i,a=this,o=a.c,u=a.s,c=a.e,s=b+4,l=new A(\"0.5\");if(1!==u||!o||!o[0])return new A(!u||u<0&&(!o||o[0])?NaN:o?a:1/0);if((r=0==(u=Math.sqrt(+F(a)))||u==1/0?(((t=V(o)).length+c)%2==0&&(t+=\"0\"),u=Math.sqrt(+t),c=G((c+1)/2)-(c<0||c%2),new A(t=u==1/0?\"1e\"+c:(t=u.toExponential()).slice(0,t.indexOf(\"e\")+1)+c)):new A(u+\"\")).c[0])for((u=(c=r.e)+s)<3&&(u=0);;)if(i=r,r=l.times(i.plus(y(a,i,s,1))),V(i.c).slice(0,u)===(t=V(r.c)).slice(0,u)){if(r.e<c&&--u,\"9999\"!=(t=t.slice(u-3,u+1))&&(n||\"4999\"!=t)){+t&&(+t.slice(1)||\"5\"!=t.charAt(0))||(E(r,r.e+b+2,1),e=!r.times(r).eq(a));break}if(!n&&(E(i,i.e+b+2,0),i.times(i).eq(a))){r=i;break}s+=4,u+=4,n=1}return E(r,r.e+b+1,w,e)},n.toExponential=function(e,t){return null!=e&&(Z(e,0,$),e++),i(this,e,t,1)},n.toFixed=function(e,t){return null!=e&&(Z(e,0,$),e=e+this.e+1),i(this,e,t)},n.toFormat=function(e,t,r){var n;if(null==r)null!=e&&t&&\"object\"==typeof t?(r=t,t=null):e&&\"object\"==typeof e?(r=e,e=t=null):r=N;else if(\"object\"!=typeof r)throw Error(T+\"Argument not an object: \"+r);if(n=this.toFixed(e,t),this.c){var i,a=n.split(\".\"),o=+r.groupSize,u=+r.secondaryGroupSize,c=r.groupSeparator||\"\",s=a[0],l=a[1],f=this.s<0,p=f?s.slice(1):s,g=p.length;if(u&&(i=o,o=u,g-=u=i),0<o&&0<g){for(i=g%o||o,s=p.substr(0,i);i<g;i+=o)s+=c+p.substr(i,o);0<u&&(s+=c+p.slice(i)),f&&(s=\"-\"+s)}n=l?s+(r.decimalSeparator||\"\")+((u=+r.fractionGroupSize)?l.replace(new RegExp(\"\\\\d{\"+u+\"}\\\\B\",\"g\"),\"$&\"+(r.fractionGroupSeparator||\"\")):l):s}return(r.prefix||\"\")+n+(r.suffix||\"\")},n.toFraction=function(e){var t,r,n,i,a,o,u,c,s,l,f,p,g=this,h=g.c;if(null!=e&&(!(u=new A(e)).isInteger()&&(u.c||1!==u.s)||u.lt(d)))throw Error(T+\"Argument \"+(u.isInteger()?\"out of range: \":\"not an integer: \")+F(u));if(!h)return new A(g);for(t=new A(d),s=r=new A(d),n=c=new A(d),p=V(h),a=t.e=p.length-g.e-1,t.c[0]=R[(o=a%j)<0?j+o:o],e=!e||0<u.comparedTo(t)?0<a?t:s:u,o=O,O=1/0,u=new A(p),c.c[0]=0;l=y(u,t,0,1),1!=(i=r.plus(l.times(n))).comparedTo(e);)r=n,n=i,s=c.plus(l.times(i=s)),c=i,t=u.minus(l.times(i=t)),u=i;return i=y(e.minus(r),n,0,1),c=c.plus(i.times(s)),r=r.plus(i.times(n)),c.s=s.s=g.s,f=y(s,n,a*=2,w).minus(g).abs().comparedTo(y(c,r,a,w).minus(g).abs())<1?[s,n]:[c,r],O=o,f},n.toNumber=function(){return+F(this)},n.toPrecision=function(e,t){return null!=e&&Z(e,1,$),i(this,e,t,2)},n.toString=function(e){var t,r=this,n=r.s,i=r.e;return null===i?n?(t=\"Infinity\",n<0&&(t=\"-\"+t)):t=\"NaN\":(t=null==e?i<=h||v<=i?W(V(r.c),i):H(V(r.c),i,\"0\"):10===e?H(V((r=E(new A(r),b+i+1,w)).c),r.e,\"0\"):(Z(e,2,M.length,\"Base\"),f(H(V(r.c),i,\"0\"),10,e,n,!0)),n<0&&r.c[0]&&(t=\"-\"+t)),t},n.valueOf=n.toJSON=function(){return F(this)},n._isBigNumber=!0,\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator&&(n[Symbol.toStringTag]=\"BigNumber\",n[Symbol.for(\"nodejs.util.inspect.custom\")]=n.valueOf),null!=t&&A.set(t),A}()).default=t.BigNumber=t,void 0!==r&&r.exports?r.exports=t:(e||(e=\"undefined\"!=typeof self&&self?self:window),e.BigNumber=t)}(this)},{}],2:[function(e,t,r){\"use strict\";t.exports={languageTag:\"en-US\",delimiters:{thousands:\",\",decimal:\".\"},abbreviations:{thousand:\"k\",million:\"m\",billion:\"b\",trillion:\"t\"},spaceSeparated:!1,ordinal:function(e){var t=e%10;return 1==~~(e%100/10)?\"th\":1===t?\"st\":2===t?\"nd\":3===t?\"rd\":\"th\"},currency:{symbol:\"$\",position:\"prefix\",code:\"USD\"},currencyFormat:{thousandSeparated:!0,totalLength:4,spaceSeparated:!0},formats:{fourDigits:{totalLength:4,spaceSeparated:!0},fullWithTwoDecimals:{output:\"currency\",thousandSeparated:!0,mantissa:2},fullWithTwoDecimalsNoCurrency:{thousandSeparated:!0,mantissa:2},fullWithNoDecimals:{output:\"currency\",thousandSeparated:!0,mantissa:0}}}},{}],3:[function(e,t,r){\"use strict\";function C(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=[],n=!0,i=!1,a=void 0;try{for(var o,u=e[Symbol.iterator]();!(n=(o=u.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){i=!0,a=e}finally{try{n||null==u.return||u.return()}finally{if(i)throw a}}return r}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}()}var R=e(\"./globalState\"),o=e(\"./validating\"),u=e(\"./parsing\"),n=[\"B\",\"KB\",\"MB\",\"GB\",\"TB\",\"PB\",\"EB\",\"ZB\",\"YB\"],M={general:{scale:1024,suffixes:n,marker:\"bd\"},binary:{scale:1024,suffixes:[\"B\",\"KiB\",\"MiB\",\"GiB\",\"TiB\",\"PiB\",\"EiB\",\"ZiB\",\"YiB\"],marker:\"b\"},decimal:{scale:1e3,suffixes:n,marker:\"d\"}},I={totalLength:0,characteristic:0,forceAverage:!1,average:!1,mantissa:-1,optionalMantissa:!0,thousandSeparated:!1,spaceSeparated:!1,negative:\"sign\",forceSign:!1};function i(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=2<arguments.length?arguments[2]:void 0;if(\"string\"==typeof t&&(t=u.parseFormat(t)),!o.validateFormat(t))return\"ERROR: invalid format\";var n=t.prefix||\"\",i=t.postfix||\"\",a=function(e,t,r){switch(t.output){case\"currency\":return t=A(t,R.currentCurrencyDefaultFormat()),function(e,t,r){var n=r.currentCurrency(),i=Object.assign({},I,t),a=void 0,o=\"\",u=!!i.totalLength||!!i.forceAverage||i.average,c=t.currencyPosition||n.position,s=t.currencySymbol||n.symbol;i.spaceSeparated&&(o=\" \");\"infix\"===c&&(a=o+s+o);var l=D({instance:e,providedFormat:t,state:r,decimalSeparator:a});\"prefix\"===c&&(l=e._value<0&&\"sign\"===i.negative?\"-\".concat(o).concat(s).concat(l.slice(1)):s+o+l);c&&\"postfix\"!==c||(l=l+(o=u?\"\":o)+s);return l}(e,t,R);case\"percent\":return t=A(t,R.currentPercentageDefaultFormat()),function(e,t,r,n){var i=t.prefixSymbol,a=D({instance:n(100*e._value),providedFormat:t,state:r}),o=Object.assign({},I,t);if(i)return\"%\".concat(o.spaceSeparated?\" \":\"\").concat(a);return\"\".concat(a).concat(o.spaceSeparated?\" \":\"\",\"%\")}(e,t,R,r);case\"byte\":return t=A(t,R.currentByteDefaultFormat()),h=e,v=R,m=r,y=(d=t).base||\"binary\",b=M[y],w=B(h._value,b.suffixes,b.scale),O=w.value,x=w.suffix,S=D({instance:m(O),providedFormat:d,state:v,defaults:v.currentByteDefaultFormat()}),N=v.currentAbbreviations(),\"\".concat(S).concat(N.spaced?\" \":\"\").concat(x);case\"time\":return t=A(t,R.currentTimeDefaultFormat()),l=e,f=Math.floor(l._value/60/60),p=Math.floor((l._value-60*f*60)/60),g=Math.round(l._value-60*f*60-60*p),\"\".concat(f,\":\").concat(p<10?\"0\":\"\").concat(p,\":\").concat(g<10?\"0\":\"\").concat(g);case\"ordinal\":return t=A(t,R.currentOrdinalDefaultFormat()),n=e,i=t,o=(a=R).currentOrdinal(),u=Object.assign({},I,i),c=D({instance:n,providedFormat:i,state:a}),s=o(n._value),\"\".concat(c).concat(u.spaceSeparated?\" \":\"\").concat(s);case\"number\":default:return D({instance:e,providedFormat:t,numbro:r})}var n,i,a,o,u,c,s;var l,f,p,g;var h,d,v,m,y,b,w,O,x,S,N}(e,t,r);return a=(a=n+a)+i}function B(e,t,r){var n=t[0],i=Math.abs(e);if(r<=i){for(var a=1;a<t.length;++a){var o=Math.pow(r,a),u=Math.pow(r,a+1);if(o<=i&&i<u){n=t[a],e/=o;break}}n===t[0]&&(e/=Math.pow(r,t.length-1),n=t[t.length-1])}return{value:e,suffix:n}}function p(e){for(var t=\"\",r=0;r<e;r++)t+=\"0\";return t}function $(e,t){return-1!==e.toString().indexOf(\"e\")?function(e,t){var r=e.toString(),n=C(r.split(\"e\"),2),i=n[0],a=n[1],o=C(i.split(\".\"),2),u=o[0],c=o[1],s=void 0===c?\"\":c;if(0<+a)r=u+s+p(a-s.length);else{var l=\".\";l=+u<0?\"-0\".concat(l):\"0\".concat(l);var f=(p(-a-1)+Math.abs(u)+s).substr(0,t);f.length<t&&(f+=p(t-f.length)),r=l+f}return 0<+a&&0<t&&(r+=\".\".concat(p(t))),r}(e,t):(Math.round(+\"\".concat(e,\"e+\").concat(t))/Math.pow(10,t)).toFixed(t)}function D(e){var t=e.instance,r=e.providedFormat,n=e.state,i=void 0===n?R:n,a=e.decimalSeparator,o=e.defaults,u=void 0===o?i.currentDefaults():o,c=t._value;if(0===c&&i.hasZeroFormat())return i.getZeroFormat();if(!isFinite(c))return c.toString();var s,l,f,p,g,h,d,v,m=Object.assign({},I,u,r),y=m.totalLength,b=y?0:m.characteristic,w=m.optionalCharacteristic,O=m.forceAverage,x=!!y||!!O||m.average,S=y?-1:x&&void 0===r.mantissa?0:m.mantissa,N=!y&&(void 0===r.optionalMantissa?-1===S:m.optionalMantissa),M=m.trimMantissa,B=m.thousandSeparated,D=m.spaceSeparated,A=m.negative,E=m.forceSign,F=m.exponential,k=\"\";if(x){var _=function(e){var t=e.value,r=e.forceAverage,n=e.abbreviations,i=e.spaceSeparated,a=void 0!==i&&i,o=e.totalLength,u=void 0===o?0:o,c=\"\",s=Math.abs(t),l=-1;if(s>=Math.pow(10,12)&&!r||\"trillion\"===r?(c=n.trillion,t/=Math.pow(10,12)):s<Math.pow(10,12)&&s>=Math.pow(10,9)&&!r||\"billion\"===r?(c=n.billion,t/=Math.pow(10,9)):s<Math.pow(10,9)&&s>=Math.pow(10,6)&&!r||\"million\"===r?(c=n.million,t/=Math.pow(10,6)):(s<Math.pow(10,6)&&s>=Math.pow(10,3)&&!r||\"thousand\"===r)&&(c=n.thousand,t/=Math.pow(10,3)),c&&(c=(a?\" \":\"\")+c),u){var f=t.toString().split(\".\")[0];l=Math.max(u-f.length,0)}return{value:t,abbreviation:c,mantissaPrecision:l}}({value:c,forceAverage:O,abbreviations:i.currentAbbreviations(),spaceSeparated:D,totalLength:y});c=_.value,k+=_.abbreviation,y&&(S=_.mantissaPrecision)}if(F){var L=(l=(s={value:c,characteristicPrecision:b}).value,f=s.characteristicPrecision,p=void 0===f?0:f,g=C(l.toExponential().split(\"e\"),2),h=g[0],d=g[1],v=+h,p&&1<p&&(v*=Math.pow(10,p-1),d=0<=(d=+d-(p-1))?\"+\".concat(d):d),{value:v,abbreviation:\"e\".concat(d)});c=L.value,k=L.abbreviation+k}var T,P,U,j=function(e,t,r,n,i){if(-1===n)return e;var a=$(t,n),o=C(a.toString().split(\".\"),2),u=o[0],c=o[1],s=void 0===c?\"\":c;if(s.match(/^0+$/)&&(r||i))return u;var l=s.match(/0+$/);return i&&l?\"\".concat(u,\".\").concat(s.toString().slice(0,l.index)):a.toString()}(c.toString(),c,N,S,M);return j=function(e,t,r,n,i){var a=n.currentDelimiters(),o=a.thousands;i=i||a.decimal;var u=a.thousandsSize||3,c=e.toString(),s=c.split(\".\")[0],l=c.split(\".\")[1];return r&&(t<0&&(s=s.slice(1)),function(e,t){for(var r=[],n=0,i=e;0<i;i--)n===t&&(r.unshift(i),n=0),n++;return r}(s.length,u).forEach(function(e,t){s=s.slice(0,e+t)+o+s.slice(e+t)}),t<0&&(s=\"-\".concat(s))),c=l?s+i+l:s}(j=function(e,t,r,n){var i=e,a=C(i.toString().split(\".\"),2),o=a[0],u=a[1];if(o.match(/^-?0$/)&&r)return u?\"\".concat(o.replace(\"0\",\"\"),\".\").concat(u):o.replace(\"0\",\"\");if(o.length<n)for(var c=n-o.length,s=0;s<c;s++)i=\"0\".concat(i);return i.toString()}(j,0,w,b),c,B,i,a),(x||F)&&(j=j+k),(E||c<0)&&(T=j,U=A,j=0===(P=c)?T:0==+T?T.replace(\"-\",\"\"):0<P?\"+\".concat(T):\"sign\"===U?T:\"(\".concat(T.replace(\"-\",\"\"),\")\")),j}function A(e,t){if(!e)return t;var r=Object.keys(e);return 1===r.length&&\"output\"===r[0]?t:e}t.exports=function(n){return{format:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return i.apply(void 0,t.concat([n]))},getByteUnit:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){var t=M.general;return B(e._value,t.suffixes,t.scale).suffix}.apply(void 0,t.concat([n]))},getBinaryByteUnit:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){var t=M.binary;return B(e._value,t.suffixes,t.scale).suffix}.apply(void 0,t.concat([n]))},getDecimalByteUnit:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){var t=M.decimal;return B(e._value,t.suffixes,t.scale).suffix}.apply(void 0,t.concat([n]))},formatOrDefault:A}}},{\"./globalState\":4,\"./parsing\":8,\"./validating\":10}],4:[function(e,t,r){\"use strict\";var i=e(\"./en-US\"),n=e(\"./validating\"),a=e(\"./parsing\"),o={},u=void 0,c={},s=null,l={};function f(e){u=e}function p(){return c[u]}o.languages=function(){return Object.assign({},c)},o.currentLanguage=function(){return u},o.currentCurrency=function(){return p().currency},o.currentAbbreviations=function(){return p().abbreviations},o.currentDelimiters=function(){return p().delimiters},o.currentOrdinal=function(){return p().ordinal},o.currentDefaults=function(){return Object.assign({},p().defaults,l)},o.currentOrdinalDefaultFormat=function(){return Object.assign({},o.currentDefaults(),p().ordinalFormat)},o.currentByteDefaultFormat=function(){return Object.assign({},o.currentDefaults(),p().byteFormat)},o.currentPercentageDefaultFormat=function(){return Object.assign({},o.currentDefaults(),p().percentageFormat)},o.currentCurrencyDefaultFormat=function(){return Object.assign({},o.currentDefaults(),p().currencyFormat)},o.currentTimeDefaultFormat=function(){return Object.assign({},o.currentDefaults(),p().timeFormat)},o.setDefaults=function(e){e=a.parseFormat(e),n.validateFormat(e)&&(l=e)},o.getZeroFormat=function(){return s},o.setZeroFormat=function(e){return s=\"string\"==typeof e?e:null},o.hasZeroFormat=function(){return null!==s},o.languageData=function(e){if(e){if(c[e])return c[e];throw new Error('Unknown tag \"'.concat(e,'\"'))}return p()},o.registerLanguage=function(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1];if(!n.validateLanguage(e))throw new Error(\"Invalid language data\");c[e.languageTag]=e,t&&f(e.languageTag)},o.setLanguage=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:i.languageTag;if(!c[e]){var r=e.split(\"-\")[0],n=Object.keys(c).find(function(e){return e.split(\"-\")[0]===r});return c[n]?void f(n):void f(t)}f(e)},o.registerLanguage(i),u=i.languageTag,t.exports=o},{\"./en-US\":2,\"./parsing\":8,\"./validating\":10}],5:[function(n,e,t){\"use strict\";e.exports=function(t){return{loadLanguagesInNode:function(e){return r=t,void e.forEach(function(t){var e=void 0;try{e=n(\"../languages/\".concat(t))}catch(e){console.error('Unable to load \"'.concat(t,'\". No matching language file found.'))}e&&r.registerLanguage(e)});var r}}}},{}],6:[function(e,t,r){\"use strict\";var c=e(\"bignumber.js\");function a(e,t,r){var n=new c(e._value),i=t;return r.isNumbro(t)&&(i=t._value),i=new c(i),e._value=n.minus(i).toNumber(),e}t.exports=function(u){return{add:function(e,t){return n=t,i=u,a=new c((r=e)._value),o=n,i.isNumbro(n)&&(o=n._value),o=new c(o),r._value=a.plus(o).toNumber(),r;var r,n,i,a,o},subtract:function(e,t){return a(e,t,u)},multiply:function(e,t){return n=t,i=u,a=new c((r=e)._value),o=n,i.isNumbro(n)&&(o=n._value),o=new c(o),r._value=a.times(o).toNumber(),r;var r,n,i,a,o},divide:function(e,t){return n=t,i=u,a=new c((r=e)._value),o=n,i.isNumbro(n)&&(o=n._value),o=new c(o),r._value=a.dividedBy(o).toNumber(),r;var r,n,i,a,o},set:function(e,t){return r=e,i=n=t,u.isNumbro(n)&&(i=n._value),r._value=i,r;var r,n,i},difference:function(e,t){return r=t,a(i=(n=u)(e._value),r,n),Math.abs(i._value);var r,n,i}}}},{\"bignumber.js\":1}],7:[function(e,t,r){\"use strict\";function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var a=e(\"./globalState\"),n=e(\"./validating\"),o=e(\"./loading\")(g),u=e(\"./unformatting\"),c=e(\"./formatting\")(g),s=e(\"./manipulating\")(g),l=e(\"./parsing\"),f=function(){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._value=e}var e,r,n;return e=t,(r=[{key:\"clone\",value:function(){return g(this._value)}},{key:\"format\",value:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return c.format(this,e)}},{key:\"formatCurrency\",value:function(e){return\"string\"==typeof e&&(e=l.parseFormat(e)),(e=c.formatOrDefault(e,a.currentCurrencyDefaultFormat())).output=\"currency\",c.format(this,e)}},{key:\"formatTime\",value:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return e.output=\"time\",c.format(this,e)}},{key:\"binaryByteUnits\",value:function(){return c.getBinaryByteUnit(this)}},{key:\"decimalByteUnits\",value:function(){return c.getDecimalByteUnit(this)}},{key:\"byteUnits\",value:function(){return c.getByteUnit(this)}},{key:\"difference\",value:function(e){return s.difference(this,e)}},{key:\"add\",value:function(e){return s.add(this,e)}},{key:\"subtract\",value:function(e){return s.subtract(this,e)}},{key:\"multiply\",value:function(e){return s.multiply(this,e)}},{key:\"divide\",value:function(e){return s.divide(this,e)}},{key:\"set\",value:function(e){return s.set(this,p(e))}},{key:\"value\",value:function(){return this._value}},{key:\"valueOf\",value:function(){return this._value}}])&&i(e.prototype,r),n&&i(e,n),t}();function p(e){var t=e;return g.isNumbro(e)?t=e._value:\"string\"==typeof e?t=g.unformat(e):isNaN(e)&&(t=NaN),t}function g(e){return new f(p(e))}g.version=\"2.1.2\",g.isNumbro=function(e){return e instanceof f},g.language=a.currentLanguage,g.registerLanguage=a.registerLanguage,g.setLanguage=a.setLanguage,g.languages=a.languages,g.languageData=a.languageData,g.zeroFormat=a.setZeroFormat,g.defaultFormat=a.currentDefaults,g.setDefaults=a.setDefaults,g.defaultCurrencyFormat=a.currentCurrencyDefaultFormat,g.validate=n.validate,g.loadLanguagesInNode=o.loadLanguagesInNode,g.unformat=u.unformat,t.exports=g},{\"./formatting\":3,\"./globalState\":4,\"./loading\":5,\"./manipulating\":6,\"./parsing\":8,\"./unformatting\":9,\"./validating\":10}],8:[function(e,t,r){\"use strict\";t.exports={parseFormat:function(e){var t,r,n,i,a,o,u,c,s,l,f,p,g,h,d,v,m,y,b,w,O=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return\"string\"!=typeof e?e:(r=O,e=(n=(t=e).match(/^{([^}]*)}/))?(r.prefix=n[1],t.slice(n[0].length)):t,a=O,function(e,t){if(-1===e.indexOf(\"$\")){if(-1===e.indexOf(\"%\"))return-1!==e.indexOf(\"bd\")?(t.output=\"byte\",t.base=\"general\"):-1!==e.indexOf(\"b\")?(t.output=\"byte\",t.base=\"binary\"):-1!==e.indexOf(\"d\")?(t.output=\"byte\",t.base=\"decimal\"):-1===e.indexOf(\":\")?-1!==e.indexOf(\"o\")&&(t.output=\"ordinal\"):t.output=\"time\";t.output=\"percent\"}else t.output=\"currency\"}(e=(o=(i=e).match(/{([^}]*)}$/))?(a.postfix=o[1],i.slice(0,-o[0].length)):i,O),u=O,(c=e.match(/[1-9]+[0-9]*/))&&(u.totalLength=+c[0]),s=O,(l=e.split(\".\")[0].match(/0+/))&&(s.characteristic=l[0].length),function(e,t){if(-1!==e.indexOf(\".\")){var r=e.split(\".\")[0];t.optionalCharacteristic=-1===r.indexOf(\"0\")}}(e,O),f=O,-1!==e.indexOf(\"a\")&&(f.average=!0),g=O,-1!==(p=e).indexOf(\"K\")?g.forceAverage=\"thousand\":-1!==p.indexOf(\"M\")?g.forceAverage=\"million\":-1!==p.indexOf(\"B\")?g.forceAverage=\"billion\":-1!==p.indexOf(\"T\")&&(g.forceAverage=\"trillion\"),function(e,t){var r=e.split(\".\")[1];if(r){var n=r.match(/0+/);n&&(t.mantissa=n[0].length)}}(e,O),d=O,(h=e).match(/\\[\\.]/)?d.optionalMantissa=!0:h.match(/\\./)&&(d.optionalMantissa=!1),v=O,-1!==e.indexOf(\",\")&&(v.thousandSeparated=!0),m=O,-1!==e.indexOf(\" \")&&(m.spaceSeparated=!0),b=O,(y=e).match(/^\\+?\\([^)]*\\)$/)&&(b.negative=\"parenthesis\"),y.match(/^\\+?-/)&&(b.negative=\"sign\"),w=O,e.match(/^\\+/)&&(w.forceSign=!0),O)}}},{}],9:[function(p,e,t){\"use strict\";var O=[{key:\"ZiB\",factor:Math.pow(1024,7)},{key:\"ZB\",factor:Math.pow(1e3,7)},{key:\"YiB\",factor:Math.pow(1024,8)},{key:\"YB\",factor:Math.pow(1e3,8)},{key:\"TiB\",factor:Math.pow(1024,4)},{key:\"TB\",factor:Math.pow(1e3,4)},{key:\"PiB\",factor:Math.pow(1024,5)},{key:\"PB\",factor:Math.pow(1e3,5)},{key:\"MiB\",factor:Math.pow(1024,2)},{key:\"MB\",factor:Math.pow(1e3,2)},{key:\"KiB\",factor:Math.pow(1024,1)},{key:\"KB\",factor:Math.pow(1e3,1)},{key:\"GiB\",factor:Math.pow(1024,3)},{key:\"GB\",factor:Math.pow(1e3,3)},{key:\"EiB\",factor:Math.pow(1024,6)},{key:\"EB\",factor:Math.pow(1e3,6)},{key:\"B\",factor:1}];function x(e){return e.replace(/[-/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}function g(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:\"\",n=3<arguments.length?arguments[3]:void 0,i=4<arguments.length?arguments[4]:void 0,a=5<arguments.length?arguments[5]:void 0,o=6<arguments.length?arguments[6]:void 0;if(\"\"!==e)return e===i?0:function e(t,r){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:\"\",i=3<arguments.length?arguments[3]:void 0,a=4<arguments.length?arguments[4]:void 0,o=5<arguments.length?arguments[5]:void 0,u=6<arguments.length?arguments[6]:void 0;if(!isNaN(+t))return+t;var c=\"\",s=t.replace(/(^[^(]*)\\((.*)\\)([^)]*$)/,\"$1$2$3\");if(s!==t)return-1*e(s,r,n,i,a,o,u);for(var l=0;l<O.length;l++){var f=O[l];if((c=t.replace(f.key,\"\"))!==t)return e(c,r,n,i,a,o,u)*f.factor}if((c=t.replace(\"%\",\"\"))!==t)return e(c,r,n,i,a,o,u)/100;var p=parseFloat(t);if(!isNaN(p)){var g=i(p);if(g&&\".\"!==g&&(c=t.replace(new RegExp(\"\".concat(x(g),\"$\")),\"\"))!==t)return e(c,r,n,i,a,o,u);var h={};Object.keys(o).forEach(function(e){h[o[e]]=e});for(var d=Object.keys(h).sort().reverse(),v=d.length,m=0;m<v;m++){var y=d[m],b=h[y];if((c=t.replace(y,\"\"))!==t){var w=void 0;switch(b){case\"thousand\":w=Math.pow(10,3);break;case\"million\":w=Math.pow(10,6);break;case\"billion\":w=Math.pow(10,9);break;case\"trillion\":w=Math.pow(10,12)}return e(c,r,n,i,a,o,u)*w}}}}(function(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:\"\",n=e.replace(r,\"\");return n=(n=n.replace(new RegExp(\"([0-9])\".concat(x(t.thousands),\"([0-9])\"),\"g\"),\"$1$2\")).replace(t.decimal,\".\")}(e,t,r),t,r,n,i,a,o)}e.exports={unformat:function(e,t){var r,n,i,a=p(\"./globalState\"),o=a.currentDelimiters(),u=a.currentCurrency().symbol,c=a.currentOrdinal(),s=a.getZeroFormat(),l=a.currentAbbreviations(),f=void 0;if(\"string\"==typeof e)f=function(e,t){if(!e.indexOf(\":\")||\":\"===t.thousands)return!1;var r=e.split(\":\");if(3!==r.length)return!1;var n=+r[0],i=+r[1],a=+r[2];return!isNaN(n)&&!isNaN(i)&&!isNaN(a)}(e,o)?(r=e.split(\":\"),n=+r[0],i=+r[1],+r[2]+60*i+3600*n):g(e,o,u,c,s,l,t);else{if(\"number\"!=typeof e)return;f=e}if(void 0!==f)return f}}},{\"./globalState\":4}],10:[function(e,t,r){\"use strict\";function n(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}()}function f(e){return(f=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}var i=e(\"./unformatting\"),a=/^[a-z]{2,3}(-[a-zA-Z]{4})?(-([A-Z]{2}|[0-9]{3}))?$/,p={output:{type:\"string\",validValues:[\"currency\",\"percent\",\"byte\",\"time\",\"ordinal\",\"number\"]},base:{type:\"string\",validValues:[\"decimal\",\"binary\",\"general\"],restriction:function(e,t){return\"byte\"===t.output},message:\"`base` must be provided only when the output is `byte`\",mandatory:function(e){return\"byte\"===e.output}},characteristic:{type:\"number\",restriction:function(e){return 0<=e},message:\"value must be positive\"},prefix:\"string\",postfix:\"string\",forceAverage:{type:\"string\",validValues:[\"trillion\",\"billion\",\"million\",\"thousand\"]},average:\"boolean\",currencyPosition:{type:\"string\",validValues:[\"prefix\",\"infix\",\"postfix\"]},currencySymbol:\"string\",totalLength:{type:\"number\",restrictions:[{restriction:function(e){return 0<=e},message:\"value must be positive\"},{restriction:function(e,t){return!t.exponential},message:\"`totalLength` is incompatible with `exponential`\"}]},mantissa:{type:\"number\",restriction:function(e){return 0<=e},message:\"value must be positive\"},optionalMantissa:\"boolean\",trimMantissa:\"boolean\",optionalCharacteristic:\"boolean\",thousandSeparated:\"boolean\",spaceSeparated:\"boolean\",abbreviations:{type:\"object\",children:{thousand:\"string\",million:\"string\",billion:\"string\",trillion:\"string\"}},negative:{type:\"string\",validValues:[\"sign\",\"parenthesis\"]},forceSign:\"boolean\",exponential:{type:\"boolean\"},prefixSymbol:{type:\"boolean\",restriction:function(e,t){return\"percent\"===t.output},message:\"`prefixSymbol` can be provided only when the output is `percent`\"}},o={languageTag:{type:\"string\",mandatory:!0,restriction:function(e){return e.match(a)},message:\"the language tag must follow the BCP 47 specification (see https://tools.ieft.org/html/bcp47)\"},delimiters:{type:\"object\",children:{thousands:\"string\",decimal:\"string\",thousandsSize:\"number\"},mandatory:!0},abbreviations:{type:\"object\",children:{thousand:{type:\"string\",mandatory:!0},million:{type:\"string\",mandatory:!0},billion:{type:\"string\",mandatory:!0},trillion:{type:\"string\",mandatory:!0}},mandatory:!0},spaceSeparated:\"boolean\",ordinal:{type:\"function\",mandatory:!0},currency:{type:\"object\",children:{symbol:\"string\",position:\"string\",code:\"string\"},mandatory:!0},defaults:\"format\",ordinalFormat:\"format\",byteFormat:\"format\",percentageFormat:\"format\",currencyFormat:\"format\",timeDefaults:\"format\",formats:{type:\"object\",children:{fourDigits:{type:\"format\",mandatory:!0},fullWithTwoDecimals:{type:\"format\",mandatory:!0},fullWithTwoDecimalsNoCurrency:{type:\"format\",mandatory:!0},fullWithNoDecimals:{type:\"format\",mandatory:!0}}}};function u(e){return!!i.unformat(e)}function g(c,s,l){var e=3<arguments.length&&void 0!==arguments[3]&&arguments[3],t=Object.keys(c).map(function(e){if(!s[e])return console.error(\"\".concat(l,\" Invalid key: \").concat(e)),!1;var t=c[e],r=s[e];if(\"string\"==typeof r&&(r={type:r}),\"format\"===r.type){if(!g(t,p,\"[Validate \".concat(e,\"]\"),!0))return!1}else if(f(t)!==r.type)return console.error(\"\".concat(l,\" \").concat(e,' type mismatched: \"').concat(r.type,'\" expected, \"').concat(f(t),'\" provided')),!1;if(r.restrictions&&r.restrictions.length)for(var n=r.restrictions.length,i=0;i<n;i++){var a=r.restrictions[i],o=a.restriction,u=a.message;if(!o(t,c))return console.error(\"\".concat(l,\" \").concat(e,\" invalid value: \").concat(u)),!1}if(r.restriction&&!r.restriction(t,c))return console.error(\"\".concat(l,\" \").concat(e,\" invalid value: \").concat(r.message)),!1;if(r.validValues&&-1===r.validValues.indexOf(t))return console.error(\"\".concat(l,\" \").concat(e,\" invalid value: must be among \").concat(JSON.stringify(r.validValues),', \"').concat(t,'\" provided')),!1;if(r.children&&!g(t,r.children,\"[Validate \".concat(e,\"]\")))return!1;return!0});return e||t.push.apply(t,n(Object.keys(s).map(function(e){var t=s[e];if(\"string\"==typeof t&&(t={type:t}),t.mandatory){var r=t.mandatory;if(\"function\"==typeof r&&(r=r(c)),r&&void 0===c[e])return console.error(\"\".concat(l,' Missing mandatory key \"').concat(e,'\"')),!1}return!0}))),t.reduce(function(e,t){return e&&t},!0)}function c(e){return g(e,p,\"[Validate format]\")}t.exports={validate:function(e,t){var r=u(e),n=c(t);return r&&n},validateFormat:c,validateInput:u,validateLanguage:function(e){return g(e,o,\"[Validate language]\")}}},{\"./unformatting\":9}]},{},[7])(7)});\n//# sourceMappingURL=numbro.min.js.map\n\n\n//# sourceURL=webpack:///./node_modules/numbro/dist/numbro.min.js?");

/***/ }),

/***/ "./node_modules/object-inspect/index.js":
/*!**********************************************!*\
  !*** ./node_modules/object-inspect/index.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(global) {var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n    ? Symbol.toStringTag\n    : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n    [].__proto__ === Array.prototype // eslint-disable-line no-proto\n        ? function (O) {\n            return O.__proto__; // eslint-disable-line no-proto\n        }\n        : null\n);\n\nfunction addNumericSeparator(num, str) {\n    if (\n        num === Infinity\n        || num === -Infinity\n        || num !== num\n        || (num && num > -1000 && num < 1000)\n        || $test.call(/e/, str)\n    ) {\n        return str;\n    }\n    var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n    if (typeof num === 'number') {\n        var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n        if (int !== num) {\n            var intStr = String(int);\n            var dec = $slice.call(str, intStr.length + 1);\n            return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n        }\n    }\n    return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = __webpack_require__(/*! ./util.inspect */ 7);\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n    var opts = options || {};\n\n    if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n        throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n    }\n    if (\n        has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n            ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n            : opts.maxStringLength !== null\n        )\n    ) {\n        throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n    }\n    var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n    if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n        throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n    }\n\n    if (\n        has(opts, 'indent')\n        && opts.indent !== null\n        && opts.indent !== '\\t'\n        && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n    ) {\n        throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n    }\n    if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n        throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n    }\n    var numericSeparator = opts.numericSeparator;\n\n    if (typeof obj === 'undefined') {\n        return 'undefined';\n    }\n    if (obj === null) {\n        return 'null';\n    }\n    if (typeof obj === 'boolean') {\n        return obj ? 'true' : 'false';\n    }\n\n    if (typeof obj === 'string') {\n        return inspectString(obj, opts);\n    }\n    if (typeof obj === 'number') {\n        if (obj === 0) {\n            return Infinity / obj > 0 ? '0' : '-0';\n        }\n        var str = String(obj);\n        return numericSeparator ? addNumericSeparator(obj, str) : str;\n    }\n    if (typeof obj === 'bigint') {\n        var bigIntStr = String(obj) + 'n';\n        return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n    }\n\n    var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n    if (typeof depth === 'undefined') { depth = 0; }\n    if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n        return isArray(obj) ? '[Array]' : '[Object]';\n    }\n\n    var indent = getIndent(opts, depth);\n\n    if (typeof seen === 'undefined') {\n        seen = [];\n    } else if (indexOf(seen, obj) >= 0) {\n        return '[Circular]';\n    }\n\n    function inspect(value, from, noIndent) {\n        if (from) {\n            seen = $arrSlice.call(seen);\n            seen.push(from);\n        }\n        if (noIndent) {\n            var newOpts = {\n                depth: opts.depth\n            };\n            if (has(opts, 'quoteStyle')) {\n                newOpts.quoteStyle = opts.quoteStyle;\n            }\n            return inspect_(value, newOpts, depth + 1, seen);\n        }\n        return inspect_(value, opts, depth + 1, seen);\n    }\n\n    if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n        var name = nameOf(obj);\n        var keys = arrObjKeys(obj, inspect);\n        return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n    }\n    if (isSymbol(obj)) {\n        var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n        return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n    }\n    if (isElement(obj)) {\n        var s = '<' + $toLowerCase.call(String(obj.nodeName));\n        var attrs = obj.attributes || [];\n        for (var i = 0; i < attrs.length; i++) {\n            s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n        }\n        s += '>';\n        if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n        s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n        return s;\n    }\n    if (isArray(obj)) {\n        if (obj.length === 0) { return '[]'; }\n        var xs = arrObjKeys(obj, inspect);\n        if (indent && !singleLineValues(xs)) {\n            return '[' + indentedJoin(xs, indent) + ']';\n        }\n        return '[ ' + $join.call(xs, ', ') + ' ]';\n    }\n    if (isError(obj)) {\n        var parts = arrObjKeys(obj, inspect);\n        if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n            return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n        }\n        if (parts.length === 0) { return '[' + String(obj) + ']'; }\n        return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n    }\n    if (typeof obj === 'object' && customInspect) {\n        if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n            return utilInspect(obj, { depth: maxDepth - depth });\n        } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n            return obj.inspect();\n        }\n    }\n    if (isMap(obj)) {\n        var mapParts = [];\n        if (mapForEach) {\n            mapForEach.call(obj, function (value, key) {\n                mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n            });\n        }\n        return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n    }\n    if (isSet(obj)) {\n        var setParts = [];\n        if (setForEach) {\n            setForEach.call(obj, function (value) {\n                setParts.push(inspect(value, obj));\n            });\n        }\n        return collectionOf('Set', setSize.call(obj), setParts, indent);\n    }\n    if (isWeakMap(obj)) {\n        return weakCollectionOf('WeakMap');\n    }\n    if (isWeakSet(obj)) {\n        return weakCollectionOf('WeakSet');\n    }\n    if (isWeakRef(obj)) {\n        return weakCollectionOf('WeakRef');\n    }\n    if (isNumber(obj)) {\n        return markBoxed(inspect(Number(obj)));\n    }\n    if (isBigInt(obj)) {\n        return markBoxed(inspect(bigIntValueOf.call(obj)));\n    }\n    if (isBoolean(obj)) {\n        return markBoxed(booleanValueOf.call(obj));\n    }\n    if (isString(obj)) {\n        return markBoxed(inspect(String(obj)));\n    }\n    // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n    /* eslint-env browser */\n    if (typeof window !== 'undefined' && obj === window) {\n        return '{ [object Window] }';\n    }\n    if (\n        (typeof globalThis !== 'undefined' && obj === globalThis)\n        || (typeof global !== 'undefined' && obj === global)\n    ) {\n        return '{ [object globalThis] }';\n    }\n    if (!isDate(obj) && !isRegExp(obj)) {\n        var ys = arrObjKeys(obj, inspect);\n        var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n        var protoTag = obj instanceof Object ? '' : 'null prototype';\n        var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n        var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n        var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n        if (ys.length === 0) { return tag + '{}'; }\n        if (indent) {\n            return tag + '{' + indentedJoin(ys, indent) + '}';\n        }\n        return tag + '{ ' + $join.call(ys, ', ') + ' }';\n    }\n    return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n    var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n    return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n    return $replace.call(String(s), /\"/g, '&quot;');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n    if (hasShammedSymbols) {\n        return obj && typeof obj === 'object' && obj instanceof Symbol;\n    }\n    if (typeof obj === 'symbol') {\n        return true;\n    }\n    if (!obj || typeof obj !== 'object' || !symToString) {\n        return false;\n    }\n    try {\n        symToString.call(obj);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nfunction isBigInt(obj) {\n    if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n        return false;\n    }\n    try {\n        bigIntValueOf.call(obj);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n    return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n    return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n    if (f.name) { return f.name; }\n    var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n    if (m) { return m[1]; }\n    return null;\n}\n\nfunction indexOf(xs, x) {\n    if (xs.indexOf) { return xs.indexOf(x); }\n    for (var i = 0, l = xs.length; i < l; i++) {\n        if (xs[i] === x) { return i; }\n    }\n    return -1;\n}\n\nfunction isMap(x) {\n    if (!mapSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        mapSize.call(x);\n        try {\n            setSize.call(x);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof Map; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakMap(x) {\n    if (!weakMapHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakMapHas.call(x, weakMapHas);\n        try {\n            weakSetHas.call(x, weakSetHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakRef(x) {\n    if (!weakRefDeref || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakRefDeref.call(x);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nfunction isSet(x) {\n    if (!setSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        setSize.call(x);\n        try {\n            mapSize.call(x);\n        } catch (m) {\n            return true;\n        }\n        return x instanceof Set; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakSet(x) {\n    if (!weakSetHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakSetHas.call(x, weakSetHas);\n        try {\n            weakMapHas.call(x, weakMapHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isElement(x) {\n    if (!x || typeof x !== 'object') { return false; }\n    if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n        return true;\n    }\n    return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n    if (str.length > opts.maxStringLength) {\n        var remaining = str.length - opts.maxStringLength;\n        var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n        return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n    }\n    // eslint-disable-next-line no-control-regex\n    var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n    return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n    var n = c.charCodeAt(0);\n    var x = {\n        8: 'b',\n        9: 't',\n        10: 'n',\n        12: 'f',\n        13: 'r'\n    }[n];\n    if (x) { return '\\\\' + x; }\n    return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n    return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n    return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n    var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n    return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n    for (var i = 0; i < xs.length; i++) {\n        if (indexOf(xs[i], '\\n') >= 0) {\n            return false;\n        }\n    }\n    return true;\n}\n\nfunction getIndent(opts, depth) {\n    var baseIndent;\n    if (opts.indent === '\\t') {\n        baseIndent = '\\t';\n    } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n        baseIndent = $join.call(Array(opts.indent + 1), ' ');\n    } else {\n        return null;\n    }\n    return {\n        base: baseIndent,\n        prev: $join.call(Array(depth + 1), baseIndent)\n    };\n}\n\nfunction indentedJoin(xs, indent) {\n    if (xs.length === 0) { return ''; }\n    var lineJoiner = '\\n' + indent.prev + indent.base;\n    return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n    var isArr = isArray(obj);\n    var xs = [];\n    if (isArr) {\n        xs.length = obj.length;\n        for (var i = 0; i < obj.length; i++) {\n            xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n        }\n    }\n    var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n    var symMap;\n    if (hasShammedSymbols) {\n        symMap = {};\n        for (var k = 0; k < syms.length; k++) {\n            symMap['$' + syms[k]] = syms[k];\n        }\n    }\n\n    for (var key in obj) { // eslint-disable-line no-restricted-syntax\n        if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n            // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n            continue; // eslint-disable-line no-restricted-syntax, no-continue\n        } else if ($test.call(/[^\\w$]/, key)) {\n            xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n        } else {\n            xs.push(key + ': ' + inspect(obj[key], obj));\n        }\n    }\n    if (typeof gOPS === 'function') {\n        for (var j = 0; j < syms.length; j++) {\n            if (isEnumerable.call(obj, syms[j])) {\n                xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n            }\n        }\n    }\n    return xs;\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/object-inspect/index.js?");

/***/ }),

/***/ "./node_modules/path-browserify/index.js":
/*!***********************************************!*\
  !*** ./node_modules/path-browserify/index.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(process) {// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n  // if the path tries to go above the root, `up` ends up > 0\n  var up = 0;\n  for (var i = parts.length - 1; i >= 0; i--) {\n    var last = parts[i];\n    if (last === '.') {\n      parts.splice(i, 1);\n    } else if (last === '..') {\n      parts.splice(i, 1);\n      up++;\n    } else if (up) {\n      parts.splice(i, 1);\n      up--;\n    }\n  }\n\n  // if the path is allowed to go above the root, restore leading ..s\n  if (allowAboveRoot) {\n    for (; up--; up) {\n      parts.unshift('..');\n    }\n  }\n\n  return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n  var resolvedPath = '',\n      resolvedAbsolute = false;\n\n  for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n    var path = (i >= 0) ? arguments[i] : process.cwd();\n\n    // Skip empty and invalid entries\n    if (typeof path !== 'string') {\n      throw new TypeError('Arguments to path.resolve must be strings');\n    } else if (!path) {\n      continue;\n    }\n\n    resolvedPath = path + '/' + resolvedPath;\n    resolvedAbsolute = path.charAt(0) === '/';\n  }\n\n  // At this point the path should be resolved to a full absolute path, but\n  // handle relative paths to be safe (might happen when process.cwd() fails)\n\n  // Normalize the path\n  resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n    return !!p;\n  }), !resolvedAbsolute).join('/');\n\n  return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n  var isAbsolute = exports.isAbsolute(path),\n      trailingSlash = substr(path, -1) === '/';\n\n  // Normalize the path\n  path = normalizeArray(filter(path.split('/'), function(p) {\n    return !!p;\n  }), !isAbsolute).join('/');\n\n  if (!path && !isAbsolute) {\n    path = '.';\n  }\n  if (path && trailingSlash) {\n    path += '/';\n  }\n\n  return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n  return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n  var paths = Array.prototype.slice.call(arguments, 0);\n  return exports.normalize(filter(paths, function(p, index) {\n    if (typeof p !== 'string') {\n      throw new TypeError('Arguments to path.join must be strings');\n    }\n    return p;\n  }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n  from = exports.resolve(from).substr(1);\n  to = exports.resolve(to).substr(1);\n\n  function trim(arr) {\n    var start = 0;\n    for (; start < arr.length; start++) {\n      if (arr[start] !== '') break;\n    }\n\n    var end = arr.length - 1;\n    for (; end >= 0; end--) {\n      if (arr[end] !== '') break;\n    }\n\n    if (start > end) return [];\n    return arr.slice(start, end - start + 1);\n  }\n\n  var fromParts = trim(from.split('/'));\n  var toParts = trim(to.split('/'));\n\n  var length = Math.min(fromParts.length, toParts.length);\n  var samePartsLength = length;\n  for (var i = 0; i < length; i++) {\n    if (fromParts[i] !== toParts[i]) {\n      samePartsLength = i;\n      break;\n    }\n  }\n\n  var outputParts = [];\n  for (var i = samePartsLength; i < fromParts.length; i++) {\n    outputParts.push('..');\n  }\n\n  outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n  return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n  if (typeof path !== 'string') path = path + '';\n  if (path.length === 0) return '.';\n  var code = path.charCodeAt(0);\n  var hasRoot = code === 47 /*/*/;\n  var end = -1;\n  var matchedSlash = true;\n  for (var i = path.length - 1; i >= 1; --i) {\n    code = path.charCodeAt(i);\n    if (code === 47 /*/*/) {\n        if (!matchedSlash) {\n          end = i;\n          break;\n        }\n      } else {\n      // We saw the first non-path separator\n      matchedSlash = false;\n    }\n  }\n\n  if (end === -1) return hasRoot ? '/' : '.';\n  if (hasRoot && end === 1) {\n    // return '//';\n    // Backwards-compat fix:\n    return '/';\n  }\n  return path.slice(0, end);\n};\n\nfunction basename(path) {\n  if (typeof path !== 'string') path = path + '';\n\n  var start = 0;\n  var end = -1;\n  var matchedSlash = true;\n  var i;\n\n  for (i = path.length - 1; i >= 0; --i) {\n    if (path.charCodeAt(i) === 47 /*/*/) {\n        // If we reached a path separator that was not part of a set of path\n        // separators at the end of the string, stop now\n        if (!matchedSlash) {\n          start = i + 1;\n          break;\n        }\n      } else if (end === -1) {\n      // We saw the first non-path separator, mark this as the end of our\n      // path component\n      matchedSlash = false;\n      end = i + 1;\n    }\n  }\n\n  if (end === -1) return '';\n  return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n  var f = basename(path);\n  if (ext && f.substr(-1 * ext.length) === ext) {\n    f = f.substr(0, f.length - ext.length);\n  }\n  return f;\n};\n\nexports.extname = function (path) {\n  if (typeof path !== 'string') path = path + '';\n  var startDot = -1;\n  var startPart = 0;\n  var end = -1;\n  var matchedSlash = true;\n  // Track the state of characters (if any) we see before our first dot and\n  // after any path separator we find\n  var preDotState = 0;\n  for (var i = path.length - 1; i >= 0; --i) {\n    var code = path.charCodeAt(i);\n    if (code === 47 /*/*/) {\n        // If we reached a path separator that was not part of a set of path\n        // separators at the end of the string, stop now\n        if (!matchedSlash) {\n          startPart = i + 1;\n          break;\n        }\n        continue;\n      }\n    if (end === -1) {\n      // We saw the first non-path separator, mark this as the end of our\n      // extension\n      matchedSlash = false;\n      end = i + 1;\n    }\n    if (code === 46 /*.*/) {\n        // If this is our first dot, mark it as the start of our extension\n        if (startDot === -1)\n          startDot = i;\n        else if (preDotState !== 1)\n          preDotState = 1;\n    } else if (startDot !== -1) {\n      // We saw a non-dot and non-path separator before our dot, so we should\n      // have a good chance at having a non-empty extension\n      preDotState = -1;\n    }\n  }\n\n  if (startDot === -1 || end === -1 ||\n      // We saw a non-dot character immediately before the dot\n      preDotState === 0 ||\n      // The (right-most) trimmed path component is exactly '..'\n      preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n    return '';\n  }\n  return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n    if (xs.filter) return xs.filter(f);\n    var res = [];\n    for (var i = 0; i < xs.length; i++) {\n        if (f(xs[i], i, xs)) res.push(xs[i]);\n    }\n    return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n    ? function (str, start, len) { return str.substr(start, len) }\n    : function (str, start, len) {\n        if (start < 0) start = str.length + start;\n        return str.substr(start, len);\n    }\n;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node-libs-browser/mock/process.js */ \"./node_modules/node-libs-browser/mock/process.js\")))\n\n//# sourceURL=webpack:///./node_modules/path-browserify/index.js?");

/***/ }),

/***/ "./node_modules/path-to-regexp/index.js":
/*!**********************************************!*\
  !*** ./node_modules/path-to-regexp/index.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/'\nvar DEFAULT_DELIMITERS = './'\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n  // Match escaped characters that would otherwise appear in future matches.\n  // This allows the user to escape special characters that won't transform.\n  '(\\\\\\\\.)',\n  // Match Express-style parameters and un-named parameters with a prefix\n  // and optional suffixes. Matches appear as:\n  //\n  // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n  // \"(\\\\d+)\"  => [undefined, undefined, \"\\d+\", undefined]\n  '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param  {string}  str\n * @param  {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n  var tokens = []\n  var key = 0\n  var index = 0\n  var path = ''\n  var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER\n  var delimiters = (options && options.delimiters) || DEFAULT_DELIMITERS\n  var pathEscaped = false\n  var res\n\n  while ((res = PATH_REGEXP.exec(str)) !== null) {\n    var m = res[0]\n    var escaped = res[1]\n    var offset = res.index\n    path += str.slice(index, offset)\n    index = offset + m.length\n\n    // Ignore already escaped sequences.\n    if (escaped) {\n      path += escaped[1]\n      pathEscaped = true\n      continue\n    }\n\n    var prev = ''\n    var next = str[index]\n    var name = res[2]\n    var capture = res[3]\n    var group = res[4]\n    var modifier = res[5]\n\n    if (!pathEscaped && path.length) {\n      var k = path.length - 1\n\n      if (delimiters.indexOf(path[k]) > -1) {\n        prev = path[k]\n        path = path.slice(0, k)\n      }\n    }\n\n    // Push the current path onto the tokens.\n    if (path) {\n      tokens.push(path)\n      path = ''\n      pathEscaped = false\n    }\n\n    var partial = prev !== '' && next !== undefined && next !== prev\n    var repeat = modifier === '+' || modifier === '*'\n    var optional = modifier === '?' || modifier === '*'\n    var delimiter = prev || defaultDelimiter\n    var pattern = capture || group\n\n    tokens.push({\n      name: name || key++,\n      prefix: prev,\n      delimiter: delimiter,\n      optional: optional,\n      repeat: repeat,\n      partial: partial,\n      pattern: pattern ? escapeGroup(pattern) : '[^' + escapeString(delimiter) + ']+?'\n    })\n  }\n\n  // Push any remaining characters.\n  if (path || index < str.length) {\n    tokens.push(path + str.substr(index))\n  }\n\n  return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param  {string}             str\n * @param  {Object=}            options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n  return tokensToFunction(parse(str, options))\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n  // Compile all the tokens into regexps.\n  var matches = new Array(tokens.length)\n\n  // Compile all the patterns before compilation.\n  for (var i = 0; i < tokens.length; i++) {\n    if (typeof tokens[i] === 'object') {\n      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n    }\n  }\n\n  return function (data, options) {\n    var path = ''\n    var encode = (options && options.encode) || encodeURIComponent\n\n    for (var i = 0; i < tokens.length; i++) {\n      var token = tokens[i]\n\n      if (typeof token === 'string') {\n        path += token\n        continue\n      }\n\n      var value = data ? data[token.name] : undefined\n      var segment\n\n      if (Array.isArray(value)) {\n        if (!token.repeat) {\n          throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n        }\n\n        if (value.length === 0) {\n          if (token.optional) continue\n\n          throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n        }\n\n        for (var j = 0; j < value.length; j++) {\n          segment = encode(value[j], token)\n\n          if (!matches[i].test(segment)) {\n            throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n          }\n\n          path += (j === 0 ? token.prefix : token.delimiter) + segment\n        }\n\n        continue\n      }\n\n      if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n        segment = encode(String(value), token)\n\n        if (!matches[i].test(segment)) {\n          throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n        }\n\n        path += token.prefix + segment\n        continue\n      }\n\n      if (token.optional) {\n        // Prepend partial segment prefixes.\n        if (token.partial) path += token.prefix\n\n        continue\n      }\n\n      throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n    }\n\n    return path\n  }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param  {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n  return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param  {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n  return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param  {Object} options\n * @return {string}\n */\nfunction flags (options) {\n  return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param  {!RegExp} path\n * @param  {Array=}  keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n  if (!keys) return path\n\n  // Use a negative lookahead to match only capturing groups.\n  var groups = path.source.match(/\\((?!\\?)/g)\n\n  if (groups) {\n    for (var i = 0; i < groups.length; i++) {\n      keys.push({\n        name: i,\n        prefix: null,\n        delimiter: null,\n        optional: false,\n        repeat: false,\n        partial: false,\n        pattern: null\n      })\n    }\n  }\n\n  return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param  {!Array}  path\n * @param  {Array=}  keys\n * @param  {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n  var parts = []\n\n  for (var i = 0; i < path.length; i++) {\n    parts.push(pathToRegexp(path[i], keys, options).source)\n  }\n\n  return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param  {string}  path\n * @param  {Array=}  keys\n * @param  {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n  return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param  {!Array}  tokens\n * @param  {Array=}  keys\n * @param  {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n  options = options || {}\n\n  var strict = options.strict\n  var start = options.start !== false\n  var end = options.end !== false\n  var delimiter = escapeString(options.delimiter || DEFAULT_DELIMITER)\n  var delimiters = options.delimiters || DEFAULT_DELIMITERS\n  var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|')\n  var route = start ? '^' : ''\n  var isEndDelimited = tokens.length === 0\n\n  // Iterate over the tokens and create our regexp string.\n  for (var i = 0; i < tokens.length; i++) {\n    var token = tokens[i]\n\n    if (typeof token === 'string') {\n      route += escapeString(token)\n      isEndDelimited = i === tokens.length - 1 && delimiters.indexOf(token[token.length - 1]) > -1\n    } else {\n      var capture = token.repeat\n        ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n        : token.pattern\n\n      if (keys) keys.push(token)\n\n      if (token.optional) {\n        if (token.partial) {\n          route += escapeString(token.prefix) + '(' + capture + ')?'\n        } else {\n          route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?'\n        }\n      } else {\n        route += escapeString(token.prefix) + '(' + capture + ')'\n      }\n    }\n  }\n\n  if (end) {\n    if (!strict) route += '(?:' + delimiter + ')?'\n\n    route += endsWith === '$' ? '$' : '(?=' + endsWith + ')'\n  } else {\n    if (!strict) route += '(?:' + delimiter + '(?=' + endsWith + '))?'\n    if (!isEndDelimited) route += '(?=' + delimiter + '|' + endsWith + ')'\n  }\n\n  return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param  {(string|RegExp|Array)} path\n * @param  {Array=}                keys\n * @param  {Object=}               options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n  if (path instanceof RegExp) {\n    return regexpToRegexp(path, keys)\n  }\n\n  if (Array.isArray(path)) {\n    return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n  }\n\n  return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n\n\n//# sourceURL=webpack:///./node_modules/path-to-regexp/index.js?");

/***/ }),

/***/ "./node_modules/pdfjs-dist/legacy/build/pdf.js":
/*!*****************************************************!*\
  !*** ./node_modules/pdfjs-dist/legacy/build/pdf.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(Buffer, process, global) {/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(globalThis, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.UNSUPPORTED_FEATURES = exports.TextRenderingMode = exports.StreamType = exports.RenderingIntentFlag = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.LINE_FACTOR = exports.LINE_DESCENT_FACTOR = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMode = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationEditorType = exports.AnnotationEditorPrefix = exports.AnnotationEditorParamsType = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0;\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.escapeString = escapeString;\nexports.getModificationDate = getModificationDate;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isAscii = isAscii;\nexports.objectFromMap = objectFromMap;\nexports.objectSize = objectSize;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF16BEString = stringToUTF16BEString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.unreachable = unreachable;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\n\n__w_pdfjs_require__(2);\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nconst LINE_FACTOR = 1.35;\nexports.LINE_FACTOR = LINE_FACTOR;\nconst LINE_DESCENT_FACTOR = 0.35;\nexports.LINE_DESCENT_FACTOR = LINE_DESCENT_FACTOR;\nconst RenderingIntentFlag = {\n  ANY: 0x01,\n  DISPLAY: 0x02,\n  PRINT: 0x04,\n  ANNOTATIONS_FORMS: 0x10,\n  ANNOTATIONS_STORAGE: 0x20,\n  ANNOTATIONS_DISABLE: 0x40,\n  OPLIST: 0x100\n};\nexports.RenderingIntentFlag = RenderingIntentFlag;\nconst AnnotationMode = {\n  DISABLE: 0,\n  ENABLE: 1,\n  ENABLE_FORMS: 2,\n  ENABLE_STORAGE: 3\n};\nexports.AnnotationMode = AnnotationMode;\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nexports.AnnotationEditorPrefix = AnnotationEditorPrefix;\nconst AnnotationEditorType = {\n  DISABLE: -1,\n  NONE: 0,\n  FREETEXT: 3,\n  INK: 15\n};\nexports.AnnotationEditorType = AnnotationEditorType;\nconst AnnotationEditorParamsType = {\n  FREETEXT_SIZE: 1,\n  FREETEXT_COLOR: 2,\n  FREETEXT_OPACITY: 3,\n  INK_COLOR: 11,\n  INK_THICKNESS: 12,\n  INK_OPACITY: 13\n};\nexports.AnnotationEditorParamsType = AnnotationEditorParamsType;\nconst PermissionFlag = {\n  PRINT: 0x04,\n  MODIFY_CONTENTS: 0x08,\n  COPY: 0x10,\n  MODIFY_ANNOTATIONS: 0x20,\n  FILL_INTERACTIVE_FORMS: 0x100,\n  COPY_FOR_ACCESSIBILITY: 0x200,\n  ASSEMBLE: 0x400,\n  PRINT_HIGH_QUALITY: 0x800\n};\nexports.PermissionFlag = PermissionFlag;\nconst TextRenderingMode = {\n  FILL: 0,\n  STROKE: 1,\n  FILL_STROKE: 2,\n  INVISIBLE: 3,\n  FILL_ADD_TO_PATH: 4,\n  STROKE_ADD_TO_PATH: 5,\n  FILL_STROKE_ADD_TO_PATH: 6,\n  ADD_TO_PATH: 7,\n  FILL_STROKE_MASK: 3,\n  ADD_TO_PATH_FLAG: 4\n};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n  GRAYSCALE_1BPP: 1,\n  RGB_24BPP: 2,\n  RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\nconst AnnotationType = {\n  TEXT: 1,\n  LINK: 2,\n  FREETEXT: 3,\n  LINE: 4,\n  SQUARE: 5,\n  CIRCLE: 6,\n  POLYGON: 7,\n  POLYLINE: 8,\n  HIGHLIGHT: 9,\n  UNDERLINE: 10,\n  SQUIGGLY: 11,\n  STRIKEOUT: 12,\n  STAMP: 13,\n  CARET: 14,\n  INK: 15,\n  POPUP: 16,\n  FILEATTACHMENT: 17,\n  SOUND: 18,\n  MOVIE: 19,\n  WIDGET: 20,\n  SCREEN: 21,\n  PRINTERMARK: 22,\n  TRAPNET: 23,\n  WATERMARK: 24,\n  THREED: 25,\n  REDACT: 26\n};\nexports.AnnotationType = AnnotationType;\nconst AnnotationStateModelType = {\n  MARKED: \"Marked\",\n  REVIEW: \"Review\"\n};\nexports.AnnotationStateModelType = AnnotationStateModelType;\nconst AnnotationMarkedState = {\n  MARKED: \"Marked\",\n  UNMARKED: \"Unmarked\"\n};\nexports.AnnotationMarkedState = AnnotationMarkedState;\nconst AnnotationReviewState = {\n  ACCEPTED: \"Accepted\",\n  REJECTED: \"Rejected\",\n  CANCELLED: \"Cancelled\",\n  COMPLETED: \"Completed\",\n  NONE: \"None\"\n};\nexports.AnnotationReviewState = AnnotationReviewState;\nconst AnnotationReplyType = {\n  GROUP: \"Group\",\n  REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\nconst AnnotationFlag = {\n  INVISIBLE: 0x01,\n  HIDDEN: 0x02,\n  PRINT: 0x04,\n  NOZOOM: 0x08,\n  NOROTATE: 0x10,\n  NOVIEW: 0x20,\n  READONLY: 0x40,\n  LOCKED: 0x80,\n  TOGGLENOVIEW: 0x100,\n  LOCKEDCONTENTS: 0x200\n};\nexports.AnnotationFlag = AnnotationFlag;\nconst AnnotationFieldFlag = {\n  READONLY: 0x0000001,\n  REQUIRED: 0x0000002,\n  NOEXPORT: 0x0000004,\n  MULTILINE: 0x0001000,\n  PASSWORD: 0x0002000,\n  NOTOGGLETOOFF: 0x0004000,\n  RADIO: 0x0008000,\n  PUSHBUTTON: 0x0010000,\n  COMBO: 0x0020000,\n  EDIT: 0x0040000,\n  SORT: 0x0080000,\n  FILESELECT: 0x0100000,\n  MULTISELECT: 0x0200000,\n  DONOTSPELLCHECK: 0x0400000,\n  DONOTSCROLL: 0x0800000,\n  COMB: 0x1000000,\n  RICHTEXT: 0x2000000,\n  RADIOSINUNISON: 0x2000000,\n  COMMITONSELCHANGE: 0x4000000\n};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n  SOLID: 1,\n  DASHED: 2,\n  BEVELED: 3,\n  INSET: 4,\n  UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nconst AnnotationActionEventType = {\n  E: \"Mouse Enter\",\n  X: \"Mouse Exit\",\n  D: \"Mouse Down\",\n  U: \"Mouse Up\",\n  Fo: \"Focus\",\n  Bl: \"Blur\",\n  PO: \"PageOpen\",\n  PC: \"PageClose\",\n  PV: \"PageVisible\",\n  PI: \"PageInvisible\",\n  K: \"Keystroke\",\n  F: \"Format\",\n  V: \"Validate\",\n  C: \"Calculate\"\n};\nexports.AnnotationActionEventType = AnnotationActionEventType;\nconst DocumentActionEventType = {\n  WC: \"WillClose\",\n  WS: \"WillSave\",\n  DS: \"DidSave\",\n  WP: \"WillPrint\",\n  DP: \"DidPrint\"\n};\nexports.DocumentActionEventType = DocumentActionEventType;\nconst PageActionEventType = {\n  O: \"PageOpen\",\n  C: \"PageClose\"\n};\nexports.PageActionEventType = PageActionEventType;\nconst StreamType = {\n  UNKNOWN: \"UNKNOWN\",\n  FLATE: \"FLATE\",\n  LZW: \"LZW\",\n  DCT: \"DCT\",\n  JPX: \"JPX\",\n  JBIG: \"JBIG\",\n  A85: \"A85\",\n  AHX: \"AHX\",\n  CCF: \"CCF\",\n  RLX: \"RLX\"\n};\nexports.StreamType = StreamType;\nconst FontType = {\n  UNKNOWN: \"UNKNOWN\",\n  TYPE1: \"TYPE1\",\n  TYPE1STANDARD: \"TYPE1STANDARD\",\n  TYPE1C: \"TYPE1C\",\n  CIDFONTTYPE0: \"CIDFONTTYPE0\",\n  CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n  TRUETYPE: \"TRUETYPE\",\n  CIDFONTTYPE2: \"CIDFONTTYPE2\",\n  TYPE3: \"TYPE3\",\n  OPENTYPE: \"OPENTYPE\",\n  TYPE0: \"TYPE0\",\n  MMTYPE1: \"MMTYPE1\"\n};\nexports.FontType = FontType;\nconst VerbosityLevel = {\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n  NONE: 0,\n  BINARY: 1,\n  STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\n  dependency: 1,\n  setLineWidth: 2,\n  setLineCap: 3,\n  setLineJoin: 4,\n  setMiterLimit: 5,\n  setDash: 6,\n  setRenderingIntent: 7,\n  setFlatness: 8,\n  setGState: 9,\n  save: 10,\n  restore: 11,\n  transform: 12,\n  moveTo: 13,\n  lineTo: 14,\n  curveTo: 15,\n  curveTo2: 16,\n  curveTo3: 17,\n  closePath: 18,\n  rectangle: 19,\n  stroke: 20,\n  closeStroke: 21,\n  fill: 22,\n  eoFill: 23,\n  fillStroke: 24,\n  eoFillStroke: 25,\n  closeFillStroke: 26,\n  closeEOFillStroke: 27,\n  endPath: 28,\n  clip: 29,\n  eoClip: 30,\n  beginText: 31,\n  endText: 32,\n  setCharSpacing: 33,\n  setWordSpacing: 34,\n  setHScale: 35,\n  setLeading: 36,\n  setFont: 37,\n  setTextRenderingMode: 38,\n  setTextRise: 39,\n  moveText: 40,\n  setLeadingMoveText: 41,\n  setTextMatrix: 42,\n  nextLine: 43,\n  showText: 44,\n  showSpacedText: 45,\n  nextLineShowText: 46,\n  nextLineSetSpacingShowText: 47,\n  setCharWidth: 48,\n  setCharWidthAndBounds: 49,\n  setStrokeColorSpace: 50,\n  setFillColorSpace: 51,\n  setStrokeColor: 52,\n  setStrokeColorN: 53,\n  setFillColor: 54,\n  setFillColorN: 55,\n  setStrokeGray: 56,\n  setFillGray: 57,\n  setStrokeRGBColor: 58,\n  setFillRGBColor: 59,\n  setStrokeCMYKColor: 60,\n  setFillCMYKColor: 61,\n  shadingFill: 62,\n  beginInlineImage: 63,\n  beginImageData: 64,\n  endInlineImage: 65,\n  paintXObject: 66,\n  markPoint: 67,\n  markPointProps: 68,\n  beginMarkedContent: 69,\n  beginMarkedContentProps: 70,\n  endMarkedContent: 71,\n  beginCompat: 72,\n  endCompat: 73,\n  paintFormXObjectBegin: 74,\n  paintFormXObjectEnd: 75,\n  beginGroup: 76,\n  endGroup: 77,\n  beginAnnotations: 78,\n  endAnnotations: 79,\n  beginAnnotation: 80,\n  endAnnotation: 81,\n  paintJpegXObject: 82,\n  paintImageMaskXObject: 83,\n  paintImageMaskXObjectGroup: 84,\n  paintImageXObject: 85,\n  paintInlineImageXObject: 86,\n  paintInlineImageXObjectGroup: 87,\n  paintImageXObjectRepeat: 88,\n  paintImageMaskXObjectRepeat: 89,\n  paintSolidColorImageMask: 90,\n  constructPath: 91\n};\nexports.OPS = OPS;\nconst UNSUPPORTED_FEATURES = {\n  unknown: \"unknown\",\n  forms: \"forms\",\n  javaScript: \"javaScript\",\n  signatures: \"signatures\",\n  smask: \"smask\",\n  shadingPattern: \"shadingPattern\",\n  font: \"font\",\n  errorTilingPattern: \"errorTilingPattern\",\n  errorExtGState: \"errorExtGState\",\n  errorXObject: \"errorXObject\",\n  errorFontLoadType3: \"errorFontLoadType3\",\n  errorFontState: \"errorFontState\",\n  errorFontMissing: \"errorFontMissing\",\n  errorFontTranslate: \"errorFontTranslate\",\n  errorColorSpace: \"errorColorSpace\",\n  errorOperatorList: \"errorOperatorList\",\n  errorFontToUnicode: \"errorFontToUnicode\",\n  errorFontLoadNative: \"errorFontLoadNative\",\n  errorFontBuildPath: \"errorFontBuildPath\",\n  errorFontGetPath: \"errorFontGetPath\",\n  errorMarkedContent: \"errorMarkedContent\",\n  errorContentSubStream: \"errorContentSubStream\"\n};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nconst PasswordResponses = {\n  NEED_PASSWORD: 1,\n  INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n  if (Number.isInteger(level)) {\n    verbosity = level;\n  }\n}\n\nfunction getVerbosityLevel() {\n  return verbosity;\n}\n\nfunction info(msg) {\n  if (verbosity >= VerbosityLevel.INFOS) {\n    console.log(`Info: ${msg}`);\n  }\n}\n\nfunction warn(msg) {\n  if (verbosity >= VerbosityLevel.WARNINGS) {\n    console.log(`Warning: ${msg}`);\n  }\n}\n\nfunction unreachable(msg) {\n  throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n  if (!cond) {\n    unreachable(msg);\n  }\n}\n\nfunction _isValidProtocol(url) {\n  if (!url) {\n    return false;\n  }\n\n  switch (url.protocol) {\n    case \"http:\":\n    case \"https:\":\n    case \"ftp:\":\n    case \"mailto:\":\n    case \"tel:\":\n      return true;\n\n    default:\n      return false;\n  }\n}\n\nfunction createValidAbsoluteUrl(url) {\n  let baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n  let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n  if (!url) {\n    return null;\n  }\n\n  try {\n    if (options && typeof url === \"string\") {\n      if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n        const dots = url.match(/\\./g);\n\n        if (dots && dots.length >= 2) {\n          url = `http://${url}`;\n        }\n      }\n\n      if (options.tryConvertEncoding) {\n        try {\n          url = stringToUTF8String(url);\n        } catch (ex) {}\n      }\n    }\n\n    const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n\n    if (_isValidProtocol(absoluteUrl)) {\n      return absoluteUrl;\n    }\n  } catch (ex) {}\n\n  return null;\n}\n\nfunction shadow(obj, prop, value) {\n  Object.defineProperty(obj, prop, {\n    value,\n    enumerable: true,\n    configurable: true,\n    writable: false\n  });\n  return value;\n}\n\nconst BaseException = function BaseExceptionClosure() {\n  function BaseException(message, name) {\n    if (this.constructor === BaseException) {\n      unreachable(\"Cannot initialize BaseException.\");\n    }\n\n    this.message = message;\n    this.name = name;\n  }\n\n  BaseException.prototype = new Error();\n  BaseException.constructor = BaseException;\n  return BaseException;\n}();\n\nexports.BaseException = BaseException;\n\nclass PasswordException extends BaseException {\n  constructor(msg, code) {\n    super(msg, \"PasswordException\");\n    this.code = code;\n  }\n\n}\n\nexports.PasswordException = PasswordException;\n\nclass UnknownErrorException extends BaseException {\n  constructor(msg, details) {\n    super(msg, \"UnknownErrorException\");\n    this.details = details;\n  }\n\n}\n\nexports.UnknownErrorException = UnknownErrorException;\n\nclass InvalidPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"InvalidPDFException\");\n  }\n\n}\n\nexports.InvalidPDFException = InvalidPDFException;\n\nclass MissingPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"MissingPDFException\");\n  }\n\n}\n\nexports.MissingPDFException = MissingPDFException;\n\nclass UnexpectedResponseException extends BaseException {\n  constructor(msg, status) {\n    super(msg, \"UnexpectedResponseException\");\n    this.status = status;\n  }\n\n}\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nclass FormatError extends BaseException {\n  constructor(msg) {\n    super(msg, \"FormatError\");\n  }\n\n}\n\nexports.FormatError = FormatError;\n\nclass AbortException extends BaseException {\n  constructor(msg) {\n    super(msg, \"AbortException\");\n  }\n\n}\n\nexports.AbortException = AbortException;\n\nfunction bytesToString(bytes) {\n  if (typeof bytes !== \"object\" || bytes === null || bytes.length === undefined) {\n    unreachable(\"Invalid argument for bytesToString\");\n  }\n\n  const length = bytes.length;\n  const MAX_ARGUMENT_COUNT = 8192;\n\n  if (length < MAX_ARGUMENT_COUNT) {\n    return String.fromCharCode.apply(null, bytes);\n  }\n\n  const strBuf = [];\n\n  for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n    const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n    const chunk = bytes.subarray(i, chunkEnd);\n    strBuf.push(String.fromCharCode.apply(null, chunk));\n  }\n\n  return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n  if (typeof str !== \"string\") {\n    unreachable(\"Invalid argument for stringToBytes\");\n  }\n\n  const length = str.length;\n  const bytes = new Uint8Array(length);\n\n  for (let i = 0; i < length; ++i) {\n    bytes[i] = str.charCodeAt(i) & 0xff;\n  }\n\n  return bytes;\n}\n\nfunction arrayByteLength(arr) {\n  if (arr.length !== undefined) {\n    return arr.length;\n  }\n\n  if (arr.byteLength !== undefined) {\n    return arr.byteLength;\n  }\n\n  unreachable(\"Invalid argument for arrayByteLength\");\n}\n\nfunction arraysToBytes(arr) {\n  const length = arr.length;\n\n  if (length === 1 && arr[0] instanceof Uint8Array) {\n    return arr[0];\n  }\n\n  let resultLength = 0;\n\n  for (let i = 0; i < length; i++) {\n    resultLength += arrayByteLength(arr[i]);\n  }\n\n  let pos = 0;\n  const data = new Uint8Array(resultLength);\n\n  for (let i = 0; i < length; i++) {\n    let item = arr[i];\n\n    if (!(item instanceof Uint8Array)) {\n      if (typeof item === \"string\") {\n        item = stringToBytes(item);\n      } else {\n        item = new Uint8Array(item);\n      }\n    }\n\n    const itemLength = item.byteLength;\n    data.set(item, pos);\n    pos += itemLength;\n  }\n\n  return data;\n}\n\nfunction string32(value) {\n  return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction objectSize(obj) {\n  return Object.keys(obj).length;\n}\n\nfunction objectFromMap(map) {\n  const obj = Object.create(null);\n\n  for (const [key, value] of map) {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction isLittleEndian() {\n  const buffer8 = new Uint8Array(4);\n  buffer8[0] = 1;\n  const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n  return view32[0] === 1;\n}\n\nfunction isEvalSupported() {\n  try {\n    new Function(\"\");\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nclass FeatureTest {\n  static get isLittleEndian() {\n    return shadow(this, \"isLittleEndian\", isLittleEndian());\n  }\n\n  static get isEvalSupported() {\n    return shadow(this, \"isEvalSupported\", isEvalSupported());\n  }\n\n  static get isOffscreenCanvasSupported() {\n    return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n  }\n\n}\n\nexports.FeatureTest = FeatureTest;\nconst hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, \"0\"));\n\nclass Util {\n  static makeHexColor(r, g, b) {\n    return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n  }\n\n  static scaleMinMax(transform, minMax) {\n    let temp;\n\n    if (transform[0]) {\n      if (transform[0] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[1];\n        minMax[1] = temp;\n      }\n\n      minMax[0] *= transform[0];\n      minMax[1] *= transform[0];\n\n      if (transform[3] < 0) {\n        temp = minMax[2];\n        minMax[2] = minMax[3];\n        minMax[3] = temp;\n      }\n\n      minMax[2] *= transform[3];\n      minMax[3] *= transform[3];\n    } else {\n      temp = minMax[0];\n      minMax[0] = minMax[2];\n      minMax[2] = temp;\n      temp = minMax[1];\n      minMax[1] = minMax[3];\n      minMax[3] = temp;\n\n      if (transform[1] < 0) {\n        temp = minMax[2];\n        minMax[2] = minMax[3];\n        minMax[3] = temp;\n      }\n\n      minMax[2] *= transform[1];\n      minMax[3] *= transform[1];\n\n      if (transform[2] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[1];\n        minMax[1] = temp;\n      }\n\n      minMax[0] *= transform[2];\n      minMax[1] *= transform[2];\n    }\n\n    minMax[0] += transform[4];\n    minMax[1] += transform[4];\n    minMax[2] += transform[5];\n    minMax[3] += transform[5];\n  }\n\n  static transform(m1, m2) {\n    return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n  }\n\n  static applyTransform(p, m) {\n    const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n    const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n    return [xt, yt];\n  }\n\n  static applyInverseTransform(p, m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n    const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n    return [xt, yt];\n  }\n\n  static getAxialAlignedBoundingBox(r, m) {\n    const p1 = Util.applyTransform(r, m);\n    const p2 = Util.applyTransform(r.slice(2, 4), m);\n    const p3 = Util.applyTransform([r[0], r[3]], m);\n    const p4 = Util.applyTransform([r[2], r[1]], m);\n    return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n  }\n\n  static inverseTransform(m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n  }\n\n  static apply3dTransform(m, v) {\n    return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n  }\n\n  static singularValueDecompose2dScale(m) {\n    const transpose = [m[0], m[2], m[1], m[3]];\n    const a = m[0] * transpose[0] + m[1] * transpose[2];\n    const b = m[0] * transpose[1] + m[1] * transpose[3];\n    const c = m[2] * transpose[0] + m[3] * transpose[2];\n    const d = m[2] * transpose[1] + m[3] * transpose[3];\n    const first = (a + d) / 2;\n    const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n    const sx = first + second || 1;\n    const sy = first - second || 1;\n    return [Math.sqrt(sx), Math.sqrt(sy)];\n  }\n\n  static normalizeRect(rect) {\n    const r = rect.slice(0);\n\n    if (rect[0] > rect[2]) {\n      r[0] = rect[2];\n      r[2] = rect[0];\n    }\n\n    if (rect[1] > rect[3]) {\n      r[1] = rect[3];\n      r[3] = rect[1];\n    }\n\n    return r;\n  }\n\n  static intersect(rect1, rect2) {\n    const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n    const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n\n    if (xLow > xHigh) {\n      return null;\n    }\n\n    const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n    const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n\n    if (yLow > yHigh) {\n      return null;\n    }\n\n    return [xLow, yLow, xHigh, yHigh];\n  }\n\n  static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n    const tvalues = [],\n          bounds = [[], []];\n    let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n\n    for (let i = 0; i < 2; ++i) {\n      if (i === 0) {\n        b = 6 * x0 - 12 * x1 + 6 * x2;\n        a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n        c = 3 * x1 - 3 * x0;\n      } else {\n        b = 6 * y0 - 12 * y1 + 6 * y2;\n        a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n        c = 3 * y1 - 3 * y0;\n      }\n\n      if (Math.abs(a) < 1e-12) {\n        if (Math.abs(b) < 1e-12) {\n          continue;\n        }\n\n        t = -c / b;\n\n        if (0 < t && t < 1) {\n          tvalues.push(t);\n        }\n\n        continue;\n      }\n\n      b2ac = b * b - 4 * c * a;\n      sqrtb2ac = Math.sqrt(b2ac);\n\n      if (b2ac < 0) {\n        continue;\n      }\n\n      t1 = (-b + sqrtb2ac) / (2 * a);\n\n      if (0 < t1 && t1 < 1) {\n        tvalues.push(t1);\n      }\n\n      t2 = (-b - sqrtb2ac) / (2 * a);\n\n      if (0 < t2 && t2 < 1) {\n        tvalues.push(t2);\n      }\n    }\n\n    let j = tvalues.length,\n        mt;\n    const jlen = j;\n\n    while (j--) {\n      t = tvalues[j];\n      mt = 1 - t;\n      bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n      bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n    }\n\n    bounds[0][jlen] = x0;\n    bounds[1][jlen] = y0;\n    bounds[0][jlen + 1] = x3;\n    bounds[1][jlen + 1] = y3;\n    bounds[0].length = bounds[1].length = jlen + 2;\n    return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])];\n  }\n\n}\n\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac];\n\nfunction stringToPDFString(str) {\n  if (str[0] >= \"\\xEF\") {\n    let encoding;\n\n    if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n      encoding = \"utf-16be\";\n    } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n      encoding = \"utf-16le\";\n    } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n      encoding = \"utf-8\";\n    }\n\n    if (encoding) {\n      try {\n        const decoder = new TextDecoder(encoding, {\n          fatal: true\n        });\n        const buffer = stringToBytes(str);\n        return decoder.decode(buffer);\n      } catch (ex) {\n        warn(`stringToPDFString: \"${ex}\".`);\n      }\n    }\n  }\n\n  const strBuf = [];\n\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const code = PDFStringTranslateTable[str.charCodeAt(i)];\n    strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n  }\n\n  return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n  return str.replace(/([()\\\\\\n\\r])/g, match => {\n    if (match === \"\\n\") {\n      return \"\\\\n\";\n    } else if (match === \"\\r\") {\n      return \"\\\\r\";\n    }\n\n    return `\\\\${match}`;\n  });\n}\n\nfunction isAscii(str) {\n  return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n  const buf = [\"\\xFE\\xFF\"];\n\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n    buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff));\n  }\n\n  return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n  return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n  return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n  return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n  if (arr1.length !== arr2.length) {\n    return false;\n  }\n\n  for (let i = 0, ii = arr1.length; i < ii; i++) {\n    if (arr1[i] !== arr2[i]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction getModificationDate() {\n  let date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date();\n  const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n  return buffer.join(\"\");\n}\n\nfunction createPromiseCapability() {\n  const capability = Object.create(null);\n  let isSettled = false;\n  Object.defineProperty(capability, \"settled\", {\n    get() {\n      return isSettled;\n    }\n\n  });\n  capability.promise = new Promise(function (resolve, reject) {\n    capability.resolve = function (data) {\n      isSettled = true;\n      resolve(data);\n    };\n\n    capability.reject = function (reason) {\n      isSettled = true;\n      reject(reason);\n    };\n  });\n  return capability;\n}\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nvar _is_node = __w_pdfjs_require__(3);\n\nif (!globalThis._pdfjsCompatibilityChecked) {\n  globalThis._pdfjsCompatibilityChecked = true;\n\n  (function checkNodeBtoa() {\n    if (globalThis.btoa || !_is_node.isNodeJS) {\n      return;\n    }\n\n    globalThis.btoa = function (chars) {\n      return Buffer.from(chars, \"binary\").toString(\"base64\");\n    };\n  })();\n\n  (function checkNodeAtob() {\n    if (globalThis.atob || !_is_node.isNodeJS) {\n      return;\n    }\n\n    globalThis.atob = function (input) {\n      return Buffer.from(input, \"base64\").toString(\"binary\");\n    };\n  })();\n\n  (function checkDOMMatrix() {\n    if (globalThis.DOMMatrix || !_is_node.isNodeJS) {\n      return;\n    }\n\n    globalThis.DOMMatrix = __webpack_require__(/*! dommatrix/dist/dommatrix.js */ \"./node_modules/dommatrix/dist/dommatrix.js\");\n  })();\n\n  (function checkReadableStream() {\n    if (globalThis.ReadableStream || !_is_node.isNodeJS) {\n      return;\n    }\n\n    globalThis.ReadableStream = __webpack_require__(/*! web-streams-polyfill/dist/ponyfill.js */ \"./node_modules/web-streams-polyfill/dist/ponyfill.js\").ReadableStream;\n  })();\n\n  (function checkArrayAt() {\n    if (Array.prototype.at) {\n      return;\n    }\n\n    __w_pdfjs_require__(4);\n  })();\n\n  (function checkTypedArrayAt() {\n    if (Uint8Array.prototype.at) {\n      return;\n    }\n\n    __w_pdfjs_require__(76);\n  })();\n\n  (function checkStructuredClone() {\n    if (globalThis.structuredClone) {\n      return;\n    }\n\n    __w_pdfjs_require__(86);\n  })();\n}\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.isNodeJS = void 0;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\n\n/***/ }),\n/* 4 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(5);\nvar entryUnbind = __w_pdfjs_require__(75);\nmodule.exports = entryUnbind('Array', 'at');\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar $ = __w_pdfjs_require__(6);\nvar toObject = __w_pdfjs_require__(41);\nvar lengthOfArrayLike = __w_pdfjs_require__(65);\nvar toIntegerOrInfinity = __w_pdfjs_require__(63);\nvar addToUnscopables = __w_pdfjs_require__(70);\n$({\n target: 'Array',\n proto: true\n}, {\n at: function at(index) {\n  var O = toObject(this);\n  var len = lengthOfArrayLike(O);\n  var relativeIndex = toIntegerOrInfinity(index);\n  var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n  return k < 0 || k >= len ? undefined : O[k];\n }\n});\naddToUnscopables('at');\n\n/***/ }),\n/* 6 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar getOwnPropertyDescriptor = (__w_pdfjs_require__(8).f);\nvar createNonEnumerableProperty = __w_pdfjs_require__(45);\nvar defineBuiltIn = __w_pdfjs_require__(49);\nvar defineGlobalProperty = __w_pdfjs_require__(39);\nvar copyConstructorProperties = __w_pdfjs_require__(57);\nvar isForced = __w_pdfjs_require__(69);\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n  target = global;\n } else if (STATIC) {\n  target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n  target = (global[TARGET] || {}).prototype;\n }\n if (target)\n  for (key in source) {\n   sourceProperty = source[key];\n   if (options.dontCallGetSet) {\n    descriptor = getOwnPropertyDescriptor(target, key);\n    targetProperty = descriptor && descriptor.value;\n   } else\n    targetProperty = target[key];\n   FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n   if (!FORCED && targetProperty !== undefined) {\n    if (typeof sourceProperty == typeof targetProperty)\n     continue;\n    copyConstructorProperties(sourceProperty, targetProperty);\n   }\n   if (options.sham || targetProperty && targetProperty.sham) {\n    createNonEnumerableProperty(sourceProperty, 'sham', true);\n   }\n   defineBuiltIn(target, key, sourceProperty, options);\n  }\n};\n\n/***/ }),\n/* 7 */\n/***/ ((module) => {\n\nvar check = function (it) {\n return it && it.Math == Math && it;\n};\nmodule.exports = check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || (function () {\n return this;\n}()) || Function('return this')();\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar call = __w_pdfjs_require__(11);\nvar propertyIsEnumerableModule = __w_pdfjs_require__(13);\nvar createPropertyDescriptor = __w_pdfjs_require__(14);\nvar toIndexedObject = __w_pdfjs_require__(15);\nvar toPropertyKey = __w_pdfjs_require__(20);\nvar hasOwn = __w_pdfjs_require__(40);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(43);\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE)\n  try {\n   return $getOwnPropertyDescriptor(O, P);\n  } catch (error) {\n  }\n if (hasOwn(O, P))\n  return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n\n/***/ }),\n/* 9 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, {\n  get: function () {\n   return 7;\n  }\n })[1] != 7;\n});\n\n/***/ }),\n/* 10 */\n/***/ ((module) => {\n\nmodule.exports = function (exec) {\n try {\n  return !!exec();\n } catch (error) {\n  return true;\n }\n};\n\n/***/ }),\n/* 11 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar NATIVE_BIND = __w_pdfjs_require__(12);\nvar call = Function.prototype.call;\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n\n/***/ }),\n/* 12 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nmodule.exports = !fails(function () {\n var test = function () {\n }.bind();\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n/***/ }),\n/* 14 */\n/***/ ((module) => {\n\nmodule.exports = function (bitmap, value) {\n return {\n  enumerable: !(bitmap & 1),\n  configurable: !(bitmap & 2),\n  writable: !(bitmap & 4),\n  value: value\n };\n};\n\n/***/ }),\n/* 15 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar IndexedObject = __w_pdfjs_require__(16);\nvar requireObjectCoercible = __w_pdfjs_require__(19);\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n/***/ }),\n/* 16 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar fails = __w_pdfjs_require__(10);\nvar classof = __w_pdfjs_require__(18);\nvar $Object = Object;\nvar split = uncurryThis(''.split);\nmodule.exports = fails(function () {\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n\n/***/ }),\n/* 17 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar NATIVE_BIND = __w_pdfjs_require__(12);\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n  return call.apply(fn, arguments);\n };\n};\n\n/***/ }),\n/* 18 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n\n/***/ }),\n/* 19 */\n/***/ ((module) => {\n\nvar $TypeError = TypeError;\nmodule.exports = function (it) {\n if (it == undefined)\n  throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n/***/ }),\n/* 20 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toPrimitive = __w_pdfjs_require__(21);\nvar isSymbol = __w_pdfjs_require__(24);\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n\n/***/ }),\n/* 21 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(11);\nvar isObject = __w_pdfjs_require__(22);\nvar isSymbol = __w_pdfjs_require__(24);\nvar getMethod = __w_pdfjs_require__(31);\nvar ordinaryToPrimitive = __w_pdfjs_require__(34);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input))\n  return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n  if (pref === undefined)\n   pref = 'default';\n  result = call(exoticToPrim, input, pref);\n  if (!isObject(result) || isSymbol(result))\n   return result;\n  throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined)\n  pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n\n/***/ }),\n/* 22 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(23);\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n\n/***/ }),\n/* 23 */\n/***/ ((module) => {\n\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n\n/***/ }),\n/* 24 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar getBuiltIn = __w_pdfjs_require__(25);\nvar isCallable = __w_pdfjs_require__(23);\nvar isPrototypeOf = __w_pdfjs_require__(26);\nvar USE_SYMBOL_AS_UID = __w_pdfjs_require__(27);\nvar $Object = Object;\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n\n/***/ }),\n/* 25 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar isCallable = __w_pdfjs_require__(23);\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n\n/***/ }),\n/* 26 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nmodule.exports = uncurryThis({}.isPrototypeOf);\n\n/***/ }),\n/* 27 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar NATIVE_SYMBOL = __w_pdfjs_require__(28);\nmodule.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol';\n\n/***/ }),\n/* 28 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar V8_VERSION = __w_pdfjs_require__(29);\nvar fails = __w_pdfjs_require__(10);\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n return !String(symbol) || !(Object(symbol) instanceof Symbol) || !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n/***/ }),\n/* 29 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar userAgent = __w_pdfjs_require__(30);\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\nif (v8) {\n match = v8.split('.');\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n  match = userAgent.match(/Chrome\\/(\\d+)/);\n  if (match)\n   version = +match[1];\n }\n}\nmodule.exports = version;\n\n/***/ }),\n/* 30 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar getBuiltIn = __w_pdfjs_require__(25);\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n/***/ }),\n/* 31 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar aCallable = __w_pdfjs_require__(32);\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n\n/***/ }),\n/* 32 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(23);\nvar tryToString = __w_pdfjs_require__(33);\nvar $TypeError = TypeError;\nmodule.exports = function (argument) {\n if (isCallable(argument))\n  return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n\n/***/ }),\n/* 33 */\n/***/ ((module) => {\n\nvar $String = String;\nmodule.exports = function (argument) {\n try {\n  return $String(argument);\n } catch (error) {\n  return 'Object';\n }\n};\n\n/***/ }),\n/* 34 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(11);\nvar isCallable = __w_pdfjs_require__(23);\nvar isObject = __w_pdfjs_require__(22);\nvar $TypeError = TypeError;\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input)))\n  return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input)))\n  return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input)))\n  return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n\n/***/ }),\n/* 35 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar shared = __w_pdfjs_require__(36);\nvar hasOwn = __w_pdfjs_require__(40);\nvar uid = __w_pdfjs_require__(42);\nvar NATIVE_SYMBOL = __w_pdfjs_require__(28);\nvar USE_SYMBOL_AS_UID = __w_pdfjs_require__(27);\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n  var description = 'Symbol.' + name;\n  if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n   WellKnownSymbolsStore[name] = Symbol[name];\n  } else if (USE_SYMBOL_AS_UID && symbolFor) {\n   WellKnownSymbolsStore[name] = symbolFor(description);\n  } else {\n   WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n  }\n }\n return WellKnownSymbolsStore[name];\n};\n\n/***/ }),\n/* 36 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar IS_PURE = __w_pdfjs_require__(37);\nvar store = __w_pdfjs_require__(38);\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.24.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n\n/***/ }),\n/* 37 */\n/***/ ((module) => {\n\nmodule.exports = false;\n\n/***/ }),\n/* 38 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar defineGlobalProperty = __w_pdfjs_require__(39);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\nmodule.exports = store;\n\n/***/ }),\n/* 39 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar defineProperty = Object.defineProperty;\nmodule.exports = function (key, value) {\n try {\n  defineProperty(global, key, {\n   value: value,\n   configurable: true,\n   writable: true\n  });\n } catch (error) {\n  global[key] = value;\n }\n return value;\n};\n\n/***/ }),\n/* 40 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar toObject = __w_pdfjs_require__(41);\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n\n/***/ }),\n/* 41 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar requireObjectCoercible = __w_pdfjs_require__(19);\nvar $Object = Object;\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n\n/***/ }),\n/* 42 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n\n/***/ }),\n/* 43 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar fails = __w_pdfjs_require__(10);\nvar createElement = __w_pdfjs_require__(44);\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n  get: function () {\n   return 7;\n  }\n }).a != 7;\n});\n\n/***/ }),\n/* 44 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar isObject = __w_pdfjs_require__(22);\nvar document = global.document;\nvar EXISTS = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n/***/ }),\n/* 45 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar definePropertyModule = __w_pdfjs_require__(46);\nvar createPropertyDescriptor = __w_pdfjs_require__(14);\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n/***/ }),\n/* 46 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(43);\nvar V8_PROTOTYPE_DEFINE_BUG = __w_pdfjs_require__(47);\nvar anObject = __w_pdfjs_require__(48);\nvar toPropertyKey = __w_pdfjs_require__(20);\nvar $TypeError = TypeError;\nvar $defineProperty = Object.defineProperty;\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n  var current = $getOwnPropertyDescriptor(O, P);\n  if (current && current[WRITABLE]) {\n   O[P] = Attributes.value;\n   Attributes = {\n    configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n    enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n    writable: false\n   };\n  }\n }\n return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE)\n  try {\n   return $defineProperty(O, P, Attributes);\n  } catch (error) {\n  }\n if ('get' in Attributes || 'set' in Attributes)\n  throw $TypeError('Accessors not supported');\n if ('value' in Attributes)\n  O[P] = Attributes.value;\n return O;\n};\n\n/***/ }),\n/* 47 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar fails = __w_pdfjs_require__(10);\nmodule.exports = DESCRIPTORS && fails(function () {\n return Object.defineProperty(function () {\n }, 'prototype', {\n  value: 42,\n  writable: false\n }).prototype != 42;\n});\n\n/***/ }),\n/* 48 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isObject = __w_pdfjs_require__(22);\nvar $String = String;\nvar $TypeError = TypeError;\nmodule.exports = function (argument) {\n if (isObject(argument))\n  return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n\n/***/ }),\n/* 49 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(23);\nvar definePropertyModule = __w_pdfjs_require__(46);\nvar makeBuiltIn = __w_pdfjs_require__(50);\nvar defineGlobalProperty = __w_pdfjs_require__(39);\nmodule.exports = function (O, key, value, options) {\n if (!options)\n  options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value))\n  makeBuiltIn(value, name, options);\n if (options.global) {\n  if (simple)\n   O[key] = value;\n  else\n   defineGlobalProperty(key, value);\n } else {\n  try {\n   if (!options.unsafe)\n    delete O[key];\n   else if (O[key])\n    simple = true;\n  } catch (error) {\n  }\n  if (simple)\n   O[key] = value;\n  else\n   definePropertyModule.f(O, key, {\n    value: value,\n    enumerable: false,\n    configurable: !options.nonConfigurable,\n    writable: !options.nonWritable\n   });\n }\n return O;\n};\n\n/***/ }),\n/* 50 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nvar isCallable = __w_pdfjs_require__(23);\nvar hasOwn = __w_pdfjs_require__(40);\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar CONFIGURABLE_FUNCTION_NAME = (__w_pdfjs_require__(51).CONFIGURABLE);\nvar inspectSource = __w_pdfjs_require__(52);\nvar InternalStateModule = __w_pdfjs_require__(53);\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar defineProperty = Object.defineProperty;\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () {\n }, 'length', { value: 8 }).length !== 8;\n});\nvar TEMPLATE = String(String).split('String');\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n  name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter)\n  name = 'get ' + name;\n if (options && options.setter)\n  name = 'set ' + name;\n if (!hasOwn(value, 'name') || CONFIGURABLE_FUNCTION_NAME && value.name !== name) {\n  if (DESCRIPTORS)\n   defineProperty(value, 'name', {\n    value: name,\n    configurable: true\n   });\n  else\n   value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n  defineProperty(value, 'length', { value: options.arity });\n }\n try {\n  if (options && hasOwn(options, 'constructor') && options.constructor) {\n   if (DESCRIPTORS)\n    defineProperty(value, 'prototype', { writable: false });\n  } else if (value.prototype)\n   value.prototype = undefined;\n } catch (error) {\n }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n  state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n return value;\n};\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n\n/***/ }),\n/* 51 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar hasOwn = __w_pdfjs_require__(40);\nvar FunctionPrototype = Function.prototype;\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\nvar PROPER = EXISTS && function something() {\n}.name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable);\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n\n/***/ }),\n/* 52 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar isCallable = __w_pdfjs_require__(23);\nvar store = __w_pdfjs_require__(38);\nvar functionToString = uncurryThis(Function.toString);\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n  return functionToString(it);\n };\n}\nmodule.exports = store.inspectSource;\n\n/***/ }),\n/* 53 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar NATIVE_WEAK_MAP = __w_pdfjs_require__(54);\nvar global = __w_pdfjs_require__(7);\nvar uncurryThis = __w_pdfjs_require__(17);\nvar isObject = __w_pdfjs_require__(22);\nvar createNonEnumerableProperty = __w_pdfjs_require__(45);\nvar hasOwn = __w_pdfjs_require__(40);\nvar shared = __w_pdfjs_require__(38);\nvar sharedKey = __w_pdfjs_require__(55);\nvar hiddenKeys = __w_pdfjs_require__(56);\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\nvar getterFor = function (TYPE) {\n return function (it) {\n  var state;\n  if (!isObject(it) || (state = get(it)).type !== TYPE) {\n   throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n  }\n  return state;\n };\n};\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n  if (wmhas(store, it))\n   throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n  metadata.facade = it;\n  wmset(store, it, metadata);\n  return metadata;\n };\n get = function (it) {\n  return wmget(store, it) || {};\n };\n has = function (it) {\n  return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n  if (hasOwn(it, STATE))\n   throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n  metadata.facade = it;\n  createNonEnumerableProperty(it, STATE, metadata);\n  return metadata;\n };\n get = function (it) {\n  return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n  return hasOwn(it, STATE);\n };\n}\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n/***/ }),\n/* 54 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar isCallable = __w_pdfjs_require__(23);\nvar inspectSource = __w_pdfjs_require__(52);\nvar WeakMap = global.WeakMap;\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n\n/***/ }),\n/* 55 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar shared = __w_pdfjs_require__(36);\nvar uid = __w_pdfjs_require__(42);\nvar keys = shared('keys');\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n/***/ }),\n/* 56 */\n/***/ ((module) => {\n\nmodule.exports = {};\n\n/***/ }),\n/* 57 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar hasOwn = __w_pdfjs_require__(40);\nvar ownKeys = __w_pdfjs_require__(58);\nvar getOwnPropertyDescriptorModule = __w_pdfjs_require__(8);\nvar definePropertyModule = __w_pdfjs_require__(46);\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n  var key = keys[i];\n  if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n   defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n  }\n }\n};\n\n/***/ }),\n/* 58 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar getBuiltIn = __w_pdfjs_require__(25);\nvar uncurryThis = __w_pdfjs_require__(17);\nvar getOwnPropertyNamesModule = __w_pdfjs_require__(59);\nvar getOwnPropertySymbolsModule = __w_pdfjs_require__(68);\nvar anObject = __w_pdfjs_require__(48);\nvar concat = uncurryThis([].concat);\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n\n/***/ }),\n/* 59 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\nvar internalObjectKeys = __w_pdfjs_require__(60);\nvar enumBugKeys = __w_pdfjs_require__(67);\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n/***/ }),\n/* 60 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar hasOwn = __w_pdfjs_require__(40);\nvar toIndexedObject = __w_pdfjs_require__(15);\nvar indexOf = (__w_pdfjs_require__(61).indexOf);\nvar hiddenKeys = __w_pdfjs_require__(56);\nvar push = uncurryThis([].push);\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O)\n  !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n while (names.length > i)\n  if (hasOwn(O, key = names[i++])) {\n   ~indexOf(result, key) || push(result, key);\n  }\n return result;\n};\n\n/***/ }),\n/* 61 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toIndexedObject = __w_pdfjs_require__(15);\nvar toAbsoluteIndex = __w_pdfjs_require__(62);\nvar lengthOfArrayLike = __w_pdfjs_require__(65);\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n  var O = toIndexedObject($this);\n  var length = lengthOfArrayLike(O);\n  var index = toAbsoluteIndex(fromIndex, length);\n  var value;\n  if (IS_INCLUDES && el != el)\n   while (length > index) {\n    value = O[index++];\n    if (value != value)\n     return true;\n   }\n  else\n   for (; length > index; index++) {\n    if ((IS_INCLUDES || index in O) && O[index] === el)\n     return IS_INCLUDES || index || 0;\n   }\n  return !IS_INCLUDES && -1;\n };\n};\nmodule.exports = {\n includes: createMethod(true),\n indexOf: createMethod(false)\n};\n\n/***/ }),\n/* 62 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toIntegerOrInfinity = __w_pdfjs_require__(63);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n/***/ }),\n/* 63 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar trunc = __w_pdfjs_require__(64);\nmodule.exports = function (argument) {\n var number = +argument;\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n\n/***/ }),\n/* 64 */\n/***/ ((module) => {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n\n/***/ }),\n/* 65 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toLength = __w_pdfjs_require__(66);\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n\n/***/ }),\n/* 66 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toIntegerOrInfinity = __w_pdfjs_require__(63);\nvar min = Math.min;\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0;\n};\n\n/***/ }),\n/* 67 */\n/***/ ((module) => {\n\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n/***/ }),\n/* 68 */\n/***/ ((__unused_webpack_module, exports) => {\n\nexports.f = Object.getOwnPropertySymbols;\n\n/***/ }),\n/* 69 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nvar isCallable = __w_pdfjs_require__(23);\nvar replacement = /#|\\.prototype\\./;\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true : value == NATIVE ? false : isCallable(detection) ? fails(detection) : !!detection;\n};\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\nmodule.exports = isForced;\n\n/***/ }),\n/* 70 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar create = __w_pdfjs_require__(71);\nvar defineProperty = (__w_pdfjs_require__(46).f);\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n  configurable: true,\n  value: create(null)\n });\n}\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n/***/ }),\n/* 71 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar anObject = __w_pdfjs_require__(48);\nvar definePropertiesModule = __w_pdfjs_require__(72);\nvar enumBugKeys = __w_pdfjs_require__(67);\nvar hiddenKeys = __w_pdfjs_require__(56);\nvar html = __w_pdfjs_require__(74);\nvar documentCreateElement = __w_pdfjs_require__(44);\nvar sharedKey = __w_pdfjs_require__(55);\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar EmptyConstructor = function () {\n};\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null;\n return temp;\n};\nvar NullProtoObjectViaIFrame = function () {\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n  activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) {\n }\n NullProtoObject = typeof document != 'undefined' ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument);\n var length = enumBugKeys.length;\n while (length--)\n  delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\nhiddenKeys[IE_PROTO] = true;\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n  EmptyConstructor[PROTOTYPE] = anObject(O);\n  result = new EmptyConstructor();\n  EmptyConstructor[PROTOTYPE] = null;\n  result[IE_PROTO] = O;\n } else\n  result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n\n/***/ }),\n/* 72 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar V8_PROTOTYPE_DEFINE_BUG = __w_pdfjs_require__(47);\nvar definePropertyModule = __w_pdfjs_require__(46);\nvar anObject = __w_pdfjs_require__(48);\nvar toIndexedObject = __w_pdfjs_require__(15);\nvar objectKeys = __w_pdfjs_require__(73);\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index)\n  definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n\n/***/ }),\n/* 73 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar internalObjectKeys = __w_pdfjs_require__(60);\nvar enumBugKeys = __w_pdfjs_require__(67);\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n/***/ }),\n/* 74 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar getBuiltIn = __w_pdfjs_require__(25);\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n/***/ }),\n/* 75 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nvar uncurryThis = __w_pdfjs_require__(17);\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]);\n};\n\n/***/ }),\n/* 76 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(77);\n\n/***/ }),\n/* 77 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __w_pdfjs_require__(78);\nvar lengthOfArrayLike = __w_pdfjs_require__(65);\nvar toIntegerOrInfinity = __w_pdfjs_require__(63);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return k < 0 || k >= len ? undefined : O[k];\n});\n\n/***/ }),\n/* 78 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar NATIVE_ARRAY_BUFFER = __w_pdfjs_require__(79);\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar global = __w_pdfjs_require__(7);\nvar isCallable = __w_pdfjs_require__(23);\nvar isObject = __w_pdfjs_require__(22);\nvar hasOwn = __w_pdfjs_require__(40);\nvar classof = __w_pdfjs_require__(80);\nvar tryToString = __w_pdfjs_require__(33);\nvar createNonEnumerableProperty = __w_pdfjs_require__(45);\nvar defineBuiltIn = __w_pdfjs_require__(49);\nvar defineProperty = (__w_pdfjs_require__(46).f);\nvar isPrototypeOf = __w_pdfjs_require__(26);\nvar getPrototypeOf = __w_pdfjs_require__(82);\nvar setPrototypeOf = __w_pdfjs_require__(84);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar uid = __w_pdfjs_require__(42);\nvar InternalStateModule = __w_pdfjs_require__(53);\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\nvar isView = function isView(it) {\n if (!isObject(it))\n  return false;\n var klass = classof(it);\n return klass === 'DataView' || hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass);\n};\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto))\n  return;\n var state = getInternalState(proto);\n return state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\nvar isTypedArray = function (it) {\n if (!isObject(it))\n  return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass);\n};\nvar aTypedArray = function (it) {\n if (isTypedArray(it))\n  return it;\n throw TypeError('Target is not a typed array');\n};\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C)))\n  return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS)\n  return;\n if (forced)\n  for (var ARRAY in TypedArrayConstructorsList) {\n   var TypedArrayConstructor = global[ARRAY];\n   if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY))\n    try {\n     delete TypedArrayConstructor.prototype[KEY];\n    } catch (error) {\n     try {\n      TypedArrayConstructor.prototype[KEY] = property;\n     } catch (error2) {\n     }\n    }\n  }\n if (!TypedArrayPrototype[KEY] || forced) {\n  defineBuiltIn(TypedArrayPrototype, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS)\n  return;\n if (setPrototypeOf) {\n  if (forced)\n   for (ARRAY in TypedArrayConstructorsList) {\n    TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY))\n     try {\n      delete TypedArrayConstructor[KEY];\n     } catch (error) {\n     }\n   }\n  if (!TypedArray[KEY] || forced) {\n   try {\n    return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n   } catch (error) {\n   }\n  } else\n   return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n  TypedArrayConstructor = global[ARRAY];\n  if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n   defineBuiltIn(TypedArrayConstructor, KEY, property);\n  }\n }\n};\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype)\n  enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else\n  NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype)\n  enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n TypedArray = function TypedArray() {\n  throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS)\n  for (NAME in TypedArrayConstructorsList) {\n   if (global[NAME])\n    setPrototypeOf(global[NAME], TypedArray);\n  }\n}\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS)\n  for (NAME in TypedArrayConstructorsList) {\n   if (global[NAME])\n    setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n  }\n}\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, {\n  get: function () {\n   return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n  }\n });\n for (NAME in TypedArrayConstructorsList)\n  if (global[NAME]) {\n   createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n  }\n}\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n\n/***/ }),\n/* 79 */\n/***/ ((module) => {\n\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n\n/***/ }),\n/* 80 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(81);\nvar isCallable = __w_pdfjs_require__(23);\nvar classofRaw = __w_pdfjs_require__(18);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\nvar CORRECT_ARGUMENTS = classofRaw((function () {\n return arguments;\n}())) == 'Arguments';\nvar tryGet = function (it, key) {\n try {\n  return it[key];\n } catch (error) {\n }\n};\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n\n/***/ }),\n/* 81 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\ntest[TO_STRING_TAG] = 'z';\nmodule.exports = String(test) === '[object z]';\n\n/***/ }),\n/* 82 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar hasOwn = __w_pdfjs_require__(40);\nvar isCallable = __w_pdfjs_require__(23);\nvar toObject = __w_pdfjs_require__(41);\nvar sharedKey = __w_pdfjs_require__(55);\nvar CORRECT_PROTOTYPE_GETTER = __w_pdfjs_require__(83);\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO))\n  return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n  return constructor.prototype;\n }\n return object instanceof $Object ? ObjectPrototype : null;\n};\n\n/***/ }),\n/* 83 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nmodule.exports = !fails(function () {\n function F() {\n }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n/***/ }),\n/* 84 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar anObject = __w_pdfjs_require__(48);\nvar aPossiblePrototype = __w_pdfjs_require__(85);\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? (function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n  setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n  setter(test, []);\n  CORRECT_SETTER = test instanceof Array;\n } catch (error) {\n }\n return function setPrototypeOf(O, proto) {\n  anObject(O);\n  aPossiblePrototype(proto);\n  if (CORRECT_SETTER)\n   setter(O, proto);\n  else\n   O.__proto__ = proto;\n  return O;\n };\n}()) : undefined);\n\n/***/ }),\n/* 85 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(23);\nvar $String = String;\nvar $TypeError = TypeError;\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument))\n  return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n\n/***/ }),\n/* 86 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(87);\n__w_pdfjs_require__(93);\n__w_pdfjs_require__(95);\n__w_pdfjs_require__(117);\n__w_pdfjs_require__(119);\nvar path = __w_pdfjs_require__(128);\nmodule.exports = path.structuredClone;\n\n/***/ }),\n/* 87 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar toIndexedObject = __w_pdfjs_require__(15);\nvar addToUnscopables = __w_pdfjs_require__(70);\nvar Iterators = __w_pdfjs_require__(88);\nvar InternalStateModule = __w_pdfjs_require__(53);\nvar defineProperty = (__w_pdfjs_require__(46).f);\nvar defineIterator = __w_pdfjs_require__(89);\nvar IS_PURE = __w_pdfjs_require__(37);\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n  type: ARRAY_ITERATOR,\n  target: toIndexedObject(iterated),\n  index: 0,\n  kind: kind\n });\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n  state.target = undefined;\n  return {\n   value: undefined,\n   done: true\n  };\n }\n if (kind == 'keys')\n  return {\n   value: index,\n   done: false\n  };\n if (kind == 'values')\n  return {\n   value: target[index],\n   done: false\n  };\n return {\n  value: [\n   index,\n   target[index]\n  ],\n  done: false\n };\n}, 'values');\nvar values = Iterators.Arguments = Iterators.Array;\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values')\n try {\n  defineProperty(values, 'name', { value: 'values' });\n } catch (error) {\n }\n\n/***/ }),\n/* 88 */\n/***/ ((module) => {\n\nmodule.exports = {};\n\n/***/ }),\n/* 89 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar $ = __w_pdfjs_require__(6);\nvar call = __w_pdfjs_require__(11);\nvar IS_PURE = __w_pdfjs_require__(37);\nvar FunctionName = __w_pdfjs_require__(51);\nvar isCallable = __w_pdfjs_require__(23);\nvar createIteratorConstructor = __w_pdfjs_require__(90);\nvar getPrototypeOf = __w_pdfjs_require__(82);\nvar setPrototypeOf = __w_pdfjs_require__(84);\nvar setToStringTag = __w_pdfjs_require__(92);\nvar createNonEnumerableProperty = __w_pdfjs_require__(45);\nvar defineBuiltIn = __w_pdfjs_require__(49);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar Iterators = __w_pdfjs_require__(88);\nvar IteratorsCore = __w_pdfjs_require__(91);\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\nvar returnThis = function () {\n return this;\n};\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n var getIterationMethod = function (KIND) {\n  if (KIND === DEFAULT && defaultIterator)\n   return defaultIterator;\n  if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype)\n   return IterablePrototype[KIND];\n  switch (KIND) {\n  case KEYS:\n   return function keys() {\n    return new IteratorConstructor(this, KIND);\n   };\n  case VALUES:\n   return function values() {\n    return new IteratorConstructor(this, KIND);\n   };\n  case ENTRIES:\n   return function entries() {\n    return new IteratorConstructor(this, KIND);\n   };\n  }\n  return function () {\n   return new IteratorConstructor(this);\n  };\n };\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n if (anyNativeIterator) {\n  CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n  if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n   if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n    if (setPrototypeOf) {\n     setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n    } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n     defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n    }\n   }\n   setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n   if (IS_PURE)\n    Iterators[TO_STRING_TAG] = returnThis;\n  }\n }\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n  if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n   createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n  } else {\n   INCORRECT_VALUES_NAME = true;\n   defaultIterator = function values() {\n    return call(nativeIterator, this);\n   };\n  }\n }\n if (DEFAULT) {\n  methods = {\n   values: getIterationMethod(VALUES),\n   keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n   entries: getIterationMethod(ENTRIES)\n  };\n  if (FORCED)\n   for (KEY in methods) {\n    if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n     defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n    }\n   }\n  else\n   $({\n    target: NAME,\n    proto: true,\n    forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME\n   }, methods);\n }\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n  defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n return methods;\n};\n\n/***/ }),\n/* 90 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar IteratorPrototype = (__w_pdfjs_require__(91).IteratorPrototype);\nvar create = __w_pdfjs_require__(71);\nvar createPropertyDescriptor = __w_pdfjs_require__(14);\nvar setToStringTag = __w_pdfjs_require__(92);\nvar Iterators = __w_pdfjs_require__(88);\nvar returnThis = function () {\n return this;\n};\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n/***/ }),\n/* 91 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar fails = __w_pdfjs_require__(10);\nvar isCallable = __w_pdfjs_require__(23);\nvar create = __w_pdfjs_require__(71);\nvar getPrototypeOf = __w_pdfjs_require__(82);\nvar defineBuiltIn = __w_pdfjs_require__(49);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar IS_PURE = __w_pdfjs_require__(37);\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\nif ([].keys) {\n arrayIterator = [].keys();\n if (!('next' in arrayIterator))\n  BUGGY_SAFARI_ITERATORS = true;\n else {\n  PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n  if (PrototypeOfArrayIteratorPrototype !== Object.prototype)\n   IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\nif (NEW_ITERATOR_PROTOTYPE)\n IteratorPrototype = {};\nelse if (IS_PURE)\n IteratorPrototype = create(IteratorPrototype);\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n  return this;\n });\n}\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n/***/ }),\n/* 92 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar defineProperty = (__w_pdfjs_require__(46).f);\nvar hasOwn = __w_pdfjs_require__(40);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC)\n  target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n  defineProperty(target, TO_STRING_TAG, {\n   configurable: true,\n   value: TAG\n  });\n }\n};\n\n/***/ }),\n/* 93 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(81);\nvar defineBuiltIn = __w_pdfjs_require__(49);\nvar toString = __w_pdfjs_require__(94);\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n/***/ }),\n/* 94 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(81);\nvar classof = __w_pdfjs_require__(80);\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n\n/***/ }),\n/* 95 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(96);\n\n/***/ }),\n/* 96 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar collection = __w_pdfjs_require__(97);\nvar collectionStrong = __w_pdfjs_require__(114);\ncollection('Map', function (init) {\n return function Map() {\n  return init(this, arguments.length ? arguments[0] : undefined);\n };\n}, collectionStrong);\n\n/***/ }),\n/* 97 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar $ = __w_pdfjs_require__(6);\nvar global = __w_pdfjs_require__(7);\nvar uncurryThis = __w_pdfjs_require__(17);\nvar isForced = __w_pdfjs_require__(69);\nvar defineBuiltIn = __w_pdfjs_require__(49);\nvar InternalMetadataModule = __w_pdfjs_require__(98);\nvar iterate = __w_pdfjs_require__(105);\nvar anInstance = __w_pdfjs_require__(111);\nvar isCallable = __w_pdfjs_require__(23);\nvar isObject = __w_pdfjs_require__(22);\nvar fails = __w_pdfjs_require__(10);\nvar checkCorrectnessOfIteration = __w_pdfjs_require__(112);\nvar setToStringTag = __w_pdfjs_require__(92);\nvar inheritIfRequired = __w_pdfjs_require__(113);\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n var fixMethod = function (KEY) {\n  var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n  defineBuiltIn(NativePrototype, KEY, KEY == 'add' ? function add(value) {\n   uncurriedNativeMethod(this, value === 0 ? 0 : value);\n   return this;\n  } : KEY == 'delete' ? function (key) {\n   return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n  } : KEY == 'get' ? function get(key) {\n   return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n  } : KEY == 'has' ? function has(key) {\n   return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n  } : function set(key, value) {\n   uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n   return this;\n  });\n };\n var REPLACE = isForced(CONSTRUCTOR_NAME, !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n  new NativeConstructor().entries().next();\n })));\n if (REPLACE) {\n  Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n  InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n  var instance = new Constructor();\n  var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n  var THROWS_ON_PRIMITIVES = fails(function () {\n   instance.has(1);\n  });\n  var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) {\n   new NativeConstructor(iterable);\n  });\n  var BUGGY_ZERO = !IS_WEAK && fails(function () {\n   var $instance = new NativeConstructor();\n   var index = 5;\n   while (index--)\n    $instance[ADDER](index, index);\n   return !$instance.has(-0);\n  });\n  if (!ACCEPT_ITERABLES) {\n   Constructor = wrapper(function (dummy, iterable) {\n    anInstance(dummy, NativePrototype);\n    var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n    if (iterable != undefined)\n     iterate(iterable, that[ADDER], {\n      that: that,\n      AS_ENTRIES: IS_MAP\n     });\n    return that;\n   });\n   Constructor.prototype = NativePrototype;\n   NativePrototype.constructor = Constructor;\n  }\n  if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n   fixMethod('delete');\n   fixMethod('has');\n   IS_MAP && fixMethod('get');\n  }\n  if (BUGGY_ZERO || HASNT_CHAINING)\n   fixMethod(ADDER);\n  if (IS_WEAK && NativePrototype.clear)\n   delete NativePrototype.clear;\n }\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({\n  global: true,\n  constructor: true,\n  forced: Constructor != NativeConstructor\n }, exported);\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n if (!IS_WEAK)\n  common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n return Constructor;\n};\n\n/***/ }),\n/* 98 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar $ = __w_pdfjs_require__(6);\nvar uncurryThis = __w_pdfjs_require__(17);\nvar hiddenKeys = __w_pdfjs_require__(56);\nvar isObject = __w_pdfjs_require__(22);\nvar hasOwn = __w_pdfjs_require__(40);\nvar defineProperty = (__w_pdfjs_require__(46).f);\nvar getOwnPropertyNamesModule = __w_pdfjs_require__(59);\nvar getOwnPropertyNamesExternalModule = __w_pdfjs_require__(99);\nvar isExtensible = __w_pdfjs_require__(102);\nvar uid = __w_pdfjs_require__(42);\nvar FREEZING = __w_pdfjs_require__(104);\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, {\n  value: {\n   objectID: 'O' + id++,\n   weakData: {}\n  }\n });\n};\nvar fastKey = function (it, create) {\n if (!isObject(it))\n  return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n  if (!isExtensible(it))\n   return 'F';\n  if (!create)\n   return 'E';\n  setMetadata(it);\n }\n return it[METADATA].objectID;\n};\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n  if (!isExtensible(it))\n   return true;\n  if (!create)\n   return false;\n  setMetadata(it);\n }\n return it[METADATA].weakData;\n};\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA))\n  setMetadata(it);\n return it;\n};\nvar enable = function () {\n meta.enable = function () {\n };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n if (getOwnPropertyNames(test).length) {\n  getOwnPropertyNamesModule.f = function (it) {\n   var result = getOwnPropertyNames(it);\n   for (var i = 0, length = result.length; i < length; i++) {\n    if (result[i] === METADATA) {\n     splice(result, i, 1);\n     break;\n    }\n   }\n   return result;\n  };\n  $({\n   target: 'Object',\n   stat: true,\n   forced: true\n  }, { getOwnPropertyNames: getOwnPropertyNamesExternalModule.f });\n }\n};\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\nhiddenKeys[METADATA] = true;\n\n/***/ }),\n/* 99 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar classof = __w_pdfjs_require__(18);\nvar toIndexedObject = __w_pdfjs_require__(15);\nvar $getOwnPropertyNames = (__w_pdfjs_require__(59).f);\nvar arraySlice = __w_pdfjs_require__(100);\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];\nvar getWindowNames = function (it) {\n try {\n  return $getOwnPropertyNames(it);\n } catch (error) {\n  return arraySlice(windowNames);\n }\n};\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window' ? getWindowNames(it) : $getOwnPropertyNames(toIndexedObject(it));\n};\n\n/***/ }),\n/* 100 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toAbsoluteIndex = __w_pdfjs_require__(62);\nvar lengthOfArrayLike = __w_pdfjs_require__(65);\nvar createProperty = __w_pdfjs_require__(101);\nvar $Array = Array;\nvar max = Math.max;\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++)\n  createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n\n/***/ }),\n/* 101 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar toPropertyKey = __w_pdfjs_require__(20);\nvar definePropertyModule = __w_pdfjs_require__(46);\nvar createPropertyDescriptor = __w_pdfjs_require__(14);\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object)\n  definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else\n  object[propertyKey] = value;\n};\n\n/***/ }),\n/* 102 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nvar isObject = __w_pdfjs_require__(22);\nvar classof = __w_pdfjs_require__(18);\nvar ARRAY_BUFFER_NON_EXTENSIBLE = __w_pdfjs_require__(103);\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () {\n $isExtensible(1);\n});\nmodule.exports = FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE ? function isExtensible(it) {\n if (!isObject(it))\n  return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer')\n  return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n\n/***/ }),\n/* 103 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n  var buffer = new ArrayBuffer(8);\n  if (Object.isExtensible(buffer))\n   Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n\n/***/ }),\n/* 104 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n\n/***/ }),\n/* 105 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar bind = __w_pdfjs_require__(106);\nvar call = __w_pdfjs_require__(11);\nvar anObject = __w_pdfjs_require__(48);\nvar tryToString = __w_pdfjs_require__(33);\nvar isArrayIteratorMethod = __w_pdfjs_require__(107);\nvar lengthOfArrayLike = __w_pdfjs_require__(65);\nvar isPrototypeOf = __w_pdfjs_require__(26);\nvar getIterator = __w_pdfjs_require__(108);\nvar getIteratorMethod = __w_pdfjs_require__(109);\nvar iteratorClose = __w_pdfjs_require__(110);\nvar $TypeError = TypeError;\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\nvar ResultPrototype = Result.prototype;\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n var stop = function (condition) {\n  if (iterator)\n   iteratorClose(iterator, 'normal', condition);\n  return new Result(true, condition);\n };\n var callFn = function (value) {\n  if (AS_ENTRIES) {\n   anObject(value);\n   return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n  }\n  return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n if (IS_RECORD) {\n  iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n  iterator = iterable;\n } else {\n  iterFn = getIteratorMethod(iterable);\n  if (!iterFn)\n   throw $TypeError(tryToString(iterable) + ' is not iterable');\n  if (isArrayIteratorMethod(iterFn)) {\n   for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n    result = callFn(iterable[index]);\n    if (result && isPrototypeOf(ResultPrototype, result))\n     return result;\n   }\n   return new Result(false);\n  }\n  iterator = getIterator(iterable, iterFn);\n }\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n  try {\n   result = callFn(step.value);\n  } catch (error) {\n   iteratorClose(iterator, 'throw', error);\n  }\n  if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result))\n   return result;\n }\n return new Result(false);\n};\n\n/***/ }),\n/* 106 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar aCallable = __w_pdfjs_require__(32);\nvar NATIVE_BIND = __w_pdfjs_require__(12);\nvar bind = uncurryThis(uncurryThis.bind);\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function () {\n  return fn.apply(that, arguments);\n };\n};\n\n/***/ }),\n/* 107 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar Iterators = __w_pdfjs_require__(88);\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n/***/ }),\n/* 108 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(11);\nvar aCallable = __w_pdfjs_require__(32);\nvar anObject = __w_pdfjs_require__(48);\nvar tryToString = __w_pdfjs_require__(33);\nvar getIteratorMethod = __w_pdfjs_require__(109);\nvar $TypeError = TypeError;\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod))\n  return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n\n/***/ }),\n/* 109 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar classof = __w_pdfjs_require__(80);\nvar getMethod = __w_pdfjs_require__(31);\nvar Iterators = __w_pdfjs_require__(88);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar ITERATOR = wellKnownSymbol('iterator');\nmodule.exports = function (it) {\n if (it != undefined)\n  return getMethod(it, ITERATOR) || getMethod(it, '@@iterator') || Iterators[classof(it)];\n};\n\n/***/ }),\n/* 110 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(11);\nvar anObject = __w_pdfjs_require__(48);\nvar getMethod = __w_pdfjs_require__(31);\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n  innerResult = getMethod(iterator, 'return');\n  if (!innerResult) {\n   if (kind === 'throw')\n    throw value;\n   return value;\n  }\n  innerResult = call(innerResult, iterator);\n } catch (error) {\n  innerError = true;\n  innerResult = error;\n }\n if (kind === 'throw')\n  throw value;\n if (innerError)\n  throw innerResult;\n anObject(innerResult);\n return value;\n};\n\n/***/ }),\n/* 111 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isPrototypeOf = __w_pdfjs_require__(26);\nvar $TypeError = TypeError;\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it))\n  return it;\n throw $TypeError('Incorrect invocation');\n};\n\n/***/ }),\n/* 112 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\ntry {\n var called = 0;\n var iteratorWithReturn = {\n  next: function () {\n   return { done: !!called++ };\n  },\n  'return': function () {\n   SAFE_CLOSING = true;\n  }\n };\n iteratorWithReturn[ITERATOR] = function () {\n  return this;\n };\n Array.from(iteratorWithReturn, function () {\n  throw 2;\n });\n} catch (error) {\n}\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING)\n  return false;\n var ITERATION_SUPPORT = false;\n try {\n  var object = {};\n  object[ITERATOR] = function () {\n   return {\n    next: function () {\n     return { done: ITERATION_SUPPORT = true };\n    }\n   };\n  };\n  exec(object);\n } catch (error) {\n }\n return ITERATION_SUPPORT;\n};\n\n/***/ }),\n/* 113 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(23);\nvar isObject = __w_pdfjs_require__(22);\nvar setPrototypeOf = __w_pdfjs_require__(84);\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (setPrototypeOf && isCallable(NewTarget = dummy.constructor) && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype)\n  setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n\n/***/ }),\n/* 114 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar defineProperty = (__w_pdfjs_require__(46).f);\nvar create = __w_pdfjs_require__(71);\nvar defineBuiltIns = __w_pdfjs_require__(115);\nvar bind = __w_pdfjs_require__(106);\nvar anInstance = __w_pdfjs_require__(111);\nvar iterate = __w_pdfjs_require__(105);\nvar defineIterator = __w_pdfjs_require__(89);\nvar setSpecies = __w_pdfjs_require__(116);\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar fastKey = (__w_pdfjs_require__(98).fastKey);\nvar InternalStateModule = __w_pdfjs_require__(53);\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n  var Constructor = wrapper(function (that, iterable) {\n   anInstance(that, Prototype);\n   setInternalState(that, {\n    type: CONSTRUCTOR_NAME,\n    index: create(null),\n    first: undefined,\n    last: undefined,\n    size: 0\n   });\n   if (!DESCRIPTORS)\n    that.size = 0;\n   if (iterable != undefined)\n    iterate(iterable, that[ADDER], {\n     that: that,\n     AS_ENTRIES: IS_MAP\n    });\n  });\n  var Prototype = Constructor.prototype;\n  var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n  var define = function (that, key, value) {\n   var state = getInternalState(that);\n   var entry = getEntry(that, key);\n   var previous, index;\n   if (entry) {\n    entry.value = value;\n   } else {\n    state.last = entry = {\n     index: index = fastKey(key, true),\n     key: key,\n     value: value,\n     previous: previous = state.last,\n     next: undefined,\n     removed: false\n    };\n    if (!state.first)\n     state.first = entry;\n    if (previous)\n     previous.next = entry;\n    if (DESCRIPTORS)\n     state.size++;\n    else\n     that.size++;\n    if (index !== 'F')\n     state.index[index] = entry;\n   }\n   return that;\n  };\n  var getEntry = function (that, key) {\n   var state = getInternalState(that);\n   var index = fastKey(key);\n   var entry;\n   if (index !== 'F')\n    return state.index[index];\n   for (entry = state.first; entry; entry = entry.next) {\n    if (entry.key == key)\n     return entry;\n   }\n  };\n  defineBuiltIns(Prototype, {\n   clear: function clear() {\n    var that = this;\n    var state = getInternalState(that);\n    var data = state.index;\n    var entry = state.first;\n    while (entry) {\n     entry.removed = true;\n     if (entry.previous)\n      entry.previous = entry.previous.next = undefined;\n     delete data[entry.index];\n     entry = entry.next;\n    }\n    state.first = state.last = undefined;\n    if (DESCRIPTORS)\n     state.size = 0;\n    else\n     that.size = 0;\n   },\n   'delete': function (key) {\n    var that = this;\n    var state = getInternalState(that);\n    var entry = getEntry(that, key);\n    if (entry) {\n     var next = entry.next;\n     var prev = entry.previous;\n     delete state.index[entry.index];\n     entry.removed = true;\n     if (prev)\n      prev.next = next;\n     if (next)\n      next.previous = prev;\n     if (state.first == entry)\n      state.first = next;\n     if (state.last == entry)\n      state.last = prev;\n     if (DESCRIPTORS)\n      state.size--;\n     else\n      that.size--;\n    }\n    return !!entry;\n   },\n   forEach: function forEach(callbackfn) {\n    var state = getInternalState(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var entry;\n    while (entry = entry ? entry.next : state.first) {\n     boundFunction(entry.value, entry.key, this);\n     while (entry && entry.removed)\n      entry = entry.previous;\n    }\n   },\n   has: function has(key) {\n    return !!getEntry(this, key);\n   }\n  });\n  defineBuiltIns(Prototype, IS_MAP ? {\n   get: function get(key) {\n    var entry = getEntry(this, key);\n    return entry && entry.value;\n   },\n   set: function set(key, value) {\n    return define(this, key === 0 ? 0 : key, value);\n   }\n  } : {\n   add: function add(value) {\n    return define(this, value = value === 0 ? 0 : value, value);\n   }\n  });\n  if (DESCRIPTORS)\n   defineProperty(Prototype, 'size', {\n    get: function () {\n     return getInternalState(this).size;\n    }\n   });\n  return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n  var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n  var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n  var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n  defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n   setInternalState(this, {\n    type: ITERATOR_NAME,\n    target: iterated,\n    state: getInternalCollectionState(iterated),\n    kind: kind,\n    last: undefined\n   });\n  }, function () {\n   var state = getInternalIteratorState(this);\n   var kind = state.kind;\n   var entry = state.last;\n   while (entry && entry.removed)\n    entry = entry.previous;\n   if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n    state.target = undefined;\n    return {\n     value: undefined,\n     done: true\n    };\n   }\n   if (kind == 'keys')\n    return {\n     value: entry.key,\n     done: false\n    };\n   if (kind == 'values')\n    return {\n     value: entry.value,\n     done: false\n    };\n   return {\n    value: [\n     entry.key,\n     entry.value\n    ],\n    done: false\n   };\n  }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n  setSpecies(CONSTRUCTOR_NAME);\n }\n};\n\n/***/ }),\n/* 115 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar defineBuiltIn = __w_pdfjs_require__(49);\nmodule.exports = function (target, src, options) {\n for (var key in src)\n  defineBuiltIn(target, key, src[key], options);\n return target;\n};\n\n/***/ }),\n/* 116 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar getBuiltIn = __w_pdfjs_require__(25);\nvar definePropertyModule = __w_pdfjs_require__(46);\nvar wellKnownSymbol = __w_pdfjs_require__(35);\nvar DESCRIPTORS = __w_pdfjs_require__(9);\nvar SPECIES = wellKnownSymbol('species');\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n  defineProperty(Constructor, SPECIES, {\n   configurable: true,\n   get: function () {\n    return this;\n   }\n  });\n }\n};\n\n/***/ }),\n/* 117 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(118);\n\n/***/ }),\n/* 118 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar collection = __w_pdfjs_require__(97);\nvar collectionStrong = __w_pdfjs_require__(114);\ncollection('Set', function (init) {\n return function Set() {\n  return init(this, arguments.length ? arguments[0] : undefined);\n };\n}, collectionStrong);\n\n/***/ }),\n/* 119 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar IS_PURE = __w_pdfjs_require__(37);\nvar $ = __w_pdfjs_require__(6);\nvar global = __w_pdfjs_require__(7);\nvar getBuiltin = __w_pdfjs_require__(25);\nvar uncurryThis = __w_pdfjs_require__(17);\nvar fails = __w_pdfjs_require__(10);\nvar uid = __w_pdfjs_require__(42);\nvar isCallable = __w_pdfjs_require__(23);\nvar isConstructor = __w_pdfjs_require__(120);\nvar isObject = __w_pdfjs_require__(22);\nvar isSymbol = __w_pdfjs_require__(24);\nvar iterate = __w_pdfjs_require__(105);\nvar anObject = __w_pdfjs_require__(48);\nvar classof = __w_pdfjs_require__(80);\nvar hasOwn = __w_pdfjs_require__(40);\nvar createProperty = __w_pdfjs_require__(101);\nvar createNonEnumerableProperty = __w_pdfjs_require__(45);\nvar lengthOfArrayLike = __w_pdfjs_require__(65);\nvar validateArgumentsLength = __w_pdfjs_require__(121);\nvar getRegExpFlags = __w_pdfjs_require__(122);\nvar ERROR_STACK_INSTALLABLE = __w_pdfjs_require__(124);\nvar V8 = __w_pdfjs_require__(29);\nvar IS_BROWSER = __w_pdfjs_require__(125);\nvar IS_DENO = __w_pdfjs_require__(126);\nvar IS_NODE = __w_pdfjs_require__(127);\nvar Object = global.Object;\nvar Date = global.Date;\nvar Error = global.Error;\nvar EvalError = global.EvalError;\nvar RangeError = global.RangeError;\nvar ReferenceError = global.ReferenceError;\nvar SyntaxError = global.SyntaxError;\nvar TypeError = global.TypeError;\nvar URIError = global.URIError;\nvar PerformanceMark = global.PerformanceMark;\nvar WebAssembly = global.WebAssembly;\nvar CompileError = WebAssembly && WebAssembly.CompileError || Error;\nvar LinkError = WebAssembly && WebAssembly.LinkError || Error;\nvar RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error;\nvar DOMException = getBuiltin('DOMException');\nvar Set = getBuiltin('Set');\nvar Map = getBuiltin('Map');\nvar MapPrototype = Map.prototype;\nvar mapHas = uncurryThis(MapPrototype.has);\nvar mapGet = uncurryThis(MapPrototype.get);\nvar mapSet = uncurryThis(MapPrototype.set);\nvar setAdd = uncurryThis(Set.prototype.add);\nvar objectKeys = getBuiltin('Object', 'keys');\nvar push = uncurryThis([].push);\nvar booleanValueOf = uncurryThis(true.valueOf);\nvar numberValueOf = uncurryThis(1.0.valueOf);\nvar stringValueOf = uncurryThis(''.valueOf);\nvar getTime = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n  var set1 = new global.Set([7]);\n  var set2 = structuredCloneImplementation(set1);\n  var number = structuredCloneImplementation(Object(7));\n  return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7;\n }) && structuredCloneImplementation;\n};\nvar checkErrorsCloning = function (structuredCloneImplementation, $Error) {\n return !fails(function () {\n  var error = new $Error();\n  var test = structuredCloneImplementation({\n   a: error,\n   b: error\n  });\n  return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);\n });\n};\nvar checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n  var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n  return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3;\n });\n};\nvar nativeStructuredClone = global.structuredClone;\nvar FORCED_REPLACEMENT = IS_PURE || !checkErrorsCloning(nativeStructuredClone, Error) || !checkErrorsCloning(nativeStructuredClone, DOMException) || !checkNewErrorsCloningSemantic(nativeStructuredClone);\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\nvar throwUncloneable = function (type) {\n throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\nvar throwUnpolyfillable = function (type, kind) {\n throw new DOMException((kind || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\nvar structuredCloneInternal = function (value, map) {\n if (isSymbol(value))\n  throwUncloneable('Symbol');\n if (!isObject(value))\n  return value;\n if (map) {\n  if (mapHas(map, value))\n   return mapGet(map, value);\n } else\n  map = new Map();\n var type = classof(value);\n var deep = false;\n var C, name, cloned, dataTransfer, i, length, keys, key, source, target;\n switch (type) {\n case 'Array':\n  cloned = [];\n  deep = true;\n  break;\n case 'Object':\n  cloned = {};\n  deep = true;\n  break;\n case 'Map':\n  cloned = new Map();\n  deep = true;\n  break;\n case 'Set':\n  cloned = new Set();\n  deep = true;\n  break;\n case 'RegExp':\n  cloned = new RegExp(value.source, getRegExpFlags(value));\n  break;\n case 'Error':\n  name = value.name;\n  switch (name) {\n  case 'AggregateError':\n   cloned = getBuiltin('AggregateError')([]);\n   break;\n  case 'EvalError':\n   cloned = EvalError();\n   break;\n  case 'RangeError':\n   cloned = RangeError();\n   break;\n  case 'ReferenceError':\n   cloned = ReferenceError();\n   break;\n  case 'SyntaxError':\n   cloned = SyntaxError();\n   break;\n  case 'TypeError':\n   cloned = TypeError();\n   break;\n  case 'URIError':\n   cloned = URIError();\n   break;\n  case 'CompileError':\n   cloned = CompileError();\n   break;\n  case 'LinkError':\n   cloned = LinkError();\n   break;\n  case 'RuntimeError':\n   cloned = RuntimeError();\n   break;\n  default:\n   cloned = Error();\n  }\n  deep = true;\n  break;\n case 'DOMException':\n  cloned = new DOMException(value.message, value.name);\n  deep = true;\n  break;\n case 'DataView':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n  C = global[type];\n  if (!isObject(C))\n   throwUnpolyfillable(type);\n  cloned = new C(structuredCloneInternal(value.buffer, map), value.byteOffset, type === 'DataView' ? value.byteLength : value.length);\n  break;\n case 'DOMQuad':\n  try {\n   cloned = new DOMQuad(structuredCloneInternal(value.p1, map), structuredCloneInternal(value.p2, map), structuredCloneInternal(value.p3, map), structuredCloneInternal(value.p4, map));\n  } catch (error) {\n   if (nativeRestrictedStructuredClone) {\n    cloned = nativeRestrictedStructuredClone(value);\n   } else\n    throwUnpolyfillable(type);\n  }\n  break;\n case 'FileList':\n  C = global.DataTransfer;\n  if (isConstructor(C)) {\n   dataTransfer = new C();\n   for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n    dataTransfer.items.add(structuredCloneInternal(value[i], map));\n   }\n   cloned = dataTransfer.files;\n  } else if (nativeRestrictedStructuredClone) {\n   cloned = nativeRestrictedStructuredClone(value);\n  } else\n   throwUnpolyfillable(type);\n  break;\n case 'ImageData':\n  try {\n   cloned = new ImageData(structuredCloneInternal(value.data, map), value.width, value.height, { colorSpace: value.colorSpace });\n  } catch (error) {\n   if (nativeRestrictedStructuredClone) {\n    cloned = nativeRestrictedStructuredClone(value);\n   } else\n    throwUnpolyfillable(type);\n  }\n  break;\n default:\n  if (nativeRestrictedStructuredClone) {\n   cloned = nativeRestrictedStructuredClone(value);\n  } else\n   switch (type) {\n   case 'BigInt':\n    cloned = Object(value.valueOf());\n    break;\n   case 'Boolean':\n    cloned = Object(booleanValueOf(value));\n    break;\n   case 'Number':\n    cloned = Object(numberValueOf(value));\n    break;\n   case 'String':\n    cloned = Object(stringValueOf(value));\n    break;\n   case 'Date':\n    cloned = new Date(getTime(value));\n    break;\n   case 'ArrayBuffer':\n    C = global.DataView;\n    if (!C && typeof value.slice != 'function')\n     throwUnpolyfillable(type);\n    try {\n     if (typeof value.slice == 'function') {\n      cloned = value.slice(0);\n     } else {\n      length = value.byteLength;\n      cloned = new ArrayBuffer(length);\n      source = new C(value);\n      target = new C(cloned);\n      for (i = 0; i < length; i++) {\n       target.setUint8(i, source.getUint8(i));\n      }\n     }\n    } catch (error) {\n     throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n    }\n    break;\n   case 'SharedArrayBuffer':\n    cloned = value;\n    break;\n   case 'Blob':\n    try {\n     cloned = value.slice(0, value.size, value.type);\n    } catch (error) {\n     throwUnpolyfillable(type);\n    }\n    break;\n   case 'DOMPoint':\n   case 'DOMPointReadOnly':\n    C = global[type];\n    try {\n     cloned = C.fromPoint ? C.fromPoint(value) : new C(value.x, value.y, value.z, value.w);\n    } catch (error) {\n     throwUnpolyfillable(type);\n    }\n    break;\n   case 'DOMRect':\n   case 'DOMRectReadOnly':\n    C = global[type];\n    try {\n     cloned = C.fromRect ? C.fromRect(value) : new C(value.x, value.y, value.width, value.height);\n    } catch (error) {\n     throwUnpolyfillable(type);\n    }\n    break;\n   case 'DOMMatrix':\n   case 'DOMMatrixReadOnly':\n    C = global[type];\n    try {\n     cloned = C.fromMatrix ? C.fromMatrix(value) : new C(value);\n    } catch (error) {\n     throwUnpolyfillable(type);\n    }\n    break;\n   case 'AudioData':\n   case 'VideoFrame':\n    if (!isCallable(value.clone))\n     throwUnpolyfillable(type);\n    try {\n     cloned = value.clone();\n    } catch (error) {\n     throwUncloneable(type);\n    }\n    break;\n   case 'File':\n    try {\n     cloned = new File([value], value.name, value);\n    } catch (error) {\n     throwUnpolyfillable(type);\n    }\n    break;\n   case 'CryptoKey':\n   case 'GPUCompilationMessage':\n   case 'GPUCompilationInfo':\n   case 'ImageBitmap':\n   case 'RTCCertificate':\n   case 'WebAssembly.Module':\n    throwUnpolyfillable(type);\n   default:\n    throwUncloneable(type);\n   }\n }\n mapSet(map, value, cloned);\n if (deep)\n  switch (type) {\n  case 'Array':\n  case 'Object':\n   keys = objectKeys(value);\n   for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n    key = keys[i];\n    createProperty(cloned, key, structuredCloneInternal(value[key], map));\n   }\n   break;\n  case 'Map':\n   value.forEach(function (v, k) {\n    mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n   });\n   break;\n  case 'Set':\n   value.forEach(function (v) {\n    setAdd(cloned, structuredCloneInternal(v, map));\n   });\n   break;\n  case 'Error':\n   createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n   if (hasOwn(value, 'cause')) {\n    createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n   }\n   if (name == 'AggregateError') {\n    cloned.errors = structuredCloneInternal(value.errors, map);\n   }\n  case 'DOMException':\n   if (ERROR_STACK_INSTALLABLE) {\n    createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n   }\n  }\n return cloned;\n};\nvar PROPER_TRANSFER = nativeStructuredClone && !fails(function () {\n if (IS_DENO && V8 > 92 || IS_NODE && V8 > 94 || IS_BROWSER && V8 > 97)\n  return false;\n var buffer = new ArrayBuffer(8);\n var clone = nativeStructuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength != 0 || clone.byteLength != 8;\n});\nvar tryToTransfer = function (rawTransfer, map) {\n if (!isObject(rawTransfer))\n  throw TypeError('Transfer option cannot be converted to a sequence');\n var transfer = [];\n iterate(rawTransfer, function (value) {\n  push(transfer, anObject(value));\n });\n var i = 0;\n var length = lengthOfArrayLike(transfer);\n var value, type, C, transferredArray, transferred, canvas, context;\n if (PROPER_TRANSFER) {\n  transferredArray = nativeStructuredClone(transfer, { transfer: transfer });\n  while (i < length)\n   mapSet(map, transfer[i], transferredArray[i++]);\n } else\n  while (i < length) {\n   value = transfer[i++];\n   if (mapHas(map, value))\n    throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n   type = classof(value);\n   switch (type) {\n   case 'ImageBitmap':\n    C = global.OffscreenCanvas;\n    if (!isConstructor(C))\n     throwUnpolyfillable(type, TRANSFERRING);\n    try {\n     canvas = new C(value.width, value.height);\n     context = canvas.getContext('bitmaprenderer');\n     context.transferFromImageBitmap(value);\n     transferred = canvas.transferToImageBitmap();\n    } catch (error) {\n    }\n    break;\n   case 'AudioData':\n   case 'VideoFrame':\n    if (!isCallable(value.clone) || !isCallable(value.close))\n     throwUnpolyfillable(type, TRANSFERRING);\n    try {\n     transferred = value.clone();\n     value.close();\n    } catch (error) {\n    }\n    break;\n   case 'ArrayBuffer':\n   case 'MessagePort':\n   case 'OffscreenCanvas':\n   case 'ReadableStream':\n   case 'TransformStream':\n   case 'WritableStream':\n    throwUnpolyfillable(type, TRANSFERRING);\n   }\n   if (transferred === undefined)\n    throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n   mapSet(map, value, transferred);\n  }\n};\n$({\n global: true,\n enumerable: true,\n sham: !PROPER_TRANSFER,\n forced: FORCED_REPLACEMENT\n}, {\n structuredClone: function structuredClone(value) {\n  var options = validateArgumentsLength(arguments.length, 1) > 1 && arguments[1] != null ? anObject(arguments[1]) : undefined;\n  var transfer = options ? options.transfer : undefined;\n  var map;\n  if (transfer !== undefined) {\n   map = new Map();\n   tryToTransfer(transfer, map);\n  }\n  return structuredCloneInternal(value, map);\n }\n});\n\n/***/ }),\n/* 120 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(17);\nvar fails = __w_pdfjs_require__(10);\nvar isCallable = __w_pdfjs_require__(23);\nvar classof = __w_pdfjs_require__(80);\nvar getBuiltIn = __w_pdfjs_require__(25);\nvar inspectSource = __w_pdfjs_require__(52);\nvar noop = function () {\n};\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument))\n  return false;\n try {\n  construct(noop, empty, argument);\n  return true;\n } catch (error) {\n  return false;\n }\n};\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument))\n  return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction':\n  return false;\n }\n try {\n  return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n  return true;\n }\n};\nisConstructorLegacy.sham = true;\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function () {\n  called = true;\n }) || called;\n}) ? isConstructorLegacy : isConstructorModern;\n\n/***/ }),\n/* 121 */\n/***/ ((module) => {\n\nvar $TypeError = TypeError;\nmodule.exports = function (passed, required) {\n if (passed < required)\n  throw $TypeError('Not enough arguments');\n return passed;\n};\n\n/***/ }),\n/* 122 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(11);\nvar hasOwn = __w_pdfjs_require__(40);\nvar isPrototypeOf = __w_pdfjs_require__(26);\nvar regExpFlags = __w_pdfjs_require__(123);\nvar RegExpPrototype = RegExp.prototype;\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R) ? call(regExpFlags, R) : flags;\n};\n\n/***/ }),\n/* 123 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar anObject = __w_pdfjs_require__(48);\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices)\n  result += 'd';\n if (that.global)\n  result += 'g';\n if (that.ignoreCase)\n  result += 'i';\n if (that.multiline)\n  result += 'm';\n if (that.dotAll)\n  result += 's';\n if (that.unicode)\n  result += 'u';\n if (that.unicodeSets)\n  result += 'v';\n if (that.sticky)\n  result += 'y';\n return result;\n};\n\n/***/ }),\n/* 124 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(10);\nvar createPropertyDescriptor = __w_pdfjs_require__(14);\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error))\n  return true;\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n\n/***/ }),\n/* 125 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar IS_DENO = __w_pdfjs_require__(126);\nvar IS_NODE = __w_pdfjs_require__(127);\nmodule.exports = !IS_DENO && !IS_NODE && typeof window == 'object' && typeof document == 'object';\n\n/***/ }),\n/* 126 */\n/***/ ((module) => {\n\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n\n/***/ }),\n/* 127 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar classof = __w_pdfjs_require__(18);\nvar global = __w_pdfjs_require__(7);\nmodule.exports = classof(global.process) == 'process';\n\n/***/ }),\n/* 128 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(7);\nmodule.exports = global;\n\n/***/ }),\n/* 129 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.build = exports.RenderTask = exports.PDFWorkerUtil = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0;\nexports.getDocument = getDocument;\nexports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\nexports.version = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _annotation_storage = __w_pdfjs_require__(130);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nvar _font_loader = __w_pdfjs_require__(136);\n\nvar _canvas = __w_pdfjs_require__(137);\n\nvar _worker_options = __w_pdfjs_require__(140);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nvar _message_handler = __w_pdfjs_require__(141);\n\nvar _metadata = __w_pdfjs_require__(142);\n\nvar _optional_content_config = __w_pdfjs_require__(143);\n\nvar _transport_stream = __w_pdfjs_require__(144);\n\nvar _xfa_text = __w_pdfjs_require__(145);\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _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; } }\n\nfunction _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classCheckPrivateStaticFieldDescriptor(descriptor, action) { if (descriptor === undefined) { throw new TypeError(\"attempted to \" + action + \" private static field before its declaration\"); } }\n\nfunction _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError(\"Private static access of wrong provenance\"); } }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nlet DefaultCanvasFactory = _display_utils.DOMCanvasFactory;\nexports.DefaultCanvasFactory = DefaultCanvasFactory;\nlet DefaultCMapReaderFactory = _display_utils.DOMCMapReaderFactory;\nexports.DefaultCMapReaderFactory = DefaultCMapReaderFactory;\nlet DefaultStandardFontDataFactory = _display_utils.DOMStandardFontDataFactory;\nexports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory;\n\nif (_is_node.isNodeJS) {\n  const {\n    NodeCanvasFactory,\n    NodeCMapReaderFactory,\n    NodeStandardFontDataFactory\n  } = __w_pdfjs_require__(146);\n\n  exports.DefaultCanvasFactory = DefaultCanvasFactory = NodeCanvasFactory;\n  exports.DefaultCMapReaderFactory = DefaultCMapReaderFactory = NodeCMapReaderFactory;\n  exports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory = NodeStandardFontDataFactory;\n}\n\nlet createPDFNetworkStream;\n\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n  createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\nfunction getDocument(src) {\n  const task = new PDFDocumentLoadingTask();\n  let source;\n\n  if (typeof src === \"string\" || src instanceof URL) {\n    source = {\n      url: src\n    };\n  } else if ((0, _util.isArrayBuffer)(src)) {\n    source = {\n      data: src\n    };\n  } else if (src instanceof PDFDataRangeTransport) {\n    source = {\n      range: src\n    };\n  } else {\n    if (typeof src !== \"object\") {\n      throw new Error(\"Invalid parameter in getDocument, \" + \"need either string, URL, TypedArray, or parameter object.\");\n    }\n\n    if (!src.url && !src.data && !src.range) {\n      throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\n    }\n\n    source = src;\n  }\n\n  const params = Object.create(null);\n  let rangeTransport = null,\n      worker = null;\n\n  for (const key in source) {\n    const value = source[key];\n\n    switch (key) {\n      case \"url\":\n        if (typeof window !== \"undefined\") {\n          try {\n            params[key] = new URL(value, window.location).href;\n            continue;\n          } catch (ex) {\n            (0, _util.warn)(`Cannot create valid URL: \"${ex}\".`);\n          }\n        } else if (typeof value === \"string\" || value instanceof URL) {\n          params[key] = value.toString();\n          continue;\n        }\n\n        throw new Error(\"Invalid PDF url data: \" + \"either string or URL-object is expected in the url property.\");\n\n      case \"range\":\n        rangeTransport = value;\n        continue;\n\n      case \"worker\":\n        worker = value;\n        continue;\n\n      case \"data\":\n        if (_is_node.isNodeJS && typeof Buffer !== \"undefined\" && value instanceof Buffer) {\n          params[key] = new Uint8Array(value);\n        } else if (value instanceof Uint8Array) {\n          break;\n        } else if (typeof value === \"string\") {\n          params[key] = (0, _util.stringToBytes)(value);\n        } else if (typeof value === \"object\" && value !== null && !isNaN(value.length)) {\n          params[key] = new Uint8Array(value);\n        } else if ((0, _util.isArrayBuffer)(value)) {\n          params[key] = new Uint8Array(value);\n        } else {\n          throw new Error(\"Invalid PDF binary data: either TypedArray, \" + \"string, or array-like object is expected in the data property.\");\n        }\n\n        continue;\n    }\n\n    params[key] = value;\n  }\n\n  params.CMapReaderFactory = params.CMapReaderFactory || DefaultCMapReaderFactory;\n  params.StandardFontDataFactory = params.StandardFontDataFactory || DefaultStandardFontDataFactory;\n  params.ignoreErrors = params.stopAtErrors !== true;\n  params.fontExtraProperties = params.fontExtraProperties === true;\n  params.pdfBug = params.pdfBug === true;\n  params.enableXfa = params.enableXfa === true;\n\n  if (!Number.isInteger(params.rangeChunkSize) || params.rangeChunkSize < 1) {\n    params.rangeChunkSize = DEFAULT_RANGE_CHUNK_SIZE;\n  }\n\n  if (typeof params.docBaseUrl !== \"string\" || (0, _display_utils.isDataScheme)(params.docBaseUrl)) {\n    params.docBaseUrl = null;\n  }\n\n  if (!Number.isInteger(params.maxImageSize) || params.maxImageSize < -1) {\n    params.maxImageSize = -1;\n  }\n\n  if (typeof params.cMapUrl !== \"string\") {\n    params.cMapUrl = null;\n  }\n\n  if (typeof params.standardFontDataUrl !== \"string\") {\n    params.standardFontDataUrl = null;\n  }\n\n  if (typeof params.useWorkerFetch !== \"boolean\") {\n    params.useWorkerFetch = params.CMapReaderFactory === _display_utils.DOMCMapReaderFactory && params.StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory;\n  }\n\n  if (typeof params.isEvalSupported !== \"boolean\") {\n    params.isEvalSupported = true;\n  }\n\n  if (typeof params.disableFontFace !== \"boolean\") {\n    params.disableFontFace = _is_node.isNodeJS;\n  }\n\n  if (typeof params.useSystemFonts !== \"boolean\") {\n    params.useSystemFonts = !_is_node.isNodeJS && !params.disableFontFace;\n  }\n\n  if (typeof params.ownerDocument !== \"object\" || params.ownerDocument === null) {\n    params.ownerDocument = globalThis.document;\n  }\n\n  if (typeof params.disableRange !== \"boolean\") {\n    params.disableRange = false;\n  }\n\n  if (typeof params.disableStream !== \"boolean\") {\n    params.disableStream = false;\n  }\n\n  if (typeof params.disableAutoFetch !== \"boolean\") {\n    params.disableAutoFetch = false;\n  }\n\n  (0, _util.setVerbosityLevel)(params.verbosity);\n\n  if (!worker) {\n    const workerParams = {\n      verbosity: params.verbosity,\n      port: _worker_options.GlobalWorkerOptions.workerPort\n    };\n    worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n    task._worker = worker;\n  }\n\n  const docId = task.docId;\n  worker.promise.then(function () {\n    if (task.destroyed) {\n      throw new Error(\"Loading aborted\");\n    }\n\n    const workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId);\n\n    const networkStreamPromise = new Promise(function (resolve) {\n      let networkStream;\n\n      if (rangeTransport) {\n        networkStream = new _transport_stream.PDFDataTransportStream({\n          length: params.length,\n          initialData: params.initialData,\n          progressiveDone: params.progressiveDone,\n          contentDispositionFilename: params.contentDispositionFilename,\n          disableRange: params.disableRange,\n          disableStream: params.disableStream\n        }, rangeTransport);\n      } else if (!params.data) {\n        networkStream = createPDFNetworkStream({\n          url: params.url,\n          length: params.length,\n          httpHeaders: params.httpHeaders,\n          withCredentials: params.withCredentials,\n          rangeChunkSize: params.rangeChunkSize,\n          disableRange: params.disableRange,\n          disableStream: params.disableStream\n        });\n      }\n\n      resolve(networkStream);\n    });\n    return Promise.all([workerIdPromise, networkStreamPromise]).then(function (_ref) {\n      let [workerId, networkStream] = _ref;\n\n      if (task.destroyed) {\n        throw new Error(\"Loading aborted\");\n      }\n\n      const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n      const transport = new WorkerTransport(messageHandler, task, networkStream, params);\n      task._transport = transport;\n      messageHandler.send(\"Ready\", null);\n    });\n  }).catch(task._capability.reject);\n  return task;\n}\n\nasync function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n  if (worker.destroyed) {\n    throw new Error(\"Worker was destroyed\");\n  }\n\n  if (pdfDataRangeTransport) {\n    source.length = pdfDataRangeTransport.length;\n    source.initialData = pdfDataRangeTransport.initialData;\n    source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n    source.contentDispositionFilename = pdfDataRangeTransport.contentDispositionFilename;\n  }\n\n  const workerId = await worker.messageHandler.sendWithPromise(\"GetDocRequest\", {\n    docId,\n    apiVersion: '2.16.105',\n    source: {\n      data: source.data,\n      url: source.url,\n      password: source.password,\n      disableAutoFetch: source.disableAutoFetch,\n      rangeChunkSize: source.rangeChunkSize,\n      length: source.length\n    },\n    maxImageSize: source.maxImageSize,\n    disableFontFace: source.disableFontFace,\n    docBaseUrl: source.docBaseUrl,\n    ignoreErrors: source.ignoreErrors,\n    isEvalSupported: source.isEvalSupported,\n    fontExtraProperties: source.fontExtraProperties,\n    enableXfa: source.enableXfa,\n    useSystemFonts: source.useSystemFonts,\n    cMapUrl: source.useWorkerFetch ? source.cMapUrl : null,\n    standardFontDataUrl: source.useWorkerFetch ? source.standardFontDataUrl : null\n  });\n\n  if (source.data) {\n    source.data = null;\n  }\n\n  if (worker.destroyed) {\n    throw new Error(\"Worker was destroyed\");\n  }\n\n  return workerId;\n}\n\nclass PDFDocumentLoadingTask {\n  constructor() {\n    var _PDFDocumentLoadingTa, _PDFDocumentLoadingTa2;\n\n    this._capability = (0, _util.createPromiseCapability)();\n    this._transport = null;\n    this._worker = null;\n    this.docId = `d${(_classStaticPrivateFieldSpecSet(PDFDocumentLoadingTask, PDFDocumentLoadingTask, _docId, (_PDFDocumentLoadingTa = _classStaticPrivateFieldSpecGet(PDFDocumentLoadingTask, PDFDocumentLoadingTask, _docId), _PDFDocumentLoadingTa2 = _PDFDocumentLoadingTa++, _PDFDocumentLoadingTa)), _PDFDocumentLoadingTa2)}`;\n    this.destroyed = false;\n    this.onPassword = null;\n    this.onProgress = null;\n    this.onUnsupportedFeature = null;\n  }\n\n  get promise() {\n    return this._capability.promise;\n  }\n\n  async destroy() {\n    var _this$_transport;\n\n    this.destroyed = true;\n    await ((_this$_transport = this._transport) === null || _this$_transport === void 0 ? void 0 : _this$_transport.destroy());\n    this._transport = null;\n\n    if (this._worker) {\n      this._worker.destroy();\n\n      this._worker = null;\n    }\n  }\n\n}\n\nexports.PDFDocumentLoadingTask = PDFDocumentLoadingTask;\nvar _docId = {\n  writable: true,\n  value: 0\n};\n\nclass PDFDataRangeTransport {\n  constructor(length, initialData) {\n    let progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    let contentDispositionFilename = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n    this.length = length;\n    this.initialData = initialData;\n    this.progressiveDone = progressiveDone;\n    this.contentDispositionFilename = contentDispositionFilename;\n    this._rangeListeners = [];\n    this._progressListeners = [];\n    this._progressiveReadListeners = [];\n    this._progressiveDoneListeners = [];\n    this._readyCapability = (0, _util.createPromiseCapability)();\n  }\n\n  addRangeListener(listener) {\n    this._rangeListeners.push(listener);\n  }\n\n  addProgressListener(listener) {\n    this._progressListeners.push(listener);\n  }\n\n  addProgressiveReadListener(listener) {\n    this._progressiveReadListeners.push(listener);\n  }\n\n  addProgressiveDoneListener(listener) {\n    this._progressiveDoneListeners.push(listener);\n  }\n\n  onDataRange(begin, chunk) {\n    for (const listener of this._rangeListeners) {\n      listener(begin, chunk);\n    }\n  }\n\n  onDataProgress(loaded, total) {\n    this._readyCapability.promise.then(() => {\n      for (const listener of this._progressListeners) {\n        listener(loaded, total);\n      }\n    });\n  }\n\n  onDataProgressiveRead(chunk) {\n    this._readyCapability.promise.then(() => {\n      for (const listener of this._progressiveReadListeners) {\n        listener(chunk);\n      }\n    });\n  }\n\n  onDataProgressiveDone() {\n    this._readyCapability.promise.then(() => {\n      for (const listener of this._progressiveDoneListeners) {\n        listener();\n      }\n    });\n  }\n\n  transportReady() {\n    this._readyCapability.resolve();\n  }\n\n  requestDataRange(begin, end) {\n    (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n  }\n\n  abort() {}\n\n}\n\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\n\nclass PDFDocumentProxy {\n  constructor(pdfInfo, transport) {\n    this._pdfInfo = pdfInfo;\n    this._transport = transport;\n    Object.defineProperty(this, \"fingerprint\", {\n      get() {\n        (0, _display_utils.deprecated)(\"`PDFDocumentProxy.fingerprint`, \" + \"please use `PDFDocumentProxy.fingerprints` instead.\");\n        return this.fingerprints[0];\n      }\n\n    });\n    Object.defineProperty(this, \"getStats\", {\n      value: async () => {\n        (0, _display_utils.deprecated)(\"`PDFDocumentProxy.getStats`, \" + \"please use the `PDFDocumentProxy.stats`-getter instead.\");\n        return this.stats || {\n          streamTypes: {},\n          fontTypes: {}\n        };\n      }\n    });\n  }\n\n  get annotationStorage() {\n    return this._transport.annotationStorage;\n  }\n\n  get numPages() {\n    return this._pdfInfo.numPages;\n  }\n\n  get fingerprints() {\n    return this._pdfInfo.fingerprints;\n  }\n\n  get stats() {\n    return this._transport.stats;\n  }\n\n  get isPureXfa() {\n    return !!this._transport._htmlForXfa;\n  }\n\n  get allXfaHtml() {\n    return this._transport._htmlForXfa;\n  }\n\n  getPage(pageNumber) {\n    return this._transport.getPage(pageNumber);\n  }\n\n  getPageIndex(ref) {\n    return this._transport.getPageIndex(ref);\n  }\n\n  getDestinations() {\n    return this._transport.getDestinations();\n  }\n\n  getDestination(id) {\n    return this._transport.getDestination(id);\n  }\n\n  getPageLabels() {\n    return this._transport.getPageLabels();\n  }\n\n  getPageLayout() {\n    return this._transport.getPageLayout();\n  }\n\n  getPageMode() {\n    return this._transport.getPageMode();\n  }\n\n  getViewerPreferences() {\n    return this._transport.getViewerPreferences();\n  }\n\n  getOpenAction() {\n    return this._transport.getOpenAction();\n  }\n\n  getAttachments() {\n    return this._transport.getAttachments();\n  }\n\n  getJavaScript() {\n    return this._transport.getJavaScript();\n  }\n\n  getJSActions() {\n    return this._transport.getDocJSActions();\n  }\n\n  getOutline() {\n    return this._transport.getOutline();\n  }\n\n  getOptionalContentConfig() {\n    return this._transport.getOptionalContentConfig();\n  }\n\n  getPermissions() {\n    return this._transport.getPermissions();\n  }\n\n  getMetadata() {\n    return this._transport.getMetadata();\n  }\n\n  getMarkInfo() {\n    return this._transport.getMarkInfo();\n  }\n\n  getData() {\n    return this._transport.getData();\n  }\n\n  getDownloadInfo() {\n    return this._transport.downloadInfoCapability.promise;\n  }\n\n  cleanup() {\n    let keepLoadedFonts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n  }\n\n  destroy() {\n    return this.loadingTask.destroy();\n  }\n\n  get loadingParams() {\n    return this._transport.loadingParams;\n  }\n\n  get loadingTask() {\n    return this._transport.loadingTask;\n  }\n\n  saveDocument() {\n    if (this._transport.annotationStorage.size <= 0) {\n      (0, _display_utils.deprecated)(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n    }\n\n    return this._transport.saveDocument();\n  }\n\n  getFieldObjects() {\n    return this._transport.getFieldObjects();\n  }\n\n  hasJSActions() {\n    return this._transport.hasJSActions();\n  }\n\n  getCalculationOrderIds() {\n    return this._transport.getCalculationOrderIds();\n  }\n\n}\n\nexports.PDFDocumentProxy = PDFDocumentProxy;\n\nclass PDFPageProxy {\n  constructor(pageIndex, pageInfo, transport, ownerDocument) {\n    let pdfBug = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n    this._pageIndex = pageIndex;\n    this._pageInfo = pageInfo;\n    this._ownerDocument = ownerDocument;\n    this._transport = transport;\n    this._stats = pdfBug ? new _display_utils.StatTimer() : null;\n    this._pdfBug = pdfBug;\n    this.commonObjs = transport.commonObjs;\n    this.objs = new PDFObjects();\n    this._bitmaps = new Set();\n    this.cleanupAfterRender = false;\n    this.pendingCleanup = false;\n    this._intentStates = new Map();\n    this._annotationPromises = new Map();\n    this.destroyed = false;\n  }\n\n  get pageNumber() {\n    return this._pageIndex + 1;\n  }\n\n  get rotate() {\n    return this._pageInfo.rotate;\n  }\n\n  get ref() {\n    return this._pageInfo.ref;\n  }\n\n  get userUnit() {\n    return this._pageInfo.userUnit;\n  }\n\n  get view() {\n    return this._pageInfo.view;\n  }\n\n  getViewport() {\n    let {\n      scale,\n      rotation = this.rotate,\n      offsetX = 0,\n      offsetY = 0,\n      dontFlip = false\n    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    return new _display_utils.PageViewport({\n      viewBox: this.view,\n      scale,\n      rotation,\n      offsetX,\n      offsetY,\n      dontFlip\n    });\n  }\n\n  getAnnotations() {\n    let {\n      intent = \"display\"\n    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    const intentArgs = this._transport.getRenderingIntent(intent);\n\n    let promise = this._annotationPromises.get(intentArgs.cacheKey);\n\n    if (!promise) {\n      promise = this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent);\n\n      this._annotationPromises.set(intentArgs.cacheKey, promise);\n\n      promise = promise.then(annotations => {\n        for (const annotation of annotations) {\n          if (annotation.titleObj !== undefined) {\n            Object.defineProperty(annotation, \"title\", {\n              get() {\n                (0, _display_utils.deprecated)(\"`title`-property on annotation, please use `titleObj` instead.\");\n                return annotation.titleObj.str;\n              }\n\n            });\n          }\n\n          if (annotation.contentsObj !== undefined) {\n            Object.defineProperty(annotation, \"contents\", {\n              get() {\n                (0, _display_utils.deprecated)(\"`contents`-property on annotation, please use `contentsObj` instead.\");\n                return annotation.contentsObj.str;\n              }\n\n            });\n          }\n        }\n\n        return annotations;\n      });\n    }\n\n    return promise;\n  }\n\n  getJSActions() {\n    return this._jsActionsPromise || (this._jsActionsPromise = this._transport.getPageJSActions(this._pageIndex));\n  }\n\n  async getXfa() {\n    var _this$_transport$_htm;\n\n    return ((_this$_transport$_htm = this._transport._htmlForXfa) === null || _this$_transport$_htm === void 0 ? void 0 : _this$_transport$_htm.children[this._pageIndex]) || null;\n  }\n\n  render(_ref2) {\n    var _arguments$, _arguments$2, _intentState;\n\n    let {\n      canvasContext,\n      viewport,\n      intent = \"display\",\n      annotationMode = _util.AnnotationMode.ENABLE,\n      transform = null,\n      imageLayer = null,\n      canvasFactory = null,\n      background = null,\n      optionalContentConfigPromise = null,\n      annotationCanvasMap = null,\n      pageColors = null,\n      printAnnotationStorage = null\n    } = _ref2;\n\n    if (((_arguments$ = arguments[0]) === null || _arguments$ === void 0 ? void 0 : _arguments$.renderInteractiveForms) !== undefined) {\n      (0, _display_utils.deprecated)(\"render no longer accepts the `renderInteractiveForms`-option, \" + \"please use the `annotationMode`-option instead.\");\n\n      if (arguments[0].renderInteractiveForms === true && annotationMode === _util.AnnotationMode.ENABLE) {\n        annotationMode = _util.AnnotationMode.ENABLE_FORMS;\n      }\n    }\n\n    if (((_arguments$2 = arguments[0]) === null || _arguments$2 === void 0 ? void 0 : _arguments$2.includeAnnotationStorage) !== undefined) {\n      (0, _display_utils.deprecated)(\"render no longer accepts the `includeAnnotationStorage`-option, \" + \"please use the `annotationMode`-option instead.\");\n\n      if (arguments[0].includeAnnotationStorage === true && annotationMode === _util.AnnotationMode.ENABLE) {\n        annotationMode = _util.AnnotationMode.ENABLE_STORAGE;\n      }\n    }\n\n    if (this._stats) {\n      this._stats.time(\"Overall\");\n    }\n\n    const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage);\n\n    this.pendingCleanup = false;\n\n    if (!optionalContentConfigPromise) {\n      optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n    }\n\n    let intentState = this._intentStates.get(intentArgs.cacheKey);\n\n    if (!intentState) {\n      intentState = Object.create(null);\n\n      this._intentStates.set(intentArgs.cacheKey, intentState);\n    }\n\n    if (intentState.streamReaderCancelTimeout) {\n      clearTimeout(intentState.streamReaderCancelTimeout);\n      intentState.streamReaderCancelTimeout = null;\n    }\n\n    const canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({\n      ownerDocument: this._ownerDocument\n    });\n    const intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT);\n\n    if (!intentState.displayReadyCapability) {\n      intentState.displayReadyCapability = (0, _util.createPromiseCapability)();\n      intentState.operatorList = {\n        fnArray: [],\n        argsArray: [],\n        lastChunk: false,\n        separateAnnots: null\n      };\n\n      if (this._stats) {\n        this._stats.time(\"Page Request\");\n      }\n\n      this._pumpOperatorList(intentArgs);\n    }\n\n    const complete = error => {\n      intentState.renderTasks.delete(internalRenderTask);\n\n      if (this.cleanupAfterRender || intentPrint) {\n        this.pendingCleanup = true;\n      }\n\n      this._tryCleanup();\n\n      if (error) {\n        internalRenderTask.capability.reject(error);\n\n        this._abortOperatorList({\n          intentState,\n          reason: error instanceof Error ? error : new Error(error)\n        });\n      } else {\n        internalRenderTask.capability.resolve();\n      }\n\n      if (this._stats) {\n        this._stats.timeEnd(\"Rendering\");\n\n        this._stats.timeEnd(\"Overall\");\n      }\n    };\n\n    const internalRenderTask = new InternalRenderTask({\n      callback: complete,\n      params: {\n        canvasContext,\n        viewport,\n        transform,\n        imageLayer,\n        background\n      },\n      objs: this.objs,\n      commonObjs: this.commonObjs,\n      annotationCanvasMap,\n      operatorList: intentState.operatorList,\n      pageIndex: this._pageIndex,\n      canvasFactory: canvasFactoryInstance,\n      useRequestAnimationFrame: !intentPrint,\n      pdfBug: this._pdfBug,\n      pageColors\n    });\n    ((_intentState = intentState).renderTasks || (_intentState.renderTasks = new Set())).add(internalRenderTask);\n    const renderTask = internalRenderTask.task;\n    Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(_ref3 => {\n      let [transparency, optionalContentConfig] = _ref3;\n\n      if (this.pendingCleanup) {\n        complete();\n        return;\n      }\n\n      if (this._stats) {\n        this._stats.time(\"Rendering\");\n      }\n\n      internalRenderTask.initializeGraphics({\n        transparency,\n        optionalContentConfig\n      });\n      internalRenderTask.operatorListChanged();\n    }).catch(complete);\n    return renderTask;\n  }\n\n  getOperatorList() {\n    let {\n      intent = \"display\",\n      annotationMode = _util.AnnotationMode.ENABLE,\n      printAnnotationStorage = null\n    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    function operatorListChanged() {\n      if (intentState.operatorList.lastChunk) {\n        intentState.opListReadCapability.resolve(intentState.operatorList);\n        intentState.renderTasks.delete(opListTask);\n      }\n    }\n\n    const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true);\n\n    let intentState = this._intentStates.get(intentArgs.cacheKey);\n\n    if (!intentState) {\n      intentState = Object.create(null);\n\n      this._intentStates.set(intentArgs.cacheKey, intentState);\n    }\n\n    let opListTask;\n\n    if (!intentState.opListReadCapability) {\n      var _intentState2;\n\n      opListTask = Object.create(null);\n      opListTask.operatorListChanged = operatorListChanged;\n      intentState.opListReadCapability = (0, _util.createPromiseCapability)();\n      ((_intentState2 = intentState).renderTasks || (_intentState2.renderTasks = new Set())).add(opListTask);\n      intentState.operatorList = {\n        fnArray: [],\n        argsArray: [],\n        lastChunk: false,\n        separateAnnots: null\n      };\n\n      if (this._stats) {\n        this._stats.time(\"Page Request\");\n      }\n\n      this._pumpOperatorList(intentArgs);\n    }\n\n    return intentState.opListReadCapability.promise;\n  }\n\n  streamTextContent() {\n    let {\n      disableCombineTextItems = false,\n      includeMarkedContent = false\n    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    const TEXT_CONTENT_CHUNK_SIZE = 100;\n    return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n      pageIndex: this._pageIndex,\n      combineTextItems: disableCombineTextItems !== true,\n      includeMarkedContent: includeMarkedContent === true\n    }, {\n      highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n\n      size(textContent) {\n        return textContent.items.length;\n      }\n\n    });\n  }\n\n  getTextContent() {\n    let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    if (this._transport._htmlForXfa) {\n      return this.getXfa().then(xfa => {\n        return _xfa_text.XfaText.textContent(xfa);\n      });\n    }\n\n    const readableStream = this.streamTextContent(params);\n    return new Promise(function (resolve, reject) {\n      function pump() {\n        reader.read().then(function (_ref4) {\n          let {\n            value,\n            done\n          } = _ref4;\n\n          if (done) {\n            resolve(textContent);\n            return;\n          }\n\n          Object.assign(textContent.styles, value.styles);\n          textContent.items.push(...value.items);\n          pump();\n        }, reject);\n      }\n\n      const reader = readableStream.getReader();\n      const textContent = {\n        items: [],\n        styles: Object.create(null)\n      };\n      pump();\n    });\n  }\n\n  getStructTree() {\n    return this._structTreePromise || (this._structTreePromise = this._transport.getStructTree(this._pageIndex));\n  }\n\n  _destroy() {\n    this.destroyed = true;\n    const waitOn = [];\n\n    for (const intentState of this._intentStates.values()) {\n      this._abortOperatorList({\n        intentState,\n        reason: new Error(\"Page was destroyed.\"),\n        force: true\n      });\n\n      if (intentState.opListReadCapability) {\n        continue;\n      }\n\n      for (const internalRenderTask of intentState.renderTasks) {\n        waitOn.push(internalRenderTask.completed);\n        internalRenderTask.cancel();\n      }\n    }\n\n    this.objs.clear();\n\n    for (const bitmap of this._bitmaps) {\n      bitmap.close();\n    }\n\n    this._bitmaps.clear();\n\n    this._annotationPromises.clear();\n\n    this._jsActionsPromise = null;\n    this._structTreePromise = null;\n    this.pendingCleanup = false;\n    return Promise.all(waitOn);\n  }\n\n  cleanup() {\n    let resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    this.pendingCleanup = true;\n    return this._tryCleanup(resetStats);\n  }\n\n  _tryCleanup() {\n    let resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    if (!this.pendingCleanup) {\n      return false;\n    }\n\n    for (const {\n      renderTasks,\n      operatorList\n    } of this._intentStates.values()) {\n      if (renderTasks.size > 0 || !operatorList.lastChunk) {\n        return false;\n      }\n    }\n\n    this._intentStates.clear();\n\n    this.objs.clear();\n\n    this._annotationPromises.clear();\n\n    this._jsActionsPromise = null;\n    this._structTreePromise = null;\n\n    if (resetStats && this._stats) {\n      this._stats = new _display_utils.StatTimer();\n    }\n\n    for (const bitmap of this._bitmaps) {\n      bitmap.close();\n    }\n\n    this._bitmaps.clear();\n\n    this.pendingCleanup = false;\n    return true;\n  }\n\n  _startRenderPage(transparency, cacheKey) {\n    const intentState = this._intentStates.get(cacheKey);\n\n    if (!intentState) {\n      return;\n    }\n\n    if (this._stats) {\n      this._stats.timeEnd(\"Page Request\");\n    }\n\n    if (intentState.displayReadyCapability) {\n      intentState.displayReadyCapability.resolve(transparency);\n    }\n  }\n\n  _renderPageChunk(operatorListChunk, intentState) {\n    for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n      intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n      intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n    }\n\n    intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n    intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\n\n    for (const internalRenderTask of intentState.renderTasks) {\n      internalRenderTask.operatorListChanged();\n    }\n\n    if (operatorListChunk.lastChunk) {\n      this._tryCleanup();\n    }\n  }\n\n  _pumpOperatorList(_ref5) {\n    let {\n      renderingIntent,\n      cacheKey,\n      annotationStorageMap\n    } = _ref5;\n\n    const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n      pageIndex: this._pageIndex,\n      intent: renderingIntent,\n      cacheKey,\n      annotationStorage: annotationStorageMap\n    });\n\n    const reader = readableStream.getReader();\n\n    const intentState = this._intentStates.get(cacheKey);\n\n    intentState.streamReader = reader;\n\n    const pump = () => {\n      reader.read().then(_ref6 => {\n        let {\n          value,\n          done\n        } = _ref6;\n\n        if (done) {\n          intentState.streamReader = null;\n          return;\n        }\n\n        if (this._transport.destroyed) {\n          return;\n        }\n\n        this._renderPageChunk(value, intentState);\n\n        pump();\n      }, reason => {\n        intentState.streamReader = null;\n\n        if (this._transport.destroyed) {\n          return;\n        }\n\n        if (intentState.operatorList) {\n          intentState.operatorList.lastChunk = true;\n\n          for (const internalRenderTask of intentState.renderTasks) {\n            internalRenderTask.operatorListChanged();\n          }\n\n          this._tryCleanup();\n        }\n\n        if (intentState.displayReadyCapability) {\n          intentState.displayReadyCapability.reject(reason);\n        } else if (intentState.opListReadCapability) {\n          intentState.opListReadCapability.reject(reason);\n        } else {\n          throw reason;\n        }\n      });\n    };\n\n    pump();\n  }\n\n  _abortOperatorList(_ref7) {\n    let {\n      intentState,\n      reason,\n      force = false\n    } = _ref7;\n\n    if (!intentState.streamReader) {\n      return;\n    }\n\n    if (!force) {\n      if (intentState.renderTasks.size > 0) {\n        return;\n      }\n\n      if (reason instanceof _display_utils.RenderingCancelledException) {\n        intentState.streamReaderCancelTimeout = setTimeout(() => {\n          this._abortOperatorList({\n            intentState,\n            reason,\n            force: true\n          });\n\n          intentState.streamReaderCancelTimeout = null;\n        }, RENDERING_CANCELLED_TIMEOUT);\n        return;\n      }\n    }\n\n    intentState.streamReader.cancel(new _util.AbortException(reason.message)).catch(() => {});\n    intentState.streamReader = null;\n\n    if (this._transport.destroyed) {\n      return;\n    }\n\n    for (const [curCacheKey, curIntentState] of this._intentStates) {\n      if (curIntentState === intentState) {\n        this._intentStates.delete(curCacheKey);\n\n        break;\n      }\n    }\n\n    this.cleanup();\n  }\n\n  get stats() {\n    return this._stats;\n  }\n\n}\n\nexports.PDFPageProxy = PDFPageProxy;\n\nclass LoopbackPort {\n  constructor() {\n    this._listeners = [];\n    this._deferred = Promise.resolve();\n  }\n\n  postMessage(obj, transfers) {\n    const event = {\n      data: structuredClone(obj, transfers)\n    };\n\n    this._deferred.then(() => {\n      for (const listener of this._listeners) {\n        listener.call(this, event);\n      }\n    });\n  }\n\n  addEventListener(name, listener) {\n    this._listeners.push(listener);\n  }\n\n  removeEventListener(name, listener) {\n    const i = this._listeners.indexOf(listener);\n\n    this._listeners.splice(i, 1);\n  }\n\n  terminate() {\n    this._listeners.length = 0;\n  }\n\n}\n\nexports.LoopbackPort = LoopbackPort;\nconst PDFWorkerUtil = {\n  isWorkerDisabled: false,\n  fallbackWorkerSrc: null,\n  fakeWorkerId: 0\n};\nexports.PDFWorkerUtil = PDFWorkerUtil;\n{\n  if (_is_node.isNodeJS && \"function\" === \"function\") {\n    PDFWorkerUtil.isWorkerDisabled = true;\n    PDFWorkerUtil.fallbackWorkerSrc = \"./pdf.worker.js\";\n  } else if (typeof document === \"object\") {\n    var _document, _document$currentScri;\n\n    const pdfjsFilePath = (_document = document) === null || _document === void 0 ? void 0 : (_document$currentScri = _document.currentScript) === null || _document$currentScri === void 0 ? void 0 : _document$currentScri.src;\n\n    if (pdfjsFilePath) {\n      PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n    }\n  }\n\n  PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {\n    let base;\n\n    try {\n      base = new URL(baseUrl);\n\n      if (!base.origin || base.origin === \"null\") {\n        return false;\n      }\n    } catch (e) {\n      return false;\n    }\n\n    const other = new URL(otherUrl, base);\n    return base.origin === other.origin;\n  };\n\n  PDFWorkerUtil.createCDNWrapper = function (url) {\n    const wrapper = `importScripts(\"${url}\");`;\n    return URL.createObjectURL(new Blob([wrapper]));\n  };\n}\n\nclass PDFWorker {\n  constructor() {\n    let {\n      name = null,\n      port = null,\n      verbosity = (0, _util.getVerbosityLevel)()\n    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    if (port && _classStaticPrivateFieldSpecGet(PDFWorker, PDFWorker, _workerPorts).has(port)) {\n      throw new Error(\"Cannot use more than one PDFWorker per port.\");\n    }\n\n    this.name = name;\n    this.destroyed = false;\n    this.verbosity = verbosity;\n    this._readyCapability = (0, _util.createPromiseCapability)();\n    this._port = null;\n    this._webWorker = null;\n    this._messageHandler = null;\n\n    if (port) {\n      _classStaticPrivateFieldSpecGet(PDFWorker, PDFWorker, _workerPorts).set(port, this);\n\n      this._initializeFromPort(port);\n\n      return;\n    }\n\n    this._initialize();\n  }\n\n  get promise() {\n    return this._readyCapability.promise;\n  }\n\n  get port() {\n    return this._port;\n  }\n\n  get messageHandler() {\n    return this._messageHandler;\n  }\n\n  _initializeFromPort(port) {\n    this._port = port;\n    this._messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", port);\n\n    this._messageHandler.on(\"ready\", function () {});\n\n    this._readyCapability.resolve();\n  }\n\n  _initialize() {\n    if (!PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) {\n      let {\n        workerSrc\n      } = PDFWorker;\n\n      try {\n        if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) {\n          workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href);\n        }\n\n        const worker = new Worker(workerSrc);\n        const messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n\n        const terminateEarly = () => {\n          worker.removeEventListener(\"error\", onWorkerError);\n          messageHandler.destroy();\n          worker.terminate();\n\n          if (this.destroyed) {\n            this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n          } else {\n            this._setupFakeWorker();\n          }\n        };\n\n        const onWorkerError = () => {\n          if (!this._webWorker) {\n            terminateEarly();\n          }\n        };\n\n        worker.addEventListener(\"error\", onWorkerError);\n        messageHandler.on(\"test\", data => {\n          worker.removeEventListener(\"error\", onWorkerError);\n\n          if (this.destroyed) {\n            terminateEarly();\n            return;\n          }\n\n          if (data) {\n            this._messageHandler = messageHandler;\n            this._port = worker;\n            this._webWorker = worker;\n\n            this._readyCapability.resolve();\n\n            messageHandler.send(\"configure\", {\n              verbosity: this.verbosity\n            });\n          } else {\n            this._setupFakeWorker();\n\n            messageHandler.destroy();\n            worker.terminate();\n          }\n        });\n        messageHandler.on(\"ready\", data => {\n          worker.removeEventListener(\"error\", onWorkerError);\n\n          if (this.destroyed) {\n            terminateEarly();\n            return;\n          }\n\n          try {\n            sendTest();\n          } catch (e) {\n            this._setupFakeWorker();\n          }\n        });\n\n        const sendTest = () => {\n          const testObj = new Uint8Array();\n          messageHandler.send(\"test\", testObj, [testObj.buffer]);\n        };\n\n        sendTest();\n        return;\n      } catch (e) {\n        (0, _util.info)(\"The worker has been disabled.\");\n      }\n    }\n\n    this._setupFakeWorker();\n  }\n\n  _setupFakeWorker() {\n    if (!PDFWorkerUtil.isWorkerDisabled) {\n      (0, _util.warn)(\"Setting up fake worker.\");\n      PDFWorkerUtil.isWorkerDisabled = true;\n    }\n\n    PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => {\n      if (this.destroyed) {\n        this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n\n        return;\n      }\n\n      const port = new LoopbackPort();\n      this._port = port;\n      const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n      const workerHandler = new _message_handler.MessageHandler(id + \"_worker\", id, port);\n      WorkerMessageHandler.setup(workerHandler, port);\n      const messageHandler = new _message_handler.MessageHandler(id, id + \"_worker\", port);\n      this._messageHandler = messageHandler;\n\n      this._readyCapability.resolve();\n\n      messageHandler.send(\"configure\", {\n        verbosity: this.verbosity\n      });\n    }).catch(reason => {\n      this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n    });\n  }\n\n  destroy() {\n    this.destroyed = true;\n\n    if (this._webWorker) {\n      this._webWorker.terminate();\n\n      this._webWorker = null;\n    }\n\n    _classStaticPrivateFieldSpecGet(PDFWorker, PDFWorker, _workerPorts).delete(this._port);\n\n    this._port = null;\n\n    if (this._messageHandler) {\n      this._messageHandler.destroy();\n\n      this._messageHandler = null;\n    }\n  }\n\n  static fromPort(params) {\n    if (!(params !== null && params !== void 0 && params.port)) {\n      throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n    }\n\n    if (_classStaticPrivateFieldSpecGet(this, PDFWorker, _workerPorts).has(params.port)) {\n      return _classStaticPrivateFieldSpecGet(this, PDFWorker, _workerPorts).get(params.port);\n    }\n\n    return new PDFWorker(params);\n  }\n\n  static get workerSrc() {\n    if (_worker_options.GlobalWorkerOptions.workerSrc) {\n      return _worker_options.GlobalWorkerOptions.workerSrc;\n    }\n\n    if (PDFWorkerUtil.fallbackWorkerSrc !== null) {\n      if (!_is_node.isNodeJS) {\n        (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n      }\n\n      return PDFWorkerUtil.fallbackWorkerSrc;\n    }\n\n    throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n  }\n\n  static get _mainThreadWorkerMessageHandler() {\n    try {\n      var _globalThis$pdfjsWork;\n\n      return ((_globalThis$pdfjsWork = globalThis.pdfjsWorker) === null || _globalThis$pdfjsWork === void 0 ? void 0 : _globalThis$pdfjsWork.WorkerMessageHandler) || null;\n    } catch (ex) {\n      return null;\n    }\n  }\n\n  static get _setupFakeWorkerGlobal() {\n    const loader = async () => {\n      const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n\n      if (mainWorkerMessageHandler) {\n        return mainWorkerMessageHandler;\n      }\n\n      if (_is_node.isNodeJS && \"function\" === \"function\") {\n        const worker = eval(\"require\")(this.workerSrc);\n        return worker.WorkerMessageHandler;\n      }\n\n      await (0, _display_utils.loadScript)(this.workerSrc);\n      return window.pdfjsWorker.WorkerMessageHandler;\n    };\n\n    return (0, _util.shadow)(this, \"_setupFakeWorkerGlobal\", loader());\n  }\n\n}\n\nexports.PDFWorker = PDFWorker;\nvar _workerPorts = {\n  writable: true,\n  value: new WeakMap()\n};\n{\n  PDFWorker.getWorkerSrc = function () {\n    (0, _display_utils.deprecated)(\"`PDFWorker.getWorkerSrc()`, please use `PDFWorker.workerSrc` instead.\");\n    return this.workerSrc;\n  };\n}\n\nvar _docStats = /*#__PURE__*/new WeakMap();\n\nvar _pageCache = /*#__PURE__*/new WeakMap();\n\nvar _pagePromises = /*#__PURE__*/new WeakMap();\n\nvar _metadataPromise = /*#__PURE__*/new WeakMap();\n\nclass WorkerTransport {\n  constructor(messageHandler, loadingTask, networkStream, params) {\n    _classPrivateFieldInitSpec(this, _docStats, {\n      writable: true,\n      value: null\n    });\n\n    _classPrivateFieldInitSpec(this, _pageCache, {\n      writable: true,\n      value: new Map()\n    });\n\n    _classPrivateFieldInitSpec(this, _pagePromises, {\n      writable: true,\n      value: new Map()\n    });\n\n    _classPrivateFieldInitSpec(this, _metadataPromise, {\n      writable: true,\n      value: null\n    });\n\n    this.messageHandler = messageHandler;\n    this.loadingTask = loadingTask;\n    this.commonObjs = new PDFObjects();\n    this.fontLoader = new _font_loader.FontLoader({\n      docId: loadingTask.docId,\n      onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n      ownerDocument: params.ownerDocument,\n      styleElement: params.styleElement\n    });\n    this._params = params;\n\n    if (!params.useWorkerFetch) {\n      this.CMapReaderFactory = new params.CMapReaderFactory({\n        baseUrl: params.cMapUrl,\n        isCompressed: params.cMapPacked\n      });\n      this.StandardFontDataFactory = new params.StandardFontDataFactory({\n        baseUrl: params.standardFontDataUrl\n      });\n    }\n\n    this.destroyed = false;\n    this.destroyCapability = null;\n    this._passwordCapability = null;\n    this._networkStream = networkStream;\n    this._fullReader = null;\n    this._lastProgress = null;\n    this.downloadInfoCapability = (0, _util.createPromiseCapability)();\n    this.setupMessageHandler();\n  }\n\n  get annotationStorage() {\n    return (0, _util.shadow)(this, \"annotationStorage\", new _annotation_storage.AnnotationStorage());\n  }\n\n  get stats() {\n    return _classPrivateFieldGet(this, _docStats);\n  }\n\n  getRenderingIntent(intent) {\n    let annotationMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _util.AnnotationMode.ENABLE;\n    let printAnnotationStorage = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n    let isOpList = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n    let renderingIntent = _util.RenderingIntentFlag.DISPLAY;\n    let annotationMap = null;\n\n    switch (intent) {\n      case \"any\":\n        renderingIntent = _util.RenderingIntentFlag.ANY;\n        break;\n\n      case \"display\":\n        break;\n\n      case \"print\":\n        renderingIntent = _util.RenderingIntentFlag.PRINT;\n        break;\n\n      default:\n        (0, _util.warn)(`getRenderingIntent - invalid intent: ${intent}`);\n    }\n\n    switch (annotationMode) {\n      case _util.AnnotationMode.DISABLE:\n        renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE;\n        break;\n\n      case _util.AnnotationMode.ENABLE:\n        break;\n\n      case _util.AnnotationMode.ENABLE_FORMS:\n        renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS;\n        break;\n\n      case _util.AnnotationMode.ENABLE_STORAGE:\n        renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE;\n        const annotationStorage = renderingIntent & _util.RenderingIntentFlag.PRINT && printAnnotationStorage instanceof _annotation_storage.PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;\n        annotationMap = annotationStorage.serializable;\n        break;\n\n      default:\n        (0, _util.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n    }\n\n    if (isOpList) {\n      renderingIntent += _util.RenderingIntentFlag.OPLIST;\n    }\n\n    return {\n      renderingIntent,\n      cacheKey: `${renderingIntent}_${_annotation_storage.AnnotationStorage.getHash(annotationMap)}`,\n      annotationStorageMap: annotationMap\n    };\n  }\n\n  destroy() {\n    if (this.destroyCapability) {\n      return this.destroyCapability.promise;\n    }\n\n    this.destroyed = true;\n    this.destroyCapability = (0, _util.createPromiseCapability)();\n\n    if (this._passwordCapability) {\n      this._passwordCapability.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n    }\n\n    const waitOn = [];\n\n    for (const page of _classPrivateFieldGet(this, _pageCache).values()) {\n      waitOn.push(page._destroy());\n    }\n\n    _classPrivateFieldGet(this, _pageCache).clear();\n\n    _classPrivateFieldGet(this, _pagePromises).clear();\n\n    if (this.hasOwnProperty(\"annotationStorage\")) {\n      this.annotationStorage.resetModified();\n    }\n\n    const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n    waitOn.push(terminated);\n    Promise.all(waitOn).then(() => {\n      this.commonObjs.clear();\n      this.fontLoader.clear();\n\n      _classPrivateFieldSet(this, _metadataPromise, null);\n\n      this._getFieldObjectsPromise = null;\n      this._hasJSActionsPromise = null;\n\n      if (this._networkStream) {\n        this._networkStream.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n      }\n\n      if (this.messageHandler) {\n        this.messageHandler.destroy();\n        this.messageHandler = null;\n      }\n\n      this.destroyCapability.resolve();\n    }, this.destroyCapability.reject);\n    return this.destroyCapability.promise;\n  }\n\n  setupMessageHandler() {\n    const {\n      messageHandler,\n      loadingTask\n    } = this;\n    messageHandler.on(\"GetReader\", (data, sink) => {\n      (0, _util.assert)(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n      this._fullReader = this._networkStream.getFullReader();\n\n      this._fullReader.onProgress = evt => {\n        this._lastProgress = {\n          loaded: evt.loaded,\n          total: evt.total\n        };\n      };\n\n      sink.onPull = () => {\n        this._fullReader.read().then(function (_ref8) {\n          let {\n            value,\n            done\n          } = _ref8;\n\n          if (done) {\n            sink.close();\n            return;\n          }\n\n          (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetReader - expected an ArrayBuffer.\");\n          sink.enqueue(new Uint8Array(value), 1, [value]);\n        }).catch(reason => {\n          sink.error(reason);\n        });\n      };\n\n      sink.onCancel = reason => {\n        this._fullReader.cancel(reason);\n\n        sink.ready.catch(readyReason => {\n          if (this.destroyed) {\n            return;\n          }\n\n          throw readyReason;\n        });\n      };\n    });\n    messageHandler.on(\"ReaderHeadersReady\", data => {\n      const headersCapability = (0, _util.createPromiseCapability)();\n      const fullReader = this._fullReader;\n      fullReader.headersReady.then(() => {\n        if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n          if (this._lastProgress) {\n            var _loadingTask$onProgre;\n\n            (_loadingTask$onProgre = loadingTask.onProgress) === null || _loadingTask$onProgre === void 0 ? void 0 : _loadingTask$onProgre.call(loadingTask, this._lastProgress);\n          }\n\n          fullReader.onProgress = evt => {\n            var _loadingTask$onProgre2;\n\n            (_loadingTask$onProgre2 = loadingTask.onProgress) === null || _loadingTask$onProgre2 === void 0 ? void 0 : _loadingTask$onProgre2.call(loadingTask, {\n              loaded: evt.loaded,\n              total: evt.total\n            });\n          };\n        }\n\n        headersCapability.resolve({\n          isStreamingSupported: fullReader.isStreamingSupported,\n          isRangeSupported: fullReader.isRangeSupported,\n          contentLength: fullReader.contentLength\n        });\n      }, headersCapability.reject);\n      return headersCapability.promise;\n    });\n    messageHandler.on(\"GetRangeReader\", (data, sink) => {\n      (0, _util.assert)(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n\n      const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n\n      if (!rangeReader) {\n        sink.close();\n        return;\n      }\n\n      sink.onPull = () => {\n        rangeReader.read().then(function (_ref9) {\n          let {\n            value,\n            done\n          } = _ref9;\n\n          if (done) {\n            sink.close();\n            return;\n          }\n\n          (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetRangeReader - expected an ArrayBuffer.\");\n          sink.enqueue(new Uint8Array(value), 1, [value]);\n        }).catch(reason => {\n          sink.error(reason);\n        });\n      };\n\n      sink.onCancel = reason => {\n        rangeReader.cancel(reason);\n        sink.ready.catch(readyReason => {\n          if (this.destroyed) {\n            return;\n          }\n\n          throw readyReason;\n        });\n      };\n    });\n    messageHandler.on(\"GetDoc\", _ref10 => {\n      let {\n        pdfInfo\n      } = _ref10;\n      this._numPages = pdfInfo.numPages;\n      this._htmlForXfa = pdfInfo.htmlForXfa;\n      delete pdfInfo.htmlForXfa;\n\n      loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n    });\n    messageHandler.on(\"DocException\", function (ex) {\n      let reason;\n\n      switch (ex.name) {\n        case \"PasswordException\":\n          reason = new _util.PasswordException(ex.message, ex.code);\n          break;\n\n        case \"InvalidPDFException\":\n          reason = new _util.InvalidPDFException(ex.message);\n          break;\n\n        case \"MissingPDFException\":\n          reason = new _util.MissingPDFException(ex.message);\n          break;\n\n        case \"UnexpectedResponseException\":\n          reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n          break;\n\n        case \"UnknownErrorException\":\n          reason = new _util.UnknownErrorException(ex.message, ex.details);\n          break;\n\n        default:\n          (0, _util.unreachable)(\"DocException - expected a valid Error.\");\n      }\n\n      loadingTask._capability.reject(reason);\n    });\n    messageHandler.on(\"PasswordRequest\", exception => {\n      this._passwordCapability = (0, _util.createPromiseCapability)();\n\n      if (loadingTask.onPassword) {\n        const updatePassword = password => {\n          if (password instanceof Error) {\n            this._passwordCapability.reject(password);\n          } else {\n            this._passwordCapability.resolve({\n              password\n            });\n          }\n        };\n\n        try {\n          loadingTask.onPassword(updatePassword, exception.code);\n        } catch (ex) {\n          this._passwordCapability.reject(ex);\n        }\n      } else {\n        this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n      }\n\n      return this._passwordCapability.promise;\n    });\n    messageHandler.on(\"DataLoaded\", data => {\n      var _loadingTask$onProgre3;\n\n      (_loadingTask$onProgre3 = loadingTask.onProgress) === null || _loadingTask$onProgre3 === void 0 ? void 0 : _loadingTask$onProgre3.call(loadingTask, {\n        loaded: data.length,\n        total: data.length\n      });\n      this.downloadInfoCapability.resolve(data);\n    });\n    messageHandler.on(\"StartRenderPage\", data => {\n      if (this.destroyed) {\n        return;\n      }\n\n      const page = _classPrivateFieldGet(this, _pageCache).get(data.pageIndex);\n\n      page._startRenderPage(data.transparency, data.cacheKey);\n    });\n    messageHandler.on(\"commonobj\", _ref11 => {\n      var _globalThis$FontInspe;\n\n      let [id, type, exportedData] = _ref11;\n\n      if (this.destroyed) {\n        return;\n      }\n\n      if (this.commonObjs.has(id)) {\n        return;\n      }\n\n      switch (type) {\n        case \"Font\":\n          const params = this._params;\n\n          if (\"error\" in exportedData) {\n            const exportedError = exportedData.error;\n            (0, _util.warn)(`Error during font loading: ${exportedError}`);\n            this.commonObjs.resolve(id, exportedError);\n            break;\n          }\n\n          let fontRegistry = null;\n\n          if (params.pdfBug && (_globalThis$FontInspe = globalThis.FontInspector) !== null && _globalThis$FontInspe !== void 0 && _globalThis$FontInspe.enabled) {\n            fontRegistry = {\n              registerFont(font, url) {\n                globalThis.FontInspector.fontAdded(font, url);\n              }\n\n            };\n          }\n\n          const font = new _font_loader.FontFaceObject(exportedData, {\n            isEvalSupported: params.isEvalSupported,\n            disableFontFace: params.disableFontFace,\n            ignoreErrors: params.ignoreErrors,\n            onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n            fontRegistry\n          });\n          this.fontLoader.bind(font).catch(reason => {\n            return messageHandler.sendWithPromise(\"FontFallback\", {\n              id\n            });\n          }).finally(() => {\n            if (!params.fontExtraProperties && font.data) {\n              font.data = null;\n            }\n\n            this.commonObjs.resolve(id, font);\n          });\n          break;\n\n        case \"FontPath\":\n        case \"Image\":\n          this.commonObjs.resolve(id, exportedData);\n          break;\n\n        default:\n          throw new Error(`Got unknown common object type ${type}`);\n      }\n    });\n    messageHandler.on(\"obj\", _ref12 => {\n      let [id, pageIndex, type, imageData] = _ref12;\n\n      if (this.destroyed) {\n        return;\n      }\n\n      const pageProxy = _classPrivateFieldGet(this, _pageCache).get(pageIndex);\n\n      if (pageProxy.objs.has(id)) {\n        return;\n      }\n\n      switch (type) {\n        case \"Image\":\n          pageProxy.objs.resolve(id, imageData);\n          const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n\n          if (imageData) {\n            let length;\n\n            if (imageData.bitmap) {\n              const {\n                bitmap,\n                width,\n                height\n              } = imageData;\n              length = width * height * 4;\n\n              pageProxy._bitmaps.add(bitmap);\n            } else {\n              var _imageData$data;\n\n              length = ((_imageData$data = imageData.data) === null || _imageData$data === void 0 ? void 0 : _imageData$data.length) || 0;\n            }\n\n            if (length > MAX_IMAGE_SIZE_TO_STORE) {\n              pageProxy.cleanupAfterRender = true;\n            }\n          }\n\n          break;\n\n        case \"Pattern\":\n          pageProxy.objs.resolve(id, imageData);\n          break;\n\n        default:\n          throw new Error(`Got unknown object type ${type}`);\n      }\n    });\n    messageHandler.on(\"DocProgress\", data => {\n      var _loadingTask$onProgre4;\n\n      if (this.destroyed) {\n        return;\n      }\n\n      (_loadingTask$onProgre4 = loadingTask.onProgress) === null || _loadingTask$onProgre4 === void 0 ? void 0 : _loadingTask$onProgre4.call(loadingTask, {\n        loaded: data.loaded,\n        total: data.total\n      });\n    });\n    messageHandler.on(\"DocStats\", data => {\n      if (this.destroyed) {\n        return;\n      }\n\n      _classPrivateFieldSet(this, _docStats, Object.freeze({\n        streamTypes: Object.freeze(data.streamTypes),\n        fontTypes: Object.freeze(data.fontTypes)\n      }));\n    });\n    messageHandler.on(\"UnsupportedFeature\", this._onUnsupportedFeature.bind(this));\n    messageHandler.on(\"FetchBuiltInCMap\", data => {\n      if (this.destroyed) {\n        return Promise.reject(new Error(\"Worker was destroyed.\"));\n      }\n\n      if (!this.CMapReaderFactory) {\n        return Promise.reject(new Error(\"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"));\n      }\n\n      return this.CMapReaderFactory.fetch(data);\n    });\n    messageHandler.on(\"FetchStandardFontData\", data => {\n      if (this.destroyed) {\n        return Promise.reject(new Error(\"Worker was destroyed.\"));\n      }\n\n      if (!this.StandardFontDataFactory) {\n        return Promise.reject(new Error(\"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"));\n      }\n\n      return this.StandardFontDataFactory.fetch(data);\n    });\n  }\n\n  _onUnsupportedFeature(_ref13) {\n    var _this$loadingTask$onU, _this$loadingTask;\n\n    let {\n      featureId\n    } = _ref13;\n\n    if (this.destroyed) {\n      return;\n    }\n\n    (_this$loadingTask$onU = (_this$loadingTask = this.loadingTask).onUnsupportedFeature) === null || _this$loadingTask$onU === void 0 ? void 0 : _this$loadingTask$onU.call(_this$loadingTask, featureId);\n  }\n\n  getData() {\n    return this.messageHandler.sendWithPromise(\"GetData\", null);\n  }\n\n  getPage(pageNumber) {\n    if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n      return Promise.reject(new Error(\"Invalid page request.\"));\n    }\n\n    const pageIndex = pageNumber - 1,\n          cachedPromise = _classPrivateFieldGet(this, _pagePromises).get(pageIndex);\n\n    if (cachedPromise) {\n      return cachedPromise;\n    }\n\n    const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n      pageIndex\n    }).then(pageInfo => {\n      if (this.destroyed) {\n        throw new Error(\"Transport destroyed\");\n      }\n\n      const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.ownerDocument, this._params.pdfBug);\n\n      _classPrivateFieldGet(this, _pageCache).set(pageIndex, page);\n\n      return page;\n    });\n\n    _classPrivateFieldGet(this, _pagePromises).set(pageIndex, promise);\n\n    return promise;\n  }\n\n  getPageIndex(ref) {\n    if (typeof ref !== \"object\" || ref === null || !Number.isInteger(ref.num) || ref.num < 0 || !Number.isInteger(ref.gen) || ref.gen < 0) {\n      return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n    }\n\n    return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n      num: ref.num,\n      gen: ref.gen\n    });\n  }\n\n  getAnnotations(pageIndex, intent) {\n    return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n      pageIndex,\n      intent\n    });\n  }\n\n  saveDocument() {\n    var _this$_fullReader$fil, _this$_fullReader;\n\n    return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n      isPureXfa: !!this._htmlForXfa,\n      numPages: this._numPages,\n      annotationStorage: this.annotationStorage.serializable,\n      filename: (_this$_fullReader$fil = (_this$_fullReader = this._fullReader) === null || _this$_fullReader === void 0 ? void 0 : _this$_fullReader.filename) !== null && _this$_fullReader$fil !== void 0 ? _this$_fullReader$fil : null\n    }).finally(() => {\n      this.annotationStorage.resetModified();\n    });\n  }\n\n  getFieldObjects() {\n    return this._getFieldObjectsPromise || (this._getFieldObjectsPromise = this.messageHandler.sendWithPromise(\"GetFieldObjects\", null));\n  }\n\n  hasJSActions() {\n    return this._hasJSActionsPromise || (this._hasJSActionsPromise = this.messageHandler.sendWithPromise(\"HasJSActions\", null));\n  }\n\n  getCalculationOrderIds() {\n    return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n  }\n\n  getDestinations() {\n    return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n  }\n\n  getDestination(id) {\n    if (typeof id !== \"string\") {\n      return Promise.reject(new Error(\"Invalid destination request.\"));\n    }\n\n    return this.messageHandler.sendWithPromise(\"GetDestination\", {\n      id\n    });\n  }\n\n  getPageLabels() {\n    return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n  }\n\n  getPageLayout() {\n    return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n  }\n\n  getPageMode() {\n    return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n  }\n\n  getViewerPreferences() {\n    return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n  }\n\n  getOpenAction() {\n    return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n  }\n\n  getAttachments() {\n    return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n  }\n\n  getJavaScript() {\n    return this.messageHandler.sendWithPromise(\"GetJavaScript\", null);\n  }\n\n  getDocJSActions() {\n    return this.messageHandler.sendWithPromise(\"GetDocJSActions\", null);\n  }\n\n  getPageJSActions(pageIndex) {\n    return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n      pageIndex\n    });\n  }\n\n  getStructTree(pageIndex) {\n    return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n      pageIndex\n    });\n  }\n\n  getOutline() {\n    return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n  }\n\n  getOptionalContentConfig() {\n    return this.messageHandler.sendWithPromise(\"GetOptionalContentConfig\", null).then(results => {\n      return new _optional_content_config.OptionalContentConfig(results);\n    });\n  }\n\n  getPermissions() {\n    return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n  }\n\n  getMetadata() {\n    return _classPrivateFieldGet(this, _metadataPromise) || _classPrivateFieldSet(this, _metadataPromise, this.messageHandler.sendWithPromise(\"GetMetadata\", null).then(results => {\n      var _this$_fullReader$fil2, _this$_fullReader2, _this$_fullReader$con, _this$_fullReader3;\n\n      return {\n        info: results[0],\n        metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n        contentDispositionFilename: (_this$_fullReader$fil2 = (_this$_fullReader2 = this._fullReader) === null || _this$_fullReader2 === void 0 ? void 0 : _this$_fullReader2.filename) !== null && _this$_fullReader$fil2 !== void 0 ? _this$_fullReader$fil2 : null,\n        contentLength: (_this$_fullReader$con = (_this$_fullReader3 = this._fullReader) === null || _this$_fullReader3 === void 0 ? void 0 : _this$_fullReader3.contentLength) !== null && _this$_fullReader$con !== void 0 ? _this$_fullReader$con : null\n      };\n    }));\n  }\n\n  getMarkInfo() {\n    return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n  }\n\n  async startCleanup() {\n    let keepLoadedFonts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n\n    if (this.destroyed) {\n      return;\n    }\n\n    for (const page of _classPrivateFieldGet(this, _pageCache).values()) {\n      const cleanupSuccessful = page.cleanup();\n\n      if (!cleanupSuccessful) {\n        throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);\n      }\n    }\n\n    this.commonObjs.clear();\n\n    if (!keepLoadedFonts) {\n      this.fontLoader.clear();\n    }\n\n    _classPrivateFieldSet(this, _metadataPromise, null);\n\n    this._getFieldObjectsPromise = null;\n    this._hasJSActionsPromise = null;\n  }\n\n  get loadingParams() {\n    const params = this._params;\n    return (0, _util.shadow)(this, \"loadingParams\", {\n      disableAutoFetch: params.disableAutoFetch,\n      enableXfa: params.enableXfa\n    });\n  }\n\n}\n\nvar _objs = /*#__PURE__*/new WeakMap();\n\nvar _ensureObj = /*#__PURE__*/new WeakSet();\n\nclass PDFObjects {\n  constructor() {\n    _classPrivateMethodInitSpec(this, _ensureObj);\n\n    _classPrivateFieldInitSpec(this, _objs, {\n      writable: true,\n      value: Object.create(null)\n    });\n  }\n\n  get(objId) {\n    let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n    if (callback) {\n      const obj = _classPrivateMethodGet(this, _ensureObj, _ensureObj2).call(this, objId);\n\n      obj.capability.promise.then(() => callback(obj.data));\n      return null;\n    }\n\n    const obj = _classPrivateFieldGet(this, _objs)[objId];\n\n    if (!(obj !== null && obj !== void 0 && obj.capability.settled)) {\n      throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n    }\n\n    return obj.data;\n  }\n\n  has(objId) {\n    const obj = _classPrivateFieldGet(this, _objs)[objId];\n\n    return (obj === null || obj === void 0 ? void 0 : obj.capability.settled) || false;\n  }\n\n  resolve(objId) {\n    let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n    const obj = _classPrivateMethodGet(this, _ensureObj, _ensureObj2).call(this, objId);\n\n    obj.data = data;\n    obj.capability.resolve();\n  }\n\n  clear() {\n    _classPrivateFieldSet(this, _objs, Object.create(null));\n  }\n\n}\n\nfunction _ensureObj2(objId) {\n  const obj = _classPrivateFieldGet(this, _objs)[objId];\n\n  if (obj) {\n    return obj;\n  }\n\n  return _classPrivateFieldGet(this, _objs)[objId] = {\n    capability: (0, _util.createPromiseCapability)(),\n    data: null\n  };\n}\n\nvar _internalRenderTask = /*#__PURE__*/new WeakMap();\n\nclass RenderTask {\n  constructor(internalRenderTask) {\n    _classPrivateFieldInitSpec(this, _internalRenderTask, {\n      writable: true,\n      value: null\n    });\n\n    _classPrivateFieldSet(this, _internalRenderTask, internalRenderTask);\n\n    this.onContinue = null;\n  }\n\n  get promise() {\n    return _classPrivateFieldGet(this, _internalRenderTask).capability.promise;\n  }\n\n  cancel() {\n    _classPrivateFieldGet(this, _internalRenderTask).cancel();\n  }\n\n  get separateAnnots() {\n    const {\n      separateAnnots\n    } = _classPrivateFieldGet(this, _internalRenderTask).operatorList;\n\n    if (!separateAnnots) {\n      return false;\n    }\n\n    const {\n      annotationCanvasMap\n    } = _classPrivateFieldGet(this, _internalRenderTask);\n\n    return separateAnnots.form || separateAnnots.canvas && (annotationCanvasMap === null || annotationCanvasMap === void 0 ? void 0 : annotationCanvasMap.size) > 0;\n  }\n\n}\n\nexports.RenderTask = RenderTask;\n\nclass InternalRenderTask {\n  constructor(_ref14) {\n    let {\n      callback,\n      params,\n      objs,\n      commonObjs,\n      annotationCanvasMap,\n      operatorList,\n      pageIndex,\n      canvasFactory,\n      useRequestAnimationFrame = false,\n      pdfBug = false,\n      pageColors = null\n    } = _ref14;\n    this.callback = callback;\n    this.params = params;\n    this.objs = objs;\n    this.commonObjs = commonObjs;\n    this.annotationCanvasMap = annotationCanvasMap;\n    this.operatorListIdx = null;\n    this.operatorList = operatorList;\n    this._pageIndex = pageIndex;\n    this.canvasFactory = canvasFactory;\n    this._pdfBug = pdfBug;\n    this.pageColors = pageColors;\n    this.running = false;\n    this.graphicsReadyCallback = null;\n    this.graphicsReady = false;\n    this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n    this.cancelled = false;\n    this.capability = (0, _util.createPromiseCapability)();\n    this.task = new RenderTask(this);\n    this._cancelBound = this.cancel.bind(this);\n    this._continueBound = this._continue.bind(this);\n    this._scheduleNextBound = this._scheduleNext.bind(this);\n    this._nextBound = this._next.bind(this);\n    this._canvas = params.canvasContext.canvas;\n  }\n\n  get completed() {\n    return this.capability.promise.catch(function () {});\n  }\n\n  initializeGraphics(_ref15) {\n    var _globalThis$StepperMa;\n\n    let {\n      transparency = false,\n      optionalContentConfig\n    } = _ref15;\n\n    if (this.cancelled) {\n      return;\n    }\n\n    if (this._canvas) {\n      if (_classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).has(this._canvas)) {\n        throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n      }\n\n      _classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).add(this._canvas);\n    }\n\n    if (this._pdfBug && (_globalThis$StepperMa = globalThis.StepperManager) !== null && _globalThis$StepperMa !== void 0 && _globalThis$StepperMa.enabled) {\n      this.stepper = globalThis.StepperManager.create(this._pageIndex);\n      this.stepper.init(this.operatorList);\n      this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n    }\n\n    const {\n      canvasContext,\n      viewport,\n      transform,\n      imageLayer,\n      background\n    } = this.params;\n    this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, imageLayer, optionalContentConfig, this.annotationCanvasMap, this.pageColors);\n    this.gfx.beginDrawing({\n      transform,\n      viewport,\n      transparency,\n      background\n    });\n    this.operatorListIdx = 0;\n    this.graphicsReady = true;\n\n    if (this.graphicsReadyCallback) {\n      this.graphicsReadyCallback();\n    }\n  }\n\n  cancel() {\n    let error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    this.running = false;\n    this.cancelled = true;\n\n    if (this.gfx) {\n      this.gfx.endDrawing();\n    }\n\n    if (this._canvas) {\n      _classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).delete(this._canvas);\n    }\n\n    this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, \"canvas\"));\n  }\n\n  operatorListChanged() {\n    if (!this.graphicsReady) {\n      if (!this.graphicsReadyCallback) {\n        this.graphicsReadyCallback = this._continueBound;\n      }\n\n      return;\n    }\n\n    if (this.stepper) {\n      this.stepper.updateOperatorList(this.operatorList);\n    }\n\n    if (this.running) {\n      return;\n    }\n\n    this._continue();\n  }\n\n  _continue() {\n    this.running = true;\n\n    if (this.cancelled) {\n      return;\n    }\n\n    if (this.task.onContinue) {\n      this.task.onContinue(this._scheduleNextBound);\n    } else {\n      this._scheduleNext();\n    }\n  }\n\n  _scheduleNext() {\n    if (this._useRequestAnimationFrame) {\n      window.requestAnimationFrame(() => {\n        this._nextBound().catch(this._cancelBound);\n      });\n    } else {\n      Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n    }\n  }\n\n  async _next() {\n    if (this.cancelled) {\n      return;\n    }\n\n    this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n\n    if (this.operatorListIdx === this.operatorList.argsArray.length) {\n      this.running = false;\n\n      if (this.operatorList.lastChunk) {\n        this.gfx.endDrawing();\n\n        if (this._canvas) {\n          _classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).delete(this._canvas);\n        }\n\n        this.callback();\n      }\n    }\n  }\n\n}\n\nvar _canvasInUse = {\n  writable: true,\n  value: new WeakSet()\n};\nconst version = '2.16.105';\nexports.version = version;\nconst build = '172ccdbe5';\nexports.build = build;\n\n/***/ }),\n/* 130 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PrintAnnotationStorage = exports.AnnotationStorage = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _editor = __w_pdfjs_require__(131);\n\nvar _murmurhash = __w_pdfjs_require__(135);\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _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; } }\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nvar _setModified = /*#__PURE__*/new WeakSet();\n\nclass AnnotationStorage {\n  constructor() {\n    _classPrivateMethodInitSpec(this, _setModified);\n\n    this._storage = new Map();\n    this._modified = false;\n    this.onSetModified = null;\n    this.onResetModified = null;\n    this.onAnnotationEditor = null;\n  }\n\n  getValue(key, defaultValue) {\n    const value = this._storage.get(key);\n\n    if (value === undefined) {\n      return defaultValue;\n    }\n\n    return Object.assign(defaultValue, value);\n  }\n\n  getRawValue(key) {\n    return this._storage.get(key);\n  }\n\n  remove(key) {\n    this._storage.delete(key);\n\n    if (this._storage.size === 0) {\n      this.resetModified();\n    }\n\n    if (typeof this.onAnnotationEditor === \"function\") {\n      for (const value of this._storage.values()) {\n        if (value instanceof _editor.AnnotationEditor) {\n          return;\n        }\n      }\n\n      this.onAnnotationEditor(null);\n    }\n  }\n\n  setValue(key, value) {\n    const obj = this._storage.get(key);\n\n    let modified = false;\n\n    if (obj !== undefined) {\n      for (const [entry, val] of Object.entries(value)) {\n        if (obj[entry] !== val) {\n          modified = true;\n          obj[entry] = val;\n        }\n      }\n    } else {\n      modified = true;\n\n      this._storage.set(key, value);\n    }\n\n    if (modified) {\n      _classPrivateMethodGet(this, _setModified, _setModified2).call(this);\n    }\n\n    if (value instanceof _editor.AnnotationEditor && typeof this.onAnnotationEditor === \"function\") {\n      this.onAnnotationEditor(value.constructor._type);\n    }\n  }\n\n  has(key) {\n    return this._storage.has(key);\n  }\n\n  getAll() {\n    return this._storage.size > 0 ? (0, _util.objectFromMap)(this._storage) : null;\n  }\n\n  get size() {\n    return this._storage.size;\n  }\n\n  resetModified() {\n    if (this._modified) {\n      this._modified = false;\n\n      if (typeof this.onResetModified === \"function\") {\n        this.onResetModified();\n      }\n    }\n  }\n\n  get print() {\n    return new PrintAnnotationStorage(this);\n  }\n\n  get serializable() {\n    if (this._storage.size === 0) {\n      return null;\n    }\n\n    const clone = new Map();\n\n    for (const [key, val] of this._storage) {\n      const serialized = val instanceof _editor.AnnotationEditor ? val.serialize() : val;\n\n      if (serialized) {\n        clone.set(key, serialized);\n      }\n    }\n\n    return clone;\n  }\n\n  static getHash(map) {\n    if (!map) {\n      return \"\";\n    }\n\n    const hash = new _murmurhash.MurmurHash3_64();\n\n    for (const [key, val] of map) {\n      hash.update(`${key}:${JSON.stringify(val)}`);\n    }\n\n    return hash.hexdigest();\n  }\n\n}\n\nexports.AnnotationStorage = AnnotationStorage;\n\nfunction _setModified2() {\n  if (!this._modified) {\n    this._modified = true;\n\n    if (typeof this.onSetModified === \"function\") {\n      this.onSetModified();\n    }\n  }\n}\n\nvar _serializable = /*#__PURE__*/new WeakMap();\n\nclass PrintAnnotationStorage extends AnnotationStorage {\n  constructor(parent) {\n    super();\n\n    _classPrivateFieldInitSpec(this, _serializable, {\n      writable: true,\n      value: null\n    });\n\n    _classPrivateFieldSet(this, _serializable, structuredClone(parent.serializable));\n  }\n\n  get print() {\n    (0, _util.unreachable)(\"Should not call PrintAnnotationStorage.print\");\n  }\n\n  get serializable() {\n    return _classPrivateFieldGet(this, _serializable);\n  }\n\n}\n\nexports.PrintAnnotationStorage = PrintAnnotationStorage;\n\n/***/ }),\n/* 131 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.AnnotationEditor = void 0;\n\nvar _tools = __w_pdfjs_require__(132);\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _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; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _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; } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nvar _boundFocusin = /*#__PURE__*/new WeakMap();\n\nvar _boundFocusout = /*#__PURE__*/new WeakMap();\n\nvar _hasBeenSelected = /*#__PURE__*/new WeakMap();\n\nvar _isEditing = /*#__PURE__*/new WeakMap();\n\nvar _isInEditMode = /*#__PURE__*/new WeakMap();\n\nvar _zIndex = /*#__PURE__*/new WeakMap();\n\nclass AnnotationEditor {\n  constructor(parameters) {\n    _classPrivateFieldInitSpec(this, _boundFocusin, {\n      writable: true,\n      value: this.focusin.bind(this)\n    });\n\n    _classPrivateFieldInitSpec(this, _boundFocusout, {\n      writable: true,\n      value: this.focusout.bind(this)\n    });\n\n    _classPrivateFieldInitSpec(this, _hasBeenSelected, {\n      writable: true,\n      value: false\n    });\n\n    _classPrivateFieldInitSpec(this, _isEditing, {\n      writable: true,\n      value: false\n    });\n\n    _classPrivateFieldInitSpec(this, _isInEditMode, {\n      writable: true,\n      value: false\n    });\n\n    _classPrivateFieldInitSpec(this, _zIndex, {\n      writable: true,\n      value: AnnotationEditor._zIndex++\n    });\n\n    if (this.constructor === AnnotationEditor) {\n      (0, _util.unreachable)(\"Cannot initialize AnnotationEditor.\");\n    }\n\n    this.parent = parameters.parent;\n    this.id = parameters.id;\n    this.width = this.height = null;\n    this.pageIndex = parameters.parent.pageIndex;\n    this.name = parameters.name;\n    this.div = null;\n    const [width, height] = this.parent.viewportBaseDimensions;\n    this.x = parameters.x / width;\n    this.y = parameters.y / height;\n    this.rotation = this.parent.viewport.rotation;\n    this.isAttachedToDOM = false;\n  }\n\n  static get _defaultLineColor() {\n    return (0, _util.shadow)(this, \"_defaultLineColor\", this._colorManager.getHexCode(\"CanvasText\"));\n  }\n\n  setInBackground() {\n    this.div.style.zIndex = 0;\n  }\n\n  setInForeground() {\n    this.div.style.zIndex = _classPrivateFieldGet(this, _zIndex);\n  }\n\n  focusin(event) {\n    if (!_classPrivateFieldGet(this, _hasBeenSelected)) {\n      this.parent.setSelected(this);\n    } else {\n      _classPrivateFieldSet(this, _hasBeenSelected, false);\n    }\n  }\n\n  focusout(event) {\n    if (!this.isAttachedToDOM) {\n      return;\n    }\n\n    const target = event.relatedTarget;\n\n    if (target !== null && target !== void 0 && target.closest(`#${this.id}`)) {\n      return;\n    }\n\n    event.preventDefault();\n\n    if (!this.parent.isMultipleSelection) {\n      this.commitOrRemove();\n    }\n  }\n\n  commitOrRemove() {\n    if (this.isEmpty()) {\n      this.remove();\n    } else {\n      this.commit();\n    }\n  }\n\n  commit() {\n    this.parent.addToAnnotationStorage(this);\n  }\n\n  dragstart(event) {\n    const rect = this.parent.div.getBoundingClientRect();\n    this.startX = event.clientX - rect.x;\n    this.startY = event.clientY - rect.y;\n    event.dataTransfer.setData(\"text/plain\", this.id);\n    event.dataTransfer.effectAllowed = \"move\";\n  }\n\n  setAt(x, y, tx, ty) {\n    const [width, height] = this.parent.viewportBaseDimensions;\n    [tx, ty] = this.screenToPageTranslation(tx, ty);\n    this.x = (x + tx) / width;\n    this.y = (y + ty) / height;\n    this.div.style.left = `${100 * this.x}%`;\n    this.div.style.top = `${100 * this.y}%`;\n  }\n\n  translate(x, y) {\n    const [width, height] = this.parent.viewportBaseDimensions;\n    [x, y] = this.screenToPageTranslation(x, y);\n    this.x += x / width;\n    this.y += y / height;\n    this.div.style.left = `${100 * this.x}%`;\n    this.div.style.top = `${100 * this.y}%`;\n  }\n\n  screenToPageTranslation(x, y) {\n    const {\n      rotation\n    } = this.parent.viewport;\n\n    switch (rotation) {\n      case 90:\n        return [y, -x];\n\n      case 180:\n        return [-x, -y];\n\n      case 270:\n        return [-y, x];\n\n      default:\n        return [x, y];\n    }\n  }\n\n  setDims(width, height) {\n    const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n    this.div.style.width = `${100 * width / parentWidth}%`;\n    this.div.style.height = `${100 * height / parentHeight}%`;\n  }\n\n  getInitialTranslation() {\n    return [0, 0];\n  }\n\n  render() {\n    this.div = document.createElement(\"div\");\n    this.div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n    this.div.className = this.name;\n    this.div.setAttribute(\"id\", this.id);\n    this.div.setAttribute(\"tabIndex\", 0);\n    this.setInForeground();\n    this.div.addEventListener(\"focusin\", _classPrivateFieldGet(this, _boundFocusin));\n    this.div.addEventListener(\"focusout\", _classPrivateFieldGet(this, _boundFocusout));\n    const [tx, ty] = this.getInitialTranslation();\n    this.translate(tx, ty);\n    (0, _tools.bindEvents)(this, this.div, [\"dragstart\", \"pointerdown\"]);\n    return this.div;\n  }\n\n  pointerdown(event) {\n    const isMac = _tools.KeyboardManager.platform.isMac;\n\n    if (event.button !== 0 || event.ctrlKey && isMac) {\n      event.preventDefault();\n      return;\n    }\n\n    if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) {\n      this.parent.toggleSelected(this);\n    } else {\n      this.parent.setSelected(this);\n    }\n\n    _classPrivateFieldSet(this, _hasBeenSelected, true);\n  }\n\n  getRect(tx, ty) {\n    const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n    const [pageWidth, pageHeight] = this.parent.pageDimensions;\n    const shiftX = pageWidth * tx / parentWidth;\n    const shiftY = pageHeight * ty / parentHeight;\n    const x = this.x * pageWidth;\n    const y = this.y * pageHeight;\n    const width = this.width * pageWidth;\n    const height = this.height * pageHeight;\n\n    switch (this.rotation) {\n      case 0:\n        return [x + shiftX, pageHeight - y - shiftY - height, x + shiftX + width, pageHeight - y - shiftY];\n\n      case 90:\n        return [x + shiftY, pageHeight - y + shiftX, x + shiftY + height, pageHeight - y + shiftX + width];\n\n      case 180:\n        return [x - shiftX - width, pageHeight - y + shiftY, x - shiftX, pageHeight - y + shiftY + height];\n\n      case 270:\n        return [x - shiftY - height, pageHeight - y - shiftX - width, x - shiftY, pageHeight - y - shiftX];\n\n      default:\n        throw new Error(\"Invalid rotation\");\n    }\n  }\n\n  getRectInCurrentCoords(rect, pageHeight) {\n    const [x1, y1, x2, y2] = rect;\n    const width = x2 - x1;\n    const height = y2 - y1;\n\n    switch (this.rotation) {\n      case 0:\n        return [x1, pageHeight - y2, width, height];\n\n      case 90:\n        return [x1, pageHeight - y1, height, width];\n\n      case 180:\n        return [x2, pageHeight - y1, width, height];\n\n      case 270:\n        return [x2, pageHeight - y2, height, width];\n\n      default:\n        throw new Error(\"Invalid rotation\");\n    }\n  }\n\n  onceAdded() {}\n\n  isEmpty() {\n    return false;\n  }\n\n  enableEditMode() {\n    _classPrivateFieldSet(this, _isInEditMode, true);\n  }\n\n  disableEditMode() {\n    _classPrivateFieldSet(this, _isInEditMode, false);\n  }\n\n  isInEditMode() {\n    return _classPrivateFieldGet(this, _isInEditMode);\n  }\n\n  shouldGetKeyboardEvents() {\n    return false;\n  }\n\n  needsToBeRebuilt() {\n    return this.div && !this.isAttachedToDOM;\n  }\n\n  rebuild() {\n    var _this$div;\n\n    (_this$div = this.div) === null || _this$div === void 0 ? void 0 : _this$div.addEventListener(\"focusin\", _classPrivateFieldGet(this, _boundFocusin));\n  }\n\n  serialize() {\n    (0, _util.unreachable)(\"An editor must be serializable\");\n  }\n\n  static deserialize(data, parent) {\n    const editor = new this.prototype.constructor({\n      parent,\n      id: parent.getNextId()\n    });\n    editor.rotation = data.rotation;\n    const [pageWidth, pageHeight] = parent.pageDimensions;\n    const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight);\n    editor.x = x / pageWidth;\n    editor.y = y / pageHeight;\n    editor.width = width / pageWidth;\n    editor.height = height / pageHeight;\n    return editor;\n  }\n\n  remove() {\n    this.div.removeEventListener(\"focusin\", _classPrivateFieldGet(this, _boundFocusin));\n    this.div.removeEventListener(\"focusout\", _classPrivateFieldGet(this, _boundFocusout));\n\n    if (!this.isEmpty()) {\n      this.commit();\n    }\n\n    this.parent.remove(this);\n  }\n\n  select() {\n    var _this$div2;\n\n    (_this$div2 = this.div) === null || _this$div2 === void 0 ? void 0 : _this$div2.classList.add(\"selectedEditor\");\n  }\n\n  unselect() {\n    var _this$div3;\n\n    (_this$div3 = this.div) === null || _this$div3 === void 0 ? void 0 : _this$div3.classList.remove(\"selectedEditor\");\n  }\n\n  updateParams(type, value) {}\n\n  disableEditing() {}\n\n  enableEditing() {}\n\n  get propertiesToUpdate() {\n    return {};\n  }\n\n  get contentDiv() {\n    return this.div;\n  }\n\n  get isEditing() {\n    return _classPrivateFieldGet(this, _isEditing);\n  }\n\n  set isEditing(value) {\n    _classPrivateFieldSet(this, _isEditing, value);\n\n    if (value) {\n      this.parent.setSelected(this);\n      this.parent.setActiveEditor(this);\n    } else {\n      this.parent.setActiveEditor(null);\n    }\n  }\n\n}\n\nexports.AnnotationEditor = AnnotationEditor;\n\n_defineProperty(AnnotationEditor, \"_colorManager\", new _tools.ColorManager());\n\n_defineProperty(AnnotationEditor, \"_zIndex\", 1);\n\n/***/ }),\n/* 132 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.KeyboardManager = exports.CommandManager = exports.ColorManager = exports.AnnotationEditorUIManager = void 0;\nexports.bindEvents = bindEvents;\nexports.opacityToHex = opacityToHex;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nfunction _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; }\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _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; } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction bindEvents(obj, element, names) {\n  for (const name of names) {\n    element.addEventListener(name, obj[name].bind(obj));\n  }\n}\n\nfunction opacityToHex(opacity) {\n  return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, \"0\");\n}\n\nvar _id = /*#__PURE__*/new WeakMap();\n\nclass IdManager {\n  constructor() {\n    _classPrivateFieldInitSpec(this, _id, {\n      writable: true,\n      value: 0\n    });\n  }\n\n  getId() {\n    var _this$id, _this$id2;\n\n    return `${_util.AnnotationEditorPrefix}${(_classPrivateFieldSet(this, _id, (_this$id = _classPrivateFieldGet(this, _id), _this$id2 = _this$id++, _this$id)), _this$id2)}`;\n  }\n\n}\n\nvar _commands = /*#__PURE__*/new WeakMap();\n\nvar _locked = /*#__PURE__*/new WeakMap();\n\nvar _maxSize = /*#__PURE__*/new WeakMap();\n\nvar _position = /*#__PURE__*/new WeakMap();\n\nclass CommandManager {\n  constructor() {\n    let maxSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 128;\n\n    _classPrivateFieldInitSpec(this, _commands, {\n      writable: true,\n      value: []\n    });\n\n    _classPrivateFieldInitSpec(this, _locked, {\n      writable: true,\n      value: false\n    });\n\n    _classPrivateFieldInitSpec(this, _maxSize, {\n      writable: true,\n      value: void 0\n    });\n\n    _classPrivateFieldInitSpec(this, _position, {\n      writable: true,\n      value: -1\n    });\n\n    _classPrivateFieldSet(this, _maxSize, maxSize);\n  }\n\n  add(_ref) {\n    let {\n      cmd,\n      undo,\n      mustExec,\n      type = NaN,\n      overwriteIfSameType = false,\n      keepUndo = false\n    } = _ref;\n\n    if (mustExec) {\n      cmd();\n    }\n\n    if (_classPrivateFieldGet(this, _locked)) {\n      return;\n    }\n\n    const save = {\n      cmd,\n      undo,\n      type\n    };\n\n    if (_classPrivateFieldGet(this, _position) === -1) {\n      if (_classPrivateFieldGet(this, _commands).length > 0) {\n        _classPrivateFieldGet(this, _commands).length = 0;\n      }\n\n      _classPrivateFieldSet(this, _position, 0);\n\n      _classPrivateFieldGet(this, _commands).push(save);\n\n      return;\n    }\n\n    if (overwriteIfSameType && _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].type === type) {\n      if (keepUndo) {\n        save.undo = _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].undo;\n      }\n\n      _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)] = save;\n      return;\n    }\n\n    const next = _classPrivateFieldGet(this, _position) + 1;\n\n    if (next === _classPrivateFieldGet(this, _maxSize)) {\n      _classPrivateFieldGet(this, _commands).splice(0, 1);\n    } else {\n      _classPrivateFieldSet(this, _position, next);\n\n      if (next < _classPrivateFieldGet(this, _commands).length) {\n        _classPrivateFieldGet(this, _commands).splice(next);\n      }\n    }\n\n    _classPrivateFieldGet(this, _commands).push(save);\n  }\n\n  undo() {\n    if (_classPrivateFieldGet(this, _position) === -1) {\n      return;\n    }\n\n    _classPrivateFieldSet(this, _locked, true);\n\n    _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].undo();\n\n    _classPrivateFieldSet(this, _locked, false);\n\n    _classPrivateFieldSet(this, _position, _classPrivateFieldGet(this, _position) - 1);\n  }\n\n  redo() {\n    if (_classPrivateFieldGet(this, _position) < _classPrivateFieldGet(this, _commands).length - 1) {\n      _classPrivateFieldSet(this, _position, _classPrivateFieldGet(this, _position) + 1);\n\n      _classPrivateFieldSet(this, _locked, true);\n\n      _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].cmd();\n\n      _classPrivateFieldSet(this, _locked, false);\n    }\n  }\n\n  hasSomethingToUndo() {\n    return _classPrivateFieldGet(this, _position) !== -1;\n  }\n\n  hasSomethingToRedo() {\n    return _classPrivateFieldGet(this, _position) < _classPrivateFieldGet(this, _commands).length - 1;\n  }\n\n  destroy() {\n    _classPrivateFieldSet(this, _commands, null);\n  }\n\n}\n\nexports.CommandManager = CommandManager;\n\nvar _serialize = /*#__PURE__*/new WeakSet();\n\nclass KeyboardManager {\n  constructor(callbacks) {\n    _classPrivateMethodInitSpec(this, _serialize);\n\n    this.buffer = [];\n    this.callbacks = new Map();\n    this.allKeys = new Set();\n    const isMac = KeyboardManager.platform.isMac;\n\n    for (const [keys, callback] of callbacks) {\n      for (const key of keys) {\n        const isMacKey = key.startsWith(\"mac+\");\n\n        if (isMac && isMacKey) {\n          this.callbacks.set(key.slice(4), callback);\n          this.allKeys.add(key.split(\"+\").at(-1));\n        } else if (!isMac && !isMacKey) {\n          this.callbacks.set(key, callback);\n          this.allKeys.add(key.split(\"+\").at(-1));\n        }\n      }\n    }\n  }\n\n  static get platform() {\n    const platform = typeof navigator !== \"undefined\" ? navigator.platform : \"\";\n    return (0, _util.shadow)(this, \"platform\", {\n      isWin: platform.includes(\"Win\"),\n      isMac: platform.includes(\"Mac\")\n    });\n  }\n\n  exec(self, event) {\n    if (!this.allKeys.has(event.key)) {\n      return;\n    }\n\n    const callback = this.callbacks.get(_classPrivateMethodGet(this, _serialize, _serialize2).call(this, event));\n\n    if (!callback) {\n      return;\n    }\n\n    callback.bind(self)();\n    event.stopPropagation();\n    event.preventDefault();\n  }\n\n}\n\nexports.KeyboardManager = KeyboardManager;\n\nfunction _serialize2(event) {\n  if (event.altKey) {\n    this.buffer.push(\"alt\");\n  }\n\n  if (event.ctrlKey) {\n    this.buffer.push(\"ctrl\");\n  }\n\n  if (event.metaKey) {\n    this.buffer.push(\"meta\");\n  }\n\n  if (event.shiftKey) {\n    this.buffer.push(\"shift\");\n  }\n\n  this.buffer.push(event.key);\n  const str = this.buffer.join(\"+\");\n  this.buffer.length = 0;\n  return str;\n}\n\nvar _elements = /*#__PURE__*/new WeakMap();\n\nclass ClipboardManager {\n  constructor() {\n    _classPrivateFieldInitSpec(this, _elements, {\n      writable: true,\n      value: null\n    });\n  }\n\n  copy(element) {\n    if (!element) {\n      return;\n    }\n\n    if (Array.isArray(element)) {\n      _classPrivateFieldSet(this, _elements, element.map(el => el.serialize()));\n    } else {\n      _classPrivateFieldSet(this, _elements, [element.serialize()]);\n    }\n\n    _classPrivateFieldSet(this, _elements, _classPrivateFieldGet(this, _elements).filter(el => !!el));\n\n    if (_classPrivateFieldGet(this, _elements).length === 0) {\n      _classPrivateFieldSet(this, _elements, null);\n    }\n  }\n\n  paste() {\n    return _classPrivateFieldGet(this, _elements);\n  }\n\n  isEmpty() {\n    return _classPrivateFieldGet(this, _elements) === null;\n  }\n\n  destroy() {\n    _classPrivateFieldSet(this, _elements, null);\n  }\n\n}\n\nclass ColorManager {\n  get _colors() {\n    const colors = new Map([[\"CanvasText\", null], [\"Canvas\", null]]);\n    (0, _display_utils.getColorValues)(colors);\n    return (0, _util.shadow)(this, \"_colors\", colors);\n  }\n\n  convert(color) {\n    const rgb = (0, _display_utils.getRGB)(color);\n\n    if (!window.matchMedia(\"(forced-colors: active)\").matches) {\n      return rgb;\n    }\n\n    for (const [name, RGB] of this._colors) {\n      if (RGB.every((x, i) => x === rgb[i])) {\n        return ColorManager._colorsMapping.get(name);\n      }\n    }\n\n    return rgb;\n  }\n\n  getHexCode(name) {\n    const rgb = this._colors.get(name);\n\n    if (!rgb) {\n      return name;\n    }\n\n    return _util.Util.makeHexColor(...rgb);\n  }\n\n}\n\nexports.ColorManager = ColorManager;\n\n_defineProperty(ColorManager, \"_colorsMapping\", new Map([[\"CanvasText\", [0, 0, 0]], [\"Canvas\", [255, 255, 255]]]));\n\nvar _activeEditor = /*#__PURE__*/new WeakMap();\n\nvar _allEditors = /*#__PURE__*/new WeakMap();\n\nvar _allLayers = /*#__PURE__*/new WeakMap();\n\nvar _clipboardManager = /*#__PURE__*/new WeakMap();\n\nvar _commandManager = /*#__PURE__*/new WeakMap();\n\nvar _currentPageIndex = /*#__PURE__*/new WeakMap();\n\nvar _editorTypes = /*#__PURE__*/new WeakMap();\n\nvar _eventBus = /*#__PURE__*/new WeakMap();\n\nvar _idManager = /*#__PURE__*/new WeakMap();\n\nvar _isEnabled = /*#__PURE__*/new WeakMap();\n\nvar _mode = /*#__PURE__*/new WeakMap();\n\nvar _selectedEditors = /*#__PURE__*/new WeakMap();\n\nvar _boundKeydown = /*#__PURE__*/new WeakMap();\n\nvar _boundOnEditingAction = /*#__PURE__*/new WeakMap();\n\nvar _boundOnPageChanging = /*#__PURE__*/new WeakMap();\n\nvar _previousStates = /*#__PURE__*/new WeakMap();\n\nvar _container = /*#__PURE__*/new WeakMap();\n\nvar _addKeyboardManager = /*#__PURE__*/new WeakSet();\n\nvar _removeKeyboardManager = /*#__PURE__*/new WeakSet();\n\nvar _dispatchUpdateStates = /*#__PURE__*/new WeakSet();\n\nvar _dispatchUpdateUI = /*#__PURE__*/new WeakSet();\n\nvar _enableAll = /*#__PURE__*/new WeakSet();\n\nvar _disableAll = /*#__PURE__*/new WeakSet();\n\nvar _addEditorToLayer = /*#__PURE__*/new WeakSet();\n\nvar _isEmpty = /*#__PURE__*/new WeakSet();\n\nvar _selectEditors = /*#__PURE__*/new WeakSet();\n\nclass AnnotationEditorUIManager {\n  constructor(container, eventBus) {\n    _classPrivateMethodInitSpec(this, _selectEditors);\n\n    _classPrivateMethodInitSpec(this, _isEmpty);\n\n    _classPrivateMethodInitSpec(this, _addEditorToLayer);\n\n    _classPrivateMethodInitSpec(this, _disableAll);\n\n    _classPrivateMethodInitSpec(this, _enableAll);\n\n    _classPrivateMethodInitSpec(this, _dispatchUpdateUI);\n\n    _classPrivateMethodInitSpec(this, _dispatchUpdateStates);\n\n    _classPrivateMethodInitSpec(this, _removeKeyboardManager);\n\n    _classPrivateMethodInitSpec(this, _addKeyboardManager);\n\n    _classPrivateFieldInitSpec(this, _activeEditor, {\n      writable: true,\n      value: null\n    });\n\n    _classPrivateFieldInitSpec(this, _allEditors, {\n      writable: true,\n      value: new Map()\n    });\n\n    _classPrivateFieldInitSpec(this, _allLayers, {\n      writable: true,\n      value: new Map()\n    });\n\n    _classPrivateFieldInitSpec(this, _clipboardManager, {\n      writable: true,\n      value: new ClipboardManager()\n    });\n\n    _classPrivateFieldInitSpec(this, _commandManager, {\n      writable: true,\n      value: new CommandManager()\n    });\n\n    _classPrivateFieldInitSpec(this, _currentPageIndex, {\n      writable: true,\n      value: 0\n    });\n\n    _classPrivateFieldInitSpec(this, _editorTypes, {\n      writable: true,\n      value: null\n    });\n\n    _classPrivateFieldInitSpec(this, _eventBus, {\n      writable: true,\n      value: null\n    });\n\n    _classPrivateFieldInitSpec(this, _idManager, {\n      writable: true,\n      value: new IdManager()\n    });\n\n    _classPrivateFieldInitSpec(this, _isEnabled, {\n      writable: true,\n      value: false\n    });\n\n    _classPrivateFieldInitSpec(this, _mode, {\n      writable: true,\n      value: _util.AnnotationEditorType.NONE\n    });\n\n    _classPrivateFieldInitSpec(this, _selectedEditors, {\n      writable: true,\n      value: new Set()\n    });\n\n    _classPrivateFieldInitSpec(this, _boundKeydown, {\n      writable: true,\n      value: this.keydown.bind(this)\n    });\n\n    _classPrivateFieldInitSpec(this, _boundOnEditingAction, {\n      writable: true,\n      value: this.onEditingAction.bind(this)\n    });\n\n    _classPrivateFieldInitSpec(this, _boundOnPageChanging, {\n      writable: true,\n      value: this.onPageChanging.bind(this)\n    });\n\n    _classPrivateFieldInitSpec(this, _previousStates, {\n      writable: true,\n      value: {\n        isEditing: false,\n        isEmpty: true,\n        hasEmptyClipboard: true,\n        hasSomethingToUndo: false,\n        hasSomethingToRedo: false,\n        hasSelectedEditor: false\n      }\n    });\n\n    _classPrivateFieldInitSpec(this, _container, {\n      writable: true,\n      value: null\n    });\n\n    _classPrivateFieldSet(this, _container, container);\n\n    _classPrivateFieldSet(this, _eventBus, eventBus);\n\n    _classPrivateFieldGet(this, _eventBus)._on(\"editingaction\", _classPrivateFieldGet(this, _boundOnEditingAction));\n\n    _classPrivateFieldGet(this, _eventBus)._on(\"pagechanging\", _classPrivateFieldGet(this, _boundOnPageChanging));\n  }\n\n  destroy() {\n    _classPrivateMethodGet(this, _removeKeyboardManager, _removeKeyboardManager2).call(this);\n\n    _classPrivateFieldGet(this, _eventBus)._off(\"editingaction\", _classPrivateFieldGet(this, _boundOnEditingAction));\n\n    _classPrivateFieldGet(this, _eventBus)._off(\"pagechanging\", _classPrivateFieldGet(this, _boundOnPageChanging));\n\n    for (const layer of _classPrivateFieldGet(this, _allLayers).values()) {\n      layer.destroy();\n    }\n\n    _classPrivateFieldGet(this, _allLayers).clear();\n\n    _classPrivateFieldGet(this, _allEditors).clear();\n\n    _classPrivateFieldSet(this, _activeEditor, null);\n\n    _classPrivateFieldGet(this, _selectedEditors).clear();\n\n    _classPrivateFieldGet(this, _clipboardManager).destroy();\n\n    _classPrivateFieldGet(this, _commandManager).destroy();\n  }\n\n  onPageChanging(_ref2) {\n    let {\n      pageNumber\n    } = _ref2;\n\n    _classPrivateFieldSet(this, _currentPageIndex, pageNumber - 1);\n  }\n\n  focusMainContainer() {\n    _classPrivateFieldGet(this, _container).focus();\n  }\n\n  keydown(event) {\n    var _this$getActive;\n\n    if (!((_this$getActive = this.getActive()) !== null && _this$getActive !== void 0 && _this$getActive.shouldGetKeyboardEvents())) {\n      AnnotationEditorUIManager._keyboardManager.exec(this, event);\n    }\n  }\n\n  onEditingAction(details) {\n    if ([\"undo\", \"redo\", \"cut\", \"copy\", \"paste\", \"delete\", \"selectAll\"].includes(details.name)) {\n      this[details.name]();\n    }\n  }\n\n  setEditingState(isEditing) {\n    if (isEditing) {\n      _classPrivateMethodGet(this, _addKeyboardManager, _addKeyboardManager2).call(this);\n\n      _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n        isEditing: _classPrivateFieldGet(this, _mode) !== _util.AnnotationEditorType.NONE,\n        isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this),\n        hasSomethingToUndo: _classPrivateFieldGet(this, _commandManager).hasSomethingToUndo(),\n        hasSomethingToRedo: _classPrivateFieldGet(this, _commandManager).hasSomethingToRedo(),\n        hasSelectedEditor: false,\n        hasEmptyClipboard: _classPrivateFieldGet(this, _clipboardManager).isEmpty()\n      });\n    } else {\n      _classPrivateMethodGet(this, _removeKeyboardManager, _removeKeyboardManager2).call(this);\n\n      _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n        isEditing: false\n      });\n    }\n  }\n\n  registerEditorTypes(types) {\n    _classPrivateFieldSet(this, _editorTypes, types);\n\n    for (const editorType of _classPrivateFieldGet(this, _editorTypes)) {\n      _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editorType.defaultPropertiesToUpdate);\n    }\n  }\n\n  getId() {\n    return _classPrivateFieldGet(this, _idManager).getId();\n  }\n\n  addLayer(layer) {\n    _classPrivateFieldGet(this, _allLayers).set(layer.pageIndex, layer);\n\n    if (_classPrivateFieldGet(this, _isEnabled)) {\n      layer.enable();\n    } else {\n      layer.disable();\n    }\n  }\n\n  removeLayer(layer) {\n    _classPrivateFieldGet(this, _allLayers).delete(layer.pageIndex);\n  }\n\n  updateMode(mode) {\n    _classPrivateFieldSet(this, _mode, mode);\n\n    if (mode === _util.AnnotationEditorType.NONE) {\n      this.setEditingState(false);\n\n      _classPrivateMethodGet(this, _disableAll, _disableAll2).call(this);\n    } else {\n      this.setEditingState(true);\n\n      _classPrivateMethodGet(this, _enableAll, _enableAll2).call(this);\n\n      for (const layer of _classPrivateFieldGet(this, _allLayers).values()) {\n        layer.updateMode(mode);\n      }\n    }\n  }\n\n  updateToolbar(mode) {\n    if (mode === _classPrivateFieldGet(this, _mode)) {\n      return;\n    }\n\n    _classPrivateFieldGet(this, _eventBus).dispatch(\"switchannotationeditormode\", {\n      source: this,\n      mode\n    });\n  }\n\n  updateParams(type, value) {\n    for (const editor of _classPrivateFieldGet(this, _selectedEditors)) {\n      editor.updateParams(type, value);\n    }\n\n    for (const editorType of _classPrivateFieldGet(this, _editorTypes)) {\n      editorType.updateDefaultParams(type, value);\n    }\n  }\n\n  getEditors(pageIndex) {\n    const editors = [];\n\n    for (const editor of _classPrivateFieldGet(this, _allEditors).values()) {\n      if (editor.pageIndex === pageIndex) {\n        editors.push(editor);\n      }\n    }\n\n    return editors;\n  }\n\n  getEditor(id) {\n    return _classPrivateFieldGet(this, _allEditors).get(id);\n  }\n\n  addEditor(editor) {\n    _classPrivateFieldGet(this, _allEditors).set(editor.id, editor);\n  }\n\n  removeEditor(editor) {\n    _classPrivateFieldGet(this, _allEditors).delete(editor.id);\n\n    this.unselect(editor);\n  }\n\n  setActiveEditor(editor) {\n    if (_classPrivateFieldGet(this, _activeEditor) === editor) {\n      return;\n    }\n\n    _classPrivateFieldSet(this, _activeEditor, editor);\n\n    if (editor) {\n      _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editor.propertiesToUpdate);\n    }\n  }\n\n  toggleSelected(editor) {\n    if (_classPrivateFieldGet(this, _selectedEditors).has(editor)) {\n      _classPrivateFieldGet(this, _selectedEditors).delete(editor);\n\n      editor.unselect();\n\n      _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n        hasSelectedEditor: this.hasSelection\n      });\n\n      return;\n    }\n\n    _classPrivateFieldGet(this, _selectedEditors).add(editor);\n\n    editor.select();\n\n    _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editor.propertiesToUpdate);\n\n    _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n      hasSelectedEditor: true\n    });\n  }\n\n  setSelected(editor) {\n    for (const ed of _classPrivateFieldGet(this, _selectedEditors)) {\n      if (ed !== editor) {\n        ed.unselect();\n      }\n    }\n\n    _classPrivateFieldGet(this, _selectedEditors).clear();\n\n    _classPrivateFieldGet(this, _selectedEditors).add(editor);\n\n    editor.select();\n\n    _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editor.propertiesToUpdate);\n\n    _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n      hasSelectedEditor: true\n    });\n  }\n\n  isSelected(editor) {\n    return _classPrivateFieldGet(this, _selectedEditors).has(editor);\n  }\n\n  unselect(editor) {\n    editor.unselect();\n\n    _classPrivateFieldGet(this, _selectedEditors).delete(editor);\n\n    _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n      hasSelectedEditor: this.hasSelection\n    });\n  }\n\n  get hasSelection() {\n    return _classPrivateFieldGet(this, _selectedEditors).size !== 0;\n  }\n\n  undo() {\n    _classPrivateFieldGet(this, _commandManager).undo();\n\n    _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n      hasSomethingToUndo: _classPrivateFieldGet(this, _commandManager).hasSomethingToUndo(),\n      hasSomethingToRedo: true,\n      isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this)\n    });\n  }\n\n  redo() {\n    _classPrivateFieldGet(this, _commandManager).redo();\n\n    _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n      hasSomethingToUndo: true,\n      hasSomethingToRedo: _classPrivateFieldGet(this, _commandManager).hasSomethingToRedo(),\n      isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this)\n    });\n  }\n\n  addCommands(params) {\n    _classPrivateFieldGet(this, _commandManager).add(params);\n\n    _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n      hasSomethingToUndo: true,\n      hasSomethingToRedo: false,\n      isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this)\n    });\n  }\n\n  delete() {\n    if (_classPrivateFieldGet(this, _activeEditor)) {\n      _classPrivateFieldGet(this, _activeEditor).commitOrRemove();\n    }\n\n    if (!this.hasSelection) {\n      return;\n    }\n\n    const editors = [..._classPrivateFieldGet(this, _selectedEditors)];\n\n    const cmd = () => {\n      for (const editor of editors) {\n        editor.remove();\n      }\n    };\n\n    const undo = () => {\n      for (const editor of editors) {\n        _classPrivateMethodGet(this, _addEditorToLayer, _addEditorToLayer2).call(this, editor);\n      }\n    };\n\n    this.addCommands({\n      cmd,\n      undo,\n      mustExec: true\n    });\n  }\n\n  copy() {\n    if (_classPrivateFieldGet(this, _activeEditor)) {\n      _classPrivateFieldGet(this, _activeEditor).commitOrRemove();\n    }\n\n    if (this.hasSelection) {\n      const editors = [];\n\n      for (const editor of _classPrivateFieldGet(this, _selectedEditors)) {\n        if (!editor.isEmpty()) {\n          editors.push(editor);\n        }\n      }\n\n      if (editors.length === 0) {\n        return;\n      }\n\n      _classPrivateFieldGet(this, _clipboardManager).copy(editors);\n\n      _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n        hasEmptyClipboard: false\n      });\n    }\n  }\n\n  cut() {\n    this.copy();\n    this.delete();\n  }\n\n  paste() {\n    if (_classPrivateFieldGet(this, _clipboardManager).isEmpty()) {\n      return;\n    }\n\n    this.unselectAll();\n\n    const layer = _classPrivateFieldGet(this, _allLayers).get(_classPrivateFieldGet(this, _currentPageIndex));\n\n    const newEditors = _classPrivateFieldGet(this, _clipboardManager).paste().map(data => layer.deserialize(data));\n\n    const cmd = () => {\n      for (const editor of newEditors) {\n        _classPrivateMethodGet(this, _addEditorToLayer, _addEditorToLayer2).call(this, editor);\n      }\n\n      _classPrivateMethodGet(this, _selectEditors, _selectEditors2).call(this, newEditors);\n    };\n\n    const undo = () => {\n      for (const editor of newEditors) {\n        editor.remove();\n      }\n    };\n\n    this.addCommands({\n      cmd,\n      undo,\n      mustExec: true\n    });\n  }\n\n  selectAll() {\n    for (const editor of _classPrivateFieldGet(this, _selectedEditors)) {\n      editor.commit();\n    }\n\n    _classPrivateMethodGet(this, _selectEditors, _selectEditors2).call(this, _classPrivateFieldGet(this, _allEditors).values());\n  }\n\n  unselectAll() {\n    if (_classPrivateFieldGet(this, _activeEditor)) {\n      _classPrivateFieldGet(this, _activeEditor).commitOrRemove();\n\n      return;\n    }\n\n    if (_classPrivateMethodGet(this, _selectEditors, _selectEditors2).size === 0) {\n      return;\n    }\n\n    for (const editor of _classPrivateFieldGet(this, _selectedEditors)) {\n      editor.unselect();\n    }\n\n    _classPrivateFieldGet(this, _selectedEditors).clear();\n\n    _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n      hasSelectedEditor: false\n    });\n  }\n\n  isActive(editor) {\n    return _classPrivateFieldGet(this, _activeEditor) === editor;\n  }\n\n  getActive() {\n    return _classPrivateFieldGet(this, _activeEditor);\n  }\n\n  getMode() {\n    return _classPrivateFieldGet(this, _mode);\n  }\n\n}\n\nexports.AnnotationEditorUIManager = AnnotationEditorUIManager;\n\nfunction _addKeyboardManager2() {\n  _classPrivateFieldGet(this, _container).addEventListener(\"keydown\", _classPrivateFieldGet(this, _boundKeydown));\n}\n\nfunction _removeKeyboardManager2() {\n  _classPrivateFieldGet(this, _container).removeEventListener(\"keydown\", _classPrivateFieldGet(this, _boundKeydown));\n}\n\nfunction _dispatchUpdateStates2(details) {\n  const hasChanged = Object.entries(details).some(_ref3 => {\n    let [key, value] = _ref3;\n    return _classPrivateFieldGet(this, _previousStates)[key] !== value;\n  });\n\n  if (hasChanged) {\n    _classPrivateFieldGet(this, _eventBus).dispatch(\"annotationeditorstateschanged\", {\n      source: this,\n      details: Object.assign(_classPrivateFieldGet(this, _previousStates), details)\n    });\n  }\n}\n\nfunction _dispatchUpdateUI2(details) {\n  _classPrivateFieldGet(this, _eventBus).dispatch(\"annotationeditorparamschanged\", {\n    source: this,\n    details\n  });\n}\n\nfunction _enableAll2() {\n  if (!_classPrivateFieldGet(this, _isEnabled)) {\n    _classPrivateFieldSet(this, _isEnabled, true);\n\n    for (const layer of _classPrivateFieldGet(this, _allLayers).values()) {\n      layer.enable();\n    }\n  }\n}\n\nfunction _disableAll2() {\n  this.unselectAll();\n\n  if (_classPrivateFieldGet(this, _isEnabled)) {\n    _classPrivateFieldSet(this, _isEnabled, false);\n\n    for (const layer of _classPrivateFieldGet(this, _allLayers).values()) {\n      layer.disable();\n    }\n  }\n}\n\nfunction _addEditorToLayer2(editor) {\n  const layer = _classPrivateFieldGet(this, _allLayers).get(editor.pageIndex);\n\n  if (layer) {\n    layer.addOrRebuild(editor);\n  } else {\n    this.addEditor(editor);\n  }\n}\n\nfunction _isEmpty2() {\n  if (_classPrivateFieldGet(this, _allEditors).size === 0) {\n    return true;\n  }\n\n  if (_classPrivateFieldGet(this, _allEditors).size === 1) {\n    for (const editor of _classPrivateFieldGet(this, _allEditors).values()) {\n      return editor.isEmpty();\n    }\n  }\n\n  return false;\n}\n\nfunction _selectEditors2(editors) {\n  _classPrivateFieldGet(this, _selectedEditors).clear();\n\n  for (const editor of editors) {\n    if (editor.isEmpty()) {\n      continue;\n    }\n\n    _classPrivateFieldGet(this, _selectedEditors).add(editor);\n\n    editor.select();\n  }\n\n  _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, {\n    hasSelectedEditor: true\n  });\n}\n\n_defineProperty(AnnotationEditorUIManager, \"_keyboardManager\", new KeyboardManager([[[\"ctrl+a\", \"mac+meta+a\"], AnnotationEditorUIManager.prototype.selectAll], [[\"ctrl+c\", \"mac+meta+c\"], AnnotationEditorUIManager.prototype.copy], [[\"ctrl+v\", \"mac+meta+v\"], AnnotationEditorUIManager.prototype.paste], [[\"ctrl+x\", \"mac+meta+x\"], AnnotationEditorUIManager.prototype.cut], [[\"ctrl+z\", \"mac+meta+z\"], AnnotationEditorUIManager.prototype.undo], [[\"ctrl+y\", \"ctrl+shift+Z\", \"mac+meta+shift+Z\"], AnnotationEditorUIManager.prototype.redo], [[\"Backspace\", \"alt+Backspace\", \"ctrl+Backspace\", \"shift+Backspace\", \"mac+Backspace\", \"mac+alt+Backspace\", \"mac+ctrl+Backspace\", \"Delete\", \"ctrl+Delete\", \"shift+Delete\"], AnnotationEditorUIManager.prototype.delete], [[\"Escape\", \"mac+Escape\"], AnnotationEditorUIManager.prototype.unselectAll]]));\n\n/***/ }),\n/* 133 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = exports.AnnotationPrefix = void 0;\nexports.deprecated = deprecated;\nexports.getColorValues = getColorValues;\nexports.getCurrentTransform = getCurrentTransform;\nexports.getCurrentTransformInverse = getCurrentTransformInverse;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.getPdfFilenameFromUrl = getPdfFilenameFromUrl;\nexports.getRGB = getRGB;\nexports.getXfaPageViewport = getXfaPageViewport;\nexports.isDataScheme = isDataScheme;\nexports.isPdfFile = isPdfFile;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\n\nvar _base_factory = __w_pdfjs_require__(134);\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _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; }\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\nexports.AnnotationPrefix = AnnotationPrefix;\n\nclass PixelsPerInch {}\n\nexports.PixelsPerInch = PixelsPerInch;\n\n_defineProperty(PixelsPerInch, \"CSS\", 96.0);\n\n_defineProperty(PixelsPerInch, \"PDF\", 72.0);\n\n_defineProperty(PixelsPerInch, \"PDF_TO_CSS_UNITS\", PixelsPerInch.CSS / PixelsPerInch.PDF);\n\nclass DOMCanvasFactory extends _base_factory.BaseCanvasFactory {\n  constructor() {\n    let {\n      ownerDocument = globalThis.document\n    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    super();\n    this._document = ownerDocument;\n  }\n\n  _createCanvas(width, height) {\n    const canvas = this._document.createElement(\"canvas\");\n\n    canvas.width = width;\n    canvas.height = height;\n    return canvas;\n  }\n\n}\n\nexports.DOMCanvasFactory = DOMCanvasFactory;\n\nasync function fetchData(url) {\n  let asTypedArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  if (isValidFetchUrl(url, document.baseURI)) {\n    const response = await fetch(url);\n\n    if (!response.ok) {\n      throw new Error(response.statusText);\n    }\n\n    return asTypedArray ? new Uint8Array(await response.arrayBuffer()) : (0, _util.stringToBytes)(await response.text());\n  }\n\n  return new Promise((resolve, reject) => {\n    const request = new XMLHttpRequest();\n    request.open(\"GET\", url, true);\n\n    if (asTypedArray) {\n      request.responseType = \"arraybuffer\";\n    }\n\n    request.onreadystatechange = () => {\n      if (request.readyState !== XMLHttpRequest.DONE) {\n        return;\n      }\n\n      if (request.status === 200 || request.status === 0) {\n        let data;\n\n        if (asTypedArray && request.response) {\n          data = new Uint8Array(request.response);\n        } else if (!asTypedArray && request.responseText) {\n          data = (0, _util.stringToBytes)(request.responseText);\n        }\n\n        if (data) {\n          resolve(data);\n          return;\n        }\n      }\n\n      reject(new Error(request.statusText));\n    };\n\n    request.send(null);\n  });\n}\n\nclass DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n  _fetchData(url, compressionType) {\n    return fetchData(url, this.isCompressed).then(data => {\n      return {\n        cMapData: data,\n        compressionType\n      };\n    });\n  }\n\n}\n\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\n\nclass DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n  _fetchData(url) {\n    return fetchData(url, true);\n  }\n\n}\n\nexports.DOMStandardFontDataFactory = DOMStandardFontDataFactory;\n\nclass DOMSVGFactory extends _base_factory.BaseSVGFactory {\n  _createSVG(type) {\n    return document.createElementNS(SVG_NS, type);\n  }\n\n}\n\nexports.DOMSVGFactory = DOMSVGFactory;\n\nclass PageViewport {\n  constructor(_ref) {\n    let {\n      viewBox,\n      scale,\n      rotation,\n      offsetX = 0,\n      offsetY = 0,\n      dontFlip = false\n    } = _ref;\n    this.viewBox = viewBox;\n    this.scale = scale;\n    this.rotation = rotation;\n    this.offsetX = offsetX;\n    this.offsetY = offsetY;\n    const centerX = (viewBox[2] + viewBox[0]) / 2;\n    const centerY = (viewBox[3] + viewBox[1]) / 2;\n    let rotateA, rotateB, rotateC, rotateD;\n    rotation %= 360;\n\n    if (rotation < 0) {\n      rotation += 360;\n    }\n\n    switch (rotation) {\n      case 180:\n        rotateA = -1;\n        rotateB = 0;\n        rotateC = 0;\n        rotateD = 1;\n        break;\n\n      case 90:\n        rotateA = 0;\n        rotateB = 1;\n        rotateC = 1;\n        rotateD = 0;\n        break;\n\n      case 270:\n        rotateA = 0;\n        rotateB = -1;\n        rotateC = -1;\n        rotateD = 0;\n        break;\n\n      case 0:\n        rotateA = 1;\n        rotateB = 0;\n        rotateC = 0;\n        rotateD = -1;\n        break;\n\n      default:\n        throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n    }\n\n    if (dontFlip) {\n      rotateC = -rotateC;\n      rotateD = -rotateD;\n    }\n\n    let offsetCanvasX, offsetCanvasY;\n    let width, height;\n\n    if (rotateA === 0) {\n      offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n      offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n      width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n      height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n    } else {\n      offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n      offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n      width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n      height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n    }\n\n    this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n    this.width = width;\n    this.height = height;\n  }\n\n  clone() {\n    let {\n      scale = this.scale,\n      rotation = this.rotation,\n      offsetX = this.offsetX,\n      offsetY = this.offsetY,\n      dontFlip = false\n    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    return new PageViewport({\n      viewBox: this.viewBox.slice(),\n      scale,\n      rotation,\n      offsetX,\n      offsetY,\n      dontFlip\n    });\n  }\n\n  convertToViewportPoint(x, y) {\n    return _util.Util.applyTransform([x, y], this.transform);\n  }\n\n  convertToViewportRectangle(rect) {\n    const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n\n    const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n\n    return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n  }\n\n  convertToPdfPoint(x, y) {\n    return _util.Util.applyInverseTransform([x, y], this.transform);\n  }\n\n}\n\nexports.PageViewport = PageViewport;\n\nclass RenderingCancelledException extends _util.BaseException {\n  constructor(msg, type) {\n    super(msg, \"RenderingCancelledException\");\n    this.type = type;\n  }\n\n}\n\nexports.RenderingCancelledException = RenderingCancelledException;\n\nfunction isDataScheme(url) {\n  const ii = url.length;\n  let i = 0;\n\n  while (i < ii && url[i].trim() === \"\") {\n    i++;\n  }\n\n  return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\n\nfunction isPdfFile(filename) {\n  return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\n\nfunction getFilenameFromUrl(url) {\n  const anchor = url.indexOf(\"#\");\n  const query = url.indexOf(\"?\");\n  const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);\n  return url.substring(url.lastIndexOf(\"/\", end) + 1, end);\n}\n\nfunction getPdfFilenameFromUrl(url) {\n  let defaultFilename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"document.pdf\";\n\n  if (typeof url !== \"string\") {\n    return defaultFilename;\n  }\n\n  if (isDataScheme(url)) {\n    (0, _util.warn)('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n    return defaultFilename;\n  }\n\n  const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n  const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n  const splitURI = reURI.exec(url);\n  let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n\n  if (suggestedFilename) {\n    suggestedFilename = suggestedFilename[0];\n\n    if (suggestedFilename.includes(\"%\")) {\n      try {\n        suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n      } catch (ex) {}\n    }\n  }\n\n  return suggestedFilename || defaultFilename;\n}\n\nclass StatTimer {\n  constructor() {\n    this.started = Object.create(null);\n    this.times = [];\n  }\n\n  time(name) {\n    if (name in this.started) {\n      (0, _util.warn)(`Timer is already running for ${name}`);\n    }\n\n    this.started[name] = Date.now();\n  }\n\n  timeEnd(name) {\n    if (!(name in this.started)) {\n      (0, _util.warn)(`Timer has not been started for ${name}`);\n    }\n\n    this.times.push({\n      name,\n      start: this.started[name],\n      end: Date.now()\n    });\n    delete this.started[name];\n  }\n\n  toString() {\n    const outBuf = [];\n    let longest = 0;\n\n    for (const time of this.times) {\n      const name = time.name;\n\n      if (name.length > longest) {\n        longest = name.length;\n      }\n    }\n\n    for (const time of this.times) {\n      const duration = time.end - time.start;\n      outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\\n`);\n    }\n\n    return outBuf.join(\"\");\n  }\n\n}\n\nexports.StatTimer = StatTimer;\n\nfunction isValidFetchUrl(url, baseUrl) {\n  try {\n    const {\n      protocol\n    } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n    return protocol === \"http:\" || protocol === \"https:\";\n  } catch (ex) {\n    return false;\n  }\n}\n\nfunction loadScript(src) {\n  let removeScriptElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  return new Promise((resolve, reject) => {\n    const script = document.createElement(\"script\");\n    script.src = src;\n\n    script.onload = function (evt) {\n      if (removeScriptElement) {\n        script.remove();\n      }\n\n      resolve(evt);\n    };\n\n    script.onerror = function () {\n      reject(new Error(`Cannot load script at: ${script.src}`));\n    };\n\n    (document.head || document.documentElement).append(script);\n  });\n}\n\nfunction deprecated(details) {\n  console.log(\"Deprecated API usage: \" + details);\n}\n\nlet pdfDateStringRegex;\n\nclass PDFDateString {\n  static toDateObject(input) {\n    if (!input || typeof input !== \"string\") {\n      return null;\n    }\n\n    if (!pdfDateStringRegex) {\n      pdfDateStringRegex = new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n    }\n\n    const matches = pdfDateStringRegex.exec(input);\n\n    if (!matches) {\n      return null;\n    }\n\n    const year = parseInt(matches[1], 10);\n    let month = parseInt(matches[2], 10);\n    month = month >= 1 && month <= 12 ? month - 1 : 0;\n    let day = parseInt(matches[3], 10);\n    day = day >= 1 && day <= 31 ? day : 1;\n    let hour = parseInt(matches[4], 10);\n    hour = hour >= 0 && hour <= 23 ? hour : 0;\n    let minute = parseInt(matches[5], 10);\n    minute = minute >= 0 && minute <= 59 ? minute : 0;\n    let second = parseInt(matches[6], 10);\n    second = second >= 0 && second <= 59 ? second : 0;\n    const universalTimeRelation = matches[7] || \"Z\";\n    let offsetHour = parseInt(matches[8], 10);\n    offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n    let offsetMinute = parseInt(matches[9], 10) || 0;\n    offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n    if (universalTimeRelation === \"-\") {\n      hour += offsetHour;\n      minute += offsetMinute;\n    } else if (universalTimeRelation === \"+\") {\n      hour -= offsetHour;\n      minute -= offsetMinute;\n    }\n\n    return new Date(Date.UTC(year, month, day, hour, minute, second));\n  }\n\n}\n\nexports.PDFDateString = PDFDateString;\n\nfunction getXfaPageViewport(xfaPage, _ref2) {\n  let {\n    scale = 1,\n    rotation = 0\n  } = _ref2;\n  const {\n    width,\n    height\n  } = xfaPage.attributes.style;\n  const viewBox = [0, 0, parseInt(width), parseInt(height)];\n  return new PageViewport({\n    viewBox,\n    scale,\n    rotation\n  });\n}\n\nfunction getRGB(color) {\n  if (color.startsWith(\"#\")) {\n    const colorRGB = parseInt(color.slice(1), 16);\n    return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff];\n  }\n\n  if (color.startsWith(\"rgb(\")) {\n    return color.slice(4, -1).split(\",\").map(x => parseInt(x));\n  }\n\n  if (color.startsWith(\"rgba(\")) {\n    return color.slice(5, -1).split(\",\").map(x => parseInt(x)).slice(0, 3);\n  }\n\n  (0, _util.warn)(`Not a valid color format: \"${color}\"`);\n  return [0, 0, 0];\n}\n\nfunction getColorValues(colors) {\n  const span = document.createElement(\"span\");\n  span.style.visibility = \"hidden\";\n  document.body.append(span);\n\n  for (const name of colors.keys()) {\n    span.style.color = name;\n    const computedColor = window.getComputedStyle(span).color;\n    colors.set(name, getRGB(computedColor));\n  }\n\n  span.remove();\n}\n\nfunction getCurrentTransform(ctx) {\n  const {\n    a,\n    b,\n    c,\n    d,\n    e,\n    f\n  } = ctx.getTransform();\n  return [a, b, c, d, e, f];\n}\n\nfunction getCurrentTransformInverse(ctx) {\n  const {\n    a,\n    b,\n    c,\n    d,\n    e,\n    f\n  } = ctx.getTransform().invertSelf();\n  return [a, b, c, d, e, f];\n}\n\n/***/ }),\n/* 134 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nclass BaseCanvasFactory {\n  constructor() {\n    if (this.constructor === BaseCanvasFactory) {\n      (0, _util.unreachable)(\"Cannot initialize BaseCanvasFactory.\");\n    }\n  }\n\n  create(width, height) {\n    if (width <= 0 || height <= 0) {\n      throw new Error(\"Invalid canvas size\");\n    }\n\n    const canvas = this._createCanvas(width, height);\n\n    return {\n      canvas,\n      context: canvas.getContext(\"2d\")\n    };\n  }\n\n  reset(canvasAndContext, width, height) {\n    if (!canvasAndContext.canvas) {\n      throw new Error(\"Canvas is not specified\");\n    }\n\n    if (width <= 0 || height <= 0) {\n      throw new Error(\"Invalid canvas size\");\n    }\n\n    canvasAndContext.canvas.width = width;\n    canvasAndContext.canvas.height = height;\n  }\n\n  destroy(canvasAndContext) {\n    if (!canvasAndContext.canvas) {\n      throw new Error(\"Canvas is not specified\");\n    }\n\n    canvasAndContext.canvas.width = 0;\n    canvasAndContext.canvas.height = 0;\n    canvasAndContext.canvas = null;\n    canvasAndContext.context = null;\n  }\n\n  _createCanvas(width, height) {\n    (0, _util.unreachable)(\"Abstract method `_createCanvas` called.\");\n  }\n\n}\n\nexports.BaseCanvasFactory = BaseCanvasFactory;\n\nclass BaseCMapReaderFactory {\n  constructor(_ref) {\n    let {\n      baseUrl = null,\n      isCompressed = false\n    } = _ref;\n\n    if (this.constructor === BaseCMapReaderFactory) {\n      (0, _util.unreachable)(\"Cannot initialize BaseCMapReaderFactory.\");\n    }\n\n    this.baseUrl = baseUrl;\n    this.isCompressed = isCompressed;\n  }\n\n  async fetch(_ref2) {\n    let {\n      name\n    } = _ref2;\n\n    if (!this.baseUrl) {\n      throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n    }\n\n    if (!name) {\n      throw new Error(\"CMap name must be specified.\");\n    }\n\n    const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n    const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n    return this._fetchData(url, compressionType).catch(reason => {\n      throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n    });\n  }\n\n  _fetchData(url, compressionType) {\n    (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n  }\n\n}\n\nexports.BaseCMapReaderFactory = BaseCMapReaderFactory;\n\nclass BaseStandardFontDataFactory {\n  constructor(_ref3) {\n    let {\n      baseUrl = null\n    } = _ref3;\n\n    if (this.constructor === BaseStandardFontDataFactory) {\n      (0, _util.unreachable)(\"Cannot initialize BaseStandardFontDataFactory.\");\n    }\n\n    this.baseUrl = baseUrl;\n  }\n\n  async fetch(_ref4) {\n    let {\n      filename\n    } = _ref4;\n\n    if (!this.baseUrl) {\n      throw new Error('The standard font \"baseUrl\" parameter must be specified, ensure that ' + 'the \"standardFontDataUrl\" API parameter is provided.');\n    }\n\n    if (!filename) {\n      throw new Error(\"Font filename must be specified.\");\n    }\n\n    const url = `${this.baseUrl}${filename}`;\n    return this._fetchData(url).catch(reason => {\n      throw new Error(`Unable to load font data at: ${url}`);\n    });\n  }\n\n  _fetchData(url) {\n    (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n  }\n\n}\n\nexports.BaseStandardFontDataFactory = BaseStandardFontDataFactory;\n\nclass BaseSVGFactory {\n  constructor() {\n    if (this.constructor === BaseSVGFactory) {\n      (0, _util.unreachable)(\"Cannot initialize BaseSVGFactory.\");\n    }\n  }\n\n  create(width, height) {\n    let skipDimensions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n    if (width <= 0 || height <= 0) {\n      throw new Error(\"Invalid SVG dimensions\");\n    }\n\n    const svg = this._createSVG(\"svg:svg\");\n\n    svg.setAttribute(\"version\", \"1.1\");\n\n    if (!skipDimensions) {\n      svg.setAttribute(\"width\", `${width}px`);\n      svg.setAttribute(\"height\", `${height}px`);\n    }\n\n    svg.setAttribute(\"preserveAspectRatio\", \"none\");\n    svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n    return svg;\n  }\n\n  createElement(type) {\n    if (typeof type !== \"string\") {\n      throw new Error(\"Invalid SVG element type\");\n    }\n\n    return this._createSVG(type);\n  }\n\n  _createSVG(type) {\n    (0, _util.unreachable)(\"Abstract method `_createSVG` called.\");\n  }\n\n}\n\nexports.BaseSVGFactory = BaseSVGFactory;\n\n/***/ }),\n/* 135 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.MurmurHash3_64 = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n  constructor(seed) {\n    this.h1 = seed ? seed & 0xffffffff : SEED;\n    this.h2 = seed ? seed & 0xffffffff : SEED;\n  }\n\n  update(input) {\n    let data, length;\n\n    if (typeof input === \"string\") {\n      data = new Uint8Array(input.length * 2);\n      length = 0;\n\n      for (let i = 0, ii = input.length; i < ii; i++) {\n        const code = input.charCodeAt(i);\n\n        if (code <= 0xff) {\n          data[length++] = code;\n        } else {\n          data[length++] = code >>> 8;\n          data[length++] = code & 0xff;\n        }\n      }\n    } else if ((0, _util.isArrayBuffer)(input)) {\n      data = input.slice();\n      length = data.byteLength;\n    } else {\n      throw new Error(\"Wrong data format in MurmurHash3_64_update. \" + \"Input must be a string or array.\");\n    }\n\n    const blockCounts = length >> 2;\n    const tailLength = length - blockCounts * 4;\n    const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n    let k1 = 0,\n        k2 = 0;\n    let h1 = this.h1,\n        h2 = this.h2;\n    const C1 = 0xcc9e2d51,\n          C2 = 0x1b873593;\n    const C1_LOW = C1 & MASK_LOW,\n          C2_LOW = C2 & MASK_LOW;\n\n    for (let i = 0; i < blockCounts; i++) {\n      if (i & 1) {\n        k1 = dataUint32[i];\n        k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n        k1 = k1 << 15 | k1 >>> 17;\n        k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n        h1 ^= k1;\n        h1 = h1 << 13 | h1 >>> 19;\n        h1 = h1 * 5 + 0xe6546b64;\n      } else {\n        k2 = dataUint32[i];\n        k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n        k2 = k2 << 15 | k2 >>> 17;\n        k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n        h2 ^= k2;\n        h2 = h2 << 13 | h2 >>> 19;\n        h2 = h2 * 5 + 0xe6546b64;\n      }\n    }\n\n    k1 = 0;\n\n    switch (tailLength) {\n      case 3:\n        k1 ^= data[blockCounts * 4 + 2] << 16;\n\n      case 2:\n        k1 ^= data[blockCounts * 4 + 1] << 8;\n\n      case 1:\n        k1 ^= data[blockCounts * 4];\n        k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n        k1 = k1 << 15 | k1 >>> 17;\n        k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n\n        if (blockCounts & 1) {\n          h1 ^= k1;\n        } else {\n          h2 ^= k1;\n        }\n\n    }\n\n    this.h1 = h1;\n    this.h2 = h2;\n  }\n\n  hexdigest() {\n    let h1 = this.h1,\n        h2 = this.h2;\n    h1 ^= h2 >>> 1;\n    h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n    h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n    h1 ^= h2 >>> 1;\n    h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n    h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n    h1 ^= h2 >>> 1;\n    const hex1 = (h1 >>> 0).toString(16),\n          hex2 = (h2 >>> 0).toString(16);\n    return hex1.padStart(8, \"0\") + hex2.padStart(8, \"0\");\n  }\n\n}\n\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 136 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.FontLoader = exports.FontFaceObject = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nclass BaseFontLoader {\n  constructor(_ref) {\n    let {\n      docId,\n      onUnsupportedFeature,\n      ownerDocument = globalThis.document,\n      styleElement = null\n    } = _ref;\n\n    if (this.constructor === BaseFontLoader) {\n      (0, _util.unreachable)(\"Cannot initialize BaseFontLoader.\");\n    }\n\n    this.docId = docId;\n    this._onUnsupportedFeature = onUnsupportedFeature;\n    this._document = ownerDocument;\n    this.nativeFontFaces = [];\n    this.styleElement = null;\n  }\n\n  addNativeFontFace(nativeFontFace) {\n    this.nativeFontFaces.push(nativeFontFace);\n\n    this._document.fonts.add(nativeFontFace);\n  }\n\n  insertRule(rule) {\n    let styleElement = this.styleElement;\n\n    if (!styleElement) {\n      styleElement = this.styleElement = this._document.createElement(\"style\");\n      styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n\n      this._document.documentElement.getElementsByTagName(\"head\")[0].append(styleElement);\n    }\n\n    const styleSheet = styleElement.sheet;\n    styleSheet.insertRule(rule, styleSheet.cssRules.length);\n  }\n\n  clear() {\n    for (const nativeFontFace of this.nativeFontFaces) {\n      this._document.fonts.delete(nativeFontFace);\n    }\n\n    this.nativeFontFaces.length = 0;\n\n    if (this.styleElement) {\n      this.styleElement.remove();\n      this.styleElement = null;\n    }\n  }\n\n  async bind(font) {\n    if (font.attached || font.missingFile) {\n      return;\n    }\n\n    font.attached = true;\n\n    if (this.isFontLoadingAPISupported) {\n      const nativeFontFace = font.createNativeFontFace();\n\n      if (nativeFontFace) {\n        this.addNativeFontFace(nativeFontFace);\n\n        try {\n          await nativeFontFace.loaded;\n        } catch (ex) {\n          this._onUnsupportedFeature({\n            featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative\n          });\n\n          (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n          font.disableFontFace = true;\n          throw ex;\n        }\n      }\n\n      return;\n    }\n\n    const rule = font.createFontFaceRule();\n\n    if (rule) {\n      this.insertRule(rule);\n\n      if (this.isSyncFontLoadingSupported) {\n        return;\n      }\n\n      await new Promise(resolve => {\n        const request = this._queueLoadingCallback(resolve);\n\n        this._prepareFontLoadEvent([rule], [font], request);\n      });\n    }\n  }\n\n  _queueLoadingCallback(callback) {\n    (0, _util.unreachable)(\"Abstract method `_queueLoadingCallback`.\");\n  }\n\n  get isFontLoadingAPISupported() {\n    var _this$_document;\n\n    const hasFonts = !!((_this$_document = this._document) !== null && _this$_document !== void 0 && _this$_document.fonts);\n    return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", hasFonts);\n  }\n\n  get isSyncFontLoadingSupported() {\n    (0, _util.unreachable)(\"Abstract method `isSyncFontLoadingSupported`.\");\n  }\n\n  get _loadTestFont() {\n    (0, _util.unreachable)(\"Abstract method `_loadTestFont`.\");\n  }\n\n  _prepareFontLoadEvent(rules, fontsToLoad, request) {\n    (0, _util.unreachable)(\"Abstract method `_prepareFontLoadEvent`.\");\n  }\n\n}\n\nlet FontLoader;\nexports.FontLoader = FontLoader;\n{\n  exports.FontLoader = FontLoader = class GenericFontLoader extends BaseFontLoader {\n    constructor(params) {\n      super(params);\n      this.loadingContext = {\n        requests: [],\n        nextRequestId: 0\n      };\n      this.loadTestFontId = 0;\n    }\n\n    get isSyncFontLoadingSupported() {\n      let supported = false;\n\n      if (typeof navigator === \"undefined\") {\n        supported = true;\n      } else {\n        const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n\n        if ((m === null || m === void 0 ? void 0 : m[1]) >= 14) {\n          supported = true;\n        }\n      }\n\n      return (0, _util.shadow)(this, \"isSyncFontLoadingSupported\", supported);\n    }\n\n    _queueLoadingCallback(callback) {\n      function completeRequest() {\n        (0, _util.assert)(!request.done, \"completeRequest() cannot be called twice.\");\n        request.done = true;\n\n        while (context.requests.length > 0 && context.requests[0].done) {\n          const otherRequest = context.requests.shift();\n          setTimeout(otherRequest.callback, 0);\n        }\n      }\n\n      const context = this.loadingContext;\n      const request = {\n        id: `pdfjs-font-loading-${context.nextRequestId++}`,\n        done: false,\n        complete: completeRequest,\n        callback\n      };\n      context.requests.push(request);\n      return request;\n    }\n\n    get _loadTestFont() {\n      const getLoadTestFont = function () {\n        return atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n      };\n\n      return (0, _util.shadow)(this, \"_loadTestFont\", getLoadTestFont());\n    }\n\n    _prepareFontLoadEvent(rules, fonts, request) {\n      function int32(data, offset) {\n        return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n      }\n\n      function spliceString(s, offset, remove, insert) {\n        const chunk1 = s.substring(0, offset);\n        const chunk2 = s.substring(offset + remove);\n        return chunk1 + insert + chunk2;\n      }\n\n      let i, ii;\n\n      const canvas = this._document.createElement(\"canvas\");\n\n      canvas.width = 1;\n      canvas.height = 1;\n      const ctx = canvas.getContext(\"2d\");\n      let called = 0;\n\n      function isFontReady(name, callback) {\n        called++;\n\n        if (called > 30) {\n          (0, _util.warn)(\"Load test font never loaded.\");\n          callback();\n          return;\n        }\n\n        ctx.font = \"30px \" + name;\n        ctx.fillText(\".\", 0, 20);\n        const imageData = ctx.getImageData(0, 0, 1, 1);\n\n        if (imageData.data[3] > 0) {\n          callback();\n          return;\n        }\n\n        setTimeout(isFontReady.bind(null, name, callback));\n      }\n\n      const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n      let data = this._loadTestFont;\n      const COMMENT_OFFSET = 976;\n      data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n      const CFF_CHECKSUM_OFFSET = 16;\n      const XXXX_VALUE = 0x58585858;\n      let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n\n      for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n        checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n      }\n\n      if (i < loadTestFontId.length) {\n        checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n      }\n\n      data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n      const url = `url(data:font/opentype;base64,${btoa(data)});`;\n      const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n      this.insertRule(rule);\n      const names = [];\n\n      for (const font of fonts) {\n        names.push(font.loadedName);\n      }\n\n      names.push(loadTestFontId);\n\n      const div = this._document.createElement(\"div\");\n\n      div.style.visibility = \"hidden\";\n      div.style.width = div.style.height = \"10px\";\n      div.style.position = \"absolute\";\n      div.style.top = div.style.left = \"0px\";\n\n      for (const name of names) {\n        const span = this._document.createElement(\"span\");\n\n        span.textContent = \"Hi\";\n        span.style.fontFamily = name;\n        div.append(span);\n      }\n\n      this._document.body.append(div);\n\n      isFontReady(loadTestFontId, () => {\n        div.remove();\n        request.complete();\n      });\n    }\n\n  };\n}\n\nclass FontFaceObject {\n  constructor(translatedData, _ref2) {\n    let {\n      isEvalSupported = true,\n      disableFontFace = false,\n      ignoreErrors = false,\n      onUnsupportedFeature,\n      fontRegistry = null\n    } = _ref2;\n    this.compiledGlyphs = Object.create(null);\n\n    for (const i in translatedData) {\n      this[i] = translatedData[i];\n    }\n\n    this.isEvalSupported = isEvalSupported !== false;\n    this.disableFontFace = disableFontFace === true;\n    this.ignoreErrors = ignoreErrors === true;\n    this._onUnsupportedFeature = onUnsupportedFeature;\n    this.fontRegistry = fontRegistry;\n  }\n\n  createNativeFontFace() {\n    if (!this.data || this.disableFontFace) {\n      return null;\n    }\n\n    let nativeFontFace;\n\n    if (!this.cssFontInfo) {\n      nativeFontFace = new FontFace(this.loadedName, this.data, {});\n    } else {\n      const css = {\n        weight: this.cssFontInfo.fontWeight\n      };\n\n      if (this.cssFontInfo.italicAngle) {\n        css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n      }\n\n      nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);\n    }\n\n    if (this.fontRegistry) {\n      this.fontRegistry.registerFont(this);\n    }\n\n    return nativeFontFace;\n  }\n\n  createFontFaceRule() {\n    if (!this.data || this.disableFontFace) {\n      return null;\n    }\n\n    const data = (0, _util.bytesToString)(this.data);\n    const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n    let rule;\n\n    if (!this.cssFontInfo) {\n      rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n    } else {\n      let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n\n      if (this.cssFontInfo.italicAngle) {\n        css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n      }\n\n      rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n    }\n\n    if (this.fontRegistry) {\n      this.fontRegistry.registerFont(this, url);\n    }\n\n    return rule;\n  }\n\n  getPathGenerator(objs, character) {\n    if (this.compiledGlyphs[character] !== undefined) {\n      return this.compiledGlyphs[character];\n    }\n\n    let cmds;\n\n    try {\n      cmds = objs.get(this.loadedName + \"_path_\" + character);\n    } catch (ex) {\n      if (!this.ignoreErrors) {\n        throw ex;\n      }\n\n      this._onUnsupportedFeature({\n        featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath\n      });\n\n      (0, _util.warn)(`getPathGenerator - ignoring character: \"${ex}\".`);\n      return this.compiledGlyphs[character] = function (c, size) {};\n    }\n\n    if (this.isEvalSupported && _util.FeatureTest.isEvalSupported) {\n      const jsBuf = [];\n\n      for (const current of cmds) {\n        const args = current.args !== undefined ? current.args.join(\",\") : \"\";\n        jsBuf.push(\"c.\", current.cmd, \"(\", args, \");\\n\");\n      }\n\n      return this.compiledGlyphs[character] = new Function(\"c\", \"size\", jsBuf.join(\"\"));\n    }\n\n    return this.compiledGlyphs[character] = function (c, size) {\n      for (const current of cmds) {\n        if (current.cmd === \"scale\") {\n          current.args = [size, -size];\n        }\n\n        c[current.cmd].apply(c, current.args);\n      }\n    };\n  }\n\n}\n\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 137 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CanvasGraphics = void 0;\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _pattern_helper = __w_pdfjs_require__(138);\n\nvar _image_utils = __w_pdfjs_require__(139);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst MAX_GROUP_SIZE = 4096;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst MAX_SIZE_TO_COMPILE = _is_node.isNodeJS && typeof Path2D === \"undefined\" ? -1 : 1000;\nconst FULL_CHUNK_HEIGHT = 16;\n\nfunction mirrorContextOperations(ctx, destCtx) {\n  if (ctx._removeMirroring) {\n    throw new Error(\"Context is already forwarding operations.\");\n  }\n\n  ctx.__originalSave = ctx.save;\n  ctx.__originalRestore = ctx.restore;\n  ctx.__originalRotate = ctx.rotate;\n  ctx.__originalScale = ctx.scale;\n  ctx.__originalTranslate = ctx.translate;\n  ctx.__originalTransform = ctx.transform;\n  ctx.__originalSetTransform = ctx.setTransform;\n  ctx.__originalResetTransform = ctx.resetTransform;\n  ctx.__originalClip = ctx.clip;\n  ctx.__originalMoveTo = ctx.moveTo;\n  ctx.__originalLineTo = ctx.lineTo;\n  ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n  ctx.__originalRect = ctx.rect;\n  ctx.__originalClosePath = ctx.closePath;\n  ctx.__originalBeginPath = ctx.beginPath;\n\n  ctx._removeMirroring = () => {\n    ctx.save = ctx.__originalSave;\n    ctx.restore = ctx.__originalRestore;\n    ctx.rotate = ctx.__originalRotate;\n    ctx.scale = ctx.__originalScale;\n    ctx.translate = ctx.__originalTranslate;\n    ctx.transform = ctx.__originalTransform;\n    ctx.setTransform = ctx.__originalSetTransform;\n    ctx.resetTransform = ctx.__originalResetTransform;\n    ctx.clip = ctx.__originalClip;\n    ctx.moveTo = ctx.__originalMoveTo;\n    ctx.lineTo = ctx.__originalLineTo;\n    ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n    ctx.rect = ctx.__originalRect;\n    ctx.closePath = ctx.__originalClosePath;\n    ctx.beginPath = ctx.__originalBeginPath;\n    delete ctx._removeMirroring;\n  };\n\n  ctx.save = function ctxSave() {\n    destCtx.save();\n\n    this.__originalSave();\n  };\n\n  ctx.restore = function ctxRestore() {\n    destCtx.restore();\n\n    this.__originalRestore();\n  };\n\n  ctx.translate = function ctxTranslate(x, y) {\n    destCtx.translate(x, y);\n\n    this.__originalTranslate(x, y);\n  };\n\n  ctx.scale = function ctxScale(x, y) {\n    destCtx.scale(x, y);\n\n    this.__originalScale(x, y);\n  };\n\n  ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n    destCtx.transform(a, b, c, d, e, f);\n\n    this.__originalTransform(a, b, c, d, e, f);\n  };\n\n  ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n    destCtx.setTransform(a, b, c, d, e, f);\n\n    this.__originalSetTransform(a, b, c, d, e, f);\n  };\n\n  ctx.resetTransform = function ctxResetTransform() {\n    destCtx.resetTransform();\n\n    this.__originalResetTransform();\n  };\n\n  ctx.rotate = function ctxRotate(angle) {\n    destCtx.rotate(angle);\n\n    this.__originalRotate(angle);\n  };\n\n  ctx.clip = function ctxRotate(rule) {\n    destCtx.clip(rule);\n\n    this.__originalClip(rule);\n  };\n\n  ctx.moveTo = function (x, y) {\n    destCtx.moveTo(x, y);\n\n    this.__originalMoveTo(x, y);\n  };\n\n  ctx.lineTo = function (x, y) {\n    destCtx.lineTo(x, y);\n\n    this.__originalLineTo(x, y);\n  };\n\n  ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n    destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n\n    this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n  };\n\n  ctx.rect = function (x, y, width, height) {\n    destCtx.rect(x, y, width, height);\n\n    this.__originalRect(x, y, width, height);\n  };\n\n  ctx.closePath = function () {\n    destCtx.closePath();\n\n    this.__originalClosePath();\n  };\n\n  ctx.beginPath = function () {\n    destCtx.beginPath();\n\n    this.__originalBeginPath();\n  };\n}\n\nclass CachedCanvases {\n  constructor(canvasFactory) {\n    this.canvasFactory = canvasFactory;\n    this.cache = Object.create(null);\n  }\n\n  getCanvas(id, width, height) {\n    let canvasEntry;\n\n    if (this.cache[id] !== undefined) {\n      canvasEntry = this.cache[id];\n      this.canvasFactory.reset(canvasEntry, width, height);\n    } else {\n      canvasEntry = this.canvasFactory.create(width, height);\n      this.cache[id] = canvasEntry;\n    }\n\n    return canvasEntry;\n  }\n\n  delete(id) {\n    delete this.cache[id];\n  }\n\n  clear() {\n    for (const id in this.cache) {\n      const canvasEntry = this.cache[id];\n      this.canvasFactory.destroy(canvasEntry);\n      delete this.cache[id];\n    }\n  }\n\n}\n\nfunction drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) {\n  const [a, b, c, d, tx, ty] = (0, _display_utils.getCurrentTransform)(ctx);\n\n  if (b === 0 && c === 0) {\n    const tlX = destX * a + tx;\n    const rTlX = Math.round(tlX);\n    const tlY = destY * d + ty;\n    const rTlY = Math.round(tlY);\n    const brX = (destX + destW) * a + tx;\n    const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n    const brY = (destY + destH) * d + ty;\n    const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n    ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n    ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n    ctx.setTransform(a, b, c, d, tx, ty);\n    return [rWidth, rHeight];\n  }\n\n  if (a === 0 && d === 0) {\n    const tlX = destY * c + tx;\n    const rTlX = Math.round(tlX);\n    const tlY = destX * b + ty;\n    const rTlY = Math.round(tlY);\n    const brX = (destY + destH) * c + tx;\n    const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n    const brY = (destX + destW) * b + ty;\n    const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n    ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n    ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n    ctx.setTransform(a, b, c, d, tx, ty);\n    return [rHeight, rWidth];\n  }\n\n  ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n  const scaleX = Math.hypot(a, b);\n  const scaleY = Math.hypot(c, d);\n  return [scaleX * destW, scaleY * destH];\n}\n\nfunction compileType3Glyph(imgData) {\n  const {\n    width,\n    height\n  } = imgData;\n\n  if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n    return null;\n  }\n\n  const POINT_TO_PROCESS_LIMIT = 1000;\n  const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n  const width1 = width + 1;\n  let points = new Uint8Array(width1 * (height + 1));\n  let i, j, j0;\n  const lineSize = width + 7 & ~7;\n  let data = new Uint8Array(lineSize * height),\n      pos = 0;\n\n  for (const elem of imgData.data) {\n    let mask = 128;\n\n    while (mask > 0) {\n      data[pos++] = elem & mask ? 0 : 255;\n      mask >>= 1;\n    }\n  }\n\n  let count = 0;\n  pos = 0;\n\n  if (data[pos] !== 0) {\n    points[0] = 1;\n    ++count;\n  }\n\n  for (j = 1; j < width; j++) {\n    if (data[pos] !== data[pos + 1]) {\n      points[j] = data[pos] ? 2 : 1;\n      ++count;\n    }\n\n    pos++;\n  }\n\n  if (data[pos] !== 0) {\n    points[j] = 2;\n    ++count;\n  }\n\n  for (i = 1; i < height; i++) {\n    pos = i * lineSize;\n    j0 = i * width1;\n\n    if (data[pos - lineSize] !== data[pos]) {\n      points[j0] = data[pos] ? 1 : 8;\n      ++count;\n    }\n\n    let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n\n    for (j = 1; j < width; j++) {\n      sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n\n      if (POINT_TYPES[sum]) {\n        points[j0 + j] = POINT_TYPES[sum];\n        ++count;\n      }\n\n      pos++;\n    }\n\n    if (data[pos - lineSize] !== data[pos]) {\n      points[j0 + j] = data[pos] ? 2 : 4;\n      ++count;\n    }\n\n    if (count > POINT_TO_PROCESS_LIMIT) {\n      return null;\n    }\n  }\n\n  pos = lineSize * (height - 1);\n  j0 = i * width1;\n\n  if (data[pos] !== 0) {\n    points[j0] = 8;\n    ++count;\n  }\n\n  for (j = 1; j < width; j++) {\n    if (data[pos] !== data[pos + 1]) {\n      points[j0 + j] = data[pos] ? 4 : 8;\n      ++count;\n    }\n\n    pos++;\n  }\n\n  if (data[pos] !== 0) {\n    points[j0 + j] = 4;\n    ++count;\n  }\n\n  if (count > POINT_TO_PROCESS_LIMIT) {\n    return null;\n  }\n\n  const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n  const path = new Path2D();\n\n  for (i = 0; count && i <= height; i++) {\n    let p = i * width1;\n    const end = p + width;\n\n    while (p < end && !points[p]) {\n      p++;\n    }\n\n    if (p === end) {\n      continue;\n    }\n\n    path.moveTo(p % width1, i);\n    const p0 = p;\n    let type = points[p];\n\n    do {\n      const step = steps[type];\n\n      do {\n        p += step;\n      } while (!points[p]);\n\n      const pp = points[p];\n\n      if (pp !== 5 && pp !== 10) {\n        type = pp;\n        points[p] = 0;\n      } else {\n        type = pp & 0x33 * type >> 4;\n        points[p] &= type >> 2 | type << 2;\n      }\n\n      path.lineTo(p % width1, p / width1 | 0);\n\n      if (!points[p]) {\n        --count;\n      }\n    } while (p0 !== p);\n\n    --i;\n  }\n\n  data = null;\n  points = null;\n\n  const drawOutline = function (c) {\n    c.save();\n    c.scale(1 / width, -1 / height);\n    c.translate(0, -height);\n    c.fill(path);\n    c.beginPath();\n    c.restore();\n  };\n\n  return drawOutline;\n}\n\nclass CanvasExtraState {\n  constructor(width, height) {\n    this.alphaIsShape = false;\n    this.fontSize = 0;\n    this.fontSizeScale = 1;\n    this.textMatrix = _util.IDENTITY_MATRIX;\n    this.textMatrixScale = 1;\n    this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n    this.leading = 0;\n    this.x = 0;\n    this.y = 0;\n    this.lineX = 0;\n    this.lineY = 0;\n    this.charSpacing = 0;\n    this.wordSpacing = 0;\n    this.textHScale = 1;\n    this.textRenderingMode = _util.TextRenderingMode.FILL;\n    this.textRise = 0;\n    this.fillColor = \"#000000\";\n    this.strokeColor = \"#000000\";\n    this.patternFill = false;\n    this.fillAlpha = 1;\n    this.strokeAlpha = 1;\n    this.lineWidth = 1;\n    this.activeSMask = null;\n    this.transferMaps = null;\n    this.startNewPathAndClipBox([0, 0, width, height]);\n  }\n\n  clone() {\n    const clone = Object.create(this);\n    clone.clipBox = this.clipBox.slice();\n    return clone;\n  }\n\n  setCurrentPoint(x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  updatePathMinMax(transform, x, y) {\n    [x, y] = _util.Util.applyTransform([x, y], transform);\n    this.minX = Math.min(this.minX, x);\n    this.minY = Math.min(this.minY, y);\n    this.maxX = Math.max(this.maxX, x);\n    this.maxY = Math.max(this.maxY, y);\n  }\n\n  updateRectMinMax(transform, rect) {\n    const p1 = _util.Util.applyTransform(rect, transform);\n\n    const p2 = _util.Util.applyTransform(rect.slice(2), transform);\n\n    this.minX = Math.min(this.minX, p1[0], p2[0]);\n    this.minY = Math.min(this.minY, p1[1], p2[1]);\n    this.maxX = Math.max(this.maxX, p1[0], p2[0]);\n    this.maxY = Math.max(this.maxY, p1[1], p2[1]);\n  }\n\n  updateScalingPathMinMax(transform, minMax) {\n    _util.Util.scaleMinMax(transform, minMax);\n\n    this.minX = Math.min(this.minX, minMax[0]);\n    this.maxX = Math.max(this.maxX, minMax[1]);\n    this.minY = Math.min(this.minY, minMax[2]);\n    this.maxY = Math.max(this.maxY, minMax[3]);\n  }\n\n  updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n    const box = _util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n\n    if (minMax) {\n      minMax[0] = Math.min(minMax[0], box[0], box[2]);\n      minMax[1] = Math.max(minMax[1], box[0], box[2]);\n      minMax[2] = Math.min(minMax[2], box[1], box[3]);\n      minMax[3] = Math.max(minMax[3], box[1], box[3]);\n      return;\n    }\n\n    this.updateRectMinMax(transform, box);\n  }\n\n  getPathBoundingBox() {\n    let pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pattern_helper.PathType.FILL;\n    let transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    const box = [this.minX, this.minY, this.maxX, this.maxY];\n\n    if (pathType === _pattern_helper.PathType.STROKE) {\n      if (!transform) {\n        (0, _util.unreachable)(\"Stroke bounding box must include transform.\");\n      }\n\n      const scale = _util.Util.singularValueDecompose2dScale(transform);\n\n      const xStrokePad = scale[0] * this.lineWidth / 2;\n      const yStrokePad = scale[1] * this.lineWidth / 2;\n      box[0] -= xStrokePad;\n      box[1] -= yStrokePad;\n      box[2] += xStrokePad;\n      box[3] += yStrokePad;\n    }\n\n    return box;\n  }\n\n  updateClipFromPath() {\n    const intersect = _util.Util.intersect(this.clipBox, this.getPathBoundingBox());\n\n    this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n  }\n\n  isEmptyClip() {\n    return this.minX === Infinity;\n  }\n\n  startNewPathAndClipBox(box) {\n    this.clipBox = box;\n    this.minX = Infinity;\n    this.minY = Infinity;\n    this.maxX = 0;\n    this.maxY = 0;\n  }\n\n  getClippedPathBoundingBox() {\n    let pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pattern_helper.PathType.FILL;\n    let transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    return _util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n  }\n\n}\n\nfunction putBinaryImageData(ctx, imgData) {\n  let transferMaps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n  if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n    ctx.putImageData(imgData, 0, 0);\n    return;\n  }\n\n  const height = imgData.height,\n        width = imgData.width;\n  const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n  const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n  const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n  const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n  let srcPos = 0,\n      destPos;\n  const src = imgData.data;\n  const dest = chunkImgData.data;\n  let i, j, thisChunkHeight, elemsInThisChunk;\n  let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray;\n\n  if (transferMaps) {\n    switch (transferMaps.length) {\n      case 1:\n        transferMapRed = transferMaps[0];\n        transferMapGreen = transferMaps[0];\n        transferMapBlue = transferMaps[0];\n        transferMapGray = transferMaps[0];\n        break;\n\n      case 4:\n        transferMapRed = transferMaps[0];\n        transferMapGreen = transferMaps[1];\n        transferMapBlue = transferMaps[2];\n        transferMapGray = transferMaps[3];\n        break;\n    }\n  }\n\n  if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n    const srcLength = src.byteLength;\n    const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n    const dest32DataLength = dest32.length;\n    const fullSrcDiff = width + 7 >> 3;\n    let white = 0xffffffff;\n    let black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n\n    if (transferMapGray) {\n      if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) {\n        [white, black] = [black, white];\n      }\n    }\n\n    for (i = 0; i < totalChunks; i++) {\n      thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n      destPos = 0;\n\n      for (j = 0; j < thisChunkHeight; j++) {\n        const srcDiff = srcLength - srcPos;\n        let k = 0;\n        const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n        const kEndUnrolled = kEnd & ~7;\n        let mask = 0;\n        let srcByte = 0;\n\n        for (; k < kEndUnrolled; k += 8) {\n          srcByte = src[srcPos++];\n          dest32[destPos++] = srcByte & 128 ? white : black;\n          dest32[destPos++] = srcByte & 64 ? white : black;\n          dest32[destPos++] = srcByte & 32 ? white : black;\n          dest32[destPos++] = srcByte & 16 ? white : black;\n          dest32[destPos++] = srcByte & 8 ? white : black;\n          dest32[destPos++] = srcByte & 4 ? white : black;\n          dest32[destPos++] = srcByte & 2 ? white : black;\n          dest32[destPos++] = srcByte & 1 ? white : black;\n        }\n\n        for (; k < kEnd; k++) {\n          if (mask === 0) {\n            srcByte = src[srcPos++];\n            mask = 128;\n          }\n\n          dest32[destPos++] = srcByte & mask ? white : black;\n          mask >>= 1;\n        }\n      }\n\n      while (destPos < dest32DataLength) {\n        dest32[destPos++] = 0;\n      }\n\n      ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n    }\n  } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n    const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n    j = 0;\n    elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n\n    for (i = 0; i < fullChunks; i++) {\n      dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n      srcPos += elemsInThisChunk;\n\n      if (hasTransferMaps) {\n        for (let k = 0; k < elemsInThisChunk; k += 4) {\n          if (transferMapRed) {\n            dest[k + 0] = transferMapRed[dest[k + 0]];\n          }\n\n          if (transferMapGreen) {\n            dest[k + 1] = transferMapGreen[dest[k + 1]];\n          }\n\n          if (transferMapBlue) {\n            dest[k + 2] = transferMapBlue[dest[k + 2]];\n          }\n        }\n      }\n\n      ctx.putImageData(chunkImgData, 0, j);\n      j += FULL_CHUNK_HEIGHT;\n    }\n\n    if (i < totalChunks) {\n      elemsInThisChunk = width * partialChunkHeight * 4;\n      dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n\n      if (hasTransferMaps) {\n        for (let k = 0; k < elemsInThisChunk; k += 4) {\n          if (transferMapRed) {\n            dest[k + 0] = transferMapRed[dest[k + 0]];\n          }\n\n          if (transferMapGreen) {\n            dest[k + 1] = transferMapGreen[dest[k + 1]];\n          }\n\n          if (transferMapBlue) {\n            dest[k + 2] = transferMapBlue[dest[k + 2]];\n          }\n        }\n      }\n\n      ctx.putImageData(chunkImgData, 0, j);\n    }\n  } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n    const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n    thisChunkHeight = FULL_CHUNK_HEIGHT;\n    elemsInThisChunk = width * thisChunkHeight;\n\n    for (i = 0; i < totalChunks; i++) {\n      if (i >= fullChunks) {\n        thisChunkHeight = partialChunkHeight;\n        elemsInThisChunk = width * thisChunkHeight;\n      }\n\n      destPos = 0;\n\n      for (j = elemsInThisChunk; j--;) {\n        dest[destPos++] = src[srcPos++];\n        dest[destPos++] = src[srcPos++];\n        dest[destPos++] = src[srcPos++];\n        dest[destPos++] = 255;\n      }\n\n      if (hasTransferMaps) {\n        for (let k = 0; k < destPos; k += 4) {\n          if (transferMapRed) {\n            dest[k + 0] = transferMapRed[dest[k + 0]];\n          }\n\n          if (transferMapGreen) {\n            dest[k + 1] = transferMapGreen[dest[k + 1]];\n          }\n\n          if (transferMapBlue) {\n            dest[k + 2] = transferMapBlue[dest[k + 2]];\n          }\n        }\n      }\n\n      ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n    }\n  } else {\n    throw new Error(`bad image kind: ${imgData.kind}`);\n  }\n}\n\nfunction putBinaryImageMask(ctx, imgData) {\n  if (imgData.bitmap) {\n    ctx.drawImage(imgData.bitmap, 0, 0);\n    return;\n  }\n\n  const height = imgData.height,\n        width = imgData.width;\n  const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n  const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n  const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n  const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n  let srcPos = 0;\n  const src = imgData.data;\n  const dest = chunkImgData.data;\n\n  for (let i = 0; i < totalChunks; i++) {\n    const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n    ({\n      srcPos\n    } = (0, _image_utils.applyMaskImageData)({\n      src,\n      srcPos,\n      dest,\n      width,\n      height: thisChunkHeight\n    }));\n    ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n  }\n}\n\nfunction copyCtxState(sourceCtx, destCtx) {\n  const properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\"];\n\n  for (let i = 0, ii = properties.length; i < ii; i++) {\n    const property = properties[i];\n\n    if (sourceCtx[property] !== undefined) {\n      destCtx[property] = sourceCtx[property];\n    }\n  }\n\n  if (sourceCtx.setLineDash !== undefined) {\n    destCtx.setLineDash(sourceCtx.getLineDash());\n    destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n  }\n}\n\nfunction resetCtxToDefault(ctx, foregroundColor) {\n  ctx.strokeStyle = ctx.fillStyle = foregroundColor || \"#000000\";\n  ctx.fillRule = \"nonzero\";\n  ctx.globalAlpha = 1;\n  ctx.lineWidth = 1;\n  ctx.lineCap = \"butt\";\n  ctx.lineJoin = \"miter\";\n  ctx.miterLimit = 10;\n  ctx.globalCompositeOperation = \"source-over\";\n  ctx.font = \"10px sans-serif\";\n\n  if (ctx.setLineDash !== undefined) {\n    ctx.setLineDash([]);\n    ctx.lineDashOffset = 0;\n  }\n}\n\nfunction composeSMaskBackdrop(bytes, r0, g0, b0) {\n  const length = bytes.length;\n\n  for (let i = 3; i < length; i += 4) {\n    const alpha = bytes[i];\n\n    if (alpha === 0) {\n      bytes[i - 3] = r0;\n      bytes[i - 2] = g0;\n      bytes[i - 1] = b0;\n    } else if (alpha < 255) {\n      const alpha_ = 255 - alpha;\n      bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n      bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n      bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n    }\n  }\n}\n\nfunction composeSMaskAlpha(maskData, layerData, transferMap) {\n  const length = maskData.length;\n  const scale = 1 / 255;\n\n  for (let i = 3; i < length; i += 4) {\n    const alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n    layerData[i] = layerData[i] * alpha * scale | 0;\n  }\n}\n\nfunction composeSMaskLuminosity(maskData, layerData, transferMap) {\n  const length = maskData.length;\n\n  for (let i = 3; i < length; i += 4) {\n    const y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n    layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n  }\n}\n\nfunction genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\n  const hasBackdrop = !!backdrop;\n  const r0 = hasBackdrop ? backdrop[0] : 0;\n  const g0 = hasBackdrop ? backdrop[1] : 0;\n  const b0 = hasBackdrop ? backdrop[2] : 0;\n  let composeFn;\n\n  if (subtype === \"Luminosity\") {\n    composeFn = composeSMaskLuminosity;\n  } else {\n    composeFn = composeSMaskAlpha;\n  }\n\n  const PIXELS_TO_PROCESS = 1048576;\n  const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n\n  for (let row = 0; row < height; row += chunkSize) {\n    const chunkHeight = Math.min(chunkSize, height - row);\n    const maskData = maskCtx.getImageData(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight);\n    const layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight);\n\n    if (hasBackdrop) {\n      composeSMaskBackdrop(maskData.data, r0, g0, b0);\n    }\n\n    composeFn(maskData.data, layerData.data, transferMap);\n    layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);\n  }\n}\n\nfunction composeSMask(ctx, smask, layerCtx, layerBox) {\n  const layerOffsetX = layerBox[0];\n  const layerOffsetY = layerBox[1];\n  const layerWidth = layerBox[2] - layerOffsetX;\n  const layerHeight = layerBox[3] - layerOffsetY;\n\n  if (layerWidth === 0 || layerHeight === 0) {\n    return;\n  }\n\n  genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);\n  ctx.save();\n  ctx.globalAlpha = 1;\n  ctx.globalCompositeOperation = \"source-over\";\n  ctx.setTransform(1, 0, 0, 1, 0, 0);\n  ctx.drawImage(layerCtx.canvas, 0, 0);\n  ctx.restore();\n}\n\nfunction getImageSmoothingEnabled(transform, interpolate) {\n  const scale = _util.Util.singularValueDecompose2dScale(transform);\n\n  scale[0] = Math.fround(scale[0]);\n  scale[1] = Math.fround(scale[1]);\n  const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n\n  if (interpolate !== undefined) {\n    return interpolate;\n  } else if (scale[0] <= actualScale || scale[1] <= actualScale) {\n    return true;\n  }\n\n  return false;\n}\n\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\n\nvar _restoreInitialState = /*#__PURE__*/new WeakSet();\n\nclass CanvasGraphics {\n  constructor(canvasCtx, commonObjs, objs, canvasFactory, imageLayer, optionalContentConfig, annotationCanvasMap, pageColors) {\n    _classPrivateMethodInitSpec(this, _restoreInitialState);\n\n    this.ctx = canvasCtx;\n    this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n    this.stateStack = [];\n    this.pendingClip = null;\n    this.pendingEOFill = false;\n    this.res = null;\n    this.xobjs = null;\n    this.commonObjs = commonObjs;\n    this.objs = objs;\n    this.canvasFactory = canvasFactory;\n    this.imageLayer = imageLayer;\n    this.groupStack = [];\n    this.processingType3 = null;\n    this.baseTransform = null;\n    this.baseTransformStack = [];\n    this.groupLevel = 0;\n    this.smaskStack = [];\n    this.smaskCounter = 0;\n    this.tempSMask = null;\n    this.suspendedCtx = null;\n    this.contentVisible = true;\n    this.markedContentStack = [];\n    this.optionalContentConfig = optionalContentConfig;\n    this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n    this.cachedPatterns = new Map();\n    this.annotationCanvasMap = annotationCanvasMap;\n    this.viewportScale = 1;\n    this.outputScaleX = 1;\n    this.outputScaleY = 1;\n    this.backgroundColor = (pageColors === null || pageColors === void 0 ? void 0 : pageColors.background) || null;\n    this.foregroundColor = (pageColors === null || pageColors === void 0 ? void 0 : pageColors.foreground) || null;\n    this._cachedScaleForStroking = null;\n    this._cachedGetSinglePixelWidth = null;\n    this._cachedBitmapsMap = new Map();\n  }\n\n  getObject(data) {\n    let fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n    if (typeof data === \"string\") {\n      return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n    }\n\n    return fallback;\n  }\n\n  beginDrawing(_ref) {\n    let {\n      transform,\n      viewport,\n      transparency = false,\n      background = null\n    } = _ref;\n    const width = this.ctx.canvas.width;\n    const height = this.ctx.canvas.height;\n    const defaultBackgroundColor = background || \"#ffffff\";\n    this.ctx.save();\n\n    if (this.foregroundColor && this.backgroundColor) {\n      this.ctx.fillStyle = this.foregroundColor;\n      const fg = this.foregroundColor = this.ctx.fillStyle;\n      this.ctx.fillStyle = this.backgroundColor;\n      const bg = this.backgroundColor = this.ctx.fillStyle;\n      let isValidDefaultBg = true;\n      let defaultBg = defaultBackgroundColor;\n      this.ctx.fillStyle = defaultBackgroundColor;\n      defaultBg = this.ctx.fillStyle;\n      isValidDefaultBg = typeof defaultBg === \"string\" && /^#[0-9A-Fa-f]{6}$/.test(defaultBg);\n\n      if (fg === \"#000000\" && bg === \"#ffffff\" || fg === bg || !isValidDefaultBg) {\n        this.foregroundColor = this.backgroundColor = null;\n      } else {\n        const [rB, gB, bB] = (0, _display_utils.getRGB)(defaultBg);\n\n        const newComp = x => {\n          x /= 255;\n          return x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n        };\n\n        const lumB = Math.round(0.2126 * newComp(rB) + 0.7152 * newComp(gB) + 0.0722 * newComp(bB));\n\n        this.selectColor = (r, g, b) => {\n          const lumC = 0.2126 * newComp(r) + 0.7152 * newComp(g) + 0.0722 * newComp(b);\n          return Math.round(lumC) === lumB ? bg : fg;\n        };\n      }\n    }\n\n    this.ctx.fillStyle = this.backgroundColor || defaultBackgroundColor;\n    this.ctx.fillRect(0, 0, width, height);\n    this.ctx.restore();\n\n    if (transparency) {\n      const transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height);\n      this.compositeCtx = this.ctx;\n      this.transparentCanvas = transparentCanvas.canvas;\n      this.ctx = transparentCanvas.context;\n      this.ctx.save();\n      this.ctx.transform(...(0, _display_utils.getCurrentTransform)(this.compositeCtx));\n    }\n\n    this.ctx.save();\n    resetCtxToDefault(this.ctx, this.foregroundColor);\n\n    if (transform) {\n      this.ctx.transform(...transform);\n      this.outputScaleX = transform[0];\n      this.outputScaleY = transform[0];\n    }\n\n    this.ctx.transform(...viewport.transform);\n    this.viewportScale = viewport.scale;\n    this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\n\n    if (this.imageLayer) {\n      (0, _display_utils.deprecated)(\"The `imageLayer` functionality will be removed in the future.\");\n      this.imageLayer.beginLayout();\n    }\n  }\n\n  executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n    const argsArray = operatorList.argsArray;\n    const fnArray = operatorList.fnArray;\n    let i = executionStartIdx || 0;\n    const argsArrayLen = argsArray.length;\n\n    if (argsArrayLen === i) {\n      return i;\n    }\n\n    const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n    const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n    let steps = 0;\n    const commonObjs = this.commonObjs;\n    const objs = this.objs;\n    let fnId;\n\n    while (true) {\n      if (stepper !== undefined && i === stepper.nextBreakPoint) {\n        stepper.breakIt(i, continueCallback);\n        return i;\n      }\n\n      fnId = fnArray[i];\n\n      if (fnId !== _util.OPS.dependency) {\n        this[fnId].apply(this, argsArray[i]);\n      } else {\n        for (const depObjId of argsArray[i]) {\n          const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n\n          if (!objsPool.has(depObjId)) {\n            objsPool.get(depObjId, continueCallback);\n            return i;\n          }\n        }\n      }\n\n      i++;\n\n      if (i === argsArrayLen) {\n        return i;\n      }\n\n      if (chunkOperations && ++steps > EXECUTION_STEPS) {\n        if (Date.now() > endTime) {\n          continueCallback();\n          return i;\n        }\n\n        steps = 0;\n      }\n    }\n  }\n\n  endDrawing() {\n    _classPrivateMethodGet(this, _restoreInitialState, _restoreInitialState2).call(this);\n\n    this.cachedCanvases.clear();\n    this.cachedPatterns.clear();\n\n    for (const cache of this._cachedBitmapsMap.values()) {\n      for (const canvas of cache.values()) {\n        if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement) {\n          canvas.width = canvas.height = 0;\n        }\n      }\n\n      cache.clear();\n    }\n\n    this._cachedBitmapsMap.clear();\n\n    if (this.imageLayer) {\n      this.imageLayer.endLayout();\n    }\n  }\n\n  _scaleImage(img, inverseTransform) {\n    const width = img.width;\n    const height = img.height;\n    let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n    let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n    let paintWidth = width,\n        paintHeight = height;\n    let tmpCanvasId = \"prescale1\";\n    let tmpCanvas, tmpCtx;\n\n    while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n      let newWidth = paintWidth,\n          newHeight = paintHeight;\n\n      if (widthScale > 2 && paintWidth > 1) {\n        newWidth = Math.ceil(paintWidth / 2);\n        widthScale /= paintWidth / newWidth;\n      }\n\n      if (heightScale > 2 && paintHeight > 1) {\n        newHeight = Math.ceil(paintHeight / 2);\n        heightScale /= paintHeight / newHeight;\n      }\n\n      tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n      tmpCtx = tmpCanvas.context;\n      tmpCtx.clearRect(0, 0, newWidth, newHeight);\n      tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n      img = tmpCanvas.canvas;\n      paintWidth = newWidth;\n      paintHeight = newHeight;\n      tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n    }\n\n    return {\n      img,\n      paintWidth,\n      paintHeight\n    };\n  }\n\n  _createMaskCanvas(img) {\n    const ctx = this.ctx;\n    const {\n      width,\n      height\n    } = img;\n    const fillColor = this.current.fillColor;\n    const isPatternFill = this.current.patternFill;\n    const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n    let cache, cacheKey, scaled, maskCanvas;\n\n    if ((img.bitmap || img.data) && img.count > 1) {\n      const mainKey = img.bitmap || img.data.buffer;\n      const withoutTranslation = currentTransform.slice(0, 4);\n      cacheKey = JSON.stringify(isPatternFill ? withoutTranslation : [withoutTranslation, fillColor]);\n      cache = this._cachedBitmapsMap.get(mainKey);\n\n      if (!cache) {\n        cache = new Map();\n\n        this._cachedBitmapsMap.set(mainKey, cache);\n      }\n\n      const cachedImage = cache.get(cacheKey);\n\n      if (cachedImage && !isPatternFill) {\n        const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]);\n        const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]);\n        return {\n          canvas: cachedImage,\n          offsetX,\n          offsetY\n        };\n      }\n\n      scaled = cachedImage;\n    }\n\n    if (!scaled) {\n      maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n      putBinaryImageMask(maskCanvas.context, img);\n    }\n\n    let maskToCanvas = _util.Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]);\n\n    maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n\n    const cord1 = _util.Util.applyTransform([0, 0], maskToCanvas);\n\n    const cord2 = _util.Util.applyTransform([width, height], maskToCanvas);\n\n    const rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]);\n\n    const drawnWidth = Math.round(rect[2] - rect[0]) || 1;\n    const drawnHeight = Math.round(rect[3] - rect[1]) || 1;\n    const fillCanvas = this.cachedCanvases.getCanvas(\"fillCanvas\", drawnWidth, drawnHeight);\n    const fillCtx = fillCanvas.context;\n    const offsetX = Math.min(cord1[0], cord2[0]);\n    const offsetY = Math.min(cord1[1], cord2[1]);\n    fillCtx.translate(-offsetX, -offsetY);\n    fillCtx.transform(...maskToCanvas);\n\n    if (!scaled) {\n      scaled = this._scaleImage(maskCanvas.canvas, (0, _display_utils.getCurrentTransformInverse)(fillCtx));\n      scaled = scaled.img;\n\n      if (cache && isPatternFill) {\n        cache.set(cacheKey, scaled);\n      }\n    }\n\n    fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(fillCtx), img.interpolate);\n    drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height);\n    fillCtx.globalCompositeOperation = \"source-in\";\n\n    const inverse = _util.Util.transform((0, _display_utils.getCurrentTransformInverse)(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]);\n\n    fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor;\n    fillCtx.fillRect(0, 0, width, height);\n\n    if (cache && !isPatternFill) {\n      this.cachedCanvases.delete(\"fillCanvas\");\n      cache.set(cacheKey, fillCanvas.canvas);\n    }\n\n    return {\n      canvas: fillCanvas.canvas,\n      offsetX: Math.round(offsetX),\n      offsetY: Math.round(offsetY)\n    };\n  }\n\n  setLineWidth(width) {\n    if (width !== this.current.lineWidth) {\n      this._cachedScaleForStroking = null;\n    }\n\n    this.current.lineWidth = width;\n    this.ctx.lineWidth = width;\n  }\n\n  setLineCap(style) {\n    this.ctx.lineCap = LINE_CAP_STYLES[style];\n  }\n\n  setLineJoin(style) {\n    this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n  }\n\n  setMiterLimit(limit) {\n    this.ctx.miterLimit = limit;\n  }\n\n  setDash(dashArray, dashPhase) {\n    const ctx = this.ctx;\n\n    if (ctx.setLineDash !== undefined) {\n      ctx.setLineDash(dashArray);\n      ctx.lineDashOffset = dashPhase;\n    }\n  }\n\n  setRenderingIntent(intent) {}\n\n  setFlatness(flatness) {}\n\n  setGState(states) {\n    for (let i = 0, ii = states.length; i < ii; i++) {\n      const state = states[i];\n      const key = state[0];\n      const value = state[1];\n\n      switch (key) {\n        case \"LW\":\n          this.setLineWidth(value);\n          break;\n\n        case \"LC\":\n          this.setLineCap(value);\n          break;\n\n        case \"LJ\":\n          this.setLineJoin(value);\n          break;\n\n        case \"ML\":\n          this.setMiterLimit(value);\n          break;\n\n        case \"D\":\n          this.setDash(value[0], value[1]);\n          break;\n\n        case \"RI\":\n          this.setRenderingIntent(value);\n          break;\n\n        case \"FL\":\n          this.setFlatness(value);\n          break;\n\n        case \"Font\":\n          this.setFont(value[0], value[1]);\n          break;\n\n        case \"CA\":\n          this.current.strokeAlpha = state[1];\n          break;\n\n        case \"ca\":\n          this.current.fillAlpha = state[1];\n          this.ctx.globalAlpha = state[1];\n          break;\n\n        case \"BM\":\n          this.ctx.globalCompositeOperation = value;\n          break;\n\n        case \"SMask\":\n          this.current.activeSMask = value ? this.tempSMask : null;\n          this.tempSMask = null;\n          this.checkSMaskState();\n          break;\n\n        case \"TR\":\n          this.current.transferMaps = value;\n      }\n    }\n  }\n\n  get inSMaskMode() {\n    return !!this.suspendedCtx;\n  }\n\n  checkSMaskState() {\n    const inSMaskMode = this.inSMaskMode;\n\n    if (this.current.activeSMask && !inSMaskMode) {\n      this.beginSMaskMode();\n    } else if (!this.current.activeSMask && inSMaskMode) {\n      this.endSMaskMode();\n    }\n  }\n\n  beginSMaskMode() {\n    if (this.inSMaskMode) {\n      throw new Error(\"beginSMaskMode called while already in smask mode\");\n    }\n\n    const drawnWidth = this.ctx.canvas.width;\n    const drawnHeight = this.ctx.canvas.height;\n    const cacheId = \"smaskGroupAt\" + this.groupLevel;\n    const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n    this.suspendedCtx = this.ctx;\n    this.ctx = scratchCanvas.context;\n    const ctx = this.ctx;\n    ctx.setTransform(...(0, _display_utils.getCurrentTransform)(this.suspendedCtx));\n    copyCtxState(this.suspendedCtx, ctx);\n    mirrorContextOperations(ctx, this.suspendedCtx);\n    this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n  }\n\n  endSMaskMode() {\n    if (!this.inSMaskMode) {\n      throw new Error(\"endSMaskMode called while not in smask mode\");\n    }\n\n    this.ctx._removeMirroring();\n\n    copyCtxState(this.ctx, this.suspendedCtx);\n    this.ctx = this.suspendedCtx;\n    this.suspendedCtx = null;\n  }\n\n  compose(dirtyBox) {\n    if (!this.current.activeSMask) {\n      return;\n    }\n\n    if (!dirtyBox) {\n      dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n    } else {\n      dirtyBox[0] = Math.floor(dirtyBox[0]);\n      dirtyBox[1] = Math.floor(dirtyBox[1]);\n      dirtyBox[2] = Math.ceil(dirtyBox[2]);\n      dirtyBox[3] = Math.ceil(dirtyBox[3]);\n    }\n\n    const smask = this.current.activeSMask;\n    const suspendedCtx = this.suspendedCtx;\n    composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n    this.ctx.save();\n    this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n    this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n    this.ctx.restore();\n  }\n\n  save() {\n    if (this.inSMaskMode) {\n      copyCtxState(this.ctx, this.suspendedCtx);\n      this.suspendedCtx.save();\n    } else {\n      this.ctx.save();\n    }\n\n    const old = this.current;\n    this.stateStack.push(old);\n    this.current = old.clone();\n  }\n\n  restore() {\n    if (this.stateStack.length === 0 && this.inSMaskMode) {\n      this.endSMaskMode();\n    }\n\n    if (this.stateStack.length !== 0) {\n      this.current = this.stateStack.pop();\n\n      if (this.inSMaskMode) {\n        this.suspendedCtx.restore();\n        copyCtxState(this.suspendedCtx, this.ctx);\n      } else {\n        this.ctx.restore();\n      }\n\n      this.checkSMaskState();\n      this.pendingClip = null;\n      this._cachedScaleForStroking = null;\n      this._cachedGetSinglePixelWidth = null;\n    }\n  }\n\n  transform(a, b, c, d, e, f) {\n    this.ctx.transform(a, b, c, d, e, f);\n    this._cachedScaleForStroking = null;\n    this._cachedGetSinglePixelWidth = null;\n  }\n\n  constructPath(ops, args, minMax) {\n    const ctx = this.ctx;\n    const current = this.current;\n    let x = current.x,\n        y = current.y;\n    let startX, startY;\n    const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n    const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0;\n    const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null;\n\n    for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n      switch (ops[i] | 0) {\n        case _util.OPS.rectangle:\n          x = args[j++];\n          y = args[j++];\n          const width = args[j++];\n          const height = args[j++];\n          const xw = x + width;\n          const yh = y + height;\n          ctx.moveTo(x, y);\n\n          if (width === 0 || height === 0) {\n            ctx.lineTo(xw, yh);\n          } else {\n            ctx.lineTo(xw, y);\n            ctx.lineTo(xw, yh);\n            ctx.lineTo(x, yh);\n          }\n\n          if (!isScalingMatrix) {\n            current.updateRectMinMax(currentTransform, [x, y, xw, yh]);\n          }\n\n          ctx.closePath();\n          break;\n\n        case _util.OPS.moveTo:\n          x = args[j++];\n          y = args[j++];\n          ctx.moveTo(x, y);\n\n          if (!isScalingMatrix) {\n            current.updatePathMinMax(currentTransform, x, y);\n          }\n\n          break;\n\n        case _util.OPS.lineTo:\n          x = args[j++];\n          y = args[j++];\n          ctx.lineTo(x, y);\n\n          if (!isScalingMatrix) {\n            current.updatePathMinMax(currentTransform, x, y);\n          }\n\n          break;\n\n        case _util.OPS.curveTo:\n          startX = x;\n          startY = y;\n          x = args[j + 4];\n          y = args[j + 5];\n          ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n          current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier);\n          j += 6;\n          break;\n\n        case _util.OPS.curveTo2:\n          startX = x;\n          startY = y;\n          ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n          current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier);\n          x = args[j + 2];\n          y = args[j + 3];\n          j += 4;\n          break;\n\n        case _util.OPS.curveTo3:\n          startX = x;\n          startY = y;\n          x = args[j + 2];\n          y = args[j + 3];\n          ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n          current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier);\n          j += 4;\n          break;\n\n        case _util.OPS.closePath:\n          ctx.closePath();\n          break;\n      }\n    }\n\n    if (isScalingMatrix) {\n      current.updateScalingPathMinMax(currentTransform, minMaxForBezier);\n    }\n\n    current.setCurrentPoint(x, y);\n  }\n\n  closePath() {\n    this.ctx.closePath();\n  }\n\n  stroke(consumePath) {\n    consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n    const ctx = this.ctx;\n    const strokeColor = this.current.strokeColor;\n    ctx.globalAlpha = this.current.strokeAlpha;\n\n    if (this.contentVisible) {\n      if (typeof strokeColor === \"object\" && strokeColor !== null && strokeColor !== void 0 && strokeColor.getPattern) {\n        ctx.save();\n        ctx.strokeStyle = strokeColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.STROKE);\n        this.rescaleAndStroke(false);\n        ctx.restore();\n      } else {\n        this.rescaleAndStroke(true);\n      }\n    }\n\n    if (consumePath) {\n      this.consumePath(this.current.getClippedPathBoundingBox());\n    }\n\n    ctx.globalAlpha = this.current.fillAlpha;\n  }\n\n  closeStroke() {\n    this.closePath();\n    this.stroke();\n  }\n\n  fill(consumePath) {\n    consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n    const ctx = this.ctx;\n    const fillColor = this.current.fillColor;\n    const isPatternFill = this.current.patternFill;\n    let needRestore = false;\n\n    if (isPatternFill) {\n      ctx.save();\n      ctx.fillStyle = fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n      needRestore = true;\n    }\n\n    const intersect = this.current.getClippedPathBoundingBox();\n\n    if (this.contentVisible && intersect !== null) {\n      if (this.pendingEOFill) {\n        ctx.fill(\"evenodd\");\n        this.pendingEOFill = false;\n      } else {\n        ctx.fill();\n      }\n    }\n\n    if (needRestore) {\n      ctx.restore();\n    }\n\n    if (consumePath) {\n      this.consumePath(intersect);\n    }\n  }\n\n  eoFill() {\n    this.pendingEOFill = true;\n    this.fill();\n  }\n\n  fillStroke() {\n    this.fill(false);\n    this.stroke(false);\n    this.consumePath();\n  }\n\n  eoFillStroke() {\n    this.pendingEOFill = true;\n    this.fillStroke();\n  }\n\n  closeFillStroke() {\n    this.closePath();\n    this.fillStroke();\n  }\n\n  closeEOFillStroke() {\n    this.pendingEOFill = true;\n    this.closePath();\n    this.fillStroke();\n  }\n\n  endPath() {\n    this.consumePath();\n  }\n\n  clip() {\n    this.pendingClip = NORMAL_CLIP;\n  }\n\n  eoClip() {\n    this.pendingClip = EO_CLIP;\n  }\n\n  beginText() {\n    this.current.textMatrix = _util.IDENTITY_MATRIX;\n    this.current.textMatrixScale = 1;\n    this.current.x = this.current.lineX = 0;\n    this.current.y = this.current.lineY = 0;\n  }\n\n  endText() {\n    const paths = this.pendingTextPaths;\n    const ctx = this.ctx;\n\n    if (paths === undefined) {\n      ctx.beginPath();\n      return;\n    }\n\n    ctx.save();\n    ctx.beginPath();\n\n    for (const path of paths) {\n      ctx.setTransform(...path.transform);\n      ctx.translate(path.x, path.y);\n      path.addToPath(ctx, path.fontSize);\n    }\n\n    ctx.restore();\n    ctx.clip();\n    ctx.beginPath();\n    delete this.pendingTextPaths;\n  }\n\n  setCharSpacing(spacing) {\n    this.current.charSpacing = spacing;\n  }\n\n  setWordSpacing(spacing) {\n    this.current.wordSpacing = spacing;\n  }\n\n  setHScale(scale) {\n    this.current.textHScale = scale / 100;\n  }\n\n  setLeading(leading) {\n    this.current.leading = -leading;\n  }\n\n  setFont(fontRefName, size) {\n    const fontObj = this.commonObjs.get(fontRefName);\n    const current = this.current;\n\n    if (!fontObj) {\n      throw new Error(`Can't find font for ${fontRefName}`);\n    }\n\n    current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n\n    if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n      (0, _util.warn)(\"Invalid font matrix for font \" + fontRefName);\n    }\n\n    if (size < 0) {\n      size = -size;\n      current.fontDirection = -1;\n    } else {\n      current.fontDirection = 1;\n    }\n\n    this.current.font = fontObj;\n    this.current.fontSize = size;\n\n    if (fontObj.isType3Font) {\n      return;\n    }\n\n    const name = fontObj.loadedName || \"sans-serif\";\n    let bold = \"normal\";\n\n    if (fontObj.black) {\n      bold = \"900\";\n    } else if (fontObj.bold) {\n      bold = \"bold\";\n    }\n\n    const italic = fontObj.italic ? \"italic\" : \"normal\";\n    const typeface = `\"${name}\", ${fontObj.fallbackName}`;\n    let browserFontSize = size;\n\n    if (size < MIN_FONT_SIZE) {\n      browserFontSize = MIN_FONT_SIZE;\n    } else if (size > MAX_FONT_SIZE) {\n      browserFontSize = MAX_FONT_SIZE;\n    }\n\n    this.current.fontSizeScale = size / browserFontSize;\n    this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n  }\n\n  setTextRenderingMode(mode) {\n    this.current.textRenderingMode = mode;\n  }\n\n  setTextRise(rise) {\n    this.current.textRise = rise;\n  }\n\n  moveText(x, y) {\n    this.current.x = this.current.lineX += x;\n    this.current.y = this.current.lineY += y;\n  }\n\n  setLeadingMoveText(x, y) {\n    this.setLeading(-y);\n    this.moveText(x, y);\n  }\n\n  setTextMatrix(a, b, c, d, e, f) {\n    this.current.textMatrix = [a, b, c, d, e, f];\n    this.current.textMatrixScale = Math.hypot(a, b);\n    this.current.x = this.current.lineX = 0;\n    this.current.y = this.current.lineY = 0;\n  }\n\n  nextLine() {\n    this.moveText(0, this.current.leading);\n  }\n\n  paintChar(character, x, y, patternTransform) {\n    const ctx = this.ctx;\n    const current = this.current;\n    const font = current.font;\n    const textRenderingMode = current.textRenderingMode;\n    const fontSize = current.fontSize / current.fontSizeScale;\n    const fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n    const isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n    const patternFill = current.patternFill && !font.missingFile;\n    let addToPath;\n\n    if (font.disableFontFace || isAddToPathSet || patternFill) {\n      addToPath = font.getPathGenerator(this.commonObjs, character);\n    }\n\n    if (font.disableFontFace || patternFill) {\n      ctx.save();\n      ctx.translate(x, y);\n      ctx.beginPath();\n      addToPath(ctx, fontSize);\n\n      if (patternTransform) {\n        ctx.setTransform(...patternTransform);\n      }\n\n      if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n        ctx.fill();\n      }\n\n      if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n        ctx.stroke();\n      }\n\n      ctx.restore();\n    } else {\n      if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n        ctx.fillText(character, x, y);\n      }\n\n      if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n        ctx.strokeText(character, x, y);\n      }\n    }\n\n    if (isAddToPathSet) {\n      const paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n      paths.push({\n        transform: (0, _display_utils.getCurrentTransform)(ctx),\n        x,\n        y,\n        fontSize,\n        addToPath\n      });\n    }\n  }\n\n  get isFontSubpixelAAEnabled() {\n    const {\n      context: ctx\n    } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10);\n    ctx.scale(1.5, 1);\n    ctx.fillText(\"I\", 0, 10);\n    const data = ctx.getImageData(0, 0, 10, 10).data;\n    let enabled = false;\n\n    for (let i = 3; i < data.length; i += 4) {\n      if (data[i] > 0 && data[i] < 255) {\n        enabled = true;\n        break;\n      }\n    }\n\n    return (0, _util.shadow)(this, \"isFontSubpixelAAEnabled\", enabled);\n  }\n\n  showText(glyphs) {\n    const current = this.current;\n    const font = current.font;\n\n    if (font.isType3Font) {\n      return this.showType3Text(glyphs);\n    }\n\n    const fontSize = current.fontSize;\n\n    if (fontSize === 0) {\n      return undefined;\n    }\n\n    const ctx = this.ctx;\n    const fontSizeScale = current.fontSizeScale;\n    const charSpacing = current.charSpacing;\n    const wordSpacing = current.wordSpacing;\n    const fontDirection = current.fontDirection;\n    const textHScale = current.textHScale * fontDirection;\n    const glyphsLength = glyphs.length;\n    const vertical = font.vertical;\n    const spacingDir = vertical ? 1 : -1;\n    const defaultVMetrics = font.defaultVMetrics;\n    const widthAdvanceScale = fontSize * current.fontMatrix[0];\n    const simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n    ctx.save();\n    ctx.transform(...current.textMatrix);\n    ctx.translate(current.x, current.y + current.textRise);\n\n    if (fontDirection > 0) {\n      ctx.scale(textHScale, -1);\n    } else {\n      ctx.scale(textHScale, 1);\n    }\n\n    let patternTransform;\n\n    if (current.patternFill) {\n      ctx.save();\n      const pattern = current.fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n      patternTransform = (0, _display_utils.getCurrentTransform)(ctx);\n      ctx.restore();\n      ctx.fillStyle = pattern;\n    }\n\n    let lineWidth = current.lineWidth;\n    const scale = current.textMatrixScale;\n\n    if (scale === 0 || lineWidth === 0) {\n      const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n      if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n        lineWidth = this.getSinglePixelWidth();\n      }\n    } else {\n      lineWidth /= scale;\n    }\n\n    if (fontSizeScale !== 1.0) {\n      ctx.scale(fontSizeScale, fontSizeScale);\n      lineWidth /= fontSizeScale;\n    }\n\n    ctx.lineWidth = lineWidth;\n    let x = 0,\n        i;\n\n    for (i = 0; i < glyphsLength; ++i) {\n      const glyph = glyphs[i];\n\n      if (typeof glyph === \"number\") {\n        x += spacingDir * glyph * fontSize / 1000;\n        continue;\n      }\n\n      let restoreNeeded = false;\n      const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n      const character = glyph.fontChar;\n      const accent = glyph.accent;\n      let scaledX, scaledY;\n      let width = glyph.width;\n\n      if (vertical) {\n        const vmetric = glyph.vmetric || defaultVMetrics;\n        const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n        const vy = vmetric[2] * widthAdvanceScale;\n        width = vmetric ? -vmetric[0] : width;\n        scaledX = vx / fontSizeScale;\n        scaledY = (x + vy) / fontSizeScale;\n      } else {\n        scaledX = x / fontSizeScale;\n        scaledY = 0;\n      }\n\n      if (font.remeasure && width > 0) {\n        const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n\n        if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n          const characterScaleX = width / measuredWidth;\n          restoreNeeded = true;\n          ctx.save();\n          ctx.scale(characterScaleX, 1);\n          scaledX /= characterScaleX;\n        } else if (width !== measuredWidth) {\n          scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n        }\n      }\n\n      if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n        if (simpleFillText && !accent) {\n          ctx.fillText(character, scaledX, scaledY);\n        } else {\n          this.paintChar(character, scaledX, scaledY, patternTransform);\n\n          if (accent) {\n            const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n            const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n            this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n          }\n        }\n      }\n\n      let charWidth;\n\n      if (vertical) {\n        charWidth = width * widthAdvanceScale - spacing * fontDirection;\n      } else {\n        charWidth = width * widthAdvanceScale + spacing * fontDirection;\n      }\n\n      x += charWidth;\n\n      if (restoreNeeded) {\n        ctx.restore();\n      }\n    }\n\n    if (vertical) {\n      current.y -= x;\n    } else {\n      current.x += x * textHScale;\n    }\n\n    ctx.restore();\n    this.compose();\n    return undefined;\n  }\n\n  showType3Text(glyphs) {\n    const ctx = this.ctx;\n    const current = this.current;\n    const font = current.font;\n    const fontSize = current.fontSize;\n    const fontDirection = current.fontDirection;\n    const spacingDir = font.vertical ? 1 : -1;\n    const charSpacing = current.charSpacing;\n    const wordSpacing = current.wordSpacing;\n    const textHScale = current.textHScale * fontDirection;\n    const fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n    const glyphsLength = glyphs.length;\n    const isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n    let i, glyph, width, spacingLength;\n\n    if (isTextInvisible || fontSize === 0) {\n      return;\n    }\n\n    this._cachedScaleForStroking = null;\n    this._cachedGetSinglePixelWidth = null;\n    ctx.save();\n    ctx.transform(...current.textMatrix);\n    ctx.translate(current.x, current.y);\n    ctx.scale(textHScale, fontDirection);\n\n    for (i = 0; i < glyphsLength; ++i) {\n      glyph = glyphs[i];\n\n      if (typeof glyph === \"number\") {\n        spacingLength = spacingDir * glyph * fontSize / 1000;\n        this.ctx.translate(spacingLength, 0);\n        current.x += spacingLength * textHScale;\n        continue;\n      }\n\n      const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n      const operatorList = font.charProcOperatorList[glyph.operatorListId];\n\n      if (!operatorList) {\n        (0, _util.warn)(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n        continue;\n      }\n\n      if (this.contentVisible) {\n        this.processingType3 = glyph;\n        this.save();\n        ctx.scale(fontSize, fontSize);\n        ctx.transform(...fontMatrix);\n        this.executeOperatorList(operatorList);\n        this.restore();\n      }\n\n      const transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n\n      width = transformed[0] * fontSize + spacing;\n      ctx.translate(width, 0);\n      current.x += width * textHScale;\n    }\n\n    ctx.restore();\n    this.processingType3 = null;\n  }\n\n  setCharWidth(xWidth, yWidth) {}\n\n  setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n    this.ctx.rect(llx, lly, urx - llx, ury - lly);\n    this.ctx.clip();\n    this.endPath();\n  }\n\n  getColorN_Pattern(IR) {\n    let pattern;\n\n    if (IR[0] === \"TilingPattern\") {\n      const color = IR[1];\n      const baseTransform = this.baseTransform || (0, _display_utils.getCurrentTransform)(this.ctx);\n      const canvasGraphicsFactory = {\n        createCanvasGraphics: ctx => {\n          return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory);\n        }\n      };\n      pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n    } else {\n      pattern = this._getPattern(IR[1], IR[2]);\n    }\n\n    return pattern;\n  }\n\n  setStrokeColorN() {\n    this.current.strokeColor = this.getColorN_Pattern(arguments);\n  }\n\n  setFillColorN() {\n    this.current.fillColor = this.getColorN_Pattern(arguments);\n    this.current.patternFill = true;\n  }\n\n  setStrokeRGBColor(r, g, b) {\n    var _this$selectColor;\n\n    const color = ((_this$selectColor = this.selectColor) === null || _this$selectColor === void 0 ? void 0 : _this$selectColor.call(this, r, g, b)) || _util.Util.makeHexColor(r, g, b);\n\n    this.ctx.strokeStyle = color;\n    this.current.strokeColor = color;\n  }\n\n  setFillRGBColor(r, g, b) {\n    var _this$selectColor2;\n\n    const color = ((_this$selectColor2 = this.selectColor) === null || _this$selectColor2 === void 0 ? void 0 : _this$selectColor2.call(this, r, g, b)) || _util.Util.makeHexColor(r, g, b);\n\n    this.ctx.fillStyle = color;\n    this.current.fillColor = color;\n    this.current.patternFill = false;\n  }\n\n  _getPattern(objId) {\n    let matrix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    let pattern;\n\n    if (this.cachedPatterns.has(objId)) {\n      pattern = this.cachedPatterns.get(objId);\n    } else {\n      pattern = (0, _pattern_helper.getShadingPattern)(this.objs.get(objId));\n      this.cachedPatterns.set(objId, pattern);\n    }\n\n    if (matrix) {\n      pattern.matrix = matrix;\n    }\n\n    return pattern;\n  }\n\n  shadingFill(objId) {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    const ctx = this.ctx;\n    this.save();\n\n    const pattern = this._getPattern(objId);\n\n    ctx.fillStyle = pattern.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.SHADING);\n    const inv = (0, _display_utils.getCurrentTransformInverse)(ctx);\n\n    if (inv) {\n      const canvas = ctx.canvas;\n      const width = canvas.width;\n      const height = canvas.height;\n\n      const bl = _util.Util.applyTransform([0, 0], inv);\n\n      const br = _util.Util.applyTransform([0, height], inv);\n\n      const ul = _util.Util.applyTransform([width, 0], inv);\n\n      const ur = _util.Util.applyTransform([width, height], inv);\n\n      const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n      const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n      const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n      const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n      this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n    } else {\n      this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n    }\n\n    this.compose(this.current.getClippedPathBoundingBox());\n    this.restore();\n  }\n\n  beginInlineImage() {\n    (0, _util.unreachable)(\"Should not call beginInlineImage\");\n  }\n\n  beginImageData() {\n    (0, _util.unreachable)(\"Should not call beginImageData\");\n  }\n\n  paintFormXObjectBegin(matrix, bbox) {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    this.save();\n    this.baseTransformStack.push(this.baseTransform);\n\n    if (Array.isArray(matrix) && matrix.length === 6) {\n      this.transform(...matrix);\n    }\n\n    this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\n\n    if (bbox) {\n      const width = bbox[2] - bbox[0];\n      const height = bbox[3] - bbox[1];\n      this.ctx.rect(bbox[0], bbox[1], width, height);\n      this.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(this.ctx), bbox);\n      this.clip();\n      this.endPath();\n    }\n  }\n\n  paintFormXObjectEnd() {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    this.restore();\n    this.baseTransform = this.baseTransformStack.pop();\n  }\n\n  beginGroup(group) {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    this.save();\n\n    if (this.inSMaskMode) {\n      this.endSMaskMode();\n      this.current.activeSMask = null;\n    }\n\n    const currentCtx = this.ctx;\n\n    if (!group.isolated) {\n      (0, _util.info)(\"TODO: Support non-isolated groups.\");\n    }\n\n    if (group.knockout) {\n      (0, _util.warn)(\"Knockout groups not supported.\");\n    }\n\n    const currentTransform = (0, _display_utils.getCurrentTransform)(currentCtx);\n\n    if (group.matrix) {\n      currentCtx.transform(...group.matrix);\n    }\n\n    if (!group.bbox) {\n      throw new Error(\"Bounding box is required.\");\n    }\n\n    let bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, (0, _display_utils.getCurrentTransform)(currentCtx));\n\n    const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n    bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n    const offsetX = Math.floor(bounds[0]);\n    const offsetY = Math.floor(bounds[1]);\n    let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n    let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n    let scaleX = 1,\n        scaleY = 1;\n\n    if (drawnWidth > MAX_GROUP_SIZE) {\n      scaleX = drawnWidth / MAX_GROUP_SIZE;\n      drawnWidth = MAX_GROUP_SIZE;\n    }\n\n    if (drawnHeight > MAX_GROUP_SIZE) {\n      scaleY = drawnHeight / MAX_GROUP_SIZE;\n      drawnHeight = MAX_GROUP_SIZE;\n    }\n\n    this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n    let cacheId = \"groupAt\" + this.groupLevel;\n\n    if (group.smask) {\n      cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n    }\n\n    const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n    const groupCtx = scratchCanvas.context;\n    groupCtx.scale(1 / scaleX, 1 / scaleY);\n    groupCtx.translate(-offsetX, -offsetY);\n    groupCtx.transform(...currentTransform);\n\n    if (group.smask) {\n      this.smaskStack.push({\n        canvas: scratchCanvas.canvas,\n        context: groupCtx,\n        offsetX,\n        offsetY,\n        scaleX,\n        scaleY,\n        subtype: group.smask.subtype,\n        backdrop: group.smask.backdrop,\n        transferMap: group.smask.transferMap || null,\n        startTransformInverse: null\n      });\n    } else {\n      currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n      currentCtx.translate(offsetX, offsetY);\n      currentCtx.scale(scaleX, scaleY);\n      currentCtx.save();\n    }\n\n    copyCtxState(currentCtx, groupCtx);\n    this.ctx = groupCtx;\n    this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n    this.groupStack.push(currentCtx);\n    this.groupLevel++;\n  }\n\n  endGroup(group) {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    this.groupLevel--;\n    const groupCtx = this.ctx;\n    const ctx = this.groupStack.pop();\n    this.ctx = ctx;\n    this.ctx.imageSmoothingEnabled = false;\n\n    if (group.smask) {\n      this.tempSMask = this.smaskStack.pop();\n      this.restore();\n    } else {\n      this.ctx.restore();\n      const currentMtx = (0, _display_utils.getCurrentTransform)(this.ctx);\n      this.restore();\n      this.ctx.save();\n      this.ctx.setTransform(...currentMtx);\n\n      const dirtyBox = _util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx);\n\n      this.ctx.drawImage(groupCtx.canvas, 0, 0);\n      this.ctx.restore();\n      this.compose(dirtyBox);\n    }\n  }\n\n  beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n    _classPrivateMethodGet(this, _restoreInitialState, _restoreInitialState2).call(this);\n\n    resetCtxToDefault(this.ctx, this.foregroundColor);\n    this.ctx.save();\n    this.save();\n\n    if (this.baseTransform) {\n      this.ctx.setTransform(...this.baseTransform);\n    }\n\n    if (Array.isArray(rect) && rect.length === 4) {\n      const width = rect[2] - rect[0];\n      const height = rect[3] - rect[1];\n\n      if (hasOwnCanvas && this.annotationCanvasMap) {\n        transform = transform.slice();\n        transform[4] -= rect[0];\n        transform[5] -= rect[1];\n        rect = rect.slice();\n        rect[0] = rect[1] = 0;\n        rect[2] = width;\n        rect[3] = height;\n\n        const [scaleX, scaleY] = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(this.ctx));\n\n        const {\n          viewportScale\n        } = this;\n        const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);\n        const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);\n        this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);\n        const {\n          canvas,\n          context\n        } = this.annotationCanvas;\n        this.annotationCanvasMap.set(id, canvas);\n        this.annotationCanvas.savedCtx = this.ctx;\n        this.ctx = context;\n        this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n        resetCtxToDefault(this.ctx, this.foregroundColor);\n      } else {\n        resetCtxToDefault(this.ctx, this.foregroundColor);\n        this.ctx.rect(rect[0], rect[1], width, height);\n        this.ctx.clip();\n        this.endPath();\n      }\n    }\n\n    this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n    this.transform(...transform);\n    this.transform(...matrix);\n  }\n\n  endAnnotation() {\n    if (this.annotationCanvas) {\n      this.ctx = this.annotationCanvas.savedCtx;\n      delete this.annotationCanvas.savedCtx;\n      delete this.annotationCanvas;\n    }\n  }\n\n  paintImageMaskXObject(img) {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    const count = img.count;\n    img = this.getObject(img.data, img);\n    img.count = count;\n    const ctx = this.ctx;\n    const glyph = this.processingType3;\n\n    if (glyph) {\n      if (glyph.compiled === undefined) {\n        glyph.compiled = compileType3Glyph(img);\n      }\n\n      if (glyph.compiled) {\n        glyph.compiled(ctx);\n        return;\n      }\n    }\n\n    const mask = this._createMaskCanvas(img);\n\n    const maskCanvas = mask.canvas;\n    ctx.save();\n    ctx.setTransform(1, 0, 0, 1, 0, 0);\n    ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n    ctx.restore();\n    this.compose();\n  }\n\n  paintImageMaskXObjectRepeat(img, scaleX) {\n    let skewX = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n    let skewY = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n    let scaleY = arguments.length > 4 ? arguments[4] : undefined;\n    let positions = arguments.length > 5 ? arguments[5] : undefined;\n\n    if (!this.contentVisible) {\n      return;\n    }\n\n    img = this.getObject(img.data, img);\n    const ctx = this.ctx;\n    ctx.save();\n    const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n    ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n\n    const mask = this._createMaskCanvas(img);\n\n    ctx.setTransform(1, 0, 0, 1, 0, 0);\n\n    for (let i = 0, ii = positions.length; i < ii; i += 2) {\n      const trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n\n      const [x, y] = _util.Util.applyTransform([0, 0], trans);\n\n      ctx.drawImage(mask.canvas, x, y);\n    }\n\n    ctx.restore();\n    this.compose();\n  }\n\n  paintImageMaskXObjectGroup(images) {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    const ctx = this.ctx;\n    const fillColor = this.current.fillColor;\n    const isPatternFill = this.current.patternFill;\n\n    for (const image of images) {\n      const {\n        data,\n        width,\n        height,\n        transform\n      } = image;\n      const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n      const maskCtx = maskCanvas.context;\n      maskCtx.save();\n      const img = this.getObject(data, image);\n      putBinaryImageMask(maskCtx, img);\n      maskCtx.globalCompositeOperation = \"source-in\";\n      maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL) : fillColor;\n      maskCtx.fillRect(0, 0, width, height);\n      maskCtx.restore();\n      ctx.save();\n      ctx.transform(...transform);\n      ctx.scale(1, -1);\n      drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n      ctx.restore();\n    }\n\n    this.compose();\n  }\n\n  paintImageXObject(objId) {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    const imgData = this.getObject(objId);\n\n    if (!imgData) {\n      (0, _util.warn)(\"Dependent image isn't ready yet\");\n      return;\n    }\n\n    this.paintInlineImageXObject(imgData);\n  }\n\n  paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    const imgData = this.getObject(objId);\n\n    if (!imgData) {\n      (0, _util.warn)(\"Dependent image isn't ready yet\");\n      return;\n    }\n\n    const width = imgData.width;\n    const height = imgData.height;\n    const map = [];\n\n    for (let i = 0, ii = positions.length; i < ii; i += 2) {\n      map.push({\n        transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n        x: 0,\n        y: 0,\n        w: width,\n        h: height\n      });\n    }\n\n    this.paintInlineImageXObjectGroup(imgData, map);\n  }\n\n  paintInlineImageXObject(imgData) {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    const width = imgData.width;\n    const height = imgData.height;\n    const ctx = this.ctx;\n    this.save();\n    ctx.scale(1 / width, -1 / height);\n    let imgToPaint;\n\n    if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n      imgToPaint = imgData;\n    } else {\n      const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n      const tmpCtx = tmpCanvas.context;\n      putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n      imgToPaint = tmpCanvas.canvas;\n    }\n\n    const scaled = this._scaleImage(imgToPaint, (0, _display_utils.getCurrentTransformInverse)(ctx));\n\n    ctx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(ctx), imgData.interpolate);\n    const [rWidth, rHeight] = drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n\n    if (this.imageLayer) {\n      const [left, top] = _util.Util.applyTransform([0, -height], (0, _display_utils.getCurrentTransform)(this.ctx));\n\n      this.imageLayer.appendImage({\n        imgData,\n        left,\n        top,\n        width: rWidth,\n        height: rHeight\n      });\n    }\n\n    this.compose();\n    this.restore();\n  }\n\n  paintInlineImageXObjectGroup(imgData, map) {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    const ctx = this.ctx;\n    const w = imgData.width;\n    const h = imgData.height;\n    const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n    const tmpCtx = tmpCanvas.context;\n    putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n\n    for (const entry of map) {\n      ctx.save();\n      ctx.transform(...entry.transform);\n      ctx.scale(1, -1);\n      drawImageAtIntegerCoords(ctx, tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n\n      if (this.imageLayer) {\n        const [left, top] = _util.Util.applyTransform([entry.x, entry.y], (0, _display_utils.getCurrentTransform)(this.ctx));\n\n        this.imageLayer.appendImage({\n          imgData,\n          left,\n          top,\n          width: w,\n          height: h\n        });\n      }\n\n      ctx.restore();\n    }\n\n    this.compose();\n  }\n\n  paintSolidColorImageMask() {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    this.ctx.fillRect(0, 0, 1, 1);\n    this.compose();\n  }\n\n  markPoint(tag) {}\n\n  markPointProps(tag, properties) {}\n\n  beginMarkedContent(tag) {\n    this.markedContentStack.push({\n      visible: true\n    });\n  }\n\n  beginMarkedContentProps(tag, properties) {\n    if (tag === \"OC\") {\n      this.markedContentStack.push({\n        visible: this.optionalContentConfig.isVisible(properties)\n      });\n    } else {\n      this.markedContentStack.push({\n        visible: true\n      });\n    }\n\n    this.contentVisible = this.isContentVisible();\n  }\n\n  endMarkedContent() {\n    this.markedContentStack.pop();\n    this.contentVisible = this.isContentVisible();\n  }\n\n  beginCompat() {}\n\n  endCompat() {}\n\n  consumePath(clipBox) {\n    const isEmpty = this.current.isEmptyClip();\n\n    if (this.pendingClip) {\n      this.current.updateClipFromPath();\n    }\n\n    if (!this.pendingClip) {\n      this.compose(clipBox);\n    }\n\n    const ctx = this.ctx;\n\n    if (this.pendingClip) {\n      if (!isEmpty) {\n        if (this.pendingClip === EO_CLIP) {\n          ctx.clip(\"evenodd\");\n        } else {\n          ctx.clip();\n        }\n      }\n\n      this.pendingClip = null;\n    }\n\n    this.current.startNewPathAndClipBox(this.current.clipBox);\n    ctx.beginPath();\n  }\n\n  getSinglePixelWidth() {\n    if (!this._cachedGetSinglePixelWidth) {\n      const m = (0, _display_utils.getCurrentTransform)(this.ctx);\n\n      if (m[1] === 0 && m[2] === 0) {\n        this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n      } else {\n        const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n        const normX = Math.hypot(m[0], m[2]);\n        const normY = Math.hypot(m[1], m[3]);\n        this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n      }\n    }\n\n    return this._cachedGetSinglePixelWidth;\n  }\n\n  getScaleForStroking() {\n    if (!this._cachedScaleForStroking) {\n      const {\n        lineWidth\n      } = this.current;\n      const m = (0, _display_utils.getCurrentTransform)(this.ctx);\n      let scaleX, scaleY;\n\n      if (m[1] === 0 && m[2] === 0) {\n        const normX = Math.abs(m[0]);\n        const normY = Math.abs(m[3]);\n\n        if (lineWidth === 0) {\n          scaleX = 1 / normX;\n          scaleY = 1 / normY;\n        } else {\n          const scaledXLineWidth = normX * lineWidth;\n          const scaledYLineWidth = normY * lineWidth;\n          scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n          scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n        }\n      } else {\n        const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n        const normX = Math.hypot(m[0], m[1]);\n        const normY = Math.hypot(m[2], m[3]);\n\n        if (lineWidth === 0) {\n          scaleX = normY / absDet;\n          scaleY = normX / absDet;\n        } else {\n          const baseArea = lineWidth * absDet;\n          scaleX = normY > baseArea ? normY / baseArea : 1;\n          scaleY = normX > baseArea ? normX / baseArea : 1;\n        }\n      }\n\n      this._cachedScaleForStroking = [scaleX, scaleY];\n    }\n\n    return this._cachedScaleForStroking;\n  }\n\n  rescaleAndStroke(saveRestore) {\n    const {\n      ctx\n    } = this;\n    const {\n      lineWidth\n    } = this.current;\n    const [scaleX, scaleY] = this.getScaleForStroking();\n    ctx.lineWidth = lineWidth || 1;\n\n    if (scaleX === 1 && scaleY === 1) {\n      ctx.stroke();\n      return;\n    }\n\n    let savedMatrix, savedDashes, savedDashOffset;\n\n    if (saveRestore) {\n      savedMatrix = (0, _display_utils.getCurrentTransform)(ctx);\n      savedDashes = ctx.getLineDash().slice();\n      savedDashOffset = ctx.lineDashOffset;\n    }\n\n    ctx.scale(scaleX, scaleY);\n    const scale = Math.max(scaleX, scaleY);\n    ctx.setLineDash(ctx.getLineDash().map(x => x / scale));\n    ctx.lineDashOffset /= scale;\n    ctx.stroke();\n\n    if (saveRestore) {\n      ctx.setTransform(...savedMatrix);\n      ctx.setLineDash(savedDashes);\n      ctx.lineDashOffset = savedDashOffset;\n    }\n  }\n\n  isContentVisible() {\n    for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n      if (!this.markedContentStack[i].visible) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n}\n\nexports.CanvasGraphics = CanvasGraphics;\n\nfunction _restoreInitialState2() {\n  while (this.stateStack.length || this.inSMaskMode) {\n    this.restore();\n  }\n\n  this.ctx.restore();\n\n  if (this.transparentCanvas) {\n    this.ctx = this.compositeCtx;\n    this.ctx.save();\n    this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n    this.ctx.drawImage(this.transparentCanvas, 0, 0);\n    this.ctx.restore();\n    this.transparentCanvas = null;\n  }\n}\n\nfor (const op in _util.OPS) {\n  if (CanvasGraphics.prototype[op] !== undefined) {\n    CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n  }\n}\n\n/***/ }),\n/* 138 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.TilingPattern = exports.PathType = void 0;\nexports.getShadingPattern = getShadingPattern;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nconst PathType = {\n  FILL: \"Fill\",\n  STROKE: \"Stroke\",\n  SHADING: \"Shading\"\n};\nexports.PathType = PathType;\n\nfunction applyBoundingBox(ctx, bbox) {\n  if (!bbox || _is_node.isNodeJS) {\n    return;\n  }\n\n  const width = bbox[2] - bbox[0];\n  const height = bbox[3] - bbox[1];\n  const region = new Path2D();\n  region.rect(bbox[0], bbox[1], width, height);\n  ctx.clip(region);\n}\n\nclass BaseShadingPattern {\n  constructor() {\n    if (this.constructor === BaseShadingPattern) {\n      (0, _util.unreachable)(\"Cannot initialize BaseShadingPattern.\");\n    }\n  }\n\n  getPattern() {\n    (0, _util.unreachable)(\"Abstract method `getPattern` called.\");\n  }\n\n}\n\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n  constructor(IR) {\n    super();\n    this._type = IR[1];\n    this._bbox = IR[2];\n    this._colorStops = IR[3];\n    this._p0 = IR[4];\n    this._p1 = IR[5];\n    this._r0 = IR[6];\n    this._r1 = IR[7];\n    this.matrix = null;\n  }\n\n  _createGradient(ctx) {\n    let grad;\n\n    if (this._type === \"axial\") {\n      grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);\n    } else if (this._type === \"radial\") {\n      grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1);\n    }\n\n    for (const colorStop of this._colorStops) {\n      grad.addColorStop(colorStop[0], colorStop[1]);\n    }\n\n    return grad;\n  }\n\n  getPattern(ctx, owner, inverse, pathType) {\n    let pattern;\n\n    if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n      const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, (0, _display_utils.getCurrentTransform)(ctx)) || [0, 0, 0, 0];\n      const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n      const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n      const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", width, height, true);\n      const tmpCtx = tmpCanvas.context;\n      tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n      tmpCtx.beginPath();\n      tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n      tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n      inverse = _util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]);\n      tmpCtx.transform(...owner.baseTransform);\n\n      if (this.matrix) {\n        tmpCtx.transform(...this.matrix);\n      }\n\n      applyBoundingBox(tmpCtx, this._bbox);\n      tmpCtx.fillStyle = this._createGradient(tmpCtx);\n      tmpCtx.fill();\n      pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n      const domMatrix = new DOMMatrix(inverse);\n\n      try {\n        pattern.setTransform(domMatrix);\n      } catch (ex) {\n        (0, _util.warn)(`RadialAxialShadingPattern.getPattern: \"${ex === null || ex === void 0 ? void 0 : ex.message}\".`);\n      }\n    } else {\n      applyBoundingBox(ctx, this._bbox);\n      pattern = this._createGradient(ctx);\n    }\n\n    return pattern;\n  }\n\n}\n\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n  const coords = context.coords,\n        colors = context.colors;\n  const bytes = data.data,\n        rowSize = data.width * 4;\n  let tmp;\n\n  if (coords[p1 + 1] > coords[p2 + 1]) {\n    tmp = p1;\n    p1 = p2;\n    p2 = tmp;\n    tmp = c1;\n    c1 = c2;\n    c2 = tmp;\n  }\n\n  if (coords[p2 + 1] > coords[p3 + 1]) {\n    tmp = p2;\n    p2 = p3;\n    p3 = tmp;\n    tmp = c2;\n    c2 = c3;\n    c3 = tmp;\n  }\n\n  if (coords[p1 + 1] > coords[p2 + 1]) {\n    tmp = p1;\n    p1 = p2;\n    p2 = tmp;\n    tmp = c1;\n    c1 = c2;\n    c2 = tmp;\n  }\n\n  const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n  const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n  const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n  const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n  const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n  const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n\n  if (y1 >= y3) {\n    return;\n  }\n\n  const c1r = colors[c1],\n        c1g = colors[c1 + 1],\n        c1b = colors[c1 + 2];\n  const c2r = colors[c2],\n        c2g = colors[c2 + 1],\n        c2b = colors[c2 + 2];\n  const c3r = colors[c3],\n        c3g = colors[c3 + 1],\n        c3b = colors[c3 + 2];\n  const minY = Math.round(y1),\n        maxY = Math.round(y3);\n  let xa, car, cag, cab;\n  let xb, cbr, cbg, cbb;\n\n  for (let y = minY; y <= maxY; y++) {\n    if (y < y2) {\n      let k;\n\n      if (y < y1) {\n        k = 0;\n      } else {\n        k = (y1 - y) / (y1 - y2);\n      }\n\n      xa = x1 - (x1 - x2) * k;\n      car = c1r - (c1r - c2r) * k;\n      cag = c1g - (c1g - c2g) * k;\n      cab = c1b - (c1b - c2b) * k;\n    } else {\n      let k;\n\n      if (y > y3) {\n        k = 1;\n      } else if (y2 === y3) {\n        k = 0;\n      } else {\n        k = (y2 - y) / (y2 - y3);\n      }\n\n      xa = x2 - (x2 - x3) * k;\n      car = c2r - (c2r - c3r) * k;\n      cag = c2g - (c2g - c3g) * k;\n      cab = c2b - (c2b - c3b) * k;\n    }\n\n    let k;\n\n    if (y < y1) {\n      k = 0;\n    } else if (y > y3) {\n      k = 1;\n    } else {\n      k = (y1 - y) / (y1 - y3);\n    }\n\n    xb = x1 - (x1 - x3) * k;\n    cbr = c1r - (c1r - c3r) * k;\n    cbg = c1g - (c1g - c3g) * k;\n    cbb = c1b - (c1b - c3b) * k;\n    const x1_ = Math.round(Math.min(xa, xb));\n    const x2_ = Math.round(Math.max(xa, xb));\n    let j = rowSize * y + x1_ * 4;\n\n    for (let x = x1_; x <= x2_; x++) {\n      k = (xa - x) / (xa - xb);\n\n      if (k < 0) {\n        k = 0;\n      } else if (k > 1) {\n        k = 1;\n      }\n\n      bytes[j++] = car - (car - cbr) * k | 0;\n      bytes[j++] = cag - (cag - cbg) * k | 0;\n      bytes[j++] = cab - (cab - cbb) * k | 0;\n      bytes[j++] = 255;\n    }\n  }\n}\n\nfunction drawFigure(data, figure, context) {\n  const ps = figure.coords;\n  const cs = figure.colors;\n  let i, ii;\n\n  switch (figure.type) {\n    case \"lattice\":\n      const verticesPerRow = figure.verticesPerRow;\n      const rows = Math.floor(ps.length / verticesPerRow) - 1;\n      const cols = verticesPerRow - 1;\n\n      for (i = 0; i < rows; i++) {\n        let q = i * verticesPerRow;\n\n        for (let j = 0; j < cols; j++, q++) {\n          drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n          drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n        }\n      }\n\n      break;\n\n    case \"triangles\":\n      for (i = 0, ii = ps.length; i < ii; i += 3) {\n        drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n      }\n\n      break;\n\n    default:\n      throw new Error(\"illegal figure\");\n  }\n}\n\nclass MeshShadingPattern extends BaseShadingPattern {\n  constructor(IR) {\n    super();\n    this._coords = IR[2];\n    this._colors = IR[3];\n    this._figures = IR[4];\n    this._bounds = IR[5];\n    this._bbox = IR[7];\n    this._background = IR[8];\n    this.matrix = null;\n  }\n\n  _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n    const EXPECTED_SCALE = 1.1;\n    const MAX_PATTERN_SIZE = 3000;\n    const BORDER_SIZE = 2;\n    const offsetX = Math.floor(this._bounds[0]);\n    const offsetY = Math.floor(this._bounds[1]);\n    const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n    const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n    const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n    const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n    const scaleX = boundsWidth / width;\n    const scaleY = boundsHeight / height;\n    const context = {\n      coords: this._coords,\n      colors: this._colors,\n      offsetX: -offsetX,\n      offsetY: -offsetY,\n      scaleX: 1 / scaleX,\n      scaleY: 1 / scaleY\n    };\n    const paddedWidth = width + BORDER_SIZE * 2;\n    const paddedHeight = height + BORDER_SIZE * 2;\n    const tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n    const tmpCtx = tmpCanvas.context;\n    const data = tmpCtx.createImageData(width, height);\n\n    if (backgroundColor) {\n      const bytes = data.data;\n\n      for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n        bytes[i] = backgroundColor[0];\n        bytes[i + 1] = backgroundColor[1];\n        bytes[i + 2] = backgroundColor[2];\n        bytes[i + 3] = 255;\n      }\n    }\n\n    for (const figure of this._figures) {\n      drawFigure(data, figure, context);\n    }\n\n    tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n    const canvas = tmpCanvas.canvas;\n    return {\n      canvas,\n      offsetX: offsetX - BORDER_SIZE * scaleX,\n      offsetY: offsetY - BORDER_SIZE * scaleY,\n      scaleX,\n      scaleY\n    };\n  }\n\n  getPattern(ctx, owner, inverse, pathType) {\n    applyBoundingBox(ctx, this._bbox);\n    let scale;\n\n    if (pathType === PathType.SHADING) {\n      scale = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(ctx));\n    } else {\n      scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n\n      if (this.matrix) {\n        const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n        scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n      }\n    }\n\n    const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases);\n\n    if (pathType !== PathType.SHADING) {\n      ctx.setTransform(...owner.baseTransform);\n\n      if (this.matrix) {\n        ctx.transform(...this.matrix);\n      }\n    }\n\n    ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n    ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n    return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n  }\n\n}\n\nclass DummyShadingPattern extends BaseShadingPattern {\n  getPattern() {\n    return \"hotpink\";\n  }\n\n}\n\nfunction getShadingPattern(IR) {\n  switch (IR[0]) {\n    case \"RadialAxial\":\n      return new RadialAxialShadingPattern(IR);\n\n    case \"Mesh\":\n      return new MeshShadingPattern(IR);\n\n    case \"Dummy\":\n      return new DummyShadingPattern();\n  }\n\n  throw new Error(`Unknown IR type: ${IR[0]}`);\n}\n\nconst PaintType = {\n  COLORED: 1,\n  UNCOLORED: 2\n};\n\nclass TilingPattern {\n  static get MAX_PATTERN_SIZE() {\n    return (0, _util.shadow)(this, \"MAX_PATTERN_SIZE\", 3000);\n  }\n\n  constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n    this.operatorList = IR[2];\n    this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n    this.bbox = IR[4];\n    this.xstep = IR[5];\n    this.ystep = IR[6];\n    this.paintType = IR[7];\n    this.tilingType = IR[8];\n    this.color = color;\n    this.ctx = ctx;\n    this.canvasGraphicsFactory = canvasGraphicsFactory;\n    this.baseTransform = baseTransform;\n  }\n\n  createPatternCanvas(owner) {\n    const operatorList = this.operatorList;\n    const bbox = this.bbox;\n    const xstep = this.xstep;\n    const ystep = this.ystep;\n    const paintType = this.paintType;\n    const tilingType = this.tilingType;\n    const color = this.color;\n    const canvasGraphicsFactory = this.canvasGraphicsFactory;\n    (0, _util.info)(\"TilingType: \" + tilingType);\n    const x0 = bbox[0],\n          y0 = bbox[1],\n          x1 = bbox[2],\n          y1 = bbox[3];\n\n    const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n    const curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n\n    const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n    const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n    const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n    const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n    const tmpCtx = tmpCanvas.context;\n    const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n    graphics.groupLevel = owner.groupLevel;\n    this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n    let adjustedX0 = x0;\n    let adjustedY0 = y0;\n    let adjustedX1 = x1;\n    let adjustedY1 = y1;\n\n    if (x0 < 0) {\n      adjustedX0 = 0;\n      adjustedX1 += Math.abs(x0);\n    }\n\n    if (y0 < 0) {\n      adjustedY0 = 0;\n      adjustedY1 += Math.abs(y0);\n    }\n\n    tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n    graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n    tmpCtx.save();\n    this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n    graphics.baseTransform = (0, _display_utils.getCurrentTransform)(graphics.ctx);\n    graphics.executeOperatorList(operatorList);\n    graphics.endDrawing();\n    return {\n      canvas: tmpCanvas.canvas,\n      scaleX: dimx.scale,\n      scaleY: dimy.scale,\n      offsetX: adjustedX0,\n      offsetY: adjustedY0\n    };\n  }\n\n  getSizeAndScale(step, realOutputSize, scale) {\n    step = Math.abs(step);\n    const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n    let size = Math.ceil(step * scale);\n\n    if (size >= maxSize) {\n      size = maxSize;\n    } else {\n      scale = size / step;\n    }\n\n    return {\n      scale,\n      size\n    };\n  }\n\n  clipBbox(graphics, x0, y0, x1, y1) {\n    const bboxWidth = x1 - x0;\n    const bboxHeight = y1 - y0;\n    graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n    graphics.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(graphics.ctx), [x0, y0, x1, y1]);\n    graphics.clip();\n    graphics.endPath();\n  }\n\n  setFillAndStrokeStyleToContext(graphics, paintType, color) {\n    const context = graphics.ctx,\n          current = graphics.current;\n\n    switch (paintType) {\n      case PaintType.COLORED:\n        const ctx = this.ctx;\n        context.fillStyle = ctx.fillStyle;\n        context.strokeStyle = ctx.strokeStyle;\n        current.fillColor = ctx.fillStyle;\n        current.strokeColor = ctx.strokeStyle;\n        break;\n\n      case PaintType.UNCOLORED:\n        const cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]);\n\n        context.fillStyle = cssColor;\n        context.strokeStyle = cssColor;\n        current.fillColor = cssColor;\n        current.strokeColor = cssColor;\n        break;\n\n      default:\n        throw new _util.FormatError(`Unsupported paint type: ${paintType}`);\n    }\n  }\n\n  getPattern(ctx, owner, inverse, pathType) {\n    let matrix = inverse;\n\n    if (pathType !== PathType.SHADING) {\n      matrix = _util.Util.transform(matrix, owner.baseTransform);\n\n      if (this.matrix) {\n        matrix = _util.Util.transform(matrix, this.matrix);\n      }\n    }\n\n    const temporaryPatternCanvas = this.createPatternCanvas(owner);\n    let domMatrix = new DOMMatrix(matrix);\n    domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n    domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n    const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n\n    try {\n      pattern.setTransform(domMatrix);\n    } catch (ex) {\n      (0, _util.warn)(`TilingPattern.getPattern: \"${ex === null || ex === void 0 ? void 0 : ex.message}\".`);\n    }\n\n    return pattern;\n  }\n\n}\n\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 139 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.applyMaskImageData = applyMaskImageData;\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction applyMaskImageData(_ref) {\n  let {\n    src,\n    srcPos = 0,\n    dest,\n    destPos = 0,\n    width,\n    height,\n    inverseDecode = false\n  } = _ref;\n  const opaque = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n  const [zeroMapping, oneMapping] = !inverseDecode ? [opaque, 0] : [0, opaque];\n  const widthInSource = width >> 3;\n  const widthRemainder = width & 7;\n  const srcLength = src.length;\n  dest = new Uint32Array(dest.buffer);\n\n  for (let i = 0; i < height; i++) {\n    for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n      const elem = srcPos < srcLength ? src[srcPos] : 255;\n      dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n    }\n\n    if (widthRemainder === 0) {\n      continue;\n    }\n\n    const elem = srcPos < srcLength ? src[srcPos++] : 255;\n\n    for (let j = 0; j < widthRemainder; j++) {\n      dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;\n    }\n  }\n\n  return {\n    srcPos,\n    destPos\n  };\n}\n\n/***/ }),\n/* 140 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.GlobalWorkerOptions = void 0;\nconst GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;\nGlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? \"\" : GlobalWorkerOptions.workerSrc;\n\n/***/ }),\n/* 141 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.MessageHandler = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nconst CallbackKind = {\n  UNKNOWN: 0,\n  DATA: 1,\n  ERROR: 2\n};\nconst StreamKind = {\n  UNKNOWN: 0,\n  CANCEL: 1,\n  CANCEL_COMPLETE: 2,\n  CLOSE: 3,\n  ENQUEUE: 4,\n  ERROR: 5,\n  PULL: 6,\n  PULL_COMPLETE: 7,\n  START_COMPLETE: 8\n};\n\nfunction wrapReason(reason) {\n  if (!(reason instanceof Error || typeof reason === \"object\" && reason !== null)) {\n    (0, _util.unreachable)('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n  }\n\n  switch (reason.name) {\n    case \"AbortException\":\n      return new _util.AbortException(reason.message);\n\n    case \"MissingPDFException\":\n      return new _util.MissingPDFException(reason.message);\n\n    case \"PasswordException\":\n      return new _util.PasswordException(reason.message, reason.code);\n\n    case \"UnexpectedResponseException\":\n      return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n    case \"UnknownErrorException\":\n      return new _util.UnknownErrorException(reason.message, reason.details);\n\n    default:\n      return new _util.UnknownErrorException(reason.message, reason.toString());\n  }\n}\n\nclass MessageHandler {\n  constructor(sourceName, targetName, comObj) {\n    this.sourceName = sourceName;\n    this.targetName = targetName;\n    this.comObj = comObj;\n    this.callbackId = 1;\n    this.streamId = 1;\n    this.streamSinks = Object.create(null);\n    this.streamControllers = Object.create(null);\n    this.callbackCapabilities = Object.create(null);\n    this.actionHandler = Object.create(null);\n\n    this._onComObjOnMessage = event => {\n      const data = event.data;\n\n      if (data.targetName !== this.sourceName) {\n        return;\n      }\n\n      if (data.stream) {\n        this._processStreamMessage(data);\n\n        return;\n      }\n\n      if (data.callback) {\n        const callbackId = data.callbackId;\n        const capability = this.callbackCapabilities[callbackId];\n\n        if (!capability) {\n          throw new Error(`Cannot resolve callback ${callbackId}`);\n        }\n\n        delete this.callbackCapabilities[callbackId];\n\n        if (data.callback === CallbackKind.DATA) {\n          capability.resolve(data.data);\n        } else if (data.callback === CallbackKind.ERROR) {\n          capability.reject(wrapReason(data.reason));\n        } else {\n          throw new Error(\"Unexpected callback case\");\n        }\n\n        return;\n      }\n\n      const action = this.actionHandler[data.action];\n\n      if (!action) {\n        throw new Error(`Unknown action from worker: ${data.action}`);\n      }\n\n      if (data.callbackId) {\n        const cbSourceName = this.sourceName;\n        const cbTargetName = data.sourceName;\n        new Promise(function (resolve) {\n          resolve(action(data.data));\n        }).then(function (result) {\n          comObj.postMessage({\n            sourceName: cbSourceName,\n            targetName: cbTargetName,\n            callback: CallbackKind.DATA,\n            callbackId: data.callbackId,\n            data: result\n          });\n        }, function (reason) {\n          comObj.postMessage({\n            sourceName: cbSourceName,\n            targetName: cbTargetName,\n            callback: CallbackKind.ERROR,\n            callbackId: data.callbackId,\n            reason: wrapReason(reason)\n          });\n        });\n        return;\n      }\n\n      if (data.streamId) {\n        this._createStreamSink(data);\n\n        return;\n      }\n\n      action(data.data);\n    };\n\n    comObj.addEventListener(\"message\", this._onComObjOnMessage);\n  }\n\n  on(actionName, handler) {\n    const ah = this.actionHandler;\n\n    if (ah[actionName]) {\n      throw new Error(`There is already an actionName called \"${actionName}\"`);\n    }\n\n    ah[actionName] = handler;\n  }\n\n  send(actionName, data, transfers) {\n    this.comObj.postMessage({\n      sourceName: this.sourceName,\n      targetName: this.targetName,\n      action: actionName,\n      data\n    }, transfers);\n  }\n\n  sendWithPromise(actionName, data, transfers) {\n    const callbackId = this.callbackId++;\n    const capability = (0, _util.createPromiseCapability)();\n    this.callbackCapabilities[callbackId] = capability;\n\n    try {\n      this.comObj.postMessage({\n        sourceName: this.sourceName,\n        targetName: this.targetName,\n        action: actionName,\n        callbackId,\n        data\n      }, transfers);\n    } catch (ex) {\n      capability.reject(ex);\n    }\n\n    return capability.promise;\n  }\n\n  sendWithStream(actionName, data, queueingStrategy, transfers) {\n    const streamId = this.streamId++,\n          sourceName = this.sourceName,\n          targetName = this.targetName,\n          comObj = this.comObj;\n    return new ReadableStream({\n      start: controller => {\n        const startCapability = (0, _util.createPromiseCapability)();\n        this.streamControllers[streamId] = {\n          controller,\n          startCall: startCapability,\n          pullCall: null,\n          cancelCall: null,\n          isClosed: false\n        };\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          action: actionName,\n          streamId,\n          data,\n          desiredSize: controller.desiredSize\n        }, transfers);\n        return startCapability.promise;\n      },\n      pull: controller => {\n        const pullCapability = (0, _util.createPromiseCapability)();\n        this.streamControllers[streamId].pullCall = pullCapability;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.PULL,\n          streamId,\n          desiredSize: controller.desiredSize\n        });\n        return pullCapability.promise;\n      },\n      cancel: reason => {\n        (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n        const cancelCapability = (0, _util.createPromiseCapability)();\n        this.streamControllers[streamId].cancelCall = cancelCapability;\n        this.streamControllers[streamId].isClosed = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.CANCEL,\n          streamId,\n          reason: wrapReason(reason)\n        });\n        return cancelCapability.promise;\n      }\n    }, queueingStrategy);\n  }\n\n  _createStreamSink(data) {\n    const streamId = data.streamId,\n          sourceName = this.sourceName,\n          targetName = data.sourceName,\n          comObj = this.comObj;\n    const self = this,\n          action = this.actionHandler[data.action];\n    const streamSink = {\n      enqueue(chunk) {\n        let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n        let transfers = arguments.length > 2 ? arguments[2] : undefined;\n\n        if (this.isCancelled) {\n          return;\n        }\n\n        const lastDesiredSize = this.desiredSize;\n        this.desiredSize -= size;\n\n        if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n          this.sinkCapability = (0, _util.createPromiseCapability)();\n          this.ready = this.sinkCapability.promise;\n        }\n\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.ENQUEUE,\n          streamId,\n          chunk\n        }, transfers);\n      },\n\n      close() {\n        if (this.isCancelled) {\n          return;\n        }\n\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.CLOSE,\n          streamId\n        });\n        delete self.streamSinks[streamId];\n      },\n\n      error(reason) {\n        (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n\n        if (this.isCancelled) {\n          return;\n        }\n\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.ERROR,\n          streamId,\n          reason: wrapReason(reason)\n        });\n      },\n\n      sinkCapability: (0, _util.createPromiseCapability)(),\n      onPull: null,\n      onCancel: null,\n      isCancelled: false,\n      desiredSize: data.desiredSize,\n      ready: null\n    };\n    streamSink.sinkCapability.resolve();\n    streamSink.ready = streamSink.sinkCapability.promise;\n    this.streamSinks[streamId] = streamSink;\n    new Promise(function (resolve) {\n      resolve(action(data.data, streamSink));\n    }).then(function () {\n      comObj.postMessage({\n        sourceName,\n        targetName,\n        stream: StreamKind.START_COMPLETE,\n        streamId,\n        success: true\n      });\n    }, function (reason) {\n      comObj.postMessage({\n        sourceName,\n        targetName,\n        stream: StreamKind.START_COMPLETE,\n        streamId,\n        reason: wrapReason(reason)\n      });\n    });\n  }\n\n  _processStreamMessage(data) {\n    const streamId = data.streamId,\n          sourceName = this.sourceName,\n          targetName = data.sourceName,\n          comObj = this.comObj;\n    const streamController = this.streamControllers[streamId],\n          streamSink = this.streamSinks[streamId];\n\n    switch (data.stream) {\n      case StreamKind.START_COMPLETE:\n        if (data.success) {\n          streamController.startCall.resolve();\n        } else {\n          streamController.startCall.reject(wrapReason(data.reason));\n        }\n\n        break;\n\n      case StreamKind.PULL_COMPLETE:\n        if (data.success) {\n          streamController.pullCall.resolve();\n        } else {\n          streamController.pullCall.reject(wrapReason(data.reason));\n        }\n\n        break;\n\n      case StreamKind.PULL:\n        if (!streamSink) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            success: true\n          });\n          break;\n        }\n\n        if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n          streamSink.sinkCapability.resolve();\n        }\n\n        streamSink.desiredSize = data.desiredSize;\n        new Promise(function (resolve) {\n          resolve(streamSink.onPull && streamSink.onPull());\n        }).then(function () {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            success: true\n          });\n        }, function (reason) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            reason: wrapReason(reason)\n          });\n        });\n        break;\n\n      case StreamKind.ENQUEUE:\n        (0, _util.assert)(streamController, \"enqueue should have stream controller\");\n\n        if (streamController.isClosed) {\n          break;\n        }\n\n        streamController.controller.enqueue(data.chunk);\n        break;\n\n      case StreamKind.CLOSE:\n        (0, _util.assert)(streamController, \"close should have stream controller\");\n\n        if (streamController.isClosed) {\n          break;\n        }\n\n        streamController.isClosed = true;\n        streamController.controller.close();\n\n        this._deleteStreamController(streamController, streamId);\n\n        break;\n\n      case StreamKind.ERROR:\n        (0, _util.assert)(streamController, \"error should have stream controller\");\n        streamController.controller.error(wrapReason(data.reason));\n\n        this._deleteStreamController(streamController, streamId);\n\n        break;\n\n      case StreamKind.CANCEL_COMPLETE:\n        if (data.success) {\n          streamController.cancelCall.resolve();\n        } else {\n          streamController.cancelCall.reject(wrapReason(data.reason));\n        }\n\n        this._deleteStreamController(streamController, streamId);\n\n        break;\n\n      case StreamKind.CANCEL:\n        if (!streamSink) {\n          break;\n        }\n\n        new Promise(function (resolve) {\n          resolve(streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason)));\n        }).then(function () {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.CANCEL_COMPLETE,\n            streamId,\n            success: true\n          });\n        }, function (reason) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.CANCEL_COMPLETE,\n            streamId,\n            reason: wrapReason(reason)\n          });\n        });\n        streamSink.sinkCapability.reject(wrapReason(data.reason));\n        streamSink.isCancelled = true;\n        delete this.streamSinks[streamId];\n        break;\n\n      default:\n        throw new Error(\"Unexpected stream case\");\n    }\n  }\n\n  async _deleteStreamController(streamController, streamId) {\n    await Promise.allSettled([streamController.startCall && streamController.startCall.promise, streamController.pullCall && streamController.pullCall.promise, streamController.cancelCall && streamController.cancelCall.promise]);\n    delete this.streamControllers[streamId];\n  }\n\n  destroy() {\n    this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n  }\n\n}\n\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 142 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Metadata = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _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; } }\n\nvar _metadataMap = /*#__PURE__*/new WeakMap();\n\nvar _data = /*#__PURE__*/new WeakMap();\n\nclass Metadata {\n  constructor(_ref) {\n    let {\n      parsedData,\n      rawData\n    } = _ref;\n\n    _classPrivateFieldInitSpec(this, _metadataMap, {\n      writable: true,\n      value: void 0\n    });\n\n    _classPrivateFieldInitSpec(this, _data, {\n      writable: true,\n      value: void 0\n    });\n\n    _classPrivateFieldSet(this, _metadataMap, parsedData);\n\n    _classPrivateFieldSet(this, _data, rawData);\n  }\n\n  getRaw() {\n    return _classPrivateFieldGet(this, _data);\n  }\n\n  get(name) {\n    var _classPrivateFieldGet2;\n\n    return (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _metadataMap).get(name)) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : null;\n  }\n\n  getAll() {\n    return (0, _util.objectFromMap)(_classPrivateFieldGet(this, _metadataMap));\n  }\n\n  has(name) {\n    return _classPrivateFieldGet(this, _metadataMap).has(name);\n  }\n\n}\n\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 143 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.OptionalContentConfig = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _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; } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nconst INTERNAL = Symbol(\"INTERNAL\");\n\nvar _visible = /*#__PURE__*/new WeakMap();\n\nclass OptionalContentGroup {\n  constructor(name, intent) {\n    _classPrivateFieldInitSpec(this, _visible, {\n      writable: true,\n      value: true\n    });\n\n    this.name = name;\n    this.intent = intent;\n  }\n\n  get visible() {\n    return _classPrivateFieldGet(this, _visible);\n  }\n\n  _setVisible(internal, visible) {\n    if (internal !== INTERNAL) {\n      (0, _util.unreachable)(\"Internal method `_setVisible` called.\");\n    }\n\n    _classPrivateFieldSet(this, _visible, visible);\n  }\n\n}\n\nvar _cachedHasInitialVisibility = /*#__PURE__*/new WeakMap();\n\nvar _groups = /*#__PURE__*/new WeakMap();\n\nvar _initialVisibility = /*#__PURE__*/new WeakMap();\n\nvar _order = /*#__PURE__*/new WeakMap();\n\nvar _evaluateVisibilityExpression = /*#__PURE__*/new WeakSet();\n\nclass OptionalContentConfig {\n  constructor(data) {\n    _classPrivateMethodInitSpec(this, _evaluateVisibilityExpression);\n\n    _classPrivateFieldInitSpec(this, _cachedHasInitialVisibility, {\n      writable: true,\n      value: true\n    });\n\n    _classPrivateFieldInitSpec(this, _groups, {\n      writable: true,\n      value: new Map()\n    });\n\n    _classPrivateFieldInitSpec(this, _initialVisibility, {\n      writable: true,\n      value: null\n    });\n\n    _classPrivateFieldInitSpec(this, _order, {\n      writable: true,\n      value: null\n    });\n\n    this.name = null;\n    this.creator = null;\n\n    if (data === null) {\n      return;\n    }\n\n    this.name = data.name;\n    this.creator = data.creator;\n\n    _classPrivateFieldSet(this, _order, data.order);\n\n    for (const group of data.groups) {\n      _classPrivateFieldGet(this, _groups).set(group.id, new OptionalContentGroup(group.name, group.intent));\n    }\n\n    if (data.baseState === \"OFF\") {\n      for (const group of _classPrivateFieldGet(this, _groups).values()) {\n        group._setVisible(INTERNAL, false);\n      }\n    }\n\n    for (const on of data.on) {\n      _classPrivateFieldGet(this, _groups).get(on)._setVisible(INTERNAL, true);\n    }\n\n    for (const off of data.off) {\n      _classPrivateFieldGet(this, _groups).get(off)._setVisible(INTERNAL, false);\n    }\n\n    _classPrivateFieldSet(this, _initialVisibility, new Map());\n\n    for (const [id, group] of _classPrivateFieldGet(this, _groups)) {\n      _classPrivateFieldGet(this, _initialVisibility).set(id, group.visible);\n    }\n  }\n\n  isVisible(group) {\n    if (_classPrivateFieldGet(this, _groups).size === 0) {\n      return true;\n    }\n\n    if (!group) {\n      (0, _util.warn)(\"Optional content group not defined.\");\n      return true;\n    }\n\n    if (group.type === \"OCG\") {\n      if (!_classPrivateFieldGet(this, _groups).has(group.id)) {\n        (0, _util.warn)(`Optional content group not found: ${group.id}`);\n        return true;\n      }\n\n      return _classPrivateFieldGet(this, _groups).get(group.id).visible;\n    } else if (group.type === \"OCMD\") {\n      if (group.expression) {\n        return _classPrivateMethodGet(this, _evaluateVisibilityExpression, _evaluateVisibilityExpression2).call(this, group.expression);\n      }\n\n      if (!group.policy || group.policy === \"AnyOn\") {\n        for (const id of group.ids) {\n          if (!_classPrivateFieldGet(this, _groups).has(id)) {\n            (0, _util.warn)(`Optional content group not found: ${id}`);\n            return true;\n          }\n\n          if (_classPrivateFieldGet(this, _groups).get(id).visible) {\n            return true;\n          }\n        }\n\n        return false;\n      } else if (group.policy === \"AllOn\") {\n        for (const id of group.ids) {\n          if (!_classPrivateFieldGet(this, _groups).has(id)) {\n            (0, _util.warn)(`Optional content group not found: ${id}`);\n            return true;\n          }\n\n          if (!_classPrivateFieldGet(this, _groups).get(id).visible) {\n            return false;\n          }\n        }\n\n        return true;\n      } else if (group.policy === \"AnyOff\") {\n        for (const id of group.ids) {\n          if (!_classPrivateFieldGet(this, _groups).has(id)) {\n            (0, _util.warn)(`Optional content group not found: ${id}`);\n            return true;\n          }\n\n          if (!_classPrivateFieldGet(this, _groups).get(id).visible) {\n            return true;\n          }\n        }\n\n        return false;\n      } else if (group.policy === \"AllOff\") {\n        for (const id of group.ids) {\n          if (!_classPrivateFieldGet(this, _groups).has(id)) {\n            (0, _util.warn)(`Optional content group not found: ${id}`);\n            return true;\n          }\n\n          if (_classPrivateFieldGet(this, _groups).get(id).visible) {\n            return false;\n          }\n        }\n\n        return true;\n      }\n\n      (0, _util.warn)(`Unknown optional content policy ${group.policy}.`);\n      return true;\n    }\n\n    (0, _util.warn)(`Unknown group type ${group.type}.`);\n    return true;\n  }\n\n  setVisibility(id) {\n    let visible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n    if (!_classPrivateFieldGet(this, _groups).has(id)) {\n      (0, _util.warn)(`Optional content group not found: ${id}`);\n      return;\n    }\n\n    _classPrivateFieldGet(this, _groups).get(id)._setVisible(INTERNAL, !!visible);\n\n    _classPrivateFieldSet(this, _cachedHasInitialVisibility, null);\n  }\n\n  get hasInitialVisibility() {\n    if (_classPrivateFieldGet(this, _cachedHasInitialVisibility) !== null) {\n      return _classPrivateFieldGet(this, _cachedHasInitialVisibility);\n    }\n\n    for (const [id, group] of _classPrivateFieldGet(this, _groups)) {\n      const visible = _classPrivateFieldGet(this, _initialVisibility).get(id);\n\n      if (group.visible !== visible) {\n        return _classPrivateFieldSet(this, _cachedHasInitialVisibility, false);\n      }\n    }\n\n    return _classPrivateFieldSet(this, _cachedHasInitialVisibility, true);\n  }\n\n  getOrder() {\n    if (!_classPrivateFieldGet(this, _groups).size) {\n      return null;\n    }\n\n    if (_classPrivateFieldGet(this, _order)) {\n      return _classPrivateFieldGet(this, _order).slice();\n    }\n\n    return [..._classPrivateFieldGet(this, _groups).keys()];\n  }\n\n  getGroups() {\n    return _classPrivateFieldGet(this, _groups).size > 0 ? (0, _util.objectFromMap)(_classPrivateFieldGet(this, _groups)) : null;\n  }\n\n  getGroup(id) {\n    return _classPrivateFieldGet(this, _groups).get(id) || null;\n  }\n\n}\n\nexports.OptionalContentConfig = OptionalContentConfig;\n\nfunction _evaluateVisibilityExpression2(array) {\n  const length = array.length;\n\n  if (length < 2) {\n    return true;\n  }\n\n  const operator = array[0];\n\n  for (let i = 1; i < length; i++) {\n    const element = array[i];\n    let state;\n\n    if (Array.isArray(element)) {\n      state = _classPrivateMethodGet(this, _evaluateVisibilityExpression, _evaluateVisibilityExpression2).call(this, element);\n    } else if (_classPrivateFieldGet(this, _groups).has(element)) {\n      state = _classPrivateFieldGet(this, _groups).get(element).visible;\n    } else {\n      (0, _util.warn)(`Optional content group not found: ${element}`);\n      return true;\n    }\n\n    switch (operator) {\n      case \"And\":\n        if (!state) {\n          return false;\n        }\n\n        break;\n\n      case \"Or\":\n        if (state) {\n          return true;\n        }\n\n        break;\n\n      case \"Not\":\n        return !state;\n\n      default:\n        return true;\n    }\n  }\n\n  return operator === \"And\";\n}\n\n/***/ }),\n/* 144 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PDFDataTransportStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nclass PDFDataTransportStream {\n  constructor(params, pdfDataRangeTransport) {\n    (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n    this._queuedChunks = [];\n    this._progressiveDone = params.progressiveDone || false;\n    this._contentDispositionFilename = params.contentDispositionFilename || null;\n    const initialData = params.initialData;\n\n    if ((initialData === null || initialData === void 0 ? void 0 : initialData.length) > 0) {\n      const buffer = new Uint8Array(initialData).buffer;\n\n      this._queuedChunks.push(buffer);\n    }\n\n    this._pdfDataRangeTransport = pdfDataRangeTransport;\n    this._isStreamingSupported = !params.disableStream;\n    this._isRangeSupported = !params.disableRange;\n    this._contentLength = params.length;\n    this._fullRequestReader = null;\n    this._rangeReaders = [];\n\n    this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n      this._onReceiveData({\n        begin,\n        chunk\n      });\n    });\n\n    this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n      this._onProgress({\n        loaded,\n        total\n      });\n    });\n\n    this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n      this._onReceiveData({\n        chunk\n      });\n    });\n\n    this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n      this._onProgressiveDone();\n    });\n\n    this._pdfDataRangeTransport.transportReady();\n  }\n\n  _onReceiveData(args) {\n    const buffer = new Uint8Array(args.chunk).buffer;\n\n    if (args.begin === undefined) {\n      if (this._fullRequestReader) {\n        this._fullRequestReader._enqueue(buffer);\n      } else {\n        this._queuedChunks.push(buffer);\n      }\n    } else {\n      const found = this._rangeReaders.some(function (rangeReader) {\n        if (rangeReader._begin !== args.begin) {\n          return false;\n        }\n\n        rangeReader._enqueue(buffer);\n\n        return true;\n      });\n\n      (0, _util.assert)(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n    }\n  }\n\n  get _progressiveDataLength() {\n    var _this$_fullRequestRea, _this$_fullRequestRea2;\n\n    return (_this$_fullRequestRea = (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2._loaded) !== null && _this$_fullRequestRea !== void 0 ? _this$_fullRequestRea : 0;\n  }\n\n  _onProgress(evt) {\n    if (evt.total === undefined) {\n      const firstReader = this._rangeReaders[0];\n\n      if (firstReader !== null && firstReader !== void 0 && firstReader.onProgress) {\n        firstReader.onProgress({\n          loaded: evt.loaded\n        });\n      }\n    } else {\n      const fullReader = this._fullRequestReader;\n\n      if (fullReader !== null && fullReader !== void 0 && fullReader.onProgress) {\n        fullReader.onProgress({\n          loaded: evt.loaded,\n          total: evt.total\n        });\n      }\n    }\n  }\n\n  _onProgressiveDone() {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.progressiveDone();\n    }\n\n    this._progressiveDone = true;\n  }\n\n  _removeRangeReader(reader) {\n    const i = this._rangeReaders.indexOf(reader);\n\n    if (i >= 0) {\n      this._rangeReaders.splice(i, 1);\n    }\n  }\n\n  getFullReader() {\n    (0, _util.assert)(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n    const queuedChunks = this._queuedChunks;\n    this._queuedChunks = null;\n    return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename);\n  }\n\n  getRangeReader(begin, end) {\n    if (end <= this._progressiveDataLength) {\n      return null;\n    }\n\n    const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n\n    this._pdfDataRangeTransport.requestDataRange(begin, end);\n\n    this._rangeReaders.push(reader);\n\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.cancel(reason);\n    }\n\n    for (const reader of this._rangeReaders.slice(0)) {\n      reader.cancel(reason);\n    }\n\n    this._pdfDataRangeTransport.abort();\n  }\n\n}\n\nexports.PDFDataTransportStream = PDFDataTransportStream;\n\nclass PDFDataTransportStreamReader {\n  constructor(stream, queuedChunks) {\n    let progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    let contentDispositionFilename = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n    this._stream = stream;\n    this._done = progressiveDone || false;\n    this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null;\n    this._queuedChunks = queuedChunks || [];\n    this._loaded = 0;\n\n    for (const chunk of this._queuedChunks) {\n      this._loaded += chunk.byteLength;\n    }\n\n    this._requests = [];\n    this._headersReady = Promise.resolve();\n    stream._fullRequestReader = this;\n    this.onProgress = null;\n  }\n\n  _enqueue(chunk) {\n    if (this._done) {\n      return;\n    }\n\n    if (this._requests.length > 0) {\n      const requestCapability = this._requests.shift();\n\n      requestCapability.resolve({\n        value: chunk,\n        done: false\n      });\n    } else {\n      this._queuedChunks.push(chunk);\n    }\n\n    this._loaded += chunk.byteLength;\n  }\n\n  get headersReady() {\n    return this._headersReady;\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get isRangeSupported() {\n    return this._stream._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._stream._isStreamingSupported;\n  }\n\n  get contentLength() {\n    return this._stream._contentLength;\n  }\n\n  async read() {\n    if (this._queuedChunks.length > 0) {\n      const chunk = this._queuedChunks.shift();\n\n      return {\n        value: chunk,\n        done: false\n      };\n    }\n\n    if (this._done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n\n    const requestCapability = (0, _util.createPromiseCapability)();\n\n    this._requests.push(requestCapability);\n\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({\n        value: undefined,\n        done: true\n      });\n    }\n\n    this._requests.length = 0;\n  }\n\n  progressiveDone() {\n    if (this._done) {\n      return;\n    }\n\n    this._done = true;\n  }\n\n}\n\nclass PDFDataTransportStreamRangeReader {\n  constructor(stream, begin, end) {\n    this._stream = stream;\n    this._begin = begin;\n    this._end = end;\n    this._queuedChunk = null;\n    this._requests = [];\n    this._done = false;\n    this.onProgress = null;\n  }\n\n  _enqueue(chunk) {\n    if (this._done) {\n      return;\n    }\n\n    if (this._requests.length === 0) {\n      this._queuedChunk = chunk;\n    } else {\n      const requestsCapability = this._requests.shift();\n\n      requestsCapability.resolve({\n        value: chunk,\n        done: false\n      });\n\n      for (const requestCapability of this._requests) {\n        requestCapability.resolve({\n          value: undefined,\n          done: true\n        });\n      }\n\n      this._requests.length = 0;\n    }\n\n    this._done = true;\n\n    this._stream._removeRangeReader(this);\n  }\n\n  get isStreamingSupported() {\n    return false;\n  }\n\n  async read() {\n    if (this._queuedChunk) {\n      const chunk = this._queuedChunk;\n      this._queuedChunk = null;\n      return {\n        value: chunk,\n        done: false\n      };\n    }\n\n    if (this._done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n\n    const requestCapability = (0, _util.createPromiseCapability)();\n\n    this._requests.push(requestCapability);\n\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({\n        value: undefined,\n        done: true\n      });\n    }\n\n    this._requests.length = 0;\n\n    this._stream._removeRangeReader(this);\n  }\n\n}\n\n/***/ }),\n/* 145 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XfaText = void 0;\n\nclass XfaText {\n  static textContent(xfa) {\n    const items = [];\n    const output = {\n      items,\n      styles: Object.create(null)\n    };\n\n    function walk(node) {\n      var _node$attributes;\n\n      if (!node) {\n        return;\n      }\n\n      let str = null;\n      const name = node.name;\n\n      if (name === \"#text\") {\n        str = node.value;\n      } else if (!XfaText.shouldBuildText(name)) {\n        return;\n      } else if (node !== null && node !== void 0 && (_node$attributes = node.attributes) !== null && _node$attributes !== void 0 && _node$attributes.textContent) {\n        str = node.attributes.textContent;\n      } else if (node.value) {\n        str = node.value;\n      }\n\n      if (str !== null) {\n        items.push({\n          str\n        });\n      }\n\n      if (!node.children) {\n        return;\n      }\n\n      for (const child of node.children) {\n        walk(child);\n      }\n    }\n\n    walk(xfa);\n    return output;\n  }\n\n  static shouldBuildText(name) {\n    return !(name === \"textarea\" || name === \"input\" || name === \"option\" || name === \"select\");\n  }\n\n}\n\nexports.XfaText = XfaText;\n\n/***/ }),\n/* 146 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.NodeStandardFontDataFactory = exports.NodeCanvasFactory = exports.NodeCMapReaderFactory = void 0;\n\nvar _base_factory = __w_pdfjs_require__(134);\n\n;\n\nconst fetchData = function (url) {\n  return new Promise((resolve, reject) => {\n    const fs = __webpack_require__(/*! fs */ 1);\n\n    fs.readFile(url, (error, data) => {\n      if (error || !data) {\n        reject(new Error(error));\n        return;\n      }\n\n      resolve(new Uint8Array(data));\n    });\n  });\n};\n\nclass NodeCanvasFactory extends _base_factory.BaseCanvasFactory {\n  _createCanvas(width, height) {\n    const Canvas = __webpack_require__(/*! canvas */ 2);\n\n    return Canvas.createCanvas(width, height);\n  }\n\n}\n\nexports.NodeCanvasFactory = NodeCanvasFactory;\n\nclass NodeCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n  _fetchData(url, compressionType) {\n    return fetchData(url).then(data => {\n      return {\n        cMapData: data,\n        compressionType\n      };\n    });\n  }\n\n}\n\nexports.NodeCMapReaderFactory = NodeCMapReaderFactory;\n\nclass NodeStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n  _fetchData(url) {\n    return fetchData(url);\n  }\n\n}\n\nexports.NodeStandardFontDataFactory = NodeStandardFontDataFactory;\n\n/***/ }),\n/* 147 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.AnnotationEditorLayer = void 0;\n\nvar _tools = __w_pdfjs_require__(132);\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _freetext = __w_pdfjs_require__(148);\n\nvar _ink = __w_pdfjs_require__(149);\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _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; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _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; } }\n\nvar _accessibilityManager = /*#__PURE__*/new WeakMap();\n\nvar _allowClick = /*#__PURE__*/new WeakMap();\n\nvar _boundPointerup = /*#__PURE__*/new WeakMap();\n\nvar _boundPointerdown = /*#__PURE__*/new WeakMap();\n\nvar _editors = /*#__PURE__*/new WeakMap();\n\nvar _hadPointerDown = /*#__PURE__*/new WeakMap();\n\nvar _isCleaningUp = /*#__PURE__*/new WeakMap();\n\nvar _uiManager = /*#__PURE__*/new WeakMap();\n\nvar _changeParent = /*#__PURE__*/new WeakSet();\n\nvar _createNewEditor = /*#__PURE__*/new WeakSet();\n\nvar _createAndAddNewEditor = /*#__PURE__*/new WeakSet();\n\nvar _cleanup = /*#__PURE__*/new WeakSet();\n\nclass AnnotationEditorLayer {\n  constructor(options) {\n    _classPrivateMethodInitSpec(this, _cleanup);\n\n    _classPrivateMethodInitSpec(this, _createAndAddNewEditor);\n\n    _classPrivateMethodInitSpec(this, _createNewEditor);\n\n    _classPrivateMethodInitSpec(this, _changeParent);\n\n    _classPrivateFieldInitSpec(this, _accessibilityManager, {\n      writable: true,\n      value: void 0\n    });\n\n    _classPrivateFieldInitSpec(this, _allowClick, {\n      writable: true,\n      value: false\n    });\n\n    _classPrivateFieldInitSpec(this, _boundPointerup, {\n      writable: true,\n      value: this.pointerup.bind(this)\n    });\n\n    _classPrivateFieldInitSpec(this, _boundPointerdown, {\n      writable: true,\n      value: this.pointerdown.bind(this)\n    });\n\n    _classPrivateFieldInitSpec(this, _editors, {\n      writable: true,\n      value: new Map()\n    });\n\n    _classPrivateFieldInitSpec(this, _hadPointerDown, {\n      writable: true,\n      value: false\n    });\n\n    _classPrivateFieldInitSpec(this, _isCleaningUp, {\n      writable: true,\n      value: false\n    });\n\n    _classPrivateFieldInitSpec(this, _uiManager, {\n      writable: true,\n      value: void 0\n    });\n\n    if (!AnnotationEditorLayer._initialized) {\n      AnnotationEditorLayer._initialized = true;\n\n      _freetext.FreeTextEditor.initialize(options.l10n);\n\n      _ink.InkEditor.initialize(options.l10n);\n\n      options.uiManager.registerEditorTypes([_freetext.FreeTextEditor, _ink.InkEditor]);\n    }\n\n    _classPrivateFieldSet(this, _uiManager, options.uiManager);\n\n    this.annotationStorage = options.annotationStorage;\n    this.pageIndex = options.pageIndex;\n    this.div = options.div;\n\n    _classPrivateFieldSet(this, _accessibilityManager, options.accessibilityManager);\n\n    _classPrivateFieldGet(this, _uiManager).addLayer(this);\n  }\n\n  updateToolbar(mode) {\n    _classPrivateFieldGet(this, _uiManager).updateToolbar(mode);\n  }\n\n  updateMode() {\n    let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _classPrivateFieldGet(this, _uiManager).getMode();\n\n    _classPrivateMethodGet(this, _cleanup, _cleanup2).call(this);\n\n    if (mode === _util.AnnotationEditorType.INK) {\n      this.addInkEditorIfNeeded(false);\n      this.disableClick();\n    } else {\n      this.enableClick();\n    }\n\n    _classPrivateFieldGet(this, _uiManager).unselectAll();\n  }\n\n  addInkEditorIfNeeded(isCommitting) {\n    if (!isCommitting && _classPrivateFieldGet(this, _uiManager).getMode() !== _util.AnnotationEditorType.INK) {\n      return;\n    }\n\n    if (!isCommitting) {\n      for (const editor of _classPrivateFieldGet(this, _editors).values()) {\n        if (editor.isEmpty()) {\n          editor.setInBackground();\n          return;\n        }\n      }\n    }\n\n    const editor = _classPrivateMethodGet(this, _createAndAddNewEditor, _createAndAddNewEditor2).call(this, {\n      offsetX: 0,\n      offsetY: 0\n    });\n\n    editor.setInBackground();\n  }\n\n  setEditingState(isEditing) {\n    _classPrivateFieldGet(this, _uiManager).setEditingState(isEditing);\n  }\n\n  addCommands(params) {\n    _classPrivateFieldGet(this, _uiManager).addCommands(params);\n  }\n\n  enable() {\n    this.div.style.pointerEvents = \"auto\";\n\n    for (const editor of _classPrivateFieldGet(this, _editors).values()) {\n      editor.enableEditing();\n    }\n  }\n\n  disable() {\n    this.div.style.pointerEvents = \"none\";\n\n    for (const editor of _classPrivateFieldGet(this, _editors).values()) {\n      editor.disableEditing();\n    }\n  }\n\n  setActiveEditor(editor) {\n    const currentActive = _classPrivateFieldGet(this, _uiManager).getActive();\n\n    if (currentActive === editor) {\n      return;\n    }\n\n    _classPrivateFieldGet(this, _uiManager).setActiveEditor(editor);\n  }\n\n  enableClick() {\n    this.div.addEventListener(\"pointerdown\", _classPrivateFieldGet(this, _boundPointerdown));\n    this.div.addEventListener(\"pointerup\", _classPrivateFieldGet(this, _boundPointerup));\n  }\n\n  disableClick() {\n    this.div.removeEventListener(\"pointerdown\", _classPrivateFieldGet(this, _boundPointerdown));\n    this.div.removeEventListener(\"pointerup\", _classPrivateFieldGet(this, _boundPointerup));\n  }\n\n  attach(editor) {\n    _classPrivateFieldGet(this, _editors).set(editor.id, editor);\n  }\n\n  detach(editor) {\n    var _classPrivateFieldGet2;\n\n    _classPrivateFieldGet(this, _editors).delete(editor.id);\n\n    (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _accessibilityManager)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.removePointerInTextLayer(editor.contentDiv);\n  }\n\n  remove(editor) {\n    _classPrivateFieldGet(this, _uiManager).removeEditor(editor);\n\n    this.detach(editor);\n    this.annotationStorage.remove(editor.id);\n    editor.div.style.display = \"none\";\n    setTimeout(() => {\n      editor.div.style.display = \"\";\n      editor.div.remove();\n      editor.isAttachedToDOM = false;\n\n      if (document.activeElement === document.body) {\n        _classPrivateFieldGet(this, _uiManager).focusMainContainer();\n      }\n    }, 0);\n\n    if (!_classPrivateFieldGet(this, _isCleaningUp)) {\n      this.addInkEditorIfNeeded(false);\n    }\n  }\n\n  add(editor) {\n    _classPrivateMethodGet(this, _changeParent, _changeParent2).call(this, editor);\n\n    _classPrivateFieldGet(this, _uiManager).addEditor(editor);\n\n    this.attach(editor);\n\n    if (!editor.isAttachedToDOM) {\n      const div = editor.render();\n      this.div.append(div);\n      editor.isAttachedToDOM = true;\n    }\n\n    this.moveEditorInDOM(editor);\n    editor.onceAdded();\n    this.addToAnnotationStorage(editor);\n  }\n\n  moveEditorInDOM(editor) {\n    var _classPrivateFieldGet3;\n\n    (_classPrivateFieldGet3 = _classPrivateFieldGet(this, _accessibilityManager)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.moveElementInDOM(this.div, editor.div, editor.contentDiv, true);\n  }\n\n  addToAnnotationStorage(editor) {\n    if (!editor.isEmpty() && !this.annotationStorage.has(editor.id)) {\n      this.annotationStorage.setValue(editor.id, editor);\n    }\n  }\n\n  addOrRebuild(editor) {\n    if (editor.needsToBeRebuilt()) {\n      editor.rebuild();\n    } else {\n      this.add(editor);\n    }\n  }\n\n  addANewEditor(editor) {\n    const cmd = () => {\n      this.addOrRebuild(editor);\n    };\n\n    const undo = () => {\n      editor.remove();\n    };\n\n    this.addCommands({\n      cmd,\n      undo,\n      mustExec: true\n    });\n  }\n\n  addUndoableEditor(editor) {\n    const cmd = () => {\n      this.addOrRebuild(editor);\n    };\n\n    const undo = () => {\n      editor.remove();\n    };\n\n    this.addCommands({\n      cmd,\n      undo,\n      mustExec: false\n    });\n  }\n\n  getNextId() {\n    return _classPrivateFieldGet(this, _uiManager).getId();\n  }\n\n  deserialize(data) {\n    switch (data.annotationType) {\n      case _util.AnnotationEditorType.FREETEXT:\n        return _freetext.FreeTextEditor.deserialize(data, this);\n\n      case _util.AnnotationEditorType.INK:\n        return _ink.InkEditor.deserialize(data, this);\n    }\n\n    return null;\n  }\n\n  setSelected(editor) {\n    _classPrivateFieldGet(this, _uiManager).setSelected(editor);\n  }\n\n  toggleSelected(editor) {\n    _classPrivateFieldGet(this, _uiManager).toggleSelected(editor);\n  }\n\n  isSelected(editor) {\n    return _classPrivateFieldGet(this, _uiManager).isSelected(editor);\n  }\n\n  unselect(editor) {\n    _classPrivateFieldGet(this, _uiManager).unselect(editor);\n  }\n\n  pointerup(event) {\n    const isMac = _tools.KeyboardManager.platform.isMac;\n\n    if (event.button !== 0 || event.ctrlKey && isMac) {\n      return;\n    }\n\n    if (event.target !== this.div) {\n      return;\n    }\n\n    if (!_classPrivateFieldGet(this, _hadPointerDown)) {\n      return;\n    }\n\n    _classPrivateFieldSet(this, _hadPointerDown, false);\n\n    if (!_classPrivateFieldGet(this, _allowClick)) {\n      _classPrivateFieldSet(this, _allowClick, true);\n\n      return;\n    }\n\n    _classPrivateMethodGet(this, _createAndAddNewEditor, _createAndAddNewEditor2).call(this, event);\n  }\n\n  pointerdown(event) {\n    const isMac = _tools.KeyboardManager.platform.isMac;\n\n    if (event.button !== 0 || event.ctrlKey && isMac) {\n      return;\n    }\n\n    if (event.target !== this.div) {\n      return;\n    }\n\n    _classPrivateFieldSet(this, _hadPointerDown, true);\n\n    const editor = _classPrivateFieldGet(this, _uiManager).getActive();\n\n    _classPrivateFieldSet(this, _allowClick, !editor || editor.isEmpty());\n  }\n\n  drop(event) {\n    const id = event.dataTransfer.getData(\"text/plain\");\n\n    const editor = _classPrivateFieldGet(this, _uiManager).getEditor(id);\n\n    if (!editor) {\n      return;\n    }\n\n    event.preventDefault();\n    event.dataTransfer.dropEffect = \"move\";\n\n    _classPrivateMethodGet(this, _changeParent, _changeParent2).call(this, editor);\n\n    const rect = this.div.getBoundingClientRect();\n    const endX = event.clientX - rect.x;\n    const endY = event.clientY - rect.y;\n    editor.translate(endX - editor.startX, endY - editor.startY);\n    this.moveEditorInDOM(editor);\n    editor.div.focus();\n  }\n\n  dragover(event) {\n    event.preventDefault();\n  }\n\n  destroy() {\n    var _classPrivateFieldGet4;\n\n    if (((_classPrivateFieldGet4 = _classPrivateFieldGet(this, _uiManager).getActive()) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.parent) === this) {\n      _classPrivateFieldGet(this, _uiManager).setActiveEditor(null);\n    }\n\n    for (const editor of _classPrivateFieldGet(this, _editors).values()) {\n      var _classPrivateFieldGet5;\n\n      (_classPrivateFieldGet5 = _classPrivateFieldGet(this, _accessibilityManager)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.removePointerInTextLayer(editor.contentDiv);\n      editor.isAttachedToDOM = false;\n      editor.div.remove();\n      editor.parent = null;\n    }\n\n    this.div = null;\n\n    _classPrivateFieldGet(this, _editors).clear();\n\n    _classPrivateFieldGet(this, _uiManager).removeLayer(this);\n  }\n\n  render(parameters) {\n    this.viewport = parameters.viewport;\n    (0, _tools.bindEvents)(this, this.div, [\"dragover\", \"drop\"]);\n    this.setDimensions();\n\n    for (const editor of _classPrivateFieldGet(this, _uiManager).getEditors(this.pageIndex)) {\n      this.add(editor);\n    }\n\n    this.updateMode();\n  }\n\n  update(parameters) {\n    this.viewport = parameters.viewport;\n    this.setDimensions();\n    this.updateMode();\n  }\n\n  get scaleFactor() {\n    return this.viewport.scale;\n  }\n\n  get pageDimensions() {\n    const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox;\n    const width = pageURx - pageLLx;\n    const height = pageURy - pageLLy;\n    return [width, height];\n  }\n\n  get viewportBaseDimensions() {\n    const {\n      width,\n      height,\n      rotation\n    } = this.viewport;\n    return rotation % 180 === 0 ? [width, height] : [height, width];\n  }\n\n  setDimensions() {\n    const {\n      width,\n      height,\n      rotation\n    } = this.viewport;\n    const flipOrientation = rotation % 180 !== 0,\n          widthStr = Math.floor(width) + \"px\",\n          heightStr = Math.floor(height) + \"px\";\n    this.div.style.width = flipOrientation ? heightStr : widthStr;\n    this.div.style.height = flipOrientation ? widthStr : heightStr;\n    this.div.setAttribute(\"data-main-rotation\", rotation);\n  }\n\n}\n\nexports.AnnotationEditorLayer = AnnotationEditorLayer;\n\nfunction _changeParent2(editor) {\n  var _editor$parent;\n\n  if (editor.parent === this) {\n    return;\n  }\n\n  this.attach(editor);\n  editor.pageIndex = this.pageIndex;\n  (_editor$parent = editor.parent) === null || _editor$parent === void 0 ? void 0 : _editor$parent.detach(editor);\n  editor.parent = this;\n\n  if (editor.div && editor.isAttachedToDOM) {\n    editor.div.remove();\n    this.div.append(editor.div);\n  }\n}\n\nfunction _createNewEditor2(params) {\n  switch (_classPrivateFieldGet(this, _uiManager).getMode()) {\n    case _util.AnnotationEditorType.FREETEXT:\n      return new _freetext.FreeTextEditor(params);\n\n    case _util.AnnotationEditorType.INK:\n      return new _ink.InkEditor(params);\n  }\n\n  return null;\n}\n\nfunction _createAndAddNewEditor2(event) {\n  const id = this.getNextId();\n\n  const editor = _classPrivateMethodGet(this, _createNewEditor, _createNewEditor2).call(this, {\n    parent: this,\n    id,\n    x: event.offsetX,\n    y: event.offsetY\n  });\n\n  if (editor) {\n    this.add(editor);\n  }\n\n  return editor;\n}\n\nfunction _cleanup2() {\n  _classPrivateFieldSet(this, _isCleaningUp, true);\n\n  for (const editor of _classPrivateFieldGet(this, _editors).values()) {\n    if (editor.isEmpty()) {\n      editor.remove();\n    }\n  }\n\n  _classPrivateFieldSet(this, _isCleaningUp, false);\n}\n\n_defineProperty(AnnotationEditorLayer, \"_initialized\", false);\n\n/***/ }),\n/* 148 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.FreeTextEditor = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _tools = __w_pdfjs_require__(132);\n\nvar _editor = __w_pdfjs_require__(131);\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _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; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _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; } }\n\nvar _boundEditorDivBlur = /*#__PURE__*/new WeakMap();\n\nvar _boundEditorDivFocus = /*#__PURE__*/new WeakMap();\n\nvar _boundEditorDivKeydown = /*#__PURE__*/new WeakMap();\n\nvar _color = /*#__PURE__*/new WeakMap();\n\nvar _content = /*#__PURE__*/new WeakMap();\n\nvar _hasAlreadyBeenCommitted = /*#__PURE__*/new WeakMap();\n\nvar _fontSize = /*#__PURE__*/new WeakMap();\n\nvar _updateFontSize = /*#__PURE__*/new WeakSet();\n\nvar _updateColor = /*#__PURE__*/new WeakSet();\n\nvar _extractText = /*#__PURE__*/new WeakSet();\n\nvar _setEditorDimensions = /*#__PURE__*/new WeakSet();\n\nclass FreeTextEditor extends _editor.AnnotationEditor {\n  constructor(params) {\n    super({ ...params,\n      name: \"freeTextEditor\"\n    });\n\n    _classPrivateMethodInitSpec(this, _setEditorDimensions);\n\n    _classPrivateMethodInitSpec(this, _extractText);\n\n    _classPrivateMethodInitSpec(this, _updateColor);\n\n    _classPrivateMethodInitSpec(this, _updateFontSize);\n\n    _classPrivateFieldInitSpec(this, _boundEditorDivBlur, {\n      writable: true,\n      value: this.editorDivBlur.bind(this)\n    });\n\n    _classPrivateFieldInitSpec(this, _boundEditorDivFocus, {\n      writable: true,\n      value: this.editorDivFocus.bind(this)\n    });\n\n    _classPrivateFieldInitSpec(this, _boundEditorDivKeydown, {\n      writable: true,\n      value: this.editorDivKeydown.bind(this)\n    });\n\n    _classPrivateFieldInitSpec(this, _color, {\n      writable: true,\n      value: void 0\n    });\n\n    _classPrivateFieldInitSpec(this, _content, {\n      writable: true,\n      value: \"\"\n    });\n\n    _classPrivateFieldInitSpec(this, _hasAlreadyBeenCommitted, {\n      writable: true,\n      value: false\n    });\n\n    _classPrivateFieldInitSpec(this, _fontSize, {\n      writable: true,\n      value: void 0\n    });\n\n    _classPrivateFieldSet(this, _color, params.color || FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor);\n\n    _classPrivateFieldSet(this, _fontSize, params.fontSize || FreeTextEditor._defaultFontSize);\n  }\n\n  static initialize(l10n) {\n    this._l10nPromise = new Map([\"free_text_default_content\", \"editor_free_text_aria_label\"].map(str => [str, l10n.get(str)]));\n    const style = getComputedStyle(document.documentElement);\n    this._internalPadding = parseFloat(style.getPropertyValue(\"--freetext-padding\"));\n  }\n\n  static updateDefaultParams(type, value) {\n    switch (type) {\n      case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n        FreeTextEditor._defaultFontSize = value;\n        break;\n\n      case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n        FreeTextEditor._defaultColor = value;\n        break;\n    }\n  }\n\n  updateParams(type, value) {\n    switch (type) {\n      case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n        _classPrivateMethodGet(this, _updateFontSize, _updateFontSize2).call(this, value);\n\n        break;\n\n      case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n        _classPrivateMethodGet(this, _updateColor, _updateColor2).call(this, value);\n\n        break;\n    }\n  }\n\n  static get defaultPropertiesToUpdate() {\n    return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor]];\n  }\n\n  get propertiesToUpdate() {\n    return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, _classPrivateFieldGet(this, _fontSize)], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, _classPrivateFieldGet(this, _color)]];\n  }\n\n  getInitialTranslation() {\n    return [-FreeTextEditor._internalPadding * this.parent.scaleFactor, -(FreeTextEditor._internalPadding + _classPrivateFieldGet(this, _fontSize)) * this.parent.scaleFactor];\n  }\n\n  rebuild() {\n    super.rebuild();\n\n    if (this.div === null) {\n      return;\n    }\n\n    if (!this.isAttachedToDOM) {\n      this.parent.add(this);\n    }\n  }\n\n  enableEditMode() {\n    if (this.isInEditMode()) {\n      return;\n    }\n\n    this.parent.setEditingState(false);\n    this.parent.updateToolbar(_util.AnnotationEditorType.FREETEXT);\n    super.enableEditMode();\n    this.enableEditing();\n    this.overlayDiv.classList.remove(\"enabled\");\n    this.editorDiv.contentEditable = true;\n    this.div.draggable = false;\n    this.editorDiv.addEventListener(\"keydown\", _classPrivateFieldGet(this, _boundEditorDivKeydown));\n    this.editorDiv.addEventListener(\"focus\", _classPrivateFieldGet(this, _boundEditorDivFocus));\n    this.editorDiv.addEventListener(\"blur\", _classPrivateFieldGet(this, _boundEditorDivBlur));\n  }\n\n  disableEditMode() {\n    if (!this.isInEditMode()) {\n      return;\n    }\n\n    this.parent.setEditingState(true);\n    super.disableEditMode();\n    this.disableEditing();\n    this.overlayDiv.classList.add(\"enabled\");\n    this.editorDiv.contentEditable = false;\n    this.div.draggable = true;\n    this.editorDiv.removeEventListener(\"keydown\", _classPrivateFieldGet(this, _boundEditorDivKeydown));\n    this.editorDiv.removeEventListener(\"focus\", _classPrivateFieldGet(this, _boundEditorDivFocus));\n    this.editorDiv.removeEventListener(\"blur\", _classPrivateFieldGet(this, _boundEditorDivBlur));\n    this.div.focus();\n    this.isEditing = false;\n  }\n\n  focusin(event) {\n    super.focusin(event);\n\n    if (event.target !== this.editorDiv) {\n      this.editorDiv.focus();\n    }\n  }\n\n  onceAdded() {\n    if (this.width) {\n      return;\n    }\n\n    this.enableEditMode();\n    this.editorDiv.focus();\n  }\n\n  isEmpty() {\n    return !this.editorDiv || this.editorDiv.innerText.trim() === \"\";\n  }\n\n  remove() {\n    this.isEditing = false;\n    this.parent.setEditingState(true);\n    super.remove();\n  }\n\n  commit() {\n    super.commit();\n\n    if (!_classPrivateFieldGet(this, _hasAlreadyBeenCommitted)) {\n      _classPrivateFieldSet(this, _hasAlreadyBeenCommitted, true);\n\n      this.parent.addUndoableEditor(this);\n    }\n\n    this.disableEditMode();\n\n    _classPrivateFieldSet(this, _content, _classPrivateMethodGet(this, _extractText, _extractText2).call(this).trimEnd());\n\n    _classPrivateMethodGet(this, _setEditorDimensions, _setEditorDimensions2).call(this);\n  }\n\n  shouldGetKeyboardEvents() {\n    return this.isInEditMode();\n  }\n\n  dblclick(event) {\n    this.enableEditMode();\n    this.editorDiv.focus();\n  }\n\n  keydown(event) {\n    if (event.target === this.div && event.key === \"Enter\") {\n      this.enableEditMode();\n      this.editorDiv.focus();\n    }\n  }\n\n  editorDivKeydown(event) {\n    FreeTextEditor._keyboardManager.exec(this, event);\n  }\n\n  editorDivFocus(event) {\n    this.isEditing = true;\n  }\n\n  editorDivBlur(event) {\n    this.isEditing = false;\n  }\n\n  disableEditing() {\n    this.editorDiv.setAttribute(\"role\", \"comment\");\n    this.editorDiv.removeAttribute(\"aria-multiline\");\n  }\n\n  enableEditing() {\n    this.editorDiv.setAttribute(\"role\", \"textbox\");\n    this.editorDiv.setAttribute(\"aria-multiline\", true);\n  }\n\n  render() {\n    if (this.div) {\n      return this.div;\n    }\n\n    let baseX, baseY;\n\n    if (this.width) {\n      baseX = this.x;\n      baseY = this.y;\n    }\n\n    super.render();\n    this.editorDiv = document.createElement(\"div\");\n    this.editorDiv.className = \"internal\";\n    this.editorDiv.setAttribute(\"id\", `${this.id}-editor`);\n    this.enableEditing();\n\n    FreeTextEditor._l10nPromise.get(\"editor_free_text_aria_label\").then(msg => {\n      var _this$editorDiv;\n\n      return (_this$editorDiv = this.editorDiv) === null || _this$editorDiv === void 0 ? void 0 : _this$editorDiv.setAttribute(\"aria-label\", msg);\n    });\n\n    FreeTextEditor._l10nPromise.get(\"free_text_default_content\").then(msg => {\n      var _this$editorDiv2;\n\n      return (_this$editorDiv2 = this.editorDiv) === null || _this$editorDiv2 === void 0 ? void 0 : _this$editorDiv2.setAttribute(\"default-content\", msg);\n    });\n\n    this.editorDiv.contentEditable = true;\n    const {\n      style\n    } = this.editorDiv;\n    style.fontSize = `calc(${_classPrivateFieldGet(this, _fontSize)}px * var(--scale-factor))`;\n    style.color = _classPrivateFieldGet(this, _color);\n    this.div.append(this.editorDiv);\n    this.overlayDiv = document.createElement(\"div\");\n    this.overlayDiv.classList.add(\"overlay\", \"enabled\");\n    this.div.append(this.overlayDiv);\n    (0, _tools.bindEvents)(this, this.div, [\"dblclick\", \"keydown\"]);\n\n    if (this.width) {\n      const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n      this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n\n      for (const line of _classPrivateFieldGet(this, _content).split(\"\\n\")) {\n        const div = document.createElement(\"div\");\n        div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n        this.editorDiv.append(div);\n      }\n\n      this.div.draggable = true;\n      this.editorDiv.contentEditable = false;\n    } else {\n      this.div.draggable = false;\n      this.editorDiv.contentEditable = true;\n    }\n\n    return this.div;\n  }\n\n  get contentDiv() {\n    return this.editorDiv;\n  }\n\n  static deserialize(data, parent) {\n    const editor = super.deserialize(data, parent);\n\n    _classPrivateFieldSet(editor, _fontSize, data.fontSize);\n\n    _classPrivateFieldSet(editor, _color, _util.Util.makeHexColor(...data.color));\n\n    _classPrivateFieldSet(editor, _content, data.value);\n\n    return editor;\n  }\n\n  serialize() {\n    if (this.isEmpty()) {\n      return null;\n    }\n\n    const padding = FreeTextEditor._internalPadding * this.parent.scaleFactor;\n    const rect = this.getRect(padding, padding);\n\n    const color = _editor.AnnotationEditor._colorManager.convert(getComputedStyle(this.editorDiv).color);\n\n    return {\n      annotationType: _util.AnnotationEditorType.FREETEXT,\n      color,\n      fontSize: _classPrivateFieldGet(this, _fontSize),\n      value: _classPrivateFieldGet(this, _content),\n      pageIndex: this.parent.pageIndex,\n      rect,\n      rotation: this.rotation\n    };\n  }\n\n}\n\nexports.FreeTextEditor = FreeTextEditor;\n\nfunction _updateFontSize2(fontSize) {\n  const setFontsize = size => {\n    this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`;\n    this.translate(0, -(size - _classPrivateFieldGet(this, _fontSize)) * this.parent.scaleFactor);\n\n    _classPrivateFieldSet(this, _fontSize, size);\n\n    _classPrivateMethodGet(this, _setEditorDimensions, _setEditorDimensions2).call(this);\n  };\n\n  const savedFontsize = _classPrivateFieldGet(this, _fontSize);\n\n  this.parent.addCommands({\n    cmd: () => {\n      setFontsize(fontSize);\n    },\n    undo: () => {\n      setFontsize(savedFontsize);\n    },\n    mustExec: true,\n    type: _util.AnnotationEditorParamsType.FREETEXT_SIZE,\n    overwriteIfSameType: true,\n    keepUndo: true\n  });\n}\n\nfunction _updateColor2(color) {\n  const savedColor = _classPrivateFieldGet(this, _color);\n\n  this.parent.addCommands({\n    cmd: () => {\n      _classPrivateFieldSet(this, _color, color);\n\n      this.editorDiv.style.color = color;\n    },\n    undo: () => {\n      _classPrivateFieldSet(this, _color, savedColor);\n\n      this.editorDiv.style.color = savedColor;\n    },\n    mustExec: true,\n    type: _util.AnnotationEditorParamsType.FREETEXT_COLOR,\n    overwriteIfSameType: true,\n    keepUndo: true\n  });\n}\n\nfunction _extractText2() {\n  const divs = this.editorDiv.getElementsByTagName(\"div\");\n\n  if (divs.length === 0) {\n    return this.editorDiv.innerText;\n  }\n\n  const buffer = [];\n\n  for (let i = 0, ii = divs.length; i < ii; i++) {\n    const div = divs[i];\n    const first = div.firstChild;\n\n    if ((first === null || first === void 0 ? void 0 : first.nodeName) === \"#text\") {\n      buffer.push(first.data);\n    } else {\n      buffer.push(\"\");\n    }\n  }\n\n  return buffer.join(\"\\n\");\n}\n\nfunction _setEditorDimensions2() {\n  const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n  const rect = this.div.getBoundingClientRect();\n  this.width = rect.width / parentWidth;\n  this.height = rect.height / parentHeight;\n}\n\n_defineProperty(FreeTextEditor, \"_freeTextDefaultContent\", \"\");\n\n_defineProperty(FreeTextEditor, \"_l10nPromise\", void 0);\n\n_defineProperty(FreeTextEditor, \"_internalPadding\", 0);\n\n_defineProperty(FreeTextEditor, \"_defaultColor\", null);\n\n_defineProperty(FreeTextEditor, \"_defaultFontSize\", 10);\n\n_defineProperty(FreeTextEditor, \"_keyboardManager\", new _tools.KeyboardManager([[[\"ctrl+Enter\", \"mac+meta+Enter\", \"Escape\", \"mac+Escape\"], FreeTextEditor.prototype.commitOrRemove]]));\n\n_defineProperty(FreeTextEditor, \"_type\", \"freetext\");\n\n/***/ }),\n/* 149 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.InkEditor = void 0;\nObject.defineProperty(exports, \"fitCurve\", ({\n  enumerable: true,\n  get: function () {\n    return _pdfjsFitCurve.fitCurve;\n  }\n}));\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _editor = __w_pdfjs_require__(131);\n\nvar _pdfjsFitCurve = __w_pdfjs_require__(150);\n\nvar _tools = __w_pdfjs_require__(132);\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n\nfunction _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; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classStaticPrivateMethodGet(receiver, classConstructor, method) { _classCheckPrivateStaticAccess(receiver, classConstructor); return method; }\n\nfunction _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError(\"Private static access of wrong provenance\"); } }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _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; } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n\nconst RESIZER_SIZE = 16;\n\nvar _aspectRatio = /*#__PURE__*/new WeakMap();\n\nvar _baseHeight = /*#__PURE__*/new WeakMap();\n\nvar _baseWidth = /*#__PURE__*/new WeakMap();\n\nvar _boundCanvasPointermove = /*#__PURE__*/new WeakMap();\n\nvar _boundCanvasPointerleave = /*#__PURE__*/new WeakMap();\n\nvar _boundCanvasPointerup = /*#__PURE__*/new WeakMap();\n\nvar _boundCanvasPointerdown = /*#__PURE__*/new WeakMap();\n\nvar _disableEditing = /*#__PURE__*/new WeakMap();\n\nvar _isCanvasInitialized = /*#__PURE__*/new WeakMap();\n\nvar _lastPoint = /*#__PURE__*/new WeakMap();\n\nvar _observer = /*#__PURE__*/new WeakMap();\n\nvar _realWidth = /*#__PURE__*/new WeakMap();\n\nvar _realHeight = /*#__PURE__*/new WeakMap();\n\nvar _requestFrameCallback = /*#__PURE__*/new WeakMap();\n\nvar _updateThickness = /*#__PURE__*/new WeakSet();\n\nvar _updateColor = /*#__PURE__*/new WeakSet();\n\nvar _updateOpacity = /*#__PURE__*/new WeakSet();\n\nvar _getInitialBBox = /*#__PURE__*/new WeakSet();\n\nvar _setStroke = /*#__PURE__*/new WeakSet();\n\nvar _startDrawing = /*#__PURE__*/new WeakSet();\n\nvar _draw = /*#__PURE__*/new WeakSet();\n\nvar _stopDrawing = /*#__PURE__*/new WeakSet();\n\nvar _redraw = /*#__PURE__*/new WeakSet();\n\nvar _endDrawing = /*#__PURE__*/new WeakSet();\n\nvar _createCanvas = /*#__PURE__*/new WeakSet();\n\nvar _createObserver = /*#__PURE__*/new WeakSet();\n\nvar _setCanvasDims = /*#__PURE__*/new WeakSet();\n\nvar _setScaleFactor = /*#__PURE__*/new WeakSet();\n\nvar _updateTransform = /*#__PURE__*/new WeakSet();\n\nvar _serializePaths = /*#__PURE__*/new WeakSet();\n\nvar _extractPointsOnBezier = /*#__PURE__*/new WeakSet();\n\nvar _isAlmostFlat = /*#__PURE__*/new WeakSet();\n\nvar _getBbox = /*#__PURE__*/new WeakSet();\n\nvar _getPadding = /*#__PURE__*/new WeakSet();\n\nvar _fitToContent = /*#__PURE__*/new WeakSet();\n\nvar _setMinDims = /*#__PURE__*/new WeakSet();\n\nclass InkEditor extends _editor.AnnotationEditor {\n  constructor(params) {\n    super({ ...params,\n      name: \"inkEditor\"\n    });\n\n    _classPrivateMethodInitSpec(this, _setMinDims);\n\n    _classPrivateMethodInitSpec(this, _fitToContent);\n\n    _classPrivateMethodInitSpec(this, _getPadding);\n\n    _classPrivateMethodInitSpec(this, _getBbox);\n\n    _classPrivateMethodInitSpec(this, _isAlmostFlat);\n\n    _classPrivateMethodInitSpec(this, _extractPointsOnBezier);\n\n    _classPrivateMethodInitSpec(this, _serializePaths);\n\n    _classPrivateMethodInitSpec(this, _updateTransform);\n\n    _classPrivateMethodInitSpec(this, _setScaleFactor);\n\n    _classPrivateMethodInitSpec(this, _setCanvasDims);\n\n    _classPrivateMethodInitSpec(this, _createObserver);\n\n    _classPrivateMethodInitSpec(this, _createCanvas);\n\n    _classPrivateMethodInitSpec(this, _endDrawing);\n\n    _classPrivateMethodInitSpec(this, _redraw);\n\n    _classPrivateMethodInitSpec(this, _stopDrawing);\n\n    _classPrivateMethodInitSpec(this, _draw);\n\n    _classPrivateMethodInitSpec(this, _startDrawing);\n\n    _classPrivateMethodInitSpec(this, _setStroke);\n\n    _classPrivateMethodInitSpec(this, _getInitialBBox);\n\n    _classPrivateMethodInitSpec(this, _updateOpacity);\n\n    _classPrivateMethodInitSpec(this, _updateColor);\n\n    _classPrivateMethodInitSpec(this, _updateThickness);\n\n    _classPrivateFieldInitSpec(this, _aspectRatio, {\n      writable: true,\n      value: 0\n    });\n\n    _classPrivateFieldInitSpec(this, _baseHeight, {\n      writable: true,\n      value: 0\n    });\n\n    _classPrivateFieldInitSpec(this, _baseWidth, {\n      writable: true,\n      value: 0\n    });\n\n    _classPrivateFieldInitSpec(this, _boundCanvasPointermove, {\n      writable: true,\n      value: this.canvasPointermove.bind(this)\n    });\n\n    _classPrivateFieldInitSpec(this, _boundCanvasPointerleave, {\n      writable: true,\n      value: this.canvasPointerleave.bind(this)\n    });\n\n    _classPrivateFieldInitSpec(this, _boundCanvasPointerup, {\n      writable: true,\n      value: this.canvasPointerup.bind(this)\n    });\n\n    _classPrivateFieldInitSpec(this, _boundCanvasPointerdown, {\n      writable: true,\n      value: this.canvasPointerdown.bind(this)\n    });\n\n    _classPrivateFieldInitSpec(this, _disableEditing, {\n      writable: true,\n      value: false\n    });\n\n    _classPrivateFieldInitSpec(this, _isCanvasInitialized, {\n      writable: true,\n      value: false\n    });\n\n    _classPrivateFieldInitSpec(this, _lastPoint, {\n      writable: true,\n      value: null\n    });\n\n    _classPrivateFieldInitSpec(this, _observer, {\n      writable: true,\n      value: null\n    });\n\n    _classPrivateFieldInitSpec(this, _realWidth, {\n      writable: true,\n      value: 0\n    });\n\n    _classPrivateFieldInitSpec(this, _realHeight, {\n      writable: true,\n      value: 0\n    });\n\n    _classPrivateFieldInitSpec(this, _requestFrameCallback, {\n      writable: true,\n      value: null\n    });\n\n    this.color = params.color || null;\n    this.thickness = params.thickness || null;\n    this.opacity = params.opacity || null;\n    this.paths = [];\n    this.bezierPath2D = [];\n    this.currentPath = [];\n    this.scaleFactor = 1;\n    this.translationX = this.translationY = 0;\n    this.x = 0;\n    this.y = 0;\n  }\n\n  static initialize(l10n) {\n    this._l10nPromise = new Map([\"editor_ink_canvas_aria_label\", \"editor_ink_aria_label\"].map(str => [str, l10n.get(str)]));\n  }\n\n  static updateDefaultParams(type, value) {\n    switch (type) {\n      case _util.AnnotationEditorParamsType.INK_THICKNESS:\n        InkEditor._defaultThickness = value;\n        break;\n\n      case _util.AnnotationEditorParamsType.INK_COLOR:\n        InkEditor._defaultColor = value;\n        break;\n\n      case _util.AnnotationEditorParamsType.INK_OPACITY:\n        InkEditor._defaultOpacity = value / 100;\n        break;\n    }\n  }\n\n  updateParams(type, value) {\n    switch (type) {\n      case _util.AnnotationEditorParamsType.INK_THICKNESS:\n        _classPrivateMethodGet(this, _updateThickness, _updateThickness2).call(this, value);\n\n        break;\n\n      case _util.AnnotationEditorParamsType.INK_COLOR:\n        _classPrivateMethodGet(this, _updateColor, _updateColor2).call(this, value);\n\n        break;\n\n      case _util.AnnotationEditorParamsType.INK_OPACITY:\n        _classPrivateMethodGet(this, _updateOpacity, _updateOpacity2).call(this, value);\n\n        break;\n    }\n  }\n\n  static get defaultPropertiesToUpdate() {\n    return [[_util.AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]];\n  }\n\n  get propertiesToUpdate() {\n    var _this$opacity;\n\n    return [[_util.AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * ((_this$opacity = this.opacity) !== null && _this$opacity !== void 0 ? _this$opacity : InkEditor._defaultOpacity))]];\n  }\n\n  rebuild() {\n    super.rebuild();\n\n    if (this.div === null) {\n      return;\n    }\n\n    if (!this.canvas) {\n      _classPrivateMethodGet(this, _createCanvas, _createCanvas2).call(this);\n\n      _classPrivateMethodGet(this, _createObserver, _createObserver2).call(this);\n    }\n\n    if (!this.isAttachedToDOM) {\n      this.parent.add(this);\n\n      _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this);\n    }\n\n    _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this);\n  }\n\n  remove() {\n    if (this.canvas === null) {\n      return;\n    }\n\n    if (!this.isEmpty()) {\n      this.commit();\n    }\n\n    this.canvas.width = this.canvas.height = 0;\n    this.canvas.remove();\n    this.canvas = null;\n\n    _classPrivateFieldGet(this, _observer).disconnect();\n\n    _classPrivateFieldSet(this, _observer, null);\n\n    super.remove();\n  }\n\n  enableEditMode() {\n    if (_classPrivateFieldGet(this, _disableEditing) || this.canvas === null) {\n      return;\n    }\n\n    super.enableEditMode();\n    this.div.draggable = false;\n    this.canvas.addEventListener(\"pointerdown\", _classPrivateFieldGet(this, _boundCanvasPointerdown));\n    this.canvas.addEventListener(\"pointerup\", _classPrivateFieldGet(this, _boundCanvasPointerup));\n  }\n\n  disableEditMode() {\n    if (!this.isInEditMode() || this.canvas === null) {\n      return;\n    }\n\n    super.disableEditMode();\n    this.div.draggable = !this.isEmpty();\n    this.div.classList.remove(\"editing\");\n    this.canvas.removeEventListener(\"pointerdown\", _classPrivateFieldGet(this, _boundCanvasPointerdown));\n    this.canvas.removeEventListener(\"pointerup\", _classPrivateFieldGet(this, _boundCanvasPointerup));\n  }\n\n  onceAdded() {\n    this.div.draggable = !this.isEmpty();\n  }\n\n  isEmpty() {\n    return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0;\n  }\n\n  commit() {\n    if (_classPrivateFieldGet(this, _disableEditing)) {\n      return;\n    }\n\n    super.commit();\n    this.isEditing = false;\n    this.disableEditMode();\n    this.setInForeground();\n\n    _classPrivateFieldSet(this, _disableEditing, true);\n\n    this.div.classList.add(\"disabled\");\n\n    _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this, true);\n\n    this.parent.addInkEditorIfNeeded(true);\n    this.parent.moveEditorInDOM(this);\n    this.div.focus();\n  }\n\n  focusin(event) {\n    super.focusin(event);\n    this.enableEditMode();\n  }\n\n  canvasPointerdown(event) {\n    if (event.button !== 0 || !this.isInEditMode() || _classPrivateFieldGet(this, _disableEditing)) {\n      return;\n    }\n\n    this.setInForeground();\n\n    if (event.type !== \"mouse\") {\n      this.div.focus();\n    }\n\n    event.stopPropagation();\n    this.canvas.addEventListener(\"pointerleave\", _classPrivateFieldGet(this, _boundCanvasPointerleave));\n    this.canvas.addEventListener(\"pointermove\", _classPrivateFieldGet(this, _boundCanvasPointermove));\n\n    _classPrivateMethodGet(this, _startDrawing, _startDrawing2).call(this, event.offsetX, event.offsetY);\n  }\n\n  canvasPointermove(event) {\n    event.stopPropagation();\n\n    _classPrivateMethodGet(this, _draw, _draw2).call(this, event.offsetX, event.offsetY);\n  }\n\n  canvasPointerup(event) {\n    if (event.button !== 0) {\n      return;\n    }\n\n    if (this.isInEditMode() && this.currentPath.length !== 0) {\n      event.stopPropagation();\n\n      _classPrivateMethodGet(this, _endDrawing, _endDrawing2).call(this, event);\n\n      this.setInBackground();\n    }\n  }\n\n  canvasPointerleave(event) {\n    _classPrivateMethodGet(this, _endDrawing, _endDrawing2).call(this, event);\n\n    this.setInBackground();\n  }\n\n  render() {\n    if (this.div) {\n      return this.div;\n    }\n\n    let baseX, baseY;\n\n    if (this.width) {\n      baseX = this.x;\n      baseY = this.y;\n    }\n\n    super.render();\n\n    InkEditor._l10nPromise.get(\"editor_ink_aria_label\").then(msg => {\n      var _this$div;\n\n      return (_this$div = this.div) === null || _this$div === void 0 ? void 0 : _this$div.setAttribute(\"aria-label\", msg);\n    });\n\n    const [x, y, w, h] = _classPrivateMethodGet(this, _getInitialBBox, _getInitialBBox2).call(this);\n\n    this.setAt(x, y, 0, 0);\n    this.setDims(w, h);\n\n    _classPrivateMethodGet(this, _createCanvas, _createCanvas2).call(this);\n\n    if (this.width) {\n      const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n      this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n\n      _classPrivateFieldSet(this, _isCanvasInitialized, true);\n\n      _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this);\n\n      this.setDims(this.width * parentWidth, this.height * parentHeight);\n\n      _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n\n      _classPrivateMethodGet(this, _setMinDims, _setMinDims2).call(this);\n\n      this.div.classList.add(\"disabled\");\n    } else {\n      this.div.classList.add(\"editing\");\n      this.enableEditMode();\n    }\n\n    _classPrivateMethodGet(this, _createObserver, _createObserver2).call(this);\n\n    return this.div;\n  }\n\n  setDimensions(width, height) {\n    const roundedWidth = Math.round(width);\n    const roundedHeight = Math.round(height);\n\n    if (_classPrivateFieldGet(this, _realWidth) === roundedWidth && _classPrivateFieldGet(this, _realHeight) === roundedHeight) {\n      return;\n    }\n\n    _classPrivateFieldSet(this, _realWidth, roundedWidth);\n\n    _classPrivateFieldSet(this, _realHeight, roundedHeight);\n\n    this.canvas.style.visibility = \"hidden\";\n\n    if (_classPrivateFieldGet(this, _aspectRatio) && Math.abs(_classPrivateFieldGet(this, _aspectRatio) - width / height) > 1e-2) {\n      height = Math.ceil(width / _classPrivateFieldGet(this, _aspectRatio));\n      this.setDims(width, height);\n    }\n\n    const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n    this.width = width / parentWidth;\n    this.height = height / parentHeight;\n\n    if (_classPrivateFieldGet(this, _disableEditing)) {\n      _classPrivateMethodGet(this, _setScaleFactor, _setScaleFactor2).call(this, width, height);\n    }\n\n    _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this);\n\n    _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n\n    this.canvas.style.visibility = \"visible\";\n  }\n\n  static deserialize(data, parent) {\n    const editor = super.deserialize(data, parent);\n    editor.thickness = data.thickness;\n    editor.color = _util.Util.makeHexColor(...data.color);\n    editor.opacity = data.opacity;\n    const [pageWidth, pageHeight] = parent.pageDimensions;\n    const width = editor.width * pageWidth;\n    const height = editor.height * pageHeight;\n    const scaleFactor = parent.scaleFactor;\n    const padding = data.thickness / 2;\n\n    _classPrivateFieldSet(editor, _aspectRatio, width / height);\n\n    _classPrivateFieldSet(editor, _disableEditing, true);\n\n    _classPrivateFieldSet(editor, _realWidth, Math.round(width));\n\n    _classPrivateFieldSet(editor, _realHeight, Math.round(height));\n\n    for (const {\n      bezier\n    } of data.paths) {\n      const path = [];\n      editor.paths.push(path);\n      let p0 = scaleFactor * (bezier[0] - padding);\n      let p1 = scaleFactor * (height - bezier[1] - padding);\n\n      for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n        const p10 = scaleFactor * (bezier[i] - padding);\n        const p11 = scaleFactor * (height - bezier[i + 1] - padding);\n        const p20 = scaleFactor * (bezier[i + 2] - padding);\n        const p21 = scaleFactor * (height - bezier[i + 3] - padding);\n        const p30 = scaleFactor * (bezier[i + 4] - padding);\n        const p31 = scaleFactor * (height - bezier[i + 5] - padding);\n        path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]);\n        p0 = p30;\n        p1 = p31;\n      }\n\n      const path2D = _classStaticPrivateMethodGet(this, InkEditor, _buildPath2D).call(this, path);\n\n      editor.bezierPath2D.push(path2D);\n    }\n\n    const bbox = _classPrivateMethodGet(editor, _getBbox, _getBbox2).call(editor);\n\n    _classPrivateFieldSet(editor, _baseWidth, Math.max(RESIZER_SIZE, bbox[2] - bbox[0]));\n\n    _classPrivateFieldSet(editor, _baseHeight, Math.max(RESIZER_SIZE, bbox[3] - bbox[1]));\n\n    _classPrivateMethodGet(editor, _setScaleFactor, _setScaleFactor2).call(editor, width, height);\n\n    return editor;\n  }\n\n  serialize() {\n    if (this.isEmpty()) {\n      return null;\n    }\n\n    const rect = this.getRect(0, 0);\n    const height = this.rotation % 180 === 0 ? rect[3] - rect[1] : rect[2] - rect[0];\n\n    const color = _editor.AnnotationEditor._colorManager.convert(this.ctx.strokeStyle);\n\n    return {\n      annotationType: _util.AnnotationEditorType.INK,\n      color,\n      thickness: this.thickness,\n      opacity: this.opacity,\n      paths: _classPrivateMethodGet(this, _serializePaths, _serializePaths2).call(this, this.scaleFactor / this.parent.scaleFactor, this.translationX, this.translationY, height),\n      pageIndex: this.parent.pageIndex,\n      rect,\n      rotation: this.rotation\n    };\n  }\n\n}\n\nexports.InkEditor = InkEditor;\n\nfunction _updateThickness2(thickness) {\n  const savedThickness = this.thickness;\n  this.parent.addCommands({\n    cmd: () => {\n      this.thickness = thickness;\n\n      _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this);\n    },\n    undo: () => {\n      this.thickness = savedThickness;\n\n      _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this);\n    },\n    mustExec: true,\n    type: _util.AnnotationEditorParamsType.INK_THICKNESS,\n    overwriteIfSameType: true,\n    keepUndo: true\n  });\n}\n\nfunction _updateColor2(color) {\n  const savedColor = this.color;\n  this.parent.addCommands({\n    cmd: () => {\n      this.color = color;\n\n      _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n    },\n    undo: () => {\n      this.color = savedColor;\n\n      _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n    },\n    mustExec: true,\n    type: _util.AnnotationEditorParamsType.INK_COLOR,\n    overwriteIfSameType: true,\n    keepUndo: true\n  });\n}\n\nfunction _updateOpacity2(opacity) {\n  opacity /= 100;\n  const savedOpacity = this.opacity;\n  this.parent.addCommands({\n    cmd: () => {\n      this.opacity = opacity;\n\n      _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n    },\n    undo: () => {\n      this.opacity = savedOpacity;\n\n      _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n    },\n    mustExec: true,\n    type: _util.AnnotationEditorParamsType.INK_OPACITY,\n    overwriteIfSameType: true,\n    keepUndo: true\n  });\n}\n\nfunction _getInitialBBox2() {\n  const {\n    width,\n    height,\n    rotation\n  } = this.parent.viewport;\n\n  switch (rotation) {\n    case 90:\n      return [0, width, width, height];\n\n    case 180:\n      return [width, height, width, height];\n\n    case 270:\n      return [height, 0, width, height];\n\n    default:\n      return [0, 0, width, height];\n  }\n}\n\nfunction _setStroke2() {\n  this.ctx.lineWidth = this.thickness * this.parent.scaleFactor / this.scaleFactor;\n  this.ctx.lineCap = \"round\";\n  this.ctx.lineJoin = \"round\";\n  this.ctx.miterLimit = 10;\n  this.ctx.strokeStyle = `${this.color}${(0, _tools.opacityToHex)(this.opacity)}`;\n}\n\nfunction _startDrawing2(x, y) {\n  this.isEditing = true;\n\n  if (!_classPrivateFieldGet(this, _isCanvasInitialized)) {\n    var _this$opacity2;\n\n    _classPrivateFieldSet(this, _isCanvasInitialized, true);\n\n    _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this);\n\n    this.thickness || (this.thickness = InkEditor._defaultThickness);\n    this.color || (this.color = InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor);\n    (_this$opacity2 = this.opacity) !== null && _this$opacity2 !== void 0 ? _this$opacity2 : this.opacity = InkEditor._defaultOpacity;\n  }\n\n  this.currentPath.push([x, y]);\n\n  _classPrivateFieldSet(this, _lastPoint, null);\n\n  _classPrivateMethodGet(this, _setStroke, _setStroke2).call(this);\n\n  this.ctx.beginPath();\n  this.ctx.moveTo(x, y);\n\n  _classPrivateFieldSet(this, _requestFrameCallback, () => {\n    if (!_classPrivateFieldGet(this, _requestFrameCallback)) {\n      return;\n    }\n\n    if (_classPrivateFieldGet(this, _lastPoint)) {\n      if (this.isEmpty()) {\n        this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n        this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n      } else {\n        _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n      }\n\n      this.ctx.lineTo(..._classPrivateFieldGet(this, _lastPoint));\n\n      _classPrivateFieldSet(this, _lastPoint, null);\n\n      this.ctx.stroke();\n    }\n\n    window.requestAnimationFrame(_classPrivateFieldGet(this, _requestFrameCallback));\n  });\n\n  window.requestAnimationFrame(_classPrivateFieldGet(this, _requestFrameCallback));\n}\n\nfunction _draw2(x, y) {\n  const [lastX, lastY] = this.currentPath.at(-1);\n\n  if (x === lastX && y === lastY) {\n    return;\n  }\n\n  this.currentPath.push([x, y]);\n\n  _classPrivateFieldSet(this, _lastPoint, [x, y]);\n}\n\nfunction _stopDrawing2(x, y) {\n  this.ctx.closePath();\n\n  _classPrivateFieldSet(this, _requestFrameCallback, null);\n\n  x = Math.min(Math.max(x, 0), this.canvas.width);\n  y = Math.min(Math.max(y, 0), this.canvas.height);\n  const [lastX, lastY] = this.currentPath.at(-1);\n\n  if (x !== lastX || y !== lastY) {\n    this.currentPath.push([x, y]);\n  }\n\n  let bezier;\n\n  if (this.currentPath.length !== 1) {\n    bezier = (0, _pdfjsFitCurve.fitCurve)(this.currentPath, 30, null);\n  } else {\n    const xy = [x, y];\n    bezier = [[xy, xy.slice(), xy.slice(), xy]];\n  }\n\n  const path2D = _classStaticPrivateMethodGet(InkEditor, InkEditor, _buildPath2D).call(InkEditor, bezier);\n\n  this.currentPath.length = 0;\n\n  const cmd = () => {\n    this.paths.push(bezier);\n    this.bezierPath2D.push(path2D);\n    this.rebuild();\n  };\n\n  const undo = () => {\n    this.paths.pop();\n    this.bezierPath2D.pop();\n\n    if (this.paths.length === 0) {\n      this.remove();\n    } else {\n      if (!this.canvas) {\n        _classPrivateMethodGet(this, _createCanvas, _createCanvas2).call(this);\n\n        _classPrivateMethodGet(this, _createObserver, _createObserver2).call(this);\n      }\n\n      _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this);\n    }\n  };\n\n  this.parent.addCommands({\n    cmd,\n    undo,\n    mustExec: true\n  });\n}\n\nfunction _redraw2() {\n  if (this.isEmpty()) {\n    _classPrivateMethodGet(this, _updateTransform, _updateTransform2).call(this);\n\n    return;\n  }\n\n  _classPrivateMethodGet(this, _setStroke, _setStroke2).call(this);\n\n  const {\n    canvas,\n    ctx\n  } = this;\n  ctx.setTransform(1, 0, 0, 1, 0, 0);\n  ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n  _classPrivateMethodGet(this, _updateTransform, _updateTransform2).call(this);\n\n  for (const path of this.bezierPath2D) {\n    ctx.stroke(path);\n  }\n}\n\nfunction _endDrawing2(event) {\n  _classPrivateMethodGet(this, _stopDrawing, _stopDrawing2).call(this, event.offsetX, event.offsetY);\n\n  this.canvas.removeEventListener(\"pointerleave\", _classPrivateFieldGet(this, _boundCanvasPointerleave));\n  this.canvas.removeEventListener(\"pointermove\", _classPrivateFieldGet(this, _boundCanvasPointermove));\n  this.parent.addToAnnotationStorage(this);\n}\n\nfunction _createCanvas2() {\n  this.canvas = document.createElement(\"canvas\");\n  this.canvas.width = this.canvas.height = 0;\n  this.canvas.className = \"inkEditorCanvas\";\n\n  InkEditor._l10nPromise.get(\"editor_ink_canvas_aria_label\").then(msg => {\n    var _this$canvas;\n\n    return (_this$canvas = this.canvas) === null || _this$canvas === void 0 ? void 0 : _this$canvas.setAttribute(\"aria-label\", msg);\n  });\n\n  this.div.append(this.canvas);\n  this.ctx = this.canvas.getContext(\"2d\");\n}\n\nfunction _createObserver2() {\n  _classPrivateFieldSet(this, _observer, new ResizeObserver(entries => {\n    const rect = entries[0].contentRect;\n\n    if (rect.width && rect.height) {\n      this.setDimensions(rect.width, rect.height);\n    }\n  }));\n\n  _classPrivateFieldGet(this, _observer).observe(this.div);\n}\n\nfunction _setCanvasDims2() {\n  if (!_classPrivateFieldGet(this, _isCanvasInitialized)) {\n    return;\n  }\n\n  const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n  this.canvas.width = Math.ceil(this.width * parentWidth);\n  this.canvas.height = Math.ceil(this.height * parentHeight);\n\n  _classPrivateMethodGet(this, _updateTransform, _updateTransform2).call(this);\n}\n\nfunction _setScaleFactor2(width, height) {\n  const padding = _classPrivateMethodGet(this, _getPadding, _getPadding2).call(this);\n\n  const scaleFactorW = (width - padding) / _classPrivateFieldGet(this, _baseWidth);\n\n  const scaleFactorH = (height - padding) / _classPrivateFieldGet(this, _baseHeight);\n\n  this.scaleFactor = Math.min(scaleFactorW, scaleFactorH);\n}\n\nfunction _updateTransform2() {\n  const padding = _classPrivateMethodGet(this, _getPadding, _getPadding2).call(this) / 2;\n  this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding);\n}\n\nfunction _buildPath2D(bezier) {\n  const path2D = new Path2D();\n\n  for (let i = 0, ii = bezier.length; i < ii; i++) {\n    const [first, control1, control2, second] = bezier[i];\n\n    if (i === 0) {\n      path2D.moveTo(...first);\n    }\n\n    path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]);\n  }\n\n  return path2D;\n}\n\nfunction _serializePaths2(s, tx, ty, h) {\n  const NUMBER_OF_POINTS_ON_BEZIER_CURVE = 4;\n  const paths = [];\n  const padding = this.thickness / 2;\n  let buffer, points;\n\n  for (const bezier of this.paths) {\n    buffer = [];\n    points = [];\n\n    for (let i = 0, ii = bezier.length; i < ii; i++) {\n      const [first, control1, control2, second] = bezier[i];\n      const p10 = s * (first[0] + tx) + padding;\n      const p11 = h - s * (first[1] + ty) - padding;\n      const p20 = s * (control1[0] + tx) + padding;\n      const p21 = h - s * (control1[1] + ty) - padding;\n      const p30 = s * (control2[0] + tx) + padding;\n      const p31 = h - s * (control2[1] + ty) - padding;\n      const p40 = s * (second[0] + tx) + padding;\n      const p41 = h - s * (second[1] + ty) - padding;\n\n      if (i === 0) {\n        buffer.push(p10, p11);\n        points.push(p10, p11);\n      }\n\n      buffer.push(p20, p21, p30, p31, p40, p41);\n\n      _classPrivateMethodGet(this, _extractPointsOnBezier, _extractPointsOnBezier2).call(this, p10, p11, p20, p21, p30, p31, p40, p41, NUMBER_OF_POINTS_ON_BEZIER_CURVE, points);\n    }\n\n    paths.push({\n      bezier: buffer,\n      points\n    });\n  }\n\n  return paths;\n}\n\nfunction _extractPointsOnBezier2(p10, p11, p20, p21, p30, p31, p40, p41, n, points) {\n  if (_classPrivateMethodGet(this, _isAlmostFlat, _isAlmostFlat2).call(this, p10, p11, p20, p21, p30, p31, p40, p41)) {\n    points.push(p40, p41);\n    return;\n  }\n\n  for (let i = 1; i < n - 1; i++) {\n    const t = i / n;\n    const mt = 1 - t;\n    let q10 = t * p10 + mt * p20;\n    let q11 = t * p11 + mt * p21;\n    let q20 = t * p20 + mt * p30;\n    let q21 = t * p21 + mt * p31;\n    const q30 = t * p30 + mt * p40;\n    const q31 = t * p31 + mt * p41;\n    q10 = t * q10 + mt * q20;\n    q11 = t * q11 + mt * q21;\n    q20 = t * q20 + mt * q30;\n    q21 = t * q21 + mt * q31;\n    q10 = t * q10 + mt * q20;\n    q11 = t * q11 + mt * q21;\n    points.push(q10, q11);\n  }\n\n  points.push(p40, p41);\n}\n\nfunction _isAlmostFlat2(p10, p11, p20, p21, p30, p31, p40, p41) {\n  const tol = 10;\n  const ax = (3 * p20 - 2 * p10 - p40) ** 2;\n  const ay = (3 * p21 - 2 * p11 - p41) ** 2;\n  const bx = (3 * p30 - p10 - 2 * p40) ** 2;\n  const by = (3 * p31 - p11 - 2 * p41) ** 2;\n  return Math.max(ax, bx) + Math.max(ay, by) <= tol;\n}\n\nfunction _getBbox2() {\n  let xMin = Infinity;\n  let xMax = -Infinity;\n  let yMin = Infinity;\n  let yMax = -Infinity;\n\n  for (const path of this.paths) {\n    for (const [first, control1, control2, second] of path) {\n      const bbox = _util.Util.bezierBoundingBox(...first, ...control1, ...control2, ...second);\n\n      xMin = Math.min(xMin, bbox[0]);\n      yMin = Math.min(yMin, bbox[1]);\n      xMax = Math.max(xMax, bbox[2]);\n      yMax = Math.max(yMax, bbox[3]);\n    }\n  }\n\n  return [xMin, yMin, xMax, yMax];\n}\n\nfunction _getPadding2() {\n  return _classPrivateFieldGet(this, _disableEditing) ? Math.ceil(this.thickness * this.parent.scaleFactor) : 0;\n}\n\nfunction _fitToContent2() {\n  let firstTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n  if (this.isEmpty()) {\n    return;\n  }\n\n  if (!_classPrivateFieldGet(this, _disableEditing)) {\n    _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n\n    return;\n  }\n\n  const bbox = _classPrivateMethodGet(this, _getBbox, _getBbox2).call(this);\n\n  const padding = _classPrivateMethodGet(this, _getPadding, _getPadding2).call(this);\n\n  _classPrivateFieldSet(this, _baseWidth, Math.max(RESIZER_SIZE, bbox[2] - bbox[0]));\n\n  _classPrivateFieldSet(this, _baseHeight, Math.max(RESIZER_SIZE, bbox[3] - bbox[1]));\n\n  const width = Math.ceil(padding + _classPrivateFieldGet(this, _baseWidth) * this.scaleFactor);\n  const height = Math.ceil(padding + _classPrivateFieldGet(this, _baseHeight) * this.scaleFactor);\n  const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n  this.width = width / parentWidth;\n  this.height = height / parentHeight;\n\n  _classPrivateFieldSet(this, _aspectRatio, width / height);\n\n  _classPrivateMethodGet(this, _setMinDims, _setMinDims2).call(this);\n\n  const prevTranslationX = this.translationX;\n  const prevTranslationY = this.translationY;\n  this.translationX = -bbox[0];\n  this.translationY = -bbox[1];\n\n  _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this);\n\n  _classPrivateMethodGet(this, _redraw, _redraw2).call(this);\n\n  _classPrivateFieldSet(this, _realWidth, width);\n\n  _classPrivateFieldSet(this, _realHeight, height);\n\n  this.setDims(width, height);\n  const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0;\n  this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding);\n}\n\nfunction _setMinDims2() {\n  const {\n    style\n  } = this.div;\n\n  if (_classPrivateFieldGet(this, _aspectRatio) >= 1) {\n    style.minHeight = `${RESIZER_SIZE}px`;\n    style.minWidth = `${Math.round(_classPrivateFieldGet(this, _aspectRatio) * RESIZER_SIZE)}px`;\n  } else {\n    style.minWidth = `${RESIZER_SIZE}px`;\n    style.minHeight = `${Math.round(RESIZER_SIZE / _classPrivateFieldGet(this, _aspectRatio))}px`;\n  }\n}\n\n_defineProperty(InkEditor, \"_defaultColor\", null);\n\n_defineProperty(InkEditor, \"_defaultOpacity\", 1);\n\n_defineProperty(InkEditor, \"_defaultThickness\", 1);\n\n_defineProperty(InkEditor, \"_l10nPromise\", void 0);\n\n_defineProperty(InkEditor, \"_type\", \"ink\");\n\n/***/ }),\n/* 150 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.fitCurve = void 0;\n\nconst fitCurve = __w_pdfjs_require__(151);\n\nexports.fitCurve = fitCurve;\n\n/***/ }),\n/* 151 */\n/***/ ((module) => {\n\n\"use strict\";\n\n\nfunction fitCurve(points, maxError, progressCallback) {\n  if (!Array.isArray(points)) {\n    throw new TypeError(\"First argument should be an array\");\n  }\n\n  points.forEach(point => {\n    if (!Array.isArray(point) || point.some(item => typeof item !== 'number') || point.length !== points[0].length) {\n      throw Error(\"Each point should be an array of numbers. Each point should have the same amount of numbers.\");\n    }\n  });\n  points = points.filter((point, i) => i === 0 || !point.every((val, j) => val === points[i - 1][j]));\n\n  if (points.length < 2) {\n    return [];\n  }\n\n  const len = points.length;\n  const leftTangent = createTangent(points[1], points[0]);\n  const rightTangent = createTangent(points[len - 2], points[len - 1]);\n  return fitCubic(points, leftTangent, rightTangent, maxError, progressCallback);\n}\n\nfunction fitCubic(points, leftTangent, rightTangent, error, progressCallback) {\n  const MaxIterations = 20;\n  var bezCurve, u, uPrime, maxError, prevErr, splitPoint, prevSplit, centerVector, toCenterTangent, fromCenterTangent, beziers, dist, i;\n\n  if (points.length === 2) {\n    dist = maths.vectorLen(maths.subtract(points[0], points[1])) / 3.0;\n    bezCurve = [points[0], maths.addArrays(points[0], maths.mulItems(leftTangent, dist)), maths.addArrays(points[1], maths.mulItems(rightTangent, dist)), points[1]];\n    return [bezCurve];\n  }\n\n  u = chordLengthParameterize(points);\n  [bezCurve, maxError, splitPoint] = generateAndReport(points, u, u, leftTangent, rightTangent, progressCallback);\n\n  if (maxError === 0 || maxError < error) {\n    return [bezCurve];\n  }\n\n  if (maxError < error * error) {\n    uPrime = u;\n    prevErr = maxError;\n    prevSplit = splitPoint;\n\n    for (i = 0; i < MaxIterations; i++) {\n      uPrime = reparameterize(bezCurve, points, uPrime);\n      [bezCurve, maxError, splitPoint] = generateAndReport(points, u, uPrime, leftTangent, rightTangent, progressCallback);\n\n      if (maxError < error) {\n        return [bezCurve];\n      } else if (splitPoint === prevSplit) {\n        let errChange = maxError / prevErr;\n\n        if (errChange > .9999 && errChange < 1.0001) {\n          break;\n        }\n      }\n\n      prevErr = maxError;\n      prevSplit = splitPoint;\n    }\n  }\n\n  beziers = [];\n  centerVector = maths.subtract(points[splitPoint - 1], points[splitPoint + 1]);\n\n  if (centerVector.every(val => val === 0)) {\n    centerVector = maths.subtract(points[splitPoint - 1], points[splitPoint]);\n    [centerVector[0], centerVector[1]] = [-centerVector[1], centerVector[0]];\n  }\n\n  toCenterTangent = maths.normalize(centerVector);\n  fromCenterTangent = maths.mulItems(toCenterTangent, -1);\n  beziers = beziers.concat(fitCubic(points.slice(0, splitPoint + 1), leftTangent, toCenterTangent, error, progressCallback));\n  beziers = beziers.concat(fitCubic(points.slice(splitPoint), fromCenterTangent, rightTangent, error, progressCallback));\n  return beziers;\n}\n\n;\n\nfunction generateAndReport(points, paramsOrig, paramsPrime, leftTangent, rightTangent, progressCallback) {\n  var bezCurve, maxError, splitPoint;\n  bezCurve = generateBezier(points, paramsPrime, leftTangent, rightTangent, progressCallback);\n  [maxError, splitPoint] = computeMaxError(points, bezCurve, paramsOrig);\n\n  if (progressCallback) {\n    progressCallback({\n      bez: bezCurve,\n      points: points,\n      params: paramsOrig,\n      maxErr: maxError,\n      maxPoint: splitPoint\n    });\n  }\n\n  return [bezCurve, maxError, splitPoint];\n}\n\nfunction generateBezier(points, parameters, leftTangent, rightTangent) {\n  var bezCurve,\n      A,\n      a,\n      C,\n      X,\n      det_C0_C1,\n      det_C0_X,\n      det_X_C1,\n      alpha_l,\n      alpha_r,\n      epsilon,\n      segLength,\n      i,\n      len,\n      tmp,\n      u,\n      ux,\n      firstPoint = points[0],\n      lastPoint = points[points.length - 1];\n  bezCurve = [firstPoint, null, null, lastPoint];\n  A = maths.zeros_Xx2x2(parameters.length);\n\n  for (i = 0, len = parameters.length; i < len; i++) {\n    u = parameters[i];\n    ux = 1 - u;\n    a = A[i];\n    a[0] = maths.mulItems(leftTangent, 3 * u * (ux * ux));\n    a[1] = maths.mulItems(rightTangent, 3 * ux * (u * u));\n  }\n\n  C = [[0, 0], [0, 0]];\n  X = [0, 0];\n\n  for (i = 0, len = points.length; i < len; i++) {\n    u = parameters[i];\n    a = A[i];\n    C[0][0] += maths.dot(a[0], a[0]);\n    C[0][1] += maths.dot(a[0], a[1]);\n    C[1][0] += maths.dot(a[0], a[1]);\n    C[1][1] += maths.dot(a[1], a[1]);\n    tmp = maths.subtract(points[i], bezier.q([firstPoint, firstPoint, lastPoint, lastPoint], u));\n    X[0] += maths.dot(a[0], tmp);\n    X[1] += maths.dot(a[1], tmp);\n  }\n\n  det_C0_C1 = C[0][0] * C[1][1] - C[1][0] * C[0][1];\n  det_C0_X = C[0][0] * X[1] - C[1][0] * X[0];\n  det_X_C1 = X[0] * C[1][1] - X[1] * C[0][1];\n  alpha_l = det_C0_C1 === 0 ? 0 : det_X_C1 / det_C0_C1;\n  alpha_r = det_C0_C1 === 0 ? 0 : det_C0_X / det_C0_C1;\n  segLength = maths.vectorLen(maths.subtract(firstPoint, lastPoint));\n  epsilon = 1.0e-6 * segLength;\n\n  if (alpha_l < epsilon || alpha_r < epsilon) {\n    bezCurve[1] = maths.addArrays(firstPoint, maths.mulItems(leftTangent, segLength / 3.0));\n    bezCurve[2] = maths.addArrays(lastPoint, maths.mulItems(rightTangent, segLength / 3.0));\n  } else {\n    bezCurve[1] = maths.addArrays(firstPoint, maths.mulItems(leftTangent, alpha_l));\n    bezCurve[2] = maths.addArrays(lastPoint, maths.mulItems(rightTangent, alpha_r));\n  }\n\n  return bezCurve;\n}\n\n;\n\nfunction reparameterize(bezier, points, parameters) {\n  return parameters.map((p, i) => newtonRaphsonRootFind(bezier, points[i], p));\n}\n\n;\n\nfunction newtonRaphsonRootFind(bez, point, u) {\n  var d = maths.subtract(bezier.q(bez, u), point),\n      qprime = bezier.qprime(bez, u),\n      numerator = maths.mulMatrix(d, qprime),\n      denominator = maths.sum(maths.squareItems(qprime)) + 2 * maths.mulMatrix(d, bezier.qprimeprime(bez, u));\n\n  if (denominator === 0) {\n    return u;\n  } else {\n    return u - numerator / denominator;\n  }\n}\n\n;\n\nfunction chordLengthParameterize(points) {\n  var u = [],\n      currU,\n      prevU,\n      prevP;\n  points.forEach((p, i) => {\n    currU = i ? prevU + maths.vectorLen(maths.subtract(p, prevP)) : 0;\n    u.push(currU);\n    prevU = currU;\n    prevP = p;\n  });\n  u = u.map(x => x / prevU);\n  return u;\n}\n\n;\n\nfunction computeMaxError(points, bez, parameters) {\n  var dist, maxDist, splitPoint, v, i, count, point, t;\n  maxDist = 0;\n  splitPoint = Math.floor(points.length / 2);\n  const t_distMap = mapTtoRelativeDistances(bez, 10);\n\n  for (i = 0, count = points.length; i < count; i++) {\n    point = points[i];\n    t = find_t(bez, parameters[i], t_distMap, 10);\n    v = maths.subtract(bezier.q(bez, t), point);\n    dist = v[0] * v[0] + v[1] * v[1];\n\n    if (dist > maxDist) {\n      maxDist = dist;\n      splitPoint = i;\n    }\n  }\n\n  return [maxDist, splitPoint];\n}\n\n;\n\nvar mapTtoRelativeDistances = function (bez, B_parts) {\n  var B_t_curr;\n  var B_t_dist = [0];\n  var B_t_prev = bez[0];\n  var sumLen = 0;\n\n  for (var i = 1; i <= B_parts; i++) {\n    B_t_curr = bezier.q(bez, i / B_parts);\n    sumLen += maths.vectorLen(maths.subtract(B_t_curr, B_t_prev));\n    B_t_dist.push(sumLen);\n    B_t_prev = B_t_curr;\n  }\n\n  B_t_dist = B_t_dist.map(x => x / sumLen);\n  return B_t_dist;\n};\n\nfunction find_t(bez, param, t_distMap, B_parts) {\n  if (param < 0) {\n    return 0;\n  }\n\n  if (param > 1) {\n    return 1;\n  }\n\n  var lenMax, lenMin, tMax, tMin, t;\n\n  for (var i = 1; i <= B_parts; i++) {\n    if (param <= t_distMap[i]) {\n      tMin = (i - 1) / B_parts;\n      tMax = i / B_parts;\n      lenMin = t_distMap[i - 1];\n      lenMax = t_distMap[i];\n      t = (param - lenMin) / (lenMax - lenMin) * (tMax - tMin) + tMin;\n      break;\n    }\n  }\n\n  return t;\n}\n\nfunction createTangent(pointA, pointB) {\n  return maths.normalize(maths.subtract(pointA, pointB));\n}\n\nclass maths {\n  static zeros_Xx2x2(x) {\n    var zs = [];\n\n    while (x--) {\n      zs.push([0, 0]);\n    }\n\n    return zs;\n  }\n\n  static mulItems(items, multiplier) {\n    return items.map(x => x * multiplier);\n  }\n\n  static mulMatrix(m1, m2) {\n    return m1.reduce((sum, x1, i) => sum + x1 * m2[i], 0);\n  }\n\n  static subtract(arr1, arr2) {\n    return arr1.map((x1, i) => x1 - arr2[i]);\n  }\n\n  static addArrays(arr1, arr2) {\n    return arr1.map((x1, i) => x1 + arr2[i]);\n  }\n\n  static addItems(items, addition) {\n    return items.map(x => x + addition);\n  }\n\n  static sum(items) {\n    return items.reduce((sum, x) => sum + x);\n  }\n\n  static dot(m1, m2) {\n    return maths.mulMatrix(m1, m2);\n  }\n\n  static vectorLen(v) {\n    return Math.hypot(...v);\n  }\n\n  static divItems(items, divisor) {\n    return items.map(x => x / divisor);\n  }\n\n  static squareItems(items) {\n    return items.map(x => x * x);\n  }\n\n  static normalize(v) {\n    return this.divItems(v, this.vectorLen(v));\n  }\n\n}\n\nclass bezier {\n  static q(ctrlPoly, t) {\n    var tx = 1.0 - t;\n    var pA = maths.mulItems(ctrlPoly[0], tx * tx * tx),\n        pB = maths.mulItems(ctrlPoly[1], 3 * tx * tx * t),\n        pC = maths.mulItems(ctrlPoly[2], 3 * tx * t * t),\n        pD = maths.mulItems(ctrlPoly[3], t * t * t);\n    return maths.addArrays(maths.addArrays(pA, pB), maths.addArrays(pC, pD));\n  }\n\n  static qprime(ctrlPoly, t) {\n    var tx = 1.0 - t;\n    var pA = maths.mulItems(maths.subtract(ctrlPoly[1], ctrlPoly[0]), 3 * tx * tx),\n        pB = maths.mulItems(maths.subtract(ctrlPoly[2], ctrlPoly[1]), 6 * tx * t),\n        pC = maths.mulItems(maths.subtract(ctrlPoly[3], ctrlPoly[2]), 3 * t * t);\n    return maths.addArrays(maths.addArrays(pA, pB), pC);\n  }\n\n  static qprimeprime(ctrlPoly, t) {\n    return maths.addArrays(maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[2], maths.mulItems(ctrlPoly[1], 2)), ctrlPoly[0]), 6 * (1.0 - t)), maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[3], maths.mulItems(ctrlPoly[2], 2)), ctrlPoly[1]), 6 * t));\n  }\n\n}\n\nmodule.exports = fitCurve;\nmodule.exports.fitCubic = fitCubic;\nmodule.exports.createTangent = createTangent;\n\n/***/ }),\n/* 152 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.AnnotationLayer = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nvar _annotation_storage = __w_pdfjs_require__(130);\n\nvar _scripting_utils = __w_pdfjs_require__(153);\n\nvar _xfa_layer = __w_pdfjs_require__(154);\n\nfunction _classStaticPrivateMethodGet(receiver, classConstructor, method) { _classCheckPrivateStaticAccess(receiver, classConstructor); return method; }\n\nfunction _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError(\"Private static access of wrong provenance\"); } }\n\nconst DEFAULT_TAB_INDEX = 1000;\nconst DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\n\nfunction getRectDims(rect) {\n  return {\n    width: rect[2] - rect[0],\n    height: rect[3] - rect[1]\n  };\n}\n\nclass AnnotationElementFactory {\n  static create(parameters) {\n    const subtype = parameters.data.annotationType;\n\n    switch (subtype) {\n      case _util.AnnotationType.LINK:\n        return new LinkAnnotationElement(parameters);\n\n      case _util.AnnotationType.TEXT:\n        return new TextAnnotationElement(parameters);\n\n      case _util.AnnotationType.WIDGET:\n        const fieldType = parameters.data.fieldType;\n\n        switch (fieldType) {\n          case \"Tx\":\n            return new TextWidgetAnnotationElement(parameters);\n\n          case \"Btn\":\n            if (parameters.data.radioButton) {\n              return new RadioButtonWidgetAnnotationElement(parameters);\n            } else if (parameters.data.checkBox) {\n              return new CheckboxWidgetAnnotationElement(parameters);\n            }\n\n            return new PushButtonWidgetAnnotationElement(parameters);\n\n          case \"Ch\":\n            return new ChoiceWidgetAnnotationElement(parameters);\n        }\n\n        return new WidgetAnnotationElement(parameters);\n\n      case _util.AnnotationType.POPUP:\n        return new PopupAnnotationElement(parameters);\n\n      case _util.AnnotationType.FREETEXT:\n        return new FreeTextAnnotationElement(parameters);\n\n      case _util.AnnotationType.LINE:\n        return new LineAnnotationElement(parameters);\n\n      case _util.AnnotationType.SQUARE:\n        return new SquareAnnotationElement(parameters);\n\n      case _util.AnnotationType.CIRCLE:\n        return new CircleAnnotationElement(parameters);\n\n      case _util.AnnotationType.POLYLINE:\n        return new PolylineAnnotationElement(parameters);\n\n      case _util.AnnotationType.CARET:\n        return new CaretAnnotationElement(parameters);\n\n      case _util.AnnotationType.INK:\n        return new InkAnnotationElement(parameters);\n\n      case _util.AnnotationType.POLYGON:\n        return new PolygonAnnotationElement(parameters);\n\n      case _util.AnnotationType.HIGHLIGHT:\n        return new HighlightAnnotationElement(parameters);\n\n      case _util.AnnotationType.UNDERLINE:\n        return new UnderlineAnnotationElement(parameters);\n\n      case _util.AnnotationType.SQUIGGLY:\n        return new SquigglyAnnotationElement(parameters);\n\n      case _util.AnnotationType.STRIKEOUT:\n        return new StrikeOutAnnotationElement(parameters);\n\n      case _util.AnnotationType.STAMP:\n        return new StampAnnotationElement(parameters);\n\n      case _util.AnnotationType.FILEATTACHMENT:\n        return new FileAttachmentAnnotationElement(parameters);\n\n      default:\n        return new AnnotationElement(parameters);\n    }\n  }\n\n}\n\nclass AnnotationElement {\n  constructor(parameters) {\n    let {\n      isRenderable = false,\n      ignoreBorder = false,\n      createQuadrilaterals = false\n    } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    this.isRenderable = isRenderable;\n    this.data = parameters.data;\n    this.layer = parameters.layer;\n    this.page = parameters.page;\n    this.viewport = parameters.viewport;\n    this.linkService = parameters.linkService;\n    this.downloadManager = parameters.downloadManager;\n    this.imageResourcesPath = parameters.imageResourcesPath;\n    this.renderForms = parameters.renderForms;\n    this.svgFactory = parameters.svgFactory;\n    this.annotationStorage = parameters.annotationStorage;\n    this.enableScripting = parameters.enableScripting;\n    this.hasJSActions = parameters.hasJSActions;\n    this._fieldObjects = parameters.fieldObjects;\n    this._mouseState = parameters.mouseState;\n\n    if (isRenderable) {\n      this.container = this._createContainer(ignoreBorder);\n    }\n\n    if (createQuadrilaterals) {\n      this.quadrilaterals = this._createQuadrilaterals(ignoreBorder);\n    }\n  }\n\n  _createContainer() {\n    let ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    const data = this.data,\n          page = this.page,\n          viewport = this.viewport;\n    const container = document.createElement(\"section\");\n    const {\n      width,\n      height\n    } = getRectDims(data.rect);\n    const [pageLLx, pageLLy, pageURx, pageURy] = viewport.viewBox;\n    const pageWidth = pageURx - pageLLx;\n    const pageHeight = pageURy - pageLLy;\n    container.setAttribute(\"data-annotation-id\", data.id);\n\n    const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n\n    if (!ignoreBorder && data.borderStyle.width > 0) {\n      container.style.borderWidth = `${data.borderStyle.width}px`;\n      const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n      const verticalRadius = data.borderStyle.verticalCornerRadius;\n\n      if (horizontalRadius > 0 || verticalRadius > 0) {\n        const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`;\n        container.style.borderRadius = radius;\n      } else if (this instanceof RadioButtonWidgetAnnotationElement) {\n        const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`;\n        container.style.borderRadius = radius;\n      }\n\n      switch (data.borderStyle.style) {\n        case _util.AnnotationBorderStyleType.SOLID:\n          container.style.borderStyle = \"solid\";\n          break;\n\n        case _util.AnnotationBorderStyleType.DASHED:\n          container.style.borderStyle = \"dashed\";\n          break;\n\n        case _util.AnnotationBorderStyleType.BEVELED:\n          (0, _util.warn)(\"Unimplemented border style: beveled\");\n          break;\n\n        case _util.AnnotationBorderStyleType.INSET:\n          (0, _util.warn)(\"Unimplemented border style: inset\");\n          break;\n\n        case _util.AnnotationBorderStyleType.UNDERLINE:\n          container.style.borderBottomStyle = \"solid\";\n          break;\n\n        default:\n          break;\n      }\n\n      const borderColor = data.borderColor || null;\n\n      if (borderColor) {\n        container.style.borderColor = _util.Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0);\n      } else {\n        container.style.borderWidth = 0;\n      }\n    }\n\n    container.style.left = `${100 * (rect[0] - pageLLx) / pageWidth}%`;\n    container.style.top = `${100 * (rect[1] - pageLLy) / pageHeight}%`;\n    const {\n      rotation\n    } = data;\n\n    if (data.hasOwnCanvas || rotation === 0) {\n      container.style.width = `${100 * width / pageWidth}%`;\n      container.style.height = `${100 * height / pageHeight}%`;\n    } else {\n      this.setRotation(rotation, container);\n    }\n\n    return container;\n  }\n\n  setRotation(angle) {\n    let container = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.container;\n    const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox;\n    const pageWidth = pageURx - pageLLx;\n    const pageHeight = pageURy - pageLLy;\n    const {\n      width,\n      height\n    } = getRectDims(this.data.rect);\n    let elementWidth, elementHeight;\n\n    if (angle % 180 === 0) {\n      elementWidth = 100 * width / pageWidth;\n      elementHeight = 100 * height / pageHeight;\n    } else {\n      elementWidth = 100 * height / pageWidth;\n      elementHeight = 100 * width / pageHeight;\n    }\n\n    container.style.width = `${elementWidth}%`;\n    container.style.height = `${elementHeight}%`;\n    container.setAttribute(\"data-main-rotation\", (360 - angle) % 360);\n  }\n\n  get _commonActions() {\n    const setColor = (jsName, styleName, event) => {\n      const color = event.detail[jsName];\n      event.target.style[styleName] = _scripting_utils.ColorConverters[`${color[0]}_HTML`](color.slice(1));\n    };\n\n    return (0, _util.shadow)(this, \"_commonActions\", {\n      display: event => {\n        const hidden = event.detail.display % 2 === 1;\n        this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n        this.annotationStorage.setValue(this.data.id, {\n          hidden,\n          print: event.detail.display === 0 || event.detail.display === 3\n        });\n      },\n      print: event => {\n        this.annotationStorage.setValue(this.data.id, {\n          print: event.detail.print\n        });\n      },\n      hidden: event => {\n        this.container.style.visibility = event.detail.hidden ? \"hidden\" : \"visible\";\n        this.annotationStorage.setValue(this.data.id, {\n          hidden: event.detail.hidden\n        });\n      },\n      focus: event => {\n        setTimeout(() => event.target.focus({\n          preventScroll: false\n        }), 0);\n      },\n      userName: event => {\n        event.target.title = event.detail.userName;\n      },\n      readonly: event => {\n        if (event.detail.readonly) {\n          event.target.setAttribute(\"readonly\", \"\");\n        } else {\n          event.target.removeAttribute(\"readonly\");\n        }\n      },\n      required: event => {\n        this._setRequired(event.target, event.detail.required);\n      },\n      bgColor: event => {\n        setColor(\"bgColor\", \"backgroundColor\", event);\n      },\n      fillColor: event => {\n        setColor(\"fillColor\", \"backgroundColor\", event);\n      },\n      fgColor: event => {\n        setColor(\"fgColor\", \"color\", event);\n      },\n      textColor: event => {\n        setColor(\"textColor\", \"color\", event);\n      },\n      borderColor: event => {\n        setColor(\"borderColor\", \"borderColor\", event);\n      },\n      strokeColor: event => {\n        setColor(\"strokeColor\", \"borderColor\", event);\n      },\n      rotation: event => {\n        const angle = event.detail.rotation;\n        this.setRotation(angle);\n        this.annotationStorage.setValue(this.data.id, {\n          rotation: angle\n        });\n      }\n    });\n  }\n\n  _dispatchEventFromSandbox(actions, jsEvent) {\n    const commonActions = this._commonActions;\n\n    for (const name of Object.keys(jsEvent.detail)) {\n      const action = actions[name] || commonActions[name];\n\n      if (action) {\n        action(jsEvent);\n      }\n    }\n  }\n\n  _setDefaultPropertiesFromJS(element) {\n    if (!this.enableScripting) {\n      return;\n    }\n\n    const storedData = this.annotationStorage.getRawValue(this.data.id);\n\n    if (!storedData) {\n      return;\n    }\n\n    const commonActions = this._commonActions;\n\n    for (const [actionName, detail] of Object.entries(storedData)) {\n      const action = commonActions[actionName];\n\n      if (action) {\n        const eventProxy = {\n          detail: {\n            [actionName]: detail\n          },\n          target: element\n        };\n        action(eventProxy);\n        delete storedData[actionName];\n      }\n    }\n  }\n\n  _createQuadrilaterals() {\n    let ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    if (!this.data.quadPoints) {\n      return null;\n    }\n\n    const quadrilaterals = [];\n    const savedRect = this.data.rect;\n\n    for (const quadPoint of this.data.quadPoints) {\n      this.data.rect = [quadPoint[2].x, quadPoint[2].y, quadPoint[1].x, quadPoint[1].y];\n      quadrilaterals.push(this._createContainer(ignoreBorder));\n    }\n\n    this.data.rect = savedRect;\n    return quadrilaterals;\n  }\n\n  _createPopup(trigger, data) {\n    let container = this.container;\n\n    if (this.quadrilaterals) {\n      trigger = trigger || this.quadrilaterals;\n      container = this.quadrilaterals[0];\n    }\n\n    if (!trigger) {\n      trigger = document.createElement(\"div\");\n      trigger.className = \"popupTriggerArea\";\n      container.append(trigger);\n    }\n\n    const popupElement = new PopupElement({\n      container,\n      trigger,\n      color: data.color,\n      titleObj: data.titleObj,\n      modificationDate: data.modificationDate,\n      contentsObj: data.contentsObj,\n      richText: data.richText,\n      hideWrapper: true\n    });\n    const popup = popupElement.render();\n    popup.style.left = \"100%\";\n    container.append(popup);\n  }\n\n  _renderQuadrilaterals(className) {\n    for (const quadrilateral of this.quadrilaterals) {\n      quadrilateral.className = className;\n    }\n\n    return this.quadrilaterals;\n  }\n\n  render() {\n    (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n  }\n\n  _getElementsByName(name) {\n    let skipId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    const fields = [];\n\n    if (this._fieldObjects) {\n      const fieldObj = this._fieldObjects[name];\n\n      if (fieldObj) {\n        for (const {\n          page,\n          id,\n          exportValues\n        } of fieldObj) {\n          if (page === -1) {\n            continue;\n          }\n\n          if (id === skipId) {\n            continue;\n          }\n\n          const exportValue = typeof exportValues === \"string\" ? exportValues : null;\n          const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n\n          if (domElement && !GetElementsByNameSet.has(domElement)) {\n            (0, _util.warn)(`_getElementsByName - element not allowed: ${id}`);\n            continue;\n          }\n\n          fields.push({\n            id,\n            exportValue,\n            domElement\n          });\n        }\n      }\n\n      return fields;\n    }\n\n    for (const domElement of document.getElementsByName(name)) {\n      const {\n        id,\n        exportValue\n      } = domElement;\n\n      if (id === skipId) {\n        continue;\n      }\n\n      if (!GetElementsByNameSet.has(domElement)) {\n        continue;\n      }\n\n      fields.push({\n        id,\n        exportValue,\n        domElement\n      });\n    }\n\n    return fields;\n  }\n\n  static get platform() {\n    const platform = typeof navigator !== \"undefined\" ? navigator.platform : \"\";\n    return (0, _util.shadow)(this, \"platform\", {\n      isWin: platform.includes(\"Win\"),\n      isMac: platform.includes(\"Mac\")\n    });\n  }\n\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: !!(options !== null && options !== void 0 && options.ignoreBorder),\n      createQuadrilaterals: true\n    });\n    this.isTooltipOnly = parameters.data.isTooltipOnly;\n  }\n\n  render() {\n    const {\n      data,\n      linkService\n    } = this;\n    const link = document.createElement(\"a\");\n    link.setAttribute(\"data-element-id\", data.id);\n    let isBound = false;\n\n    if (data.url) {\n      linkService.addLinkAttributes(link, data.url, data.newWindow);\n      isBound = true;\n    } else if (data.action) {\n      this._bindNamedAction(link, data.action);\n\n      isBound = true;\n    } else if (data.dest) {\n      this._bindLink(link, data.dest);\n\n      isBound = true;\n    } else {\n      if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n        this._bindJSAction(link, data);\n\n        isBound = true;\n      }\n\n      if (data.resetForm) {\n        this._bindResetFormAction(link, data.resetForm);\n\n        isBound = true;\n      } else if (this.isTooltipOnly && !isBound) {\n        this._bindLink(link, \"\");\n\n        isBound = true;\n      }\n    }\n\n    if (this.quadrilaterals) {\n      return this._renderQuadrilaterals(\"linkAnnotation\").map((quadrilateral, index) => {\n        const linkElement = index === 0 ? link : link.cloneNode();\n        quadrilateral.append(linkElement);\n        return quadrilateral;\n      });\n    }\n\n    this.container.className = \"linkAnnotation\";\n\n    if (isBound) {\n      this.container.append(link);\n    }\n\n    return this.container;\n  }\n\n  _bindLink(link, destination) {\n    link.href = this.linkService.getDestinationHash(destination);\n\n    link.onclick = () => {\n      if (destination) {\n        this.linkService.goToDestination(destination);\n      }\n\n      return false;\n    };\n\n    if (destination || destination === \"\") {\n      link.className = \"internalLink\";\n    }\n  }\n\n  _bindNamedAction(link, action) {\n    link.href = this.linkService.getAnchorUrl(\"\");\n\n    link.onclick = () => {\n      this.linkService.executeNamedAction(action);\n      return false;\n    };\n\n    link.className = \"internalLink\";\n  }\n\n  _bindJSAction(link, data) {\n    link.href = this.linkService.getAnchorUrl(\"\");\n    const map = new Map([[\"Action\", \"onclick\"], [\"Mouse Up\", \"onmouseup\"], [\"Mouse Down\", \"onmousedown\"]]);\n\n    for (const name of Object.keys(data.actions)) {\n      const jsName = map.get(name);\n\n      if (!jsName) {\n        continue;\n      }\n\n      link[jsName] = () => {\n        var _this$linkService$eve;\n\n        (_this$linkService$eve = this.linkService.eventBus) === null || _this$linkService$eve === void 0 ? void 0 : _this$linkService$eve.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: data.id,\n            name\n          }\n        });\n        return false;\n      };\n    }\n\n    if (!link.onclick) {\n      link.onclick = () => false;\n    }\n\n    link.className = \"internalLink\";\n  }\n\n  _bindResetFormAction(link, resetForm) {\n    const otherClickAction = link.onclick;\n\n    if (!otherClickAction) {\n      link.href = this.linkService.getAnchorUrl(\"\");\n    }\n\n    link.className = \"internalLink\";\n\n    if (!this._fieldObjects) {\n      (0, _util.warn)(`_bindResetFormAction - \"resetForm\" action not supported, ` + \"ensure that the `fieldObjects` parameter is provided.\");\n\n      if (!otherClickAction) {\n        link.onclick = () => false;\n      }\n\n      return;\n    }\n\n    link.onclick = () => {\n      if (otherClickAction) {\n        otherClickAction();\n      }\n\n      const {\n        fields: resetFormFields,\n        refs: resetFormRefs,\n        include\n      } = resetForm;\n      const allFields = [];\n\n      if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n        const fieldIds = new Set(resetFormRefs);\n\n        for (const fieldName of resetFormFields) {\n          const fields = this._fieldObjects[fieldName] || [];\n\n          for (const {\n            id\n          } of fields) {\n            fieldIds.add(id);\n          }\n        }\n\n        for (const fields of Object.values(this._fieldObjects)) {\n          for (const field of fields) {\n            if (fieldIds.has(field.id) === include) {\n              allFields.push(field);\n            }\n          }\n        }\n      } else {\n        for (const fields of Object.values(this._fieldObjects)) {\n          allFields.push(...fields);\n        }\n      }\n\n      const storage = this.annotationStorage;\n      const allIds = [];\n\n      for (const field of allFields) {\n        const {\n          id\n        } = field;\n        allIds.push(id);\n\n        switch (field.type) {\n          case \"text\":\n            {\n              const value = field.defaultValue || \"\";\n              storage.setValue(id, {\n                value\n              });\n              break;\n            }\n\n          case \"checkbox\":\n          case \"radiobutton\":\n            {\n              const value = field.defaultValue === field.exportValues;\n              storage.setValue(id, {\n                value\n              });\n              break;\n            }\n\n          case \"combobox\":\n          case \"listbox\":\n            {\n              const value = field.defaultValue || \"\";\n              storage.setValue(id, {\n                value\n              });\n              break;\n            }\n\n          default:\n            continue;\n        }\n\n        const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n\n        if (!domElement) {\n          continue;\n        } else if (!GetElementsByNameSet.has(domElement)) {\n          (0, _util.warn)(`_bindResetFormAction - element not allowed: ${id}`);\n          continue;\n        }\n\n        domElement.dispatchEvent(new Event(\"resetform\"));\n      }\n\n      if (this.enableScripting) {\n        var _this$linkService$eve2;\n\n        (_this$linkService$eve2 = this.linkService.eventBus) === null || _this$linkService$eve2 === void 0 ? void 0 : _this$linkService$eve2.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: \"app\",\n            ids: allIds,\n            name: \"ResetForm\"\n          }\n        });\n      }\n\n      return false;\n    };\n  }\n\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    var _parameters$data$titl, _parameters$data$cont, _parameters$data$rich;\n\n    const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl = parameters.data.titleObj) !== null && _parameters$data$titl !== void 0 && _parameters$data$titl.str || (_parameters$data$cont = parameters.data.contentsObj) !== null && _parameters$data$cont !== void 0 && _parameters$data$cont.str || (_parameters$data$rich = parameters.data.richText) !== null && _parameters$data$rich !== void 0 && _parameters$data$rich.str);\n    super(parameters, {\n      isRenderable\n    });\n  }\n\n  render() {\n    this.container.className = \"textAnnotation\";\n    const image = document.createElement(\"img\");\n    image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n    image.alt = \"[{{type}} Annotation]\";\n    image.dataset.l10nId = \"text_annotation_type\";\n    image.dataset.l10nArgs = JSON.stringify({\n      type: this.data.name\n    });\n\n    if (!this.data.hasPopup) {\n      this._createPopup(image, this.data);\n    }\n\n    this.container.append(image);\n    return this.container;\n  }\n\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n  render() {\n    if (this.data.alternativeText) {\n      this.container.title = this.data.alternativeText;\n    }\n\n    return this.container;\n  }\n\n  _getKeyModifier(event) {\n    const {\n      isWin,\n      isMac\n    } = AnnotationElement.platform;\n    return isWin && event.ctrlKey || isMac && event.metaKey;\n  }\n\n  _setEventListener(element, baseName, eventName, valueGetter) {\n    if (baseName.includes(\"mouse\")) {\n      element.addEventListener(baseName, event => {\n        var _this$linkService$eve3;\n\n        (_this$linkService$eve3 = this.linkService.eventBus) === null || _this$linkService$eve3 === void 0 ? void 0 : _this$linkService$eve3.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: this.data.id,\n            name: eventName,\n            value: valueGetter(event),\n            shift: event.shiftKey,\n            modifier: this._getKeyModifier(event)\n          }\n        });\n      });\n    } else {\n      element.addEventListener(baseName, event => {\n        var _this$linkService$eve4;\n\n        (_this$linkService$eve4 = this.linkService.eventBus) === null || _this$linkService$eve4 === void 0 ? void 0 : _this$linkService$eve4.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: this.data.id,\n            name: eventName,\n            value: valueGetter(event)\n          }\n        });\n      });\n    }\n  }\n\n  _setEventListeners(element, names, getter) {\n    for (const [baseName, eventName] of names) {\n      var _this$data$actions;\n\n      if (eventName === \"Action\" || (_this$data$actions = this.data.actions) !== null && _this$data$actions !== void 0 && _this$data$actions[eventName]) {\n        this._setEventListener(element, baseName, eventName, getter);\n      }\n    }\n  }\n\n  _setBackgroundColor(element) {\n    const color = this.data.backgroundColor || null;\n    element.style.backgroundColor = color === null ? \"transparent\" : _util.Util.makeHexColor(color[0], color[1], color[2]);\n  }\n\n  _setTextStyle(element) {\n    const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n    const {\n      fontColor\n    } = this.data.defaultAppearanceData;\n    const fontSize = this.data.defaultAppearanceData.fontSize || DEFAULT_FONT_SIZE;\n    const style = element.style;\n    let computedFontSize;\n\n    if (this.data.multiLine) {\n      const height = Math.abs(this.data.rect[3] - this.data.rect[1]);\n      const numberOfLines = Math.round(height / (_util.LINE_FACTOR * fontSize)) || 1;\n      const lineHeight = height / numberOfLines;\n      computedFontSize = Math.min(fontSize, Math.round(lineHeight / _util.LINE_FACTOR));\n    } else {\n      const height = Math.abs(this.data.rect[3] - this.data.rect[1]);\n      computedFontSize = Math.min(fontSize, Math.round(height / _util.LINE_FACTOR));\n    }\n\n    style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`;\n    style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n\n    if (this.data.textAlignment !== null) {\n      style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n    }\n  }\n\n  _setRequired(element, isRequired) {\n    if (isRequired) {\n      element.setAttribute(\"required\", true);\n    } else {\n      element.removeAttribute(\"required\");\n    }\n\n    element.setAttribute(\"aria-required\", isRequired);\n  }\n\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    const isRenderable = parameters.renderForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n    super(parameters, {\n      isRenderable\n    });\n  }\n\n  setPropertyOnSiblings(base, key, value, keyInStorage) {\n    const storage = this.annotationStorage;\n\n    for (const element of this._getElementsByName(base.name, base.id)) {\n      if (element.domElement) {\n        element.domElement[key] = value;\n      }\n\n      storage.setValue(element.id, {\n        [keyInStorage]: value\n      });\n    }\n  }\n\n  render() {\n    const storage = this.annotationStorage;\n    const id = this.data.id;\n    this.container.className = \"textWidgetAnnotation\";\n    let element = null;\n\n    if (this.renderForms) {\n      const storedData = storage.getValue(id, {\n        value: this.data.fieldValue\n      });\n      let textContent = storedData.formattedValue || storedData.value || \"\";\n      const maxLen = storage.getValue(id, {\n        charLimit: this.data.maxLen\n      }).charLimit;\n\n      if (maxLen && textContent.length > maxLen) {\n        textContent = textContent.slice(0, maxLen);\n      }\n\n      const elementData = {\n        userValue: textContent,\n        formattedValue: null,\n        valueOnFocus: \"\"\n      };\n\n      if (this.data.multiLine) {\n        element = document.createElement(\"textarea\");\n        element.textContent = textContent;\n\n        if (this.data.doNotScroll) {\n          element.style.overflowY = \"hidden\";\n        }\n      } else {\n        element = document.createElement(\"input\");\n        element.type = \"text\";\n        element.setAttribute(\"value\", textContent);\n\n        if (this.data.doNotScroll) {\n          element.style.overflowX = \"hidden\";\n        }\n      }\n\n      GetElementsByNameSet.add(element);\n      element.setAttribute(\"data-element-id\", id);\n      element.disabled = this.data.readOnly;\n      element.name = this.data.fieldName;\n      element.tabIndex = DEFAULT_TAB_INDEX;\n\n      this._setRequired(element, this.data.required);\n\n      if (maxLen) {\n        element.maxLength = maxLen;\n      }\n\n      element.addEventListener(\"input\", event => {\n        storage.setValue(id, {\n          value: event.target.value\n        });\n        this.setPropertyOnSiblings(element, \"value\", event.target.value, \"value\");\n      });\n      element.addEventListener(\"resetform\", event => {\n        var _this$data$defaultFie;\n\n        const defaultValue = (_this$data$defaultFie = this.data.defaultFieldValue) !== null && _this$data$defaultFie !== void 0 ? _this$data$defaultFie : \"\";\n        element.value = elementData.userValue = defaultValue;\n        elementData.formattedValue = null;\n      });\n\n      let blurListener = event => {\n        const {\n          formattedValue\n        } = elementData;\n\n        if (formattedValue !== null && formattedValue !== undefined) {\n          event.target.value = formattedValue;\n        }\n\n        event.target.scrollLeft = 0;\n      };\n\n      if (this.enableScripting && this.hasJSActions) {\n        var _this$data$actions2;\n\n        element.addEventListener(\"focus\", event => {\n          if (elementData.userValue) {\n            event.target.value = elementData.userValue;\n          }\n\n          elementData.valueOnFocus = event.target.value;\n        });\n        element.addEventListener(\"updatefromsandbox\", jsEvent => {\n          const actions = {\n            value(event) {\n              var _event$detail$value;\n\n              elementData.userValue = (_event$detail$value = event.detail.value) !== null && _event$detail$value !== void 0 ? _event$detail$value : \"\";\n              storage.setValue(id, {\n                value: elementData.userValue.toString()\n              });\n              event.target.value = elementData.userValue;\n            },\n\n            formattedValue(event) {\n              const {\n                formattedValue\n              } = event.detail;\n              elementData.formattedValue = formattedValue;\n\n              if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) {\n                event.target.value = formattedValue;\n              }\n\n              storage.setValue(id, {\n                formattedValue\n              });\n            },\n\n            selRange(event) {\n              event.target.setSelectionRange(...event.detail.selRange);\n            },\n\n            charLimit: event => {\n              var _this$linkService$eve5;\n\n              const {\n                charLimit\n              } = event.detail;\n              const {\n                target\n              } = event;\n\n              if (charLimit === 0) {\n                target.removeAttribute(\"maxLength\");\n                return;\n              }\n\n              target.setAttribute(\"maxLength\", charLimit);\n              let value = elementData.userValue;\n\n              if (!value || value.length <= charLimit) {\n                return;\n              }\n\n              value = value.slice(0, charLimit);\n              target.value = elementData.userValue = value;\n              storage.setValue(id, {\n                value\n              });\n              (_this$linkService$eve5 = this.linkService.eventBus) === null || _this$linkService$eve5 === void 0 ? void 0 : _this$linkService$eve5.dispatch(\"dispatcheventinsandbox\", {\n                source: this,\n                detail: {\n                  id,\n                  name: \"Keystroke\",\n                  value,\n                  willCommit: true,\n                  commitKey: 1,\n                  selStart: target.selectionStart,\n                  selEnd: target.selectionEnd\n                }\n              });\n            }\n          };\n\n          this._dispatchEventFromSandbox(actions, jsEvent);\n        });\n        element.addEventListener(\"keydown\", event => {\n          var _this$linkService$eve6;\n\n          let commitKey = -1;\n\n          if (event.key === \"Escape\") {\n            commitKey = 0;\n          } else if (event.key === \"Enter\") {\n            commitKey = 2;\n          } else if (event.key === \"Tab\") {\n            commitKey = 3;\n          }\n\n          if (commitKey === -1) {\n            return;\n          }\n\n          const {\n            value\n          } = event.target;\n\n          if (elementData.valueOnFocus === value) {\n            return;\n          }\n\n          elementData.userValue = value;\n          (_this$linkService$eve6 = this.linkService.eventBus) === null || _this$linkService$eve6 === void 0 ? void 0 : _this$linkService$eve6.dispatch(\"dispatcheventinsandbox\", {\n            source: this,\n            detail: {\n              id,\n              name: \"Keystroke\",\n              value,\n              willCommit: true,\n              commitKey,\n              selStart: event.target.selectionStart,\n              selEnd: event.target.selectionEnd\n            }\n          });\n        });\n        const _blurListener = blurListener;\n        blurListener = null;\n        element.addEventListener(\"blur\", event => {\n          const {\n            value\n          } = event.target;\n          elementData.userValue = value;\n\n          if (this._mouseState.isDown && elementData.valueOnFocus !== value) {\n            var _this$linkService$eve7;\n\n            (_this$linkService$eve7 = this.linkService.eventBus) === null || _this$linkService$eve7 === void 0 ? void 0 : _this$linkService$eve7.dispatch(\"dispatcheventinsandbox\", {\n              source: this,\n              detail: {\n                id,\n                name: \"Keystroke\",\n                value,\n                willCommit: true,\n                commitKey: 1,\n                selStart: event.target.selectionStart,\n                selEnd: event.target.selectionEnd\n              }\n            });\n          }\n\n          _blurListener(event);\n        });\n\n        if ((_this$data$actions2 = this.data.actions) !== null && _this$data$actions2 !== void 0 && _this$data$actions2.Keystroke) {\n          element.addEventListener(\"beforeinput\", event => {\n            var _this$linkService$eve8;\n\n            const {\n              data,\n              target\n            } = event;\n            const {\n              value,\n              selectionStart,\n              selectionEnd\n            } = target;\n            let selStart = selectionStart,\n                selEnd = selectionEnd;\n\n            switch (event.inputType) {\n              case \"deleteWordBackward\":\n                {\n                  const match = value.substring(0, selectionStart).match(/\\w*[^\\w]*$/);\n\n                  if (match) {\n                    selStart -= match[0].length;\n                  }\n\n                  break;\n                }\n\n              case \"deleteWordForward\":\n                {\n                  const match = value.substring(selectionStart).match(/^[^\\w]*\\w*/);\n\n                  if (match) {\n                    selEnd += match[0].length;\n                  }\n\n                  break;\n                }\n\n              case \"deleteContentBackward\":\n                if (selectionStart === selectionEnd) {\n                  selStart -= 1;\n                }\n\n                break;\n\n              case \"deleteContentForward\":\n                if (selectionStart === selectionEnd) {\n                  selEnd += 1;\n                }\n\n                break;\n            }\n\n            event.preventDefault();\n            (_this$linkService$eve8 = this.linkService.eventBus) === null || _this$linkService$eve8 === void 0 ? void 0 : _this$linkService$eve8.dispatch(\"dispatcheventinsandbox\", {\n              source: this,\n              detail: {\n                id,\n                name: \"Keystroke\",\n                value,\n                change: data || \"\",\n                willCommit: false,\n                selStart,\n                selEnd\n              }\n            });\n          });\n        }\n\n        this._setEventListeners(element, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.value);\n      }\n\n      if (blurListener) {\n        element.addEventListener(\"blur\", blurListener);\n      }\n\n      if (this.data.comb) {\n        const fieldWidth = this.data.rect[2] - this.data.rect[0];\n        const combWidth = fieldWidth / maxLen;\n        element.classList.add(\"comb\");\n        element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 1ch)`;\n      }\n    } else {\n      element = document.createElement(\"div\");\n      element.textContent = this.data.fieldValue;\n      element.style.verticalAlign = \"middle\";\n      element.style.display = \"table-cell\";\n    }\n\n    this._setTextStyle(element);\n\n    this._setBackgroundColor(element);\n\n    this._setDefaultPropertiesFromJS(element);\n\n    this.container.append(element);\n    return this.container;\n  }\n\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: parameters.renderForms\n    });\n  }\n\n  render() {\n    const storage = this.annotationStorage;\n    const data = this.data;\n    const id = data.id;\n    let value = storage.getValue(id, {\n      value: data.exportValue === data.fieldValue\n    }).value;\n\n    if (typeof value === \"string\") {\n      value = value !== \"Off\";\n      storage.setValue(id, {\n        value\n      });\n    }\n\n    this.container.className = \"buttonWidgetAnnotation checkBox\";\n    const element = document.createElement(\"input\");\n    GetElementsByNameSet.add(element);\n    element.setAttribute(\"data-element-id\", id);\n    element.disabled = data.readOnly;\n\n    this._setRequired(element, this.data.required);\n\n    element.type = \"checkbox\";\n    element.name = data.fieldName;\n\n    if (value) {\n      element.setAttribute(\"checked\", true);\n    }\n\n    element.setAttribute(\"exportValue\", data.exportValue);\n    element.tabIndex = DEFAULT_TAB_INDEX;\n    element.addEventListener(\"change\", event => {\n      const {\n        name,\n        checked\n      } = event.target;\n\n      for (const checkbox of this._getElementsByName(name, id)) {\n        const curChecked = checked && checkbox.exportValue === data.exportValue;\n\n        if (checkbox.domElement) {\n          checkbox.domElement.checked = curChecked;\n        }\n\n        storage.setValue(checkbox.id, {\n          value: curChecked\n        });\n      }\n\n      storage.setValue(id, {\n        value: checked\n      });\n    });\n    element.addEventListener(\"resetform\", event => {\n      const defaultValue = data.defaultFieldValue || \"Off\";\n      event.target.checked = defaultValue === data.exportValue;\n    });\n\n    if (this.enableScripting && this.hasJSActions) {\n      element.addEventListener(\"updatefromsandbox\", jsEvent => {\n        const actions = {\n          value(event) {\n            event.target.checked = event.detail.value !== \"Off\";\n            storage.setValue(id, {\n              value: event.target.checked\n            });\n          }\n\n        };\n\n        this._dispatchEventFromSandbox(actions, jsEvent);\n      });\n\n      this._setEventListeners(element, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n    }\n\n    this._setBackgroundColor(element);\n\n    this._setDefaultPropertiesFromJS(element);\n\n    this.container.append(element);\n    return this.container;\n  }\n\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: parameters.renderForms\n    });\n  }\n\n  render() {\n    this.container.className = \"buttonWidgetAnnotation radioButton\";\n    const storage = this.annotationStorage;\n    const data = this.data;\n    const id = data.id;\n    let value = storage.getValue(id, {\n      value: data.fieldValue === data.buttonValue\n    }).value;\n\n    if (typeof value === \"string\") {\n      value = value !== data.buttonValue;\n      storage.setValue(id, {\n        value\n      });\n    }\n\n    const element = document.createElement(\"input\");\n    GetElementsByNameSet.add(element);\n    element.setAttribute(\"data-element-id\", id);\n    element.disabled = data.readOnly;\n\n    this._setRequired(element, this.data.required);\n\n    element.type = \"radio\";\n    element.name = data.fieldName;\n\n    if (value) {\n      element.setAttribute(\"checked\", true);\n    }\n\n    element.tabIndex = DEFAULT_TAB_INDEX;\n    element.addEventListener(\"change\", event => {\n      const {\n        name,\n        checked\n      } = event.target;\n\n      for (const radio of this._getElementsByName(name, id)) {\n        storage.setValue(radio.id, {\n          value: false\n        });\n      }\n\n      storage.setValue(id, {\n        value: checked\n      });\n    });\n    element.addEventListener(\"resetform\", event => {\n      const defaultValue = data.defaultFieldValue;\n      event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;\n    });\n\n    if (this.enableScripting && this.hasJSActions) {\n      const pdfButtonValue = data.buttonValue;\n      element.addEventListener(\"updatefromsandbox\", jsEvent => {\n        const actions = {\n          value: event => {\n            const checked = pdfButtonValue === event.detail.value;\n\n            for (const radio of this._getElementsByName(event.target.name)) {\n              const curChecked = checked && radio.id === id;\n\n              if (radio.domElement) {\n                radio.domElement.checked = curChecked;\n              }\n\n              storage.setValue(radio.id, {\n                value: curChecked\n              });\n            }\n          }\n        };\n\n        this._dispatchEventFromSandbox(actions, jsEvent);\n      });\n\n      this._setEventListeners(element, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n    }\n\n    this._setBackgroundColor(element);\n\n    this._setDefaultPropertiesFromJS(element);\n\n    this.container.append(element);\n    return this.container;\n  }\n\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      ignoreBorder: parameters.data.hasAppearance\n    });\n  }\n\n  render() {\n    const container = super.render();\n    container.className = \"buttonWidgetAnnotation pushButton\";\n\n    if (this.data.alternativeText) {\n      container.title = this.data.alternativeText;\n    }\n\n    const linkElement = container.lastChild;\n\n    if (this.enableScripting && this.hasJSActions && linkElement) {\n      this._setDefaultPropertiesFromJS(linkElement);\n\n      linkElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n        this._dispatchEventFromSandbox({}, jsEvent);\n      });\n    }\n\n    return container;\n  }\n\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: parameters.renderForms\n    });\n  }\n\n  render() {\n    this.container.className = \"choiceWidgetAnnotation\";\n    const storage = this.annotationStorage;\n    const id = this.data.id;\n    const storedData = storage.getValue(id, {\n      value: this.data.fieldValue\n    });\n    const selectElement = document.createElement(\"select\");\n    GetElementsByNameSet.add(selectElement);\n    selectElement.setAttribute(\"data-element-id\", id);\n    selectElement.disabled = this.data.readOnly;\n\n    this._setRequired(selectElement, this.data.required);\n\n    selectElement.name = this.data.fieldName;\n    selectElement.tabIndex = DEFAULT_TAB_INDEX;\n    let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;\n\n    if (!this.data.combo) {\n      selectElement.size = this.data.options.length;\n\n      if (this.data.multiSelect) {\n        selectElement.multiple = true;\n      }\n    }\n\n    selectElement.addEventListener(\"resetform\", event => {\n      const defaultValue = this.data.defaultFieldValue;\n\n      for (const option of selectElement.options) {\n        option.selected = option.value === defaultValue;\n      }\n    });\n\n    for (const option of this.data.options) {\n      const optionElement = document.createElement(\"option\");\n      optionElement.textContent = option.displayValue;\n      optionElement.value = option.exportValue;\n\n      if (storedData.value.includes(option.exportValue)) {\n        optionElement.setAttribute(\"selected\", true);\n        addAnEmptyEntry = false;\n      }\n\n      selectElement.append(optionElement);\n    }\n\n    let removeEmptyEntry = null;\n\n    if (addAnEmptyEntry) {\n      const noneOptionElement = document.createElement(\"option\");\n      noneOptionElement.value = \" \";\n      noneOptionElement.setAttribute(\"hidden\", true);\n      noneOptionElement.setAttribute(\"selected\", true);\n      selectElement.prepend(noneOptionElement);\n\n      removeEmptyEntry = () => {\n        noneOptionElement.remove();\n        selectElement.removeEventListener(\"input\", removeEmptyEntry);\n        removeEmptyEntry = null;\n      };\n\n      selectElement.addEventListener(\"input\", removeEmptyEntry);\n    }\n\n    const getValue = (event, isExport) => {\n      const name = isExport ? \"value\" : \"textContent\";\n      const options = event.target.options;\n\n      if (!event.target.multiple) {\n        return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];\n      }\n\n      return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]);\n    };\n\n    const getItems = event => {\n      const options = event.target.options;\n      return Array.prototype.map.call(options, option => {\n        return {\n          displayValue: option.textContent,\n          exportValue: option.value\n        };\n      });\n    };\n\n    if (this.enableScripting && this.hasJSActions) {\n      selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n        const actions = {\n          value(event) {\n            var _removeEmptyEntry;\n\n            (_removeEmptyEntry = removeEmptyEntry) === null || _removeEmptyEntry === void 0 ? void 0 : _removeEmptyEntry();\n            const value = event.detail.value;\n            const values = new Set(Array.isArray(value) ? value : [value]);\n\n            for (const option of selectElement.options) {\n              option.selected = values.has(option.value);\n            }\n\n            storage.setValue(id, {\n              value: getValue(event, true)\n            });\n          },\n\n          multipleSelection(event) {\n            selectElement.multiple = true;\n          },\n\n          remove(event) {\n            const options = selectElement.options;\n            const index = event.detail.remove;\n            options[index].selected = false;\n            selectElement.remove(index);\n\n            if (options.length > 0) {\n              const i = Array.prototype.findIndex.call(options, option => option.selected);\n\n              if (i === -1) {\n                options[0].selected = true;\n              }\n            }\n\n            storage.setValue(id, {\n              value: getValue(event, true),\n              items: getItems(event)\n            });\n          },\n\n          clear(event) {\n            while (selectElement.length !== 0) {\n              selectElement.remove(0);\n            }\n\n            storage.setValue(id, {\n              value: null,\n              items: []\n            });\n          },\n\n          insert(event) {\n            const {\n              index,\n              displayValue,\n              exportValue\n            } = event.detail.insert;\n            const selectChild = selectElement.children[index];\n            const optionElement = document.createElement(\"option\");\n            optionElement.textContent = displayValue;\n            optionElement.value = exportValue;\n\n            if (selectChild) {\n              selectChild.before(optionElement);\n            } else {\n              selectElement.append(optionElement);\n            }\n\n            storage.setValue(id, {\n              value: getValue(event, true),\n              items: getItems(event)\n            });\n          },\n\n          items(event) {\n            const {\n              items\n            } = event.detail;\n\n            while (selectElement.length !== 0) {\n              selectElement.remove(0);\n            }\n\n            for (const item of items) {\n              const {\n                displayValue,\n                exportValue\n              } = item;\n              const optionElement = document.createElement(\"option\");\n              optionElement.textContent = displayValue;\n              optionElement.value = exportValue;\n              selectElement.append(optionElement);\n            }\n\n            if (selectElement.options.length > 0) {\n              selectElement.options[0].selected = true;\n            }\n\n            storage.setValue(id, {\n              value: getValue(event, true),\n              items: getItems(event)\n            });\n          },\n\n          indices(event) {\n            const indices = new Set(event.detail.indices);\n\n            for (const option of event.target.options) {\n              option.selected = indices.has(option.index);\n            }\n\n            storage.setValue(id, {\n              value: getValue(event, true)\n            });\n          },\n\n          editable(event) {\n            event.target.disabled = !event.detail.editable;\n          }\n\n        };\n\n        this._dispatchEventFromSandbox(actions, jsEvent);\n      });\n      selectElement.addEventListener(\"input\", event => {\n        var _this$linkService$eve9;\n\n        const exportValue = getValue(event, true);\n        const value = getValue(event, false);\n        storage.setValue(id, {\n          value: exportValue\n        });\n        (_this$linkService$eve9 = this.linkService.eventBus) === null || _this$linkService$eve9 === void 0 ? void 0 : _this$linkService$eve9.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id,\n            name: \"Keystroke\",\n            value,\n            changeEx: exportValue,\n            willCommit: true,\n            commitKey: 1,\n            keyDown: false\n          }\n        });\n      });\n\n      this._setEventListeners(selectElement, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"], [\"input\", \"Action\"]], event => event.target.checked);\n    } else {\n      selectElement.addEventListener(\"input\", function (event) {\n        storage.setValue(id, {\n          value: getValue(event, true)\n        });\n      });\n    }\n\n    if (this.data.combo) {\n      this._setTextStyle(selectElement);\n    } else {}\n\n    this._setBackgroundColor(selectElement);\n\n    this._setDefaultPropertiesFromJS(selectElement);\n\n    this.container.append(selectElement);\n    return this.container;\n  }\n\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    var _parameters$data$titl2, _parameters$data$cont2, _parameters$data$rich2;\n\n    const isRenderable = !!((_parameters$data$titl2 = parameters.data.titleObj) !== null && _parameters$data$titl2 !== void 0 && _parameters$data$titl2.str || (_parameters$data$cont2 = parameters.data.contentsObj) !== null && _parameters$data$cont2 !== void 0 && _parameters$data$cont2.str || (_parameters$data$rich2 = parameters.data.richText) !== null && _parameters$data$rich2 !== void 0 && _parameters$data$rich2.str);\n    super(parameters, {\n      isRenderable\n    });\n  }\n\n  render() {\n    const IGNORE_TYPES = [\"Line\", \"Square\", \"Circle\", \"PolyLine\", \"Polygon\", \"Ink\"];\n    this.container.className = \"popupAnnotation\";\n\n    if (IGNORE_TYPES.includes(this.data.parentType)) {\n      return this.container;\n    }\n\n    const selector = `[data-annotation-id=\"${this.data.parentId}\"]`;\n    const parentElements = this.layer.querySelectorAll(selector);\n\n    if (parentElements.length === 0) {\n      return this.container;\n    }\n\n    const popup = new PopupElement({\n      container: this.container,\n      trigger: Array.from(parentElements),\n      color: this.data.color,\n      titleObj: this.data.titleObj,\n      modificationDate: this.data.modificationDate,\n      contentsObj: this.data.contentsObj,\n      richText: this.data.richText\n    });\n    const page = this.page;\n\n    const rect = _util.Util.normalizeRect([this.data.parentRect[0], page.view[3] - this.data.parentRect[1] + page.view[1], this.data.parentRect[2], page.view[3] - this.data.parentRect[3] + page.view[1]]);\n\n    const popupLeft = rect[0] + this.data.parentRect[2] - this.data.parentRect[0];\n    const popupTop = rect[1];\n    const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox;\n    const pageWidth = pageURx - pageLLx;\n    const pageHeight = pageURy - pageLLy;\n    this.container.style.left = `${100 * (popupLeft - pageLLx) / pageWidth}%`;\n    this.container.style.top = `${100 * (popupTop - pageLLy) / pageHeight}%`;\n    this.container.append(popup.render());\n    return this.container;\n  }\n\n}\n\nclass PopupElement {\n  constructor(parameters) {\n    this.container = parameters.container;\n    this.trigger = parameters.trigger;\n    this.color = parameters.color;\n    this.titleObj = parameters.titleObj;\n    this.modificationDate = parameters.modificationDate;\n    this.contentsObj = parameters.contentsObj;\n    this.richText = parameters.richText;\n    this.hideWrapper = parameters.hideWrapper || false;\n    this.pinned = false;\n  }\n\n  render() {\n    var _this$richText, _this$contentsObj;\n\n    const BACKGROUND_ENLIGHT = 0.7;\n    const wrapper = document.createElement(\"div\");\n    wrapper.className = \"popupWrapper\";\n    this.hideElement = this.hideWrapper ? wrapper : this.container;\n    this.hideElement.hidden = true;\n    const popup = document.createElement(\"div\");\n    popup.className = \"popup\";\n    const color = this.color;\n\n    if (color) {\n      const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n      const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n      const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n      popup.style.backgroundColor = _util.Util.makeHexColor(r | 0, g | 0, b | 0);\n    }\n\n    const title = document.createElement(\"h1\");\n    title.dir = this.titleObj.dir;\n    title.textContent = this.titleObj.str;\n    popup.append(title);\n\n    const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);\n\n    if (dateObject) {\n      const modificationDate = document.createElement(\"span\");\n      modificationDate.className = \"popupDate\";\n      modificationDate.textContent = \"{{date}}, {{time}}\";\n      modificationDate.dataset.l10nId = \"annotation_date_string\";\n      modificationDate.dataset.l10nArgs = JSON.stringify({\n        date: dateObject.toLocaleDateString(),\n        time: dateObject.toLocaleTimeString()\n      });\n      popup.append(modificationDate);\n    }\n\n    if ((_this$richText = this.richText) !== null && _this$richText !== void 0 && _this$richText.str && (!((_this$contentsObj = this.contentsObj) !== null && _this$contentsObj !== void 0 && _this$contentsObj.str) || this.contentsObj.str === this.richText.str)) {\n      _xfa_layer.XfaLayer.render({\n        xfaHtml: this.richText.html,\n        intent: \"richText\",\n        div: popup\n      });\n\n      popup.lastChild.className = \"richText popupContent\";\n    } else {\n      const contents = this._formatContents(this.contentsObj);\n\n      popup.append(contents);\n    }\n\n    if (!Array.isArray(this.trigger)) {\n      this.trigger = [this.trigger];\n    }\n\n    for (const element of this.trigger) {\n      element.addEventListener(\"click\", this._toggle.bind(this));\n      element.addEventListener(\"mouseover\", this._show.bind(this, false));\n      element.addEventListener(\"mouseout\", this._hide.bind(this, false));\n    }\n\n    popup.addEventListener(\"click\", this._hide.bind(this, true));\n    wrapper.append(popup);\n    return wrapper;\n  }\n\n  _formatContents(_ref) {\n    let {\n      str,\n      dir\n    } = _ref;\n    const p = document.createElement(\"p\");\n    p.className = \"popupContent\";\n    p.dir = dir;\n    const lines = str.split(/(?:\\r\\n?|\\n)/);\n\n    for (let i = 0, ii = lines.length; i < ii; ++i) {\n      const line = lines[i];\n      p.append(document.createTextNode(line));\n\n      if (i < ii - 1) {\n        p.append(document.createElement(\"br\"));\n      }\n    }\n\n    return p;\n  }\n\n  _toggle() {\n    if (this.pinned) {\n      this._hide(true);\n    } else {\n      this._show(true);\n    }\n  }\n\n  _show() {\n    let pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    if (pin) {\n      this.pinned = true;\n    }\n\n    if (this.hideElement.hidden) {\n      this.hideElement.hidden = false;\n      this.container.style.zIndex = parseInt(this.container.style.zIndex) + 1000;\n    }\n  }\n\n  _hide() {\n    let unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n    if (unpin) {\n      this.pinned = false;\n    }\n\n    if (!this.hideElement.hidden && !this.pinned) {\n      this.hideElement.hidden = true;\n      this.container.style.zIndex = parseInt(this.container.style.zIndex) - 1000;\n    }\n  }\n\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    var _parameters$data$titl3, _parameters$data$cont3, _parameters$data$rich3;\n\n    const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl3 = parameters.data.titleObj) !== null && _parameters$data$titl3 !== void 0 && _parameters$data$titl3.str || (_parameters$data$cont3 = parameters.data.contentsObj) !== null && _parameters$data$cont3 !== void 0 && _parameters$data$cont3.str || (_parameters$data$rich3 = parameters.data.richText) !== null && _parameters$data$rich3 !== void 0 && _parameters$data$rich3.str);\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true\n    });\n    this.textContent = parameters.data.textContent;\n  }\n\n  render() {\n    this.container.className = \"freeTextAnnotation\";\n\n    if (this.textContent) {\n      const content = document.createElement(\"div\");\n      content.className = \"annotationTextContent\";\n      content.setAttribute(\"role\", \"comment\");\n\n      for (const line of this.textContent) {\n        const lineSpan = document.createElement(\"span\");\n        lineSpan.textContent = line;\n        content.append(lineSpan);\n      }\n\n      this.container.append(content);\n    }\n\n    if (!this.data.hasPopup) {\n      this._createPopup(null, this.data);\n    }\n\n    return this.container;\n  }\n\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    var _parameters$data$titl4, _parameters$data$cont4, _parameters$data$rich4;\n\n    const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl4 = parameters.data.titleObj) !== null && _parameters$data$titl4 !== void 0 && _parameters$data$titl4.str || (_parameters$data$cont4 = parameters.data.contentsObj) !== null && _parameters$data$cont4 !== void 0 && _parameters$data$cont4.str || (_parameters$data$rich4 = parameters.data.richText) !== null && _parameters$data$rich4 !== void 0 && _parameters$data$rich4.str);\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true\n    });\n  }\n\n  render() {\n    this.container.className = \"lineAnnotation\";\n    const data = this.data;\n    const {\n      width,\n      height\n    } = getRectDims(data.rect);\n    const svg = this.svgFactory.create(width, height, true);\n    const line = this.svgFactory.createElement(\"svg:line\");\n    line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n    line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n    line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n    line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n    line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n    line.setAttribute(\"stroke\", \"transparent\");\n    line.setAttribute(\"fill\", \"transparent\");\n    svg.append(line);\n    this.container.append(svg);\n\n    this._createPopup(line, data);\n\n    return this.container;\n  }\n\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    var _parameters$data$titl5, _parameters$data$cont5, _parameters$data$rich5;\n\n    const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl5 = parameters.data.titleObj) !== null && _parameters$data$titl5 !== void 0 && _parameters$data$titl5.str || (_parameters$data$cont5 = parameters.data.contentsObj) !== null && _parameters$data$cont5 !== void 0 && _parameters$data$cont5.str || (_parameters$data$rich5 = parameters.data.richText) !== null && _parameters$data$rich5 !== void 0 && _parameters$data$rich5.str);\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true\n    });\n  }\n\n  render() {\n    this.container.className = \"squareAnnotation\";\n    const data = this.data;\n    const {\n      width,\n      height\n    } = getRectDims(data.rect);\n    const svg = this.svgFactory.create(width, height, true);\n    const borderWidth = data.borderStyle.width;\n    const square = this.svgFactory.createElement(\"svg:rect\");\n    square.setAttribute(\"x\", borderWidth / 2);\n    square.setAttribute(\"y\", borderWidth / 2);\n    square.setAttribute(\"width\", width - borderWidth);\n    square.setAttribute(\"height\", height - borderWidth);\n    square.setAttribute(\"stroke-width\", borderWidth || 1);\n    square.setAttribute(\"stroke\", \"transparent\");\n    square.setAttribute(\"fill\", \"transparent\");\n    svg.append(square);\n    this.container.append(svg);\n\n    this._createPopup(square, data);\n\n    return this.container;\n  }\n\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    var _parameters$data$titl6, _parameters$data$cont6, _parameters$data$rich6;\n\n    const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl6 = parameters.data.titleObj) !== null && _parameters$data$titl6 !== void 0 && _parameters$data$titl6.str || (_parameters$data$cont6 = parameters.data.contentsObj) !== null && _parameters$data$cont6 !== void 0 && _parameters$data$cont6.str || (_parameters$data$rich6 = parameters.data.richText) !== null && _parameters$data$rich6 !== void 0 && _parameters$data$rich6.str);\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true\n    });\n  }\n\n  render() {\n    this.container.className = \"circleAnnotation\";\n    const data = this.data;\n    const {\n      width,\n      height\n    } = getRectDims(data.rect);\n    const svg = this.svgFactory.create(width, height, true);\n    const borderWidth = data.borderStyle.width;\n    const circle = this.svgFactory.createElement(\"svg:ellipse\");\n    circle.setAttribute(\"cx\", width / 2);\n    circle.setAttribute(\"cy\", height / 2);\n    circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n    circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n    circle.setAttribute(\"stroke-width\", borderWidth || 1);\n    circle.setAttribute(\"stroke\", \"transparent\");\n    circle.setAttribute(\"fill\", \"transparent\");\n    svg.append(circle);\n    this.container.append(svg);\n\n    this._createPopup(circle, data);\n\n    return this.container;\n  }\n\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    var _parameters$data$titl7, _parameters$data$cont7, _parameters$data$rich7;\n\n    const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl7 = parameters.data.titleObj) !== null && _parameters$data$titl7 !== void 0 && _parameters$data$titl7.str || (_parameters$data$cont7 = parameters.data.contentsObj) !== null && _parameters$data$cont7 !== void 0 && _parameters$data$cont7.str || (_parameters$data$rich7 = parameters.data.richText) !== null && _parameters$data$rich7 !== void 0 && _parameters$data$rich7.str);\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true\n    });\n    this.containerClassName = \"polylineAnnotation\";\n    this.svgElementName = \"svg:polyline\";\n  }\n\n  render() {\n    this.container.className = this.containerClassName;\n    const data = this.data;\n    const {\n      width,\n      height\n    } = getRectDims(data.rect);\n    const svg = this.svgFactory.create(width, height, true);\n    let points = [];\n\n    for (const coordinate of data.vertices) {\n      const x = coordinate.x - data.rect[0];\n      const y = data.rect[3] - coordinate.y;\n      points.push(x + \",\" + y);\n    }\n\n    points = points.join(\" \");\n    const polyline = this.svgFactory.createElement(this.svgElementName);\n    polyline.setAttribute(\"points\", points);\n    polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n    polyline.setAttribute(\"stroke\", \"transparent\");\n    polyline.setAttribute(\"fill\", \"transparent\");\n    svg.append(polyline);\n    this.container.append(svg);\n\n    this._createPopup(polyline, data);\n\n    return this.container;\n  }\n\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n  constructor(parameters) {\n    super(parameters);\n    this.containerClassName = \"polygonAnnotation\";\n    this.svgElementName = \"svg:polygon\";\n  }\n\n}\n\nclass CaretAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    var _parameters$data$titl8, _parameters$data$cont8, _parameters$data$rich8;\n\n    const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl8 = parameters.data.titleObj) !== null && _parameters$data$titl8 !== void 0 && _parameters$data$titl8.str || (_parameters$data$cont8 = parameters.data.contentsObj) !== null && _parameters$data$cont8 !== void 0 && _parameters$data$cont8.str || (_parameters$data$rich8 = parameters.data.richText) !== null && _parameters$data$rich8 !== void 0 && _parameters$data$rich8.str);\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true\n    });\n  }\n\n  render() {\n    this.container.className = \"caretAnnotation\";\n\n    if (!this.data.hasPopup) {\n      this._createPopup(null, this.data);\n    }\n\n    return this.container;\n  }\n\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    var _parameters$data$titl9, _parameters$data$cont9, _parameters$data$rich9;\n\n    const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl9 = parameters.data.titleObj) !== null && _parameters$data$titl9 !== void 0 && _parameters$data$titl9.str || (_parameters$data$cont9 = parameters.data.contentsObj) !== null && _parameters$data$cont9 !== void 0 && _parameters$data$cont9.str || (_parameters$data$rich9 = parameters.data.richText) !== null && _parameters$data$rich9 !== void 0 && _parameters$data$rich9.str);\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true\n    });\n    this.containerClassName = \"inkAnnotation\";\n    this.svgElementName = \"svg:polyline\";\n  }\n\n  render() {\n    this.container.className = this.containerClassName;\n    const data = this.data;\n    const {\n      width,\n      height\n    } = getRectDims(data.rect);\n    const svg = this.svgFactory.create(width, height, true);\n\n    for (const inkList of data.inkLists) {\n      let points = [];\n\n      for (const coordinate of inkList) {\n        const x = coordinate.x - data.rect[0];\n        const y = data.rect[3] - coordinate.y;\n        points.push(`${x},${y}`);\n      }\n\n      points = points.join(\" \");\n      const polyline = this.svgFactory.createElement(this.svgElementName);\n      polyline.setAttribute(\"points\", points);\n      polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n      polyline.setAttribute(\"stroke\", \"transparent\");\n      polyline.setAttribute(\"fill\", \"transparent\");\n\n      this._createPopup(polyline, data);\n\n      svg.append(polyline);\n    }\n\n    this.container.append(svg);\n    return this.container;\n  }\n\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    var _parameters$data$titl10, _parameters$data$cont10, _parameters$data$rich10;\n\n    const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl10 = parameters.data.titleObj) !== null && _parameters$data$titl10 !== void 0 && _parameters$data$titl10.str || (_parameters$data$cont10 = parameters.data.contentsObj) !== null && _parameters$data$cont10 !== void 0 && _parameters$data$cont10.str || (_parameters$data$rich10 = parameters.data.richText) !== null && _parameters$data$rich10 !== void 0 && _parameters$data$rich10.str);\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true,\n      createQuadrilaterals: true\n    });\n  }\n\n  render() {\n    if (!this.data.hasPopup) {\n      this._createPopup(null, this.data);\n    }\n\n    if (this.quadrilaterals) {\n      return this._renderQuadrilaterals(\"highlightAnnotation\");\n    }\n\n    this.container.className = \"highlightAnnotation\";\n    return this.container;\n  }\n\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    var _parameters$data$titl11, _parameters$data$cont11, _parameters$data$rich11;\n\n    const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl11 = parameters.data.titleObj) !== null && _parameters$data$titl11 !== void 0 && _parameters$data$titl11.str || (_parameters$data$cont11 = parameters.data.contentsObj) !== null && _parameters$data$cont11 !== void 0 && _parameters$data$cont11.str || (_parameters$data$rich11 = parameters.data.richText) !== null && _parameters$data$rich11 !== void 0 && _parameters$data$rich11.str);\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true,\n      createQuadrilaterals: true\n    });\n  }\n\n  render() {\n    if (!this.data.hasPopup) {\n      this._createPopup(null, this.data);\n    }\n\n    if (this.quadrilaterals) {\n      return this._renderQuadrilaterals(\"underlineAnnotation\");\n    }\n\n    this.container.className = \"underlineAnnotation\";\n    return this.container;\n  }\n\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    var _parameters$data$titl12, _parameters$data$cont12, _parameters$data$rich12;\n\n    const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl12 = parameters.data.titleObj) !== null && _parameters$data$titl12 !== void 0 && _parameters$data$titl12.str || (_parameters$data$cont12 = parameters.data.contentsObj) !== null && _parameters$data$cont12 !== void 0 && _parameters$data$cont12.str || (_parameters$data$rich12 = parameters.data.richText) !== null && _parameters$data$rich12 !== void 0 && _parameters$data$rich12.str);\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true,\n      createQuadrilaterals: true\n    });\n  }\n\n  render() {\n    if (!this.data.hasPopup) {\n      this._createPopup(null, this.data);\n    }\n\n    if (this.quadrilaterals) {\n      return this._renderQuadrilaterals(\"squigglyAnnotation\");\n    }\n\n    this.container.className = \"squigglyAnnotation\";\n    return this.container;\n  }\n\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    var _parameters$data$titl13, _parameters$data$cont13, _parameters$data$rich13;\n\n    const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl13 = parameters.data.titleObj) !== null && _parameters$data$titl13 !== void 0 && _parameters$data$titl13.str || (_parameters$data$cont13 = parameters.data.contentsObj) !== null && _parameters$data$cont13 !== void 0 && _parameters$data$cont13.str || (_parameters$data$rich13 = parameters.data.richText) !== null && _parameters$data$rich13 !== void 0 && _parameters$data$rich13.str);\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true,\n      createQuadrilaterals: true\n    });\n  }\n\n  render() {\n    if (!this.data.hasPopup) {\n      this._createPopup(null, this.data);\n    }\n\n    if (this.quadrilaterals) {\n      return this._renderQuadrilaterals(\"strikeoutAnnotation\");\n    }\n\n    this.container.className = \"strikeoutAnnotation\";\n    return this.container;\n  }\n\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    var _parameters$data$titl14, _parameters$data$cont14, _parameters$data$rich14;\n\n    const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl14 = parameters.data.titleObj) !== null && _parameters$data$titl14 !== void 0 && _parameters$data$titl14.str || (_parameters$data$cont14 = parameters.data.contentsObj) !== null && _parameters$data$cont14 !== void 0 && _parameters$data$cont14.str || (_parameters$data$rich14 = parameters.data.richText) !== null && _parameters$data$rich14 !== void 0 && _parameters$data$rich14.str);\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true\n    });\n  }\n\n  render() {\n    this.container.className = \"stampAnnotation\";\n\n    if (!this.data.hasPopup) {\n      this._createPopup(null, this.data);\n    }\n\n    return this.container;\n  }\n\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    var _this$linkService$eve10;\n\n    super(parameters, {\n      isRenderable: true\n    });\n    const {\n      filename,\n      content\n    } = this.data.file;\n    this.filename = (0, _display_utils.getFilenameFromUrl)(filename);\n    this.content = content;\n    (_this$linkService$eve10 = this.linkService.eventBus) === null || _this$linkService$eve10 === void 0 ? void 0 : _this$linkService$eve10.dispatch(\"fileattachmentannotation\", {\n      source: this,\n      filename,\n      content\n    });\n  }\n\n  render() {\n    var _this$data$titleObj, _this$data$contentsOb;\n\n    this.container.className = \"fileAttachmentAnnotation\";\n    const trigger = document.createElement(\"div\");\n    trigger.className = \"popupTriggerArea\";\n    trigger.addEventListener(\"dblclick\", this._download.bind(this));\n\n    if (!this.data.hasPopup && ((_this$data$titleObj = this.data.titleObj) !== null && _this$data$titleObj !== void 0 && _this$data$titleObj.str || (_this$data$contentsOb = this.data.contentsObj) !== null && _this$data$contentsOb !== void 0 && _this$data$contentsOb.str || this.data.richText)) {\n      this._createPopup(trigger, this.data);\n    }\n\n    this.container.append(trigger);\n    return this.container;\n  }\n\n  _download() {\n    var _this$downloadManager;\n\n    (_this$downloadManager = this.downloadManager) === null || _this$downloadManager === void 0 ? void 0 : _this$downloadManager.openOrDownloadData(this.container, this.content, this.filename);\n  }\n\n}\n\nclass AnnotationLayer {\n  static render(parameters) {\n    const {\n      annotations,\n      div,\n      viewport,\n      accessibilityManager\n    } = parameters;\n\n    _classStaticPrivateMethodGet(this, AnnotationLayer, _setDimensions).call(this, div, viewport);\n\n    let zIndex = 0;\n\n    for (const data of annotations) {\n      if (data.annotationType !== _util.AnnotationType.POPUP) {\n        const {\n          width,\n          height\n        } = getRectDims(data.rect);\n\n        if (width <= 0 || height <= 0) {\n          continue;\n        }\n      }\n\n      const element = AnnotationElementFactory.create({\n        data,\n        layer: div,\n        page: parameters.page,\n        viewport,\n        linkService: parameters.linkService,\n        downloadManager: parameters.downloadManager,\n        imageResourcesPath: parameters.imageResourcesPath || \"\",\n        renderForms: parameters.renderForms !== false,\n        svgFactory: new _display_utils.DOMSVGFactory(),\n        annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage(),\n        enableScripting: parameters.enableScripting,\n        hasJSActions: parameters.hasJSActions,\n        fieldObjects: parameters.fieldObjects,\n        mouseState: parameters.mouseState || {\n          isDown: false\n        }\n      });\n\n      if (element.isRenderable) {\n        const rendered = element.render();\n\n        if (data.hidden) {\n          rendered.style.visibility = \"hidden\";\n        }\n\n        if (Array.isArray(rendered)) {\n          for (const renderedElement of rendered) {\n            renderedElement.style.zIndex = zIndex++;\n\n            _classStaticPrivateMethodGet(AnnotationLayer, AnnotationLayer, _appendElement).call(AnnotationLayer, renderedElement, data.id, div, accessibilityManager);\n          }\n        } else {\n          rendered.style.zIndex = zIndex++;\n\n          if (element instanceof PopupAnnotationElement) {\n            div.prepend(rendered);\n          } else {\n            _classStaticPrivateMethodGet(AnnotationLayer, AnnotationLayer, _appendElement).call(AnnotationLayer, rendered, data.id, div, accessibilityManager);\n          }\n        }\n      }\n    }\n\n    _classStaticPrivateMethodGet(this, AnnotationLayer, _setAnnotationCanvasMap).call(this, div, parameters.annotationCanvasMap);\n  }\n\n  static update(parameters) {\n    const {\n      annotationCanvasMap,\n      div,\n      viewport\n    } = parameters;\n\n    _classStaticPrivateMethodGet(this, AnnotationLayer, _setDimensions).call(this, div, viewport);\n\n    _classStaticPrivateMethodGet(this, AnnotationLayer, _setAnnotationCanvasMap).call(this, div, annotationCanvasMap);\n\n    div.hidden = false;\n  }\n\n}\n\nexports.AnnotationLayer = AnnotationLayer;\n\nfunction _appendElement(element, id, div, accessibilityManager) {\n  const contentElement = element.firstChild || element;\n  contentElement.id = `${_display_utils.AnnotationPrefix}${id}`;\n  div.append(element);\n  accessibilityManager === null || accessibilityManager === void 0 ? void 0 : accessibilityManager.moveElementInDOM(div, element, contentElement, false);\n}\n\nfunction _setDimensions(div, _ref2) {\n  let {\n    width,\n    height,\n    rotation\n  } = _ref2;\n  const {\n    style\n  } = div;\n  const flipOrientation = rotation % 180 !== 0,\n        widthStr = Math.floor(width) + \"px\",\n        heightStr = Math.floor(height) + \"px\";\n  style.width = flipOrientation ? heightStr : widthStr;\n  style.height = flipOrientation ? widthStr : heightStr;\n  div.setAttribute(\"data-main-rotation\", rotation);\n}\n\nfunction _setAnnotationCanvasMap(div, annotationCanvasMap) {\n  if (!annotationCanvasMap) {\n    return;\n  }\n\n  for (const [id, canvas] of annotationCanvasMap) {\n    const element = div.querySelector(`[data-annotation-id=\"${id}\"]`);\n\n    if (!element) {\n      continue;\n    }\n\n    const {\n      firstChild\n    } = element;\n\n    if (!firstChild) {\n      element.append(canvas);\n    } else if (firstChild.nodeName === \"CANVAS\") {\n      firstChild.replaceWith(canvas);\n    } else {\n      firstChild.before(canvas);\n    }\n  }\n\n  annotationCanvasMap.clear();\n}\n\n/***/ }),\n/* 153 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ColorConverters = void 0;\n\nfunction makeColorComp(n) {\n  return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, \"0\");\n}\n\nclass ColorConverters {\n  static CMYK_G(_ref) {\n    let [c, y, m, k] = _ref;\n    return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n  }\n\n  static G_CMYK(_ref2) {\n    let [g] = _ref2;\n    return [\"CMYK\", 0, 0, 0, 1 - g];\n  }\n\n  static G_RGB(_ref3) {\n    let [g] = _ref3;\n    return [\"RGB\", g, g, g];\n  }\n\n  static G_HTML(_ref4) {\n    let [g] = _ref4;\n    const G = makeColorComp(g);\n    return `#${G}${G}${G}`;\n  }\n\n  static RGB_G(_ref5) {\n    let [r, g, b] = _ref5;\n    return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n  }\n\n  static RGB_HTML(_ref6) {\n    let [r, g, b] = _ref6;\n    const R = makeColorComp(r);\n    const G = makeColorComp(g);\n    const B = makeColorComp(b);\n    return `#${R}${G}${B}`;\n  }\n\n  static T_HTML() {\n    return \"#00000000\";\n  }\n\n  static CMYK_RGB(_ref7) {\n    let [c, y, m, k] = _ref7;\n    return [\"RGB\", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)];\n  }\n\n  static CMYK_HTML(components) {\n    const rgb = this.CMYK_RGB(components).slice(1);\n    return this.RGB_HTML(rgb);\n  }\n\n  static RGB_CMYK(_ref8) {\n    let [r, g, b] = _ref8;\n    const c = 1 - r;\n    const m = 1 - g;\n    const y = 1 - b;\n    const k = Math.min(c, m, y);\n    return [\"CMYK\", c, m, y, k];\n  }\n\n}\n\nexports.ColorConverters = ColorConverters;\n\n/***/ }),\n/* 154 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XfaLayer = void 0;\n\nvar _xfa_text = __w_pdfjs_require__(145);\n\nclass XfaLayer {\n  static setupStorage(html, id, element, storage, intent) {\n    const storedData = storage.getValue(id, {\n      value: null\n    });\n\n    switch (element.name) {\n      case \"textarea\":\n        if (storedData.value !== null) {\n          html.textContent = storedData.value;\n        }\n\n        if (intent === \"print\") {\n          break;\n        }\n\n        html.addEventListener(\"input\", event => {\n          storage.setValue(id, {\n            value: event.target.value\n          });\n        });\n        break;\n\n      case \"input\":\n        if (element.attributes.type === \"radio\" || element.attributes.type === \"checkbox\") {\n          if (storedData.value === element.attributes.xfaOn) {\n            html.setAttribute(\"checked\", true);\n          } else if (storedData.value === element.attributes.xfaOff) {\n            html.removeAttribute(\"checked\");\n          }\n\n          if (intent === \"print\") {\n            break;\n          }\n\n          html.addEventListener(\"change\", event => {\n            storage.setValue(id, {\n              value: event.target.checked ? event.target.getAttribute(\"xfaOn\") : event.target.getAttribute(\"xfaOff\")\n            });\n          });\n        } else {\n          if (storedData.value !== null) {\n            html.setAttribute(\"value\", storedData.value);\n          }\n\n          if (intent === \"print\") {\n            break;\n          }\n\n          html.addEventListener(\"input\", event => {\n            storage.setValue(id, {\n              value: event.target.value\n            });\n          });\n        }\n\n        break;\n\n      case \"select\":\n        if (storedData.value !== null) {\n          for (const option of element.children) {\n            if (option.attributes.value === storedData.value) {\n              option.attributes.selected = true;\n            }\n          }\n        }\n\n        html.addEventListener(\"input\", event => {\n          const options = event.target.options;\n          const value = options.selectedIndex === -1 ? \"\" : options[options.selectedIndex].value;\n          storage.setValue(id, {\n            value\n          });\n        });\n        break;\n    }\n  }\n\n  static setAttributes(_ref) {\n    let {\n      html,\n      element,\n      storage = null,\n      intent,\n      linkService\n    } = _ref;\n    const {\n      attributes\n    } = element;\n    const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n\n    if (attributes.type === \"radio\") {\n      attributes.name = `${attributes.name}-${intent}`;\n    }\n\n    for (const [key, value] of Object.entries(attributes)) {\n      if (value === null || value === undefined) {\n        continue;\n      }\n\n      switch (key) {\n        case \"class\":\n          if (value.length) {\n            html.setAttribute(key, value.join(\" \"));\n          }\n\n          break;\n\n        case \"dataId\":\n          break;\n\n        case \"id\":\n          html.setAttribute(\"data-element-id\", value);\n          break;\n\n        case \"style\":\n          Object.assign(html.style, value);\n          break;\n\n        case \"textContent\":\n          html.textContent = value;\n          break;\n\n        default:\n          if (!isHTMLAnchorElement || key !== \"href\" && key !== \"newWindow\") {\n            html.setAttribute(key, value);\n          }\n\n      }\n    }\n\n    if (isHTMLAnchorElement) {\n      linkService.addLinkAttributes(html, attributes.href, attributes.newWindow);\n    }\n\n    if (storage && attributes.dataId) {\n      this.setupStorage(html, attributes.dataId, element, storage);\n    }\n  }\n\n  static render(parameters) {\n    const storage = parameters.annotationStorage;\n    const linkService = parameters.linkService;\n    const root = parameters.xfaHtml;\n    const intent = parameters.intent || \"display\";\n    const rootHtml = document.createElement(root.name);\n\n    if (root.attributes) {\n      this.setAttributes({\n        html: rootHtml,\n        element: root,\n        intent,\n        linkService\n      });\n    }\n\n    const stack = [[root, -1, rootHtml]];\n    const rootDiv = parameters.div;\n    rootDiv.append(rootHtml);\n\n    if (parameters.viewport) {\n      const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n      rootDiv.style.transform = transform;\n    }\n\n    if (intent !== \"richText\") {\n      rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n    }\n\n    const textDivs = [];\n\n    while (stack.length > 0) {\n      var _child$attributes;\n\n      const [parent, i, html] = stack.at(-1);\n\n      if (i + 1 === parent.children.length) {\n        stack.pop();\n        continue;\n      }\n\n      const child = parent.children[++stack.at(-1)[1]];\n\n      if (child === null) {\n        continue;\n      }\n\n      const {\n        name\n      } = child;\n\n      if (name === \"#text\") {\n        const node = document.createTextNode(child.value);\n        textDivs.push(node);\n        html.append(node);\n        continue;\n      }\n\n      let childHtml;\n\n      if (child !== null && child !== void 0 && (_child$attributes = child.attributes) !== null && _child$attributes !== void 0 && _child$attributes.xmlns) {\n        childHtml = document.createElementNS(child.attributes.xmlns, name);\n      } else {\n        childHtml = document.createElement(name);\n      }\n\n      html.append(childHtml);\n\n      if (child.attributes) {\n        this.setAttributes({\n          html: childHtml,\n          element: child,\n          storage,\n          intent,\n          linkService\n        });\n      }\n\n      if (child.children && child.children.length > 0) {\n        stack.push([child, -1, childHtml]);\n      } else if (child.value) {\n        const node = document.createTextNode(child.value);\n\n        if (_xfa_text.XfaText.shouldBuildText(name)) {\n          textDivs.push(node);\n        }\n\n        childHtml.append(node);\n      }\n    }\n\n    for (const el of rootDiv.querySelectorAll(\".xfaNonInteractive input, .xfaNonInteractive textarea\")) {\n      el.setAttribute(\"readOnly\", true);\n    }\n\n    return {\n      textDivs\n    };\n  }\n\n  static update(parameters) {\n    const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n    parameters.div.style.transform = transform;\n    parameters.div.hidden = false;\n  }\n\n}\n\nexports.XfaLayer = XfaLayer;\n\n/***/ }),\n/* 155 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.TextLayerRenderTask = void 0;\nexports.renderTextLayer = renderTextLayer;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nconst ascentCache = new Map();\nconst AllWhitespaceRegexp = /^\\s+$/g;\n\nfunction getAscent(fontFamily, ctx) {\n  const cachedAscent = ascentCache.get(fontFamily);\n\n  if (cachedAscent) {\n    return cachedAscent;\n  }\n\n  ctx.save();\n  ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`;\n  const metrics = ctx.measureText(\"\");\n  let ascent = metrics.fontBoundingBoxAscent;\n  let descent = Math.abs(metrics.fontBoundingBoxDescent);\n\n  if (ascent) {\n    ctx.restore();\n    const ratio = ascent / (ascent + descent);\n    ascentCache.set(fontFamily, ratio);\n    return ratio;\n  }\n\n  ctx.strokeStyle = \"red\";\n  ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n  ctx.strokeText(\"g\", 0, 0);\n  let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n  descent = 0;\n\n  for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n    if (pixels[i] > 0) {\n      descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n      break;\n    }\n  }\n\n  ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n  ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n  pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n  ascent = 0;\n\n  for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n    if (pixels[i] > 0) {\n      ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n      break;\n    }\n  }\n\n  ctx.restore();\n\n  if (ascent) {\n    const ratio = ascent / (ascent + descent);\n    ascentCache.set(fontFamily, ratio);\n    return ratio;\n  }\n\n  ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT);\n  return DEFAULT_FONT_ASCENT;\n}\n\nfunction appendText(task, geom, styles, ctx) {\n  const textDiv = document.createElement(\"span\");\n  const textDivProperties = task._enhanceTextSelection ? {\n    angle: 0,\n    canvasWidth: 0,\n    hasText: geom.str !== \"\",\n    hasEOL: geom.hasEOL,\n    originalTransform: null,\n    paddingBottom: 0,\n    paddingLeft: 0,\n    paddingRight: 0,\n    paddingTop: 0,\n    scale: 1,\n    fontSize: 0\n  } : {\n    angle: 0,\n    canvasWidth: 0,\n    hasText: geom.str !== \"\",\n    hasEOL: geom.hasEOL,\n    fontSize: 0\n  };\n\n  task._textDivs.push(textDiv);\n\n  const tx = _util.Util.transform(task._viewport.transform, geom.transform);\n\n  let angle = Math.atan2(tx[1], tx[0]);\n  const style = styles[geom.fontName];\n\n  if (style.vertical) {\n    angle += Math.PI / 2;\n  }\n\n  const fontHeight = Math.hypot(tx[2], tx[3]);\n  const fontAscent = fontHeight * getAscent(style.fontFamily, ctx);\n  let left, top;\n\n  if (angle === 0) {\n    left = tx[4];\n    top = tx[5] - fontAscent;\n  } else {\n    left = tx[4] + fontAscent * Math.sin(angle);\n    top = tx[5] - fontAscent * Math.cos(angle);\n  }\n\n  textDiv.style.left = `${left}px`;\n  textDiv.style.top = `${top}px`;\n  textDiv.style.fontSize = `${fontHeight}px`;\n  textDiv.style.fontFamily = style.fontFamily;\n  textDivProperties.fontSize = fontHeight;\n  textDiv.setAttribute(\"role\", \"presentation\");\n  textDiv.textContent = geom.str;\n  textDiv.dir = geom.dir;\n\n  if (task._fontInspectorEnabled) {\n    textDiv.dataset.fontName = geom.fontName;\n  }\n\n  if (angle !== 0) {\n    textDivProperties.angle = angle * (180 / Math.PI);\n  }\n\n  let shouldScaleText = false;\n\n  if (geom.str.length > 1 || task._enhanceTextSelection && AllWhitespaceRegexp.test(geom.str)) {\n    shouldScaleText = true;\n  } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n    const absScaleX = Math.abs(geom.transform[0]),\n          absScaleY = Math.abs(geom.transform[3]);\n\n    if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n      shouldScaleText = true;\n    }\n  }\n\n  if (shouldScaleText) {\n    if (style.vertical) {\n      textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n    } else {\n      textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n    }\n  }\n\n  task._textDivProperties.set(textDiv, textDivProperties);\n\n  if (task._textContentStream) {\n    task._layoutText(textDiv);\n  }\n\n  if (task._enhanceTextSelection && textDivProperties.hasText) {\n    let angleCos = 1,\n        angleSin = 0;\n\n    if (angle !== 0) {\n      angleCos = Math.cos(angle);\n      angleSin = Math.sin(angle);\n    }\n\n    const divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n    const divHeight = fontHeight;\n    let m, b;\n\n    if (angle !== 0) {\n      m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n      b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n    } else {\n      b = [left, top, left + divWidth, top + divHeight];\n    }\n\n    task._bounds.push({\n      left: b[0],\n      top: b[1],\n      right: b[2],\n      bottom: b[3],\n      div: textDiv,\n      size: [divWidth, divHeight],\n      m\n    });\n  }\n}\n\nfunction render(task) {\n  if (task._canceled) {\n    return;\n  }\n\n  const textDivs = task._textDivs;\n  const capability = task._capability;\n  const textDivsLength = textDivs.length;\n\n  if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n    task._renderingDone = true;\n    capability.resolve();\n    return;\n  }\n\n  if (!task._textContentStream) {\n    for (let i = 0; i < textDivsLength; i++) {\n      task._layoutText(textDivs[i]);\n    }\n  }\n\n  task._renderingDone = true;\n  capability.resolve();\n}\n\nfunction findPositiveMin(ts, offset, count) {\n  let result = 0;\n\n  for (let i = 0; i < count; i++) {\n    const t = ts[offset++];\n\n    if (t > 0) {\n      result = result ? Math.min(t, result) : t;\n    }\n  }\n\n  return result;\n}\n\nfunction expand(task) {\n  const bounds = task._bounds;\n  const viewport = task._viewport;\n  const expanded = expandBounds(viewport.width, viewport.height, bounds);\n\n  for (let i = 0; i < expanded.length; i++) {\n    const div = bounds[i].div;\n\n    const divProperties = task._textDivProperties.get(div);\n\n    if (divProperties.angle === 0) {\n      divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n      divProperties.paddingTop = bounds[i].top - expanded[i].top;\n      divProperties.paddingRight = expanded[i].right - bounds[i].right;\n      divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n\n      task._textDivProperties.set(div, divProperties);\n\n      continue;\n    }\n\n    const e = expanded[i],\n          b = bounds[i];\n    const m = b.m,\n          c = m[0],\n          s = m[1];\n    const points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n    const ts = new Float64Array(64);\n\n    for (let j = 0, jj = points.length; j < jj; j++) {\n      const t = _util.Util.applyTransform(points[j], m);\n\n      ts[j + 0] = c && (e.left - t[0]) / c;\n      ts[j + 4] = s && (e.top - t[1]) / s;\n      ts[j + 8] = c && (e.right - t[0]) / c;\n      ts[j + 12] = s && (e.bottom - t[1]) / s;\n      ts[j + 16] = s && (e.left - t[0]) / -s;\n      ts[j + 20] = c && (e.top - t[1]) / c;\n      ts[j + 24] = s && (e.right - t[0]) / -s;\n      ts[j + 28] = c && (e.bottom - t[1]) / c;\n      ts[j + 32] = c && (e.left - t[0]) / -c;\n      ts[j + 36] = s && (e.top - t[1]) / -s;\n      ts[j + 40] = c && (e.right - t[0]) / -c;\n      ts[j + 44] = s && (e.bottom - t[1]) / -s;\n      ts[j + 48] = s && (e.left - t[0]) / s;\n      ts[j + 52] = c && (e.top - t[1]) / -c;\n      ts[j + 56] = s && (e.right - t[0]) / s;\n      ts[j + 60] = c && (e.bottom - t[1]) / -c;\n    }\n\n    const boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n    divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n    divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n    divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n    divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n\n    task._textDivProperties.set(div, divProperties);\n  }\n}\n\nfunction expandBounds(width, height, boxes) {\n  const bounds = boxes.map(function (box, i) {\n    return {\n      x1: box.left,\n      y1: box.top,\n      x2: box.right,\n      y2: box.bottom,\n      index: i,\n      x1New: undefined,\n      x2New: undefined\n    };\n  });\n  expandBoundsLTR(width, bounds);\n  const expanded = new Array(boxes.length);\n\n  for (const b of bounds) {\n    const i = b.index;\n    expanded[i] = {\n      left: b.x1New,\n      top: 0,\n      right: b.x2New,\n      bottom: 0\n    };\n  }\n\n  boxes.map(function (box, i) {\n    const e = expanded[i],\n          b = bounds[i];\n    b.x1 = box.top;\n    b.y1 = width - e.right;\n    b.x2 = box.bottom;\n    b.y2 = width - e.left;\n    b.index = i;\n    b.x1New = undefined;\n    b.x2New = undefined;\n  });\n  expandBoundsLTR(height, bounds);\n\n  for (const b of bounds) {\n    const i = b.index;\n    expanded[i].top = b.x1New;\n    expanded[i].bottom = b.x2New;\n  }\n\n  return expanded;\n}\n\nfunction expandBoundsLTR(width, bounds) {\n  bounds.sort(function (a, b) {\n    return a.x1 - b.x1 || a.index - b.index;\n  });\n  const fakeBoundary = {\n    x1: -Infinity,\n    y1: -Infinity,\n    x2: 0,\n    y2: Infinity,\n    index: -1,\n    x1New: 0,\n    x2New: 0\n  };\n  const horizon = [{\n    start: -Infinity,\n    end: Infinity,\n    boundary: fakeBoundary\n  }];\n\n  for (const boundary of bounds) {\n    let i = 0;\n\n    while (i < horizon.length && horizon[i].end <= boundary.y1) {\n      i++;\n    }\n\n    let j = horizon.length - 1;\n\n    while (j >= 0 && horizon[j].start >= boundary.y2) {\n      j--;\n    }\n\n    let horizonPart, affectedBoundary;\n    let q,\n        k,\n        maxXNew = -Infinity;\n\n    for (q = i; q <= j; q++) {\n      horizonPart = horizon[q];\n      affectedBoundary = horizonPart.boundary;\n      let xNew;\n\n      if (affectedBoundary.x2 > boundary.x1) {\n        xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;\n      } else if (affectedBoundary.x2New === undefined) {\n        xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n      } else {\n        xNew = affectedBoundary.x2New;\n      }\n\n      if (xNew > maxXNew) {\n        maxXNew = xNew;\n      }\n    }\n\n    boundary.x1New = maxXNew;\n\n    for (q = i; q <= j; q++) {\n      horizonPart = horizon[q];\n      affectedBoundary = horizonPart.boundary;\n\n      if (affectedBoundary.x2New === undefined) {\n        if (affectedBoundary.x2 > boundary.x1) {\n          if (affectedBoundary.index > boundary.index) {\n            affectedBoundary.x2New = affectedBoundary.x2;\n          }\n        } else {\n          affectedBoundary.x2New = maxXNew;\n        }\n      } else if (affectedBoundary.x2New > maxXNew) {\n        affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n      }\n    }\n\n    const changedHorizon = [];\n    let lastBoundary = null;\n\n    for (q = i; q <= j; q++) {\n      horizonPart = horizon[q];\n      affectedBoundary = horizonPart.boundary;\n      const useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n\n      if (lastBoundary === useBoundary) {\n        changedHorizon.at(-1).end = horizonPart.end;\n      } else {\n        changedHorizon.push({\n          start: horizonPart.start,\n          end: horizonPart.end,\n          boundary: useBoundary\n        });\n        lastBoundary = useBoundary;\n      }\n    }\n\n    if (horizon[i].start < boundary.y1) {\n      changedHorizon[0].start = boundary.y1;\n      changedHorizon.unshift({\n        start: horizon[i].start,\n        end: boundary.y1,\n        boundary: horizon[i].boundary\n      });\n    }\n\n    if (boundary.y2 < horizon[j].end) {\n      changedHorizon.at(-1).end = boundary.y2;\n      changedHorizon.push({\n        start: boundary.y2,\n        end: horizon[j].end,\n        boundary: horizon[j].boundary\n      });\n    }\n\n    for (q = i; q <= j; q++) {\n      horizonPart = horizon[q];\n      affectedBoundary = horizonPart.boundary;\n\n      if (affectedBoundary.x2New !== undefined) {\n        continue;\n      }\n\n      let used = false;\n\n      for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {\n        used = horizon[k].boundary === affectedBoundary;\n      }\n\n      for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {\n        used = horizon[k].boundary === affectedBoundary;\n      }\n\n      for (k = 0; !used && k < changedHorizon.length; k++) {\n        used = changedHorizon[k].boundary === affectedBoundary;\n      }\n\n      if (!used) {\n        affectedBoundary.x2New = maxXNew;\n      }\n    }\n\n    Array.prototype.splice.apply(horizon, [i, j - i + 1, ...changedHorizon]);\n  }\n\n  for (const horizonPart of horizon) {\n    const affectedBoundary = horizonPart.boundary;\n\n    if (affectedBoundary.x2New === undefined) {\n      affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n    }\n  }\n}\n\nclass TextLayerRenderTask {\n  constructor(_ref) {\n    var _globalThis$FontInspe;\n\n    let {\n      textContent,\n      textContentStream,\n      container,\n      viewport,\n      textDivs,\n      textContentItemsStr,\n      enhanceTextSelection\n    } = _ref;\n\n    if (enhanceTextSelection) {\n      (0, _display_utils.deprecated)(\"The `enhanceTextSelection` functionality will be removed in the future.\");\n    }\n\n    this._textContent = textContent;\n    this._textContentStream = textContentStream;\n    this._container = container;\n    this._document = container.ownerDocument;\n    this._viewport = viewport;\n    this._textDivs = textDivs || [];\n    this._textContentItemsStr = textContentItemsStr || [];\n    this._enhanceTextSelection = !!enhanceTextSelection;\n    this._fontInspectorEnabled = !!((_globalThis$FontInspe = globalThis.FontInspector) !== null && _globalThis$FontInspe !== void 0 && _globalThis$FontInspe.enabled);\n    this._reader = null;\n    this._layoutTextLastFontSize = null;\n    this._layoutTextLastFontFamily = null;\n    this._layoutTextCtx = null;\n    this._textDivProperties = new WeakMap();\n    this._renderingDone = false;\n    this._canceled = false;\n    this._capability = (0, _util.createPromiseCapability)();\n    this._renderTimer = null;\n    this._bounds = [];\n    this._devicePixelRatio = globalThis.devicePixelRatio || 1;\n\n    this._capability.promise.finally(() => {\n      if (!this._enhanceTextSelection) {\n        this._textDivProperties = null;\n      }\n\n      if (this._layoutTextCtx) {\n        this._layoutTextCtx.canvas.width = 0;\n        this._layoutTextCtx.canvas.height = 0;\n        this._layoutTextCtx = null;\n      }\n    }).catch(() => {});\n  }\n\n  get promise() {\n    return this._capability.promise;\n  }\n\n  cancel() {\n    this._canceled = true;\n\n    if (this._reader) {\n      this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\")).catch(() => {});\n\n      this._reader = null;\n    }\n\n    if (this._renderTimer !== null) {\n      clearTimeout(this._renderTimer);\n      this._renderTimer = null;\n    }\n\n    this._capability.reject(new Error(\"TextLayer task cancelled.\"));\n  }\n\n  _processItems(items, styleCache) {\n    for (let i = 0, len = items.length; i < len; i++) {\n      if (items[i].str === undefined) {\n        if (items[i].type === \"beginMarkedContentProps\" || items[i].type === \"beginMarkedContent\") {\n          const parent = this._container;\n          this._container = document.createElement(\"span\");\n\n          this._container.classList.add(\"markedContent\");\n\n          if (items[i].id !== null) {\n            this._container.setAttribute(\"id\", `${items[i].id}`);\n          }\n\n          parent.append(this._container);\n        } else if (items[i].type === \"endMarkedContent\") {\n          this._container = this._container.parentNode;\n        }\n\n        continue;\n      }\n\n      this._textContentItemsStr.push(items[i].str);\n\n      appendText(this, items[i], styleCache, this._layoutTextCtx);\n    }\n  }\n\n  _layoutText(textDiv) {\n    const textDivProperties = this._textDivProperties.get(textDiv);\n\n    let transform = \"\";\n\n    if (textDivProperties.canvasWidth !== 0 && textDivProperties.hasText) {\n      const {\n        fontFamily\n      } = textDiv.style;\n      const {\n        fontSize\n      } = textDivProperties;\n\n      if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n        this._layoutTextCtx.font = `${fontSize * this._devicePixelRatio}px ${fontFamily}`;\n        this._layoutTextLastFontSize = fontSize;\n        this._layoutTextLastFontFamily = fontFamily;\n      }\n\n      const {\n        width\n      } = this._layoutTextCtx.measureText(textDiv.textContent);\n\n      if (width > 0) {\n        const scale = this._devicePixelRatio * textDivProperties.canvasWidth / width;\n\n        if (this._enhanceTextSelection) {\n          textDivProperties.scale = scale;\n        }\n\n        transform = `scaleX(${scale})`;\n      }\n    }\n\n    if (textDivProperties.angle !== 0) {\n      transform = `rotate(${textDivProperties.angle}deg) ${transform}`;\n    }\n\n    if (transform.length > 0) {\n      if (this._enhanceTextSelection) {\n        textDivProperties.originalTransform = transform;\n      }\n\n      textDiv.style.transform = transform;\n    }\n\n    if (textDivProperties.hasText) {\n      this._container.append(textDiv);\n    }\n\n    if (textDivProperties.hasEOL) {\n      const br = document.createElement(\"br\");\n      br.setAttribute(\"role\", \"presentation\");\n\n      this._container.append(br);\n    }\n  }\n\n  _render() {\n    let timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n    const capability = (0, _util.createPromiseCapability)();\n    let styleCache = Object.create(null);\n\n    const canvas = this._document.createElement(\"canvas\");\n\n    canvas.height = canvas.width = DEFAULT_FONT_SIZE;\n    this._layoutTextCtx = canvas.getContext(\"2d\", {\n      alpha: false\n    });\n\n    if (this._textContent) {\n      const textItems = this._textContent.items;\n      const textStyles = this._textContent.styles;\n\n      this._processItems(textItems, textStyles);\n\n      capability.resolve();\n    } else if (this._textContentStream) {\n      const pump = () => {\n        this._reader.read().then(_ref2 => {\n          let {\n            value,\n            done\n          } = _ref2;\n\n          if (done) {\n            capability.resolve();\n            return;\n          }\n\n          Object.assign(styleCache, value.styles);\n\n          this._processItems(value.items, styleCache);\n\n          pump();\n        }, capability.reject);\n      };\n\n      this._reader = this._textContentStream.getReader();\n      pump();\n    } else {\n      throw new Error('Neither \"textContent\" nor \"textContentStream\" parameters specified.');\n    }\n\n    capability.promise.then(() => {\n      styleCache = null;\n\n      if (!timeout) {\n        render(this);\n      } else {\n        this._renderTimer = setTimeout(() => {\n          render(this);\n          this._renderTimer = null;\n        }, timeout);\n      }\n    }, this._capability.reject);\n  }\n\n  expandTextDivs() {\n    let expandDivs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    if (!this._enhanceTextSelection || !this._renderingDone) {\n      return;\n    }\n\n    if (this._bounds !== null) {\n      expand(this);\n      this._bounds = null;\n    }\n\n    const transformBuf = [],\n          paddingBuf = [];\n\n    for (let i = 0, ii = this._textDivs.length; i < ii; i++) {\n      const div = this._textDivs[i];\n\n      const divProps = this._textDivProperties.get(div);\n\n      if (!divProps.hasText) {\n        continue;\n      }\n\n      if (expandDivs) {\n        transformBuf.length = 0;\n        paddingBuf.length = 0;\n\n        if (divProps.originalTransform) {\n          transformBuf.push(divProps.originalTransform);\n        }\n\n        if (divProps.paddingTop > 0) {\n          paddingBuf.push(`${divProps.paddingTop}px`);\n          transformBuf.push(`translateY(${-divProps.paddingTop}px)`);\n        } else {\n          paddingBuf.push(0);\n        }\n\n        if (divProps.paddingRight > 0) {\n          paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);\n        } else {\n          paddingBuf.push(0);\n        }\n\n        if (divProps.paddingBottom > 0) {\n          paddingBuf.push(`${divProps.paddingBottom}px`);\n        } else {\n          paddingBuf.push(0);\n        }\n\n        if (divProps.paddingLeft > 0) {\n          paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);\n          transformBuf.push(`translateX(${-divProps.paddingLeft / divProps.scale}px)`);\n        } else {\n          paddingBuf.push(0);\n        }\n\n        div.style.padding = paddingBuf.join(\" \");\n\n        if (transformBuf.length) {\n          div.style.transform = transformBuf.join(\" \");\n        }\n      } else {\n        div.style.padding = null;\n        div.style.transform = divProps.originalTransform;\n      }\n    }\n  }\n\n}\n\nexports.TextLayerRenderTask = TextLayerRenderTask;\n\nfunction renderTextLayer(renderParameters) {\n  const task = new TextLayerRenderTask({\n    textContent: renderParameters.textContent,\n    textContentStream: renderParameters.textContentStream,\n    container: renderParameters.container,\n    viewport: renderParameters.viewport,\n    textDivs: renderParameters.textDivs,\n    textContentItemsStr: renderParameters.textContentItemsStr,\n    enhanceTextSelection: renderParameters.enhanceTextSelection\n  });\n\n  task._render(renderParameters.timeout);\n\n  return task;\n}\n\n/***/ }),\n/* 156 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.SVGGraphics = void 0;\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nlet SVGGraphics = class {\n  constructor() {\n    (0, _util.unreachable)(\"Not implemented: SVGGraphics\");\n  }\n\n};\nexports.SVGGraphics = SVGGraphics;\n{\n  const SVG_DEFAULTS = {\n    fontStyle: \"normal\",\n    fontWeight: \"normal\",\n    fillColor: \"#000000\"\n  };\n  const XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n  const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n  const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n  const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\n  const createObjectURL = function (data) {\n    let contentType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n    let forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n    if (URL.createObjectURL && typeof Blob !== \"undefined\" && !forceDataSchema) {\n      return URL.createObjectURL(new Blob([data], {\n        type: contentType\n      }));\n    }\n\n    const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n    let buffer = `data:${contentType};base64,`;\n\n    for (let i = 0, ii = data.length; i < ii; i += 3) {\n      const b1 = data[i] & 0xff;\n      const b2 = data[i + 1] & 0xff;\n      const b3 = data[i + 2] & 0xff;\n      const d1 = b1 >> 2,\n            d2 = (b1 & 3) << 4 | b2 >> 4;\n      const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64;\n      const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n      buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n    }\n\n    return buffer;\n  };\n\n  const convertImgDataToPng = function () {\n    const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n    const CHUNK_WRAPPER_SIZE = 12;\n    const crcTable = new Int32Array(256);\n\n    for (let i = 0; i < 256; i++) {\n      let c = i;\n\n      for (let h = 0; h < 8; h++) {\n        if (c & 1) {\n          c = 0xedb88320 ^ c >> 1 & 0x7fffffff;\n        } else {\n          c = c >> 1 & 0x7fffffff;\n        }\n      }\n\n      crcTable[i] = c;\n    }\n\n    function crc32(data, start, end) {\n      let crc = -1;\n\n      for (let i = start; i < end; i++) {\n        const a = (crc ^ data[i]) & 0xff;\n        const b = crcTable[a];\n        crc = crc >>> 8 ^ b;\n      }\n\n      return crc ^ -1;\n    }\n\n    function writePngChunk(type, body, data, offset) {\n      let p = offset;\n      const len = body.length;\n      data[p] = len >> 24 & 0xff;\n      data[p + 1] = len >> 16 & 0xff;\n      data[p + 2] = len >> 8 & 0xff;\n      data[p + 3] = len & 0xff;\n      p += 4;\n      data[p] = type.charCodeAt(0) & 0xff;\n      data[p + 1] = type.charCodeAt(1) & 0xff;\n      data[p + 2] = type.charCodeAt(2) & 0xff;\n      data[p + 3] = type.charCodeAt(3) & 0xff;\n      p += 4;\n      data.set(body, p);\n      p += body.length;\n      const crc = crc32(data, offset + 4, p);\n      data[p] = crc >> 24 & 0xff;\n      data[p + 1] = crc >> 16 & 0xff;\n      data[p + 2] = crc >> 8 & 0xff;\n      data[p + 3] = crc & 0xff;\n    }\n\n    function adler32(data, start, end) {\n      let a = 1;\n      let b = 0;\n\n      for (let i = start; i < end; ++i) {\n        a = (a + (data[i] & 0xff)) % 65521;\n        b = (b + a) % 65521;\n      }\n\n      return b << 16 | a;\n    }\n\n    function deflateSync(literals) {\n      if (!_is_node.isNodeJS) {\n        return deflateSyncUncompressed(literals);\n      }\n\n      try {\n        let input;\n\n        if (parseInt(process.versions.node) >= 8) {\n          input = literals;\n        } else {\n          input = Buffer.from(literals);\n        }\n\n        const output = __webpack_require__(/*! zlib */ 3).deflateSync(input, {\n          level: 9\n        });\n\n        return output instanceof Uint8Array ? output : new Uint8Array(output);\n      } catch (e) {\n        (0, _util.warn)(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n      }\n\n      return deflateSyncUncompressed(literals);\n    }\n\n    function deflateSyncUncompressed(literals) {\n      let len = literals.length;\n      const maxBlockLength = 0xffff;\n      const deflateBlocks = Math.ceil(len / maxBlockLength);\n      const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n      let pi = 0;\n      idat[pi++] = 0x78;\n      idat[pi++] = 0x9c;\n      let pos = 0;\n\n      while (len > maxBlockLength) {\n        idat[pi++] = 0x00;\n        idat[pi++] = 0xff;\n        idat[pi++] = 0xff;\n        idat[pi++] = 0x00;\n        idat[pi++] = 0x00;\n        idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n        pi += maxBlockLength;\n        pos += maxBlockLength;\n        len -= maxBlockLength;\n      }\n\n      idat[pi++] = 0x01;\n      idat[pi++] = len & 0xff;\n      idat[pi++] = len >> 8 & 0xff;\n      idat[pi++] = ~len & 0xffff & 0xff;\n      idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n      idat.set(literals.subarray(pos), pi);\n      pi += literals.length - pos;\n      const adler = adler32(literals, 0, literals.length);\n      idat[pi++] = adler >> 24 & 0xff;\n      idat[pi++] = adler >> 16 & 0xff;\n      idat[pi++] = adler >> 8 & 0xff;\n      idat[pi++] = adler & 0xff;\n      return idat;\n    }\n\n    function encode(imgData, kind, forceDataSchema, isMask) {\n      const width = imgData.width;\n      const height = imgData.height;\n      let bitDepth, colorType, lineSize;\n      const bytes = imgData.data;\n\n      switch (kind) {\n        case _util.ImageKind.GRAYSCALE_1BPP:\n          colorType = 0;\n          bitDepth = 1;\n          lineSize = width + 7 >> 3;\n          break;\n\n        case _util.ImageKind.RGB_24BPP:\n          colorType = 2;\n          bitDepth = 8;\n          lineSize = width * 3;\n          break;\n\n        case _util.ImageKind.RGBA_32BPP:\n          colorType = 6;\n          bitDepth = 8;\n          lineSize = width * 4;\n          break;\n\n        default:\n          throw new Error(\"invalid format\");\n      }\n\n      const literals = new Uint8Array((1 + lineSize) * height);\n      let offsetLiterals = 0,\n          offsetBytes = 0;\n\n      for (let y = 0; y < height; ++y) {\n        literals[offsetLiterals++] = 0;\n        literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n        offsetBytes += lineSize;\n        offsetLiterals += lineSize;\n      }\n\n      if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n        offsetLiterals = 0;\n\n        for (let y = 0; y < height; y++) {\n          offsetLiterals++;\n\n          for (let i = 0; i < lineSize; i++) {\n            literals[offsetLiterals++] ^= 0xff;\n          }\n        }\n      }\n\n      const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n      const idat = deflateSync(literals);\n      const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n      const data = new Uint8Array(pngLength);\n      let offset = 0;\n      data.set(PNG_HEADER, offset);\n      offset += PNG_HEADER.length;\n      writePngChunk(\"IHDR\", ihdr, data, offset);\n      offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n      writePngChunk(\"IDATA\", idat, data, offset);\n      offset += CHUNK_WRAPPER_SIZE + idat.length;\n      writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n      return createObjectURL(data, \"image/png\", forceDataSchema);\n    }\n\n    return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n      const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n      return encode(imgData, kind, forceDataSchema, isMask);\n    };\n  }();\n\n  class SVGExtraState {\n    constructor() {\n      this.fontSizeScale = 1;\n      this.fontWeight = SVG_DEFAULTS.fontWeight;\n      this.fontSize = 0;\n      this.textMatrix = _util.IDENTITY_MATRIX;\n      this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n      this.leading = 0;\n      this.textRenderingMode = _util.TextRenderingMode.FILL;\n      this.textMatrixScale = 1;\n      this.x = 0;\n      this.y = 0;\n      this.lineX = 0;\n      this.lineY = 0;\n      this.charSpacing = 0;\n      this.wordSpacing = 0;\n      this.textHScale = 1;\n      this.textRise = 0;\n      this.fillColor = SVG_DEFAULTS.fillColor;\n      this.strokeColor = \"#000000\";\n      this.fillAlpha = 1;\n      this.strokeAlpha = 1;\n      this.lineWidth = 1;\n      this.lineJoin = \"\";\n      this.lineCap = \"\";\n      this.miterLimit = 0;\n      this.dashArray = [];\n      this.dashPhase = 0;\n      this.dependencies = [];\n      this.activeClipUrl = null;\n      this.clipGroup = null;\n      this.maskId = \"\";\n    }\n\n    clone() {\n      return Object.create(this);\n    }\n\n    setCurrentPoint(x, y) {\n      this.x = x;\n      this.y = y;\n    }\n\n  }\n\n  function opListToTree(opList) {\n    let opTree = [];\n    const tmp = [];\n\n    for (const opListElement of opList) {\n      if (opListElement.fn === \"save\") {\n        opTree.push({\n          fnId: 92,\n          fn: \"group\",\n          items: []\n        });\n        tmp.push(opTree);\n        opTree = opTree.at(-1).items;\n        continue;\n      }\n\n      if (opListElement.fn === \"restore\") {\n        opTree = tmp.pop();\n      } else {\n        opTree.push(opListElement);\n      }\n    }\n\n    return opTree;\n  }\n\n  function pf(value) {\n    if (Number.isInteger(value)) {\n      return value.toString();\n    }\n\n    const s = value.toFixed(10);\n    let i = s.length - 1;\n\n    if (s[i] !== \"0\") {\n      return s;\n    }\n\n    do {\n      i--;\n    } while (s[i] === \"0\");\n\n    return s.substring(0, s[i] === \".\" ? i : i + 1);\n  }\n\n  function pm(m) {\n    if (m[4] === 0 && m[5] === 0) {\n      if (m[1] === 0 && m[2] === 0) {\n        if (m[0] === 1 && m[3] === 1) {\n          return \"\";\n        }\n\n        return `scale(${pf(m[0])} ${pf(m[3])})`;\n      }\n\n      if (m[0] === m[3] && m[1] === -m[2]) {\n        const a = Math.acos(m[0]) * 180 / Math.PI;\n        return `rotate(${pf(a)})`;\n      }\n    } else {\n      if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n        return `translate(${pf(m[4])} ${pf(m[5])})`;\n      }\n    }\n\n    return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`;\n  }\n\n  let clipCount = 0;\n  let maskCount = 0;\n  let shadingCount = 0;\n  exports.SVGGraphics = SVGGraphics = class {\n    constructor(commonObjs, objs) {\n      let forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n      (0, _display_utils.deprecated)(\"The SVG back-end is no longer maintained and *may* be removed in the future.\");\n      this.svgFactory = new _display_utils.DOMSVGFactory();\n      this.current = new SVGExtraState();\n      this.transformMatrix = _util.IDENTITY_MATRIX;\n      this.transformStack = [];\n      this.extraStack = [];\n      this.commonObjs = commonObjs;\n      this.objs = objs;\n      this.pendingClip = null;\n      this.pendingEOFill = false;\n      this.embedFonts = false;\n      this.embeddedFonts = Object.create(null);\n      this.cssStyle = null;\n      this.forceDataSchema = !!forceDataSchema;\n      this._operatorIdMapping = [];\n\n      for (const op in _util.OPS) {\n        this._operatorIdMapping[_util.OPS[op]] = op;\n      }\n    }\n\n    save() {\n      this.transformStack.push(this.transformMatrix);\n      const old = this.current;\n      this.extraStack.push(old);\n      this.current = old.clone();\n    }\n\n    restore() {\n      this.transformMatrix = this.transformStack.pop();\n      this.current = this.extraStack.pop();\n      this.pendingClip = null;\n      this.tgrp = null;\n    }\n\n    group(items) {\n      this.save();\n      this.executeOpTree(items);\n      this.restore();\n    }\n\n    loadDependencies(operatorList) {\n      const fnArray = operatorList.fnArray;\n      const argsArray = operatorList.argsArray;\n\n      for (let i = 0, ii = fnArray.length; i < ii; i++) {\n        if (fnArray[i] !== _util.OPS.dependency) {\n          continue;\n        }\n\n        for (const obj of argsArray[i]) {\n          const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n          const promise = new Promise(resolve => {\n            objsPool.get(obj, resolve);\n          });\n          this.current.dependencies.push(promise);\n        }\n      }\n\n      return Promise.all(this.current.dependencies);\n    }\n\n    transform(a, b, c, d, e, f) {\n      const transformMatrix = [a, b, c, d, e, f];\n      this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n      this.tgrp = null;\n    }\n\n    getSVG(operatorList, viewport) {\n      this.viewport = viewport;\n\n      const svgElement = this._initialize(viewport);\n\n      return this.loadDependencies(operatorList).then(() => {\n        this.transformMatrix = _util.IDENTITY_MATRIX;\n        this.executeOpTree(this.convertOpList(operatorList));\n        return svgElement;\n      });\n    }\n\n    convertOpList(operatorList) {\n      const operatorIdMapping = this._operatorIdMapping;\n      const argsArray = operatorList.argsArray;\n      const fnArray = operatorList.fnArray;\n      const opList = [];\n\n      for (let i = 0, ii = fnArray.length; i < ii; i++) {\n        const fnId = fnArray[i];\n        opList.push({\n          fnId,\n          fn: operatorIdMapping[fnId],\n          args: argsArray[i]\n        });\n      }\n\n      return opListToTree(opList);\n    }\n\n    executeOpTree(opTree) {\n      for (const opTreeElement of opTree) {\n        const fn = opTreeElement.fn;\n        const fnId = opTreeElement.fnId;\n        const args = opTreeElement.args;\n\n        switch (fnId | 0) {\n          case _util.OPS.beginText:\n            this.beginText();\n            break;\n\n          case _util.OPS.dependency:\n            break;\n\n          case _util.OPS.setLeading:\n            this.setLeading(args);\n            break;\n\n          case _util.OPS.setLeadingMoveText:\n            this.setLeadingMoveText(args[0], args[1]);\n            break;\n\n          case _util.OPS.setFont:\n            this.setFont(args);\n            break;\n\n          case _util.OPS.showText:\n            this.showText(args[0]);\n            break;\n\n          case _util.OPS.showSpacedText:\n            this.showText(args[0]);\n            break;\n\n          case _util.OPS.endText:\n            this.endText();\n            break;\n\n          case _util.OPS.moveText:\n            this.moveText(args[0], args[1]);\n            break;\n\n          case _util.OPS.setCharSpacing:\n            this.setCharSpacing(args[0]);\n            break;\n\n          case _util.OPS.setWordSpacing:\n            this.setWordSpacing(args[0]);\n            break;\n\n          case _util.OPS.setHScale:\n            this.setHScale(args[0]);\n            break;\n\n          case _util.OPS.setTextMatrix:\n            this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n            break;\n\n          case _util.OPS.setTextRise:\n            this.setTextRise(args[0]);\n            break;\n\n          case _util.OPS.setTextRenderingMode:\n            this.setTextRenderingMode(args[0]);\n            break;\n\n          case _util.OPS.setLineWidth:\n            this.setLineWidth(args[0]);\n            break;\n\n          case _util.OPS.setLineJoin:\n            this.setLineJoin(args[0]);\n            break;\n\n          case _util.OPS.setLineCap:\n            this.setLineCap(args[0]);\n            break;\n\n          case _util.OPS.setMiterLimit:\n            this.setMiterLimit(args[0]);\n            break;\n\n          case _util.OPS.setFillRGBColor:\n            this.setFillRGBColor(args[0], args[1], args[2]);\n            break;\n\n          case _util.OPS.setStrokeRGBColor:\n            this.setStrokeRGBColor(args[0], args[1], args[2]);\n            break;\n\n          case _util.OPS.setStrokeColorN:\n            this.setStrokeColorN(args);\n            break;\n\n          case _util.OPS.setFillColorN:\n            this.setFillColorN(args);\n            break;\n\n          case _util.OPS.shadingFill:\n            this.shadingFill(args[0]);\n            break;\n\n          case _util.OPS.setDash:\n            this.setDash(args[0], args[1]);\n            break;\n\n          case _util.OPS.setRenderingIntent:\n            this.setRenderingIntent(args[0]);\n            break;\n\n          case _util.OPS.setFlatness:\n            this.setFlatness(args[0]);\n            break;\n\n          case _util.OPS.setGState:\n            this.setGState(args[0]);\n            break;\n\n          case _util.OPS.fill:\n            this.fill();\n            break;\n\n          case _util.OPS.eoFill:\n            this.eoFill();\n            break;\n\n          case _util.OPS.stroke:\n            this.stroke();\n            break;\n\n          case _util.OPS.fillStroke:\n            this.fillStroke();\n            break;\n\n          case _util.OPS.eoFillStroke:\n            this.eoFillStroke();\n            break;\n\n          case _util.OPS.clip:\n            this.clip(\"nonzero\");\n            break;\n\n          case _util.OPS.eoClip:\n            this.clip(\"evenodd\");\n            break;\n\n          case _util.OPS.paintSolidColorImageMask:\n            this.paintSolidColorImageMask();\n            break;\n\n          case _util.OPS.paintImageXObject:\n            this.paintImageXObject(args[0]);\n            break;\n\n          case _util.OPS.paintInlineImageXObject:\n            this.paintInlineImageXObject(args[0]);\n            break;\n\n          case _util.OPS.paintImageMaskXObject:\n            this.paintImageMaskXObject(args[0]);\n            break;\n\n          case _util.OPS.paintFormXObjectBegin:\n            this.paintFormXObjectBegin(args[0], args[1]);\n            break;\n\n          case _util.OPS.paintFormXObjectEnd:\n            this.paintFormXObjectEnd();\n            break;\n\n          case _util.OPS.closePath:\n            this.closePath();\n            break;\n\n          case _util.OPS.closeStroke:\n            this.closeStroke();\n            break;\n\n          case _util.OPS.closeFillStroke:\n            this.closeFillStroke();\n            break;\n\n          case _util.OPS.closeEOFillStroke:\n            this.closeEOFillStroke();\n            break;\n\n          case _util.OPS.nextLine:\n            this.nextLine();\n            break;\n\n          case _util.OPS.transform:\n            this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n            break;\n\n          case _util.OPS.constructPath:\n            this.constructPath(args[0], args[1]);\n            break;\n\n          case _util.OPS.endPath:\n            this.endPath();\n            break;\n\n          case 92:\n            this.group(opTreeElement.items);\n            break;\n\n          default:\n            (0, _util.warn)(`Unimplemented operator ${fn}`);\n            break;\n        }\n      }\n    }\n\n    setWordSpacing(wordSpacing) {\n      this.current.wordSpacing = wordSpacing;\n    }\n\n    setCharSpacing(charSpacing) {\n      this.current.charSpacing = charSpacing;\n    }\n\n    nextLine() {\n      this.moveText(0, this.current.leading);\n    }\n\n    setTextMatrix(a, b, c, d, e, f) {\n      const current = this.current;\n      current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n      current.textMatrixScale = Math.hypot(a, b);\n      current.x = current.lineX = 0;\n      current.y = current.lineY = 0;\n      current.xcoords = [];\n      current.ycoords = [];\n      current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n      current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n      current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n      current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n      current.txtElement = this.svgFactory.createElement(\"svg:text\");\n      current.txtElement.append(current.tspan);\n    }\n\n    beginText() {\n      const current = this.current;\n      current.x = current.lineX = 0;\n      current.y = current.lineY = 0;\n      current.textMatrix = _util.IDENTITY_MATRIX;\n      current.lineMatrix = _util.IDENTITY_MATRIX;\n      current.textMatrixScale = 1;\n      current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n      current.txtElement = this.svgFactory.createElement(\"svg:text\");\n      current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n      current.xcoords = [];\n      current.ycoords = [];\n    }\n\n    moveText(x, y) {\n      const current = this.current;\n      current.x = current.lineX += x;\n      current.y = current.lineY += y;\n      current.xcoords = [];\n      current.ycoords = [];\n      current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n      current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n      current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n      current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n    }\n\n    showText(glyphs) {\n      const current = this.current;\n      const font = current.font;\n      const fontSize = current.fontSize;\n\n      if (fontSize === 0) {\n        return;\n      }\n\n      const fontSizeScale = current.fontSizeScale;\n      const charSpacing = current.charSpacing;\n      const wordSpacing = current.wordSpacing;\n      const fontDirection = current.fontDirection;\n      const textHScale = current.textHScale * fontDirection;\n      const vertical = font.vertical;\n      const spacingDir = vertical ? 1 : -1;\n      const defaultVMetrics = font.defaultVMetrics;\n      const widthAdvanceScale = fontSize * current.fontMatrix[0];\n      let x = 0;\n\n      for (const glyph of glyphs) {\n        if (glyph === null) {\n          x += fontDirection * wordSpacing;\n          continue;\n        } else if (typeof glyph === \"number\") {\n          x += spacingDir * glyph * fontSize / 1000;\n          continue;\n        }\n\n        const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n        const character = glyph.fontChar;\n        let scaledX, scaledY;\n        let width = glyph.width;\n\n        if (vertical) {\n          let vx;\n          const vmetric = glyph.vmetric || defaultVMetrics;\n          vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n          vx = -vx * widthAdvanceScale;\n          const vy = vmetric[2] * widthAdvanceScale;\n          width = vmetric ? -vmetric[0] : width;\n          scaledX = vx / fontSizeScale;\n          scaledY = (x + vy) / fontSizeScale;\n        } else {\n          scaledX = x / fontSizeScale;\n          scaledY = 0;\n        }\n\n        if (glyph.isInFont || font.missingFile) {\n          current.xcoords.push(current.x + scaledX);\n\n          if (vertical) {\n            current.ycoords.push(-current.y + scaledY);\n          }\n\n          current.tspan.textContent += character;\n        } else {}\n\n        let charWidth;\n\n        if (vertical) {\n          charWidth = width * widthAdvanceScale - spacing * fontDirection;\n        } else {\n          charWidth = width * widthAdvanceScale + spacing * fontDirection;\n        }\n\n        x += charWidth;\n      }\n\n      current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n\n      if (vertical) {\n        current.tspan.setAttributeNS(null, \"y\", current.ycoords.map(pf).join(\" \"));\n      } else {\n        current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n      }\n\n      if (vertical) {\n        current.y -= x;\n      } else {\n        current.x += x * textHScale;\n      }\n\n      current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n      current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n\n      if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n        current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n      }\n\n      if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n        current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n      }\n\n      const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n      if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n        if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n          current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n        }\n\n        if (current.fillAlpha < 1) {\n          current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n        }\n      } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n        current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n      } else {\n        current.tspan.setAttributeNS(null, \"fill\", \"none\");\n      }\n\n      if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n        const lineWidthScale = 1 / (current.textMatrixScale || 1);\n\n        this._setStrokeAttributes(current.tspan, lineWidthScale);\n      }\n\n      let textMatrix = current.textMatrix;\n\n      if (current.textRise !== 0) {\n        textMatrix = textMatrix.slice();\n        textMatrix[5] += current.textRise;\n      }\n\n      current.txtElement.setAttributeNS(null, \"transform\", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`);\n      current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n      current.txtElement.append(current.tspan);\n      current.txtgrp.append(current.txtElement);\n\n      this._ensureTransformGroup().append(current.txtElement);\n    }\n\n    setLeadingMoveText(x, y) {\n      this.setLeading(-y);\n      this.moveText(x, y);\n    }\n\n    addFontStyle(fontObj) {\n      if (!fontObj.data) {\n        throw new Error(\"addFontStyle: No font data available, \" + 'ensure that the \"fontExtraProperties\" API parameter is set.');\n      }\n\n      if (!this.cssStyle) {\n        this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n        this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n        this.defs.append(this.cssStyle);\n      }\n\n      const url = createObjectURL(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n      this.cssStyle.textContent += `@font-face { font-family: \"${fontObj.loadedName}\";` + ` src: url(${url}); }\\n`;\n    }\n\n    setFont(details) {\n      const current = this.current;\n      const fontObj = this.commonObjs.get(details[0]);\n      let size = details[1];\n      current.font = fontObj;\n\n      if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {\n        this.addFontStyle(fontObj);\n        this.embeddedFonts[fontObj.loadedName] = fontObj;\n      }\n\n      current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n      let bold = \"normal\";\n\n      if (fontObj.black) {\n        bold = \"900\";\n      } else if (fontObj.bold) {\n        bold = \"bold\";\n      }\n\n      const italic = fontObj.italic ? \"italic\" : \"normal\";\n\n      if (size < 0) {\n        size = -size;\n        current.fontDirection = -1;\n      } else {\n        current.fontDirection = 1;\n      }\n\n      current.fontSize = size;\n      current.fontFamily = fontObj.loadedName;\n      current.fontWeight = bold;\n      current.fontStyle = italic;\n      current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n      current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n      current.xcoords = [];\n      current.ycoords = [];\n    }\n\n    endText() {\n      var _current$txtElement;\n\n      const current = this.current;\n\n      if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && (_current$txtElement = current.txtElement) !== null && _current$txtElement !== void 0 && _current$txtElement.hasChildNodes()) {\n        current.element = current.txtElement;\n        this.clip(\"nonzero\");\n        this.endPath();\n      }\n    }\n\n    setLineWidth(width) {\n      if (width > 0) {\n        this.current.lineWidth = width;\n      }\n    }\n\n    setLineCap(style) {\n      this.current.lineCap = LINE_CAP_STYLES[style];\n    }\n\n    setLineJoin(style) {\n      this.current.lineJoin = LINE_JOIN_STYLES[style];\n    }\n\n    setMiterLimit(limit) {\n      this.current.miterLimit = limit;\n    }\n\n    setStrokeAlpha(strokeAlpha) {\n      this.current.strokeAlpha = strokeAlpha;\n    }\n\n    setStrokeRGBColor(r, g, b) {\n      this.current.strokeColor = _util.Util.makeHexColor(r, g, b);\n    }\n\n    setFillAlpha(fillAlpha) {\n      this.current.fillAlpha = fillAlpha;\n    }\n\n    setFillRGBColor(r, g, b) {\n      this.current.fillColor = _util.Util.makeHexColor(r, g, b);\n      this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n      this.current.xcoords = [];\n      this.current.ycoords = [];\n    }\n\n    setStrokeColorN(args) {\n      this.current.strokeColor = this._makeColorN_Pattern(args);\n    }\n\n    setFillColorN(args) {\n      this.current.fillColor = this._makeColorN_Pattern(args);\n    }\n\n    shadingFill(args) {\n      const width = this.viewport.width;\n      const height = this.viewport.height;\n\n      const inv = _util.Util.inverseTransform(this.transformMatrix);\n\n      const bl = _util.Util.applyTransform([0, 0], inv);\n\n      const br = _util.Util.applyTransform([0, height], inv);\n\n      const ul = _util.Util.applyTransform([width, 0], inv);\n\n      const ur = _util.Util.applyTransform([width, height], inv);\n\n      const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n      const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n      const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n      const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n      const rect = this.svgFactory.createElement(\"svg:rect\");\n      rect.setAttributeNS(null, \"x\", x0);\n      rect.setAttributeNS(null, \"y\", y0);\n      rect.setAttributeNS(null, \"width\", x1 - x0);\n      rect.setAttributeNS(null, \"height\", y1 - y0);\n      rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n\n      if (this.current.fillAlpha < 1) {\n        rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n      }\n\n      this._ensureTransformGroup().append(rect);\n    }\n\n    _makeColorN_Pattern(args) {\n      if (args[0] === \"TilingPattern\") {\n        return this._makeTilingPattern(args);\n      }\n\n      return this._makeShadingPattern(args);\n    }\n\n    _makeTilingPattern(args) {\n      const color = args[1];\n      const operatorList = args[2];\n      const matrix = args[3] || _util.IDENTITY_MATRIX;\n      const [x0, y0, x1, y1] = args[4];\n      const xstep = args[5];\n      const ystep = args[6];\n      const paintType = args[7];\n      const tilingId = `shading${shadingCount++}`;\n\n      const [tx0, ty0, tx1, ty1] = _util.Util.normalizeRect([..._util.Util.applyTransform([x0, y0], matrix), ..._util.Util.applyTransform([x1, y1], matrix)]);\n\n      const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix);\n\n      const txstep = xstep * xscale;\n      const tystep = ystep * yscale;\n      const tiling = this.svgFactory.createElement(\"svg:pattern\");\n      tiling.setAttributeNS(null, \"id\", tilingId);\n      tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n      tiling.setAttributeNS(null, \"width\", txstep);\n      tiling.setAttributeNS(null, \"height\", tystep);\n      tiling.setAttributeNS(null, \"x\", `${tx0}`);\n      tiling.setAttributeNS(null, \"y\", `${ty0}`);\n      const svg = this.svg;\n      const transformMatrix = this.transformMatrix;\n      const fillColor = this.current.fillColor;\n      const strokeColor = this.current.strokeColor;\n      const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n      this.svg = bbox;\n      this.transformMatrix = matrix;\n\n      if (paintType === 2) {\n        const cssColor = _util.Util.makeHexColor(...color);\n\n        this.current.fillColor = cssColor;\n        this.current.strokeColor = cssColor;\n      }\n\n      this.executeOpTree(this.convertOpList(operatorList));\n      this.svg = svg;\n      this.transformMatrix = transformMatrix;\n      this.current.fillColor = fillColor;\n      this.current.strokeColor = strokeColor;\n      tiling.append(bbox.childNodes[0]);\n      this.defs.append(tiling);\n      return `url(#${tilingId})`;\n    }\n\n    _makeShadingPattern(args) {\n      if (typeof args === \"string\") {\n        args = this.objs.get(args);\n      }\n\n      switch (args[0]) {\n        case \"RadialAxial\":\n          const shadingId = `shading${shadingCount++}`;\n          const colorStops = args[3];\n          let gradient;\n\n          switch (args[1]) {\n            case \"axial\":\n              const point0 = args[4];\n              const point1 = args[5];\n              gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n              gradient.setAttributeNS(null, \"id\", shadingId);\n              gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n              gradient.setAttributeNS(null, \"x1\", point0[0]);\n              gradient.setAttributeNS(null, \"y1\", point0[1]);\n              gradient.setAttributeNS(null, \"x2\", point1[0]);\n              gradient.setAttributeNS(null, \"y2\", point1[1]);\n              break;\n\n            case \"radial\":\n              const focalPoint = args[4];\n              const circlePoint = args[5];\n              const focalRadius = args[6];\n              const circleRadius = args[7];\n              gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n              gradient.setAttributeNS(null, \"id\", shadingId);\n              gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n              gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n              gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n              gradient.setAttributeNS(null, \"r\", circleRadius);\n              gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n              gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n              gradient.setAttributeNS(null, \"fr\", focalRadius);\n              break;\n\n            default:\n              throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n          }\n\n          for (const colorStop of colorStops) {\n            const stop = this.svgFactory.createElement(\"svg:stop\");\n            stop.setAttributeNS(null, \"offset\", colorStop[0]);\n            stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n            gradient.append(stop);\n          }\n\n          this.defs.append(gradient);\n          return `url(#${shadingId})`;\n\n        case \"Mesh\":\n          (0, _util.warn)(\"Unimplemented pattern Mesh\");\n          return null;\n\n        case \"Dummy\":\n          return \"hotpink\";\n\n        default:\n          throw new Error(`Unknown IR type: ${args[0]}`);\n      }\n    }\n\n    setDash(dashArray, dashPhase) {\n      this.current.dashArray = dashArray;\n      this.current.dashPhase = dashPhase;\n    }\n\n    constructPath(ops, args) {\n      const current = this.current;\n      let x = current.x,\n          y = current.y;\n      let d = [];\n      let j = 0;\n\n      for (const op of ops) {\n        switch (op | 0) {\n          case _util.OPS.rectangle:\n            x = args[j++];\n            y = args[j++];\n            const width = args[j++];\n            const height = args[j++];\n            const xw = x + width;\n            const yh = y + height;\n            d.push(\"M\", pf(x), pf(y), \"L\", pf(xw), pf(y), \"L\", pf(xw), pf(yh), \"L\", pf(x), pf(yh), \"Z\");\n            break;\n\n          case _util.OPS.moveTo:\n            x = args[j++];\n            y = args[j++];\n            d.push(\"M\", pf(x), pf(y));\n            break;\n\n          case _util.OPS.lineTo:\n            x = args[j++];\n            y = args[j++];\n            d.push(\"L\", pf(x), pf(y));\n            break;\n\n          case _util.OPS.curveTo:\n            x = args[j + 4];\n            y = args[j + 5];\n            d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n            j += 6;\n            break;\n\n          case _util.OPS.curveTo2:\n            d.push(\"C\", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n            x = args[j + 2];\n            y = args[j + 3];\n            j += 4;\n            break;\n\n          case _util.OPS.curveTo3:\n            x = args[j + 2];\n            y = args[j + 3];\n            d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n            j += 4;\n            break;\n\n          case _util.OPS.closePath:\n            d.push(\"Z\");\n            break;\n        }\n      }\n\n      d = d.join(\" \");\n\n      if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n        d = current.path.getAttributeNS(null, \"d\") + d;\n      } else {\n        current.path = this.svgFactory.createElement(\"svg:path\");\n\n        this._ensureTransformGroup().append(current.path);\n      }\n\n      current.path.setAttributeNS(null, \"d\", d);\n      current.path.setAttributeNS(null, \"fill\", \"none\");\n      current.element = current.path;\n      current.setCurrentPoint(x, y);\n    }\n\n    endPath() {\n      const current = this.current;\n      current.path = null;\n\n      if (!this.pendingClip) {\n        return;\n      }\n\n      if (!current.element) {\n        this.pendingClip = null;\n        return;\n      }\n\n      const clipId = `clippath${clipCount++}`;\n      const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n      clipPath.setAttributeNS(null, \"id\", clipId);\n      clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n      const clipElement = current.element.cloneNode(true);\n\n      if (this.pendingClip === \"evenodd\") {\n        clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n      } else {\n        clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n      }\n\n      this.pendingClip = null;\n      clipPath.append(clipElement);\n      this.defs.append(clipPath);\n\n      if (current.activeClipUrl) {\n        current.clipGroup = null;\n\n        for (const prev of this.extraStack) {\n          prev.clipGroup = null;\n        }\n\n        clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n      }\n\n      current.activeClipUrl = `url(#${clipId})`;\n      this.tgrp = null;\n    }\n\n    clip(type) {\n      this.pendingClip = type;\n    }\n\n    closePath() {\n      const current = this.current;\n\n      if (current.path) {\n        const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n        current.path.setAttributeNS(null, \"d\", d);\n      }\n    }\n\n    setLeading(leading) {\n      this.current.leading = -leading;\n    }\n\n    setTextRise(textRise) {\n      this.current.textRise = textRise;\n    }\n\n    setTextRenderingMode(textRenderingMode) {\n      this.current.textRenderingMode = textRenderingMode;\n    }\n\n    setHScale(scale) {\n      this.current.textHScale = scale / 100;\n    }\n\n    setRenderingIntent(intent) {}\n\n    setFlatness(flatness) {}\n\n    setGState(states) {\n      for (const [key, value] of states) {\n        switch (key) {\n          case \"LW\":\n            this.setLineWidth(value);\n            break;\n\n          case \"LC\":\n            this.setLineCap(value);\n            break;\n\n          case \"LJ\":\n            this.setLineJoin(value);\n            break;\n\n          case \"ML\":\n            this.setMiterLimit(value);\n            break;\n\n          case \"D\":\n            this.setDash(value[0], value[1]);\n            break;\n\n          case \"RI\":\n            this.setRenderingIntent(value);\n            break;\n\n          case \"FL\":\n            this.setFlatness(value);\n            break;\n\n          case \"Font\":\n            this.setFont(value);\n            break;\n\n          case \"CA\":\n            this.setStrokeAlpha(value);\n            break;\n\n          case \"ca\":\n            this.setFillAlpha(value);\n            break;\n\n          default:\n            (0, _util.warn)(`Unimplemented graphic state operator ${key}`);\n            break;\n        }\n      }\n    }\n\n    fill() {\n      const current = this.current;\n\n      if (current.element) {\n        current.element.setAttributeNS(null, \"fill\", current.fillColor);\n        current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n        this.endPath();\n      }\n    }\n\n    stroke() {\n      const current = this.current;\n\n      if (current.element) {\n        this._setStrokeAttributes(current.element);\n\n        current.element.setAttributeNS(null, \"fill\", \"none\");\n        this.endPath();\n      }\n    }\n\n    _setStrokeAttributes(element) {\n      let lineWidthScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n      const current = this.current;\n      let dashArray = current.dashArray;\n\n      if (lineWidthScale !== 1 && dashArray.length > 0) {\n        dashArray = dashArray.map(function (value) {\n          return lineWidthScale * value;\n        });\n      }\n\n      element.setAttributeNS(null, \"stroke\", current.strokeColor);\n      element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n      element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n      element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n      element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n      element.setAttributeNS(null, \"stroke-width\", pf(lineWidthScale * current.lineWidth) + \"px\");\n      element.setAttributeNS(null, \"stroke-dasharray\", dashArray.map(pf).join(\" \"));\n      element.setAttributeNS(null, \"stroke-dashoffset\", pf(lineWidthScale * current.dashPhase) + \"px\");\n    }\n\n    eoFill() {\n      if (this.current.element) {\n        this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n      }\n\n      this.fill();\n    }\n\n    fillStroke() {\n      this.stroke();\n      this.fill();\n    }\n\n    eoFillStroke() {\n      if (this.current.element) {\n        this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n      }\n\n      this.fillStroke();\n    }\n\n    closeStroke() {\n      this.closePath();\n      this.stroke();\n    }\n\n    closeFillStroke() {\n      this.closePath();\n      this.fillStroke();\n    }\n\n    closeEOFillStroke() {\n      this.closePath();\n      this.eoFillStroke();\n    }\n\n    paintSolidColorImageMask() {\n      const rect = this.svgFactory.createElement(\"svg:rect\");\n      rect.setAttributeNS(null, \"x\", \"0\");\n      rect.setAttributeNS(null, \"y\", \"0\");\n      rect.setAttributeNS(null, \"width\", \"1px\");\n      rect.setAttributeNS(null, \"height\", \"1px\");\n      rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n\n      this._ensureTransformGroup().append(rect);\n    }\n\n    paintImageXObject(objId) {\n      const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n      if (!imgData) {\n        (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`);\n        return;\n      }\n\n      this.paintInlineImageXObject(imgData);\n    }\n\n    paintInlineImageXObject(imgData, mask) {\n      const width = imgData.width;\n      const height = imgData.height;\n      const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n      const cliprect = this.svgFactory.createElement(\"svg:rect\");\n      cliprect.setAttributeNS(null, \"x\", \"0\");\n      cliprect.setAttributeNS(null, \"y\", \"0\");\n      cliprect.setAttributeNS(null, \"width\", pf(width));\n      cliprect.setAttributeNS(null, \"height\", pf(height));\n      this.current.element = cliprect;\n      this.clip(\"nonzero\");\n      const imgEl = this.svgFactory.createElement(\"svg:image\");\n      imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n      imgEl.setAttributeNS(null, \"x\", \"0\");\n      imgEl.setAttributeNS(null, \"y\", pf(-height));\n      imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n      imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n      imgEl.setAttributeNS(null, \"transform\", `scale(${pf(1 / width)} ${pf(-1 / height)})`);\n\n      if (mask) {\n        mask.append(imgEl);\n      } else {\n        this._ensureTransformGroup().append(imgEl);\n      }\n    }\n\n    paintImageMaskXObject(imgData) {\n      const current = this.current;\n      const width = imgData.width;\n      const height = imgData.height;\n      const fillColor = current.fillColor;\n      current.maskId = `mask${maskCount++}`;\n      const mask = this.svgFactory.createElement(\"svg:mask\");\n      mask.setAttributeNS(null, \"id\", current.maskId);\n      const rect = this.svgFactory.createElement(\"svg:rect\");\n      rect.setAttributeNS(null, \"x\", \"0\");\n      rect.setAttributeNS(null, \"y\", \"0\");\n      rect.setAttributeNS(null, \"width\", pf(width));\n      rect.setAttributeNS(null, \"height\", pf(height));\n      rect.setAttributeNS(null, \"fill\", fillColor);\n      rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n      this.defs.append(mask);\n\n      this._ensureTransformGroup().append(rect);\n\n      this.paintInlineImageXObject(imgData, mask);\n    }\n\n    paintFormXObjectBegin(matrix, bbox) {\n      if (Array.isArray(matrix) && matrix.length === 6) {\n        this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n      }\n\n      if (bbox) {\n        const width = bbox[2] - bbox[0];\n        const height = bbox[3] - bbox[1];\n        const cliprect = this.svgFactory.createElement(\"svg:rect\");\n        cliprect.setAttributeNS(null, \"x\", bbox[0]);\n        cliprect.setAttributeNS(null, \"y\", bbox[1]);\n        cliprect.setAttributeNS(null, \"width\", pf(width));\n        cliprect.setAttributeNS(null, \"height\", pf(height));\n        this.current.element = cliprect;\n        this.clip(\"nonzero\");\n        this.endPath();\n      }\n    }\n\n    paintFormXObjectEnd() {}\n\n    _initialize(viewport) {\n      const svg = this.svgFactory.create(viewport.width, viewport.height);\n      const definitions = this.svgFactory.createElement(\"svg:defs\");\n      svg.append(definitions);\n      this.defs = definitions;\n      const rootGroup = this.svgFactory.createElement(\"svg:g\");\n      rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n      svg.append(rootGroup);\n      this.svg = rootGroup;\n      return svg;\n    }\n\n    _ensureClipGroup() {\n      if (!this.current.clipGroup) {\n        const clipGroup = this.svgFactory.createElement(\"svg:g\");\n        clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n        this.svg.append(clipGroup);\n        this.current.clipGroup = clipGroup;\n      }\n\n      return this.current.clipGroup;\n    }\n\n    _ensureTransformGroup() {\n      if (!this.tgrp) {\n        this.tgrp = this.svgFactory.createElement(\"svg:g\");\n        this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n\n        if (this.current.activeClipUrl) {\n          this._ensureClipGroup().append(this.tgrp);\n        } else {\n          this.svg.append(this.tgrp);\n        }\n      }\n\n      return this.tgrp;\n    }\n\n  };\n}\n\n/***/ }),\n/* 157 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PDFNodeStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(158);\n\n;\n\nconst fs = __webpack_require__(/*! fs */ 1);\n\nconst http = __webpack_require__(/*! http */ 4);\n\nconst https = __webpack_require__(/*! https */ 5);\n\nconst url = __webpack_require__(/*! url */ 6);\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n  const parsedUrl = url.parse(sourceUrl);\n\n  if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n    return parsedUrl;\n  }\n\n  if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n    return url.parse(`file:///${sourceUrl}`);\n  }\n\n  if (!parsedUrl.host) {\n    parsedUrl.protocol = \"file:\";\n  }\n\n  return parsedUrl;\n}\n\nclass PDFNodeStream {\n  constructor(source) {\n    this.source = source;\n    this.url = parseUrl(source.url);\n    this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n    this.isFsUrl = this.url.protocol === \"file:\";\n    this.httpHeaders = this.isHttp && source.httpHeaders || {};\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  get _progressiveDataLength() {\n    var _this$_fullRequestRea, _this$_fullRequestRea2;\n\n    return (_this$_fullRequestRea = (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2._loaded) !== null && _this$_fullRequestRea !== void 0 ? _this$_fullRequestRea : 0;\n  }\n\n  getFullReader() {\n    (0, _util.assert)(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n    this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(start, end) {\n    if (end <= this._progressiveDataLength) {\n      return null;\n    }\n\n    const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n\n    this._rangeRequestReaders.push(rangeReader);\n\n    return rangeReader;\n  }\n\n  cancelAllRequests(reason) {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.cancel(reason);\n    }\n\n    for (const reader of this._rangeRequestReaders.slice(0)) {\n      reader.cancel(reason);\n    }\n  }\n\n}\n\nexports.PDFNodeStream = PDFNodeStream;\n\nclass BaseFullReader {\n  constructor(stream) {\n    this._url = stream.url;\n    this._done = false;\n    this._storedError = null;\n    this.onProgress = null;\n    const source = stream.source;\n    this._contentLength = source.length;\n    this._loaded = 0;\n    this._filename = null;\n    this._disableRange = source.disableRange || false;\n    this._rangeChunkSize = source.rangeChunkSize;\n\n    if (!this._rangeChunkSize && !this._disableRange) {\n      this._disableRange = true;\n    }\n\n    this._isStreamingSupported = !source.disableStream;\n    this._isRangeSupported = !source.disableRange;\n    this._readableStream = null;\n    this._readCapability = (0, _util.createPromiseCapability)();\n    this._headersCapability = (0, _util.createPromiseCapability)();\n  }\n\n  get headersReady() {\n    return this._headersCapability.promise;\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._readCapability.promise;\n\n    if (this._done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n\n    if (this._storedError) {\n      throw this._storedError;\n    }\n\n    const chunk = this._readableStream.read();\n\n    if (chunk === null) {\n      this._readCapability = (0, _util.createPromiseCapability)();\n      return this.read();\n    }\n\n    this._loaded += chunk.length;\n\n    if (this.onProgress) {\n      this.onProgress({\n        loaded: this._loaded,\n        total: this._contentLength\n      });\n    }\n\n    const buffer = new Uint8Array(chunk).buffer;\n    return {\n      value: buffer,\n      done: false\n    };\n  }\n\n  cancel(reason) {\n    if (!this._readableStream) {\n      this._error(reason);\n\n      return;\n    }\n\n    this._readableStream.destroy(reason);\n  }\n\n  _error(reason) {\n    this._storedError = reason;\n\n    this._readCapability.resolve();\n  }\n\n  _setReadableStream(readableStream) {\n    this._readableStream = readableStream;\n    readableStream.on(\"readable\", () => {\n      this._readCapability.resolve();\n    });\n    readableStream.on(\"end\", () => {\n      readableStream.destroy();\n      this._done = true;\n\n      this._readCapability.resolve();\n    });\n    readableStream.on(\"error\", reason => {\n      this._error(reason);\n    });\n\n    if (!this._isStreamingSupported && this._isRangeSupported) {\n      this._error(new _util.AbortException(\"streaming is disabled\"));\n    }\n\n    if (this._storedError) {\n      this._readableStream.destroy(this._storedError);\n    }\n  }\n\n}\n\nclass BaseRangeReader {\n  constructor(stream) {\n    this._url = stream.url;\n    this._done = false;\n    this._storedError = null;\n    this.onProgress = null;\n    this._loaded = 0;\n    this._readableStream = null;\n    this._readCapability = (0, _util.createPromiseCapability)();\n    const source = stream.source;\n    this._isStreamingSupported = !source.disableStream;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._readCapability.promise;\n\n    if (this._done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n\n    if (this._storedError) {\n      throw this._storedError;\n    }\n\n    const chunk = this._readableStream.read();\n\n    if (chunk === null) {\n      this._readCapability = (0, _util.createPromiseCapability)();\n      return this.read();\n    }\n\n    this._loaded += chunk.length;\n\n    if (this.onProgress) {\n      this.onProgress({\n        loaded: this._loaded\n      });\n    }\n\n    const buffer = new Uint8Array(chunk).buffer;\n    return {\n      value: buffer,\n      done: false\n    };\n  }\n\n  cancel(reason) {\n    if (!this._readableStream) {\n      this._error(reason);\n\n      return;\n    }\n\n    this._readableStream.destroy(reason);\n  }\n\n  _error(reason) {\n    this._storedError = reason;\n\n    this._readCapability.resolve();\n  }\n\n  _setReadableStream(readableStream) {\n    this._readableStream = readableStream;\n    readableStream.on(\"readable\", () => {\n      this._readCapability.resolve();\n    });\n    readableStream.on(\"end\", () => {\n      readableStream.destroy();\n      this._done = true;\n\n      this._readCapability.resolve();\n    });\n    readableStream.on(\"error\", reason => {\n      this._error(reason);\n    });\n\n    if (this._storedError) {\n      this._readableStream.destroy(this._storedError);\n    }\n  }\n\n}\n\nfunction createRequestOptions(parsedUrl, headers) {\n  return {\n    protocol: parsedUrl.protocol,\n    auth: parsedUrl.auth,\n    host: parsedUrl.hostname,\n    port: parsedUrl.port,\n    path: parsedUrl.path,\n    method: \"GET\",\n    headers\n  };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n  constructor(stream) {\n    super(stream);\n\n    const handleResponse = response => {\n      if (response.statusCode === 404) {\n        const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n        this._storedError = error;\n\n        this._headersCapability.reject(error);\n\n        return;\n      }\n\n      this._headersCapability.resolve();\n\n      this._setReadableStream(response);\n\n      const getResponseHeader = name => {\n        return this._readableStream.headers[name.toLowerCase()];\n      };\n\n      const {\n        allowRangeRequests,\n        suggestedLength\n      } = (0, _network_utils.validateRangeRequestCapabilities)({\n        getResponseHeader,\n        isHttp: stream.isHttp,\n        rangeChunkSize: this._rangeChunkSize,\n        disableRange: this._disableRange\n      });\n      this._isRangeSupported = allowRangeRequests;\n      this._contentLength = suggestedLength || this._contentLength;\n      this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n    };\n\n    this._request = null;\n\n    if (this._url.protocol === \"http:\") {\n      this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n    } else {\n      this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n    }\n\n    this._request.on(\"error\", reason => {\n      this._storedError = reason;\n\n      this._headersCapability.reject(reason);\n    });\n\n    this._request.end();\n  }\n\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n  constructor(stream, start, end) {\n    super(stream);\n    this._httpHeaders = {};\n\n    for (const property in stream.httpHeaders) {\n      const value = stream.httpHeaders[property];\n\n      if (typeof value === \"undefined\") {\n        continue;\n      }\n\n      this._httpHeaders[property] = value;\n    }\n\n    this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n\n    const handleResponse = response => {\n      if (response.statusCode === 404) {\n        const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n        this._storedError = error;\n        return;\n      }\n\n      this._setReadableStream(response);\n    };\n\n    this._request = null;\n\n    if (this._url.protocol === \"http:\") {\n      this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n    } else {\n      this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n    }\n\n    this._request.on(\"error\", reason => {\n      this._storedError = reason;\n    });\n\n    this._request.end();\n  }\n\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n  constructor(stream) {\n    super(stream);\n    let path = decodeURIComponent(this._url.path);\n\n    if (fileUriRegex.test(this._url.href)) {\n      path = path.replace(/^\\//, \"\");\n    }\n\n    fs.lstat(path, (error, stat) => {\n      if (error) {\n        if (error.code === \"ENOENT\") {\n          error = new _util.MissingPDFException(`Missing PDF \"${path}\".`);\n        }\n\n        this._storedError = error;\n\n        this._headersCapability.reject(error);\n\n        return;\n      }\n\n      this._contentLength = stat.size;\n\n      this._setReadableStream(fs.createReadStream(path));\n\n      this._headersCapability.resolve();\n    });\n  }\n\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n  constructor(stream, start, end) {\n    super(stream);\n    let path = decodeURIComponent(this._url.path);\n\n    if (fileUriRegex.test(this._url.href)) {\n      path = path.replace(/^\\//, \"\");\n    }\n\n    this._setReadableStream(fs.createReadStream(path, {\n      start,\n      end: end - 1\n    }));\n  }\n\n}\n\n/***/ }),\n/* 158 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _content_disposition = __w_pdfjs_require__(159);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nfunction validateRangeRequestCapabilities(_ref) {\n  let {\n    getResponseHeader,\n    isHttp,\n    rangeChunkSize,\n    disableRange\n  } = _ref;\n  const returnValues = {\n    allowRangeRequests: false,\n    suggestedLength: undefined\n  };\n  const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n\n  if (!Number.isInteger(length)) {\n    return returnValues;\n  }\n\n  returnValues.suggestedLength = length;\n\n  if (length <= 2 * rangeChunkSize) {\n    return returnValues;\n  }\n\n  if (disableRange || !isHttp) {\n    return returnValues;\n  }\n\n  if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n    return returnValues;\n  }\n\n  const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n\n  if (contentEncoding !== \"identity\") {\n    return returnValues;\n  }\n\n  returnValues.allowRangeRequests = true;\n  return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n  const contentDisposition = getResponseHeader(\"Content-Disposition\");\n\n  if (contentDisposition) {\n    let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n\n    if (filename.includes(\"%\")) {\n      try {\n        filename = decodeURIComponent(filename);\n      } catch (ex) {}\n    }\n\n    if ((0, _display_utils.isPdfFile)(filename)) {\n      return filename;\n    }\n  }\n\n  return null;\n}\n\nfunction createResponseStatusError(status, url) {\n  if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n    return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n  }\n\n  return new _util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url}\".`, status);\n}\n\nfunction validateResponseStatus(status) {\n  return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 159 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n  let needsEncodingFixup = true;\n  let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n\n  if (tmp) {\n    tmp = tmp[1];\n    let filename = rfc2616unquote(tmp);\n    filename = unescape(filename);\n    filename = rfc5987decode(filename);\n    filename = rfc2047decode(filename);\n    return fixupEncoding(filename);\n  }\n\n  tmp = rfc2231getparam(contentDisposition);\n\n  if (tmp) {\n    const filename = rfc2047decode(tmp);\n    return fixupEncoding(filename);\n  }\n\n  tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n\n  if (tmp) {\n    tmp = tmp[1];\n    let filename = rfc2616unquote(tmp);\n    filename = rfc2047decode(filename);\n    return fixupEncoding(filename);\n  }\n\n  function toParamRegExp(attributePattern, flags) {\n    return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n  }\n\n  function textdecode(encoding, value) {\n    if (encoding) {\n      if (!/^[\\x00-\\xFF]+$/.test(value)) {\n        return value;\n      }\n\n      try {\n        const decoder = new TextDecoder(encoding, {\n          fatal: true\n        });\n        const buffer = (0, _util.stringToBytes)(value);\n        value = decoder.decode(buffer);\n        needsEncodingFixup = false;\n      } catch (e) {}\n    }\n\n    return value;\n  }\n\n  function fixupEncoding(value) {\n    if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n      value = textdecode(\"utf-8\", value);\n\n      if (needsEncodingFixup) {\n        value = textdecode(\"iso-8859-1\", value);\n      }\n    }\n\n    return value;\n  }\n\n  function rfc2231getparam(contentDispositionStr) {\n    const matches = [];\n    let match;\n    const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n\n    while ((match = iter.exec(contentDispositionStr)) !== null) {\n      let [, n, quot, part] = match;\n      n = parseInt(n, 10);\n\n      if (n in matches) {\n        if (n === 0) {\n          break;\n        }\n\n        continue;\n      }\n\n      matches[n] = [quot, part];\n    }\n\n    const parts = [];\n\n    for (let n = 0; n < matches.length; ++n) {\n      if (!(n in matches)) {\n        break;\n      }\n\n      let [quot, part] = matches[n];\n      part = rfc2616unquote(part);\n\n      if (quot) {\n        part = unescape(part);\n\n        if (n === 0) {\n          part = rfc5987decode(part);\n        }\n      }\n\n      parts.push(part);\n    }\n\n    return parts.join(\"\");\n  }\n\n  function rfc2616unquote(value) {\n    if (value.startsWith('\"')) {\n      const parts = value.slice(1).split('\\\\\"');\n\n      for (let i = 0; i < parts.length; ++i) {\n        const quotindex = parts[i].indexOf('\"');\n\n        if (quotindex !== -1) {\n          parts[i] = parts[i].slice(0, quotindex);\n          parts.length = i + 1;\n        }\n\n        parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n      }\n\n      value = parts.join('\"');\n    }\n\n    return value;\n  }\n\n  function rfc5987decode(extvalue) {\n    const encodingend = extvalue.indexOf(\"'\");\n\n    if (encodingend === -1) {\n      return extvalue;\n    }\n\n    const encoding = extvalue.slice(0, encodingend);\n    const langvalue = extvalue.slice(encodingend + 1);\n    const value = langvalue.replace(/^[^']*'/, \"\");\n    return textdecode(encoding, value);\n  }\n\n  function rfc2047decode(value) {\n    if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n      return value;\n    }\n\n    return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n      if (encoding === \"q\" || encoding === \"Q\") {\n        text = text.replace(/_/g, \" \");\n        text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n          return String.fromCharCode(parseInt(hex, 16));\n        });\n        return textdecode(charset, text);\n      }\n\n      try {\n        text = atob(text);\n      } catch (e) {}\n\n      return textdecode(charset, text);\n    });\n  }\n\n  return \"\";\n}\n\n/***/ }),\n/* 160 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PDFNetworkStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(158);\n\n;\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n  const data = xhr.response;\n\n  if (typeof data !== \"string\") {\n    return data;\n  }\n\n  const array = (0, _util.stringToBytes)(data);\n  return array.buffer;\n}\n\nclass NetworkManager {\n  constructor(url) {\n    let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    this.url = url;\n    this.isHttp = /^https?:/i.test(url);\n    this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null);\n    this.withCredentials = args.withCredentials || false;\n\n    this.getXhr = args.getXhr || function NetworkManager_getXhr() {\n      return new XMLHttpRequest();\n    };\n\n    this.currXhrId = 0;\n    this.pendingRequests = Object.create(null);\n  }\n\n  requestRange(begin, end, listeners) {\n    const args = {\n      begin,\n      end\n    };\n\n    for (const prop in listeners) {\n      args[prop] = listeners[prop];\n    }\n\n    return this.request(args);\n  }\n\n  requestFull(listeners) {\n    return this.request(listeners);\n  }\n\n  request(args) {\n    const xhr = this.getXhr();\n    const xhrId = this.currXhrId++;\n    const pendingRequest = this.pendingRequests[xhrId] = {\n      xhr\n    };\n    xhr.open(\"GET\", this.url);\n    xhr.withCredentials = this.withCredentials;\n\n    for (const property in this.httpHeaders) {\n      const value = this.httpHeaders[property];\n\n      if (typeof value === \"undefined\") {\n        continue;\n      }\n\n      xhr.setRequestHeader(property, value);\n    }\n\n    if (this.isHttp && \"begin\" in args && \"end\" in args) {\n      xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n      pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n    } else {\n      pendingRequest.expectedStatus = OK_RESPONSE;\n    }\n\n    xhr.responseType = \"arraybuffer\";\n\n    if (args.onError) {\n      xhr.onerror = function (evt) {\n        args.onError(xhr.status);\n      };\n    }\n\n    xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n    xhr.onprogress = this.onProgress.bind(this, xhrId);\n    pendingRequest.onHeadersReceived = args.onHeadersReceived;\n    pendingRequest.onDone = args.onDone;\n    pendingRequest.onError = args.onError;\n    pendingRequest.onProgress = args.onProgress;\n    xhr.send(null);\n    return xhrId;\n  }\n\n  onProgress(xhrId, evt) {\n    var _pendingRequest$onPro;\n\n    const pendingRequest = this.pendingRequests[xhrId];\n\n    if (!pendingRequest) {\n      return;\n    }\n\n    (_pendingRequest$onPro = pendingRequest.onProgress) === null || _pendingRequest$onPro === void 0 ? void 0 : _pendingRequest$onPro.call(pendingRequest, evt);\n  }\n\n  onStateChange(xhrId, evt) {\n    const pendingRequest = this.pendingRequests[xhrId];\n\n    if (!pendingRequest) {\n      return;\n    }\n\n    const xhr = pendingRequest.xhr;\n\n    if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n      pendingRequest.onHeadersReceived();\n      delete pendingRequest.onHeadersReceived;\n    }\n\n    if (xhr.readyState !== 4) {\n      return;\n    }\n\n    if (!(xhrId in this.pendingRequests)) {\n      return;\n    }\n\n    delete this.pendingRequests[xhrId];\n\n    if (xhr.status === 0 && this.isHttp) {\n      var _pendingRequest$onErr;\n\n      (_pendingRequest$onErr = pendingRequest.onError) === null || _pendingRequest$onErr === void 0 ? void 0 : _pendingRequest$onErr.call(pendingRequest, xhr.status);\n      return;\n    }\n\n    const xhrStatus = xhr.status || OK_RESPONSE;\n    const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n    if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n      var _pendingRequest$onErr2;\n\n      (_pendingRequest$onErr2 = pendingRequest.onError) === null || _pendingRequest$onErr2 === void 0 ? void 0 : _pendingRequest$onErr2.call(pendingRequest, xhr.status);\n      return;\n    }\n\n    const chunk = getArrayBuffer(xhr);\n\n    if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n      const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n      const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n      pendingRequest.onDone({\n        begin: parseInt(matches[1], 10),\n        chunk\n      });\n    } else if (chunk) {\n      pendingRequest.onDone({\n        begin: 0,\n        chunk\n      });\n    } else {\n      var _pendingRequest$onErr3;\n\n      (_pendingRequest$onErr3 = pendingRequest.onError) === null || _pendingRequest$onErr3 === void 0 ? void 0 : _pendingRequest$onErr3.call(pendingRequest, xhr.status);\n    }\n  }\n\n  getRequestXhr(xhrId) {\n    return this.pendingRequests[xhrId].xhr;\n  }\n\n  isPendingRequest(xhrId) {\n    return xhrId in this.pendingRequests;\n  }\n\n  abortRequest(xhrId) {\n    const xhr = this.pendingRequests[xhrId].xhr;\n    delete this.pendingRequests[xhrId];\n    xhr.abort();\n  }\n\n}\n\nclass PDFNetworkStream {\n  constructor(source) {\n    this._source = source;\n    this._manager = new NetworkManager(source.url, {\n      httpHeaders: source.httpHeaders,\n      withCredentials: source.withCredentials\n    });\n    this._rangeChunkSize = source.rangeChunkSize;\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  _onRangeRequestReaderClosed(reader) {\n    const i = this._rangeRequestReaders.indexOf(reader);\n\n    if (i >= 0) {\n      this._rangeRequestReaders.splice(i, 1);\n    }\n  }\n\n  getFullReader() {\n    (0, _util.assert)(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n    this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(begin, end) {\n    const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n    reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n\n    this._rangeRequestReaders.push(reader);\n\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    var _this$_fullRequestRea;\n\n    (_this$_fullRequestRea = this._fullRequestReader) === null || _this$_fullRequestRea === void 0 ? void 0 : _this$_fullRequestRea.cancel(reason);\n\n    for (const reader of this._rangeRequestReaders.slice(0)) {\n      reader.cancel(reason);\n    }\n  }\n\n}\n\nexports.PDFNetworkStream = PDFNetworkStream;\n\nclass PDFNetworkStreamFullRequestReader {\n  constructor(manager, source) {\n    this._manager = manager;\n    const args = {\n      onHeadersReceived: this._onHeadersReceived.bind(this),\n      onDone: this._onDone.bind(this),\n      onError: this._onError.bind(this),\n      onProgress: this._onProgress.bind(this)\n    };\n    this._url = source.url;\n    this._fullRequestId = manager.requestFull(args);\n    this._headersReceivedCapability = (0, _util.createPromiseCapability)();\n    this._disableRange = source.disableRange || false;\n    this._contentLength = source.length;\n    this._rangeChunkSize = source.rangeChunkSize;\n\n    if (!this._rangeChunkSize && !this._disableRange) {\n      this._disableRange = true;\n    }\n\n    this._isStreamingSupported = false;\n    this._isRangeSupported = false;\n    this._cachedChunks = [];\n    this._requests = [];\n    this._done = false;\n    this._storedError = undefined;\n    this._filename = null;\n    this.onProgress = null;\n  }\n\n  _onHeadersReceived() {\n    const fullRequestXhrId = this._fullRequestId;\n\n    const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n    const getResponseHeader = name => {\n      return fullRequestXhr.getResponseHeader(name);\n    };\n\n    const {\n      allowRangeRequests,\n      suggestedLength\n    } = (0, _network_utils.validateRangeRequestCapabilities)({\n      getResponseHeader,\n      isHttp: this._manager.isHttp,\n      rangeChunkSize: this._rangeChunkSize,\n      disableRange: this._disableRange\n    });\n\n    if (allowRangeRequests) {\n      this._isRangeSupported = true;\n    }\n\n    this._contentLength = suggestedLength || this._contentLength;\n    this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n    if (this._isRangeSupported) {\n      this._manager.abortRequest(fullRequestXhrId);\n    }\n\n    this._headersReceivedCapability.resolve();\n  }\n\n  _onDone(data) {\n    if (data) {\n      if (this._requests.length > 0) {\n        const requestCapability = this._requests.shift();\n\n        requestCapability.resolve({\n          value: data.chunk,\n          done: false\n        });\n      } else {\n        this._cachedChunks.push(data.chunk);\n      }\n    }\n\n    this._done = true;\n\n    if (this._cachedChunks.length > 0) {\n      return;\n    }\n\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({\n        value: undefined,\n        done: true\n      });\n    }\n\n    this._requests.length = 0;\n  }\n\n  _onError(status) {\n    this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n\n    this._headersReceivedCapability.reject(this._storedError);\n\n    for (const requestCapability of this._requests) {\n      requestCapability.reject(this._storedError);\n    }\n\n    this._requests.length = 0;\n    this._cachedChunks.length = 0;\n  }\n\n  _onProgress(evt) {\n    var _this$onProgress;\n\n    (_this$onProgress = this.onProgress) === null || _this$onProgress === void 0 ? void 0 : _this$onProgress.call(this, {\n      loaded: evt.loaded,\n      total: evt.lengthComputable ? evt.total : this._contentLength\n    });\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get headersReady() {\n    return this._headersReceivedCapability.promise;\n  }\n\n  async read() {\n    if (this._storedError) {\n      throw this._storedError;\n    }\n\n    if (this._cachedChunks.length > 0) {\n      const chunk = this._cachedChunks.shift();\n\n      return {\n        value: chunk,\n        done: false\n      };\n    }\n\n    if (this._done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n\n    const requestCapability = (0, _util.createPromiseCapability)();\n\n    this._requests.push(requestCapability);\n\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n\n    this._headersReceivedCapability.reject(reason);\n\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({\n        value: undefined,\n        done: true\n      });\n    }\n\n    this._requests.length = 0;\n\n    if (this._manager.isPendingRequest(this._fullRequestId)) {\n      this._manager.abortRequest(this._fullRequestId);\n    }\n\n    this._fullRequestReader = null;\n  }\n\n}\n\nclass PDFNetworkStreamRangeRequestReader {\n  constructor(manager, begin, end) {\n    this._manager = manager;\n    const args = {\n      onDone: this._onDone.bind(this),\n      onError: this._onError.bind(this),\n      onProgress: this._onProgress.bind(this)\n    };\n    this._url = manager.url;\n    this._requestId = manager.requestRange(begin, end, args);\n    this._requests = [];\n    this._queuedChunk = null;\n    this._done = false;\n    this._storedError = undefined;\n    this.onProgress = null;\n    this.onClosed = null;\n  }\n\n  _close() {\n    var _this$onClosed;\n\n    (_this$onClosed = this.onClosed) === null || _this$onClosed === void 0 ? void 0 : _this$onClosed.call(this, this);\n  }\n\n  _onDone(data) {\n    const chunk = data.chunk;\n\n    if (this._requests.length > 0) {\n      const requestCapability = this._requests.shift();\n\n      requestCapability.resolve({\n        value: chunk,\n        done: false\n      });\n    } else {\n      this._queuedChunk = chunk;\n    }\n\n    this._done = true;\n\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({\n        value: undefined,\n        done: true\n      });\n    }\n\n    this._requests.length = 0;\n\n    this._close();\n  }\n\n  _onError(status) {\n    this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n\n    for (const requestCapability of this._requests) {\n      requestCapability.reject(this._storedError);\n    }\n\n    this._requests.length = 0;\n    this._queuedChunk = null;\n  }\n\n  _onProgress(evt) {\n    if (!this.isStreamingSupported) {\n      var _this$onProgress2;\n\n      (_this$onProgress2 = this.onProgress) === null || _this$onProgress2 === void 0 ? void 0 : _this$onProgress2.call(this, {\n        loaded: evt.loaded\n      });\n    }\n  }\n\n  get isStreamingSupported() {\n    return false;\n  }\n\n  async read() {\n    if (this._storedError) {\n      throw this._storedError;\n    }\n\n    if (this._queuedChunk !== null) {\n      const chunk = this._queuedChunk;\n      this._queuedChunk = null;\n      return {\n        value: chunk,\n        done: false\n      };\n    }\n\n    if (this._done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n\n    const requestCapability = (0, _util.createPromiseCapability)();\n\n    this._requests.push(requestCapability);\n\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({\n        value: undefined,\n        done: true\n      });\n    }\n\n    this._requests.length = 0;\n\n    if (this._manager.isPendingRequest(this._requestId)) {\n      this._manager.abortRequest(this._requestId);\n    }\n\n    this._close();\n  }\n\n}\n\n/***/ }),\n/* 161 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PDFFetchStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(158);\n\n;\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n  return {\n    method: \"GET\",\n    headers,\n    signal: abortController.signal,\n    mode: \"cors\",\n    credentials: withCredentials ? \"include\" : \"same-origin\",\n    redirect: \"follow\"\n  };\n}\n\nfunction createHeaders(httpHeaders) {\n  const headers = new Headers();\n\n  for (const property in httpHeaders) {\n    const value = httpHeaders[property];\n\n    if (typeof value === \"undefined\") {\n      continue;\n    }\n\n    headers.append(property, value);\n  }\n\n  return headers;\n}\n\nclass PDFFetchStream {\n  constructor(source) {\n    this.source = source;\n    this.isHttp = /^https?:/i.test(source.url);\n    this.httpHeaders = this.isHttp && source.httpHeaders || {};\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  get _progressiveDataLength() {\n    var _this$_fullRequestRea, _this$_fullRequestRea2;\n\n    return (_this$_fullRequestRea = (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2._loaded) !== null && _this$_fullRequestRea !== void 0 ? _this$_fullRequestRea : 0;\n  }\n\n  getFullReader() {\n    (0, _util.assert)(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\n    this._fullRequestReader = new PDFFetchStreamReader(this);\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(begin, end) {\n    if (end <= this._progressiveDataLength) {\n      return null;\n    }\n\n    const reader = new PDFFetchStreamRangeReader(this, begin, end);\n\n    this._rangeRequestReaders.push(reader);\n\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.cancel(reason);\n    }\n\n    for (const reader of this._rangeRequestReaders.slice(0)) {\n      reader.cancel(reason);\n    }\n  }\n\n}\n\nexports.PDFFetchStream = PDFFetchStream;\n\nclass PDFFetchStreamReader {\n  constructor(stream) {\n    this._stream = stream;\n    this._reader = null;\n    this._loaded = 0;\n    this._filename = null;\n    const source = stream.source;\n    this._withCredentials = source.withCredentials || false;\n    this._contentLength = source.length;\n    this._headersCapability = (0, _util.createPromiseCapability)();\n    this._disableRange = source.disableRange || false;\n    this._rangeChunkSize = source.rangeChunkSize;\n\n    if (!this._rangeChunkSize && !this._disableRange) {\n      this._disableRange = true;\n    }\n\n    this._abortController = new AbortController();\n    this._isStreamingSupported = !source.disableStream;\n    this._isRangeSupported = !source.disableRange;\n    this._headers = createHeaders(this._stream.httpHeaders);\n    const url = source.url;\n    fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n      if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n        throw (0, _network_utils.createResponseStatusError)(response.status, url);\n      }\n\n      this._reader = response.body.getReader();\n\n      this._headersCapability.resolve();\n\n      const getResponseHeader = name => {\n        return response.headers.get(name);\n      };\n\n      const {\n        allowRangeRequests,\n        suggestedLength\n      } = (0, _network_utils.validateRangeRequestCapabilities)({\n        getResponseHeader,\n        isHttp: this._stream.isHttp,\n        rangeChunkSize: this._rangeChunkSize,\n        disableRange: this._disableRange\n      });\n      this._isRangeSupported = allowRangeRequests;\n      this._contentLength = suggestedLength || this._contentLength;\n      this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n      if (!this._isStreamingSupported && this._isRangeSupported) {\n        this.cancel(new _util.AbortException(\"Streaming is disabled.\"));\n      }\n    }).catch(this._headersCapability.reject);\n    this.onProgress = null;\n  }\n\n  get headersReady() {\n    return this._headersCapability.promise;\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._headersCapability.promise;\n    const {\n      value,\n      done\n    } = await this._reader.read();\n\n    if (done) {\n      return {\n        value,\n        done\n      };\n    }\n\n    this._loaded += value.byteLength;\n\n    if (this.onProgress) {\n      this.onProgress({\n        loaded: this._loaded,\n        total: this._contentLength\n      });\n    }\n\n    const buffer = new Uint8Array(value).buffer;\n    return {\n      value: buffer,\n      done: false\n    };\n  }\n\n  cancel(reason) {\n    if (this._reader) {\n      this._reader.cancel(reason);\n    }\n\n    this._abortController.abort();\n  }\n\n}\n\nclass PDFFetchStreamRangeReader {\n  constructor(stream, begin, end) {\n    this._stream = stream;\n    this._reader = null;\n    this._loaded = 0;\n    const source = stream.source;\n    this._withCredentials = source.withCredentials || false;\n    this._readCapability = (0, _util.createPromiseCapability)();\n    this._isStreamingSupported = !source.disableStream;\n    this._abortController = new AbortController();\n    this._headers = createHeaders(this._stream.httpHeaders);\n\n    this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n\n    const url = source.url;\n    fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n      if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n        throw (0, _network_utils.createResponseStatusError)(response.status, url);\n      }\n\n      this._readCapability.resolve();\n\n      this._reader = response.body.getReader();\n    }).catch(this._readCapability.reject);\n    this.onProgress = null;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._readCapability.promise;\n    const {\n      value,\n      done\n    } = await this._reader.read();\n\n    if (done) {\n      return {\n        value,\n        done\n      };\n    }\n\n    this._loaded += value.byteLength;\n\n    if (this.onProgress) {\n      this.onProgress({\n        loaded: this._loaded\n      });\n    }\n\n    const buffer = new Uint8Array(value).buffer;\n    return {\n      value: buffer,\n      done: false\n    };\n  }\n\n  cancel(reason) {\n    if (this._reader) {\n      this._reader.cancel(reason);\n    }\n\n    this._abortController.abort();\n  }\n\n}\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n(() => {\n\"use strict\";\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nObject.defineProperty(exports, \"AnnotationEditorLayer\", ({\n  enumerable: true,\n  get: function () {\n    return _annotation_editor_layer.AnnotationEditorLayer;\n  }\n}));\nObject.defineProperty(exports, \"AnnotationEditorParamsType\", ({\n  enumerable: true,\n  get: function () {\n    return _util.AnnotationEditorParamsType;\n  }\n}));\nObject.defineProperty(exports, \"AnnotationEditorType\", ({\n  enumerable: true,\n  get: function () {\n    return _util.AnnotationEditorType;\n  }\n}));\nObject.defineProperty(exports, \"AnnotationEditorUIManager\", ({\n  enumerable: true,\n  get: function () {\n    return _tools.AnnotationEditorUIManager;\n  }\n}));\nObject.defineProperty(exports, \"AnnotationLayer\", ({\n  enumerable: true,\n  get: function () {\n    return _annotation_layer.AnnotationLayer;\n  }\n}));\nObject.defineProperty(exports, \"AnnotationMode\", ({\n  enumerable: true,\n  get: function () {\n    return _util.AnnotationMode;\n  }\n}));\nObject.defineProperty(exports, \"CMapCompressionType\", ({\n  enumerable: true,\n  get: function () {\n    return _util.CMapCompressionType;\n  }\n}));\nObject.defineProperty(exports, \"GlobalWorkerOptions\", ({\n  enumerable: true,\n  get: function () {\n    return _worker_options.GlobalWorkerOptions;\n  }\n}));\nObject.defineProperty(exports, \"InvalidPDFException\", ({\n  enumerable: true,\n  get: function () {\n    return _util.InvalidPDFException;\n  }\n}));\nObject.defineProperty(exports, \"LoopbackPort\", ({\n  enumerable: true,\n  get: function () {\n    return _api.LoopbackPort;\n  }\n}));\nObject.defineProperty(exports, \"MissingPDFException\", ({\n  enumerable: true,\n  get: function () {\n    return _util.MissingPDFException;\n  }\n}));\nObject.defineProperty(exports, \"OPS\", ({\n  enumerable: true,\n  get: function () {\n    return _util.OPS;\n  }\n}));\nObject.defineProperty(exports, \"PDFDataRangeTransport\", ({\n  enumerable: true,\n  get: function () {\n    return _api.PDFDataRangeTransport;\n  }\n}));\nObject.defineProperty(exports, \"PDFDateString\", ({\n  enumerable: true,\n  get: function () {\n    return _display_utils.PDFDateString;\n  }\n}));\nObject.defineProperty(exports, \"PDFWorker\", ({\n  enumerable: true,\n  get: function () {\n    return _api.PDFWorker;\n  }\n}));\nObject.defineProperty(exports, \"PasswordResponses\", ({\n  enumerable: true,\n  get: function () {\n    return _util.PasswordResponses;\n  }\n}));\nObject.defineProperty(exports, \"PermissionFlag\", ({\n  enumerable: true,\n  get: function () {\n    return _util.PermissionFlag;\n  }\n}));\nObject.defineProperty(exports, \"PixelsPerInch\", ({\n  enumerable: true,\n  get: function () {\n    return _display_utils.PixelsPerInch;\n  }\n}));\nObject.defineProperty(exports, \"RenderingCancelledException\", ({\n  enumerable: true,\n  get: function () {\n    return _display_utils.RenderingCancelledException;\n  }\n}));\nObject.defineProperty(exports, \"SVGGraphics\", ({\n  enumerable: true,\n  get: function () {\n    return _svg.SVGGraphics;\n  }\n}));\nObject.defineProperty(exports, \"UNSUPPORTED_FEATURES\", ({\n  enumerable: true,\n  get: function () {\n    return _util.UNSUPPORTED_FEATURES;\n  }\n}));\nObject.defineProperty(exports, \"UnexpectedResponseException\", ({\n  enumerable: true,\n  get: function () {\n    return _util.UnexpectedResponseException;\n  }\n}));\nObject.defineProperty(exports, \"Util\", ({\n  enumerable: true,\n  get: function () {\n    return _util.Util;\n  }\n}));\nObject.defineProperty(exports, \"VerbosityLevel\", ({\n  enumerable: true,\n  get: function () {\n    return _util.VerbosityLevel;\n  }\n}));\nObject.defineProperty(exports, \"XfaLayer\", ({\n  enumerable: true,\n  get: function () {\n    return _xfa_layer.XfaLayer;\n  }\n}));\nObject.defineProperty(exports, \"build\", ({\n  enumerable: true,\n  get: function () {\n    return _api.build;\n  }\n}));\nObject.defineProperty(exports, \"createPromiseCapability\", ({\n  enumerable: true,\n  get: function () {\n    return _util.createPromiseCapability;\n  }\n}));\nObject.defineProperty(exports, \"createValidAbsoluteUrl\", ({\n  enumerable: true,\n  get: function () {\n    return _util.createValidAbsoluteUrl;\n  }\n}));\nObject.defineProperty(exports, \"getDocument\", ({\n  enumerable: true,\n  get: function () {\n    return _api.getDocument;\n  }\n}));\nObject.defineProperty(exports, \"getFilenameFromUrl\", ({\n  enumerable: true,\n  get: function () {\n    return _display_utils.getFilenameFromUrl;\n  }\n}));\nObject.defineProperty(exports, \"getPdfFilenameFromUrl\", ({\n  enumerable: true,\n  get: function () {\n    return _display_utils.getPdfFilenameFromUrl;\n  }\n}));\nObject.defineProperty(exports, \"getXfaPageViewport\", ({\n  enumerable: true,\n  get: function () {\n    return _display_utils.getXfaPageViewport;\n  }\n}));\nObject.defineProperty(exports, \"isPdfFile\", ({\n  enumerable: true,\n  get: function () {\n    return _display_utils.isPdfFile;\n  }\n}));\nObject.defineProperty(exports, \"loadScript\", ({\n  enumerable: true,\n  get: function () {\n    return _display_utils.loadScript;\n  }\n}));\nObject.defineProperty(exports, \"renderTextLayer\", ({\n  enumerable: true,\n  get: function () {\n    return _text_layer.renderTextLayer;\n  }\n}));\nObject.defineProperty(exports, \"shadow\", ({\n  enumerable: true,\n  get: function () {\n    return _util.shadow;\n  }\n}));\nObject.defineProperty(exports, \"version\", ({\n  enumerable: true,\n  get: function () {\n    return _api.version;\n  }\n}));\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _api = __w_pdfjs_require__(129);\n\nvar _display_utils = __w_pdfjs_require__(133);\n\nvar _annotation_editor_layer = __w_pdfjs_require__(147);\n\nvar _tools = __w_pdfjs_require__(132);\n\nvar _annotation_layer = __w_pdfjs_require__(152);\n\nvar _worker_options = __w_pdfjs_require__(140);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nvar _text_layer = __w_pdfjs_require__(155);\n\nvar _svg = __w_pdfjs_require__(156);\n\nvar _xfa_layer = __w_pdfjs_require__(154);\n\nconst pdfjsVersion = '2.16.105';\nconst pdfjsBuild = '172ccdbe5';\n{\n  if (_is_node.isNodeJS) {\n    const {\n      PDFNodeStream\n    } = __w_pdfjs_require__(157);\n\n    (0, _api.setPDFNetworkStreamFactory)(params => {\n      return new PDFNodeStream(params);\n    });\n  } else {\n    const {\n      PDFNetworkStream\n    } = __w_pdfjs_require__(160);\n\n    const {\n      PDFFetchStream\n    } = __w_pdfjs_require__(161);\n\n    (0, _api.setPDFNetworkStreamFactory)(params => {\n      if ((0, _display_utils.isValidFetchUrl)(params.url)) {\n        return new PDFFetchStream(params);\n      }\n\n      return new PDFNetworkStream(params);\n    });\n  }\n}\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=pdf.js.map\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer, __webpack_require__(/*! ./../../../node-libs-browser/mock/process.js */ \"./node_modules/node-libs-browser/mock/process.js\"), __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/pdfjs-dist/legacy/build/pdf.js?");

/***/ }),

/***/ "./node_modules/pdfjs-dist/legacy/build/pdf.worker.entry.js":
/*!******************************************************************!*\
  !*** ./node_modules/pdfjs-dist/legacy/build/pdf.worker.entry.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(typeof window !== \"undefined\"\n  ? window\n  : {}\n).pdfjsWorker = __webpack_require__(/*! ./pdf.worker.js */ \"./node_modules/pdfjs-dist/legacy/build/pdf.worker.js\");\n\n\n//# sourceURL=webpack:///./node_modules/pdfjs-dist/legacy/build/pdf.worker.entry.js?");

/***/ }),

/***/ "./node_modules/pdfjs-dist/legacy/build/pdf.worker.js":
/*!************************************************************!*\
  !*** ./node_modules/pdfjs-dist/legacy/build/pdf.worker.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(Buffer, process, global) {/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(globalThis, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.WorkerTask = exports.WorkerMessageHandler = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _pdf_manager = __w_pdfjs_require__(133);\n\nvar _cleanup_helper = __w_pdfjs_require__(196);\n\nvar _writer = __w_pdfjs_require__(190);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _message_handler = __w_pdfjs_require__(227);\n\nvar _worker_stream = __w_pdfjs_require__(228);\n\nclass WorkerTask {\n  constructor(name) {\n    this.name = name;\n    this.terminated = false;\n    this._capability = (0, _util.createPromiseCapability)();\n  }\n\n  get finished() {\n    return this._capability.promise;\n  }\n\n  finish() {\n    this._capability.resolve();\n  }\n\n  terminate() {\n    this.terminated = true;\n  }\n\n  ensureNotTerminated() {\n    if (this.terminated) {\n      throw new Error(\"Worker task was terminated\");\n    }\n  }\n\n}\n\nexports.WorkerTask = WorkerTask;\n\nclass WorkerMessageHandler {\n  static setup(handler, port) {\n    let testMessageProcessed = false;\n    handler.on(\"test\", function wphSetupTest(data) {\n      if (testMessageProcessed) {\n        return;\n      }\n\n      testMessageProcessed = true;\n      handler.send(\"test\", data instanceof Uint8Array);\n    });\n    handler.on(\"configure\", function wphConfigure(data) {\n      (0, _util.setVerbosityLevel)(data.verbosity);\n    });\n    handler.on(\"GetDocRequest\", function wphSetupDoc(data) {\n      return WorkerMessageHandler.createDocumentHandler(data, port);\n    });\n  }\n\n  static createDocumentHandler(docParams, port) {\n    let pdfManager;\n    let terminated = false;\n    let cancelXHRs = null;\n    const WorkerTasks = [];\n    const verbosity = (0, _util.getVerbosityLevel)();\n    const apiVersion = docParams.apiVersion;\n    const workerVersion = '2.16.105';\n\n    if (apiVersion !== workerVersion) {\n      throw new Error(`The API version \"${apiVersion}\" does not match ` + `the Worker version \"${workerVersion}\".`);\n    }\n\n    const enumerableProperties = [];\n\n    for (const property in []) {\n      enumerableProperties.push(property);\n    }\n\n    if (enumerableProperties.length) {\n      throw new Error(\"The `Array.prototype` contains unexpected enumerable properties: \" + enumerableProperties.join(\", \") + \"; thus breaking e.g. `for...in` iteration of `Array`s.\");\n    }\n\n    if (typeof ReadableStream === \"undefined\") {\n      const partialMsg = \"The browser/environment lacks native support for critical \" + \"functionality used by the PDF.js library (e.g. `ReadableStream`); \";\n\n      if (_is_node.isNodeJS) {\n        throw new Error(partialMsg + \"please use a `legacy`-build instead.\");\n      }\n\n      throw new Error(partialMsg + \"please update to a supported browser.\");\n    }\n\n    const docId = docParams.docId;\n    const docBaseUrl = docParams.docBaseUrl;\n    const workerHandlerName = docParams.docId + \"_worker\";\n    let handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);\n\n    function ensureNotTerminated() {\n      if (terminated) {\n        throw new Error(\"Worker was terminated\");\n      }\n    }\n\n    function startWorkerTask(task) {\n      WorkerTasks.push(task);\n    }\n\n    function finishWorkerTask(task) {\n      task.finish();\n      const i = WorkerTasks.indexOf(task);\n      WorkerTasks.splice(i, 1);\n    }\n\n    async function loadDocument(recoveryMode) {\n      await pdfManager.ensureDoc(\"checkHeader\");\n      await pdfManager.ensureDoc(\"parseStartXRef\");\n      await pdfManager.ensureDoc(\"parse\", [recoveryMode]);\n      await pdfManager.ensureDoc(\"checkFirstPage\", [recoveryMode]);\n      await pdfManager.ensureDoc(\"checkLastPage\", [recoveryMode]);\n      const isPureXfa = await pdfManager.ensureDoc(\"isPureXfa\");\n\n      if (isPureXfa) {\n        const task = new WorkerTask(\"loadXfaFonts\");\n        startWorkerTask(task);\n        await Promise.all([pdfManager.loadXfaFonts(handler, task).catch(reason => {}).then(() => finishWorkerTask(task)), pdfManager.loadXfaImages()]);\n      }\n\n      const [numPages, fingerprints] = await Promise.all([pdfManager.ensureDoc(\"numPages\"), pdfManager.ensureDoc(\"fingerprints\")]);\n      const htmlForXfa = isPureXfa ? await pdfManager.ensureDoc(\"htmlForXfa\") : null;\n      return {\n        numPages,\n        fingerprints,\n        htmlForXfa\n      };\n    }\n\n    function getPdfManager(data, evaluatorOptions, enableXfa) {\n      const pdfManagerCapability = (0, _util.createPromiseCapability)();\n      let newPdfManager;\n      const source = data.source;\n\n      if (source.data) {\n        try {\n          newPdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, handler, evaluatorOptions, enableXfa, docBaseUrl);\n          pdfManagerCapability.resolve(newPdfManager);\n        } catch (ex) {\n          pdfManagerCapability.reject(ex);\n        }\n\n        return pdfManagerCapability.promise;\n      }\n\n      let pdfStream,\n          cachedChunks = [];\n\n      try {\n        pdfStream = new _worker_stream.PDFWorkerStream(handler);\n      } catch (ex) {\n        pdfManagerCapability.reject(ex);\n        return pdfManagerCapability.promise;\n      }\n\n      const fullRequest = pdfStream.getFullReader();\n      fullRequest.headersReady.then(function () {\n        if (!fullRequest.isRangeSupported) {\n          return;\n        }\n\n        const disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;\n        newPdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {\n          msgHandler: handler,\n          password: source.password,\n          length: fullRequest.contentLength,\n          disableAutoFetch,\n          rangeChunkSize: source.rangeChunkSize\n        }, evaluatorOptions, enableXfa, docBaseUrl);\n\n        for (const chunk of cachedChunks) {\n          newPdfManager.sendProgressiveData(chunk);\n        }\n\n        cachedChunks = [];\n        pdfManagerCapability.resolve(newPdfManager);\n        cancelXHRs = null;\n      }).catch(function (reason) {\n        pdfManagerCapability.reject(reason);\n        cancelXHRs = null;\n      });\n      let loaded = 0;\n\n      const flushChunks = function () {\n        const pdfFile = (0, _util.arraysToBytes)(cachedChunks);\n\n        if (source.length && pdfFile.length !== source.length) {\n          (0, _util.warn)(\"reported HTTP length is different from actual\");\n        }\n\n        try {\n          newPdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, handler, evaluatorOptions, enableXfa, docBaseUrl);\n          pdfManagerCapability.resolve(newPdfManager);\n        } catch (ex) {\n          pdfManagerCapability.reject(ex);\n        }\n\n        cachedChunks = [];\n      };\n\n      const readPromise = new Promise(function (resolve, reject) {\n        const readChunk = function (_ref) {\n          let {\n            value,\n            done\n          } = _ref;\n\n          try {\n            ensureNotTerminated();\n\n            if (done) {\n              if (!newPdfManager) {\n                flushChunks();\n              }\n\n              cancelXHRs = null;\n              return;\n            }\n\n            loaded += (0, _util.arrayByteLength)(value);\n\n            if (!fullRequest.isStreamingSupported) {\n              handler.send(\"DocProgress\", {\n                loaded,\n                total: Math.max(loaded, fullRequest.contentLength || 0)\n              });\n            }\n\n            if (newPdfManager) {\n              newPdfManager.sendProgressiveData(value);\n            } else {\n              cachedChunks.push(value);\n            }\n\n            fullRequest.read().then(readChunk, reject);\n          } catch (e) {\n            reject(e);\n          }\n        };\n\n        fullRequest.read().then(readChunk, reject);\n      });\n      readPromise.catch(function (e) {\n        pdfManagerCapability.reject(e);\n        cancelXHRs = null;\n      });\n\n      cancelXHRs = function (reason) {\n        pdfStream.cancelAllRequests(reason);\n      };\n\n      return pdfManagerCapability.promise;\n    }\n\n    function setupDoc(data) {\n      function onSuccess(doc) {\n        ensureNotTerminated();\n        handler.send(\"GetDoc\", {\n          pdfInfo: doc\n        });\n      }\n\n      function onFailure(ex) {\n        ensureNotTerminated();\n\n        if (ex instanceof _util.PasswordException) {\n          const task = new WorkerTask(`PasswordException: response ${ex.code}`);\n          startWorkerTask(task);\n          handler.sendWithPromise(\"PasswordRequest\", ex).then(function (_ref2) {\n            let {\n              password\n            } = _ref2;\n            finishWorkerTask(task);\n            pdfManager.updatePassword(password);\n            pdfManagerReady();\n          }).catch(function () {\n            finishWorkerTask(task);\n            handler.send(\"DocException\", ex);\n          });\n        } else if (ex instanceof _util.InvalidPDFException || ex instanceof _util.MissingPDFException || ex instanceof _util.UnexpectedResponseException || ex instanceof _util.UnknownErrorException) {\n          handler.send(\"DocException\", ex);\n        } else {\n          handler.send(\"DocException\", new _util.UnknownErrorException(ex.message, ex.toString()));\n        }\n      }\n\n      function pdfManagerReady() {\n        ensureNotTerminated();\n        loadDocument(false).then(onSuccess, function (reason) {\n          ensureNotTerminated();\n\n          if (!(reason instanceof _core_utils.XRefParseException)) {\n            onFailure(reason);\n            return;\n          }\n\n          pdfManager.requestLoadedStream();\n          pdfManager.onLoadedStream().then(function () {\n            ensureNotTerminated();\n            loadDocument(true).then(onSuccess, onFailure);\n          });\n        });\n      }\n\n      ensureNotTerminated();\n      const evaluatorOptions = {\n        maxImageSize: data.maxImageSize,\n        disableFontFace: data.disableFontFace,\n        ignoreErrors: data.ignoreErrors,\n        isEvalSupported: data.isEvalSupported,\n        fontExtraProperties: data.fontExtraProperties,\n        useSystemFonts: data.useSystemFonts,\n        cMapUrl: data.cMapUrl,\n        standardFontDataUrl: data.standardFontDataUrl\n      };\n      getPdfManager(data, evaluatorOptions, data.enableXfa).then(function (newPdfManager) {\n        if (terminated) {\n          newPdfManager.terminate(new _util.AbortException(\"Worker was terminated.\"));\n          throw new Error(\"Worker was terminated\");\n        }\n\n        pdfManager = newPdfManager;\n        pdfManager.onLoadedStream().then(function (stream) {\n          handler.send(\"DataLoaded\", {\n            length: stream.bytes.byteLength\n          });\n        });\n      }).then(pdfManagerReady, onFailure);\n    }\n\n    handler.on(\"GetPage\", function wphSetupGetPage(data) {\n      return pdfManager.getPage(data.pageIndex).then(function (page) {\n        return Promise.all([pdfManager.ensure(page, \"rotate\"), pdfManager.ensure(page, \"ref\"), pdfManager.ensure(page, \"userUnit\"), pdfManager.ensure(page, \"view\")]).then(function (_ref3) {\n          let [rotate, ref, userUnit, view] = _ref3;\n          return {\n            rotate,\n            ref,\n            userUnit,\n            view\n          };\n        });\n      });\n    });\n    handler.on(\"GetPageIndex\", function wphSetupGetPageIndex(data) {\n      const pageRef = _primitives.Ref.get(data.num, data.gen);\n\n      return pdfManager.ensureCatalog(\"getPageIndex\", [pageRef]);\n    });\n    handler.on(\"GetDestinations\", function wphSetupGetDestinations(data) {\n      return pdfManager.ensureCatalog(\"destinations\");\n    });\n    handler.on(\"GetDestination\", function wphSetupGetDestination(data) {\n      return pdfManager.ensureCatalog(\"getDestination\", [data.id]);\n    });\n    handler.on(\"GetPageLabels\", function wphSetupGetPageLabels(data) {\n      return pdfManager.ensureCatalog(\"pageLabels\");\n    });\n    handler.on(\"GetPageLayout\", function wphSetupGetPageLayout(data) {\n      return pdfManager.ensureCatalog(\"pageLayout\");\n    });\n    handler.on(\"GetPageMode\", function wphSetupGetPageMode(data) {\n      return pdfManager.ensureCatalog(\"pageMode\");\n    });\n    handler.on(\"GetViewerPreferences\", function (data) {\n      return pdfManager.ensureCatalog(\"viewerPreferences\");\n    });\n    handler.on(\"GetOpenAction\", function (data) {\n      return pdfManager.ensureCatalog(\"openAction\");\n    });\n    handler.on(\"GetAttachments\", function wphSetupGetAttachments(data) {\n      return pdfManager.ensureCatalog(\"attachments\");\n    });\n    handler.on(\"GetJavaScript\", function wphSetupGetJavaScript(data) {\n      return pdfManager.ensureCatalog(\"javaScript\");\n    });\n    handler.on(\"GetDocJSActions\", function wphSetupGetDocJSActions(data) {\n      return pdfManager.ensureCatalog(\"jsActions\");\n    });\n    handler.on(\"GetPageJSActions\", function (_ref4) {\n      let {\n        pageIndex\n      } = _ref4;\n      return pdfManager.getPage(pageIndex).then(function (page) {\n        return pdfManager.ensure(page, \"jsActions\");\n      });\n    });\n    handler.on(\"GetOutline\", function wphSetupGetOutline(data) {\n      return pdfManager.ensureCatalog(\"documentOutline\");\n    });\n    handler.on(\"GetOptionalContentConfig\", function (data) {\n      return pdfManager.ensureCatalog(\"optionalContentConfig\");\n    });\n    handler.on(\"GetPermissions\", function (data) {\n      return pdfManager.ensureCatalog(\"permissions\");\n    });\n    handler.on(\"GetMetadata\", function wphSetupGetMetadata(data) {\n      return Promise.all([pdfManager.ensureDoc(\"documentInfo\"), pdfManager.ensureCatalog(\"metadata\")]);\n    });\n    handler.on(\"GetMarkInfo\", function wphSetupGetMarkInfo(data) {\n      return pdfManager.ensureCatalog(\"markInfo\");\n    });\n    handler.on(\"GetData\", function wphSetupGetData(data) {\n      pdfManager.requestLoadedStream();\n      return pdfManager.onLoadedStream().then(function (stream) {\n        return stream.bytes;\n      });\n    });\n    handler.on(\"GetAnnotations\", function (_ref5) {\n      let {\n        pageIndex,\n        intent\n      } = _ref5;\n      return pdfManager.getPage(pageIndex).then(function (page) {\n        const task = new WorkerTask(`GetAnnotations: page ${pageIndex}`);\n        startWorkerTask(task);\n        return page.getAnnotationsData(handler, task, intent).then(data => {\n          finishWorkerTask(task);\n          return data;\n        }, reason => {\n          finishWorkerTask(task);\n        });\n      });\n    });\n    handler.on(\"GetFieldObjects\", function (data) {\n      return pdfManager.ensureDoc(\"fieldObjects\");\n    });\n    handler.on(\"HasJSActions\", function (data) {\n      return pdfManager.ensureDoc(\"hasJSActions\");\n    });\n    handler.on(\"GetCalculationOrderIds\", function (data) {\n      return pdfManager.ensureDoc(\"calculationOrderIds\");\n    });\n    handler.on(\"SaveDocument\", function (_ref6) {\n      let {\n        isPureXfa,\n        numPages,\n        annotationStorage,\n        filename\n      } = _ref6;\n      pdfManager.requestLoadedStream();\n      const newAnnotationsByPage = !isPureXfa ? (0, _core_utils.getNewAnnotationsMap)(annotationStorage) : null;\n      const promises = [pdfManager.onLoadedStream(), pdfManager.ensureCatalog(\"acroForm\"), pdfManager.ensureCatalog(\"acroFormRef\"), pdfManager.ensureDoc(\"xref\"), pdfManager.ensureDoc(\"startXRef\")];\n\n      if (newAnnotationsByPage) {\n        for (const [pageIndex, annotations] of newAnnotationsByPage) {\n          promises.push(pdfManager.getPage(pageIndex).then(page => {\n            const task = new WorkerTask(`Save (editor): page ${pageIndex}`);\n            return page.saveNewAnnotations(handler, task, annotations).finally(function () {\n              finishWorkerTask(task);\n            });\n          }));\n        }\n      }\n\n      if (isPureXfa) {\n        promises.push(pdfManager.serializeXfaData(annotationStorage));\n      } else {\n        for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {\n          promises.push(pdfManager.getPage(pageIndex).then(function (page) {\n            const task = new WorkerTask(`Save: page ${pageIndex}`);\n            return page.save(handler, task, annotationStorage).finally(function () {\n              finishWorkerTask(task);\n            });\n          }));\n        }\n      }\n\n      return Promise.all(promises).then(function (_ref7) {\n        let [stream, acroForm, acroFormRef, xref, startXRef, ...refs] = _ref7;\n        let newRefs = [];\n        let xfaData = null;\n\n        if (isPureXfa) {\n          xfaData = refs[0];\n\n          if (!xfaData) {\n            return stream.bytes;\n          }\n        } else {\n          newRefs = refs.flat(2);\n\n          if (newRefs.length === 0) {\n            return stream.bytes;\n          }\n        }\n\n        const xfa = acroForm instanceof _primitives.Dict && acroForm.get(\"XFA\") || null;\n        let xfaDatasetsRef = null;\n        let hasXfaDatasetsEntry = false;\n\n        if (Array.isArray(xfa)) {\n          for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n            if (xfa[i] === \"datasets\") {\n              xfaDatasetsRef = xfa[i + 1];\n              acroFormRef = null;\n              hasXfaDatasetsEntry = true;\n            }\n          }\n\n          if (xfaDatasetsRef === null) {\n            xfaDatasetsRef = xref.getNewRef();\n          }\n        } else if (xfa) {\n          acroFormRef = null;\n          (0, _util.warn)(\"Unsupported XFA type.\");\n        }\n\n        let newXrefInfo = Object.create(null);\n\n        if (xref.trailer) {\n          const infoObj = Object.create(null);\n          const xrefInfo = xref.trailer.get(\"Info\") || null;\n\n          if (xrefInfo instanceof _primitives.Dict) {\n            xrefInfo.forEach((key, value) => {\n              if (typeof value === \"string\") {\n                infoObj[key] = (0, _util.stringToPDFString)(value);\n              }\n            });\n          }\n\n          newXrefInfo = {\n            rootRef: xref.trailer.getRaw(\"Root\") || null,\n            encryptRef: xref.trailer.getRaw(\"Encrypt\") || null,\n            newRef: xref.getNewRef(),\n            infoRef: xref.trailer.getRaw(\"Info\") || null,\n            info: infoObj,\n            fileIds: xref.trailer.get(\"ID\") || null,\n            startXRef,\n            filename\n          };\n        }\n\n        xref.resetNewRef();\n        return (0, _writer.incrementalUpdate)({\n          originalData: stream.bytes,\n          xrefInfo: newXrefInfo,\n          newRefs,\n          xref,\n          hasXfa: !!xfa,\n          xfaDatasetsRef,\n          hasXfaDatasetsEntry,\n          acroFormRef,\n          acroForm,\n          xfaData\n        });\n      });\n    });\n    handler.on(\"GetOperatorList\", function wphSetupRenderPage(data, sink) {\n      const pageIndex = data.pageIndex;\n      pdfManager.getPage(pageIndex).then(function (page) {\n        const task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);\n        startWorkerTask(task);\n        const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;\n        page.getOperatorList({\n          handler,\n          sink,\n          task,\n          intent: data.intent,\n          cacheKey: data.cacheKey,\n          annotationStorage: data.annotationStorage\n        }).then(function (operatorListInfo) {\n          finishWorkerTask(task);\n\n          if (start) {\n            (0, _util.info)(`page=${pageIndex + 1} - getOperatorList: time=` + `${Date.now() - start}ms, len=${operatorListInfo.length}`);\n          }\n\n          sink.close();\n        }, function (reason) {\n          finishWorkerTask(task);\n\n          if (task.terminated) {\n            return;\n          }\n\n          handler.send(\"UnsupportedFeature\", {\n            featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList\n          });\n          sink.error(reason);\n        });\n      });\n    });\n    handler.on(\"GetTextContent\", function wphExtractText(data, sink) {\n      const pageIndex = data.pageIndex;\n      pdfManager.getPage(pageIndex).then(function (page) {\n        const task = new WorkerTask(\"GetTextContent: page \" + pageIndex);\n        startWorkerTask(task);\n        const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;\n        page.extractTextContent({\n          handler,\n          task,\n          sink,\n          includeMarkedContent: data.includeMarkedContent,\n          combineTextItems: data.combineTextItems\n        }).then(function () {\n          finishWorkerTask(task);\n\n          if (start) {\n            (0, _util.info)(`page=${pageIndex + 1} - getTextContent: time=` + `${Date.now() - start}ms`);\n          }\n\n          sink.close();\n        }, function (reason) {\n          finishWorkerTask(task);\n\n          if (task.terminated) {\n            return;\n          }\n\n          sink.error(reason);\n        });\n      });\n    });\n    handler.on(\"GetStructTree\", function wphGetStructTree(data) {\n      return pdfManager.getPage(data.pageIndex).then(function (page) {\n        return pdfManager.ensure(page, \"getStructTree\");\n      });\n    });\n    handler.on(\"FontFallback\", function (data) {\n      return pdfManager.fontFallback(data.id, handler);\n    });\n    handler.on(\"Cleanup\", function wphCleanup(data) {\n      return pdfManager.cleanup(true);\n    });\n    handler.on(\"Terminate\", function wphTerminate(data) {\n      terminated = true;\n      const waitOn = [];\n\n      if (pdfManager) {\n        pdfManager.terminate(new _util.AbortException(\"Worker was terminated.\"));\n        const cleanupPromise = pdfManager.cleanup();\n        waitOn.push(cleanupPromise);\n        pdfManager = null;\n      } else {\n        (0, _cleanup_helper.clearGlobalCaches)();\n      }\n\n      if (cancelXHRs) {\n        cancelXHRs(new _util.AbortException(\"Worker was terminated.\"));\n      }\n\n      for (const task of WorkerTasks) {\n        waitOn.push(task.finished);\n        task.terminate();\n      }\n\n      return Promise.all(waitOn).then(function () {\n        handler.destroy();\n        handler = null;\n      });\n    });\n    handler.on(\"Ready\", function wphReady(data) {\n      setupDoc(docParams);\n      docParams = null;\n    });\n    return workerHandlerName;\n  }\n\n  static initializeFromPort(port) {\n    const handler = new _message_handler.MessageHandler(\"worker\", \"main\", port);\n    WorkerMessageHandler.setup(handler, port);\n    handler.send(\"ready\", null);\n  }\n\n}\n\nexports.WorkerMessageHandler = WorkerMessageHandler;\n\nfunction isMessagePort(maybePort) {\n  return typeof maybePort.postMessage === \"function\" && \"onmessage\" in maybePort;\n}\n\nif (typeof window === \"undefined\" && !_is_node.isNodeJS && typeof self !== \"undefined\" && isMessagePort(self)) {\n  WorkerMessageHandler.initializeFromPort(self);\n}\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.UNSUPPORTED_FEATURES = exports.TextRenderingMode = exports.StreamType = exports.RenderingIntentFlag = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.LINE_FACTOR = exports.LINE_DESCENT_FACTOR = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMode = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationEditorType = exports.AnnotationEditorPrefix = exports.AnnotationEditorParamsType = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0;\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.escapeString = escapeString;\nexports.getModificationDate = getModificationDate;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isAscii = isAscii;\nexports.objectFromMap = objectFromMap;\nexports.objectSize = objectSize;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF16BEString = stringToUTF16BEString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.unreachable = unreachable;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\n\n__w_pdfjs_require__(3);\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nconst LINE_FACTOR = 1.35;\nexports.LINE_FACTOR = LINE_FACTOR;\nconst LINE_DESCENT_FACTOR = 0.35;\nexports.LINE_DESCENT_FACTOR = LINE_DESCENT_FACTOR;\nconst RenderingIntentFlag = {\n  ANY: 0x01,\n  DISPLAY: 0x02,\n  PRINT: 0x04,\n  ANNOTATIONS_FORMS: 0x10,\n  ANNOTATIONS_STORAGE: 0x20,\n  ANNOTATIONS_DISABLE: 0x40,\n  OPLIST: 0x100\n};\nexports.RenderingIntentFlag = RenderingIntentFlag;\nconst AnnotationMode = {\n  DISABLE: 0,\n  ENABLE: 1,\n  ENABLE_FORMS: 2,\n  ENABLE_STORAGE: 3\n};\nexports.AnnotationMode = AnnotationMode;\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nexports.AnnotationEditorPrefix = AnnotationEditorPrefix;\nconst AnnotationEditorType = {\n  DISABLE: -1,\n  NONE: 0,\n  FREETEXT: 3,\n  INK: 15\n};\nexports.AnnotationEditorType = AnnotationEditorType;\nconst AnnotationEditorParamsType = {\n  FREETEXT_SIZE: 1,\n  FREETEXT_COLOR: 2,\n  FREETEXT_OPACITY: 3,\n  INK_COLOR: 11,\n  INK_THICKNESS: 12,\n  INK_OPACITY: 13\n};\nexports.AnnotationEditorParamsType = AnnotationEditorParamsType;\nconst PermissionFlag = {\n  PRINT: 0x04,\n  MODIFY_CONTENTS: 0x08,\n  COPY: 0x10,\n  MODIFY_ANNOTATIONS: 0x20,\n  FILL_INTERACTIVE_FORMS: 0x100,\n  COPY_FOR_ACCESSIBILITY: 0x200,\n  ASSEMBLE: 0x400,\n  PRINT_HIGH_QUALITY: 0x800\n};\nexports.PermissionFlag = PermissionFlag;\nconst TextRenderingMode = {\n  FILL: 0,\n  STROKE: 1,\n  FILL_STROKE: 2,\n  INVISIBLE: 3,\n  FILL_ADD_TO_PATH: 4,\n  STROKE_ADD_TO_PATH: 5,\n  FILL_STROKE_ADD_TO_PATH: 6,\n  ADD_TO_PATH: 7,\n  FILL_STROKE_MASK: 3,\n  ADD_TO_PATH_FLAG: 4\n};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n  GRAYSCALE_1BPP: 1,\n  RGB_24BPP: 2,\n  RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\nconst AnnotationType = {\n  TEXT: 1,\n  LINK: 2,\n  FREETEXT: 3,\n  LINE: 4,\n  SQUARE: 5,\n  CIRCLE: 6,\n  POLYGON: 7,\n  POLYLINE: 8,\n  HIGHLIGHT: 9,\n  UNDERLINE: 10,\n  SQUIGGLY: 11,\n  STRIKEOUT: 12,\n  STAMP: 13,\n  CARET: 14,\n  INK: 15,\n  POPUP: 16,\n  FILEATTACHMENT: 17,\n  SOUND: 18,\n  MOVIE: 19,\n  WIDGET: 20,\n  SCREEN: 21,\n  PRINTERMARK: 22,\n  TRAPNET: 23,\n  WATERMARK: 24,\n  THREED: 25,\n  REDACT: 26\n};\nexports.AnnotationType = AnnotationType;\nconst AnnotationStateModelType = {\n  MARKED: \"Marked\",\n  REVIEW: \"Review\"\n};\nexports.AnnotationStateModelType = AnnotationStateModelType;\nconst AnnotationMarkedState = {\n  MARKED: \"Marked\",\n  UNMARKED: \"Unmarked\"\n};\nexports.AnnotationMarkedState = AnnotationMarkedState;\nconst AnnotationReviewState = {\n  ACCEPTED: \"Accepted\",\n  REJECTED: \"Rejected\",\n  CANCELLED: \"Cancelled\",\n  COMPLETED: \"Completed\",\n  NONE: \"None\"\n};\nexports.AnnotationReviewState = AnnotationReviewState;\nconst AnnotationReplyType = {\n  GROUP: \"Group\",\n  REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\nconst AnnotationFlag = {\n  INVISIBLE: 0x01,\n  HIDDEN: 0x02,\n  PRINT: 0x04,\n  NOZOOM: 0x08,\n  NOROTATE: 0x10,\n  NOVIEW: 0x20,\n  READONLY: 0x40,\n  LOCKED: 0x80,\n  TOGGLENOVIEW: 0x100,\n  LOCKEDCONTENTS: 0x200\n};\nexports.AnnotationFlag = AnnotationFlag;\nconst AnnotationFieldFlag = {\n  READONLY: 0x0000001,\n  REQUIRED: 0x0000002,\n  NOEXPORT: 0x0000004,\n  MULTILINE: 0x0001000,\n  PASSWORD: 0x0002000,\n  NOTOGGLETOOFF: 0x0004000,\n  RADIO: 0x0008000,\n  PUSHBUTTON: 0x0010000,\n  COMBO: 0x0020000,\n  EDIT: 0x0040000,\n  SORT: 0x0080000,\n  FILESELECT: 0x0100000,\n  MULTISELECT: 0x0200000,\n  DONOTSPELLCHECK: 0x0400000,\n  DONOTSCROLL: 0x0800000,\n  COMB: 0x1000000,\n  RICHTEXT: 0x2000000,\n  RADIOSINUNISON: 0x2000000,\n  COMMITONSELCHANGE: 0x4000000\n};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n  SOLID: 1,\n  DASHED: 2,\n  BEVELED: 3,\n  INSET: 4,\n  UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nconst AnnotationActionEventType = {\n  E: \"Mouse Enter\",\n  X: \"Mouse Exit\",\n  D: \"Mouse Down\",\n  U: \"Mouse Up\",\n  Fo: \"Focus\",\n  Bl: \"Blur\",\n  PO: \"PageOpen\",\n  PC: \"PageClose\",\n  PV: \"PageVisible\",\n  PI: \"PageInvisible\",\n  K: \"Keystroke\",\n  F: \"Format\",\n  V: \"Validate\",\n  C: \"Calculate\"\n};\nexports.AnnotationActionEventType = AnnotationActionEventType;\nconst DocumentActionEventType = {\n  WC: \"WillClose\",\n  WS: \"WillSave\",\n  DS: \"DidSave\",\n  WP: \"WillPrint\",\n  DP: \"DidPrint\"\n};\nexports.DocumentActionEventType = DocumentActionEventType;\nconst PageActionEventType = {\n  O: \"PageOpen\",\n  C: \"PageClose\"\n};\nexports.PageActionEventType = PageActionEventType;\nconst StreamType = {\n  UNKNOWN: \"UNKNOWN\",\n  FLATE: \"FLATE\",\n  LZW: \"LZW\",\n  DCT: \"DCT\",\n  JPX: \"JPX\",\n  JBIG: \"JBIG\",\n  A85: \"A85\",\n  AHX: \"AHX\",\n  CCF: \"CCF\",\n  RLX: \"RLX\"\n};\nexports.StreamType = StreamType;\nconst FontType = {\n  UNKNOWN: \"UNKNOWN\",\n  TYPE1: \"TYPE1\",\n  TYPE1STANDARD: \"TYPE1STANDARD\",\n  TYPE1C: \"TYPE1C\",\n  CIDFONTTYPE0: \"CIDFONTTYPE0\",\n  CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n  TRUETYPE: \"TRUETYPE\",\n  CIDFONTTYPE2: \"CIDFONTTYPE2\",\n  TYPE3: \"TYPE3\",\n  OPENTYPE: \"OPENTYPE\",\n  TYPE0: \"TYPE0\",\n  MMTYPE1: \"MMTYPE1\"\n};\nexports.FontType = FontType;\nconst VerbosityLevel = {\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n  NONE: 0,\n  BINARY: 1,\n  STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\n  dependency: 1,\n  setLineWidth: 2,\n  setLineCap: 3,\n  setLineJoin: 4,\n  setMiterLimit: 5,\n  setDash: 6,\n  setRenderingIntent: 7,\n  setFlatness: 8,\n  setGState: 9,\n  save: 10,\n  restore: 11,\n  transform: 12,\n  moveTo: 13,\n  lineTo: 14,\n  curveTo: 15,\n  curveTo2: 16,\n  curveTo3: 17,\n  closePath: 18,\n  rectangle: 19,\n  stroke: 20,\n  closeStroke: 21,\n  fill: 22,\n  eoFill: 23,\n  fillStroke: 24,\n  eoFillStroke: 25,\n  closeFillStroke: 26,\n  closeEOFillStroke: 27,\n  endPath: 28,\n  clip: 29,\n  eoClip: 30,\n  beginText: 31,\n  endText: 32,\n  setCharSpacing: 33,\n  setWordSpacing: 34,\n  setHScale: 35,\n  setLeading: 36,\n  setFont: 37,\n  setTextRenderingMode: 38,\n  setTextRise: 39,\n  moveText: 40,\n  setLeadingMoveText: 41,\n  setTextMatrix: 42,\n  nextLine: 43,\n  showText: 44,\n  showSpacedText: 45,\n  nextLineShowText: 46,\n  nextLineSetSpacingShowText: 47,\n  setCharWidth: 48,\n  setCharWidthAndBounds: 49,\n  setStrokeColorSpace: 50,\n  setFillColorSpace: 51,\n  setStrokeColor: 52,\n  setStrokeColorN: 53,\n  setFillColor: 54,\n  setFillColorN: 55,\n  setStrokeGray: 56,\n  setFillGray: 57,\n  setStrokeRGBColor: 58,\n  setFillRGBColor: 59,\n  setStrokeCMYKColor: 60,\n  setFillCMYKColor: 61,\n  shadingFill: 62,\n  beginInlineImage: 63,\n  beginImageData: 64,\n  endInlineImage: 65,\n  paintXObject: 66,\n  markPoint: 67,\n  markPointProps: 68,\n  beginMarkedContent: 69,\n  beginMarkedContentProps: 70,\n  endMarkedContent: 71,\n  beginCompat: 72,\n  endCompat: 73,\n  paintFormXObjectBegin: 74,\n  paintFormXObjectEnd: 75,\n  beginGroup: 76,\n  endGroup: 77,\n  beginAnnotations: 78,\n  endAnnotations: 79,\n  beginAnnotation: 80,\n  endAnnotation: 81,\n  paintJpegXObject: 82,\n  paintImageMaskXObject: 83,\n  paintImageMaskXObjectGroup: 84,\n  paintImageXObject: 85,\n  paintInlineImageXObject: 86,\n  paintInlineImageXObjectGroup: 87,\n  paintImageXObjectRepeat: 88,\n  paintImageMaskXObjectRepeat: 89,\n  paintSolidColorImageMask: 90,\n  constructPath: 91\n};\nexports.OPS = OPS;\nconst UNSUPPORTED_FEATURES = {\n  unknown: \"unknown\",\n  forms: \"forms\",\n  javaScript: \"javaScript\",\n  signatures: \"signatures\",\n  smask: \"smask\",\n  shadingPattern: \"shadingPattern\",\n  font: \"font\",\n  errorTilingPattern: \"errorTilingPattern\",\n  errorExtGState: \"errorExtGState\",\n  errorXObject: \"errorXObject\",\n  errorFontLoadType3: \"errorFontLoadType3\",\n  errorFontState: \"errorFontState\",\n  errorFontMissing: \"errorFontMissing\",\n  errorFontTranslate: \"errorFontTranslate\",\n  errorColorSpace: \"errorColorSpace\",\n  errorOperatorList: \"errorOperatorList\",\n  errorFontToUnicode: \"errorFontToUnicode\",\n  errorFontLoadNative: \"errorFontLoadNative\",\n  errorFontBuildPath: \"errorFontBuildPath\",\n  errorFontGetPath: \"errorFontGetPath\",\n  errorMarkedContent: \"errorMarkedContent\",\n  errorContentSubStream: \"errorContentSubStream\"\n};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nconst PasswordResponses = {\n  NEED_PASSWORD: 1,\n  INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n  if (Number.isInteger(level)) {\n    verbosity = level;\n  }\n}\n\nfunction getVerbosityLevel() {\n  return verbosity;\n}\n\nfunction info(msg) {\n  if (verbosity >= VerbosityLevel.INFOS) {\n    console.log(`Info: ${msg}`);\n  }\n}\n\nfunction warn(msg) {\n  if (verbosity >= VerbosityLevel.WARNINGS) {\n    console.log(`Warning: ${msg}`);\n  }\n}\n\nfunction unreachable(msg) {\n  throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n  if (!cond) {\n    unreachable(msg);\n  }\n}\n\nfunction _isValidProtocol(url) {\n  if (!url) {\n    return false;\n  }\n\n  switch (url.protocol) {\n    case \"http:\":\n    case \"https:\":\n    case \"ftp:\":\n    case \"mailto:\":\n    case \"tel:\":\n      return true;\n\n    default:\n      return false;\n  }\n}\n\nfunction createValidAbsoluteUrl(url) {\n  let baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n  let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n  if (!url) {\n    return null;\n  }\n\n  try {\n    if (options && typeof url === \"string\") {\n      if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n        const dots = url.match(/\\./g);\n\n        if (dots && dots.length >= 2) {\n          url = `http://${url}`;\n        }\n      }\n\n      if (options.tryConvertEncoding) {\n        try {\n          url = stringToUTF8String(url);\n        } catch (ex) {}\n      }\n    }\n\n    const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n\n    if (_isValidProtocol(absoluteUrl)) {\n      return absoluteUrl;\n    }\n  } catch (ex) {}\n\n  return null;\n}\n\nfunction shadow(obj, prop, value) {\n  Object.defineProperty(obj, prop, {\n    value,\n    enumerable: true,\n    configurable: true,\n    writable: false\n  });\n  return value;\n}\n\nconst BaseException = function BaseExceptionClosure() {\n  function BaseException(message, name) {\n    if (this.constructor === BaseException) {\n      unreachable(\"Cannot initialize BaseException.\");\n    }\n\n    this.message = message;\n    this.name = name;\n  }\n\n  BaseException.prototype = new Error();\n  BaseException.constructor = BaseException;\n  return BaseException;\n}();\n\nexports.BaseException = BaseException;\n\nclass PasswordException extends BaseException {\n  constructor(msg, code) {\n    super(msg, \"PasswordException\");\n    this.code = code;\n  }\n\n}\n\nexports.PasswordException = PasswordException;\n\nclass UnknownErrorException extends BaseException {\n  constructor(msg, details) {\n    super(msg, \"UnknownErrorException\");\n    this.details = details;\n  }\n\n}\n\nexports.UnknownErrorException = UnknownErrorException;\n\nclass InvalidPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"InvalidPDFException\");\n  }\n\n}\n\nexports.InvalidPDFException = InvalidPDFException;\n\nclass MissingPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"MissingPDFException\");\n  }\n\n}\n\nexports.MissingPDFException = MissingPDFException;\n\nclass UnexpectedResponseException extends BaseException {\n  constructor(msg, status) {\n    super(msg, \"UnexpectedResponseException\");\n    this.status = status;\n  }\n\n}\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nclass FormatError extends BaseException {\n  constructor(msg) {\n    super(msg, \"FormatError\");\n  }\n\n}\n\nexports.FormatError = FormatError;\n\nclass AbortException extends BaseException {\n  constructor(msg) {\n    super(msg, \"AbortException\");\n  }\n\n}\n\nexports.AbortException = AbortException;\n\nfunction bytesToString(bytes) {\n  if (typeof bytes !== \"object\" || bytes === null || bytes.length === undefined) {\n    unreachable(\"Invalid argument for bytesToString\");\n  }\n\n  const length = bytes.length;\n  const MAX_ARGUMENT_COUNT = 8192;\n\n  if (length < MAX_ARGUMENT_COUNT) {\n    return String.fromCharCode.apply(null, bytes);\n  }\n\n  const strBuf = [];\n\n  for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n    const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n    const chunk = bytes.subarray(i, chunkEnd);\n    strBuf.push(String.fromCharCode.apply(null, chunk));\n  }\n\n  return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n  if (typeof str !== \"string\") {\n    unreachable(\"Invalid argument for stringToBytes\");\n  }\n\n  const length = str.length;\n  const bytes = new Uint8Array(length);\n\n  for (let i = 0; i < length; ++i) {\n    bytes[i] = str.charCodeAt(i) & 0xff;\n  }\n\n  return bytes;\n}\n\nfunction arrayByteLength(arr) {\n  if (arr.length !== undefined) {\n    return arr.length;\n  }\n\n  if (arr.byteLength !== undefined) {\n    return arr.byteLength;\n  }\n\n  unreachable(\"Invalid argument for arrayByteLength\");\n}\n\nfunction arraysToBytes(arr) {\n  const length = arr.length;\n\n  if (length === 1 && arr[0] instanceof Uint8Array) {\n    return arr[0];\n  }\n\n  let resultLength = 0;\n\n  for (let i = 0; i < length; i++) {\n    resultLength += arrayByteLength(arr[i]);\n  }\n\n  let pos = 0;\n  const data = new Uint8Array(resultLength);\n\n  for (let i = 0; i < length; i++) {\n    let item = arr[i];\n\n    if (!(item instanceof Uint8Array)) {\n      if (typeof item === \"string\") {\n        item = stringToBytes(item);\n      } else {\n        item = new Uint8Array(item);\n      }\n    }\n\n    const itemLength = item.byteLength;\n    data.set(item, pos);\n    pos += itemLength;\n  }\n\n  return data;\n}\n\nfunction string32(value) {\n  return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction objectSize(obj) {\n  return Object.keys(obj).length;\n}\n\nfunction objectFromMap(map) {\n  const obj = Object.create(null);\n\n  for (const [key, value] of map) {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction isLittleEndian() {\n  const buffer8 = new Uint8Array(4);\n  buffer8[0] = 1;\n  const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n  return view32[0] === 1;\n}\n\nfunction isEvalSupported() {\n  try {\n    new Function(\"\");\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nclass FeatureTest {\n  static get isLittleEndian() {\n    return shadow(this, \"isLittleEndian\", isLittleEndian());\n  }\n\n  static get isEvalSupported() {\n    return shadow(this, \"isEvalSupported\", isEvalSupported());\n  }\n\n  static get isOffscreenCanvasSupported() {\n    return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n  }\n\n}\n\nexports.FeatureTest = FeatureTest;\nconst hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, \"0\"));\n\nclass Util {\n  static makeHexColor(r, g, b) {\n    return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n  }\n\n  static scaleMinMax(transform, minMax) {\n    let temp;\n\n    if (transform[0]) {\n      if (transform[0] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[1];\n        minMax[1] = temp;\n      }\n\n      minMax[0] *= transform[0];\n      minMax[1] *= transform[0];\n\n      if (transform[3] < 0) {\n        temp = minMax[2];\n        minMax[2] = minMax[3];\n        minMax[3] = temp;\n      }\n\n      minMax[2] *= transform[3];\n      minMax[3] *= transform[3];\n    } else {\n      temp = minMax[0];\n      minMax[0] = minMax[2];\n      minMax[2] = temp;\n      temp = minMax[1];\n      minMax[1] = minMax[3];\n      minMax[3] = temp;\n\n      if (transform[1] < 0) {\n        temp = minMax[2];\n        minMax[2] = minMax[3];\n        minMax[3] = temp;\n      }\n\n      minMax[2] *= transform[1];\n      minMax[3] *= transform[1];\n\n      if (transform[2] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[1];\n        minMax[1] = temp;\n      }\n\n      minMax[0] *= transform[2];\n      minMax[1] *= transform[2];\n    }\n\n    minMax[0] += transform[4];\n    minMax[1] += transform[4];\n    minMax[2] += transform[5];\n    minMax[3] += transform[5];\n  }\n\n  static transform(m1, m2) {\n    return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n  }\n\n  static applyTransform(p, m) {\n    const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n    const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n    return [xt, yt];\n  }\n\n  static applyInverseTransform(p, m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n    const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n    return [xt, yt];\n  }\n\n  static getAxialAlignedBoundingBox(r, m) {\n    const p1 = Util.applyTransform(r, m);\n    const p2 = Util.applyTransform(r.slice(2, 4), m);\n    const p3 = Util.applyTransform([r[0], r[3]], m);\n    const p4 = Util.applyTransform([r[2], r[1]], m);\n    return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n  }\n\n  static inverseTransform(m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n  }\n\n  static apply3dTransform(m, v) {\n    return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n  }\n\n  static singularValueDecompose2dScale(m) {\n    const transpose = [m[0], m[2], m[1], m[3]];\n    const a = m[0] * transpose[0] + m[1] * transpose[2];\n    const b = m[0] * transpose[1] + m[1] * transpose[3];\n    const c = m[2] * transpose[0] + m[3] * transpose[2];\n    const d = m[2] * transpose[1] + m[3] * transpose[3];\n    const first = (a + d) / 2;\n    const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n    const sx = first + second || 1;\n    const sy = first - second || 1;\n    return [Math.sqrt(sx), Math.sqrt(sy)];\n  }\n\n  static normalizeRect(rect) {\n    const r = rect.slice(0);\n\n    if (rect[0] > rect[2]) {\n      r[0] = rect[2];\n      r[2] = rect[0];\n    }\n\n    if (rect[1] > rect[3]) {\n      r[1] = rect[3];\n      r[3] = rect[1];\n    }\n\n    return r;\n  }\n\n  static intersect(rect1, rect2) {\n    const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n    const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n\n    if (xLow > xHigh) {\n      return null;\n    }\n\n    const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n    const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n\n    if (yLow > yHigh) {\n      return null;\n    }\n\n    return [xLow, yLow, xHigh, yHigh];\n  }\n\n  static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n    const tvalues = [],\n          bounds = [[], []];\n    let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n\n    for (let i = 0; i < 2; ++i) {\n      if (i === 0) {\n        b = 6 * x0 - 12 * x1 + 6 * x2;\n        a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n        c = 3 * x1 - 3 * x0;\n      } else {\n        b = 6 * y0 - 12 * y1 + 6 * y2;\n        a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n        c = 3 * y1 - 3 * y0;\n      }\n\n      if (Math.abs(a) < 1e-12) {\n        if (Math.abs(b) < 1e-12) {\n          continue;\n        }\n\n        t = -c / b;\n\n        if (0 < t && t < 1) {\n          tvalues.push(t);\n        }\n\n        continue;\n      }\n\n      b2ac = b * b - 4 * c * a;\n      sqrtb2ac = Math.sqrt(b2ac);\n\n      if (b2ac < 0) {\n        continue;\n      }\n\n      t1 = (-b + sqrtb2ac) / (2 * a);\n\n      if (0 < t1 && t1 < 1) {\n        tvalues.push(t1);\n      }\n\n      t2 = (-b - sqrtb2ac) / (2 * a);\n\n      if (0 < t2 && t2 < 1) {\n        tvalues.push(t2);\n      }\n    }\n\n    let j = tvalues.length,\n        mt;\n    const jlen = j;\n\n    while (j--) {\n      t = tvalues[j];\n      mt = 1 - t;\n      bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n      bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n    }\n\n    bounds[0][jlen] = x0;\n    bounds[1][jlen] = y0;\n    bounds[0][jlen + 1] = x3;\n    bounds[1][jlen + 1] = y3;\n    bounds[0].length = bounds[1].length = jlen + 2;\n    return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])];\n  }\n\n}\n\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac];\n\nfunction stringToPDFString(str) {\n  if (str[0] >= \"\\xEF\") {\n    let encoding;\n\n    if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n      encoding = \"utf-16be\";\n    } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n      encoding = \"utf-16le\";\n    } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n      encoding = \"utf-8\";\n    }\n\n    if (encoding) {\n      try {\n        const decoder = new TextDecoder(encoding, {\n          fatal: true\n        });\n        const buffer = stringToBytes(str);\n        return decoder.decode(buffer);\n      } catch (ex) {\n        warn(`stringToPDFString: \"${ex}\".`);\n      }\n    }\n  }\n\n  const strBuf = [];\n\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const code = PDFStringTranslateTable[str.charCodeAt(i)];\n    strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n  }\n\n  return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n  return str.replace(/([()\\\\\\n\\r])/g, match => {\n    if (match === \"\\n\") {\n      return \"\\\\n\";\n    } else if (match === \"\\r\") {\n      return \"\\\\r\";\n    }\n\n    return `\\\\${match}`;\n  });\n}\n\nfunction isAscii(str) {\n  return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n  const buf = [\"\\xFE\\xFF\"];\n\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n    buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff));\n  }\n\n  return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n  return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n  return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n  return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n  if (arr1.length !== arr2.length) {\n    return false;\n  }\n\n  for (let i = 0, ii = arr1.length; i < ii; i++) {\n    if (arr1[i] !== arr2[i]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction getModificationDate() {\n  let date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date();\n  const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n  return buffer.join(\"\");\n}\n\nfunction createPromiseCapability() {\n  const capability = Object.create(null);\n  let isSettled = false;\n  Object.defineProperty(capability, \"settled\", {\n    get() {\n      return isSettled;\n    }\n\n  });\n  capability.promise = new Promise(function (resolve, reject) {\n    capability.resolve = function (data) {\n      isSettled = true;\n      resolve(data);\n    };\n\n    capability.reject = function (reason) {\n      isSettled = true;\n      reject(reason);\n    };\n  });\n  return capability;\n}\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nvar _is_node = __w_pdfjs_require__(4);\n\nif (!globalThis._pdfjsCompatibilityChecked) {\n  globalThis._pdfjsCompatibilityChecked = true;\n\n  (function checkNodeBtoa() {\n    if (globalThis.btoa || !_is_node.isNodeJS) {\n      return;\n    }\n\n    globalThis.btoa = function (chars) {\n      return Buffer.from(chars, \"binary\").toString(\"base64\");\n    };\n  })();\n\n  (function checkNodeAtob() {\n    if (globalThis.atob || !_is_node.isNodeJS) {\n      return;\n    }\n\n    globalThis.atob = function (input) {\n      return Buffer.from(input, \"base64\").toString(\"binary\");\n    };\n  })();\n\n  (function checkDOMMatrix() {\n    if (globalThis.DOMMatrix || !_is_node.isNodeJS) {\n      return;\n    }\n\n    globalThis.DOMMatrix = __webpack_require__(/*! dommatrix/dist/dommatrix.js */ \"./node_modules/dommatrix/dist/dommatrix.js\");\n  })();\n\n  (function checkReadableStream() {\n    if (globalThis.ReadableStream || !_is_node.isNodeJS) {\n      return;\n    }\n\n    globalThis.ReadableStream = __webpack_require__(/*! web-streams-polyfill/dist/ponyfill.js */ \"./node_modules/web-streams-polyfill/dist/ponyfill.js\").ReadableStream;\n  })();\n\n  (function checkArrayAt() {\n    if (Array.prototype.at) {\n      return;\n    }\n\n    __w_pdfjs_require__(5);\n  })();\n\n  (function checkTypedArrayAt() {\n    if (Uint8Array.prototype.at) {\n      return;\n    }\n\n    __w_pdfjs_require__(77);\n  })();\n\n  (function checkStructuredClone() {\n    if (globalThis.structuredClone) {\n      return;\n    }\n\n    __w_pdfjs_require__(87);\n  })();\n}\n\n/***/ }),\n/* 4 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.isNodeJS = void 0;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\n\n/***/ }),\n/* 5 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(6);\nvar entryUnbind = __w_pdfjs_require__(76);\nmodule.exports = entryUnbind('Array', 'at');\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar $ = __w_pdfjs_require__(7);\nvar toObject = __w_pdfjs_require__(42);\nvar lengthOfArrayLike = __w_pdfjs_require__(66);\nvar toIntegerOrInfinity = __w_pdfjs_require__(64);\nvar addToUnscopables = __w_pdfjs_require__(71);\n$({\n target: 'Array',\n proto: true\n}, {\n at: function at(index) {\n  var O = toObject(this);\n  var len = lengthOfArrayLike(O);\n  var relativeIndex = toIntegerOrInfinity(index);\n  var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n  return k < 0 || k >= len ? undefined : O[k];\n }\n});\naddToUnscopables('at');\n\n/***/ }),\n/* 7 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(8);\nvar getOwnPropertyDescriptor = (__w_pdfjs_require__(9).f);\nvar createNonEnumerableProperty = __w_pdfjs_require__(46);\nvar defineBuiltIn = __w_pdfjs_require__(50);\nvar defineGlobalProperty = __w_pdfjs_require__(40);\nvar copyConstructorProperties = __w_pdfjs_require__(58);\nvar isForced = __w_pdfjs_require__(70);\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n  target = global;\n } else if (STATIC) {\n  target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n  target = (global[TARGET] || {}).prototype;\n }\n if (target)\n  for (key in source) {\n   sourceProperty = source[key];\n   if (options.dontCallGetSet) {\n    descriptor = getOwnPropertyDescriptor(target, key);\n    targetProperty = descriptor && descriptor.value;\n   } else\n    targetProperty = target[key];\n   FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n   if (!FORCED && targetProperty !== undefined) {\n    if (typeof sourceProperty == typeof targetProperty)\n     continue;\n    copyConstructorProperties(sourceProperty, targetProperty);\n   }\n   if (options.sham || targetProperty && targetProperty.sham) {\n    createNonEnumerableProperty(sourceProperty, 'sham', true);\n   }\n   defineBuiltIn(target, key, sourceProperty, options);\n  }\n};\n\n/***/ }),\n/* 8 */\n/***/ ((module) => {\n\nvar check = function (it) {\n return it && it.Math == Math && it;\n};\nmodule.exports = check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || (function () {\n return this;\n}()) || Function('return this')();\n\n/***/ }),\n/* 9 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(10);\nvar call = __w_pdfjs_require__(12);\nvar propertyIsEnumerableModule = __w_pdfjs_require__(14);\nvar createPropertyDescriptor = __w_pdfjs_require__(15);\nvar toIndexedObject = __w_pdfjs_require__(16);\nvar toPropertyKey = __w_pdfjs_require__(21);\nvar hasOwn = __w_pdfjs_require__(41);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(44);\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE)\n  try {\n   return $getOwnPropertyDescriptor(O, P);\n  } catch (error) {\n  }\n if (hasOwn(O, P))\n  return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n\n/***/ }),\n/* 10 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(11);\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, {\n  get: function () {\n   return 7;\n  }\n })[1] != 7;\n});\n\n/***/ }),\n/* 11 */\n/***/ ((module) => {\n\nmodule.exports = function (exec) {\n try {\n  return !!exec();\n } catch (error) {\n  return true;\n }\n};\n\n/***/ }),\n/* 12 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar NATIVE_BIND = __w_pdfjs_require__(13);\nvar call = Function.prototype.call;\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n\n/***/ }),\n/* 13 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(11);\nmodule.exports = !fails(function () {\n var test = function () {\n }.bind();\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n\n/***/ }),\n/* 14 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n/***/ }),\n/* 15 */\n/***/ ((module) => {\n\nmodule.exports = function (bitmap, value) {\n return {\n  enumerable: !(bitmap & 1),\n  configurable: !(bitmap & 2),\n  writable: !(bitmap & 4),\n  value: value\n };\n};\n\n/***/ }),\n/* 16 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar IndexedObject = __w_pdfjs_require__(17);\nvar requireObjectCoercible = __w_pdfjs_require__(20);\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n/***/ }),\n/* 17 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(18);\nvar fails = __w_pdfjs_require__(11);\nvar classof = __w_pdfjs_require__(19);\nvar $Object = Object;\nvar split = uncurryThis(''.split);\nmodule.exports = fails(function () {\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n\n/***/ }),\n/* 18 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar NATIVE_BIND = __w_pdfjs_require__(13);\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n  return call.apply(fn, arguments);\n };\n};\n\n/***/ }),\n/* 19 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(18);\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n\n/***/ }),\n/* 20 */\n/***/ ((module) => {\n\nvar $TypeError = TypeError;\nmodule.exports = function (it) {\n if (it == undefined)\n  throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n/***/ }),\n/* 21 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toPrimitive = __w_pdfjs_require__(22);\nvar isSymbol = __w_pdfjs_require__(25);\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n\n/***/ }),\n/* 22 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(12);\nvar isObject = __w_pdfjs_require__(23);\nvar isSymbol = __w_pdfjs_require__(25);\nvar getMethod = __w_pdfjs_require__(32);\nvar ordinaryToPrimitive = __w_pdfjs_require__(35);\nvar wellKnownSymbol = __w_pdfjs_require__(36);\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input))\n  return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n  if (pref === undefined)\n   pref = 'default';\n  result = call(exoticToPrim, input, pref);\n  if (!isObject(result) || isSymbol(result))\n   return result;\n  throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined)\n  pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n\n/***/ }),\n/* 23 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(24);\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n\n/***/ }),\n/* 24 */\n/***/ ((module) => {\n\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n\n/***/ }),\n/* 25 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar getBuiltIn = __w_pdfjs_require__(26);\nvar isCallable = __w_pdfjs_require__(24);\nvar isPrototypeOf = __w_pdfjs_require__(27);\nvar USE_SYMBOL_AS_UID = __w_pdfjs_require__(28);\nvar $Object = Object;\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n\n/***/ }),\n/* 26 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(8);\nvar isCallable = __w_pdfjs_require__(24);\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n\n/***/ }),\n/* 27 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(18);\nmodule.exports = uncurryThis({}.isPrototypeOf);\n\n/***/ }),\n/* 28 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar NATIVE_SYMBOL = __w_pdfjs_require__(29);\nmodule.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol';\n\n/***/ }),\n/* 29 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar V8_VERSION = __w_pdfjs_require__(30);\nvar fails = __w_pdfjs_require__(11);\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n return !String(symbol) || !(Object(symbol) instanceof Symbol) || !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n/***/ }),\n/* 30 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(8);\nvar userAgent = __w_pdfjs_require__(31);\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\nif (v8) {\n match = v8.split('.');\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n  match = userAgent.match(/Chrome\\/(\\d+)/);\n  if (match)\n   version = +match[1];\n }\n}\nmodule.exports = version;\n\n/***/ }),\n/* 31 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar getBuiltIn = __w_pdfjs_require__(26);\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n/***/ }),\n/* 32 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar aCallable = __w_pdfjs_require__(33);\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n\n/***/ }),\n/* 33 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(24);\nvar tryToString = __w_pdfjs_require__(34);\nvar $TypeError = TypeError;\nmodule.exports = function (argument) {\n if (isCallable(argument))\n  return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n\n/***/ }),\n/* 34 */\n/***/ ((module) => {\n\nvar $String = String;\nmodule.exports = function (argument) {\n try {\n  return $String(argument);\n } catch (error) {\n  return 'Object';\n }\n};\n\n/***/ }),\n/* 35 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(12);\nvar isCallable = __w_pdfjs_require__(24);\nvar isObject = __w_pdfjs_require__(23);\nvar $TypeError = TypeError;\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input)))\n  return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input)))\n  return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input)))\n  return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n\n/***/ }),\n/* 36 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(8);\nvar shared = __w_pdfjs_require__(37);\nvar hasOwn = __w_pdfjs_require__(41);\nvar uid = __w_pdfjs_require__(43);\nvar NATIVE_SYMBOL = __w_pdfjs_require__(29);\nvar USE_SYMBOL_AS_UID = __w_pdfjs_require__(28);\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n  var description = 'Symbol.' + name;\n  if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n   WellKnownSymbolsStore[name] = Symbol[name];\n  } else if (USE_SYMBOL_AS_UID && symbolFor) {\n   WellKnownSymbolsStore[name] = symbolFor(description);\n  } else {\n   WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n  }\n }\n return WellKnownSymbolsStore[name];\n};\n\n/***/ }),\n/* 37 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar IS_PURE = __w_pdfjs_require__(38);\nvar store = __w_pdfjs_require__(39);\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.24.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n\n/***/ }),\n/* 38 */\n/***/ ((module) => {\n\nmodule.exports = false;\n\n/***/ }),\n/* 39 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(8);\nvar defineGlobalProperty = __w_pdfjs_require__(40);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\nmodule.exports = store;\n\n/***/ }),\n/* 40 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(8);\nvar defineProperty = Object.defineProperty;\nmodule.exports = function (key, value) {\n try {\n  defineProperty(global, key, {\n   value: value,\n   configurable: true,\n   writable: true\n  });\n } catch (error) {\n  global[key] = value;\n }\n return value;\n};\n\n/***/ }),\n/* 41 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(18);\nvar toObject = __w_pdfjs_require__(42);\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n\n/***/ }),\n/* 42 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar requireObjectCoercible = __w_pdfjs_require__(20);\nvar $Object = Object;\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n\n/***/ }),\n/* 43 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(18);\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n\n/***/ }),\n/* 44 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(10);\nvar fails = __w_pdfjs_require__(11);\nvar createElement = __w_pdfjs_require__(45);\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n  get: function () {\n   return 7;\n  }\n }).a != 7;\n});\n\n/***/ }),\n/* 45 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(8);\nvar isObject = __w_pdfjs_require__(23);\nvar document = global.document;\nvar EXISTS = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n/***/ }),\n/* 46 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(10);\nvar definePropertyModule = __w_pdfjs_require__(47);\nvar createPropertyDescriptor = __w_pdfjs_require__(15);\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n/***/ }),\n/* 47 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(10);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(44);\nvar V8_PROTOTYPE_DEFINE_BUG = __w_pdfjs_require__(48);\nvar anObject = __w_pdfjs_require__(49);\nvar toPropertyKey = __w_pdfjs_require__(21);\nvar $TypeError = TypeError;\nvar $defineProperty = Object.defineProperty;\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n  var current = $getOwnPropertyDescriptor(O, P);\n  if (current && current[WRITABLE]) {\n   O[P] = Attributes.value;\n   Attributes = {\n    configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n    enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n    writable: false\n   };\n  }\n }\n return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE)\n  try {\n   return $defineProperty(O, P, Attributes);\n  } catch (error) {\n  }\n if ('get' in Attributes || 'set' in Attributes)\n  throw $TypeError('Accessors not supported');\n if ('value' in Attributes)\n  O[P] = Attributes.value;\n return O;\n};\n\n/***/ }),\n/* 48 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(10);\nvar fails = __w_pdfjs_require__(11);\nmodule.exports = DESCRIPTORS && fails(function () {\n return Object.defineProperty(function () {\n }, 'prototype', {\n  value: 42,\n  writable: false\n }).prototype != 42;\n});\n\n/***/ }),\n/* 49 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isObject = __w_pdfjs_require__(23);\nvar $String = String;\nvar $TypeError = TypeError;\nmodule.exports = function (argument) {\n if (isObject(argument))\n  return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n\n/***/ }),\n/* 50 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(24);\nvar definePropertyModule = __w_pdfjs_require__(47);\nvar makeBuiltIn = __w_pdfjs_require__(51);\nvar defineGlobalProperty = __w_pdfjs_require__(40);\nmodule.exports = function (O, key, value, options) {\n if (!options)\n  options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value))\n  makeBuiltIn(value, name, options);\n if (options.global) {\n  if (simple)\n   O[key] = value;\n  else\n   defineGlobalProperty(key, value);\n } else {\n  try {\n   if (!options.unsafe)\n    delete O[key];\n   else if (O[key])\n    simple = true;\n  } catch (error) {\n  }\n  if (simple)\n   O[key] = value;\n  else\n   definePropertyModule.f(O, key, {\n    value: value,\n    enumerable: false,\n    configurable: !options.nonConfigurable,\n    writable: !options.nonWritable\n   });\n }\n return O;\n};\n\n/***/ }),\n/* 51 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(11);\nvar isCallable = __w_pdfjs_require__(24);\nvar hasOwn = __w_pdfjs_require__(41);\nvar DESCRIPTORS = __w_pdfjs_require__(10);\nvar CONFIGURABLE_FUNCTION_NAME = (__w_pdfjs_require__(52).CONFIGURABLE);\nvar inspectSource = __w_pdfjs_require__(53);\nvar InternalStateModule = __w_pdfjs_require__(54);\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar defineProperty = Object.defineProperty;\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () {\n }, 'length', { value: 8 }).length !== 8;\n});\nvar TEMPLATE = String(String).split('String');\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n  name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter)\n  name = 'get ' + name;\n if (options && options.setter)\n  name = 'set ' + name;\n if (!hasOwn(value, 'name') || CONFIGURABLE_FUNCTION_NAME && value.name !== name) {\n  if (DESCRIPTORS)\n   defineProperty(value, 'name', {\n    value: name,\n    configurable: true\n   });\n  else\n   value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n  defineProperty(value, 'length', { value: options.arity });\n }\n try {\n  if (options && hasOwn(options, 'constructor') && options.constructor) {\n   if (DESCRIPTORS)\n    defineProperty(value, 'prototype', { writable: false });\n  } else if (value.prototype)\n   value.prototype = undefined;\n } catch (error) {\n }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n  state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n return value;\n};\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n\n/***/ }),\n/* 52 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(10);\nvar hasOwn = __w_pdfjs_require__(41);\nvar FunctionPrototype = Function.prototype;\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\nvar PROPER = EXISTS && function something() {\n}.name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable);\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n\n/***/ }),\n/* 53 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(18);\nvar isCallable = __w_pdfjs_require__(24);\nvar store = __w_pdfjs_require__(39);\nvar functionToString = uncurryThis(Function.toString);\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n  return functionToString(it);\n };\n}\nmodule.exports = store.inspectSource;\n\n/***/ }),\n/* 54 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar NATIVE_WEAK_MAP = __w_pdfjs_require__(55);\nvar global = __w_pdfjs_require__(8);\nvar uncurryThis = __w_pdfjs_require__(18);\nvar isObject = __w_pdfjs_require__(23);\nvar createNonEnumerableProperty = __w_pdfjs_require__(46);\nvar hasOwn = __w_pdfjs_require__(41);\nvar shared = __w_pdfjs_require__(39);\nvar sharedKey = __w_pdfjs_require__(56);\nvar hiddenKeys = __w_pdfjs_require__(57);\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\nvar getterFor = function (TYPE) {\n return function (it) {\n  var state;\n  if (!isObject(it) || (state = get(it)).type !== TYPE) {\n   throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n  }\n  return state;\n };\n};\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n  if (wmhas(store, it))\n   throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n  metadata.facade = it;\n  wmset(store, it, metadata);\n  return metadata;\n };\n get = function (it) {\n  return wmget(store, it) || {};\n };\n has = function (it) {\n  return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n  if (hasOwn(it, STATE))\n   throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n  metadata.facade = it;\n  createNonEnumerableProperty(it, STATE, metadata);\n  return metadata;\n };\n get = function (it) {\n  return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n  return hasOwn(it, STATE);\n };\n}\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n/***/ }),\n/* 55 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(8);\nvar isCallable = __w_pdfjs_require__(24);\nvar inspectSource = __w_pdfjs_require__(53);\nvar WeakMap = global.WeakMap;\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n\n/***/ }),\n/* 56 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar shared = __w_pdfjs_require__(37);\nvar uid = __w_pdfjs_require__(43);\nvar keys = shared('keys');\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n/***/ }),\n/* 57 */\n/***/ ((module) => {\n\nmodule.exports = {};\n\n/***/ }),\n/* 58 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar hasOwn = __w_pdfjs_require__(41);\nvar ownKeys = __w_pdfjs_require__(59);\nvar getOwnPropertyDescriptorModule = __w_pdfjs_require__(9);\nvar definePropertyModule = __w_pdfjs_require__(47);\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n  var key = keys[i];\n  if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n   defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n  }\n }\n};\n\n/***/ }),\n/* 59 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar getBuiltIn = __w_pdfjs_require__(26);\nvar uncurryThis = __w_pdfjs_require__(18);\nvar getOwnPropertyNamesModule = __w_pdfjs_require__(60);\nvar getOwnPropertySymbolsModule = __w_pdfjs_require__(69);\nvar anObject = __w_pdfjs_require__(49);\nvar concat = uncurryThis([].concat);\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n\n/***/ }),\n/* 60 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\nvar internalObjectKeys = __w_pdfjs_require__(61);\nvar enumBugKeys = __w_pdfjs_require__(68);\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n/***/ }),\n/* 61 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(18);\nvar hasOwn = __w_pdfjs_require__(41);\nvar toIndexedObject = __w_pdfjs_require__(16);\nvar indexOf = (__w_pdfjs_require__(62).indexOf);\nvar hiddenKeys = __w_pdfjs_require__(57);\nvar push = uncurryThis([].push);\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O)\n  !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n while (names.length > i)\n  if (hasOwn(O, key = names[i++])) {\n   ~indexOf(result, key) || push(result, key);\n  }\n return result;\n};\n\n/***/ }),\n/* 62 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toIndexedObject = __w_pdfjs_require__(16);\nvar toAbsoluteIndex = __w_pdfjs_require__(63);\nvar lengthOfArrayLike = __w_pdfjs_require__(66);\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n  var O = toIndexedObject($this);\n  var length = lengthOfArrayLike(O);\n  var index = toAbsoluteIndex(fromIndex, length);\n  var value;\n  if (IS_INCLUDES && el != el)\n   while (length > index) {\n    value = O[index++];\n    if (value != value)\n     return true;\n   }\n  else\n   for (; length > index; index++) {\n    if ((IS_INCLUDES || index in O) && O[index] === el)\n     return IS_INCLUDES || index || 0;\n   }\n  return !IS_INCLUDES && -1;\n };\n};\nmodule.exports = {\n includes: createMethod(true),\n indexOf: createMethod(false)\n};\n\n/***/ }),\n/* 63 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toIntegerOrInfinity = __w_pdfjs_require__(64);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n/***/ }),\n/* 64 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar trunc = __w_pdfjs_require__(65);\nmodule.exports = function (argument) {\n var number = +argument;\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n\n/***/ }),\n/* 65 */\n/***/ ((module) => {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n\n/***/ }),\n/* 66 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toLength = __w_pdfjs_require__(67);\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n\n/***/ }),\n/* 67 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toIntegerOrInfinity = __w_pdfjs_require__(64);\nvar min = Math.min;\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0;\n};\n\n/***/ }),\n/* 68 */\n/***/ ((module) => {\n\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n/***/ }),\n/* 69 */\n/***/ ((__unused_webpack_module, exports) => {\n\nexports.f = Object.getOwnPropertySymbols;\n\n/***/ }),\n/* 70 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(11);\nvar isCallable = __w_pdfjs_require__(24);\nvar replacement = /#|\\.prototype\\./;\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true : value == NATIVE ? false : isCallable(detection) ? fails(detection) : !!detection;\n};\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\nmodule.exports = isForced;\n\n/***/ }),\n/* 71 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(36);\nvar create = __w_pdfjs_require__(72);\nvar defineProperty = (__w_pdfjs_require__(47).f);\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n  configurable: true,\n  value: create(null)\n });\n}\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n/***/ }),\n/* 72 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar anObject = __w_pdfjs_require__(49);\nvar definePropertiesModule = __w_pdfjs_require__(73);\nvar enumBugKeys = __w_pdfjs_require__(68);\nvar hiddenKeys = __w_pdfjs_require__(57);\nvar html = __w_pdfjs_require__(75);\nvar documentCreateElement = __w_pdfjs_require__(45);\nvar sharedKey = __w_pdfjs_require__(56);\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar EmptyConstructor = function () {\n};\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null;\n return temp;\n};\nvar NullProtoObjectViaIFrame = function () {\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n  activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) {\n }\n NullProtoObject = typeof document != 'undefined' ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument);\n var length = enumBugKeys.length;\n while (length--)\n  delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\nhiddenKeys[IE_PROTO] = true;\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n  EmptyConstructor[PROTOTYPE] = anObject(O);\n  result = new EmptyConstructor();\n  EmptyConstructor[PROTOTYPE] = null;\n  result[IE_PROTO] = O;\n } else\n  result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n\n/***/ }),\n/* 73 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\nvar DESCRIPTORS = __w_pdfjs_require__(10);\nvar V8_PROTOTYPE_DEFINE_BUG = __w_pdfjs_require__(48);\nvar definePropertyModule = __w_pdfjs_require__(47);\nvar anObject = __w_pdfjs_require__(49);\nvar toIndexedObject = __w_pdfjs_require__(16);\nvar objectKeys = __w_pdfjs_require__(74);\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index)\n  definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n\n/***/ }),\n/* 74 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar internalObjectKeys = __w_pdfjs_require__(61);\nvar enumBugKeys = __w_pdfjs_require__(68);\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n/***/ }),\n/* 75 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar getBuiltIn = __w_pdfjs_require__(26);\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n/***/ }),\n/* 76 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(8);\nvar uncurryThis = __w_pdfjs_require__(18);\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]);\n};\n\n/***/ }),\n/* 77 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(78);\n\n/***/ }),\n/* 78 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __w_pdfjs_require__(79);\nvar lengthOfArrayLike = __w_pdfjs_require__(66);\nvar toIntegerOrInfinity = __w_pdfjs_require__(64);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return k < 0 || k >= len ? undefined : O[k];\n});\n\n/***/ }),\n/* 79 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar NATIVE_ARRAY_BUFFER = __w_pdfjs_require__(80);\nvar DESCRIPTORS = __w_pdfjs_require__(10);\nvar global = __w_pdfjs_require__(8);\nvar isCallable = __w_pdfjs_require__(24);\nvar isObject = __w_pdfjs_require__(23);\nvar hasOwn = __w_pdfjs_require__(41);\nvar classof = __w_pdfjs_require__(81);\nvar tryToString = __w_pdfjs_require__(34);\nvar createNonEnumerableProperty = __w_pdfjs_require__(46);\nvar defineBuiltIn = __w_pdfjs_require__(50);\nvar defineProperty = (__w_pdfjs_require__(47).f);\nvar isPrototypeOf = __w_pdfjs_require__(27);\nvar getPrototypeOf = __w_pdfjs_require__(83);\nvar setPrototypeOf = __w_pdfjs_require__(85);\nvar wellKnownSymbol = __w_pdfjs_require__(36);\nvar uid = __w_pdfjs_require__(43);\nvar InternalStateModule = __w_pdfjs_require__(54);\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\nvar isView = function isView(it) {\n if (!isObject(it))\n  return false;\n var klass = classof(it);\n return klass === 'DataView' || hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass);\n};\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto))\n  return;\n var state = getInternalState(proto);\n return state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\nvar isTypedArray = function (it) {\n if (!isObject(it))\n  return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass);\n};\nvar aTypedArray = function (it) {\n if (isTypedArray(it))\n  return it;\n throw TypeError('Target is not a typed array');\n};\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C)))\n  return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS)\n  return;\n if (forced)\n  for (var ARRAY in TypedArrayConstructorsList) {\n   var TypedArrayConstructor = global[ARRAY];\n   if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY))\n    try {\n     delete TypedArrayConstructor.prototype[KEY];\n    } catch (error) {\n     try {\n      TypedArrayConstructor.prototype[KEY] = property;\n     } catch (error2) {\n     }\n    }\n  }\n if (!TypedArrayPrototype[KEY] || forced) {\n  defineBuiltIn(TypedArrayPrototype, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS)\n  return;\n if (setPrototypeOf) {\n  if (forced)\n   for (ARRAY in TypedArrayConstructorsList) {\n    TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY))\n     try {\n      delete TypedArrayConstructor[KEY];\n     } catch (error) {\n     }\n   }\n  if (!TypedArray[KEY] || forced) {\n   try {\n    return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n   } catch (error) {\n   }\n  } else\n   return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n  TypedArrayConstructor = global[ARRAY];\n  if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n   defineBuiltIn(TypedArrayConstructor, KEY, property);\n  }\n }\n};\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype)\n  enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else\n  NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype)\n  enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n TypedArray = function TypedArray() {\n  throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS)\n  for (NAME in TypedArrayConstructorsList) {\n   if (global[NAME])\n    setPrototypeOf(global[NAME], TypedArray);\n  }\n}\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS)\n  for (NAME in TypedArrayConstructorsList) {\n   if (global[NAME])\n    setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n  }\n}\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, {\n  get: function () {\n   return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n  }\n });\n for (NAME in TypedArrayConstructorsList)\n  if (global[NAME]) {\n   createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n  }\n}\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n\n/***/ }),\n/* 80 */\n/***/ ((module) => {\n\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n\n/***/ }),\n/* 81 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(82);\nvar isCallable = __w_pdfjs_require__(24);\nvar classofRaw = __w_pdfjs_require__(19);\nvar wellKnownSymbol = __w_pdfjs_require__(36);\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\nvar CORRECT_ARGUMENTS = classofRaw((function () {\n return arguments;\n}())) == 'Arguments';\nvar tryGet = function (it, key) {\n try {\n  return it[key];\n } catch (error) {\n }\n};\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n\n/***/ }),\n/* 82 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(36);\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\ntest[TO_STRING_TAG] = 'z';\nmodule.exports = String(test) === '[object z]';\n\n/***/ }),\n/* 83 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar hasOwn = __w_pdfjs_require__(41);\nvar isCallable = __w_pdfjs_require__(24);\nvar toObject = __w_pdfjs_require__(42);\nvar sharedKey = __w_pdfjs_require__(56);\nvar CORRECT_PROTOTYPE_GETTER = __w_pdfjs_require__(84);\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO))\n  return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n  return constructor.prototype;\n }\n return object instanceof $Object ? ObjectPrototype : null;\n};\n\n/***/ }),\n/* 84 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(11);\nmodule.exports = !fails(function () {\n function F() {\n }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n/***/ }),\n/* 85 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(18);\nvar anObject = __w_pdfjs_require__(49);\nvar aPossiblePrototype = __w_pdfjs_require__(86);\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? (function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n  setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n  setter(test, []);\n  CORRECT_SETTER = test instanceof Array;\n } catch (error) {\n }\n return function setPrototypeOf(O, proto) {\n  anObject(O);\n  aPossiblePrototype(proto);\n  if (CORRECT_SETTER)\n   setter(O, proto);\n  else\n   O.__proto__ = proto;\n  return O;\n };\n}()) : undefined);\n\n/***/ }),\n/* 86 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(24);\nvar $String = String;\nvar $TypeError = TypeError;\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument))\n  return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n\n/***/ }),\n/* 87 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(88);\n__w_pdfjs_require__(94);\n__w_pdfjs_require__(96);\n__w_pdfjs_require__(118);\n__w_pdfjs_require__(120);\nvar path = __w_pdfjs_require__(129);\nmodule.exports = path.structuredClone;\n\n/***/ }),\n/* 88 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar toIndexedObject = __w_pdfjs_require__(16);\nvar addToUnscopables = __w_pdfjs_require__(71);\nvar Iterators = __w_pdfjs_require__(89);\nvar InternalStateModule = __w_pdfjs_require__(54);\nvar defineProperty = (__w_pdfjs_require__(47).f);\nvar defineIterator = __w_pdfjs_require__(90);\nvar IS_PURE = __w_pdfjs_require__(38);\nvar DESCRIPTORS = __w_pdfjs_require__(10);\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n  type: ARRAY_ITERATOR,\n  target: toIndexedObject(iterated),\n  index: 0,\n  kind: kind\n });\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n  state.target = undefined;\n  return {\n   value: undefined,\n   done: true\n  };\n }\n if (kind == 'keys')\n  return {\n   value: index,\n   done: false\n  };\n if (kind == 'values')\n  return {\n   value: target[index],\n   done: false\n  };\n return {\n  value: [\n   index,\n   target[index]\n  ],\n  done: false\n };\n}, 'values');\nvar values = Iterators.Arguments = Iterators.Array;\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values')\n try {\n  defineProperty(values, 'name', { value: 'values' });\n } catch (error) {\n }\n\n/***/ }),\n/* 89 */\n/***/ ((module) => {\n\nmodule.exports = {};\n\n/***/ }),\n/* 90 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar $ = __w_pdfjs_require__(7);\nvar call = __w_pdfjs_require__(12);\nvar IS_PURE = __w_pdfjs_require__(38);\nvar FunctionName = __w_pdfjs_require__(52);\nvar isCallable = __w_pdfjs_require__(24);\nvar createIteratorConstructor = __w_pdfjs_require__(91);\nvar getPrototypeOf = __w_pdfjs_require__(83);\nvar setPrototypeOf = __w_pdfjs_require__(85);\nvar setToStringTag = __w_pdfjs_require__(93);\nvar createNonEnumerableProperty = __w_pdfjs_require__(46);\nvar defineBuiltIn = __w_pdfjs_require__(50);\nvar wellKnownSymbol = __w_pdfjs_require__(36);\nvar Iterators = __w_pdfjs_require__(89);\nvar IteratorsCore = __w_pdfjs_require__(92);\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\nvar returnThis = function () {\n return this;\n};\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n var getIterationMethod = function (KIND) {\n  if (KIND === DEFAULT && defaultIterator)\n   return defaultIterator;\n  if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype)\n   return IterablePrototype[KIND];\n  switch (KIND) {\n  case KEYS:\n   return function keys() {\n    return new IteratorConstructor(this, KIND);\n   };\n  case VALUES:\n   return function values() {\n    return new IteratorConstructor(this, KIND);\n   };\n  case ENTRIES:\n   return function entries() {\n    return new IteratorConstructor(this, KIND);\n   };\n  }\n  return function () {\n   return new IteratorConstructor(this);\n  };\n };\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n if (anyNativeIterator) {\n  CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n  if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n   if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n    if (setPrototypeOf) {\n     setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n    } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n     defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n    }\n   }\n   setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n   if (IS_PURE)\n    Iterators[TO_STRING_TAG] = returnThis;\n  }\n }\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n  if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n   createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n  } else {\n   INCORRECT_VALUES_NAME = true;\n   defaultIterator = function values() {\n    return call(nativeIterator, this);\n   };\n  }\n }\n if (DEFAULT) {\n  methods = {\n   values: getIterationMethod(VALUES),\n   keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n   entries: getIterationMethod(ENTRIES)\n  };\n  if (FORCED)\n   for (KEY in methods) {\n    if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n     defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n    }\n   }\n  else\n   $({\n    target: NAME,\n    proto: true,\n    forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME\n   }, methods);\n }\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n  defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n return methods;\n};\n\n/***/ }),\n/* 91 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar IteratorPrototype = (__w_pdfjs_require__(92).IteratorPrototype);\nvar create = __w_pdfjs_require__(72);\nvar createPropertyDescriptor = __w_pdfjs_require__(15);\nvar setToStringTag = __w_pdfjs_require__(93);\nvar Iterators = __w_pdfjs_require__(89);\nvar returnThis = function () {\n return this;\n};\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n/***/ }),\n/* 92 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar fails = __w_pdfjs_require__(11);\nvar isCallable = __w_pdfjs_require__(24);\nvar create = __w_pdfjs_require__(72);\nvar getPrototypeOf = __w_pdfjs_require__(83);\nvar defineBuiltIn = __w_pdfjs_require__(50);\nvar wellKnownSymbol = __w_pdfjs_require__(36);\nvar IS_PURE = __w_pdfjs_require__(38);\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\nif ([].keys) {\n arrayIterator = [].keys();\n if (!('next' in arrayIterator))\n  BUGGY_SAFARI_ITERATORS = true;\n else {\n  PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n  if (PrototypeOfArrayIteratorPrototype !== Object.prototype)\n   IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\nif (NEW_ITERATOR_PROTOTYPE)\n IteratorPrototype = {};\nelse if (IS_PURE)\n IteratorPrototype = create(IteratorPrototype);\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n  return this;\n });\n}\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n/***/ }),\n/* 93 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar defineProperty = (__w_pdfjs_require__(47).f);\nvar hasOwn = __w_pdfjs_require__(41);\nvar wellKnownSymbol = __w_pdfjs_require__(36);\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC)\n  target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n  defineProperty(target, TO_STRING_TAG, {\n   configurable: true,\n   value: TAG\n  });\n }\n};\n\n/***/ }),\n/* 94 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(82);\nvar defineBuiltIn = __w_pdfjs_require__(50);\nvar toString = __w_pdfjs_require__(95);\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n/***/ }),\n/* 95 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(82);\nvar classof = __w_pdfjs_require__(81);\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n\n/***/ }),\n/* 96 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(97);\n\n/***/ }),\n/* 97 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar collection = __w_pdfjs_require__(98);\nvar collectionStrong = __w_pdfjs_require__(115);\ncollection('Map', function (init) {\n return function Map() {\n  return init(this, arguments.length ? arguments[0] : undefined);\n };\n}, collectionStrong);\n\n/***/ }),\n/* 98 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar $ = __w_pdfjs_require__(7);\nvar global = __w_pdfjs_require__(8);\nvar uncurryThis = __w_pdfjs_require__(18);\nvar isForced = __w_pdfjs_require__(70);\nvar defineBuiltIn = __w_pdfjs_require__(50);\nvar InternalMetadataModule = __w_pdfjs_require__(99);\nvar iterate = __w_pdfjs_require__(106);\nvar anInstance = __w_pdfjs_require__(112);\nvar isCallable = __w_pdfjs_require__(24);\nvar isObject = __w_pdfjs_require__(23);\nvar fails = __w_pdfjs_require__(11);\nvar checkCorrectnessOfIteration = __w_pdfjs_require__(113);\nvar setToStringTag = __w_pdfjs_require__(93);\nvar inheritIfRequired = __w_pdfjs_require__(114);\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n var fixMethod = function (KEY) {\n  var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n  defineBuiltIn(NativePrototype, KEY, KEY == 'add' ? function add(value) {\n   uncurriedNativeMethod(this, value === 0 ? 0 : value);\n   return this;\n  } : KEY == 'delete' ? function (key) {\n   return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n  } : KEY == 'get' ? function get(key) {\n   return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n  } : KEY == 'has' ? function has(key) {\n   return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n  } : function set(key, value) {\n   uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n   return this;\n  });\n };\n var REPLACE = isForced(CONSTRUCTOR_NAME, !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n  new NativeConstructor().entries().next();\n })));\n if (REPLACE) {\n  Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n  InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n  var instance = new Constructor();\n  var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n  var THROWS_ON_PRIMITIVES = fails(function () {\n   instance.has(1);\n  });\n  var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) {\n   new NativeConstructor(iterable);\n  });\n  var BUGGY_ZERO = !IS_WEAK && fails(function () {\n   var $instance = new NativeConstructor();\n   var index = 5;\n   while (index--)\n    $instance[ADDER](index, index);\n   return !$instance.has(-0);\n  });\n  if (!ACCEPT_ITERABLES) {\n   Constructor = wrapper(function (dummy, iterable) {\n    anInstance(dummy, NativePrototype);\n    var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n    if (iterable != undefined)\n     iterate(iterable, that[ADDER], {\n      that: that,\n      AS_ENTRIES: IS_MAP\n     });\n    return that;\n   });\n   Constructor.prototype = NativePrototype;\n   NativePrototype.constructor = Constructor;\n  }\n  if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n   fixMethod('delete');\n   fixMethod('has');\n   IS_MAP && fixMethod('get');\n  }\n  if (BUGGY_ZERO || HASNT_CHAINING)\n   fixMethod(ADDER);\n  if (IS_WEAK && NativePrototype.clear)\n   delete NativePrototype.clear;\n }\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({\n  global: true,\n  constructor: true,\n  forced: Constructor != NativeConstructor\n }, exported);\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n if (!IS_WEAK)\n  common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n return Constructor;\n};\n\n/***/ }),\n/* 99 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar $ = __w_pdfjs_require__(7);\nvar uncurryThis = __w_pdfjs_require__(18);\nvar hiddenKeys = __w_pdfjs_require__(57);\nvar isObject = __w_pdfjs_require__(23);\nvar hasOwn = __w_pdfjs_require__(41);\nvar defineProperty = (__w_pdfjs_require__(47).f);\nvar getOwnPropertyNamesModule = __w_pdfjs_require__(60);\nvar getOwnPropertyNamesExternalModule = __w_pdfjs_require__(100);\nvar isExtensible = __w_pdfjs_require__(103);\nvar uid = __w_pdfjs_require__(43);\nvar FREEZING = __w_pdfjs_require__(105);\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, {\n  value: {\n   objectID: 'O' + id++,\n   weakData: {}\n  }\n });\n};\nvar fastKey = function (it, create) {\n if (!isObject(it))\n  return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n  if (!isExtensible(it))\n   return 'F';\n  if (!create)\n   return 'E';\n  setMetadata(it);\n }\n return it[METADATA].objectID;\n};\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n  if (!isExtensible(it))\n   return true;\n  if (!create)\n   return false;\n  setMetadata(it);\n }\n return it[METADATA].weakData;\n};\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA))\n  setMetadata(it);\n return it;\n};\nvar enable = function () {\n meta.enable = function () {\n };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n if (getOwnPropertyNames(test).length) {\n  getOwnPropertyNamesModule.f = function (it) {\n   var result = getOwnPropertyNames(it);\n   for (var i = 0, length = result.length; i < length; i++) {\n    if (result[i] === METADATA) {\n     splice(result, i, 1);\n     break;\n    }\n   }\n   return result;\n  };\n  $({\n   target: 'Object',\n   stat: true,\n   forced: true\n  }, { getOwnPropertyNames: getOwnPropertyNamesExternalModule.f });\n }\n};\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\nhiddenKeys[METADATA] = true;\n\n/***/ }),\n/* 100 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar classof = __w_pdfjs_require__(19);\nvar toIndexedObject = __w_pdfjs_require__(16);\nvar $getOwnPropertyNames = (__w_pdfjs_require__(60).f);\nvar arraySlice = __w_pdfjs_require__(101);\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];\nvar getWindowNames = function (it) {\n try {\n  return $getOwnPropertyNames(it);\n } catch (error) {\n  return arraySlice(windowNames);\n }\n};\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window' ? getWindowNames(it) : $getOwnPropertyNames(toIndexedObject(it));\n};\n\n/***/ }),\n/* 101 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar toAbsoluteIndex = __w_pdfjs_require__(63);\nvar lengthOfArrayLike = __w_pdfjs_require__(66);\nvar createProperty = __w_pdfjs_require__(102);\nvar $Array = Array;\nvar max = Math.max;\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++)\n  createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n\n/***/ }),\n/* 102 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar toPropertyKey = __w_pdfjs_require__(21);\nvar definePropertyModule = __w_pdfjs_require__(47);\nvar createPropertyDescriptor = __w_pdfjs_require__(15);\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object)\n  definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else\n  object[propertyKey] = value;\n};\n\n/***/ }),\n/* 103 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(11);\nvar isObject = __w_pdfjs_require__(23);\nvar classof = __w_pdfjs_require__(19);\nvar ARRAY_BUFFER_NON_EXTENSIBLE = __w_pdfjs_require__(104);\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () {\n $isExtensible(1);\n});\nmodule.exports = FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE ? function isExtensible(it) {\n if (!isObject(it))\n  return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer')\n  return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n\n/***/ }),\n/* 104 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(11);\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n  var buffer = new ArrayBuffer(8);\n  if (Object.isExtensible(buffer))\n   Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n\n/***/ }),\n/* 105 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(11);\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n\n/***/ }),\n/* 106 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar bind = __w_pdfjs_require__(107);\nvar call = __w_pdfjs_require__(12);\nvar anObject = __w_pdfjs_require__(49);\nvar tryToString = __w_pdfjs_require__(34);\nvar isArrayIteratorMethod = __w_pdfjs_require__(108);\nvar lengthOfArrayLike = __w_pdfjs_require__(66);\nvar isPrototypeOf = __w_pdfjs_require__(27);\nvar getIterator = __w_pdfjs_require__(109);\nvar getIteratorMethod = __w_pdfjs_require__(110);\nvar iteratorClose = __w_pdfjs_require__(111);\nvar $TypeError = TypeError;\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\nvar ResultPrototype = Result.prototype;\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n var stop = function (condition) {\n  if (iterator)\n   iteratorClose(iterator, 'normal', condition);\n  return new Result(true, condition);\n };\n var callFn = function (value) {\n  if (AS_ENTRIES) {\n   anObject(value);\n   return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n  }\n  return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n if (IS_RECORD) {\n  iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n  iterator = iterable;\n } else {\n  iterFn = getIteratorMethod(iterable);\n  if (!iterFn)\n   throw $TypeError(tryToString(iterable) + ' is not iterable');\n  if (isArrayIteratorMethod(iterFn)) {\n   for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n    result = callFn(iterable[index]);\n    if (result && isPrototypeOf(ResultPrototype, result))\n     return result;\n   }\n   return new Result(false);\n  }\n  iterator = getIterator(iterable, iterFn);\n }\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n  try {\n   result = callFn(step.value);\n  } catch (error) {\n   iteratorClose(iterator, 'throw', error);\n  }\n  if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result))\n   return result;\n }\n return new Result(false);\n};\n\n/***/ }),\n/* 107 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(18);\nvar aCallable = __w_pdfjs_require__(33);\nvar NATIVE_BIND = __w_pdfjs_require__(13);\nvar bind = uncurryThis(uncurryThis.bind);\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function () {\n  return fn.apply(that, arguments);\n };\n};\n\n/***/ }),\n/* 108 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(36);\nvar Iterators = __w_pdfjs_require__(89);\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n/***/ }),\n/* 109 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(12);\nvar aCallable = __w_pdfjs_require__(33);\nvar anObject = __w_pdfjs_require__(49);\nvar tryToString = __w_pdfjs_require__(34);\nvar getIteratorMethod = __w_pdfjs_require__(110);\nvar $TypeError = TypeError;\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod))\n  return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n\n/***/ }),\n/* 110 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar classof = __w_pdfjs_require__(81);\nvar getMethod = __w_pdfjs_require__(32);\nvar Iterators = __w_pdfjs_require__(89);\nvar wellKnownSymbol = __w_pdfjs_require__(36);\nvar ITERATOR = wellKnownSymbol('iterator');\nmodule.exports = function (it) {\n if (it != undefined)\n  return getMethod(it, ITERATOR) || getMethod(it, '@@iterator') || Iterators[classof(it)];\n};\n\n/***/ }),\n/* 111 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(12);\nvar anObject = __w_pdfjs_require__(49);\nvar getMethod = __w_pdfjs_require__(32);\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n  innerResult = getMethod(iterator, 'return');\n  if (!innerResult) {\n   if (kind === 'throw')\n    throw value;\n   return value;\n  }\n  innerResult = call(innerResult, iterator);\n } catch (error) {\n  innerError = true;\n  innerResult = error;\n }\n if (kind === 'throw')\n  throw value;\n if (innerError)\n  throw innerResult;\n anObject(innerResult);\n return value;\n};\n\n/***/ }),\n/* 112 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isPrototypeOf = __w_pdfjs_require__(27);\nvar $TypeError = TypeError;\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it))\n  return it;\n throw $TypeError('Incorrect invocation');\n};\n\n/***/ }),\n/* 113 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar wellKnownSymbol = __w_pdfjs_require__(36);\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\ntry {\n var called = 0;\n var iteratorWithReturn = {\n  next: function () {\n   return { done: !!called++ };\n  },\n  'return': function () {\n   SAFE_CLOSING = true;\n  }\n };\n iteratorWithReturn[ITERATOR] = function () {\n  return this;\n };\n Array.from(iteratorWithReturn, function () {\n  throw 2;\n });\n} catch (error) {\n}\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING)\n  return false;\n var ITERATION_SUPPORT = false;\n try {\n  var object = {};\n  object[ITERATOR] = function () {\n   return {\n    next: function () {\n     return { done: ITERATION_SUPPORT = true };\n    }\n   };\n  };\n  exec(object);\n } catch (error) {\n }\n return ITERATION_SUPPORT;\n};\n\n/***/ }),\n/* 114 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar isCallable = __w_pdfjs_require__(24);\nvar isObject = __w_pdfjs_require__(23);\nvar setPrototypeOf = __w_pdfjs_require__(85);\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (setPrototypeOf && isCallable(NewTarget = dummy.constructor) && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype)\n  setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n\n/***/ }),\n/* 115 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar defineProperty = (__w_pdfjs_require__(47).f);\nvar create = __w_pdfjs_require__(72);\nvar defineBuiltIns = __w_pdfjs_require__(116);\nvar bind = __w_pdfjs_require__(107);\nvar anInstance = __w_pdfjs_require__(112);\nvar iterate = __w_pdfjs_require__(106);\nvar defineIterator = __w_pdfjs_require__(90);\nvar setSpecies = __w_pdfjs_require__(117);\nvar DESCRIPTORS = __w_pdfjs_require__(10);\nvar fastKey = (__w_pdfjs_require__(99).fastKey);\nvar InternalStateModule = __w_pdfjs_require__(54);\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n  var Constructor = wrapper(function (that, iterable) {\n   anInstance(that, Prototype);\n   setInternalState(that, {\n    type: CONSTRUCTOR_NAME,\n    index: create(null),\n    first: undefined,\n    last: undefined,\n    size: 0\n   });\n   if (!DESCRIPTORS)\n    that.size = 0;\n   if (iterable != undefined)\n    iterate(iterable, that[ADDER], {\n     that: that,\n     AS_ENTRIES: IS_MAP\n    });\n  });\n  var Prototype = Constructor.prototype;\n  var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n  var define = function (that, key, value) {\n   var state = getInternalState(that);\n   var entry = getEntry(that, key);\n   var previous, index;\n   if (entry) {\n    entry.value = value;\n   } else {\n    state.last = entry = {\n     index: index = fastKey(key, true),\n     key: key,\n     value: value,\n     previous: previous = state.last,\n     next: undefined,\n     removed: false\n    };\n    if (!state.first)\n     state.first = entry;\n    if (previous)\n     previous.next = entry;\n    if (DESCRIPTORS)\n     state.size++;\n    else\n     that.size++;\n    if (index !== 'F')\n     state.index[index] = entry;\n   }\n   return that;\n  };\n  var getEntry = function (that, key) {\n   var state = getInternalState(that);\n   var index = fastKey(key);\n   var entry;\n   if (index !== 'F')\n    return state.index[index];\n   for (entry = state.first; entry; entry = entry.next) {\n    if (entry.key == key)\n     return entry;\n   }\n  };\n  defineBuiltIns(Prototype, {\n   clear: function clear() {\n    var that = this;\n    var state = getInternalState(that);\n    var data = state.index;\n    var entry = state.first;\n    while (entry) {\n     entry.removed = true;\n     if (entry.previous)\n      entry.previous = entry.previous.next = undefined;\n     delete data[entry.index];\n     entry = entry.next;\n    }\n    state.first = state.last = undefined;\n    if (DESCRIPTORS)\n     state.size = 0;\n    else\n     that.size = 0;\n   },\n   'delete': function (key) {\n    var that = this;\n    var state = getInternalState(that);\n    var entry = getEntry(that, key);\n    if (entry) {\n     var next = entry.next;\n     var prev = entry.previous;\n     delete state.index[entry.index];\n     entry.removed = true;\n     if (prev)\n      prev.next = next;\n     if (next)\n      next.previous = prev;\n     if (state.first == entry)\n      state.first = next;\n     if (state.last == entry)\n      state.last = prev;\n     if (DESCRIPTORS)\n      state.size--;\n     else\n      that.size--;\n    }\n    return !!entry;\n   },\n   forEach: function forEach(callbackfn) {\n    var state = getInternalState(this);\n    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    var entry;\n    while (entry = entry ? entry.next : state.first) {\n     boundFunction(entry.value, entry.key, this);\n     while (entry && entry.removed)\n      entry = entry.previous;\n    }\n   },\n   has: function has(key) {\n    return !!getEntry(this, key);\n   }\n  });\n  defineBuiltIns(Prototype, IS_MAP ? {\n   get: function get(key) {\n    var entry = getEntry(this, key);\n    return entry && entry.value;\n   },\n   set: function set(key, value) {\n    return define(this, key === 0 ? 0 : key, value);\n   }\n  } : {\n   add: function add(value) {\n    return define(this, value = value === 0 ? 0 : value, value);\n   }\n  });\n  if (DESCRIPTORS)\n   defineProperty(Prototype, 'size', {\n    get: function () {\n     return getInternalState(this).size;\n    }\n   });\n  return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n  var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n  var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n  var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n  defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n   setInternalState(this, {\n    type: ITERATOR_NAME,\n    target: iterated,\n    state: getInternalCollectionState(iterated),\n    kind: kind,\n    last: undefined\n   });\n  }, function () {\n   var state = getInternalIteratorState(this);\n   var kind = state.kind;\n   var entry = state.last;\n   while (entry && entry.removed)\n    entry = entry.previous;\n   if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n    state.target = undefined;\n    return {\n     value: undefined,\n     done: true\n    };\n   }\n   if (kind == 'keys')\n    return {\n     value: entry.key,\n     done: false\n    };\n   if (kind == 'values')\n    return {\n     value: entry.value,\n     done: false\n    };\n   return {\n    value: [\n     entry.key,\n     entry.value\n    ],\n    done: false\n   };\n  }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n  setSpecies(CONSTRUCTOR_NAME);\n }\n};\n\n/***/ }),\n/* 116 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar defineBuiltIn = __w_pdfjs_require__(50);\nmodule.exports = function (target, src, options) {\n for (var key in src)\n  defineBuiltIn(target, key, src[key], options);\n return target;\n};\n\n/***/ }),\n/* 117 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar getBuiltIn = __w_pdfjs_require__(26);\nvar definePropertyModule = __w_pdfjs_require__(47);\nvar wellKnownSymbol = __w_pdfjs_require__(36);\nvar DESCRIPTORS = __w_pdfjs_require__(10);\nvar SPECIES = wellKnownSymbol('species');\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n  defineProperty(Constructor, SPECIES, {\n   configurable: true,\n   get: function () {\n    return this;\n   }\n  });\n }\n};\n\n/***/ }),\n/* 118 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__(119);\n\n/***/ }),\n/* 119 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar collection = __w_pdfjs_require__(98);\nvar collectionStrong = __w_pdfjs_require__(115);\ncollection('Set', function (init) {\n return function Set() {\n  return init(this, arguments.length ? arguments[0] : undefined);\n };\n}, collectionStrong);\n\n/***/ }),\n/* 120 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar IS_PURE = __w_pdfjs_require__(38);\nvar $ = __w_pdfjs_require__(7);\nvar global = __w_pdfjs_require__(8);\nvar getBuiltin = __w_pdfjs_require__(26);\nvar uncurryThis = __w_pdfjs_require__(18);\nvar fails = __w_pdfjs_require__(11);\nvar uid = __w_pdfjs_require__(43);\nvar isCallable = __w_pdfjs_require__(24);\nvar isConstructor = __w_pdfjs_require__(121);\nvar isObject = __w_pdfjs_require__(23);\nvar isSymbol = __w_pdfjs_require__(25);\nvar iterate = __w_pdfjs_require__(106);\nvar anObject = __w_pdfjs_require__(49);\nvar classof = __w_pdfjs_require__(81);\nvar hasOwn = __w_pdfjs_require__(41);\nvar createProperty = __w_pdfjs_require__(102);\nvar createNonEnumerableProperty = __w_pdfjs_require__(46);\nvar lengthOfArrayLike = __w_pdfjs_require__(66);\nvar validateArgumentsLength = __w_pdfjs_require__(122);\nvar getRegExpFlags = __w_pdfjs_require__(123);\nvar ERROR_STACK_INSTALLABLE = __w_pdfjs_require__(125);\nvar V8 = __w_pdfjs_require__(30);\nvar IS_BROWSER = __w_pdfjs_require__(126);\nvar IS_DENO = __w_pdfjs_require__(127);\nvar IS_NODE = __w_pdfjs_require__(128);\nvar Object = global.Object;\nvar Date = global.Date;\nvar Error = global.Error;\nvar EvalError = global.EvalError;\nvar RangeError = global.RangeError;\nvar ReferenceError = global.ReferenceError;\nvar SyntaxError = global.SyntaxError;\nvar TypeError = global.TypeError;\nvar URIError = global.URIError;\nvar PerformanceMark = global.PerformanceMark;\nvar WebAssembly = global.WebAssembly;\nvar CompileError = WebAssembly && WebAssembly.CompileError || Error;\nvar LinkError = WebAssembly && WebAssembly.LinkError || Error;\nvar RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error;\nvar DOMException = getBuiltin('DOMException');\nvar Set = getBuiltin('Set');\nvar Map = getBuiltin('Map');\nvar MapPrototype = Map.prototype;\nvar mapHas = uncurryThis(MapPrototype.has);\nvar mapGet = uncurryThis(MapPrototype.get);\nvar mapSet = uncurryThis(MapPrototype.set);\nvar setAdd = uncurryThis(Set.prototype.add);\nvar objectKeys = getBuiltin('Object', 'keys');\nvar push = uncurryThis([].push);\nvar booleanValueOf = uncurryThis(true.valueOf);\nvar numberValueOf = uncurryThis(1.0.valueOf);\nvar stringValueOf = uncurryThis(''.valueOf);\nvar getTime = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n  var set1 = new global.Set([7]);\n  var set2 = structuredCloneImplementation(set1);\n  var number = structuredCloneImplementation(Object(7));\n  return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7;\n }) && structuredCloneImplementation;\n};\nvar checkErrorsCloning = function (structuredCloneImplementation, $Error) {\n return !fails(function () {\n  var error = new $Error();\n  var test = structuredCloneImplementation({\n   a: error,\n   b: error\n  });\n  return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);\n });\n};\nvar checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n  var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n  return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3;\n });\n};\nvar nativeStructuredClone = global.structuredClone;\nvar FORCED_REPLACEMENT = IS_PURE || !checkErrorsCloning(nativeStructuredClone, Error) || !checkErrorsCloning(nativeStructuredClone, DOMException) || !checkNewErrorsCloningSemantic(nativeStructuredClone);\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\nvar throwUncloneable = function (type) {\n throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\nvar throwUnpolyfillable = function (type, kind) {\n throw new DOMException((kind || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\nvar structuredCloneInternal = function (value, map) {\n if (isSymbol(value))\n  throwUncloneable('Symbol');\n if (!isObject(value))\n  return value;\n if (map) {\n  if (mapHas(map, value))\n   return mapGet(map, value);\n } else\n  map = new Map();\n var type = classof(value);\n var deep = false;\n var C, name, cloned, dataTransfer, i, length, keys, key, source, target;\n switch (type) {\n case 'Array':\n  cloned = [];\n  deep = true;\n  break;\n case 'Object':\n  cloned = {};\n  deep = true;\n  break;\n case 'Map':\n  cloned = new Map();\n  deep = true;\n  break;\n case 'Set':\n  cloned = new Set();\n  deep = true;\n  break;\n case 'RegExp':\n  cloned = new RegExp(value.source, getRegExpFlags(value));\n  break;\n case 'Error':\n  name = value.name;\n  switch (name) {\n  case 'AggregateError':\n   cloned = getBuiltin('AggregateError')([]);\n   break;\n  case 'EvalError':\n   cloned = EvalError();\n   break;\n  case 'RangeError':\n   cloned = RangeError();\n   break;\n  case 'ReferenceError':\n   cloned = ReferenceError();\n   break;\n  case 'SyntaxError':\n   cloned = SyntaxError();\n   break;\n  case 'TypeError':\n   cloned = TypeError();\n   break;\n  case 'URIError':\n   cloned = URIError();\n   break;\n  case 'CompileError':\n   cloned = CompileError();\n   break;\n  case 'LinkError':\n   cloned = LinkError();\n   break;\n  case 'RuntimeError':\n   cloned = RuntimeError();\n   break;\n  default:\n   cloned = Error();\n  }\n  deep = true;\n  break;\n case 'DOMException':\n  cloned = new DOMException(value.message, value.name);\n  deep = true;\n  break;\n case 'DataView':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n  C = global[type];\n  if (!isObject(C))\n   throwUnpolyfillable(type);\n  cloned = new C(structuredCloneInternal(value.buffer, map), value.byteOffset, type === 'DataView' ? value.byteLength : value.length);\n  break;\n case 'DOMQuad':\n  try {\n   cloned = new DOMQuad(structuredCloneInternal(value.p1, map), structuredCloneInternal(value.p2, map), structuredCloneInternal(value.p3, map), structuredCloneInternal(value.p4, map));\n  } catch (error) {\n   if (nativeRestrictedStructuredClone) {\n    cloned = nativeRestrictedStructuredClone(value);\n   } else\n    throwUnpolyfillable(type);\n  }\n  break;\n case 'FileList':\n  C = global.DataTransfer;\n  if (isConstructor(C)) {\n   dataTransfer = new C();\n   for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n    dataTransfer.items.add(structuredCloneInternal(value[i], map));\n   }\n   cloned = dataTransfer.files;\n  } else if (nativeRestrictedStructuredClone) {\n   cloned = nativeRestrictedStructuredClone(value);\n  } else\n   throwUnpolyfillable(type);\n  break;\n case 'ImageData':\n  try {\n   cloned = new ImageData(structuredCloneInternal(value.data, map), value.width, value.height, { colorSpace: value.colorSpace });\n  } catch (error) {\n   if (nativeRestrictedStructuredClone) {\n    cloned = nativeRestrictedStructuredClone(value);\n   } else\n    throwUnpolyfillable(type);\n  }\n  break;\n default:\n  if (nativeRestrictedStructuredClone) {\n   cloned = nativeRestrictedStructuredClone(value);\n  } else\n   switch (type) {\n   case 'BigInt':\n    cloned = Object(value.valueOf());\n    break;\n   case 'Boolean':\n    cloned = Object(booleanValueOf(value));\n    break;\n   case 'Number':\n    cloned = Object(numberValueOf(value));\n    break;\n   case 'String':\n    cloned = Object(stringValueOf(value));\n    break;\n   case 'Date':\n    cloned = new Date(getTime(value));\n    break;\n   case 'ArrayBuffer':\n    C = global.DataView;\n    if (!C && typeof value.slice != 'function')\n     throwUnpolyfillable(type);\n    try {\n     if (typeof value.slice == 'function') {\n      cloned = value.slice(0);\n     } else {\n      length = value.byteLength;\n      cloned = new ArrayBuffer(length);\n      source = new C(value);\n      target = new C(cloned);\n      for (i = 0; i < length; i++) {\n       target.setUint8(i, source.getUint8(i));\n      }\n     }\n    } catch (error) {\n     throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n    }\n    break;\n   case 'SharedArrayBuffer':\n    cloned = value;\n    break;\n   case 'Blob':\n    try {\n     cloned = value.slice(0, value.size, value.type);\n    } catch (error) {\n     throwUnpolyfillable(type);\n    }\n    break;\n   case 'DOMPoint':\n   case 'DOMPointReadOnly':\n    C = global[type];\n    try {\n     cloned = C.fromPoint ? C.fromPoint(value) : new C(value.x, value.y, value.z, value.w);\n    } catch (error) {\n     throwUnpolyfillable(type);\n    }\n    break;\n   case 'DOMRect':\n   case 'DOMRectReadOnly':\n    C = global[type];\n    try {\n     cloned = C.fromRect ? C.fromRect(value) : new C(value.x, value.y, value.width, value.height);\n    } catch (error) {\n     throwUnpolyfillable(type);\n    }\n    break;\n   case 'DOMMatrix':\n   case 'DOMMatrixReadOnly':\n    C = global[type];\n    try {\n     cloned = C.fromMatrix ? C.fromMatrix(value) : new C(value);\n    } catch (error) {\n     throwUnpolyfillable(type);\n    }\n    break;\n   case 'AudioData':\n   case 'VideoFrame':\n    if (!isCallable(value.clone))\n     throwUnpolyfillable(type);\n    try {\n     cloned = value.clone();\n    } catch (error) {\n     throwUncloneable(type);\n    }\n    break;\n   case 'File':\n    try {\n     cloned = new File([value], value.name, value);\n    } catch (error) {\n     throwUnpolyfillable(type);\n    }\n    break;\n   case 'CryptoKey':\n   case 'GPUCompilationMessage':\n   case 'GPUCompilationInfo':\n   case 'ImageBitmap':\n   case 'RTCCertificate':\n   case 'WebAssembly.Module':\n    throwUnpolyfillable(type);\n   default:\n    throwUncloneable(type);\n   }\n }\n mapSet(map, value, cloned);\n if (deep)\n  switch (type) {\n  case 'Array':\n  case 'Object':\n   keys = objectKeys(value);\n   for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n    key = keys[i];\n    createProperty(cloned, key, structuredCloneInternal(value[key], map));\n   }\n   break;\n  case 'Map':\n   value.forEach(function (v, k) {\n    mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n   });\n   break;\n  case 'Set':\n   value.forEach(function (v) {\n    setAdd(cloned, structuredCloneInternal(v, map));\n   });\n   break;\n  case 'Error':\n   createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n   if (hasOwn(value, 'cause')) {\n    createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n   }\n   if (name == 'AggregateError') {\n    cloned.errors = structuredCloneInternal(value.errors, map);\n   }\n  case 'DOMException':\n   if (ERROR_STACK_INSTALLABLE) {\n    createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n   }\n  }\n return cloned;\n};\nvar PROPER_TRANSFER = nativeStructuredClone && !fails(function () {\n if (IS_DENO && V8 > 92 || IS_NODE && V8 > 94 || IS_BROWSER && V8 > 97)\n  return false;\n var buffer = new ArrayBuffer(8);\n var clone = nativeStructuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength != 0 || clone.byteLength != 8;\n});\nvar tryToTransfer = function (rawTransfer, map) {\n if (!isObject(rawTransfer))\n  throw TypeError('Transfer option cannot be converted to a sequence');\n var transfer = [];\n iterate(rawTransfer, function (value) {\n  push(transfer, anObject(value));\n });\n var i = 0;\n var length = lengthOfArrayLike(transfer);\n var value, type, C, transferredArray, transferred, canvas, context;\n if (PROPER_TRANSFER) {\n  transferredArray = nativeStructuredClone(transfer, { transfer: transfer });\n  while (i < length)\n   mapSet(map, transfer[i], transferredArray[i++]);\n } else\n  while (i < length) {\n   value = transfer[i++];\n   if (mapHas(map, value))\n    throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n   type = classof(value);\n   switch (type) {\n   case 'ImageBitmap':\n    C = global.OffscreenCanvas;\n    if (!isConstructor(C))\n     throwUnpolyfillable(type, TRANSFERRING);\n    try {\n     canvas = new C(value.width, value.height);\n     context = canvas.getContext('bitmaprenderer');\n     context.transferFromImageBitmap(value);\n     transferred = canvas.transferToImageBitmap();\n    } catch (error) {\n    }\n    break;\n   case 'AudioData':\n   case 'VideoFrame':\n    if (!isCallable(value.clone) || !isCallable(value.close))\n     throwUnpolyfillable(type, TRANSFERRING);\n    try {\n     transferred = value.clone();\n     value.close();\n    } catch (error) {\n    }\n    break;\n   case 'ArrayBuffer':\n   case 'MessagePort':\n   case 'OffscreenCanvas':\n   case 'ReadableStream':\n   case 'TransformStream':\n   case 'WritableStream':\n    throwUnpolyfillable(type, TRANSFERRING);\n   }\n   if (transferred === undefined)\n    throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n   mapSet(map, value, transferred);\n  }\n};\n$({\n global: true,\n enumerable: true,\n sham: !PROPER_TRANSFER,\n forced: FORCED_REPLACEMENT\n}, {\n structuredClone: function structuredClone(value) {\n  var options = validateArgumentsLength(arguments.length, 1) > 1 && arguments[1] != null ? anObject(arguments[1]) : undefined;\n  var transfer = options ? options.transfer : undefined;\n  var map;\n  if (transfer !== undefined) {\n   map = new Map();\n   tryToTransfer(transfer, map);\n  }\n  return structuredCloneInternal(value, map);\n }\n});\n\n/***/ }),\n/* 121 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar uncurryThis = __w_pdfjs_require__(18);\nvar fails = __w_pdfjs_require__(11);\nvar isCallable = __w_pdfjs_require__(24);\nvar classof = __w_pdfjs_require__(81);\nvar getBuiltIn = __w_pdfjs_require__(26);\nvar inspectSource = __w_pdfjs_require__(53);\nvar noop = function () {\n};\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument))\n  return false;\n try {\n  construct(noop, empty, argument);\n  return true;\n } catch (error) {\n  return false;\n }\n};\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument))\n  return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction':\n  return false;\n }\n try {\n  return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n  return true;\n }\n};\nisConstructorLegacy.sham = true;\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function () {\n  called = true;\n }) || called;\n}) ? isConstructorLegacy : isConstructorModern;\n\n/***/ }),\n/* 122 */\n/***/ ((module) => {\n\nvar $TypeError = TypeError;\nmodule.exports = function (passed, required) {\n if (passed < required)\n  throw $TypeError('Not enough arguments');\n return passed;\n};\n\n/***/ }),\n/* 123 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar call = __w_pdfjs_require__(12);\nvar hasOwn = __w_pdfjs_require__(41);\nvar isPrototypeOf = __w_pdfjs_require__(27);\nvar regExpFlags = __w_pdfjs_require__(124);\nvar RegExpPrototype = RegExp.prototype;\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R) ? call(regExpFlags, R) : flags;\n};\n\n/***/ }),\n/* 124 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\nvar anObject = __w_pdfjs_require__(49);\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices)\n  result += 'd';\n if (that.global)\n  result += 'g';\n if (that.ignoreCase)\n  result += 'i';\n if (that.multiline)\n  result += 'm';\n if (that.dotAll)\n  result += 's';\n if (that.unicode)\n  result += 'u';\n if (that.unicodeSets)\n  result += 'v';\n if (that.sticky)\n  result += 'y';\n return result;\n};\n\n/***/ }),\n/* 125 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar fails = __w_pdfjs_require__(11);\nvar createPropertyDescriptor = __w_pdfjs_require__(15);\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error))\n  return true;\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n\n/***/ }),\n/* 126 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar IS_DENO = __w_pdfjs_require__(127);\nvar IS_NODE = __w_pdfjs_require__(128);\nmodule.exports = !IS_DENO && !IS_NODE && typeof window == 'object' && typeof document == 'object';\n\n/***/ }),\n/* 127 */\n/***/ ((module) => {\n\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n\n/***/ }),\n/* 128 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar classof = __w_pdfjs_require__(19);\nvar global = __w_pdfjs_require__(8);\nmodule.exports = classof(global.process) == 'process';\n\n/***/ }),\n/* 129 */\n/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\nvar global = __w_pdfjs_require__(8);\nmodule.exports = global;\n\n/***/ }),\n/* 130 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.EOF = exports.Dict = exports.Cmd = exports.CIRCULAR_REF = void 0;\nexports.clearPrimitiveCaches = clearPrimitiveCaches;\nexports.isCmd = isCmd;\nexports.isDict = isDict;\nexports.isName = isName;\nexports.isRefsEqual = isRefsEqual;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nexports.CIRCULAR_REF = CIRCULAR_REF;\nconst EOF = Symbol(\"EOF\");\nexports.EOF = EOF;\n\nconst Name = function NameClosure() {\n  let nameCache = Object.create(null);\n\n  class Name {\n    constructor(name) {\n      this.name = name;\n    }\n\n    static get(name) {\n      return nameCache[name] || (nameCache[name] = new Name(name));\n    }\n\n    static _clearCache() {\n      nameCache = Object.create(null);\n    }\n\n  }\n\n  return Name;\n}();\n\nexports.Name = Name;\n\nconst Cmd = function CmdClosure() {\n  let cmdCache = Object.create(null);\n\n  class Cmd {\n    constructor(cmd) {\n      this.cmd = cmd;\n    }\n\n    static get(cmd) {\n      return cmdCache[cmd] || (cmdCache[cmd] = new Cmd(cmd));\n    }\n\n    static _clearCache() {\n      cmdCache = Object.create(null);\n    }\n\n  }\n\n  return Cmd;\n}();\n\nexports.Cmd = Cmd;\n\nconst nonSerializable = function nonSerializableClosure() {\n  return nonSerializable;\n};\n\nclass Dict {\n  constructor() {\n    let xref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    this._map = Object.create(null);\n    this.xref = xref;\n    this.objId = null;\n    this.suppressEncryption = false;\n    this.__nonSerializable__ = nonSerializable;\n  }\n\n  assignXref(newXref) {\n    this.xref = newXref;\n  }\n\n  get size() {\n    return Object.keys(this._map).length;\n  }\n\n  get(key1, key2, key3) {\n    let value = this._map[key1];\n\n    if (value === undefined && key2 !== undefined) {\n      value = this._map[key2];\n\n      if (value === undefined && key3 !== undefined) {\n        value = this._map[key3];\n      }\n    }\n\n    if (value instanceof Ref && this.xref) {\n      return this.xref.fetch(value, this.suppressEncryption);\n    }\n\n    return value;\n  }\n\n  async getAsync(key1, key2, key3) {\n    let value = this._map[key1];\n\n    if (value === undefined && key2 !== undefined) {\n      value = this._map[key2];\n\n      if (value === undefined && key3 !== undefined) {\n        value = this._map[key3];\n      }\n    }\n\n    if (value instanceof Ref && this.xref) {\n      return this.xref.fetchAsync(value, this.suppressEncryption);\n    }\n\n    return value;\n  }\n\n  getArray(key1, key2, key3) {\n    let value = this._map[key1];\n\n    if (value === undefined && key2 !== undefined) {\n      value = this._map[key2];\n\n      if (value === undefined && key3 !== undefined) {\n        value = this._map[key3];\n      }\n    }\n\n    if (value instanceof Ref && this.xref) {\n      value = this.xref.fetch(value, this.suppressEncryption);\n    }\n\n    if (Array.isArray(value)) {\n      value = value.slice();\n\n      for (let i = 0, ii = value.length; i < ii; i++) {\n        if (value[i] instanceof Ref && this.xref) {\n          value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n        }\n      }\n    }\n\n    return value;\n  }\n\n  getRaw(key) {\n    return this._map[key];\n  }\n\n  getKeys() {\n    return Object.keys(this._map);\n  }\n\n  getRawValues() {\n    return Object.values(this._map);\n  }\n\n  set(key, value) {\n    this._map[key] = value;\n  }\n\n  has(key) {\n    return this._map[key] !== undefined;\n  }\n\n  forEach(callback) {\n    for (const key in this._map) {\n      callback(key, this.get(key));\n    }\n  }\n\n  static get empty() {\n    const emptyDict = new Dict(null);\n\n    emptyDict.set = (key, value) => {\n      (0, _util.unreachable)(\"Should not call `set` on the empty dictionary.\");\n    };\n\n    return (0, _util.shadow)(this, \"empty\", emptyDict);\n  }\n\n  static merge(_ref) {\n    let {\n      xref,\n      dictArray,\n      mergeSubDicts = false\n    } = _ref;\n    const mergedDict = new Dict(xref),\n          properties = new Map();\n\n    for (const dict of dictArray) {\n      if (!(dict instanceof Dict)) {\n        continue;\n      }\n\n      for (const [key, value] of Object.entries(dict._map)) {\n        let property = properties.get(key);\n\n        if (property === undefined) {\n          property = [];\n          properties.set(key, property);\n        } else if (!mergeSubDicts || !(value instanceof Dict)) {\n          continue;\n        }\n\n        property.push(value);\n      }\n    }\n\n    for (const [name, values] of properties) {\n      if (values.length === 1 || !(values[0] instanceof Dict)) {\n        mergedDict._map[name] = values[0];\n        continue;\n      }\n\n      const subDict = new Dict(xref);\n\n      for (const dict of values) {\n        for (const [key, value] of Object.entries(dict._map)) {\n          if (subDict._map[key] === undefined) {\n            subDict._map[key] = value;\n          }\n        }\n      }\n\n      if (subDict.size > 0) {\n        mergedDict._map[name] = subDict;\n      }\n    }\n\n    properties.clear();\n    return mergedDict.size > 0 ? mergedDict : Dict.empty;\n  }\n\n}\n\nexports.Dict = Dict;\n\nconst Ref = function RefClosure() {\n  let refCache = Object.create(null);\n\n  class Ref {\n    constructor(num, gen) {\n      this.num = num;\n      this.gen = gen;\n    }\n\n    toString() {\n      if (this.gen === 0) {\n        return `${this.num}R`;\n      }\n\n      return `${this.num}R${this.gen}`;\n    }\n\n    static get(num, gen) {\n      const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n      return refCache[key] || (refCache[key] = new Ref(num, gen));\n    }\n\n    static _clearCache() {\n      refCache = Object.create(null);\n    }\n\n  }\n\n  return Ref;\n}();\n\nexports.Ref = Ref;\n\nclass RefSet {\n  constructor() {\n    let parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    this._set = new Set(parent && parent._set);\n  }\n\n  has(ref) {\n    return this._set.has(ref.toString());\n  }\n\n  put(ref) {\n    this._set.add(ref.toString());\n  }\n\n  remove(ref) {\n    this._set.delete(ref.toString());\n  }\n\n  [Symbol.iterator]() {\n    return this._set.values();\n  }\n\n  clear() {\n    this._set.clear();\n  }\n\n}\n\nexports.RefSet = RefSet;\n\nclass RefSetCache {\n  constructor() {\n    this._map = new Map();\n  }\n\n  get size() {\n    return this._map.size;\n  }\n\n  get(ref) {\n    return this._map.get(ref.toString());\n  }\n\n  has(ref) {\n    return this._map.has(ref.toString());\n  }\n\n  put(ref, obj) {\n    this._map.set(ref.toString(), obj);\n  }\n\n  putAlias(ref, aliasRef) {\n    this._map.set(ref.toString(), this.get(aliasRef));\n  }\n\n  [Symbol.iterator]() {\n    return this._map.values();\n  }\n\n  clear() {\n    this._map.clear();\n  }\n\n}\n\nexports.RefSetCache = RefSetCache;\n\nfunction isName(v, name) {\n  return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n  return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n  return v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type));\n}\n\nfunction isRefsEqual(v1, v2) {\n  return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nfunction clearPrimitiveCaches() {\n  Cmd._clearCache();\n\n  Name._clearCache();\n\n  Ref._clearCache();\n}\n\n/***/ }),\n/* 131 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XRefParseException = exports.XRefEntryException = exports.ParserEOFException = exports.MissingDataException = exports.DocStats = void 0;\nexports.collectActions = collectActions;\nexports.encodeToXmlString = encodeToXmlString;\nexports.escapePDFName = escapePDFName;\nexports.getArrayLookupTableFactory = getArrayLookupTableFactory;\nexports.getInheritableProperty = getInheritableProperty;\nexports.getLookupTableFactory = getLookupTableFactory;\nexports.getNewAnnotationsMap = getNewAnnotationsMap;\nexports.isWhiteSpace = isWhiteSpace;\nexports.log2 = log2;\nexports.numberToString = numberToString;\nexports.parseXFAPath = parseXFAPath;\nexports.readInt8 = readInt8;\nexports.readUint16 = readUint16;\nexports.readUint32 = readUint32;\nexports.recoverJsURL = recoverJsURL;\nexports.toRomanNumerals = toRomanNumerals;\nexports.validateCSSFont = validateCSSFont;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nfunction getLookupTableFactory(initializer) {\n  let lookup;\n  return function () {\n    if (initializer) {\n      lookup = Object.create(null);\n      initializer(lookup);\n      initializer = null;\n    }\n\n    return lookup;\n  };\n}\n\nfunction getArrayLookupTableFactory(initializer) {\n  let lookup;\n  return function () {\n    if (initializer) {\n      let arr = initializer();\n      initializer = null;\n      lookup = Object.create(null);\n\n      for (let i = 0, ii = arr.length; i < ii; i += 2) {\n        lookup[arr[i]] = arr[i + 1];\n      }\n\n      arr = null;\n    }\n\n    return lookup;\n  };\n}\n\nclass MissingDataException extends _util.BaseException {\n  constructor(begin, end) {\n    super(`Missing data [${begin}, ${end})`, \"MissingDataException\");\n    this.begin = begin;\n    this.end = end;\n  }\n\n}\n\nexports.MissingDataException = MissingDataException;\n\nclass ParserEOFException extends _util.BaseException {\n  constructor(msg) {\n    super(msg, \"ParserEOFException\");\n  }\n\n}\n\nexports.ParserEOFException = ParserEOFException;\n\nclass XRefEntryException extends _util.BaseException {\n  constructor(msg) {\n    super(msg, \"XRefEntryException\");\n  }\n\n}\n\nexports.XRefEntryException = XRefEntryException;\n\nclass XRefParseException extends _util.BaseException {\n  constructor(msg) {\n    super(msg, \"XRefParseException\");\n  }\n\n}\n\nexports.XRefParseException = XRefParseException;\n\nclass DocStats {\n  constructor(handler) {\n    this._handler = handler;\n    this._streamTypes = new Set();\n    this._fontTypes = new Set();\n  }\n\n  _send() {\n    const streamTypes = Object.create(null),\n          fontTypes = Object.create(null);\n\n    for (const type of this._streamTypes) {\n      streamTypes[type] = true;\n    }\n\n    for (const type of this._fontTypes) {\n      fontTypes[type] = true;\n    }\n\n    this._handler.send(\"DocStats\", {\n      streamTypes,\n      fontTypes\n    });\n  }\n\n  addStreamType(type) {\n    if (this._streamTypes.has(type)) {\n      return;\n    }\n\n    this._streamTypes.add(type);\n\n    this._send();\n  }\n\n  addFontType(type) {\n    if (this._fontTypes.has(type)) {\n      return;\n    }\n\n    this._fontTypes.add(type);\n\n    this._send();\n  }\n\n}\n\nexports.DocStats = DocStats;\n\nfunction getInheritableProperty(_ref) {\n  let {\n    dict,\n    key,\n    getArray = false,\n    stopWhenFound = true\n  } = _ref;\n  let values;\n  const visited = new _primitives.RefSet();\n\n  while (dict instanceof _primitives.Dict && !(dict.objId && visited.has(dict.objId))) {\n    if (dict.objId) {\n      visited.put(dict.objId);\n    }\n\n    const value = getArray ? dict.getArray(key) : dict.get(key);\n\n    if (value !== undefined) {\n      if (stopWhenFound) {\n        return value;\n      }\n\n      if (!values) {\n        values = [];\n      }\n\n      values.push(value);\n    }\n\n    dict = dict.get(\"Parent\");\n  }\n\n  return values;\n}\n\nconst ROMAN_NUMBER_MAP = [\"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\", \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\", \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"];\n\nfunction toRomanNumerals(number) {\n  let lowerCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  (0, _util.assert)(Number.isInteger(number) && number > 0, \"The number should be a positive integer.\");\n  const romanBuf = [];\n  let pos;\n\n  while (number >= 1000) {\n    number -= 1000;\n    romanBuf.push(\"M\");\n  }\n\n  pos = number / 100 | 0;\n  number %= 100;\n  romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n  pos = number / 10 | 0;\n  number %= 10;\n  romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n  romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);\n  const romanStr = romanBuf.join(\"\");\n  return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\n\nfunction log2(x) {\n  if (x <= 0) {\n    return 0;\n  }\n\n  return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, offset) {\n  return data[offset] << 24 >> 24;\n}\n\nfunction readUint16(data, offset) {\n  return data[offset] << 8 | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n  return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;\n}\n\nfunction isWhiteSpace(ch) {\n  return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\nfunction parseXFAPath(path) {\n  const positionPattern = /(.+)\\[(\\d+)\\]$/;\n  return path.split(\".\").map(component => {\n    const m = component.match(positionPattern);\n\n    if (m) {\n      return {\n        name: m[1],\n        pos: parseInt(m[2], 10)\n      };\n    }\n\n    return {\n      name: component,\n      pos: 0\n    };\n  });\n}\n\nfunction escapePDFName(str) {\n  const buffer = [];\n  let start = 0;\n\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n\n    if (char < 0x21 || char > 0x7e || char === 0x23 || char === 0x28 || char === 0x29 || char === 0x3c || char === 0x3e || char === 0x5b || char === 0x5d || char === 0x7b || char === 0x7d || char === 0x2f || char === 0x25) {\n      if (start < i) {\n        buffer.push(str.substring(start, i));\n      }\n\n      buffer.push(`#${char.toString(16)}`);\n      start = i + 1;\n    }\n  }\n\n  if (buffer.length === 0) {\n    return str;\n  }\n\n  if (start < str.length) {\n    buffer.push(str.substring(start, str.length));\n  }\n\n  return buffer.join(\"\");\n}\n\nfunction _collectJS(entry, xref, list, parents) {\n  if (!entry) {\n    return;\n  }\n\n  let parent = null;\n\n  if (entry instanceof _primitives.Ref) {\n    if (parents.has(entry)) {\n      return;\n    }\n\n    parent = entry;\n    parents.put(parent);\n    entry = xref.fetch(entry);\n  }\n\n  if (Array.isArray(entry)) {\n    for (const element of entry) {\n      _collectJS(element, xref, list, parents);\n    }\n  } else if (entry instanceof _primitives.Dict) {\n    if ((0, _primitives.isName)(entry.get(\"S\"), \"JavaScript\")) {\n      const js = entry.get(\"JS\");\n      let code;\n\n      if (js instanceof _base_stream.BaseStream) {\n        code = js.getString();\n      } else if (typeof js === \"string\") {\n        code = js;\n      }\n\n      code = code && (0, _util.stringToPDFString)(code).replace(/\\u0000/g, \"\");\n\n      if (code) {\n        list.push(code);\n      }\n    }\n\n    _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n  }\n\n  if (parent) {\n    parents.remove(parent);\n  }\n}\n\nfunction collectActions(xref, dict, eventType) {\n  const actions = Object.create(null);\n  const additionalActionsDicts = getInheritableProperty({\n    dict,\n    key: \"AA\",\n    stopWhenFound: false\n  });\n\n  if (additionalActionsDicts) {\n    for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n      const additionalActions = additionalActionsDicts[i];\n\n      if (!(additionalActions instanceof _primitives.Dict)) {\n        continue;\n      }\n\n      for (const key of additionalActions.getKeys()) {\n        const action = eventType[key];\n\n        if (!action) {\n          continue;\n        }\n\n        const actionDict = additionalActions.getRaw(key);\n        const parents = new _primitives.RefSet();\n        const list = [];\n\n        _collectJS(actionDict, xref, list, parents);\n\n        if (list.length > 0) {\n          actions[action] = list;\n        }\n      }\n    }\n  }\n\n  if (dict.has(\"A\")) {\n    const actionDict = dict.get(\"A\");\n    const parents = new _primitives.RefSet();\n    const list = [];\n\n    _collectJS(actionDict, xref, list, parents);\n\n    if (list.length > 0) {\n      actions.Action = list;\n    }\n  }\n\n  return (0, _util.objectSize)(actions) > 0 ? actions : null;\n}\n\nconst XMLEntities = {\n  0x3c: \"&lt;\",\n  0x3e: \"&gt;\",\n  0x26: \"&amp;\",\n  0x22: \"&quot;\",\n  0x27: \"&apos;\"\n};\n\nfunction encodeToXmlString(str) {\n  const buffer = [];\n  let start = 0;\n\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.codePointAt(i);\n\n    if (0x20 <= char && char <= 0x7e) {\n      const entity = XMLEntities[char];\n\n      if (entity) {\n        if (start < i) {\n          buffer.push(str.substring(start, i));\n        }\n\n        buffer.push(entity);\n        start = i + 1;\n      }\n    } else {\n      if (start < i) {\n        buffer.push(str.substring(start, i));\n      }\n\n      buffer.push(`&#x${char.toString(16).toUpperCase()};`);\n\n      if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n        i++;\n      }\n\n      start = i + 1;\n    }\n  }\n\n  if (buffer.length === 0) {\n    return str;\n  }\n\n  if (start < str.length) {\n    buffer.push(str.substring(start, str.length));\n  }\n\n  return buffer.join(\"\");\n}\n\nfunction validateCSSFont(cssFontInfo) {\n  const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n  const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n  const CSS_FONT_WEIGHT_VALUES = new Set([\"100\", \"200\", \"300\", \"400\", \"500\", \"600\", \"700\", \"800\", \"900\", \"1000\", \"normal\", \"bold\", \"bolder\", \"lighter\"]);\n  const {\n    fontFamily,\n    fontWeight,\n    italicAngle\n  } = cssFontInfo;\n\n  if (/^\".*\"$/.test(fontFamily)) {\n    if (/[^\\\\]\"/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n      (0, _util.warn)(`XFA - FontFamily contains some unescaped \": ${fontFamily}.`);\n      return false;\n    }\n  } else if (/^'.*'$/.test(fontFamily)) {\n    if (/[^\\\\]'/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n      (0, _util.warn)(`XFA - FontFamily contains some unescaped ': ${fontFamily}.`);\n      return false;\n    }\n  } else {\n    for (const ident of fontFamily.split(/[ \\t]+/)) {\n      if (/^(\\d|(-(\\d|-)))/.test(ident) || !/^[\\w-\\\\]+$/.test(ident)) {\n        (0, _util.warn)(`XFA - FontFamily contains some invalid <custom-ident>: ${fontFamily}.`);\n        return false;\n      }\n    }\n  }\n\n  const weight = fontWeight ? fontWeight.toString() : \"\";\n  cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight) ? weight : DEFAULT_CSS_FONT_WEIGHT;\n  const angle = parseFloat(italicAngle);\n  cssFontInfo.italicAngle = isNaN(angle) || angle < -90 || angle > 90 ? DEFAULT_CSS_FONT_OBLIQUE : italicAngle.toString();\n  return true;\n}\n\nfunction recoverJsURL(str) {\n  const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n  const regex = new RegExp(\"^\\\\s*(\" + URL_OPEN_METHODS.join(\"|\").split(\".\").join(\"\\\\.\") + \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\", \"i\");\n  const jsUrl = regex.exec(str);\n\n  if (jsUrl && jsUrl[2]) {\n    const url = jsUrl[2];\n    let newWindow = false;\n\n    if (jsUrl[3] === \"true\" && jsUrl[1] === \"app.launchURL\") {\n      newWindow = true;\n    }\n\n    return {\n      url,\n      newWindow\n    };\n  }\n\n  return null;\n}\n\nfunction numberToString(value) {\n  if (Number.isInteger(value)) {\n    return value.toString();\n  }\n\n  const roundedValue = Math.round(value * 100);\n\n  if (roundedValue % 100 === 0) {\n    return (roundedValue / 100).toString();\n  }\n\n  if (roundedValue % 10 === 0) {\n    return value.toFixed(1);\n  }\n\n  return value.toFixed(2);\n}\n\nfunction getNewAnnotationsMap(annotationStorage) {\n  if (!annotationStorage) {\n    return null;\n  }\n\n  const newAnnotationsByPage = new Map();\n\n  for (const [key, value] of annotationStorage) {\n    if (!key.startsWith(_util.AnnotationEditorPrefix)) {\n      continue;\n    }\n\n    let annotations = newAnnotationsByPage.get(value.pageIndex);\n\n    if (!annotations) {\n      annotations = [];\n      newAnnotationsByPage.set(value.pageIndex, annotations);\n    }\n\n    annotations.push(value);\n  }\n\n  return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null;\n}\n\n/***/ }),\n/* 132 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.BaseStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass BaseStream {\n  constructor() {\n    if (this.constructor === BaseStream) {\n      (0, _util.unreachable)(\"Cannot initialize BaseStream.\");\n    }\n  }\n\n  get length() {\n    (0, _util.unreachable)(\"Abstract getter `length` accessed\");\n  }\n\n  get isEmpty() {\n    (0, _util.unreachable)(\"Abstract getter `isEmpty` accessed\");\n  }\n\n  get isDataLoaded() {\n    return (0, _util.shadow)(this, \"isDataLoaded\", true);\n  }\n\n  getByte() {\n    (0, _util.unreachable)(\"Abstract method `getByte` called\");\n  }\n\n  getBytes(length) {\n    (0, _util.unreachable)(\"Abstract method `getBytes` called\");\n  }\n\n  peekByte() {\n    const peekedByte = this.getByte();\n\n    if (peekedByte !== -1) {\n      this.pos--;\n    }\n\n    return peekedByte;\n  }\n\n  peekBytes(length) {\n    const bytes = this.getBytes(length);\n    this.pos -= bytes.length;\n    return bytes;\n  }\n\n  getUint16() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n\n    if (b0 === -1 || b1 === -1) {\n      return -1;\n    }\n\n    return (b0 << 8) + b1;\n  }\n\n  getInt32() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n    const b2 = this.getByte();\n    const b3 = this.getByte();\n    return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n  }\n\n  getByteRange(begin, end) {\n    (0, _util.unreachable)(\"Abstract method `getByteRange` called\");\n  }\n\n  getString(length) {\n    return (0, _util.bytesToString)(this.getBytes(length));\n  }\n\n  skip(n) {\n    this.pos += n || 1;\n  }\n\n  reset() {\n    (0, _util.unreachable)(\"Abstract method `reset` called\");\n  }\n\n  moveStart() {\n    (0, _util.unreachable)(\"Abstract method `moveStart` called\");\n  }\n\n  makeSubStream(start, length) {\n    let dict = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n    (0, _util.unreachable)(\"Abstract method `makeSubStream` called\");\n  }\n\n  getBaseStreams() {\n    return null;\n  }\n\n}\n\nexports.BaseStream = BaseStream;\n\n/***/ }),\n/* 133 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.NetworkPdfManager = exports.LocalPdfManager = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _chunked_stream = __w_pdfjs_require__(134);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _document = __w_pdfjs_require__(136);\n\nvar _stream = __w_pdfjs_require__(135);\n\nfunction parseDocBaseUrl(url) {\n  if (url) {\n    const absoluteUrl = (0, _util.createValidAbsoluteUrl)(url);\n\n    if (absoluteUrl) {\n      return absoluteUrl.href;\n    }\n\n    (0, _util.warn)(`Invalid absolute docBaseUrl: \"${url}\".`);\n  }\n\n  return null;\n}\n\nclass BasePdfManager {\n  constructor() {\n    if (this.constructor === BasePdfManager) {\n      (0, _util.unreachable)(\"Cannot initialize BasePdfManager.\");\n    }\n  }\n\n  get docId() {\n    return this._docId;\n  }\n\n  get password() {\n    return this._password;\n  }\n\n  get docBaseUrl() {\n    const catalog = this.pdfDocument.catalog;\n    return (0, _util.shadow)(this, \"docBaseUrl\", catalog.baseUrl || this._docBaseUrl);\n  }\n\n  onLoadedStream() {\n    (0, _util.unreachable)(\"Abstract method `onLoadedStream` called\");\n  }\n\n  ensureDoc(prop, args) {\n    return this.ensure(this.pdfDocument, prop, args);\n  }\n\n  ensureXRef(prop, args) {\n    return this.ensure(this.pdfDocument.xref, prop, args);\n  }\n\n  ensureCatalog(prop, args) {\n    return this.ensure(this.pdfDocument.catalog, prop, args);\n  }\n\n  getPage(pageIndex) {\n    return this.pdfDocument.getPage(pageIndex);\n  }\n\n  fontFallback(id, handler) {\n    return this.pdfDocument.fontFallback(id, handler);\n  }\n\n  loadXfaFonts(handler, task) {\n    return this.pdfDocument.loadXfaFonts(handler, task);\n  }\n\n  loadXfaImages() {\n    return this.pdfDocument.loadXfaImages();\n  }\n\n  serializeXfaData(annotationStorage) {\n    return this.pdfDocument.serializeXfaData(annotationStorage);\n  }\n\n  cleanup() {\n    let manuallyTriggered = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    return this.pdfDocument.cleanup(manuallyTriggered);\n  }\n\n  async ensure(obj, prop, args) {\n    (0, _util.unreachable)(\"Abstract method `ensure` called\");\n  }\n\n  requestRange(begin, end) {\n    (0, _util.unreachable)(\"Abstract method `requestRange` called\");\n  }\n\n  requestLoadedStream() {\n    (0, _util.unreachable)(\"Abstract method `requestLoadedStream` called\");\n  }\n\n  sendProgressiveData(chunk) {\n    (0, _util.unreachable)(\"Abstract method `sendProgressiveData` called\");\n  }\n\n  updatePassword(password) {\n    this._password = password;\n  }\n\n  terminate(reason) {\n    (0, _util.unreachable)(\"Abstract method `terminate` called\");\n  }\n\n}\n\nclass LocalPdfManager extends BasePdfManager {\n  constructor(docId, data, password, msgHandler, evaluatorOptions, enableXfa, docBaseUrl) {\n    super();\n    this._docId = docId;\n    this._password = password;\n    this._docBaseUrl = parseDocBaseUrl(docBaseUrl);\n    this.msgHandler = msgHandler;\n    this.evaluatorOptions = evaluatorOptions;\n    this.enableXfa = enableXfa;\n    const stream = new _stream.Stream(data);\n    this.pdfDocument = new _document.PDFDocument(this, stream);\n    this._loadedStreamPromise = Promise.resolve(stream);\n  }\n\n  async ensure(obj, prop, args) {\n    const value = obj[prop];\n\n    if (typeof value === \"function\") {\n      return value.apply(obj, args);\n    }\n\n    return value;\n  }\n\n  requestRange(begin, end) {\n    return Promise.resolve();\n  }\n\n  requestLoadedStream() {}\n\n  onLoadedStream() {\n    return this._loadedStreamPromise;\n  }\n\n  terminate(reason) {}\n\n}\n\nexports.LocalPdfManager = LocalPdfManager;\n\nclass NetworkPdfManager extends BasePdfManager {\n  constructor(docId, pdfNetworkStream, args, evaluatorOptions, enableXfa, docBaseUrl) {\n    super();\n    this._docId = docId;\n    this._password = args.password;\n    this._docBaseUrl = parseDocBaseUrl(docBaseUrl);\n    this.msgHandler = args.msgHandler;\n    this.evaluatorOptions = evaluatorOptions;\n    this.enableXfa = enableXfa;\n    this.streamManager = new _chunked_stream.ChunkedStreamManager(pdfNetworkStream, {\n      msgHandler: args.msgHandler,\n      length: args.length,\n      disableAutoFetch: args.disableAutoFetch,\n      rangeChunkSize: args.rangeChunkSize\n    });\n    this.pdfDocument = new _document.PDFDocument(this, this.streamManager.getStream());\n  }\n\n  async ensure(obj, prop, args) {\n    try {\n      const value = obj[prop];\n\n      if (typeof value === \"function\") {\n        return value.apply(obj, args);\n      }\n\n      return value;\n    } catch (ex) {\n      if (!(ex instanceof _core_utils.MissingDataException)) {\n        throw ex;\n      }\n\n      await this.requestRange(ex.begin, ex.end);\n      return this.ensure(obj, prop, args);\n    }\n  }\n\n  requestRange(begin, end) {\n    return this.streamManager.requestRange(begin, end);\n  }\n\n  requestLoadedStream() {\n    this.streamManager.requestAllChunks();\n  }\n\n  sendProgressiveData(chunk) {\n    this.streamManager.onReceiveData({\n      chunk\n    });\n  }\n\n  onLoadedStream() {\n    return this.streamManager.onLoadedStream();\n  }\n\n  terminate(reason) {\n    this.streamManager.abort(reason);\n  }\n\n}\n\nexports.NetworkPdfManager = NetworkPdfManager;\n\n/***/ }),\n/* 134 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ChunkedStreamManager = exports.ChunkedStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _stream = __w_pdfjs_require__(135);\n\nclass ChunkedStream extends _stream.Stream {\n  constructor(length, chunkSize, manager) {\n    super(new Uint8Array(length), 0, length, null);\n    this.chunkSize = chunkSize;\n    this._loadedChunks = new Set();\n    this.numChunks = Math.ceil(length / chunkSize);\n    this.manager = manager;\n    this.progressiveDataLength = 0;\n    this.lastSuccessfulEnsureByteChunk = -1;\n  }\n\n  getMissingChunks() {\n    const chunks = [];\n\n    for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n      if (!this._loadedChunks.has(chunk)) {\n        chunks.push(chunk);\n      }\n    }\n\n    return chunks;\n  }\n\n  get numChunksLoaded() {\n    return this._loadedChunks.size;\n  }\n\n  get isDataLoaded() {\n    return this.numChunksLoaded === this.numChunks;\n  }\n\n  onReceiveData(begin, chunk) {\n    const chunkSize = this.chunkSize;\n\n    if (begin % chunkSize !== 0) {\n      throw new Error(`Bad begin offset: ${begin}`);\n    }\n\n    const end = begin + chunk.byteLength;\n\n    if (end % chunkSize !== 0 && end !== this.bytes.length) {\n      throw new Error(`Bad end offset: ${end}`);\n    }\n\n    this.bytes.set(new Uint8Array(chunk), begin);\n    const beginChunk = Math.floor(begin / chunkSize);\n    const endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n      this._loadedChunks.add(curChunk);\n    }\n  }\n\n  onReceiveProgressiveData(data) {\n    let position = this.progressiveDataLength;\n    const beginChunk = Math.floor(position / this.chunkSize);\n    this.bytes.set(new Uint8Array(data), position);\n    position += data.byteLength;\n    this.progressiveDataLength = position;\n    const endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize);\n\n    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n      this._loadedChunks.add(curChunk);\n    }\n  }\n\n  ensureByte(pos) {\n    if (pos < this.progressiveDataLength) {\n      return;\n    }\n\n    const chunk = Math.floor(pos / this.chunkSize);\n\n    if (chunk > this.numChunks) {\n      return;\n    }\n\n    if (chunk === this.lastSuccessfulEnsureByteChunk) {\n      return;\n    }\n\n    if (!this._loadedChunks.has(chunk)) {\n      throw new _core_utils.MissingDataException(pos, pos + 1);\n    }\n\n    this.lastSuccessfulEnsureByteChunk = chunk;\n  }\n\n  ensureRange(begin, end) {\n    if (begin >= end) {\n      return;\n    }\n\n    if (end <= this.progressiveDataLength) {\n      return;\n    }\n\n    const beginChunk = Math.floor(begin / this.chunkSize);\n\n    if (beginChunk > this.numChunks) {\n      return;\n    }\n\n    const endChunk = Math.min(Math.floor((end - 1) / this.chunkSize) + 1, this.numChunks);\n\n    for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n      if (!this._loadedChunks.has(chunk)) {\n        throw new _core_utils.MissingDataException(begin, end);\n      }\n    }\n  }\n\n  nextEmptyChunk(beginChunk) {\n    const numChunks = this.numChunks;\n\n    for (let i = 0; i < numChunks; ++i) {\n      const chunk = (beginChunk + i) % numChunks;\n\n      if (!this._loadedChunks.has(chunk)) {\n        return chunk;\n      }\n    }\n\n    return null;\n  }\n\n  hasChunk(chunk) {\n    return this._loadedChunks.has(chunk);\n  }\n\n  getByte() {\n    const pos = this.pos;\n\n    if (pos >= this.end) {\n      return -1;\n    }\n\n    if (pos >= this.progressiveDataLength) {\n      this.ensureByte(pos);\n    }\n\n    return this.bytes[this.pos++];\n  }\n\n  getBytes(length) {\n    const bytes = this.bytes;\n    const pos = this.pos;\n    const strEnd = this.end;\n\n    if (!length) {\n      if (strEnd > this.progressiveDataLength) {\n        this.ensureRange(pos, strEnd);\n      }\n\n      return bytes.subarray(pos, strEnd);\n    }\n\n    let end = pos + length;\n\n    if (end > strEnd) {\n      end = strEnd;\n    }\n\n    if (end > this.progressiveDataLength) {\n      this.ensureRange(pos, end);\n    }\n\n    this.pos = end;\n    return bytes.subarray(pos, end);\n  }\n\n  getByteRange(begin, end) {\n    if (begin < 0) {\n      begin = 0;\n    }\n\n    if (end > this.end) {\n      end = this.end;\n    }\n\n    if (end > this.progressiveDataLength) {\n      this.ensureRange(begin, end);\n    }\n\n    return this.bytes.subarray(begin, end);\n  }\n\n  makeSubStream(start, length) {\n    let dict = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n    if (length) {\n      if (start + length > this.progressiveDataLength) {\n        this.ensureRange(start, start + length);\n      }\n    } else {\n      if (start >= this.progressiveDataLength) {\n        this.ensureByte(start);\n      }\n    }\n\n    function ChunkedStreamSubstream() {}\n\n    ChunkedStreamSubstream.prototype = Object.create(this);\n\n    ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n      const chunkSize = this.chunkSize;\n      const beginChunk = Math.floor(this.start / chunkSize);\n      const endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n      const missingChunks = [];\n\n      for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n        if (!this._loadedChunks.has(chunk)) {\n          missingChunks.push(chunk);\n        }\n      }\n\n      return missingChunks;\n    };\n\n    Object.defineProperty(ChunkedStreamSubstream.prototype, \"isDataLoaded\", {\n      get() {\n        if (this.numChunksLoaded === this.numChunks) {\n          return true;\n        }\n\n        return this.getMissingChunks().length === 0;\n      },\n\n      configurable: true\n    });\n    const subStream = new ChunkedStreamSubstream();\n    subStream.pos = subStream.start = start;\n    subStream.end = start + length || this.end;\n    subStream.dict = dict;\n    return subStream;\n  }\n\n  getBaseStreams() {\n    return [this];\n  }\n\n}\n\nexports.ChunkedStream = ChunkedStream;\n\nclass ChunkedStreamManager {\n  constructor(pdfNetworkStream, args) {\n    this.length = args.length;\n    this.chunkSize = args.rangeChunkSize;\n    this.stream = new ChunkedStream(this.length, this.chunkSize, this);\n    this.pdfNetworkStream = pdfNetworkStream;\n    this.disableAutoFetch = args.disableAutoFetch;\n    this.msgHandler = args.msgHandler;\n    this.currRequestId = 0;\n    this._chunksNeededByRequest = new Map();\n    this._requestsByChunk = new Map();\n    this._promisesByRequest = new Map();\n    this.progressiveDataLength = 0;\n    this.aborted = false;\n    this._loadedStreamCapability = (0, _util.createPromiseCapability)();\n  }\n\n  onLoadedStream() {\n    return this._loadedStreamCapability.promise;\n  }\n\n  sendRequest(begin, end) {\n    const rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n\n    if (!rangeReader.isStreamingSupported) {\n      rangeReader.onProgress = this.onProgress.bind(this);\n    }\n\n    let chunks = [],\n        loaded = 0;\n    return new Promise((resolve, reject) => {\n      const readChunk = chunk => {\n        try {\n          if (!chunk.done) {\n            const data = chunk.value;\n            chunks.push(data);\n            loaded += (0, _util.arrayByteLength)(data);\n\n            if (rangeReader.isStreamingSupported) {\n              this.onProgress({\n                loaded\n              });\n            }\n\n            rangeReader.read().then(readChunk, reject);\n            return;\n          }\n\n          const chunkData = (0, _util.arraysToBytes)(chunks);\n          chunks = null;\n          resolve(chunkData);\n        } catch (e) {\n          reject(e);\n        }\n      };\n\n      rangeReader.read().then(readChunk, reject);\n    }).then(data => {\n      if (this.aborted) {\n        return;\n      }\n\n      this.onReceiveData({\n        chunk: data,\n        begin\n      });\n    });\n  }\n\n  requestAllChunks() {\n    const missingChunks = this.stream.getMissingChunks();\n\n    this._requestChunks(missingChunks);\n\n    return this._loadedStreamCapability.promise;\n  }\n\n  _requestChunks(chunks) {\n    const requestId = this.currRequestId++;\n    const chunksNeeded = new Set();\n\n    this._chunksNeededByRequest.set(requestId, chunksNeeded);\n\n    for (const chunk of chunks) {\n      if (!this.stream.hasChunk(chunk)) {\n        chunksNeeded.add(chunk);\n      }\n    }\n\n    if (chunksNeeded.size === 0) {\n      return Promise.resolve();\n    }\n\n    const capability = (0, _util.createPromiseCapability)();\n\n    this._promisesByRequest.set(requestId, capability);\n\n    const chunksToRequest = [];\n\n    for (const chunk of chunksNeeded) {\n      let requestIds = this._requestsByChunk.get(chunk);\n\n      if (!requestIds) {\n        requestIds = [];\n\n        this._requestsByChunk.set(chunk, requestIds);\n\n        chunksToRequest.push(chunk);\n      }\n\n      requestIds.push(requestId);\n    }\n\n    if (chunksToRequest.length > 0) {\n      const groupedChunksToRequest = this.groupChunks(chunksToRequest);\n\n      for (const groupedChunk of groupedChunksToRequest) {\n        const begin = groupedChunk.beginChunk * this.chunkSize;\n        const end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length);\n        this.sendRequest(begin, end).catch(capability.reject);\n      }\n    }\n\n    return capability.promise.catch(reason => {\n      if (this.aborted) {\n        return;\n      }\n\n      throw reason;\n    });\n  }\n\n  getStream() {\n    return this.stream;\n  }\n\n  requestRange(begin, end) {\n    end = Math.min(end, this.length);\n    const beginChunk = this.getBeginChunk(begin);\n    const endChunk = this.getEndChunk(end);\n    const chunks = [];\n\n    for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n      chunks.push(chunk);\n    }\n\n    return this._requestChunks(chunks);\n  }\n\n  requestRanges() {\n    let ranges = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    const chunksToRequest = [];\n\n    for (const range of ranges) {\n      const beginChunk = this.getBeginChunk(range.begin);\n      const endChunk = this.getEndChunk(range.end);\n\n      for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n        if (!chunksToRequest.includes(chunk)) {\n          chunksToRequest.push(chunk);\n        }\n      }\n    }\n\n    chunksToRequest.sort(function (a, b) {\n      return a - b;\n    });\n    return this._requestChunks(chunksToRequest);\n  }\n\n  groupChunks(chunks) {\n    const groupedChunks = [];\n    let beginChunk = -1;\n    let prevChunk = -1;\n\n    for (let i = 0, ii = chunks.length; i < ii; ++i) {\n      const chunk = chunks[i];\n\n      if (beginChunk < 0) {\n        beginChunk = chunk;\n      }\n\n      if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n        groupedChunks.push({\n          beginChunk,\n          endChunk: prevChunk + 1\n        });\n        beginChunk = chunk;\n      }\n\n      if (i + 1 === chunks.length) {\n        groupedChunks.push({\n          beginChunk,\n          endChunk: chunk + 1\n        });\n      }\n\n      prevChunk = chunk;\n    }\n\n    return groupedChunks;\n  }\n\n  onProgress(args) {\n    this.msgHandler.send(\"DocProgress\", {\n      loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded,\n      total: this.length\n    });\n  }\n\n  onReceiveData(args) {\n    const chunk = args.chunk;\n    const isProgressive = args.begin === undefined;\n    const begin = isProgressive ? this.progressiveDataLength : args.begin;\n    const end = begin + chunk.byteLength;\n    const beginChunk = Math.floor(begin / this.chunkSize);\n    const endChunk = end < this.length ? Math.floor(end / this.chunkSize) : Math.ceil(end / this.chunkSize);\n\n    if (isProgressive) {\n      this.stream.onReceiveProgressiveData(chunk);\n      this.progressiveDataLength = end;\n    } else {\n      this.stream.onReceiveData(begin, chunk);\n    }\n\n    if (this.stream.isDataLoaded) {\n      this._loadedStreamCapability.resolve(this.stream);\n    }\n\n    const loadedRequests = [];\n\n    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n      const requestIds = this._requestsByChunk.get(curChunk);\n\n      if (!requestIds) {\n        continue;\n      }\n\n      this._requestsByChunk.delete(curChunk);\n\n      for (const requestId of requestIds) {\n        const chunksNeeded = this._chunksNeededByRequest.get(requestId);\n\n        if (chunksNeeded.has(curChunk)) {\n          chunksNeeded.delete(curChunk);\n        }\n\n        if (chunksNeeded.size > 0) {\n          continue;\n        }\n\n        loadedRequests.push(requestId);\n      }\n    }\n\n    if (!this.disableAutoFetch && this._requestsByChunk.size === 0) {\n      let nextEmptyChunk;\n\n      if (this.stream.numChunksLoaded === 1) {\n        const lastChunk = this.stream.numChunks - 1;\n\n        if (!this.stream.hasChunk(lastChunk)) {\n          nextEmptyChunk = lastChunk;\n        }\n      } else {\n        nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n      }\n\n      if (Number.isInteger(nextEmptyChunk)) {\n        this._requestChunks([nextEmptyChunk]);\n      }\n    }\n\n    for (const requestId of loadedRequests) {\n      const capability = this._promisesByRequest.get(requestId);\n\n      this._promisesByRequest.delete(requestId);\n\n      capability.resolve();\n    }\n\n    this.msgHandler.send(\"DocProgress\", {\n      loaded: this.stream.numChunksLoaded * this.chunkSize,\n      total: this.length\n    });\n  }\n\n  onError(err) {\n    this._loadedStreamCapability.reject(err);\n  }\n\n  getBeginChunk(begin) {\n    return Math.floor(begin / this.chunkSize);\n  }\n\n  getEndChunk(end) {\n    return Math.floor((end - 1) / this.chunkSize) + 1;\n  }\n\n  abort(reason) {\n    this.aborted = true;\n\n    if (this.pdfNetworkStream) {\n      this.pdfNetworkStream.cancelAllRequests(reason);\n    }\n\n    for (const capability of this._promisesByRequest.values()) {\n      capability.reject(reason);\n    }\n  }\n\n}\n\nexports.ChunkedStreamManager = ChunkedStreamManager;\n\n/***/ }),\n/* 135 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.StringStream = exports.Stream = exports.NullStream = void 0;\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass Stream extends _base_stream.BaseStream {\n  constructor(arrayBuffer, start, length, dict) {\n    super();\n    this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : new Uint8Array(arrayBuffer);\n    this.start = start || 0;\n    this.pos = this.start;\n    this.end = start + length || this.bytes.length;\n    this.dict = dict;\n  }\n\n  get length() {\n    return this.end - this.start;\n  }\n\n  get isEmpty() {\n    return this.length === 0;\n  }\n\n  getByte() {\n    if (this.pos >= this.end) {\n      return -1;\n    }\n\n    return this.bytes[this.pos++];\n  }\n\n  getBytes(length) {\n    const bytes = this.bytes;\n    const pos = this.pos;\n    const strEnd = this.end;\n\n    if (!length) {\n      return bytes.subarray(pos, strEnd);\n    }\n\n    let end = pos + length;\n\n    if (end > strEnd) {\n      end = strEnd;\n    }\n\n    this.pos = end;\n    return bytes.subarray(pos, end);\n  }\n\n  getByteRange(begin, end) {\n    if (begin < 0) {\n      begin = 0;\n    }\n\n    if (end > this.end) {\n      end = this.end;\n    }\n\n    return this.bytes.subarray(begin, end);\n  }\n\n  reset() {\n    this.pos = this.start;\n  }\n\n  moveStart() {\n    this.start = this.pos;\n  }\n\n  makeSubStream(start, length) {\n    let dict = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n    return new Stream(this.bytes.buffer, start, length, dict);\n  }\n\n}\n\nexports.Stream = Stream;\n\nclass StringStream extends Stream {\n  constructor(str) {\n    super((0, _util.stringToBytes)(str));\n  }\n\n}\n\nexports.StringStream = StringStream;\n\nclass NullStream extends Stream {\n  constructor() {\n    super(new Uint8Array(0));\n  }\n\n}\n\nexports.NullStream = NullStream;\n\n/***/ }),\n/* 136 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Page = exports.PDFDocument = void 0;\n\nvar _annotation = __w_pdfjs_require__(137);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _xfa_fonts = __w_pdfjs_require__(176);\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _crypto = __w_pdfjs_require__(192);\n\nvar _catalog = __w_pdfjs_require__(194);\n\nvar _cleanup_helper = __w_pdfjs_require__(196);\n\nvar _dataset_reader = __w_pdfjs_require__(225);\n\nvar _parser = __w_pdfjs_require__(142);\n\nvar _stream = __w_pdfjs_require__(135);\n\nvar _object_loader = __w_pdfjs_require__(200);\n\nvar _operator_list = __w_pdfjs_require__(187);\n\nvar _evaluator = __w_pdfjs_require__(140);\n\nvar _decode_stream = __w_pdfjs_require__(144);\n\nvar _struct_tree = __w_pdfjs_require__(199);\n\nvar _writer = __w_pdfjs_require__(190);\n\nvar _factory = __w_pdfjs_require__(201);\n\nvar _xref = __w_pdfjs_require__(226);\n\nconst DEFAULT_USER_UNIT = 1.0;\nconst LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n\nclass Page {\n  constructor(_ref) {\n    let {\n      pdfManager,\n      xref,\n      pageIndex,\n      pageDict,\n      ref,\n      globalIdFactory,\n      fontCache,\n      builtInCMapCache,\n      standardFontDataCache,\n      globalImageCache,\n      nonBlendModesSet,\n      xfaFactory\n    } = _ref;\n    this.pdfManager = pdfManager;\n    this.pageIndex = pageIndex;\n    this.pageDict = pageDict;\n    this.xref = xref;\n    this.ref = ref;\n    this.fontCache = fontCache;\n    this.builtInCMapCache = builtInCMapCache;\n    this.standardFontDataCache = standardFontDataCache;\n    this.globalImageCache = globalImageCache;\n    this.nonBlendModesSet = nonBlendModesSet;\n    this.evaluatorOptions = pdfManager.evaluatorOptions;\n    this.resourcesPromise = null;\n    this.xfaFactory = xfaFactory;\n    const idCounters = {\n      obj: 0\n    };\n    this._localIdFactory = class extends globalIdFactory {\n      static createObjId() {\n        return `p${pageIndex}_${++idCounters.obj}`;\n      }\n\n      static getPageObjId() {\n        return `page${ref.toString()}`;\n      }\n\n    };\n  }\n\n  _getInheritableProperty(key) {\n    let getArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    const value = (0, _core_utils.getInheritableProperty)({\n      dict: this.pageDict,\n      key,\n      getArray,\n      stopWhenFound: false\n    });\n\n    if (!Array.isArray(value)) {\n      return value;\n    }\n\n    if (value.length === 1 || !(value[0] instanceof _primitives.Dict)) {\n      return value[0];\n    }\n\n    return _primitives.Dict.merge({\n      xref: this.xref,\n      dictArray: value\n    });\n  }\n\n  get content() {\n    return this.pageDict.getArray(\"Contents\");\n  }\n\n  get resources() {\n    const resources = this._getInheritableProperty(\"Resources\");\n\n    return (0, _util.shadow)(this, \"resources\", resources instanceof _primitives.Dict ? resources : _primitives.Dict.empty);\n  }\n\n  _getBoundingBox(name) {\n    if (this.xfaData) {\n      return this.xfaData.bbox;\n    }\n\n    const box = this._getInheritableProperty(name, true);\n\n    if (Array.isArray(box) && box.length === 4) {\n      if (box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n        return box;\n      }\n\n      (0, _util.warn)(`Empty /${name} entry.`);\n    }\n\n    return null;\n  }\n\n  get mediaBox() {\n    return (0, _util.shadow)(this, \"mediaBox\", this._getBoundingBox(\"MediaBox\") || LETTER_SIZE_MEDIABOX);\n  }\n\n  get cropBox() {\n    return (0, _util.shadow)(this, \"cropBox\", this._getBoundingBox(\"CropBox\") || this.mediaBox);\n  }\n\n  get userUnit() {\n    let obj = this.pageDict.get(\"UserUnit\");\n\n    if (typeof obj !== \"number\" || obj <= 0) {\n      obj = DEFAULT_USER_UNIT;\n    }\n\n    return (0, _util.shadow)(this, \"userUnit\", obj);\n  }\n\n  get view() {\n    const {\n      cropBox,\n      mediaBox\n    } = this;\n    let view;\n\n    if (cropBox === mediaBox || (0, _util.isArrayEqual)(cropBox, mediaBox)) {\n      view = mediaBox;\n    } else {\n      const box = _util.Util.intersect(cropBox, mediaBox);\n\n      if (box && box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n        view = box;\n      } else {\n        (0, _util.warn)(\"Empty /CropBox and /MediaBox intersection.\");\n      }\n    }\n\n    return (0, _util.shadow)(this, \"view\", view || mediaBox);\n  }\n\n  get rotate() {\n    let rotate = this._getInheritableProperty(\"Rotate\") || 0;\n\n    if (rotate % 90 !== 0) {\n      rotate = 0;\n    } else if (rotate >= 360) {\n      rotate %= 360;\n    } else if (rotate < 0) {\n      rotate = (rotate % 360 + 360) % 360;\n    }\n\n    return (0, _util.shadow)(this, \"rotate\", rotate);\n  }\n\n  _onSubStreamError(handler, reason, objId) {\n    if (this.evaluatorOptions.ignoreErrors) {\n      handler.send(\"UnsupportedFeature\", {\n        featureId: _util.UNSUPPORTED_FEATURES.errorContentSubStream\n      });\n      (0, _util.warn)(`getContentStream - ignoring sub-stream (${objId}): \"${reason}\".`);\n      return;\n    }\n\n    throw reason;\n  }\n\n  getContentStream(handler) {\n    return this.pdfManager.ensure(this, \"content\").then(content => {\n      if (content instanceof _base_stream.BaseStream) {\n        return content;\n      }\n\n      if (Array.isArray(content)) {\n        return new _decode_stream.StreamsSequenceStream(content, this._onSubStreamError.bind(this, handler));\n      }\n\n      return new _stream.NullStream();\n    });\n  }\n\n  get xfaData() {\n    return (0, _util.shadow)(this, \"xfaData\", this.xfaFactory ? {\n      bbox: this.xfaFactory.getBoundingBox(this.pageIndex)\n    } : null);\n  }\n\n  async saveNewAnnotations(handler, task, annotations) {\n    if (this.xfaFactory) {\n      throw new Error(\"XFA: Cannot save new annotations.\");\n    }\n\n    const partialEvaluator = new _evaluator.PartialEvaluator({\n      xref: this.xref,\n      handler,\n      pageIndex: this.pageIndex,\n      idFactory: this._localIdFactory,\n      fontCache: this.fontCache,\n      builtInCMapCache: this.builtInCMapCache,\n      standardFontDataCache: this.standardFontDataCache,\n      globalImageCache: this.globalImageCache,\n      options: this.evaluatorOptions\n    });\n    const pageDict = this.pageDict;\n    const annotationsArray = this.annotations.slice();\n    const newData = await _annotation.AnnotationFactory.saveNewAnnotations(partialEvaluator, task, annotations);\n\n    for (const {\n      ref\n    } of newData.annotations) {\n      annotationsArray.push(ref);\n    }\n\n    const savedDict = pageDict.get(\"Annots\");\n    pageDict.set(\"Annots\", annotationsArray);\n    const buffer = [];\n    let transform = null;\n\n    if (this.xref.encrypt) {\n      transform = this.xref.encrypt.createCipherTransform(this.ref.num, this.ref.gen);\n    }\n\n    (0, _writer.writeObject)(this.ref, pageDict, buffer, transform);\n\n    if (savedDict) {\n      pageDict.set(\"Annots\", savedDict);\n    }\n\n    const objects = newData.dependencies;\n    objects.push({\n      ref: this.ref,\n      data: buffer.join(\"\")\n    }, ...newData.annotations);\n    return objects;\n  }\n\n  save(handler, task, annotationStorage) {\n    const partialEvaluator = new _evaluator.PartialEvaluator({\n      xref: this.xref,\n      handler,\n      pageIndex: this.pageIndex,\n      idFactory: this._localIdFactory,\n      fontCache: this.fontCache,\n      builtInCMapCache: this.builtInCMapCache,\n      standardFontDataCache: this.standardFontDataCache,\n      globalImageCache: this.globalImageCache,\n      options: this.evaluatorOptions\n    });\n    return this._parsedAnnotations.then(function (annotations) {\n      const newRefsPromises = [];\n\n      for (const annotation of annotations) {\n        if (!annotation.mustBePrinted(annotationStorage)) {\n          continue;\n        }\n\n        newRefsPromises.push(annotation.save(partialEvaluator, task, annotationStorage).catch(function (reason) {\n          (0, _util.warn)(\"save - ignoring annotation data during \" + `\"${task.name}\" task: \"${reason}\".`);\n          return null;\n        }));\n      }\n\n      return Promise.all(newRefsPromises).then(function (newRefs) {\n        return newRefs.filter(newRef => !!newRef);\n      });\n    });\n  }\n\n  loadResources(keys) {\n    if (!this.resourcesPromise) {\n      this.resourcesPromise = this.pdfManager.ensure(this, \"resources\");\n    }\n\n    return this.resourcesPromise.then(() => {\n      const objectLoader = new _object_loader.ObjectLoader(this.resources, keys, this.xref);\n      return objectLoader.load();\n    });\n  }\n\n  getOperatorList(_ref2) {\n    let {\n      handler,\n      sink,\n      task,\n      intent,\n      cacheKey,\n      annotationStorage = null\n    } = _ref2;\n    const contentStreamPromise = this.getContentStream(handler);\n    const resourcesPromise = this.loadResources([\"ColorSpace\", \"ExtGState\", \"Font\", \"Pattern\", \"Properties\", \"Shading\", \"XObject\"]);\n    const partialEvaluator = new _evaluator.PartialEvaluator({\n      xref: this.xref,\n      handler,\n      pageIndex: this.pageIndex,\n      idFactory: this._localIdFactory,\n      fontCache: this.fontCache,\n      builtInCMapCache: this.builtInCMapCache,\n      standardFontDataCache: this.standardFontDataCache,\n      globalImageCache: this.globalImageCache,\n      options: this.evaluatorOptions\n    });\n    const newAnnotationsByPage = !this.xfaFactory ? (0, _core_utils.getNewAnnotationsMap)(annotationStorage) : null;\n    let newAnnotationsPromise = Promise.resolve(null);\n\n    if (newAnnotationsByPage) {\n      const newAnnotations = newAnnotationsByPage.get(this.pageIndex);\n\n      if (newAnnotations) {\n        newAnnotationsPromise = _annotation.AnnotationFactory.printNewAnnotations(partialEvaluator, task, newAnnotations);\n      }\n    }\n\n    const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n    const pageListPromise = dataPromises.then(_ref3 => {\n      let [contentStream] = _ref3;\n      const opList = new _operator_list.OperatorList(intent, sink);\n      handler.send(\"StartRenderPage\", {\n        transparency: partialEvaluator.hasBlendModes(this.resources, this.nonBlendModesSet),\n        pageIndex: this.pageIndex,\n        cacheKey\n      });\n      return partialEvaluator.getOperatorList({\n        stream: contentStream,\n        task,\n        resources: this.resources,\n        operatorList: opList\n      }).then(function () {\n        return opList;\n      });\n    });\n    return Promise.all([pageListPromise, this._parsedAnnotations, newAnnotationsPromise]).then(function (_ref4) {\n      let [pageOpList, annotations, newAnnotations] = _ref4;\n\n      if (newAnnotations) {\n        annotations = annotations.concat(newAnnotations);\n      }\n\n      if (annotations.length === 0 || intent & _util.RenderingIntentFlag.ANNOTATIONS_DISABLE) {\n        pageOpList.flush(true);\n        return {\n          length: pageOpList.totalLength\n        };\n      }\n\n      const renderForms = !!(intent & _util.RenderingIntentFlag.ANNOTATIONS_FORMS),\n            intentAny = !!(intent & _util.RenderingIntentFlag.ANY),\n            intentDisplay = !!(intent & _util.RenderingIntentFlag.DISPLAY),\n            intentPrint = !!(intent & _util.RenderingIntentFlag.PRINT);\n      const opListPromises = [];\n\n      for (const annotation of annotations) {\n        if (intentAny || intentDisplay && annotation.mustBeViewed(annotationStorage) || intentPrint && annotation.mustBePrinted(annotationStorage)) {\n          opListPromises.push(annotation.getOperatorList(partialEvaluator, task, intent, renderForms, annotationStorage).catch(function (reason) {\n            (0, _util.warn)(\"getOperatorList - ignoring annotation data during \" + `\"${task.name}\" task: \"${reason}\".`);\n            return null;\n          }));\n        }\n      }\n\n      return Promise.all(opListPromises).then(function (opLists) {\n        let form = false,\n            canvas = false;\n\n        for (const {\n          opList,\n          separateForm,\n          separateCanvas\n        } of opLists) {\n          pageOpList.addOpList(opList);\n\n          if (separateForm) {\n            form = separateForm;\n          }\n\n          if (separateCanvas) {\n            canvas = separateCanvas;\n          }\n        }\n\n        pageOpList.flush(true, {\n          form,\n          canvas\n        });\n        return {\n          length: pageOpList.totalLength\n        };\n      });\n    });\n  }\n\n  extractTextContent(_ref5) {\n    let {\n      handler,\n      task,\n      includeMarkedContent,\n      sink,\n      combineTextItems\n    } = _ref5;\n    const contentStreamPromise = this.getContentStream(handler);\n    const resourcesPromise = this.loadResources([\"ExtGState\", \"Font\", \"Properties\", \"XObject\"]);\n    const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n    return dataPromises.then(_ref6 => {\n      let [contentStream] = _ref6;\n      const partialEvaluator = new _evaluator.PartialEvaluator({\n        xref: this.xref,\n        handler,\n        pageIndex: this.pageIndex,\n        idFactory: this._localIdFactory,\n        fontCache: this.fontCache,\n        builtInCMapCache: this.builtInCMapCache,\n        standardFontDataCache: this.standardFontDataCache,\n        globalImageCache: this.globalImageCache,\n        options: this.evaluatorOptions\n      });\n      return partialEvaluator.getTextContent({\n        stream: contentStream,\n        task,\n        resources: this.resources,\n        includeMarkedContent,\n        combineTextItems,\n        sink,\n        viewBox: this.view\n      });\n    });\n  }\n\n  async getStructTree() {\n    const structTreeRoot = await this.pdfManager.ensureCatalog(\"structTreeRoot\");\n\n    if (!structTreeRoot) {\n      return null;\n    }\n\n    const structTree = await this.pdfManager.ensure(this, \"_parseStructTree\", [structTreeRoot]);\n    return structTree.serializable;\n  }\n\n  _parseStructTree(structTreeRoot) {\n    const tree = new _struct_tree.StructTreePage(structTreeRoot, this.pageDict);\n    tree.parse();\n    return tree;\n  }\n\n  async getAnnotationsData(handler, task, intent) {\n    const annotations = await this._parsedAnnotations;\n\n    if (annotations.length === 0) {\n      return [];\n    }\n\n    const textContentPromises = [];\n    const annotationsData = [];\n    let partialEvaluator;\n    const intentAny = !!(intent & _util.RenderingIntentFlag.ANY),\n          intentDisplay = !!(intent & _util.RenderingIntentFlag.DISPLAY),\n          intentPrint = !!(intent & _util.RenderingIntentFlag.PRINT);\n\n    for (const annotation of annotations) {\n      const isVisible = intentAny || intentDisplay && annotation.viewable;\n\n      if (isVisible || intentPrint && annotation.printable) {\n        annotationsData.push(annotation.data);\n      }\n\n      if (annotation.hasTextContent && isVisible) {\n        if (!partialEvaluator) {\n          partialEvaluator = new _evaluator.PartialEvaluator({\n            xref: this.xref,\n            handler,\n            pageIndex: this.pageIndex,\n            idFactory: this._localIdFactory,\n            fontCache: this.fontCache,\n            builtInCMapCache: this.builtInCMapCache,\n            standardFontDataCache: this.standardFontDataCache,\n            globalImageCache: this.globalImageCache,\n            options: this.evaluatorOptions\n          });\n        }\n\n        textContentPromises.push(annotation.extractTextContent(partialEvaluator, task, this.view).catch(function (reason) {\n          (0, _util.warn)(`getAnnotationsData - ignoring textContent during \"${task.name}\" task: \"${reason}\".`);\n        }));\n      }\n    }\n\n    await Promise.all(textContentPromises);\n    return annotationsData;\n  }\n\n  get annotations() {\n    const annots = this._getInheritableProperty(\"Annots\");\n\n    return (0, _util.shadow)(this, \"annotations\", Array.isArray(annots) ? annots : []);\n  }\n\n  get _parsedAnnotations() {\n    const parsedAnnotations = this.pdfManager.ensure(this, \"annotations\").then(() => {\n      const annotationPromises = [];\n\n      for (const annotationRef of this.annotations) {\n        annotationPromises.push(_annotation.AnnotationFactory.create(this.xref, annotationRef, this.pdfManager, this._localIdFactory, false).catch(function (reason) {\n          (0, _util.warn)(`_parsedAnnotations: \"${reason}\".`);\n          return null;\n        }));\n      }\n\n      return Promise.all(annotationPromises).then(function (annotations) {\n        if (annotations.length === 0) {\n          return annotations;\n        }\n\n        const sortedAnnotations = [];\n        let popupAnnotations;\n\n        for (const annotation of annotations) {\n          if (!annotation) {\n            continue;\n          }\n\n          if (annotation instanceof _annotation.PopupAnnotation) {\n            if (!popupAnnotations) {\n              popupAnnotations = [];\n            }\n\n            popupAnnotations.push(annotation);\n            continue;\n          }\n\n          sortedAnnotations.push(annotation);\n        }\n\n        if (popupAnnotations) {\n          sortedAnnotations.push(...popupAnnotations);\n        }\n\n        return sortedAnnotations;\n      });\n    });\n    return (0, _util.shadow)(this, \"_parsedAnnotations\", parsedAnnotations);\n  }\n\n  get jsActions() {\n    const actions = (0, _core_utils.collectActions)(this.xref, this.pageDict, _util.PageActionEventType);\n    return (0, _util.shadow)(this, \"jsActions\", actions);\n  }\n\n}\n\nexports.Page = Page;\nconst PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]);\nconst STARTXREF_SIGNATURE = new Uint8Array([0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66]);\nconst ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]);\nconst FINGERPRINT_FIRST_BYTES = 1024;\nconst EMPTY_FINGERPRINT = \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\";\nconst PDF_HEADER_VERSION_REGEXP = /^[1-9]\\.\\d$/;\n\nfunction find(stream, signature) {\n  let limit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1024;\n  let backwards = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n  const signatureLength = signature.length;\n  const scanBytes = stream.peekBytes(limit);\n  const scanLength = scanBytes.length - signatureLength;\n\n  if (scanLength <= 0) {\n    return false;\n  }\n\n  if (backwards) {\n    const signatureEnd = signatureLength - 1;\n    let pos = scanBytes.length - 1;\n\n    while (pos >= signatureEnd) {\n      let j = 0;\n\n      while (j < signatureLength && scanBytes[pos - j] === signature[signatureEnd - j]) {\n        j++;\n      }\n\n      if (j >= signatureLength) {\n        stream.pos += pos - signatureEnd;\n        return true;\n      }\n\n      pos--;\n    }\n  } else {\n    let pos = 0;\n\n    while (pos <= scanLength) {\n      let j = 0;\n\n      while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n        j++;\n      }\n\n      if (j >= signatureLength) {\n        stream.pos += pos;\n        return true;\n      }\n\n      pos++;\n    }\n  }\n\n  return false;\n}\n\nclass PDFDocument {\n  constructor(pdfManager, stream) {\n    if (stream.length <= 0) {\n      throw new _util.InvalidPDFException(\"The PDF file is empty, i.e. its size is zero bytes.\");\n    }\n\n    this.pdfManager = pdfManager;\n    this.stream = stream;\n    this.xref = new _xref.XRef(stream, pdfManager);\n    this._pagePromises = new Map();\n    this._version = null;\n    const idCounters = {\n      font: 0\n    };\n    this._globalIdFactory = class {\n      static getDocId() {\n        return `g_${pdfManager.docId}`;\n      }\n\n      static createFontId() {\n        return `f${++idCounters.font}`;\n      }\n\n      static createObjId() {\n        (0, _util.unreachable)(\"Abstract method `createObjId` called.\");\n      }\n\n      static getPageObjId() {\n        (0, _util.unreachable)(\"Abstract method `getPageObjId` called.\");\n      }\n\n    };\n  }\n\n  parse(recoveryMode) {\n    this.xref.parse(recoveryMode);\n    this.catalog = new _catalog.Catalog(this.pdfManager, this.xref);\n\n    if (this.catalog.version) {\n      this._version = this.catalog.version;\n    }\n  }\n\n  get linearization() {\n    let linearization = null;\n\n    try {\n      linearization = _parser.Linearization.create(this.stream);\n    } catch (err) {\n      if (err instanceof _core_utils.MissingDataException) {\n        throw err;\n      }\n\n      (0, _util.info)(err);\n    }\n\n    return (0, _util.shadow)(this, \"linearization\", linearization);\n  }\n\n  get startXRef() {\n    const stream = this.stream;\n    let startXRef = 0;\n\n    if (this.linearization) {\n      stream.reset();\n\n      if (find(stream, ENDOBJ_SIGNATURE)) {\n        startXRef = stream.pos + 6 - stream.start;\n      }\n    } else {\n      const step = 1024;\n      const startXRefLength = STARTXREF_SIGNATURE.length;\n      let found = false,\n          pos = stream.end;\n\n      while (!found && pos > 0) {\n        pos -= step - startXRefLength;\n\n        if (pos < 0) {\n          pos = 0;\n        }\n\n        stream.pos = pos;\n        found = find(stream, STARTXREF_SIGNATURE, step, true);\n      }\n\n      if (found) {\n        stream.skip(9);\n        let ch;\n\n        do {\n          ch = stream.getByte();\n        } while ((0, _core_utils.isWhiteSpace)(ch));\n\n        let str = \"\";\n\n        while (ch >= 0x20 && ch <= 0x39) {\n          str += String.fromCharCode(ch);\n          ch = stream.getByte();\n        }\n\n        startXRef = parseInt(str, 10);\n\n        if (isNaN(startXRef)) {\n          startXRef = 0;\n        }\n      }\n    }\n\n    return (0, _util.shadow)(this, \"startXRef\", startXRef);\n  }\n\n  checkHeader() {\n    const stream = this.stream;\n    stream.reset();\n\n    if (!find(stream, PDF_HEADER_SIGNATURE)) {\n      return;\n    }\n\n    stream.moveStart();\n    const MAX_PDF_VERSION_LENGTH = 12;\n    let version = \"\",\n        ch;\n\n    while ((ch = stream.getByte()) > 0x20) {\n      if (version.length >= MAX_PDF_VERSION_LENGTH) {\n        break;\n      }\n\n      version += String.fromCharCode(ch);\n    }\n\n    if (!this._version) {\n      this._version = version.substring(5);\n    }\n  }\n\n  parseStartXRef() {\n    this.xref.setStartXRef(this.startXRef);\n  }\n\n  get numPages() {\n    let num = 0;\n\n    if (this.catalog.hasActualNumPages) {\n      num = this.catalog.numPages;\n    } else if (this.xfaFactory) {\n      num = this.xfaFactory.getNumPages();\n    } else if (this.linearization) {\n      num = this.linearization.numPages;\n    } else {\n      num = this.catalog.numPages;\n    }\n\n    return (0, _util.shadow)(this, \"numPages\", num);\n  }\n\n  _hasOnlyDocumentSignatures(fields) {\n    let recursionDepth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    const RECURSION_LIMIT = 10;\n\n    if (!Array.isArray(fields)) {\n      return false;\n    }\n\n    return fields.every(field => {\n      field = this.xref.fetchIfRef(field);\n\n      if (!(field instanceof _primitives.Dict)) {\n        return false;\n      }\n\n      if (field.has(\"Kids\")) {\n        if (++recursionDepth > RECURSION_LIMIT) {\n          (0, _util.warn)(\"_hasOnlyDocumentSignatures: maximum recursion depth reached\");\n          return false;\n        }\n\n        return this._hasOnlyDocumentSignatures(field.get(\"Kids\"), recursionDepth);\n      }\n\n      const isSignature = (0, _primitives.isName)(field.get(\"FT\"), \"Sig\");\n      const rectangle = field.get(\"Rect\");\n      const isInvisible = Array.isArray(rectangle) && rectangle.every(value => value === 0);\n      return isSignature && isInvisible;\n    });\n  }\n\n  get _xfaStreams() {\n    const acroForm = this.catalog.acroForm;\n\n    if (!acroForm) {\n      return null;\n    }\n\n    const xfa = acroForm.get(\"XFA\");\n    const entries = {\n      \"xdp:xdp\": \"\",\n      template: \"\",\n      datasets: \"\",\n      config: \"\",\n      connectionSet: \"\",\n      localeSet: \"\",\n      stylesheet: \"\",\n      \"/xdp:xdp\": \"\"\n    };\n\n    if (xfa instanceof _base_stream.BaseStream && !xfa.isEmpty) {\n      entries[\"xdp:xdp\"] = xfa;\n      return entries;\n    }\n\n    if (!Array.isArray(xfa) || xfa.length === 0) {\n      return null;\n    }\n\n    for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n      let name;\n\n      if (i === 0) {\n        name = \"xdp:xdp\";\n      } else if (i === ii - 2) {\n        name = \"/xdp:xdp\";\n      } else {\n        name = xfa[i];\n      }\n\n      if (!entries.hasOwnProperty(name)) {\n        continue;\n      }\n\n      const data = this.xref.fetchIfRef(xfa[i + 1]);\n\n      if (!(data instanceof _base_stream.BaseStream) || data.isEmpty) {\n        continue;\n      }\n\n      entries[name] = data;\n    }\n\n    return entries;\n  }\n\n  get xfaDatasets() {\n    const streams = this._xfaStreams;\n\n    if (!streams) {\n      return (0, _util.shadow)(this, \"xfaDatasets\", null);\n    }\n\n    for (const key of [\"datasets\", \"xdp:xdp\"]) {\n      const stream = streams[key];\n\n      if (!stream) {\n        continue;\n      }\n\n      try {\n        const str = (0, _util.stringToUTF8String)(stream.getString());\n        const data = {\n          [key]: str\n        };\n        return (0, _util.shadow)(this, \"xfaDatasets\", new _dataset_reader.DatasetReader(data));\n      } catch (_) {\n        (0, _util.warn)(\"XFA - Invalid utf-8 string.\");\n        break;\n      }\n    }\n\n    return (0, _util.shadow)(this, \"xfaDatasets\", null);\n  }\n\n  get xfaData() {\n    const streams = this._xfaStreams;\n\n    if (!streams) {\n      return null;\n    }\n\n    const data = Object.create(null);\n\n    for (const [key, stream] of Object.entries(streams)) {\n      if (!stream) {\n        continue;\n      }\n\n      try {\n        data[key] = (0, _util.stringToUTF8String)(stream.getString());\n      } catch (_) {\n        (0, _util.warn)(\"XFA - Invalid utf-8 string.\");\n        return null;\n      }\n    }\n\n    return data;\n  }\n\n  get xfaFactory() {\n    let data;\n\n    if (this.pdfManager.enableXfa && this.catalog.needsRendering && this.formInfo.hasXfa && !this.formInfo.hasAcroForm) {\n      data = this.xfaData;\n    }\n\n    return (0, _util.shadow)(this, \"xfaFactory\", data ? new _factory.XFAFactory(data) : null);\n  }\n\n  get isPureXfa() {\n    return this.xfaFactory ? this.xfaFactory.isValid() : false;\n  }\n\n  get htmlForXfa() {\n    return this.xfaFactory ? this.xfaFactory.getPages() : null;\n  }\n\n  async loadXfaImages() {\n    const xfaImagesDict = await this.pdfManager.ensureCatalog(\"xfaImages\");\n\n    if (!xfaImagesDict) {\n      return;\n    }\n\n    const keys = xfaImagesDict.getKeys();\n    const objectLoader = new _object_loader.ObjectLoader(xfaImagesDict, keys, this.xref);\n    await objectLoader.load();\n    const xfaImages = new Map();\n\n    for (const key of keys) {\n      const stream = xfaImagesDict.get(key);\n\n      if (stream instanceof _base_stream.BaseStream) {\n        xfaImages.set(key, stream.getBytes());\n      }\n    }\n\n    this.xfaFactory.setImages(xfaImages);\n  }\n\n  async loadXfaFonts(handler, task) {\n    const acroForm = await this.pdfManager.ensureCatalog(\"acroForm\");\n\n    if (!acroForm) {\n      return;\n    }\n\n    const resources = await acroForm.getAsync(\"DR\");\n\n    if (!(resources instanceof _primitives.Dict)) {\n      return;\n    }\n\n    const objectLoader = new _object_loader.ObjectLoader(resources, [\"Font\"], this.xref);\n    await objectLoader.load();\n    const fontRes = resources.get(\"Font\");\n\n    if (!(fontRes instanceof _primitives.Dict)) {\n      return;\n    }\n\n    const options = Object.assign(Object.create(null), this.pdfManager.evaluatorOptions);\n    options.useSystemFonts = false;\n    const partialEvaluator = new _evaluator.PartialEvaluator({\n      xref: this.xref,\n      handler,\n      pageIndex: -1,\n      idFactory: this._globalIdFactory,\n      fontCache: this.catalog.fontCache,\n      builtInCMapCache: this.catalog.builtInCMapCache,\n      standardFontDataCache: this.catalog.standardFontDataCache,\n      options\n    });\n    const operatorList = new _operator_list.OperatorList();\n    const pdfFonts = [];\n    const initialState = {\n      get font() {\n        return pdfFonts.at(-1);\n      },\n\n      set font(font) {\n        pdfFonts.push(font);\n      },\n\n      clone() {\n        return this;\n      }\n\n    };\n    const fonts = new Map();\n    fontRes.forEach((fontName, font) => {\n      fonts.set(fontName, font);\n    });\n    const promises = [];\n\n    for (const [fontName, font] of fonts) {\n      const descriptor = font.get(\"FontDescriptor\");\n\n      if (!(descriptor instanceof _primitives.Dict)) {\n        continue;\n      }\n\n      let fontFamily = descriptor.get(\"FontFamily\");\n      fontFamily = fontFamily.replace(/[ ]+(\\d)/g, \"$1\");\n      const fontWeight = descriptor.get(\"FontWeight\");\n      const italicAngle = -descriptor.get(\"ItalicAngle\");\n      const cssFontInfo = {\n        fontFamily,\n        fontWeight,\n        italicAngle\n      };\n\n      if (!(0, _core_utils.validateCSSFont)(cssFontInfo)) {\n        continue;\n      }\n\n      promises.push(partialEvaluator.handleSetFont(resources, [_primitives.Name.get(fontName), 1], null, operatorList, task, initialState, null, cssFontInfo).catch(function (reason) {\n        (0, _util.warn)(`loadXfaFonts: \"${reason}\".`);\n        return null;\n      }));\n    }\n\n    await Promise.all(promises);\n    const missingFonts = this.xfaFactory.setFonts(pdfFonts);\n\n    if (!missingFonts) {\n      return;\n    }\n\n    options.ignoreErrors = true;\n    promises.length = 0;\n    pdfFonts.length = 0;\n    const reallyMissingFonts = new Set();\n\n    for (const missing of missingFonts) {\n      if (!(0, _xfa_fonts.getXfaFontName)(`${missing}-Regular`)) {\n        reallyMissingFonts.add(missing);\n      }\n    }\n\n    if (reallyMissingFonts.size) {\n      missingFonts.push(\"PdfJS-Fallback\");\n    }\n\n    for (const missing of missingFonts) {\n      if (reallyMissingFonts.has(missing)) {\n        continue;\n      }\n\n      for (const fontInfo of [{\n        name: \"Regular\",\n        fontWeight: 400,\n        italicAngle: 0\n      }, {\n        name: \"Bold\",\n        fontWeight: 700,\n        italicAngle: 0\n      }, {\n        name: \"Italic\",\n        fontWeight: 400,\n        italicAngle: 12\n      }, {\n        name: \"BoldItalic\",\n        fontWeight: 700,\n        italicAngle: 12\n      }]) {\n        const name = `${missing}-${fontInfo.name}`;\n        const dict = (0, _xfa_fonts.getXfaFontDict)(name);\n        promises.push(partialEvaluator.handleSetFont(resources, [_primitives.Name.get(name), 1], null, operatorList, task, initialState, dict, {\n          fontFamily: missing,\n          fontWeight: fontInfo.fontWeight,\n          italicAngle: fontInfo.italicAngle\n        }).catch(function (reason) {\n          (0, _util.warn)(`loadXfaFonts: \"${reason}\".`);\n          return null;\n        }));\n      }\n    }\n\n    await Promise.all(promises);\n    this.xfaFactory.appendFonts(pdfFonts, reallyMissingFonts);\n  }\n\n  async serializeXfaData(annotationStorage) {\n    return this.xfaFactory ? this.xfaFactory.serializeData(annotationStorage) : null;\n  }\n\n  get formInfo() {\n    const formInfo = {\n      hasFields: false,\n      hasAcroForm: false,\n      hasXfa: false,\n      hasSignatures: false\n    };\n    const acroForm = this.catalog.acroForm;\n\n    if (!acroForm) {\n      return (0, _util.shadow)(this, \"formInfo\", formInfo);\n    }\n\n    try {\n      const fields = acroForm.get(\"Fields\");\n      const hasFields = Array.isArray(fields) && fields.length > 0;\n      formInfo.hasFields = hasFields;\n      const xfa = acroForm.get(\"XFA\");\n      formInfo.hasXfa = Array.isArray(xfa) && xfa.length > 0 || xfa instanceof _base_stream.BaseStream && !xfa.isEmpty;\n      const sigFlags = acroForm.get(\"SigFlags\");\n      const hasSignatures = !!(sigFlags & 0x1);\n\n      const hasOnlyDocumentSignatures = hasSignatures && this._hasOnlyDocumentSignatures(fields);\n\n      formInfo.hasAcroForm = hasFields && !hasOnlyDocumentSignatures;\n      formInfo.hasSignatures = hasSignatures;\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(`Cannot fetch form information: \"${ex}\".`);\n    }\n\n    return (0, _util.shadow)(this, \"formInfo\", formInfo);\n  }\n\n  get documentInfo() {\n    let version = this._version;\n\n    if (typeof version !== \"string\" || !PDF_HEADER_VERSION_REGEXP.test(version)) {\n      (0, _util.warn)(`Invalid PDF header version number: ${version}`);\n      version = null;\n    }\n\n    const docInfo = {\n      PDFFormatVersion: version,\n      Language: this.catalog.lang,\n      EncryptFilterName: this.xref.encrypt ? this.xref.encrypt.filterName : null,\n      IsLinearized: !!this.linearization,\n      IsAcroFormPresent: this.formInfo.hasAcroForm,\n      IsXFAPresent: this.formInfo.hasXfa,\n      IsCollectionPresent: !!this.catalog.collection,\n      IsSignaturesPresent: this.formInfo.hasSignatures\n    };\n    let infoDict;\n\n    try {\n      infoDict = this.xref.trailer.get(\"Info\");\n    } catch (err) {\n      if (err instanceof _core_utils.MissingDataException) {\n        throw err;\n      }\n\n      (0, _util.info)(\"The document information dictionary is invalid.\");\n    }\n\n    if (!(infoDict instanceof _primitives.Dict)) {\n      return (0, _util.shadow)(this, \"documentInfo\", docInfo);\n    }\n\n    for (const key of infoDict.getKeys()) {\n      const value = infoDict.get(key);\n\n      switch (key) {\n        case \"Title\":\n        case \"Author\":\n        case \"Subject\":\n        case \"Keywords\":\n        case \"Creator\":\n        case \"Producer\":\n        case \"CreationDate\":\n        case \"ModDate\":\n          if (typeof value === \"string\") {\n            docInfo[key] = (0, _util.stringToPDFString)(value);\n            continue;\n          }\n\n          break;\n\n        case \"Trapped\":\n          if (value instanceof _primitives.Name) {\n            docInfo[key] = value;\n            continue;\n          }\n\n          break;\n\n        default:\n          let customValue;\n\n          switch (typeof value) {\n            case \"string\":\n              customValue = (0, _util.stringToPDFString)(value);\n              break;\n\n            case \"number\":\n            case \"boolean\":\n              customValue = value;\n              break;\n\n            default:\n              if (value instanceof _primitives.Name) {\n                customValue = value;\n              }\n\n              break;\n          }\n\n          if (customValue === undefined) {\n            (0, _util.warn)(`Bad value, for custom key \"${key}\", in Info: ${value}.`);\n            continue;\n          }\n\n          if (!docInfo.Custom) {\n            docInfo.Custom = Object.create(null);\n          }\n\n          docInfo.Custom[key] = customValue;\n          continue;\n      }\n\n      (0, _util.warn)(`Bad value, for key \"${key}\", in Info: ${value}.`);\n    }\n\n    return (0, _util.shadow)(this, \"documentInfo\", docInfo);\n  }\n\n  get fingerprints() {\n    function validate(data) {\n      return typeof data === \"string\" && data.length > 0 && data !== EMPTY_FINGERPRINT;\n    }\n\n    function hexString(hash) {\n      const buf = [];\n\n      for (let i = 0, ii = hash.length; i < ii; i++) {\n        const hex = hash[i].toString(16);\n        buf.push(hex.padStart(2, \"0\"));\n      }\n\n      return buf.join(\"\");\n    }\n\n    const idArray = this.xref.trailer.get(\"ID\");\n    let hashOriginal, hashModified;\n\n    if (Array.isArray(idArray) && validate(idArray[0])) {\n      hashOriginal = (0, _util.stringToBytes)(idArray[0]);\n\n      if (idArray[1] !== idArray[0] && validate(idArray[1])) {\n        hashModified = (0, _util.stringToBytes)(idArray[1]);\n      }\n    } else {\n      hashOriginal = (0, _crypto.calculateMD5)(this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES);\n    }\n\n    return (0, _util.shadow)(this, \"fingerprints\", [hexString(hashOriginal), hashModified ? hexString(hashModified) : null]);\n  }\n\n  async _getLinearizationPage(pageIndex) {\n    const {\n      catalog,\n      linearization,\n      xref\n    } = this;\n\n    const ref = _primitives.Ref.get(linearization.objectNumberFirst, 0);\n\n    try {\n      const obj = await xref.fetchAsync(ref);\n\n      if (obj instanceof _primitives.Dict) {\n        let type = obj.getRaw(\"Type\");\n\n        if (type instanceof _primitives.Ref) {\n          type = await xref.fetchAsync(type);\n        }\n\n        if ((0, _primitives.isName)(type, \"Page\") || !obj.has(\"Type\") && !obj.has(\"Kids\")) {\n          if (!catalog.pageKidsCountCache.has(ref)) {\n            catalog.pageKidsCountCache.put(ref, 1);\n          }\n\n          if (!catalog.pageIndexCache.has(ref)) {\n            catalog.pageIndexCache.put(ref, 0);\n          }\n\n          return [obj, ref];\n        }\n      }\n\n      throw new _util.FormatError(\"The Linearization dictionary doesn't point to a valid Page dictionary.\");\n    } catch (reason) {\n      (0, _util.warn)(`_getLinearizationPage: \"${reason.message}\".`);\n      return catalog.getPageDict(pageIndex);\n    }\n  }\n\n  getPage(pageIndex) {\n    const cachedPromise = this._pagePromises.get(pageIndex);\n\n    if (cachedPromise) {\n      return cachedPromise;\n    }\n\n    const {\n      catalog,\n      linearization,\n      xfaFactory\n    } = this;\n    let promise;\n\n    if (xfaFactory) {\n      promise = Promise.resolve([_primitives.Dict.empty, null]);\n    } else if (linearization && linearization.pageFirst === pageIndex) {\n      promise = this._getLinearizationPage(pageIndex);\n    } else {\n      promise = catalog.getPageDict(pageIndex);\n    }\n\n    promise = promise.then(_ref7 => {\n      let [pageDict, ref] = _ref7;\n      return new Page({\n        pdfManager: this.pdfManager,\n        xref: this.xref,\n        pageIndex,\n        pageDict,\n        ref,\n        globalIdFactory: this._globalIdFactory,\n        fontCache: catalog.fontCache,\n        builtInCMapCache: catalog.builtInCMapCache,\n        standardFontDataCache: catalog.standardFontDataCache,\n        globalImageCache: catalog.globalImageCache,\n        nonBlendModesSet: catalog.nonBlendModesSet,\n        xfaFactory\n      });\n    });\n\n    this._pagePromises.set(pageIndex, promise);\n\n    return promise;\n  }\n\n  async checkFirstPage() {\n    let recoveryMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    if (recoveryMode) {\n      return;\n    }\n\n    try {\n      await this.getPage(0);\n    } catch (reason) {\n      if (reason instanceof _core_utils.XRefEntryException) {\n        this._pagePromises.delete(0);\n\n        await this.cleanup();\n        throw new _core_utils.XRefParseException();\n      }\n    }\n  }\n\n  async checkLastPage() {\n    let recoveryMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    const {\n      catalog,\n      pdfManager\n    } = this;\n    catalog.setActualNumPages();\n    let numPages;\n\n    try {\n      await Promise.all([pdfManager.ensureDoc(\"xfaFactory\"), pdfManager.ensureDoc(\"linearization\"), pdfManager.ensureCatalog(\"numPages\")]);\n\n      if (this.xfaFactory) {\n        return;\n      } else if (this.linearization) {\n        numPages = this.linearization.numPages;\n      } else {\n        numPages = catalog.numPages;\n      }\n\n      if (!Number.isInteger(numPages)) {\n        throw new _util.FormatError(\"Page count is not an integer.\");\n      } else if (numPages <= 1) {\n        return;\n      }\n\n      await this.getPage(numPages - 1);\n    } catch (reason) {\n      this._pagePromises.delete(numPages - 1);\n\n      await this.cleanup();\n\n      if (reason instanceof _core_utils.XRefEntryException && !recoveryMode) {\n        throw new _core_utils.XRefParseException();\n      }\n\n      (0, _util.warn)(`checkLastPage - invalid /Pages tree /Count: ${numPages}.`);\n      let pagesTree;\n\n      try {\n        pagesTree = await catalog.getAllPageDicts(recoveryMode);\n      } catch (reasonAll) {\n        if (reasonAll instanceof _core_utils.XRefEntryException && !recoveryMode) {\n          throw new _core_utils.XRefParseException();\n        }\n\n        catalog.setActualNumPages(1);\n        return;\n      }\n\n      for (const [pageIndex, [pageDict, ref]] of pagesTree) {\n        let promise;\n\n        if (pageDict instanceof Error) {\n          promise = Promise.reject(pageDict);\n          promise.catch(() => {});\n        } else {\n          promise = Promise.resolve(new Page({\n            pdfManager,\n            xref: this.xref,\n            pageIndex,\n            pageDict,\n            ref,\n            globalIdFactory: this._globalIdFactory,\n            fontCache: catalog.fontCache,\n            builtInCMapCache: catalog.builtInCMapCache,\n            standardFontDataCache: catalog.standardFontDataCache,\n            globalImageCache: catalog.globalImageCache,\n            nonBlendModesSet: catalog.nonBlendModesSet,\n            xfaFactory: null\n          }));\n        }\n\n        this._pagePromises.set(pageIndex, promise);\n      }\n\n      catalog.setActualNumPages(pagesTree.size);\n    }\n  }\n\n  fontFallback(id, handler) {\n    return this.catalog.fontFallback(id, handler);\n  }\n\n  async cleanup() {\n    let manuallyTriggered = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    return this.catalog ? this.catalog.cleanup(manuallyTriggered) : (0, _cleanup_helper.clearGlobalCaches)();\n  }\n\n  _collectFieldObjects(name, fieldRef, promises) {\n    const field = this.xref.fetchIfRef(fieldRef);\n\n    if (field.has(\"T\")) {\n      const partName = (0, _util.stringToPDFString)(field.get(\"T\"));\n\n      if (name === \"\") {\n        name = partName;\n      } else {\n        name = `${name}.${partName}`;\n      }\n    }\n\n    if (!promises.has(name)) {\n      promises.set(name, []);\n    }\n\n    promises.get(name).push(_annotation.AnnotationFactory.create(this.xref, fieldRef, this.pdfManager, this._localIdFactory, true).then(annotation => annotation && annotation.getFieldObject()).catch(function (reason) {\n      (0, _util.warn)(`_collectFieldObjects: \"${reason}\".`);\n      return null;\n    }));\n\n    if (field.has(\"Kids\")) {\n      const kids = field.get(\"Kids\");\n\n      for (const kid of kids) {\n        this._collectFieldObjects(name, kid, promises);\n      }\n    }\n  }\n\n  get fieldObjects() {\n    if (!this.formInfo.hasFields) {\n      return (0, _util.shadow)(this, \"fieldObjects\", Promise.resolve(null));\n    }\n\n    const allFields = Object.create(null);\n    const fieldPromises = new Map();\n\n    for (const fieldRef of this.catalog.acroForm.get(\"Fields\")) {\n      this._collectFieldObjects(\"\", fieldRef, fieldPromises);\n    }\n\n    const allPromises = [];\n\n    for (const [name, promises] of fieldPromises) {\n      allPromises.push(Promise.all(promises).then(fields => {\n        fields = fields.filter(field => !!field);\n\n        if (fields.length > 0) {\n          allFields[name] = fields;\n        }\n      }));\n    }\n\n    return (0, _util.shadow)(this, \"fieldObjects\", Promise.all(allPromises).then(() => allFields));\n  }\n\n  get hasJSActions() {\n    const promise = this.pdfManager.ensureDoc(\"_parseHasJSActions\");\n    return (0, _util.shadow)(this, \"hasJSActions\", promise);\n  }\n\n  async _parseHasJSActions() {\n    const [catalogJsActions, fieldObjects] = await Promise.all([this.pdfManager.ensureCatalog(\"jsActions\"), this.pdfManager.ensureDoc(\"fieldObjects\")]);\n\n    if (catalogJsActions) {\n      return true;\n    }\n\n    if (fieldObjects) {\n      return Object.values(fieldObjects).some(fieldObject => fieldObject.some(object => object.actions !== null));\n    }\n\n    return false;\n  }\n\n  get calculationOrderIds() {\n    const acroForm = this.catalog.acroForm;\n\n    if (!acroForm || !acroForm.has(\"CO\")) {\n      return (0, _util.shadow)(this, \"calculationOrderIds\", null);\n    }\n\n    const calculationOrder = acroForm.get(\"CO\");\n\n    if (!Array.isArray(calculationOrder) || calculationOrder.length === 0) {\n      return (0, _util.shadow)(this, \"calculationOrderIds\", null);\n    }\n\n    const ids = [];\n\n    for (const id of calculationOrder) {\n      if (id instanceof _primitives.Ref) {\n        ids.push(id.toString());\n      }\n    }\n\n    if (ids.length === 0) {\n      return (0, _util.shadow)(this, \"calculationOrderIds\", null);\n    }\n\n    return (0, _util.shadow)(this, \"calculationOrderIds\", ids);\n  }\n\n}\n\nexports.PDFDocument = PDFDocument;\n\n/***/ }),\n/* 137 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PopupAnnotation = exports.MarkupAnnotation = exports.AnnotationFactory = exports.AnnotationBorderStyle = exports.Annotation = void 0;\nexports.getQuadPoints = getQuadPoints;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _default_appearance = __w_pdfjs_require__(138);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _writer = __w_pdfjs_require__(190);\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _bidi = __w_pdfjs_require__(185);\n\nvar _catalog = __w_pdfjs_require__(194);\n\nvar _colorspace = __w_pdfjs_require__(139);\n\nvar _file_spec = __w_pdfjs_require__(197);\n\nvar _object_loader = __w_pdfjs_require__(200);\n\nvar _operator_list = __w_pdfjs_require__(187);\n\nvar _stream = __w_pdfjs_require__(135);\n\nvar _factory = __w_pdfjs_require__(201);\n\nclass AnnotationFactory {\n  static create(xref, ref, pdfManager, idFactory, collectFields) {\n    return Promise.all([pdfManager.ensureCatalog(\"acroForm\"), pdfManager.ensureCatalog(\"baseUrl\"), pdfManager.ensureDoc(\"xfaDatasets\"), collectFields ? this._getPageIndex(xref, ref, pdfManager) : -1]).then(_ref => {\n      let [acroForm, baseUrl, xfaDatasets, pageIndex] = _ref;\n      return pdfManager.ensure(this, \"_create\", [xref, ref, pdfManager, idFactory, acroForm, xfaDatasets, collectFields, pageIndex]);\n    });\n  }\n\n  static _create(xref, ref, pdfManager, idFactory, acroForm, xfaDatasets, collectFields) {\n    let pageIndex = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : -1;\n    const dict = xref.fetchIfRef(ref);\n\n    if (!(dict instanceof _primitives.Dict)) {\n      return undefined;\n    }\n\n    const id = ref instanceof _primitives.Ref ? ref.toString() : `annot_${idFactory.createObjId()}`;\n    let subtype = dict.get(\"Subtype\");\n    subtype = subtype instanceof _primitives.Name ? subtype.name : null;\n    const parameters = {\n      xref,\n      ref,\n      dict,\n      subtype,\n      id,\n      pdfManager,\n      acroForm: acroForm instanceof _primitives.Dict ? acroForm : _primitives.Dict.empty,\n      xfaDatasets,\n      collectFields,\n      pageIndex\n    };\n\n    switch (subtype) {\n      case \"Link\":\n        return new LinkAnnotation(parameters);\n\n      case \"Text\":\n        return new TextAnnotation(parameters);\n\n      case \"Widget\":\n        let fieldType = (0, _core_utils.getInheritableProperty)({\n          dict,\n          key: \"FT\"\n        });\n        fieldType = fieldType instanceof _primitives.Name ? fieldType.name : null;\n\n        switch (fieldType) {\n          case \"Tx\":\n            return new TextWidgetAnnotation(parameters);\n\n          case \"Btn\":\n            return new ButtonWidgetAnnotation(parameters);\n\n          case \"Ch\":\n            return new ChoiceWidgetAnnotation(parameters);\n\n          case \"Sig\":\n            return new SignatureWidgetAnnotation(parameters);\n        }\n\n        (0, _util.warn)(`Unimplemented widget field type \"${fieldType}\", ` + \"falling back to base field type.\");\n        return new WidgetAnnotation(parameters);\n\n      case \"Popup\":\n        return new PopupAnnotation(parameters);\n\n      case \"FreeText\":\n        return new FreeTextAnnotation(parameters);\n\n      case \"Line\":\n        return new LineAnnotation(parameters);\n\n      case \"Square\":\n        return new SquareAnnotation(parameters);\n\n      case \"Circle\":\n        return new CircleAnnotation(parameters);\n\n      case \"PolyLine\":\n        return new PolylineAnnotation(parameters);\n\n      case \"Polygon\":\n        return new PolygonAnnotation(parameters);\n\n      case \"Caret\":\n        return new CaretAnnotation(parameters);\n\n      case \"Ink\":\n        return new InkAnnotation(parameters);\n\n      case \"Highlight\":\n        return new HighlightAnnotation(parameters);\n\n      case \"Underline\":\n        return new UnderlineAnnotation(parameters);\n\n      case \"Squiggly\":\n        return new SquigglyAnnotation(parameters);\n\n      case \"StrikeOut\":\n        return new StrikeOutAnnotation(parameters);\n\n      case \"Stamp\":\n        return new StampAnnotation(parameters);\n\n      case \"FileAttachment\":\n        return new FileAttachmentAnnotation(parameters);\n\n      default:\n        if (!collectFields) {\n          if (!subtype) {\n            (0, _util.warn)(\"Annotation is missing the required /Subtype.\");\n          } else {\n            (0, _util.warn)(`Unimplemented annotation type \"${subtype}\", ` + \"falling back to base annotation.\");\n          }\n        }\n\n        return new Annotation(parameters);\n    }\n  }\n\n  static async _getPageIndex(xref, ref, pdfManager) {\n    try {\n      const annotDict = await xref.fetchIfRefAsync(ref);\n\n      if (!(annotDict instanceof _primitives.Dict)) {\n        return -1;\n      }\n\n      const pageRef = annotDict.getRaw(\"P\");\n\n      if (!(pageRef instanceof _primitives.Ref)) {\n        return -1;\n      }\n\n      const pageIndex = await pdfManager.ensureCatalog(\"getPageIndex\", [pageRef]);\n      return pageIndex;\n    } catch (ex) {\n      (0, _util.warn)(`_getPageIndex: \"${ex}\".`);\n      return -1;\n    }\n  }\n\n  static async saveNewAnnotations(evaluator, task, annotations) {\n    const xref = evaluator.xref;\n    let baseFontRef;\n    const dependencies = [];\n    const promises = [];\n\n    for (const annotation of annotations) {\n      switch (annotation.annotationType) {\n        case _util.AnnotationEditorType.FREETEXT:\n          if (!baseFontRef) {\n            const baseFont = new _primitives.Dict(xref);\n            baseFont.set(\"BaseFont\", _primitives.Name.get(\"Helvetica\"));\n            baseFont.set(\"Type\", _primitives.Name.get(\"Font\"));\n            baseFont.set(\"Subtype\", _primitives.Name.get(\"Type1\"));\n            baseFont.set(\"Encoding\", _primitives.Name.get(\"WinAnsiEncoding\"));\n            const buffer = [];\n            baseFontRef = xref.getNewRef();\n            (0, _writer.writeObject)(baseFontRef, baseFont, buffer, null);\n            dependencies.push({\n              ref: baseFontRef,\n              data: buffer.join(\"\")\n            });\n          }\n\n          promises.push(FreeTextAnnotation.createNewAnnotation(xref, annotation, dependencies, {\n            evaluator,\n            task,\n            baseFontRef\n          }));\n          break;\n\n        case _util.AnnotationEditorType.INK:\n          promises.push(InkAnnotation.createNewAnnotation(xref, annotation, dependencies));\n      }\n    }\n\n    return {\n      annotations: await Promise.all(promises),\n      dependencies\n    };\n  }\n\n  static async printNewAnnotations(evaluator, task, annotations) {\n    if (!annotations) {\n      return null;\n    }\n\n    const xref = evaluator.xref;\n    const promises = [];\n\n    for (const annotation of annotations) {\n      switch (annotation.annotationType) {\n        case _util.AnnotationEditorType.FREETEXT:\n          promises.push(FreeTextAnnotation.createNewPrintAnnotation(xref, annotation, {\n            evaluator,\n            task\n          }));\n          break;\n\n        case _util.AnnotationEditorType.INK:\n          promises.push(InkAnnotation.createNewPrintAnnotation(xref, annotation));\n          break;\n      }\n    }\n\n    return Promise.all(promises);\n  }\n\n}\n\nexports.AnnotationFactory = AnnotationFactory;\n\nfunction getRgbColor(color) {\n  let defaultColor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Uint8ClampedArray(3);\n\n  if (!Array.isArray(color)) {\n    return defaultColor;\n  }\n\n  const rgbColor = defaultColor || new Uint8ClampedArray(3);\n\n  switch (color.length) {\n    case 0:\n      return null;\n\n    case 1:\n      _colorspace.ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n\n      return rgbColor;\n\n    case 3:\n      _colorspace.ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n\n      return rgbColor;\n\n    case 4:\n      _colorspace.ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n\n      return rgbColor;\n\n    default:\n      return defaultColor;\n  }\n}\n\nfunction getQuadPoints(dict, rect) {\n  if (!dict.has(\"QuadPoints\")) {\n    return null;\n  }\n\n  const quadPoints = dict.getArray(\"QuadPoints\");\n\n  if (!Array.isArray(quadPoints) || quadPoints.length === 0 || quadPoints.length % 8 > 0) {\n    return null;\n  }\n\n  const quadPointsLists = [];\n\n  for (let i = 0, ii = quadPoints.length / 8; i < ii; i++) {\n    quadPointsLists.push([]);\n\n    for (let j = i * 8, jj = i * 8 + 8; j < jj; j += 2) {\n      const x = quadPoints[j];\n      const y = quadPoints[j + 1];\n\n      if (rect !== null && (x < rect[0] || x > rect[2] || y < rect[1] || y > rect[3])) {\n        return null;\n      }\n\n      quadPointsLists[i].push({\n        x,\n        y\n      });\n    }\n  }\n\n  return quadPointsLists.map(quadPointsList => {\n    const [minX, maxX, minY, maxY] = quadPointsList.reduce((_ref2, quadPoint) => {\n      let [mX, MX, mY, MY] = _ref2;\n      return [Math.min(mX, quadPoint.x), Math.max(MX, quadPoint.x), Math.min(mY, quadPoint.y), Math.max(MY, quadPoint.y)];\n    }, [Number.MAX_VALUE, Number.MIN_VALUE, Number.MAX_VALUE, Number.MIN_VALUE]);\n    return [{\n      x: minX,\n      y: maxY\n    }, {\n      x: maxX,\n      y: maxY\n    }, {\n      x: minX,\n      y: minY\n    }, {\n      x: maxX,\n      y: minY\n    }];\n  });\n}\n\nfunction getTransformMatrix(rect, bbox, matrix) {\n  const [minX, minY, maxX, maxY] = _util.Util.getAxialAlignedBoundingBox(bbox, matrix);\n\n  if (minX === maxX || minY === maxY) {\n    return [1, 0, 0, 1, rect[0], rect[1]];\n  }\n\n  const xRatio = (rect[2] - rect[0]) / (maxX - minX);\n  const yRatio = (rect[3] - rect[1]) / (maxY - minY);\n  return [xRatio, 0, 0, yRatio, rect[0] - minX * xRatio, rect[1] - minY * yRatio];\n}\n\nclass Annotation {\n  constructor(params) {\n    const dict = params.dict;\n    this.setTitle(dict.get(\"T\"));\n    this.setContents(dict.get(\"Contents\"));\n    this.setModificationDate(dict.get(\"M\"));\n    this.setFlags(dict.get(\"F\"));\n    this.setRectangle(dict.getArray(\"Rect\"));\n    this.setColor(dict.getArray(\"C\"));\n    this.setBorderStyle(dict);\n    this.setAppearance(dict);\n    this.setOptionalContent(dict);\n    const MK = dict.get(\"MK\");\n    this.setBorderAndBackgroundColors(MK);\n    this.setRotation(MK);\n    this._streams = [];\n\n    if (this.appearance) {\n      this._streams.push(this.appearance);\n    }\n\n    this.data = {\n      annotationFlags: this.flags,\n      borderStyle: this.borderStyle,\n      color: this.color,\n      backgroundColor: this.backgroundColor,\n      borderColor: this.borderColor,\n      rotation: this.rotation,\n      contentsObj: this._contents,\n      hasAppearance: !!this.appearance,\n      id: params.id,\n      modificationDate: this.modificationDate,\n      rect: this.rectangle,\n      subtype: params.subtype,\n      hasOwnCanvas: false\n    };\n\n    if (params.collectFields) {\n      const kids = dict.get(\"Kids\");\n\n      if (Array.isArray(kids)) {\n        const kidIds = [];\n\n        for (const kid of kids) {\n          if (kid instanceof _primitives.Ref) {\n            kidIds.push(kid.toString());\n          }\n        }\n\n        if (kidIds.length !== 0) {\n          this.data.kidIds = kidIds;\n        }\n      }\n\n      this.data.actions = (0, _core_utils.collectActions)(params.xref, dict, _util.AnnotationActionEventType);\n      this.data.fieldName = this._constructFieldName(dict);\n      this.data.pageIndex = params.pageIndex;\n    }\n\n    this._fallbackFontDict = null;\n  }\n\n  _hasFlag(flags, flag) {\n    return !!(flags & flag);\n  }\n\n  _isViewable(flags) {\n    return !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.NOVIEW);\n  }\n\n  _isPrintable(flags) {\n    return this._hasFlag(flags, _util.AnnotationFlag.PRINT) && !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE);\n  }\n\n  mustBeViewed(annotationStorage) {\n    const storageEntry = annotationStorage && annotationStorage.get(this.data.id);\n\n    if (storageEntry && storageEntry.hidden !== undefined) {\n      return !storageEntry.hidden;\n    }\n\n    return this.viewable && !this._hasFlag(this.flags, _util.AnnotationFlag.HIDDEN);\n  }\n\n  mustBePrinted(annotationStorage) {\n    const storageEntry = annotationStorage && annotationStorage.get(this.data.id);\n\n    if (storageEntry && storageEntry.print !== undefined) {\n      return storageEntry.print;\n    }\n\n    return this.printable;\n  }\n\n  get viewable() {\n    if (this.data.quadPoints === null) {\n      return false;\n    }\n\n    if (this.flags === 0) {\n      return true;\n    }\n\n    return this._isViewable(this.flags);\n  }\n\n  get printable() {\n    if (this.data.quadPoints === null) {\n      return false;\n    }\n\n    if (this.flags === 0) {\n      return false;\n    }\n\n    return this._isPrintable(this.flags);\n  }\n\n  _parseStringHelper(data) {\n    const str = typeof data === \"string\" ? (0, _util.stringToPDFString)(data) : \"\";\n    const dir = str && (0, _bidi.bidi)(str).dir === \"rtl\" ? \"rtl\" : \"ltr\";\n    return {\n      str,\n      dir\n    };\n  }\n\n  setTitle(title) {\n    this._title = this._parseStringHelper(title);\n  }\n\n  setContents(contents) {\n    this._contents = this._parseStringHelper(contents);\n  }\n\n  setModificationDate(modificationDate) {\n    this.modificationDate = typeof modificationDate === \"string\" ? modificationDate : null;\n  }\n\n  setFlags(flags) {\n    this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n  }\n\n  hasFlag(flag) {\n    return this._hasFlag(this.flags, flag);\n  }\n\n  setRectangle(rectangle) {\n    if (Array.isArray(rectangle) && rectangle.length === 4) {\n      this.rectangle = _util.Util.normalizeRect(rectangle);\n    } else {\n      this.rectangle = [0, 0, 0, 0];\n    }\n  }\n\n  setColor(color) {\n    this.color = getRgbColor(color);\n  }\n\n  setLineEndings(lineEndings) {\n    this.lineEndings = [\"None\", \"None\"];\n\n    if (Array.isArray(lineEndings) && lineEndings.length === 2) {\n      for (let i = 0; i < 2; i++) {\n        const obj = lineEndings[i];\n\n        if (obj instanceof _primitives.Name) {\n          switch (obj.name) {\n            case \"None\":\n              continue;\n\n            case \"Square\":\n            case \"Circle\":\n            case \"Diamond\":\n            case \"OpenArrow\":\n            case \"ClosedArrow\":\n            case \"Butt\":\n            case \"ROpenArrow\":\n            case \"RClosedArrow\":\n            case \"Slash\":\n              this.lineEndings[i] = obj.name;\n              continue;\n          }\n        }\n\n        (0, _util.warn)(`Ignoring invalid lineEnding: ${obj}`);\n      }\n    }\n  }\n\n  setRotation(mk) {\n    this.rotation = 0;\n\n    if (mk instanceof _primitives.Dict) {\n      let angle = mk.get(\"R\") || 0;\n\n      if (Number.isInteger(angle) && angle !== 0) {\n        angle %= 360;\n\n        if (angle < 0) {\n          angle += 360;\n        }\n\n        if (angle % 90 === 0) {\n          this.rotation = angle;\n        }\n      }\n    }\n  }\n\n  setBorderAndBackgroundColors(mk) {\n    if (mk instanceof _primitives.Dict) {\n      this.borderColor = getRgbColor(mk.getArray(\"BC\"), null);\n      this.backgroundColor = getRgbColor(mk.getArray(\"BG\"), null);\n    } else {\n      this.borderColor = this.backgroundColor = null;\n    }\n  }\n\n  setBorderStyle(borderStyle) {\n    this.borderStyle = new AnnotationBorderStyle();\n\n    if (!(borderStyle instanceof _primitives.Dict)) {\n      return;\n    }\n\n    if (borderStyle.has(\"BS\")) {\n      const dict = borderStyle.get(\"BS\");\n      const dictType = dict.get(\"Type\");\n\n      if (!dictType || (0, _primitives.isName)(dictType, \"Border\")) {\n        this.borderStyle.setWidth(dict.get(\"W\"), this.rectangle);\n        this.borderStyle.setStyle(dict.get(\"S\"));\n        this.borderStyle.setDashArray(dict.getArray(\"D\"));\n      }\n    } else if (borderStyle.has(\"Border\")) {\n      const array = borderStyle.getArray(\"Border\");\n\n      if (Array.isArray(array) && array.length >= 3) {\n        this.borderStyle.setHorizontalCornerRadius(array[0]);\n        this.borderStyle.setVerticalCornerRadius(array[1]);\n        this.borderStyle.setWidth(array[2], this.rectangle);\n\n        if (array.length === 4) {\n          this.borderStyle.setDashArray(array[3], true);\n        }\n      }\n    } else {\n      this.borderStyle.setWidth(0);\n    }\n  }\n\n  setAppearance(dict) {\n    this.appearance = null;\n    const appearanceStates = dict.get(\"AP\");\n\n    if (!(appearanceStates instanceof _primitives.Dict)) {\n      return;\n    }\n\n    const normalAppearanceState = appearanceStates.get(\"N\");\n\n    if (normalAppearanceState instanceof _base_stream.BaseStream) {\n      this.appearance = normalAppearanceState;\n      return;\n    }\n\n    if (!(normalAppearanceState instanceof _primitives.Dict)) {\n      return;\n    }\n\n    const as = dict.get(\"AS\");\n\n    if (!(as instanceof _primitives.Name) || !normalAppearanceState.has(as.name)) {\n      return;\n    }\n\n    this.appearance = normalAppearanceState.get(as.name);\n  }\n\n  setOptionalContent(dict) {\n    this.oc = null;\n    const oc = dict.get(\"OC\");\n\n    if (oc instanceof _primitives.Name) {\n      (0, _util.warn)(\"setOptionalContent: Support for /Name-entry is not implemented.\");\n    } else if (oc instanceof _primitives.Dict) {\n      this.oc = oc;\n    }\n  }\n\n  loadResources(keys, appearance) {\n    return appearance.dict.getAsync(\"Resources\").then(resources => {\n      if (!resources) {\n        return undefined;\n      }\n\n      const objectLoader = new _object_loader.ObjectLoader(resources, keys, resources.xref);\n      return objectLoader.load().then(function () {\n        return resources;\n      });\n    });\n  }\n\n  async getOperatorList(evaluator, task, intent, renderForms, annotationStorage) {\n    const data = this.data;\n    let appearance = this.appearance;\n    const isUsingOwnCanvas = !!(this.data.hasOwnCanvas && intent & _util.RenderingIntentFlag.DISPLAY);\n\n    if (!appearance) {\n      if (!isUsingOwnCanvas) {\n        return {\n          opList: new _operator_list.OperatorList(),\n          separateForm: false,\n          separateCanvas: false\n        };\n      }\n\n      appearance = new _stream.StringStream(\"\");\n      appearance.dict = new _primitives.Dict();\n    }\n\n    const appearanceDict = appearance.dict;\n    const resources = await this.loadResources([\"ExtGState\", \"ColorSpace\", \"Pattern\", \"Shading\", \"XObject\", \"Font\"], appearance);\n    const bbox = appearanceDict.getArray(\"BBox\") || [0, 0, 1, 1];\n    const matrix = appearanceDict.getArray(\"Matrix\") || [1, 0, 0, 1, 0, 0];\n    const transform = getTransformMatrix(data.rect, bbox, matrix);\n    const opList = new _operator_list.OperatorList();\n    let optionalContent;\n\n    if (this.oc) {\n      optionalContent = await evaluator.parseMarkedContentProps(this.oc, null);\n    }\n\n    if (optionalContent !== undefined) {\n      opList.addOp(_util.OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n\n    opList.addOp(_util.OPS.beginAnnotation, [data.id, data.rect, transform, matrix, isUsingOwnCanvas]);\n    await evaluator.getOperatorList({\n      stream: appearance,\n      task,\n      resources,\n      operatorList: opList,\n      fallbackFontDict: this._fallbackFontDict\n    });\n    opList.addOp(_util.OPS.endAnnotation, []);\n\n    if (optionalContent !== undefined) {\n      opList.addOp(_util.OPS.endMarkedContent, []);\n    }\n\n    this.reset();\n    return {\n      opList,\n      separateForm: false,\n      separateCanvas: isUsingOwnCanvas\n    };\n  }\n\n  async save(evaluator, task, annotationStorage) {\n    return null;\n  }\n\n  get hasTextContent() {\n    return false;\n  }\n\n  async extractTextContent(evaluator, task, viewBox) {\n    if (!this.appearance) {\n      return;\n    }\n\n    const resources = await this.loadResources([\"ExtGState\", \"Font\", \"Properties\", \"XObject\"], this.appearance);\n    const text = [];\n    const buffer = [];\n    const sink = {\n      desiredSize: Math.Infinity,\n      ready: true,\n\n      enqueue(chunk, size) {\n        for (const item of chunk.items) {\n          buffer.push(item.str);\n\n          if (item.hasEOL) {\n            text.push(buffer.join(\"\"));\n            buffer.length = 0;\n          }\n        }\n      }\n\n    };\n    await evaluator.getTextContent({\n      stream: this.appearance,\n      task,\n      resources,\n      includeMarkedContent: true,\n      combineTextItems: true,\n      sink,\n      viewBox\n    });\n    this.reset();\n\n    if (buffer.length) {\n      text.push(buffer.join(\"\"));\n    }\n\n    if (text.length > 0) {\n      this.data.textContent = text;\n    }\n  }\n\n  getFieldObject() {\n    if (this.data.kidIds) {\n      return {\n        id: this.data.id,\n        actions: this.data.actions,\n        name: this.data.fieldName,\n        strokeColor: this.data.borderColor,\n        fillColor: this.data.backgroundColor,\n        type: \"\",\n        kidIds: this.data.kidIds,\n        page: this.data.pageIndex,\n        rotation: this.rotation\n      };\n    }\n\n    return null;\n  }\n\n  reset() {\n    for (const stream of this._streams) {\n      stream.reset();\n    }\n  }\n\n  _constructFieldName(dict) {\n    if (!dict.has(\"T\") && !dict.has(\"Parent\")) {\n      (0, _util.warn)(\"Unknown field name, falling back to empty field name.\");\n      return \"\";\n    }\n\n    if (!dict.has(\"Parent\")) {\n      return (0, _util.stringToPDFString)(dict.get(\"T\"));\n    }\n\n    const fieldName = [];\n\n    if (dict.has(\"T\")) {\n      fieldName.unshift((0, _util.stringToPDFString)(dict.get(\"T\")));\n    }\n\n    let loopDict = dict;\n    const visited = new _primitives.RefSet();\n\n    if (dict.objId) {\n      visited.put(dict.objId);\n    }\n\n    while (loopDict.has(\"Parent\")) {\n      loopDict = loopDict.get(\"Parent\");\n\n      if (!(loopDict instanceof _primitives.Dict) || loopDict.objId && visited.has(loopDict.objId)) {\n        break;\n      }\n\n      if (loopDict.objId) {\n        visited.put(loopDict.objId);\n      }\n\n      if (loopDict.has(\"T\")) {\n        fieldName.unshift((0, _util.stringToPDFString)(loopDict.get(\"T\")));\n      }\n    }\n\n    return fieldName.join(\".\");\n  }\n\n}\n\nexports.Annotation = Annotation;\n\nclass AnnotationBorderStyle {\n  constructor() {\n    this.width = 1;\n    this.style = _util.AnnotationBorderStyleType.SOLID;\n    this.dashArray = [3];\n    this.horizontalCornerRadius = 0;\n    this.verticalCornerRadius = 0;\n  }\n\n  setWidth(width) {\n    let rect = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 0, 0];\n\n    if (width instanceof _primitives.Name) {\n      this.width = 0;\n      return;\n    }\n\n    if (typeof width === \"number\") {\n      if (width > 0) {\n        const maxWidth = (rect[2] - rect[0]) / 2;\n        const maxHeight = (rect[3] - rect[1]) / 2;\n\n        if (maxWidth > 0 && maxHeight > 0 && (width > maxWidth || width > maxHeight)) {\n          (0, _util.warn)(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`);\n          width = 1;\n        }\n      }\n\n      this.width = width;\n    }\n  }\n\n  setStyle(style) {\n    if (!(style instanceof _primitives.Name)) {\n      return;\n    }\n\n    switch (style.name) {\n      case \"S\":\n        this.style = _util.AnnotationBorderStyleType.SOLID;\n        break;\n\n      case \"D\":\n        this.style = _util.AnnotationBorderStyleType.DASHED;\n        break;\n\n      case \"B\":\n        this.style = _util.AnnotationBorderStyleType.BEVELED;\n        break;\n\n      case \"I\":\n        this.style = _util.AnnotationBorderStyleType.INSET;\n        break;\n\n      case \"U\":\n        this.style = _util.AnnotationBorderStyleType.UNDERLINE;\n        break;\n\n      default:\n        break;\n    }\n  }\n\n  setDashArray(dashArray) {\n    let forceStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    if (Array.isArray(dashArray) && dashArray.length > 0) {\n      let isValid = true;\n      let allZeros = true;\n\n      for (const element of dashArray) {\n        const validNumber = +element >= 0;\n\n        if (!validNumber) {\n          isValid = false;\n          break;\n        } else if (element > 0) {\n          allZeros = false;\n        }\n      }\n\n      if (isValid && !allZeros) {\n        this.dashArray = dashArray;\n\n        if (forceStyle) {\n          this.setStyle(_primitives.Name.get(\"D\"));\n        }\n      } else {\n        this.width = 0;\n      }\n    } else if (dashArray) {\n      this.width = 0;\n    }\n  }\n\n  setHorizontalCornerRadius(radius) {\n    if (Number.isInteger(radius)) {\n      this.horizontalCornerRadius = radius;\n    }\n  }\n\n  setVerticalCornerRadius(radius) {\n    if (Number.isInteger(radius)) {\n      this.verticalCornerRadius = radius;\n    }\n  }\n\n}\n\nexports.AnnotationBorderStyle = AnnotationBorderStyle;\n\nclass MarkupAnnotation extends Annotation {\n  constructor(parameters) {\n    super(parameters);\n    const dict = parameters.dict;\n\n    if (dict.has(\"IRT\")) {\n      const rawIRT = dict.getRaw(\"IRT\");\n      this.data.inReplyTo = rawIRT instanceof _primitives.Ref ? rawIRT.toString() : null;\n      const rt = dict.get(\"RT\");\n      this.data.replyType = rt instanceof _primitives.Name ? rt.name : _util.AnnotationReplyType.REPLY;\n    }\n\n    if (this.data.replyType === _util.AnnotationReplyType.GROUP) {\n      const parent = dict.get(\"IRT\");\n      this.setTitle(parent.get(\"T\"));\n      this.data.titleObj = this._title;\n      this.setContents(parent.get(\"Contents\"));\n      this.data.contentsObj = this._contents;\n\n      if (!parent.has(\"CreationDate\")) {\n        this.data.creationDate = null;\n      } else {\n        this.setCreationDate(parent.get(\"CreationDate\"));\n        this.data.creationDate = this.creationDate;\n      }\n\n      if (!parent.has(\"M\")) {\n        this.data.modificationDate = null;\n      } else {\n        this.setModificationDate(parent.get(\"M\"));\n        this.data.modificationDate = this.modificationDate;\n      }\n\n      this.data.hasPopup = parent.has(\"Popup\");\n\n      if (!parent.has(\"C\")) {\n        this.data.color = null;\n      } else {\n        this.setColor(parent.getArray(\"C\"));\n        this.data.color = this.color;\n      }\n    } else {\n      this.data.titleObj = this._title;\n      this.setCreationDate(dict.get(\"CreationDate\"));\n      this.data.creationDate = this.creationDate;\n      this.data.hasPopup = dict.has(\"Popup\");\n\n      if (!dict.has(\"C\")) {\n        this.data.color = null;\n      }\n    }\n\n    if (dict.has(\"RC\")) {\n      this.data.richText = _factory.XFAFactory.getRichTextAsHtml(dict.get(\"RC\"));\n    }\n  }\n\n  setCreationDate(creationDate) {\n    this.creationDate = typeof creationDate === \"string\" ? creationDate : null;\n  }\n\n  _setDefaultAppearance(_ref3) {\n    let {\n      xref,\n      extra,\n      strokeColor,\n      fillColor,\n      blendMode,\n      strokeAlpha,\n      fillAlpha,\n      pointsCallback\n    } = _ref3;\n    let minX = Number.MAX_VALUE;\n    let minY = Number.MAX_VALUE;\n    let maxX = Number.MIN_VALUE;\n    let maxY = Number.MIN_VALUE;\n    const buffer = [\"q\"];\n\n    if (extra) {\n      buffer.push(extra);\n    }\n\n    if (strokeColor) {\n      buffer.push(`${strokeColor[0]} ${strokeColor[1]} ${strokeColor[2]} RG`);\n    }\n\n    if (fillColor) {\n      buffer.push(`${fillColor[0]} ${fillColor[1]} ${fillColor[2]} rg`);\n    }\n\n    let pointsArray = this.data.quadPoints;\n\n    if (!pointsArray) {\n      pointsArray = [[{\n        x: this.rectangle[0],\n        y: this.rectangle[3]\n      }, {\n        x: this.rectangle[2],\n        y: this.rectangle[3]\n      }, {\n        x: this.rectangle[0],\n        y: this.rectangle[1]\n      }, {\n        x: this.rectangle[2],\n        y: this.rectangle[1]\n      }]];\n    }\n\n    for (const points of pointsArray) {\n      const [mX, MX, mY, MY] = pointsCallback(buffer, points);\n      minX = Math.min(minX, mX);\n      maxX = Math.max(maxX, MX);\n      minY = Math.min(minY, mY);\n      maxY = Math.max(maxY, MY);\n    }\n\n    buffer.push(\"Q\");\n    const formDict = new _primitives.Dict(xref);\n    const appearanceStreamDict = new _primitives.Dict(xref);\n    appearanceStreamDict.set(\"Subtype\", _primitives.Name.get(\"Form\"));\n    const appearanceStream = new _stream.StringStream(buffer.join(\" \"));\n    appearanceStream.dict = appearanceStreamDict;\n    formDict.set(\"Fm0\", appearanceStream);\n    const gsDict = new _primitives.Dict(xref);\n\n    if (blendMode) {\n      gsDict.set(\"BM\", _primitives.Name.get(blendMode));\n    }\n\n    if (typeof strokeAlpha === \"number\") {\n      gsDict.set(\"CA\", strokeAlpha);\n    }\n\n    if (typeof fillAlpha === \"number\") {\n      gsDict.set(\"ca\", fillAlpha);\n    }\n\n    const stateDict = new _primitives.Dict(xref);\n    stateDict.set(\"GS0\", gsDict);\n    const resources = new _primitives.Dict(xref);\n    resources.set(\"ExtGState\", stateDict);\n    resources.set(\"XObject\", formDict);\n    const appearanceDict = new _primitives.Dict(xref);\n    appearanceDict.set(\"Resources\", resources);\n    const bbox = this.data.rect = [minX, minY, maxX, maxY];\n    appearanceDict.set(\"BBox\", bbox);\n    this.appearance = new _stream.StringStream(\"/GS0 gs /Fm0 Do\");\n    this.appearance.dict = appearanceDict;\n\n    this._streams.push(this.appearance, appearanceStream);\n  }\n\n  static async createNewAnnotation(xref, annotation, dependencies, params) {\n    const annotationRef = xref.getNewRef();\n    const apRef = xref.getNewRef();\n    const annotationDict = this.createNewDict(annotation, xref, {\n      apRef\n    });\n    const ap = await this.createNewAppearanceStream(annotation, xref, params);\n    const buffer = [];\n    let transform = xref.encrypt ? xref.encrypt.createCipherTransform(apRef.num, apRef.gen) : null;\n    (0, _writer.writeObject)(apRef, ap, buffer, transform);\n    dependencies.push({\n      ref: apRef,\n      data: buffer.join(\"\")\n    });\n    buffer.length = 0;\n    transform = xref.encrypt ? xref.encrypt.createCipherTransform(annotationRef.num, annotationRef.gen) : null;\n    (0, _writer.writeObject)(annotationRef, annotationDict, buffer, transform);\n    return {\n      ref: annotationRef,\n      data: buffer.join(\"\")\n    };\n  }\n\n  static async createNewPrintAnnotation(xref, annotation, params) {\n    const ap = await this.createNewAppearanceStream(annotation, xref, params);\n    const annotationDict = this.createNewDict(annotation, xref, {\n      ap\n    });\n    return new this.prototype.constructor({\n      dict: annotationDict,\n      xref\n    });\n  }\n\n}\n\nexports.MarkupAnnotation = MarkupAnnotation;\n\nclass WidgetAnnotation extends Annotation {\n  constructor(params) {\n    super(params);\n    const dict = params.dict;\n    const data = this.data;\n    this.ref = params.ref;\n    data.annotationType = _util.AnnotationType.WIDGET;\n\n    if (data.fieldName === undefined) {\n      data.fieldName = this._constructFieldName(dict);\n    }\n\n    if (data.actions === undefined) {\n      data.actions = (0, _core_utils.collectActions)(params.xref, dict, _util.AnnotationActionEventType);\n    }\n\n    let fieldValue = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"V\",\n      getArray: true\n    });\n    data.fieldValue = this._decodeFormValue(fieldValue);\n    const defaultFieldValue = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"DV\",\n      getArray: true\n    });\n    data.defaultFieldValue = this._decodeFormValue(defaultFieldValue);\n\n    if (fieldValue === undefined && params.xfaDatasets) {\n      const path = this._title.str;\n\n      if (path) {\n        this._hasValueFromXFA = true;\n        data.fieldValue = fieldValue = params.xfaDatasets.getValue(path);\n      }\n    }\n\n    if (fieldValue === undefined && data.defaultFieldValue !== null) {\n      data.fieldValue = data.defaultFieldValue;\n    }\n\n    data.alternativeText = (0, _util.stringToPDFString)(dict.get(\"TU\") || \"\");\n    const defaultAppearance = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"DA\"\n    }) || params.acroForm.get(\"DA\");\n    this._defaultAppearance = typeof defaultAppearance === \"string\" ? defaultAppearance : \"\";\n    data.defaultAppearanceData = (0, _default_appearance.parseDefaultAppearance)(this._defaultAppearance);\n    const fieldType = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"FT\"\n    });\n    data.fieldType = fieldType instanceof _primitives.Name ? fieldType.name : null;\n    const localResources = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"DR\"\n    });\n    const acroFormResources = params.acroForm.get(\"DR\");\n    const appearanceResources = this.appearance && this.appearance.dict.get(\"Resources\");\n    this._fieldResources = {\n      localResources,\n      acroFormResources,\n      appearanceResources,\n      mergedResources: _primitives.Dict.merge({\n        xref: params.xref,\n        dictArray: [localResources, appearanceResources, acroFormResources],\n        mergeSubDicts: true\n      })\n    };\n    data.fieldFlags = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"Ff\"\n    });\n\n    if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n      data.fieldFlags = 0;\n    }\n\n    data.readOnly = this.hasFieldFlag(_util.AnnotationFieldFlag.READONLY);\n    data.required = this.hasFieldFlag(_util.AnnotationFieldFlag.REQUIRED);\n    data.hidden = this._hasFlag(data.annotationFlags, _util.AnnotationFlag.HIDDEN);\n  }\n\n  _decodeFormValue(formValue) {\n    if (Array.isArray(formValue)) {\n      return formValue.filter(item => typeof item === \"string\").map(item => (0, _util.stringToPDFString)(item));\n    } else if (formValue instanceof _primitives.Name) {\n      return (0, _util.stringToPDFString)(formValue.name);\n    } else if (typeof formValue === \"string\") {\n      return (0, _util.stringToPDFString)(formValue);\n    }\n\n    return null;\n  }\n\n  hasFieldFlag(flag) {\n    return !!(this.data.fieldFlags & flag);\n  }\n\n  static _getRotationMatrix(rotation, width, height) {\n    switch (rotation) {\n      case 90:\n        return [0, 1, -1, 0, width, 0];\n\n      case 180:\n        return [-1, 0, 0, -1, width, height];\n\n      case 270:\n        return [0, -1, 1, 0, 0, height];\n\n      default:\n        throw new Error(\"Invalid rotation\");\n    }\n  }\n\n  getRotationMatrix(annotationStorage) {\n    const storageEntry = annotationStorage ? annotationStorage.get(this.data.id) : undefined;\n    let rotation = storageEntry && storageEntry.rotation;\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    if (rotation === 0) {\n      return _util.IDENTITY_MATRIX;\n    }\n\n    const width = this.data.rect[2] - this.data.rect[0];\n    const height = this.data.rect[3] - this.data.rect[1];\n    return WidgetAnnotation._getRotationMatrix(rotation, width, height);\n  }\n\n  getBorderAndBackgroundAppearances(annotationStorage) {\n    const storageEntry = annotationStorage ? annotationStorage.get(this.data.id) : undefined;\n    let rotation = storageEntry && storageEntry.rotation;\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    if (!this.backgroundColor && !this.borderColor) {\n      return \"\";\n    }\n\n    const width = this.data.rect[2] - this.data.rect[0];\n    const height = this.data.rect[3] - this.data.rect[1];\n    const rect = rotation === 0 || rotation === 180 ? `0 0 ${width} ${height} re` : `0 0 ${height} ${width} re`;\n    let str = \"\";\n\n    if (this.backgroundColor) {\n      str = `${(0, _default_appearance.getPdfColor)(this.backgroundColor, true)} ${rect} f `;\n    }\n\n    if (this.borderColor) {\n      const borderWidth = this.borderStyle.width || 1;\n      str += `${borderWidth} w ${(0, _default_appearance.getPdfColor)(this.borderColor, false)} ${rect} S `;\n    }\n\n    return str;\n  }\n\n  async getOperatorList(evaluator, task, intent, renderForms, annotationStorage) {\n    if (renderForms && !(this instanceof SignatureWidgetAnnotation)) {\n      return {\n        opList: new _operator_list.OperatorList(),\n        separateForm: true,\n        separateCanvas: false\n      };\n    }\n\n    if (!this._hasText) {\n      return super.getOperatorList(evaluator, task, intent, renderForms, annotationStorage);\n    }\n\n    const content = await this._getAppearance(evaluator, task, annotationStorage);\n\n    if (this.appearance && content === null) {\n      return super.getOperatorList(evaluator, task, intent, renderForms, annotationStorage);\n    }\n\n    const opList = new _operator_list.OperatorList();\n\n    if (!this._defaultAppearance || content === null) {\n      return {\n        opList,\n        separateForm: false,\n        separateCanvas: false\n      };\n    }\n\n    const matrix = [1, 0, 0, 1, 0, 0];\n    const bbox = [0, 0, this.data.rect[2] - this.data.rect[0], this.data.rect[3] - this.data.rect[1]];\n    const transform = getTransformMatrix(this.data.rect, bbox, matrix);\n    let optionalContent;\n\n    if (this.oc) {\n      optionalContent = await evaluator.parseMarkedContentProps(this.oc, null);\n    }\n\n    if (optionalContent !== undefined) {\n      opList.addOp(_util.OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n\n    opList.addOp(_util.OPS.beginAnnotation, [this.data.id, this.data.rect, transform, this.getRotationMatrix(annotationStorage), false]);\n    const stream = new _stream.StringStream(content);\n    await evaluator.getOperatorList({\n      stream,\n      task,\n      resources: this._fieldResources.mergedResources,\n      operatorList: opList\n    });\n    opList.addOp(_util.OPS.endAnnotation, []);\n\n    if (optionalContent !== undefined) {\n      opList.addOp(_util.OPS.endMarkedContent, []);\n    }\n\n    return {\n      opList,\n      separateForm: false,\n      separateCanvas: false\n    };\n  }\n\n  _getMKDict(rotation) {\n    const mk = new _primitives.Dict(null);\n\n    if (rotation) {\n      mk.set(\"R\", rotation);\n    }\n\n    if (this.borderColor) {\n      mk.set(\"BC\", Array.from(this.borderColor).map(c => c / 255));\n    }\n\n    if (this.backgroundColor) {\n      mk.set(\"BG\", Array.from(this.backgroundColor).map(c => c / 255));\n    }\n\n    return mk.size > 0 ? mk : null;\n  }\n\n  async save(evaluator, task, annotationStorage) {\n    const storageEntry = annotationStorage ? annotationStorage.get(this.data.id) : undefined;\n    let value = storageEntry && storageEntry.value;\n    let rotation = storageEntry && storageEntry.rotation;\n\n    if (value === this.data.fieldValue || value === undefined) {\n      if (!this._hasValueFromXFA && rotation === undefined) {\n        return null;\n      }\n\n      value = value || this.data.fieldValue;\n    }\n\n    if (rotation === undefined && !this._hasValueFromXFA && Array.isArray(value) && Array.isArray(this.data.fieldValue) && value.length === this.data.fieldValue.length && value.every((x, i) => x === this.data.fieldValue[i])) {\n      return null;\n    }\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    let appearance = await this._getAppearance(evaluator, task, annotationStorage);\n\n    if (appearance === null) {\n      return null;\n    }\n\n    const {\n      xref\n    } = evaluator;\n    const dict = xref.fetchIfRef(this.ref);\n\n    if (!(dict instanceof _primitives.Dict)) {\n      return null;\n    }\n\n    const bbox = [0, 0, this.data.rect[2] - this.data.rect[0], this.data.rect[3] - this.data.rect[1]];\n    const xfa = {\n      path: (0, _util.stringToPDFString)(dict.get(\"T\") || \"\"),\n      value\n    };\n    const newRef = xref.getNewRef();\n    const AP = new _primitives.Dict(xref);\n    AP.set(\"N\", newRef);\n    const encrypt = xref.encrypt;\n    let originalTransform = null;\n    let newTransform = null;\n\n    if (encrypt) {\n      originalTransform = encrypt.createCipherTransform(this.ref.num, this.ref.gen);\n      newTransform = encrypt.createCipherTransform(newRef.num, newRef.gen);\n      appearance = newTransform.encryptString(appearance);\n    }\n\n    const encoder = val => (0, _util.isAscii)(val) ? val : (0, _util.stringToUTF16BEString)(val);\n\n    dict.set(\"V\", Array.isArray(value) ? value.map(encoder) : encoder(value));\n    dict.set(\"AP\", AP);\n    dict.set(\"M\", `D:${(0, _util.getModificationDate)()}`);\n\n    const maybeMK = this._getMKDict(rotation);\n\n    if (maybeMK) {\n      dict.set(\"MK\", maybeMK);\n    }\n\n    const appearanceDict = new _primitives.Dict(xref);\n    appearanceDict.set(\"Length\", appearance.length);\n    appearanceDict.set(\"Subtype\", _primitives.Name.get(\"Form\"));\n    appearanceDict.set(\"Resources\", this._getSaveFieldResources(xref));\n    appearanceDict.set(\"BBox\", bbox);\n    const rotationMatrix = this.getRotationMatrix(annotationStorage);\n\n    if (rotationMatrix !== _util.IDENTITY_MATRIX) {\n      appearanceDict.set(\"Matrix\", rotationMatrix);\n    }\n\n    const bufferOriginal = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n    (0, _writer.writeDict)(dict, bufferOriginal, originalTransform);\n    bufferOriginal.push(\"\\nendobj\\n\");\n    const bufferNew = [`${newRef.num} ${newRef.gen} obj\\n`];\n    (0, _writer.writeDict)(appearanceDict, bufferNew, newTransform);\n    bufferNew.push(\" stream\\n\", appearance, \"\\nendstream\\nendobj\\n\");\n    return [{\n      ref: this.ref,\n      data: bufferOriginal.join(\"\"),\n      xfa\n    }, {\n      ref: newRef,\n      data: bufferNew.join(\"\"),\n      xfa: null\n    }];\n  }\n\n  async _getAppearance(evaluator, task, annotationStorage) {\n    const isPassword = this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD);\n\n    if (isPassword) {\n      return null;\n    }\n\n    const storageEntry = annotationStorage ? annotationStorage.get(this.data.id) : undefined;\n    let value, rotation;\n\n    if (storageEntry) {\n      value = storageEntry.formattedValue || storageEntry.value;\n      rotation = storageEntry.rotation;\n    }\n\n    if (rotation === undefined && value === undefined) {\n      if (!this._hasValueFromXFA || this.appearance) {\n        return null;\n      }\n    }\n\n    if (value === undefined) {\n      value = this.data.fieldValue;\n\n      if (!value) {\n        return \"\";\n      }\n    }\n\n    if (Array.isArray(value) && value.length === 1) {\n      value = value[0];\n    }\n\n    (0, _util.assert)(typeof value === \"string\", \"Expected `value` to be a string.\");\n    value = value.trim();\n\n    if (value === \"\") {\n      return \"\";\n    }\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    let lineCount = -1;\n\n    if (this.data.multiLine) {\n      lineCount = value.split(/\\r\\n|\\r|\\n/).length;\n    }\n\n    const defaultPadding = 2;\n    const hPadding = defaultPadding;\n    let totalHeight = this.data.rect[3] - this.data.rect[1];\n    let totalWidth = this.data.rect[2] - this.data.rect[0];\n\n    if (rotation === 90 || rotation === 270) {\n      [totalWidth, totalHeight] = [totalHeight, totalWidth];\n    }\n\n    if (!this._defaultAppearance) {\n      this.data.defaultAppearanceData = (0, _default_appearance.parseDefaultAppearance)(this._defaultAppearance = \"/Helvetica 0 Tf 0 g\");\n    }\n\n    const font = await WidgetAnnotation._getFontData(evaluator, task, this.data.defaultAppearanceData, this._fieldResources.mergedResources);\n\n    const [defaultAppearance, fontSize] = this._computeFontSize(totalHeight - defaultPadding, totalWidth - 2 * hPadding, value, font, lineCount);\n\n    let descent = font.descent;\n\n    if (isNaN(descent)) {\n      descent = 0;\n    }\n\n    const defaultVPadding = Math.min(Math.floor((totalHeight - fontSize) / 2), defaultPadding);\n    const vPadding = defaultVPadding + Math.abs(descent) * fontSize;\n    const alignment = this.data.textAlignment;\n\n    if (this.data.multiLine) {\n      return this._getMultilineAppearance(defaultAppearance, value, font, fontSize, totalWidth, totalHeight, alignment, hPadding, vPadding, annotationStorage);\n    }\n\n    const encodedString = font.encodeString(value).join(\"\");\n\n    if (this.data.comb) {\n      return this._getCombAppearance(defaultAppearance, font, encodedString, totalWidth, hPadding, vPadding, annotationStorage);\n    }\n\n    const colors = this.getBorderAndBackgroundAppearances(annotationStorage);\n\n    if (alignment === 0 || alignment > 2) {\n      return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 ${hPadding} ${vPadding} Tm (${(0, _util.escapeString)(encodedString)}) Tj` + \" ET Q EMC\";\n    }\n\n    const renderedText = this._renderText(encodedString, font, fontSize, totalWidth, alignment, hPadding, vPadding);\n\n    return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 0 0 Tm ${renderedText}` + \" ET Q EMC\";\n  }\n\n  static async _getFontData(evaluator, task, appearanceData, resources) {\n    const operatorList = new _operator_list.OperatorList();\n    const initialState = {\n      font: null,\n\n      clone() {\n        return this;\n      }\n\n    };\n    const {\n      fontName,\n      fontSize\n    } = appearanceData;\n    await evaluator.handleSetFont(resources, [fontName && _primitives.Name.get(fontName), fontSize], null, operatorList, task, initialState, null);\n    return initialState.font;\n  }\n\n  _getTextWidth(text, font) {\n    return font.charsToGlyphs(text).reduce((width, glyph) => width + glyph.width, 0) / 1000;\n  }\n\n  _computeFontSize(height, width, text, font, lineCount) {\n    let {\n      fontSize\n    } = this.data.defaultAppearanceData;\n\n    if (!fontSize) {\n      const roundWithTwoDigits = x => Math.floor(x * 100) / 100;\n\n      if (lineCount === -1) {\n        const textWidth = this._getTextWidth(text, font);\n\n        fontSize = roundWithTwoDigits(Math.min(height / _util.LINE_FACTOR, width / textWidth));\n      } else {\n        const lines = text.split(/\\r\\n?|\\n/);\n        const cachedLines = [];\n\n        for (const line of lines) {\n          const encoded = font.encodeString(line).join(\"\");\n          const glyphs = font.charsToGlyphs(encoded);\n          const positions = font.getCharPositions(encoded);\n          cachedLines.push({\n            line: encoded,\n            glyphs,\n            positions\n          });\n        }\n\n        const isTooBig = fsize => {\n          let totalHeight = 0;\n\n          for (const cache of cachedLines) {\n            const chunks = this._splitLine(null, font, fsize, width, cache);\n\n            totalHeight += chunks.length * fsize;\n\n            if (totalHeight > height) {\n              return true;\n            }\n          }\n\n          return false;\n        };\n\n        fontSize = 12;\n        let lineHeight = fontSize * _util.LINE_FACTOR;\n        let numberOfLines = Math.round(height / lineHeight);\n        numberOfLines = Math.max(numberOfLines, lineCount);\n\n        while (true) {\n          lineHeight = height / numberOfLines;\n          fontSize = roundWithTwoDigits(lineHeight / _util.LINE_FACTOR);\n\n          if (isTooBig(fontSize)) {\n            numberOfLines++;\n            continue;\n          }\n\n          break;\n        }\n      }\n\n      const {\n        fontName,\n        fontColor\n      } = this.data.defaultAppearanceData;\n      this._defaultAppearance = (0, _default_appearance.createDefaultAppearance)({\n        fontSize,\n        fontName,\n        fontColor\n      });\n    }\n\n    return [this._defaultAppearance, fontSize];\n  }\n\n  _renderText(text, font, fontSize, totalWidth, alignment, hPadding, vPadding) {\n    let shift;\n\n    if (alignment === 1) {\n      const width = this._getTextWidth(text, font) * fontSize;\n      shift = (totalWidth - width) / 2;\n    } else if (alignment === 2) {\n      const width = this._getTextWidth(text, font) * fontSize;\n      shift = totalWidth - width - hPadding;\n    } else {\n      shift = hPadding;\n    }\n\n    shift = (0, _core_utils.numberToString)(shift);\n    vPadding = (0, _core_utils.numberToString)(vPadding);\n    return `${shift} ${vPadding} Td (${(0, _util.escapeString)(text)}) Tj`;\n  }\n\n  _getSaveFieldResources(xref) {\n    const {\n      localResources,\n      appearanceResources,\n      acroFormResources\n    } = this._fieldResources;\n    const fontName = this.data.defaultAppearanceData && this.data.defaultAppearanceData.fontName;\n\n    if (!fontName) {\n      return localResources || _primitives.Dict.empty;\n    }\n\n    for (const resources of [localResources, appearanceResources]) {\n      if (resources instanceof _primitives.Dict) {\n        const localFont = resources.get(\"Font\");\n\n        if (localFont instanceof _primitives.Dict && localFont.has(fontName)) {\n          return resources;\n        }\n      }\n    }\n\n    if (acroFormResources instanceof _primitives.Dict) {\n      const acroFormFont = acroFormResources.get(\"Font\");\n\n      if (acroFormFont instanceof _primitives.Dict && acroFormFont.has(fontName)) {\n        const subFontDict = new _primitives.Dict(xref);\n        subFontDict.set(fontName, acroFormFont.getRaw(fontName));\n        const subResourcesDict = new _primitives.Dict(xref);\n        subResourcesDict.set(\"Font\", subFontDict);\n        return _primitives.Dict.merge({\n          xref,\n          dictArray: [subResourcesDict, localResources],\n          mergeSubDicts: true\n        });\n      }\n    }\n\n    return localResources || _primitives.Dict.empty;\n  }\n\n  getFieldObject() {\n    return null;\n  }\n\n}\n\nclass TextWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n    this._hasText = true;\n    const dict = params.dict;\n\n    if (typeof this.data.fieldValue !== \"string\") {\n      this.data.fieldValue = \"\";\n    }\n\n    let alignment = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"Q\"\n    });\n\n    if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n      alignment = null;\n    }\n\n    this.data.textAlignment = alignment;\n    let maximumLength = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"MaxLen\"\n    });\n\n    if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n      maximumLength = 0;\n    }\n\n    this.data.maxLen = maximumLength;\n    this.data.multiLine = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE);\n    this.data.comb = this.hasFieldFlag(_util.AnnotationFieldFlag.COMB) && !this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD) && !this.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT) && this.data.maxLen !== 0;\n    this.data.doNotScroll = this.hasFieldFlag(_util.AnnotationFieldFlag.DONOTSCROLL);\n  }\n\n  _getCombAppearance(defaultAppearance, font, text, width, hPadding, vPadding, annotationStorage) {\n    const combWidth = (0, _core_utils.numberToString)(width / this.data.maxLen);\n    const buf = [];\n    const positions = font.getCharPositions(text);\n\n    for (const [start, end] of positions) {\n      buf.push(`(${(0, _util.escapeString)(text.substring(start, end))}) Tj`);\n    }\n\n    const colors = this.getBorderAndBackgroundAppearances(annotationStorage);\n    const renderedComb = buf.join(` ${combWidth} 0 Td `);\n    return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 ${hPadding} ${vPadding} Tm ${renderedComb}` + \" ET Q EMC\";\n  }\n\n  _getMultilineAppearance(defaultAppearance, text, font, fontSize, width, height, alignment, hPadding, vPadding, annotationStorage) {\n    const lines = text.split(/\\r\\n?|\\n/);\n    const buf = [];\n    const totalWidth = width - 2 * hPadding;\n\n    for (const line of lines) {\n      const chunks = this._splitLine(line, font, fontSize, totalWidth);\n\n      for (const chunk of chunks) {\n        const padding = buf.length === 0 ? hPadding : 0;\n        buf.push(this._renderText(chunk, font, fontSize, width, alignment, padding, -fontSize));\n      }\n    }\n\n    const renderedText = buf.join(\"\\n\");\n    const colors = this.getBorderAndBackgroundAppearances(annotationStorage);\n    return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 0 ${height} Tm ${renderedText}` + \" ET Q EMC\";\n  }\n\n  _splitLine(line, font, fontSize, width) {\n    let cache = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n    line = cache.line || font.encodeString(line).join(\"\");\n    const glyphs = cache.glyphs || font.charsToGlyphs(line);\n\n    if (glyphs.length <= 1) {\n      return [line];\n    }\n\n    const positions = cache.positions || font.getCharPositions(line);\n    const scale = fontSize / 1000;\n    const chunks = [];\n    let lastSpacePosInStringStart = -1,\n        lastSpacePosInStringEnd = -1,\n        lastSpacePos = -1,\n        startChunk = 0,\n        currentWidth = 0;\n\n    for (let i = 0, ii = glyphs.length; i < ii; i++) {\n      const [start, end] = positions[i];\n      const glyph = glyphs[i];\n      const glyphWidth = glyph.width * scale;\n\n      if (glyph.unicode === \" \") {\n        if (currentWidth + glyphWidth > width) {\n          chunks.push(line.substring(startChunk, start));\n          startChunk = start;\n          currentWidth = glyphWidth;\n          lastSpacePosInStringStart = -1;\n          lastSpacePos = -1;\n        } else {\n          currentWidth += glyphWidth;\n          lastSpacePosInStringStart = start;\n          lastSpacePosInStringEnd = end;\n          lastSpacePos = i;\n        }\n      } else {\n        if (currentWidth + glyphWidth > width) {\n          if (lastSpacePosInStringStart !== -1) {\n            chunks.push(line.substring(startChunk, lastSpacePosInStringEnd));\n            startChunk = lastSpacePosInStringEnd;\n            i = lastSpacePos + 1;\n            lastSpacePosInStringStart = -1;\n            currentWidth = 0;\n          } else {\n            chunks.push(line.substring(startChunk, start));\n            startChunk = start;\n            currentWidth = glyphWidth;\n          }\n        } else {\n          currentWidth += glyphWidth;\n        }\n      }\n    }\n\n    if (startChunk < line.length) {\n      chunks.push(line.substring(startChunk, line.length));\n    }\n\n    return chunks;\n  }\n\n  getFieldObject() {\n    return {\n      id: this.data.id,\n      value: this.data.fieldValue,\n      defaultValue: this.data.defaultFieldValue || \"\",\n      multiline: this.data.multiLine,\n      password: this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD),\n      charLimit: this.data.maxLen,\n      comb: this.data.comb,\n      editable: !this.data.readOnly,\n      hidden: this.data.hidden,\n      name: this.data.fieldName,\n      rect: this.data.rect,\n      actions: this.data.actions,\n      page: this.data.pageIndex,\n      strokeColor: this.data.borderColor,\n      fillColor: this.data.backgroundColor,\n      rotation: this.rotation,\n      type: \"text\"\n    };\n  }\n\n}\n\nclass ButtonWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n    this.checkedAppearance = null;\n    this.uncheckedAppearance = null;\n    this.data.checkBox = !this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n    this.data.radioButton = this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n    this.data.pushButton = this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n    this.data.isTooltipOnly = false;\n\n    if (this.data.checkBox) {\n      this._processCheckBox(params);\n    } else if (this.data.radioButton) {\n      this._processRadioButton(params);\n    } else if (this.data.pushButton) {\n      this.data.hasOwnCanvas = true;\n\n      this._processPushButton(params);\n    } else {\n      (0, _util.warn)(\"Invalid field flags for button widget annotation\");\n    }\n  }\n\n  async getOperatorList(evaluator, task, intent, renderForms, annotationStorage) {\n    if (this.data.pushButton) {\n      return super.getOperatorList(evaluator, task, intent, false, annotationStorage);\n    }\n\n    let value = null;\n    let rotation = null;\n\n    if (annotationStorage) {\n      const storageEntry = annotationStorage.get(this.data.id);\n      value = storageEntry ? storageEntry.value : null;\n      rotation = storageEntry ? storageEntry.rotation : null;\n    }\n\n    if (value === null && this.appearance) {\n      return super.getOperatorList(evaluator, task, intent, renderForms, annotationStorage);\n    }\n\n    if (value === null || value === undefined) {\n      if (this.data.checkBox) {\n        value = this.data.fieldValue === this.data.exportValue;\n      } else {\n        value = this.data.fieldValue === this.data.buttonValue;\n      }\n    }\n\n    const appearance = value ? this.checkedAppearance : this.uncheckedAppearance;\n\n    if (appearance) {\n      const savedAppearance = this.appearance;\n\n      const savedMatrix = appearance.dict.getArray(\"Matrix\") || _util.IDENTITY_MATRIX;\n\n      if (rotation) {\n        appearance.dict.set(\"Matrix\", this.getRotationMatrix(annotationStorage));\n      }\n\n      this.appearance = appearance;\n      const operatorList = super.getOperatorList(evaluator, task, intent, renderForms, annotationStorage);\n      this.appearance = savedAppearance;\n      appearance.dict.set(\"Matrix\", savedMatrix);\n      return operatorList;\n    }\n\n    return {\n      opList: new _operator_list.OperatorList(),\n      separateForm: false,\n      separateCanvas: false\n    };\n  }\n\n  async save(evaluator, task, annotationStorage) {\n    if (this.data.checkBox) {\n      return this._saveCheckbox(evaluator, task, annotationStorage);\n    }\n\n    if (this.data.radioButton) {\n      return this._saveRadioButton(evaluator, task, annotationStorage);\n    }\n\n    return null;\n  }\n\n  async _saveCheckbox(evaluator, task, annotationStorage) {\n    if (!annotationStorage) {\n      return null;\n    }\n\n    const storageEntry = annotationStorage.get(this.data.id);\n    let rotation = storageEntry && storageEntry.rotation;\n    let value = storageEntry && storageEntry.value;\n\n    if (rotation === undefined) {\n      if (value === undefined) {\n        return null;\n      }\n\n      const defaultValue = this.data.fieldValue === this.data.exportValue;\n\n      if (defaultValue === value) {\n        return null;\n      }\n    }\n\n    const dict = evaluator.xref.fetchIfRef(this.ref);\n\n    if (!(dict instanceof _primitives.Dict)) {\n      return null;\n    }\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    if (value === undefined) {\n      value = this.data.fieldValue === this.data.exportValue;\n    }\n\n    const xfa = {\n      path: (0, _util.stringToPDFString)(dict.get(\"T\") || \"\"),\n      value: value ? this.data.exportValue : \"\"\n    };\n\n    const name = _primitives.Name.get(value ? this.data.exportValue : \"Off\");\n\n    dict.set(\"V\", name);\n    dict.set(\"AS\", name);\n    dict.set(\"M\", `D:${(0, _util.getModificationDate)()}`);\n\n    const maybeMK = this._getMKDict(rotation);\n\n    if (maybeMK) {\n      dict.set(\"MK\", maybeMK);\n    }\n\n    const encrypt = evaluator.xref.encrypt;\n    let originalTransform = null;\n\n    if (encrypt) {\n      originalTransform = encrypt.createCipherTransform(this.ref.num, this.ref.gen);\n    }\n\n    const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n    (0, _writer.writeDict)(dict, buffer, originalTransform);\n    buffer.push(\"\\nendobj\\n\");\n    return [{\n      ref: this.ref,\n      data: buffer.join(\"\"),\n      xfa\n    }];\n  }\n\n  async _saveRadioButton(evaluator, task, annotationStorage) {\n    if (!annotationStorage) {\n      return null;\n    }\n\n    const storageEntry = annotationStorage.get(this.data.id);\n    let rotation = storageEntry && storageEntry.rotation;\n    let value = storageEntry && storageEntry.value;\n\n    if (rotation === undefined) {\n      if (value === undefined) {\n        return null;\n      }\n\n      const defaultValue = this.data.fieldValue === this.data.buttonValue;\n\n      if (defaultValue === value) {\n        return null;\n      }\n    }\n\n    const dict = evaluator.xref.fetchIfRef(this.ref);\n\n    if (!(dict instanceof _primitives.Dict)) {\n      return null;\n    }\n\n    if (value === undefined) {\n      value = this.data.fieldValue === this.data.buttonValue;\n    }\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    const xfa = {\n      path: (0, _util.stringToPDFString)(dict.get(\"T\") || \"\"),\n      value: value ? this.data.buttonValue : \"\"\n    };\n\n    const name = _primitives.Name.get(value ? this.data.buttonValue : \"Off\");\n\n    let parentBuffer = null;\n    const encrypt = evaluator.xref.encrypt;\n\n    if (value) {\n      if (this.parent instanceof _primitives.Ref) {\n        const parent = evaluator.xref.fetch(this.parent);\n        let parentTransform = null;\n\n        if (encrypt) {\n          parentTransform = encrypt.createCipherTransform(this.parent.num, this.parent.gen);\n        }\n\n        parent.set(\"V\", name);\n        parentBuffer = [`${this.parent.num} ${this.parent.gen} obj\\n`];\n        (0, _writer.writeDict)(parent, parentBuffer, parentTransform);\n        parentBuffer.push(\"\\nendobj\\n\");\n      } else if (this.parent instanceof _primitives.Dict) {\n        this.parent.set(\"V\", name);\n      }\n    }\n\n    dict.set(\"AS\", name);\n    dict.set(\"M\", `D:${(0, _util.getModificationDate)()}`);\n\n    const maybeMK = this._getMKDict(rotation);\n\n    if (maybeMK) {\n      dict.set(\"MK\", maybeMK);\n    }\n\n    let originalTransform = null;\n\n    if (encrypt) {\n      originalTransform = encrypt.createCipherTransform(this.ref.num, this.ref.gen);\n    }\n\n    const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n    (0, _writer.writeDict)(dict, buffer, originalTransform);\n    buffer.push(\"\\nendobj\\n\");\n    const newRefs = [{\n      ref: this.ref,\n      data: buffer.join(\"\"),\n      xfa\n    }];\n\n    if (parentBuffer !== null) {\n      newRefs.push({\n        ref: this.parent,\n        data: parentBuffer.join(\"\"),\n        xfa: null\n      });\n    }\n\n    return newRefs;\n  }\n\n  _getDefaultCheckedAppearance(params, type) {\n    const width = this.data.rect[2] - this.data.rect[0];\n    const height = this.data.rect[3] - this.data.rect[1];\n    const bbox = [0, 0, width, height];\n    const FONT_RATIO = 0.8;\n    const fontSize = Math.min(width, height) * FONT_RATIO;\n    let metrics, char;\n\n    if (type === \"check\") {\n      metrics = {\n        width: 0.755 * fontSize,\n        height: 0.705 * fontSize\n      };\n      char = \"\\x33\";\n    } else if (type === \"disc\") {\n      metrics = {\n        width: 0.791 * fontSize,\n        height: 0.705 * fontSize\n      };\n      char = \"\\x6C\";\n    } else {\n      (0, _util.unreachable)(`_getDefaultCheckedAppearance - unsupported type: ${type}`);\n    }\n\n    const xShift = (0, _core_utils.numberToString)((width - metrics.width) / 2);\n    const yShift = (0, _core_utils.numberToString)((height - metrics.height) / 2);\n    const appearance = `q BT /PdfJsZaDb ${fontSize} Tf 0 g ${xShift} ${yShift} Td (${char}) Tj ET Q`;\n    const appearanceStreamDict = new _primitives.Dict(params.xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.set(\"Subtype\", _primitives.Name.get(\"Form\"));\n    appearanceStreamDict.set(\"Type\", _primitives.Name.get(\"XObject\"));\n    appearanceStreamDict.set(\"BBox\", bbox);\n    appearanceStreamDict.set(\"Matrix\", [1, 0, 0, 1, 0, 0]);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n    const resources = new _primitives.Dict(params.xref);\n    const font = new _primitives.Dict(params.xref);\n    font.set(\"PdfJsZaDb\", this.fallbackFontDict);\n    resources.set(\"Font\", font);\n    appearanceStreamDict.set(\"Resources\", resources);\n    this.checkedAppearance = new _stream.StringStream(appearance);\n    this.checkedAppearance.dict = appearanceStreamDict;\n\n    this._streams.push(this.checkedAppearance);\n  }\n\n  _processCheckBox(params) {\n    const customAppearance = params.dict.get(\"AP\");\n\n    if (!(customAppearance instanceof _primitives.Dict)) {\n      return;\n    }\n\n    const normalAppearance = customAppearance.get(\"N\");\n\n    if (!(normalAppearance instanceof _primitives.Dict)) {\n      return;\n    }\n\n    const asValue = this._decodeFormValue(params.dict.get(\"AS\"));\n\n    if (typeof asValue === \"string\") {\n      this.data.fieldValue = asValue;\n    }\n\n    const yes = this.data.fieldValue !== null && this.data.fieldValue !== \"Off\" ? this.data.fieldValue : \"Yes\";\n    const exportValues = normalAppearance.getKeys();\n\n    if (exportValues.length === 0) {\n      exportValues.push(\"Off\", yes);\n    } else if (exportValues.length === 1) {\n      if (exportValues[0] === \"Off\") {\n        exportValues.push(yes);\n      } else {\n        exportValues.unshift(\"Off\");\n      }\n    } else if (exportValues.includes(yes)) {\n      exportValues.length = 0;\n      exportValues.push(\"Off\", yes);\n    } else {\n      const otherYes = exportValues.find(v => v !== \"Off\");\n      exportValues.length = 0;\n      exportValues.push(\"Off\", otherYes);\n    }\n\n    if (!exportValues.includes(this.data.fieldValue)) {\n      this.data.fieldValue = \"Off\";\n    }\n\n    this.data.exportValue = exportValues[1];\n    this.checkedAppearance = normalAppearance.get(this.data.exportValue) || null;\n    this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\n\n    if (this.checkedAppearance) {\n      this._streams.push(this.checkedAppearance);\n    } else {\n      this._getDefaultCheckedAppearance(params, \"check\");\n    }\n\n    if (this.uncheckedAppearance) {\n      this._streams.push(this.uncheckedAppearance);\n    }\n\n    this._fallbackFontDict = this.fallbackFontDict;\n  }\n\n  _processRadioButton(params) {\n    this.data.fieldValue = this.data.buttonValue = null;\n    const fieldParent = params.dict.get(\"Parent\");\n\n    if (fieldParent instanceof _primitives.Dict) {\n      this.parent = params.dict.getRaw(\"Parent\");\n      const fieldParentValue = fieldParent.get(\"V\");\n\n      if (fieldParentValue instanceof _primitives.Name) {\n        this.data.fieldValue = this._decodeFormValue(fieldParentValue);\n      }\n    }\n\n    const appearanceStates = params.dict.get(\"AP\");\n\n    if (!(appearanceStates instanceof _primitives.Dict)) {\n      return;\n    }\n\n    const normalAppearance = appearanceStates.get(\"N\");\n\n    if (!(normalAppearance instanceof _primitives.Dict)) {\n      return;\n    }\n\n    for (const key of normalAppearance.getKeys()) {\n      if (key !== \"Off\") {\n        this.data.buttonValue = this._decodeFormValue(key);\n        break;\n      }\n    }\n\n    this.checkedAppearance = normalAppearance.get(this.data.buttonValue) || null;\n    this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\n\n    if (this.checkedAppearance) {\n      this._streams.push(this.checkedAppearance);\n    } else {\n      this._getDefaultCheckedAppearance(params, \"disc\");\n    }\n\n    if (this.uncheckedAppearance) {\n      this._streams.push(this.uncheckedAppearance);\n    }\n\n    this._fallbackFontDict = this.fallbackFontDict;\n  }\n\n  _processPushButton(params) {\n    if (!params.dict.has(\"A\") && !params.dict.has(\"AA\") && !this.data.alternativeText) {\n      (0, _util.warn)(\"Push buttons without action dictionaries are not supported\");\n      return;\n    }\n\n    this.data.isTooltipOnly = !params.dict.has(\"A\") && !params.dict.has(\"AA\");\n\n    _catalog.Catalog.parseDestDictionary({\n      destDict: params.dict,\n      resultObj: this.data,\n      docBaseUrl: params.pdfManager.docBaseUrl\n    });\n  }\n\n  getFieldObject() {\n    let type = \"button\";\n    let exportValues;\n\n    if (this.data.checkBox) {\n      type = \"checkbox\";\n      exportValues = this.data.exportValue;\n    } else if (this.data.radioButton) {\n      type = \"radiobutton\";\n      exportValues = this.data.buttonValue;\n    }\n\n    return {\n      id: this.data.id,\n      value: this.data.fieldValue || \"Off\",\n      defaultValue: this.data.defaultFieldValue,\n      exportValues,\n      editable: !this.data.readOnly,\n      name: this.data.fieldName,\n      rect: this.data.rect,\n      hidden: this.data.hidden,\n      actions: this.data.actions,\n      page: this.data.pageIndex,\n      strokeColor: this.data.borderColor,\n      fillColor: this.data.backgroundColor,\n      rotation: this.rotation,\n      type\n    };\n  }\n\n  get fallbackFontDict() {\n    const dict = new _primitives.Dict();\n    dict.set(\"BaseFont\", _primitives.Name.get(\"ZapfDingbats\"));\n    dict.set(\"Type\", _primitives.Name.get(\"FallbackType\"));\n    dict.set(\"Subtype\", _primitives.Name.get(\"FallbackType\"));\n    dict.set(\"Encoding\", _primitives.Name.get(\"ZapfDingbatsEncoding\"));\n    return (0, _util.shadow)(this, \"fallbackFontDict\", dict);\n  }\n\n}\n\nclass ChoiceWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n    this.data.options = [];\n    const options = (0, _core_utils.getInheritableProperty)({\n      dict: params.dict,\n      key: \"Opt\"\n    });\n\n    if (Array.isArray(options)) {\n      const xref = params.xref;\n\n      for (let i = 0, ii = options.length; i < ii; i++) {\n        const option = xref.fetchIfRef(options[i]);\n        const isOptionArray = Array.isArray(option);\n        this.data.options[i] = {\n          exportValue: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[0]) : option),\n          displayValue: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[1]) : option)\n        };\n      }\n    }\n\n    if (typeof this.data.fieldValue === \"string\") {\n      this.data.fieldValue = [this.data.fieldValue];\n    } else if (!this.data.fieldValue) {\n      this.data.fieldValue = [];\n    }\n\n    this.data.combo = this.hasFieldFlag(_util.AnnotationFieldFlag.COMBO);\n    this.data.multiSelect = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT);\n    this._hasText = true;\n  }\n\n  getFieldObject() {\n    const type = this.data.combo ? \"combobox\" : \"listbox\";\n    const value = this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null;\n    return {\n      id: this.data.id,\n      value,\n      defaultValue: this.data.defaultFieldValue,\n      editable: !this.data.readOnly,\n      name: this.data.fieldName,\n      rect: this.data.rect,\n      numItems: this.data.fieldValue.length,\n      multipleSelection: this.data.multiSelect,\n      hidden: this.data.hidden,\n      actions: this.data.actions,\n      items: this.data.options,\n      page: this.data.pageIndex,\n      strokeColor: this.data.borderColor,\n      fillColor: this.data.backgroundColor,\n      rotation: this.rotation,\n      type\n    };\n  }\n\n  async _getAppearance(evaluator, task, annotationStorage) {\n    if (this.data.combo) {\n      return super._getAppearance(evaluator, task, annotationStorage);\n    }\n\n    if (!annotationStorage) {\n      return null;\n    }\n\n    const storageEntry = annotationStorage.get(this.data.id);\n\n    if (!storageEntry) {\n      return null;\n    }\n\n    const rotation = storageEntry.rotation;\n    let exportedValue = storageEntry.value;\n\n    if (rotation === undefined && exportedValue === undefined) {\n      return null;\n    }\n\n    if (exportedValue === undefined) {\n      exportedValue = this.data.fieldValue;\n    } else if (!Array.isArray(exportedValue)) {\n      exportedValue = [exportedValue];\n    }\n\n    const defaultPadding = 2;\n    const hPadding = defaultPadding;\n    let totalHeight = this.data.rect[3] - this.data.rect[1];\n    let totalWidth = this.data.rect[2] - this.data.rect[0];\n\n    if (rotation === 90 || rotation === 270) {\n      [totalWidth, totalHeight] = [totalHeight, totalWidth];\n    }\n\n    const lineCount = this.data.options.length;\n    const valueIndices = [];\n\n    for (let i = 0; i < lineCount; i++) {\n      const {\n        exportValue\n      } = this.data.options[i];\n\n      if (exportedValue.includes(exportValue)) {\n        valueIndices.push(i);\n      }\n    }\n\n    if (!this._defaultAppearance) {\n      this.data.defaultAppearanceData = (0, _default_appearance.parseDefaultAppearance)(this._defaultAppearance = \"/Helvetica 0 Tf 0 g\");\n    }\n\n    const font = await WidgetAnnotation._getFontData(evaluator, task, this.data.defaultAppearanceData, this._fieldResources.mergedResources);\n    let defaultAppearance;\n    let {\n      fontSize\n    } = this.data.defaultAppearanceData;\n\n    if (!fontSize) {\n      const lineHeight = (totalHeight - defaultPadding) / lineCount;\n      let lineWidth = -1;\n      let value;\n\n      for (const {\n        displayValue\n      } of this.data.options) {\n        const width = this._getTextWidth(displayValue, font);\n\n        if (width > lineWidth) {\n          lineWidth = width;\n          value = displayValue;\n        }\n      }\n\n      [defaultAppearance, fontSize] = this._computeFontSize(lineHeight, totalWidth - 2 * hPadding, value, font, -1);\n    } else {\n      defaultAppearance = this._defaultAppearance;\n    }\n\n    const lineHeight = fontSize * _util.LINE_FACTOR;\n    const vPadding = (lineHeight - fontSize) / 2;\n    const numberOfVisibleLines = Math.floor(totalHeight / lineHeight);\n    let firstIndex;\n\n    if (valueIndices.length === 1) {\n      const valuePosition = valueIndices[0];\n      const indexInPage = valuePosition % numberOfVisibleLines;\n      firstIndex = valuePosition - indexInPage;\n    } else {\n      firstIndex = valueIndices.length ? valueIndices[0] : 0;\n    }\n\n    const end = Math.min(firstIndex + numberOfVisibleLines + 1, lineCount);\n    const buf = [\"/Tx BMC q\", `1 1 ${totalWidth} ${totalHeight} re W n`];\n\n    if (valueIndices.length) {\n      buf.push(\"0.600006 0.756866 0.854904 rg\");\n\n      for (const index of valueIndices) {\n        if (firstIndex <= index && index < end) {\n          buf.push(`1 ${totalHeight - (index - firstIndex + 1) * lineHeight} ${totalWidth} ${lineHeight} re f`);\n        }\n      }\n    }\n\n    buf.push(\"BT\", defaultAppearance, `1 0 0 1 0 ${totalHeight} Tm`);\n\n    for (let i = firstIndex; i < end; i++) {\n      const {\n        displayValue\n      } = this.data.options[i];\n      const hpadding = i === firstIndex ? hPadding : 0;\n      const vpadding = i === firstIndex ? vPadding : 0;\n      buf.push(this._renderText(displayValue, font, fontSize, totalWidth, 0, hpadding, -lineHeight + vpadding));\n    }\n\n    buf.push(\"ET Q EMC\");\n    return buf.join(\"\\n\");\n  }\n\n}\n\nclass SignatureWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n    this.data.fieldValue = null;\n  }\n\n  getFieldObject() {\n    return {\n      id: this.data.id,\n      value: null,\n      page: this.data.pageIndex,\n      type: \"signature\"\n    };\n  }\n\n}\n\nclass TextAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    const DEFAULT_ICON_SIZE = 22;\n    super(parameters);\n    const dict = parameters.dict;\n    this.data.annotationType = _util.AnnotationType.TEXT;\n\n    if (this.data.hasAppearance) {\n      this.data.name = \"NoIcon\";\n    } else {\n      this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE;\n      this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE;\n      this.data.name = dict.has(\"Name\") ? dict.get(\"Name\").name : \"Note\";\n    }\n\n    if (dict.has(\"State\")) {\n      this.data.state = dict.get(\"State\") || null;\n      this.data.stateModel = dict.get(\"StateModel\") || null;\n    } else {\n      this.data.state = null;\n      this.data.stateModel = null;\n    }\n  }\n\n}\n\nclass LinkAnnotation extends Annotation {\n  constructor(params) {\n    super(params);\n    this.data.annotationType = _util.AnnotationType.LINK;\n    const quadPoints = getQuadPoints(params.dict, this.rectangle);\n\n    if (quadPoints) {\n      this.data.quadPoints = quadPoints;\n    }\n\n    this.data.borderColor = this.data.borderColor || this.data.color;\n\n    _catalog.Catalog.parseDestDictionary({\n      destDict: params.dict,\n      resultObj: this.data,\n      docBaseUrl: params.pdfManager.docBaseUrl\n    });\n  }\n\n}\n\nclass PopupAnnotation extends Annotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.POPUP;\n    let parentItem = parameters.dict.get(\"Parent\");\n\n    if (!parentItem) {\n      (0, _util.warn)(\"Popup annotation has a missing or invalid parent annotation.\");\n      return;\n    }\n\n    const parentSubtype = parentItem.get(\"Subtype\");\n    this.data.parentType = parentSubtype instanceof _primitives.Name ? parentSubtype.name : null;\n    const rawParent = parameters.dict.getRaw(\"Parent\");\n    this.data.parentId = rawParent instanceof _primitives.Ref ? rawParent.toString() : null;\n    const parentRect = parentItem.getArray(\"Rect\");\n\n    if (Array.isArray(parentRect) && parentRect.length === 4) {\n      this.data.parentRect = _util.Util.normalizeRect(parentRect);\n    } else {\n      this.data.parentRect = [0, 0, 0, 0];\n    }\n\n    const rt = parentItem.get(\"RT\");\n\n    if ((0, _primitives.isName)(rt, _util.AnnotationReplyType.GROUP)) {\n      parentItem = parentItem.get(\"IRT\");\n    }\n\n    if (!parentItem.has(\"M\")) {\n      this.data.modificationDate = null;\n    } else {\n      this.setModificationDate(parentItem.get(\"M\"));\n      this.data.modificationDate = this.modificationDate;\n    }\n\n    if (!parentItem.has(\"C\")) {\n      this.data.color = null;\n    } else {\n      this.setColor(parentItem.getArray(\"C\"));\n      this.data.color = this.color;\n    }\n\n    if (!this.viewable) {\n      const parentFlags = parentItem.get(\"F\");\n\n      if (this._isViewable(parentFlags)) {\n        this.setFlags(parentFlags);\n      }\n    }\n\n    this.setTitle(parentItem.get(\"T\"));\n    this.data.titleObj = this._title;\n    this.setContents(parentItem.get(\"Contents\"));\n    this.data.contentsObj = this._contents;\n\n    if (parentItem.has(\"RC\")) {\n      this.data.richText = _factory.XFAFactory.getRichTextAsHtml(parentItem.get(\"RC\"));\n    }\n  }\n\n}\n\nexports.PopupAnnotation = PopupAnnotation;\n\nclass FreeTextAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.FREETEXT;\n  }\n\n  get hasTextContent() {\n    return !!this.appearance;\n  }\n\n  static createNewDict(annotation, xref, _ref4) {\n    let {\n      apRef,\n      ap\n    } = _ref4;\n    const {\n      color,\n      fontSize,\n      rect,\n      rotation,\n      user,\n      value\n    } = annotation;\n    const freetext = new _primitives.Dict(xref);\n    freetext.set(\"Type\", _primitives.Name.get(\"Annot\"));\n    freetext.set(\"Subtype\", _primitives.Name.get(\"FreeText\"));\n    freetext.set(\"CreationDate\", `D:${(0, _util.getModificationDate)()}`);\n    freetext.set(\"Rect\", rect);\n    const da = `/Helv ${fontSize} Tf ${(0, _default_appearance.getPdfColor)(color, true)}`;\n    freetext.set(\"DA\", da);\n    freetext.set(\"Contents\", value);\n    freetext.set(\"F\", 4);\n    freetext.set(\"Border\", [0, 0, 0]);\n    freetext.set(\"Rotate\", rotation);\n\n    if (user) {\n      freetext.set(\"T\", (0, _util.stringToUTF8String)(user));\n    }\n\n    const n = new _primitives.Dict(xref);\n    freetext.set(\"AP\", n);\n\n    if (apRef) {\n      n.set(\"N\", apRef);\n    } else {\n      n.set(\"N\", ap);\n    }\n\n    return freetext;\n  }\n\n  static async createNewAppearanceStream(annotation, xref, params) {\n    const {\n      baseFontRef,\n      evaluator,\n      task\n    } = params;\n    const {\n      color,\n      fontSize,\n      rect,\n      rotation,\n      value\n    } = annotation;\n    const resources = new _primitives.Dict(xref);\n    const font = new _primitives.Dict(xref);\n\n    if (baseFontRef) {\n      font.set(\"Helv\", baseFontRef);\n    } else {\n      const baseFont = new _primitives.Dict(xref);\n      baseFont.set(\"BaseFont\", _primitives.Name.get(\"Helvetica\"));\n      baseFont.set(\"Type\", _primitives.Name.get(\"Font\"));\n      baseFont.set(\"Subtype\", _primitives.Name.get(\"Type1\"));\n      baseFont.set(\"Encoding\", _primitives.Name.get(\"WinAnsiEncoding\"));\n      font.set(\"Helv\", baseFont);\n    }\n\n    resources.set(\"Font\", font);\n    const helv = await WidgetAnnotation._getFontData(evaluator, task, {\n      fontName: \"Helvetica\",\n      fontSize\n    }, resources);\n    const [x1, y1, x2, y2] = rect;\n    let w = x2 - x1;\n    let h = y2 - y1;\n\n    if (rotation % 180 !== 0) {\n      [w, h] = [h, w];\n    }\n\n    const lines = value.split(\"\\n\");\n    const scale = fontSize / 1000;\n    let totalWidth = -Infinity;\n    const encodedLines = [];\n\n    for (let line of lines) {\n      line = helv.encodeString(line).join(\"\");\n      encodedLines.push(line);\n      let lineWidth = 0;\n      const glyphs = helv.charsToGlyphs(line);\n\n      for (const glyph of glyphs) {\n        lineWidth += glyph.width * scale;\n      }\n\n      totalWidth = Math.max(totalWidth, lineWidth);\n    }\n\n    let hscale = 1;\n\n    if (totalWidth > w) {\n      hscale = w / totalWidth;\n    }\n\n    let vscale = 1;\n    const lineHeight = _util.LINE_FACTOR * fontSize;\n    const lineDescent = _util.LINE_DESCENT_FACTOR * fontSize;\n    const totalHeight = lineHeight * lines.length;\n\n    if (totalHeight > h) {\n      vscale = h / totalHeight;\n    }\n\n    const fscale = Math.min(hscale, vscale);\n    const newFontSize = fontSize * fscale;\n    const buffer = [\"q\", `0 0 ${(0, _core_utils.numberToString)(w)} ${(0, _core_utils.numberToString)(h)} re W n`, `BT`, `1 0 0 1 0 ${(0, _core_utils.numberToString)(h + lineDescent)} Tm 0 Tc ${(0, _default_appearance.getPdfColor)(color, true)}`, `/Helv ${(0, _core_utils.numberToString)(newFontSize)} Tf`];\n    const vShift = (0, _core_utils.numberToString)(lineHeight);\n\n    for (const line of encodedLines) {\n      buffer.push(`0 -${vShift} Td (${(0, _util.escapeString)(line)}) Tj`);\n    }\n\n    buffer.push(\"ET\", \"Q\");\n    const appearance = buffer.join(\"\\n\");\n    const appearanceStreamDict = new _primitives.Dict(xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.set(\"Subtype\", _primitives.Name.get(\"Form\"));\n    appearanceStreamDict.set(\"Type\", _primitives.Name.get(\"XObject\"));\n    appearanceStreamDict.set(\"BBox\", [0, 0, w, h]);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n    appearanceStreamDict.set(\"Resources\", resources);\n\n    if (rotation) {\n      const matrix = WidgetAnnotation._getRotationMatrix(rotation, w, h);\n\n      appearanceStreamDict.set(\"Matrix\", matrix);\n    }\n\n    const ap = new _stream.StringStream(appearance);\n    ap.dict = appearanceStreamDict;\n    return ap;\n  }\n\n}\n\nclass LineAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    const {\n      dict\n    } = parameters;\n    this.data.annotationType = _util.AnnotationType.LINE;\n    const lineCoordinates = dict.getArray(\"L\");\n    this.data.lineCoordinates = _util.Util.normalizeRect(lineCoordinates);\n    this.setLineEndings(dict.getArray(\"LE\"));\n    this.data.lineEndings = this.lineEndings;\n\n    if (!this.appearance) {\n      const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n      const strokeAlpha = dict.get(\"CA\");\n      let fillColor = null,\n          interiorColor = dict.getArray(\"IC\");\n\n      if (interiorColor) {\n        interiorColor = getRgbColor(interiorColor, null);\n        fillColor = interiorColor ? Array.from(interiorColor).map(c => c / 255) : null;\n      }\n\n      const fillAlpha = fillColor ? strokeAlpha : null;\n      const borderWidth = this.borderStyle.width || 1,\n            borderAdjust = 2 * borderWidth;\n      const bbox = [this.data.lineCoordinates[0] - borderAdjust, this.data.lineCoordinates[1] - borderAdjust, this.data.lineCoordinates[2] + borderAdjust, this.data.lineCoordinates[3] + borderAdjust];\n\n      if (!_util.Util.intersect(this.rectangle, bbox)) {\n        this.rectangle = bbox;\n      }\n\n      this._setDefaultAppearance({\n        xref: parameters.xref,\n        extra: `${borderWidth} w`,\n        strokeColor,\n        fillColor,\n        strokeAlpha,\n        fillAlpha,\n        pointsCallback: (buffer, points) => {\n          buffer.push(`${lineCoordinates[0]} ${lineCoordinates[1]} m`, `${lineCoordinates[2]} ${lineCoordinates[3]} l`, \"S\");\n          return [points[0].x - borderWidth, points[1].x + borderWidth, points[3].y - borderWidth, points[1].y + borderWidth];\n        }\n      });\n    }\n  }\n\n}\n\nclass SquareAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.SQUARE;\n\n    if (!this.appearance) {\n      const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n      const strokeAlpha = parameters.dict.get(\"CA\");\n      let fillColor = null,\n          interiorColor = parameters.dict.getArray(\"IC\");\n\n      if (interiorColor) {\n        interiorColor = getRgbColor(interiorColor, null);\n        fillColor = interiorColor ? Array.from(interiorColor).map(c => c / 255) : null;\n      }\n\n      const fillAlpha = fillColor ? strokeAlpha : null;\n\n      if (this.borderStyle.width === 0 && !fillColor) {\n        return;\n      }\n\n      this._setDefaultAppearance({\n        xref: parameters.xref,\n        extra: `${this.borderStyle.width} w`,\n        strokeColor,\n        fillColor,\n        strokeAlpha,\n        fillAlpha,\n        pointsCallback: (buffer, points) => {\n          const x = points[2].x + this.borderStyle.width / 2;\n          const y = points[2].y + this.borderStyle.width / 2;\n          const width = points[3].x - points[2].x - this.borderStyle.width;\n          const height = points[1].y - points[3].y - this.borderStyle.width;\n          buffer.push(`${x} ${y} ${width} ${height} re`);\n\n          if (fillColor) {\n            buffer.push(\"B\");\n          } else {\n            buffer.push(\"S\");\n          }\n\n          return [points[0].x, points[1].x, points[3].y, points[1].y];\n        }\n      });\n    }\n  }\n\n}\n\nclass CircleAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.CIRCLE;\n\n    if (!this.appearance) {\n      const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n      const strokeAlpha = parameters.dict.get(\"CA\");\n      let fillColor = null;\n      let interiorColor = parameters.dict.getArray(\"IC\");\n\n      if (interiorColor) {\n        interiorColor = getRgbColor(interiorColor, null);\n        fillColor = interiorColor ? Array.from(interiorColor).map(c => c / 255) : null;\n      }\n\n      const fillAlpha = fillColor ? strokeAlpha : null;\n\n      if (this.borderStyle.width === 0 && !fillColor) {\n        return;\n      }\n\n      const controlPointsDistance = 4 / 3 * Math.tan(Math.PI / (2 * 4));\n\n      this._setDefaultAppearance({\n        xref: parameters.xref,\n        extra: `${this.borderStyle.width} w`,\n        strokeColor,\n        fillColor,\n        strokeAlpha,\n        fillAlpha,\n        pointsCallback: (buffer, points) => {\n          const x0 = points[0].x + this.borderStyle.width / 2;\n          const y0 = points[0].y - this.borderStyle.width / 2;\n          const x1 = points[3].x - this.borderStyle.width / 2;\n          const y1 = points[3].y + this.borderStyle.width / 2;\n          const xMid = x0 + (x1 - x0) / 2;\n          const yMid = y0 + (y1 - y0) / 2;\n          const xOffset = (x1 - x0) / 2 * controlPointsDistance;\n          const yOffset = (y1 - y0) / 2 * controlPointsDistance;\n          buffer.push(`${xMid} ${y1} m`, `${xMid + xOffset} ${y1} ${x1} ${yMid + yOffset} ${x1} ${yMid} c`, `${x1} ${yMid - yOffset} ${xMid + xOffset} ${y0} ${xMid} ${y0} c`, `${xMid - xOffset} ${y0} ${x0} ${yMid - yOffset} ${x0} ${yMid} c`, `${x0} ${yMid + yOffset} ${xMid - xOffset} ${y1} ${xMid} ${y1} c`, \"h\");\n\n          if (fillColor) {\n            buffer.push(\"B\");\n          } else {\n            buffer.push(\"S\");\n          }\n\n          return [points[0].x, points[1].x, points[3].y, points[1].y];\n        }\n      });\n    }\n  }\n\n}\n\nclass PolylineAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    const {\n      dict\n    } = parameters;\n    this.data.annotationType = _util.AnnotationType.POLYLINE;\n    this.data.vertices = [];\n\n    if (!(this instanceof PolygonAnnotation)) {\n      this.setLineEndings(dict.getArray(\"LE\"));\n      this.data.lineEndings = this.lineEndings;\n    }\n\n    const rawVertices = dict.getArray(\"Vertices\");\n\n    if (!Array.isArray(rawVertices)) {\n      return;\n    }\n\n    for (let i = 0, ii = rawVertices.length; i < ii; i += 2) {\n      this.data.vertices.push({\n        x: rawVertices[i],\n        y: rawVertices[i + 1]\n      });\n    }\n\n    if (!this.appearance) {\n      const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n      const strokeAlpha = dict.get(\"CA\");\n      const borderWidth = this.borderStyle.width || 1,\n            borderAdjust = 2 * borderWidth;\n      const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n\n      for (const vertex of this.data.vertices) {\n        bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n        bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n        bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n        bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n      }\n\n      if (!_util.Util.intersect(this.rectangle, bbox)) {\n        this.rectangle = bbox;\n      }\n\n      this._setDefaultAppearance({\n        xref: parameters.xref,\n        extra: `${borderWidth} w`,\n        strokeColor,\n        strokeAlpha,\n        pointsCallback: (buffer, points) => {\n          const vertices = this.data.vertices;\n\n          for (let i = 0, ii = vertices.length; i < ii; i++) {\n            buffer.push(`${vertices[i].x} ${vertices[i].y} ${i === 0 ? \"m\" : \"l\"}`);\n          }\n\n          buffer.push(\"S\");\n          return [points[0].x, points[1].x, points[3].y, points[1].y];\n        }\n      });\n    }\n  }\n\n}\n\nclass PolygonAnnotation extends PolylineAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.POLYGON;\n  }\n\n}\n\nclass CaretAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.CARET;\n  }\n\n}\n\nclass InkAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.INK;\n    this.data.inkLists = [];\n    const rawInkLists = parameters.dict.getArray(\"InkList\");\n\n    if (!Array.isArray(rawInkLists)) {\n      return;\n    }\n\n    const xref = parameters.xref;\n\n    for (let i = 0, ii = rawInkLists.length; i < ii; ++i) {\n      this.data.inkLists.push([]);\n\n      for (let j = 0, jj = rawInkLists[i].length; j < jj; j += 2) {\n        this.data.inkLists[i].push({\n          x: xref.fetchIfRef(rawInkLists[i][j]),\n          y: xref.fetchIfRef(rawInkLists[i][j + 1])\n        });\n      }\n    }\n\n    if (!this.appearance) {\n      const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n      const strokeAlpha = parameters.dict.get(\"CA\");\n      const borderWidth = this.borderStyle.width || 1,\n            borderAdjust = 2 * borderWidth;\n      const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n\n      for (const inkLists of this.data.inkLists) {\n        for (const vertex of inkLists) {\n          bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n          bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n          bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n          bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n        }\n      }\n\n      if (!_util.Util.intersect(this.rectangle, bbox)) {\n        this.rectangle = bbox;\n      }\n\n      this._setDefaultAppearance({\n        xref: parameters.xref,\n        extra: `${borderWidth} w`,\n        strokeColor,\n        strokeAlpha,\n        pointsCallback: (buffer, points) => {\n          for (const inkList of this.data.inkLists) {\n            for (let i = 0, ii = inkList.length; i < ii; i++) {\n              buffer.push(`${inkList[i].x} ${inkList[i].y} ${i === 0 ? \"m\" : \"l\"}`);\n            }\n\n            buffer.push(\"S\");\n          }\n\n          return [points[0].x, points[1].x, points[3].y, points[1].y];\n        }\n      });\n    }\n  }\n\n  static createNewDict(annotation, xref, _ref5) {\n    let {\n      apRef,\n      ap\n    } = _ref5;\n    const {\n      paths,\n      rect,\n      rotation\n    } = annotation;\n    const ink = new _primitives.Dict(xref);\n    ink.set(\"Type\", _primitives.Name.get(\"Annot\"));\n    ink.set(\"Subtype\", _primitives.Name.get(\"Ink\"));\n    ink.set(\"CreationDate\", `D:${(0, _util.getModificationDate)()}`);\n    ink.set(\"Rect\", rect);\n    ink.set(\"InkList\", paths.map(p => p.points));\n    ink.set(\"F\", 4);\n    ink.set(\"Border\", [0, 0, 0]);\n    ink.set(\"Rotate\", rotation);\n    const n = new _primitives.Dict(xref);\n    ink.set(\"AP\", n);\n\n    if (apRef) {\n      n.set(\"N\", apRef);\n    } else {\n      n.set(\"N\", ap);\n    }\n\n    return ink;\n  }\n\n  static async createNewAppearanceStream(annotation, xref, params) {\n    const {\n      color,\n      rect,\n      rotation,\n      paths,\n      thickness,\n      opacity\n    } = annotation;\n    const [x1, y1, x2, y2] = rect;\n    let w = x2 - x1;\n    let h = y2 - y1;\n\n    if (rotation % 180 !== 0) {\n      [w, h] = [h, w];\n    }\n\n    const appearanceBuffer = [`${thickness} w 1 J 1 j`, `${(0, _default_appearance.getPdfColor)(color, false)}`];\n\n    if (opacity !== 1) {\n      appearanceBuffer.push(\"/R0 gs\");\n    }\n\n    const buffer = [];\n\n    for (const {\n      bezier\n    } of paths) {\n      buffer.length = 0;\n      buffer.push(`${(0, _core_utils.numberToString)(bezier[0])} ${(0, _core_utils.numberToString)(bezier[1])} m`);\n\n      for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n        const curve = bezier.slice(i, i + 6).map(_core_utils.numberToString).join(\" \");\n        buffer.push(`${curve} c`);\n      }\n\n      buffer.push(\"S\");\n      appearanceBuffer.push(buffer.join(\"\\n\"));\n    }\n\n    const appearance = appearanceBuffer.join(\"\\n\");\n    const appearanceStreamDict = new _primitives.Dict(xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.set(\"Subtype\", _primitives.Name.get(\"Form\"));\n    appearanceStreamDict.set(\"Type\", _primitives.Name.get(\"XObject\"));\n    appearanceStreamDict.set(\"BBox\", [0, 0, w, h]);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n\n    if (rotation) {\n      const matrix = WidgetAnnotation._getRotationMatrix(rotation, w, h);\n\n      appearanceStreamDict.set(\"Matrix\", matrix);\n    }\n\n    if (opacity !== 1) {\n      const resources = new _primitives.Dict(xref);\n      const extGState = new _primitives.Dict(xref);\n      const r0 = new _primitives.Dict(xref);\n      r0.set(\"CA\", opacity);\n      r0.set(\"Type\", _primitives.Name.get(\"ExtGState\"));\n      extGState.set(\"R0\", r0);\n      resources.set(\"ExtGState\", extGState);\n      appearanceStreamDict.set(\"Resources\", resources);\n    }\n\n    const ap = new _stream.StringStream(appearance);\n    ap.dict = appearanceStreamDict;\n    return ap;\n  }\n\n}\n\nclass HighlightAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.HIGHLIGHT;\n    const quadPoints = this.data.quadPoints = getQuadPoints(parameters.dict, null);\n\n    if (quadPoints) {\n      const resources = this.appearance && this.appearance.dict.get(\"Resources\");\n\n      if (!this.appearance || !(resources && resources.has(\"ExtGState\"))) {\n        if (this.appearance) {\n          (0, _util.warn)(\"HighlightAnnotation - ignoring built-in appearance stream.\");\n        }\n\n        const fillColor = this.color ? Array.from(this.color).map(c => c / 255) : [1, 1, 0];\n        const fillAlpha = parameters.dict.get(\"CA\");\n\n        this._setDefaultAppearance({\n          xref: parameters.xref,\n          fillColor,\n          blendMode: \"Multiply\",\n          fillAlpha,\n          pointsCallback: (buffer, points) => {\n            buffer.push(`${points[0].x} ${points[0].y} m`, `${points[1].x} ${points[1].y} l`, `${points[3].x} ${points[3].y} l`, `${points[2].x} ${points[2].y} l`, \"f\");\n            return [points[0].x, points[1].x, points[3].y, points[1].y];\n          }\n        });\n      }\n    } else {\n      this.data.hasPopup = false;\n    }\n  }\n\n}\n\nclass UnderlineAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.UNDERLINE;\n    const quadPoints = this.data.quadPoints = getQuadPoints(parameters.dict, null);\n\n    if (quadPoints) {\n      if (!this.appearance) {\n        const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n        const strokeAlpha = parameters.dict.get(\"CA\");\n\n        this._setDefaultAppearance({\n          xref: parameters.xref,\n          extra: \"[] 0 d 1 w\",\n          strokeColor,\n          strokeAlpha,\n          pointsCallback: (buffer, points) => {\n            buffer.push(`${points[2].x} ${points[2].y} m`, `${points[3].x} ${points[3].y} l`, \"S\");\n            return [points[0].x, points[1].x, points[3].y, points[1].y];\n          }\n        });\n      }\n    } else {\n      this.data.hasPopup = false;\n    }\n  }\n\n}\n\nclass SquigglyAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.SQUIGGLY;\n    const quadPoints = this.data.quadPoints = getQuadPoints(parameters.dict, null);\n\n    if (quadPoints) {\n      if (!this.appearance) {\n        const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n        const strokeAlpha = parameters.dict.get(\"CA\");\n\n        this._setDefaultAppearance({\n          xref: parameters.xref,\n          extra: \"[] 0 d 1 w\",\n          strokeColor,\n          strokeAlpha,\n          pointsCallback: (buffer, points) => {\n            const dy = (points[0].y - points[2].y) / 6;\n            let shift = dy;\n            let x = points[2].x;\n            const y = points[2].y;\n            const xEnd = points[3].x;\n            buffer.push(`${x} ${y + shift} m`);\n\n            do {\n              x += 2;\n              shift = shift === 0 ? dy : 0;\n              buffer.push(`${x} ${y + shift} l`);\n            } while (x < xEnd);\n\n            buffer.push(\"S\");\n            return [points[2].x, xEnd, y - 2 * dy, y + 2 * dy];\n          }\n        });\n      }\n    } else {\n      this.data.hasPopup = false;\n    }\n  }\n\n}\n\nclass StrikeOutAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.STRIKEOUT;\n    const quadPoints = this.data.quadPoints = getQuadPoints(parameters.dict, null);\n\n    if (quadPoints) {\n      if (!this.appearance) {\n        const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n        const strokeAlpha = parameters.dict.get(\"CA\");\n\n        this._setDefaultAppearance({\n          xref: parameters.xref,\n          extra: \"[] 0 d 1 w\",\n          strokeColor,\n          strokeAlpha,\n          pointsCallback: (buffer, points) => {\n            buffer.push(`${(points[0].x + points[2].x) / 2} ` + `${(points[0].y + points[2].y) / 2} m`, `${(points[1].x + points[3].x) / 2} ` + `${(points[1].y + points[3].y) / 2} l`, \"S\");\n            return [points[0].x, points[1].x, points[3].y, points[1].y];\n          }\n        });\n      }\n    } else {\n      this.data.hasPopup = false;\n    }\n  }\n\n}\n\nclass StampAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.STAMP;\n  }\n\n}\n\nclass FileAttachmentAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    const file = new _file_spec.FileSpec(parameters.dict.get(\"FS\"), parameters.xref);\n    this.data.annotationType = _util.AnnotationType.FILEATTACHMENT;\n    this.data.file = file.serializable;\n  }\n\n}\n\n/***/ }),\n/* 138 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.createDefaultAppearance = createDefaultAppearance;\nexports.getPdfColor = getPdfColor;\nexports.parseDefaultAppearance = parseDefaultAppearance;\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _colorspace = __w_pdfjs_require__(139);\n\nvar _evaluator = __w_pdfjs_require__(140);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _stream = __w_pdfjs_require__(135);\n\nclass DefaultAppearanceEvaluator extends _evaluator.EvaluatorPreprocessor {\n  constructor(str) {\n    super(new _stream.StringStream(str));\n  }\n\n  parse() {\n    const operation = {\n      fn: 0,\n      args: []\n    };\n    const result = {\n      fontSize: 0,\n      fontName: \"\",\n      fontColor: new Uint8ClampedArray(3)\n    };\n\n    try {\n      while (true) {\n        operation.args.length = 0;\n\n        if (!this.read(operation)) {\n          break;\n        }\n\n        if (this.savedStatesDepth !== 0) {\n          continue;\n        }\n\n        const {\n          fn,\n          args\n        } = operation;\n\n        switch (fn | 0) {\n          case _util.OPS.setFont:\n            const [fontName, fontSize] = args;\n\n            if (fontName instanceof _primitives.Name) {\n              result.fontName = fontName.name;\n            }\n\n            if (typeof fontSize === \"number\" && fontSize > 0) {\n              result.fontSize = fontSize;\n            }\n\n            break;\n\n          case _util.OPS.setFillRGBColor:\n            _colorspace.ColorSpace.singletons.rgb.getRgbItem(args, 0, result.fontColor, 0);\n\n            break;\n\n          case _util.OPS.setFillGray:\n            _colorspace.ColorSpace.singletons.gray.getRgbItem(args, 0, result.fontColor, 0);\n\n            break;\n\n          case _util.OPS.setFillColorSpace:\n            _colorspace.ColorSpace.singletons.cmyk.getRgbItem(args, 0, result.fontColor, 0);\n\n            break;\n        }\n      }\n    } catch (reason) {\n      (0, _util.warn)(`parseDefaultAppearance - ignoring errors: \"${reason}\".`);\n    }\n\n    return result;\n  }\n\n}\n\nfunction parseDefaultAppearance(str) {\n  return new DefaultAppearanceEvaluator(str).parse();\n}\n\nfunction getPdfColor(color, isFill) {\n  if (color[0] === color[1] && color[1] === color[2]) {\n    const gray = color[0] / 255;\n    return `${(0, _core_utils.numberToString)(gray)} ${isFill ? \"g\" : \"G\"}`;\n  }\n\n  return Array.from(color).map(c => (0, _core_utils.numberToString)(c / 255)).join(\" \") + ` ${isFill ? \"rg\" : \"RG\"}`;\n}\n\nfunction createDefaultAppearance(_ref) {\n  let {\n    fontSize,\n    fontName,\n    fontColor\n  } = _ref;\n  return `/${(0, _core_utils.escapePDFName)(fontName)} ${fontSize} Tf ${getPdfColor(fontColor, true)}`;\n}\n\n/***/ }),\n/* 139 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ColorSpace = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n  const COMPONENTS = 3;\n  alpha01 = alpha01 !== 1 ? 0 : alpha01;\n  const xRatio = w1 / w2;\n  const yRatio = h1 / h2;\n  let newIndex = 0,\n      oldIndex;\n  const xScaled = new Uint16Array(w2);\n  const w1Scanline = w1 * COMPONENTS;\n\n  for (let i = 0; i < w2; i++) {\n    xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n  }\n\n  for (let i = 0; i < h2; i++) {\n    const py = Math.floor(i * yRatio) * w1Scanline;\n\n    for (let j = 0; j < w2; j++) {\n      oldIndex = py + xScaled[j];\n      dest[newIndex++] = src[oldIndex++];\n      dest[newIndex++] = src[oldIndex++];\n      dest[newIndex++] = src[oldIndex++];\n      newIndex += alpha01;\n    }\n  }\n}\n\nclass ColorSpace {\n  constructor(name, numComps) {\n    if (this.constructor === ColorSpace) {\n      (0, _util.unreachable)(\"Cannot initialize ColorSpace.\");\n    }\n\n    this.name = name;\n    this.numComps = numComps;\n  }\n\n  getRgb(src, srcOffset) {\n    const rgb = new Uint8ClampedArray(3);\n    this.getRgbItem(src, srcOffset, rgb, 0);\n    return rgb;\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    (0, _util.unreachable)(\"Should not call ColorSpace.getRgbItem\");\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    (0, _util.unreachable)(\"Should not call ColorSpace.getRgbBuffer\");\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    (0, _util.unreachable)(\"Should not call ColorSpace.getOutputLength\");\n  }\n\n  isPassthrough(bits) {\n    return false;\n  }\n\n  isDefaultDecode(decodeMap, bpc) {\n    return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n  }\n\n  fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {\n    const count = originalWidth * originalHeight;\n    let rgbBuf = null;\n    const numComponentColors = 1 << bpc;\n    const needsResizing = originalHeight !== height || originalWidth !== width;\n\n    if (this.isPassthrough(bpc)) {\n      rgbBuf = comps;\n    } else if (this.numComps === 1 && count > numComponentColors && this.name !== \"DeviceGray\" && this.name !== \"DeviceRGB\") {\n      const allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors);\n\n      for (let i = 0; i < numComponentColors; i++) {\n        allColors[i] = i;\n      }\n\n      const colorMap = new Uint8ClampedArray(numComponentColors * 3);\n      this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0);\n\n      if (!needsResizing) {\n        let destPos = 0;\n\n        for (let i = 0; i < count; ++i) {\n          const key = comps[i] * 3;\n          dest[destPos++] = colorMap[key];\n          dest[destPos++] = colorMap[key + 1];\n          dest[destPos++] = colorMap[key + 2];\n          destPos += alpha01;\n        }\n      } else {\n        rgbBuf = new Uint8Array(count * 3);\n        let rgbPos = 0;\n\n        for (let i = 0; i < count; ++i) {\n          const key = comps[i] * 3;\n          rgbBuf[rgbPos++] = colorMap[key];\n          rgbBuf[rgbPos++] = colorMap[key + 1];\n          rgbBuf[rgbPos++] = colorMap[key + 2];\n        }\n      }\n    } else {\n      if (!needsResizing) {\n        this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);\n      } else {\n        rgbBuf = new Uint8ClampedArray(count * 3);\n        this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0);\n      }\n    }\n\n    if (rgbBuf) {\n      if (needsResizing) {\n        resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01);\n      } else {\n        let destPos = 0,\n            rgbPos = 0;\n\n        for (let i = 0, ii = width * actualHeight; i < ii; i++) {\n          dest[destPos++] = rgbBuf[rgbPos++];\n          dest[destPos++] = rgbBuf[rgbPos++];\n          dest[destPos++] = rgbBuf[rgbPos++];\n          destPos += alpha01;\n        }\n      }\n    }\n  }\n\n  get usesZeroToOneRange() {\n    return (0, _util.shadow)(this, \"usesZeroToOneRange\", true);\n  }\n\n  static _cache(cacheKey, xref, localColorSpaceCache, parsedColorSpace) {\n    if (!localColorSpaceCache) {\n      throw new Error('ColorSpace._cache - expected \"localColorSpaceCache\" argument.');\n    }\n\n    if (!parsedColorSpace) {\n      throw new Error('ColorSpace._cache - expected \"parsedColorSpace\" argument.');\n    }\n\n    let csName, csRef;\n\n    if (cacheKey instanceof _primitives.Ref) {\n      csRef = cacheKey;\n      cacheKey = xref.fetch(cacheKey);\n    }\n\n    if (cacheKey instanceof _primitives.Name) {\n      csName = cacheKey.name;\n    }\n\n    if (csName || csRef) {\n      localColorSpaceCache.set(csName, csRef, parsedColorSpace);\n    }\n  }\n\n  static getCached(cacheKey, xref, localColorSpaceCache) {\n    if (!localColorSpaceCache) {\n      throw new Error('ColorSpace.getCached - expected \"localColorSpaceCache\" argument.');\n    }\n\n    if (cacheKey instanceof _primitives.Ref) {\n      const localColorSpace = localColorSpaceCache.getByRef(cacheKey);\n\n      if (localColorSpace) {\n        return localColorSpace;\n      }\n\n      try {\n        cacheKey = xref.fetch(cacheKey);\n      } catch (ex) {\n        if (ex instanceof _core_utils.MissingDataException) {\n          throw ex;\n        }\n      }\n    }\n\n    if (cacheKey instanceof _primitives.Name) {\n      const localColorSpace = localColorSpaceCache.getByName(cacheKey.name);\n\n      if (localColorSpace) {\n        return localColorSpace;\n      }\n    }\n\n    return null;\n  }\n\n  static async parseAsync(_ref) {\n    let {\n      cs,\n      xref,\n      resources = null,\n      pdfFunctionFactory,\n      localColorSpaceCache\n    } = _ref;\n\n    const parsedColorSpace = this._parse(cs, xref, resources, pdfFunctionFactory);\n\n    this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n    return parsedColorSpace;\n  }\n\n  static parse(_ref2) {\n    let {\n      cs,\n      xref,\n      resources = null,\n      pdfFunctionFactory,\n      localColorSpaceCache\n    } = _ref2;\n    const cachedColorSpace = this.getCached(cs, xref, localColorSpaceCache);\n\n    if (cachedColorSpace) {\n      return cachedColorSpace;\n    }\n\n    const parsedColorSpace = this._parse(cs, xref, resources, pdfFunctionFactory);\n\n    this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n    return parsedColorSpace;\n  }\n\n  static _parse(cs, xref) {\n    let resources = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n    let pdfFunctionFactory = arguments.length > 3 ? arguments[3] : undefined;\n    cs = xref.fetchIfRef(cs);\n\n    if (cs instanceof _primitives.Name) {\n      switch (cs.name) {\n        case \"G\":\n        case \"DeviceGray\":\n          return this.singletons.gray;\n\n        case \"RGB\":\n        case \"DeviceRGB\":\n          return this.singletons.rgb;\n\n        case \"CMYK\":\n        case \"DeviceCMYK\":\n          return this.singletons.cmyk;\n\n        case \"Pattern\":\n          return new PatternCS(null);\n\n        default:\n          if (resources instanceof _primitives.Dict) {\n            const colorSpaces = resources.get(\"ColorSpace\");\n\n            if (colorSpaces instanceof _primitives.Dict) {\n              const resourcesCS = colorSpaces.get(cs.name);\n\n              if (resourcesCS) {\n                if (resourcesCS instanceof _primitives.Name) {\n                  return this._parse(resourcesCS, xref, resources, pdfFunctionFactory);\n                }\n\n                cs = resourcesCS;\n                break;\n              }\n            }\n          }\n\n          throw new _util.FormatError(`Unrecognized ColorSpace: ${cs.name}`);\n      }\n    }\n\n    if (Array.isArray(cs)) {\n      const mode = xref.fetchIfRef(cs[0]).name;\n      let params, numComps, baseCS, whitePoint, blackPoint, gamma;\n\n      switch (mode) {\n        case \"G\":\n        case \"DeviceGray\":\n          return this.singletons.gray;\n\n        case \"RGB\":\n        case \"DeviceRGB\":\n          return this.singletons.rgb;\n\n        case \"CMYK\":\n        case \"DeviceCMYK\":\n          return this.singletons.cmyk;\n\n        case \"CalGray\":\n          params = xref.fetchIfRef(cs[1]);\n          whitePoint = params.getArray(\"WhitePoint\");\n          blackPoint = params.getArray(\"BlackPoint\");\n          gamma = params.get(\"Gamma\");\n          return new CalGrayCS(whitePoint, blackPoint, gamma);\n\n        case \"CalRGB\":\n          params = xref.fetchIfRef(cs[1]);\n          whitePoint = params.getArray(\"WhitePoint\");\n          blackPoint = params.getArray(\"BlackPoint\");\n          gamma = params.getArray(\"Gamma\");\n          const matrix = params.getArray(\"Matrix\");\n          return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n\n        case \"ICCBased\":\n          const stream = xref.fetchIfRef(cs[1]);\n          const dict = stream.dict;\n          numComps = dict.get(\"N\");\n          const alt = dict.get(\"Alternate\");\n\n          if (alt) {\n            const altCS = this._parse(alt, xref, resources, pdfFunctionFactory);\n\n            if (altCS.numComps === numComps) {\n              return altCS;\n            }\n\n            (0, _util.warn)(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n          }\n\n          if (numComps === 1) {\n            return this.singletons.gray;\n          } else if (numComps === 3) {\n            return this.singletons.rgb;\n          } else if (numComps === 4) {\n            return this.singletons.cmyk;\n          }\n\n          break;\n\n        case \"Pattern\":\n          baseCS = cs[1] || null;\n\n          if (baseCS) {\n            baseCS = this._parse(baseCS, xref, resources, pdfFunctionFactory);\n          }\n\n          return new PatternCS(baseCS);\n\n        case \"I\":\n        case \"Indexed\":\n          baseCS = this._parse(cs[1], xref, resources, pdfFunctionFactory);\n          const hiVal = xref.fetchIfRef(cs[2]) + 1;\n          const lookup = xref.fetchIfRef(cs[3]);\n          return new IndexedCS(baseCS, hiVal, lookup);\n\n        case \"Separation\":\n        case \"DeviceN\":\n          const name = xref.fetchIfRef(cs[1]);\n          numComps = Array.isArray(name) ? name.length : 1;\n          baseCS = this._parse(cs[2], xref, resources, pdfFunctionFactory);\n          const tintFn = pdfFunctionFactory.create(cs[3]);\n          return new AlternateCS(numComps, baseCS, tintFn);\n\n        case \"Lab\":\n          params = xref.fetchIfRef(cs[1]);\n          whitePoint = params.getArray(\"WhitePoint\");\n          blackPoint = params.getArray(\"BlackPoint\");\n          const range = params.getArray(\"Range\");\n          return new LabCS(whitePoint, blackPoint, range);\n\n        default:\n          throw new _util.FormatError(`Unimplemented ColorSpace object: ${mode}`);\n      }\n    }\n\n    throw new _util.FormatError(`Unrecognized ColorSpace object: ${cs}`);\n  }\n\n  static isDefaultDecode(decode, numComps) {\n    if (!Array.isArray(decode)) {\n      return true;\n    }\n\n    if (numComps * 2 !== decode.length) {\n      (0, _util.warn)(\"The decode map is not the correct length\");\n      return true;\n    }\n\n    for (let i = 0, ii = decode.length; i < ii; i += 2) {\n      if (decode[i] !== 0 || decode[i + 1] !== 1) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  static get singletons() {\n    return (0, _util.shadow)(this, \"singletons\", {\n      get gray() {\n        return (0, _util.shadow)(this, \"gray\", new DeviceGrayCS());\n      },\n\n      get rgb() {\n        return (0, _util.shadow)(this, \"rgb\", new DeviceRgbCS());\n      },\n\n      get cmyk() {\n        return (0, _util.shadow)(this, \"cmyk\", new DeviceCmykCS());\n      }\n\n    });\n  }\n\n}\n\nexports.ColorSpace = ColorSpace;\n\nclass AlternateCS extends ColorSpace {\n  constructor(numComps, base, tintFn) {\n    super(\"Alternate\", numComps);\n    this.base = base;\n    this.tintFn = tintFn;\n    this.tmpBuf = new Float32Array(base.numComps);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    const tmpBuf = this.tmpBuf;\n    this.tintFn(src, srcOffset, tmpBuf, 0);\n    this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    const tintFn = this.tintFn;\n    const base = this.base;\n    const scale = 1 / ((1 << bits) - 1);\n    const baseNumComps = base.numComps;\n    const usesZeroToOneRange = base.usesZeroToOneRange;\n    const isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n    let pos = isPassthrough ? destOffset : 0;\n    const baseBuf = isPassthrough ? dest : new Uint8ClampedArray(baseNumComps * count);\n    const numComps = this.numComps;\n    const scaled = new Float32Array(numComps);\n    const tinted = new Float32Array(baseNumComps);\n    let i, j;\n\n    for (i = 0; i < count; i++) {\n      for (j = 0; j < numComps; j++) {\n        scaled[j] = src[srcOffset++] * scale;\n      }\n\n      tintFn(scaled, 0, tinted, 0);\n\n      if (usesZeroToOneRange) {\n        for (j = 0; j < baseNumComps; j++) {\n          baseBuf[pos++] = tinted[j] * 255;\n        }\n      } else {\n        base.getRgbItem(tinted, 0, baseBuf, pos);\n        pos += baseNumComps;\n      }\n    }\n\n    if (!isPassthrough) {\n      base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01);\n  }\n\n}\n\nclass PatternCS extends ColorSpace {\n  constructor(baseCS) {\n    super(\"Pattern\", null);\n    this.base = baseCS;\n  }\n\n  isDefaultDecode(decodeMap, bpc) {\n    (0, _util.unreachable)(\"Should not call PatternCS.isDefaultDecode\");\n  }\n\n}\n\nclass IndexedCS extends ColorSpace {\n  constructor(base, highVal, lookup) {\n    super(\"Indexed\", 1);\n    this.base = base;\n    this.highVal = highVal;\n    const length = base.numComps * highVal;\n    this.lookup = new Uint8Array(length);\n\n    if (lookup instanceof _base_stream.BaseStream) {\n      const bytes = lookup.getBytes(length);\n      this.lookup.set(bytes);\n    } else if (typeof lookup === \"string\") {\n      for (let i = 0; i < length; ++i) {\n        this.lookup[i] = lookup.charCodeAt(i) & 0xff;\n      }\n    } else {\n      throw new _util.FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`);\n    }\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    const numComps = this.base.numComps;\n    const start = src[srcOffset] * numComps;\n    this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    const base = this.base;\n    const numComps = base.numComps;\n    const outputDelta = base.getOutputLength(numComps, alpha01);\n    const lookup = this.lookup;\n\n    for (let i = 0; i < count; ++i) {\n      const lookupPos = src[srcOffset++] * numComps;\n      base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n      destOffset += outputDelta;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n  }\n\n  isDefaultDecode(decodeMap, bpc) {\n    if (!Array.isArray(decodeMap)) {\n      return true;\n    }\n\n    if (decodeMap.length !== 2) {\n      (0, _util.warn)(\"Decode map length is not correct\");\n      return true;\n    }\n\n    if (!Number.isInteger(bpc) || bpc < 1) {\n      (0, _util.warn)(\"Bits per component is not correct\");\n      return true;\n    }\n\n    return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1;\n  }\n\n}\n\nclass DeviceGrayCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceGray\", 1);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    const c = src[srcOffset] * 255;\n    dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    const scale = 255 / ((1 << bits) - 1);\n    let j = srcOffset,\n        q = destOffset;\n\n    for (let i = 0; i < count; ++i) {\n      const c = scale * src[j++];\n      dest[q++] = c;\n      dest[q++] = c;\n      dest[q++] = c;\n      q += alpha01;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return inputLength * (3 + alpha01);\n  }\n\n}\n\nclass DeviceRgbCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceRGB\", 3);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    dest[destOffset] = src[srcOffset] * 255;\n    dest[destOffset + 1] = src[srcOffset + 1] * 255;\n    dest[destOffset + 2] = src[srcOffset + 2] * 255;\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (bits === 8 && alpha01 === 0) {\n      dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n      return;\n    }\n\n    const scale = 255 / ((1 << bits) - 1);\n    let j = srcOffset,\n        q = destOffset;\n\n    for (let i = 0; i < count; ++i) {\n      dest[q++] = scale * src[j++];\n      dest[q++] = scale * src[j++];\n      dest[q++] = scale * src[j++];\n      q += alpha01;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return inputLength * (3 + alpha01) / 3 | 0;\n  }\n\n  isPassthrough(bits) {\n    return bits === 8;\n  }\n\n}\n\nconst DeviceCmykCS = function DeviceCmykCSClosure() {\n  function convertToRgb(src, srcOffset, srcScale, dest, destOffset) {\n    const c = src[srcOffset] * srcScale;\n    const m = src[srcOffset + 1] * srcScale;\n    const y = src[srcOffset + 2] * srcScale;\n    const k = src[srcOffset + 3] * srcScale;\n    dest[destOffset] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k + -285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y + -17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) + k * (-21.86122147463605 * k - 189.48180835922747);\n    dest[destOffset + 1] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k + -79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + k * (-20.737325471181034 * k - 187.80453709719578);\n    dest[destOffset + 2] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367);\n  }\n\n  class DeviceCmykCS extends ColorSpace {\n    constructor() {\n      super(\"DeviceCMYK\", 4);\n    }\n\n    getRgbItem(src, srcOffset, dest, destOffset) {\n      convertToRgb(src, srcOffset, 1, dest, destOffset);\n    }\n\n    getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      const scale = 1 / ((1 << bits) - 1);\n\n      for (let i = 0; i < count; i++) {\n        convertToRgb(src, srcOffset, scale, dest, destOffset);\n        srcOffset += 4;\n        destOffset += 3 + alpha01;\n      }\n    }\n\n    getOutputLength(inputLength, alpha01) {\n      return inputLength / 4 * (3 + alpha01) | 0;\n    }\n\n  }\n\n  return DeviceCmykCS;\n}();\n\nconst CalGrayCS = function CalGrayCSClosure() {\n  function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n    const A = src[srcOffset] * scale;\n    const AG = A ** cs.G;\n    const L = cs.YW * AG;\n    const val = Math.max(295.8 * L ** 0.3333333333333333 - 40.8, 0);\n    dest[destOffset] = val;\n    dest[destOffset + 1] = val;\n    dest[destOffset + 2] = val;\n  }\n\n  class CalGrayCS extends ColorSpace {\n    constructor(whitePoint, blackPoint, gamma) {\n      super(\"CalGray\", 1);\n\n      if (!whitePoint) {\n        throw new _util.FormatError(\"WhitePoint missing - required for color space CalGray\");\n      }\n\n      blackPoint = blackPoint || [0, 0, 0];\n      gamma = gamma || 1;\n      this.XW = whitePoint[0];\n      this.YW = whitePoint[1];\n      this.ZW = whitePoint[2];\n      this.XB = blackPoint[0];\n      this.YB = blackPoint[1];\n      this.ZB = blackPoint[2];\n      this.G = gamma;\n\n      if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n        throw new _util.FormatError(`Invalid WhitePoint components for ${this.name}` + \", no fallback available\");\n      }\n\n      if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n        (0, _util.info)(`Invalid BlackPoint for ${this.name}, falling back to default.`);\n        this.XB = this.YB = this.ZB = 0;\n      }\n\n      if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n        (0, _util.warn)(`${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` + `ZB: ${this.ZB}, only default values are supported.`);\n      }\n\n      if (this.G < 1) {\n        (0, _util.info)(`Invalid Gamma: ${this.G} for ${this.name}, ` + \"falling back to default.\");\n        this.G = 1;\n      }\n    }\n\n    getRgbItem(src, srcOffset, dest, destOffset) {\n      convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n    }\n\n    getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      const scale = 1 / ((1 << bits) - 1);\n\n      for (let i = 0; i < count; ++i) {\n        convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n        srcOffset += 1;\n        destOffset += 3 + alpha01;\n      }\n    }\n\n    getOutputLength(inputLength, alpha01) {\n      return inputLength * (3 + alpha01);\n    }\n\n  }\n\n  return CalGrayCS;\n}();\n\nconst CalRGBCS = function CalRGBCSClosure() {\n  const BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]);\n  const BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]);\n  const SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252]);\n  const FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n  const tempNormalizeMatrix = new Float32Array(3);\n  const tempConvertMatrix1 = new Float32Array(3);\n  const tempConvertMatrix2 = new Float32Array(3);\n  const DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;\n\n  function matrixProduct(a, b, result) {\n    result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n    result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n    result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n  }\n\n  function convertToFlat(sourceWhitePoint, LMS, result) {\n    result[0] = LMS[0] * 1 / sourceWhitePoint[0];\n    result[1] = LMS[1] * 1 / sourceWhitePoint[1];\n    result[2] = LMS[2] * 1 / sourceWhitePoint[2];\n  }\n\n  function convertToD65(sourceWhitePoint, LMS, result) {\n    const D65X = 0.95047;\n    const D65Y = 1;\n    const D65Z = 1.08883;\n    result[0] = LMS[0] * D65X / sourceWhitePoint[0];\n    result[1] = LMS[1] * D65Y / sourceWhitePoint[1];\n    result[2] = LMS[2] * D65Z / sourceWhitePoint[2];\n  }\n\n  function sRGBTransferFunction(color) {\n    if (color <= 0.0031308) {\n      return adjustToRange(0, 1, 12.92 * color);\n    }\n\n    if (color >= 0.99554525) {\n      return 1;\n    }\n\n    return adjustToRange(0, 1, (1 + 0.055) * color ** (1 / 2.4) - 0.055);\n  }\n\n  function adjustToRange(min, max, value) {\n    return Math.max(min, Math.min(max, value));\n  }\n\n  function decodeL(L) {\n    if (L < 0) {\n      return -decodeL(-L);\n    }\n\n    if (L > 8.0) {\n      return ((L + 16) / 116) ** 3;\n    }\n\n    return L * DECODE_L_CONSTANT;\n  }\n\n  function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n    if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) {\n      result[0] = XYZ_Flat[0];\n      result[1] = XYZ_Flat[1];\n      result[2] = XYZ_Flat[2];\n      return;\n    }\n\n    const zeroDecodeL = decodeL(0);\n    const X_DST = zeroDecodeL;\n    const X_SRC = decodeL(sourceBlackPoint[0]);\n    const Y_DST = zeroDecodeL;\n    const Y_SRC = decodeL(sourceBlackPoint[1]);\n    const Z_DST = zeroDecodeL;\n    const Z_SRC = decodeL(sourceBlackPoint[2]);\n    const X_Scale = (1 - X_DST) / (1 - X_SRC);\n    const X_Offset = 1 - X_Scale;\n    const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n    const Y_Offset = 1 - Y_Scale;\n    const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n    const Z_Offset = 1 - Z_Scale;\n    result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n    result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n    result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n  }\n\n  function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n    if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n      result[0] = XYZ_In[0];\n      result[1] = XYZ_In[1];\n      result[2] = XYZ_In[2];\n      return;\n    }\n\n    const LMS = result;\n    matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n    const LMS_Flat = tempNormalizeMatrix;\n    convertToFlat(sourceWhitePoint, LMS, LMS_Flat);\n    matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);\n  }\n\n  function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n    const LMS = result;\n    matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n    const LMS_D65 = tempNormalizeMatrix;\n    convertToD65(sourceWhitePoint, LMS, LMS_D65);\n    matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n  }\n\n  function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n    const A = adjustToRange(0, 1, src[srcOffset] * scale);\n    const B = adjustToRange(0, 1, src[srcOffset + 1] * scale);\n    const C = adjustToRange(0, 1, src[srcOffset + 2] * scale);\n    const AGR = A === 1 ? 1 : A ** cs.GR;\n    const BGG = B === 1 ? 1 : B ** cs.GG;\n    const CGB = C === 1 ? 1 : C ** cs.GB;\n    const X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB;\n    const Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB;\n    const Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB;\n    const XYZ = tempConvertMatrix1;\n    XYZ[0] = X;\n    XYZ[1] = Y;\n    XYZ[2] = Z;\n    const XYZ_Flat = tempConvertMatrix2;\n    normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat);\n    const XYZ_Black = tempConvertMatrix1;\n    compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black);\n    const XYZ_D65 = tempConvertMatrix2;\n    normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n    const SRGB = tempConvertMatrix1;\n    matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n    dest[destOffset] = sRGBTransferFunction(SRGB[0]) * 255;\n    dest[destOffset + 1] = sRGBTransferFunction(SRGB[1]) * 255;\n    dest[destOffset + 2] = sRGBTransferFunction(SRGB[2]) * 255;\n  }\n\n  class CalRGBCS extends ColorSpace {\n    constructor(whitePoint, blackPoint, gamma, matrix) {\n      super(\"CalRGB\", 3);\n\n      if (!whitePoint) {\n        throw new _util.FormatError(\"WhitePoint missing - required for color space CalRGB\");\n      }\n\n      blackPoint = blackPoint || new Float32Array(3);\n      gamma = gamma || new Float32Array([1, 1, 1]);\n      matrix = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n      const XW = whitePoint[0];\n      const YW = whitePoint[1];\n      const ZW = whitePoint[2];\n      this.whitePoint = whitePoint;\n      const XB = blackPoint[0];\n      const YB = blackPoint[1];\n      const ZB = blackPoint[2];\n      this.blackPoint = blackPoint;\n      this.GR = gamma[0];\n      this.GG = gamma[1];\n      this.GB = gamma[2];\n      this.MXA = matrix[0];\n      this.MYA = matrix[1];\n      this.MZA = matrix[2];\n      this.MXB = matrix[3];\n      this.MYB = matrix[4];\n      this.MZB = matrix[5];\n      this.MXC = matrix[6];\n      this.MYC = matrix[7];\n      this.MZC = matrix[8];\n\n      if (XW < 0 || ZW < 0 || YW !== 1) {\n        throw new _util.FormatError(`Invalid WhitePoint components for ${this.name}` + \", no fallback available\");\n      }\n\n      if (XB < 0 || YB < 0 || ZB < 0) {\n        (0, _util.info)(`Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` + \"falling back to default.\");\n        this.blackPoint = new Float32Array(3);\n      }\n\n      if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n        (0, _util.info)(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` + `${this.name}, falling back to default.`);\n        this.GR = this.GG = this.GB = 1;\n      }\n    }\n\n    getRgbItem(src, srcOffset, dest, destOffset) {\n      convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n    }\n\n    getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      const scale = 1 / ((1 << bits) - 1);\n\n      for (let i = 0; i < count; ++i) {\n        convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n        srcOffset += 3;\n        destOffset += 3 + alpha01;\n      }\n    }\n\n    getOutputLength(inputLength, alpha01) {\n      return inputLength * (3 + alpha01) / 3 | 0;\n    }\n\n  }\n\n  return CalRGBCS;\n}();\n\nconst LabCS = function LabCSClosure() {\n  function fn_g(x) {\n    let result;\n\n    if (x >= 6 / 29) {\n      result = x ** 3;\n    } else {\n      result = 108 / 841 * (x - 4 / 29);\n    }\n\n    return result;\n  }\n\n  function decode(value, high1, low2, high2) {\n    return low2 + value * (high2 - low2) / high1;\n  }\n\n  function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n    let Ls = src[srcOffset];\n    let as = src[srcOffset + 1];\n    let bs = src[srcOffset + 2];\n\n    if (maxVal !== false) {\n      Ls = decode(Ls, maxVal, 0, 100);\n      as = decode(as, maxVal, cs.amin, cs.amax);\n      bs = decode(bs, maxVal, cs.bmin, cs.bmax);\n    }\n\n    if (as > cs.amax) {\n      as = cs.amax;\n    } else if (as < cs.amin) {\n      as = cs.amin;\n    }\n\n    if (bs > cs.bmax) {\n      bs = cs.bmax;\n    } else if (bs < cs.bmin) {\n      bs = cs.bmin;\n    }\n\n    const M = (Ls + 16) / 116;\n    const L = M + as / 500;\n    const N = M - bs / 200;\n    const X = cs.XW * fn_g(L);\n    const Y = cs.YW * fn_g(M);\n    const Z = cs.ZW * fn_g(N);\n    let r, g, b;\n\n    if (cs.ZW < 1) {\n      r = X * 3.1339 + Y * -1.617 + Z * -0.4906;\n      g = X * -0.9785 + Y * 1.916 + Z * 0.0333;\n      b = X * 0.072 + Y * -0.229 + Z * 1.4057;\n    } else {\n      r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n      g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n      b = X * 0.0557 + Y * -0.204 + Z * 1.057;\n    }\n\n    dest[destOffset] = Math.sqrt(r) * 255;\n    dest[destOffset + 1] = Math.sqrt(g) * 255;\n    dest[destOffset + 2] = Math.sqrt(b) * 255;\n  }\n\n  class LabCS extends ColorSpace {\n    constructor(whitePoint, blackPoint, range) {\n      super(\"Lab\", 3);\n\n      if (!whitePoint) {\n        throw new _util.FormatError(\"WhitePoint missing - required for color space Lab\");\n      }\n\n      blackPoint = blackPoint || [0, 0, 0];\n      range = range || [-100, 100, -100, 100];\n      this.XW = whitePoint[0];\n      this.YW = whitePoint[1];\n      this.ZW = whitePoint[2];\n      this.amin = range[0];\n      this.amax = range[1];\n      this.bmin = range[2];\n      this.bmax = range[3];\n      this.XB = blackPoint[0];\n      this.YB = blackPoint[1];\n      this.ZB = blackPoint[2];\n\n      if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n        throw new _util.FormatError(\"Invalid WhitePoint components, no fallback available\");\n      }\n\n      if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n        (0, _util.info)(\"Invalid BlackPoint, falling back to default\");\n        this.XB = this.YB = this.ZB = 0;\n      }\n\n      if (this.amin > this.amax || this.bmin > this.bmax) {\n        (0, _util.info)(\"Invalid Range, falling back to defaults\");\n        this.amin = -100;\n        this.amax = 100;\n        this.bmin = -100;\n        this.bmax = 100;\n      }\n    }\n\n    getRgbItem(src, srcOffset, dest, destOffset) {\n      convertToRgb(this, src, srcOffset, false, dest, destOffset);\n    }\n\n    getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      const maxVal = (1 << bits) - 1;\n\n      for (let i = 0; i < count; i++) {\n        convertToRgb(this, src, srcOffset, maxVal, dest, destOffset);\n        srcOffset += 3;\n        destOffset += 3 + alpha01;\n      }\n    }\n\n    getOutputLength(inputLength, alpha01) {\n      return inputLength * (3 + alpha01) / 3 | 0;\n    }\n\n    isDefaultDecode(decodeMap, bpc) {\n      return true;\n    }\n\n    get usesZeroToOneRange() {\n      return (0, _util.shadow)(this, \"usesZeroToOneRange\", false);\n    }\n\n  }\n\n  return LabCS;\n}();\n\n/***/ }),\n/* 140 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PartialEvaluator = exports.EvaluatorPreprocessor = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cmap = __w_pdfjs_require__(141);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _fonts = __w_pdfjs_require__(159);\n\nvar _fonts_utils = __w_pdfjs_require__(163);\n\nvar _encodings = __w_pdfjs_require__(162);\n\nvar _standard_fonts = __w_pdfjs_require__(166);\n\nvar _unicode = __w_pdfjs_require__(165);\n\nvar _pattern = __w_pdfjs_require__(175);\n\nvar _xfa_fonts = __w_pdfjs_require__(176);\n\nvar _to_unicode_map = __w_pdfjs_require__(167);\n\nvar _function = __w_pdfjs_require__(182);\n\nvar _parser = __w_pdfjs_require__(142);\n\nvar _image_utils = __w_pdfjs_require__(184);\n\nvar _stream = __w_pdfjs_require__(135);\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _bidi = __w_pdfjs_require__(185);\n\nvar _colorspace = __w_pdfjs_require__(139);\n\nvar _decode_stream = __w_pdfjs_require__(144);\n\nvar _glyphlist = __w_pdfjs_require__(164);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _metrics = __w_pdfjs_require__(170);\n\nvar _murmurhash = __w_pdfjs_require__(186);\n\nvar _operator_list = __w_pdfjs_require__(187);\n\nvar _image = __w_pdfjs_require__(188);\n\nconst DefaultPartialEvaluatorOptions = Object.freeze({\n  maxImageSize: -1,\n  disableFontFace: false,\n  ignoreErrors: false,\n  isEvalSupported: true,\n  fontExtraProperties: false,\n  useSystemFonts: true,\n  cMapUrl: null,\n  standardFontDataUrl: null\n});\nconst PatternType = {\n  TILING: 1,\n  SHADING: 2\n};\nconst TEXT_CHUNK_BATCH_SIZE = 10;\nconst deferred = Promise.resolve();\n\nfunction normalizeBlendMode(value) {\n  let parsingArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  if (Array.isArray(value)) {\n    for (let i = 0, ii = value.length; i < ii; i++) {\n      const maybeBM = normalizeBlendMode(value[i], true);\n\n      if (maybeBM) {\n        return maybeBM;\n      }\n    }\n\n    (0, _util.warn)(`Unsupported blend mode Array: ${value}`);\n    return \"source-over\";\n  }\n\n  if (!(value instanceof _primitives.Name)) {\n    if (parsingArray) {\n      return null;\n    }\n\n    return \"source-over\";\n  }\n\n  switch (value.name) {\n    case \"Normal\":\n    case \"Compatible\":\n      return \"source-over\";\n\n    case \"Multiply\":\n      return \"multiply\";\n\n    case \"Screen\":\n      return \"screen\";\n\n    case \"Overlay\":\n      return \"overlay\";\n\n    case \"Darken\":\n      return \"darken\";\n\n    case \"Lighten\":\n      return \"lighten\";\n\n    case \"ColorDodge\":\n      return \"color-dodge\";\n\n    case \"ColorBurn\":\n      return \"color-burn\";\n\n    case \"HardLight\":\n      return \"hard-light\";\n\n    case \"SoftLight\":\n      return \"soft-light\";\n\n    case \"Difference\":\n      return \"difference\";\n\n    case \"Exclusion\":\n      return \"exclusion\";\n\n    case \"Hue\":\n      return \"hue\";\n\n    case \"Saturation\":\n      return \"saturation\";\n\n    case \"Color\":\n      return \"color\";\n\n    case \"Luminosity\":\n      return \"luminosity\";\n  }\n\n  if (parsingArray) {\n    return null;\n  }\n\n  (0, _util.warn)(`Unsupported blend mode: ${value.name}`);\n  return \"source-over\";\n}\n\nfunction incrementCachedImageMaskCount(data) {\n  if (data.fn === _util.OPS.paintImageMaskXObject && data.args[0] && data.args[0].count > 0) {\n    data.args[0].count++;\n  }\n}\n\nclass TimeSlotManager {\n  static get TIME_SLOT_DURATION_MS() {\n    return (0, _util.shadow)(this, \"TIME_SLOT_DURATION_MS\", 20);\n  }\n\n  static get CHECK_TIME_EVERY() {\n    return (0, _util.shadow)(this, \"CHECK_TIME_EVERY\", 100);\n  }\n\n  constructor() {\n    this.reset();\n  }\n\n  check() {\n    if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) {\n      return false;\n    }\n\n    this.checked = 0;\n    return this.endTime <= Date.now();\n  }\n\n  reset() {\n    this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS;\n    this.checked = 0;\n  }\n\n}\n\nclass PartialEvaluator {\n  constructor(_ref) {\n    let {\n      xref,\n      handler,\n      pageIndex,\n      idFactory,\n      fontCache,\n      builtInCMapCache,\n      standardFontDataCache,\n      globalImageCache,\n      options = null\n    } = _ref;\n    this.xref = xref;\n    this.handler = handler;\n    this.pageIndex = pageIndex;\n    this.idFactory = idFactory;\n    this.fontCache = fontCache;\n    this.builtInCMapCache = builtInCMapCache;\n    this.standardFontDataCache = standardFontDataCache;\n    this.globalImageCache = globalImageCache;\n    this.options = options || DefaultPartialEvaluatorOptions;\n    this.parsingType3Font = false;\n    this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this);\n  }\n\n  get _pdfFunctionFactory() {\n    const pdfFunctionFactory = new _function.PDFFunctionFactory({\n      xref: this.xref,\n      isEvalSupported: this.options.isEvalSupported\n    });\n    return (0, _util.shadow)(this, \"_pdfFunctionFactory\", pdfFunctionFactory);\n  }\n\n  clone() {\n    let newOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    const newEvaluator = Object.create(this);\n    newEvaluator.options = Object.assign(Object.create(null), this.options, newOptions);\n    return newEvaluator;\n  }\n\n  hasBlendModes(resources, nonBlendModesSet) {\n    if (!(resources instanceof _primitives.Dict)) {\n      return false;\n    }\n\n    if (resources.objId && nonBlendModesSet.has(resources.objId)) {\n      return false;\n    }\n\n    const processed = new _primitives.RefSet(nonBlendModesSet);\n\n    if (resources.objId) {\n      processed.put(resources.objId);\n    }\n\n    const nodes = [resources],\n          xref = this.xref;\n\n    while (nodes.length) {\n      const node = nodes.shift();\n      const graphicStates = node.get(\"ExtGState\");\n\n      if (graphicStates instanceof _primitives.Dict) {\n        for (let graphicState of graphicStates.getRawValues()) {\n          if (graphicState instanceof _primitives.Ref) {\n            if (processed.has(graphicState)) {\n              continue;\n            }\n\n            try {\n              graphicState = xref.fetch(graphicState);\n            } catch (ex) {\n              processed.put(graphicState);\n              (0, _util.info)(`hasBlendModes - ignoring ExtGState: \"${ex}\".`);\n              continue;\n            }\n          }\n\n          if (!(graphicState instanceof _primitives.Dict)) {\n            continue;\n          }\n\n          if (graphicState.objId) {\n            processed.put(graphicState.objId);\n          }\n\n          const bm = graphicState.get(\"BM\");\n\n          if (bm instanceof _primitives.Name) {\n            if (bm.name !== \"Normal\") {\n              return true;\n            }\n\n            continue;\n          }\n\n          if (bm !== undefined && Array.isArray(bm)) {\n            for (const element of bm) {\n              if (element instanceof _primitives.Name && element.name !== \"Normal\") {\n                return true;\n              }\n            }\n          }\n        }\n      }\n\n      const xObjects = node.get(\"XObject\");\n\n      if (!(xObjects instanceof _primitives.Dict)) {\n        continue;\n      }\n\n      for (let xObject of xObjects.getRawValues()) {\n        if (xObject instanceof _primitives.Ref) {\n          if (processed.has(xObject)) {\n            continue;\n          }\n\n          try {\n            xObject = xref.fetch(xObject);\n          } catch (ex) {\n            processed.put(xObject);\n            (0, _util.info)(`hasBlendModes - ignoring XObject: \"${ex}\".`);\n            continue;\n          }\n        }\n\n        if (!(xObject instanceof _base_stream.BaseStream)) {\n          continue;\n        }\n\n        if (xObject.dict.objId) {\n          processed.put(xObject.dict.objId);\n        }\n\n        const xResources = xObject.dict.get(\"Resources\");\n\n        if (!(xResources instanceof _primitives.Dict)) {\n          continue;\n        }\n\n        if (xResources.objId && processed.has(xResources.objId)) {\n          continue;\n        }\n\n        nodes.push(xResources);\n\n        if (xResources.objId) {\n          processed.put(xResources.objId);\n        }\n      }\n    }\n\n    for (const ref of processed) {\n      nonBlendModesSet.put(ref);\n    }\n\n    return false;\n  }\n\n  async fetchBuiltInCMap(name) {\n    const cachedData = this.builtInCMapCache.get(name);\n\n    if (cachedData) {\n      return cachedData;\n    }\n\n    let data;\n\n    if (this.options.cMapUrl !== null) {\n      const url = `${this.options.cMapUrl}${name}.bcmap`;\n      const response = await fetch(url);\n\n      if (!response.ok) {\n        throw new Error(`fetchBuiltInCMap: failed to fetch file \"${url}\" with \"${response.statusText}\".`);\n      }\n\n      data = {\n        cMapData: new Uint8Array(await response.arrayBuffer()),\n        compressionType: _util.CMapCompressionType.BINARY\n      };\n    } else {\n      data = await this.handler.sendWithPromise(\"FetchBuiltInCMap\", {\n        name\n      });\n    }\n\n    if (data.compressionType !== _util.CMapCompressionType.NONE) {\n      this.builtInCMapCache.set(name, data);\n    }\n\n    return data;\n  }\n\n  async fetchStandardFontData(name) {\n    const cachedData = this.standardFontDataCache.get(name);\n\n    if (cachedData) {\n      return new _stream.Stream(cachedData);\n    }\n\n    if (this.options.useSystemFonts && name !== \"Symbol\" && name !== \"ZapfDingbats\") {\n      return null;\n    }\n\n    const standardFontNameToFileName = (0, _standard_fonts.getFontNameToFileMap)(),\n          filename = standardFontNameToFileName[name];\n    let data;\n\n    if (this.options.standardFontDataUrl !== null) {\n      const url = `${this.options.standardFontDataUrl}${filename}`;\n      const response = await fetch(url);\n\n      if (!response.ok) {\n        (0, _util.warn)(`fetchStandardFontData: failed to fetch file \"${url}\" with \"${response.statusText}\".`);\n      } else {\n        data = await response.arrayBuffer();\n      }\n    } else {\n      try {\n        data = await this.handler.sendWithPromise(\"FetchStandardFontData\", {\n          filename\n        });\n      } catch (e) {\n        (0, _util.warn)(`fetchStandardFontData: failed to fetch file \"${filename}\" with \"${e}\".`);\n      }\n    }\n\n    if (!data) {\n      return null;\n    }\n\n    this.standardFontDataCache.set(name, data);\n    return new _stream.Stream(data);\n  }\n\n  async buildFormXObject(resources, xobj, smask, operatorList, task, initialState, localColorSpaceCache) {\n    const dict = xobj.dict;\n    const matrix = dict.getArray(\"Matrix\");\n    let bbox = dict.getArray(\"BBox\");\n\n    if (Array.isArray(bbox) && bbox.length === 4) {\n      bbox = _util.Util.normalizeRect(bbox);\n    } else {\n      bbox = null;\n    }\n\n    let optionalContent, groupOptions;\n\n    if (dict.has(\"OC\")) {\n      optionalContent = await this.parseMarkedContentProps(dict.get(\"OC\"), resources);\n    }\n\n    if (optionalContent !== undefined) {\n      operatorList.addOp(_util.OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n\n    const group = dict.get(\"Group\");\n\n    if (group) {\n      groupOptions = {\n        matrix,\n        bbox,\n        smask,\n        isolated: false,\n        knockout: false\n      };\n      const groupSubtype = group.get(\"S\");\n      let colorSpace = null;\n\n      if ((0, _primitives.isName)(groupSubtype, \"Transparency\")) {\n        groupOptions.isolated = group.get(\"I\") || false;\n        groupOptions.knockout = group.get(\"K\") || false;\n\n        if (group.has(\"CS\")) {\n          const cs = group.getRaw(\"CS\");\n\n          const cachedColorSpace = _colorspace.ColorSpace.getCached(cs, this.xref, localColorSpaceCache);\n\n          if (cachedColorSpace) {\n            colorSpace = cachedColorSpace;\n          } else {\n            colorSpace = await this.parseColorSpace({\n              cs,\n              resources,\n              localColorSpaceCache\n            });\n          }\n        }\n      }\n\n      if (smask && smask.backdrop) {\n        colorSpace = colorSpace || _colorspace.ColorSpace.singletons.rgb;\n        smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n      }\n\n      operatorList.addOp(_util.OPS.beginGroup, [groupOptions]);\n    }\n\n    const args = group ? [matrix, null] : [matrix, bbox];\n    operatorList.addOp(_util.OPS.paintFormXObjectBegin, args);\n    return this.getOperatorList({\n      stream: xobj,\n      task,\n      resources: dict.get(\"Resources\") || resources,\n      operatorList,\n      initialState\n    }).then(function () {\n      operatorList.addOp(_util.OPS.paintFormXObjectEnd, []);\n\n      if (group) {\n        operatorList.addOp(_util.OPS.endGroup, [groupOptions]);\n      }\n\n      if (optionalContent !== undefined) {\n        operatorList.addOp(_util.OPS.endMarkedContent, []);\n      }\n    });\n  }\n\n  _sendImgData(objId, imgData) {\n    let cacheGlobally = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    const transfers = imgData ? [imgData.bitmap || imgData.data.buffer] : null;\n\n    if (this.parsingType3Font || cacheGlobally) {\n      return this.handler.send(\"commonobj\", [objId, \"Image\", imgData], transfers);\n    }\n\n    return this.handler.send(\"obj\", [objId, this.pageIndex, \"Image\", imgData], transfers);\n  }\n\n  async buildPaintImageXObject(_ref2) {\n    let {\n      resources,\n      image,\n      isInline = false,\n      operatorList,\n      cacheKey,\n      localImageCache,\n      localColorSpaceCache\n    } = _ref2;\n    const dict = image.dict;\n    const imageRef = dict.objId;\n    const w = dict.get(\"W\", \"Width\");\n    const h = dict.get(\"H\", \"Height\");\n\n    if (!(w && typeof w === \"number\") || !(h && typeof h === \"number\")) {\n      (0, _util.warn)(\"Image dimensions are missing, or not numbers.\");\n      return;\n    }\n\n    const maxImageSize = this.options.maxImageSize;\n\n    if (maxImageSize !== -1 && w * h > maxImageSize) {\n      const msg = \"Image exceeded maximum allowed size and was removed.\";\n\n      if (this.options.ignoreErrors) {\n        (0, _util.warn)(msg);\n        return;\n      }\n\n      throw new Error(msg);\n    }\n\n    let optionalContent;\n\n    if (dict.has(\"OC\")) {\n      optionalContent = await this.parseMarkedContentProps(dict.get(\"OC\"), resources);\n    }\n\n    const imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n    let imgData, args;\n\n    if (imageMask) {\n      const interpolate = dict.get(\"I\", \"Interpolate\");\n      const bitStrideLength = w + 7 >> 3;\n      const imgArray = image.getBytes(bitStrideLength * h);\n      const decode = dict.getArray(\"D\", \"Decode\");\n\n      if (this.parsingType3Font) {\n        imgData = _image.PDFImage.createRawMask({\n          imgArray,\n          width: w,\n          height: h,\n          imageIsFromDecodeStream: image instanceof _decode_stream.DecodeStream,\n          inverseDecode: !!decode && decode[0] > 0,\n          interpolate\n        });\n        imgData.cached = !!cacheKey;\n        args = [imgData];\n        operatorList.addImageOps(_util.OPS.paintImageMaskXObject, args, optionalContent);\n\n        if (cacheKey) {\n          localImageCache.set(cacheKey, imageRef, {\n            fn: _util.OPS.paintImageMaskXObject,\n            args,\n            optionalContent\n          });\n        }\n\n        return;\n      }\n\n      imgData = _image.PDFImage.createMask({\n        imgArray,\n        width: w,\n        height: h,\n        imageIsFromDecodeStream: image instanceof _decode_stream.DecodeStream,\n        inverseDecode: !!decode && decode[0] > 0,\n        interpolate\n      });\n\n      if (imgData.isSingleOpaquePixel) {\n        operatorList.addImageOps(_util.OPS.paintSolidColorImageMask, [], optionalContent);\n\n        if (cacheKey) {\n          localImageCache.set(cacheKey, imageRef, {\n            fn: _util.OPS.paintSolidColorImageMask,\n            args: [],\n            optionalContent\n          });\n        }\n\n        return;\n      }\n\n      const objId = `mask_${this.idFactory.createObjId()}`;\n      operatorList.addDependency(objId);\n\n      this._sendImgData(objId, imgData);\n\n      args = [{\n        data: objId,\n        width: imgData.width,\n        height: imgData.height,\n        interpolate: imgData.interpolate,\n        count: 1\n      }];\n      operatorList.addImageOps(_util.OPS.paintImageMaskXObject, args, optionalContent);\n\n      if (cacheKey) {\n        localImageCache.set(cacheKey, imageRef, {\n          fn: _util.OPS.paintImageMaskXObject,\n          args,\n          optionalContent\n        });\n      }\n\n      return;\n    }\n\n    const softMask = dict.get(\"SM\", \"SMask\") || false;\n    const mask = dict.get(\"Mask\") || false;\n    const SMALL_IMAGE_DIMENSIONS = 200;\n\n    if (isInline && !softMask && !mask && w + h < SMALL_IMAGE_DIMENSIONS) {\n      const imageObj = new _image.PDFImage({\n        xref: this.xref,\n        res: resources,\n        image,\n        isInline,\n        pdfFunctionFactory: this._pdfFunctionFactory,\n        localColorSpaceCache\n      });\n      imgData = imageObj.createImageData(true);\n      operatorList.addImageOps(_util.OPS.paintInlineImageXObject, [imgData], optionalContent);\n      return;\n    }\n\n    let objId = `img_${this.idFactory.createObjId()}`,\n        cacheGlobally = false;\n\n    if (this.parsingType3Font) {\n      objId = `${this.idFactory.getDocId()}_type3_${objId}`;\n    } else if (imageRef) {\n      cacheGlobally = this.globalImageCache.shouldCache(imageRef, this.pageIndex);\n\n      if (cacheGlobally) {\n        objId = `${this.idFactory.getDocId()}_${objId}`;\n      }\n    }\n\n    operatorList.addDependency(objId);\n    args = [objId, w, h];\n\n    _image.PDFImage.buildImage({\n      xref: this.xref,\n      res: resources,\n      image,\n      isInline,\n      pdfFunctionFactory: this._pdfFunctionFactory,\n      localColorSpaceCache\n    }).then(imageObj => {\n      imgData = imageObj.createImageData(false);\n\n      if (cacheKey && imageRef && cacheGlobally) {\n        this.globalImageCache.addByteSize(imageRef, imgData.data.length);\n      }\n\n      return this._sendImgData(objId, imgData, cacheGlobally);\n    }).catch(reason => {\n      (0, _util.warn)(`Unable to decode image \"${objId}\": \"${reason}\".`);\n      return this._sendImgData(objId, null, cacheGlobally);\n    });\n\n    operatorList.addImageOps(_util.OPS.paintImageXObject, args, optionalContent);\n\n    if (cacheKey) {\n      localImageCache.set(cacheKey, imageRef, {\n        fn: _util.OPS.paintImageXObject,\n        args,\n        optionalContent\n      });\n\n      if (imageRef) {\n        (0, _util.assert)(!isInline, \"Cannot cache an inline image globally.\");\n        this.globalImageCache.addPageIndex(imageRef, this.pageIndex);\n\n        if (cacheGlobally) {\n          this.globalImageCache.setData(imageRef, {\n            objId,\n            fn: _util.OPS.paintImageXObject,\n            args,\n            optionalContent,\n            byteSize: 0\n          });\n        }\n      }\n    }\n  }\n\n  handleSMask(smask, resources, operatorList, task, stateManager, localColorSpaceCache) {\n    const smaskContent = smask.get(\"G\");\n    const smaskOptions = {\n      subtype: smask.get(\"S\").name,\n      backdrop: smask.get(\"BC\")\n    };\n    const transferObj = smask.get(\"TR\");\n\n    if ((0, _function.isPDFFunction)(transferObj)) {\n      const transferFn = this._pdfFunctionFactory.create(transferObj);\n\n      const transferMap = new Uint8Array(256);\n      const tmp = new Float32Array(1);\n\n      for (let i = 0; i < 256; i++) {\n        tmp[0] = i / 255;\n        transferFn(tmp, 0, tmp, 0);\n        transferMap[i] = tmp[0] * 255 | 0;\n      }\n\n      smaskOptions.transferMap = transferMap;\n    }\n\n    return this.buildFormXObject(resources, smaskContent, smaskOptions, operatorList, task, stateManager.state.clone(), localColorSpaceCache);\n  }\n\n  handleTransferFunction(tr) {\n    let transferArray;\n\n    if (Array.isArray(tr)) {\n      transferArray = tr;\n    } else if ((0, _function.isPDFFunction)(tr)) {\n      transferArray = [tr];\n    } else {\n      return null;\n    }\n\n    const transferMaps = [];\n    let numFns = 0,\n        numEffectfulFns = 0;\n\n    for (const entry of transferArray) {\n      const transferObj = this.xref.fetchIfRef(entry);\n      numFns++;\n\n      if ((0, _primitives.isName)(transferObj, \"Identity\")) {\n        transferMaps.push(null);\n        continue;\n      } else if (!(0, _function.isPDFFunction)(transferObj)) {\n        return null;\n      }\n\n      const transferFn = this._pdfFunctionFactory.create(transferObj);\n\n      const transferMap = new Uint8Array(256),\n            tmp = new Float32Array(1);\n\n      for (let j = 0; j < 256; j++) {\n        tmp[0] = j / 255;\n        transferFn(tmp, 0, tmp, 0);\n        transferMap[j] = tmp[0] * 255 | 0;\n      }\n\n      transferMaps.push(transferMap);\n      numEffectfulFns++;\n    }\n\n    if (!(numFns === 1 || numFns === 4)) {\n      return null;\n    }\n\n    if (numEffectfulFns === 0) {\n      return null;\n    }\n\n    return transferMaps;\n  }\n\n  handleTilingType(fn, color, resources, pattern, patternDict, operatorList, task, localTilingPatternCache) {\n    const tilingOpList = new _operator_list.OperatorList();\n\n    const patternResources = _primitives.Dict.merge({\n      xref: this.xref,\n      dictArray: [patternDict.get(\"Resources\"), resources]\n    });\n\n    return this.getOperatorList({\n      stream: pattern,\n      task,\n      resources: patternResources,\n      operatorList: tilingOpList\n    }).then(function () {\n      const operatorListIR = tilingOpList.getIR();\n      const tilingPatternIR = (0, _pattern.getTilingPatternIR)(operatorListIR, patternDict, color);\n      operatorList.addDependencies(tilingOpList.dependencies);\n      operatorList.addOp(fn, tilingPatternIR);\n\n      if (patternDict.objId) {\n        localTilingPatternCache.set(null, patternDict.objId, {\n          operatorListIR,\n          dict: patternDict\n        });\n      }\n    }).catch(reason => {\n      if (reason instanceof _util.AbortException) {\n        return;\n      }\n\n      if (this.options.ignoreErrors) {\n        this.handler.send(\"UnsupportedFeature\", {\n          featureId: _util.UNSUPPORTED_FEATURES.errorTilingPattern\n        });\n        (0, _util.warn)(`handleTilingType - ignoring pattern: \"${reason}\".`);\n        return;\n      }\n\n      throw reason;\n    });\n  }\n\n  handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) {\n    let fallbackFontDict = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;\n    let cssFontInfo = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : null;\n    const fontName = fontArgs && fontArgs[0] instanceof _primitives.Name ? fontArgs[0].name : null;\n    return this.loadFont(fontName, fontRef, resources, fallbackFontDict, cssFontInfo).then(translated => {\n      if (!translated.font.isType3Font) {\n        return translated;\n      }\n\n      return translated.loadType3Data(this, resources, task).then(function () {\n        operatorList.addDependencies(translated.type3Dependencies);\n        return translated;\n      }).catch(reason => {\n        this.handler.send(\"UnsupportedFeature\", {\n          featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadType3\n        });\n        return new TranslatedFont({\n          loadedName: \"g_font_error\",\n          font: new _fonts.ErrorFont(`Type3 font load error: ${reason}`),\n          dict: translated.font,\n          evaluatorOptions: this.options\n        });\n      });\n    }).then(translated => {\n      state.font = translated.font;\n      translated.send(this.handler);\n      return translated.loadedName;\n    });\n  }\n\n  handleText(chars, state) {\n    const font = state.font;\n    const glyphs = font.charsToGlyphs(chars);\n\n    if (font.data) {\n      const isAddToPathSet = !!(state.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n\n      if (isAddToPathSet || state.fillColorSpace.name === \"Pattern\" || font.disableFontFace || this.options.disableFontFace) {\n        PartialEvaluator.buildFontPaths(font, glyphs, this.handler, this.options);\n      }\n    }\n\n    return glyphs;\n  }\n\n  ensureStateFont(state) {\n    if (state.font) {\n      return;\n    }\n\n    const reason = new _util.FormatError(\"Missing setFont (Tf) operator before text rendering operator.\");\n\n    if (this.options.ignoreErrors) {\n      this.handler.send(\"UnsupportedFeature\", {\n        featureId: _util.UNSUPPORTED_FEATURES.errorFontState\n      });\n      (0, _util.warn)(`ensureStateFont: \"${reason}\".`);\n      return;\n    }\n\n    throw reason;\n  }\n\n  async setGState(_ref3) {\n    let {\n      resources,\n      gState,\n      operatorList,\n      cacheKey,\n      task,\n      stateManager,\n      localGStateCache,\n      localColorSpaceCache\n    } = _ref3;\n    const gStateRef = gState.objId;\n    let isSimpleGState = true;\n    const gStateObj = [];\n    const gStateKeys = gState.getKeys();\n    let promise = Promise.resolve();\n\n    for (let i = 0, ii = gStateKeys.length; i < ii; i++) {\n      const key = gStateKeys[i];\n      const value = gState.get(key);\n\n      switch (key) {\n        case \"Type\":\n          break;\n\n        case \"LW\":\n        case \"LC\":\n        case \"LJ\":\n        case \"ML\":\n        case \"D\":\n        case \"RI\":\n        case \"FL\":\n        case \"CA\":\n        case \"ca\":\n          gStateObj.push([key, value]);\n          break;\n\n        case \"Font\":\n          isSimpleGState = false;\n          promise = promise.then(() => {\n            return this.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) {\n              operatorList.addDependency(loadedName);\n              gStateObj.push([key, [loadedName, value[1]]]);\n            });\n          });\n          break;\n\n        case \"BM\":\n          gStateObj.push([key, normalizeBlendMode(value)]);\n          break;\n\n        case \"SMask\":\n          if ((0, _primitives.isName)(value, \"None\")) {\n            gStateObj.push([key, false]);\n            break;\n          }\n\n          if (value instanceof _primitives.Dict) {\n            isSimpleGState = false;\n            promise = promise.then(() => {\n              return this.handleSMask(value, resources, operatorList, task, stateManager, localColorSpaceCache);\n            });\n            gStateObj.push([key, true]);\n          } else {\n            (0, _util.warn)(\"Unsupported SMask type\");\n          }\n\n          break;\n\n        case \"TR\":\n          const transferMaps = this.handleTransferFunction(value);\n          gStateObj.push([key, transferMaps]);\n          break;\n\n        case \"OP\":\n        case \"op\":\n        case \"OPM\":\n        case \"BG\":\n        case \"BG2\":\n        case \"UCR\":\n        case \"UCR2\":\n        case \"TR2\":\n        case \"HT\":\n        case \"SM\":\n        case \"SA\":\n        case \"AIS\":\n        case \"TK\":\n          (0, _util.info)(\"graphic state operator \" + key);\n          break;\n\n        default:\n          (0, _util.info)(\"Unknown graphic state operator \" + key);\n          break;\n      }\n    }\n\n    return promise.then(function () {\n      if (gStateObj.length > 0) {\n        operatorList.addOp(_util.OPS.setGState, [gStateObj]);\n      }\n\n      if (isSimpleGState) {\n        localGStateCache.set(cacheKey, gStateRef, gStateObj);\n      }\n    });\n  }\n\n  loadFont(fontName, font, resources) {\n    let fallbackFontDict = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n    let cssFontInfo = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n\n    const errorFont = async () => {\n      return new TranslatedFont({\n        loadedName: \"g_font_error\",\n        font: new _fonts.ErrorFont(`Font \"${fontName}\" is not available.`),\n        dict: font,\n        evaluatorOptions: this.options\n      });\n    };\n\n    const xref = this.xref;\n    let fontRef;\n\n    if (font) {\n      if (font instanceof _primitives.Ref) {\n        fontRef = font;\n      }\n    } else {\n      const fontRes = resources.get(\"Font\");\n\n      if (fontRes) {\n        fontRef = fontRes.getRaw(fontName);\n      }\n    }\n\n    if (!fontRef) {\n      const partialMsg = `Font \"${fontName || font && font.toString()}\" is not available`;\n\n      if (!this.options.ignoreErrors && !this.parsingType3Font) {\n        (0, _util.warn)(`${partialMsg}.`);\n        return errorFont();\n      }\n\n      this.handler.send(\"UnsupportedFeature\", {\n        featureId: _util.UNSUPPORTED_FEATURES.errorFontMissing\n      });\n      (0, _util.warn)(`${partialMsg} -- attempting to fallback to a default font.`);\n\n      if (fallbackFontDict) {\n        fontRef = fallbackFontDict;\n      } else {\n        fontRef = PartialEvaluator.fallbackFontDict;\n      }\n    }\n\n    if (this.parsingType3Font && this.type3FontRefs.has(fontRef)) {\n      return errorFont();\n    }\n\n    if (this.fontCache.has(fontRef)) {\n      return this.fontCache.get(fontRef);\n    }\n\n    font = xref.fetchIfRef(fontRef);\n\n    if (!(font instanceof _primitives.Dict)) {\n      return errorFont();\n    }\n\n    if (font.cacheKey && this.fontCache.has(font.cacheKey)) {\n      return this.fontCache.get(font.cacheKey);\n    }\n\n    const fontCapability = (0, _util.createPromiseCapability)();\n    let preEvaluatedFont;\n\n    try {\n      preEvaluatedFont = this.preEvaluateFont(font);\n      preEvaluatedFont.cssFontInfo = cssFontInfo;\n    } catch (reason) {\n      (0, _util.warn)(`loadFont - preEvaluateFont failed: \"${reason}\".`);\n      return errorFont();\n    }\n\n    const {\n      descriptor,\n      hash\n    } = preEvaluatedFont;\n    const fontRefIsRef = fontRef instanceof _primitives.Ref;\n    let fontID;\n\n    if (fontRefIsRef) {\n      fontID = `f${fontRef.toString()}`;\n    }\n\n    if (hash && descriptor instanceof _primitives.Dict) {\n      if (!descriptor.fontAliases) {\n        descriptor.fontAliases = Object.create(null);\n      }\n\n      const fontAliases = descriptor.fontAliases;\n\n      if (fontAliases[hash]) {\n        const aliasFontRef = fontAliases[hash].aliasRef;\n\n        if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n          this.fontCache.putAlias(fontRef, aliasFontRef);\n          return this.fontCache.get(fontRef);\n        }\n      } else {\n        fontAliases[hash] = {\n          fontID: this.idFactory.createFontId()\n        };\n      }\n\n      if (fontRefIsRef) {\n        fontAliases[hash].aliasRef = fontRef;\n      }\n\n      fontID = fontAliases[hash].fontID;\n    }\n\n    if (fontRefIsRef) {\n      this.fontCache.put(fontRef, fontCapability.promise);\n    } else {\n      if (!fontID) {\n        fontID = this.idFactory.createFontId();\n      }\n\n      font.cacheKey = `cacheKey_${fontID}`;\n      this.fontCache.put(font.cacheKey, fontCapability.promise);\n    }\n\n    (0, _util.assert)(fontID && fontID.startsWith(\"f\"), 'The \"fontID\" must be (correctly) defined.');\n    font.loadedName = `${this.idFactory.getDocId()}_${fontID}`;\n    this.translateFont(preEvaluatedFont).then(translatedFont => {\n      if (translatedFont.fontType !== undefined) {\n        xref.stats.addFontType(translatedFont.fontType);\n      }\n\n      fontCapability.resolve(new TranslatedFont({\n        loadedName: font.loadedName,\n        font: translatedFont,\n        dict: font,\n        evaluatorOptions: this.options\n      }));\n    }).catch(reason => {\n      this.handler.send(\"UnsupportedFeature\", {\n        featureId: _util.UNSUPPORTED_FEATURES.errorFontTranslate\n      });\n      (0, _util.warn)(`loadFont - translateFont failed: \"${reason}\".`);\n\n      try {\n        const fontFile3 = descriptor && descriptor.get(\"FontFile3\");\n        const subtype = fontFile3 && fontFile3.get(\"Subtype\");\n        const fontType = (0, _fonts_utils.getFontType)(preEvaluatedFont.type, subtype && subtype.name);\n\n        if (fontType !== undefined) {\n          xref.stats.addFontType(fontType);\n        }\n      } catch (ex) {}\n\n      fontCapability.resolve(new TranslatedFont({\n        loadedName: font.loadedName,\n        font: new _fonts.ErrorFont(reason instanceof Error ? reason.message : reason),\n        dict: font,\n        evaluatorOptions: this.options\n      }));\n    });\n    return fontCapability.promise;\n  }\n\n  buildPath(operatorList, fn, args) {\n    let parsingText = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n    const lastIndex = operatorList.length - 1;\n\n    if (!args) {\n      args = [];\n    }\n\n    let minMax;\n\n    if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== _util.OPS.constructPath) {\n      if (parsingText) {\n        (0, _util.warn)(`Encountered path operator \"${fn}\" inside of a text object.`);\n        operatorList.addOp(_util.OPS.save, null);\n      }\n\n      minMax = [Infinity, -Infinity, Infinity, -Infinity];\n      operatorList.addOp(_util.OPS.constructPath, [[fn], args, minMax]);\n\n      if (parsingText) {\n        operatorList.addOp(_util.OPS.restore, null);\n      }\n    } else {\n      const opArgs = operatorList.argsArray[lastIndex];\n      opArgs[0].push(fn);\n      Array.prototype.push.apply(opArgs[1], args);\n      minMax = opArgs[2];\n    }\n\n    switch (fn) {\n      case _util.OPS.rectangle:\n        minMax[0] = Math.min(minMax[0], args[0], args[0] + args[2]);\n        minMax[1] = Math.max(minMax[1], args[0], args[0] + args[2]);\n        minMax[2] = Math.min(minMax[2], args[1], args[1] + args[3]);\n        minMax[3] = Math.max(minMax[3], args[1], args[1] + args[3]);\n        break;\n\n      case _util.OPS.moveTo:\n      case _util.OPS.lineTo:\n        minMax[0] = Math.min(minMax[0], args[0]);\n        minMax[1] = Math.max(minMax[1], args[0]);\n        minMax[2] = Math.min(minMax[2], args[1]);\n        minMax[3] = Math.max(minMax[3], args[1]);\n        break;\n    }\n  }\n\n  parseColorSpace(_ref4) {\n    let {\n      cs,\n      resources,\n      localColorSpaceCache\n    } = _ref4;\n    return _colorspace.ColorSpace.parseAsync({\n      cs,\n      xref: this.xref,\n      resources,\n      pdfFunctionFactory: this._pdfFunctionFactory,\n      localColorSpaceCache\n    }).catch(reason => {\n      if (reason instanceof _util.AbortException) {\n        return null;\n      }\n\n      if (this.options.ignoreErrors) {\n        this.handler.send(\"UnsupportedFeature\", {\n          featureId: _util.UNSUPPORTED_FEATURES.errorColorSpace\n        });\n        (0, _util.warn)(`parseColorSpace - ignoring ColorSpace: \"${reason}\".`);\n        return null;\n      }\n\n      throw reason;\n    });\n  }\n\n  parseShading(_ref5) {\n    let {\n      shading,\n      resources,\n      localColorSpaceCache,\n      localShadingPatternCache\n    } = _ref5;\n    let id = localShadingPatternCache.get(shading);\n\n    if (!id) {\n      var shadingFill = _pattern.Pattern.parseShading(shading, this.xref, resources, this.handler, this._pdfFunctionFactory, localColorSpaceCache);\n\n      const patternIR = shadingFill.getIR();\n      id = `pattern_${this.idFactory.createObjId()}`;\n      localShadingPatternCache.set(shading, id);\n      this.handler.send(\"obj\", [id, this.pageIndex, \"Pattern\", patternIR]);\n    }\n\n    return id;\n  }\n\n  handleColorN(operatorList, fn, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache) {\n    const patternName = args.pop();\n\n    if (patternName instanceof _primitives.Name) {\n      const rawPattern = patterns.getRaw(patternName.name);\n      const localTilingPattern = rawPattern instanceof _primitives.Ref && localTilingPatternCache.getByRef(rawPattern);\n\n      if (localTilingPattern) {\n        try {\n          const color = cs.base ? cs.base.getRgb(args, 0) : null;\n          const tilingPatternIR = (0, _pattern.getTilingPatternIR)(localTilingPattern.operatorListIR, localTilingPattern.dict, color);\n          operatorList.addOp(fn, tilingPatternIR);\n          return undefined;\n        } catch (ex) {}\n      }\n\n      const pattern = this.xref.fetchIfRef(rawPattern);\n\n      if (pattern) {\n        const dict = pattern instanceof _base_stream.BaseStream ? pattern.dict : pattern;\n        const typeNum = dict.get(\"PatternType\");\n\n        if (typeNum === PatternType.TILING) {\n          const color = cs.base ? cs.base.getRgb(args, 0) : null;\n          return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task, localTilingPatternCache);\n        } else if (typeNum === PatternType.SHADING) {\n          const shading = dict.get(\"Shading\");\n          const matrix = dict.getArray(\"Matrix\");\n          const objId = this.parseShading({\n            shading,\n            resources,\n            localColorSpaceCache,\n            localShadingPatternCache\n          });\n          operatorList.addOp(fn, [\"Shading\", objId, matrix]);\n          return undefined;\n        }\n\n        throw new _util.FormatError(`Unknown PatternType: ${typeNum}`);\n      }\n    }\n\n    throw new _util.FormatError(`Unknown PatternName: ${patternName}`);\n  }\n\n  _parseVisibilityExpression(array, nestingCounter, currentResult) {\n    const MAX_NESTING = 10;\n\n    if (++nestingCounter > MAX_NESTING) {\n      (0, _util.warn)(\"Visibility expression is too deeply nested\");\n      return;\n    }\n\n    const length = array.length;\n    const operator = this.xref.fetchIfRef(array[0]);\n\n    if (length < 2 || !(operator instanceof _primitives.Name)) {\n      (0, _util.warn)(\"Invalid visibility expression\");\n      return;\n    }\n\n    switch (operator.name) {\n      case \"And\":\n      case \"Or\":\n      case \"Not\":\n        currentResult.push(operator.name);\n        break;\n\n      default:\n        (0, _util.warn)(`Invalid operator ${operator.name} in visibility expression`);\n        return;\n    }\n\n    for (let i = 1; i < length; i++) {\n      const raw = array[i];\n      const object = this.xref.fetchIfRef(raw);\n\n      if (Array.isArray(object)) {\n        const nestedResult = [];\n        currentResult.push(nestedResult);\n\n        this._parseVisibilityExpression(object, nestingCounter, nestedResult);\n      } else if (raw instanceof _primitives.Ref) {\n        currentResult.push(raw.toString());\n      }\n    }\n  }\n\n  async parseMarkedContentProps(contentProperties, resources) {\n    let optionalContent;\n\n    if (contentProperties instanceof _primitives.Name) {\n      const properties = resources.get(\"Properties\");\n      optionalContent = properties.get(contentProperties.name);\n    } else if (contentProperties instanceof _primitives.Dict) {\n      optionalContent = contentProperties;\n    } else {\n      throw new _util.FormatError(\"Optional content properties malformed.\");\n    }\n\n    const optionalContentType = optionalContent.get(\"Type\").name;\n\n    if (optionalContentType === \"OCG\") {\n      return {\n        type: optionalContentType,\n        id: optionalContent.objId\n      };\n    } else if (optionalContentType === \"OCMD\") {\n      const expression = optionalContent.get(\"VE\");\n\n      if (Array.isArray(expression)) {\n        const result = [];\n\n        this._parseVisibilityExpression(expression, 0, result);\n\n        if (result.length > 0) {\n          return {\n            type: \"OCMD\",\n            expression: result\n          };\n        }\n      }\n\n      const optionalContentGroups = optionalContent.get(\"OCGs\");\n\n      if (Array.isArray(optionalContentGroups) || optionalContentGroups instanceof _primitives.Dict) {\n        const groupIds = [];\n\n        if (Array.isArray(optionalContentGroups)) {\n          for (const ocg of optionalContentGroups) {\n            groupIds.push(ocg.toString());\n          }\n        } else {\n          groupIds.push(optionalContentGroups.objId);\n        }\n\n        return {\n          type: optionalContentType,\n          ids: groupIds,\n          policy: optionalContent.get(\"P\") instanceof _primitives.Name ? optionalContent.get(\"P\").name : null,\n          expression: null\n        };\n      } else if (optionalContentGroups instanceof _primitives.Ref) {\n        return {\n          type: optionalContentType,\n          id: optionalContentGroups.toString()\n        };\n      }\n    }\n\n    return null;\n  }\n\n  getOperatorList(_ref6) {\n    let {\n      stream,\n      task,\n      resources,\n      operatorList,\n      initialState = null,\n      fallbackFontDict = null\n    } = _ref6;\n    resources = resources || _primitives.Dict.empty;\n    initialState = initialState || new EvalState();\n\n    if (!operatorList) {\n      throw new Error('getOperatorList: missing \"operatorList\" parameter');\n    }\n\n    const self = this;\n    const xref = this.xref;\n    let parsingText = false;\n    const localImageCache = new _image_utils.LocalImageCache();\n    const localColorSpaceCache = new _image_utils.LocalColorSpaceCache();\n    const localGStateCache = new _image_utils.LocalGStateCache();\n    const localTilingPatternCache = new _image_utils.LocalTilingPatternCache();\n    const localShadingPatternCache = new Map();\n\n    const xobjs = resources.get(\"XObject\") || _primitives.Dict.empty;\n\n    const patterns = resources.get(\"Pattern\") || _primitives.Dict.empty;\n\n    const stateManager = new StateManager(initialState);\n    const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n    const timeSlotManager = new TimeSlotManager();\n\n    function closePendingRestoreOPS(argument) {\n      for (let i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n        operatorList.addOp(_util.OPS.restore, []);\n      }\n    }\n\n    return new Promise(function promiseBody(resolve, reject) {\n      const next = function (promise) {\n        Promise.all([promise, operatorList.ready]).then(function () {\n          try {\n            promiseBody(resolve, reject);\n          } catch (ex) {\n            reject(ex);\n          }\n        }, reject);\n      };\n\n      task.ensureNotTerminated();\n      timeSlotManager.reset();\n      const operation = {};\n      let stop, i, ii, cs, name, isValidName;\n\n      while (!(stop = timeSlotManager.check())) {\n        operation.args = null;\n\n        if (!preprocessor.read(operation)) {\n          break;\n        }\n\n        let args = operation.args;\n        let fn = operation.fn;\n\n        switch (fn | 0) {\n          case _util.OPS.paintXObject:\n            isValidName = args[0] instanceof _primitives.Name;\n            name = args[0].name;\n\n            if (isValidName) {\n              const localImage = localImageCache.getByName(name);\n\n              if (localImage) {\n                operatorList.addImageOps(localImage.fn, localImage.args, localImage.optionalContent);\n                incrementCachedImageMaskCount(localImage);\n                args = null;\n                continue;\n              }\n            }\n\n            next(new Promise(function (resolveXObject, rejectXObject) {\n              if (!isValidName) {\n                throw new _util.FormatError(\"XObject must be referred to by name.\");\n              }\n\n              let xobj = xobjs.getRaw(name);\n\n              if (xobj instanceof _primitives.Ref) {\n                const localImage = localImageCache.getByRef(xobj);\n\n                if (localImage) {\n                  operatorList.addImageOps(localImage.fn, localImage.args, localImage.optionalContent);\n                  incrementCachedImageMaskCount(localImage);\n                  resolveXObject();\n                  return;\n                }\n\n                const globalImage = self.globalImageCache.getData(xobj, self.pageIndex);\n\n                if (globalImage) {\n                  operatorList.addDependency(globalImage.objId);\n                  operatorList.addImageOps(globalImage.fn, globalImage.args, globalImage.optionalContent);\n                  resolveXObject();\n                  return;\n                }\n\n                xobj = xref.fetch(xobj);\n              }\n\n              if (!(xobj instanceof _base_stream.BaseStream)) {\n                throw new _util.FormatError(\"XObject should be a stream\");\n              }\n\n              const type = xobj.dict.get(\"Subtype\");\n\n              if (!(type instanceof _primitives.Name)) {\n                throw new _util.FormatError(\"XObject should have a Name subtype\");\n              }\n\n              if (type.name === \"Form\") {\n                stateManager.save();\n                self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone(), localColorSpaceCache).then(function () {\n                  stateManager.restore();\n                  resolveXObject();\n                }, rejectXObject);\n                return;\n              } else if (type.name === \"Image\") {\n                self.buildPaintImageXObject({\n                  resources,\n                  image: xobj,\n                  operatorList,\n                  cacheKey: name,\n                  localImageCache,\n                  localColorSpaceCache\n                }).then(resolveXObject, rejectXObject);\n                return;\n              } else if (type.name === \"PS\") {\n                (0, _util.info)(\"Ignored XObject subtype PS\");\n              } else {\n                throw new _util.FormatError(`Unhandled XObject subtype ${type.name}`);\n              }\n\n              resolveXObject();\n            }).catch(function (reason) {\n              if (reason instanceof _util.AbortException) {\n                return;\n              }\n\n              if (self.options.ignoreErrors) {\n                self.handler.send(\"UnsupportedFeature\", {\n                  featureId: _util.UNSUPPORTED_FEATURES.errorXObject\n                });\n                (0, _util.warn)(`getOperatorList - ignoring XObject: \"${reason}\".`);\n                return;\n              }\n\n              throw reason;\n            }));\n            return;\n\n          case _util.OPS.setFont:\n            var fontSize = args[1];\n            next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state, fallbackFontDict).then(function (loadedName) {\n              operatorList.addDependency(loadedName);\n              operatorList.addOp(_util.OPS.setFont, [loadedName, fontSize]);\n            }));\n            return;\n\n          case _util.OPS.beginText:\n            parsingText = true;\n            break;\n\n          case _util.OPS.endText:\n            parsingText = false;\n            break;\n\n          case _util.OPS.endInlineImage:\n            var cacheKey = args[0].cacheKey;\n\n            if (cacheKey) {\n              const localImage = localImageCache.getByName(cacheKey);\n\n              if (localImage) {\n                operatorList.addImageOps(localImage.fn, localImage.args, localImage.optionalContent);\n                incrementCachedImageMaskCount(localImage);\n                args = null;\n                continue;\n              }\n            }\n\n            next(self.buildPaintImageXObject({\n              resources,\n              image: args[0],\n              isInline: true,\n              operatorList,\n              cacheKey,\n              localImageCache,\n              localColorSpaceCache\n            }));\n            return;\n\n          case _util.OPS.showText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            args[0] = self.handleText(args[0], stateManager.state);\n            break;\n\n          case _util.OPS.showSpacedText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            var arr = args[0];\n            var combinedGlyphs = [];\n            var arrLength = arr.length;\n            var state = stateManager.state;\n\n            for (i = 0; i < arrLength; ++i) {\n              const arrItem = arr[i];\n\n              if (typeof arrItem === \"string\") {\n                Array.prototype.push.apply(combinedGlyphs, self.handleText(arrItem, state));\n              } else if (typeof arrItem === \"number\") {\n                combinedGlyphs.push(arrItem);\n              }\n            }\n\n            args[0] = combinedGlyphs;\n            fn = _util.OPS.showText;\n            break;\n\n          case _util.OPS.nextLineShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            operatorList.addOp(_util.OPS.nextLine);\n            args[0] = self.handleText(args[0], stateManager.state);\n            fn = _util.OPS.showText;\n            break;\n\n          case _util.OPS.nextLineSetSpacingShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            operatorList.addOp(_util.OPS.nextLine);\n            operatorList.addOp(_util.OPS.setWordSpacing, [args.shift()]);\n            operatorList.addOp(_util.OPS.setCharSpacing, [args.shift()]);\n            args[0] = self.handleText(args[0], stateManager.state);\n            fn = _util.OPS.showText;\n            break;\n\n          case _util.OPS.setTextRenderingMode:\n            stateManager.state.textRenderingMode = args[0];\n            break;\n\n          case _util.OPS.setFillColorSpace:\n            {\n              const cachedColorSpace = _colorspace.ColorSpace.getCached(args[0], xref, localColorSpaceCache);\n\n              if (cachedColorSpace) {\n                stateManager.state.fillColorSpace = cachedColorSpace;\n                continue;\n              }\n\n              next(self.parseColorSpace({\n                cs: args[0],\n                resources,\n                localColorSpaceCache\n              }).then(function (colorSpace) {\n                if (colorSpace) {\n                  stateManager.state.fillColorSpace = colorSpace;\n                }\n              }));\n              return;\n            }\n\n          case _util.OPS.setStrokeColorSpace:\n            {\n              const cachedColorSpace = _colorspace.ColorSpace.getCached(args[0], xref, localColorSpaceCache);\n\n              if (cachedColorSpace) {\n                stateManager.state.strokeColorSpace = cachedColorSpace;\n                continue;\n              }\n\n              next(self.parseColorSpace({\n                cs: args[0],\n                resources,\n                localColorSpaceCache\n              }).then(function (colorSpace) {\n                if (colorSpace) {\n                  stateManager.state.strokeColorSpace = colorSpace;\n                }\n              }));\n              return;\n            }\n\n          case _util.OPS.setFillColor:\n            cs = stateManager.state.fillColorSpace;\n            args = cs.getRgb(args, 0);\n            fn = _util.OPS.setFillRGBColor;\n            break;\n\n          case _util.OPS.setStrokeColor:\n            cs = stateManager.state.strokeColorSpace;\n            args = cs.getRgb(args, 0);\n            fn = _util.OPS.setStrokeRGBColor;\n            break;\n\n          case _util.OPS.setFillGray:\n            stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n            args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n            fn = _util.OPS.setFillRGBColor;\n            break;\n\n          case _util.OPS.setStrokeGray:\n            stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n            args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n            fn = _util.OPS.setStrokeRGBColor;\n            break;\n\n          case _util.OPS.setFillCMYKColor:\n            stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n            args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n            fn = _util.OPS.setFillRGBColor;\n            break;\n\n          case _util.OPS.setStrokeCMYKColor:\n            stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n            args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n            fn = _util.OPS.setStrokeRGBColor;\n            break;\n\n          case _util.OPS.setFillRGBColor:\n            stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.rgb;\n            args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n            break;\n\n          case _util.OPS.setStrokeRGBColor:\n            stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.rgb;\n            args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n            break;\n\n          case _util.OPS.setFillColorN:\n            cs = stateManager.state.fillColorSpace;\n\n            if (cs.name === \"Pattern\") {\n              next(self.handleColorN(operatorList, _util.OPS.setFillColorN, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache));\n              return;\n            }\n\n            args = cs.getRgb(args, 0);\n            fn = _util.OPS.setFillRGBColor;\n            break;\n\n          case _util.OPS.setStrokeColorN:\n            cs = stateManager.state.strokeColorSpace;\n\n            if (cs.name === \"Pattern\") {\n              next(self.handleColorN(operatorList, _util.OPS.setStrokeColorN, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache));\n              return;\n            }\n\n            args = cs.getRgb(args, 0);\n            fn = _util.OPS.setStrokeRGBColor;\n            break;\n\n          case _util.OPS.shadingFill:\n            var shadingRes = resources.get(\"Shading\");\n\n            if (!shadingRes) {\n              throw new _util.FormatError(\"No shading resource found\");\n            }\n\n            var shading = shadingRes.get(args[0].name);\n\n            if (!shading) {\n              throw new _util.FormatError(\"No shading object found\");\n            }\n\n            const patternId = self.parseShading({\n              shading,\n              resources,\n              localColorSpaceCache,\n              localShadingPatternCache\n            });\n            args = [patternId];\n            fn = _util.OPS.shadingFill;\n            break;\n\n          case _util.OPS.setGState:\n            isValidName = args[0] instanceof _primitives.Name;\n            name = args[0].name;\n\n            if (isValidName) {\n              const localGStateObj = localGStateCache.getByName(name);\n\n              if (localGStateObj) {\n                if (localGStateObj.length > 0) {\n                  operatorList.addOp(_util.OPS.setGState, [localGStateObj]);\n                }\n\n                args = null;\n                continue;\n              }\n            }\n\n            next(new Promise(function (resolveGState, rejectGState) {\n              if (!isValidName) {\n                throw new _util.FormatError(\"GState must be referred to by name.\");\n              }\n\n              const extGState = resources.get(\"ExtGState\");\n\n              if (!(extGState instanceof _primitives.Dict)) {\n                throw new _util.FormatError(\"ExtGState should be a dictionary.\");\n              }\n\n              const gState = extGState.get(name);\n\n              if (!(gState instanceof _primitives.Dict)) {\n                throw new _util.FormatError(\"GState should be a dictionary.\");\n              }\n\n              self.setGState({\n                resources,\n                gState,\n                operatorList,\n                cacheKey: name,\n                task,\n                stateManager,\n                localGStateCache,\n                localColorSpaceCache\n              }).then(resolveGState, rejectGState);\n            }).catch(function (reason) {\n              if (reason instanceof _util.AbortException) {\n                return;\n              }\n\n              if (self.options.ignoreErrors) {\n                self.handler.send(\"UnsupportedFeature\", {\n                  featureId: _util.UNSUPPORTED_FEATURES.errorExtGState\n                });\n                (0, _util.warn)(`getOperatorList - ignoring ExtGState: \"${reason}\".`);\n                return;\n              }\n\n              throw reason;\n            }));\n            return;\n\n          case _util.OPS.moveTo:\n          case _util.OPS.lineTo:\n          case _util.OPS.curveTo:\n          case _util.OPS.curveTo2:\n          case _util.OPS.curveTo3:\n          case _util.OPS.closePath:\n          case _util.OPS.rectangle:\n            self.buildPath(operatorList, fn, args, parsingText);\n            continue;\n\n          case _util.OPS.markPoint:\n          case _util.OPS.markPointProps:\n          case _util.OPS.beginCompat:\n          case _util.OPS.endCompat:\n            continue;\n\n          case _util.OPS.beginMarkedContentProps:\n            if (!(args[0] instanceof _primitives.Name)) {\n              (0, _util.warn)(`Expected name for beginMarkedContentProps arg0=${args[0]}`);\n              continue;\n            }\n\n            if (args[0].name === \"OC\") {\n              next(self.parseMarkedContentProps(args[1], resources).then(data => {\n                operatorList.addOp(_util.OPS.beginMarkedContentProps, [\"OC\", data]);\n              }).catch(reason => {\n                if (reason instanceof _util.AbortException) {\n                  return;\n                }\n\n                if (self.options.ignoreErrors) {\n                  self.handler.send(\"UnsupportedFeature\", {\n                    featureId: _util.UNSUPPORTED_FEATURES.errorMarkedContent\n                  });\n                  (0, _util.warn)(`getOperatorList - ignoring beginMarkedContentProps: \"${reason}\".`);\n                  return;\n                }\n\n                throw reason;\n              }));\n              return;\n            }\n\n            args = [args[0].name, args[1] instanceof _primitives.Dict ? args[1].get(\"MCID\") : null];\n            break;\n\n          case _util.OPS.beginMarkedContent:\n          case _util.OPS.endMarkedContent:\n          default:\n            if (args !== null) {\n              for (i = 0, ii = args.length; i < ii; i++) {\n                if (args[i] instanceof _primitives.Dict) {\n                  break;\n                }\n              }\n\n              if (i < ii) {\n                (0, _util.warn)(\"getOperatorList - ignoring operator: \" + fn);\n                continue;\n              }\n            }\n\n        }\n\n        operatorList.addOp(fn, args);\n      }\n\n      if (stop) {\n        next(deferred);\n        return;\n      }\n\n      closePendingRestoreOPS();\n      resolve();\n    }).catch(reason => {\n      if (reason instanceof _util.AbortException) {\n        return;\n      }\n\n      if (this.options.ignoreErrors) {\n        this.handler.send(\"UnsupportedFeature\", {\n          featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList\n        });\n        (0, _util.warn)(`getOperatorList - ignoring errors during \"${task.name}\" ` + `task: \"${reason}\".`);\n        closePendingRestoreOPS();\n        return;\n      }\n\n      throw reason;\n    });\n  }\n\n  getTextContent(_ref7) {\n    let {\n      stream,\n      task,\n      resources,\n      stateManager = null,\n      combineTextItems = false,\n      includeMarkedContent = false,\n      sink,\n      seenStyles = new Set(),\n      viewBox\n    } = _ref7;\n    resources = resources || _primitives.Dict.empty;\n    stateManager = stateManager || new StateManager(new TextState());\n    const NormalizedUnicodes = (0, _unicode.getNormalizedUnicodes)();\n    const textContent = {\n      items: [],\n      styles: Object.create(null)\n    };\n    const textContentItem = {\n      initialized: false,\n      str: [],\n      totalWidth: 0,\n      totalHeight: 0,\n      width: 0,\n      height: 0,\n      vertical: false,\n      prevTransform: null,\n      textAdvanceScale: 0,\n      spaceInFlowMin: 0,\n      spaceInFlowMax: 0,\n      trackingSpaceMin: Infinity,\n      negativeSpaceMax: -Infinity,\n      notASpace: -Infinity,\n      transform: null,\n      fontName: null,\n      hasEOL: false\n    };\n    const twoLastChars = [\" \", \" \"];\n    let twoLastCharsPos = 0;\n\n    function saveLastChar(char) {\n      const nextPos = (twoLastCharsPos + 1) % 2;\n      const ret = twoLastChars[twoLastCharsPos] !== \" \" && twoLastChars[nextPos] === \" \";\n      twoLastChars[twoLastCharsPos] = char;\n      twoLastCharsPos = nextPos;\n      return ret;\n    }\n\n    function resetLastChars() {\n      twoLastChars[0] = twoLastChars[1] = \" \";\n      twoLastCharsPos = 0;\n    }\n\n    const TRACKING_SPACE_FACTOR = 0.1;\n    const NOT_A_SPACE_FACTOR = 0.03;\n    const NEGATIVE_SPACE_FACTOR = -0.2;\n    const SPACE_IN_FLOW_MIN_FACTOR = 0.1;\n    const SPACE_IN_FLOW_MAX_FACTOR = 0.6;\n    const self = this;\n    const xref = this.xref;\n    const showSpacedTextBuffer = [];\n    let xobjs = null;\n    const emptyXObjectCache = new _image_utils.LocalImageCache();\n    const emptyGStateCache = new _image_utils.LocalGStateCache();\n    const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n    let textState;\n\n    function getCurrentTextTransform() {\n      const font = textState.font;\n      const tsm = [textState.fontSize * textState.textHScale, 0, 0, textState.fontSize, 0, textState.textRise];\n\n      if (font.isType3Font && (textState.fontSize <= 1 || font.isCharBBox) && !(0, _util.isArrayEqual)(textState.fontMatrix, _util.FONT_IDENTITY_MATRIX)) {\n        const glyphHeight = font.bbox[3] - font.bbox[1];\n\n        if (glyphHeight > 0) {\n          tsm[3] *= glyphHeight * textState.fontMatrix[3];\n        }\n      }\n\n      return _util.Util.transform(textState.ctm, _util.Util.transform(textState.textMatrix, tsm));\n    }\n\n    function ensureTextContentItem() {\n      if (textContentItem.initialized) {\n        return textContentItem;\n      }\n\n      const font = textState.font,\n            loadedName = font.loadedName;\n\n      if (!seenStyles.has(loadedName)) {\n        seenStyles.add(loadedName);\n        textContent.styles[loadedName] = {\n          fontFamily: font.fallbackName,\n          ascent: font.ascent,\n          descent: font.descent,\n          vertical: font.vertical\n        };\n      }\n\n      textContentItem.fontName = loadedName;\n      const trm = textContentItem.transform = getCurrentTextTransform();\n\n      if (!font.vertical) {\n        textContentItem.width = textContentItem.totalWidth = 0;\n        textContentItem.height = textContentItem.totalHeight = Math.hypot(trm[2], trm[3]);\n        textContentItem.vertical = false;\n      } else {\n        textContentItem.width = textContentItem.totalWidth = Math.hypot(trm[0], trm[1]);\n        textContentItem.height = textContentItem.totalHeight = 0;\n        textContentItem.vertical = true;\n      }\n\n      const scaleLineX = Math.hypot(textState.textLineMatrix[0], textState.textLineMatrix[1]);\n      const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n      textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n      textContentItem.trackingSpaceMin = textState.fontSize * TRACKING_SPACE_FACTOR;\n      textContentItem.notASpace = textState.fontSize * NOT_A_SPACE_FACTOR;\n      textContentItem.negativeSpaceMax = textState.fontSize * NEGATIVE_SPACE_FACTOR;\n      textContentItem.spaceInFlowMin = textState.fontSize * SPACE_IN_FLOW_MIN_FACTOR;\n      textContentItem.spaceInFlowMax = textState.fontSize * SPACE_IN_FLOW_MAX_FACTOR;\n      textContentItem.hasEOL = false;\n      textContentItem.initialized = true;\n      return textContentItem;\n    }\n\n    function updateAdvanceScale() {\n      if (!textContentItem.initialized) {\n        return;\n      }\n\n      const scaleLineX = Math.hypot(textState.textLineMatrix[0], textState.textLineMatrix[1]);\n      const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n      const scaleFactor = scaleCtmX * scaleLineX;\n\n      if (scaleFactor === textContentItem.textAdvanceScale) {\n        return;\n      }\n\n      if (!textContentItem.vertical) {\n        textContentItem.totalWidth += textContentItem.width * textContentItem.textAdvanceScale;\n        textContentItem.width = 0;\n      } else {\n        textContentItem.totalHeight += textContentItem.height * textContentItem.textAdvanceScale;\n        textContentItem.height = 0;\n      }\n\n      textContentItem.textAdvanceScale = scaleFactor;\n    }\n\n    function runBidiTransform(textChunk) {\n      const text = textChunk.str.join(\"\");\n      const bidiResult = (0, _bidi.bidi)(text, -1, textChunk.vertical);\n      return {\n        str: bidiResult.str,\n        dir: bidiResult.dir,\n        width: Math.abs(textChunk.totalWidth),\n        height: Math.abs(textChunk.totalHeight),\n        transform: textChunk.transform,\n        fontName: textChunk.fontName,\n        hasEOL: textChunk.hasEOL\n      };\n    }\n\n    function handleSetFont(fontName, fontRef) {\n      return self.loadFont(fontName, fontRef, resources).then(function (translated) {\n        if (!translated.font.isType3Font) {\n          return translated;\n        }\n\n        return translated.loadType3Data(self, resources, task).catch(function () {}).then(function () {\n          return translated;\n        });\n      }).then(function (translated) {\n        textState.font = translated.font;\n        textState.fontMatrix = translated.font.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n      });\n    }\n\n    function applyInverseRotation(x, y, matrix) {\n      const scale = Math.hypot(matrix[0], matrix[1]);\n      return [(matrix[0] * x + matrix[1] * y) / scale, (matrix[2] * x + matrix[3] * y) / scale];\n    }\n\n    function compareWithLastPosition() {\n      const currentTransform = getCurrentTextTransform();\n      let posX = currentTransform[4];\n      let posY = currentTransform[5];\n      const shiftedX = posX - viewBox[0];\n      const shiftedY = posY - viewBox[1];\n\n      if (shiftedX < 0 || shiftedX > viewBox[2] || shiftedY < 0 || shiftedY > viewBox[3]) {\n        return false;\n      }\n\n      if (!combineTextItems || !textState.font || !textContentItem.prevTransform) {\n        return true;\n      }\n\n      let lastPosX = textContentItem.prevTransform[4];\n      let lastPosY = textContentItem.prevTransform[5];\n\n      if (lastPosX === posX && lastPosY === posY) {\n        return true;\n      }\n\n      let rotate = -1;\n\n      if (currentTransform[0] && currentTransform[1] === 0 && currentTransform[2] === 0) {\n        rotate = currentTransform[0] > 0 ? 0 : 180;\n      } else if (currentTransform[1] && currentTransform[0] === 0 && currentTransform[3] === 0) {\n        rotate = currentTransform[1] > 0 ? 90 : 270;\n      }\n\n      switch (rotate) {\n        case 0:\n          break;\n\n        case 90:\n          [posX, posY] = [posY, posX];\n          [lastPosX, lastPosY] = [lastPosY, lastPosX];\n          break;\n\n        case 180:\n          [posX, posY, lastPosX, lastPosY] = [-posX, -posY, -lastPosX, -lastPosY];\n          break;\n\n        case 270:\n          [posX, posY] = [-posY, -posX];\n          [lastPosX, lastPosY] = [-lastPosY, -lastPosX];\n          break;\n\n        default:\n          [posX, posY] = applyInverseRotation(posX, posY, currentTransform);\n          [lastPosX, lastPosY] = applyInverseRotation(lastPosX, lastPosY, textContentItem.prevTransform);\n      }\n\n      if (textState.font.vertical) {\n        const advanceY = (lastPosY - posY) / textContentItem.textAdvanceScale;\n        const advanceX = posX - lastPosX;\n        const textOrientation = Math.sign(textContentItem.height);\n\n        if (advanceY < textOrientation * textContentItem.negativeSpaceMax) {\n          if (Math.abs(advanceX) > 0.5 * textContentItem.width) {\n            appendEOL();\n            return true;\n          }\n\n          resetLastChars();\n          flushTextContentItem();\n          return true;\n        }\n\n        if (Math.abs(advanceX) > textContentItem.width) {\n          appendEOL();\n          return true;\n        }\n\n        if (advanceY <= textOrientation * textContentItem.notASpace) {\n          resetLastChars();\n        }\n\n        if (advanceY <= textOrientation * textContentItem.trackingSpaceMin) {\n          textContentItem.height += advanceY;\n        } else if (!addFakeSpaces(advanceY, textContentItem.prevTransform, textOrientation)) {\n          if (textContentItem.str.length === 0) {\n            resetLastChars();\n            textContent.items.push({\n              str: \" \",\n              dir: \"ltr\",\n              width: 0,\n              height: Math.abs(advanceY),\n              transform: textContentItem.prevTransform,\n              fontName: textContentItem.fontName,\n              hasEOL: false\n            });\n          } else {\n            textContentItem.height += advanceY;\n          }\n        }\n\n        return true;\n      }\n\n      const advanceX = (posX - lastPosX) / textContentItem.textAdvanceScale;\n      const advanceY = posY - lastPosY;\n      const textOrientation = Math.sign(textContentItem.width);\n\n      if (advanceX < textOrientation * textContentItem.negativeSpaceMax) {\n        if (Math.abs(advanceY) > 0.5 * textContentItem.height) {\n          appendEOL();\n          return true;\n        }\n\n        resetLastChars();\n        flushTextContentItem();\n        return true;\n      }\n\n      if (Math.abs(advanceY) > textContentItem.height) {\n        appendEOL();\n        return true;\n      }\n\n      if (advanceX <= textOrientation * textContentItem.notASpace) {\n        resetLastChars();\n      }\n\n      if (advanceX <= textOrientation * textContentItem.trackingSpaceMin) {\n        textContentItem.width += advanceX;\n      } else if (!addFakeSpaces(advanceX, textContentItem.prevTransform, textOrientation)) {\n        if (textContentItem.str.length === 0) {\n          resetLastChars();\n          textContent.items.push({\n            str: \" \",\n            dir: \"ltr\",\n            width: Math.abs(advanceX),\n            height: 0,\n            transform: textContentItem.prevTransform,\n            fontName: textContentItem.fontName,\n            hasEOL: false\n          });\n        } else {\n          textContentItem.width += advanceX;\n        }\n      }\n\n      return true;\n    }\n\n    function buildTextContentItem(_ref8) {\n      let {\n        chars,\n        extraSpacing\n      } = _ref8;\n      const font = textState.font;\n\n      if (!chars) {\n        const charSpacing = textState.charSpacing + extraSpacing;\n\n        if (charSpacing) {\n          if (!font.vertical) {\n            textState.translateTextMatrix(charSpacing * textState.textHScale, 0);\n          } else {\n            textState.translateTextMatrix(0, -charSpacing);\n          }\n        }\n\n        return;\n      }\n\n      const glyphs = font.charsToGlyphs(chars);\n      const scale = textState.fontMatrix[0] * textState.fontSize;\n\n      for (let i = 0, ii = glyphs.length; i < ii; i++) {\n        const glyph = glyphs[i];\n\n        if (glyph.isInvisibleFormatMark) {\n          continue;\n        }\n\n        let charSpacing = textState.charSpacing + (i + 1 === ii ? extraSpacing : 0);\n        let glyphWidth = glyph.width;\n\n        if (font.vertical) {\n          glyphWidth = glyph.vmetric ? glyph.vmetric[0] : -glyphWidth;\n        }\n\n        let scaledDim = glyphWidth * scale;\n\n        if (glyph.isWhitespace) {\n          if (!font.vertical) {\n            charSpacing += scaledDim + textState.wordSpacing;\n            textState.translateTextMatrix(charSpacing * textState.textHScale, 0);\n          } else {\n            charSpacing += -scaledDim + textState.wordSpacing;\n            textState.translateTextMatrix(0, -charSpacing);\n          }\n\n          saveLastChar(\" \");\n          continue;\n        }\n\n        if (!compareWithLastPosition()) {\n          continue;\n        }\n\n        const textChunk = ensureTextContentItem();\n\n        if (glyph.isZeroWidthDiacritic) {\n          scaledDim = 0;\n        }\n\n        if (!font.vertical) {\n          scaledDim *= textState.textHScale;\n          textState.translateTextMatrix(scaledDim, 0);\n          textChunk.width += scaledDim;\n        } else {\n          textState.translateTextMatrix(0, scaledDim);\n          scaledDim = Math.abs(scaledDim);\n          textChunk.height += scaledDim;\n        }\n\n        if (scaledDim) {\n          textChunk.prevTransform = getCurrentTextTransform();\n        }\n\n        let glyphUnicode = glyph.unicode;\n        glyphUnicode = NormalizedUnicodes[glyphUnicode] || glyphUnicode;\n        glyphUnicode = (0, _unicode.reverseIfRtl)(glyphUnicode);\n\n        if (saveLastChar(glyphUnicode)) {\n          textChunk.str.push(\" \");\n        }\n\n        textChunk.str.push(glyphUnicode);\n\n        if (charSpacing) {\n          if (!font.vertical) {\n            textState.translateTextMatrix(charSpacing * textState.textHScale, 0);\n          } else {\n            textState.translateTextMatrix(0, -charSpacing);\n          }\n        }\n      }\n    }\n\n    function appendEOL() {\n      resetLastChars();\n\n      if (textContentItem.initialized) {\n        textContentItem.hasEOL = true;\n        flushTextContentItem();\n      } else {\n        textContent.items.push({\n          str: \"\",\n          dir: \"ltr\",\n          width: 0,\n          height: 0,\n          transform: getCurrentTextTransform(),\n          fontName: textState.font.loadedName,\n          hasEOL: true\n        });\n      }\n    }\n\n    function addFakeSpaces(width, transf, textOrientation) {\n      if (textOrientation * textContentItem.spaceInFlowMin <= width && width <= textOrientation * textContentItem.spaceInFlowMax) {\n        if (textContentItem.initialized) {\n          resetLastChars();\n          textContentItem.str.push(\" \");\n        }\n\n        return false;\n      }\n\n      const fontName = textContentItem.fontName;\n      let height = 0;\n\n      if (textContentItem.vertical) {\n        height = width;\n        width = 0;\n      }\n\n      flushTextContentItem();\n      resetLastChars();\n      textContent.items.push({\n        str: \" \",\n        dir: \"ltr\",\n        width: Math.abs(width),\n        height: Math.abs(height),\n        transform: transf || getCurrentTextTransform(),\n        fontName,\n        hasEOL: false\n      });\n      return true;\n    }\n\n    function flushTextContentItem() {\n      if (!textContentItem.initialized || !textContentItem.str) {\n        return;\n      }\n\n      if (!textContentItem.vertical) {\n        textContentItem.totalWidth += textContentItem.width * textContentItem.textAdvanceScale;\n      } else {\n        textContentItem.totalHeight += textContentItem.height * textContentItem.textAdvanceScale;\n      }\n\n      textContent.items.push(runBidiTransform(textContentItem));\n      textContentItem.initialized = false;\n      textContentItem.str.length = 0;\n    }\n\n    function enqueueChunk() {\n      let batch = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n      const length = textContent.items.length;\n\n      if (length === 0) {\n        return;\n      }\n\n      if (batch && length < TEXT_CHUNK_BATCH_SIZE) {\n        return;\n      }\n\n      sink.enqueue(textContent, length);\n      textContent.items = [];\n      textContent.styles = Object.create(null);\n    }\n\n    const timeSlotManager = new TimeSlotManager();\n    return new Promise(function promiseBody(resolve, reject) {\n      const next = function (promise) {\n        enqueueChunk(true);\n        Promise.all([promise, sink.ready]).then(function () {\n          try {\n            promiseBody(resolve, reject);\n          } catch (ex) {\n            reject(ex);\n          }\n        }, reject);\n      };\n\n      task.ensureNotTerminated();\n      timeSlotManager.reset();\n      const operation = {};\n      let stop,\n          args = [];\n\n      while (!(stop = timeSlotManager.check())) {\n        args.length = 0;\n        operation.args = args;\n\n        if (!preprocessor.read(operation)) {\n          break;\n        }\n\n        textState = stateManager.state;\n        const fn = operation.fn;\n        args = operation.args;\n\n        switch (fn | 0) {\n          case _util.OPS.setFont:\n            var fontNameArg = args[0].name,\n                fontSizeArg = args[1];\n\n            if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) {\n              break;\n            }\n\n            flushTextContentItem();\n            textState.fontName = fontNameArg;\n            textState.fontSize = fontSizeArg;\n            next(handleSetFont(fontNameArg, null));\n            return;\n\n          case _util.OPS.setTextRise:\n            textState.textRise = args[0];\n            break;\n\n          case _util.OPS.setHScale:\n            textState.textHScale = args[0] / 100;\n            break;\n\n          case _util.OPS.setLeading:\n            textState.leading = args[0];\n            break;\n\n          case _util.OPS.moveText:\n            textState.translateTextLineMatrix(args[0], args[1]);\n            textState.textMatrix = textState.textLineMatrix.slice();\n            break;\n\n          case _util.OPS.setLeadingMoveText:\n            textState.leading = -args[1];\n            textState.translateTextLineMatrix(args[0], args[1]);\n            textState.textMatrix = textState.textLineMatrix.slice();\n            break;\n\n          case _util.OPS.nextLine:\n            textState.carriageReturn();\n            break;\n\n          case _util.OPS.setTextMatrix:\n            textState.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n            textState.setTextLineMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n            updateAdvanceScale();\n            break;\n\n          case _util.OPS.setCharSpacing:\n            textState.charSpacing = args[0];\n            break;\n\n          case _util.OPS.setWordSpacing:\n            textState.wordSpacing = args[0];\n            break;\n\n          case _util.OPS.beginText:\n            textState.textMatrix = _util.IDENTITY_MATRIX.slice();\n            textState.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n            break;\n\n          case _util.OPS.showSpacedText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            const spaceFactor = (textState.font.vertical ? 1 : -1) * textState.fontSize / 1000;\n            const elements = args[0];\n\n            for (let i = 0, ii = elements.length; i < ii - 1; i++) {\n              const item = elements[i];\n\n              if (typeof item === \"string\") {\n                showSpacedTextBuffer.push(item);\n              } else if (typeof item === \"number\" && item !== 0) {\n                const str = showSpacedTextBuffer.join(\"\");\n                showSpacedTextBuffer.length = 0;\n                buildTextContentItem({\n                  chars: str,\n                  extraSpacing: item * spaceFactor\n                });\n              }\n            }\n\n            const item = elements.at(-1);\n\n            if (typeof item === \"string\") {\n              showSpacedTextBuffer.push(item);\n            }\n\n            if (showSpacedTextBuffer.length > 0) {\n              const str = showSpacedTextBuffer.join(\"\");\n              showSpacedTextBuffer.length = 0;\n              buildTextContentItem({\n                chars: str,\n                extraSpacing: 0\n              });\n            }\n\n            break;\n\n          case _util.OPS.showText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            buildTextContentItem({\n              chars: args[0],\n              extraSpacing: 0\n            });\n            break;\n\n          case _util.OPS.nextLineShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            textState.carriageReturn();\n            buildTextContentItem({\n              chars: args[0],\n              extraSpacing: 0\n            });\n            break;\n\n          case _util.OPS.nextLineSetSpacingShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            textState.wordSpacing = args[0];\n            textState.charSpacing = args[1];\n            textState.carriageReturn();\n            buildTextContentItem({\n              chars: args[2],\n              extraSpacing: 0\n            });\n            break;\n\n          case _util.OPS.paintXObject:\n            flushTextContentItem();\n\n            if (!xobjs) {\n              xobjs = resources.get(\"XObject\") || _primitives.Dict.empty;\n            }\n\n            var isValidName = args[0] instanceof _primitives.Name;\n            var name = args[0].name;\n\n            if (isValidName && emptyXObjectCache.getByName(name)) {\n              break;\n            }\n\n            next(new Promise(function (resolveXObject, rejectXObject) {\n              if (!isValidName) {\n                throw new _util.FormatError(\"XObject must be referred to by name.\");\n              }\n\n              let xobj = xobjs.getRaw(name);\n\n              if (xobj instanceof _primitives.Ref) {\n                if (emptyXObjectCache.getByRef(xobj)) {\n                  resolveXObject();\n                  return;\n                }\n\n                const globalImage = self.globalImageCache.getData(xobj, self.pageIndex);\n\n                if (globalImage) {\n                  resolveXObject();\n                  return;\n                }\n\n                xobj = xref.fetch(xobj);\n              }\n\n              if (!(xobj instanceof _base_stream.BaseStream)) {\n                throw new _util.FormatError(\"XObject should be a stream\");\n              }\n\n              const type = xobj.dict.get(\"Subtype\");\n\n              if (!(type instanceof _primitives.Name)) {\n                throw new _util.FormatError(\"XObject should have a Name subtype\");\n              }\n\n              if (type.name !== \"Form\") {\n                emptyXObjectCache.set(name, xobj.dict.objId, true);\n                resolveXObject();\n                return;\n              }\n\n              const currentState = stateManager.state.clone();\n              const xObjStateManager = new StateManager(currentState);\n              const matrix = xobj.dict.getArray(\"Matrix\");\n\n              if (Array.isArray(matrix) && matrix.length === 6) {\n                xObjStateManager.transform(matrix);\n              }\n\n              enqueueChunk();\n              const sinkWrapper = {\n                enqueueInvoked: false,\n\n                enqueue(chunk, size) {\n                  this.enqueueInvoked = true;\n                  sink.enqueue(chunk, size);\n                },\n\n                get desiredSize() {\n                  return sink.desiredSize;\n                },\n\n                get ready() {\n                  return sink.ready;\n                }\n\n              };\n              self.getTextContent({\n                stream: xobj,\n                task,\n                resources: xobj.dict.get(\"Resources\") || resources,\n                stateManager: xObjStateManager,\n                combineTextItems,\n                includeMarkedContent,\n                sink: sinkWrapper,\n                seenStyles,\n                viewBox\n              }).then(function () {\n                if (!sinkWrapper.enqueueInvoked) {\n                  emptyXObjectCache.set(name, xobj.dict.objId, true);\n                }\n\n                resolveXObject();\n              }, rejectXObject);\n            }).catch(function (reason) {\n              if (reason instanceof _util.AbortException) {\n                return;\n              }\n\n              if (self.options.ignoreErrors) {\n                (0, _util.warn)(`getTextContent - ignoring XObject: \"${reason}\".`);\n                return;\n              }\n\n              throw reason;\n            }));\n            return;\n\n          case _util.OPS.setGState:\n            isValidName = args[0] instanceof _primitives.Name;\n            name = args[0].name;\n\n            if (isValidName && emptyGStateCache.getByName(name)) {\n              break;\n            }\n\n            next(new Promise(function (resolveGState, rejectGState) {\n              if (!isValidName) {\n                throw new _util.FormatError(\"GState must be referred to by name.\");\n              }\n\n              const extGState = resources.get(\"ExtGState\");\n\n              if (!(extGState instanceof _primitives.Dict)) {\n                throw new _util.FormatError(\"ExtGState should be a dictionary.\");\n              }\n\n              const gState = extGState.get(name);\n\n              if (!(gState instanceof _primitives.Dict)) {\n                throw new _util.FormatError(\"GState should be a dictionary.\");\n              }\n\n              const gStateFont = gState.get(\"Font\");\n\n              if (!gStateFont) {\n                emptyGStateCache.set(name, gState.objId, true);\n                resolveGState();\n                return;\n              }\n\n              flushTextContentItem();\n              textState.fontName = null;\n              textState.fontSize = gStateFont[1];\n              handleSetFont(null, gStateFont[0]).then(resolveGState, rejectGState);\n            }).catch(function (reason) {\n              if (reason instanceof _util.AbortException) {\n                return;\n              }\n\n              if (self.options.ignoreErrors) {\n                (0, _util.warn)(`getTextContent - ignoring ExtGState: \"${reason}\".`);\n                return;\n              }\n\n              throw reason;\n            }));\n            return;\n\n          case _util.OPS.beginMarkedContent:\n            flushTextContentItem();\n\n            if (includeMarkedContent) {\n              textContent.items.push({\n                type: \"beginMarkedContent\",\n                tag: args[0] instanceof _primitives.Name ? args[0].name : null\n              });\n            }\n\n            break;\n\n          case _util.OPS.beginMarkedContentProps:\n            flushTextContentItem();\n\n            if (includeMarkedContent) {\n              let mcid = null;\n\n              if (args[1] instanceof _primitives.Dict) {\n                mcid = args[1].get(\"MCID\");\n              }\n\n              textContent.items.push({\n                type: \"beginMarkedContentProps\",\n                id: Number.isInteger(mcid) ? `${self.idFactory.getPageObjId()}_mcid${mcid}` : null,\n                tag: args[0] instanceof _primitives.Name ? args[0].name : null\n              });\n            }\n\n            break;\n\n          case _util.OPS.endMarkedContent:\n            flushTextContentItem();\n\n            if (includeMarkedContent) {\n              textContent.items.push({\n                type: \"endMarkedContent\"\n              });\n            }\n\n            break;\n        }\n\n        if (textContent.items.length >= sink.desiredSize) {\n          stop = true;\n          break;\n        }\n      }\n\n      if (stop) {\n        next(deferred);\n        return;\n      }\n\n      flushTextContentItem();\n      enqueueChunk();\n      resolve();\n    }).catch(reason => {\n      if (reason instanceof _util.AbortException) {\n        return;\n      }\n\n      if (this.options.ignoreErrors) {\n        (0, _util.warn)(`getTextContent - ignoring errors during \"${task.name}\" ` + `task: \"${reason}\".`);\n        flushTextContentItem();\n        enqueueChunk();\n        return;\n      }\n\n      throw reason;\n    });\n  }\n\n  extractDataStructures(dict, baseDict, properties) {\n    const xref = this.xref;\n    let cidToGidBytes;\n    const toUnicodePromise = this.readToUnicode(properties.toUnicode || dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\"));\n\n    if (properties.composite) {\n      const cidSystemInfo = dict.get(\"CIDSystemInfo\");\n\n      if (cidSystemInfo instanceof _primitives.Dict) {\n        properties.cidSystemInfo = {\n          registry: (0, _util.stringToPDFString)(cidSystemInfo.get(\"Registry\")),\n          ordering: (0, _util.stringToPDFString)(cidSystemInfo.get(\"Ordering\")),\n          supplement: cidSystemInfo.get(\"Supplement\")\n        };\n      }\n\n      try {\n        const cidToGidMap = dict.get(\"CIDToGIDMap\");\n\n        if (cidToGidMap instanceof _base_stream.BaseStream) {\n          cidToGidBytes = cidToGidMap.getBytes();\n        }\n      } catch (ex) {\n        if (!this.options.ignoreErrors) {\n          throw ex;\n        }\n\n        (0, _util.warn)(`extractDataStructures - ignoring CIDToGIDMap data: \"${ex}\".`);\n      }\n    }\n\n    const differences = [];\n    let baseEncodingName = null;\n    let encoding;\n\n    if (dict.has(\"Encoding\")) {\n      encoding = dict.get(\"Encoding\");\n\n      if (encoding instanceof _primitives.Dict) {\n        baseEncodingName = encoding.get(\"BaseEncoding\");\n        baseEncodingName = baseEncodingName instanceof _primitives.Name ? baseEncodingName.name : null;\n\n        if (encoding.has(\"Differences\")) {\n          const diffEncoding = encoding.get(\"Differences\");\n          let index = 0;\n\n          for (let j = 0, jj = diffEncoding.length; j < jj; j++) {\n            const data = xref.fetchIfRef(diffEncoding[j]);\n\n            if (typeof data === \"number\") {\n              index = data;\n            } else if (data instanceof _primitives.Name) {\n              differences[index++] = data.name;\n            } else {\n              throw new _util.FormatError(`Invalid entry in 'Differences' array: ${data}`);\n            }\n          }\n        }\n      } else if (encoding instanceof _primitives.Name) {\n        baseEncodingName = encoding.name;\n      } else {\n        const msg = \"Encoding is not a Name nor a Dict\";\n\n        if (!this.options.ignoreErrors) {\n          throw new _util.FormatError(msg);\n        }\n\n        (0, _util.warn)(msg);\n      }\n\n      if (baseEncodingName !== \"MacRomanEncoding\" && baseEncodingName !== \"MacExpertEncoding\" && baseEncodingName !== \"WinAnsiEncoding\") {\n        baseEncodingName = null;\n      }\n    }\n\n    if (baseEncodingName) {\n      properties.defaultEncoding = (0, _encodings.getEncoding)(baseEncodingName);\n    } else {\n      const isSymbolicFont = !!(properties.flags & _fonts_utils.FontFlags.Symbolic);\n      const isNonsymbolicFont = !!(properties.flags & _fonts_utils.FontFlags.Nonsymbolic);\n      encoding = _encodings.StandardEncoding;\n\n      if (properties.type === \"TrueType\" && !isNonsymbolicFont) {\n        encoding = _encodings.WinAnsiEncoding;\n      }\n\n      if (isSymbolicFont) {\n        encoding = _encodings.MacRomanEncoding;\n\n        if (!properties.file || properties.isInternalFont) {\n          if (/Symbol/i.test(properties.name)) {\n            encoding = _encodings.SymbolSetEncoding;\n          } else if (/Dingbats|Wingdings/i.test(properties.name)) {\n            encoding = _encodings.ZapfDingbatsEncoding;\n          }\n        }\n      }\n\n      properties.defaultEncoding = encoding;\n    }\n\n    properties.differences = differences;\n    properties.baseEncodingName = baseEncodingName;\n    properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n    properties.dict = dict;\n    return toUnicodePromise.then(readToUnicode => {\n      properties.toUnicode = readToUnicode;\n      return this.buildToUnicode(properties);\n    }).then(builtToUnicode => {\n      properties.toUnicode = builtToUnicode;\n\n      if (cidToGidBytes) {\n        properties.cidToGidMap = this.readCidToGidMap(cidToGidBytes, builtToUnicode);\n      }\n\n      return properties;\n    });\n  }\n\n  _simpleFontToUnicode(properties) {\n    let forceGlyphs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    (0, _util.assert)(!properties.composite, \"Must be a simple font.\");\n    const toUnicode = [];\n    const encoding = properties.defaultEncoding.slice();\n    const baseEncodingName = properties.baseEncodingName;\n    const differences = properties.differences;\n\n    for (const charcode in differences) {\n      const glyphName = differences[charcode];\n\n      if (glyphName === \".notdef\") {\n        continue;\n      }\n\n      encoding[charcode] = glyphName;\n    }\n\n    const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n    for (const charcode in encoding) {\n      let glyphName = encoding[charcode];\n\n      if (glyphName === \"\") {\n        continue;\n      } else if (glyphsUnicodeMap[glyphName] === undefined) {\n        let code = 0;\n\n        switch (glyphName[0]) {\n          case \"G\":\n            if (glyphName.length === 3) {\n              code = parseInt(glyphName.substring(1), 16);\n            }\n\n            break;\n\n          case \"g\":\n            if (glyphName.length === 5) {\n              code = parseInt(glyphName.substring(1), 16);\n            }\n\n            break;\n\n          case \"C\":\n          case \"c\":\n            if (glyphName.length >= 3 && glyphName.length <= 4) {\n              const codeStr = glyphName.substring(1);\n\n              if (forceGlyphs) {\n                code = parseInt(codeStr, 16);\n                break;\n              }\n\n              code = +codeStr;\n\n              if (Number.isNaN(code) && Number.isInteger(parseInt(codeStr, 16))) {\n                return this._simpleFontToUnicode(properties, true);\n              }\n            }\n\n            break;\n\n          default:\n            const unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n            if (unicode !== -1) {\n              code = unicode;\n            }\n\n        }\n\n        if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) {\n          if (baseEncodingName && code === +charcode) {\n            const baseEncoding = (0, _encodings.getEncoding)(baseEncodingName);\n\n            if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n              toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n              continue;\n            }\n          }\n\n          toUnicode[charcode] = String.fromCodePoint(code);\n        }\n\n        continue;\n      }\n\n      toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n    }\n\n    return toUnicode;\n  }\n\n  async buildToUnicode(properties) {\n    properties.hasIncludedToUnicodeMap = !!properties.toUnicode && properties.toUnicode.length > 0;\n\n    if (properties.hasIncludedToUnicodeMap) {\n      if (!properties.composite && properties.hasEncoding) {\n        properties.fallbackToUnicode = this._simpleFontToUnicode(properties);\n      }\n\n      return properties.toUnicode;\n    }\n\n    if (!properties.composite) {\n      return new _to_unicode_map.ToUnicodeMap(this._simpleFontToUnicode(properties));\n    }\n\n    if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof _cmap.IdentityCMap) || properties.cidSystemInfo.registry === \"Adobe\" && (properties.cidSystemInfo.ordering === \"GB1\" || properties.cidSystemInfo.ordering === \"CNS1\" || properties.cidSystemInfo.ordering === \"Japan1\" || properties.cidSystemInfo.ordering === \"Korea1\"))) {\n      const {\n        registry,\n        ordering\n      } = properties.cidSystemInfo;\n\n      const ucs2CMapName = _primitives.Name.get(`${registry}-${ordering}-UCS2`);\n\n      const ucs2CMap = await _cmap.CMapFactory.create({\n        encoding: ucs2CMapName,\n        fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n        useCMap: null\n      });\n      const toUnicode = [];\n      properties.cMap.forEach(function (charcode, cid) {\n        if (cid > 0xffff) {\n          throw new _util.FormatError(\"Max size of CID is 65,535\");\n        }\n\n        const ucs2 = ucs2CMap.lookup(cid);\n\n        if (ucs2) {\n          toUnicode[charcode] = String.fromCharCode((ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1));\n        }\n      });\n      return new _to_unicode_map.ToUnicodeMap(toUnicode);\n    }\n\n    return new _to_unicode_map.IdentityToUnicodeMap(properties.firstChar, properties.lastChar);\n  }\n\n  readToUnicode(cmapObj) {\n    if (!cmapObj) {\n      return Promise.resolve(null);\n    }\n\n    if (cmapObj instanceof _primitives.Name) {\n      return _cmap.CMapFactory.create({\n        encoding: cmapObj,\n        fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n        useCMap: null\n      }).then(function (cmap) {\n        if (cmap instanceof _cmap.IdentityCMap) {\n          return new _to_unicode_map.IdentityToUnicodeMap(0, 0xffff);\n        }\n\n        return new _to_unicode_map.ToUnicodeMap(cmap.getMap());\n      });\n    } else if (cmapObj instanceof _base_stream.BaseStream) {\n      return _cmap.CMapFactory.create({\n        encoding: cmapObj,\n        fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n        useCMap: null\n      }).then(function (cmap) {\n        if (cmap instanceof _cmap.IdentityCMap) {\n          return new _to_unicode_map.IdentityToUnicodeMap(0, 0xffff);\n        }\n\n        const map = new Array(cmap.length);\n        cmap.forEach(function (charCode, token) {\n          if (typeof token === \"number\") {\n            map[charCode] = String.fromCodePoint(token);\n            return;\n          }\n\n          const str = [];\n\n          for (let k = 0; k < token.length; k += 2) {\n            const w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n\n            if ((w1 & 0xf800) !== 0xd800) {\n              str.push(w1);\n              continue;\n            }\n\n            k += 2;\n            const w2 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n            str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n          }\n\n          map[charCode] = String.fromCodePoint(...str);\n        });\n        return new _to_unicode_map.ToUnicodeMap(map);\n      }, reason => {\n        if (reason instanceof _util.AbortException) {\n          return null;\n        }\n\n        if (this.options.ignoreErrors) {\n          this.handler.send(\"UnsupportedFeature\", {\n            featureId: _util.UNSUPPORTED_FEATURES.errorFontToUnicode\n          });\n          (0, _util.warn)(`readToUnicode - ignoring ToUnicode data: \"${reason}\".`);\n          return null;\n        }\n\n        throw reason;\n      });\n    }\n\n    return Promise.resolve(null);\n  }\n\n  readCidToGidMap(glyphsData, toUnicode) {\n    const result = [];\n\n    for (let j = 0, jj = glyphsData.length; j < jj; j++) {\n      const glyphID = glyphsData[j++] << 8 | glyphsData[j];\n      const code = j >> 1;\n\n      if (glyphID === 0 && !toUnicode.has(code)) {\n        continue;\n      }\n\n      result[code] = glyphID;\n    }\n\n    return result;\n  }\n\n  extractWidths(dict, descriptor, properties) {\n    const xref = this.xref;\n    let glyphsWidths = [];\n    let defaultWidth = 0;\n    const glyphsVMetrics = [];\n    let defaultVMetrics;\n    let i, ii, j, jj, start, code, widths;\n\n    if (properties.composite) {\n      defaultWidth = dict.has(\"DW\") ? dict.get(\"DW\") : 1000;\n      widths = dict.get(\"W\");\n\n      if (widths) {\n        for (i = 0, ii = widths.length; i < ii; i++) {\n          start = xref.fetchIfRef(widths[i++]);\n          code = xref.fetchIfRef(widths[i]);\n\n          if (Array.isArray(code)) {\n            for (j = 0, jj = code.length; j < jj; j++) {\n              glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n            }\n          } else {\n            const width = xref.fetchIfRef(widths[++i]);\n\n            for (j = start; j <= code; j++) {\n              glyphsWidths[j] = width;\n            }\n          }\n        }\n      }\n\n      if (properties.vertical) {\n        let vmetrics = dict.getArray(\"DW2\") || [880, -1000];\n        defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n        vmetrics = dict.get(\"W2\");\n\n        if (vmetrics) {\n          for (i = 0, ii = vmetrics.length; i < ii; i++) {\n            start = xref.fetchIfRef(vmetrics[i++]);\n            code = xref.fetchIfRef(vmetrics[i]);\n\n            if (Array.isArray(code)) {\n              for (j = 0, jj = code.length; j < jj; j++) {\n                glyphsVMetrics[start++] = [xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j])];\n              }\n            } else {\n              const vmetric = [xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i])];\n\n              for (j = start; j <= code; j++) {\n                glyphsVMetrics[j] = vmetric;\n              }\n            }\n          }\n        }\n      }\n    } else {\n      const firstChar = properties.firstChar;\n      widths = dict.get(\"Widths\");\n\n      if (widths) {\n        j = firstChar;\n\n        for (i = 0, ii = widths.length; i < ii; i++) {\n          glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n        }\n\n        defaultWidth = parseFloat(descriptor.get(\"MissingWidth\")) || 0;\n      } else {\n        const baseFontName = dict.get(\"BaseFont\");\n\n        if (baseFontName instanceof _primitives.Name) {\n          const metrics = this.getBaseFontMetrics(baseFontName.name);\n          glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n          defaultWidth = metrics.defaultWidth;\n        }\n      }\n    }\n\n    let isMonospace = true;\n    let firstWidth = defaultWidth;\n\n    for (const glyph in glyphsWidths) {\n      const glyphWidth = glyphsWidths[glyph];\n\n      if (!glyphWidth) {\n        continue;\n      }\n\n      if (!firstWidth) {\n        firstWidth = glyphWidth;\n        continue;\n      }\n\n      if (firstWidth !== glyphWidth) {\n        isMonospace = false;\n        break;\n      }\n    }\n\n    if (isMonospace) {\n      properties.flags |= _fonts_utils.FontFlags.FixedPitch;\n    }\n\n    properties.defaultWidth = defaultWidth;\n    properties.widths = glyphsWidths;\n    properties.defaultVMetrics = defaultVMetrics;\n    properties.vmetrics = glyphsVMetrics;\n  }\n\n  isSerifFont(baseFontName) {\n    const fontNameWoStyle = baseFontName.split(\"-\")[0];\n    return fontNameWoStyle in (0, _standard_fonts.getSerifFonts)() || fontNameWoStyle.search(/serif/gi) !== -1;\n  }\n\n  getBaseFontMetrics(name) {\n    let defaultWidth = 0;\n    let widths = Object.create(null);\n    let monospace = false;\n    const stdFontMap = (0, _standard_fonts.getStdFontMap)();\n    let lookupName = stdFontMap[name] || name;\n    const Metrics = (0, _metrics.getMetrics)();\n\n    if (!(lookupName in Metrics)) {\n      if (this.isSerifFont(name)) {\n        lookupName = \"Times-Roman\";\n      } else {\n        lookupName = \"Helvetica\";\n      }\n    }\n\n    const glyphWidths = Metrics[lookupName];\n\n    if (typeof glyphWidths === \"number\") {\n      defaultWidth = glyphWidths;\n      monospace = true;\n    } else {\n      widths = glyphWidths();\n    }\n\n    return {\n      defaultWidth,\n      monospace,\n      widths\n    };\n  }\n\n  buildCharCodeToWidth(widthsByGlyphName, properties) {\n    const widths = Object.create(null);\n    const differences = properties.differences;\n    const encoding = properties.defaultEncoding;\n\n    for (let charCode = 0; charCode < 256; charCode++) {\n      if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n        widths[charCode] = widthsByGlyphName[differences[charCode]];\n        continue;\n      }\n\n      if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n        widths[charCode] = widthsByGlyphName[encoding[charCode]];\n        continue;\n      }\n    }\n\n    return widths;\n  }\n\n  preEvaluateFont(dict) {\n    const baseDict = dict;\n    let type = dict.get(\"Subtype\");\n\n    if (!(type instanceof _primitives.Name)) {\n      throw new _util.FormatError(\"invalid font Subtype\");\n    }\n\n    let composite = false;\n    let hash, toUnicode;\n\n    if (type.name === \"Type0\") {\n      const df = dict.get(\"DescendantFonts\");\n\n      if (!df) {\n        throw new _util.FormatError(\"Descendant fonts are not specified\");\n      }\n\n      dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n\n      if (!(dict instanceof _primitives.Dict)) {\n        throw new _util.FormatError(\"Descendant font is not a dictionary.\");\n      }\n\n      type = dict.get(\"Subtype\");\n\n      if (!(type instanceof _primitives.Name)) {\n        throw new _util.FormatError(\"invalid font Subtype\");\n      }\n\n      composite = true;\n    }\n\n    const firstChar = dict.get(\"FirstChar\") || 0,\n          lastChar = dict.get(\"LastChar\") || (composite ? 0xffff : 0xff);\n    const descriptor = dict.get(\"FontDescriptor\");\n\n    if (descriptor) {\n      hash = new _murmurhash.MurmurHash3_64();\n      const encoding = baseDict.getRaw(\"Encoding\");\n\n      if (encoding instanceof _primitives.Name) {\n        hash.update(encoding.name);\n      } else if (encoding instanceof _primitives.Ref) {\n        hash.update(encoding.toString());\n      } else if (encoding instanceof _primitives.Dict) {\n        for (const entry of encoding.getRawValues()) {\n          if (entry instanceof _primitives.Name) {\n            hash.update(entry.name);\n          } else if (entry instanceof _primitives.Ref) {\n            hash.update(entry.toString());\n          } else if (Array.isArray(entry)) {\n            const diffLength = entry.length,\n                  diffBuf = new Array(diffLength);\n\n            for (let j = 0; j < diffLength; j++) {\n              const diffEntry = entry[j];\n\n              if (diffEntry instanceof _primitives.Name) {\n                diffBuf[j] = diffEntry.name;\n              } else if (typeof diffEntry === \"number\" || diffEntry instanceof _primitives.Ref) {\n                diffBuf[j] = diffEntry.toString();\n              }\n            }\n\n            hash.update(diffBuf.join());\n          }\n        }\n      }\n\n      hash.update(`${firstChar}-${lastChar}`);\n      toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n\n      if (toUnicode instanceof _base_stream.BaseStream) {\n        const stream = toUnicode.str || toUnicode;\n        const uint8array = stream.buffer ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength) : new Uint8Array(stream.bytes.buffer, stream.start, stream.end - stream.start);\n        hash.update(uint8array);\n      } else if (toUnicode instanceof _primitives.Name) {\n        hash.update(toUnicode.name);\n      }\n\n      const widths = dict.get(\"Widths\") || baseDict.get(\"Widths\");\n\n      if (Array.isArray(widths)) {\n        const widthsBuf = [];\n\n        for (const entry of widths) {\n          if (typeof entry === \"number\" || entry instanceof _primitives.Ref) {\n            widthsBuf.push(entry.toString());\n          }\n        }\n\n        hash.update(widthsBuf.join());\n      }\n\n      if (composite) {\n        hash.update(\"compositeFont\");\n        const compositeWidths = dict.get(\"W\") || baseDict.get(\"W\");\n\n        if (Array.isArray(compositeWidths)) {\n          const widthsBuf = [];\n\n          for (const entry of compositeWidths) {\n            if (typeof entry === \"number\" || entry instanceof _primitives.Ref) {\n              widthsBuf.push(entry.toString());\n            } else if (Array.isArray(entry)) {\n              const subWidthsBuf = [];\n\n              for (const element of entry) {\n                if (typeof element === \"number\" || element instanceof _primitives.Ref) {\n                  subWidthsBuf.push(element.toString());\n                }\n              }\n\n              widthsBuf.push(`[${subWidthsBuf.join()}]`);\n            }\n          }\n\n          hash.update(widthsBuf.join());\n        }\n\n        const cidToGidMap = dict.getRaw(\"CIDToGIDMap\") || baseDict.getRaw(\"CIDToGIDMap\");\n\n        if (cidToGidMap instanceof _primitives.Name) {\n          hash.update(cidToGidMap.name);\n        } else if (cidToGidMap instanceof _primitives.Ref) {\n          hash.update(cidToGidMap.toString());\n        } else if (cidToGidMap instanceof _base_stream.BaseStream) {\n          hash.update(cidToGidMap.peekBytes());\n        }\n      }\n    }\n\n    return {\n      descriptor,\n      dict,\n      baseDict,\n      composite,\n      type: type.name,\n      firstChar,\n      lastChar,\n      toUnicode,\n      hash: hash ? hash.hexdigest() : \"\"\n    };\n  }\n\n  async translateFont(_ref9) {\n    let {\n      descriptor,\n      dict,\n      baseDict,\n      composite,\n      type,\n      firstChar,\n      lastChar,\n      toUnicode,\n      cssFontInfo\n    } = _ref9;\n    const isType3Font = type === \"Type3\";\n    let properties;\n\n    if (!descriptor) {\n      if (isType3Font) {\n        descriptor = new _primitives.Dict(null);\n        descriptor.set(\"FontName\", _primitives.Name.get(type));\n        descriptor.set(\"FontBBox\", dict.getArray(\"FontBBox\") || [0, 0, 0, 0]);\n      } else {\n        let baseFontName = dict.get(\"BaseFont\");\n\n        if (!(baseFontName instanceof _primitives.Name)) {\n          throw new _util.FormatError(\"Base font is not specified\");\n        }\n\n        baseFontName = baseFontName.name.replace(/[,_]/g, \"-\");\n        const metrics = this.getBaseFontMetrics(baseFontName);\n        const fontNameWoStyle = baseFontName.split(\"-\")[0];\n        const flags = (this.isSerifFont(fontNameWoStyle) ? _fonts_utils.FontFlags.Serif : 0) | (metrics.monospace ? _fonts_utils.FontFlags.FixedPitch : 0) | ((0, _standard_fonts.getSymbolsFonts)()[fontNameWoStyle] ? _fonts_utils.FontFlags.Symbolic : _fonts_utils.FontFlags.Nonsymbolic);\n        properties = {\n          type,\n          name: baseFontName,\n          loadedName: baseDict.loadedName,\n          widths: metrics.widths,\n          defaultWidth: metrics.defaultWidth,\n          isSimulatedFlags: true,\n          flags,\n          firstChar,\n          lastChar,\n          toUnicode,\n          xHeight: 0,\n          capHeight: 0,\n          italicAngle: 0,\n          isType3Font\n        };\n        const widths = dict.get(\"Widths\");\n        const standardFontName = (0, _standard_fonts.getStandardFontName)(baseFontName);\n        let file = null;\n\n        if (standardFontName) {\n          properties.isStandardFont = true;\n          file = await this.fetchStandardFontData(standardFontName);\n          properties.isInternalFont = !!file;\n        }\n\n        return this.extractDataStructures(dict, dict, properties).then(newProperties => {\n          if (widths) {\n            const glyphWidths = [];\n            let j = firstChar;\n\n            for (let i = 0, ii = widths.length; i < ii; i++) {\n              glyphWidths[j++] = this.xref.fetchIfRef(widths[i]);\n            }\n\n            newProperties.widths = glyphWidths;\n          } else {\n            newProperties.widths = this.buildCharCodeToWidth(metrics.widths, newProperties);\n          }\n\n          return new _fonts.Font(baseFontName, file, newProperties);\n        });\n      }\n    }\n\n    let fontName = descriptor.get(\"FontName\");\n    let baseFont = dict.get(\"BaseFont\");\n\n    if (typeof fontName === \"string\") {\n      fontName = _primitives.Name.get(fontName);\n    }\n\n    if (typeof baseFont === \"string\") {\n      baseFont = _primitives.Name.get(baseFont);\n    }\n\n    if (!isType3Font) {\n      const fontNameStr = fontName && fontName.name;\n      const baseFontStr = baseFont && baseFont.name;\n\n      if (fontNameStr !== baseFontStr) {\n        (0, _util.info)(`The FontDescriptor's FontName is \"${fontNameStr}\" but ` + `should be the same as the Font's BaseFont \"${baseFontStr}\".`);\n\n        if (fontNameStr && baseFontStr && baseFontStr.startsWith(fontNameStr)) {\n          fontName = baseFont;\n        }\n      }\n    }\n\n    fontName = fontName || baseFont;\n\n    if (!(fontName instanceof _primitives.Name)) {\n      throw new _util.FormatError(\"invalid font name\");\n    }\n\n    let fontFile, subtype, length1, length2, length3;\n\n    try {\n      fontFile = descriptor.get(\"FontFile\", \"FontFile2\", \"FontFile3\");\n    } catch (ex) {\n      if (!this.options.ignoreErrors) {\n        throw ex;\n      }\n\n      (0, _util.warn)(`translateFont - fetching \"${fontName.name}\" font file: \"${ex}\".`);\n      fontFile = new _stream.NullStream();\n    }\n\n    let isStandardFont = false;\n    let isInternalFont = false;\n    let glyphScaleFactors = null;\n\n    if (fontFile) {\n      if (fontFile.dict) {\n        const subtypeEntry = fontFile.dict.get(\"Subtype\");\n\n        if (subtypeEntry instanceof _primitives.Name) {\n          subtype = subtypeEntry.name;\n        }\n\n        length1 = fontFile.dict.get(\"Length1\");\n        length2 = fontFile.dict.get(\"Length2\");\n        length3 = fontFile.dict.get(\"Length3\");\n      }\n    } else if (cssFontInfo) {\n      const standardFontName = (0, _xfa_fonts.getXfaFontName)(fontName.name);\n\n      if (standardFontName) {\n        cssFontInfo.fontFamily = `${cssFontInfo.fontFamily}-PdfJS-XFA`;\n        cssFontInfo.metrics = standardFontName.metrics || null;\n        glyphScaleFactors = standardFontName.factors || null;\n        fontFile = await this.fetchStandardFontData(standardFontName.name);\n        isInternalFont = !!fontFile;\n        baseDict = dict = (0, _xfa_fonts.getXfaFontDict)(fontName.name);\n        composite = true;\n      }\n    } else if (!isType3Font) {\n      const standardFontName = (0, _standard_fonts.getStandardFontName)(fontName.name);\n\n      if (standardFontName) {\n        isStandardFont = true;\n        fontFile = await this.fetchStandardFontData(standardFontName);\n        isInternalFont = !!fontFile;\n      }\n    }\n\n    properties = {\n      type,\n      name: fontName.name,\n      subtype,\n      file: fontFile,\n      length1,\n      length2,\n      length3,\n      isStandardFont,\n      isInternalFont,\n      loadedName: baseDict.loadedName,\n      composite,\n      fixedPitch: false,\n      fontMatrix: dict.getArray(\"FontMatrix\") || _util.FONT_IDENTITY_MATRIX,\n      firstChar,\n      lastChar,\n      toUnicode,\n      bbox: descriptor.getArray(\"FontBBox\") || dict.getArray(\"FontBBox\"),\n      ascent: descriptor.get(\"Ascent\"),\n      descent: descriptor.get(\"Descent\"),\n      xHeight: descriptor.get(\"XHeight\") || 0,\n      capHeight: descriptor.get(\"CapHeight\") || 0,\n      flags: descriptor.get(\"Flags\"),\n      italicAngle: descriptor.get(\"ItalicAngle\") || 0,\n      isType3Font,\n      cssFontInfo,\n      scaleFactors: glyphScaleFactors\n    };\n\n    if (composite) {\n      const cidEncoding = baseDict.get(\"Encoding\");\n\n      if (cidEncoding instanceof _primitives.Name) {\n        properties.cidEncoding = cidEncoding.name;\n      }\n\n      const cMap = await _cmap.CMapFactory.create({\n        encoding: cidEncoding,\n        fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n        useCMap: null\n      });\n      properties.cMap = cMap;\n      properties.vertical = properties.cMap.vertical;\n    }\n\n    return this.extractDataStructures(dict, baseDict, properties).then(newProperties => {\n      this.extractWidths(dict, descriptor, newProperties);\n      return new _fonts.Font(fontName.name, fontFile, newProperties);\n    });\n  }\n\n  static buildFontPaths(font, glyphs, handler, evaluatorOptions) {\n    function buildPath(fontChar) {\n      const glyphName = `${font.loadedName}_path_${fontChar}`;\n\n      try {\n        if (font.renderer.hasBuiltPath(fontChar)) {\n          return;\n        }\n\n        handler.send(\"commonobj\", [glyphName, \"FontPath\", font.renderer.getPathJs(fontChar)]);\n      } catch (reason) {\n        if (evaluatorOptions.ignoreErrors) {\n          handler.send(\"UnsupportedFeature\", {\n            featureId: _util.UNSUPPORTED_FEATURES.errorFontBuildPath\n          });\n          (0, _util.warn)(`buildFontPaths - ignoring ${glyphName} glyph: \"${reason}\".`);\n          return;\n        }\n\n        throw reason;\n      }\n    }\n\n    for (const glyph of glyphs) {\n      buildPath(glyph.fontChar);\n      const accent = glyph.accent;\n\n      if (accent && accent.fontChar) {\n        buildPath(accent.fontChar);\n      }\n    }\n  }\n\n  static get fallbackFontDict() {\n    const dict = new _primitives.Dict();\n    dict.set(\"BaseFont\", _primitives.Name.get(\"PDFJS-FallbackFont\"));\n    dict.set(\"Type\", _primitives.Name.get(\"FallbackType\"));\n    dict.set(\"Subtype\", _primitives.Name.get(\"FallbackType\"));\n    dict.set(\"Encoding\", _primitives.Name.get(\"WinAnsiEncoding\"));\n    return (0, _util.shadow)(this, \"fallbackFontDict\", dict);\n  }\n\n}\n\nexports.PartialEvaluator = PartialEvaluator;\n\nclass TranslatedFont {\n  constructor(_ref10) {\n    let {\n      loadedName,\n      font,\n      dict,\n      evaluatorOptions\n    } = _ref10;\n    this.loadedName = loadedName;\n    this.font = font;\n    this.dict = dict;\n    this._evaluatorOptions = evaluatorOptions || DefaultPartialEvaluatorOptions;\n    this.type3Loaded = null;\n    this.type3Dependencies = font.isType3Font ? new Set() : null;\n    this.sent = false;\n  }\n\n  send(handler) {\n    if (this.sent) {\n      return;\n    }\n\n    this.sent = true;\n    handler.send(\"commonobj\", [this.loadedName, \"Font\", this.font.exportData(this._evaluatorOptions.fontExtraProperties)]);\n  }\n\n  fallback(handler) {\n    if (!this.font.data) {\n      return;\n    }\n\n    this.font.disableFontFace = true;\n    PartialEvaluator.buildFontPaths(this.font, this.font.glyphCacheValues, handler, this._evaluatorOptions);\n  }\n\n  loadType3Data(evaluator, resources, task) {\n    if (this.type3Loaded) {\n      return this.type3Loaded;\n    }\n\n    if (!this.font.isType3Font) {\n      throw new Error(\"Must be a Type3 font.\");\n    }\n\n    const type3Evaluator = evaluator.clone({\n      ignoreErrors: false\n    });\n    type3Evaluator.parsingType3Font = true;\n    const type3FontRefs = new _primitives.RefSet(evaluator.type3FontRefs);\n\n    if (this.dict.objId && !type3FontRefs.has(this.dict.objId)) {\n      type3FontRefs.put(this.dict.objId);\n    }\n\n    type3Evaluator.type3FontRefs = type3FontRefs;\n    const translatedFont = this.font,\n          type3Dependencies = this.type3Dependencies;\n    let loadCharProcsPromise = Promise.resolve();\n    const charProcs = this.dict.get(\"CharProcs\");\n    const fontResources = this.dict.get(\"Resources\") || resources;\n    const charProcOperatorList = Object.create(null);\n\n    const fontBBox = _util.Util.normalizeRect(translatedFont.bbox || [0, 0, 0, 0]),\n          width = fontBBox[2] - fontBBox[0],\n          height = fontBBox[3] - fontBBox[1];\n\n    const fontBBoxSize = Math.hypot(width, height);\n\n    for (const key of charProcs.getKeys()) {\n      loadCharProcsPromise = loadCharProcsPromise.then(() => {\n        const glyphStream = charProcs.get(key);\n        const operatorList = new _operator_list.OperatorList();\n        return type3Evaluator.getOperatorList({\n          stream: glyphStream,\n          task,\n          resources: fontResources,\n          operatorList\n        }).then(() => {\n          if (operatorList.fnArray[0] === _util.OPS.setCharWidthAndBounds) {\n            this._removeType3ColorOperators(operatorList, fontBBoxSize);\n          }\n\n          charProcOperatorList[key] = operatorList.getIR();\n\n          for (const dependency of operatorList.dependencies) {\n            type3Dependencies.add(dependency);\n          }\n        }).catch(function (reason) {\n          (0, _util.warn)(`Type3 font resource \"${key}\" is not available.`);\n          const dummyOperatorList = new _operator_list.OperatorList();\n          charProcOperatorList[key] = dummyOperatorList.getIR();\n        });\n      });\n    }\n\n    this.type3Loaded = loadCharProcsPromise.then(() => {\n      translatedFont.charProcOperatorList = charProcOperatorList;\n\n      if (this._bbox) {\n        translatedFont.isCharBBox = true;\n        translatedFont.bbox = this._bbox;\n      }\n    });\n    return this.type3Loaded;\n  }\n\n  _removeType3ColorOperators(operatorList) {\n    let fontBBoxSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\n\n    const charBBox = _util.Util.normalizeRect(operatorList.argsArray[0].slice(2)),\n          width = charBBox[2] - charBBox[0],\n          height = charBBox[3] - charBBox[1];\n\n    const charBBoxSize = Math.hypot(width, height);\n\n    if (width === 0 || height === 0) {\n      operatorList.fnArray.splice(0, 1);\n      operatorList.argsArray.splice(0, 1);\n    } else if (fontBBoxSize === 0 || Math.round(charBBoxSize / fontBBoxSize) >= 10) {\n      if (!this._bbox) {\n        this._bbox = [Infinity, Infinity, -Infinity, -Infinity];\n      }\n\n      this._bbox[0] = Math.min(this._bbox[0], charBBox[0]);\n      this._bbox[1] = Math.min(this._bbox[1], charBBox[1]);\n      this._bbox[2] = Math.max(this._bbox[2], charBBox[2]);\n      this._bbox[3] = Math.max(this._bbox[3], charBBox[3]);\n    }\n\n    let i = 0,\n        ii = operatorList.length;\n\n    while (i < ii) {\n      switch (operatorList.fnArray[i]) {\n        case _util.OPS.setCharWidthAndBounds:\n          break;\n\n        case _util.OPS.setStrokeColorSpace:\n        case _util.OPS.setFillColorSpace:\n        case _util.OPS.setStrokeColor:\n        case _util.OPS.setStrokeColorN:\n        case _util.OPS.setFillColor:\n        case _util.OPS.setFillColorN:\n        case _util.OPS.setStrokeGray:\n        case _util.OPS.setFillGray:\n        case _util.OPS.setStrokeRGBColor:\n        case _util.OPS.setFillRGBColor:\n        case _util.OPS.setStrokeCMYKColor:\n        case _util.OPS.setFillCMYKColor:\n        case _util.OPS.shadingFill:\n        case _util.OPS.setRenderingIntent:\n          operatorList.fnArray.splice(i, 1);\n          operatorList.argsArray.splice(i, 1);\n          ii--;\n          continue;\n\n        case _util.OPS.setGState:\n          const [gStateObj] = operatorList.argsArray[i];\n          let j = 0,\n              jj = gStateObj.length;\n\n          while (j < jj) {\n            const [gStateKey] = gStateObj[j];\n\n            switch (gStateKey) {\n              case \"TR\":\n              case \"TR2\":\n              case \"HT\":\n              case \"BG\":\n              case \"BG2\":\n              case \"UCR\":\n              case \"UCR2\":\n                gStateObj.splice(j, 1);\n                jj--;\n                continue;\n            }\n\n            j++;\n          }\n\n          break;\n      }\n\n      i++;\n    }\n  }\n\n}\n\nclass StateManager {\n  constructor() {\n    let initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new EvalState();\n    this.state = initialState;\n    this.stateStack = [];\n  }\n\n  save() {\n    const old = this.state;\n    this.stateStack.push(this.state);\n    this.state = old.clone();\n  }\n\n  restore() {\n    const prev = this.stateStack.pop();\n\n    if (prev) {\n      this.state = prev;\n    }\n  }\n\n  transform(args) {\n    this.state.ctm = _util.Util.transform(this.state.ctm, args);\n  }\n\n}\n\nclass TextState {\n  constructor() {\n    this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n    this.fontName = null;\n    this.fontSize = 0;\n    this.font = null;\n    this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n    this.textMatrix = _util.IDENTITY_MATRIX.slice();\n    this.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n    this.charSpacing = 0;\n    this.wordSpacing = 0;\n    this.leading = 0;\n    this.textHScale = 1;\n    this.textRise = 0;\n  }\n\n  setTextMatrix(a, b, c, d, e, f) {\n    const m = this.textMatrix;\n    m[0] = a;\n    m[1] = b;\n    m[2] = c;\n    m[3] = d;\n    m[4] = e;\n    m[5] = f;\n  }\n\n  setTextLineMatrix(a, b, c, d, e, f) {\n    const m = this.textLineMatrix;\n    m[0] = a;\n    m[1] = b;\n    m[2] = c;\n    m[3] = d;\n    m[4] = e;\n    m[5] = f;\n  }\n\n  translateTextMatrix(x, y) {\n    const m = this.textMatrix;\n    m[4] = m[0] * x + m[2] * y + m[4];\n    m[5] = m[1] * x + m[3] * y + m[5];\n  }\n\n  translateTextLineMatrix(x, y) {\n    const m = this.textLineMatrix;\n    m[4] = m[0] * x + m[2] * y + m[4];\n    m[5] = m[1] * x + m[3] * y + m[5];\n  }\n\n  carriageReturn() {\n    this.translateTextLineMatrix(0, -this.leading);\n    this.textMatrix = this.textLineMatrix.slice();\n  }\n\n  clone() {\n    const clone = Object.create(this);\n    clone.textMatrix = this.textMatrix.slice();\n    clone.textLineMatrix = this.textLineMatrix.slice();\n    clone.fontMatrix = this.fontMatrix.slice();\n    return clone;\n  }\n\n}\n\nclass EvalState {\n  constructor() {\n    this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n    this.font = null;\n    this.textRenderingMode = _util.TextRenderingMode.FILL;\n    this.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n    this.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n  }\n\n  clone() {\n    return Object.create(this);\n  }\n\n}\n\nclass EvaluatorPreprocessor {\n  static get opMap() {\n    const getOPMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n      t.w = {\n        id: _util.OPS.setLineWidth,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.J = {\n        id: _util.OPS.setLineCap,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.j = {\n        id: _util.OPS.setLineJoin,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.M = {\n        id: _util.OPS.setMiterLimit,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.d = {\n        id: _util.OPS.setDash,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.ri = {\n        id: _util.OPS.setRenderingIntent,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.i = {\n        id: _util.OPS.setFlatness,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.gs = {\n        id: _util.OPS.setGState,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.q = {\n        id: _util.OPS.save,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.Q = {\n        id: _util.OPS.restore,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.cm = {\n        id: _util.OPS.transform,\n        numArgs: 6,\n        variableArgs: false\n      };\n      t.m = {\n        id: _util.OPS.moveTo,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.l = {\n        id: _util.OPS.lineTo,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.c = {\n        id: _util.OPS.curveTo,\n        numArgs: 6,\n        variableArgs: false\n      };\n      t.v = {\n        id: _util.OPS.curveTo2,\n        numArgs: 4,\n        variableArgs: false\n      };\n      t.y = {\n        id: _util.OPS.curveTo3,\n        numArgs: 4,\n        variableArgs: false\n      };\n      t.h = {\n        id: _util.OPS.closePath,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.re = {\n        id: _util.OPS.rectangle,\n        numArgs: 4,\n        variableArgs: false\n      };\n      t.S = {\n        id: _util.OPS.stroke,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.s = {\n        id: _util.OPS.closeStroke,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.f = {\n        id: _util.OPS.fill,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.F = {\n        id: _util.OPS.fill,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t[\"f*\"] = {\n        id: _util.OPS.eoFill,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.B = {\n        id: _util.OPS.fillStroke,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t[\"B*\"] = {\n        id: _util.OPS.eoFillStroke,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.b = {\n        id: _util.OPS.closeFillStroke,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t[\"b*\"] = {\n        id: _util.OPS.closeEOFillStroke,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.n = {\n        id: _util.OPS.endPath,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.W = {\n        id: _util.OPS.clip,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t[\"W*\"] = {\n        id: _util.OPS.eoClip,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.BT = {\n        id: _util.OPS.beginText,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.ET = {\n        id: _util.OPS.endText,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.Tc = {\n        id: _util.OPS.setCharSpacing,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.Tw = {\n        id: _util.OPS.setWordSpacing,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.Tz = {\n        id: _util.OPS.setHScale,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.TL = {\n        id: _util.OPS.setLeading,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.Tf = {\n        id: _util.OPS.setFont,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.Tr = {\n        id: _util.OPS.setTextRenderingMode,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.Ts = {\n        id: _util.OPS.setTextRise,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.Td = {\n        id: _util.OPS.moveText,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.TD = {\n        id: _util.OPS.setLeadingMoveText,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.Tm = {\n        id: _util.OPS.setTextMatrix,\n        numArgs: 6,\n        variableArgs: false\n      };\n      t[\"T*\"] = {\n        id: _util.OPS.nextLine,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.Tj = {\n        id: _util.OPS.showText,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.TJ = {\n        id: _util.OPS.showSpacedText,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t[\"'\"] = {\n        id: _util.OPS.nextLineShowText,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t['\"'] = {\n        id: _util.OPS.nextLineSetSpacingShowText,\n        numArgs: 3,\n        variableArgs: false\n      };\n      t.d0 = {\n        id: _util.OPS.setCharWidth,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.d1 = {\n        id: _util.OPS.setCharWidthAndBounds,\n        numArgs: 6,\n        variableArgs: false\n      };\n      t.CS = {\n        id: _util.OPS.setStrokeColorSpace,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.cs = {\n        id: _util.OPS.setFillColorSpace,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.SC = {\n        id: _util.OPS.setStrokeColor,\n        numArgs: 4,\n        variableArgs: true\n      };\n      t.SCN = {\n        id: _util.OPS.setStrokeColorN,\n        numArgs: 33,\n        variableArgs: true\n      };\n      t.sc = {\n        id: _util.OPS.setFillColor,\n        numArgs: 4,\n        variableArgs: true\n      };\n      t.scn = {\n        id: _util.OPS.setFillColorN,\n        numArgs: 33,\n        variableArgs: true\n      };\n      t.G = {\n        id: _util.OPS.setStrokeGray,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.g = {\n        id: _util.OPS.setFillGray,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.RG = {\n        id: _util.OPS.setStrokeRGBColor,\n        numArgs: 3,\n        variableArgs: false\n      };\n      t.rg = {\n        id: _util.OPS.setFillRGBColor,\n        numArgs: 3,\n        variableArgs: false\n      };\n      t.K = {\n        id: _util.OPS.setStrokeCMYKColor,\n        numArgs: 4,\n        variableArgs: false\n      };\n      t.k = {\n        id: _util.OPS.setFillCMYKColor,\n        numArgs: 4,\n        variableArgs: false\n      };\n      t.sh = {\n        id: _util.OPS.shadingFill,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.BI = {\n        id: _util.OPS.beginInlineImage,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.ID = {\n        id: _util.OPS.beginImageData,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.EI = {\n        id: _util.OPS.endInlineImage,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.Do = {\n        id: _util.OPS.paintXObject,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.MP = {\n        id: _util.OPS.markPoint,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.DP = {\n        id: _util.OPS.markPointProps,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.BMC = {\n        id: _util.OPS.beginMarkedContent,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.BDC = {\n        id: _util.OPS.beginMarkedContentProps,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.EMC = {\n        id: _util.OPS.endMarkedContent,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.BX = {\n        id: _util.OPS.beginCompat,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.EX = {\n        id: _util.OPS.endCompat,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.BM = null;\n      t.BD = null;\n      t.true = null;\n      t.fa = null;\n      t.fal = null;\n      t.fals = null;\n      t.false = null;\n      t.nu = null;\n      t.nul = null;\n      t.null = null;\n    });\n    return (0, _util.shadow)(this, \"opMap\", getOPMap());\n  }\n\n  static get MAX_INVALID_PATH_OPS() {\n    return (0, _util.shadow)(this, \"MAX_INVALID_PATH_OPS\", 10);\n  }\n\n  constructor(stream, xref) {\n    let stateManager = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new StateManager();\n    this.parser = new _parser.Parser({\n      lexer: new _parser.Lexer(stream, EvaluatorPreprocessor.opMap),\n      xref\n    });\n    this.stateManager = stateManager;\n    this.nonProcessedArgs = [];\n    this._isPathOp = false;\n    this._numInvalidPathOPS = 0;\n  }\n\n  get savedStatesDepth() {\n    return this.stateManager.stateStack.length;\n  }\n\n  read(operation) {\n    let args = operation.args;\n\n    while (true) {\n      const obj = this.parser.getObj();\n\n      if (obj instanceof _primitives.Cmd) {\n        const cmd = obj.cmd;\n        const opSpec = EvaluatorPreprocessor.opMap[cmd];\n\n        if (!opSpec) {\n          (0, _util.warn)(`Unknown command \"${cmd}\".`);\n          continue;\n        }\n\n        const fn = opSpec.id;\n        const numArgs = opSpec.numArgs;\n        let argsLength = args !== null ? args.length : 0;\n\n        if (!this._isPathOp) {\n          this._numInvalidPathOPS = 0;\n        }\n\n        this._isPathOp = fn >= _util.OPS.moveTo && fn <= _util.OPS.endPath;\n\n        if (!opSpec.variableArgs) {\n          if (argsLength !== numArgs) {\n            const nonProcessedArgs = this.nonProcessedArgs;\n\n            while (argsLength > numArgs) {\n              nonProcessedArgs.push(args.shift());\n              argsLength--;\n            }\n\n            while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n              if (args === null) {\n                args = [];\n              }\n\n              args.unshift(nonProcessedArgs.pop());\n              argsLength++;\n            }\n          }\n\n          if (argsLength < numArgs) {\n            const partialMsg = `command ${cmd}: expected ${numArgs} args, ` + `but received ${argsLength} args.`;\n\n            if (this._isPathOp && ++this._numInvalidPathOPS > EvaluatorPreprocessor.MAX_INVALID_PATH_OPS) {\n              throw new _util.FormatError(`Invalid ${partialMsg}`);\n            }\n\n            (0, _util.warn)(`Skipping ${partialMsg}`);\n\n            if (args !== null) {\n              args.length = 0;\n            }\n\n            continue;\n          }\n        } else if (argsLength > numArgs) {\n          (0, _util.info)(`Command ${cmd}: expected [0, ${numArgs}] args, ` + `but received ${argsLength} args.`);\n        }\n\n        this.preprocessCommand(fn, args);\n        operation.fn = fn;\n        operation.args = args;\n        return true;\n      }\n\n      if (obj === _primitives.EOF) {\n        return false;\n      }\n\n      if (obj !== null) {\n        if (args === null) {\n          args = [];\n        }\n\n        args.push(obj);\n\n        if (args.length > 33) {\n          throw new _util.FormatError(\"Too many arguments\");\n        }\n      }\n    }\n  }\n\n  preprocessCommand(fn, args) {\n    switch (fn | 0) {\n      case _util.OPS.save:\n        this.stateManager.save();\n        break;\n\n      case _util.OPS.restore:\n        this.stateManager.restore();\n        break;\n\n      case _util.OPS.transform:\n        this.stateManager.transform(args);\n        break;\n    }\n  }\n\n}\n\nexports.EvaluatorPreprocessor = EvaluatorPreprocessor;\n\n/***/ }),\n/* 141 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.IdentityCMap = exports.CMapFactory = exports.CMap = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _parser = __w_pdfjs_require__(142);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _stream = __w_pdfjs_require__(135);\n\nconst BUILT_IN_CMAPS = [\"Adobe-GB1-UCS2\", \"Adobe-CNS1-UCS2\", \"Adobe-Japan1-UCS2\", \"Adobe-Korea1-UCS2\", \"78-EUC-H\", \"78-EUC-V\", \"78-H\", \"78-RKSJ-H\", \"78-RKSJ-V\", \"78-V\", \"78ms-RKSJ-H\", \"78ms-RKSJ-V\", \"83pv-RKSJ-H\", \"90ms-RKSJ-H\", \"90ms-RKSJ-V\", \"90msp-RKSJ-H\", \"90msp-RKSJ-V\", \"90pv-RKSJ-H\", \"90pv-RKSJ-V\", \"Add-H\", \"Add-RKSJ-H\", \"Add-RKSJ-V\", \"Add-V\", \"Adobe-CNS1-0\", \"Adobe-CNS1-1\", \"Adobe-CNS1-2\", \"Adobe-CNS1-3\", \"Adobe-CNS1-4\", \"Adobe-CNS1-5\", \"Adobe-CNS1-6\", \"Adobe-GB1-0\", \"Adobe-GB1-1\", \"Adobe-GB1-2\", \"Adobe-GB1-3\", \"Adobe-GB1-4\", \"Adobe-GB1-5\", \"Adobe-Japan1-0\", \"Adobe-Japan1-1\", \"Adobe-Japan1-2\", \"Adobe-Japan1-3\", \"Adobe-Japan1-4\", \"Adobe-Japan1-5\", \"Adobe-Japan1-6\", \"Adobe-Korea1-0\", \"Adobe-Korea1-1\", \"Adobe-Korea1-2\", \"B5-H\", \"B5-V\", \"B5pc-H\", \"B5pc-V\", \"CNS-EUC-H\", \"CNS-EUC-V\", \"CNS1-H\", \"CNS1-V\", \"CNS2-H\", \"CNS2-V\", \"ETHK-B5-H\", \"ETHK-B5-V\", \"ETen-B5-H\", \"ETen-B5-V\", \"ETenms-B5-H\", \"ETenms-B5-V\", \"EUC-H\", \"EUC-V\", \"Ext-H\", \"Ext-RKSJ-H\", \"Ext-RKSJ-V\", \"Ext-V\", \"GB-EUC-H\", \"GB-EUC-V\", \"GB-H\", \"GB-V\", \"GBK-EUC-H\", \"GBK-EUC-V\", \"GBK2K-H\", \"GBK2K-V\", \"GBKp-EUC-H\", \"GBKp-EUC-V\", \"GBT-EUC-H\", \"GBT-EUC-V\", \"GBT-H\", \"GBT-V\", \"GBTpc-EUC-H\", \"GBTpc-EUC-V\", \"GBpc-EUC-H\", \"GBpc-EUC-V\", \"H\", \"HKdla-B5-H\", \"HKdla-B5-V\", \"HKdlb-B5-H\", \"HKdlb-B5-V\", \"HKgccs-B5-H\", \"HKgccs-B5-V\", \"HKm314-B5-H\", \"HKm314-B5-V\", \"HKm471-B5-H\", \"HKm471-B5-V\", \"HKscs-B5-H\", \"HKscs-B5-V\", \"Hankaku\", \"Hiragana\", \"KSC-EUC-H\", \"KSC-EUC-V\", \"KSC-H\", \"KSC-Johab-H\", \"KSC-Johab-V\", \"KSC-V\", \"KSCms-UHC-H\", \"KSCms-UHC-HW-H\", \"KSCms-UHC-HW-V\", \"KSCms-UHC-V\", \"KSCpc-EUC-H\", \"KSCpc-EUC-V\", \"Katakana\", \"NWP-H\", \"NWP-V\", \"RKSJ-H\", \"RKSJ-V\", \"Roman\", \"UniCNS-UCS2-H\", \"UniCNS-UCS2-V\", \"UniCNS-UTF16-H\", \"UniCNS-UTF16-V\", \"UniCNS-UTF32-H\", \"UniCNS-UTF32-V\", \"UniCNS-UTF8-H\", \"UniCNS-UTF8-V\", \"UniGB-UCS2-H\", \"UniGB-UCS2-V\", \"UniGB-UTF16-H\", \"UniGB-UTF16-V\", \"UniGB-UTF32-H\", \"UniGB-UTF32-V\", \"UniGB-UTF8-H\", \"UniGB-UTF8-V\", \"UniJIS-UCS2-H\", \"UniJIS-UCS2-HW-H\", \"UniJIS-UCS2-HW-V\", \"UniJIS-UCS2-V\", \"UniJIS-UTF16-H\", \"UniJIS-UTF16-V\", \"UniJIS-UTF32-H\", \"UniJIS-UTF32-V\", \"UniJIS-UTF8-H\", \"UniJIS-UTF8-V\", \"UniJIS2004-UTF16-H\", \"UniJIS2004-UTF16-V\", \"UniJIS2004-UTF32-H\", \"UniJIS2004-UTF32-V\", \"UniJIS2004-UTF8-H\", \"UniJIS2004-UTF8-V\", \"UniJISPro-UCS2-HW-V\", \"UniJISPro-UCS2-V\", \"UniJISPro-UTF8-V\", \"UniJISX0213-UTF32-H\", \"UniJISX0213-UTF32-V\", \"UniJISX02132004-UTF32-H\", \"UniJISX02132004-UTF32-V\", \"UniKS-UCS2-H\", \"UniKS-UCS2-V\", \"UniKS-UTF16-H\", \"UniKS-UTF16-V\", \"UniKS-UTF32-H\", \"UniKS-UTF32-V\", \"UniKS-UTF8-H\", \"UniKS-UTF8-V\", \"V\", \"WP-Symbol\"];\nconst MAX_MAP_RANGE = 2 ** 24 - 1;\n\nclass CMap {\n  constructor() {\n    let builtInCMap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    this.codespaceRanges = [[], [], [], []];\n    this.numCodespaceRanges = 0;\n    this._map = [];\n    this.name = \"\";\n    this.vertical = false;\n    this.useCMap = null;\n    this.builtInCMap = builtInCMap;\n  }\n\n  addCodespaceRange(n, low, high) {\n    this.codespaceRanges[n - 1].push(low, high);\n    this.numCodespaceRanges++;\n  }\n\n  mapCidRange(low, high, dstLow) {\n    if (high - low > MAX_MAP_RANGE) {\n      throw new Error(\"mapCidRange - ignoring data above MAX_MAP_RANGE.\");\n    }\n\n    while (low <= high) {\n      this._map[low++] = dstLow++;\n    }\n  }\n\n  mapBfRange(low, high, dstLow) {\n    if (high - low > MAX_MAP_RANGE) {\n      throw new Error(\"mapBfRange - ignoring data above MAX_MAP_RANGE.\");\n    }\n\n    const lastByte = dstLow.length - 1;\n\n    while (low <= high) {\n      this._map[low++] = dstLow;\n      const nextCharCode = dstLow.charCodeAt(lastByte) + 1;\n\n      if (nextCharCode > 0xff) {\n        dstLow = dstLow.substring(0, lastByte - 1) + String.fromCharCode(dstLow.charCodeAt(lastByte - 1) + 1) + \"\\x00\";\n        continue;\n      }\n\n      dstLow = dstLow.substring(0, lastByte) + String.fromCharCode(nextCharCode);\n    }\n  }\n\n  mapBfRangeToArray(low, high, array) {\n    if (high - low > MAX_MAP_RANGE) {\n      throw new Error(\"mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.\");\n    }\n\n    const ii = array.length;\n    let i = 0;\n\n    while (low <= high && i < ii) {\n      this._map[low] = array[i++];\n      ++low;\n    }\n  }\n\n  mapOne(src, dst) {\n    this._map[src] = dst;\n  }\n\n  lookup(code) {\n    return this._map[code];\n  }\n\n  contains(code) {\n    return this._map[code] !== undefined;\n  }\n\n  forEach(callback) {\n    const map = this._map;\n    const length = map.length;\n\n    if (length <= 0x10000) {\n      for (let i = 0; i < length; i++) {\n        if (map[i] !== undefined) {\n          callback(i, map[i]);\n        }\n      }\n    } else {\n      for (const i in map) {\n        callback(i, map[i]);\n      }\n    }\n  }\n\n  charCodeOf(value) {\n    const map = this._map;\n\n    if (map.length <= 0x10000) {\n      return map.indexOf(value);\n    }\n\n    for (const charCode in map) {\n      if (map[charCode] === value) {\n        return charCode | 0;\n      }\n    }\n\n    return -1;\n  }\n\n  getMap() {\n    return this._map;\n  }\n\n  readCharCode(str, offset, out) {\n    let c = 0;\n    const codespaceRanges = this.codespaceRanges;\n\n    for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n      c = (c << 8 | str.charCodeAt(offset + n)) >>> 0;\n      const codespaceRange = codespaceRanges[n];\n\n      for (let k = 0, kk = codespaceRange.length; k < kk;) {\n        const low = codespaceRange[k++];\n        const high = codespaceRange[k++];\n\n        if (c >= low && c <= high) {\n          out.charcode = c;\n          out.length = n + 1;\n          return;\n        }\n      }\n    }\n\n    out.charcode = 0;\n    out.length = 1;\n  }\n\n  getCharCodeLength(charCode) {\n    const codespaceRanges = this.codespaceRanges;\n\n    for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n      const codespaceRange = codespaceRanges[n];\n\n      for (let k = 0, kk = codespaceRange.length; k < kk;) {\n        const low = codespaceRange[k++];\n        const high = codespaceRange[k++];\n\n        if (charCode >= low && charCode <= high) {\n          return n + 1;\n        }\n      }\n    }\n\n    return 1;\n  }\n\n  get length() {\n    return this._map.length;\n  }\n\n  get isIdentityCMap() {\n    if (!(this.name === \"Identity-H\" || this.name === \"Identity-V\")) {\n      return false;\n    }\n\n    if (this._map.length !== 0x10000) {\n      return false;\n    }\n\n    for (let i = 0; i < 0x10000; i++) {\n      if (this._map[i] !== i) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n}\n\nexports.CMap = CMap;\n\nclass IdentityCMap extends CMap {\n  constructor(vertical, n) {\n    super();\n    this.vertical = vertical;\n    this.addCodespaceRange(n, 0, 0xffff);\n  }\n\n  mapCidRange(low, high, dstLow) {\n    (0, _util.unreachable)(\"should not call mapCidRange\");\n  }\n\n  mapBfRange(low, high, dstLow) {\n    (0, _util.unreachable)(\"should not call mapBfRange\");\n  }\n\n  mapBfRangeToArray(low, high, array) {\n    (0, _util.unreachable)(\"should not call mapBfRangeToArray\");\n  }\n\n  mapOne(src, dst) {\n    (0, _util.unreachable)(\"should not call mapCidOne\");\n  }\n\n  lookup(code) {\n    return Number.isInteger(code) && code <= 0xffff ? code : undefined;\n  }\n\n  contains(code) {\n    return Number.isInteger(code) && code <= 0xffff;\n  }\n\n  forEach(callback) {\n    for (let i = 0; i <= 0xffff; i++) {\n      callback(i, i);\n    }\n  }\n\n  charCodeOf(value) {\n    return Number.isInteger(value) && value <= 0xffff ? value : -1;\n  }\n\n  getMap() {\n    const map = new Array(0x10000);\n\n    for (let i = 0; i <= 0xffff; i++) {\n      map[i] = i;\n    }\n\n    return map;\n  }\n\n  get length() {\n    return 0x10000;\n  }\n\n  get isIdentityCMap() {\n    (0, _util.unreachable)(\"should not access .isIdentityCMap\");\n  }\n\n}\n\nexports.IdentityCMap = IdentityCMap;\n\nconst BinaryCMapReader = function BinaryCMapReaderClosure() {\n  function hexToInt(a, size) {\n    let n = 0;\n\n    for (let i = 0; i <= size; i++) {\n      n = n << 8 | a[i];\n    }\n\n    return n >>> 0;\n  }\n\n  function hexToStr(a, size) {\n    if (size === 1) {\n      return String.fromCharCode(a[0], a[1]);\n    }\n\n    if (size === 3) {\n      return String.fromCharCode(a[0], a[1], a[2], a[3]);\n    }\n\n    return String.fromCharCode.apply(null, a.subarray(0, size + 1));\n  }\n\n  function addHex(a, b, size) {\n    let c = 0;\n\n    for (let i = size; i >= 0; i--) {\n      c += a[i] + b[i];\n      a[i] = c & 255;\n      c >>= 8;\n    }\n  }\n\n  function incHex(a, size) {\n    let c = 1;\n\n    for (let i = size; i >= 0 && c > 0; i--) {\n      c += a[i];\n      a[i] = c & 255;\n      c >>= 8;\n    }\n  }\n\n  const MAX_NUM_SIZE = 16;\n  const MAX_ENCODED_NUM_SIZE = 19;\n\n  class BinaryCMapStream {\n    constructor(data) {\n      this.buffer = data;\n      this.pos = 0;\n      this.end = data.length;\n      this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n    }\n\n    readByte() {\n      if (this.pos >= this.end) {\n        return -1;\n      }\n\n      return this.buffer[this.pos++];\n    }\n\n    readNumber() {\n      let n = 0;\n      let last;\n\n      do {\n        const b = this.readByte();\n\n        if (b < 0) {\n          throw new _util.FormatError(\"unexpected EOF in bcmap\");\n        }\n\n        last = !(b & 0x80);\n        n = n << 7 | b & 0x7f;\n      } while (!last);\n\n      return n;\n    }\n\n    readSigned() {\n      const n = this.readNumber();\n      return n & 1 ? ~(n >>> 1) : n >>> 1;\n    }\n\n    readHex(num, size) {\n      num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n      this.pos += size + 1;\n    }\n\n    readHexNumber(num, size) {\n      let last;\n      const stack = this.tmpBuf;\n      let sp = 0;\n\n      do {\n        const b = this.readByte();\n\n        if (b < 0) {\n          throw new _util.FormatError(\"unexpected EOF in bcmap\");\n        }\n\n        last = !(b & 0x80);\n        stack[sp++] = b & 0x7f;\n      } while (!last);\n\n      let i = size,\n          buffer = 0,\n          bufferSize = 0;\n\n      while (i >= 0) {\n        while (bufferSize < 8 && stack.length > 0) {\n          buffer |= stack[--sp] << bufferSize;\n          bufferSize += 7;\n        }\n\n        num[i] = buffer & 255;\n        i--;\n        buffer >>= 8;\n        bufferSize -= 8;\n      }\n    }\n\n    readHexSigned(num, size) {\n      this.readHexNumber(num, size);\n      const sign = num[size] & 1 ? 255 : 0;\n      let c = 0;\n\n      for (let i = 0; i <= size; i++) {\n        c = (c & 1) << 8 | num[i];\n        num[i] = c >> 1 ^ sign;\n      }\n    }\n\n    readString() {\n      const len = this.readNumber();\n      let s = \"\";\n\n      for (let i = 0; i < len; i++) {\n        s += String.fromCharCode(this.readNumber());\n      }\n\n      return s;\n    }\n\n  }\n\n  class BinaryCMapReader {\n    async process(data, cMap, extend) {\n      const stream = new BinaryCMapStream(data);\n      const header = stream.readByte();\n      cMap.vertical = !!(header & 1);\n      let useCMap = null;\n      const start = new Uint8Array(MAX_NUM_SIZE);\n      const end = new Uint8Array(MAX_NUM_SIZE);\n      const char = new Uint8Array(MAX_NUM_SIZE);\n      const charCode = new Uint8Array(MAX_NUM_SIZE);\n      const tmp = new Uint8Array(MAX_NUM_SIZE);\n      let code;\n      let b;\n\n      while ((b = stream.readByte()) >= 0) {\n        const type = b >> 5;\n\n        if (type === 7) {\n          switch (b & 0x1f) {\n            case 0:\n              stream.readString();\n              break;\n\n            case 1:\n              useCMap = stream.readString();\n              break;\n          }\n\n          continue;\n        }\n\n        const sequence = !!(b & 0x10);\n        const dataSize = b & 15;\n\n        if (dataSize + 1 > MAX_NUM_SIZE) {\n          throw new Error(\"BinaryCMapReader.process: Invalid dataSize.\");\n        }\n\n        const ucs2DataSize = 1;\n        const subitemsCount = stream.readNumber();\n\n        switch (type) {\n          case 0:\n            stream.readHex(start, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n\n            for (let i = 1; i < subitemsCount; i++) {\n              incHex(end, dataSize);\n              stream.readHexNumber(start, dataSize);\n              addHex(start, end, dataSize);\n              stream.readHexNumber(end, dataSize);\n              addHex(end, start, dataSize);\n              cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n            }\n\n            break;\n\n          case 1:\n            stream.readHex(start, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            stream.readNumber();\n\n            for (let i = 1; i < subitemsCount; i++) {\n              incHex(end, dataSize);\n              stream.readHexNumber(start, dataSize);\n              addHex(start, end, dataSize);\n              stream.readHexNumber(end, dataSize);\n              addHex(end, start, dataSize);\n              stream.readNumber();\n            }\n\n            break;\n\n          case 2:\n            stream.readHex(char, dataSize);\n            code = stream.readNumber();\n            cMap.mapOne(hexToInt(char, dataSize), code);\n\n            for (let i = 1; i < subitemsCount; i++) {\n              incHex(char, dataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(tmp, dataSize);\n                addHex(char, tmp, dataSize);\n              }\n\n              code = stream.readSigned() + (code + 1);\n              cMap.mapOne(hexToInt(char, dataSize), code);\n            }\n\n            break;\n\n          case 3:\n            stream.readHex(start, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            code = stream.readNumber();\n            cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n\n            for (let i = 1; i < subitemsCount; i++) {\n              incHex(end, dataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(start, dataSize);\n                addHex(start, end, dataSize);\n              } else {\n                start.set(end);\n              }\n\n              stream.readHexNumber(end, dataSize);\n              addHex(end, start, dataSize);\n              code = stream.readNumber();\n              cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n            }\n\n            break;\n\n          case 4:\n            stream.readHex(char, ucs2DataSize);\n            stream.readHex(charCode, dataSize);\n            cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n\n            for (let i = 1; i < subitemsCount; i++) {\n              incHex(char, ucs2DataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(tmp, ucs2DataSize);\n                addHex(char, tmp, ucs2DataSize);\n              }\n\n              incHex(charCode, dataSize);\n              stream.readHexSigned(tmp, dataSize);\n              addHex(charCode, tmp, dataSize);\n              cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n            }\n\n            break;\n\n          case 5:\n            stream.readHex(start, ucs2DataSize);\n            stream.readHexNumber(end, ucs2DataSize);\n            addHex(end, start, ucs2DataSize);\n            stream.readHex(charCode, dataSize);\n            cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n\n            for (let i = 1; i < subitemsCount; i++) {\n              incHex(end, ucs2DataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(start, ucs2DataSize);\n                addHex(start, end, ucs2DataSize);\n              } else {\n                start.set(end);\n              }\n\n              stream.readHexNumber(end, ucs2DataSize);\n              addHex(end, start, ucs2DataSize);\n              stream.readHex(charCode, dataSize);\n              cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n            }\n\n            break;\n\n          default:\n            throw new Error(`BinaryCMapReader.process - unknown type: ${type}`);\n        }\n      }\n\n      if (useCMap) {\n        return extend(useCMap);\n      }\n\n      return cMap;\n    }\n\n  }\n\n  return BinaryCMapReader;\n}();\n\nconst CMapFactory = function CMapFactoryClosure() {\n  function strToInt(str) {\n    let a = 0;\n\n    for (let i = 0; i < str.length; i++) {\n      a = a << 8 | str.charCodeAt(i);\n    }\n\n    return a >>> 0;\n  }\n\n  function expectString(obj) {\n    if (typeof obj !== \"string\") {\n      throw new _util.FormatError(\"Malformed CMap: expected string.\");\n    }\n  }\n\n  function expectInt(obj) {\n    if (!Number.isInteger(obj)) {\n      throw new _util.FormatError(\"Malformed CMap: expected int.\");\n    }\n  }\n\n  function parseBfChar(cMap, lexer) {\n    while (true) {\n      let obj = lexer.getObj();\n\n      if (obj === _primitives.EOF) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, \"endbfchar\")) {\n        return;\n      }\n\n      expectString(obj);\n      const src = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      const dst = obj;\n      cMap.mapOne(src, dst);\n    }\n  }\n\n  function parseBfRange(cMap, lexer) {\n    while (true) {\n      let obj = lexer.getObj();\n\n      if (obj === _primitives.EOF) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, \"endbfrange\")) {\n        return;\n      }\n\n      expectString(obj);\n      const low = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      const high = strToInt(obj);\n      obj = lexer.getObj();\n\n      if (Number.isInteger(obj) || typeof obj === \"string\") {\n        const dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;\n        cMap.mapBfRange(low, high, dstLow);\n      } else if ((0, _primitives.isCmd)(obj, \"[\")) {\n        obj = lexer.getObj();\n        const array = [];\n\n        while (!(0, _primitives.isCmd)(obj, \"]\") && obj !== _primitives.EOF) {\n          array.push(obj);\n          obj = lexer.getObj();\n        }\n\n        cMap.mapBfRangeToArray(low, high, array);\n      } else {\n        break;\n      }\n    }\n\n    throw new _util.FormatError(\"Invalid bf range.\");\n  }\n\n  function parseCidChar(cMap, lexer) {\n    while (true) {\n      let obj = lexer.getObj();\n\n      if (obj === _primitives.EOF) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, \"endcidchar\")) {\n        return;\n      }\n\n      expectString(obj);\n      const src = strToInt(obj);\n      obj = lexer.getObj();\n      expectInt(obj);\n      const dst = obj;\n      cMap.mapOne(src, dst);\n    }\n  }\n\n  function parseCidRange(cMap, lexer) {\n    while (true) {\n      let obj = lexer.getObj();\n\n      if (obj === _primitives.EOF) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, \"endcidrange\")) {\n        return;\n      }\n\n      expectString(obj);\n      const low = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      const high = strToInt(obj);\n      obj = lexer.getObj();\n      expectInt(obj);\n      const dstLow = obj;\n      cMap.mapCidRange(low, high, dstLow);\n    }\n  }\n\n  function parseCodespaceRange(cMap, lexer) {\n    while (true) {\n      let obj = lexer.getObj();\n\n      if (obj === _primitives.EOF) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, \"endcodespacerange\")) {\n        return;\n      }\n\n      if (typeof obj !== \"string\") {\n        break;\n      }\n\n      const low = strToInt(obj);\n      obj = lexer.getObj();\n\n      if (typeof obj !== \"string\") {\n        break;\n      }\n\n      const high = strToInt(obj);\n      cMap.addCodespaceRange(obj.length, low, high);\n    }\n\n    throw new _util.FormatError(\"Invalid codespace range.\");\n  }\n\n  function parseWMode(cMap, lexer) {\n    const obj = lexer.getObj();\n\n    if (Number.isInteger(obj)) {\n      cMap.vertical = !!obj;\n    }\n  }\n\n  function parseCMapName(cMap, lexer) {\n    const obj = lexer.getObj();\n\n    if (obj instanceof _primitives.Name) {\n      cMap.name = obj.name;\n    }\n  }\n\n  async function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n    let previous, embeddedUseCMap;\n\n    objLoop: while (true) {\n      try {\n        const obj = lexer.getObj();\n\n        if (obj === _primitives.EOF) {\n          break;\n        } else if (obj instanceof _primitives.Name) {\n          if (obj.name === \"WMode\") {\n            parseWMode(cMap, lexer);\n          } else if (obj.name === \"CMapName\") {\n            parseCMapName(cMap, lexer);\n          }\n\n          previous = obj;\n        } else if (obj instanceof _primitives.Cmd) {\n          switch (obj.cmd) {\n            case \"endcmap\":\n              break objLoop;\n\n            case \"usecmap\":\n              if (previous instanceof _primitives.Name) {\n                embeddedUseCMap = previous.name;\n              }\n\n              break;\n\n            case \"begincodespacerange\":\n              parseCodespaceRange(cMap, lexer);\n              break;\n\n            case \"beginbfchar\":\n              parseBfChar(cMap, lexer);\n              break;\n\n            case \"begincidchar\":\n              parseCidChar(cMap, lexer);\n              break;\n\n            case \"beginbfrange\":\n              parseBfRange(cMap, lexer);\n              break;\n\n            case \"begincidrange\":\n              parseCidRange(cMap, lexer);\n              break;\n          }\n        }\n      } catch (ex) {\n        if (ex instanceof _core_utils.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)(\"Invalid cMap data: \" + ex);\n        continue;\n      }\n    }\n\n    if (!useCMap && embeddedUseCMap) {\n      useCMap = embeddedUseCMap;\n    }\n\n    if (useCMap) {\n      return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n    }\n\n    return cMap;\n  }\n\n  async function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n    cMap.useCMap = await createBuiltInCMap(useCMap, fetchBuiltInCMap);\n\n    if (cMap.numCodespaceRanges === 0) {\n      const useCodespaceRanges = cMap.useCMap.codespaceRanges;\n\n      for (let i = 0; i < useCodespaceRanges.length; i++) {\n        cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n      }\n\n      cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n    }\n\n    cMap.useCMap.forEach(function (key, value) {\n      if (!cMap.contains(key)) {\n        cMap.mapOne(key, cMap.useCMap.lookup(key));\n      }\n    });\n    return cMap;\n  }\n\n  async function createBuiltInCMap(name, fetchBuiltInCMap) {\n    if (name === \"Identity-H\") {\n      return new IdentityCMap(false, 2);\n    } else if (name === \"Identity-V\") {\n      return new IdentityCMap(true, 2);\n    }\n\n    if (!BUILT_IN_CMAPS.includes(name)) {\n      throw new Error(\"Unknown CMap name: \" + name);\n    }\n\n    if (!fetchBuiltInCMap) {\n      throw new Error(\"Built-in CMap parameters are not provided.\");\n    }\n\n    const {\n      cMapData,\n      compressionType\n    } = await fetchBuiltInCMap(name);\n    const cMap = new CMap(true);\n\n    if (compressionType === _util.CMapCompressionType.BINARY) {\n      return new BinaryCMapReader().process(cMapData, cMap, useCMap => {\n        return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n      });\n    }\n\n    if (compressionType === _util.CMapCompressionType.NONE) {\n      const lexer = new _parser.Lexer(new _stream.Stream(cMapData));\n      return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n    }\n\n    throw new Error(\"TODO: Only BINARY/NONE CMap compression is currently supported.\");\n  }\n\n  return {\n    async create(params) {\n      const encoding = params.encoding;\n      const fetchBuiltInCMap = params.fetchBuiltInCMap;\n      const useCMap = params.useCMap;\n\n      if (encoding instanceof _primitives.Name) {\n        return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n      } else if (encoding instanceof _base_stream.BaseStream) {\n        const parsedCMap = await parseCMap(new CMap(), new _parser.Lexer(encoding), fetchBuiltInCMap, useCMap);\n\n        if (parsedCMap.isIdentityCMap) {\n          return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n        }\n\n        return parsedCMap;\n      }\n\n      throw new Error(\"Encoding required.\");\n    }\n\n  };\n}();\n\nexports.CMapFactory = CMapFactory;\n\n/***/ }),\n/* 142 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Parser = exports.Linearization = exports.Lexer = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _ascii_85_stream = __w_pdfjs_require__(143);\n\nvar _ascii_hex_stream = __w_pdfjs_require__(145);\n\nvar _ccitt_stream = __w_pdfjs_require__(146);\n\nvar _flate_stream = __w_pdfjs_require__(148);\n\nvar _jbig2_stream = __w_pdfjs_require__(149);\n\nvar _jpeg_stream = __w_pdfjs_require__(152);\n\nvar _jpx_stream = __w_pdfjs_require__(154);\n\nvar _lzw_stream = __w_pdfjs_require__(156);\n\nvar _stream = __w_pdfjs_require__(135);\n\nvar _predictor_stream = __w_pdfjs_require__(157);\n\nvar _run_length_stream = __w_pdfjs_require__(158);\n\nconst MAX_LENGTH_TO_CACHE = 1000;\nconst MAX_ADLER32_LENGTH = 5552;\n\nfunction computeAdler32(bytes) {\n  const bytesLength = bytes.length;\n  let a = 1,\n      b = 0;\n\n  for (let i = 0; i < bytesLength; ++i) {\n    a += bytes[i] & 0xff;\n    b += a;\n  }\n\n  return b % 65521 << 16 | a % 65521;\n}\n\nclass Parser {\n  constructor(_ref) {\n    let {\n      lexer,\n      xref,\n      allowStreams = false,\n      recoveryMode = false\n    } = _ref;\n    this.lexer = lexer;\n    this.xref = xref;\n    this.allowStreams = allowStreams;\n    this.recoveryMode = recoveryMode;\n    this.imageCache = Object.create(null);\n    this.refill();\n  }\n\n  refill() {\n    this.buf1 = this.lexer.getObj();\n    this.buf2 = this.lexer.getObj();\n  }\n\n  shift() {\n    if (this.buf2 instanceof _primitives.Cmd && this.buf2.cmd === \"ID\") {\n      this.buf1 = this.buf2;\n      this.buf2 = null;\n    } else {\n      this.buf1 = this.buf2;\n      this.buf2 = this.lexer.getObj();\n    }\n  }\n\n  tryShift() {\n    try {\n      this.shift();\n      return true;\n    } catch (e) {\n      if (e instanceof _core_utils.MissingDataException) {\n        throw e;\n      }\n\n      return false;\n    }\n  }\n\n  getObj() {\n    let cipherTransform = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    const buf1 = this.buf1;\n    this.shift();\n\n    if (buf1 instanceof _primitives.Cmd) {\n      switch (buf1.cmd) {\n        case \"BI\":\n          return this.makeInlineImage(cipherTransform);\n\n        case \"[\":\n          const array = [];\n\n          while (!(0, _primitives.isCmd)(this.buf1, \"]\") && this.buf1 !== _primitives.EOF) {\n            array.push(this.getObj(cipherTransform));\n          }\n\n          if (this.buf1 === _primitives.EOF) {\n            if (this.recoveryMode) {\n              return array;\n            }\n\n            throw new _core_utils.ParserEOFException(\"End of file inside array.\");\n          }\n\n          this.shift();\n          return array;\n\n        case \"<<\":\n          const dict = new _primitives.Dict(this.xref);\n\n          while (!(0, _primitives.isCmd)(this.buf1, \">>\") && this.buf1 !== _primitives.EOF) {\n            if (!(this.buf1 instanceof _primitives.Name)) {\n              (0, _util.info)(\"Malformed dictionary: key must be a name object\");\n              this.shift();\n              continue;\n            }\n\n            const key = this.buf1.name;\n            this.shift();\n\n            if (this.buf1 === _primitives.EOF) {\n              break;\n            }\n\n            dict.set(key, this.getObj(cipherTransform));\n          }\n\n          if (this.buf1 === _primitives.EOF) {\n            if (this.recoveryMode) {\n              return dict;\n            }\n\n            throw new _core_utils.ParserEOFException(\"End of file inside dictionary.\");\n          }\n\n          if ((0, _primitives.isCmd)(this.buf2, \"stream\")) {\n            return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict;\n          }\n\n          this.shift();\n          return dict;\n\n        default:\n          return buf1;\n      }\n    }\n\n    if (Number.isInteger(buf1)) {\n      if (Number.isInteger(this.buf1) && (0, _primitives.isCmd)(this.buf2, \"R\")) {\n        const ref = _primitives.Ref.get(buf1, this.buf1);\n\n        this.shift();\n        this.shift();\n        return ref;\n      }\n\n      return buf1;\n    }\n\n    if (typeof buf1 === \"string\") {\n      if (cipherTransform) {\n        return cipherTransform.decryptString(buf1);\n      }\n\n      return buf1;\n    }\n\n    return buf1;\n  }\n\n  findDefaultInlineStreamEnd(stream) {\n    const E = 0x45,\n          I = 0x49,\n          SPACE = 0x20,\n          LF = 0xa,\n          CR = 0xd,\n          NUL = 0x0;\n    const lexer = this.lexer,\n          startPos = stream.pos,\n          n = 10;\n    let state = 0,\n        ch,\n        maybeEIPos;\n\n    while ((ch = stream.getByte()) !== -1) {\n      if (state === 0) {\n        state = ch === E ? 1 : 0;\n      } else if (state === 1) {\n        state = ch === I ? 2 : 0;\n      } else {\n        (0, _util.assert)(state === 2, \"findDefaultInlineStreamEnd - invalid state.\");\n\n        if (ch === SPACE || ch === LF || ch === CR) {\n          maybeEIPos = stream.pos;\n          const followingBytes = stream.peekBytes(n);\n\n          for (let i = 0, ii = followingBytes.length; i < ii; i++) {\n            ch = followingBytes[i];\n\n            if (ch === NUL && followingBytes[i + 1] !== NUL) {\n              continue;\n            }\n\n            if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) {\n              state = 0;\n              break;\n            }\n          }\n\n          if (state !== 2) {\n            continue;\n          }\n\n          if (lexer.knownCommands) {\n            const nextObj = lexer.peekObj();\n\n            if (nextObj instanceof _primitives.Cmd && !lexer.knownCommands[nextObj.cmd]) {\n              state = 0;\n            }\n          } else {\n            (0, _util.warn)(\"findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.\");\n          }\n\n          if (state === 2) {\n            break;\n          }\n        } else {\n          state = 0;\n        }\n      }\n    }\n\n    if (ch === -1) {\n      (0, _util.warn)(\"findDefaultInlineStreamEnd: \" + \"Reached the end of the stream without finding a valid EI marker\");\n\n      if (maybeEIPos) {\n        (0, _util.warn)('... trying to recover by using the last \"EI\" occurrence.');\n        stream.skip(-(stream.pos - maybeEIPos));\n      }\n    }\n\n    let endOffset = 4;\n    stream.skip(-endOffset);\n    ch = stream.peekByte();\n    stream.skip(endOffset);\n\n    if (!(0, _core_utils.isWhiteSpace)(ch)) {\n      endOffset--;\n    }\n\n    return stream.pos - endOffset - startPos;\n  }\n\n  findDCTDecodeInlineStreamEnd(stream) {\n    const startPos = stream.pos;\n    let foundEOI = false,\n        b,\n        markerLength;\n\n    while ((b = stream.getByte()) !== -1) {\n      if (b !== 0xff) {\n        continue;\n      }\n\n      switch (stream.getByte()) {\n        case 0x00:\n          break;\n\n        case 0xff:\n          stream.skip(-1);\n          break;\n\n        case 0xd9:\n          foundEOI = true;\n          break;\n\n        case 0xc0:\n        case 0xc1:\n        case 0xc2:\n        case 0xc3:\n        case 0xc5:\n        case 0xc6:\n        case 0xc7:\n        case 0xc9:\n        case 0xca:\n        case 0xcb:\n        case 0xcd:\n        case 0xce:\n        case 0xcf:\n        case 0xc4:\n        case 0xcc:\n        case 0xda:\n        case 0xdb:\n        case 0xdc:\n        case 0xdd:\n        case 0xde:\n        case 0xdf:\n        case 0xe0:\n        case 0xe1:\n        case 0xe2:\n        case 0xe3:\n        case 0xe4:\n        case 0xe5:\n        case 0xe6:\n        case 0xe7:\n        case 0xe8:\n        case 0xe9:\n        case 0xea:\n        case 0xeb:\n        case 0xec:\n        case 0xed:\n        case 0xee:\n        case 0xef:\n        case 0xfe:\n          markerLength = stream.getUint16();\n\n          if (markerLength > 2) {\n            stream.skip(markerLength - 2);\n          } else {\n            stream.skip(-2);\n          }\n\n          break;\n      }\n\n      if (foundEOI) {\n        break;\n      }\n    }\n\n    const length = stream.pos - startPos;\n\n    if (b === -1) {\n      (0, _util.warn)(\"Inline DCTDecode image stream: \" + \"EOI marker not found, searching for /EI/ instead.\");\n      stream.skip(-length);\n      return this.findDefaultInlineStreamEnd(stream);\n    }\n\n    this.inlineStreamSkipEI(stream);\n    return length;\n  }\n\n  findASCII85DecodeInlineStreamEnd(stream) {\n    const TILDE = 0x7e,\n          GT = 0x3e;\n    const startPos = stream.pos;\n    let ch;\n\n    while ((ch = stream.getByte()) !== -1) {\n      if (ch === TILDE) {\n        const tildePos = stream.pos;\n        ch = stream.peekByte();\n\n        while ((0, _core_utils.isWhiteSpace)(ch)) {\n          stream.skip();\n          ch = stream.peekByte();\n        }\n\n        if (ch === GT) {\n          stream.skip();\n          break;\n        }\n\n        if (stream.pos > tildePos) {\n          const maybeEI = stream.peekBytes(2);\n\n          if (maybeEI[0] === 0x45 && maybeEI[1] === 0x49) {\n            break;\n          }\n        }\n      }\n    }\n\n    const length = stream.pos - startPos;\n\n    if (ch === -1) {\n      (0, _util.warn)(\"Inline ASCII85Decode image stream: \" + \"EOD marker not found, searching for /EI/ instead.\");\n      stream.skip(-length);\n      return this.findDefaultInlineStreamEnd(stream);\n    }\n\n    this.inlineStreamSkipEI(stream);\n    return length;\n  }\n\n  findASCIIHexDecodeInlineStreamEnd(stream) {\n    const GT = 0x3e;\n    const startPos = stream.pos;\n    let ch;\n\n    while ((ch = stream.getByte()) !== -1) {\n      if (ch === GT) {\n        break;\n      }\n    }\n\n    const length = stream.pos - startPos;\n\n    if (ch === -1) {\n      (0, _util.warn)(\"Inline ASCIIHexDecode image stream: \" + \"EOD marker not found, searching for /EI/ instead.\");\n      stream.skip(-length);\n      return this.findDefaultInlineStreamEnd(stream);\n    }\n\n    this.inlineStreamSkipEI(stream);\n    return length;\n  }\n\n  inlineStreamSkipEI(stream) {\n    const E = 0x45,\n          I = 0x49;\n    let state = 0,\n        ch;\n\n    while ((ch = stream.getByte()) !== -1) {\n      if (state === 0) {\n        state = ch === E ? 1 : 0;\n      } else if (state === 1) {\n        state = ch === I ? 2 : 0;\n      } else if (state === 2) {\n        break;\n      }\n    }\n  }\n\n  makeInlineImage(cipherTransform) {\n    const lexer = this.lexer;\n    const stream = lexer.stream;\n    const dict = new _primitives.Dict(this.xref);\n    let dictLength;\n\n    while (!(0, _primitives.isCmd)(this.buf1, \"ID\") && this.buf1 !== _primitives.EOF) {\n      if (!(this.buf1 instanceof _primitives.Name)) {\n        throw new _util.FormatError(\"Dictionary key must be a name object\");\n      }\n\n      const key = this.buf1.name;\n      this.shift();\n\n      if (this.buf1 === _primitives.EOF) {\n        break;\n      }\n\n      dict.set(key, this.getObj(cipherTransform));\n    }\n\n    if (lexer.beginInlineImagePos !== -1) {\n      dictLength = stream.pos - lexer.beginInlineImagePos;\n    }\n\n    const filter = dict.get(\"F\", \"Filter\");\n    let filterName;\n\n    if (filter instanceof _primitives.Name) {\n      filterName = filter.name;\n    } else if (Array.isArray(filter)) {\n      const filterZero = this.xref.fetchIfRef(filter[0]);\n\n      if (filterZero instanceof _primitives.Name) {\n        filterName = filterZero.name;\n      }\n    }\n\n    const startPos = stream.pos;\n    let length;\n\n    switch (filterName) {\n      case \"DCT\":\n      case \"DCTDecode\":\n        length = this.findDCTDecodeInlineStreamEnd(stream);\n        break;\n\n      case \"A85\":\n      case \"ASCII85Decode\":\n        length = this.findASCII85DecodeInlineStreamEnd(stream);\n        break;\n\n      case \"AHx\":\n      case \"ASCIIHexDecode\":\n        length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n        break;\n\n      default:\n        length = this.findDefaultInlineStreamEnd(stream);\n    }\n\n    let imageStream = stream.makeSubStream(startPos, length, dict);\n    let cacheKey;\n\n    if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) {\n      const imageBytes = imageStream.getBytes();\n      imageStream.reset();\n      const initialStreamPos = stream.pos;\n      stream.pos = lexer.beginInlineImagePos;\n      const dictBytes = stream.getBytes(dictLength);\n      stream.pos = initialStreamPos;\n      cacheKey = computeAdler32(imageBytes) + \"_\" + computeAdler32(dictBytes);\n      const cacheEntry = this.imageCache[cacheKey];\n\n      if (cacheEntry !== undefined) {\n        this.buf2 = _primitives.Cmd.get(\"EI\");\n        this.shift();\n        cacheEntry.reset();\n        return cacheEntry;\n      }\n    }\n\n    if (cipherTransform) {\n      imageStream = cipherTransform.createStream(imageStream, length);\n    }\n\n    imageStream = this.filter(imageStream, dict, length);\n    imageStream.dict = dict;\n\n    if (cacheKey !== undefined) {\n      imageStream.cacheKey = `inline_${length}_${cacheKey}`;\n      this.imageCache[cacheKey] = imageStream;\n    }\n\n    this.buf2 = _primitives.Cmd.get(\"EI\");\n    this.shift();\n    return imageStream;\n  }\n\n  _findStreamLength(startPos, signature) {\n    const {\n      stream\n    } = this.lexer;\n    stream.pos = startPos;\n    const SCAN_BLOCK_LENGTH = 2048;\n    const signatureLength = signature.length;\n\n    while (stream.pos < stream.end) {\n      const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n      const scanLength = scanBytes.length - signatureLength;\n\n      if (scanLength <= 0) {\n        break;\n      }\n\n      let pos = 0;\n\n      while (pos < scanLength) {\n        let j = 0;\n\n        while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n          j++;\n        }\n\n        if (j >= signatureLength) {\n          stream.pos += pos;\n          return stream.pos - startPos;\n        }\n\n        pos++;\n      }\n\n      stream.pos += scanLength;\n    }\n\n    return -1;\n  }\n\n  makeStream(dict, cipherTransform) {\n    const lexer = this.lexer;\n    let stream = lexer.stream;\n    lexer.skipToNextLine();\n    const startPos = stream.pos - 1;\n    let length = dict.get(\"Length\");\n\n    if (!Number.isInteger(length)) {\n      (0, _util.info)(`Bad length \"${length && length.toString()}\" in stream.`);\n      length = 0;\n    }\n\n    stream.pos = startPos + length;\n    lexer.nextChar();\n\n    if (this.tryShift() && (0, _primitives.isCmd)(this.buf2, \"endstream\")) {\n      this.shift();\n    } else {\n      const ENDSTREAM_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d]);\n\n      let actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE);\n\n      if (actualLength < 0) {\n        const MAX_TRUNCATION = 1;\n\n        for (let i = 1; i <= MAX_TRUNCATION; i++) {\n          const end = ENDSTREAM_SIGNATURE.length - i;\n          const TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end);\n\n          const maybeLength = this._findStreamLength(startPos, TRUNCATED_SIGNATURE);\n\n          if (maybeLength >= 0) {\n            const lastByte = stream.peekBytes(end + 1)[end];\n\n            if (!(0, _core_utils.isWhiteSpace)(lastByte)) {\n              break;\n            }\n\n            (0, _util.info)(`Found \"${(0, _util.bytesToString)(TRUNCATED_SIGNATURE)}\" when ` + \"searching for endstream command.\");\n            actualLength = maybeLength;\n            break;\n          }\n        }\n\n        if (actualLength < 0) {\n          throw new _util.FormatError(\"Missing endstream command.\");\n        }\n      }\n\n      length = actualLength;\n      lexer.nextChar();\n      this.shift();\n      this.shift();\n    }\n\n    this.shift();\n    stream = stream.makeSubStream(startPos, length, dict);\n\n    if (cipherTransform) {\n      stream = cipherTransform.createStream(stream, length);\n    }\n\n    stream = this.filter(stream, dict, length);\n    stream.dict = dict;\n    return stream;\n  }\n\n  filter(stream, dict, length) {\n    let filter = dict.get(\"F\", \"Filter\");\n    let params = dict.get(\"DP\", \"DecodeParms\");\n\n    if (filter instanceof _primitives.Name) {\n      if (Array.isArray(params)) {\n        (0, _util.warn)(\"/DecodeParms should not be an Array, when /Filter is a Name.\");\n      }\n\n      return this.makeFilter(stream, filter.name, length, params);\n    }\n\n    let maybeLength = length;\n\n    if (Array.isArray(filter)) {\n      const filterArray = filter;\n      const paramsArray = params;\n\n      for (let i = 0, ii = filterArray.length; i < ii; ++i) {\n        filter = this.xref.fetchIfRef(filterArray[i]);\n\n        if (!(filter instanceof _primitives.Name)) {\n          throw new _util.FormatError(`Bad filter name \"${filter}\"`);\n        }\n\n        params = null;\n\n        if (Array.isArray(paramsArray) && i in paramsArray) {\n          params = this.xref.fetchIfRef(paramsArray[i]);\n        }\n\n        stream = this.makeFilter(stream, filter.name, maybeLength, params);\n        maybeLength = null;\n      }\n    }\n\n    return stream;\n  }\n\n  makeFilter(stream, name, maybeLength, params) {\n    if (maybeLength === 0) {\n      (0, _util.warn)(`Empty \"${name}\" stream.`);\n      return new _stream.NullStream();\n    }\n\n    const xrefStats = this.xref.stats;\n\n    try {\n      switch (name) {\n        case \"Fl\":\n        case \"FlateDecode\":\n          xrefStats.addStreamType(_util.StreamType.FLATE);\n\n          if (params) {\n            return new _predictor_stream.PredictorStream(new _flate_stream.FlateStream(stream, maybeLength), maybeLength, params);\n          }\n\n          return new _flate_stream.FlateStream(stream, maybeLength);\n\n        case \"LZW\":\n        case \"LZWDecode\":\n          xrefStats.addStreamType(_util.StreamType.LZW);\n          let earlyChange = 1;\n\n          if (params) {\n            if (params.has(\"EarlyChange\")) {\n              earlyChange = params.get(\"EarlyChange\");\n            }\n\n            return new _predictor_stream.PredictorStream(new _lzw_stream.LZWStream(stream, maybeLength, earlyChange), maybeLength, params);\n          }\n\n          return new _lzw_stream.LZWStream(stream, maybeLength, earlyChange);\n\n        case \"DCT\":\n        case \"DCTDecode\":\n          xrefStats.addStreamType(_util.StreamType.DCT);\n          return new _jpeg_stream.JpegStream(stream, maybeLength, params);\n\n        case \"JPX\":\n        case \"JPXDecode\":\n          xrefStats.addStreamType(_util.StreamType.JPX);\n          return new _jpx_stream.JpxStream(stream, maybeLength, params);\n\n        case \"A85\":\n        case \"ASCII85Decode\":\n          xrefStats.addStreamType(_util.StreamType.A85);\n          return new _ascii_85_stream.Ascii85Stream(stream, maybeLength);\n\n        case \"AHx\":\n        case \"ASCIIHexDecode\":\n          xrefStats.addStreamType(_util.StreamType.AHX);\n          return new _ascii_hex_stream.AsciiHexStream(stream, maybeLength);\n\n        case \"CCF\":\n        case \"CCITTFaxDecode\":\n          xrefStats.addStreamType(_util.StreamType.CCF);\n          return new _ccitt_stream.CCITTFaxStream(stream, maybeLength, params);\n\n        case \"RL\":\n        case \"RunLengthDecode\":\n          xrefStats.addStreamType(_util.StreamType.RLX);\n          return new _run_length_stream.RunLengthStream(stream, maybeLength);\n\n        case \"JBIG2Decode\":\n          xrefStats.addStreamType(_util.StreamType.JBIG);\n          return new _jbig2_stream.Jbig2Stream(stream, maybeLength, params);\n      }\n\n      (0, _util.warn)(`Filter \"${name}\" is not supported.`);\n      return stream;\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(`Invalid stream: \"${ex}\"`);\n      return new _stream.NullStream();\n    }\n  }\n\n}\n\nexports.Parser = Parser;\nconst specialChars = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\nfunction toHexDigit(ch) {\n  if (ch >= 0x30 && ch <= 0x39) {\n    return ch & 0x0f;\n  }\n\n  if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n    return (ch & 0x0f) + 9;\n  }\n\n  return -1;\n}\n\nclass Lexer {\n  constructor(stream) {\n    let knownCommands = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    this.stream = stream;\n    this.nextChar();\n    this.strBuf = [];\n    this.knownCommands = knownCommands;\n    this._hexStringNumWarn = 0;\n    this.beginInlineImagePos = -1;\n  }\n\n  nextChar() {\n    return this.currentChar = this.stream.getByte();\n  }\n\n  peekChar() {\n    return this.stream.peekByte();\n  }\n\n  getNumber() {\n    let ch = this.currentChar;\n    let eNotation = false;\n    let divideBy = 0;\n    let sign = 0;\n\n    if (ch === 0x2d) {\n      sign = -1;\n      ch = this.nextChar();\n\n      if (ch === 0x2d) {\n        ch = this.nextChar();\n      }\n    } else if (ch === 0x2b) {\n      sign = 1;\n      ch = this.nextChar();\n    }\n\n    if (ch === 0x0a || ch === 0x0d) {\n      do {\n        ch = this.nextChar();\n      } while (ch === 0x0a || ch === 0x0d);\n    }\n\n    if (ch === 0x2e) {\n      divideBy = 10;\n      ch = this.nextChar();\n    }\n\n    if (ch < 0x30 || ch > 0x39) {\n      if ((0, _core_utils.isWhiteSpace)(ch) || ch === -1) {\n        if (divideBy === 10 && sign === 0) {\n          (0, _util.warn)(\"Lexer.getNumber - treating a single decimal point as zero.\");\n          return 0;\n        }\n\n        if (divideBy === 0 && sign === -1) {\n          (0, _util.warn)(\"Lexer.getNumber - treating a single minus sign as zero.\");\n          return 0;\n        }\n      }\n\n      throw new _util.FormatError(`Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`);\n    }\n\n    sign = sign || 1;\n    let baseValue = ch - 0x30;\n    let powerValue = 0;\n    let powerValueSign = 1;\n\n    while ((ch = this.nextChar()) >= 0) {\n      if (ch >= 0x30 && ch <= 0x39) {\n        const currentDigit = ch - 0x30;\n\n        if (eNotation) {\n          powerValue = powerValue * 10 + currentDigit;\n        } else {\n          if (divideBy !== 0) {\n            divideBy *= 10;\n          }\n\n          baseValue = baseValue * 10 + currentDigit;\n        }\n      } else if (ch === 0x2e) {\n        if (divideBy === 0) {\n          divideBy = 1;\n        } else {\n          break;\n        }\n      } else if (ch === 0x2d) {\n        (0, _util.warn)(\"Badly formatted number: minus sign in the middle\");\n      } else if (ch === 0x45 || ch === 0x65) {\n        ch = this.peekChar();\n\n        if (ch === 0x2b || ch === 0x2d) {\n          powerValueSign = ch === 0x2d ? -1 : 1;\n          this.nextChar();\n        } else if (ch < 0x30 || ch > 0x39) {\n          break;\n        }\n\n        eNotation = true;\n      } else {\n        break;\n      }\n    }\n\n    if (divideBy !== 0) {\n      baseValue /= divideBy;\n    }\n\n    if (eNotation) {\n      baseValue *= 10 ** (powerValueSign * powerValue);\n    }\n\n    return sign * baseValue;\n  }\n\n  getString() {\n    let numParen = 1;\n    let done = false;\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    let ch = this.nextChar();\n\n    while (true) {\n      let charBuffered = false;\n\n      switch (ch | 0) {\n        case -1:\n          (0, _util.warn)(\"Unterminated string\");\n          done = true;\n          break;\n\n        case 0x28:\n          ++numParen;\n          strBuf.push(\"(\");\n          break;\n\n        case 0x29:\n          if (--numParen === 0) {\n            this.nextChar();\n            done = true;\n          } else {\n            strBuf.push(\")\");\n          }\n\n          break;\n\n        case 0x5c:\n          ch = this.nextChar();\n\n          switch (ch) {\n            case -1:\n              (0, _util.warn)(\"Unterminated string\");\n              done = true;\n              break;\n\n            case 0x6e:\n              strBuf.push(\"\\n\");\n              break;\n\n            case 0x72:\n              strBuf.push(\"\\r\");\n              break;\n\n            case 0x74:\n              strBuf.push(\"\\t\");\n              break;\n\n            case 0x62:\n              strBuf.push(\"\\b\");\n              break;\n\n            case 0x66:\n              strBuf.push(\"\\f\");\n              break;\n\n            case 0x5c:\n            case 0x28:\n            case 0x29:\n              strBuf.push(String.fromCharCode(ch));\n              break;\n\n            case 0x30:\n            case 0x31:\n            case 0x32:\n            case 0x33:\n            case 0x34:\n            case 0x35:\n            case 0x36:\n            case 0x37:\n              let x = ch & 0x0f;\n              ch = this.nextChar();\n              charBuffered = true;\n\n              if (ch >= 0x30 && ch <= 0x37) {\n                x = (x << 3) + (ch & 0x0f);\n                ch = this.nextChar();\n\n                if (ch >= 0x30 && ch <= 0x37) {\n                  charBuffered = false;\n                  x = (x << 3) + (ch & 0x0f);\n                }\n              }\n\n              strBuf.push(String.fromCharCode(x));\n              break;\n\n            case 0x0d:\n              if (this.peekChar() === 0x0a) {\n                this.nextChar();\n              }\n\n              break;\n\n            case 0x0a:\n              break;\n\n            default:\n              strBuf.push(String.fromCharCode(ch));\n              break;\n          }\n\n          break;\n\n        default:\n          strBuf.push(String.fromCharCode(ch));\n          break;\n      }\n\n      if (done) {\n        break;\n      }\n\n      if (!charBuffered) {\n        ch = this.nextChar();\n      }\n    }\n\n    return strBuf.join(\"\");\n  }\n\n  getName() {\n    let ch, previousCh;\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n\n    while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n      if (ch === 0x23) {\n        ch = this.nextChar();\n\n        if (specialChars[ch]) {\n          (0, _util.warn)(\"Lexer_getName: \" + \"NUMBER SIGN (#) should be followed by a hexadecimal number.\");\n          strBuf.push(\"#\");\n          break;\n        }\n\n        const x = toHexDigit(ch);\n\n        if (x !== -1) {\n          previousCh = ch;\n          ch = this.nextChar();\n          const x2 = toHexDigit(ch);\n\n          if (x2 === -1) {\n            (0, _util.warn)(`Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) ` + \"in hexadecimal number.\");\n            strBuf.push(\"#\", String.fromCharCode(previousCh));\n\n            if (specialChars[ch]) {\n              break;\n            }\n\n            strBuf.push(String.fromCharCode(ch));\n            continue;\n          }\n\n          strBuf.push(String.fromCharCode(x << 4 | x2));\n        } else {\n          strBuf.push(\"#\", String.fromCharCode(ch));\n        }\n      } else {\n        strBuf.push(String.fromCharCode(ch));\n      }\n    }\n\n    if (strBuf.length > 127) {\n      (0, _util.warn)(`Name token is longer than allowed by the spec: ${strBuf.length}`);\n    }\n\n    return _primitives.Name.get(strBuf.join(\"\"));\n  }\n\n  _hexStringWarn(ch) {\n    const MAX_HEX_STRING_NUM_WARN = 5;\n\n    if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) {\n      (0, _util.warn)(\"getHexString - ignoring additional invalid characters.\");\n      return;\n    }\n\n    if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) {\n      return;\n    }\n\n    (0, _util.warn)(`getHexString - ignoring invalid character: ${ch}`);\n  }\n\n  getHexString() {\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    let ch = this.currentChar;\n    let isFirstHex = true;\n    let firstDigit, secondDigit;\n    this._hexStringNumWarn = 0;\n\n    while (true) {\n      if (ch < 0) {\n        (0, _util.warn)(\"Unterminated hex string\");\n        break;\n      } else if (ch === 0x3e) {\n        this.nextChar();\n        break;\n      } else if (specialChars[ch] === 1) {\n        ch = this.nextChar();\n        continue;\n      } else {\n        if (isFirstHex) {\n          firstDigit = toHexDigit(ch);\n\n          if (firstDigit === -1) {\n            this._hexStringWarn(ch);\n\n            ch = this.nextChar();\n            continue;\n          }\n        } else {\n          secondDigit = toHexDigit(ch);\n\n          if (secondDigit === -1) {\n            this._hexStringWarn(ch);\n\n            ch = this.nextChar();\n            continue;\n          }\n\n          strBuf.push(String.fromCharCode(firstDigit << 4 | secondDigit));\n        }\n\n        isFirstHex = !isFirstHex;\n        ch = this.nextChar();\n      }\n    }\n\n    return strBuf.join(\"\");\n  }\n\n  getObj() {\n    let comment = false;\n    let ch = this.currentChar;\n\n    while (true) {\n      if (ch < 0) {\n        return _primitives.EOF;\n      }\n\n      if (comment) {\n        if (ch === 0x0a || ch === 0x0d) {\n          comment = false;\n        }\n      } else if (ch === 0x25) {\n        comment = true;\n      } else if (specialChars[ch] !== 1) {\n        break;\n      }\n\n      ch = this.nextChar();\n    }\n\n    switch (ch | 0) {\n      case 0x30:\n      case 0x31:\n      case 0x32:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n        return this.getNumber();\n\n      case 0x28:\n        return this.getString();\n\n      case 0x2f:\n        return this.getName();\n\n      case 0x5b:\n        this.nextChar();\n        return _primitives.Cmd.get(\"[\");\n\n      case 0x5d:\n        this.nextChar();\n        return _primitives.Cmd.get(\"]\");\n\n      case 0x3c:\n        ch = this.nextChar();\n\n        if (ch === 0x3c) {\n          this.nextChar();\n          return _primitives.Cmd.get(\"<<\");\n        }\n\n        return this.getHexString();\n\n      case 0x3e:\n        ch = this.nextChar();\n\n        if (ch === 0x3e) {\n          this.nextChar();\n          return _primitives.Cmd.get(\">>\");\n        }\n\n        return _primitives.Cmd.get(\">\");\n\n      case 0x7b:\n        this.nextChar();\n        return _primitives.Cmd.get(\"{\");\n\n      case 0x7d:\n        this.nextChar();\n        return _primitives.Cmd.get(\"}\");\n\n      case 0x29:\n        this.nextChar();\n        throw new _util.FormatError(`Illegal character: ${ch}`);\n    }\n\n    let str = String.fromCharCode(ch);\n\n    if (ch < 0x20 || ch > 0x7f) {\n      const nextCh = this.peekChar();\n\n      if (nextCh >= 0x20 && nextCh <= 0x7f) {\n        this.nextChar();\n        return _primitives.Cmd.get(str);\n      }\n    }\n\n    const knownCommands = this.knownCommands;\n    let knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n\n    while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n      const possibleCommand = str + String.fromCharCode(ch);\n\n      if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n        break;\n      }\n\n      if (str.length === 128) {\n        throw new _util.FormatError(`Command token too long: ${str.length}`);\n      }\n\n      str = possibleCommand;\n      knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n    }\n\n    if (str === \"true\") {\n      return true;\n    }\n\n    if (str === \"false\") {\n      return false;\n    }\n\n    if (str === \"null\") {\n      return null;\n    }\n\n    if (str === \"BI\") {\n      this.beginInlineImagePos = this.stream.pos;\n    }\n\n    return _primitives.Cmd.get(str);\n  }\n\n  peekObj() {\n    const streamPos = this.stream.pos,\n          currentChar = this.currentChar,\n          beginInlineImagePos = this.beginInlineImagePos;\n    let nextObj;\n\n    try {\n      nextObj = this.getObj();\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(`peekObj: ${ex}`);\n    }\n\n    this.stream.pos = streamPos;\n    this.currentChar = currentChar;\n    this.beginInlineImagePos = beginInlineImagePos;\n    return nextObj;\n  }\n\n  skipToNextLine() {\n    let ch = this.currentChar;\n\n    while (ch >= 0) {\n      if (ch === 0x0d) {\n        ch = this.nextChar();\n\n        if (ch === 0x0a) {\n          this.nextChar();\n        }\n\n        break;\n      } else if (ch === 0x0a) {\n        this.nextChar();\n        break;\n      }\n\n      ch = this.nextChar();\n    }\n  }\n\n}\n\nexports.Lexer = Lexer;\n\nclass Linearization {\n  static create(stream) {\n    function getInt(linDict, name) {\n      let allowZeroValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n      const obj = linDict.get(name);\n\n      if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n        return obj;\n      }\n\n      throw new Error(`The \"${name}\" parameter in the linearization ` + \"dictionary is invalid.\");\n    }\n\n    function getHints(linDict) {\n      const hints = linDict.get(\"H\");\n      let hintsLength;\n\n      if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) {\n        for (let index = 0; index < hintsLength; index++) {\n          const hint = hints[index];\n\n          if (!(Number.isInteger(hint) && hint > 0)) {\n            throw new Error(`Hint (${index}) in the linearization dictionary is invalid.`);\n          }\n        }\n\n        return hints;\n      }\n\n      throw new Error(\"Hint array in the linearization dictionary is invalid.\");\n    }\n\n    const parser = new Parser({\n      lexer: new Lexer(stream),\n      xref: null\n    });\n    const obj1 = parser.getObj();\n    const obj2 = parser.getObj();\n    const obj3 = parser.getObj();\n    const linDict = parser.getObj();\n    let obj, length;\n\n    if (!(Number.isInteger(obj1) && Number.isInteger(obj2) && (0, _primitives.isCmd)(obj3, \"obj\") && linDict instanceof _primitives.Dict && typeof (obj = linDict.get(\"Linearized\")) === \"number\" && obj > 0)) {\n      return null;\n    } else if ((length = getInt(linDict, \"L\")) !== stream.length) {\n      throw new Error('The \"L\" parameter in the linearization dictionary ' + \"does not equal the stream length.\");\n    }\n\n    return {\n      length,\n      hints: getHints(linDict),\n      objectNumberFirst: getInt(linDict, \"O\"),\n      endFirst: getInt(linDict, \"E\"),\n      numPages: getInt(linDict, \"N\"),\n      mainXRefEntriesOffset: getInt(linDict, \"T\"),\n      pageFirst: linDict.has(\"P\") ? getInt(linDict, \"P\", true) : 0\n    };\n  }\n\n}\n\nexports.Linearization = Linearization;\n\n/***/ }),\n/* 143 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Ascii85Stream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(144);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nclass Ascii85Stream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength) {\n    if (maybeLength) {\n      maybeLength *= 0.8;\n    }\n\n    super(maybeLength);\n    this.str = str;\n    this.dict = str.dict;\n    this.input = new Uint8Array(5);\n  }\n\n  readBlock() {\n    const TILDA_CHAR = 0x7e;\n    const Z_LOWER_CHAR = 0x7a;\n    const EOF = -1;\n    const str = this.str;\n    let c = str.getByte();\n\n    while ((0, _core_utils.isWhiteSpace)(c)) {\n      c = str.getByte();\n    }\n\n    if (c === EOF || c === TILDA_CHAR) {\n      this.eof = true;\n      return;\n    }\n\n    const bufferLength = this.bufferLength;\n    let buffer, i;\n\n    if (c === Z_LOWER_CHAR) {\n      buffer = this.ensureBuffer(bufferLength + 4);\n\n      for (i = 0; i < 4; ++i) {\n        buffer[bufferLength + i] = 0;\n      }\n\n      this.bufferLength += 4;\n    } else {\n      const input = this.input;\n      input[0] = c;\n\n      for (i = 1; i < 5; ++i) {\n        c = str.getByte();\n\n        while ((0, _core_utils.isWhiteSpace)(c)) {\n          c = str.getByte();\n        }\n\n        input[i] = c;\n\n        if (c === EOF || c === TILDA_CHAR) {\n          break;\n        }\n      }\n\n      buffer = this.ensureBuffer(bufferLength + i - 1);\n      this.bufferLength += i - 1;\n\n      if (i < 5) {\n        for (; i < 5; ++i) {\n          input[i] = 0x21 + 84;\n        }\n\n        this.eof = true;\n      }\n\n      let t = 0;\n\n      for (i = 0; i < 5; ++i) {\n        t = t * 85 + (input[i] - 0x21);\n      }\n\n      for (i = 3; i >= 0; --i) {\n        buffer[bufferLength + i] = t & 0xff;\n        t >>= 8;\n      }\n    }\n  }\n\n}\n\nexports.Ascii85Stream = Ascii85Stream;\n\n/***/ }),\n/* 144 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.StreamsSequenceStream = exports.DecodeStream = void 0;\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _stream = __w_pdfjs_require__(135);\n\nconst emptyBuffer = new Uint8Array(0);\n\nclass DecodeStream extends _base_stream.BaseStream {\n  constructor(maybeMinBufferLength) {\n    super();\n    this._rawMinBufferLength = maybeMinBufferLength || 0;\n    this.pos = 0;\n    this.bufferLength = 0;\n    this.eof = false;\n    this.buffer = emptyBuffer;\n    this.minBufferLength = 512;\n\n    if (maybeMinBufferLength) {\n      while (this.minBufferLength < maybeMinBufferLength) {\n        this.minBufferLength *= 2;\n      }\n    }\n  }\n\n  get isEmpty() {\n    while (!this.eof && this.bufferLength === 0) {\n      this.readBlock();\n    }\n\n    return this.bufferLength === 0;\n  }\n\n  ensureBuffer(requested) {\n    const buffer = this.buffer;\n\n    if (requested <= buffer.byteLength) {\n      return buffer;\n    }\n\n    let size = this.minBufferLength;\n\n    while (size < requested) {\n      size *= 2;\n    }\n\n    const buffer2 = new Uint8Array(size);\n    buffer2.set(buffer);\n    return this.buffer = buffer2;\n  }\n\n  getByte() {\n    const pos = this.pos;\n\n    while (this.bufferLength <= pos) {\n      if (this.eof) {\n        return -1;\n      }\n\n      this.readBlock();\n    }\n\n    return this.buffer[this.pos++];\n  }\n\n  getBytes(length) {\n    const pos = this.pos;\n    let end;\n\n    if (length) {\n      this.ensureBuffer(pos + length);\n      end = pos + length;\n\n      while (!this.eof && this.bufferLength < end) {\n        this.readBlock();\n      }\n\n      const bufEnd = this.bufferLength;\n\n      if (end > bufEnd) {\n        end = bufEnd;\n      }\n    } else {\n      while (!this.eof) {\n        this.readBlock();\n      }\n\n      end = this.bufferLength;\n    }\n\n    this.pos = end;\n    return this.buffer.subarray(pos, end);\n  }\n\n  reset() {\n    this.pos = 0;\n  }\n\n  makeSubStream(start, length) {\n    let dict = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n    if (length === undefined) {\n      while (!this.eof) {\n        this.readBlock();\n      }\n    } else {\n      const end = start + length;\n\n      while (this.bufferLength <= end && !this.eof) {\n        this.readBlock();\n      }\n    }\n\n    return new _stream.Stream(this.buffer, start, length, dict);\n  }\n\n  getBaseStreams() {\n    return this.str ? this.str.getBaseStreams() : null;\n  }\n\n}\n\nexports.DecodeStream = DecodeStream;\n\nclass StreamsSequenceStream extends DecodeStream {\n  constructor(streams) {\n    let onError = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    let maybeLength = 0;\n\n    for (const stream of streams) {\n      maybeLength += stream instanceof DecodeStream ? stream._rawMinBufferLength : stream.length;\n    }\n\n    super(maybeLength);\n    this.streams = streams;\n    this._onError = onError;\n  }\n\n  readBlock() {\n    const streams = this.streams;\n\n    if (streams.length === 0) {\n      this.eof = true;\n      return;\n    }\n\n    const stream = streams.shift();\n    let chunk;\n\n    try {\n      chunk = stream.getBytes();\n    } catch (reason) {\n      if (this._onError) {\n        this._onError(reason, stream.dict && stream.dict.objId);\n\n        return;\n      }\n\n      throw reason;\n    }\n\n    const bufferLength = this.bufferLength;\n    const newLength = bufferLength + chunk.length;\n    const buffer = this.ensureBuffer(newLength);\n    buffer.set(chunk, bufferLength);\n    this.bufferLength = newLength;\n  }\n\n  getBaseStreams() {\n    const baseStreamsBuf = [];\n\n    for (const stream of this.streams) {\n      const baseStreams = stream.getBaseStreams();\n\n      if (baseStreams) {\n        baseStreamsBuf.push(...baseStreams);\n      }\n    }\n\n    return baseStreamsBuf.length > 0 ? baseStreamsBuf : null;\n  }\n\n}\n\nexports.StreamsSequenceStream = StreamsSequenceStream;\n\n/***/ }),\n/* 145 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.AsciiHexStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(144);\n\nclass AsciiHexStream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength) {\n    if (maybeLength) {\n      maybeLength *= 0.5;\n    }\n\n    super(maybeLength);\n    this.str = str;\n    this.dict = str.dict;\n    this.firstDigit = -1;\n  }\n\n  readBlock() {\n    const UPSTREAM_BLOCK_SIZE = 8000;\n    const bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n\n    if (!bytes.length) {\n      this.eof = true;\n      return;\n    }\n\n    const maxDecodeLength = bytes.length + 1 >> 1;\n    const buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n    let bufferLength = this.bufferLength;\n    let firstDigit = this.firstDigit;\n\n    for (const ch of bytes) {\n      let digit;\n\n      if (ch >= 0x30 && ch <= 0x39) {\n        digit = ch & 0x0f;\n      } else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n        digit = (ch & 0x0f) + 9;\n      } else if (ch === 0x3e) {\n        this.eof = true;\n        break;\n      } else {\n        continue;\n      }\n\n      if (firstDigit < 0) {\n        firstDigit = digit;\n      } else {\n        buffer[bufferLength++] = firstDigit << 4 | digit;\n        firstDigit = -1;\n      }\n    }\n\n    if (firstDigit >= 0 && this.eof) {\n      buffer[bufferLength++] = firstDigit << 4;\n      firstDigit = -1;\n    }\n\n    this.firstDigit = firstDigit;\n    this.bufferLength = bufferLength;\n  }\n\n}\n\nexports.AsciiHexStream = AsciiHexStream;\n\n/***/ }),\n/* 146 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CCITTFaxStream = void 0;\n\nvar _ccitt = __w_pdfjs_require__(147);\n\nvar _decode_stream = __w_pdfjs_require__(144);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nclass CCITTFaxStream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength, params) {\n    super(maybeLength);\n    this.str = str;\n    this.dict = str.dict;\n\n    if (!(params instanceof _primitives.Dict)) {\n      params = _primitives.Dict.empty;\n    }\n\n    const source = {\n      next() {\n        return str.getByte();\n      }\n\n    };\n    this.ccittFaxDecoder = new _ccitt.CCITTFaxDecoder(source, {\n      K: params.get(\"K\"),\n      EndOfLine: params.get(\"EndOfLine\"),\n      EncodedByteAlign: params.get(\"EncodedByteAlign\"),\n      Columns: params.get(\"Columns\"),\n      Rows: params.get(\"Rows\"),\n      EndOfBlock: params.get(\"EndOfBlock\"),\n      BlackIs1: params.get(\"BlackIs1\")\n    });\n  }\n\n  readBlock() {\n    while (!this.eof) {\n      const c = this.ccittFaxDecoder.readNextChar();\n\n      if (c === -1) {\n        this.eof = true;\n        return;\n      }\n\n      this.ensureBuffer(this.bufferLength + 1);\n      this.buffer[this.bufferLength++] = c;\n    }\n  }\n\n}\n\nexports.CCITTFaxStream = CCITTFaxStream;\n\n/***/ }),\n/* 147 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CCITTFaxDecoder = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst ccittEOL = -2;\nconst ccittEOF = -1;\nconst twoDimPass = 0;\nconst twoDimHoriz = 1;\nconst twoDimVert0 = 2;\nconst twoDimVertR1 = 3;\nconst twoDimVertL1 = 4;\nconst twoDimVertR2 = 5;\nconst twoDimVertL2 = 6;\nconst twoDimVertR3 = 7;\nconst twoDimVertL3 = 8;\nconst twoDimTable = [[-1, -1], [-1, -1], [7, twoDimVertL3], [7, twoDimVertR3], [6, twoDimVertL2], [6, twoDimVertL2], [6, twoDimVertR2], [6, twoDimVertR2], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0]];\nconst whiteTable1 = [[-1, -1], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [12, 1984], [12, 2048], [12, 2112], [12, 2176], [12, 2240], [12, 2304], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [12, 2368], [12, 2432], [12, 2496], [12, 2560]];\nconst whiteTable2 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [8, 29], [8, 29], [8, 30], [8, 30], [8, 45], [8, 45], [8, 46], [8, 46], [7, 22], [7, 22], [7, 22], [7, 22], [7, 23], [7, 23], [7, 23], [7, 23], [8, 47], [8, 47], [8, 48], [8, 48], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [7, 20], [7, 20], [7, 20], [7, 20], [8, 33], [8, 33], [8, 34], [8, 34], [8, 35], [8, 35], [8, 36], [8, 36], [8, 37], [8, 37], [8, 38], [8, 38], [7, 19], [7, 19], [7, 19], [7, 19], [8, 31], [8, 31], [8, 32], [8, 32], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [8, 53], [8, 53], [8, 54], [8, 54], [7, 26], [7, 26], [7, 26], [7, 26], [8, 39], [8, 39], [8, 40], [8, 40], [8, 41], [8, 41], [8, 42], [8, 42], [8, 43], [8, 43], [8, 44], [8, 44], [7, 21], [7, 21], [7, 21], [7, 21], [7, 28], [7, 28], [7, 28], [7, 28], [8, 61], [8, 61], [8, 62], [8, 62], [8, 63], [8, 63], [8, 0], [8, 0], [8, 320], [8, 320], [8, 384], [8, 384], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [7, 27], [7, 27], [7, 27], [7, 27], [8, 59], [8, 59], [8, 60], [8, 60], [9, 1472], [9, 1536], [9, 1600], [9, 1728], [7, 18], [7, 18], [7, 18], [7, 18], [7, 24], [7, 24], [7, 24], [7, 24], [8, 49], [8, 49], [8, 50], [8, 50], [8, 51], [8, 51], [8, 52], [8, 52], [7, 25], [7, 25], [7, 25], [7, 25], [8, 55], [8, 55], [8, 56], [8, 56], [8, 57], [8, 57], [8, 58], [8, 58], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [8, 448], [8, 448], [8, 512], [8, 512], [9, 704], [9, 768], [8, 640], [8, 640], [8, 576], [8, 576], [9, 832], [9, 896], [9, 960], [9, 1024], [9, 1088], [9, 1152], [9, 1216], [9, 1280], [9, 1344], [9, 1408], [7, 256], [7, 256], [7, 256], [7, 256], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7]];\nconst blackTable1 = [[-1, -1], [-1, -1], [12, ccittEOL], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [11, 1792], [11, 1792], [12, 1984], [12, 1984], [12, 2048], [12, 2048], [12, 2112], [12, 2112], [12, 2176], [12, 2176], [12, 2240], [12, 2240], [12, 2304], [12, 2304], [11, 1856], [11, 1856], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [11, 1920], [11, 1920], [12, 2368], [12, 2368], [12, 2432], [12, 2432], [12, 2496], [12, 2496], [12, 2560], [12, 2560], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [12, 52], [12, 52], [13, 640], [13, 704], [13, 768], [13, 832], [12, 55], [12, 55], [12, 56], [12, 56], [13, 1280], [13, 1344], [13, 1408], [13, 1472], [12, 59], [12, 59], [12, 60], [12, 60], [13, 1536], [13, 1600], [11, 24], [11, 24], [11, 24], [11, 24], [11, 25], [11, 25], [11, 25], [11, 25], [13, 1664], [13, 1728], [12, 320], [12, 320], [12, 384], [12, 384], [12, 448], [12, 448], [13, 512], [13, 576], [12, 53], [12, 53], [12, 54], [12, 54], [13, 896], [13, 960], [13, 1024], [13, 1088], [13, 1152], [13, 1216], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64]];\nconst blackTable2 = [[8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [11, 23], [11, 23], [12, 50], [12, 51], [12, 44], [12, 45], [12, 46], [12, 47], [12, 57], [12, 58], [12, 61], [12, 256], [10, 16], [10, 16], [10, 16], [10, 16], [10, 17], [10, 17], [10, 17], [10, 17], [12, 48], [12, 49], [12, 62], [12, 63], [12, 30], [12, 31], [12, 32], [12, 33], [12, 40], [12, 41], [11, 22], [11, 22], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [12, 128], [12, 192], [12, 26], [12, 27], [12, 28], [12, 29], [11, 19], [11, 19], [11, 20], [11, 20], [12, 34], [12, 35], [12, 36], [12, 37], [12, 38], [12, 39], [11, 21], [11, 21], [12, 42], [12, 43], [10, 0], [10, 0], [10, 0], [10, 0], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12]];\nconst blackTable3 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [6, 9], [6, 8], [5, 7], [5, 7], [4, 6], [4, 6], [4, 6], [4, 6], [4, 5], [4, 5], [4, 5], [4, 5], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2]];\n\nclass CCITTFaxDecoder {\n  constructor(source) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    if (!source || typeof source.next !== \"function\") {\n      throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n    }\n\n    this.source = source;\n    this.eof = false;\n    this.encoding = options.K || 0;\n    this.eoline = options.EndOfLine || false;\n    this.byteAlign = options.EncodedByteAlign || false;\n    this.columns = options.Columns || 1728;\n    this.rows = options.Rows || 0;\n    let eoblock = options.EndOfBlock;\n\n    if (eoblock === null || eoblock === undefined) {\n      eoblock = true;\n    }\n\n    this.eoblock = eoblock;\n    this.black = options.BlackIs1 || false;\n    this.codingLine = new Uint32Array(this.columns + 1);\n    this.refLine = new Uint32Array(this.columns + 2);\n    this.codingLine[0] = this.columns;\n    this.codingPos = 0;\n    this.row = 0;\n    this.nextLine2D = this.encoding < 0;\n    this.inputBits = 0;\n    this.inputBuf = 0;\n    this.outputBits = 0;\n    this.rowsDone = false;\n    let code1;\n\n    while ((code1 = this._lookBits(12)) === 0) {\n      this._eatBits(1);\n    }\n\n    if (code1 === 1) {\n      this._eatBits(12);\n    }\n\n    if (this.encoding > 0) {\n      this.nextLine2D = !this._lookBits(1);\n\n      this._eatBits(1);\n    }\n  }\n\n  readNextChar() {\n    if (this.eof) {\n      return -1;\n    }\n\n    const refLine = this.refLine;\n    const codingLine = this.codingLine;\n    const columns = this.columns;\n    let refPos, blackPixels, bits, i;\n\n    if (this.outputBits === 0) {\n      if (this.rowsDone) {\n        this.eof = true;\n      }\n\n      if (this.eof) {\n        return -1;\n      }\n\n      this.err = false;\n      let code1, code2, code3;\n\n      if (this.nextLine2D) {\n        for (i = 0; codingLine[i] < columns; ++i) {\n          refLine[i] = codingLine[i];\n        }\n\n        refLine[i++] = columns;\n        refLine[i] = columns;\n        codingLine[0] = 0;\n        this.codingPos = 0;\n        refPos = 0;\n        blackPixels = 0;\n\n        while (codingLine[this.codingPos] < columns) {\n          code1 = this._getTwoDimCode();\n\n          switch (code1) {\n            case twoDimPass:\n              this._addPixels(refLine[refPos + 1], blackPixels);\n\n              if (refLine[refPos + 1] < columns) {\n                refPos += 2;\n              }\n\n              break;\n\n            case twoDimHoriz:\n              code1 = code2 = 0;\n\n              if (blackPixels) {\n                do {\n                  code1 += code3 = this._getBlackCode();\n                } while (code3 >= 64);\n\n                do {\n                  code2 += code3 = this._getWhiteCode();\n                } while (code3 >= 64);\n              } else {\n                do {\n                  code1 += code3 = this._getWhiteCode();\n                } while (code3 >= 64);\n\n                do {\n                  code2 += code3 = this._getBlackCode();\n                } while (code3 >= 64);\n              }\n\n              this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n\n              if (codingLine[this.codingPos] < columns) {\n                this._addPixels(codingLine[this.codingPos] + code2, blackPixels ^ 1);\n              }\n\n              while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                refPos += 2;\n              }\n\n              break;\n\n            case twoDimVertR3:\n              this._addPixels(refLine[refPos] + 3, blackPixels);\n\n              blackPixels ^= 1;\n\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n              }\n\n              break;\n\n            case twoDimVertR2:\n              this._addPixels(refLine[refPos] + 2, blackPixels);\n\n              blackPixels ^= 1;\n\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n              }\n\n              break;\n\n            case twoDimVertR1:\n              this._addPixels(refLine[refPos] + 1, blackPixels);\n\n              blackPixels ^= 1;\n\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n              }\n\n              break;\n\n            case twoDimVert0:\n              this._addPixels(refLine[refPos], blackPixels);\n\n              blackPixels ^= 1;\n\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n              }\n\n              break;\n\n            case twoDimVertL3:\n              this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n\n              blackPixels ^= 1;\n\n              if (codingLine[this.codingPos] < columns) {\n                if (refPos > 0) {\n                  --refPos;\n                } else {\n                  ++refPos;\n                }\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n              }\n\n              break;\n\n            case twoDimVertL2:\n              this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n\n              blackPixels ^= 1;\n\n              if (codingLine[this.codingPos] < columns) {\n                if (refPos > 0) {\n                  --refPos;\n                } else {\n                  ++refPos;\n                }\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n              }\n\n              break;\n\n            case twoDimVertL1:\n              this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n\n              blackPixels ^= 1;\n\n              if (codingLine[this.codingPos] < columns) {\n                if (refPos > 0) {\n                  --refPos;\n                } else {\n                  ++refPos;\n                }\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n              }\n\n              break;\n\n            case ccittEOF:\n              this._addPixels(columns, 0);\n\n              this.eof = true;\n              break;\n\n            default:\n              (0, _util.info)(\"bad 2d code\");\n\n              this._addPixels(columns, 0);\n\n              this.err = true;\n          }\n        }\n      } else {\n        codingLine[0] = 0;\n        this.codingPos = 0;\n        blackPixels = 0;\n\n        while (codingLine[this.codingPos] < columns) {\n          code1 = 0;\n\n          if (blackPixels) {\n            do {\n              code1 += code3 = this._getBlackCode();\n            } while (code3 >= 64);\n          } else {\n            do {\n              code1 += code3 = this._getWhiteCode();\n            } while (code3 >= 64);\n          }\n\n          this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n\n          blackPixels ^= 1;\n        }\n      }\n\n      let gotEOL = false;\n\n      if (this.byteAlign) {\n        this.inputBits &= ~7;\n      }\n\n      if (!this.eoblock && this.row === this.rows - 1) {\n        this.rowsDone = true;\n      } else {\n        code1 = this._lookBits(12);\n\n        if (this.eoline) {\n          while (code1 !== ccittEOF && code1 !== 1) {\n            this._eatBits(1);\n\n            code1 = this._lookBits(12);\n          }\n        } else {\n          while (code1 === 0) {\n            this._eatBits(1);\n\n            code1 = this._lookBits(12);\n          }\n        }\n\n        if (code1 === 1) {\n          this._eatBits(12);\n\n          gotEOL = true;\n        } else if (code1 === ccittEOF) {\n          this.eof = true;\n        }\n      }\n\n      if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n        this.nextLine2D = !this._lookBits(1);\n\n        this._eatBits(1);\n      }\n\n      if (this.eoblock && gotEOL && this.byteAlign) {\n        code1 = this._lookBits(12);\n\n        if (code1 === 1) {\n          this._eatBits(12);\n\n          if (this.encoding > 0) {\n            this._lookBits(1);\n\n            this._eatBits(1);\n          }\n\n          if (this.encoding >= 0) {\n            for (i = 0; i < 4; ++i) {\n              code1 = this._lookBits(12);\n\n              if (code1 !== 1) {\n                (0, _util.info)(\"bad rtc code: \" + code1);\n              }\n\n              this._eatBits(12);\n\n              if (this.encoding > 0) {\n                this._lookBits(1);\n\n                this._eatBits(1);\n              }\n            }\n          }\n\n          this.eof = true;\n        }\n      } else if (this.err && this.eoline) {\n        while (true) {\n          code1 = this._lookBits(13);\n\n          if (code1 === ccittEOF) {\n            this.eof = true;\n            return -1;\n          }\n\n          if (code1 >> 1 === 1) {\n            break;\n          }\n\n          this._eatBits(1);\n        }\n\n        this._eatBits(12);\n\n        if (this.encoding > 0) {\n          this._eatBits(1);\n\n          this.nextLine2D = !(code1 & 1);\n        }\n      }\n\n      if (codingLine[0] > 0) {\n        this.outputBits = codingLine[this.codingPos = 0];\n      } else {\n        this.outputBits = codingLine[this.codingPos = 1];\n      }\n\n      this.row++;\n    }\n\n    let c;\n\n    if (this.outputBits >= 8) {\n      c = this.codingPos & 1 ? 0 : 0xff;\n      this.outputBits -= 8;\n\n      if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n        this.codingPos++;\n        this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n      }\n    } else {\n      bits = 8;\n      c = 0;\n\n      do {\n        if (typeof this.outputBits !== \"number\") {\n          throw new _util.FormatError('Invalid /CCITTFaxDecode data, \"outputBits\" must be a number.');\n        }\n\n        if (this.outputBits > bits) {\n          c <<= bits;\n\n          if (!(this.codingPos & 1)) {\n            c |= 0xff >> 8 - bits;\n          }\n\n          this.outputBits -= bits;\n          bits = 0;\n        } else {\n          c <<= this.outputBits;\n\n          if (!(this.codingPos & 1)) {\n            c |= 0xff >> 8 - this.outputBits;\n          }\n\n          bits -= this.outputBits;\n          this.outputBits = 0;\n\n          if (codingLine[this.codingPos] < columns) {\n            this.codingPos++;\n            this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n          } else if (bits > 0) {\n            c <<= bits;\n            bits = 0;\n          }\n        }\n      } while (bits);\n    }\n\n    if (this.black) {\n      c ^= 0xff;\n    }\n\n    return c;\n  }\n\n  _addPixels(a1, blackPixels) {\n    const codingLine = this.codingLine;\n    let codingPos = this.codingPos;\n\n    if (a1 > codingLine[codingPos]) {\n      if (a1 > this.columns) {\n        (0, _util.info)(\"row is wrong length\");\n        this.err = true;\n        a1 = this.columns;\n      }\n\n      if (codingPos & 1 ^ blackPixels) {\n        ++codingPos;\n      }\n\n      codingLine[codingPos] = a1;\n    }\n\n    this.codingPos = codingPos;\n  }\n\n  _addPixelsNeg(a1, blackPixels) {\n    const codingLine = this.codingLine;\n    let codingPos = this.codingPos;\n\n    if (a1 > codingLine[codingPos]) {\n      if (a1 > this.columns) {\n        (0, _util.info)(\"row is wrong length\");\n        this.err = true;\n        a1 = this.columns;\n      }\n\n      if (codingPos & 1 ^ blackPixels) {\n        ++codingPos;\n      }\n\n      codingLine[codingPos] = a1;\n    } else if (a1 < codingLine[codingPos]) {\n      if (a1 < 0) {\n        (0, _util.info)(\"invalid code\");\n        this.err = true;\n        a1 = 0;\n      }\n\n      while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n        --codingPos;\n      }\n\n      codingLine[codingPos] = a1;\n    }\n\n    this.codingPos = codingPos;\n  }\n\n  _findTableCode(start, end, table, limit) {\n    const limitValue = limit || 0;\n\n    for (let i = start; i <= end; ++i) {\n      let code = this._lookBits(i);\n\n      if (code === ccittEOF) {\n        return [true, 1, false];\n      }\n\n      if (i < end) {\n        code <<= end - i;\n      }\n\n      if (!limitValue || code >= limitValue) {\n        const p = table[code - limitValue];\n\n        if (p[0] === i) {\n          this._eatBits(i);\n\n          return [true, p[1], true];\n        }\n      }\n    }\n\n    return [false, 0, false];\n  }\n\n  _getTwoDimCode() {\n    let code = 0;\n    let p;\n\n    if (this.eoblock) {\n      code = this._lookBits(7);\n      p = twoDimTable[code];\n\n      if (p && p[0] > 0) {\n        this._eatBits(p[0]);\n\n        return p[1];\n      }\n    } else {\n      const result = this._findTableCode(1, 7, twoDimTable);\n\n      if (result[0] && result[2]) {\n        return result[1];\n      }\n    }\n\n    (0, _util.info)(\"Bad two dim code\");\n    return ccittEOF;\n  }\n\n  _getWhiteCode() {\n    let code = 0;\n    let p;\n\n    if (this.eoblock) {\n      code = this._lookBits(12);\n\n      if (code === ccittEOF) {\n        return 1;\n      }\n\n      if (code >> 5 === 0) {\n        p = whiteTable1[code];\n      } else {\n        p = whiteTable2[code >> 3];\n      }\n\n      if (p[0] > 0) {\n        this._eatBits(p[0]);\n\n        return p[1];\n      }\n    } else {\n      let result = this._findTableCode(1, 9, whiteTable2);\n\n      if (result[0]) {\n        return result[1];\n      }\n\n      result = this._findTableCode(11, 12, whiteTable1);\n\n      if (result[0]) {\n        return result[1];\n      }\n    }\n\n    (0, _util.info)(\"bad white code\");\n\n    this._eatBits(1);\n\n    return 1;\n  }\n\n  _getBlackCode() {\n    let code, p;\n\n    if (this.eoblock) {\n      code = this._lookBits(13);\n\n      if (code === ccittEOF) {\n        return 1;\n      }\n\n      if (code >> 7 === 0) {\n        p = blackTable1[code];\n      } else if (code >> 9 === 0 && code >> 7 !== 0) {\n        p = blackTable2[(code >> 1) - 64];\n      } else {\n        p = blackTable3[code >> 7];\n      }\n\n      if (p[0] > 0) {\n        this._eatBits(p[0]);\n\n        return p[1];\n      }\n    } else {\n      let result = this._findTableCode(2, 6, blackTable3);\n\n      if (result[0]) {\n        return result[1];\n      }\n\n      result = this._findTableCode(7, 12, blackTable2, 64);\n\n      if (result[0]) {\n        return result[1];\n      }\n\n      result = this._findTableCode(10, 13, blackTable1);\n\n      if (result[0]) {\n        return result[1];\n      }\n    }\n\n    (0, _util.info)(\"bad black code\");\n\n    this._eatBits(1);\n\n    return 1;\n  }\n\n  _lookBits(n) {\n    let c;\n\n    while (this.inputBits < n) {\n      if ((c = this.source.next()) === -1) {\n        if (this.inputBits === 0) {\n          return ccittEOF;\n        }\n\n        return this.inputBuf << n - this.inputBits & 0xffff >> 16 - n;\n      }\n\n      this.inputBuf = this.inputBuf << 8 | c;\n      this.inputBits += 8;\n    }\n\n    return this.inputBuf >> this.inputBits - n & 0xffff >> 16 - n;\n  }\n\n  _eatBits(n) {\n    if ((this.inputBits -= n) < 0) {\n      this.inputBits = 0;\n    }\n  }\n\n}\n\nexports.CCITTFaxDecoder = CCITTFaxDecoder;\n\n/***/ }),\n/* 148 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.FlateStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(144);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst codeLenCodeMap = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\nconst lengthDecode = new Int32Array([0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a, 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f, 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073, 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102]);\nconst distDecode = new Int32Array([0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d, 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1, 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01, 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001]);\nconst fixedLitCodeTab = [new Int32Array([0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0, 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0, 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0, 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8, 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8, 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8, 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4, 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4, 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4, 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc, 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec, 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc, 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2, 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2, 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2, 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca, 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea, 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da, 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6, 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6, 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6, 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce, 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee, 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de, 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe, 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1, 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1, 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1, 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9, 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9, 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9, 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5, 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5, 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5, 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd, 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed, 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd, 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3, 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3, 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3, 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb, 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb, 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db, 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7, 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7, 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7, 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf, 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef, 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df, 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff]), 9];\nconst fixedDistCodeTab = [new Int32Array([0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c, 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000, 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d, 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000]), 5];\n\nclass FlateStream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength) {\n    super(maybeLength);\n    this.str = str;\n    this.dict = str.dict;\n    const cmf = str.getByte();\n    const flg = str.getByte();\n\n    if (cmf === -1 || flg === -1) {\n      throw new _util.FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`);\n    }\n\n    if ((cmf & 0x0f) !== 0x08) {\n      throw new _util.FormatError(`Unknown compression method in flate stream: ${cmf}, ${flg}`);\n    }\n\n    if (((cmf << 8) + flg) % 31 !== 0) {\n      throw new _util.FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);\n    }\n\n    if (flg & 0x20) {\n      throw new _util.FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`);\n    }\n\n    this.codeSize = 0;\n    this.codeBuf = 0;\n  }\n\n  getBits(bits) {\n    const str = this.str;\n    let codeSize = this.codeSize;\n    let codeBuf = this.codeBuf;\n    let b;\n\n    while (codeSize < bits) {\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError(\"Bad encoding in flate stream\");\n      }\n\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n\n    b = codeBuf & (1 << bits) - 1;\n    this.codeBuf = codeBuf >> bits;\n    this.codeSize = codeSize -= bits;\n    return b;\n  }\n\n  getCode(table) {\n    const str = this.str;\n    const codes = table[0];\n    const maxLen = table[1];\n    let codeSize = this.codeSize;\n    let codeBuf = this.codeBuf;\n    let b;\n\n    while (codeSize < maxLen) {\n      if ((b = str.getByte()) === -1) {\n        break;\n      }\n\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n\n    const code = codes[codeBuf & (1 << maxLen) - 1];\n    const codeLen = code >> 16;\n    const codeVal = code & 0xffff;\n\n    if (codeLen < 1 || codeSize < codeLen) {\n      throw new _util.FormatError(\"Bad encoding in flate stream\");\n    }\n\n    this.codeBuf = codeBuf >> codeLen;\n    this.codeSize = codeSize - codeLen;\n    return codeVal;\n  }\n\n  generateHuffmanTable(lengths) {\n    const n = lengths.length;\n    let maxLen = 0;\n    let i;\n\n    for (i = 0; i < n; ++i) {\n      if (lengths[i] > maxLen) {\n        maxLen = lengths[i];\n      }\n    }\n\n    const size = 1 << maxLen;\n    const codes = new Int32Array(size);\n\n    for (let len = 1, code = 0, skip = 2; len <= maxLen; ++len, code <<= 1, skip <<= 1) {\n      for (let val = 0; val < n; ++val) {\n        if (lengths[val] === len) {\n          let code2 = 0;\n          let t = code;\n\n          for (i = 0; i < len; ++i) {\n            code2 = code2 << 1 | t & 1;\n            t >>= 1;\n          }\n\n          for (i = code2; i < size; i += skip) {\n            codes[i] = len << 16 | val;\n          }\n\n          ++code;\n        }\n      }\n    }\n\n    return [codes, maxLen];\n  }\n\n  readBlock() {\n    let buffer, len;\n    const str = this.str;\n    let hdr = this.getBits(3);\n\n    if (hdr & 1) {\n      this.eof = true;\n    }\n\n    hdr >>= 1;\n\n    if (hdr === 0) {\n      let b;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError(\"Bad block header in flate stream\");\n      }\n\n      let blockLen = b;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError(\"Bad block header in flate stream\");\n      }\n\n      blockLen |= b << 8;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError(\"Bad block header in flate stream\");\n      }\n\n      let check = b;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError(\"Bad block header in flate stream\");\n      }\n\n      check |= b << 8;\n\n      if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n        throw new _util.FormatError(\"Bad uncompressed block length in flate stream\");\n      }\n\n      this.codeBuf = 0;\n      this.codeSize = 0;\n      const bufferLength = this.bufferLength,\n            end = bufferLength + blockLen;\n      buffer = this.ensureBuffer(end);\n      this.bufferLength = end;\n\n      if (blockLen === 0) {\n        if (str.peekByte() === -1) {\n          this.eof = true;\n        }\n      } else {\n        const block = str.getBytes(blockLen);\n        buffer.set(block, bufferLength);\n\n        if (block.length < blockLen) {\n          this.eof = true;\n        }\n      }\n\n      return;\n    }\n\n    let litCodeTable;\n    let distCodeTable;\n\n    if (hdr === 1) {\n      litCodeTable = fixedLitCodeTab;\n      distCodeTable = fixedDistCodeTab;\n    } else if (hdr === 2) {\n      const numLitCodes = this.getBits(5) + 257;\n      const numDistCodes = this.getBits(5) + 1;\n      const numCodeLenCodes = this.getBits(4) + 4;\n      const codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n      let i;\n\n      for (i = 0; i < numCodeLenCodes; ++i) {\n        codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n      }\n\n      const codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n      len = 0;\n      i = 0;\n      const codes = numLitCodes + numDistCodes;\n      const codeLengths = new Uint8Array(codes);\n      let bitsLength, bitsOffset, what;\n\n      while (i < codes) {\n        const code = this.getCode(codeLenCodeTab);\n\n        if (code === 16) {\n          bitsLength = 2;\n          bitsOffset = 3;\n          what = len;\n        } else if (code === 17) {\n          bitsLength = 3;\n          bitsOffset = 3;\n          what = len = 0;\n        } else if (code === 18) {\n          bitsLength = 7;\n          bitsOffset = 11;\n          what = len = 0;\n        } else {\n          codeLengths[i++] = len = code;\n          continue;\n        }\n\n        let repeatLength = this.getBits(bitsLength) + bitsOffset;\n\n        while (repeatLength-- > 0) {\n          codeLengths[i++] = what;\n        }\n      }\n\n      litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes));\n      distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes));\n    } else {\n      throw new _util.FormatError(\"Unknown block type in flate stream\");\n    }\n\n    buffer = this.buffer;\n    let limit = buffer ? buffer.length : 0;\n    let pos = this.bufferLength;\n\n    while (true) {\n      let code1 = this.getCode(litCodeTable);\n\n      if (code1 < 256) {\n        if (pos + 1 >= limit) {\n          buffer = this.ensureBuffer(pos + 1);\n          limit = buffer.length;\n        }\n\n        buffer[pos++] = code1;\n        continue;\n      }\n\n      if (code1 === 256) {\n        this.bufferLength = pos;\n        return;\n      }\n\n      code1 -= 257;\n      code1 = lengthDecode[code1];\n      let code2 = code1 >> 16;\n\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n\n      len = (code1 & 0xffff) + code2;\n      code1 = this.getCode(distCodeTable);\n      code1 = distDecode[code1];\n      code2 = code1 >> 16;\n\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n\n      const dist = (code1 & 0xffff) + code2;\n\n      if (pos + len >= limit) {\n        buffer = this.ensureBuffer(pos + len);\n        limit = buffer.length;\n      }\n\n      for (let k = 0; k < len; ++k, ++pos) {\n        buffer[pos] = buffer[pos - dist];\n      }\n    }\n  }\n\n}\n\nexports.FlateStream = FlateStream;\n\n/***/ }),\n/* 149 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Jbig2Stream = void 0;\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _decode_stream = __w_pdfjs_require__(144);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _jbig = __w_pdfjs_require__(150);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass Jbig2Stream extends _decode_stream.DecodeStream {\n  constructor(stream, maybeLength, params) {\n    super(maybeLength);\n    this.stream = stream;\n    this.dict = stream.dict;\n    this.maybeLength = maybeLength;\n    this.params = params;\n  }\n\n  get bytes() {\n    return (0, _util.shadow)(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n  }\n\n  ensureBuffer(requested) {}\n\n  readBlock() {\n    if (this.eof) {\n      return;\n    }\n\n    const jbig2Image = new _jbig.Jbig2Image();\n    const chunks = [];\n\n    if (this.params instanceof _primitives.Dict) {\n      const globalsStream = this.params.get(\"JBIG2Globals\");\n\n      if (globalsStream instanceof _base_stream.BaseStream) {\n        const globals = globalsStream.getBytes();\n        chunks.push({\n          data: globals,\n          start: 0,\n          end: globals.length\n        });\n      }\n    }\n\n    chunks.push({\n      data: this.bytes,\n      start: 0,\n      end: this.bytes.length\n    });\n    const data = jbig2Image.parseChunks(chunks);\n    const dataLength = data.length;\n\n    for (let i = 0; i < dataLength; i++) {\n      data[i] ^= 0xff;\n    }\n\n    this.buffer = data;\n    this.bufferLength = dataLength;\n    this.eof = true;\n  }\n\n}\n\nexports.Jbig2Stream = Jbig2Stream;\n\n/***/ }),\n/* 150 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Jbig2Image = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(151);\n\nvar _ccitt = __w_pdfjs_require__(147);\n\nclass Jbig2Error extends _util.BaseException {\n  constructor(msg) {\n    super(`JBIG2 error: ${msg}`, \"Jbig2Error\");\n  }\n\n}\n\nclass ContextCache {\n  getContexts(id) {\n    if (id in this) {\n      return this[id];\n    }\n\n    return this[id] = new Int8Array(1 << 16);\n  }\n\n}\n\nclass DecodingContext {\n  constructor(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n  }\n\n  get decoder() {\n    const decoder = new _arithmetic_decoder.ArithmeticDecoder(this.data, this.start, this.end);\n    return (0, _util.shadow)(this, \"decoder\", decoder);\n  }\n\n  get contextCache() {\n    const cache = new ContextCache();\n    return (0, _util.shadow)(this, \"contextCache\", cache);\n  }\n\n}\n\nfunction decodeInteger(contextCache, procedure, decoder) {\n  const contexts = contextCache.getContexts(procedure);\n  let prev = 1;\n\n  function readBits(length) {\n    let v = 0;\n\n    for (let i = 0; i < length; i++) {\n      const bit = decoder.readBit(contexts, prev);\n      prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256;\n      v = v << 1 | bit;\n    }\n\n    return v >>> 0;\n  }\n\n  const sign = readBits(1);\n  const value = readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(32) + 4436 : readBits(12) + 340 : readBits(8) + 84 : readBits(6) + 20 : readBits(4) + 4 : readBits(2);\n\n  if (sign === 0) {\n    return value;\n  } else if (value > 0) {\n    return -value;\n  }\n\n  return null;\n}\n\nfunction decodeIAID(contextCache, decoder, codeLength) {\n  const contexts = contextCache.getContexts(\"IAID\");\n  let prev = 1;\n\n  for (let i = 0; i < codeLength; i++) {\n    const bit = decoder.readBit(contexts, prev);\n    prev = prev << 1 | bit;\n  }\n\n  if (codeLength < 31) {\n    return prev & (1 << codeLength) - 1;\n  }\n\n  return prev & 0x7fffffff;\n}\n\nconst SegmentTypes = [\"SymbolDictionary\", null, null, null, \"IntermediateTextRegion\", null, \"ImmediateTextRegion\", \"ImmediateLosslessTextRegion\", null, null, null, null, null, null, null, null, \"PatternDictionary\", null, null, null, \"IntermediateHalftoneRegion\", null, \"ImmediateHalftoneRegion\", \"ImmediateLosslessHalftoneRegion\", null, null, null, null, null, null, null, null, null, null, null, null, \"IntermediateGenericRegion\", null, \"ImmediateGenericRegion\", \"ImmediateLosslessGenericRegion\", \"IntermediateGenericRefinementRegion\", null, \"ImmediateGenericRefinementRegion\", \"ImmediateLosslessGenericRefinementRegion\", null, null, null, null, \"PageInformation\", \"EndOfPage\", \"EndOfStripe\", \"EndOfFile\", \"Profiles\", \"Tables\", null, null, null, null, null, null, null, null, \"Extension\"];\nconst CodingTemplates = [[{\n  x: -1,\n  y: -2\n}, {\n  x: 0,\n  y: -2\n}, {\n  x: 1,\n  y: -2\n}, {\n  x: -2,\n  y: -1\n}, {\n  x: -1,\n  y: -1\n}, {\n  x: 0,\n  y: -1\n}, {\n  x: 1,\n  y: -1\n}, {\n  x: 2,\n  y: -1\n}, {\n  x: -4,\n  y: 0\n}, {\n  x: -3,\n  y: 0\n}, {\n  x: -2,\n  y: 0\n}, {\n  x: -1,\n  y: 0\n}], [{\n  x: -1,\n  y: -2\n}, {\n  x: 0,\n  y: -2\n}, {\n  x: 1,\n  y: -2\n}, {\n  x: 2,\n  y: -2\n}, {\n  x: -2,\n  y: -1\n}, {\n  x: -1,\n  y: -1\n}, {\n  x: 0,\n  y: -1\n}, {\n  x: 1,\n  y: -1\n}, {\n  x: 2,\n  y: -1\n}, {\n  x: -3,\n  y: 0\n}, {\n  x: -2,\n  y: 0\n}, {\n  x: -1,\n  y: 0\n}], [{\n  x: -1,\n  y: -2\n}, {\n  x: 0,\n  y: -2\n}, {\n  x: 1,\n  y: -2\n}, {\n  x: -2,\n  y: -1\n}, {\n  x: -1,\n  y: -1\n}, {\n  x: 0,\n  y: -1\n}, {\n  x: 1,\n  y: -1\n}, {\n  x: -2,\n  y: 0\n}, {\n  x: -1,\n  y: 0\n}], [{\n  x: -3,\n  y: -1\n}, {\n  x: -2,\n  y: -1\n}, {\n  x: -1,\n  y: -1\n}, {\n  x: 0,\n  y: -1\n}, {\n  x: 1,\n  y: -1\n}, {\n  x: -4,\n  y: 0\n}, {\n  x: -3,\n  y: 0\n}, {\n  x: -2,\n  y: 0\n}, {\n  x: -1,\n  y: 0\n}]];\nconst RefinementTemplates = [{\n  coding: [{\n    x: 0,\n    y: -1\n  }, {\n    x: 1,\n    y: -1\n  }, {\n    x: -1,\n    y: 0\n  }],\n  reference: [{\n    x: 0,\n    y: -1\n  }, {\n    x: 1,\n    y: -1\n  }, {\n    x: -1,\n    y: 0\n  }, {\n    x: 0,\n    y: 0\n  }, {\n    x: 1,\n    y: 0\n  }, {\n    x: -1,\n    y: 1\n  }, {\n    x: 0,\n    y: 1\n  }, {\n    x: 1,\n    y: 1\n  }]\n}, {\n  coding: [{\n    x: -1,\n    y: -1\n  }, {\n    x: 0,\n    y: -1\n  }, {\n    x: 1,\n    y: -1\n  }, {\n    x: -1,\n    y: 0\n  }],\n  reference: [{\n    x: 0,\n    y: -1\n  }, {\n    x: -1,\n    y: 0\n  }, {\n    x: 0,\n    y: 0\n  }, {\n    x: 1,\n    y: 0\n  }, {\n    x: 0,\n    y: 1\n  }, {\n    x: 1,\n    y: 1\n  }]\n}];\nconst ReusedContexts = [0x9b25, 0x0795, 0x00e5, 0x0195];\nconst RefinementReusedContexts = [0x0020, 0x0008];\n\nfunction decodeBitmapTemplate0(width, height, decodingContext) {\n  const decoder = decodingContext.decoder;\n  const contexts = decodingContext.contextCache.getContexts(\"GB\");\n  const bitmap = [];\n  let contextLabel, i, j, pixel, row, row1, row2;\n  const OLD_PIXEL_MASK = 0x7bf7;\n\n  for (i = 0; i < height; i++) {\n    row = bitmap[i] = new Uint8Array(width);\n    row1 = i < 1 ? row : bitmap[i - 1];\n    row2 = i < 2 ? row : bitmap[i - 2];\n    contextLabel = row2[0] << 13 | row2[1] << 12 | row2[2] << 11 | row1[0] << 7 | row1[1] << 6 | row1[2] << 5 | row1[3] << 4;\n\n    for (j = 0; j < width; j++) {\n      row[j] = pixel = decoder.readBit(contexts, contextLabel);\n      contextLabel = (contextLabel & OLD_PIXEL_MASK) << 1 | (j + 3 < width ? row2[j + 3] << 11 : 0) | (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel;\n    }\n  }\n\n  return bitmap;\n}\n\nfunction decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) {\n  if (mmr) {\n    const input = new Reader(decodingContext.data, decodingContext.start, decodingContext.end);\n    return decodeMMRBitmap(input, width, height, false);\n  }\n\n  if (templateIndex === 0 && !skip && !prediction && at.length === 4 && at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 && at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) {\n    return decodeBitmapTemplate0(width, height, decodingContext);\n  }\n\n  const useskip = !!skip;\n  const template = CodingTemplates[templateIndex].concat(at);\n  template.sort(function (a, b) {\n    return a.y - b.y || a.x - b.x;\n  });\n  const templateLength = template.length;\n  const templateX = new Int8Array(templateLength);\n  const templateY = new Int8Array(templateLength);\n  const changingTemplateEntries = [];\n  let reuseMask = 0,\n      minX = 0,\n      maxX = 0,\n      minY = 0;\n  let c, k;\n\n  for (k = 0; k < templateLength; k++) {\n    templateX[k] = template[k].x;\n    templateY[k] = template[k].y;\n    minX = Math.min(minX, template[k].x);\n    maxX = Math.max(maxX, template[k].x);\n    minY = Math.min(minY, template[k].y);\n\n    if (k < templateLength - 1 && template[k].y === template[k + 1].y && template[k].x === template[k + 1].x - 1) {\n      reuseMask |= 1 << templateLength - 1 - k;\n    } else {\n      changingTemplateEntries.push(k);\n    }\n  }\n\n  const changingEntriesLength = changingTemplateEntries.length;\n  const changingTemplateX = new Int8Array(changingEntriesLength);\n  const changingTemplateY = new Int8Array(changingEntriesLength);\n  const changingTemplateBit = new Uint16Array(changingEntriesLength);\n\n  for (c = 0; c < changingEntriesLength; c++) {\n    k = changingTemplateEntries[c];\n    changingTemplateX[c] = template[k].x;\n    changingTemplateY[c] = template[k].y;\n    changingTemplateBit[c] = 1 << templateLength - 1 - k;\n  }\n\n  const sbb_left = -minX;\n  const sbb_top = -minY;\n  const sbb_right = width - maxX;\n  const pseudoPixelContext = ReusedContexts[templateIndex];\n  let row = new Uint8Array(width);\n  const bitmap = [];\n  const decoder = decodingContext.decoder;\n  const contexts = decodingContext.contextCache.getContexts(\"GB\");\n  let ltp = 0,\n      j,\n      i0,\n      j0,\n      contextLabel = 0,\n      bit,\n      shift;\n\n  for (let i = 0; i < height; i++) {\n    if (prediction) {\n      const sltp = decoder.readBit(contexts, pseudoPixelContext);\n      ltp ^= sltp;\n\n      if (ltp) {\n        bitmap.push(row);\n        continue;\n      }\n    }\n\n    row = new Uint8Array(row);\n    bitmap.push(row);\n\n    for (j = 0; j < width; j++) {\n      if (useskip && skip[i][j]) {\n        row[j] = 0;\n        continue;\n      }\n\n      if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n        contextLabel = contextLabel << 1 & reuseMask;\n\n        for (k = 0; k < changingEntriesLength; k++) {\n          i0 = i + changingTemplateY[k];\n          j0 = j + changingTemplateX[k];\n          bit = bitmap[i0][j0];\n\n          if (bit) {\n            bit = changingTemplateBit[k];\n            contextLabel |= bit;\n          }\n        }\n      } else {\n        contextLabel = 0;\n        shift = templateLength - 1;\n\n        for (k = 0; k < templateLength; k++, shift--) {\n          j0 = j + templateX[k];\n\n          if (j0 >= 0 && j0 < width) {\n            i0 = i + templateY[k];\n\n            if (i0 >= 0) {\n              bit = bitmap[i0][j0];\n\n              if (bit) {\n                contextLabel |= bit << shift;\n              }\n            }\n          }\n        }\n      }\n\n      const pixel = decoder.readBit(contexts, contextLabel);\n      row[j] = pixel;\n    }\n  }\n\n  return bitmap;\n}\n\nfunction decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) {\n  let codingTemplate = RefinementTemplates[templateIndex].coding;\n\n  if (templateIndex === 0) {\n    codingTemplate = codingTemplate.concat([at[0]]);\n  }\n\n  const codingTemplateLength = codingTemplate.length;\n  const codingTemplateX = new Int32Array(codingTemplateLength);\n  const codingTemplateY = new Int32Array(codingTemplateLength);\n  let k;\n\n  for (k = 0; k < codingTemplateLength; k++) {\n    codingTemplateX[k] = codingTemplate[k].x;\n    codingTemplateY[k] = codingTemplate[k].y;\n  }\n\n  let referenceTemplate = RefinementTemplates[templateIndex].reference;\n\n  if (templateIndex === 0) {\n    referenceTemplate = referenceTemplate.concat([at[1]]);\n  }\n\n  const referenceTemplateLength = referenceTemplate.length;\n  const referenceTemplateX = new Int32Array(referenceTemplateLength);\n  const referenceTemplateY = new Int32Array(referenceTemplateLength);\n\n  for (k = 0; k < referenceTemplateLength; k++) {\n    referenceTemplateX[k] = referenceTemplate[k].x;\n    referenceTemplateY[k] = referenceTemplate[k].y;\n  }\n\n  const referenceWidth = referenceBitmap[0].length;\n  const referenceHeight = referenceBitmap.length;\n  const pseudoPixelContext = RefinementReusedContexts[templateIndex];\n  const bitmap = [];\n  const decoder = decodingContext.decoder;\n  const contexts = decodingContext.contextCache.getContexts(\"GR\");\n  let ltp = 0;\n\n  for (let i = 0; i < height; i++) {\n    if (prediction) {\n      const sltp = decoder.readBit(contexts, pseudoPixelContext);\n      ltp ^= sltp;\n\n      if (ltp) {\n        throw new Jbig2Error(\"prediction is not supported\");\n      }\n    }\n\n    const row = new Uint8Array(width);\n    bitmap.push(row);\n\n    for (let j = 0; j < width; j++) {\n      let i0, j0;\n      let contextLabel = 0;\n\n      for (k = 0; k < codingTemplateLength; k++) {\n        i0 = i + codingTemplateY[k];\n        j0 = j + codingTemplateX[k];\n\n        if (i0 < 0 || j0 < 0 || j0 >= width) {\n          contextLabel <<= 1;\n        } else {\n          contextLabel = contextLabel << 1 | bitmap[i0][j0];\n        }\n      }\n\n      for (k = 0; k < referenceTemplateLength; k++) {\n        i0 = i + referenceTemplateY[k] - offsetY;\n        j0 = j + referenceTemplateX[k] - offsetX;\n\n        if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n          contextLabel <<= 1;\n        } else {\n          contextLabel = contextLabel << 1 | referenceBitmap[i0][j0];\n        }\n      }\n\n      const pixel = decoder.readBit(contexts, contextLabel);\n      row[j] = pixel;\n    }\n  }\n\n  return bitmap;\n}\n\nfunction decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext, huffmanInput) {\n  if (huffman && refinement) {\n    throw new Jbig2Error(\"symbol refinement with Huffman is not supported\");\n  }\n\n  const newSymbols = [];\n  let currentHeight = 0;\n  let symbolCodeLength = (0, _core_utils.log2)(symbols.length + numberOfNewSymbols);\n  const decoder = decodingContext.decoder;\n  const contextCache = decodingContext.contextCache;\n  let tableB1, symbolWidths;\n\n  if (huffman) {\n    tableB1 = getStandardTable(1);\n    symbolWidths = [];\n    symbolCodeLength = Math.max(symbolCodeLength, 1);\n  }\n\n  while (newSymbols.length < numberOfNewSymbols) {\n    const deltaHeight = huffman ? huffmanTables.tableDeltaHeight.decode(huffmanInput) : decodeInteger(contextCache, \"IADH\", decoder);\n    currentHeight += deltaHeight;\n    let currentWidth = 0,\n        totalWidth = 0;\n    const firstSymbol = huffman ? symbolWidths.length : 0;\n\n    while (true) {\n      const deltaWidth = huffman ? huffmanTables.tableDeltaWidth.decode(huffmanInput) : decodeInteger(contextCache, \"IADW\", decoder);\n\n      if (deltaWidth === null) {\n        break;\n      }\n\n      currentWidth += deltaWidth;\n      totalWidth += currentWidth;\n      let bitmap;\n\n      if (refinement) {\n        const numberOfInstances = decodeInteger(contextCache, \"IAAI\", decoder);\n\n        if (numberOfInstances > 1) {\n          bitmap = decodeTextRegion(huffman, refinement, currentWidth, currentHeight, 0, numberOfInstances, 1, symbols.concat(newSymbols), symbolCodeLength, 0, 0, 1, 0, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, 0, huffmanInput);\n        } else {\n          const symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n          const rdx = decodeInteger(contextCache, \"IARDX\", decoder);\n          const rdy = decodeInteger(contextCache, \"IARDY\", decoder);\n          const symbol = symbolId < symbols.length ? symbols[symbolId] : newSymbols[symbolId - symbols.length];\n          bitmap = decodeRefinement(currentWidth, currentHeight, refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, decodingContext);\n        }\n\n        newSymbols.push(bitmap);\n      } else if (huffman) {\n        symbolWidths.push(currentWidth);\n      } else {\n        bitmap = decodeBitmap(false, currentWidth, currentHeight, templateIndex, false, null, at, decodingContext);\n        newSymbols.push(bitmap);\n      }\n    }\n\n    if (huffman && !refinement) {\n      const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n      huffmanInput.byteAlign();\n      let collectiveBitmap;\n\n      if (bitmapSize === 0) {\n        collectiveBitmap = readUncompressedBitmap(huffmanInput, totalWidth, currentHeight);\n      } else {\n        const originalEnd = huffmanInput.end;\n        const bitmapEnd = huffmanInput.position + bitmapSize;\n        huffmanInput.end = bitmapEnd;\n        collectiveBitmap = decodeMMRBitmap(huffmanInput, totalWidth, currentHeight, false);\n        huffmanInput.end = originalEnd;\n        huffmanInput.position = bitmapEnd;\n      }\n\n      const numberOfSymbolsDecoded = symbolWidths.length;\n\n      if (firstSymbol === numberOfSymbolsDecoded - 1) {\n        newSymbols.push(collectiveBitmap);\n      } else {\n        let i,\n            y,\n            xMin = 0,\n            xMax,\n            bitmapWidth,\n            symbolBitmap;\n\n        for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n          bitmapWidth = symbolWidths[i];\n          xMax = xMin + bitmapWidth;\n          symbolBitmap = [];\n\n          for (y = 0; y < currentHeight; y++) {\n            symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n          }\n\n          newSymbols.push(symbolBitmap);\n          xMin = xMax;\n        }\n      }\n    }\n  }\n\n  const exportedSymbols = [],\n        flags = [];\n  let currentFlag = false,\n      i,\n      ii;\n  const totalSymbolsLength = symbols.length + numberOfNewSymbols;\n\n  while (flags.length < totalSymbolsLength) {\n    let runLength = huffman ? tableB1.decode(huffmanInput) : decodeInteger(contextCache, \"IAEX\", decoder);\n\n    while (runLength--) {\n      flags.push(currentFlag);\n    }\n\n    currentFlag = !currentFlag;\n  }\n\n  for (i = 0, ii = symbols.length; i < ii; i++) {\n    if (flags[i]) {\n      exportedSymbols.push(symbols[i]);\n    }\n  }\n\n  for (let j = 0; j < numberOfNewSymbols; i++, j++) {\n    if (flags[i]) {\n      exportedSymbols.push(newSymbols[j]);\n    }\n  }\n\n  return exportedSymbols;\n}\n\nfunction decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, logStripSize, huffmanInput) {\n  if (huffman && refinement) {\n    throw new Jbig2Error(\"refinement with Huffman is not supported\");\n  }\n\n  const bitmap = [];\n  let i, row;\n\n  for (i = 0; i < height; i++) {\n    row = new Uint8Array(width);\n\n    if (defaultPixelValue) {\n      for (let j = 0; j < width; j++) {\n        row[j] = defaultPixelValue;\n      }\n    }\n\n    bitmap.push(row);\n  }\n\n  const decoder = decodingContext.decoder;\n  const contextCache = decodingContext.contextCache;\n  let stripT = huffman ? -huffmanTables.tableDeltaT.decode(huffmanInput) : -decodeInteger(contextCache, \"IADT\", decoder);\n  let firstS = 0;\n  i = 0;\n\n  while (i < numberOfSymbolInstances) {\n    const deltaT = huffman ? huffmanTables.tableDeltaT.decode(huffmanInput) : decodeInteger(contextCache, \"IADT\", decoder);\n    stripT += deltaT;\n    const deltaFirstS = huffman ? huffmanTables.tableFirstS.decode(huffmanInput) : decodeInteger(contextCache, \"IAFS\", decoder);\n    firstS += deltaFirstS;\n    let currentS = firstS;\n\n    do {\n      let currentT = 0;\n\n      if (stripSize > 1) {\n        currentT = huffman ? huffmanInput.readBits(logStripSize) : decodeInteger(contextCache, \"IAIT\", decoder);\n      }\n\n      const t = stripSize * stripT + currentT;\n      const symbolId = huffman ? huffmanTables.symbolIDTable.decode(huffmanInput) : decodeIAID(contextCache, decoder, symbolCodeLength);\n      const applyRefinement = refinement && (huffman ? huffmanInput.readBit() : decodeInteger(contextCache, \"IARI\", decoder));\n      let symbolBitmap = inputSymbols[symbolId];\n      let symbolWidth = symbolBitmap[0].length;\n      let symbolHeight = symbolBitmap.length;\n\n      if (applyRefinement) {\n        const rdw = decodeInteger(contextCache, \"IARDW\", decoder);\n        const rdh = decodeInteger(contextCache, \"IARDH\", decoder);\n        const rdx = decodeInteger(contextCache, \"IARDX\", decoder);\n        const rdy = decodeInteger(contextCache, \"IARDY\", decoder);\n        symbolWidth += rdw;\n        symbolHeight += rdh;\n        symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, (rdh >> 1) + rdy, false, refinementAt, decodingContext);\n      }\n\n      const offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n      const offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n      let s2, t2, symbolRow;\n\n      if (transposed) {\n        for (s2 = 0; s2 < symbolHeight; s2++) {\n          row = bitmap[offsetS + s2];\n\n          if (!row) {\n            continue;\n          }\n\n          symbolRow = symbolBitmap[s2];\n          const maxWidth = Math.min(width - offsetT, symbolWidth);\n\n          switch (combinationOperator) {\n            case 0:\n              for (t2 = 0; t2 < maxWidth; t2++) {\n                row[offsetT + t2] |= symbolRow[t2];\n              }\n\n              break;\n\n            case 2:\n              for (t2 = 0; t2 < maxWidth; t2++) {\n                row[offsetT + t2] ^= symbolRow[t2];\n              }\n\n              break;\n\n            default:\n              throw new Jbig2Error(`operator ${combinationOperator} is not supported`);\n          }\n        }\n\n        currentS += symbolHeight - 1;\n      } else {\n        for (t2 = 0; t2 < symbolHeight; t2++) {\n          row = bitmap[offsetT + t2];\n\n          if (!row) {\n            continue;\n          }\n\n          symbolRow = symbolBitmap[t2];\n\n          switch (combinationOperator) {\n            case 0:\n              for (s2 = 0; s2 < symbolWidth; s2++) {\n                row[offsetS + s2] |= symbolRow[s2];\n              }\n\n              break;\n\n            case 2:\n              for (s2 = 0; s2 < symbolWidth; s2++) {\n                row[offsetS + s2] ^= symbolRow[s2];\n              }\n\n              break;\n\n            default:\n              throw new Jbig2Error(`operator ${combinationOperator} is not supported`);\n          }\n        }\n\n        currentS += symbolWidth - 1;\n      }\n\n      i++;\n      const deltaS = huffman ? huffmanTables.tableDeltaS.decode(huffmanInput) : decodeInteger(contextCache, \"IADS\", decoder);\n\n      if (deltaS === null) {\n        break;\n      }\n\n      currentS += deltaS + dsOffset;\n    } while (true);\n  }\n\n  return bitmap;\n}\n\nfunction decodePatternDictionary(mmr, patternWidth, patternHeight, maxPatternIndex, template, decodingContext) {\n  const at = [];\n\n  if (!mmr) {\n    at.push({\n      x: -patternWidth,\n      y: 0\n    });\n\n    if (template === 0) {\n      at.push({\n        x: -3,\n        y: -1\n      }, {\n        x: 2,\n        y: -2\n      }, {\n        x: -2,\n        y: -2\n      });\n    }\n  }\n\n  const collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n  const collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext);\n  const patterns = [];\n\n  for (let i = 0; i <= maxPatternIndex; i++) {\n    const patternBitmap = [];\n    const xMin = patternWidth * i;\n    const xMax = xMin + patternWidth;\n\n    for (let y = 0; y < patternHeight; y++) {\n      patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n    }\n\n    patterns.push(patternBitmap);\n  }\n\n  return patterns;\n}\n\nfunction decodeHalftoneRegion(mmr, patterns, template, regionWidth, regionHeight, defaultPixelValue, enableSkip, combinationOperator, gridWidth, gridHeight, gridOffsetX, gridOffsetY, gridVectorX, gridVectorY, decodingContext) {\n  const skip = null;\n\n  if (enableSkip) {\n    throw new Jbig2Error(\"skip is not supported\");\n  }\n\n  if (combinationOperator !== 0) {\n    throw new Jbig2Error(`operator \"${combinationOperator}\" is not supported in halftone region`);\n  }\n\n  const regionBitmap = [];\n  let i, j, row;\n\n  for (i = 0; i < regionHeight; i++) {\n    row = new Uint8Array(regionWidth);\n\n    if (defaultPixelValue) {\n      for (j = 0; j < regionWidth; j++) {\n        row[j] = defaultPixelValue;\n      }\n    }\n\n    regionBitmap.push(row);\n  }\n\n  const numberOfPatterns = patterns.length;\n  const pattern0 = patterns[0];\n  const patternWidth = pattern0[0].length,\n        patternHeight = pattern0.length;\n  const bitsPerValue = (0, _core_utils.log2)(numberOfPatterns);\n  const at = [];\n\n  if (!mmr) {\n    at.push({\n      x: template <= 1 ? 3 : 2,\n      y: -1\n    });\n\n    if (template === 0) {\n      at.push({\n        x: -3,\n        y: -1\n      }, {\n        x: 2,\n        y: -2\n      }, {\n        x: -2,\n        y: -2\n      });\n    }\n  }\n\n  const grayScaleBitPlanes = [];\n  let mmrInput, bitmap;\n\n  if (mmr) {\n    mmrInput = new Reader(decodingContext.data, decodingContext.start, decodingContext.end);\n  }\n\n  for (i = bitsPerValue - 1; i >= 0; i--) {\n    if (mmr) {\n      bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n    } else {\n      bitmap = decodeBitmap(false, gridWidth, gridHeight, template, false, skip, at, decodingContext);\n    }\n\n    grayScaleBitPlanes[i] = bitmap;\n  }\n\n  let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n\n  for (mg = 0; mg < gridHeight; mg++) {\n    for (ng = 0; ng < gridWidth; ng++) {\n      bit = 0;\n      patternIndex = 0;\n\n      for (j = bitsPerValue - 1; j >= 0; j--) {\n        bit ^= grayScaleBitPlanes[j][mg][ng];\n        patternIndex |= bit << j;\n      }\n\n      patternBitmap = patterns[patternIndex];\n      x = gridOffsetX + mg * gridVectorY + ng * gridVectorX >> 8;\n      y = gridOffsetY + mg * gridVectorX - ng * gridVectorY >> 8;\n\n      if (x >= 0 && x + patternWidth <= regionWidth && y >= 0 && y + patternHeight <= regionHeight) {\n        for (i = 0; i < patternHeight; i++) {\n          regionRow = regionBitmap[y + i];\n          patternRow = patternBitmap[i];\n\n          for (j = 0; j < patternWidth; j++) {\n            regionRow[x + j] |= patternRow[j];\n          }\n        }\n      } else {\n        let regionX, regionY;\n\n        for (i = 0; i < patternHeight; i++) {\n          regionY = y + i;\n\n          if (regionY < 0 || regionY >= regionHeight) {\n            continue;\n          }\n\n          regionRow = regionBitmap[regionY];\n          patternRow = patternBitmap[i];\n\n          for (j = 0; j < patternWidth; j++) {\n            regionX = x + j;\n\n            if (regionX >= 0 && regionX < regionWidth) {\n              regionRow[regionX] |= patternRow[j];\n            }\n          }\n        }\n      }\n    }\n  }\n\n  return regionBitmap;\n}\n\nfunction readSegmentHeader(data, start) {\n  const segmentHeader = {};\n  segmentHeader.number = (0, _core_utils.readUint32)(data, start);\n  const flags = data[start + 4];\n  const segmentType = flags & 0x3f;\n\n  if (!SegmentTypes[segmentType]) {\n    throw new Jbig2Error(\"invalid segment type: \" + segmentType);\n  }\n\n  segmentHeader.type = segmentType;\n  segmentHeader.typeName = SegmentTypes[segmentType];\n  segmentHeader.deferredNonRetain = !!(flags & 0x80);\n  const pageAssociationFieldSize = !!(flags & 0x40);\n  const referredFlags = data[start + 5];\n  let referredToCount = referredFlags >> 5 & 7;\n  const retainBits = [referredFlags & 31];\n  let position = start + 6;\n\n  if (referredFlags === 7) {\n    referredToCount = (0, _core_utils.readUint32)(data, position - 1) & 0x1fffffff;\n    position += 3;\n    let bytes = referredToCount + 7 >> 3;\n    retainBits[0] = data[position++];\n\n    while (--bytes > 0) {\n      retainBits.push(data[position++]);\n    }\n  } else if (referredFlags === 5 || referredFlags === 6) {\n    throw new Jbig2Error(\"invalid referred-to flags\");\n  }\n\n  segmentHeader.retainBits = retainBits;\n  let referredToSegmentNumberSize = 4;\n\n  if (segmentHeader.number <= 256) {\n    referredToSegmentNumberSize = 1;\n  } else if (segmentHeader.number <= 65536) {\n    referredToSegmentNumberSize = 2;\n  }\n\n  const referredTo = [];\n  let i, ii;\n\n  for (i = 0; i < referredToCount; i++) {\n    let number;\n\n    if (referredToSegmentNumberSize === 1) {\n      number = data[position];\n    } else if (referredToSegmentNumberSize === 2) {\n      number = (0, _core_utils.readUint16)(data, position);\n    } else {\n      number = (0, _core_utils.readUint32)(data, position);\n    }\n\n    referredTo.push(number);\n    position += referredToSegmentNumberSize;\n  }\n\n  segmentHeader.referredTo = referredTo;\n\n  if (!pageAssociationFieldSize) {\n    segmentHeader.pageAssociation = data[position++];\n  } else {\n    segmentHeader.pageAssociation = (0, _core_utils.readUint32)(data, position);\n    position += 4;\n  }\n\n  segmentHeader.length = (0, _core_utils.readUint32)(data, position);\n  position += 4;\n\n  if (segmentHeader.length === 0xffffffff) {\n    if (segmentType === 38) {\n      const genericRegionInfo = readRegionSegmentInformation(data, position);\n      const genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength];\n      const genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n      const searchPatternLength = 6;\n      const searchPattern = new Uint8Array(searchPatternLength);\n\n      if (!genericRegionMmr) {\n        searchPattern[0] = 0xff;\n        searchPattern[1] = 0xac;\n      }\n\n      searchPattern[2] = genericRegionInfo.height >>> 24 & 0xff;\n      searchPattern[3] = genericRegionInfo.height >> 16 & 0xff;\n      searchPattern[4] = genericRegionInfo.height >> 8 & 0xff;\n      searchPattern[5] = genericRegionInfo.height & 0xff;\n\n      for (i = position, ii = data.length; i < ii; i++) {\n        let j = 0;\n\n        while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n          j++;\n        }\n\n        if (j === searchPatternLength) {\n          segmentHeader.length = i + searchPatternLength;\n          break;\n        }\n      }\n\n      if (segmentHeader.length === 0xffffffff) {\n        throw new Jbig2Error(\"segment end was not found\");\n      }\n    } else {\n      throw new Jbig2Error(\"invalid unknown segment length\");\n    }\n  }\n\n  segmentHeader.headerEnd = position;\n  return segmentHeader;\n}\n\nfunction readSegments(header, data, start, end) {\n  const segments = [];\n  let position = start;\n\n  while (position < end) {\n    const segmentHeader = readSegmentHeader(data, position);\n    position = segmentHeader.headerEnd;\n    const segment = {\n      header: segmentHeader,\n      data\n    };\n\n    if (!header.randomAccess) {\n      segment.start = position;\n      position += segmentHeader.length;\n      segment.end = position;\n    }\n\n    segments.push(segment);\n\n    if (segmentHeader.type === 51) {\n      break;\n    }\n  }\n\n  if (header.randomAccess) {\n    for (let i = 0, ii = segments.length; i < ii; i++) {\n      segments[i].start = position;\n      position += segments[i].header.length;\n      segments[i].end = position;\n    }\n  }\n\n  return segments;\n}\n\nfunction readRegionSegmentInformation(data, start) {\n  return {\n    width: (0, _core_utils.readUint32)(data, start),\n    height: (0, _core_utils.readUint32)(data, start + 4),\n    x: (0, _core_utils.readUint32)(data, start + 8),\n    y: (0, _core_utils.readUint32)(data, start + 12),\n    combinationOperator: data[start + 16] & 7\n  };\n}\n\nconst RegionSegmentInformationFieldLength = 17;\n\nfunction processSegment(segment, visitor) {\n  const header = segment.header;\n  const data = segment.data,\n        end = segment.end;\n  let position = segment.start;\n  let args, at, i, atLength;\n\n  switch (header.type) {\n    case 0:\n      const dictionary = {};\n      const dictionaryFlags = (0, _core_utils.readUint16)(data, position);\n      dictionary.huffman = !!(dictionaryFlags & 1);\n      dictionary.refinement = !!(dictionaryFlags & 2);\n      dictionary.huffmanDHSelector = dictionaryFlags >> 2 & 3;\n      dictionary.huffmanDWSelector = dictionaryFlags >> 4 & 3;\n      dictionary.bitmapSizeSelector = dictionaryFlags >> 6 & 1;\n      dictionary.aggregationInstancesSelector = dictionaryFlags >> 7 & 1;\n      dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n      dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n      dictionary.template = dictionaryFlags >> 10 & 3;\n      dictionary.refinementTemplate = dictionaryFlags >> 12 & 1;\n      position += 2;\n\n      if (!dictionary.huffman) {\n        atLength = dictionary.template === 0 ? 4 : 1;\n        at = [];\n\n        for (i = 0; i < atLength; i++) {\n          at.push({\n            x: (0, _core_utils.readInt8)(data, position),\n            y: (0, _core_utils.readInt8)(data, position + 1)\n          });\n          position += 2;\n        }\n\n        dictionary.at = at;\n      }\n\n      if (dictionary.refinement && !dictionary.refinementTemplate) {\n        at = [];\n\n        for (i = 0; i < 2; i++) {\n          at.push({\n            x: (0, _core_utils.readInt8)(data, position),\n            y: (0, _core_utils.readInt8)(data, position + 1)\n          });\n          position += 2;\n        }\n\n        dictionary.refinementAt = at;\n      }\n\n      dictionary.numberOfExportedSymbols = (0, _core_utils.readUint32)(data, position);\n      position += 4;\n      dictionary.numberOfNewSymbols = (0, _core_utils.readUint32)(data, position);\n      position += 4;\n      args = [dictionary, header.number, header.referredTo, data, position, end];\n      break;\n\n    case 6:\n    case 7:\n      const textRegion = {};\n      textRegion.info = readRegionSegmentInformation(data, position);\n      position += RegionSegmentInformationFieldLength;\n      const textRegionSegmentFlags = (0, _core_utils.readUint16)(data, position);\n      position += 2;\n      textRegion.huffman = !!(textRegionSegmentFlags & 1);\n      textRegion.refinement = !!(textRegionSegmentFlags & 2);\n      textRegion.logStripSize = textRegionSegmentFlags >> 2 & 3;\n      textRegion.stripSize = 1 << textRegion.logStripSize;\n      textRegion.referenceCorner = textRegionSegmentFlags >> 4 & 3;\n      textRegion.transposed = !!(textRegionSegmentFlags & 64);\n      textRegion.combinationOperator = textRegionSegmentFlags >> 7 & 3;\n      textRegion.defaultPixelValue = textRegionSegmentFlags >> 9 & 1;\n      textRegion.dsOffset = textRegionSegmentFlags << 17 >> 27;\n      textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1;\n\n      if (textRegion.huffman) {\n        const textRegionHuffmanFlags = (0, _core_utils.readUint16)(data, position);\n        position += 2;\n        textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n        textRegion.huffmanDS = textRegionHuffmanFlags >> 2 & 3;\n        textRegion.huffmanDT = textRegionHuffmanFlags >> 4 & 3;\n        textRegion.huffmanRefinementDW = textRegionHuffmanFlags >> 6 & 3;\n        textRegion.huffmanRefinementDH = textRegionHuffmanFlags >> 8 & 3;\n        textRegion.huffmanRefinementDX = textRegionHuffmanFlags >> 10 & 3;\n        textRegion.huffmanRefinementDY = textRegionHuffmanFlags >> 12 & 3;\n        textRegion.huffmanRefinementSizeSelector = !!(textRegionHuffmanFlags & 0x4000);\n      }\n\n      if (textRegion.refinement && !textRegion.refinementTemplate) {\n        at = [];\n\n        for (i = 0; i < 2; i++) {\n          at.push({\n            x: (0, _core_utils.readInt8)(data, position),\n            y: (0, _core_utils.readInt8)(data, position + 1)\n          });\n          position += 2;\n        }\n\n        textRegion.refinementAt = at;\n      }\n\n      textRegion.numberOfSymbolInstances = (0, _core_utils.readUint32)(data, position);\n      position += 4;\n      args = [textRegion, header.referredTo, data, position, end];\n      break;\n\n    case 16:\n      const patternDictionary = {};\n      const patternDictionaryFlags = data[position++];\n      patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n      patternDictionary.template = patternDictionaryFlags >> 1 & 3;\n      patternDictionary.patternWidth = data[position++];\n      patternDictionary.patternHeight = data[position++];\n      patternDictionary.maxPatternIndex = (0, _core_utils.readUint32)(data, position);\n      position += 4;\n      args = [patternDictionary, header.number, data, position, end];\n      break;\n\n    case 22:\n    case 23:\n      const halftoneRegion = {};\n      halftoneRegion.info = readRegionSegmentInformation(data, position);\n      position += RegionSegmentInformationFieldLength;\n      const halftoneRegionFlags = data[position++];\n      halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n      halftoneRegion.template = halftoneRegionFlags >> 1 & 3;\n      halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n      halftoneRegion.combinationOperator = halftoneRegionFlags >> 4 & 7;\n      halftoneRegion.defaultPixelValue = halftoneRegionFlags >> 7 & 1;\n      halftoneRegion.gridWidth = (0, _core_utils.readUint32)(data, position);\n      position += 4;\n      halftoneRegion.gridHeight = (0, _core_utils.readUint32)(data, position);\n      position += 4;\n      halftoneRegion.gridOffsetX = (0, _core_utils.readUint32)(data, position) & 0xffffffff;\n      position += 4;\n      halftoneRegion.gridOffsetY = (0, _core_utils.readUint32)(data, position) & 0xffffffff;\n      position += 4;\n      halftoneRegion.gridVectorX = (0, _core_utils.readUint16)(data, position);\n      position += 2;\n      halftoneRegion.gridVectorY = (0, _core_utils.readUint16)(data, position);\n      position += 2;\n      args = [halftoneRegion, header.referredTo, data, position, end];\n      break;\n\n    case 38:\n    case 39:\n      const genericRegion = {};\n      genericRegion.info = readRegionSegmentInformation(data, position);\n      position += RegionSegmentInformationFieldLength;\n      const genericRegionSegmentFlags = data[position++];\n      genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n      genericRegion.template = genericRegionSegmentFlags >> 1 & 3;\n      genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n\n      if (!genericRegion.mmr) {\n        atLength = genericRegion.template === 0 ? 4 : 1;\n        at = [];\n\n        for (i = 0; i < atLength; i++) {\n          at.push({\n            x: (0, _core_utils.readInt8)(data, position),\n            y: (0, _core_utils.readInt8)(data, position + 1)\n          });\n          position += 2;\n        }\n\n        genericRegion.at = at;\n      }\n\n      args = [genericRegion, data, position, end];\n      break;\n\n    case 48:\n      const pageInfo = {\n        width: (0, _core_utils.readUint32)(data, position),\n        height: (0, _core_utils.readUint32)(data, position + 4),\n        resolutionX: (0, _core_utils.readUint32)(data, position + 8),\n        resolutionY: (0, _core_utils.readUint32)(data, position + 12)\n      };\n\n      if (pageInfo.height === 0xffffffff) {\n        delete pageInfo.height;\n      }\n\n      const pageSegmentFlags = data[position + 16];\n      (0, _core_utils.readUint16)(data, position + 17);\n      pageInfo.lossless = !!(pageSegmentFlags & 1);\n      pageInfo.refinement = !!(pageSegmentFlags & 2);\n      pageInfo.defaultPixelValue = pageSegmentFlags >> 2 & 1;\n      pageInfo.combinationOperator = pageSegmentFlags >> 3 & 3;\n      pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n      pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n      args = [pageInfo];\n      break;\n\n    case 49:\n      break;\n\n    case 50:\n      break;\n\n    case 51:\n      break;\n\n    case 53:\n      args = [header.number, data, position, end];\n      break;\n\n    case 62:\n      break;\n\n    default:\n      throw new Jbig2Error(`segment type ${header.typeName}(${header.type}) is not implemented`);\n  }\n\n  const callbackName = \"on\" + header.typeName;\n\n  if (callbackName in visitor) {\n    visitor[callbackName].apply(visitor, args);\n  }\n}\n\nfunction processSegments(segments, visitor) {\n  for (let i = 0, ii = segments.length; i < ii; i++) {\n    processSegment(segments[i], visitor);\n  }\n}\n\nfunction parseJbig2Chunks(chunks) {\n  const visitor = new SimpleSegmentVisitor();\n\n  for (let i = 0, ii = chunks.length; i < ii; i++) {\n    const chunk = chunks[i];\n    const segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n    processSegments(segments, visitor);\n  }\n\n  return visitor.buffer;\n}\n\nfunction parseJbig2(data) {\n  throw new Error(\"Not implemented: parseJbig2\");\n}\n\nclass SimpleSegmentVisitor {\n  onPageInformation(info) {\n    this.currentPageInfo = info;\n    const rowSize = info.width + 7 >> 3;\n    const buffer = new Uint8ClampedArray(rowSize * info.height);\n\n    if (info.defaultPixelValue) {\n      buffer.fill(0xff);\n    }\n\n    this.buffer = buffer;\n  }\n\n  drawBitmap(regionInfo, bitmap) {\n    const pageInfo = this.currentPageInfo;\n    const width = regionInfo.width,\n          height = regionInfo.height;\n    const rowSize = pageInfo.width + 7 >> 3;\n    const combinationOperator = pageInfo.combinationOperatorOverride ? regionInfo.combinationOperator : pageInfo.combinationOperator;\n    const buffer = this.buffer;\n    const mask0 = 128 >> (regionInfo.x & 7);\n    let offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n    let i, j, mask, offset;\n\n    switch (combinationOperator) {\n      case 0:\n        for (i = 0; i < height; i++) {\n          mask = mask0;\n          offset = offset0;\n\n          for (j = 0; j < width; j++) {\n            if (bitmap[i][j]) {\n              buffer[offset] |= mask;\n            }\n\n            mask >>= 1;\n\n            if (!mask) {\n              mask = 128;\n              offset++;\n            }\n          }\n\n          offset0 += rowSize;\n        }\n\n        break;\n\n      case 2:\n        for (i = 0; i < height; i++) {\n          mask = mask0;\n          offset = offset0;\n\n          for (j = 0; j < width; j++) {\n            if (bitmap[i][j]) {\n              buffer[offset] ^= mask;\n            }\n\n            mask >>= 1;\n\n            if (!mask) {\n              mask = 128;\n              offset++;\n            }\n          }\n\n          offset0 += rowSize;\n        }\n\n        break;\n\n      default:\n        throw new Jbig2Error(`operator ${combinationOperator} is not supported`);\n    }\n  }\n\n  onImmediateGenericRegion(region, data, start, end) {\n    const regionInfo = region.info;\n    const decodingContext = new DecodingContext(data, start, end);\n    const bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, region.template, region.prediction, null, region.at, decodingContext);\n    this.drawBitmap(regionInfo, bitmap);\n  }\n\n  onImmediateLosslessGenericRegion() {\n    this.onImmediateGenericRegion(...arguments);\n  }\n\n  onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) {\n    let huffmanTables, huffmanInput;\n\n    if (dictionary.huffman) {\n      huffmanTables = getSymbolDictionaryHuffmanTables(dictionary, referredSegments, this.customTables);\n      huffmanInput = new Reader(data, start, end);\n    }\n\n    let symbols = this.symbols;\n\n    if (!symbols) {\n      this.symbols = symbols = {};\n    }\n\n    const inputSymbols = [];\n\n    for (const referredSegment of referredSegments) {\n      const referredSymbols = symbols[referredSegment];\n\n      if (referredSymbols) {\n        inputSymbols.push(...referredSymbols);\n      }\n    }\n\n    const decodingContext = new DecodingContext(data, start, end);\n    symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, dictionary.numberOfExportedSymbols, huffmanTables, dictionary.template, dictionary.at, dictionary.refinementTemplate, dictionary.refinementAt, decodingContext, huffmanInput);\n  }\n\n  onImmediateTextRegion(region, referredSegments, data, start, end) {\n    const regionInfo = region.info;\n    let huffmanTables, huffmanInput;\n    const symbols = this.symbols;\n    const inputSymbols = [];\n\n    for (const referredSegment of referredSegments) {\n      const referredSymbols = symbols[referredSegment];\n\n      if (referredSymbols) {\n        inputSymbols.push(...referredSymbols);\n      }\n    }\n\n    const symbolCodeLength = (0, _core_utils.log2)(inputSymbols.length);\n\n    if (region.huffman) {\n      huffmanInput = new Reader(data, start, end);\n      huffmanTables = getTextRegionHuffmanTables(region, referredSegments, this.customTables, inputSymbols.length, huffmanInput);\n    }\n\n    const decodingContext = new DecodingContext(data, start, end);\n    const bitmap = decodeTextRegion(region.huffman, region.refinement, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.numberOfSymbolInstances, region.stripSize, inputSymbols, symbolCodeLength, region.transposed, region.dsOffset, region.referenceCorner, region.combinationOperator, huffmanTables, region.refinementTemplate, region.refinementAt, decodingContext, region.logStripSize, huffmanInput);\n    this.drawBitmap(regionInfo, bitmap);\n  }\n\n  onImmediateLosslessTextRegion() {\n    this.onImmediateTextRegion(...arguments);\n  }\n\n  onPatternDictionary(dictionary, currentSegment, data, start, end) {\n    let patterns = this.patterns;\n\n    if (!patterns) {\n      this.patterns = patterns = {};\n    }\n\n    const decodingContext = new DecodingContext(data, start, end);\n    patterns[currentSegment] = decodePatternDictionary(dictionary.mmr, dictionary.patternWidth, dictionary.patternHeight, dictionary.maxPatternIndex, dictionary.template, decodingContext);\n  }\n\n  onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n    const patterns = this.patterns[referredSegments[0]];\n    const regionInfo = region.info;\n    const decodingContext = new DecodingContext(data, start, end);\n    const bitmap = decodeHalftoneRegion(region.mmr, patterns, region.template, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.enableSkip, region.combinationOperator, region.gridWidth, region.gridHeight, region.gridOffsetX, region.gridOffsetY, region.gridVectorX, region.gridVectorY, decodingContext);\n    this.drawBitmap(regionInfo, bitmap);\n  }\n\n  onImmediateLosslessHalftoneRegion() {\n    this.onImmediateHalftoneRegion(...arguments);\n  }\n\n  onTables(currentSegment, data, start, end) {\n    let customTables = this.customTables;\n\n    if (!customTables) {\n      this.customTables = customTables = {};\n    }\n\n    customTables[currentSegment] = decodeTablesSegment(data, start, end);\n  }\n\n}\n\nclass HuffmanLine {\n  constructor(lineData) {\n    if (lineData.length === 2) {\n      this.isOOB = true;\n      this.rangeLow = 0;\n      this.prefixLength = lineData[0];\n      this.rangeLength = 0;\n      this.prefixCode = lineData[1];\n      this.isLowerRange = false;\n    } else {\n      this.isOOB = false;\n      this.rangeLow = lineData[0];\n      this.prefixLength = lineData[1];\n      this.rangeLength = lineData[2];\n      this.prefixCode = lineData[3];\n      this.isLowerRange = lineData[4] === \"lower\";\n    }\n  }\n\n}\n\nclass HuffmanTreeNode {\n  constructor(line) {\n    this.children = [];\n\n    if (line) {\n      this.isLeaf = true;\n      this.rangeLength = line.rangeLength;\n      this.rangeLow = line.rangeLow;\n      this.isLowerRange = line.isLowerRange;\n      this.isOOB = line.isOOB;\n    } else {\n      this.isLeaf = false;\n    }\n  }\n\n  buildTree(line, shift) {\n    const bit = line.prefixCode >> shift & 1;\n\n    if (shift <= 0) {\n      this.children[bit] = new HuffmanTreeNode(line);\n    } else {\n      let node = this.children[bit];\n\n      if (!node) {\n        this.children[bit] = node = new HuffmanTreeNode(null);\n      }\n\n      node.buildTree(line, shift - 1);\n    }\n  }\n\n  decodeNode(reader) {\n    if (this.isLeaf) {\n      if (this.isOOB) {\n        return null;\n      }\n\n      const htOffset = reader.readBits(this.rangeLength);\n      return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n    }\n\n    const node = this.children[reader.readBit()];\n\n    if (!node) {\n      throw new Jbig2Error(\"invalid Huffman data\");\n    }\n\n    return node.decodeNode(reader);\n  }\n\n}\n\nclass HuffmanTable {\n  constructor(lines, prefixCodesDone) {\n    if (!prefixCodesDone) {\n      this.assignPrefixCodes(lines);\n    }\n\n    this.rootNode = new HuffmanTreeNode(null);\n\n    for (let i = 0, ii = lines.length; i < ii; i++) {\n      const line = lines[i];\n\n      if (line.prefixLength > 0) {\n        this.rootNode.buildTree(line, line.prefixLength - 1);\n      }\n    }\n  }\n\n  decode(reader) {\n    return this.rootNode.decodeNode(reader);\n  }\n\n  assignPrefixCodes(lines) {\n    const linesLength = lines.length;\n    let prefixLengthMax = 0;\n\n    for (let i = 0; i < linesLength; i++) {\n      prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n    }\n\n    const histogram = new Uint32Array(prefixLengthMax + 1);\n\n    for (let i = 0; i < linesLength; i++) {\n      histogram[lines[i].prefixLength]++;\n    }\n\n    let currentLength = 1,\n        firstCode = 0,\n        currentCode,\n        currentTemp,\n        line;\n    histogram[0] = 0;\n\n    while (currentLength <= prefixLengthMax) {\n      firstCode = firstCode + histogram[currentLength - 1] << 1;\n      currentCode = firstCode;\n      currentTemp = 0;\n\n      while (currentTemp < linesLength) {\n        line = lines[currentTemp];\n\n        if (line.prefixLength === currentLength) {\n          line.prefixCode = currentCode;\n          currentCode++;\n        }\n\n        currentTemp++;\n      }\n\n      currentLength++;\n    }\n  }\n\n}\n\nfunction decodeTablesSegment(data, start, end) {\n  const flags = data[start];\n  const lowestValue = (0, _core_utils.readUint32)(data, start + 1) & 0xffffffff;\n  const highestValue = (0, _core_utils.readUint32)(data, start + 5) & 0xffffffff;\n  const reader = new Reader(data, start + 9, end);\n  const prefixSizeBits = (flags >> 1 & 7) + 1;\n  const rangeSizeBits = (flags >> 4 & 7) + 1;\n  const lines = [];\n  let prefixLength,\n      rangeLength,\n      currentRangeLow = lowestValue;\n\n  do {\n    prefixLength = reader.readBits(prefixSizeBits);\n    rangeLength = reader.readBits(rangeSizeBits);\n    lines.push(new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0]));\n    currentRangeLow += 1 << rangeLength;\n  } while (currentRangeLow < highestValue);\n\n  prefixLength = reader.readBits(prefixSizeBits);\n  lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"]));\n  prefixLength = reader.readBits(prefixSizeBits);\n  lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n  if (flags & 1) {\n    prefixLength = reader.readBits(prefixSizeBits);\n    lines.push(new HuffmanLine([prefixLength, 0]));\n  }\n\n  return new HuffmanTable(lines, false);\n}\n\nconst standardTablesCache = {};\n\nfunction getStandardTable(number) {\n  let table = standardTablesCache[number];\n\n  if (table) {\n    return table;\n  }\n\n  let lines;\n\n  switch (number) {\n    case 1:\n      lines = [[0, 1, 4, 0x0], [16, 2, 8, 0x2], [272, 3, 16, 0x6], [65808, 3, 32, 0x7]];\n      break;\n\n    case 2:\n      lines = [[0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [75, 6, 32, 0x3e], [6, 0x3f]];\n      break;\n\n    case 3:\n      lines = [[-256, 8, 8, 0xfe], [0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [-257, 8, 32, 0xff, \"lower\"], [75, 7, 32, 0x7e], [6, 0x3e]];\n      break;\n\n    case 4:\n      lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [76, 5, 32, 0x1f]];\n      break;\n\n    case 5:\n      lines = [[-255, 7, 8, 0x7e], [1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [-256, 7, 32, 0x7f, \"lower\"], [76, 6, 32, 0x3e]];\n      break;\n\n    case 6:\n      lines = [[-2048, 5, 10, 0x1c], [-1024, 4, 9, 0x8], [-512, 4, 8, 0x9], [-256, 4, 7, 0xa], [-128, 5, 6, 0x1d], [-64, 5, 5, 0x1e], [-32, 4, 5, 0xb], [0, 2, 7, 0x0], [128, 3, 7, 0x2], [256, 3, 8, 0x3], [512, 4, 9, 0xc], [1024, 4, 10, 0xd], [-2049, 6, 32, 0x3e, \"lower\"], [2048, 6, 32, 0x3f]];\n      break;\n\n    case 7:\n      lines = [[-1024, 4, 9, 0x8], [-512, 3, 8, 0x0], [-256, 4, 7, 0x9], [-128, 5, 6, 0x1a], [-64, 5, 5, 0x1b], [-32, 4, 5, 0xa], [0, 4, 5, 0xb], [32, 5, 5, 0x1c], [64, 5, 6, 0x1d], [128, 4, 7, 0xc], [256, 3, 8, 0x1], [512, 3, 9, 0x2], [1024, 3, 10, 0x3], [-1025, 5, 32, 0x1e, \"lower\"], [2048, 5, 32, 0x1f]];\n      break;\n\n    case 8:\n      lines = [[-15, 8, 3, 0xfc], [-7, 9, 1, 0x1fc], [-5, 8, 1, 0xfd], [-3, 9, 0, 0x1fd], [-2, 7, 0, 0x7c], [-1, 4, 0, 0xa], [0, 2, 1, 0x0], [2, 5, 0, 0x1a], [3, 6, 0, 0x3a], [4, 3, 4, 0x4], [20, 6, 1, 0x3b], [22, 4, 4, 0xb], [38, 4, 5, 0xc], [70, 5, 6, 0x1b], [134, 5, 7, 0x1c], [262, 6, 7, 0x3c], [390, 7, 8, 0x7d], [646, 6, 10, 0x3d], [-16, 9, 32, 0x1fe, \"lower\"], [1670, 9, 32, 0x1ff], [2, 0x1]];\n      break;\n\n    case 9:\n      lines = [[-31, 8, 4, 0xfc], [-15, 9, 2, 0x1fc], [-11, 8, 2, 0xfd], [-7, 9, 1, 0x1fd], [-5, 7, 1, 0x7c], [-3, 4, 1, 0xa], [-1, 3, 1, 0x2], [1, 3, 1, 0x3], [3, 5, 1, 0x1a], [5, 6, 1, 0x3a], [7, 3, 5, 0x4], [39, 6, 2, 0x3b], [43, 4, 5, 0xb], [75, 4, 6, 0xc], [139, 5, 7, 0x1b], [267, 5, 8, 0x1c], [523, 6, 8, 0x3c], [779, 7, 9, 0x7d], [1291, 6, 11, 0x3d], [-32, 9, 32, 0x1fe, \"lower\"], [3339, 9, 32, 0x1ff], [2, 0x0]];\n      break;\n\n    case 10:\n      lines = [[-21, 7, 4, 0x7a], [-5, 8, 0, 0xfc], [-4, 7, 0, 0x7b], [-3, 5, 0, 0x18], [-2, 2, 2, 0x0], [2, 5, 0, 0x19], [3, 6, 0, 0x36], [4, 7, 0, 0x7c], [5, 8, 0, 0xfd], [6, 2, 6, 0x1], [70, 5, 5, 0x1a], [102, 6, 5, 0x37], [134, 6, 6, 0x38], [198, 6, 7, 0x39], [326, 6, 8, 0x3a], [582, 6, 9, 0x3b], [1094, 6, 10, 0x3c], [2118, 7, 11, 0x7d], [-22, 8, 32, 0xfe, \"lower\"], [4166, 8, 32, 0xff], [2, 0x2]];\n      break;\n\n    case 11:\n      lines = [[1, 1, 0, 0x0], [2, 2, 1, 0x2], [4, 4, 0, 0xc], [5, 4, 1, 0xd], [7, 5, 1, 0x1c], [9, 5, 2, 0x1d], [13, 6, 2, 0x3c], [17, 7, 2, 0x7a], [21, 7, 3, 0x7b], [29, 7, 4, 0x7c], [45, 7, 5, 0x7d], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]];\n      break;\n\n    case 12:\n      lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 1, 0x6], [5, 5, 0, 0x1c], [6, 5, 1, 0x1d], [8, 6, 1, 0x3c], [10, 7, 0, 0x7a], [11, 7, 1, 0x7b], [13, 7, 2, 0x7c], [17, 7, 3, 0x7d], [25, 7, 4, 0x7e], [41, 8, 5, 0xfe], [73, 8, 32, 0xff]];\n      break;\n\n    case 13:\n      lines = [[1, 1, 0, 0x0], [2, 3, 0, 0x4], [3, 4, 0, 0xc], [4, 5, 0, 0x1c], [5, 4, 1, 0xd], [7, 3, 3, 0x5], [15, 6, 1, 0x3a], [17, 6, 2, 0x3b], [21, 6, 3, 0x3c], [29, 6, 4, 0x3d], [45, 6, 5, 0x3e], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]];\n      break;\n\n    case 14:\n      lines = [[-2, 3, 0, 0x4], [-1, 3, 0, 0x5], [0, 1, 0, 0x0], [1, 3, 0, 0x6], [2, 3, 0, 0x7]];\n      break;\n\n    case 15:\n      lines = [[-24, 7, 4, 0x7c], [-8, 6, 2, 0x3c], [-4, 5, 1, 0x1c], [-2, 4, 0, 0xc], [-1, 3, 0, 0x4], [0, 1, 0, 0x0], [1, 3, 0, 0x5], [2, 4, 0, 0xd], [3, 5, 1, 0x1d], [5, 6, 2, 0x3d], [9, 7, 4, 0x7d], [-25, 7, 32, 0x7e, \"lower\"], [25, 7, 32, 0x7f]];\n      break;\n\n    default:\n      throw new Jbig2Error(`standard table B.${number} does not exist`);\n  }\n\n  for (let i = 0, ii = lines.length; i < ii; i++) {\n    lines[i] = new HuffmanLine(lines[i]);\n  }\n\n  table = new HuffmanTable(lines, true);\n  standardTablesCache[number] = table;\n  return table;\n}\n\nclass Reader {\n  constructor(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n    this.position = start;\n    this.shift = -1;\n    this.currentByte = 0;\n  }\n\n  readBit() {\n    if (this.shift < 0) {\n      if (this.position >= this.end) {\n        throw new Jbig2Error(\"end of data while reading bit\");\n      }\n\n      this.currentByte = this.data[this.position++];\n      this.shift = 7;\n    }\n\n    const bit = this.currentByte >> this.shift & 1;\n    this.shift--;\n    return bit;\n  }\n\n  readBits(numBits) {\n    let result = 0,\n        i;\n\n    for (i = numBits - 1; i >= 0; i--) {\n      result |= this.readBit() << i;\n    }\n\n    return result;\n  }\n\n  byteAlign() {\n    this.shift = -1;\n  }\n\n  next() {\n    if (this.position >= this.end) {\n      return -1;\n    }\n\n    return this.data[this.position++];\n  }\n\n}\n\nfunction getCustomHuffmanTable(index, referredTo, customTables) {\n  let currentIndex = 0;\n\n  for (let i = 0, ii = referredTo.length; i < ii; i++) {\n    const table = customTables[referredTo[i]];\n\n    if (table) {\n      if (index === currentIndex) {\n        return table;\n      }\n\n      currentIndex++;\n    }\n  }\n\n  throw new Jbig2Error(\"can't find custom Huffman table\");\n}\n\nfunction getTextRegionHuffmanTables(textRegion, referredTo, customTables, numberOfSymbols, reader) {\n  const codes = [];\n\n  for (let i = 0; i <= 34; i++) {\n    const codeLength = reader.readBits(4);\n    codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n  }\n\n  const runCodesTable = new HuffmanTable(codes, false);\n  codes.length = 0;\n\n  for (let i = 0; i < numberOfSymbols;) {\n    const codeLength = runCodesTable.decode(reader);\n\n    if (codeLength >= 32) {\n      let repeatedLength, numberOfRepeats, j;\n\n      switch (codeLength) {\n        case 32:\n          if (i === 0) {\n            throw new Jbig2Error(\"no previous value in symbol ID table\");\n          }\n\n          numberOfRepeats = reader.readBits(2) + 3;\n          repeatedLength = codes[i - 1].prefixLength;\n          break;\n\n        case 33:\n          numberOfRepeats = reader.readBits(3) + 3;\n          repeatedLength = 0;\n          break;\n\n        case 34:\n          numberOfRepeats = reader.readBits(7) + 11;\n          repeatedLength = 0;\n          break;\n\n        default:\n          throw new Jbig2Error(\"invalid code length in symbol ID table\");\n      }\n\n      for (j = 0; j < numberOfRepeats; j++) {\n        codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n        i++;\n      }\n    } else {\n      codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n      i++;\n    }\n  }\n\n  reader.byteAlign();\n  const symbolIDTable = new HuffmanTable(codes, false);\n  let customIndex = 0,\n      tableFirstS,\n      tableDeltaS,\n      tableDeltaT;\n\n  switch (textRegion.huffmanFS) {\n    case 0:\n    case 1:\n      tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n      break;\n\n    case 3:\n      tableFirstS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n      customIndex++;\n      break;\n\n    default:\n      throw new Jbig2Error(\"invalid Huffman FS selector\");\n  }\n\n  switch (textRegion.huffmanDS) {\n    case 0:\n    case 1:\n    case 2:\n      tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n      break;\n\n    case 3:\n      tableDeltaS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n      customIndex++;\n      break;\n\n    default:\n      throw new Jbig2Error(\"invalid Huffman DS selector\");\n  }\n\n  switch (textRegion.huffmanDT) {\n    case 0:\n    case 1:\n    case 2:\n      tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n      break;\n\n    case 3:\n      tableDeltaT = getCustomHuffmanTable(customIndex, referredTo, customTables);\n      customIndex++;\n      break;\n\n    default:\n      throw new Jbig2Error(\"invalid Huffman DT selector\");\n  }\n\n  if (textRegion.refinement) {\n    throw new Jbig2Error(\"refinement with Huffman is not supported\");\n  }\n\n  return {\n    symbolIDTable,\n    tableFirstS,\n    tableDeltaS,\n    tableDeltaT\n  };\n}\n\nfunction getSymbolDictionaryHuffmanTables(dictionary, referredTo, customTables) {\n  let customIndex = 0,\n      tableDeltaHeight,\n      tableDeltaWidth;\n\n  switch (dictionary.huffmanDHSelector) {\n    case 0:\n    case 1:\n      tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n      break;\n\n    case 3:\n      tableDeltaHeight = getCustomHuffmanTable(customIndex, referredTo, customTables);\n      customIndex++;\n      break;\n\n    default:\n      throw new Jbig2Error(\"invalid Huffman DH selector\");\n  }\n\n  switch (dictionary.huffmanDWSelector) {\n    case 0:\n    case 1:\n      tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n      break;\n\n    case 3:\n      tableDeltaWidth = getCustomHuffmanTable(customIndex, referredTo, customTables);\n      customIndex++;\n      break;\n\n    default:\n      throw new Jbig2Error(\"invalid Huffman DW selector\");\n  }\n\n  let tableBitmapSize, tableAggregateInstances;\n\n  if (dictionary.bitmapSizeSelector) {\n    tableBitmapSize = getCustomHuffmanTable(customIndex, referredTo, customTables);\n    customIndex++;\n  } else {\n    tableBitmapSize = getStandardTable(1);\n  }\n\n  if (dictionary.aggregationInstancesSelector) {\n    tableAggregateInstances = getCustomHuffmanTable(customIndex, referredTo, customTables);\n  } else {\n    tableAggregateInstances = getStandardTable(1);\n  }\n\n  return {\n    tableDeltaHeight,\n    tableDeltaWidth,\n    tableBitmapSize,\n    tableAggregateInstances\n  };\n}\n\nfunction readUncompressedBitmap(reader, width, height) {\n  const bitmap = [];\n\n  for (let y = 0; y < height; y++) {\n    const row = new Uint8Array(width);\n    bitmap.push(row);\n\n    for (let x = 0; x < width; x++) {\n      row[x] = reader.readBit();\n    }\n\n    reader.byteAlign();\n  }\n\n  return bitmap;\n}\n\nfunction decodeMMRBitmap(input, width, height, endOfBlock) {\n  const params = {\n    K: -1,\n    Columns: width,\n    Rows: height,\n    BlackIs1: true,\n    EndOfBlock: endOfBlock\n  };\n  const decoder = new _ccitt.CCITTFaxDecoder(input, params);\n  const bitmap = [];\n  let currentByte,\n      eof = false;\n\n  for (let y = 0; y < height; y++) {\n    const row = new Uint8Array(width);\n    bitmap.push(row);\n    let shift = -1;\n\n    for (let x = 0; x < width; x++) {\n      if (shift < 0) {\n        currentByte = decoder.readNextChar();\n\n        if (currentByte === -1) {\n          currentByte = 0;\n          eof = true;\n        }\n\n        shift = 7;\n      }\n\n      row[x] = currentByte >> shift & 1;\n      shift--;\n    }\n  }\n\n  if (endOfBlock && !eof) {\n    const lookForEOFLimit = 5;\n\n    for (let i = 0; i < lookForEOFLimit; i++) {\n      if (decoder.readNextChar() === -1) {\n        break;\n      }\n    }\n  }\n\n  return bitmap;\n}\n\nclass Jbig2Image {\n  parseChunks(chunks) {\n    return parseJbig2Chunks(chunks);\n  }\n\n  parse(data) {\n    throw new Error(\"Not implemented: Jbig2Image.parse\");\n  }\n\n}\n\nexports.Jbig2Image = Jbig2Image;\n\n/***/ }),\n/* 151 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ArithmeticDecoder = void 0;\nconst QeTable = [{\n  qe: 0x5601,\n  nmps: 1,\n  nlps: 1,\n  switchFlag: 1\n}, {\n  qe: 0x3401,\n  nmps: 2,\n  nlps: 6,\n  switchFlag: 0\n}, {\n  qe: 0x1801,\n  nmps: 3,\n  nlps: 9,\n  switchFlag: 0\n}, {\n  qe: 0x0ac1,\n  nmps: 4,\n  nlps: 12,\n  switchFlag: 0\n}, {\n  qe: 0x0521,\n  nmps: 5,\n  nlps: 29,\n  switchFlag: 0\n}, {\n  qe: 0x0221,\n  nmps: 38,\n  nlps: 33,\n  switchFlag: 0\n}, {\n  qe: 0x5601,\n  nmps: 7,\n  nlps: 6,\n  switchFlag: 1\n}, {\n  qe: 0x5401,\n  nmps: 8,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x4801,\n  nmps: 9,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x3801,\n  nmps: 10,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x3001,\n  nmps: 11,\n  nlps: 17,\n  switchFlag: 0\n}, {\n  qe: 0x2401,\n  nmps: 12,\n  nlps: 18,\n  switchFlag: 0\n}, {\n  qe: 0x1c01,\n  nmps: 13,\n  nlps: 20,\n  switchFlag: 0\n}, {\n  qe: 0x1601,\n  nmps: 29,\n  nlps: 21,\n  switchFlag: 0\n}, {\n  qe: 0x5601,\n  nmps: 15,\n  nlps: 14,\n  switchFlag: 1\n}, {\n  qe: 0x5401,\n  nmps: 16,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x5101,\n  nmps: 17,\n  nlps: 15,\n  switchFlag: 0\n}, {\n  qe: 0x4801,\n  nmps: 18,\n  nlps: 16,\n  switchFlag: 0\n}, {\n  qe: 0x3801,\n  nmps: 19,\n  nlps: 17,\n  switchFlag: 0\n}, {\n  qe: 0x3401,\n  nmps: 20,\n  nlps: 18,\n  switchFlag: 0\n}, {\n  qe: 0x3001,\n  nmps: 21,\n  nlps: 19,\n  switchFlag: 0\n}, {\n  qe: 0x2801,\n  nmps: 22,\n  nlps: 19,\n  switchFlag: 0\n}, {\n  qe: 0x2401,\n  nmps: 23,\n  nlps: 20,\n  switchFlag: 0\n}, {\n  qe: 0x2201,\n  nmps: 24,\n  nlps: 21,\n  switchFlag: 0\n}, {\n  qe: 0x1c01,\n  nmps: 25,\n  nlps: 22,\n  switchFlag: 0\n}, {\n  qe: 0x1801,\n  nmps: 26,\n  nlps: 23,\n  switchFlag: 0\n}, {\n  qe: 0x1601,\n  nmps: 27,\n  nlps: 24,\n  switchFlag: 0\n}, {\n  qe: 0x1401,\n  nmps: 28,\n  nlps: 25,\n  switchFlag: 0\n}, {\n  qe: 0x1201,\n  nmps: 29,\n  nlps: 26,\n  switchFlag: 0\n}, {\n  qe: 0x1101,\n  nmps: 30,\n  nlps: 27,\n  switchFlag: 0\n}, {\n  qe: 0x0ac1,\n  nmps: 31,\n  nlps: 28,\n  switchFlag: 0\n}, {\n  qe: 0x09c1,\n  nmps: 32,\n  nlps: 29,\n  switchFlag: 0\n}, {\n  qe: 0x08a1,\n  nmps: 33,\n  nlps: 30,\n  switchFlag: 0\n}, {\n  qe: 0x0521,\n  nmps: 34,\n  nlps: 31,\n  switchFlag: 0\n}, {\n  qe: 0x0441,\n  nmps: 35,\n  nlps: 32,\n  switchFlag: 0\n}, {\n  qe: 0x02a1,\n  nmps: 36,\n  nlps: 33,\n  switchFlag: 0\n}, {\n  qe: 0x0221,\n  nmps: 37,\n  nlps: 34,\n  switchFlag: 0\n}, {\n  qe: 0x0141,\n  nmps: 38,\n  nlps: 35,\n  switchFlag: 0\n}, {\n  qe: 0x0111,\n  nmps: 39,\n  nlps: 36,\n  switchFlag: 0\n}, {\n  qe: 0x0085,\n  nmps: 40,\n  nlps: 37,\n  switchFlag: 0\n}, {\n  qe: 0x0049,\n  nmps: 41,\n  nlps: 38,\n  switchFlag: 0\n}, {\n  qe: 0x0025,\n  nmps: 42,\n  nlps: 39,\n  switchFlag: 0\n}, {\n  qe: 0x0015,\n  nmps: 43,\n  nlps: 40,\n  switchFlag: 0\n}, {\n  qe: 0x0009,\n  nmps: 44,\n  nlps: 41,\n  switchFlag: 0\n}, {\n  qe: 0x0005,\n  nmps: 45,\n  nlps: 42,\n  switchFlag: 0\n}, {\n  qe: 0x0001,\n  nmps: 45,\n  nlps: 43,\n  switchFlag: 0\n}, {\n  qe: 0x5601,\n  nmps: 46,\n  nlps: 46,\n  switchFlag: 0\n}];\n\nclass ArithmeticDecoder {\n  constructor(data, start, end) {\n    this.data = data;\n    this.bp = start;\n    this.dataEnd = end;\n    this.chigh = data[start];\n    this.clow = 0;\n    this.byteIn();\n    this.chigh = this.chigh << 7 & 0xffff | this.clow >> 9 & 0x7f;\n    this.clow = this.clow << 7 & 0xffff;\n    this.ct -= 7;\n    this.a = 0x8000;\n  }\n\n  byteIn() {\n    const data = this.data;\n    let bp = this.bp;\n\n    if (data[bp] === 0xff) {\n      if (data[bp + 1] > 0x8f) {\n        this.clow += 0xff00;\n        this.ct = 8;\n      } else {\n        bp++;\n        this.clow += data[bp] << 9;\n        this.ct = 7;\n        this.bp = bp;\n      }\n    } else {\n      bp++;\n      this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00;\n      this.ct = 8;\n      this.bp = bp;\n    }\n\n    if (this.clow > 0xffff) {\n      this.chigh += this.clow >> 16;\n      this.clow &= 0xffff;\n    }\n  }\n\n  readBit(contexts, pos) {\n    let cx_index = contexts[pos] >> 1,\n        cx_mps = contexts[pos] & 1;\n    const qeTableIcx = QeTable[cx_index];\n    const qeIcx = qeTableIcx.qe;\n    let d;\n    let a = this.a - qeIcx;\n\n    if (this.chigh < qeIcx) {\n      if (a < qeIcx) {\n        a = qeIcx;\n        d = cx_mps;\n        cx_index = qeTableIcx.nmps;\n      } else {\n        a = qeIcx;\n        d = 1 ^ cx_mps;\n\n        if (qeTableIcx.switchFlag === 1) {\n          cx_mps = d;\n        }\n\n        cx_index = qeTableIcx.nlps;\n      }\n    } else {\n      this.chigh -= qeIcx;\n\n      if ((a & 0x8000) !== 0) {\n        this.a = a;\n        return cx_mps;\n      }\n\n      if (a < qeIcx) {\n        d = 1 ^ cx_mps;\n\n        if (qeTableIcx.switchFlag === 1) {\n          cx_mps = d;\n        }\n\n        cx_index = qeTableIcx.nlps;\n      } else {\n        d = cx_mps;\n        cx_index = qeTableIcx.nmps;\n      }\n    }\n\n    do {\n      if (this.ct === 0) {\n        this.byteIn();\n      }\n\n      a <<= 1;\n      this.chigh = this.chigh << 1 & 0xffff | this.clow >> 15 & 1;\n      this.clow = this.clow << 1 & 0xffff;\n      this.ct--;\n    } while ((a & 0x8000) === 0);\n\n    this.a = a;\n    contexts[pos] = cx_index << 1 | cx_mps;\n    return d;\n  }\n\n}\n\nexports.ArithmeticDecoder = ArithmeticDecoder;\n\n/***/ }),\n/* 152 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.JpegStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(144);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _jpg = __w_pdfjs_require__(153);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass JpegStream extends _decode_stream.DecodeStream {\n  constructor(stream, maybeLength, params) {\n    let ch;\n\n    while ((ch = stream.getByte()) !== -1) {\n      if (ch === 0xff) {\n        stream.skip(-1);\n        break;\n      }\n    }\n\n    super(maybeLength);\n    this.stream = stream;\n    this.dict = stream.dict;\n    this.maybeLength = maybeLength;\n    this.params = params;\n  }\n\n  get bytes() {\n    return (0, _util.shadow)(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n  }\n\n  ensureBuffer(requested) {}\n\n  readBlock() {\n    if (this.eof) {\n      return;\n    }\n\n    const jpegOptions = {\n      decodeTransform: undefined,\n      colorTransform: undefined\n    };\n    const decodeArr = this.dict.getArray(\"D\", \"Decode\");\n\n    if (this.forceRGB && Array.isArray(decodeArr)) {\n      const bitsPerComponent = this.dict.get(\"BPC\", \"BitsPerComponent\") || 8;\n      const decodeArrLength = decodeArr.length;\n      const transform = new Int32Array(decodeArrLength);\n      let transformNeeded = false;\n      const maxValue = (1 << bitsPerComponent) - 1;\n\n      for (let i = 0; i < decodeArrLength; i += 2) {\n        transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0;\n        transform[i + 1] = decodeArr[i] * maxValue | 0;\n\n        if (transform[i] !== 256 || transform[i + 1] !== 0) {\n          transformNeeded = true;\n        }\n      }\n\n      if (transformNeeded) {\n        jpegOptions.decodeTransform = transform;\n      }\n    }\n\n    if (this.params instanceof _primitives.Dict) {\n      const colorTransform = this.params.get(\"ColorTransform\");\n\n      if (Number.isInteger(colorTransform)) {\n        jpegOptions.colorTransform = colorTransform;\n      }\n    }\n\n    const jpegImage = new _jpg.JpegImage(jpegOptions);\n    jpegImage.parse(this.bytes);\n    const data = jpegImage.getData({\n      width: this.drawWidth,\n      height: this.drawHeight,\n      forceRGB: this.forceRGB,\n      isSourcePDF: true\n    });\n    this.buffer = data;\n    this.bufferLength = data.length;\n    this.eof = true;\n  }\n\n}\n\nexports.JpegStream = JpegStream;\n\n/***/ }),\n/* 153 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.JpegImage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nclass JpegError extends _util.BaseException {\n  constructor(msg) {\n    super(`JPEG error: ${msg}`, \"JpegError\");\n  }\n\n}\n\nclass DNLMarkerError extends _util.BaseException {\n  constructor(message, scanLines) {\n    super(message, \"DNLMarkerError\");\n    this.scanLines = scanLines;\n  }\n\n}\n\nclass EOIMarkerError extends _util.BaseException {\n  constructor(msg) {\n    super(msg, \"EOIMarkerError\");\n  }\n\n}\n\nconst dctZigZag = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]);\nconst dctCos1 = 4017;\nconst dctSin1 = 799;\nconst dctCos3 = 3406;\nconst dctSin3 = 2276;\nconst dctCos6 = 1567;\nconst dctSin6 = 3784;\nconst dctSqrt2 = 5793;\nconst dctSqrt1d2 = 2896;\n\nfunction buildHuffmanTable(codeLengths, values) {\n  let k = 0,\n      i,\n      j,\n      length = 16;\n\n  while (length > 0 && !codeLengths[length - 1]) {\n    length--;\n  }\n\n  const code = [{\n    children: [],\n    index: 0\n  }];\n  let p = code[0],\n      q;\n\n  for (i = 0; i < length; i++) {\n    for (j = 0; j < codeLengths[i]; j++) {\n      p = code.pop();\n      p.children[p.index] = values[k];\n\n      while (p.index > 0) {\n        p = code.pop();\n      }\n\n      p.index++;\n      code.push(p);\n\n      while (code.length <= i) {\n        code.push(q = {\n          children: [],\n          index: 0\n        });\n        p.children[p.index] = q.children;\n        p = q;\n      }\n\n      k++;\n    }\n\n    if (i + 1 < length) {\n      code.push(q = {\n        children: [],\n        index: 0\n      });\n      p.children[p.index] = q.children;\n      p = q;\n    }\n  }\n\n  return code[0].children;\n}\n\nfunction getBlockBufferOffset(component, row, col) {\n  return 64 * ((component.blocksPerLine + 1) * row + col);\n}\n\nfunction decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive) {\n  let parseDNLMarker = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;\n  const mcusPerLine = frame.mcusPerLine;\n  const progressive = frame.progressive;\n  const startOffset = offset;\n  let bitsData = 0,\n      bitsCount = 0;\n\n  function readBit() {\n    if (bitsCount > 0) {\n      bitsCount--;\n      return bitsData >> bitsCount & 1;\n    }\n\n    bitsData = data[offset++];\n\n    if (bitsData === 0xff) {\n      const nextByte = data[offset++];\n\n      if (nextByte) {\n        if (nextByte === 0xdc && parseDNLMarker) {\n          offset += 2;\n          const scanLines = (0, _core_utils.readUint16)(data, offset);\n          offset += 2;\n\n          if (scanLines > 0 && scanLines !== frame.scanLines) {\n            throw new DNLMarkerError(\"Found DNL marker (0xFFDC) while parsing scan data\", scanLines);\n          }\n        } else if (nextByte === 0xd9) {\n          if (parseDNLMarker) {\n            const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n\n            if (maybeScanLines > 0 && Math.round(frame.scanLines / maybeScanLines) >= 10) {\n              throw new DNLMarkerError(\"Found EOI marker (0xFFD9) while parsing scan data, \" + \"possibly caused by incorrect `scanLines` parameter\", maybeScanLines);\n            }\n          }\n\n          throw new EOIMarkerError(\"Found EOI marker (0xFFD9) while parsing scan data\");\n        }\n\n        throw new JpegError(`unexpected marker ${(bitsData << 8 | nextByte).toString(16)}`);\n      }\n    }\n\n    bitsCount = 7;\n    return bitsData >>> 7;\n  }\n\n  function decodeHuffman(tree) {\n    let node = tree;\n\n    while (true) {\n      node = node[readBit()];\n\n      switch (typeof node) {\n        case \"number\":\n          return node;\n\n        case \"object\":\n          continue;\n      }\n\n      throw new JpegError(\"invalid huffman sequence\");\n    }\n  }\n\n  function receive(length) {\n    let n = 0;\n\n    while (length > 0) {\n      n = n << 1 | readBit();\n      length--;\n    }\n\n    return n;\n  }\n\n  function receiveAndExtend(length) {\n    if (length === 1) {\n      return readBit() === 1 ? 1 : -1;\n    }\n\n    const n = receive(length);\n\n    if (n >= 1 << length - 1) {\n      return n;\n    }\n\n    return n + (-1 << length) + 1;\n  }\n\n  function decodeBaseline(component, blockOffset) {\n    const t = decodeHuffman(component.huffmanTableDC);\n    const diff = t === 0 ? 0 : receiveAndExtend(t);\n    component.blockData[blockOffset] = component.pred += diff;\n    let k = 1;\n\n    while (k < 64) {\n      const rs = decodeHuffman(component.huffmanTableAC);\n      const s = rs & 15,\n            r = rs >> 4;\n\n      if (s === 0) {\n        if (r < 15) {\n          break;\n        }\n\n        k += 16;\n        continue;\n      }\n\n      k += r;\n      const z = dctZigZag[k];\n      component.blockData[blockOffset + z] = receiveAndExtend(s);\n      k++;\n    }\n  }\n\n  function decodeDCFirst(component, blockOffset) {\n    const t = decodeHuffman(component.huffmanTableDC);\n    const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n    component.blockData[blockOffset] = component.pred += diff;\n  }\n\n  function decodeDCSuccessive(component, blockOffset) {\n    component.blockData[blockOffset] |= readBit() << successive;\n  }\n\n  let eobrun = 0;\n\n  function decodeACFirst(component, blockOffset) {\n    if (eobrun > 0) {\n      eobrun--;\n      return;\n    }\n\n    let k = spectralStart;\n    const e = spectralEnd;\n\n    while (k <= e) {\n      const rs = decodeHuffman(component.huffmanTableAC);\n      const s = rs & 15,\n            r = rs >> 4;\n\n      if (s === 0) {\n        if (r < 15) {\n          eobrun = receive(r) + (1 << r) - 1;\n          break;\n        }\n\n        k += 16;\n        continue;\n      }\n\n      k += r;\n      const z = dctZigZag[k];\n      component.blockData[blockOffset + z] = receiveAndExtend(s) * (1 << successive);\n      k++;\n    }\n  }\n\n  let successiveACState = 0,\n      successiveACNextValue;\n\n  function decodeACSuccessive(component, blockOffset) {\n    let k = spectralStart;\n    const e = spectralEnd;\n    let r = 0;\n    let s;\n    let rs;\n\n    while (k <= e) {\n      const offsetZ = blockOffset + dctZigZag[k];\n      const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n\n      switch (successiveACState) {\n        case 0:\n          rs = decodeHuffman(component.huffmanTableAC);\n          s = rs & 15;\n          r = rs >> 4;\n\n          if (s === 0) {\n            if (r < 15) {\n              eobrun = receive(r) + (1 << r);\n              successiveACState = 4;\n            } else {\n              r = 16;\n              successiveACState = 1;\n            }\n          } else {\n            if (s !== 1) {\n              throw new JpegError(\"invalid ACn encoding\");\n            }\n\n            successiveACNextValue = receiveAndExtend(s);\n            successiveACState = r ? 2 : 3;\n          }\n\n          continue;\n\n        case 1:\n        case 2:\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          } else {\n            r--;\n\n            if (r === 0) {\n              successiveACState = successiveACState === 2 ? 3 : 0;\n            }\n          }\n\n          break;\n\n        case 3:\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          } else {\n            component.blockData[offsetZ] = successiveACNextValue << successive;\n            successiveACState = 0;\n          }\n\n          break;\n\n        case 4:\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          }\n\n          break;\n      }\n\n      k++;\n    }\n\n    if (successiveACState === 4) {\n      eobrun--;\n\n      if (eobrun === 0) {\n        successiveACState = 0;\n      }\n    }\n  }\n\n  let blockRow = 0;\n\n  function decodeMcu(component, decode, mcu, row, col) {\n    const mcuRow = mcu / mcusPerLine | 0;\n    const mcuCol = mcu % mcusPerLine;\n    blockRow = mcuRow * component.v + row;\n    const blockCol = mcuCol * component.h + col;\n    const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n    decode(component, blockOffset);\n  }\n\n  function decodeBlock(component, decode, mcu) {\n    blockRow = mcu / component.blocksPerLine | 0;\n    const blockCol = mcu % component.blocksPerLine;\n    const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n    decode(component, blockOffset);\n  }\n\n  const componentsLength = components.length;\n  let component, i, j, k, n;\n  let decodeFn;\n\n  if (progressive) {\n    if (spectralStart === 0) {\n      decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n    } else {\n      decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n    }\n  } else {\n    decodeFn = decodeBaseline;\n  }\n\n  let mcu = 0,\n      fileMarker;\n  let mcuExpected;\n\n  if (componentsLength === 1) {\n    mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n  } else {\n    mcuExpected = mcusPerLine * frame.mcusPerColumn;\n  }\n\n  let h, v;\n\n  while (mcu <= mcuExpected) {\n    const mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected;\n\n    if (mcuToRead > 0) {\n      for (i = 0; i < componentsLength; i++) {\n        components[i].pred = 0;\n      }\n\n      eobrun = 0;\n\n      if (componentsLength === 1) {\n        component = components[0];\n\n        for (n = 0; n < mcuToRead; n++) {\n          decodeBlock(component, decodeFn, mcu);\n          mcu++;\n        }\n      } else {\n        for (n = 0; n < mcuToRead; n++) {\n          for (i = 0; i < componentsLength; i++) {\n            component = components[i];\n            h = component.h;\n            v = component.v;\n\n            for (j = 0; j < v; j++) {\n              for (k = 0; k < h; k++) {\n                decodeMcu(component, decodeFn, mcu, j, k);\n              }\n            }\n          }\n\n          mcu++;\n        }\n      }\n    }\n\n    bitsCount = 0;\n    fileMarker = findNextFileMarker(data, offset);\n\n    if (!fileMarker) {\n      break;\n    }\n\n    if (fileMarker.invalid) {\n      const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n      (0, _util.warn)(`decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`);\n      offset = fileMarker.offset;\n    }\n\n    if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n      offset += 2;\n    } else {\n      break;\n    }\n  }\n\n  return offset - startOffset;\n}\n\nfunction quantizeAndInverse(component, blockBufferOffset, p) {\n  const qt = component.quantizationTable,\n        blockData = component.blockData;\n  let v0, v1, v2, v3, v4, v5, v6, v7;\n  let p0, p1, p2, p3, p4, p5, p6, p7;\n  let t;\n\n  if (!qt) {\n    throw new JpegError(\"missing required Quantization Table.\");\n  }\n\n  for (let row = 0; row < 64; row += 8) {\n    p0 = blockData[blockBufferOffset + row];\n    p1 = blockData[blockBufferOffset + row + 1];\n    p2 = blockData[blockBufferOffset + row + 2];\n    p3 = blockData[blockBufferOffset + row + 3];\n    p4 = blockData[blockBufferOffset + row + 4];\n    p5 = blockData[blockBufferOffset + row + 5];\n    p6 = blockData[blockBufferOffset + row + 6];\n    p7 = blockData[blockBufferOffset + row + 7];\n    p0 *= qt[row];\n\n    if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n      t = dctSqrt2 * p0 + 512 >> 10;\n      p[row] = t;\n      p[row + 1] = t;\n      p[row + 2] = t;\n      p[row + 3] = t;\n      p[row + 4] = t;\n      p[row + 5] = t;\n      p[row + 6] = t;\n      p[row + 7] = t;\n      continue;\n    }\n\n    p1 *= qt[row + 1];\n    p2 *= qt[row + 2];\n    p3 *= qt[row + 3];\n    p4 *= qt[row + 4];\n    p5 *= qt[row + 5];\n    p6 *= qt[row + 6];\n    p7 *= qt[row + 7];\n    v0 = dctSqrt2 * p0 + 128 >> 8;\n    v1 = dctSqrt2 * p4 + 128 >> 8;\n    v2 = p2;\n    v3 = p6;\n    v4 = dctSqrt1d2 * (p1 - p7) + 128 >> 8;\n    v7 = dctSqrt1d2 * (p1 + p7) + 128 >> 8;\n    v5 = p3 << 4;\n    v6 = p5 << 4;\n    v0 = v0 + v1 + 1 >> 1;\n    v1 = v0 - v1;\n    t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n    v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n    v3 = t;\n    v4 = v4 + v6 + 1 >> 1;\n    v6 = v4 - v6;\n    v7 = v7 + v5 + 1 >> 1;\n    v5 = v7 - v5;\n    v0 = v0 + v3 + 1 >> 1;\n    v3 = v0 - v3;\n    v1 = v1 + v2 + 1 >> 1;\n    v2 = v1 - v2;\n    t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n    v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n    v7 = t;\n    t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n    v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n    v6 = t;\n    p[row] = v0 + v7;\n    p[row + 7] = v0 - v7;\n    p[row + 1] = v1 + v6;\n    p[row + 6] = v1 - v6;\n    p[row + 2] = v2 + v5;\n    p[row + 5] = v2 - v5;\n    p[row + 3] = v3 + v4;\n    p[row + 4] = v3 - v4;\n  }\n\n  for (let col = 0; col < 8; ++col) {\n    p0 = p[col];\n    p1 = p[col + 8];\n    p2 = p[col + 16];\n    p3 = p[col + 24];\n    p4 = p[col + 32];\n    p5 = p[col + 40];\n    p6 = p[col + 48];\n    p7 = p[col + 56];\n\n    if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n      t = dctSqrt2 * p0 + 8192 >> 14;\n\n      if (t < -2040) {\n        t = 0;\n      } else if (t >= 2024) {\n        t = 255;\n      } else {\n        t = t + 2056 >> 4;\n      }\n\n      blockData[blockBufferOffset + col] = t;\n      blockData[blockBufferOffset + col + 8] = t;\n      blockData[blockBufferOffset + col + 16] = t;\n      blockData[blockBufferOffset + col + 24] = t;\n      blockData[blockBufferOffset + col + 32] = t;\n      blockData[blockBufferOffset + col + 40] = t;\n      blockData[blockBufferOffset + col + 48] = t;\n      blockData[blockBufferOffset + col + 56] = t;\n      continue;\n    }\n\n    v0 = dctSqrt2 * p0 + 2048 >> 12;\n    v1 = dctSqrt2 * p4 + 2048 >> 12;\n    v2 = p2;\n    v3 = p6;\n    v4 = dctSqrt1d2 * (p1 - p7) + 2048 >> 12;\n    v7 = dctSqrt1d2 * (p1 + p7) + 2048 >> 12;\n    v5 = p3;\n    v6 = p5;\n    v0 = (v0 + v1 + 1 >> 1) + 4112;\n    v1 = v0 - v1;\n    t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n    v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n    v3 = t;\n    v4 = v4 + v6 + 1 >> 1;\n    v6 = v4 - v6;\n    v7 = v7 + v5 + 1 >> 1;\n    v5 = v7 - v5;\n    v0 = v0 + v3 + 1 >> 1;\n    v3 = v0 - v3;\n    v1 = v1 + v2 + 1 >> 1;\n    v2 = v1 - v2;\n    t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n    v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n    v7 = t;\n    t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n    v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n    v6 = t;\n    p0 = v0 + v7;\n    p7 = v0 - v7;\n    p1 = v1 + v6;\n    p6 = v1 - v6;\n    p2 = v2 + v5;\n    p5 = v2 - v5;\n    p3 = v3 + v4;\n    p4 = v3 - v4;\n\n    if (p0 < 16) {\n      p0 = 0;\n    } else if (p0 >= 4080) {\n      p0 = 255;\n    } else {\n      p0 >>= 4;\n    }\n\n    if (p1 < 16) {\n      p1 = 0;\n    } else if (p1 >= 4080) {\n      p1 = 255;\n    } else {\n      p1 >>= 4;\n    }\n\n    if (p2 < 16) {\n      p2 = 0;\n    } else if (p2 >= 4080) {\n      p2 = 255;\n    } else {\n      p2 >>= 4;\n    }\n\n    if (p3 < 16) {\n      p3 = 0;\n    } else if (p3 >= 4080) {\n      p3 = 255;\n    } else {\n      p3 >>= 4;\n    }\n\n    if (p4 < 16) {\n      p4 = 0;\n    } else if (p4 >= 4080) {\n      p4 = 255;\n    } else {\n      p4 >>= 4;\n    }\n\n    if (p5 < 16) {\n      p5 = 0;\n    } else if (p5 >= 4080) {\n      p5 = 255;\n    } else {\n      p5 >>= 4;\n    }\n\n    if (p6 < 16) {\n      p6 = 0;\n    } else if (p6 >= 4080) {\n      p6 = 255;\n    } else {\n      p6 >>= 4;\n    }\n\n    if (p7 < 16) {\n      p7 = 0;\n    } else if (p7 >= 4080) {\n      p7 = 255;\n    } else {\n      p7 >>= 4;\n    }\n\n    blockData[blockBufferOffset + col] = p0;\n    blockData[blockBufferOffset + col + 8] = p1;\n    blockData[blockBufferOffset + col + 16] = p2;\n    blockData[blockBufferOffset + col + 24] = p3;\n    blockData[blockBufferOffset + col + 32] = p4;\n    blockData[blockBufferOffset + col + 40] = p5;\n    blockData[blockBufferOffset + col + 48] = p6;\n    blockData[blockBufferOffset + col + 56] = p7;\n  }\n}\n\nfunction buildComponentData(frame, component) {\n  const blocksPerLine = component.blocksPerLine;\n  const blocksPerColumn = component.blocksPerColumn;\n  const computationBuffer = new Int16Array(64);\n\n  for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n    for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n      const offset = getBlockBufferOffset(component, blockRow, blockCol);\n      quantizeAndInverse(component, offset, computationBuffer);\n    }\n  }\n\n  return component.blockData;\n}\n\nfunction findNextFileMarker(data, currentPos) {\n  let startPos = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : currentPos;\n  const maxPos = data.length - 1;\n  let newPos = startPos < currentPos ? startPos : currentPos;\n\n  if (currentPos >= maxPos) {\n    return null;\n  }\n\n  const currentMarker = (0, _core_utils.readUint16)(data, currentPos);\n\n  if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n    return {\n      invalid: null,\n      marker: currentMarker,\n      offset: currentPos\n    };\n  }\n\n  let newMarker = (0, _core_utils.readUint16)(data, newPos);\n\n  while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n    if (++newPos >= maxPos) {\n      return null;\n    }\n\n    newMarker = (0, _core_utils.readUint16)(data, newPos);\n  }\n\n  return {\n    invalid: currentMarker.toString(16),\n    marker: newMarker,\n    offset: newPos\n  };\n}\n\nclass JpegImage {\n  constructor() {\n    let {\n      decodeTransform = null,\n      colorTransform = -1\n    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    this._decodeTransform = decodeTransform;\n    this._colorTransform = colorTransform;\n  }\n\n  parse(data) {\n    let {\n      dnlScanLines = null\n    } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    function readDataBlock() {\n      const length = (0, _core_utils.readUint16)(data, offset);\n      offset += 2;\n      let endOffset = offset + length - 2;\n      const fileMarker = findNextFileMarker(data, endOffset, offset);\n\n      if (fileMarker && fileMarker.invalid) {\n        (0, _util.warn)(\"readDataBlock - incorrect length, current marker is: \" + fileMarker.invalid);\n        endOffset = fileMarker.offset;\n      }\n\n      const array = data.subarray(offset, endOffset);\n      offset += array.length;\n      return array;\n    }\n\n    function prepareComponents(frame) {\n      const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n      const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n\n      for (let i = 0, ii = frame.components.length; i < ii; i++) {\n        const component = frame.components[i];\n        const blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH);\n        const blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV);\n        const blocksPerLineForMcu = mcusPerLine * component.h;\n        const blocksPerColumnForMcu = mcusPerColumn * component.v;\n        const blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n        component.blockData = new Int16Array(blocksBufferSize);\n        component.blocksPerLine = blocksPerLine;\n        component.blocksPerColumn = blocksPerColumn;\n      }\n\n      frame.mcusPerLine = mcusPerLine;\n      frame.mcusPerColumn = mcusPerColumn;\n    }\n\n    let offset = 0;\n    let jfif = null;\n    let adobe = null;\n    let frame, resetInterval;\n    let numSOSMarkers = 0;\n    const quantizationTables = [];\n    const huffmanTablesAC = [],\n          huffmanTablesDC = [];\n    let fileMarker = (0, _core_utils.readUint16)(data, offset);\n    offset += 2;\n\n    if (fileMarker !== 0xffd8) {\n      throw new JpegError(\"SOI not found\");\n    }\n\n    fileMarker = (0, _core_utils.readUint16)(data, offset);\n    offset += 2;\n\n    markerLoop: while (fileMarker !== 0xffd9) {\n      let i, j, l;\n\n      switch (fileMarker) {\n        case 0xffe0:\n        case 0xffe1:\n        case 0xffe2:\n        case 0xffe3:\n        case 0xffe4:\n        case 0xffe5:\n        case 0xffe6:\n        case 0xffe7:\n        case 0xffe8:\n        case 0xffe9:\n        case 0xffea:\n        case 0xffeb:\n        case 0xffec:\n        case 0xffed:\n        case 0xffee:\n        case 0xffef:\n        case 0xfffe:\n          const appData = readDataBlock();\n\n          if (fileMarker === 0xffe0) {\n            if (appData[0] === 0x4a && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) {\n              jfif = {\n                version: {\n                  major: appData[5],\n                  minor: appData[6]\n                },\n                densityUnits: appData[7],\n                xDensity: appData[8] << 8 | appData[9],\n                yDensity: appData[10] << 8 | appData[11],\n                thumbWidth: appData[12],\n                thumbHeight: appData[13],\n                thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n              };\n            }\n          }\n\n          if (fileMarker === 0xffee) {\n            if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6f && appData[3] === 0x62 && appData[4] === 0x65) {\n              adobe = {\n                version: appData[5] << 8 | appData[6],\n                flags0: appData[7] << 8 | appData[8],\n                flags1: appData[9] << 8 | appData[10],\n                transformCode: appData[11]\n              };\n            }\n          }\n\n          break;\n\n        case 0xffdb:\n          const quantizationTablesLength = (0, _core_utils.readUint16)(data, offset);\n          offset += 2;\n          const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n          let z;\n\n          while (offset < quantizationTablesEnd) {\n            const quantizationTableSpec = data[offset++];\n            const tableData = new Uint16Array(64);\n\n            if (quantizationTableSpec >> 4 === 0) {\n              for (j = 0; j < 64; j++) {\n                z = dctZigZag[j];\n                tableData[z] = data[offset++];\n              }\n            } else if (quantizationTableSpec >> 4 === 1) {\n              for (j = 0; j < 64; j++) {\n                z = dctZigZag[j];\n                tableData[z] = (0, _core_utils.readUint16)(data, offset);\n                offset += 2;\n              }\n            } else {\n              throw new JpegError(\"DQT - invalid table spec\");\n            }\n\n            quantizationTables[quantizationTableSpec & 15] = tableData;\n          }\n\n          break;\n\n        case 0xffc0:\n        case 0xffc1:\n        case 0xffc2:\n          if (frame) {\n            throw new JpegError(\"Only single frame JPEGs supported\");\n          }\n\n          offset += 2;\n          frame = {};\n          frame.extended = fileMarker === 0xffc1;\n          frame.progressive = fileMarker === 0xffc2;\n          frame.precision = data[offset++];\n          const sofScanLines = (0, _core_utils.readUint16)(data, offset);\n          offset += 2;\n          frame.scanLines = dnlScanLines || sofScanLines;\n          frame.samplesPerLine = (0, _core_utils.readUint16)(data, offset);\n          offset += 2;\n          frame.components = [];\n          frame.componentIds = {};\n          const componentsCount = data[offset++];\n          let maxH = 0,\n              maxV = 0;\n\n          for (i = 0; i < componentsCount; i++) {\n            const componentId = data[offset];\n            const h = data[offset + 1] >> 4;\n            const v = data[offset + 1] & 15;\n\n            if (maxH < h) {\n              maxH = h;\n            }\n\n            if (maxV < v) {\n              maxV = v;\n            }\n\n            const qId = data[offset + 2];\n            l = frame.components.push({\n              h,\n              v,\n              quantizationId: qId,\n              quantizationTable: null\n            });\n            frame.componentIds[componentId] = l - 1;\n            offset += 3;\n          }\n\n          frame.maxH = maxH;\n          frame.maxV = maxV;\n          prepareComponents(frame);\n          break;\n\n        case 0xffc4:\n          const huffmanLength = (0, _core_utils.readUint16)(data, offset);\n          offset += 2;\n\n          for (i = 2; i < huffmanLength;) {\n            const huffmanTableSpec = data[offset++];\n            const codeLengths = new Uint8Array(16);\n            let codeLengthSum = 0;\n\n            for (j = 0; j < 16; j++, offset++) {\n              codeLengthSum += codeLengths[j] = data[offset];\n            }\n\n            const huffmanValues = new Uint8Array(codeLengthSum);\n\n            for (j = 0; j < codeLengthSum; j++, offset++) {\n              huffmanValues[j] = data[offset];\n            }\n\n            i += 17 + codeLengthSum;\n            (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues);\n          }\n\n          break;\n\n        case 0xffdd:\n          offset += 2;\n          resetInterval = (0, _core_utils.readUint16)(data, offset);\n          offset += 2;\n          break;\n\n        case 0xffda:\n          const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n          offset += 2;\n          const selectorsCount = data[offset++],\n                components = [];\n\n          for (i = 0; i < selectorsCount; i++) {\n            const index = data[offset++];\n            const componentIndex = frame.componentIds[index];\n            const component = frame.components[componentIndex];\n            component.index = index;\n            const tableSpec = data[offset++];\n            component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n            component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n            components.push(component);\n          }\n\n          const spectralStart = data[offset++],\n                spectralEnd = data[offset++],\n                successiveApproximation = data[offset++];\n\n          try {\n            const processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, parseDNLMarker);\n            offset += processed;\n          } catch (ex) {\n            if (ex instanceof DNLMarkerError) {\n              (0, _util.warn)(`${ex.message} -- attempting to re-parse the JPEG image.`);\n              return this.parse(data, {\n                dnlScanLines: ex.scanLines\n              });\n            } else if (ex instanceof EOIMarkerError) {\n              (0, _util.warn)(`${ex.message} -- ignoring the rest of the image data.`);\n              break markerLoop;\n            }\n\n            throw ex;\n          }\n\n          break;\n\n        case 0xffdc:\n          offset += 4;\n          break;\n\n        case 0xffff:\n          if (data[offset] !== 0xff) {\n            offset--;\n          }\n\n          break;\n\n        default:\n          const nextFileMarker = findNextFileMarker(data, offset - 2, offset - 3);\n\n          if (nextFileMarker && nextFileMarker.invalid) {\n            (0, _util.warn)(\"JpegImage.parse - unexpected data, current marker is: \" + nextFileMarker.invalid);\n            offset = nextFileMarker.offset;\n            break;\n          }\n\n          if (!nextFileMarker || offset >= data.length - 1) {\n            (0, _util.warn)(\"JpegImage.parse - reached the end of the image data \" + \"without finding an EOI marker (0xFFD9).\");\n            break markerLoop;\n          }\n\n          throw new JpegError(\"JpegImage.parse - unknown marker: \" + fileMarker.toString(16));\n      }\n\n      fileMarker = (0, _core_utils.readUint16)(data, offset);\n      offset += 2;\n    }\n\n    this.width = frame.samplesPerLine;\n    this.height = frame.scanLines;\n    this.jfif = jfif;\n    this.adobe = adobe;\n    this.components = [];\n\n    for (let i = 0, ii = frame.components.length; i < ii; i++) {\n      const component = frame.components[i];\n      const quantizationTable = quantizationTables[component.quantizationId];\n\n      if (quantizationTable) {\n        component.quantizationTable = quantizationTable;\n      }\n\n      this.components.push({\n        index: component.index,\n        output: buildComponentData(frame, component),\n        scaleX: component.h / frame.maxH,\n        scaleY: component.v / frame.maxV,\n        blocksPerLine: component.blocksPerLine,\n        blocksPerColumn: component.blocksPerColumn\n      });\n    }\n\n    this.numComponents = this.components.length;\n    return undefined;\n  }\n\n  _getLinearizedBlockData(width, height) {\n    let isSourcePDF = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    const scaleX = this.width / width,\n          scaleY = this.height / height;\n    let component, componentScaleX, componentScaleY, blocksPerScanline;\n    let x, y, i, j, k;\n    let index;\n    let offset = 0;\n    let output;\n    const numComponents = this.components.length;\n    const dataLength = width * height * numComponents;\n    const data = new Uint8ClampedArray(dataLength);\n    const xScaleBlockOffset = new Uint32Array(width);\n    const mask3LSB = 0xfffffff8;\n    let lastComponentScaleX;\n\n    for (i = 0; i < numComponents; i++) {\n      component = this.components[i];\n      componentScaleX = component.scaleX * scaleX;\n      componentScaleY = component.scaleY * scaleY;\n      offset = i;\n      output = component.output;\n      blocksPerScanline = component.blocksPerLine + 1 << 3;\n\n      if (componentScaleX !== lastComponentScaleX) {\n        for (x = 0; x < width; x++) {\n          j = 0 | x * componentScaleX;\n          xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7;\n        }\n\n        lastComponentScaleX = componentScaleX;\n      }\n\n      for (y = 0; y < height; y++) {\n        j = 0 | y * componentScaleY;\n        index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3;\n\n        for (x = 0; x < width; x++) {\n          data[offset] = output[index + xScaleBlockOffset[x]];\n          offset += numComponents;\n        }\n      }\n    }\n\n    let transform = this._decodeTransform;\n\n    if (!isSourcePDF && numComponents === 4 && !transform) {\n      transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n    }\n\n    if (transform) {\n      for (i = 0; i < dataLength;) {\n        for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n          data[i] = (data[i] * transform[k] >> 8) + transform[k + 1];\n        }\n      }\n    }\n\n    return data;\n  }\n\n  get _isColorConversionNeeded() {\n    if (this.adobe) {\n      return !!this.adobe.transformCode;\n    }\n\n    if (this.numComponents === 3) {\n      if (this._colorTransform === 0) {\n        return false;\n      } else if (this.components[0].index === 0x52 && this.components[1].index === 0x47 && this.components[2].index === 0x42) {\n        return false;\n      }\n\n      return true;\n    }\n\n    if (this._colorTransform === 1) {\n      return true;\n    }\n\n    return false;\n  }\n\n  _convertYccToRgb(data) {\n    let Y, Cb, Cr;\n\n    for (let i = 0, length = data.length; i < length; i += 3) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      data[i] = Y - 179.456 + 1.402 * Cr;\n      data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n      data[i + 2] = Y - 226.816 + 1.772 * Cb;\n    }\n\n    return data;\n  }\n\n  _convertYcckToRgb(data) {\n    let Y, Cb, Cr, k;\n    let offset = 0;\n\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      k = data[i + 3];\n      data[offset++] = -122.67195406894 + Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - 5.4080610064599e-5 * Y + 0.00048449797120281 * k - 0.154362151871126) + Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - 0.00477271405408747 * k + 1.53380253221734) + Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + 0.48357088451265) + k * (-0.000336197177618394 * k + 0.484791561490776);\n      data[offset++] = 107.268039397724 + Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + 0.000659397001245577 * Y + 0.000426105652938837 * k - 0.176491792462875) + Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + 0.000770482631801132 * k - 0.151051492775562) + Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + 0.25802910206845) + k * (-0.000318913117588328 * k - 0.213742400323665);\n      data[offset++] = -20.810012546947 + Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + 0.0020741088115012 * Y - 0.00288260236853442 * k + 0.814272968359295) + Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + 0.000560833691242812 * k - 0.195152027534049) + Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + 0.116935020465145) + k * (-0.000343531996510555 * k + 0.24165260232407);\n    }\n\n    return data.subarray(0, offset);\n  }\n\n  _convertYcckToCmyk(data) {\n    let Y, Cb, Cr;\n\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      data[i] = 434.456 - Y - 1.402 * Cr;\n      data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n      data[i + 2] = 481.816 - Y - 1.772 * Cb;\n    }\n\n    return data;\n  }\n\n  _convertCmykToRgb(data) {\n    let c, m, y, k;\n    let offset = 0;\n\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      c = data[i];\n      m = data[i + 1];\n      y = data[i + 2];\n      k = data[i + 3];\n      data[offset++] = 255 + c * (-0.00006747147073602441 * c + 0.0008379262121013727 * m + 0.0002894718188643294 * y + 0.003264231057537806 * k - 1.1185611867203937) + m * (0.000026374107616089405 * m - 0.00008626949158638572 * y - 0.0002748769067499491 * k - 0.02155688794978967) + y * (-0.00003878099212869363 * y - 0.0003267808279485286 * k + 0.0686742238595345) - k * (0.0003361971776183937 * k + 0.7430659151342254);\n      data[offset++] = 255 + c * (0.00013596372813588848 * c + 0.000924537132573585 * m + 0.00010567359618683593 * y + 0.0004791864687436512 * k - 0.3109689587515875) + m * (-0.00023545346108370344 * m + 0.0002702845253534714 * y + 0.0020200308977307156 * k - 0.7488052167015494) + y * (0.00006834815998235662 * y + 0.00015168452363460973 * k - 0.09751927774728933) - k * (0.0003189131175883281 * k + 0.7364883807733168);\n      data[offset++] = 255 + c * (0.000013598650411385307 * c + 0.00012423956175490851 * m + 0.0004751985097583589 * y - 0.0000036729317476630422 * k - 0.05562186980264034) + m * (0.00016141380598724676 * m + 0.0009692239130725186 * y + 0.0007782692450036253 * k - 0.44015232367526463) + y * (5.068882914068769e-7 * y + 0.0017778369011375071 * k - 0.7591454649749609) - k * (0.0003435319965105553 * k + 0.7063770186160144);\n    }\n\n    return data.subarray(0, offset);\n  }\n\n  getData(_ref) {\n    let {\n      width,\n      height,\n      forceRGB = false,\n      isSourcePDF = false\n    } = _ref;\n\n    if (this.numComponents > 4) {\n      throw new JpegError(\"Unsupported color mode\");\n    }\n\n    const data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n    if (this.numComponents === 1 && forceRGB) {\n      const dataLength = data.length;\n      const rgbData = new Uint8ClampedArray(dataLength * 3);\n      let offset = 0;\n\n      for (let i = 0; i < dataLength; i++) {\n        const grayColor = data[i];\n        rgbData[offset++] = grayColor;\n        rgbData[offset++] = grayColor;\n        rgbData[offset++] = grayColor;\n      }\n\n      return rgbData;\n    } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n      return this._convertYccToRgb(data);\n    } else if (this.numComponents === 4) {\n      if (this._isColorConversionNeeded) {\n        if (forceRGB) {\n          return this._convertYcckToRgb(data);\n        }\n\n        return this._convertYcckToCmyk(data);\n      } else if (forceRGB) {\n        return this._convertCmykToRgb(data);\n      }\n    }\n\n    return data;\n  }\n\n}\n\nexports.JpegImage = JpegImage;\n\n/***/ }),\n/* 154 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.JpxStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(144);\n\nvar _jpx = __w_pdfjs_require__(155);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass JpxStream extends _decode_stream.DecodeStream {\n  constructor(stream, maybeLength, params) {\n    super(maybeLength);\n    this.stream = stream;\n    this.dict = stream.dict;\n    this.maybeLength = maybeLength;\n    this.params = params;\n  }\n\n  get bytes() {\n    return (0, _util.shadow)(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n  }\n\n  ensureBuffer(requested) {}\n\n  readBlock() {\n    if (this.eof) {\n      return;\n    }\n\n    const jpxImage = new _jpx.JpxImage();\n    jpxImage.parse(this.bytes);\n    const width = jpxImage.width;\n    const height = jpxImage.height;\n    const componentsCount = jpxImage.componentsCount;\n    const tileCount = jpxImage.tiles.length;\n\n    if (tileCount === 1) {\n      this.buffer = jpxImage.tiles[0].items;\n    } else {\n      const data = new Uint8ClampedArray(width * height * componentsCount);\n\n      for (let k = 0; k < tileCount; k++) {\n        const tileComponents = jpxImage.tiles[k];\n        const tileWidth = tileComponents.width;\n        const tileHeight = tileComponents.height;\n        const tileLeft = tileComponents.left;\n        const tileTop = tileComponents.top;\n        const src = tileComponents.items;\n        let srcPosition = 0;\n        let dataPosition = (width * tileTop + tileLeft) * componentsCount;\n        const imgRowSize = width * componentsCount;\n        const tileRowSize = tileWidth * componentsCount;\n\n        for (let j = 0; j < tileHeight; j++) {\n          const rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n          data.set(rowBytes, dataPosition);\n          srcPosition += tileRowSize;\n          dataPosition += imgRowSize;\n        }\n      }\n\n      this.buffer = data;\n    }\n\n    this.bufferLength = this.buffer.length;\n    this.eof = true;\n  }\n\n}\n\nexports.JpxStream = JpxStream;\n\n/***/ }),\n/* 155 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.JpxImage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(151);\n\nclass JpxError extends _util.BaseException {\n  constructor(msg) {\n    super(`JPX error: ${msg}`, \"JpxError\");\n  }\n\n}\n\nconst SubbandsGainLog2 = {\n  LL: 0,\n  LH: 1,\n  HL: 1,\n  HH: 2\n};\n\nclass JpxImage {\n  constructor() {\n    this.failOnCorruptedImage = false;\n  }\n\n  parse(data) {\n    const head = (0, _core_utils.readUint16)(data, 0);\n\n    if (head === 0xff4f) {\n      this.parseCodestream(data, 0, data.length);\n      return;\n    }\n\n    const length = data.length;\n    let position = 0;\n\n    while (position < length) {\n      let headerSize = 8;\n      let lbox = (0, _core_utils.readUint32)(data, position);\n      const tbox = (0, _core_utils.readUint32)(data, position + 4);\n      position += headerSize;\n\n      if (lbox === 1) {\n        lbox = (0, _core_utils.readUint32)(data, position) * 4294967296 + (0, _core_utils.readUint32)(data, position + 4);\n        position += 8;\n        headerSize += 8;\n      }\n\n      if (lbox === 0) {\n        lbox = length - position + headerSize;\n      }\n\n      if (lbox < headerSize) {\n        throw new JpxError(\"Invalid box field size\");\n      }\n\n      const dataLength = lbox - headerSize;\n      let jumpDataLength = true;\n\n      switch (tbox) {\n        case 0x6a703268:\n          jumpDataLength = false;\n          break;\n\n        case 0x636f6c72:\n          const method = data[position];\n\n          if (method === 1) {\n            const colorspace = (0, _core_utils.readUint32)(data, position + 3);\n\n            switch (colorspace) {\n              case 16:\n              case 17:\n              case 18:\n                break;\n\n              default:\n                (0, _util.warn)(\"Unknown colorspace \" + colorspace);\n                break;\n            }\n          } else if (method === 2) {\n            (0, _util.info)(\"ICC profile not supported\");\n          }\n\n          break;\n\n        case 0x6a703263:\n          this.parseCodestream(data, position, position + dataLength);\n          break;\n\n        case 0x6a502020:\n          if ((0, _core_utils.readUint32)(data, position) !== 0x0d0a870a) {\n            (0, _util.warn)(\"Invalid JP2 signature\");\n          }\n\n          break;\n\n        case 0x6a501a1a:\n        case 0x66747970:\n        case 0x72726571:\n        case 0x72657320:\n        case 0x69686472:\n          break;\n\n        default:\n          const headerType = String.fromCharCode(tbox >> 24 & 0xff, tbox >> 16 & 0xff, tbox >> 8 & 0xff, tbox & 0xff);\n          (0, _util.warn)(`Unsupported header type ${tbox} (${headerType}).`);\n          break;\n      }\n\n      if (jumpDataLength) {\n        position += dataLength;\n      }\n    }\n  }\n\n  parseImageProperties(stream) {\n    let newByte = stream.getByte();\n\n    while (newByte >= 0) {\n      const oldByte = newByte;\n      newByte = stream.getByte();\n      const code = oldByte << 8 | newByte;\n\n      if (code === 0xff51) {\n        stream.skip(4);\n        const Xsiz = stream.getInt32() >>> 0;\n        const Ysiz = stream.getInt32() >>> 0;\n        const XOsiz = stream.getInt32() >>> 0;\n        const YOsiz = stream.getInt32() >>> 0;\n        stream.skip(16);\n        const Csiz = stream.getUint16();\n        this.width = Xsiz - XOsiz;\n        this.height = Ysiz - YOsiz;\n        this.componentsCount = Csiz;\n        this.bitsPerComponent = 8;\n        return;\n      }\n    }\n\n    throw new JpxError(\"No size marker found in JPX stream\");\n  }\n\n  parseCodestream(data, start, end) {\n    const context = {};\n    let doNotRecover = false;\n\n    try {\n      let position = start;\n\n      while (position + 1 < end) {\n        const code = (0, _core_utils.readUint16)(data, position);\n        position += 2;\n        let length = 0,\n            j,\n            sqcd,\n            spqcds,\n            spqcdSize,\n            scalarExpounded,\n            tile;\n\n        switch (code) {\n          case 0xff4f:\n            context.mainHeader = true;\n            break;\n\n          case 0xffd9:\n            break;\n\n          case 0xff51:\n            length = (0, _core_utils.readUint16)(data, position);\n            const siz = {};\n            siz.Xsiz = (0, _core_utils.readUint32)(data, position + 4);\n            siz.Ysiz = (0, _core_utils.readUint32)(data, position + 8);\n            siz.XOsiz = (0, _core_utils.readUint32)(data, position + 12);\n            siz.YOsiz = (0, _core_utils.readUint32)(data, position + 16);\n            siz.XTsiz = (0, _core_utils.readUint32)(data, position + 20);\n            siz.YTsiz = (0, _core_utils.readUint32)(data, position + 24);\n            siz.XTOsiz = (0, _core_utils.readUint32)(data, position + 28);\n            siz.YTOsiz = (0, _core_utils.readUint32)(data, position + 32);\n            const componentsCount = (0, _core_utils.readUint16)(data, position + 36);\n            siz.Csiz = componentsCount;\n            const components = [];\n            j = position + 38;\n\n            for (let i = 0; i < componentsCount; i++) {\n              const component = {\n                precision: (data[j] & 0x7f) + 1,\n                isSigned: !!(data[j] & 0x80),\n                XRsiz: data[j + 1],\n                YRsiz: data[j + 2]\n              };\n              j += 3;\n              calculateComponentDimensions(component, siz);\n              components.push(component);\n            }\n\n            context.SIZ = siz;\n            context.components = components;\n            calculateTileGrids(context, components);\n            context.QCC = [];\n            context.COC = [];\n            break;\n\n          case 0xff5c:\n            length = (0, _core_utils.readUint16)(data, position);\n            const qcd = {};\n            j = position + 2;\n            sqcd = data[j++];\n\n            switch (sqcd & 0x1f) {\n              case 0:\n                spqcdSize = 8;\n                scalarExpounded = true;\n                break;\n\n              case 1:\n                spqcdSize = 16;\n                scalarExpounded = false;\n                break;\n\n              case 2:\n                spqcdSize = 16;\n                scalarExpounded = true;\n                break;\n\n              default:\n                throw new Error(\"Invalid SQcd value \" + sqcd);\n            }\n\n            qcd.noQuantization = spqcdSize === 8;\n            qcd.scalarExpounded = scalarExpounded;\n            qcd.guardBits = sqcd >> 5;\n            spqcds = [];\n\n            while (j < length + position) {\n              const spqcd = {};\n\n              if (spqcdSize === 8) {\n                spqcd.epsilon = data[j++] >> 3;\n                spqcd.mu = 0;\n              } else {\n                spqcd.epsilon = data[j] >> 3;\n                spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n                j += 2;\n              }\n\n              spqcds.push(spqcd);\n            }\n\n            qcd.SPqcds = spqcds;\n\n            if (context.mainHeader) {\n              context.QCD = qcd;\n            } else {\n              context.currentTile.QCD = qcd;\n              context.currentTile.QCC = [];\n            }\n\n            break;\n\n          case 0xff5d:\n            length = (0, _core_utils.readUint16)(data, position);\n            const qcc = {};\n            j = position + 2;\n            let cqcc;\n\n            if (context.SIZ.Csiz < 257) {\n              cqcc = data[j++];\n            } else {\n              cqcc = (0, _core_utils.readUint16)(data, j);\n              j += 2;\n            }\n\n            sqcd = data[j++];\n\n            switch (sqcd & 0x1f) {\n              case 0:\n                spqcdSize = 8;\n                scalarExpounded = true;\n                break;\n\n              case 1:\n                spqcdSize = 16;\n                scalarExpounded = false;\n                break;\n\n              case 2:\n                spqcdSize = 16;\n                scalarExpounded = true;\n                break;\n\n              default:\n                throw new Error(\"Invalid SQcd value \" + sqcd);\n            }\n\n            qcc.noQuantization = spqcdSize === 8;\n            qcc.scalarExpounded = scalarExpounded;\n            qcc.guardBits = sqcd >> 5;\n            spqcds = [];\n\n            while (j < length + position) {\n              const spqcd = {};\n\n              if (spqcdSize === 8) {\n                spqcd.epsilon = data[j++] >> 3;\n                spqcd.mu = 0;\n              } else {\n                spqcd.epsilon = data[j] >> 3;\n                spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n                j += 2;\n              }\n\n              spqcds.push(spqcd);\n            }\n\n            qcc.SPqcds = spqcds;\n\n            if (context.mainHeader) {\n              context.QCC[cqcc] = qcc;\n            } else {\n              context.currentTile.QCC[cqcc] = qcc;\n            }\n\n            break;\n\n          case 0xff52:\n            length = (0, _core_utils.readUint16)(data, position);\n            const cod = {};\n            j = position + 2;\n            const scod = data[j++];\n            cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n            cod.sopMarkerUsed = !!(scod & 2);\n            cod.ephMarkerUsed = !!(scod & 4);\n            cod.progressionOrder = data[j++];\n            cod.layersCount = (0, _core_utils.readUint16)(data, j);\n            j += 2;\n            cod.multipleComponentTransform = data[j++];\n            cod.decompositionLevelsCount = data[j++];\n            cod.xcb = (data[j++] & 0xf) + 2;\n            cod.ycb = (data[j++] & 0xf) + 2;\n            const blockStyle = data[j++];\n            cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n            cod.resetContextProbabilities = !!(blockStyle & 2);\n            cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n            cod.verticallyStripe = !!(blockStyle & 8);\n            cod.predictableTermination = !!(blockStyle & 16);\n            cod.segmentationSymbolUsed = !!(blockStyle & 32);\n            cod.reversibleTransformation = data[j++];\n\n            if (cod.entropyCoderWithCustomPrecincts) {\n              const precinctsSizes = [];\n\n              while (j < length + position) {\n                const precinctsSize = data[j++];\n                precinctsSizes.push({\n                  PPx: precinctsSize & 0xf,\n                  PPy: precinctsSize >> 4\n                });\n              }\n\n              cod.precinctsSizes = precinctsSizes;\n            }\n\n            const unsupported = [];\n\n            if (cod.selectiveArithmeticCodingBypass) {\n              unsupported.push(\"selectiveArithmeticCodingBypass\");\n            }\n\n            if (cod.terminationOnEachCodingPass) {\n              unsupported.push(\"terminationOnEachCodingPass\");\n            }\n\n            if (cod.verticallyStripe) {\n              unsupported.push(\"verticallyStripe\");\n            }\n\n            if (cod.predictableTermination) {\n              unsupported.push(\"predictableTermination\");\n            }\n\n            if (unsupported.length > 0) {\n              doNotRecover = true;\n              (0, _util.warn)(`JPX: Unsupported COD options (${unsupported.join(\", \")}).`);\n            }\n\n            if (context.mainHeader) {\n              context.COD = cod;\n            } else {\n              context.currentTile.COD = cod;\n              context.currentTile.COC = [];\n            }\n\n            break;\n\n          case 0xff90:\n            length = (0, _core_utils.readUint16)(data, position);\n            tile = {};\n            tile.index = (0, _core_utils.readUint16)(data, position + 2);\n            tile.length = (0, _core_utils.readUint32)(data, position + 4);\n            tile.dataEnd = tile.length + position - 2;\n            tile.partIndex = data[position + 8];\n            tile.partsCount = data[position + 9];\n            context.mainHeader = false;\n\n            if (tile.partIndex === 0) {\n              tile.COD = context.COD;\n              tile.COC = context.COC.slice(0);\n              tile.QCD = context.QCD;\n              tile.QCC = context.QCC.slice(0);\n            }\n\n            context.currentTile = tile;\n            break;\n\n          case 0xff93:\n            tile = context.currentTile;\n\n            if (tile.partIndex === 0) {\n              initializeTile(context, tile.index);\n              buildPackets(context);\n            }\n\n            length = tile.dataEnd - position;\n            parseTilePackets(context, data, position, length);\n            break;\n\n          case 0xff53:\n            (0, _util.warn)(\"JPX: Codestream code 0xFF53 (COC) is not implemented.\");\n\n          case 0xff55:\n          case 0xff57:\n          case 0xff58:\n          case 0xff64:\n            length = (0, _core_utils.readUint16)(data, position);\n            break;\n\n          default:\n            throw new Error(\"Unknown codestream code: \" + code.toString(16));\n        }\n\n        position += length;\n      }\n    } catch (e) {\n      if (doNotRecover || this.failOnCorruptedImage) {\n        throw new JpxError(e.message);\n      } else {\n        (0, _util.warn)(`JPX: Trying to recover from: \"${e.message}\".`);\n      }\n    }\n\n    this.tiles = transformComponents(context);\n    this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n    this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n    this.componentsCount = context.SIZ.Csiz;\n  }\n\n}\n\nexports.JpxImage = JpxImage;\n\nfunction calculateComponentDimensions(component, siz) {\n  component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n  component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n  component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n  component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n  component.width = component.x1 - component.x0;\n  component.height = component.y1 - component.y0;\n}\n\nfunction calculateTileGrids(context, components) {\n  const siz = context.SIZ;\n  const tiles = [];\n  let tile;\n  const numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n  const numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n\n  for (let q = 0; q < numYtiles; q++) {\n    for (let p = 0; p < numXtiles; p++) {\n      tile = {};\n      tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n      tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n      tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n      tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n      tile.width = tile.tx1 - tile.tx0;\n      tile.height = tile.ty1 - tile.ty0;\n      tile.components = [];\n      tiles.push(tile);\n    }\n  }\n\n  context.tiles = tiles;\n  const componentsCount = siz.Csiz;\n\n  for (let i = 0, ii = componentsCount; i < ii; i++) {\n    const component = components[i];\n\n    for (let j = 0, jj = tiles.length; j < jj; j++) {\n      const tileComponent = {};\n      tile = tiles[j];\n      tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n      tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n      tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n      tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n      tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n      tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n      tile.components[i] = tileComponent;\n    }\n  }\n}\n\nfunction getBlocksDimensions(context, component, r) {\n  const codOrCoc = component.codingStyleParameters;\n  const result = {};\n\n  if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n    result.PPx = 15;\n    result.PPy = 15;\n  } else {\n    result.PPx = codOrCoc.precinctsSizes[r].PPx;\n    result.PPy = codOrCoc.precinctsSizes[r].PPy;\n  }\n\n  result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx);\n  result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy);\n  return result;\n}\n\nfunction buildPrecincts(context, resolution, dimensions) {\n  const precinctWidth = 1 << dimensions.PPx;\n  const precinctHeight = 1 << dimensions.PPy;\n  const isZeroRes = resolution.resLevel === 0;\n  const precinctWidthInSubband = 1 << dimensions.PPx + (isZeroRes ? 0 : -1);\n  const precinctHeightInSubband = 1 << dimensions.PPy + (isZeroRes ? 0 : -1);\n  const numprecinctswide = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0;\n  const numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0;\n  const numprecincts = numprecinctswide * numprecinctshigh;\n  resolution.precinctParameters = {\n    precinctWidth,\n    precinctHeight,\n    numprecinctswide,\n    numprecinctshigh,\n    numprecincts,\n    precinctWidthInSubband,\n    precinctHeightInSubband\n  };\n}\n\nfunction buildCodeblocks(context, subband, dimensions) {\n  const xcb_ = dimensions.xcb_;\n  const ycb_ = dimensions.ycb_;\n  const codeblockWidth = 1 << xcb_;\n  const codeblockHeight = 1 << ycb_;\n  const cbx0 = subband.tbx0 >> xcb_;\n  const cby0 = subband.tby0 >> ycb_;\n  const cbx1 = subband.tbx1 + codeblockWidth - 1 >> xcb_;\n  const cby1 = subband.tby1 + codeblockHeight - 1 >> ycb_;\n  const precinctParameters = subband.resolution.precinctParameters;\n  const codeblocks = [];\n  const precincts = [];\n  let i, j, codeblock, precinctNumber;\n\n  for (j = cby0; j < cby1; j++) {\n    for (i = cbx0; i < cbx1; i++) {\n      codeblock = {\n        cbx: i,\n        cby: j,\n        tbx0: codeblockWidth * i,\n        tby0: codeblockHeight * j,\n        tbx1: codeblockWidth * (i + 1),\n        tby1: codeblockHeight * (j + 1)\n      };\n      codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n      codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n      codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n      codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n      const pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband);\n      const pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband);\n      precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n      codeblock.precinctNumber = precinctNumber;\n      codeblock.subbandType = subband.type;\n      codeblock.Lblock = 3;\n\n      if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) {\n        continue;\n      }\n\n      codeblocks.push(codeblock);\n      let precinct = precincts[precinctNumber];\n\n      if (precinct !== undefined) {\n        if (i < precinct.cbxMin) {\n          precinct.cbxMin = i;\n        } else if (i > precinct.cbxMax) {\n          precinct.cbxMax = i;\n        }\n\n        if (j < precinct.cbyMin) {\n          precinct.cbxMin = j;\n        } else if (j > precinct.cbyMax) {\n          precinct.cbyMax = j;\n        }\n      } else {\n        precincts[precinctNumber] = precinct = {\n          cbxMin: i,\n          cbyMin: j,\n          cbxMax: i,\n          cbyMax: j\n        };\n      }\n\n      codeblock.precinct = precinct;\n    }\n  }\n\n  subband.codeblockParameters = {\n    codeblockWidth: xcb_,\n    codeblockHeight: ycb_,\n    numcodeblockwide: cbx1 - cbx0 + 1,\n    numcodeblockhigh: cby1 - cby0 + 1\n  };\n  subband.codeblocks = codeblocks;\n  subband.precincts = precincts;\n}\n\nfunction createPacket(resolution, precinctNumber, layerNumber) {\n  const precinctCodeblocks = [];\n  const subbands = resolution.subbands;\n\n  for (let i = 0, ii = subbands.length; i < ii; i++) {\n    const subband = subbands[i];\n    const codeblocks = subband.codeblocks;\n\n    for (let j = 0, jj = codeblocks.length; j < jj; j++) {\n      const codeblock = codeblocks[j];\n\n      if (codeblock.precinctNumber !== precinctNumber) {\n        continue;\n      }\n\n      precinctCodeblocks.push(codeblock);\n    }\n  }\n\n  return {\n    layerNumber,\n    codeblocks: precinctCodeblocks\n  };\n}\n\nfunction LayerResolutionComponentPositionIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  let maxDecompositionLevelsCount = 0;\n\n  for (let q = 0; q < componentsCount; q++) {\n    maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n  }\n\n  let l = 0,\n      r = 0,\n      i = 0,\n      k = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    for (; l < layersCount; l++) {\n      for (; r <= maxDecompositionLevelsCount; r++) {\n        for (; i < componentsCount; i++) {\n          const component = tile.components[i];\n\n          if (r > component.codingStyleParameters.decompositionLevelsCount) {\n            continue;\n          }\n\n          const resolution = component.resolutions[r];\n          const numprecincts = resolution.precinctParameters.numprecincts;\n\n          for (; k < numprecincts;) {\n            const packet = createPacket(resolution, k, l);\n            k++;\n            return packet;\n          }\n\n          k = 0;\n        }\n\n        i = 0;\n      }\n\n      r = 0;\n    }\n\n    throw new JpxError(\"Out of packets\");\n  };\n}\n\nfunction ResolutionLayerComponentPositionIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  let maxDecompositionLevelsCount = 0;\n\n  for (let q = 0; q < componentsCount; q++) {\n    maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n  }\n\n  let r = 0,\n      l = 0,\n      i = 0,\n      k = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    for (; r <= maxDecompositionLevelsCount; r++) {\n      for (; l < layersCount; l++) {\n        for (; i < componentsCount; i++) {\n          const component = tile.components[i];\n\n          if (r > component.codingStyleParameters.decompositionLevelsCount) {\n            continue;\n          }\n\n          const resolution = component.resolutions[r];\n          const numprecincts = resolution.precinctParameters.numprecincts;\n\n          for (; k < numprecincts;) {\n            const packet = createPacket(resolution, k, l);\n            k++;\n            return packet;\n          }\n\n          k = 0;\n        }\n\n        i = 0;\n      }\n\n      l = 0;\n    }\n\n    throw new JpxError(\"Out of packets\");\n  };\n}\n\nfunction ResolutionPositionComponentLayerIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  let l, r, c, p;\n  let maxDecompositionLevelsCount = 0;\n\n  for (c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount);\n  }\n\n  const maxNumPrecinctsInLevel = new Int32Array(maxDecompositionLevelsCount + 1);\n\n  for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n    let maxNumPrecincts = 0;\n\n    for (c = 0; c < componentsCount; ++c) {\n      const resolutions = tile.components[c].resolutions;\n\n      if (r < resolutions.length) {\n        maxNumPrecincts = Math.max(maxNumPrecincts, resolutions[r].precinctParameters.numprecincts);\n      }\n    }\n\n    maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n  }\n\n  l = 0;\n  r = 0;\n  c = 0;\n  p = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    for (; r <= maxDecompositionLevelsCount; r++) {\n      for (; p < maxNumPrecinctsInLevel[r]; p++) {\n        for (; c < componentsCount; c++) {\n          const component = tile.components[c];\n\n          if (r > component.codingStyleParameters.decompositionLevelsCount) {\n            continue;\n          }\n\n          const resolution = component.resolutions[r];\n          const numprecincts = resolution.precinctParameters.numprecincts;\n\n          if (p >= numprecincts) {\n            continue;\n          }\n\n          for (; l < layersCount;) {\n            const packet = createPacket(resolution, p, l);\n            l++;\n            return packet;\n          }\n\n          l = 0;\n        }\n\n        c = 0;\n      }\n\n      p = 0;\n    }\n\n    throw new JpxError(\"Out of packets\");\n  };\n}\n\nfunction PositionComponentResolutionLayerIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  const precinctsSizes = getPrecinctSizesInImageScale(tile);\n  const precinctsIterationSizes = precinctsSizes;\n  let l = 0,\n      r = 0,\n      c = 0,\n      px = 0,\n      py = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n      for (; px < precinctsIterationSizes.maxNumWide; px++) {\n        for (; c < componentsCount; c++) {\n          const component = tile.components[c];\n          const decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n\n          for (; r <= decompositionLevelsCount; r++) {\n            const resolution = component.resolutions[r];\n            const sizeInImageScale = precinctsSizes.components[c].resolutions[r];\n            const k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n\n            if (k === null) {\n              continue;\n            }\n\n            for (; l < layersCount;) {\n              const packet = createPacket(resolution, k, l);\n              l++;\n              return packet;\n            }\n\n            l = 0;\n          }\n\n          r = 0;\n        }\n\n        c = 0;\n      }\n\n      px = 0;\n    }\n\n    throw new JpxError(\"Out of packets\");\n  };\n}\n\nfunction ComponentPositionResolutionLayerIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  const precinctsSizes = getPrecinctSizesInImageScale(tile);\n  let l = 0,\n      r = 0,\n      c = 0,\n      px = 0,\n      py = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    for (; c < componentsCount; ++c) {\n      const component = tile.components[c];\n      const precinctsIterationSizes = precinctsSizes.components[c];\n      const decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n\n      for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n        for (; px < precinctsIterationSizes.maxNumWide; px++) {\n          for (; r <= decompositionLevelsCount; r++) {\n            const resolution = component.resolutions[r];\n            const sizeInImageScale = precinctsIterationSizes.resolutions[r];\n            const k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n\n            if (k === null) {\n              continue;\n            }\n\n            for (; l < layersCount;) {\n              const packet = createPacket(resolution, k, l);\n              l++;\n              return packet;\n            }\n\n            l = 0;\n          }\n\n          r = 0;\n        }\n\n        px = 0;\n      }\n\n      py = 0;\n    }\n\n    throw new JpxError(\"Out of packets\");\n  };\n}\n\nfunction getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) {\n  const posX = pxIndex * precinctIterationSizes.minWidth;\n  const posY = pyIndex * precinctIterationSizes.minHeight;\n\n  if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) {\n    return null;\n  }\n\n  const startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide;\n  return posX / sizeInImageScale.height + startPrecinctRowIndex;\n}\n\nfunction getPrecinctSizesInImageScale(tile) {\n  const componentsCount = tile.components.length;\n  let minWidth = Number.MAX_VALUE;\n  let minHeight = Number.MAX_VALUE;\n  let maxNumWide = 0;\n  let maxNumHigh = 0;\n  const sizePerComponent = new Array(componentsCount);\n\n  for (let c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    const decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n    const sizePerResolution = new Array(decompositionLevelsCount + 1);\n    let minWidthCurrentComponent = Number.MAX_VALUE;\n    let minHeightCurrentComponent = Number.MAX_VALUE;\n    let maxNumWideCurrentComponent = 0;\n    let maxNumHighCurrentComponent = 0;\n    let scale = 1;\n\n    for (let r = decompositionLevelsCount; r >= 0; --r) {\n      const resolution = component.resolutions[r];\n      const widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth;\n      const heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight;\n      minWidthCurrentComponent = Math.min(minWidthCurrentComponent, widthCurrentResolution);\n      minHeightCurrentComponent = Math.min(minHeightCurrentComponent, heightCurrentResolution);\n      maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, resolution.precinctParameters.numprecinctswide);\n      maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, resolution.precinctParameters.numprecinctshigh);\n      sizePerResolution[r] = {\n        width: widthCurrentResolution,\n        height: heightCurrentResolution\n      };\n      scale <<= 1;\n    }\n\n    minWidth = Math.min(minWidth, minWidthCurrentComponent);\n    minHeight = Math.min(minHeight, minHeightCurrentComponent);\n    maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n    maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n    sizePerComponent[c] = {\n      resolutions: sizePerResolution,\n      minWidth: minWidthCurrentComponent,\n      minHeight: minHeightCurrentComponent,\n      maxNumWide: maxNumWideCurrentComponent,\n      maxNumHigh: maxNumHighCurrentComponent\n    };\n  }\n\n  return {\n    components: sizePerComponent,\n    minWidth,\n    minHeight,\n    maxNumWide,\n    maxNumHigh\n  };\n}\n\nfunction buildPackets(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const componentsCount = siz.Csiz;\n\n  for (let c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    const decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n    const resolutions = [];\n    const subbands = [];\n\n    for (let r = 0; r <= decompositionLevelsCount; r++) {\n      const blocksDimensions = getBlocksDimensions(context, component, r);\n      const resolution = {};\n      const scale = 1 << decompositionLevelsCount - r;\n      resolution.trx0 = Math.ceil(component.tcx0 / scale);\n      resolution.try0 = Math.ceil(component.tcy0 / scale);\n      resolution.trx1 = Math.ceil(component.tcx1 / scale);\n      resolution.try1 = Math.ceil(component.tcy1 / scale);\n      resolution.resLevel = r;\n      buildPrecincts(context, resolution, blocksDimensions);\n      resolutions.push(resolution);\n      let subband;\n\n      if (r === 0) {\n        subband = {};\n        subband.type = \"LL\";\n        subband.tbx0 = Math.ceil(component.tcx0 / scale);\n        subband.tby0 = Math.ceil(component.tcy0 / scale);\n        subband.tbx1 = Math.ceil(component.tcx1 / scale);\n        subband.tby1 = Math.ceil(component.tcy1 / scale);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolution.subbands = [subband];\n      } else {\n        const bscale = 1 << decompositionLevelsCount - r + 1;\n        const resolutionSubbands = [];\n        subband = {};\n        subband.type = \"HL\";\n        subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n        subband.tby0 = Math.ceil(component.tcy0 / bscale);\n        subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n        subband.tby1 = Math.ceil(component.tcy1 / bscale);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolutionSubbands.push(subband);\n        subband = {};\n        subband.type = \"LH\";\n        subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n        subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n        subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n        subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolutionSubbands.push(subband);\n        subband = {};\n        subband.type = \"HH\";\n        subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n        subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n        subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n        subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolutionSubbands.push(subband);\n        resolution.subbands = resolutionSubbands;\n      }\n    }\n\n    component.resolutions = resolutions;\n    component.subbands = subbands;\n  }\n\n  const progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n\n  switch (progressionOrder) {\n    case 0:\n      tile.packetsIterator = new LayerResolutionComponentPositionIterator(context);\n      break;\n\n    case 1:\n      tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context);\n      break;\n\n    case 2:\n      tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context);\n      break;\n\n    case 3:\n      tile.packetsIterator = new PositionComponentResolutionLayerIterator(context);\n      break;\n\n    case 4:\n      tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context);\n      break;\n\n    default:\n      throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n  }\n}\n\nfunction parseTilePackets(context, data, offset, dataLength) {\n  let position = 0;\n  let buffer,\n      bufferSize = 0,\n      skipNextBit = false;\n\n  function readBits(count) {\n    while (bufferSize < count) {\n      const b = data[offset + position];\n      position++;\n\n      if (skipNextBit) {\n        buffer = buffer << 7 | b;\n        bufferSize += 7;\n        skipNextBit = false;\n      } else {\n        buffer = buffer << 8 | b;\n        bufferSize += 8;\n      }\n\n      if (b === 0xff) {\n        skipNextBit = true;\n      }\n    }\n\n    bufferSize -= count;\n    return buffer >>> bufferSize & (1 << count) - 1;\n  }\n\n  function skipMarkerIfEqual(value) {\n    if (data[offset + position - 1] === 0xff && data[offset + position] === value) {\n      skipBytes(1);\n      return true;\n    } else if (data[offset + position] === 0xff && data[offset + position + 1] === value) {\n      skipBytes(2);\n      return true;\n    }\n\n    return false;\n  }\n\n  function skipBytes(count) {\n    position += count;\n  }\n\n  function alignToByte() {\n    bufferSize = 0;\n\n    if (skipNextBit) {\n      position++;\n      skipNextBit = false;\n    }\n  }\n\n  function readCodingpasses() {\n    if (readBits(1) === 0) {\n      return 1;\n    }\n\n    if (readBits(1) === 0) {\n      return 2;\n    }\n\n    let value = readBits(2);\n\n    if (value < 3) {\n      return value + 3;\n    }\n\n    value = readBits(5);\n\n    if (value < 31) {\n      return value + 6;\n    }\n\n    value = readBits(7);\n    return value + 37;\n  }\n\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const sopMarkerUsed = context.COD.sopMarkerUsed;\n  const ephMarkerUsed = context.COD.ephMarkerUsed;\n  const packetsIterator = tile.packetsIterator;\n\n  while (position < dataLength) {\n    alignToByte();\n\n    if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n      skipBytes(4);\n    }\n\n    const packet = packetsIterator.nextPacket();\n\n    if (!readBits(1)) {\n      continue;\n    }\n\n    const layerNumber = packet.layerNumber,\n          queue = [];\n    let codeblock;\n\n    for (let i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n      codeblock = packet.codeblocks[i];\n      let precinct = codeblock.precinct;\n      const codeblockColumn = codeblock.cbx - precinct.cbxMin;\n      const codeblockRow = codeblock.cby - precinct.cbyMin;\n      let codeblockIncluded = false;\n      let firstTimeInclusion = false;\n      let valueReady, zeroBitPlanesTree;\n\n      if (codeblock.included !== undefined) {\n        codeblockIncluded = !!readBits(1);\n      } else {\n        precinct = codeblock.precinct;\n        let inclusionTree;\n\n        if (precinct.inclusionTree !== undefined) {\n          inclusionTree = precinct.inclusionTree;\n        } else {\n          const width = precinct.cbxMax - precinct.cbxMin + 1;\n          const height = precinct.cbyMax - precinct.cbyMin + 1;\n          inclusionTree = new InclusionTree(width, height, layerNumber);\n          zeroBitPlanesTree = new TagTree(width, height);\n          precinct.inclusionTree = inclusionTree;\n          precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n\n          for (let l = 0; l < layerNumber; l++) {\n            if (readBits(1) !== 0) {\n              throw new JpxError(\"Invalid tag tree\");\n            }\n          }\n        }\n\n        if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n          while (true) {\n            if (readBits(1)) {\n              valueReady = !inclusionTree.nextLevel();\n\n              if (valueReady) {\n                codeblock.included = true;\n                codeblockIncluded = firstTimeInclusion = true;\n                break;\n              }\n            } else {\n              inclusionTree.incrementValue(layerNumber);\n              break;\n            }\n          }\n        }\n      }\n\n      if (!codeblockIncluded) {\n        continue;\n      }\n\n      if (firstTimeInclusion) {\n        zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n        zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n\n        while (true) {\n          if (readBits(1)) {\n            valueReady = !zeroBitPlanesTree.nextLevel();\n\n            if (valueReady) {\n              break;\n            }\n          } else {\n            zeroBitPlanesTree.incrementValue();\n          }\n        }\n\n        codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n      }\n\n      const codingpasses = readCodingpasses();\n\n      while (readBits(1)) {\n        codeblock.Lblock++;\n      }\n\n      const codingpassesLog2 = (0, _core_utils.log2)(codingpasses);\n      const bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock;\n      const codedDataLength = readBits(bits);\n      queue.push({\n        codeblock,\n        codingpasses,\n        dataLength: codedDataLength\n      });\n    }\n\n    alignToByte();\n\n    if (ephMarkerUsed) {\n      skipMarkerIfEqual(0x92);\n    }\n\n    while (queue.length > 0) {\n      const packetItem = queue.shift();\n      codeblock = packetItem.codeblock;\n\n      if (codeblock.data === undefined) {\n        codeblock.data = [];\n      }\n\n      codeblock.data.push({\n        data,\n        start: offset + position,\n        end: offset + position + packetItem.dataLength,\n        codingpasses: packetItem.codingpasses\n      });\n      position += packetItem.dataLength;\n    }\n  }\n\n  return position;\n}\n\nfunction copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed, resetContextProbabilities) {\n  const x0 = subband.tbx0;\n  const y0 = subband.tby0;\n  const width = subband.tbx1 - subband.tbx0;\n  const codeblocks = subband.codeblocks;\n  const right = subband.type.charAt(0) === \"H\" ? 1 : 0;\n  const bottom = subband.type.charAt(1) === \"H\" ? levelWidth : 0;\n\n  for (let i = 0, ii = codeblocks.length; i < ii; ++i) {\n    const codeblock = codeblocks[i];\n    const blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n    const blockHeight = codeblock.tby1_ - codeblock.tby0_;\n\n    if (blockWidth === 0 || blockHeight === 0) {\n      continue;\n    }\n\n    if (codeblock.data === undefined) {\n      continue;\n    }\n\n    const bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, codeblock.zeroBitPlanes, mb);\n    let currentCodingpassType = 2;\n    const data = codeblock.data;\n    let totalLength = 0,\n        codingpasses = 0;\n    let j, jj, dataItem;\n\n    for (j = 0, jj = data.length; j < jj; j++) {\n      dataItem = data[j];\n      totalLength += dataItem.end - dataItem.start;\n      codingpasses += dataItem.codingpasses;\n    }\n\n    const encodedData = new Uint8Array(totalLength);\n    let position = 0;\n\n    for (j = 0, jj = data.length; j < jj; j++) {\n      dataItem = data[j];\n      const chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n      encodedData.set(chunk, position);\n      position += chunk.length;\n    }\n\n    const decoder = new _arithmetic_decoder.ArithmeticDecoder(encodedData, 0, totalLength);\n    bitModel.setDecoder(decoder);\n\n    for (j = 0; j < codingpasses; j++) {\n      switch (currentCodingpassType) {\n        case 0:\n          bitModel.runSignificancePropagationPass();\n          break;\n\n        case 1:\n          bitModel.runMagnitudeRefinementPass();\n          break;\n\n        case 2:\n          bitModel.runCleanupPass();\n\n          if (segmentationSymbolUsed) {\n            bitModel.checkSegmentationSymbol();\n          }\n\n          break;\n      }\n\n      if (resetContextProbabilities) {\n        bitModel.reset();\n      }\n\n      currentCodingpassType = (currentCodingpassType + 1) % 3;\n    }\n\n    let offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n    const sign = bitModel.coefficentsSign;\n    const magnitude = bitModel.coefficentsMagnitude;\n    const bitsDecoded = bitModel.bitsDecoded;\n    const magnitudeCorrection = reversible ? 0 : 0.5;\n    let k, n, nb;\n    position = 0;\n    const interleave = subband.type !== \"LL\";\n\n    for (j = 0; j < blockHeight; j++) {\n      const row = offset / width | 0;\n      const levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n\n      for (k = 0; k < blockWidth; k++) {\n        n = magnitude[position];\n\n        if (n !== 0) {\n          n = (n + magnitudeCorrection) * delta;\n\n          if (sign[position] !== 0) {\n            n = -n;\n          }\n\n          nb = bitsDecoded[position];\n          const pos = interleave ? levelOffset + (offset << 1) : offset;\n\n          if (reversible && nb >= mb) {\n            coefficients[pos] = n;\n          } else {\n            coefficients[pos] = n * (1 << mb - nb);\n          }\n        }\n\n        offset++;\n        position++;\n      }\n\n      offset += width - blockWidth;\n    }\n  }\n}\n\nfunction transformTile(context, tile, c) {\n  const component = tile.components[c];\n  const codingStyleParameters = component.codingStyleParameters;\n  const quantizationParameters = component.quantizationParameters;\n  const decompositionLevelsCount = codingStyleParameters.decompositionLevelsCount;\n  const spqcds = quantizationParameters.SPqcds;\n  const scalarExpounded = quantizationParameters.scalarExpounded;\n  const guardBits = quantizationParameters.guardBits;\n  const segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n  const resetContextProbabilities = codingStyleParameters.resetContextProbabilities;\n  const precision = context.components[c].precision;\n  const reversible = codingStyleParameters.reversibleTransformation;\n  const transform = reversible ? new ReversibleTransform() : new IrreversibleTransform();\n  const subbandCoefficients = [];\n  let b = 0;\n\n  for (let i = 0; i <= decompositionLevelsCount; i++) {\n    const resolution = component.resolutions[i];\n    const width = resolution.trx1 - resolution.trx0;\n    const height = resolution.try1 - resolution.try0;\n    const coefficients = new Float32Array(width * height);\n\n    for (let j = 0, jj = resolution.subbands.length; j < jj; j++) {\n      let mu, epsilon;\n\n      if (!scalarExpounded) {\n        mu = spqcds[0].mu;\n        epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n      } else {\n        mu = spqcds[b].mu;\n        epsilon = spqcds[b].epsilon;\n        b++;\n      }\n\n      const subband = resolution.subbands[j];\n      const gainLog2 = SubbandsGainLog2[subband.type];\n      const delta = reversible ? 1 : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n      const mb = guardBits + epsilon - 1;\n      copyCoefficients(coefficients, width, height, subband, delta, mb, reversible, segmentationSymbolUsed, resetContextProbabilities);\n    }\n\n    subbandCoefficients.push({\n      width,\n      height,\n      items: coefficients\n    });\n  }\n\n  const result = transform.calculate(subbandCoefficients, component.tcx0, component.tcy0);\n  return {\n    left: component.tcx0,\n    top: component.tcy0,\n    width: result.width,\n    height: result.height,\n    items: result.items\n  };\n}\n\nfunction transformComponents(context) {\n  const siz = context.SIZ;\n  const components = context.components;\n  const componentsCount = siz.Csiz;\n  const resultImages = [];\n\n  for (let i = 0, ii = context.tiles.length; i < ii; i++) {\n    const tile = context.tiles[i];\n    const transformedTiles = [];\n\n    for (let c = 0; c < componentsCount; c++) {\n      transformedTiles[c] = transformTile(context, tile, c);\n    }\n\n    const tile0 = transformedTiles[0];\n    const out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n    const result = {\n      left: tile0.left,\n      top: tile0.top,\n      width: tile0.width,\n      height: tile0.height,\n      items: out\n    };\n    let shift, offset;\n    let pos = 0,\n        j,\n        jj,\n        y0,\n        y1,\n        y2;\n\n    if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n      const fourComponents = componentsCount === 4;\n      const y0items = transformedTiles[0].items;\n      const y1items = transformedTiles[1].items;\n      const y2items = transformedTiles[2].items;\n      const y3items = fourComponents ? transformedTiles[3].items : null;\n      shift = components[0].precision - 8;\n      offset = (128 << shift) + 0.5;\n      const component0 = tile.components[0];\n      const alpha01 = componentsCount - 3;\n      jj = y0items.length;\n\n      if (!component0.codingStyleParameters.reversibleTransformation) {\n        for (j = 0; j < jj; j++, pos += alpha01) {\n          y0 = y0items[j] + offset;\n          y1 = y1items[j];\n          y2 = y2items[j];\n          out[pos++] = y0 + 1.402 * y2 >> shift;\n          out[pos++] = y0 - 0.34413 * y1 - 0.71414 * y2 >> shift;\n          out[pos++] = y0 + 1.772 * y1 >> shift;\n        }\n      } else {\n        for (j = 0; j < jj; j++, pos += alpha01) {\n          y0 = y0items[j] + offset;\n          y1 = y1items[j];\n          y2 = y2items[j];\n          const g = y0 - (y2 + y1 >> 2);\n          out[pos++] = g + y2 >> shift;\n          out[pos++] = g >> shift;\n          out[pos++] = g + y1 >> shift;\n        }\n      }\n\n      if (fourComponents) {\n        for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n          out[pos] = y3items[j] + offset >> shift;\n        }\n      }\n    } else {\n      for (let c = 0; c < componentsCount; c++) {\n        const items = transformedTiles[c].items;\n        shift = components[c].precision - 8;\n        offset = (128 << shift) + 0.5;\n\n        for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n          out[pos] = items[j] + offset >> shift;\n          pos += componentsCount;\n        }\n      }\n    }\n\n    resultImages.push(result);\n  }\n\n  return resultImages;\n}\n\nfunction initializeTile(context, tileIndex) {\n  const siz = context.SIZ;\n  const componentsCount = siz.Csiz;\n  const tile = context.tiles[tileIndex];\n\n  for (let c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    const qcdOrQcc = context.currentTile.QCC[c] !== undefined ? context.currentTile.QCC[c] : context.currentTile.QCD;\n    component.quantizationParameters = qcdOrQcc;\n    const codOrCoc = context.currentTile.COC[c] !== undefined ? context.currentTile.COC[c] : context.currentTile.COD;\n    component.codingStyleParameters = codOrCoc;\n  }\n\n  tile.codingStyleDefaultParameters = context.currentTile.COD;\n}\n\nclass TagTree {\n  constructor(width, height) {\n    const levelsLength = (0, _core_utils.log2)(Math.max(width, height)) + 1;\n    this.levels = [];\n\n    for (let i = 0; i < levelsLength; i++) {\n      const level = {\n        width,\n        height,\n        items: []\n      };\n      this.levels.push(level);\n      width = Math.ceil(width / 2);\n      height = Math.ceil(height / 2);\n    }\n  }\n\n  reset(i, j) {\n    let currentLevel = 0,\n        value = 0,\n        level;\n\n    while (currentLevel < this.levels.length) {\n      level = this.levels[currentLevel];\n      const index = i + j * level.width;\n\n      if (level.items[index] !== undefined) {\n        value = level.items[index];\n        break;\n      }\n\n      level.index = index;\n      i >>= 1;\n      j >>= 1;\n      currentLevel++;\n    }\n\n    currentLevel--;\n    level = this.levels[currentLevel];\n    level.items[level.index] = value;\n    this.currentLevel = currentLevel;\n    delete this.value;\n  }\n\n  incrementValue() {\n    const level = this.levels[this.currentLevel];\n    level.items[level.index]++;\n  }\n\n  nextLevel() {\n    let currentLevel = this.currentLevel;\n    let level = this.levels[currentLevel];\n    const value = level.items[level.index];\n    currentLevel--;\n\n    if (currentLevel < 0) {\n      this.value = value;\n      return false;\n    }\n\n    this.currentLevel = currentLevel;\n    level = this.levels[currentLevel];\n    level.items[level.index] = value;\n    return true;\n  }\n\n}\n\nclass InclusionTree {\n  constructor(width, height, defaultValue) {\n    const levelsLength = (0, _core_utils.log2)(Math.max(width, height)) + 1;\n    this.levels = [];\n\n    for (let i = 0; i < levelsLength; i++) {\n      const items = new Uint8Array(width * height);\n\n      for (let j = 0, jj = items.length; j < jj; j++) {\n        items[j] = defaultValue;\n      }\n\n      const level = {\n        width,\n        height,\n        items\n      };\n      this.levels.push(level);\n      width = Math.ceil(width / 2);\n      height = Math.ceil(height / 2);\n    }\n  }\n\n  reset(i, j, stopValue) {\n    let currentLevel = 0;\n\n    while (currentLevel < this.levels.length) {\n      const level = this.levels[currentLevel];\n      const index = i + j * level.width;\n      level.index = index;\n      const value = level.items[index];\n\n      if (value === 0xff) {\n        break;\n      }\n\n      if (value > stopValue) {\n        this.currentLevel = currentLevel;\n        this.propagateValues();\n        return false;\n      }\n\n      i >>= 1;\n      j >>= 1;\n      currentLevel++;\n    }\n\n    this.currentLevel = currentLevel - 1;\n    return true;\n  }\n\n  incrementValue(stopValue) {\n    const level = this.levels[this.currentLevel];\n    level.items[level.index] = stopValue + 1;\n    this.propagateValues();\n  }\n\n  propagateValues() {\n    let levelIndex = this.currentLevel;\n    let level = this.levels[levelIndex];\n    const currentValue = level.items[level.index];\n\n    while (--levelIndex >= 0) {\n      level = this.levels[levelIndex];\n      level.items[level.index] = currentValue;\n    }\n  }\n\n  nextLevel() {\n    let currentLevel = this.currentLevel;\n    let level = this.levels[currentLevel];\n    const value = level.items[level.index];\n    level.items[level.index] = 0xff;\n    currentLevel--;\n\n    if (currentLevel < 0) {\n      return false;\n    }\n\n    this.currentLevel = currentLevel;\n    level = this.levels[currentLevel];\n    level.items[level.index] = value;\n    return true;\n  }\n\n}\n\nconst BitModel = function BitModelClosure() {\n  const UNIFORM_CONTEXT = 17;\n  const RUNLENGTH_CONTEXT = 18;\n  const LLAndLHContextsLabel = new Uint8Array([0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8]);\n  const HLContextLabel = new Uint8Array([0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8]);\n  const HHContextLabel = new Uint8Array([0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8]);\n\n  class BitModel {\n    constructor(width, height, subband, zeroBitPlanes, mb) {\n      this.width = width;\n      this.height = height;\n      let contextLabelTable;\n\n      if (subband === \"HH\") {\n        contextLabelTable = HHContextLabel;\n      } else if (subband === \"HL\") {\n        contextLabelTable = HLContextLabel;\n      } else {\n        contextLabelTable = LLAndLHContextsLabel;\n      }\n\n      this.contextLabelTable = contextLabelTable;\n      const coefficientCount = width * height;\n      this.neighborsSignificance = new Uint8Array(coefficientCount);\n      this.coefficentsSign = new Uint8Array(coefficientCount);\n      let coefficentsMagnitude;\n\n      if (mb > 14) {\n        coefficentsMagnitude = new Uint32Array(coefficientCount);\n      } else if (mb > 6) {\n        coefficentsMagnitude = new Uint16Array(coefficientCount);\n      } else {\n        coefficentsMagnitude = new Uint8Array(coefficientCount);\n      }\n\n      this.coefficentsMagnitude = coefficentsMagnitude;\n      this.processingFlags = new Uint8Array(coefficientCount);\n      const bitsDecoded = new Uint8Array(coefficientCount);\n\n      if (zeroBitPlanes !== 0) {\n        for (let i = 0; i < coefficientCount; i++) {\n          bitsDecoded[i] = zeroBitPlanes;\n        }\n      }\n\n      this.bitsDecoded = bitsDecoded;\n      this.reset();\n    }\n\n    setDecoder(decoder) {\n      this.decoder = decoder;\n    }\n\n    reset() {\n      this.contexts = new Int8Array(19);\n      this.contexts[0] = 4 << 1 | 0;\n      this.contexts[UNIFORM_CONTEXT] = 46 << 1 | 0;\n      this.contexts[RUNLENGTH_CONTEXT] = 3 << 1 | 0;\n    }\n\n    setNeighborsSignificance(row, column, index) {\n      const neighborsSignificance = this.neighborsSignificance;\n      const width = this.width,\n            height = this.height;\n      const left = column > 0;\n      const right = column + 1 < width;\n      let i;\n\n      if (row > 0) {\n        i = index - width;\n\n        if (left) {\n          neighborsSignificance[i - 1] += 0x10;\n        }\n\n        if (right) {\n          neighborsSignificance[i + 1] += 0x10;\n        }\n\n        neighborsSignificance[i] += 0x04;\n      }\n\n      if (row + 1 < height) {\n        i = index + width;\n\n        if (left) {\n          neighborsSignificance[i - 1] += 0x10;\n        }\n\n        if (right) {\n          neighborsSignificance[i + 1] += 0x10;\n        }\n\n        neighborsSignificance[i] += 0x04;\n      }\n\n      if (left) {\n        neighborsSignificance[index - 1] += 0x01;\n      }\n\n      if (right) {\n        neighborsSignificance[index + 1] += 0x01;\n      }\n\n      neighborsSignificance[index] |= 0x80;\n    }\n\n    runSignificancePropagationPass() {\n      const decoder = this.decoder;\n      const width = this.width,\n            height = this.height;\n      const coefficentsMagnitude = this.coefficentsMagnitude;\n      const coefficentsSign = this.coefficentsSign;\n      const neighborsSignificance = this.neighborsSignificance;\n      const processingFlags = this.processingFlags;\n      const contexts = this.contexts;\n      const labels = this.contextLabelTable;\n      const bitsDecoded = this.bitsDecoded;\n      const processedInverseMask = ~1;\n      const processedMask = 1;\n      const firstMagnitudeBitMask = 2;\n\n      for (let i0 = 0; i0 < height; i0 += 4) {\n        for (let j = 0; j < width; j++) {\n          let index = i0 * width + j;\n\n          for (let i1 = 0; i1 < 4; i1++, index += width) {\n            const i = i0 + i1;\n\n            if (i >= height) {\n              break;\n            }\n\n            processingFlags[index] &= processedInverseMask;\n\n            if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n              continue;\n            }\n\n            const contextLabel = labels[neighborsSignificance[index]];\n            const decision = decoder.readBit(contexts, contextLabel);\n\n            if (decision) {\n              const sign = this.decodeSignBit(i, j, index);\n              coefficentsSign[index] = sign;\n              coefficentsMagnitude[index] = 1;\n              this.setNeighborsSignificance(i, j, index);\n              processingFlags[index] |= firstMagnitudeBitMask;\n            }\n\n            bitsDecoded[index]++;\n            processingFlags[index] |= processedMask;\n          }\n        }\n      }\n    }\n\n    decodeSignBit(row, column, index) {\n      const width = this.width,\n            height = this.height;\n      const coefficentsMagnitude = this.coefficentsMagnitude;\n      const coefficentsSign = this.coefficentsSign;\n      let contribution, sign0, sign1, significance1;\n      let contextLabel, decoded;\n      significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n\n      if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n        sign1 = coefficentsSign[index + 1];\n\n        if (significance1) {\n          sign0 = coefficentsSign[index - 1];\n          contribution = 1 - sign1 - sign0;\n        } else {\n          contribution = 1 - sign1 - sign1;\n        }\n      } else if (significance1) {\n        sign0 = coefficentsSign[index - 1];\n        contribution = 1 - sign0 - sign0;\n      } else {\n        contribution = 0;\n      }\n\n      const horizontalContribution = 3 * contribution;\n      significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n\n      if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n        sign1 = coefficentsSign[index + width];\n\n        if (significance1) {\n          sign0 = coefficentsSign[index - width];\n          contribution = 1 - sign1 - sign0 + horizontalContribution;\n        } else {\n          contribution = 1 - sign1 - sign1 + horizontalContribution;\n        }\n      } else if (significance1) {\n        sign0 = coefficentsSign[index - width];\n        contribution = 1 - sign0 - sign0 + horizontalContribution;\n      } else {\n        contribution = horizontalContribution;\n      }\n\n      if (contribution >= 0) {\n        contextLabel = 9 + contribution;\n        decoded = this.decoder.readBit(this.contexts, contextLabel);\n      } else {\n        contextLabel = 9 - contribution;\n        decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n      }\n\n      return decoded;\n    }\n\n    runMagnitudeRefinementPass() {\n      const decoder = this.decoder;\n      const width = this.width,\n            height = this.height;\n      const coefficentsMagnitude = this.coefficentsMagnitude;\n      const neighborsSignificance = this.neighborsSignificance;\n      const contexts = this.contexts;\n      const bitsDecoded = this.bitsDecoded;\n      const processingFlags = this.processingFlags;\n      const processedMask = 1;\n      const firstMagnitudeBitMask = 2;\n      const length = width * height;\n      const width4 = width * 4;\n\n      for (let index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n        indexNext = Math.min(length, index0 + width4);\n\n        for (let j = 0; j < width; j++) {\n          for (let index = index0 + j; index < indexNext; index += width) {\n            if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n              continue;\n            }\n\n            let contextLabel = 16;\n\n            if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n              processingFlags[index] ^= firstMagnitudeBitMask;\n              const significance = neighborsSignificance[index] & 127;\n              contextLabel = significance === 0 ? 15 : 14;\n            }\n\n            const bit = decoder.readBit(contexts, contextLabel);\n            coefficentsMagnitude[index] = coefficentsMagnitude[index] << 1 | bit;\n            bitsDecoded[index]++;\n            processingFlags[index] |= processedMask;\n          }\n        }\n      }\n    }\n\n    runCleanupPass() {\n      const decoder = this.decoder;\n      const width = this.width,\n            height = this.height;\n      const neighborsSignificance = this.neighborsSignificance;\n      const coefficentsMagnitude = this.coefficentsMagnitude;\n      const coefficentsSign = this.coefficentsSign;\n      const contexts = this.contexts;\n      const labels = this.contextLabelTable;\n      const bitsDecoded = this.bitsDecoded;\n      const processingFlags = this.processingFlags;\n      const processedMask = 1;\n      const firstMagnitudeBitMask = 2;\n      const oneRowDown = width;\n      const twoRowsDown = width * 2;\n      const threeRowsDown = width * 3;\n      let iNext;\n\n      for (let i0 = 0; i0 < height; i0 = iNext) {\n        iNext = Math.min(i0 + 4, height);\n        const indexBase = i0 * width;\n        const checkAllEmpty = i0 + 3 < height;\n\n        for (let j = 0; j < width; j++) {\n          const index0 = indexBase + j;\n          const allEmpty = checkAllEmpty && processingFlags[index0] === 0 && processingFlags[index0 + oneRowDown] === 0 && processingFlags[index0 + twoRowsDown] === 0 && processingFlags[index0 + threeRowsDown] === 0 && neighborsSignificance[index0] === 0 && neighborsSignificance[index0 + oneRowDown] === 0 && neighborsSignificance[index0 + twoRowsDown] === 0 && neighborsSignificance[index0 + threeRowsDown] === 0;\n          let i1 = 0,\n              index = index0;\n          let i = i0,\n              sign;\n\n          if (allEmpty) {\n            const hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT);\n\n            if (!hasSignificantCoefficent) {\n              bitsDecoded[index0]++;\n              bitsDecoded[index0 + oneRowDown]++;\n              bitsDecoded[index0 + twoRowsDown]++;\n              bitsDecoded[index0 + threeRowsDown]++;\n              continue;\n            }\n\n            i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n\n            if (i1 !== 0) {\n              i = i0 + i1;\n              index += i1 * width;\n            }\n\n            sign = this.decodeSignBit(i, j, index);\n            coefficentsSign[index] = sign;\n            coefficentsMagnitude[index] = 1;\n            this.setNeighborsSignificance(i, j, index);\n            processingFlags[index] |= firstMagnitudeBitMask;\n            index = index0;\n\n            for (let i2 = i0; i2 <= i; i2++, index += width) {\n              bitsDecoded[index]++;\n            }\n\n            i1++;\n          }\n\n          for (i = i0 + i1; i < iNext; i++, index += width) {\n            if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n              continue;\n            }\n\n            const contextLabel = labels[neighborsSignificance[index]];\n            const decision = decoder.readBit(contexts, contextLabel);\n\n            if (decision === 1) {\n              sign = this.decodeSignBit(i, j, index);\n              coefficentsSign[index] = sign;\n              coefficentsMagnitude[index] = 1;\n              this.setNeighborsSignificance(i, j, index);\n              processingFlags[index] |= firstMagnitudeBitMask;\n            }\n\n            bitsDecoded[index]++;\n          }\n        }\n      }\n    }\n\n    checkSegmentationSymbol() {\n      const decoder = this.decoder;\n      const contexts = this.contexts;\n      const symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n\n      if (symbol !== 0xa) {\n        throw new JpxError(\"Invalid segmentation symbol\");\n      }\n    }\n\n  }\n\n  return BitModel;\n}();\n\nclass Transform {\n  constructor() {\n    if (this.constructor === Transform) {\n      (0, _util.unreachable)(\"Cannot initialize Transform.\");\n    }\n  }\n\n  calculate(subbands, u0, v0) {\n    let ll = subbands[0];\n\n    for (let i = 1, ii = subbands.length; i < ii; i++) {\n      ll = this.iterate(ll, subbands[i], u0, v0);\n    }\n\n    return ll;\n  }\n\n  extend(buffer, offset, size) {\n    let i1 = offset - 1,\n        j1 = offset + 1;\n    let i2 = offset + size - 2,\n        j2 = offset + size;\n    buffer[i1--] = buffer[j1++];\n    buffer[j2++] = buffer[i2--];\n    buffer[i1--] = buffer[j1++];\n    buffer[j2++] = buffer[i2--];\n    buffer[i1--] = buffer[j1++];\n    buffer[j2++] = buffer[i2--];\n    buffer[i1] = buffer[j1];\n    buffer[j2] = buffer[i2];\n  }\n\n  filter(x, offset, length) {\n    (0, _util.unreachable)(\"Abstract method `filter` called\");\n  }\n\n  iterate(ll, hl_lh_hh, u0, v0) {\n    const llWidth = ll.width,\n          llHeight = ll.height;\n    let llItems = ll.items;\n    const width = hl_lh_hh.width;\n    const height = hl_lh_hh.height;\n    const items = hl_lh_hh.items;\n    let i, j, k, l, u, v;\n\n    for (k = 0, i = 0; i < llHeight; i++) {\n      l = i * 2 * width;\n\n      for (j = 0; j < llWidth; j++, k++, l += 2) {\n        items[l] = llItems[k];\n      }\n    }\n\n    llItems = ll.items = null;\n    const bufferPadding = 4;\n    const rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n    if (width === 1) {\n      if ((u0 & 1) !== 0) {\n        for (v = 0, k = 0; v < height; v++, k += width) {\n          items[k] *= 0.5;\n        }\n      }\n    } else {\n      for (v = 0, k = 0; v < height; v++, k += width) {\n        rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n        this.extend(rowBuffer, bufferPadding, width);\n        this.filter(rowBuffer, bufferPadding, width);\n        items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n      }\n    }\n\n    let numBuffers = 16;\n    const colBuffers = [];\n\n    for (i = 0; i < numBuffers; i++) {\n      colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n    }\n\n    let b,\n        currentBuffer = 0;\n    ll = bufferPadding + height;\n\n    if (height === 1) {\n      if ((v0 & 1) !== 0) {\n        for (u = 0; u < width; u++) {\n          items[u] *= 0.5;\n        }\n      }\n    } else {\n      for (u = 0; u < width; u++) {\n        if (currentBuffer === 0) {\n          numBuffers = Math.min(width - u, numBuffers);\n\n          for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n            for (b = 0; b < numBuffers; b++) {\n              colBuffers[b][l] = items[k + b];\n            }\n          }\n\n          currentBuffer = numBuffers;\n        }\n\n        currentBuffer--;\n        const buffer = colBuffers[currentBuffer];\n        this.extend(buffer, bufferPadding, height);\n        this.filter(buffer, bufferPadding, height);\n\n        if (currentBuffer === 0) {\n          k = u - numBuffers + 1;\n\n          for (l = bufferPadding; l < ll; k += width, l++) {\n            for (b = 0; b < numBuffers; b++) {\n              items[k + b] = colBuffers[b][l];\n            }\n          }\n        }\n      }\n    }\n\n    return {\n      width,\n      height,\n      items\n    };\n  }\n\n}\n\nclass IrreversibleTransform extends Transform {\n  filter(x, offset, length) {\n    const len = length >> 1;\n    offset |= 0;\n    let j, n, current, next;\n    const alpha = -1.586134342059924;\n    const beta = -0.052980118572961;\n    const gamma = 0.882911075530934;\n    const delta = 0.443506852043971;\n    const K = 1.230174104914001;\n    const K_ = 1 / K;\n    j = offset - 3;\n\n    for (n = len + 4; n--; j += 2) {\n      x[j] *= K_;\n    }\n\n    j = offset - 2;\n    current = delta * x[j - 1];\n\n    for (n = len + 3; n--; j += 2) {\n      next = delta * x[j + 1];\n      x[j] = K * x[j] - current - next;\n\n      if (n--) {\n        j += 2;\n        current = delta * x[j + 1];\n        x[j] = K * x[j] - current - next;\n      } else {\n        break;\n      }\n    }\n\n    j = offset - 1;\n    current = gamma * x[j - 1];\n\n    for (n = len + 2; n--; j += 2) {\n      next = gamma * x[j + 1];\n      x[j] -= current + next;\n\n      if (n--) {\n        j += 2;\n        current = gamma * x[j + 1];\n        x[j] -= current + next;\n      } else {\n        break;\n      }\n    }\n\n    j = offset;\n    current = beta * x[j - 1];\n\n    for (n = len + 1; n--; j += 2) {\n      next = beta * x[j + 1];\n      x[j] -= current + next;\n\n      if (n--) {\n        j += 2;\n        current = beta * x[j + 1];\n        x[j] -= current + next;\n      } else {\n        break;\n      }\n    }\n\n    if (len !== 0) {\n      j = offset + 1;\n      current = alpha * x[j - 1];\n\n      for (n = len; n--; j += 2) {\n        next = alpha * x[j + 1];\n        x[j] -= current + next;\n\n        if (n--) {\n          j += 2;\n          current = alpha * x[j + 1];\n          x[j] -= current + next;\n        } else {\n          break;\n        }\n      }\n    }\n  }\n\n}\n\nclass ReversibleTransform extends Transform {\n  filter(x, offset, length) {\n    const len = length >> 1;\n    offset |= 0;\n    let j, n;\n\n    for (j = offset, n = len + 1; n--; j += 2) {\n      x[j] -= x[j - 1] + x[j + 1] + 2 >> 2;\n    }\n\n    for (j = offset + 1, n = len; n--; j += 2) {\n      x[j] += x[j - 1] + x[j + 1] >> 1;\n    }\n  }\n\n}\n\n/***/ }),\n/* 156 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.LZWStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(144);\n\nclass LZWStream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength, earlyChange) {\n    super(maybeLength);\n    this.str = str;\n    this.dict = str.dict;\n    this.cachedData = 0;\n    this.bitsCached = 0;\n    const maxLzwDictionarySize = 4096;\n    const lzwState = {\n      earlyChange,\n      codeLength: 9,\n      nextCode: 258,\n      dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n      dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n      dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n      currentSequence: new Uint8Array(maxLzwDictionarySize),\n      currentSequenceLength: 0\n    };\n\n    for (let i = 0; i < 256; ++i) {\n      lzwState.dictionaryValues[i] = i;\n      lzwState.dictionaryLengths[i] = 1;\n    }\n\n    this.lzwState = lzwState;\n  }\n\n  readBits(n) {\n    let bitsCached = this.bitsCached;\n    let cachedData = this.cachedData;\n\n    while (bitsCached < n) {\n      const c = this.str.getByte();\n\n      if (c === -1) {\n        this.eof = true;\n        return null;\n      }\n\n      cachedData = cachedData << 8 | c;\n      bitsCached += 8;\n    }\n\n    this.bitsCached = bitsCached -= n;\n    this.cachedData = cachedData;\n    this.lastCode = null;\n    return cachedData >>> bitsCached & (1 << n) - 1;\n  }\n\n  readBlock() {\n    const blockSize = 512,\n          decodedSizeDelta = blockSize;\n    let estimatedDecodedSize = blockSize * 2;\n    let i, j, q;\n    const lzwState = this.lzwState;\n\n    if (!lzwState) {\n      return;\n    }\n\n    const earlyChange = lzwState.earlyChange;\n    let nextCode = lzwState.nextCode;\n    const dictionaryValues = lzwState.dictionaryValues;\n    const dictionaryLengths = lzwState.dictionaryLengths;\n    const dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n    let codeLength = lzwState.codeLength;\n    let prevCode = lzwState.prevCode;\n    const currentSequence = lzwState.currentSequence;\n    let currentSequenceLength = lzwState.currentSequenceLength;\n    let decodedLength = 0;\n    let currentBufferLength = this.bufferLength;\n    let buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n    for (i = 0; i < blockSize; i++) {\n      const code = this.readBits(codeLength);\n      const hasPrev = currentSequenceLength > 0;\n\n      if (code < 256) {\n        currentSequence[0] = code;\n        currentSequenceLength = 1;\n      } else if (code >= 258) {\n        if (code < nextCode) {\n          currentSequenceLength = dictionaryLengths[code];\n\n          for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n            currentSequence[j] = dictionaryValues[q];\n            q = dictionaryPrevCodes[q];\n          }\n        } else {\n          currentSequence[currentSequenceLength++] = currentSequence[0];\n        }\n      } else if (code === 256) {\n        codeLength = 9;\n        nextCode = 258;\n        currentSequenceLength = 0;\n        continue;\n      } else {\n        this.eof = true;\n        delete this.lzwState;\n        break;\n      }\n\n      if (hasPrev) {\n        dictionaryPrevCodes[nextCode] = prevCode;\n        dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n        dictionaryValues[nextCode] = currentSequence[0];\n        nextCode++;\n        codeLength = nextCode + earlyChange & nextCode + earlyChange - 1 ? codeLength : Math.min(Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1, 12) | 0;\n      }\n\n      prevCode = code;\n      decodedLength += currentSequenceLength;\n\n      if (estimatedDecodedSize < decodedLength) {\n        do {\n          estimatedDecodedSize += decodedSizeDelta;\n        } while (estimatedDecodedSize < decodedLength);\n\n        buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n      }\n\n      for (j = 0; j < currentSequenceLength; j++) {\n        buffer[currentBufferLength++] = currentSequence[j];\n      }\n    }\n\n    lzwState.nextCode = nextCode;\n    lzwState.codeLength = codeLength;\n    lzwState.prevCode = prevCode;\n    lzwState.currentSequenceLength = currentSequenceLength;\n    this.bufferLength = currentBufferLength;\n  }\n\n}\n\nexports.LZWStream = LZWStream;\n\n/***/ }),\n/* 157 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PredictorStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(144);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass PredictorStream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength, params) {\n    super(maybeLength);\n\n    if (!(params instanceof _primitives.Dict)) {\n      return str;\n    }\n\n    const predictor = this.predictor = params.get(\"Predictor\") || 1;\n\n    if (predictor <= 1) {\n      return str;\n    }\n\n    if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n      throw new _util.FormatError(`Unsupported predictor: ${predictor}`);\n    }\n\n    if (predictor === 2) {\n      this.readBlock = this.readBlockTiff;\n    } else {\n      this.readBlock = this.readBlockPng;\n    }\n\n    this.str = str;\n    this.dict = str.dict;\n    const colors = this.colors = params.get(\"Colors\") || 1;\n    const bits = this.bits = params.get(\"BPC\", \"BitsPerComponent\") || 8;\n    const columns = this.columns = params.get(\"Columns\") || 1;\n    this.pixBytes = colors * bits + 7 >> 3;\n    this.rowBytes = columns * colors * bits + 7 >> 3;\n    return this;\n  }\n\n  readBlockTiff() {\n    const rowBytes = this.rowBytes;\n    const bufferLength = this.bufferLength;\n    const buffer = this.ensureBuffer(bufferLength + rowBytes);\n    const bits = this.bits;\n    const colors = this.colors;\n    const rawBytes = this.str.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n\n    if (this.eof) {\n      return;\n    }\n\n    let inbuf = 0,\n        outbuf = 0;\n    let inbits = 0,\n        outbits = 0;\n    let pos = bufferLength;\n    let i;\n\n    if (bits === 1 && colors === 1) {\n      for (i = 0; i < rowBytes; ++i) {\n        let c = rawBytes[i] ^ inbuf;\n        c ^= c >> 1;\n        c ^= c >> 2;\n        c ^= c >> 4;\n        inbuf = (c & 1) << 7;\n        buffer[pos++] = c;\n      }\n    } else if (bits === 8) {\n      for (i = 0; i < colors; ++i) {\n        buffer[pos++] = rawBytes[i];\n      }\n\n      for (; i < rowBytes; ++i) {\n        buffer[pos] = buffer[pos - colors] + rawBytes[i];\n        pos++;\n      }\n    } else if (bits === 16) {\n      const bytesPerPixel = colors * 2;\n\n      for (i = 0; i < bytesPerPixel; ++i) {\n        buffer[pos++] = rawBytes[i];\n      }\n\n      for (; i < rowBytes; i += 2) {\n        const sum = ((rawBytes[i] & 0xff) << 8) + (rawBytes[i + 1] & 0xff) + ((buffer[pos - bytesPerPixel] & 0xff) << 8) + (buffer[pos - bytesPerPixel + 1] & 0xff);\n        buffer[pos++] = sum >> 8 & 0xff;\n        buffer[pos++] = sum & 0xff;\n      }\n    } else {\n      const compArray = new Uint8Array(colors + 1);\n      const bitMask = (1 << bits) - 1;\n      let j = 0,\n          k = bufferLength;\n      const columns = this.columns;\n\n      for (i = 0; i < columns; ++i) {\n        for (let kk = 0; kk < colors; ++kk) {\n          if (inbits < bits) {\n            inbuf = inbuf << 8 | rawBytes[j++] & 0xff;\n            inbits += 8;\n          }\n\n          compArray[kk] = compArray[kk] + (inbuf >> inbits - bits) & bitMask;\n          inbits -= bits;\n          outbuf = outbuf << bits | compArray[kk];\n          outbits += bits;\n\n          if (outbits >= 8) {\n            buffer[k++] = outbuf >> outbits - 8 & 0xff;\n            outbits -= 8;\n          }\n        }\n      }\n\n      if (outbits > 0) {\n        buffer[k++] = (outbuf << 8 - outbits) + (inbuf & (1 << 8 - outbits) - 1);\n      }\n    }\n\n    this.bufferLength += rowBytes;\n  }\n\n  readBlockPng() {\n    const rowBytes = this.rowBytes;\n    const pixBytes = this.pixBytes;\n    const predictor = this.str.getByte();\n    const rawBytes = this.str.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n\n    if (this.eof) {\n      return;\n    }\n\n    const bufferLength = this.bufferLength;\n    const buffer = this.ensureBuffer(bufferLength + rowBytes);\n    let prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n\n    if (prevRow.length === 0) {\n      prevRow = new Uint8Array(rowBytes);\n    }\n\n    let i,\n        j = bufferLength,\n        up,\n        c;\n\n    switch (predictor) {\n      case 0:\n        for (i = 0; i < rowBytes; ++i) {\n          buffer[j++] = rawBytes[i];\n        }\n\n        break;\n\n      case 1:\n        for (i = 0; i < pixBytes; ++i) {\n          buffer[j++] = rawBytes[i];\n        }\n\n        for (; i < rowBytes; ++i) {\n          buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xff;\n          j++;\n        }\n\n        break;\n\n      case 2:\n        for (i = 0; i < rowBytes; ++i) {\n          buffer[j++] = prevRow[i] + rawBytes[i] & 0xff;\n        }\n\n        break;\n\n      case 3:\n        for (i = 0; i < pixBytes; ++i) {\n          buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n        }\n\n        for (; i < rowBytes; ++i) {\n          buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xff;\n          j++;\n        }\n\n        break;\n\n      case 4:\n        for (i = 0; i < pixBytes; ++i) {\n          up = prevRow[i];\n          c = rawBytes[i];\n          buffer[j++] = up + c;\n        }\n\n        for (; i < rowBytes; ++i) {\n          up = prevRow[i];\n          const upLeft = prevRow[i - pixBytes];\n          const left = buffer[j - pixBytes];\n          const p = left + up - upLeft;\n          let pa = p - left;\n\n          if (pa < 0) {\n            pa = -pa;\n          }\n\n          let pb = p - up;\n\n          if (pb < 0) {\n            pb = -pb;\n          }\n\n          let pc = p - upLeft;\n\n          if (pc < 0) {\n            pc = -pc;\n          }\n\n          c = rawBytes[i];\n\n          if (pa <= pb && pa <= pc) {\n            buffer[j++] = left + c;\n          } else if (pb <= pc) {\n            buffer[j++] = up + c;\n          } else {\n            buffer[j++] = upLeft + c;\n          }\n        }\n\n        break;\n\n      default:\n        throw new _util.FormatError(`Unsupported predictor: ${predictor}`);\n    }\n\n    this.bufferLength += rowBytes;\n  }\n\n}\n\nexports.PredictorStream = PredictorStream;\n\n/***/ }),\n/* 158 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.RunLengthStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(144);\n\nclass RunLengthStream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength) {\n    super(maybeLength);\n    this.str = str;\n    this.dict = str.dict;\n  }\n\n  readBlock() {\n    const repeatHeader = this.str.getBytes(2);\n\n    if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n      this.eof = true;\n      return;\n    }\n\n    let buffer;\n    let bufferLength = this.bufferLength;\n    let n = repeatHeader[0];\n\n    if (n < 128) {\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n      buffer[bufferLength++] = repeatHeader[1];\n\n      if (n > 0) {\n        const source = this.str.getBytes(n);\n        buffer.set(source, bufferLength);\n        bufferLength += n;\n      }\n    } else {\n      n = 257 - n;\n      const b = repeatHeader[1];\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n\n      for (let i = 0; i < n; i++) {\n        buffer[bufferLength++] = b;\n      }\n    }\n\n    this.bufferLength = bufferLength;\n  }\n\n}\n\nexports.RunLengthStream = RunLengthStream;\n\n/***/ }),\n/* 159 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Font = exports.ErrorFont = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cff_parser = __w_pdfjs_require__(160);\n\nvar _fonts_utils = __w_pdfjs_require__(163);\n\nvar _unicode = __w_pdfjs_require__(165);\n\nvar _glyphlist = __w_pdfjs_require__(164);\n\nvar _encodings = __w_pdfjs_require__(162);\n\nvar _standard_fonts = __w_pdfjs_require__(166);\n\nvar _to_unicode_map = __w_pdfjs_require__(167);\n\nvar _cff_font = __w_pdfjs_require__(168);\n\nvar _font_renderer = __w_pdfjs_require__(169);\n\nvar _metrics = __w_pdfjs_require__(170);\n\nvar _glyf = __w_pdfjs_require__(171);\n\nvar _cmap = __w_pdfjs_require__(141);\n\nvar _opentype_file_builder = __w_pdfjs_require__(172);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _stream = __w_pdfjs_require__(135);\n\nvar _type1_font = __w_pdfjs_require__(173);\n\nconst PRIVATE_USE_AREAS = [[0xe000, 0xf8ff], [0x100000, 0x10fffd]];\nconst PDF_GLYPH_SPACE_UNITS = 1000;\nconst EXPORT_DATA_PROPERTIES = [\"ascent\", \"bbox\", \"black\", \"bold\", \"charProcOperatorList\", \"composite\", \"cssFontInfo\", \"data\", \"defaultVMetrics\", \"defaultWidth\", \"descent\", \"fallbackName\", \"fontMatrix\", \"fontType\", \"isType3Font\", \"italic\", \"loadedName\", \"mimetype\", \"missingFile\", \"name\", \"remeasure\", \"subtype\", \"type\", \"vertical\"];\nconst EXPORT_DATA_EXTRA_PROPERTIES = [\"cMap\", \"defaultEncoding\", \"differences\", \"isMonospace\", \"isSerifFont\", \"isSymbolicFont\", \"seacMap\", \"toFontChar\", \"toUnicode\", \"vmetrics\", \"widths\"];\n\nfunction adjustWidths(properties) {\n  if (!properties.fontMatrix) {\n    return;\n  }\n\n  if (properties.fontMatrix[0] === _util.FONT_IDENTITY_MATRIX[0]) {\n    return;\n  }\n\n  const scale = 0.001 / properties.fontMatrix[0];\n  const glyphsWidths = properties.widths;\n\n  for (const glyph in glyphsWidths) {\n    glyphsWidths[glyph] *= scale;\n  }\n\n  properties.defaultWidth *= scale;\n}\n\nfunction adjustToUnicode(properties, builtInEncoding) {\n  if (properties.isInternalFont) {\n    return;\n  }\n\n  if (builtInEncoding === properties.defaultEncoding) {\n    return;\n  }\n\n  if (properties.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap) {\n    return;\n  }\n\n  const toUnicode = [],\n        glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n  for (const charCode in builtInEncoding) {\n    if (properties.hasIncludedToUnicodeMap) {\n      if (properties.toUnicode.has(charCode)) {\n        continue;\n      }\n    } else if (properties.hasEncoding) {\n      if (properties.differences.length === 0 || properties.differences[charCode] !== undefined) {\n        continue;\n      }\n    }\n\n    const glyphName = builtInEncoding[charCode];\n    const unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n    if (unicode !== -1) {\n      toUnicode[charCode] = String.fromCharCode(unicode);\n    }\n  }\n\n  if (toUnicode.length > 0) {\n    properties.toUnicode.amend(toUnicode);\n  }\n}\n\nfunction amendFallbackToUnicode(properties) {\n  if (!properties.fallbackToUnicode) {\n    return;\n  }\n\n  if (properties.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap) {\n    return;\n  }\n\n  const toUnicode = [];\n\n  for (const charCode in properties.fallbackToUnicode) {\n    if (properties.toUnicode.has(charCode)) {\n      continue;\n    }\n\n    toUnicode[charCode] = properties.fallbackToUnicode[charCode];\n  }\n\n  if (toUnicode.length > 0) {\n    properties.toUnicode.amend(toUnicode);\n  }\n}\n\nclass Glyph {\n  constructor(originalCharCode, fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n    this.originalCharCode = originalCharCode;\n    this.fontChar = fontChar;\n    this.unicode = unicode;\n    this.accent = accent;\n    this.width = width;\n    this.vmetric = vmetric;\n    this.operatorListId = operatorListId;\n    this.isSpace = isSpace;\n    this.isInFont = isInFont;\n    const category = (0, _unicode.getCharUnicodeCategory)(unicode);\n    this.isWhitespace = category.isWhitespace;\n    this.isZeroWidthDiacritic = category.isZeroWidthDiacritic;\n    this.isInvisibleFormatMark = category.isInvisibleFormatMark;\n  }\n\n  matchesForCache(originalCharCode, fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n    return this.originalCharCode === originalCharCode && this.fontChar === fontChar && this.unicode === unicode && this.accent === accent && this.width === width && this.vmetric === vmetric && this.operatorListId === operatorListId && this.isSpace === isSpace && this.isInFont === isInFont;\n  }\n\n}\n\nfunction int16(b0, b1) {\n  return (b0 << 8) + b1;\n}\n\nfunction writeSignedInt16(bytes, index, value) {\n  bytes[index + 1] = value;\n  bytes[index] = value >>> 8;\n}\n\nfunction signedInt16(b0, b1) {\n  const value = (b0 << 8) + b1;\n  return value & 1 << 15 ? value - 0x10000 : value;\n}\n\nfunction int32(b0, b1, b2, b3) {\n  return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n}\n\nfunction string16(value) {\n  return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n}\n\nfunction safeString16(value) {\n  if (value > 0x7fff) {\n    value = 0x7fff;\n  } else if (value < -0x8000) {\n    value = -0x8000;\n  }\n\n  return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n}\n\nfunction isTrueTypeFile(file) {\n  const header = file.peekBytes(4);\n  return (0, _core_utils.readUint32)(header, 0) === 0x00010000 || (0, _util.bytesToString)(header) === \"true\";\n}\n\nfunction isTrueTypeCollectionFile(file) {\n  const header = file.peekBytes(4);\n  return (0, _util.bytesToString)(header) === \"ttcf\";\n}\n\nfunction isOpenTypeFile(file) {\n  const header = file.peekBytes(4);\n  return (0, _util.bytesToString)(header) === \"OTTO\";\n}\n\nfunction isType1File(file) {\n  const header = file.peekBytes(2);\n\n  if (header[0] === 0x25 && header[1] === 0x21) {\n    return true;\n  }\n\n  if (header[0] === 0x80 && header[1] === 0x01) {\n    return true;\n  }\n\n  return false;\n}\n\nfunction isCFFFile(file) {\n  const header = file.peekBytes(4);\n\n  if (header[0] >= 1 && header[3] >= 1 && header[3] <= 4) {\n    return true;\n  }\n\n  return false;\n}\n\nfunction getFontFileType(file, _ref) {\n  let {\n    type,\n    subtype,\n    composite\n  } = _ref;\n  let fileType, fileSubtype;\n\n  if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) {\n    if (composite) {\n      fileType = \"CIDFontType2\";\n    } else {\n      fileType = \"TrueType\";\n    }\n  } else if (isOpenTypeFile(file)) {\n    if (composite) {\n      fileType = \"CIDFontType2\";\n    } else {\n      fileType = \"OpenType\";\n    }\n  } else if (isType1File(file)) {\n    if (composite) {\n      fileType = \"CIDFontType0\";\n    } else {\n      fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n    }\n  } else if (isCFFFile(file)) {\n    if (composite) {\n      fileType = \"CIDFontType0\";\n      fileSubtype = \"CIDFontType0C\";\n    } else {\n      fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n      fileSubtype = \"Type1C\";\n    }\n  } else {\n    (0, _util.warn)(\"getFontFileType: Unable to detect correct font file Type/Subtype.\");\n    fileType = type;\n    fileSubtype = subtype;\n  }\n\n  return [fileType, fileSubtype];\n}\n\nfunction applyStandardFontGlyphMap(map, glyphMap) {\n  for (const charCode in glyphMap) {\n    map[+charCode] = glyphMap[charCode];\n  }\n}\n\nfunction buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n  const toFontChar = [];\n  let unicode;\n\n  for (let i = 0, ii = encoding.length; i < ii; i++) {\n    unicode = (0, _unicode.getUnicodeForGlyph)(encoding[i], glyphsUnicodeMap);\n\n    if (unicode !== -1) {\n      toFontChar[i] = unicode;\n    }\n  }\n\n  for (const charCode in differences) {\n    unicode = (0, _unicode.getUnicodeForGlyph)(differences[charCode], glyphsUnicodeMap);\n\n    if (unicode !== -1) {\n      toFontChar[+charCode] = unicode;\n    }\n  }\n\n  return toFontChar;\n}\n\nfunction convertCidString(charCode, cid) {\n  let shouldThrow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  switch (cid.length) {\n    case 1:\n      return cid.charCodeAt(0);\n\n    case 2:\n      return cid.charCodeAt(0) << 8 | cid.charCodeAt(1);\n  }\n\n  const msg = `Unsupported CID string (charCode ${charCode}): \"${cid}\".`;\n\n  if (shouldThrow) {\n    throw new _util.FormatError(msg);\n  }\n\n  (0, _util.warn)(msg);\n  return cid;\n}\n\nfunction adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId, toUnicode) {\n  const newMap = Object.create(null);\n  const toUnicodeExtraMap = new Map();\n  const toFontChar = [];\n  const usedGlyphIds = new Set();\n  let privateUseAreaIndex = 0;\n  const privateUseOffetStart = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n  let nextAvailableFontCharCode = privateUseOffetStart;\n  let privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n\n  for (let originalCharCode in charCodeToGlyphId) {\n    originalCharCode |= 0;\n    let glyphId = charCodeToGlyphId[originalCharCode];\n\n    if (!hasGlyph(glyphId)) {\n      continue;\n    }\n\n    if (nextAvailableFontCharCode > privateUseOffetEnd) {\n      privateUseAreaIndex++;\n\n      if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n        (0, _util.warn)(\"Ran out of space in font private use area.\");\n        break;\n      }\n\n      nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n      privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n    }\n\n    const fontCharCode = nextAvailableFontCharCode++;\n\n    if (glyphId === 0) {\n      glyphId = newGlyphZeroId;\n    }\n\n    let unicode = toUnicode.get(originalCharCode);\n\n    if (typeof unicode === \"string\") {\n      unicode = unicode.codePointAt(0);\n    }\n\n    if (unicode && unicode < privateUseOffetStart && !usedGlyphIds.has(glyphId)) {\n      toUnicodeExtraMap.set(unicode, glyphId);\n      usedGlyphIds.add(glyphId);\n    }\n\n    newMap[fontCharCode] = glyphId;\n    toFontChar[originalCharCode] = fontCharCode;\n  }\n\n  return {\n    toFontChar,\n    charCodeToGlyphId: newMap,\n    toUnicodeExtraMap,\n    nextAvailableFontCharCode\n  };\n}\n\nfunction getRanges(glyphs, toUnicodeExtraMap, numGlyphs) {\n  const codes = [];\n\n  for (const charCode in glyphs) {\n    if (glyphs[charCode] >= numGlyphs) {\n      continue;\n    }\n\n    codes.push({\n      fontCharCode: charCode | 0,\n      glyphId: glyphs[charCode]\n    });\n  }\n\n  if (toUnicodeExtraMap) {\n    for (const [unicode, glyphId] of toUnicodeExtraMap) {\n      if (glyphId >= numGlyphs) {\n        continue;\n      }\n\n      codes.push({\n        fontCharCode: unicode,\n        glyphId\n      });\n    }\n  }\n\n  if (codes.length === 0) {\n    codes.push({\n      fontCharCode: 0,\n      glyphId: 0\n    });\n  }\n\n  codes.sort(function fontGetRangesSort(a, b) {\n    return a.fontCharCode - b.fontCharCode;\n  });\n  const ranges = [];\n  const length = codes.length;\n\n  for (let n = 0; n < length;) {\n    const start = codes[n].fontCharCode;\n    const codeIndices = [codes[n].glyphId];\n    ++n;\n    let end = start;\n\n    while (n < length && end + 1 === codes[n].fontCharCode) {\n      codeIndices.push(codes[n].glyphId);\n      ++end;\n      ++n;\n\n      if (end === 0xffff) {\n        break;\n      }\n    }\n\n    ranges.push([start, end, codeIndices]);\n  }\n\n  return ranges;\n}\n\nfunction createCmapTable(glyphs, toUnicodeExtraMap, numGlyphs) {\n  const ranges = getRanges(glyphs, toUnicodeExtraMap, numGlyphs);\n  const numTables = ranges.at(-1)[1] > 0xffff ? 2 : 1;\n  let cmap = \"\\x00\\x00\" + string16(numTables) + \"\\x00\\x03\" + \"\\x00\\x01\" + (0, _util.string32)(4 + numTables * 8);\n  let i, ii, j, jj;\n\n  for (i = ranges.length - 1; i >= 0; --i) {\n    if (ranges[i][0] <= 0xffff) {\n      break;\n    }\n  }\n\n  const bmpLength = i + 1;\n\n  if (ranges[i][0] < 0xffff && ranges[i][1] === 0xffff) {\n    ranges[i][1] = 0xfffe;\n  }\n\n  const trailingRangesCount = ranges[i][1] < 0xffff ? 1 : 0;\n  const segCount = bmpLength + trailingRangesCount;\n\n  const searchParams = _opentype_file_builder.OpenTypeFileBuilder.getSearchParams(segCount, 2);\n\n  let startCount = \"\";\n  let endCount = \"\";\n  let idDeltas = \"\";\n  let idRangeOffsets = \"\";\n  let glyphsIds = \"\";\n  let bias = 0;\n  let range, start, end, codes;\n\n  for (i = 0, ii = bmpLength; i < ii; i++) {\n    range = ranges[i];\n    start = range[0];\n    end = range[1];\n    startCount += string16(start);\n    endCount += string16(end);\n    codes = range[2];\n    let contiguous = true;\n\n    for (j = 1, jj = codes.length; j < jj; ++j) {\n      if (codes[j] !== codes[j - 1] + 1) {\n        contiguous = false;\n        break;\n      }\n    }\n\n    if (!contiguous) {\n      const offset = (segCount - i) * 2 + bias * 2;\n      bias += end - start + 1;\n      idDeltas += string16(0);\n      idRangeOffsets += string16(offset);\n\n      for (j = 0, jj = codes.length; j < jj; ++j) {\n        glyphsIds += string16(codes[j]);\n      }\n    } else {\n      const startCode = codes[0];\n      idDeltas += string16(startCode - start & 0xffff);\n      idRangeOffsets += string16(0);\n    }\n  }\n\n  if (trailingRangesCount > 0) {\n    endCount += \"\\xFF\\xFF\";\n    startCount += \"\\xFF\\xFF\";\n    idDeltas += \"\\x00\\x01\";\n    idRangeOffsets += \"\\x00\\x00\";\n  }\n\n  const format314 = \"\\x00\\x00\" + string16(2 * segCount) + string16(searchParams.range) + string16(searchParams.entry) + string16(searchParams.rangeShift) + endCount + \"\\x00\\x00\" + startCount + idDeltas + idRangeOffsets + glyphsIds;\n  let format31012 = \"\";\n  let header31012 = \"\";\n\n  if (numTables > 1) {\n    cmap += \"\\x00\\x03\" + \"\\x00\\x0A\" + (0, _util.string32)(4 + numTables * 8 + 4 + format314.length);\n    format31012 = \"\";\n\n    for (i = 0, ii = ranges.length; i < ii; i++) {\n      range = ranges[i];\n      start = range[0];\n      codes = range[2];\n      let code = codes[0];\n\n      for (j = 1, jj = codes.length; j < jj; ++j) {\n        if (codes[j] !== codes[j - 1] + 1) {\n          end = range[0] + j - 1;\n          format31012 += (0, _util.string32)(start) + (0, _util.string32)(end) + (0, _util.string32)(code);\n          start = end + 1;\n          code = codes[j];\n        }\n      }\n\n      format31012 += (0, _util.string32)(start) + (0, _util.string32)(range[1]) + (0, _util.string32)(code);\n    }\n\n    header31012 = \"\\x00\\x0C\" + \"\\x00\\x00\" + (0, _util.string32)(format31012.length + 16) + \"\\x00\\x00\\x00\\x00\" + (0, _util.string32)(format31012.length / 12);\n  }\n\n  return cmap + \"\\x00\\x04\" + string16(format314.length + 4) + format314 + header31012 + format31012;\n}\n\nfunction validateOS2Table(os2, file) {\n  file.pos = (file.start || 0) + os2.offset;\n  const version = file.getUint16();\n  file.skip(60);\n  const selection = file.getUint16();\n\n  if (version < 4 && selection & 0x0300) {\n    return false;\n  }\n\n  const firstChar = file.getUint16();\n  const lastChar = file.getUint16();\n\n  if (firstChar > lastChar) {\n    return false;\n  }\n\n  file.skip(6);\n  const usWinAscent = file.getUint16();\n\n  if (usWinAscent === 0) {\n    return false;\n  }\n\n  os2.data[8] = os2.data[9] = 0;\n  return true;\n}\n\nfunction createOS2Table(properties, charstrings, override) {\n  override = override || {\n    unitsPerEm: 0,\n    yMax: 0,\n    yMin: 0,\n    ascent: 0,\n    descent: 0\n  };\n  let ulUnicodeRange1 = 0;\n  let ulUnicodeRange2 = 0;\n  let ulUnicodeRange3 = 0;\n  let ulUnicodeRange4 = 0;\n  let firstCharIndex = null;\n  let lastCharIndex = 0;\n\n  if (charstrings) {\n    for (let code in charstrings) {\n      code |= 0;\n\n      if (firstCharIndex > code || !firstCharIndex) {\n        firstCharIndex = code;\n      }\n\n      if (lastCharIndex < code) {\n        lastCharIndex = code;\n      }\n\n      const position = (0, _unicode.getUnicodeRangeFor)(code);\n\n      if (position < 32) {\n        ulUnicodeRange1 |= 1 << position;\n      } else if (position < 64) {\n        ulUnicodeRange2 |= 1 << position - 32;\n      } else if (position < 96) {\n        ulUnicodeRange3 |= 1 << position - 64;\n      } else if (position < 123) {\n        ulUnicodeRange4 |= 1 << position - 96;\n      } else {\n        throw new _util.FormatError(\"Unicode ranges Bits > 123 are reserved for internal usage\");\n      }\n    }\n\n    if (lastCharIndex > 0xffff) {\n      lastCharIndex = 0xffff;\n    }\n  } else {\n    firstCharIndex = 0;\n    lastCharIndex = 255;\n  }\n\n  const bbox = properties.bbox || [0, 0, 0, 0];\n  const unitsPerEm = override.unitsPerEm || 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n  const scale = properties.ascentScaled ? 1.0 : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n  const typoAscent = override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n  let typoDescent = override.descent || Math.round(scale * (properties.descent || bbox[1]));\n\n  if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n    typoDescent = -typoDescent;\n  }\n\n  const winAscent = override.yMax || typoAscent;\n  const winDescent = -override.yMin || -typoDescent;\n  return \"\\x00\\x03\" + \"\\x02\\x24\" + \"\\x01\\xF4\" + \"\\x00\\x05\" + \"\\x00\\x00\" + \"\\x02\\x8A\" + \"\\x02\\xBB\" + \"\\x00\\x00\" + \"\\x00\\x8C\" + \"\\x02\\x8A\" + \"\\x02\\xBB\" + \"\\x00\\x00\" + \"\\x01\\xDF\" + \"\\x00\\x31\" + \"\\x01\\x02\" + \"\\x00\\x00\" + \"\\x00\\x00\\x06\" + String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) + \"\\x00\\x00\\x00\\x00\\x00\\x00\" + (0, _util.string32)(ulUnicodeRange1) + (0, _util.string32)(ulUnicodeRange2) + (0, _util.string32)(ulUnicodeRange3) + (0, _util.string32)(ulUnicodeRange4) + \"\\x2A\\x32\\x31\\x2A\" + string16(properties.italicAngle ? 1 : 0) + string16(firstCharIndex || properties.firstChar) + string16(lastCharIndex || properties.lastChar) + string16(typoAscent) + string16(typoDescent) + \"\\x00\\x64\" + string16(winAscent) + string16(winDescent) + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\" + string16(properties.xHeight) + string16(properties.capHeight) + string16(0) + string16(firstCharIndex || properties.firstChar) + \"\\x00\\x03\";\n}\n\nfunction createPostTable(properties) {\n  const angle = Math.floor(properties.italicAngle * 2 ** 16);\n  return \"\\x00\\x03\\x00\\x00\" + (0, _util.string32)(angle) + \"\\x00\\x00\" + \"\\x00\\x00\" + (0, _util.string32)(properties.fixedPitch ? 1 : 0) + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\";\n}\n\nfunction createPostscriptName(name) {\n  return name.replace(/[^\\x21-\\x7E]|[[\\](){}<>/%]/g, \"\").slice(0, 63);\n}\n\nfunction createNameTable(name, proto) {\n  if (!proto) {\n    proto = [[], []];\n  }\n\n  const strings = [proto[0][0] || \"Original licence\", proto[0][1] || name, proto[0][2] || \"Unknown\", proto[0][3] || \"uniqueID\", proto[0][4] || name, proto[0][5] || \"Version 0.11\", proto[0][6] || createPostscriptName(name), proto[0][7] || \"Unknown\", proto[0][8] || \"Unknown\", proto[0][9] || \"Unknown\"];\n  const stringsUnicode = [];\n  let i, ii, j, jj, str;\n\n  for (i = 0, ii = strings.length; i < ii; i++) {\n    str = proto[1][i] || strings[i];\n    const strBufUnicode = [];\n\n    for (j = 0, jj = str.length; j < jj; j++) {\n      strBufUnicode.push(string16(str.charCodeAt(j)));\n    }\n\n    stringsUnicode.push(strBufUnicode.join(\"\"));\n  }\n\n  const names = [strings, stringsUnicode];\n  const platforms = [\"\\x00\\x01\", \"\\x00\\x03\"];\n  const encodings = [\"\\x00\\x00\", \"\\x00\\x01\"];\n  const languages = [\"\\x00\\x00\", \"\\x04\\x09\"];\n  const namesRecordCount = strings.length * platforms.length;\n  let nameTable = \"\\x00\\x00\" + string16(namesRecordCount) + string16(namesRecordCount * 12 + 6);\n  let strOffset = 0;\n\n  for (i = 0, ii = platforms.length; i < ii; i++) {\n    const strs = names[i];\n\n    for (j = 0, jj = strs.length; j < jj; j++) {\n      str = strs[j];\n      const nameRecord = platforms[i] + encodings[i] + languages[i] + string16(j) + string16(str.length) + string16(strOffset);\n      nameTable += nameRecord;\n      strOffset += str.length;\n    }\n  }\n\n  nameTable += strings.join(\"\") + stringsUnicode.join(\"\");\n  return nameTable;\n}\n\nclass Font {\n  constructor(name, file, properties) {\n    this.name = name;\n    this.psName = null;\n    this.mimetype = null;\n    this.disableFontFace = false;\n    this.loadedName = properties.loadedName;\n    this.isType3Font = properties.isType3Font;\n    this.missingFile = false;\n    this.cssFontInfo = properties.cssFontInfo;\n    this._charsCache = Object.create(null);\n    this._glyphCache = Object.create(null);\n    let isSerifFont = !!(properties.flags & _fonts_utils.FontFlags.Serif);\n\n    if (!isSerifFont && !properties.isSimulatedFlags) {\n      const baseName = name.replace(/[,_]/g, \"-\").split(\"-\")[0],\n            serifFonts = (0, _standard_fonts.getSerifFonts)();\n\n      for (const namePart of baseName.split(\"+\")) {\n        if (serifFonts[namePart]) {\n          isSerifFont = true;\n          break;\n        }\n      }\n    }\n\n    this.isSerifFont = isSerifFont;\n    this.isSymbolicFont = !!(properties.flags & _fonts_utils.FontFlags.Symbolic);\n    this.isMonospace = !!(properties.flags & _fonts_utils.FontFlags.FixedPitch);\n    let type = properties.type;\n    let subtype = properties.subtype;\n    this.type = type;\n    this.subtype = subtype;\n    let fallbackName = \"sans-serif\";\n\n    if (this.isMonospace) {\n      fallbackName = \"monospace\";\n    } else if (this.isSerifFont) {\n      fallbackName = \"serif\";\n    }\n\n    this.fallbackName = fallbackName;\n    this.differences = properties.differences;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.composite = properties.composite;\n    this.cMap = properties.cMap;\n    this.capHeight = properties.capHeight / PDF_GLYPH_SPACE_UNITS;\n    this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n    this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n    this.lineHeight = this.ascent - this.descent;\n    this.fontMatrix = properties.fontMatrix;\n    this.bbox = properties.bbox;\n    this.defaultEncoding = properties.defaultEncoding;\n    this.toUnicode = properties.toUnicode;\n    this.toFontChar = [];\n\n    if (properties.type === \"Type3\") {\n      for (let charCode = 0; charCode < 256; charCode++) {\n        this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode];\n      }\n\n      this.fontType = _util.FontType.TYPE3;\n      return;\n    }\n\n    this.cidEncoding = properties.cidEncoding || \"\";\n    this.vertical = !!properties.vertical;\n\n    if (this.vertical) {\n      this.vmetrics = properties.vmetrics;\n      this.defaultVMetrics = properties.defaultVMetrics;\n    }\n\n    if (!file || file.isEmpty) {\n      if (file) {\n        (0, _util.warn)('Font file is empty in \"' + name + '\" (' + this.loadedName + \")\");\n      }\n\n      this.fallbackToSystemFont(properties);\n      return;\n    }\n\n    [type, subtype] = getFontFileType(file, properties);\n\n    if (type !== this.type || subtype !== this.subtype) {\n      (0, _util.info)(\"Inconsistent font file Type/SubType, expected: \" + `${this.type}/${this.subtype} but found: ${type}/${subtype}.`);\n    }\n\n    let data;\n\n    try {\n      switch (type) {\n        case \"MMType1\":\n          (0, _util.info)(\"MMType1 font (\" + name + \"), falling back to Type1.\");\n\n        case \"Type1\":\n        case \"CIDFontType0\":\n          this.mimetype = \"font/opentype\";\n          const cff = subtype === \"Type1C\" || subtype === \"CIDFontType0C\" ? new _cff_font.CFFFont(file, properties) : new _type1_font.Type1Font(name, file, properties);\n          adjustWidths(properties);\n          data = this.convert(name, cff, properties);\n          break;\n\n        case \"OpenType\":\n        case \"TrueType\":\n        case \"CIDFontType2\":\n          this.mimetype = \"font/opentype\";\n          data = this.checkAndRepair(name, file, properties);\n\n          if (this.isOpenType) {\n            adjustWidths(properties);\n            type = \"OpenType\";\n          }\n\n          break;\n\n        default:\n          throw new _util.FormatError(`Font ${type} is not supported`);\n      }\n    } catch (e) {\n      (0, _util.warn)(e);\n      this.fallbackToSystemFont(properties);\n      return;\n    }\n\n    amendFallbackToUnicode(properties);\n    this.data = data;\n    this.fontType = (0, _fonts_utils.getFontType)(type, subtype, properties.isStandardFont);\n    this.fontMatrix = properties.fontMatrix;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.toUnicode = properties.toUnicode;\n    this.seacMap = properties.seacMap;\n  }\n\n  get renderer() {\n    const renderer = _font_renderer.FontRendererFactory.create(this, _fonts_utils.SEAC_ANALYSIS_ENABLED);\n\n    return (0, _util.shadow)(this, \"renderer\", renderer);\n  }\n\n  exportData() {\n    let extraProperties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    const exportDataProperties = extraProperties ? [...EXPORT_DATA_PROPERTIES, ...EXPORT_DATA_EXTRA_PROPERTIES] : EXPORT_DATA_PROPERTIES;\n    const data = Object.create(null);\n    let property, value;\n\n    for (property of exportDataProperties) {\n      value = this[property];\n\n      if (value !== undefined) {\n        data[property] = value;\n      }\n    }\n\n    return data;\n  }\n\n  fallbackToSystemFont(properties) {\n    this.missingFile = true;\n    const name = this.name;\n    const type = this.type;\n    const subtype = this.subtype;\n    let fontName = (0, _fonts_utils.normalizeFontName)(name);\n    const stdFontMap = (0, _standard_fonts.getStdFontMap)(),\n          nonStdFontMap = (0, _standard_fonts.getNonStdFontMap)();\n    const isStandardFont = !!stdFontMap[fontName];\n    const isMappedToStandardFont = !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]);\n    fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n    const fontBasicMetricsMap = (0, _metrics.getFontBasicMetrics)();\n    const metrics = fontBasicMetricsMap[fontName];\n\n    if (metrics) {\n      if (isNaN(this.ascent)) {\n        this.ascent = metrics.ascent / PDF_GLYPH_SPACE_UNITS;\n      }\n\n      if (isNaN(this.descent)) {\n        this.descent = metrics.descent / PDF_GLYPH_SPACE_UNITS;\n      }\n\n      if (isNaN(this.capHeight)) {\n        this.capHeight = metrics.capHeight / PDF_GLYPH_SPACE_UNITS;\n      }\n    }\n\n    this.bold = fontName.search(/bold/gi) !== -1;\n    this.italic = fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1;\n    this.black = name.search(/Black/g) !== -1;\n    const isNarrow = name.search(/Narrow/g) !== -1;\n    this.remeasure = (!isStandardFont || isNarrow) && Object.keys(this.widths).length > 0;\n\n    if ((isStandardFont || isMappedToStandardFont) && type === \"CIDFontType2\" && this.cidEncoding.startsWith(\"Identity-\")) {\n      const cidToGidMap = properties.cidToGidMap;\n      const map = [];\n      applyStandardFontGlyphMap(map, (0, _standard_fonts.getGlyphMapForStandardFonts)());\n\n      if (/Arial-?Black/i.test(name)) {\n        applyStandardFontGlyphMap(map, (0, _standard_fonts.getSupplementalGlyphMapForArialBlack)());\n      } else if (/Calibri/i.test(name)) {\n        applyStandardFontGlyphMap(map, (0, _standard_fonts.getSupplementalGlyphMapForCalibri)());\n      }\n\n      if (cidToGidMap) {\n        for (const charCode in map) {\n          const cid = map[charCode];\n\n          if (cidToGidMap[cid] !== undefined) {\n            map[+charCode] = cidToGidMap[cid];\n          }\n        }\n\n        if (cidToGidMap.length !== this.toUnicode.length && properties.hasIncludedToUnicodeMap && this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap) {\n          this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n            const cid = map[charCode];\n\n            if (cidToGidMap[cid] === undefined) {\n              map[+charCode] = unicodeCharCode;\n            }\n          });\n        }\n      }\n\n      if (!(this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap)) {\n        this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n          map[+charCode] = unicodeCharCode;\n        });\n      }\n\n      this.toFontChar = map;\n      this.toUnicode = new _to_unicode_map.ToUnicodeMap(map);\n    } else if (/Symbol/i.test(fontName)) {\n      this.toFontChar = buildToFontChar(_encodings.SymbolSetEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n    } else if (/Dingbats/i.test(fontName)) {\n      if (/Wingdings/i.test(name)) {\n        (0, _util.warn)(\"Non-embedded Wingdings font, falling back to ZapfDingbats.\");\n      }\n\n      this.toFontChar = buildToFontChar(_encodings.ZapfDingbatsEncoding, (0, _glyphlist.getDingbatsGlyphsUnicode)(), this.differences);\n    } else if (isStandardFont) {\n      const map = buildToFontChar(this.defaultEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n\n      if (type === \"CIDFontType2\" && !this.cidEncoding.startsWith(\"Identity-\") && !(this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap)) {\n        this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n          map[+charCode] = unicodeCharCode;\n        });\n      }\n\n      this.toFontChar = map;\n    } else {\n      const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n      const map = [];\n      this.toUnicode.forEach((charCode, unicodeCharCode) => {\n        if (!this.composite) {\n          const glyphName = this.differences[charCode] || this.defaultEncoding[charCode];\n          const unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n          if (unicode !== -1) {\n            unicodeCharCode = unicode;\n          }\n        }\n\n        map[+charCode] = unicodeCharCode;\n      });\n\n      if (this.composite && this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap) {\n        if (/Verdana/i.test(name)) {\n          applyStandardFontGlyphMap(map, (0, _standard_fonts.getGlyphMapForStandardFonts)());\n        }\n      }\n\n      this.toFontChar = map;\n    }\n\n    amendFallbackToUnicode(properties);\n    this.loadedName = fontName.split(\"-\")[0];\n    this.fontType = (0, _fonts_utils.getFontType)(type, subtype, properties.isStandardFont);\n  }\n\n  checkAndRepair(name, font, properties) {\n    const VALID_TABLES = [\"OS/2\", \"cmap\", \"head\", \"hhea\", \"hmtx\", \"maxp\", \"name\", \"post\", \"loca\", \"glyf\", \"fpgm\", \"prep\", \"cvt \", \"CFF \"];\n\n    function readTables(file, numTables) {\n      const tables = Object.create(null);\n      tables[\"OS/2\"] = null;\n      tables.cmap = null;\n      tables.head = null;\n      tables.hhea = null;\n      tables.hmtx = null;\n      tables.maxp = null;\n      tables.name = null;\n      tables.post = null;\n\n      for (let i = 0; i < numTables; i++) {\n        const table = readTableEntry(file);\n\n        if (!VALID_TABLES.includes(table.tag)) {\n          continue;\n        }\n\n        if (table.length === 0) {\n          continue;\n        }\n\n        tables[table.tag] = table;\n      }\n\n      return tables;\n    }\n\n    function readTableEntry(file) {\n      const tag = file.getString(4);\n      const checksum = file.getInt32() >>> 0;\n      const offset = file.getInt32() >>> 0;\n      const length = file.getInt32() >>> 0;\n      const previousPosition = file.pos;\n      file.pos = file.start || 0;\n      file.skip(offset);\n      const data = file.getBytes(length);\n      file.pos = previousPosition;\n\n      if (tag === \"head\") {\n        data[8] = data[9] = data[10] = data[11] = 0;\n        data[17] |= 0x20;\n      }\n\n      return {\n        tag,\n        checksum,\n        length,\n        offset,\n        data\n      };\n    }\n\n    function readOpenTypeHeader(ttf) {\n      return {\n        version: ttf.getString(4),\n        numTables: ttf.getUint16(),\n        searchRange: ttf.getUint16(),\n        entrySelector: ttf.getUint16(),\n        rangeShift: ttf.getUint16()\n      };\n    }\n\n    function readTrueTypeCollectionHeader(ttc) {\n      const ttcTag = ttc.getString(4);\n      (0, _util.assert)(ttcTag === \"ttcf\", \"Must be a TrueType Collection font.\");\n      const majorVersion = ttc.getUint16();\n      const minorVersion = ttc.getUint16();\n      const numFonts = ttc.getInt32() >>> 0;\n      const offsetTable = [];\n\n      for (let i = 0; i < numFonts; i++) {\n        offsetTable.push(ttc.getInt32() >>> 0);\n      }\n\n      const header = {\n        ttcTag,\n        majorVersion,\n        minorVersion,\n        numFonts,\n        offsetTable\n      };\n\n      switch (majorVersion) {\n        case 1:\n          return header;\n\n        case 2:\n          header.dsigTag = ttc.getInt32() >>> 0;\n          header.dsigLength = ttc.getInt32() >>> 0;\n          header.dsigOffset = ttc.getInt32() >>> 0;\n          return header;\n      }\n\n      throw new _util.FormatError(`Invalid TrueType Collection majorVersion: ${majorVersion}.`);\n    }\n\n    function readTrueTypeCollectionData(ttc, fontName) {\n      const {\n        numFonts,\n        offsetTable\n      } = readTrueTypeCollectionHeader(ttc);\n      const fontNameParts = fontName.split(\"+\");\n      let fallbackData;\n\n      for (let i = 0; i < numFonts; i++) {\n        ttc.pos = (ttc.start || 0) + offsetTable[i];\n        const potentialHeader = readOpenTypeHeader(ttc);\n        const potentialTables = readTables(ttc, potentialHeader.numTables);\n\n        if (!potentialTables.name) {\n          throw new _util.FormatError('TrueType Collection font must contain a \"name\" table.');\n        }\n\n        const nameTable = readNameTable(potentialTables.name);\n\n        for (let j = 0, jj = nameTable.length; j < jj; j++) {\n          for (let k = 0, kk = nameTable[j].length; k < kk; k++) {\n            const nameEntry = nameTable[j][k] && nameTable[j][k].replace(/\\s/g, \"\");\n\n            if (!nameEntry) {\n              continue;\n            }\n\n            if (nameEntry === fontName) {\n              return {\n                header: potentialHeader,\n                tables: potentialTables\n              };\n            }\n\n            if (fontNameParts.length < 2) {\n              continue;\n            }\n\n            for (const part of fontNameParts) {\n              if (nameEntry === part) {\n                fallbackData = {\n                  name: part,\n                  header: potentialHeader,\n                  tables: potentialTables\n                };\n              }\n            }\n          }\n        }\n      }\n\n      if (fallbackData) {\n        (0, _util.warn)(`TrueType Collection does not contain \"${fontName}\" font, ` + `falling back to \"${fallbackData.name}\" font instead.`);\n        return {\n          header: fallbackData.header,\n          tables: fallbackData.tables\n        };\n      }\n\n      throw new _util.FormatError(`TrueType Collection does not contain \"${fontName}\" font.`);\n    }\n\n    function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) {\n      if (!cmap) {\n        (0, _util.warn)(\"No cmap table available.\");\n        return {\n          platformId: -1,\n          encodingId: -1,\n          mappings: [],\n          hasShortCmap: false\n        };\n      }\n\n      let segment;\n      let start = (file.start || 0) + cmap.offset;\n      file.pos = start;\n      file.skip(2);\n      const numTables = file.getUint16();\n      let potentialTable;\n      let canBreak = false;\n\n      for (let i = 0; i < numTables; i++) {\n        const platformId = file.getUint16();\n        const encodingId = file.getUint16();\n        const offset = file.getInt32() >>> 0;\n        let useTable = false;\n\n        if (potentialTable && potentialTable.platformId === platformId && potentialTable.encodingId === encodingId) {\n          continue;\n        }\n\n        if (platformId === 0 && (encodingId === 0 || encodingId === 1 || encodingId === 3)) {\n          useTable = true;\n        } else if (platformId === 1 && encodingId === 0) {\n          useTable = true;\n        } else if (platformId === 3 && encodingId === 1 && (hasEncoding || !potentialTable)) {\n          useTable = true;\n\n          if (!isSymbolicFont) {\n            canBreak = true;\n          }\n        } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n          useTable = true;\n          let correctlySorted = true;\n\n          if (i < numTables - 1) {\n            const nextBytes = file.peekBytes(2),\n                  nextPlatformId = int16(nextBytes[0], nextBytes[1]);\n\n            if (nextPlatformId < platformId) {\n              correctlySorted = false;\n            }\n          }\n\n          if (correctlySorted) {\n            canBreak = true;\n          }\n        }\n\n        if (useTable) {\n          potentialTable = {\n            platformId,\n            encodingId,\n            offset\n          };\n        }\n\n        if (canBreak) {\n          break;\n        }\n      }\n\n      if (potentialTable) {\n        file.pos = start + potentialTable.offset;\n      }\n\n      if (!potentialTable || file.peekByte() === -1) {\n        (0, _util.warn)(\"Could not find a preferred cmap table.\");\n        return {\n          platformId: -1,\n          encodingId: -1,\n          mappings: [],\n          hasShortCmap: false\n        };\n      }\n\n      const format = file.getUint16();\n      let hasShortCmap = false;\n      const mappings = [];\n      let j, glyphId;\n\n      if (format === 0) {\n        file.skip(2 + 2);\n\n        for (j = 0; j < 256; j++) {\n          const index = file.getByte();\n\n          if (!index) {\n            continue;\n          }\n\n          mappings.push({\n            charCode: j,\n            glyphId: index\n          });\n        }\n\n        hasShortCmap = true;\n      } else if (format === 2) {\n        file.skip(2 + 2);\n        const subHeaderKeys = [];\n        let maxSubHeaderKey = 0;\n\n        for (let i = 0; i < 256; i++) {\n          const subHeaderKey = file.getUint16() >> 3;\n          subHeaderKeys.push(subHeaderKey);\n          maxSubHeaderKey = Math.max(subHeaderKey, maxSubHeaderKey);\n        }\n\n        const subHeaders = [];\n\n        for (let i = 0; i <= maxSubHeaderKey; i++) {\n          subHeaders.push({\n            firstCode: file.getUint16(),\n            entryCount: file.getUint16(),\n            idDelta: signedInt16(file.getByte(), file.getByte()),\n            idRangePos: file.pos + file.getUint16()\n          });\n        }\n\n        for (let i = 0; i < 256; i++) {\n          if (subHeaderKeys[i] === 0) {\n            file.pos = subHeaders[0].idRangePos + 2 * i;\n            glyphId = file.getUint16();\n            mappings.push({\n              charCode: i,\n              glyphId\n            });\n          } else {\n            const s = subHeaders[subHeaderKeys[i]];\n\n            for (j = 0; j < s.entryCount; j++) {\n              const charCode = (i << 8) + j + s.firstCode;\n              file.pos = s.idRangePos + 2 * j;\n              glyphId = file.getUint16();\n\n              if (glyphId !== 0) {\n                glyphId = (glyphId + s.idDelta) % 65536;\n              }\n\n              mappings.push({\n                charCode,\n                glyphId\n              });\n            }\n          }\n        }\n      } else if (format === 4) {\n        file.skip(2 + 2);\n        const segCount = file.getUint16() >> 1;\n        file.skip(6);\n        const segments = [];\n        let segIndex;\n\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segments.push({\n            end: file.getUint16()\n          });\n        }\n\n        file.skip(2);\n\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segments[segIndex].start = file.getUint16();\n        }\n\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segments[segIndex].delta = file.getUint16();\n        }\n\n        let offsetsCount = 0,\n            offsetIndex;\n\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segment = segments[segIndex];\n          const rangeOffset = file.getUint16();\n\n          if (!rangeOffset) {\n            segment.offsetIndex = -1;\n            continue;\n          }\n\n          offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n          segment.offsetIndex = offsetIndex;\n          offsetsCount = Math.max(offsetsCount, offsetIndex + segment.end - segment.start + 1);\n        }\n\n        const offsets = [];\n\n        for (j = 0; j < offsetsCount; j++) {\n          offsets.push(file.getUint16());\n        }\n\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segment = segments[segIndex];\n          start = segment.start;\n          const end = segment.end;\n          const delta = segment.delta;\n          offsetIndex = segment.offsetIndex;\n\n          for (j = start; j <= end; j++) {\n            if (j === 0xffff) {\n              continue;\n            }\n\n            glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n            glyphId = glyphId + delta & 0xffff;\n            mappings.push({\n              charCode: j,\n              glyphId\n            });\n          }\n        }\n      } else if (format === 6) {\n        file.skip(2 + 2);\n        const firstCode = file.getUint16();\n        const entryCount = file.getUint16();\n\n        for (j = 0; j < entryCount; j++) {\n          glyphId = file.getUint16();\n          const charCode = firstCode + j;\n          mappings.push({\n            charCode,\n            glyphId\n          });\n        }\n      } else if (format === 12) {\n        file.skip(2 + 4 + 4);\n        const nGroups = file.getInt32() >>> 0;\n\n        for (j = 0; j < nGroups; j++) {\n          const startCharCode = file.getInt32() >>> 0;\n          const endCharCode = file.getInt32() >>> 0;\n          let glyphCode = file.getInt32() >>> 0;\n\n          for (let charCode = startCharCode; charCode <= endCharCode; charCode++) {\n            mappings.push({\n              charCode,\n              glyphId: glyphCode++\n            });\n          }\n        }\n      } else {\n        (0, _util.warn)(\"cmap table has unsupported format: \" + format);\n        return {\n          platformId: -1,\n          encodingId: -1,\n          mappings: [],\n          hasShortCmap: false\n        };\n      }\n\n      mappings.sort(function (a, b) {\n        return a.charCode - b.charCode;\n      });\n\n      for (let i = 1; i < mappings.length; i++) {\n        if (mappings[i - 1].charCode === mappings[i].charCode) {\n          mappings.splice(i, 1);\n          i--;\n        }\n      }\n\n      return {\n        platformId: potentialTable.platformId,\n        encodingId: potentialTable.encodingId,\n        mappings,\n        hasShortCmap\n      };\n    }\n\n    function sanitizeMetrics(file, header, metrics, headTable, numGlyphs, dupFirstEntry) {\n      if (!header) {\n        if (metrics) {\n          metrics.data = null;\n        }\n\n        return;\n      }\n\n      file.pos = (file.start || 0) + header.offset;\n      file.pos += 4;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      const caretOffset = file.getUint16();\n      file.pos += 8;\n      file.pos += 2;\n      let numOfMetrics = file.getUint16();\n\n      if (caretOffset !== 0) {\n        const macStyle = int16(headTable.data[44], headTable.data[45]);\n\n        if (!(macStyle & 2)) {\n          header.data[22] = 0;\n          header.data[23] = 0;\n        }\n      }\n\n      if (numOfMetrics > numGlyphs) {\n        (0, _util.info)(`The numOfMetrics (${numOfMetrics}) should not be ` + `greater than the numGlyphs (${numGlyphs}).`);\n        numOfMetrics = numGlyphs;\n        header.data[34] = (numOfMetrics & 0xff00) >> 8;\n        header.data[35] = numOfMetrics & 0x00ff;\n      }\n\n      const numOfSidebearings = numGlyphs - numOfMetrics;\n      const numMissing = numOfSidebearings - (metrics.length - numOfMetrics * 4 >> 1);\n\n      if (numMissing > 0) {\n        const entries = new Uint8Array(metrics.length + numMissing * 2);\n        entries.set(metrics.data);\n\n        if (dupFirstEntry) {\n          entries[metrics.length] = metrics.data[2];\n          entries[metrics.length + 1] = metrics.data[3];\n        }\n\n        metrics.data = entries;\n      }\n    }\n\n    function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, hintsValid) {\n      const glyphProfile = {\n        length: 0,\n        sizeOfInstructions: 0\n      };\n\n      if (sourceEnd - sourceStart <= 12) {\n        return glyphProfile;\n      }\n\n      const glyf = source.subarray(sourceStart, sourceEnd);\n      let contoursCount = signedInt16(glyf[0], glyf[1]);\n\n      if (contoursCount < 0) {\n        contoursCount = -1;\n        writeSignedInt16(glyf, 0, contoursCount);\n        dest.set(glyf, destStart);\n        glyphProfile.length = glyf.length;\n        return glyphProfile;\n      }\n\n      let i,\n          j = 10,\n          flagsCount = 0;\n\n      for (i = 0; i < contoursCount; i++) {\n        const endPoint = glyf[j] << 8 | glyf[j + 1];\n        flagsCount = endPoint + 1;\n        j += 2;\n      }\n\n      const instructionsStart = j;\n      const instructionsLength = glyf[j] << 8 | glyf[j + 1];\n      glyphProfile.sizeOfInstructions = instructionsLength;\n      j += 2 + instructionsLength;\n      const instructionsEnd = j;\n      let coordinatesLength = 0;\n\n      for (i = 0; i < flagsCount; i++) {\n        const flag = glyf[j++];\n\n        if (flag & 0xc0) {\n          glyf[j - 1] = flag & 0x3f;\n        }\n\n        let xLength = 2;\n\n        if (flag & 2) {\n          xLength = 1;\n        } else if (flag & 16) {\n          xLength = 0;\n        }\n\n        let yLength = 2;\n\n        if (flag & 4) {\n          yLength = 1;\n        } else if (flag & 32) {\n          yLength = 0;\n        }\n\n        const xyLength = xLength + yLength;\n        coordinatesLength += xyLength;\n\n        if (flag & 8) {\n          const repeat = glyf[j++];\n          i += repeat;\n          coordinatesLength += repeat * xyLength;\n        }\n      }\n\n      if (coordinatesLength === 0) {\n        return glyphProfile;\n      }\n\n      let glyphDataLength = j + coordinatesLength;\n\n      if (glyphDataLength > glyf.length) {\n        return glyphProfile;\n      }\n\n      if (!hintsValid && instructionsLength > 0) {\n        dest.set(glyf.subarray(0, instructionsStart), destStart);\n        dest.set([0, 0], destStart + instructionsStart);\n        dest.set(glyf.subarray(instructionsEnd, glyphDataLength), destStart + instructionsStart + 2);\n        glyphDataLength -= instructionsLength;\n\n        if (glyf.length - glyphDataLength > 3) {\n          glyphDataLength = glyphDataLength + 3 & ~3;\n        }\n\n        glyphProfile.length = glyphDataLength;\n        return glyphProfile;\n      }\n\n      if (glyf.length - glyphDataLength > 3) {\n        glyphDataLength = glyphDataLength + 3 & ~3;\n        dest.set(glyf.subarray(0, glyphDataLength), destStart);\n        glyphProfile.length = glyphDataLength;\n        return glyphProfile;\n      }\n\n      dest.set(glyf, destStart);\n      glyphProfile.length = glyf.length;\n      return glyphProfile;\n    }\n\n    function sanitizeHead(head, numGlyphs, locaLength) {\n      const data = head.data;\n      const version = int32(data[0], data[1], data[2], data[3]);\n\n      if (version >> 16 !== 1) {\n        (0, _util.info)(\"Attempting to fix invalid version in head table: \" + version);\n        data[0] = 0;\n        data[1] = 1;\n        data[2] = 0;\n        data[3] = 0;\n      }\n\n      const indexToLocFormat = int16(data[50], data[51]);\n\n      if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n        (0, _util.info)(\"Attempting to fix invalid indexToLocFormat in head table: \" + indexToLocFormat);\n        const numGlyphsPlusOne = numGlyphs + 1;\n\n        if (locaLength === numGlyphsPlusOne << 1) {\n          data[50] = 0;\n          data[51] = 0;\n        } else if (locaLength === numGlyphsPlusOne << 2) {\n          data[50] = 0;\n          data[51] = 1;\n        } else {\n          throw new _util.FormatError(\"Could not fix indexToLocFormat: \" + indexToLocFormat);\n        }\n      }\n    }\n\n    function sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions) {\n      let itemSize, itemDecode, itemEncode;\n\n      if (isGlyphLocationsLong) {\n        itemSize = 4;\n\n        itemDecode = function fontItemDecodeLong(data, offset) {\n          return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n        };\n\n        itemEncode = function fontItemEncodeLong(data, offset, value) {\n          data[offset] = value >>> 24 & 0xff;\n          data[offset + 1] = value >> 16 & 0xff;\n          data[offset + 2] = value >> 8 & 0xff;\n          data[offset + 3] = value & 0xff;\n        };\n      } else {\n        itemSize = 2;\n\n        itemDecode = function fontItemDecode(data, offset) {\n          return data[offset] << 9 | data[offset + 1] << 1;\n        };\n\n        itemEncode = function fontItemEncode(data, offset, value) {\n          data[offset] = value >> 9 & 0xff;\n          data[offset + 1] = value >> 1 & 0xff;\n        };\n      }\n\n      const numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n      const locaDataSize = itemSize * (1 + numGlyphsOut);\n      const locaData = new Uint8Array(locaDataSize);\n      locaData.set(loca.data.subarray(0, locaDataSize));\n      loca.data = locaData;\n      const oldGlyfData = glyf.data;\n      const oldGlyfDataLength = oldGlyfData.length;\n      const newGlyfData = new Uint8Array(oldGlyfDataLength);\n      let i, j;\n      const locaEntries = [];\n\n      for (i = 0, j = 0; i < numGlyphs + 1; i++, j += itemSize) {\n        let offset = itemDecode(locaData, j);\n\n        if (offset > oldGlyfDataLength) {\n          offset = oldGlyfDataLength;\n        }\n\n        locaEntries.push({\n          index: i,\n          offset,\n          endOffset: 0\n        });\n      }\n\n      locaEntries.sort((a, b) => {\n        return a.offset - b.offset;\n      });\n\n      for (i = 0; i < numGlyphs; i++) {\n        locaEntries[i].endOffset = locaEntries[i + 1].offset;\n      }\n\n      locaEntries.sort((a, b) => {\n        return a.index - b.index;\n      });\n\n      for (i = 0; i < numGlyphs; i++) {\n        const {\n          offset,\n          endOffset\n        } = locaEntries[i];\n\n        if (offset !== 0 || endOffset !== 0) {\n          break;\n        }\n\n        const nextOffset = locaEntries[i + 1].offset;\n\n        if (nextOffset === 0) {\n          continue;\n        }\n\n        locaEntries[i].endOffset = nextOffset;\n        break;\n      }\n\n      const missingGlyphs = Object.create(null);\n      let writeOffset = 0;\n      itemEncode(locaData, 0, writeOffset);\n\n      for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n        const glyphProfile = sanitizeGlyph(oldGlyfData, locaEntries[i].offset, locaEntries[i].endOffset, newGlyfData, writeOffset, hintsValid);\n        const newLength = glyphProfile.length;\n\n        if (newLength === 0) {\n          missingGlyphs[i] = true;\n        }\n\n        if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n          maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n        }\n\n        writeOffset += newLength;\n        itemEncode(locaData, j, writeOffset);\n      }\n\n      if (writeOffset === 0) {\n        const simpleGlyph = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]);\n\n        for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n          itemEncode(locaData, j, simpleGlyph.length);\n        }\n\n        glyf.data = simpleGlyph;\n      } else if (dupFirstEntry) {\n        const firstEntryLength = itemDecode(locaData, itemSize);\n\n        if (newGlyfData.length > firstEntryLength + writeOffset) {\n          glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n        } else {\n          glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n          glyf.data.set(newGlyfData.subarray(0, writeOffset));\n        }\n\n        glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n        itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength);\n      } else {\n        glyf.data = newGlyfData.subarray(0, writeOffset);\n      }\n\n      return {\n        missingGlyphs,\n        maxSizeOfInstructions\n      };\n    }\n\n    function readPostScriptTable(post, propertiesObj, maxpNumGlyphs) {\n      const start = (font.start || 0) + post.offset;\n      font.pos = start;\n      const length = post.length,\n            end = start + length;\n      const version = font.getInt32();\n      font.skip(28);\n      let glyphNames;\n      let valid = true;\n      let i;\n\n      switch (version) {\n        case 0x00010000:\n          glyphNames = _fonts_utils.MacStandardGlyphOrdering;\n          break;\n\n        case 0x00020000:\n          const numGlyphs = font.getUint16();\n\n          if (numGlyphs !== maxpNumGlyphs) {\n            valid = false;\n            break;\n          }\n\n          const glyphNameIndexes = [];\n\n          for (i = 0; i < numGlyphs; ++i) {\n            const index = font.getUint16();\n\n            if (index >= 32768) {\n              valid = false;\n              break;\n            }\n\n            glyphNameIndexes.push(index);\n          }\n\n          if (!valid) {\n            break;\n          }\n\n          const customNames = [],\n                strBuf = [];\n\n          while (font.pos < end) {\n            const stringLength = font.getByte();\n            strBuf.length = stringLength;\n\n            for (i = 0; i < stringLength; ++i) {\n              strBuf[i] = String.fromCharCode(font.getByte());\n            }\n\n            customNames.push(strBuf.join(\"\"));\n          }\n\n          glyphNames = [];\n\n          for (i = 0; i < numGlyphs; ++i) {\n            const j = glyphNameIndexes[i];\n\n            if (j < 258) {\n              glyphNames.push(_fonts_utils.MacStandardGlyphOrdering[j]);\n              continue;\n            }\n\n            glyphNames.push(customNames[j - 258]);\n          }\n\n          break;\n\n        case 0x00030000:\n          break;\n\n        default:\n          (0, _util.warn)(\"Unknown/unsupported post table version \" + version);\n          valid = false;\n\n          if (propertiesObj.defaultEncoding) {\n            glyphNames = propertiesObj.defaultEncoding;\n          }\n\n          break;\n      }\n\n      propertiesObj.glyphNames = glyphNames;\n      return valid;\n    }\n\n    function readNameTable(nameTable) {\n      const start = (font.start || 0) + nameTable.offset;\n      font.pos = start;\n      const names = [[], []];\n      const length = nameTable.length,\n            end = start + length;\n      const format = font.getUint16();\n      const FORMAT_0_HEADER_LENGTH = 6;\n\n      if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n        return names;\n      }\n\n      const numRecords = font.getUint16();\n      const stringsStart = font.getUint16();\n      const records = [];\n      const NAME_RECORD_LENGTH = 12;\n      let i, ii;\n\n      for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\n        const r = {\n          platform: font.getUint16(),\n          encoding: font.getUint16(),\n          language: font.getUint16(),\n          name: font.getUint16(),\n          length: font.getUint16(),\n          offset: font.getUint16()\n        };\n\n        if (r.platform === 1 && r.encoding === 0 && r.language === 0 || r.platform === 3 && r.encoding === 1 && r.language === 0x409) {\n          records.push(r);\n        }\n      }\n\n      for (i = 0, ii = records.length; i < ii; i++) {\n        const record = records[i];\n\n        if (record.length <= 0) {\n          continue;\n        }\n\n        const pos = start + stringsStart + record.offset;\n\n        if (pos + record.length > end) {\n          continue;\n        }\n\n        font.pos = pos;\n        const nameIndex = record.name;\n\n        if (record.encoding) {\n          let str = \"\";\n\n          for (let j = 0, jj = record.length; j < jj; j += 2) {\n            str += String.fromCharCode(font.getUint16());\n          }\n\n          names[1][nameIndex] = str;\n        } else {\n          names[0][nameIndex] = font.getString(record.length);\n        }\n      }\n\n      return names;\n    }\n\n    const TTOpsStackDeltas = [0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n\n    function sanitizeTTProgram(table, ttContext) {\n      let data = table.data;\n      let i = 0,\n          j,\n          n,\n          b,\n          funcId,\n          pc,\n          lastEndf = 0,\n          lastDeff = 0;\n      const stack = [];\n      const callstack = [];\n      const functionsCalled = [];\n      let tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n      let inFDEF = false,\n          ifLevel = 0,\n          inELSE = 0;\n\n      for (let ii = data.length; i < ii;) {\n        const op = data[i++];\n\n        if (op === 0x40) {\n          n = data[i++];\n\n          if (inFDEF || inELSE) {\n            i += n;\n          } else {\n            for (j = 0; j < n; j++) {\n              stack.push(data[i++]);\n            }\n          }\n        } else if (op === 0x41) {\n          n = data[i++];\n\n          if (inFDEF || inELSE) {\n            i += n * 2;\n          } else {\n            for (j = 0; j < n; j++) {\n              b = data[i++];\n              stack.push(b << 8 | data[i++]);\n            }\n          }\n        } else if ((op & 0xf8) === 0xb0) {\n          n = op - 0xb0 + 1;\n\n          if (inFDEF || inELSE) {\n            i += n;\n          } else {\n            for (j = 0; j < n; j++) {\n              stack.push(data[i++]);\n            }\n          }\n        } else if ((op & 0xf8) === 0xb8) {\n          n = op - 0xb8 + 1;\n\n          if (inFDEF || inELSE) {\n            i += n * 2;\n          } else {\n            for (j = 0; j < n; j++) {\n              b = data[i++];\n              stack.push(b << 8 | data[i++]);\n            }\n          }\n        } else if (op === 0x2b && !tooComplexToFollowFunctions) {\n          if (!inFDEF && !inELSE) {\n            funcId = stack.at(-1);\n\n            if (isNaN(funcId)) {\n              (0, _util.info)(\"TT: CALL empty stack (or invalid entry).\");\n            } else {\n              ttContext.functionsUsed[funcId] = true;\n\n              if (funcId in ttContext.functionsStackDeltas) {\n                const newStackLength = stack.length + ttContext.functionsStackDeltas[funcId];\n\n                if (newStackLength < 0) {\n                  (0, _util.warn)(\"TT: CALL invalid functions stack delta.\");\n                  ttContext.hintsValid = false;\n                  return;\n                }\n\n                stack.length = newStackLength;\n              } else if (funcId in ttContext.functionsDefined && !functionsCalled.includes(funcId)) {\n                callstack.push({\n                  data,\n                  i,\n                  stackTop: stack.length - 1\n                });\n                functionsCalled.push(funcId);\n                pc = ttContext.functionsDefined[funcId];\n\n                if (!pc) {\n                  (0, _util.warn)(\"TT: CALL non-existent function\");\n                  ttContext.hintsValid = false;\n                  return;\n                }\n\n                data = pc.data;\n                i = pc.i;\n              }\n            }\n          }\n        } else if (op === 0x2c && !tooComplexToFollowFunctions) {\n          if (inFDEF || inELSE) {\n            (0, _util.warn)(\"TT: nested FDEFs not allowed\");\n            tooComplexToFollowFunctions = true;\n          }\n\n          inFDEF = true;\n          lastDeff = i;\n          funcId = stack.pop();\n          ttContext.functionsDefined[funcId] = {\n            data,\n            i\n          };\n        } else if (op === 0x2d) {\n          if (inFDEF) {\n            inFDEF = false;\n            lastEndf = i;\n          } else {\n            pc = callstack.pop();\n\n            if (!pc) {\n              (0, _util.warn)(\"TT: ENDF bad stack\");\n              ttContext.hintsValid = false;\n              return;\n            }\n\n            funcId = functionsCalled.pop();\n            data = pc.data;\n            i = pc.i;\n            ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n          }\n        } else if (op === 0x89) {\n          if (inFDEF || inELSE) {\n            (0, _util.warn)(\"TT: nested IDEFs not allowed\");\n            tooComplexToFollowFunctions = true;\n          }\n\n          inFDEF = true;\n          lastDeff = i;\n        } else if (op === 0x58) {\n          ++ifLevel;\n        } else if (op === 0x1b) {\n          inELSE = ifLevel;\n        } else if (op === 0x59) {\n          if (inELSE === ifLevel) {\n            inELSE = 0;\n          }\n\n          --ifLevel;\n        } else if (op === 0x1c) {\n          if (!inFDEF && !inELSE) {\n            const offset = stack.at(-1);\n\n            if (offset > 0) {\n              i += offset - 1;\n            }\n          }\n        }\n\n        if (!inFDEF && !inELSE) {\n          let stackDelta = 0;\n\n          if (op <= 0x8e) {\n            stackDelta = TTOpsStackDeltas[op];\n          } else if (op >= 0xc0 && op <= 0xdf) {\n            stackDelta = -1;\n          } else if (op >= 0xe0) {\n            stackDelta = -2;\n          }\n\n          if (op >= 0x71 && op <= 0x75) {\n            n = stack.pop();\n\n            if (!isNaN(n)) {\n              stackDelta = -n * 2;\n            }\n          }\n\n          while (stackDelta < 0 && stack.length > 0) {\n            stack.pop();\n            stackDelta++;\n          }\n\n          while (stackDelta > 0) {\n            stack.push(NaN);\n            stackDelta--;\n          }\n        }\n      }\n\n      ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n      const content = [data];\n\n      if (i > data.length) {\n        content.push(new Uint8Array(i - data.length));\n      }\n\n      if (lastDeff > lastEndf) {\n        (0, _util.warn)(\"TT: complementing a missing function tail\");\n        content.push(new Uint8Array([0x22, 0x2d]));\n      }\n\n      foldTTTable(table, content);\n    }\n\n    function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n      if (ttContext.tooComplexToFollowFunctions) {\n        return;\n      }\n\n      if (ttContext.functionsDefined.length > maxFunctionDefs) {\n        (0, _util.warn)(\"TT: more functions defined than expected\");\n        ttContext.hintsValid = false;\n        return;\n      }\n\n      for (let j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n        if (j > maxFunctionDefs) {\n          (0, _util.warn)(\"TT: invalid function id: \" + j);\n          ttContext.hintsValid = false;\n          return;\n        }\n\n        if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n          (0, _util.warn)(\"TT: undefined function: \" + j);\n          ttContext.hintsValid = false;\n          return;\n        }\n      }\n    }\n\n    function foldTTTable(table, content) {\n      if (content.length > 1) {\n        let newLength = 0;\n        let j, jj;\n\n        for (j = 0, jj = content.length; j < jj; j++) {\n          newLength += content[j].length;\n        }\n\n        newLength = newLength + 3 & ~3;\n        const result = new Uint8Array(newLength);\n        let pos = 0;\n\n        for (j = 0, jj = content.length; j < jj; j++) {\n          result.set(content[j], pos);\n          pos += content[j].length;\n        }\n\n        table.data = result;\n        table.length = newLength;\n      }\n    }\n\n    function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n      const ttContext = {\n        functionsDefined: [],\n        functionsUsed: [],\n        functionsStackDeltas: [],\n        tooComplexToFollowFunctions: false,\n        hintsValid: true\n      };\n\n      if (fpgm) {\n        sanitizeTTProgram(fpgm, ttContext);\n      }\n\n      if (prep) {\n        sanitizeTTProgram(prep, ttContext);\n      }\n\n      if (fpgm) {\n        checkInvalidFunctions(ttContext, maxFunctionDefs);\n      }\n\n      if (cvt && cvt.length & 1) {\n        const cvtData = new Uint8Array(cvt.length + 1);\n        cvtData.set(cvt.data);\n        cvt.data = cvtData;\n      }\n\n      return ttContext.hintsValid;\n    }\n\n    font = new _stream.Stream(new Uint8Array(font.getBytes()));\n    let header, tables;\n\n    if (isTrueTypeCollectionFile(font)) {\n      const ttcData = readTrueTypeCollectionData(font, this.name);\n      header = ttcData.header;\n      tables = ttcData.tables;\n    } else {\n      header = readOpenTypeHeader(font);\n      tables = readTables(font, header.numTables);\n    }\n\n    let cff, cffFile;\n    const isTrueType = !tables[\"CFF \"];\n\n    if (!isTrueType) {\n      const isComposite = properties.composite && ((properties.cidToGidMap || []).length > 0 || !(properties.cMap instanceof _cmap.IdentityCMap));\n\n      if (header.version === \"OTTO\" && !isComposite || !tables.head || !tables.hhea || !tables.maxp || !tables.post) {\n        cffFile = new _stream.Stream(tables[\"CFF \"].data);\n        cff = new _cff_font.CFFFont(cffFile, properties);\n        adjustWidths(properties);\n        return this.convert(name, cff, properties);\n      }\n\n      delete tables.glyf;\n      delete tables.loca;\n      delete tables.fpgm;\n      delete tables.prep;\n      delete tables[\"cvt \"];\n      this.isOpenType = true;\n    } else {\n      if (!tables.loca) {\n        throw new _util.FormatError('Required \"loca\" table is not found');\n      }\n\n      if (!tables.glyf) {\n        (0, _util.warn)('Required \"glyf\" table is not found -- trying to recover.');\n        tables.glyf = {\n          tag: \"glyf\",\n          data: new Uint8Array(0)\n        };\n      }\n\n      this.isOpenType = false;\n    }\n\n    if (!tables.maxp) {\n      throw new _util.FormatError('Required \"maxp\" table is not found');\n    }\n\n    font.pos = (font.start || 0) + tables.maxp.offset;\n    const version = font.getInt32();\n    const numGlyphs = font.getUint16();\n\n    if (properties.scaleFactors && properties.scaleFactors.length === numGlyphs && isTrueType) {\n      const {\n        scaleFactors\n      } = properties;\n      const isGlyphLocationsLong = int16(tables.head.data[50], tables.head.data[51]);\n      const glyphs = new _glyf.GlyfTable({\n        glyfTable: tables.glyf.data,\n        isGlyphLocationsLong,\n        locaTable: tables.loca.data,\n        numGlyphs\n      });\n      glyphs.scale(scaleFactors);\n      const {\n        glyf,\n        loca,\n        isLocationLong\n      } = glyphs.write();\n      tables.glyf.data = glyf;\n      tables.loca.data = loca;\n\n      if (isLocationLong !== !!isGlyphLocationsLong) {\n        tables.head.data[50] = 0;\n        tables.head.data[51] = isLocationLong ? 1 : 0;\n      }\n\n      const metrics = tables.hmtx.data;\n\n      for (let i = 0; i < numGlyphs; i++) {\n        const j = 4 * i;\n        const advanceWidth = Math.round(scaleFactors[i] * int16(metrics[j], metrics[j + 1]));\n        metrics[j] = advanceWidth >> 8 & 0xff;\n        metrics[j + 1] = advanceWidth & 0xff;\n        const lsb = Math.round(scaleFactors[i] * signedInt16(metrics[j + 2], metrics[j + 3]));\n        writeSignedInt16(metrics, j + 2, lsb);\n      }\n    }\n\n    let numGlyphsOut = numGlyphs + 1;\n    let dupFirstEntry = true;\n\n    if (numGlyphsOut > 0xffff) {\n      dupFirstEntry = false;\n      numGlyphsOut = numGlyphs;\n      (0, _util.warn)(\"Not enough space in glyfs to duplicate first glyph.\");\n    }\n\n    let maxFunctionDefs = 0;\n    let maxSizeOfInstructions = 0;\n\n    if (version >= 0x00010000 && tables.maxp.length >= 22) {\n      font.pos += 8;\n      const maxZones = font.getUint16();\n\n      if (maxZones > 2) {\n        tables.maxp.data[14] = 0;\n        tables.maxp.data[15] = 2;\n      }\n\n      font.pos += 4;\n      maxFunctionDefs = font.getUint16();\n      font.pos += 4;\n      maxSizeOfInstructions = font.getUint16();\n    }\n\n    tables.maxp.data[4] = numGlyphsOut >> 8;\n    tables.maxp.data[5] = numGlyphsOut & 255;\n    const hintsValid = sanitizeTTPrograms(tables.fpgm, tables.prep, tables[\"cvt \"], maxFunctionDefs);\n\n    if (!hintsValid) {\n      delete tables.fpgm;\n      delete tables.prep;\n      delete tables[\"cvt \"];\n    }\n\n    sanitizeMetrics(font, tables.hhea, tables.hmtx, tables.head, numGlyphsOut, dupFirstEntry);\n\n    if (!tables.head) {\n      throw new _util.FormatError('Required \"head\" table is not found');\n    }\n\n    sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0);\n    let missingGlyphs = Object.create(null);\n\n    if (isTrueType) {\n      const isGlyphLocationsLong = int16(tables.head.data[50], tables.head.data[51]);\n      const glyphsInfo = sanitizeGlyphLocations(tables.loca, tables.glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions);\n      missingGlyphs = glyphsInfo.missingGlyphs;\n\n      if (version >= 0x00010000 && tables.maxp.length >= 22) {\n        tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8;\n        tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255;\n      }\n    }\n\n    if (!tables.hhea) {\n      throw new _util.FormatError('Required \"hhea\" table is not found');\n    }\n\n    if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) {\n      tables.hhea.data[10] = 0xff;\n      tables.hhea.data[11] = 0xff;\n    }\n\n    const metricsOverride = {\n      unitsPerEm: int16(tables.head.data[18], tables.head.data[19]),\n      yMax: int16(tables.head.data[42], tables.head.data[43]),\n      yMin: signedInt16(tables.head.data[38], tables.head.data[39]),\n      ascent: signedInt16(tables.hhea.data[4], tables.hhea.data[5]),\n      descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7]),\n      lineGap: signedInt16(tables.hhea.data[8], tables.hhea.data[9])\n    };\n    this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n    this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n    this.lineGap = metricsOverride.lineGap / metricsOverride.unitsPerEm;\n\n    if (this.cssFontInfo && this.cssFontInfo.lineHeight) {\n      this.lineHeight = this.cssFontInfo.metrics.lineHeight;\n      this.lineGap = this.cssFontInfo.metrics.lineGap;\n    } else {\n      this.lineHeight = this.ascent - this.descent + this.lineGap;\n    }\n\n    if (tables.post) {\n      readPostScriptTable(tables.post, properties, numGlyphs);\n    }\n\n    tables.post = {\n      tag: \"post\",\n      data: createPostTable(properties)\n    };\n    const charCodeToGlyphId = [];\n\n    function hasGlyph(glyphId) {\n      return !missingGlyphs[glyphId];\n    }\n\n    if (properties.composite) {\n      const cidToGidMap = properties.cidToGidMap || [];\n      const isCidToGidMapEmpty = cidToGidMap.length === 0;\n      properties.cMap.forEach(function (charCode, cid) {\n        if (typeof cid === \"string\") {\n          cid = convertCidString(charCode, cid, true);\n        }\n\n        if (cid > 0xffff) {\n          throw new _util.FormatError(\"Max size of CID is 65,535\");\n        }\n\n        let glyphId = -1;\n\n        if (isCidToGidMapEmpty) {\n          glyphId = cid;\n        } else if (cidToGidMap[cid] !== undefined) {\n          glyphId = cidToGidMap[cid];\n        }\n\n        if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n          charCodeToGlyphId[charCode] = glyphId;\n        }\n      });\n    } else {\n      const cmapTable = readCmapTable(tables.cmap, font, this.isSymbolicFont, properties.hasEncoding);\n      const cmapPlatformId = cmapTable.platformId;\n      const cmapEncodingId = cmapTable.encodingId;\n      const cmapMappings = cmapTable.mappings;\n      const cmapMappingsLength = cmapMappings.length;\n      let baseEncoding = [],\n          forcePostTable = false;\n\n      if (properties.hasEncoding && (properties.baseEncodingName === \"MacRomanEncoding\" || properties.baseEncodingName === \"WinAnsiEncoding\")) {\n        baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n      }\n\n      if (properties.hasEncoding && !this.isSymbolicFont && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0)) {\n        const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n        for (let charCode = 0; charCode < 256; charCode++) {\n          let glyphName;\n\n          if (this.differences[charCode] !== undefined) {\n            glyphName = this.differences[charCode];\n          } else if (baseEncoding.length && baseEncoding[charCode] !== \"\") {\n            glyphName = baseEncoding[charCode];\n          } else {\n            glyphName = _encodings.StandardEncoding[charCode];\n          }\n\n          if (!glyphName) {\n            continue;\n          }\n\n          const standardGlyphName = (0, _fonts_utils.recoverGlyphName)(glyphName, glyphsUnicodeMap);\n          let unicodeOrCharCode;\n\n          if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n            unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n          } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n            unicodeOrCharCode = _encodings.MacRomanEncoding.indexOf(standardGlyphName);\n          }\n\n          if (unicodeOrCharCode === undefined) {\n            if (!properties.glyphNames && properties.hasIncludedToUnicodeMap && !(this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap)) {\n              const unicode = this.toUnicode.get(charCode);\n\n              if (unicode) {\n                unicodeOrCharCode = unicode.codePointAt(0);\n              }\n            }\n\n            if (unicodeOrCharCode === undefined) {\n              continue;\n            }\n          }\n\n          for (let i = 0; i < cmapMappingsLength; ++i) {\n            if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n              continue;\n            }\n\n            charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n            break;\n          }\n        }\n      } else if (cmapPlatformId === 0) {\n        for (let i = 0; i < cmapMappingsLength; ++i) {\n          charCodeToGlyphId[cmapMappings[i].charCode] = cmapMappings[i].glyphId;\n        }\n\n        forcePostTable = true;\n      } else {\n        for (let i = 0; i < cmapMappingsLength; ++i) {\n          let charCode = cmapMappings[i].charCode;\n\n          if (cmapPlatformId === 3 && charCode >= 0xf000 && charCode <= 0xf0ff) {\n            charCode &= 0xff;\n          }\n\n          charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n        }\n      }\n\n      if (properties.glyphNames && (baseEncoding.length || this.differences.length)) {\n        for (let i = 0; i < 256; ++i) {\n          if (!forcePostTable && charCodeToGlyphId[i] !== undefined) {\n            continue;\n          }\n\n          const glyphName = this.differences[i] || baseEncoding[i];\n\n          if (!glyphName) {\n            continue;\n          }\n\n          const glyphId = properties.glyphNames.indexOf(glyphName);\n\n          if (glyphId > 0 && hasGlyph(glyphId)) {\n            charCodeToGlyphId[i] = glyphId;\n          }\n        }\n      }\n    }\n\n    if (charCodeToGlyphId.length === 0) {\n      charCodeToGlyphId[0] = 0;\n    }\n\n    let glyphZeroId = numGlyphsOut - 1;\n\n    if (!dupFirstEntry) {\n      glyphZeroId = 0;\n    }\n\n    if (!properties.cssFontInfo) {\n      const newMapping = adjustMapping(charCodeToGlyphId, hasGlyph, glyphZeroId, this.toUnicode);\n      this.toFontChar = newMapping.toFontChar;\n      tables.cmap = {\n        tag: \"cmap\",\n        data: createCmapTable(newMapping.charCodeToGlyphId, newMapping.toUnicodeExtraMap, numGlyphsOut)\n      };\n\n      if (!tables[\"OS/2\"] || !validateOS2Table(tables[\"OS/2\"], font)) {\n        tables[\"OS/2\"] = {\n          tag: \"OS/2\",\n          data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride)\n        };\n      }\n    }\n\n    if (!isTrueType) {\n      try {\n        cffFile = new _stream.Stream(tables[\"CFF \"].data);\n        const parser = new _cff_parser.CFFParser(cffFile, properties, _fonts_utils.SEAC_ANALYSIS_ENABLED);\n        cff = parser.parse();\n        cff.duplicateFirstGlyph();\n        const compiler = new _cff_parser.CFFCompiler(cff);\n        tables[\"CFF \"].data = compiler.compile();\n      } catch (e) {\n        (0, _util.warn)(\"Failed to compile font \" + properties.loadedName);\n      }\n    }\n\n    if (!tables.name) {\n      tables.name = {\n        tag: \"name\",\n        data: createNameTable(this.name)\n      };\n    } else {\n      const namePrototype = readNameTable(tables.name);\n      tables.name.data = createNameTable(name, namePrototype);\n      this.psName = namePrototype[0][6] || null;\n    }\n\n    const builder = new _opentype_file_builder.OpenTypeFileBuilder(header.version);\n\n    for (const tableTag in tables) {\n      builder.addTable(tableTag, tables[tableTag].data);\n    }\n\n    return builder.toArray();\n  }\n\n  convert(fontName, font, properties) {\n    properties.fixedPitch = false;\n\n    if (properties.builtInEncoding) {\n      adjustToUnicode(properties, properties.builtInEncoding);\n    }\n\n    let glyphZeroId = 1;\n\n    if (font instanceof _cff_font.CFFFont) {\n      glyphZeroId = font.numGlyphs - 1;\n    }\n\n    const mapping = font.getGlyphMapping(properties);\n    let newMapping = null;\n    let newCharCodeToGlyphId = mapping;\n    let toUnicodeExtraMap = null;\n\n    if (!properties.cssFontInfo) {\n      newMapping = adjustMapping(mapping, font.hasGlyphId.bind(font), glyphZeroId, this.toUnicode);\n      this.toFontChar = newMapping.toFontChar;\n      newCharCodeToGlyphId = newMapping.charCodeToGlyphId;\n      toUnicodeExtraMap = newMapping.toUnicodeExtraMap;\n    }\n\n    const numGlyphs = font.numGlyphs;\n\n    function getCharCodes(charCodeToGlyphId, glyphId) {\n      let charCodes = null;\n\n      for (const charCode in charCodeToGlyphId) {\n        if (glyphId === charCodeToGlyphId[charCode]) {\n          if (!charCodes) {\n            charCodes = [];\n          }\n\n          charCodes.push(charCode | 0);\n        }\n      }\n\n      return charCodes;\n    }\n\n    function createCharCode(charCodeToGlyphId, glyphId) {\n      for (const charCode in charCodeToGlyphId) {\n        if (glyphId === charCodeToGlyphId[charCode]) {\n          return charCode | 0;\n        }\n      }\n\n      newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = glyphId;\n      return newMapping.nextAvailableFontCharCode++;\n    }\n\n    const seacs = font.seacs;\n\n    if (newMapping && _fonts_utils.SEAC_ANALYSIS_ENABLED && seacs && seacs.length) {\n      const matrix = properties.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n      const charset = font.getCharset();\n      const seacMap = Object.create(null);\n\n      for (let glyphId in seacs) {\n        glyphId |= 0;\n        const seac = seacs[glyphId];\n        const baseGlyphName = _encodings.StandardEncoding[seac[2]];\n        const accentGlyphName = _encodings.StandardEncoding[seac[3]];\n        const baseGlyphId = charset.indexOf(baseGlyphName);\n        const accentGlyphId = charset.indexOf(accentGlyphName);\n\n        if (baseGlyphId < 0 || accentGlyphId < 0) {\n          continue;\n        }\n\n        const accentOffset = {\n          x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n          y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5]\n        };\n        const charCodes = getCharCodes(mapping, glyphId);\n\n        if (!charCodes) {\n          continue;\n        }\n\n        for (let i = 0, ii = charCodes.length; i < ii; i++) {\n          const charCode = charCodes[i];\n          const charCodeToGlyphId = newMapping.charCodeToGlyphId;\n          const baseFontCharCode = createCharCode(charCodeToGlyphId, baseGlyphId);\n          const accentFontCharCode = createCharCode(charCodeToGlyphId, accentGlyphId);\n          seacMap[charCode] = {\n            baseFontCharCode,\n            accentFontCharCode,\n            accentOffset\n          };\n        }\n      }\n\n      properties.seacMap = seacMap;\n    }\n\n    const unitsPerEm = 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n    const builder = new _opentype_file_builder.OpenTypeFileBuilder(\"\\x4F\\x54\\x54\\x4F\");\n    builder.addTable(\"CFF \", font.data);\n    builder.addTable(\"OS/2\", createOS2Table(properties, newCharCodeToGlyphId));\n    builder.addTable(\"cmap\", createCmapTable(newCharCodeToGlyphId, toUnicodeExtraMap, numGlyphs));\n    builder.addTable(\"head\", \"\\x00\\x01\\x00\\x00\" + \"\\x00\\x00\\x10\\x00\" + \"\\x00\\x00\\x00\\x00\" + \"\\x5F\\x0F\\x3C\\xF5\" + \"\\x00\\x00\" + safeString16(unitsPerEm) + \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + \"\\x00\\x00\" + safeString16(properties.descent) + \"\\x0F\\xFF\" + safeString16(properties.ascent) + string16(properties.italicAngle ? 2 : 0) + \"\\x00\\x11\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\");\n    builder.addTable(\"hhea\", \"\\x00\\x01\\x00\\x00\" + safeString16(properties.ascent) + safeString16(properties.descent) + \"\\x00\\x00\" + \"\\xFF\\xFF\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + safeString16(properties.capHeight) + safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + string16(numGlyphs));\n    builder.addTable(\"hmtx\", function fontFieldsHmtx() {\n      const charstrings = font.charstrings;\n      const cffWidths = font.cff ? font.cff.widths : null;\n      let hmtx = \"\\x00\\x00\\x00\\x00\";\n\n      for (let i = 1, ii = numGlyphs; i < ii; i++) {\n        let width = 0;\n\n        if (charstrings) {\n          const charstring = charstrings[i - 1];\n          width = \"width\" in charstring ? charstring.width : 0;\n        } else if (cffWidths) {\n          width = Math.ceil(cffWidths[i] || 0);\n        }\n\n        hmtx += string16(width) + string16(0);\n      }\n\n      return hmtx;\n    }());\n    builder.addTable(\"maxp\", \"\\x00\\x00\\x50\\x00\" + string16(numGlyphs));\n    builder.addTable(\"name\", createNameTable(fontName));\n    builder.addTable(\"post\", createPostTable(properties));\n    return builder.toArray();\n  }\n\n  get spaceWidth() {\n    const possibleSpaceReplacements = [\"space\", \"minus\", \"one\", \"i\", \"I\"];\n    let width;\n\n    for (let i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n      const glyphName = possibleSpaceReplacements[i];\n\n      if (glyphName in this.widths) {\n        width = this.widths[glyphName];\n        break;\n      }\n\n      const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n      const glyphUnicode = glyphsUnicodeMap[glyphName];\n      let charcode = 0;\n\n      if (this.composite && this.cMap.contains(glyphUnicode)) {\n        charcode = this.cMap.lookup(glyphUnicode);\n\n        if (typeof charcode === \"string\") {\n          charcode = convertCidString(glyphUnicode, charcode);\n        }\n      }\n\n      if (!charcode && this.toUnicode) {\n        charcode = this.toUnicode.charCodeOf(glyphUnicode);\n      }\n\n      if (charcode <= 0) {\n        charcode = glyphUnicode;\n      }\n\n      width = this.widths[charcode];\n\n      if (width) {\n        break;\n      }\n    }\n\n    width = width || this.defaultWidth;\n    return (0, _util.shadow)(this, \"spaceWidth\", width);\n  }\n\n  _charToGlyph(charcode) {\n    let isSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    let fontCharCode, width, operatorListId;\n    let widthCode = charcode;\n\n    if (this.cMap && this.cMap.contains(charcode)) {\n      widthCode = this.cMap.lookup(charcode);\n\n      if (typeof widthCode === \"string\") {\n        widthCode = convertCidString(charcode, widthCode);\n      }\n    }\n\n    width = this.widths[widthCode];\n\n    if (typeof width !== \"number\") {\n      width = this.defaultWidth;\n    }\n\n    const vmetric = this.vmetrics && this.vmetrics[widthCode];\n    let unicode = this.toUnicode.get(charcode) || charcode;\n\n    if (typeof unicode === \"number\") {\n      unicode = String.fromCharCode(unicode);\n    }\n\n    let isInFont = this.toFontChar[charcode] !== undefined;\n    fontCharCode = this.toFontChar[charcode] || charcode;\n\n    if (this.missingFile) {\n      const glyphName = this.differences[charcode] || this.defaultEncoding[charcode];\n\n      if ((glyphName === \".notdef\" || glyphName === \"\") && this.type === \"Type1\") {\n        fontCharCode = 0x20;\n      }\n\n      fontCharCode = (0, _unicode.mapSpecialUnicodeValues)(fontCharCode);\n    }\n\n    if (this.isType3Font) {\n      operatorListId = fontCharCode;\n    }\n\n    let accent = null;\n\n    if (this.seacMap && this.seacMap[charcode]) {\n      isInFont = true;\n      const seac = this.seacMap[charcode];\n      fontCharCode = seac.baseFontCharCode;\n      accent = {\n        fontChar: String.fromCodePoint(seac.accentFontCharCode),\n        offset: seac.accentOffset\n      };\n    }\n\n    let fontChar = \"\";\n\n    if (typeof fontCharCode === \"number\") {\n      if (fontCharCode <= 0x10ffff) {\n        fontChar = String.fromCodePoint(fontCharCode);\n      } else {\n        (0, _util.warn)(`charToGlyph - invalid fontCharCode: ${fontCharCode}`);\n      }\n    }\n\n    let glyph = this._glyphCache[charcode];\n\n    if (!glyph || !glyph.matchesForCache(charcode, fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont)) {\n      glyph = new Glyph(charcode, fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont);\n      this._glyphCache[charcode] = glyph;\n    }\n\n    return glyph;\n  }\n\n  charsToGlyphs(chars) {\n    let glyphs = this._charsCache[chars];\n\n    if (glyphs) {\n      return glyphs;\n    }\n\n    glyphs = [];\n\n    if (this.cMap) {\n      const c = Object.create(null),\n            ii = chars.length;\n      let i = 0;\n\n      while (i < ii) {\n        this.cMap.readCharCode(chars, i, c);\n        const {\n          charcode,\n          length\n        } = c;\n        i += length;\n\n        const glyph = this._charToGlyph(charcode, length === 1 && chars.charCodeAt(i - 1) === 0x20);\n\n        glyphs.push(glyph);\n      }\n    } else {\n      for (let i = 0, ii = chars.length; i < ii; ++i) {\n        const charcode = chars.charCodeAt(i);\n\n        const glyph = this._charToGlyph(charcode, charcode === 0x20);\n\n        glyphs.push(glyph);\n      }\n    }\n\n    return this._charsCache[chars] = glyphs;\n  }\n\n  getCharPositions(chars) {\n    const positions = [];\n\n    if (this.cMap) {\n      const c = Object.create(null);\n      let i = 0;\n\n      while (i < chars.length) {\n        this.cMap.readCharCode(chars, i, c);\n        const length = c.length;\n        positions.push([i, i + length]);\n        i += length;\n      }\n    } else {\n      for (let i = 0, ii = chars.length; i < ii; ++i) {\n        positions.push([i, i + 1]);\n      }\n    }\n\n    return positions;\n  }\n\n  get glyphCacheValues() {\n    return Object.values(this._glyphCache);\n  }\n\n  encodeString(str) {\n    const buffers = [];\n    const currentBuf = [];\n\n    const hasCurrentBufErrors = () => buffers.length % 2 === 1;\n\n    const getCharCode = this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap ? unicode => this.toUnicode.charCodeOf(unicode) : unicode => this.toUnicode.charCodeOf(String.fromCodePoint(unicode));\n\n    for (let i = 0, ii = str.length; i < ii; i++) {\n      const unicode = str.codePointAt(i);\n\n      if (unicode > 0xd7ff && (unicode < 0xe000 || unicode > 0xfffd)) {\n        i++;\n      }\n\n      if (this.toUnicode) {\n        const charCode = getCharCode(unicode);\n\n        if (charCode !== -1) {\n          if (hasCurrentBufErrors()) {\n            buffers.push(currentBuf.join(\"\"));\n            currentBuf.length = 0;\n          }\n\n          const charCodeLength = this.cMap ? this.cMap.getCharCodeLength(charCode) : 1;\n\n          for (let j = charCodeLength - 1; j >= 0; j--) {\n            currentBuf.push(String.fromCharCode(charCode >> 8 * j & 0xff));\n          }\n\n          continue;\n        }\n      }\n\n      if (!hasCurrentBufErrors()) {\n        buffers.push(currentBuf.join(\"\"));\n        currentBuf.length = 0;\n      }\n\n      currentBuf.push(String.fromCodePoint(unicode));\n    }\n\n    buffers.push(currentBuf.join(\"\"));\n    return buffers;\n  }\n\n}\n\nexports.Font = Font;\n\nclass ErrorFont {\n  constructor(error) {\n    this.error = error;\n    this.loadedName = \"g_font_error\";\n    this.missingFile = true;\n  }\n\n  charsToGlyphs() {\n    return [];\n  }\n\n  encodeString(chars) {\n    return [chars];\n  }\n\n  exportData() {\n    let extraProperties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    return {\n      error: this.error\n    };\n  }\n\n}\n\nexports.ErrorFont = ErrorFont;\n\n/***/ }),\n/* 160 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CFFTopDict = exports.CFFStrings = exports.CFFStandardStrings = exports.CFFPrivateDict = exports.CFFParser = exports.CFFIndex = exports.CFFHeader = exports.CFFFDSelect = exports.CFFCompiler = exports.CFFCharset = exports.CFF = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _charsets = __w_pdfjs_require__(161);\n\nvar _encodings = __w_pdfjs_require__(162);\n\nconst MAX_SUBR_NESTING = 10;\nconst CFFStandardStrings = [\".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\", \"001.000\", \"001.001\", \"001.002\", \"001.003\", \"Black\", \"Bold\", \"Book\", \"Light\", \"Medium\", \"Regular\", \"Roman\", \"Semibold\"];\nexports.CFFStandardStrings = CFFStandardStrings;\nconst NUM_STANDARD_CFF_STRINGS = 391;\nconst CharstringValidationData = [null, {\n  id: \"hstem\",\n  min: 2,\n  stackClearing: true,\n  stem: true\n}, null, {\n  id: \"vstem\",\n  min: 2,\n  stackClearing: true,\n  stem: true\n}, {\n  id: \"vmoveto\",\n  min: 1,\n  stackClearing: true\n}, {\n  id: \"rlineto\",\n  min: 2,\n  resetStack: true\n}, {\n  id: \"hlineto\",\n  min: 1,\n  resetStack: true\n}, {\n  id: \"vlineto\",\n  min: 1,\n  resetStack: true\n}, {\n  id: \"rrcurveto\",\n  min: 6,\n  resetStack: true\n}, null, {\n  id: \"callsubr\",\n  min: 1,\n  undefStack: true\n}, {\n  id: \"return\",\n  min: 0,\n  undefStack: true\n}, null, null, {\n  id: \"endchar\",\n  min: 0,\n  stackClearing: true\n}, null, null, null, {\n  id: \"hstemhm\",\n  min: 2,\n  stackClearing: true,\n  stem: true\n}, {\n  id: \"hintmask\",\n  min: 0,\n  stackClearing: true\n}, {\n  id: \"cntrmask\",\n  min: 0,\n  stackClearing: true\n}, {\n  id: \"rmoveto\",\n  min: 2,\n  stackClearing: true\n}, {\n  id: \"hmoveto\",\n  min: 1,\n  stackClearing: true\n}, {\n  id: \"vstemhm\",\n  min: 2,\n  stackClearing: true,\n  stem: true\n}, {\n  id: \"rcurveline\",\n  min: 8,\n  resetStack: true\n}, {\n  id: \"rlinecurve\",\n  min: 8,\n  resetStack: true\n}, {\n  id: \"vvcurveto\",\n  min: 4,\n  resetStack: true\n}, {\n  id: \"hhcurveto\",\n  min: 4,\n  resetStack: true\n}, null, {\n  id: \"callgsubr\",\n  min: 1,\n  undefStack: true\n}, {\n  id: \"vhcurveto\",\n  min: 4,\n  resetStack: true\n}, {\n  id: \"hvcurveto\",\n  min: 4,\n  resetStack: true\n}];\nconst CharstringValidationData12 = [null, null, null, {\n  id: \"and\",\n  min: 2,\n  stackDelta: -1\n}, {\n  id: \"or\",\n  min: 2,\n  stackDelta: -1\n}, {\n  id: \"not\",\n  min: 1,\n  stackDelta: 0\n}, null, null, null, {\n  id: \"abs\",\n  min: 1,\n  stackDelta: 0\n}, {\n  id: \"add\",\n  min: 2,\n  stackDelta: -1,\n\n  stackFn(stack, index) {\n    stack[index - 2] = stack[index - 2] + stack[index - 1];\n  }\n\n}, {\n  id: \"sub\",\n  min: 2,\n  stackDelta: -1,\n\n  stackFn(stack, index) {\n    stack[index - 2] = stack[index - 2] - stack[index - 1];\n  }\n\n}, {\n  id: \"div\",\n  min: 2,\n  stackDelta: -1,\n\n  stackFn(stack, index) {\n    stack[index - 2] = stack[index - 2] / stack[index - 1];\n  }\n\n}, null, {\n  id: \"neg\",\n  min: 1,\n  stackDelta: 0,\n\n  stackFn(stack, index) {\n    stack[index - 1] = -stack[index - 1];\n  }\n\n}, {\n  id: \"eq\",\n  min: 2,\n  stackDelta: -1\n}, null, null, {\n  id: \"drop\",\n  min: 1,\n  stackDelta: -1\n}, null, {\n  id: \"put\",\n  min: 2,\n  stackDelta: -2\n}, {\n  id: \"get\",\n  min: 1,\n  stackDelta: 0\n}, {\n  id: \"ifelse\",\n  min: 4,\n  stackDelta: -3\n}, {\n  id: \"random\",\n  min: 0,\n  stackDelta: 1\n}, {\n  id: \"mul\",\n  min: 2,\n  stackDelta: -1,\n\n  stackFn(stack, index) {\n    stack[index - 2] = stack[index - 2] * stack[index - 1];\n  }\n\n}, null, {\n  id: \"sqrt\",\n  min: 1,\n  stackDelta: 0\n}, {\n  id: \"dup\",\n  min: 1,\n  stackDelta: 1\n}, {\n  id: \"exch\",\n  min: 2,\n  stackDelta: 0\n}, {\n  id: \"index\",\n  min: 2,\n  stackDelta: 0\n}, {\n  id: \"roll\",\n  min: 3,\n  stackDelta: -2\n}, null, null, null, {\n  id: \"hflex\",\n  min: 7,\n  resetStack: true\n}, {\n  id: \"flex\",\n  min: 13,\n  resetStack: true\n}, {\n  id: \"hflex1\",\n  min: 9,\n  resetStack: true\n}, {\n  id: \"flex1\",\n  min: 11,\n  resetStack: true\n}];\n\nclass CFFParser {\n  constructor(file, properties, seacAnalysisEnabled) {\n    this.bytes = file.getBytes();\n    this.properties = properties;\n    this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n  }\n\n  parse() {\n    const properties = this.properties;\n    const cff = new CFF();\n    this.cff = cff;\n    const header = this.parseHeader();\n    const nameIndex = this.parseIndex(header.endPos);\n    const topDictIndex = this.parseIndex(nameIndex.endPos);\n    const stringIndex = this.parseIndex(topDictIndex.endPos);\n    const globalSubrIndex = this.parseIndex(stringIndex.endPos);\n    const topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n    const topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n    cff.header = header.obj;\n    cff.names = this.parseNameIndex(nameIndex.obj);\n    cff.strings = this.parseStringIndex(stringIndex.obj);\n    cff.topDict = topDict;\n    cff.globalSubrIndex = globalSubrIndex.obj;\n    this.parsePrivateDict(cff.topDict);\n    cff.isCIDFont = topDict.hasName(\"ROS\");\n    const charStringOffset = topDict.getByName(\"CharStrings\");\n    const charStringIndex = this.parseIndex(charStringOffset).obj;\n    const fontMatrix = topDict.getByName(\"FontMatrix\");\n\n    if (fontMatrix) {\n      properties.fontMatrix = fontMatrix;\n    }\n\n    const fontBBox = topDict.getByName(\"FontBBox\");\n\n    if (fontBBox) {\n      properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n      properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n      properties.ascentScaled = true;\n    }\n\n    let charset, encoding;\n\n    if (cff.isCIDFont) {\n      const fdArrayIndex = this.parseIndex(topDict.getByName(\"FDArray\")).obj;\n\n      for (let i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n        const dictRaw = fdArrayIndex.get(i);\n        const fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), cff.strings);\n        this.parsePrivateDict(fontDict);\n        cff.fdArray.push(fontDict);\n      }\n\n      encoding = null;\n      charset = this.parseCharsets(topDict.getByName(\"charset\"), charStringIndex.count, cff.strings, true);\n      cff.fdSelect = this.parseFDSelect(topDict.getByName(\"FDSelect\"), charStringIndex.count);\n    } else {\n      charset = this.parseCharsets(topDict.getByName(\"charset\"), charStringIndex.count, cff.strings, false);\n      encoding = this.parseEncoding(topDict.getByName(\"Encoding\"), properties, cff.strings, charset.charset);\n    }\n\n    cff.charset = charset;\n    cff.encoding = encoding;\n    const charStringsAndSeacs = this.parseCharStrings({\n      charStrings: charStringIndex,\n      localSubrIndex: topDict.privateDict.subrsIndex,\n      globalSubrIndex: globalSubrIndex.obj,\n      fdSelect: cff.fdSelect,\n      fdArray: cff.fdArray,\n      privateDict: topDict.privateDict\n    });\n    cff.charStrings = charStringsAndSeacs.charStrings;\n    cff.seacs = charStringsAndSeacs.seacs;\n    cff.widths = charStringsAndSeacs.widths;\n    return cff;\n  }\n\n  parseHeader() {\n    let bytes = this.bytes;\n    const bytesLength = bytes.length;\n    let offset = 0;\n\n    while (offset < bytesLength && bytes[offset] !== 1) {\n      ++offset;\n    }\n\n    if (offset >= bytesLength) {\n      throw new _util.FormatError(\"Invalid CFF header\");\n    }\n\n    if (offset !== 0) {\n      (0, _util.info)(\"cff data is shifted\");\n      bytes = bytes.subarray(offset);\n      this.bytes = bytes;\n    }\n\n    const major = bytes[0];\n    const minor = bytes[1];\n    const hdrSize = bytes[2];\n    const offSize = bytes[3];\n    const header = new CFFHeader(major, minor, hdrSize, offSize);\n    return {\n      obj: header,\n      endPos: hdrSize\n    };\n  }\n\n  parseDict(dict) {\n    let pos = 0;\n\n    function parseOperand() {\n      let value = dict[pos++];\n\n      if (value === 30) {\n        return parseFloatOperand();\n      } else if (value === 28) {\n        value = dict[pos++];\n        value = (value << 24 | dict[pos++] << 16) >> 16;\n        return value;\n      } else if (value === 29) {\n        value = dict[pos++];\n        value = value << 8 | dict[pos++];\n        value = value << 8 | dict[pos++];\n        value = value << 8 | dict[pos++];\n        return value;\n      } else if (value >= 32 && value <= 246) {\n        return value - 139;\n      } else if (value >= 247 && value <= 250) {\n        return (value - 247) * 256 + dict[pos++] + 108;\n      } else if (value >= 251 && value <= 254) {\n        return -((value - 251) * 256) - dict[pos++] - 108;\n      }\n\n      (0, _util.warn)('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n      return NaN;\n    }\n\n    function parseFloatOperand() {\n      let str = \"\";\n      const eof = 15;\n      const lookup = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \".\", \"E\", \"E-\", null, \"-\"];\n      const length = dict.length;\n\n      while (pos < length) {\n        const b = dict[pos++];\n        const b1 = b >> 4;\n        const b2 = b & 15;\n\n        if (b1 === eof) {\n          break;\n        }\n\n        str += lookup[b1];\n\n        if (b2 === eof) {\n          break;\n        }\n\n        str += lookup[b2];\n      }\n\n      return parseFloat(str);\n    }\n\n    let operands = [];\n    const entries = [];\n    pos = 0;\n    const end = dict.length;\n\n    while (pos < end) {\n      let b = dict[pos];\n\n      if (b <= 21) {\n        if (b === 12) {\n          b = b << 8 | dict[++pos];\n        }\n\n        entries.push([b, operands]);\n        operands = [];\n        ++pos;\n      } else {\n        operands.push(parseOperand());\n      }\n    }\n\n    return entries;\n  }\n\n  parseIndex(pos) {\n    const cffIndex = new CFFIndex();\n    const bytes = this.bytes;\n    const count = bytes[pos++] << 8 | bytes[pos++];\n    const offsets = [];\n    let end = pos;\n    let i, ii;\n\n    if (count !== 0) {\n      const offsetSize = bytes[pos++];\n      const startPos = pos + (count + 1) * offsetSize - 1;\n\n      for (i = 0, ii = count + 1; i < ii; ++i) {\n        let offset = 0;\n\n        for (let j = 0; j < offsetSize; ++j) {\n          offset <<= 8;\n          offset += bytes[pos++];\n        }\n\n        offsets.push(startPos + offset);\n      }\n\n      end = offsets[count];\n    }\n\n    for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n      const offsetStart = offsets[i];\n      const offsetEnd = offsets[i + 1];\n      cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n    }\n\n    return {\n      obj: cffIndex,\n      endPos: end\n    };\n  }\n\n  parseNameIndex(index) {\n    const names = [];\n\n    for (let i = 0, ii = index.count; i < ii; ++i) {\n      const name = index.get(i);\n      names.push((0, _util.bytesToString)(name));\n    }\n\n    return names;\n  }\n\n  parseStringIndex(index) {\n    const strings = new CFFStrings();\n\n    for (let i = 0, ii = index.count; i < ii; ++i) {\n      const data = index.get(i);\n      strings.add((0, _util.bytesToString)(data));\n    }\n\n    return strings;\n  }\n\n  createDict(Type, dict, strings) {\n    const cffDict = new Type(strings);\n\n    for (let i = 0, ii = dict.length; i < ii; ++i) {\n      const pair = dict[i];\n      const key = pair[0];\n      const value = pair[1];\n      cffDict.setByKey(key, value);\n    }\n\n    return cffDict;\n  }\n\n  parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n    if (!data || state.callDepth > MAX_SUBR_NESTING) {\n      return false;\n    }\n\n    let stackSize = state.stackSize;\n    const stack = state.stack;\n    const length = data.length;\n\n    for (let j = 0; j < length;) {\n      const value = data[j++];\n      let validationCommand = null;\n\n      if (value === 12) {\n        const q = data[j++];\n\n        if (q === 0) {\n          data[j - 2] = 139;\n          data[j - 1] = 22;\n          stackSize = 0;\n        } else {\n          validationCommand = CharstringValidationData12[q];\n        }\n      } else if (value === 28) {\n        stack[stackSize] = (data[j] << 24 | data[j + 1] << 16) >> 16;\n        j += 2;\n        stackSize++;\n      } else if (value === 14) {\n        if (stackSize >= 4) {\n          stackSize -= 4;\n\n          if (this.seacAnalysisEnabled) {\n            state.seac = stack.slice(stackSize, stackSize + 4);\n            return false;\n          }\n        }\n\n        validationCommand = CharstringValidationData[value];\n      } else if (value >= 32 && value <= 246) {\n        stack[stackSize] = value - 139;\n        stackSize++;\n      } else if (value >= 247 && value <= 254) {\n        stack[stackSize] = value < 251 ? (value - 247 << 8) + data[j] + 108 : -(value - 251 << 8) - data[j] - 108;\n        j++;\n        stackSize++;\n      } else if (value === 255) {\n        stack[stackSize] = (data[j] << 24 | data[j + 1] << 16 | data[j + 2] << 8 | data[j + 3]) / 65536;\n        j += 4;\n        stackSize++;\n      } else if (value === 19 || value === 20) {\n        state.hints += stackSize >> 1;\n        j += state.hints + 7 >> 3;\n        stackSize %= 2;\n        validationCommand = CharstringValidationData[value];\n      } else if (value === 10 || value === 29) {\n        let subrsIndex;\n\n        if (value === 10) {\n          subrsIndex = localSubrIndex;\n        } else {\n          subrsIndex = globalSubrIndex;\n        }\n\n        if (!subrsIndex) {\n          validationCommand = CharstringValidationData[value];\n          (0, _util.warn)(\"Missing subrsIndex for \" + validationCommand.id);\n          return false;\n        }\n\n        let bias = 32768;\n\n        if (subrsIndex.count < 1240) {\n          bias = 107;\n        } else if (subrsIndex.count < 33900) {\n          bias = 1131;\n        }\n\n        const subrNumber = stack[--stackSize] + bias;\n\n        if (subrNumber < 0 || subrNumber >= subrsIndex.count || isNaN(subrNumber)) {\n          validationCommand = CharstringValidationData[value];\n          (0, _util.warn)(\"Out of bounds subrIndex for \" + validationCommand.id);\n          return false;\n        }\n\n        state.stackSize = stackSize;\n        state.callDepth++;\n        const valid = this.parseCharString(state, subrsIndex.get(subrNumber), localSubrIndex, globalSubrIndex);\n\n        if (!valid) {\n          return false;\n        }\n\n        state.callDepth--;\n        stackSize = state.stackSize;\n        continue;\n      } else if (value === 11) {\n        state.stackSize = stackSize;\n        return true;\n      } else if (value === 0 && j === data.length) {\n        data[j - 1] = 14;\n        validationCommand = CharstringValidationData[14];\n      } else {\n        validationCommand = CharstringValidationData[value];\n      }\n\n      if (validationCommand) {\n        if (validationCommand.stem) {\n          state.hints += stackSize >> 1;\n\n          if (value === 3 || value === 23) {\n            state.hasVStems = true;\n          } else if (state.hasVStems && (value === 1 || value === 18)) {\n            (0, _util.warn)(\"CFF stem hints are in wrong order\");\n            data[j - 1] = value === 1 ? 3 : 23;\n          }\n        }\n\n        if (\"min\" in validationCommand) {\n          if (!state.undefStack && stackSize < validationCommand.min) {\n            (0, _util.warn)(\"Not enough parameters for \" + validationCommand.id + \"; actual: \" + stackSize + \", expected: \" + validationCommand.min);\n\n            if (stackSize === 0) {\n              data[j - 1] = 14;\n              return true;\n            }\n\n            return false;\n          }\n        }\n\n        if (state.firstStackClearing && validationCommand.stackClearing) {\n          state.firstStackClearing = false;\n          stackSize -= validationCommand.min;\n\n          if (stackSize >= 2 && validationCommand.stem) {\n            stackSize %= 2;\n          } else if (stackSize > 1) {\n            (0, _util.warn)(\"Found too many parameters for stack-clearing command\");\n          }\n\n          if (stackSize > 0) {\n            state.width = stack[stackSize - 1];\n          }\n        }\n\n        if (\"stackDelta\" in validationCommand) {\n          if (\"stackFn\" in validationCommand) {\n            validationCommand.stackFn(stack, stackSize);\n          }\n\n          stackSize += validationCommand.stackDelta;\n        } else if (validationCommand.stackClearing) {\n          stackSize = 0;\n        } else if (validationCommand.resetStack) {\n          stackSize = 0;\n          state.undefStack = false;\n        } else if (validationCommand.undefStack) {\n          stackSize = 0;\n          state.undefStack = true;\n          state.firstStackClearing = false;\n        }\n      }\n    }\n\n    state.stackSize = stackSize;\n    return true;\n  }\n\n  parseCharStrings(_ref) {\n    let {\n      charStrings,\n      localSubrIndex,\n      globalSubrIndex,\n      fdSelect,\n      fdArray,\n      privateDict\n    } = _ref;\n    const seacs = [];\n    const widths = [];\n    const count = charStrings.count;\n\n    for (let i = 0; i < count; i++) {\n      const charstring = charStrings.get(i);\n      const state = {\n        callDepth: 0,\n        stackSize: 0,\n        stack: [],\n        undefStack: true,\n        hints: 0,\n        firstStackClearing: true,\n        seac: null,\n        width: null,\n        hasVStems: false\n      };\n      let valid = true;\n      let localSubrToUse = null;\n      let privateDictToUse = privateDict;\n\n      if (fdSelect && fdArray.length) {\n        const fdIndex = fdSelect.getFDIndex(i);\n\n        if (fdIndex === -1) {\n          (0, _util.warn)(\"Glyph index is not in fd select.\");\n          valid = false;\n        }\n\n        if (fdIndex >= fdArray.length) {\n          (0, _util.warn)(\"Invalid fd index for glyph index.\");\n          valid = false;\n        }\n\n        if (valid) {\n          privateDictToUse = fdArray[fdIndex].privateDict;\n          localSubrToUse = privateDictToUse.subrsIndex;\n        }\n      } else if (localSubrIndex) {\n        localSubrToUse = localSubrIndex;\n      }\n\n      if (valid) {\n        valid = this.parseCharString(state, charstring, localSubrToUse, globalSubrIndex);\n      }\n\n      if (state.width !== null) {\n        const nominalWidth = privateDictToUse.getByName(\"nominalWidthX\");\n        widths[i] = nominalWidth + state.width;\n      } else {\n        const defaultWidth = privateDictToUse.getByName(\"defaultWidthX\");\n        widths[i] = defaultWidth;\n      }\n\n      if (state.seac !== null) {\n        seacs[i] = state.seac;\n      }\n\n      if (!valid) {\n        charStrings.set(i, new Uint8Array([14]));\n      }\n    }\n\n    return {\n      charStrings,\n      seacs,\n      widths\n    };\n  }\n\n  emptyPrivateDictionary(parentDict) {\n    const privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings);\n    parentDict.setByKey(18, [0, 0]);\n    parentDict.privateDict = privateDict;\n  }\n\n  parsePrivateDict(parentDict) {\n    if (!parentDict.hasName(\"Private\")) {\n      this.emptyPrivateDictionary(parentDict);\n      return;\n    }\n\n    const privateOffset = parentDict.getByName(\"Private\");\n\n    if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n      parentDict.removeByName(\"Private\");\n      return;\n    }\n\n    const size = privateOffset[0];\n    const offset = privateOffset[1];\n\n    if (size === 0 || offset >= this.bytes.length) {\n      this.emptyPrivateDictionary(parentDict);\n      return;\n    }\n\n    const privateDictEnd = offset + size;\n    const dictData = this.bytes.subarray(offset, privateDictEnd);\n    const dict = this.parseDict(dictData);\n    const privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings);\n    parentDict.privateDict = privateDict;\n\n    if (!privateDict.getByName(\"Subrs\")) {\n      return;\n    }\n\n    const subrsOffset = privateDict.getByName(\"Subrs\");\n    const relativeOffset = offset + subrsOffset;\n\n    if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n      this.emptyPrivateDictionary(parentDict);\n      return;\n    }\n\n    const subrsIndex = this.parseIndex(relativeOffset);\n    privateDict.subrsIndex = subrsIndex.obj;\n  }\n\n  parseCharsets(pos, length, strings, cid) {\n    if (pos === 0) {\n      return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, _charsets.ISOAdobeCharset);\n    } else if (pos === 1) {\n      return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, _charsets.ExpertCharset);\n    } else if (pos === 2) {\n      return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, _charsets.ExpertSubsetCharset);\n    }\n\n    const bytes = this.bytes;\n    const start = pos;\n    const format = bytes[pos++];\n    const charset = [cid ? 0 : \".notdef\"];\n    let id, count, i;\n    length -= 1;\n\n    switch (format) {\n      case 0:\n        for (i = 0; i < length; i++) {\n          id = bytes[pos++] << 8 | bytes[pos++];\n          charset.push(cid ? id : strings.get(id));\n        }\n\n        break;\n\n      case 1:\n        while (charset.length <= length) {\n          id = bytes[pos++] << 8 | bytes[pos++];\n          count = bytes[pos++];\n\n          for (i = 0; i <= count; i++) {\n            charset.push(cid ? id++ : strings.get(id++));\n          }\n        }\n\n        break;\n\n      case 2:\n        while (charset.length <= length) {\n          id = bytes[pos++] << 8 | bytes[pos++];\n          count = bytes[pos++] << 8 | bytes[pos++];\n\n          for (i = 0; i <= count; i++) {\n            charset.push(cid ? id++ : strings.get(id++));\n          }\n        }\n\n        break;\n\n      default:\n        throw new _util.FormatError(\"Unknown charset format\");\n    }\n\n    const end = pos;\n    const raw = bytes.subarray(start, end);\n    return new CFFCharset(false, format, charset, raw);\n  }\n\n  parseEncoding(pos, properties, strings, charset) {\n    const encoding = Object.create(null);\n    const bytes = this.bytes;\n    let predefined = false;\n    let format, i, ii;\n    let raw = null;\n\n    function readSupplement() {\n      const supplementsCount = bytes[pos++];\n\n      for (i = 0; i < supplementsCount; i++) {\n        const code = bytes[pos++];\n        const sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n        encoding[code] = charset.indexOf(strings.get(sid));\n      }\n    }\n\n    if (pos === 0 || pos === 1) {\n      predefined = true;\n      format = pos;\n      const baseEncoding = pos ? _encodings.ExpertEncoding : _encodings.StandardEncoding;\n\n      for (i = 0, ii = charset.length; i < ii; i++) {\n        const index = baseEncoding.indexOf(charset[i]);\n\n        if (index !== -1) {\n          encoding[index] = i;\n        }\n      }\n    } else {\n      const dataStart = pos;\n      format = bytes[pos++];\n\n      switch (format & 0x7f) {\n        case 0:\n          const glyphsCount = bytes[pos++];\n\n          for (i = 1; i <= glyphsCount; i++) {\n            encoding[bytes[pos++]] = i;\n          }\n\n          break;\n\n        case 1:\n          const rangesCount = bytes[pos++];\n          let gid = 1;\n\n          for (i = 0; i < rangesCount; i++) {\n            const start = bytes[pos++];\n            const left = bytes[pos++];\n\n            for (let j = start; j <= start + left; j++) {\n              encoding[j] = gid++;\n            }\n          }\n\n          break;\n\n        default:\n          throw new _util.FormatError(`Unknown encoding format: ${format} in CFF`);\n      }\n\n      const dataEnd = pos;\n\n      if (format & 0x80) {\n        bytes[dataStart] &= 0x7f;\n        readSupplement();\n      }\n\n      raw = bytes.subarray(dataStart, dataEnd);\n    }\n\n    format &= 0x7f;\n    return new CFFEncoding(predefined, format, encoding, raw);\n  }\n\n  parseFDSelect(pos, length) {\n    const bytes = this.bytes;\n    const format = bytes[pos++];\n    const fdSelect = [];\n    let i;\n\n    switch (format) {\n      case 0:\n        for (i = 0; i < length; ++i) {\n          const id = bytes[pos++];\n          fdSelect.push(id);\n        }\n\n        break;\n\n      case 3:\n        const rangesCount = bytes[pos++] << 8 | bytes[pos++];\n\n        for (i = 0; i < rangesCount; ++i) {\n          let first = bytes[pos++] << 8 | bytes[pos++];\n\n          if (i === 0 && first !== 0) {\n            (0, _util.warn)(\"parseFDSelect: The first range must have a first GID of 0\" + \" -- trying to recover.\");\n            first = 0;\n          }\n\n          const fdIndex = bytes[pos++];\n          const next = bytes[pos] << 8 | bytes[pos + 1];\n\n          for (let j = first; j < next; ++j) {\n            fdSelect.push(fdIndex);\n          }\n        }\n\n        pos += 2;\n        break;\n\n      default:\n        throw new _util.FormatError(`parseFDSelect: Unknown format \"${format}\".`);\n    }\n\n    if (fdSelect.length !== length) {\n      throw new _util.FormatError(\"parseFDSelect: Invalid font data.\");\n    }\n\n    return new CFFFDSelect(format, fdSelect);\n  }\n\n}\n\nexports.CFFParser = CFFParser;\n\nclass CFF {\n  constructor() {\n    this.header = null;\n    this.names = [];\n    this.topDict = null;\n    this.strings = new CFFStrings();\n    this.globalSubrIndex = null;\n    this.encoding = null;\n    this.charset = null;\n    this.charStrings = null;\n    this.fdArray = [];\n    this.fdSelect = null;\n    this.isCIDFont = false;\n  }\n\n  duplicateFirstGlyph() {\n    if (this.charStrings.count >= 65535) {\n      (0, _util.warn)(\"Not enough space in charstrings to duplicate first glyph.\");\n      return;\n    }\n\n    const glyphZero = this.charStrings.get(0);\n    this.charStrings.add(glyphZero);\n\n    if (this.isCIDFont) {\n      this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n    }\n  }\n\n  hasGlyphId(id) {\n    if (id < 0 || id >= this.charStrings.count) {\n      return false;\n    }\n\n    const glyph = this.charStrings.get(id);\n    return glyph.length > 0;\n  }\n\n}\n\nexports.CFF = CFF;\n\nclass CFFHeader {\n  constructor(major, minor, hdrSize, offSize) {\n    this.major = major;\n    this.minor = minor;\n    this.hdrSize = hdrSize;\n    this.offSize = offSize;\n  }\n\n}\n\nexports.CFFHeader = CFFHeader;\n\nclass CFFStrings {\n  constructor() {\n    this.strings = [];\n  }\n\n  get(index) {\n    if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) {\n      return CFFStandardStrings[index];\n    }\n\n    if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) {\n      return this.strings[index - NUM_STANDARD_CFF_STRINGS];\n    }\n\n    return CFFStandardStrings[0];\n  }\n\n  getSID(str) {\n    let index = CFFStandardStrings.indexOf(str);\n\n    if (index !== -1) {\n      return index;\n    }\n\n    index = this.strings.indexOf(str);\n\n    if (index !== -1) {\n      return index + NUM_STANDARD_CFF_STRINGS;\n    }\n\n    return -1;\n  }\n\n  add(value) {\n    this.strings.push(value);\n  }\n\n  get count() {\n    return this.strings.length;\n  }\n\n}\n\nexports.CFFStrings = CFFStrings;\n\nclass CFFIndex {\n  constructor() {\n    this.objects = [];\n    this.length = 0;\n  }\n\n  add(data) {\n    this.length += data.length;\n    this.objects.push(data);\n  }\n\n  set(index, data) {\n    this.length += data.length - this.objects[index].length;\n    this.objects[index] = data;\n  }\n\n  get(index) {\n    return this.objects[index];\n  }\n\n  get count() {\n    return this.objects.length;\n  }\n\n}\n\nexports.CFFIndex = CFFIndex;\n\nclass CFFDict {\n  constructor(tables, strings) {\n    this.keyToNameMap = tables.keyToNameMap;\n    this.nameToKeyMap = tables.nameToKeyMap;\n    this.defaults = tables.defaults;\n    this.types = tables.types;\n    this.opcodes = tables.opcodes;\n    this.order = tables.order;\n    this.strings = strings;\n    this.values = Object.create(null);\n  }\n\n  setByKey(key, value) {\n    if (!(key in this.keyToNameMap)) {\n      return false;\n    }\n\n    const valueLength = value.length;\n\n    if (valueLength === 0) {\n      return true;\n    }\n\n    for (let i = 0; i < valueLength; i++) {\n      if (isNaN(value[i])) {\n        (0, _util.warn)('Invalid CFFDict value: \"' + value + '\" for key \"' + key + '\".');\n        return true;\n      }\n    }\n\n    const type = this.types[key];\n\n    if (type === \"num\" || type === \"sid\" || type === \"offset\") {\n      value = value[0];\n    }\n\n    this.values[key] = value;\n    return true;\n  }\n\n  setByName(name, value) {\n    if (!(name in this.nameToKeyMap)) {\n      throw new _util.FormatError(`Invalid dictionary name \"${name}\"`);\n    }\n\n    this.values[this.nameToKeyMap[name]] = value;\n  }\n\n  hasName(name) {\n    return this.nameToKeyMap[name] in this.values;\n  }\n\n  getByName(name) {\n    if (!(name in this.nameToKeyMap)) {\n      throw new _util.FormatError(`Invalid dictionary name ${name}\"`);\n    }\n\n    const key = this.nameToKeyMap[name];\n\n    if (!(key in this.values)) {\n      return this.defaults[key];\n    }\n\n    return this.values[key];\n  }\n\n  removeByName(name) {\n    delete this.values[this.nameToKeyMap[name]];\n  }\n\n  static createTables(layout) {\n    const tables = {\n      keyToNameMap: {},\n      nameToKeyMap: {},\n      defaults: {},\n      types: {},\n      opcodes: {},\n      order: []\n    };\n\n    for (let i = 0, ii = layout.length; i < ii; ++i) {\n      const entry = layout[i];\n      const key = Array.isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0];\n      tables.keyToNameMap[key] = entry[1];\n      tables.nameToKeyMap[entry[1]] = key;\n      tables.types[key] = entry[2];\n      tables.defaults[key] = entry[3];\n      tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]];\n      tables.order.push(key);\n    }\n\n    return tables;\n  }\n\n}\n\nconst CFFTopDictLayout = [[[12, 30], \"ROS\", [\"sid\", \"sid\", \"num\"], null], [[12, 20], \"SyntheticBase\", \"num\", null], [0, \"version\", \"sid\", null], [1, \"Notice\", \"sid\", null], [[12, 0], \"Copyright\", \"sid\", null], [2, \"FullName\", \"sid\", null], [3, \"FamilyName\", \"sid\", null], [4, \"Weight\", \"sid\", null], [[12, 1], \"isFixedPitch\", \"num\", 0], [[12, 2], \"ItalicAngle\", \"num\", 0], [[12, 3], \"UnderlinePosition\", \"num\", -100], [[12, 4], \"UnderlineThickness\", \"num\", 50], [[12, 5], \"PaintType\", \"num\", 0], [[12, 6], \"CharstringType\", \"num\", 2], [[12, 7], \"FontMatrix\", [\"num\", \"num\", \"num\", \"num\", \"num\", \"num\"], [0.001, 0, 0, 0.001, 0, 0]], [13, \"UniqueID\", \"num\", null], [5, \"FontBBox\", [\"num\", \"num\", \"num\", \"num\"], [0, 0, 0, 0]], [[12, 8], \"StrokeWidth\", \"num\", 0], [14, \"XUID\", \"array\", null], [15, \"charset\", \"offset\", 0], [16, \"Encoding\", \"offset\", 0], [17, \"CharStrings\", \"offset\", 0], [18, \"Private\", [\"offset\", \"offset\"], null], [[12, 21], \"PostScript\", \"sid\", null], [[12, 22], \"BaseFontName\", \"sid\", null], [[12, 23], \"BaseFontBlend\", \"delta\", null], [[12, 31], \"CIDFontVersion\", \"num\", 0], [[12, 32], \"CIDFontRevision\", \"num\", 0], [[12, 33], \"CIDFontType\", \"num\", 0], [[12, 34], \"CIDCount\", \"num\", 8720], [[12, 35], \"UIDBase\", \"num\", null], [[12, 37], \"FDSelect\", \"offset\", null], [[12, 36], \"FDArray\", \"offset\", null], [[12, 38], \"FontName\", \"sid\", null]];\n\nclass CFFTopDict extends CFFDict {\n  static get tables() {\n    return (0, _util.shadow)(this, \"tables\", this.createTables(CFFTopDictLayout));\n  }\n\n  constructor(strings) {\n    super(CFFTopDict.tables, strings);\n    this.privateDict = null;\n  }\n\n}\n\nexports.CFFTopDict = CFFTopDict;\nconst CFFPrivateDictLayout = [[6, \"BlueValues\", \"delta\", null], [7, \"OtherBlues\", \"delta\", null], [8, \"FamilyBlues\", \"delta\", null], [9, \"FamilyOtherBlues\", \"delta\", null], [[12, 9], \"BlueScale\", \"num\", 0.039625], [[12, 10], \"BlueShift\", \"num\", 7], [[12, 11], \"BlueFuzz\", \"num\", 1], [10, \"StdHW\", \"num\", null], [11, \"StdVW\", \"num\", null], [[12, 12], \"StemSnapH\", \"delta\", null], [[12, 13], \"StemSnapV\", \"delta\", null], [[12, 14], \"ForceBold\", \"num\", 0], [[12, 17], \"LanguageGroup\", \"num\", 0], [[12, 18], \"ExpansionFactor\", \"num\", 0.06], [[12, 19], \"initialRandomSeed\", \"num\", 0], [20, \"defaultWidthX\", \"num\", 0], [21, \"nominalWidthX\", \"num\", 0], [19, \"Subrs\", \"offset\", null]];\n\nclass CFFPrivateDict extends CFFDict {\n  static get tables() {\n    return (0, _util.shadow)(this, \"tables\", this.createTables(CFFPrivateDictLayout));\n  }\n\n  constructor(strings) {\n    super(CFFPrivateDict.tables, strings);\n    this.subrsIndex = null;\n  }\n\n}\n\nexports.CFFPrivateDict = CFFPrivateDict;\nconst CFFCharsetPredefinedTypes = {\n  ISO_ADOBE: 0,\n  EXPERT: 1,\n  EXPERT_SUBSET: 2\n};\n\nclass CFFCharset {\n  constructor(predefined, format, charset, raw) {\n    this.predefined = predefined;\n    this.format = format;\n    this.charset = charset;\n    this.raw = raw;\n  }\n\n}\n\nexports.CFFCharset = CFFCharset;\n\nclass CFFEncoding {\n  constructor(predefined, format, encoding, raw) {\n    this.predefined = predefined;\n    this.format = format;\n    this.encoding = encoding;\n    this.raw = raw;\n  }\n\n}\n\nclass CFFFDSelect {\n  constructor(format, fdSelect) {\n    this.format = format;\n    this.fdSelect = fdSelect;\n  }\n\n  getFDIndex(glyphIndex) {\n    if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n      return -1;\n    }\n\n    return this.fdSelect[glyphIndex];\n  }\n\n}\n\nexports.CFFFDSelect = CFFFDSelect;\n\nclass CFFOffsetTracker {\n  constructor() {\n    this.offsets = Object.create(null);\n  }\n\n  isTracking(key) {\n    return key in this.offsets;\n  }\n\n  track(key, location) {\n    if (key in this.offsets) {\n      throw new _util.FormatError(`Already tracking location of ${key}`);\n    }\n\n    this.offsets[key] = location;\n  }\n\n  offset(value) {\n    for (const key in this.offsets) {\n      this.offsets[key] += value;\n    }\n  }\n\n  setEntryLocation(key, values, output) {\n    if (!(key in this.offsets)) {\n      throw new _util.FormatError(`Not tracking location of ${key}`);\n    }\n\n    const data = output.data;\n    const dataOffset = this.offsets[key];\n    const size = 5;\n\n    for (let i = 0, ii = values.length; i < ii; ++i) {\n      const offset0 = i * size + dataOffset;\n      const offset1 = offset0 + 1;\n      const offset2 = offset0 + 2;\n      const offset3 = offset0 + 3;\n      const offset4 = offset0 + 4;\n\n      if (data[offset0] !== 0x1d || data[offset1] !== 0 || data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0) {\n        throw new _util.FormatError(\"writing to an offset that is not empty\");\n      }\n\n      const value = values[i];\n      data[offset0] = 0x1d;\n      data[offset1] = value >> 24 & 0xff;\n      data[offset2] = value >> 16 & 0xff;\n      data[offset3] = value >> 8 & 0xff;\n      data[offset4] = value & 0xff;\n    }\n  }\n\n}\n\nclass CFFCompiler {\n  constructor(cff) {\n    this.cff = cff;\n  }\n\n  compile() {\n    const cff = this.cff;\n    const output = {\n      data: [],\n      length: 0,\n\n      add(data) {\n        this.data = this.data.concat(data);\n        this.length = this.data.length;\n      }\n\n    };\n    const header = this.compileHeader(cff.header);\n    output.add(header);\n    const nameIndex = this.compileNameIndex(cff.names);\n    output.add(nameIndex);\n\n    if (cff.isCIDFont) {\n      if (cff.topDict.hasName(\"FontMatrix\")) {\n        const base = cff.topDict.getByName(\"FontMatrix\");\n        cff.topDict.removeByName(\"FontMatrix\");\n\n        for (let i = 0, ii = cff.fdArray.length; i < ii; i++) {\n          const subDict = cff.fdArray[i];\n          let matrix = base.slice(0);\n\n          if (subDict.hasName(\"FontMatrix\")) {\n            matrix = _util.Util.transform(matrix, subDict.getByName(\"FontMatrix\"));\n          }\n\n          subDict.setByName(\"FontMatrix\", matrix);\n        }\n      }\n    }\n\n    const xuid = cff.topDict.getByName(\"XUID\");\n\n    if (xuid && xuid.length > 16) {\n      cff.topDict.removeByName(\"XUID\");\n    }\n\n    cff.topDict.setByName(\"charset\", 0);\n    let compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont);\n    output.add(compiled.output);\n    const topDictTracker = compiled.trackers[0];\n    const stringIndex = this.compileStringIndex(cff.strings.strings);\n    output.add(stringIndex);\n    const globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n    output.add(globalSubrIndex);\n\n    if (cff.encoding && cff.topDict.hasName(\"Encoding\")) {\n      if (cff.encoding.predefined) {\n        topDictTracker.setEntryLocation(\"Encoding\", [cff.encoding.format], output);\n      } else {\n        const encoding = this.compileEncoding(cff.encoding);\n        topDictTracker.setEntryLocation(\"Encoding\", [output.length], output);\n        output.add(encoding);\n      }\n    }\n\n    const charset = this.compileCharset(cff.charset, cff.charStrings.count, cff.strings, cff.isCIDFont);\n    topDictTracker.setEntryLocation(\"charset\", [output.length], output);\n    output.add(charset);\n    const charStrings = this.compileCharStrings(cff.charStrings);\n    topDictTracker.setEntryLocation(\"CharStrings\", [output.length], output);\n    output.add(charStrings);\n\n    if (cff.isCIDFont) {\n      topDictTracker.setEntryLocation(\"FDSelect\", [output.length], output);\n      const fdSelect = this.compileFDSelect(cff.fdSelect);\n      output.add(fdSelect);\n      compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n      topDictTracker.setEntryLocation(\"FDArray\", [output.length], output);\n      output.add(compiled.output);\n      const fontDictTrackers = compiled.trackers;\n      this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n    }\n\n    this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n    output.add([0]);\n    return output.data;\n  }\n\n  encodeNumber(value) {\n    if (Number.isInteger(value)) {\n      return this.encodeInteger(value);\n    }\n\n    return this.encodeFloat(value);\n  }\n\n  static get EncodeFloatRegExp() {\n    return (0, _util.shadow)(this, \"EncodeFloatRegExp\", /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/);\n  }\n\n  encodeFloat(num) {\n    let value = num.toString();\n    const m = CFFCompiler.EncodeFloatRegExp.exec(value);\n\n    if (m) {\n      const epsilon = parseFloat(\"1e\" + ((m[2] ? +m[2] : 0) + m[1].length));\n      value = (Math.round(num * epsilon) / epsilon).toString();\n    }\n\n    let nibbles = \"\";\n    let i, ii;\n\n    for (i = 0, ii = value.length; i < ii; ++i) {\n      const a = value[i];\n\n      if (a === \"e\") {\n        nibbles += value[++i] === \"-\" ? \"c\" : \"b\";\n      } else if (a === \".\") {\n        nibbles += \"a\";\n      } else if (a === \"-\") {\n        nibbles += \"e\";\n      } else {\n        nibbles += a;\n      }\n    }\n\n    nibbles += nibbles.length & 1 ? \"f\" : \"ff\";\n    const out = [30];\n\n    for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n      out.push(parseInt(nibbles.substring(i, i + 2), 16));\n    }\n\n    return out;\n  }\n\n  encodeInteger(value) {\n    let code;\n\n    if (value >= -107 && value <= 107) {\n      code = [value + 139];\n    } else if (value >= 108 && value <= 1131) {\n      value -= 108;\n      code = [(value >> 8) + 247, value & 0xff];\n    } else if (value >= -1131 && value <= -108) {\n      value = -value - 108;\n      code = [(value >> 8) + 251, value & 0xff];\n    } else if (value >= -32768 && value <= 32767) {\n      code = [0x1c, value >> 8 & 0xff, value & 0xff];\n    } else {\n      code = [0x1d, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff];\n    }\n\n    return code;\n  }\n\n  compileHeader(header) {\n    return [header.major, header.minor, 4, header.offSize];\n  }\n\n  compileNameIndex(names) {\n    const nameIndex = new CFFIndex();\n\n    for (let i = 0, ii = names.length; i < ii; ++i) {\n      const name = names[i];\n      const length = Math.min(name.length, 127);\n      let sanitizedName = new Array(length);\n\n      for (let j = 0; j < length; j++) {\n        let char = name[j];\n\n        if (char < \"!\" || char > \"~\" || char === \"[\" || char === \"]\" || char === \"(\" || char === \")\" || char === \"{\" || char === \"}\" || char === \"<\" || char === \">\" || char === \"/\" || char === \"%\") {\n          char = \"_\";\n        }\n\n        sanitizedName[j] = char;\n      }\n\n      sanitizedName = sanitizedName.join(\"\");\n\n      if (sanitizedName === \"\") {\n        sanitizedName = \"Bad_Font_Name\";\n      }\n\n      nameIndex.add((0, _util.stringToBytes)(sanitizedName));\n    }\n\n    return this.compileIndex(nameIndex);\n  }\n\n  compileTopDicts(dicts, length, removeCidKeys) {\n    const fontDictTrackers = [];\n    let fdArrayIndex = new CFFIndex();\n\n    for (let i = 0, ii = dicts.length; i < ii; ++i) {\n      const fontDict = dicts[i];\n\n      if (removeCidKeys) {\n        fontDict.removeByName(\"CIDFontVersion\");\n        fontDict.removeByName(\"CIDFontRevision\");\n        fontDict.removeByName(\"CIDFontType\");\n        fontDict.removeByName(\"CIDCount\");\n        fontDict.removeByName(\"UIDBase\");\n      }\n\n      const fontDictTracker = new CFFOffsetTracker();\n      const fontDictData = this.compileDict(fontDict, fontDictTracker);\n      fontDictTrackers.push(fontDictTracker);\n      fdArrayIndex.add(fontDictData);\n      fontDictTracker.offset(length);\n    }\n\n    fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n    return {\n      trackers: fontDictTrackers,\n      output: fdArrayIndex\n    };\n  }\n\n  compilePrivateDicts(dicts, trackers, output) {\n    for (let i = 0, ii = dicts.length; i < ii; ++i) {\n      const fontDict = dicts[i];\n      const privateDict = fontDict.privateDict;\n\n      if (!privateDict || !fontDict.hasName(\"Private\")) {\n        throw new _util.FormatError(\"There must be a private dictionary.\");\n      }\n\n      const privateDictTracker = new CFFOffsetTracker();\n      const privateDictData = this.compileDict(privateDict, privateDictTracker);\n      let outputLength = output.length;\n      privateDictTracker.offset(outputLength);\n\n      if (!privateDictData.length) {\n        outputLength = 0;\n      }\n\n      trackers[i].setEntryLocation(\"Private\", [privateDictData.length, outputLength], output);\n      output.add(privateDictData);\n\n      if (privateDict.subrsIndex && privateDict.hasName(\"Subrs\")) {\n        const subrs = this.compileIndex(privateDict.subrsIndex);\n        privateDictTracker.setEntryLocation(\"Subrs\", [privateDictData.length], output);\n        output.add(subrs);\n      }\n    }\n  }\n\n  compileDict(dict, offsetTracker) {\n    const out = [];\n\n    for (const key of dict.order) {\n      if (!(key in dict.values)) {\n        continue;\n      }\n\n      let values = dict.values[key];\n      let types = dict.types[key];\n\n      if (!Array.isArray(types)) {\n        types = [types];\n      }\n\n      if (!Array.isArray(values)) {\n        values = [values];\n      }\n\n      if (values.length === 0) {\n        continue;\n      }\n\n      for (let j = 0, jj = types.length; j < jj; ++j) {\n        const type = types[j];\n        const value = values[j];\n\n        switch (type) {\n          case \"num\":\n          case \"sid\":\n            out.push(...this.encodeNumber(value));\n            break;\n\n          case \"offset\":\n            const name = dict.keyToNameMap[key];\n\n            if (!offsetTracker.isTracking(name)) {\n              offsetTracker.track(name, out.length);\n            }\n\n            out.push(0x1d, 0, 0, 0, 0);\n            break;\n\n          case \"array\":\n          case \"delta\":\n            out.push(...this.encodeNumber(value));\n\n            for (let k = 1, kk = values.length; k < kk; ++k) {\n              out.push(...this.encodeNumber(values[k]));\n            }\n\n            break;\n\n          default:\n            throw new _util.FormatError(`Unknown data type of ${type}`);\n        }\n      }\n\n      out.push(...dict.opcodes[key]);\n    }\n\n    return out;\n  }\n\n  compileStringIndex(strings) {\n    const stringIndex = new CFFIndex();\n\n    for (let i = 0, ii = strings.length; i < ii; ++i) {\n      stringIndex.add((0, _util.stringToBytes)(strings[i]));\n    }\n\n    return this.compileIndex(stringIndex);\n  }\n\n  compileGlobalSubrIndex() {\n    const globalSubrIndex = this.cff.globalSubrIndex;\n    this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n  }\n\n  compileCharStrings(charStrings) {\n    const charStringsIndex = new CFFIndex();\n\n    for (let i = 0; i < charStrings.count; i++) {\n      const glyph = charStrings.get(i);\n\n      if (glyph.length === 0) {\n        charStringsIndex.add(new Uint8Array([0x8b, 0x0e]));\n        continue;\n      }\n\n      charStringsIndex.add(glyph);\n    }\n\n    return this.compileIndex(charStringsIndex);\n  }\n\n  compileCharset(charset, numGlyphs, strings, isCIDFont) {\n    let out;\n    const numGlyphsLessNotDef = numGlyphs - 1;\n\n    if (isCIDFont) {\n      out = new Uint8Array([2, 0, 0, numGlyphsLessNotDef >> 8 & 0xff, numGlyphsLessNotDef & 0xff]);\n    } else {\n      const length = 1 + numGlyphsLessNotDef * 2;\n      out = new Uint8Array(length);\n      out[0] = 0;\n      let charsetIndex = 0;\n      const numCharsets = charset.charset.length;\n      let warned = false;\n\n      for (let i = 1; i < out.length; i += 2) {\n        let sid = 0;\n\n        if (charsetIndex < numCharsets) {\n          const name = charset.charset[charsetIndex++];\n          sid = strings.getSID(name);\n\n          if (sid === -1) {\n            sid = 0;\n\n            if (!warned) {\n              warned = true;\n              (0, _util.warn)(`Couldn't find ${name} in CFF strings`);\n            }\n          }\n        }\n\n        out[i] = sid >> 8 & 0xff;\n        out[i + 1] = sid & 0xff;\n      }\n    }\n\n    return this.compileTypedArray(out);\n  }\n\n  compileEncoding(encoding) {\n    return this.compileTypedArray(encoding.raw);\n  }\n\n  compileFDSelect(fdSelect) {\n    const format = fdSelect.format;\n    let out, i;\n\n    switch (format) {\n      case 0:\n        out = new Uint8Array(1 + fdSelect.fdSelect.length);\n        out[0] = format;\n\n        for (i = 0; i < fdSelect.fdSelect.length; i++) {\n          out[i + 1] = fdSelect.fdSelect[i];\n        }\n\n        break;\n\n      case 3:\n        const start = 0;\n        let lastFD = fdSelect.fdSelect[0];\n        const ranges = [format, 0, 0, start >> 8 & 0xff, start & 0xff, lastFD];\n\n        for (i = 1; i < fdSelect.fdSelect.length; i++) {\n          const currentFD = fdSelect.fdSelect[i];\n\n          if (currentFD !== lastFD) {\n            ranges.push(i >> 8 & 0xff, i & 0xff, currentFD);\n            lastFD = currentFD;\n          }\n        }\n\n        const numRanges = (ranges.length - 3) / 3;\n        ranges[1] = numRanges >> 8 & 0xff;\n        ranges[2] = numRanges & 0xff;\n        ranges.push(i >> 8 & 0xff, i & 0xff);\n        out = new Uint8Array(ranges);\n        break;\n    }\n\n    return this.compileTypedArray(out);\n  }\n\n  compileTypedArray(data) {\n    const out = [];\n\n    for (let i = 0, ii = data.length; i < ii; ++i) {\n      out[i] = data[i];\n    }\n\n    return out;\n  }\n\n  compileIndex(index) {\n    let trackers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    const objects = index.objects;\n    const count = objects.length;\n\n    if (count === 0) {\n      return [0, 0];\n    }\n\n    const data = [count >> 8 & 0xff, count & 0xff];\n    let lastOffset = 1,\n        i;\n\n    for (i = 0; i < count; ++i) {\n      lastOffset += objects[i].length;\n    }\n\n    let offsetSize;\n\n    if (lastOffset < 0x100) {\n      offsetSize = 1;\n    } else if (lastOffset < 0x10000) {\n      offsetSize = 2;\n    } else if (lastOffset < 0x1000000) {\n      offsetSize = 3;\n    } else {\n      offsetSize = 4;\n    }\n\n    data.push(offsetSize);\n    let relativeOffset = 1;\n\n    for (i = 0; i < count + 1; i++) {\n      if (offsetSize === 1) {\n        data.push(relativeOffset & 0xff);\n      } else if (offsetSize === 2) {\n        data.push(relativeOffset >> 8 & 0xff, relativeOffset & 0xff);\n      } else if (offsetSize === 3) {\n        data.push(relativeOffset >> 16 & 0xff, relativeOffset >> 8 & 0xff, relativeOffset & 0xff);\n      } else {\n        data.push(relativeOffset >>> 24 & 0xff, relativeOffset >> 16 & 0xff, relativeOffset >> 8 & 0xff, relativeOffset & 0xff);\n      }\n\n      if (objects[i]) {\n        relativeOffset += objects[i].length;\n      }\n    }\n\n    for (i = 0; i < count; i++) {\n      if (trackers[i]) {\n        trackers[i].offset(data.length);\n      }\n\n      for (let j = 0, jj = objects[i].length; j < jj; j++) {\n        data.push(objects[i][j]);\n      }\n    }\n\n    return data;\n  }\n\n}\n\nexports.CFFCompiler = CFFCompiler;\n\n/***/ }),\n/* 161 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ISOAdobeCharset = exports.ExpertSubsetCharset = exports.ExpertCharset = void 0;\nconst ISOAdobeCharset = [\".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\"];\nexports.ISOAdobeCharset = ISOAdobeCharset;\nconst ExpertCharset = [\".notdef\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"onequarter\", \"onehalf\", \"threequarters\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\"];\nexports.ExpertCharset = ExpertCharset;\nconst ExpertSubsetCharset = [\".notdef\", \"space\", \"dollaroldstyle\", \"dollarsuperior\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"hyphensuperior\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"centoldstyle\", \"figuredash\", \"hypheninferior\", \"onequarter\", \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\"];\nexports.ExpertSubsetCharset = ExpertSubsetCharset;\n\n/***/ }),\n/* 162 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ZapfDingbatsEncoding = exports.WinAnsiEncoding = exports.SymbolSetEncoding = exports.StandardEncoding = exports.MacRomanEncoding = exports.ExpertEncoding = void 0;\nexports.getEncoding = getEncoding;\nconst ExpertEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"\", \"\", \"\", \"isuperior\", \"\", \"\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"\", \"\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"\", \"\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"\", \"Dotaccentsmall\", \"\", \"\", \"Macronsmall\", \"\", \"\", \"figuredash\", \"hypheninferior\", \"\", \"\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"zerosuperior\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\"];\nexports.ExpertEncoding = ExpertEncoding;\nconst MacExpertEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"centoldstyle\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"\", \"threequartersemdash\", \"\", \"questionsmall\", \"\", \"\", \"\", \"\", \"Ethsmall\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"\", \"\", \"\", \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\", \"Circumflexsmall\", \"hypheninferior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"asuperior\", \"centsuperior\", \"\", \"\", \"\", \"\", \"Aacutesmall\", \"Agravesmall\", \"Acircumflexsmall\", \"Adieresissmall\", \"Atildesmall\", \"Aringsmall\", \"Ccedillasmall\", \"Eacutesmall\", \"Egravesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Iacutesmall\", \"Igravesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ntildesmall\", \"Oacutesmall\", \"Ogravesmall\", \"Ocircumflexsmall\", \"Odieresissmall\", \"Otildesmall\", \"Uacutesmall\", \"Ugravesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"\", \"eightsuperior\", \"fourinferior\", \"threeinferior\", \"sixinferior\", \"eightinferior\", \"seveninferior\", \"Scaronsmall\", \"\", \"centinferior\", \"twoinferior\", \"\", \"Dieresissmall\", \"\", \"Caronsmall\", \"osuperior\", \"fiveinferior\", \"\", \"commainferior\", \"periodinferior\", \"Yacutesmall\", \"\", \"dollarinferior\", \"\", \"\", \"Thornsmall\", \"\", \"nineinferior\", \"zeroinferior\", \"Zcaronsmall\", \"AEsmall\", \"Oslashsmall\", \"questiondownsmall\", \"oneinferior\", \"Lslashsmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"Cedillasmall\", \"\", \"\", \"\", \"\", \"\", \"OEsmall\", \"figuredash\", \"hyphensuperior\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"\", \"Ydieresissmall\", \"\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"ninesuperior\", \"zerosuperior\", \"\", \"esuperior\", \"rsuperior\", \"tsuperior\", \"\", \"\", \"isuperior\", \"ssuperior\", \"dsuperior\", \"\", \"\", \"\", \"\", \"\", \"lsuperior\", \"Ogoneksmall\", \"Brevesmall\", \"Macronsmall\", \"bsuperior\", \"nsuperior\", \"msuperior\", \"commasuperior\", \"periodsuperior\", \"Dotaccentsmall\", \"Ringsmall\", \"\", \"\", \"\", \"\"];\nconst MacRomanEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\", \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\", \"space\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\"];\nexports.MacRomanEncoding = MacRomanEncoding;\nconst StandardEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"\", \"questiondown\", \"\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"\", \"ring\", \"cedilla\", \"\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"AE\", \"\", \"ordfeminine\", \"\", \"\", \"\", \"\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"\", \"\", \"\", \"\", \"\", \"ae\", \"\", \"\", \"\", \"dotlessi\", \"\", \"\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"\", \"\", \"\", \"\"];\nexports.StandardEncoding = StandardEncoding;\nconst WinAnsiEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"bullet\", \"Euro\", \"bullet\", \"quotesinglbase\", \"florin\", \"quotedblbase\", \"ellipsis\", \"dagger\", \"daggerdbl\", \"circumflex\", \"perthousand\", \"Scaron\", \"guilsinglleft\", \"OE\", \"bullet\", \"Zcaron\", \"bullet\", \"bullet\", \"quoteleft\", \"quoteright\", \"quotedblleft\", \"quotedblright\", \"bullet\", \"endash\", \"emdash\", \"tilde\", \"trademark\", \"scaron\", \"guilsinglright\", \"oe\", \"bullet\", \"zcaron\", \"Ydieresis\", \"space\", \"exclamdown\", \"cent\", \"sterling\", \"currency\", \"yen\", \"brokenbar\", \"section\", \"dieresis\", \"copyright\", \"ordfeminine\", \"guillemotleft\", \"logicalnot\", \"hyphen\", \"registered\", \"macron\", \"degree\", \"plusminus\", \"twosuperior\", \"threesuperior\", \"acute\", \"mu\", \"paragraph\", \"periodcentered\", \"cedilla\", \"onesuperior\", \"ordmasculine\", \"guillemotright\", \"onequarter\", \"onehalf\", \"threequarters\", \"questiondown\", \"Agrave\", \"Aacute\", \"Acircumflex\", \"Atilde\", \"Adieresis\", \"Aring\", \"AE\", \"Ccedilla\", \"Egrave\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Igrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Eth\", \"Ntilde\", \"Ograve\", \"Oacute\", \"Ocircumflex\", \"Otilde\", \"Odieresis\", \"multiply\", \"Oslash\", \"Ugrave\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Yacute\", \"Thorn\", \"germandbls\", \"agrave\", \"aacute\", \"acircumflex\", \"atilde\", \"adieresis\", \"aring\", \"ae\", \"ccedilla\", \"egrave\", \"eacute\", \"ecircumflex\", \"edieresis\", \"igrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"eth\", \"ntilde\", \"ograve\", \"oacute\", \"ocircumflex\", \"otilde\", \"odieresis\", \"divide\", \"oslash\", \"ugrave\", \"uacute\", \"ucircumflex\", \"udieresis\", \"yacute\", \"thorn\", \"ydieresis\"];\nexports.WinAnsiEncoding = WinAnsiEncoding;\nconst SymbolSetEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"universal\", \"numbersign\", \"existential\", \"percent\", \"ampersand\", \"suchthat\", \"parenleft\", \"parenright\", \"asteriskmath\", \"plus\", \"comma\", \"minus\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"congruent\", \"Alpha\", \"Beta\", \"Chi\", \"Delta\", \"Epsilon\", \"Phi\", \"Gamma\", \"Eta\", \"Iota\", \"theta1\", \"Kappa\", \"Lambda\", \"Mu\", \"Nu\", \"Omicron\", \"Pi\", \"Theta\", \"Rho\", \"Sigma\", \"Tau\", \"Upsilon\", \"sigma1\", \"Omega\", \"Xi\", \"Psi\", \"Zeta\", \"bracketleft\", \"therefore\", \"bracketright\", \"perpendicular\", \"underscore\", \"radicalex\", \"alpha\", \"beta\", \"chi\", \"delta\", \"epsilon\", \"phi\", \"gamma\", \"eta\", \"iota\", \"phi1\", \"kappa\", \"lambda\", \"mu\", \"nu\", \"omicron\", \"pi\", \"theta\", \"rho\", \"sigma\", \"tau\", \"upsilon\", \"omega1\", \"omega\", \"xi\", \"psi\", \"zeta\", \"braceleft\", \"bar\", \"braceright\", \"similar\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"Euro\", \"Upsilon1\", \"minute\", \"lessequal\", \"fraction\", \"infinity\", \"florin\", \"club\", \"diamond\", \"heart\", \"spade\", \"arrowboth\", \"arrowleft\", \"arrowup\", \"arrowright\", \"arrowdown\", \"degree\", \"plusminus\", \"second\", \"greaterequal\", \"multiply\", \"proportional\", \"partialdiff\", \"bullet\", \"divide\", \"notequal\", \"equivalence\", \"approxequal\", \"ellipsis\", \"arrowvertex\", \"arrowhorizex\", \"carriagereturn\", \"aleph\", \"Ifraktur\", \"Rfraktur\", \"weierstrass\", \"circlemultiply\", \"circleplus\", \"emptyset\", \"intersection\", \"union\", \"propersuperset\", \"reflexsuperset\", \"notsubset\", \"propersubset\", \"reflexsubset\", \"element\", \"notelement\", \"angle\", \"gradient\", \"registerserif\", \"copyrightserif\", \"trademarkserif\", \"product\", \"radical\", \"dotmath\", \"logicalnot\", \"logicaland\", \"logicalor\", \"arrowdblboth\", \"arrowdblleft\", \"arrowdblup\", \"arrowdblright\", \"arrowdbldown\", \"lozenge\", \"angleleft\", \"registersans\", \"copyrightsans\", \"trademarksans\", \"summation\", \"parenlefttp\", \"parenleftex\", \"parenleftbt\", \"bracketlefttp\", \"bracketleftex\", \"bracketleftbt\", \"bracelefttp\", \"braceleftmid\", \"braceleftbt\", \"braceex\", \"\", \"angleright\", \"integral\", \"integraltp\", \"integralex\", \"integralbt\", \"parenrighttp\", \"parenrightex\", \"parenrightbt\", \"bracketrighttp\", \"bracketrightex\", \"bracketrightbt\", \"bracerighttp\", \"bracerightmid\", \"bracerightbt\", \"\"];\nexports.SymbolSetEncoding = SymbolSetEncoding;\nconst ZapfDingbatsEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"a1\", \"a2\", \"a202\", \"a3\", \"a4\", \"a5\", \"a119\", \"a118\", \"a117\", \"a11\", \"a12\", \"a13\", \"a14\", \"a15\", \"a16\", \"a105\", \"a17\", \"a18\", \"a19\", \"a20\", \"a21\", \"a22\", \"a23\", \"a24\", \"a25\", \"a26\", \"a27\", \"a28\", \"a6\", \"a7\", \"a8\", \"a9\", \"a10\", \"a29\", \"a30\", \"a31\", \"a32\", \"a33\", \"a34\", \"a35\", \"a36\", \"a37\", \"a38\", \"a39\", \"a40\", \"a41\", \"a42\", \"a43\", \"a44\", \"a45\", \"a46\", \"a47\", \"a48\", \"a49\", \"a50\", \"a51\", \"a52\", \"a53\", \"a54\", \"a55\", \"a56\", \"a57\", \"a58\", \"a59\", \"a60\", \"a61\", \"a62\", \"a63\", \"a64\", \"a65\", \"a66\", \"a67\", \"a68\", \"a69\", \"a70\", \"a71\", \"a72\", \"a73\", \"a74\", \"a203\", \"a75\", \"a204\", \"a76\", \"a77\", \"a78\", \"a79\", \"a81\", \"a82\", \"a83\", \"a84\", \"a97\", \"a98\", \"a99\", \"a100\", \"\", \"a89\", \"a90\", \"a93\", \"a94\", \"a91\", \"a92\", \"a205\", \"a85\", \"a206\", \"a86\", \"a87\", \"a88\", \"a95\", \"a96\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"a101\", \"a102\", \"a103\", \"a104\", \"a106\", \"a107\", \"a108\", \"a112\", \"a111\", \"a110\", \"a109\", \"a120\", \"a121\", \"a122\", \"a123\", \"a124\", \"a125\", \"a126\", \"a127\", \"a128\", \"a129\", \"a130\", \"a131\", \"a132\", \"a133\", \"a134\", \"a135\", \"a136\", \"a137\", \"a138\", \"a139\", \"a140\", \"a141\", \"a142\", \"a143\", \"a144\", \"a145\", \"a146\", \"a147\", \"a148\", \"a149\", \"a150\", \"a151\", \"a152\", \"a153\", \"a154\", \"a155\", \"a156\", \"a157\", \"a158\", \"a159\", \"a160\", \"a161\", \"a163\", \"a164\", \"a196\", \"a165\", \"a192\", \"a166\", \"a167\", \"a168\", \"a169\", \"a170\", \"a171\", \"a172\", \"a173\", \"a162\", \"a174\", \"a175\", \"a176\", \"a177\", \"a178\", \"a179\", \"a193\", \"a180\", \"a199\", \"a181\", \"a200\", \"a182\", \"\", \"a201\", \"a183\", \"a184\", \"a197\", \"a185\", \"a194\", \"a198\", \"a186\", \"a195\", \"a187\", \"a188\", \"a189\", \"a190\", \"a191\", \"\"];\nexports.ZapfDingbatsEncoding = ZapfDingbatsEncoding;\n\nfunction getEncoding(encodingName) {\n  switch (encodingName) {\n    case \"WinAnsiEncoding\":\n      return WinAnsiEncoding;\n\n    case \"StandardEncoding\":\n      return StandardEncoding;\n\n    case \"MacRomanEncoding\":\n      return MacRomanEncoding;\n\n    case \"SymbolSetEncoding\":\n      return SymbolSetEncoding;\n\n    case \"ZapfDingbatsEncoding\":\n      return ZapfDingbatsEncoding;\n\n    case \"ExpertEncoding\":\n      return ExpertEncoding;\n\n    case \"MacExpertEncoding\":\n      return MacExpertEncoding;\n\n    default:\n      return null;\n  }\n}\n\n/***/ }),\n/* 163 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.SEAC_ANALYSIS_ENABLED = exports.MacStandardGlyphOrdering = exports.FontFlags = void 0;\nexports.getFontType = getFontType;\nexports.normalizeFontName = normalizeFontName;\nexports.recoverGlyphName = recoverGlyphName;\nexports.type1FontGlyphMapping = type1FontGlyphMapping;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _encodings = __w_pdfjs_require__(162);\n\nvar _glyphlist = __w_pdfjs_require__(164);\n\nvar _unicode = __w_pdfjs_require__(165);\n\nconst SEAC_ANALYSIS_ENABLED = true;\nexports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED;\nconst FontFlags = {\n  FixedPitch: 1,\n  Serif: 2,\n  Symbolic: 4,\n  Script: 8,\n  Nonsymbolic: 32,\n  Italic: 64,\n  AllCap: 65536,\n  SmallCap: 131072,\n  ForceBold: 262144\n};\nexports.FontFlags = FontFlags;\nconst MacStandardGlyphOrdering = [\".notdef\", \".null\", \"nonmarkingreturn\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\", \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\", \"nonbreakingspace\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"Lslash\", \"lslash\", \"Scaron\", \"scaron\", \"Zcaron\", \"zcaron\", \"brokenbar\", \"Eth\", \"eth\", \"Yacute\", \"yacute\", \"Thorn\", \"thorn\", \"minus\", \"multiply\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"onehalf\", \"onequarter\", \"threequarters\", \"franc\", \"Gbreve\", \"gbreve\", \"Idotaccent\", \"Scedilla\", \"scedilla\", \"Cacute\", \"cacute\", \"Ccaron\", \"ccaron\", \"dcroat\"];\nexports.MacStandardGlyphOrdering = MacStandardGlyphOrdering;\n\nfunction getFontType(type, subtype) {\n  let isStandardFont = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  switch (type) {\n    case \"Type1\":\n      if (isStandardFont) {\n        return _util.FontType.TYPE1STANDARD;\n      }\n\n      return subtype === \"Type1C\" ? _util.FontType.TYPE1C : _util.FontType.TYPE1;\n\n    case \"CIDFontType0\":\n      return subtype === \"CIDFontType0C\" ? _util.FontType.CIDFONTTYPE0C : _util.FontType.CIDFONTTYPE0;\n\n    case \"OpenType\":\n      return _util.FontType.OPENTYPE;\n\n    case \"TrueType\":\n      return _util.FontType.TRUETYPE;\n\n    case \"CIDFontType2\":\n      return _util.FontType.CIDFONTTYPE2;\n\n    case \"MMType1\":\n      return _util.FontType.MMTYPE1;\n\n    case \"Type0\":\n      return _util.FontType.TYPE0;\n\n    default:\n      return _util.FontType.UNKNOWN;\n  }\n}\n\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n  if (glyphsUnicodeMap[name] !== undefined) {\n    return name;\n  }\n\n  const unicode = (0, _unicode.getUnicodeForGlyph)(name, glyphsUnicodeMap);\n\n  if (unicode !== -1) {\n    for (const key in glyphsUnicodeMap) {\n      if (glyphsUnicodeMap[key] === unicode) {\n        return key;\n      }\n    }\n  }\n\n  (0, _util.info)(\"Unable to recover a standard glyph name for: \" + name);\n  return name;\n}\n\nfunction type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n  const charCodeToGlyphId = Object.create(null);\n  let glyphId, charCode, baseEncoding;\n  const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n\n  if (properties.isInternalFont) {\n    baseEncoding = builtInEncoding;\n\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0;\n      }\n    }\n  } else if (properties.baseEncodingName) {\n    baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0;\n      }\n    }\n  } else if (isSymbolicFont) {\n    for (charCode in builtInEncoding) {\n      charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n    }\n  } else {\n    baseEncoding = _encodings.StandardEncoding;\n\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0;\n      }\n    }\n  }\n\n  const differences = properties.differences;\n  let glyphsUnicodeMap;\n\n  if (differences) {\n    for (charCode in differences) {\n      const glyphName = differences[charCode];\n      glyphId = glyphNames.indexOf(glyphName);\n\n      if (glyphId === -1) {\n        if (!glyphsUnicodeMap) {\n          glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n        }\n\n        const standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n\n        if (standardGlyphName !== glyphName) {\n          glyphId = glyphNames.indexOf(standardGlyphName);\n        }\n      }\n\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0;\n      }\n    }\n  }\n\n  return charCodeToGlyphId;\n}\n\nfunction normalizeFontName(name) {\n  return name.replace(/[,_]/g, \"-\").replace(/\\s/g, \"\");\n}\n\n/***/ }),\n/* 164 */\n/***/ ((__unused_webpack_module, __webpack_exports__, __w_pdfjs_require__) => {\n\n\"use strict\";\n__w_pdfjs_require__.r(__webpack_exports__);\n/* harmony export */ __w_pdfjs_require__.d(__webpack_exports__, {\n/* harmony export */   \"getDingbatsGlyphsUnicode\": () => (/* binding */ getDingbatsGlyphsUnicode),\n/* harmony export */   \"getGlyphsUnicode\": () => (/* binding */ getGlyphsUnicode)\n/* harmony export */ });\n/* harmony import */ var _core_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __w_pdfjs_require__(131);\n\nconst getGlyphsUnicode = (0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.getArrayLookupTableFactory)(function () {\n return [\n  \"A\",\n  0x0041,\n  \"AE\",\n  0x00c6,\n  \"AEacute\",\n  0x01fc,\n  \"AEmacron\",\n  0x01e2,\n  \"AEsmall\",\n  0xf7e6,\n  \"Aacute\",\n  0x00c1,\n  \"Aacutesmall\",\n  0xf7e1,\n  \"Abreve\",\n  0x0102,\n  \"Abreveacute\",\n  0x1eae,\n  \"Abrevecyrillic\",\n  0x04d0,\n  \"Abrevedotbelow\",\n  0x1eb6,\n  \"Abrevegrave\",\n  0x1eb0,\n  \"Abrevehookabove\",\n  0x1eb2,\n  \"Abrevetilde\",\n  0x1eb4,\n  \"Acaron\",\n  0x01cd,\n  \"Acircle\",\n  0x24b6,\n  \"Acircumflex\",\n  0x00c2,\n  \"Acircumflexacute\",\n  0x1ea4,\n  \"Acircumflexdotbelow\",\n  0x1eac,\n  \"Acircumflexgrave\",\n  0x1ea6,\n  \"Acircumflexhookabove\",\n  0x1ea8,\n  \"Acircumflexsmall\",\n  0xf7e2,\n  \"Acircumflextilde\",\n  0x1eaa,\n  \"Acute\",\n  0xf6c9,\n  \"Acutesmall\",\n  0xf7b4,\n  \"Acyrillic\",\n  0x0410,\n  \"Adblgrave\",\n  0x0200,\n  \"Adieresis\",\n  0x00c4,\n  \"Adieresiscyrillic\",\n  0x04d2,\n  \"Adieresismacron\",\n  0x01de,\n  \"Adieresissmall\",\n  0xf7e4,\n  \"Adotbelow\",\n  0x1ea0,\n  \"Adotmacron\",\n  0x01e0,\n  \"Agrave\",\n  0x00c0,\n  \"Agravesmall\",\n  0xf7e0,\n  \"Ahookabove\",\n  0x1ea2,\n  \"Aiecyrillic\",\n  0x04d4,\n  \"Ainvertedbreve\",\n  0x0202,\n  \"Alpha\",\n  0x0391,\n  \"Alphatonos\",\n  0x0386,\n  \"Amacron\",\n  0x0100,\n  \"Amonospace\",\n  0xff21,\n  \"Aogonek\",\n  0x0104,\n  \"Aring\",\n  0x00c5,\n  \"Aringacute\",\n  0x01fa,\n  \"Aringbelow\",\n  0x1e00,\n  \"Aringsmall\",\n  0xf7e5,\n  \"Asmall\",\n  0xf761,\n  \"Atilde\",\n  0x00c3,\n  \"Atildesmall\",\n  0xf7e3,\n  \"Aybarmenian\",\n  0x0531,\n  \"B\",\n  0x0042,\n  \"Bcircle\",\n  0x24b7,\n  \"Bdotaccent\",\n  0x1e02,\n  \"Bdotbelow\",\n  0x1e04,\n  \"Becyrillic\",\n  0x0411,\n  \"Benarmenian\",\n  0x0532,\n  \"Beta\",\n  0x0392,\n  \"Bhook\",\n  0x0181,\n  \"Blinebelow\",\n  0x1e06,\n  \"Bmonospace\",\n  0xff22,\n  \"Brevesmall\",\n  0xf6f4,\n  \"Bsmall\",\n  0xf762,\n  \"Btopbar\",\n  0x0182,\n  \"C\",\n  0x0043,\n  \"Caarmenian\",\n  0x053e,\n  \"Cacute\",\n  0x0106,\n  \"Caron\",\n  0xf6ca,\n  \"Caronsmall\",\n  0xf6f5,\n  \"Ccaron\",\n  0x010c,\n  \"Ccedilla\",\n  0x00c7,\n  \"Ccedillaacute\",\n  0x1e08,\n  \"Ccedillasmall\",\n  0xf7e7,\n  \"Ccircle\",\n  0x24b8,\n  \"Ccircumflex\",\n  0x0108,\n  \"Cdot\",\n  0x010a,\n  \"Cdotaccent\",\n  0x010a,\n  \"Cedillasmall\",\n  0xf7b8,\n  \"Chaarmenian\",\n  0x0549,\n  \"Cheabkhasiancyrillic\",\n  0x04bc,\n  \"Checyrillic\",\n  0x0427,\n  \"Chedescenderabkhasiancyrillic\",\n  0x04be,\n  \"Chedescendercyrillic\",\n  0x04b6,\n  \"Chedieresiscyrillic\",\n  0x04f4,\n  \"Cheharmenian\",\n  0x0543,\n  \"Chekhakassiancyrillic\",\n  0x04cb,\n  \"Cheverticalstrokecyrillic\",\n  0x04b8,\n  \"Chi\",\n  0x03a7,\n  \"Chook\",\n  0x0187,\n  \"Circumflexsmall\",\n  0xf6f6,\n  \"Cmonospace\",\n  0xff23,\n  \"Coarmenian\",\n  0x0551,\n  \"Csmall\",\n  0xf763,\n  \"D\",\n  0x0044,\n  \"DZ\",\n  0x01f1,\n  \"DZcaron\",\n  0x01c4,\n  \"Daarmenian\",\n  0x0534,\n  \"Dafrican\",\n  0x0189,\n  \"Dcaron\",\n  0x010e,\n  \"Dcedilla\",\n  0x1e10,\n  \"Dcircle\",\n  0x24b9,\n  \"Dcircumflexbelow\",\n  0x1e12,\n  \"Dcroat\",\n  0x0110,\n  \"Ddotaccent\",\n  0x1e0a,\n  \"Ddotbelow\",\n  0x1e0c,\n  \"Decyrillic\",\n  0x0414,\n  \"Deicoptic\",\n  0x03ee,\n  \"Delta\",\n  0x2206,\n  \"Deltagreek\",\n  0x0394,\n  \"Dhook\",\n  0x018a,\n  \"Dieresis\",\n  0xf6cb,\n  \"DieresisAcute\",\n  0xf6cc,\n  \"DieresisGrave\",\n  0xf6cd,\n  \"Dieresissmall\",\n  0xf7a8,\n  \"Digammagreek\",\n  0x03dc,\n  \"Djecyrillic\",\n  0x0402,\n  \"Dlinebelow\",\n  0x1e0e,\n  \"Dmonospace\",\n  0xff24,\n  \"Dotaccentsmall\",\n  0xf6f7,\n  \"Dslash\",\n  0x0110,\n  \"Dsmall\",\n  0xf764,\n  \"Dtopbar\",\n  0x018b,\n  \"Dz\",\n  0x01f2,\n  \"Dzcaron\",\n  0x01c5,\n  \"Dzeabkhasiancyrillic\",\n  0x04e0,\n  \"Dzecyrillic\",\n  0x0405,\n  \"Dzhecyrillic\",\n  0x040f,\n  \"E\",\n  0x0045,\n  \"Eacute\",\n  0x00c9,\n  \"Eacutesmall\",\n  0xf7e9,\n  \"Ebreve\",\n  0x0114,\n  \"Ecaron\",\n  0x011a,\n  \"Ecedillabreve\",\n  0x1e1c,\n  \"Echarmenian\",\n  0x0535,\n  \"Ecircle\",\n  0x24ba,\n  \"Ecircumflex\",\n  0x00ca,\n  \"Ecircumflexacute\",\n  0x1ebe,\n  \"Ecircumflexbelow\",\n  0x1e18,\n  \"Ecircumflexdotbelow\",\n  0x1ec6,\n  \"Ecircumflexgrave\",\n  0x1ec0,\n  \"Ecircumflexhookabove\",\n  0x1ec2,\n  \"Ecircumflexsmall\",\n  0xf7ea,\n  \"Ecircumflextilde\",\n  0x1ec4,\n  \"Ecyrillic\",\n  0x0404,\n  \"Edblgrave\",\n  0x0204,\n  \"Edieresis\",\n  0x00cb,\n  \"Edieresissmall\",\n  0xf7eb,\n  \"Edot\",\n  0x0116,\n  \"Edotaccent\",\n  0x0116,\n  \"Edotbelow\",\n  0x1eb8,\n  \"Efcyrillic\",\n  0x0424,\n  \"Egrave\",\n  0x00c8,\n  \"Egravesmall\",\n  0xf7e8,\n  \"Eharmenian\",\n  0x0537,\n  \"Ehookabove\",\n  0x1eba,\n  \"Eightroman\",\n  0x2167,\n  \"Einvertedbreve\",\n  0x0206,\n  \"Eiotifiedcyrillic\",\n  0x0464,\n  \"Elcyrillic\",\n  0x041b,\n  \"Elevenroman\",\n  0x216a,\n  \"Emacron\",\n  0x0112,\n  \"Emacronacute\",\n  0x1e16,\n  \"Emacrongrave\",\n  0x1e14,\n  \"Emcyrillic\",\n  0x041c,\n  \"Emonospace\",\n  0xff25,\n  \"Encyrillic\",\n  0x041d,\n  \"Endescendercyrillic\",\n  0x04a2,\n  \"Eng\",\n  0x014a,\n  \"Enghecyrillic\",\n  0x04a4,\n  \"Enhookcyrillic\",\n  0x04c7,\n  \"Eogonek\",\n  0x0118,\n  \"Eopen\",\n  0x0190,\n  \"Epsilon\",\n  0x0395,\n  \"Epsilontonos\",\n  0x0388,\n  \"Ercyrillic\",\n  0x0420,\n  \"Ereversed\",\n  0x018e,\n  \"Ereversedcyrillic\",\n  0x042d,\n  \"Escyrillic\",\n  0x0421,\n  \"Esdescendercyrillic\",\n  0x04aa,\n  \"Esh\",\n  0x01a9,\n  \"Esmall\",\n  0xf765,\n  \"Eta\",\n  0x0397,\n  \"Etarmenian\",\n  0x0538,\n  \"Etatonos\",\n  0x0389,\n  \"Eth\",\n  0x00d0,\n  \"Ethsmall\",\n  0xf7f0,\n  \"Etilde\",\n  0x1ebc,\n  \"Etildebelow\",\n  0x1e1a,\n  \"Euro\",\n  0x20ac,\n  \"Ezh\",\n  0x01b7,\n  \"Ezhcaron\",\n  0x01ee,\n  \"Ezhreversed\",\n  0x01b8,\n  \"F\",\n  0x0046,\n  \"Fcircle\",\n  0x24bb,\n  \"Fdotaccent\",\n  0x1e1e,\n  \"Feharmenian\",\n  0x0556,\n  \"Feicoptic\",\n  0x03e4,\n  \"Fhook\",\n  0x0191,\n  \"Fitacyrillic\",\n  0x0472,\n  \"Fiveroman\",\n  0x2164,\n  \"Fmonospace\",\n  0xff26,\n  \"Fourroman\",\n  0x2163,\n  \"Fsmall\",\n  0xf766,\n  \"G\",\n  0x0047,\n  \"GBsquare\",\n  0x3387,\n  \"Gacute\",\n  0x01f4,\n  \"Gamma\",\n  0x0393,\n  \"Gammaafrican\",\n  0x0194,\n  \"Gangiacoptic\",\n  0x03ea,\n  \"Gbreve\",\n  0x011e,\n  \"Gcaron\",\n  0x01e6,\n  \"Gcedilla\",\n  0x0122,\n  \"Gcircle\",\n  0x24bc,\n  \"Gcircumflex\",\n  0x011c,\n  \"Gcommaaccent\",\n  0x0122,\n  \"Gdot\",\n  0x0120,\n  \"Gdotaccent\",\n  0x0120,\n  \"Gecyrillic\",\n  0x0413,\n  \"Ghadarmenian\",\n  0x0542,\n  \"Ghemiddlehookcyrillic\",\n  0x0494,\n  \"Ghestrokecyrillic\",\n  0x0492,\n  \"Gheupturncyrillic\",\n  0x0490,\n  \"Ghook\",\n  0x0193,\n  \"Gimarmenian\",\n  0x0533,\n  \"Gjecyrillic\",\n  0x0403,\n  \"Gmacron\",\n  0x1e20,\n  \"Gmonospace\",\n  0xff27,\n  \"Grave\",\n  0xf6ce,\n  \"Gravesmall\",\n  0xf760,\n  \"Gsmall\",\n  0xf767,\n  \"Gsmallhook\",\n  0x029b,\n  \"Gstroke\",\n  0x01e4,\n  \"H\",\n  0x0048,\n  \"H18533\",\n  0x25cf,\n  \"H18543\",\n  0x25aa,\n  \"H18551\",\n  0x25ab,\n  \"H22073\",\n  0x25a1,\n  \"HPsquare\",\n  0x33cb,\n  \"Haabkhasiancyrillic\",\n  0x04a8,\n  \"Hadescendercyrillic\",\n  0x04b2,\n  \"Hardsigncyrillic\",\n  0x042a,\n  \"Hbar\",\n  0x0126,\n  \"Hbrevebelow\",\n  0x1e2a,\n  \"Hcedilla\",\n  0x1e28,\n  \"Hcircle\",\n  0x24bd,\n  \"Hcircumflex\",\n  0x0124,\n  \"Hdieresis\",\n  0x1e26,\n  \"Hdotaccent\",\n  0x1e22,\n  \"Hdotbelow\",\n  0x1e24,\n  \"Hmonospace\",\n  0xff28,\n  \"Hoarmenian\",\n  0x0540,\n  \"Horicoptic\",\n  0x03e8,\n  \"Hsmall\",\n  0xf768,\n  \"Hungarumlaut\",\n  0xf6cf,\n  \"Hungarumlautsmall\",\n  0xf6f8,\n  \"Hzsquare\",\n  0x3390,\n  \"I\",\n  0x0049,\n  \"IAcyrillic\",\n  0x042f,\n  \"IJ\",\n  0x0132,\n  \"IUcyrillic\",\n  0x042e,\n  \"Iacute\",\n  0x00cd,\n  \"Iacutesmall\",\n  0xf7ed,\n  \"Ibreve\",\n  0x012c,\n  \"Icaron\",\n  0x01cf,\n  \"Icircle\",\n  0x24be,\n  \"Icircumflex\",\n  0x00ce,\n  \"Icircumflexsmall\",\n  0xf7ee,\n  \"Icyrillic\",\n  0x0406,\n  \"Idblgrave\",\n  0x0208,\n  \"Idieresis\",\n  0x00cf,\n  \"Idieresisacute\",\n  0x1e2e,\n  \"Idieresiscyrillic\",\n  0x04e4,\n  \"Idieresissmall\",\n  0xf7ef,\n  \"Idot\",\n  0x0130,\n  \"Idotaccent\",\n  0x0130,\n  \"Idotbelow\",\n  0x1eca,\n  \"Iebrevecyrillic\",\n  0x04d6,\n  \"Iecyrillic\",\n  0x0415,\n  \"Ifraktur\",\n  0x2111,\n  \"Igrave\",\n  0x00cc,\n  \"Igravesmall\",\n  0xf7ec,\n  \"Ihookabove\",\n  0x1ec8,\n  \"Iicyrillic\",\n  0x0418,\n  \"Iinvertedbreve\",\n  0x020a,\n  \"Iishortcyrillic\",\n  0x0419,\n  \"Imacron\",\n  0x012a,\n  \"Imacroncyrillic\",\n  0x04e2,\n  \"Imonospace\",\n  0xff29,\n  \"Iniarmenian\",\n  0x053b,\n  \"Iocyrillic\",\n  0x0401,\n  \"Iogonek\",\n  0x012e,\n  \"Iota\",\n  0x0399,\n  \"Iotaafrican\",\n  0x0196,\n  \"Iotadieresis\",\n  0x03aa,\n  \"Iotatonos\",\n  0x038a,\n  \"Ismall\",\n  0xf769,\n  \"Istroke\",\n  0x0197,\n  \"Itilde\",\n  0x0128,\n  \"Itildebelow\",\n  0x1e2c,\n  \"Izhitsacyrillic\",\n  0x0474,\n  \"Izhitsadblgravecyrillic\",\n  0x0476,\n  \"J\",\n  0x004a,\n  \"Jaarmenian\",\n  0x0541,\n  \"Jcircle\",\n  0x24bf,\n  \"Jcircumflex\",\n  0x0134,\n  \"Jecyrillic\",\n  0x0408,\n  \"Jheharmenian\",\n  0x054b,\n  \"Jmonospace\",\n  0xff2a,\n  \"Jsmall\",\n  0xf76a,\n  \"K\",\n  0x004b,\n  \"KBsquare\",\n  0x3385,\n  \"KKsquare\",\n  0x33cd,\n  \"Kabashkircyrillic\",\n  0x04a0,\n  \"Kacute\",\n  0x1e30,\n  \"Kacyrillic\",\n  0x041a,\n  \"Kadescendercyrillic\",\n  0x049a,\n  \"Kahookcyrillic\",\n  0x04c3,\n  \"Kappa\",\n  0x039a,\n  \"Kastrokecyrillic\",\n  0x049e,\n  \"Kaverticalstrokecyrillic\",\n  0x049c,\n  \"Kcaron\",\n  0x01e8,\n  \"Kcedilla\",\n  0x0136,\n  \"Kcircle\",\n  0x24c0,\n  \"Kcommaaccent\",\n  0x0136,\n  \"Kdotbelow\",\n  0x1e32,\n  \"Keharmenian\",\n  0x0554,\n  \"Kenarmenian\",\n  0x053f,\n  \"Khacyrillic\",\n  0x0425,\n  \"Kheicoptic\",\n  0x03e6,\n  \"Khook\",\n  0x0198,\n  \"Kjecyrillic\",\n  0x040c,\n  \"Klinebelow\",\n  0x1e34,\n  \"Kmonospace\",\n  0xff2b,\n  \"Koppacyrillic\",\n  0x0480,\n  \"Koppagreek\",\n  0x03de,\n  \"Ksicyrillic\",\n  0x046e,\n  \"Ksmall\",\n  0xf76b,\n  \"L\",\n  0x004c,\n  \"LJ\",\n  0x01c7,\n  \"LL\",\n  0xf6bf,\n  \"Lacute\",\n  0x0139,\n  \"Lambda\",\n  0x039b,\n  \"Lcaron\",\n  0x013d,\n  \"Lcedilla\",\n  0x013b,\n  \"Lcircle\",\n  0x24c1,\n  \"Lcircumflexbelow\",\n  0x1e3c,\n  \"Lcommaaccent\",\n  0x013b,\n  \"Ldot\",\n  0x013f,\n  \"Ldotaccent\",\n  0x013f,\n  \"Ldotbelow\",\n  0x1e36,\n  \"Ldotbelowmacron\",\n  0x1e38,\n  \"Liwnarmenian\",\n  0x053c,\n  \"Lj\",\n  0x01c8,\n  \"Ljecyrillic\",\n  0x0409,\n  \"Llinebelow\",\n  0x1e3a,\n  \"Lmonospace\",\n  0xff2c,\n  \"Lslash\",\n  0x0141,\n  \"Lslashsmall\",\n  0xf6f9,\n  \"Lsmall\",\n  0xf76c,\n  \"M\",\n  0x004d,\n  \"MBsquare\",\n  0x3386,\n  \"Macron\",\n  0xf6d0,\n  \"Macronsmall\",\n  0xf7af,\n  \"Macute\",\n  0x1e3e,\n  \"Mcircle\",\n  0x24c2,\n  \"Mdotaccent\",\n  0x1e40,\n  \"Mdotbelow\",\n  0x1e42,\n  \"Menarmenian\",\n  0x0544,\n  \"Mmonospace\",\n  0xff2d,\n  \"Msmall\",\n  0xf76d,\n  \"Mturned\",\n  0x019c,\n  \"Mu\",\n  0x039c,\n  \"N\",\n  0x004e,\n  \"NJ\",\n  0x01ca,\n  \"Nacute\",\n  0x0143,\n  \"Ncaron\",\n  0x0147,\n  \"Ncedilla\",\n  0x0145,\n  \"Ncircle\",\n  0x24c3,\n  \"Ncircumflexbelow\",\n  0x1e4a,\n  \"Ncommaaccent\",\n  0x0145,\n  \"Ndotaccent\",\n  0x1e44,\n  \"Ndotbelow\",\n  0x1e46,\n  \"Nhookleft\",\n  0x019d,\n  \"Nineroman\",\n  0x2168,\n  \"Nj\",\n  0x01cb,\n  \"Njecyrillic\",\n  0x040a,\n  \"Nlinebelow\",\n  0x1e48,\n  \"Nmonospace\",\n  0xff2e,\n  \"Nowarmenian\",\n  0x0546,\n  \"Nsmall\",\n  0xf76e,\n  \"Ntilde\",\n  0x00d1,\n  \"Ntildesmall\",\n  0xf7f1,\n  \"Nu\",\n  0x039d,\n  \"O\",\n  0x004f,\n  \"OE\",\n  0x0152,\n  \"OEsmall\",\n  0xf6fa,\n  \"Oacute\",\n  0x00d3,\n  \"Oacutesmall\",\n  0xf7f3,\n  \"Obarredcyrillic\",\n  0x04e8,\n  \"Obarreddieresiscyrillic\",\n  0x04ea,\n  \"Obreve\",\n  0x014e,\n  \"Ocaron\",\n  0x01d1,\n  \"Ocenteredtilde\",\n  0x019f,\n  \"Ocircle\",\n  0x24c4,\n  \"Ocircumflex\",\n  0x00d4,\n  \"Ocircumflexacute\",\n  0x1ed0,\n  \"Ocircumflexdotbelow\",\n  0x1ed8,\n  \"Ocircumflexgrave\",\n  0x1ed2,\n  \"Ocircumflexhookabove\",\n  0x1ed4,\n  \"Ocircumflexsmall\",\n  0xf7f4,\n  \"Ocircumflextilde\",\n  0x1ed6,\n  \"Ocyrillic\",\n  0x041e,\n  \"Odblacute\",\n  0x0150,\n  \"Odblgrave\",\n  0x020c,\n  \"Odieresis\",\n  0x00d6,\n  \"Odieresiscyrillic\",\n  0x04e6,\n  \"Odieresissmall\",\n  0xf7f6,\n  \"Odotbelow\",\n  0x1ecc,\n  \"Ogoneksmall\",\n  0xf6fb,\n  \"Ograve\",\n  0x00d2,\n  \"Ogravesmall\",\n  0xf7f2,\n  \"Oharmenian\",\n  0x0555,\n  \"Ohm\",\n  0x2126,\n  \"Ohookabove\",\n  0x1ece,\n  \"Ohorn\",\n  0x01a0,\n  \"Ohornacute\",\n  0x1eda,\n  \"Ohorndotbelow\",\n  0x1ee2,\n  \"Ohorngrave\",\n  0x1edc,\n  \"Ohornhookabove\",\n  0x1ede,\n  \"Ohorntilde\",\n  0x1ee0,\n  \"Ohungarumlaut\",\n  0x0150,\n  \"Oi\",\n  0x01a2,\n  \"Oinvertedbreve\",\n  0x020e,\n  \"Omacron\",\n  0x014c,\n  \"Omacronacute\",\n  0x1e52,\n  \"Omacrongrave\",\n  0x1e50,\n  \"Omega\",\n  0x2126,\n  \"Omegacyrillic\",\n  0x0460,\n  \"Omegagreek\",\n  0x03a9,\n  \"Omegaroundcyrillic\",\n  0x047a,\n  \"Omegatitlocyrillic\",\n  0x047c,\n  \"Omegatonos\",\n  0x038f,\n  \"Omicron\",\n  0x039f,\n  \"Omicrontonos\",\n  0x038c,\n  \"Omonospace\",\n  0xff2f,\n  \"Oneroman\",\n  0x2160,\n  \"Oogonek\",\n  0x01ea,\n  \"Oogonekmacron\",\n  0x01ec,\n  \"Oopen\",\n  0x0186,\n  \"Oslash\",\n  0x00d8,\n  \"Oslashacute\",\n  0x01fe,\n  \"Oslashsmall\",\n  0xf7f8,\n  \"Osmall\",\n  0xf76f,\n  \"Ostrokeacute\",\n  0x01fe,\n  \"Otcyrillic\",\n  0x047e,\n  \"Otilde\",\n  0x00d5,\n  \"Otildeacute\",\n  0x1e4c,\n  \"Otildedieresis\",\n  0x1e4e,\n  \"Otildesmall\",\n  0xf7f5,\n  \"P\",\n  0x0050,\n  \"Pacute\",\n  0x1e54,\n  \"Pcircle\",\n  0x24c5,\n  \"Pdotaccent\",\n  0x1e56,\n  \"Pecyrillic\",\n  0x041f,\n  \"Peharmenian\",\n  0x054a,\n  \"Pemiddlehookcyrillic\",\n  0x04a6,\n  \"Phi\",\n  0x03a6,\n  \"Phook\",\n  0x01a4,\n  \"Pi\",\n  0x03a0,\n  \"Piwrarmenian\",\n  0x0553,\n  \"Pmonospace\",\n  0xff30,\n  \"Psi\",\n  0x03a8,\n  \"Psicyrillic\",\n  0x0470,\n  \"Psmall\",\n  0xf770,\n  \"Q\",\n  0x0051,\n  \"Qcircle\",\n  0x24c6,\n  \"Qmonospace\",\n  0xff31,\n  \"Qsmall\",\n  0xf771,\n  \"R\",\n  0x0052,\n  \"Raarmenian\",\n  0x054c,\n  \"Racute\",\n  0x0154,\n  \"Rcaron\",\n  0x0158,\n  \"Rcedilla\",\n  0x0156,\n  \"Rcircle\",\n  0x24c7,\n  \"Rcommaaccent\",\n  0x0156,\n  \"Rdblgrave\",\n  0x0210,\n  \"Rdotaccent\",\n  0x1e58,\n  \"Rdotbelow\",\n  0x1e5a,\n  \"Rdotbelowmacron\",\n  0x1e5c,\n  \"Reharmenian\",\n  0x0550,\n  \"Rfraktur\",\n  0x211c,\n  \"Rho\",\n  0x03a1,\n  \"Ringsmall\",\n  0xf6fc,\n  \"Rinvertedbreve\",\n  0x0212,\n  \"Rlinebelow\",\n  0x1e5e,\n  \"Rmonospace\",\n  0xff32,\n  \"Rsmall\",\n  0xf772,\n  \"Rsmallinverted\",\n  0x0281,\n  \"Rsmallinvertedsuperior\",\n  0x02b6,\n  \"S\",\n  0x0053,\n  \"SF010000\",\n  0x250c,\n  \"SF020000\",\n  0x2514,\n  \"SF030000\",\n  0x2510,\n  \"SF040000\",\n  0x2518,\n  \"SF050000\",\n  0x253c,\n  \"SF060000\",\n  0x252c,\n  \"SF070000\",\n  0x2534,\n  \"SF080000\",\n  0x251c,\n  \"SF090000\",\n  0x2524,\n  \"SF100000\",\n  0x2500,\n  \"SF110000\",\n  0x2502,\n  \"SF190000\",\n  0x2561,\n  \"SF200000\",\n  0x2562,\n  \"SF210000\",\n  0x2556,\n  \"SF220000\",\n  0x2555,\n  \"SF230000\",\n  0x2563,\n  \"SF240000\",\n  0x2551,\n  \"SF250000\",\n  0x2557,\n  \"SF260000\",\n  0x255d,\n  \"SF270000\",\n  0x255c,\n  \"SF280000\",\n  0x255b,\n  \"SF360000\",\n  0x255e,\n  \"SF370000\",\n  0x255f,\n  \"SF380000\",\n  0x255a,\n  \"SF390000\",\n  0x2554,\n  \"SF400000\",\n  0x2569,\n  \"SF410000\",\n  0x2566,\n  \"SF420000\",\n  0x2560,\n  \"SF430000\",\n  0x2550,\n  \"SF440000\",\n  0x256c,\n  \"SF450000\",\n  0x2567,\n  \"SF460000\",\n  0x2568,\n  \"SF470000\",\n  0x2564,\n  \"SF480000\",\n  0x2565,\n  \"SF490000\",\n  0x2559,\n  \"SF500000\",\n  0x2558,\n  \"SF510000\",\n  0x2552,\n  \"SF520000\",\n  0x2553,\n  \"SF530000\",\n  0x256b,\n  \"SF540000\",\n  0x256a,\n  \"Sacute\",\n  0x015a,\n  \"Sacutedotaccent\",\n  0x1e64,\n  \"Sampigreek\",\n  0x03e0,\n  \"Scaron\",\n  0x0160,\n  \"Scarondotaccent\",\n  0x1e66,\n  \"Scaronsmall\",\n  0xf6fd,\n  \"Scedilla\",\n  0x015e,\n  \"Schwa\",\n  0x018f,\n  \"Schwacyrillic\",\n  0x04d8,\n  \"Schwadieresiscyrillic\",\n  0x04da,\n  \"Scircle\",\n  0x24c8,\n  \"Scircumflex\",\n  0x015c,\n  \"Scommaaccent\",\n  0x0218,\n  \"Sdotaccent\",\n  0x1e60,\n  \"Sdotbelow\",\n  0x1e62,\n  \"Sdotbelowdotaccent\",\n  0x1e68,\n  \"Seharmenian\",\n  0x054d,\n  \"Sevenroman\",\n  0x2166,\n  \"Shaarmenian\",\n  0x0547,\n  \"Shacyrillic\",\n  0x0428,\n  \"Shchacyrillic\",\n  0x0429,\n  \"Sheicoptic\",\n  0x03e2,\n  \"Shhacyrillic\",\n  0x04ba,\n  \"Shimacoptic\",\n  0x03ec,\n  \"Sigma\",\n  0x03a3,\n  \"Sixroman\",\n  0x2165,\n  \"Smonospace\",\n  0xff33,\n  \"Softsigncyrillic\",\n  0x042c,\n  \"Ssmall\",\n  0xf773,\n  \"Stigmagreek\",\n  0x03da,\n  \"T\",\n  0x0054,\n  \"Tau\",\n  0x03a4,\n  \"Tbar\",\n  0x0166,\n  \"Tcaron\",\n  0x0164,\n  \"Tcedilla\",\n  0x0162,\n  \"Tcircle\",\n  0x24c9,\n  \"Tcircumflexbelow\",\n  0x1e70,\n  \"Tcommaaccent\",\n  0x0162,\n  \"Tdotaccent\",\n  0x1e6a,\n  \"Tdotbelow\",\n  0x1e6c,\n  \"Tecyrillic\",\n  0x0422,\n  \"Tedescendercyrillic\",\n  0x04ac,\n  \"Tenroman\",\n  0x2169,\n  \"Tetsecyrillic\",\n  0x04b4,\n  \"Theta\",\n  0x0398,\n  \"Thook\",\n  0x01ac,\n  \"Thorn\",\n  0x00de,\n  \"Thornsmall\",\n  0xf7fe,\n  \"Threeroman\",\n  0x2162,\n  \"Tildesmall\",\n  0xf6fe,\n  \"Tiwnarmenian\",\n  0x054f,\n  \"Tlinebelow\",\n  0x1e6e,\n  \"Tmonospace\",\n  0xff34,\n  \"Toarmenian\",\n  0x0539,\n  \"Tonefive\",\n  0x01bc,\n  \"Tonesix\",\n  0x0184,\n  \"Tonetwo\",\n  0x01a7,\n  \"Tretroflexhook\",\n  0x01ae,\n  \"Tsecyrillic\",\n  0x0426,\n  \"Tshecyrillic\",\n  0x040b,\n  \"Tsmall\",\n  0xf774,\n  \"Twelveroman\",\n  0x216b,\n  \"Tworoman\",\n  0x2161,\n  \"U\",\n  0x0055,\n  \"Uacute\",\n  0x00da,\n  \"Uacutesmall\",\n  0xf7fa,\n  \"Ubreve\",\n  0x016c,\n  \"Ucaron\",\n  0x01d3,\n  \"Ucircle\",\n  0x24ca,\n  \"Ucircumflex\",\n  0x00db,\n  \"Ucircumflexbelow\",\n  0x1e76,\n  \"Ucircumflexsmall\",\n  0xf7fb,\n  \"Ucyrillic\",\n  0x0423,\n  \"Udblacute\",\n  0x0170,\n  \"Udblgrave\",\n  0x0214,\n  \"Udieresis\",\n  0x00dc,\n  \"Udieresisacute\",\n  0x01d7,\n  \"Udieresisbelow\",\n  0x1e72,\n  \"Udieresiscaron\",\n  0x01d9,\n  \"Udieresiscyrillic\",\n  0x04f0,\n  \"Udieresisgrave\",\n  0x01db,\n  \"Udieresismacron\",\n  0x01d5,\n  \"Udieresissmall\",\n  0xf7fc,\n  \"Udotbelow\",\n  0x1ee4,\n  \"Ugrave\",\n  0x00d9,\n  \"Ugravesmall\",\n  0xf7f9,\n  \"Uhookabove\",\n  0x1ee6,\n  \"Uhorn\",\n  0x01af,\n  \"Uhornacute\",\n  0x1ee8,\n  \"Uhorndotbelow\",\n  0x1ef0,\n  \"Uhorngrave\",\n  0x1eea,\n  \"Uhornhookabove\",\n  0x1eec,\n  \"Uhorntilde\",\n  0x1eee,\n  \"Uhungarumlaut\",\n  0x0170,\n  \"Uhungarumlautcyrillic\",\n  0x04f2,\n  \"Uinvertedbreve\",\n  0x0216,\n  \"Ukcyrillic\",\n  0x0478,\n  \"Umacron\",\n  0x016a,\n  \"Umacroncyrillic\",\n  0x04ee,\n  \"Umacrondieresis\",\n  0x1e7a,\n  \"Umonospace\",\n  0xff35,\n  \"Uogonek\",\n  0x0172,\n  \"Upsilon\",\n  0x03a5,\n  \"Upsilon1\",\n  0x03d2,\n  \"Upsilonacutehooksymbolgreek\",\n  0x03d3,\n  \"Upsilonafrican\",\n  0x01b1,\n  \"Upsilondieresis\",\n  0x03ab,\n  \"Upsilondieresishooksymbolgreek\",\n  0x03d4,\n  \"Upsilonhooksymbol\",\n  0x03d2,\n  \"Upsilontonos\",\n  0x038e,\n  \"Uring\",\n  0x016e,\n  \"Ushortcyrillic\",\n  0x040e,\n  \"Usmall\",\n  0xf775,\n  \"Ustraightcyrillic\",\n  0x04ae,\n  \"Ustraightstrokecyrillic\",\n  0x04b0,\n  \"Utilde\",\n  0x0168,\n  \"Utildeacute\",\n  0x1e78,\n  \"Utildebelow\",\n  0x1e74,\n  \"V\",\n  0x0056,\n  \"Vcircle\",\n  0x24cb,\n  \"Vdotbelow\",\n  0x1e7e,\n  \"Vecyrillic\",\n  0x0412,\n  \"Vewarmenian\",\n  0x054e,\n  \"Vhook\",\n  0x01b2,\n  \"Vmonospace\",\n  0xff36,\n  \"Voarmenian\",\n  0x0548,\n  \"Vsmall\",\n  0xf776,\n  \"Vtilde\",\n  0x1e7c,\n  \"W\",\n  0x0057,\n  \"Wacute\",\n  0x1e82,\n  \"Wcircle\",\n  0x24cc,\n  \"Wcircumflex\",\n  0x0174,\n  \"Wdieresis\",\n  0x1e84,\n  \"Wdotaccent\",\n  0x1e86,\n  \"Wdotbelow\",\n  0x1e88,\n  \"Wgrave\",\n  0x1e80,\n  \"Wmonospace\",\n  0xff37,\n  \"Wsmall\",\n  0xf777,\n  \"X\",\n  0x0058,\n  \"Xcircle\",\n  0x24cd,\n  \"Xdieresis\",\n  0x1e8c,\n  \"Xdotaccent\",\n  0x1e8a,\n  \"Xeharmenian\",\n  0x053d,\n  \"Xi\",\n  0x039e,\n  \"Xmonospace\",\n  0xff38,\n  \"Xsmall\",\n  0xf778,\n  \"Y\",\n  0x0059,\n  \"Yacute\",\n  0x00dd,\n  \"Yacutesmall\",\n  0xf7fd,\n  \"Yatcyrillic\",\n  0x0462,\n  \"Ycircle\",\n  0x24ce,\n  \"Ycircumflex\",\n  0x0176,\n  \"Ydieresis\",\n  0x0178,\n  \"Ydieresissmall\",\n  0xf7ff,\n  \"Ydotaccent\",\n  0x1e8e,\n  \"Ydotbelow\",\n  0x1ef4,\n  \"Yericyrillic\",\n  0x042b,\n  \"Yerudieresiscyrillic\",\n  0x04f8,\n  \"Ygrave\",\n  0x1ef2,\n  \"Yhook\",\n  0x01b3,\n  \"Yhookabove\",\n  0x1ef6,\n  \"Yiarmenian\",\n  0x0545,\n  \"Yicyrillic\",\n  0x0407,\n  \"Yiwnarmenian\",\n  0x0552,\n  \"Ymonospace\",\n  0xff39,\n  \"Ysmall\",\n  0xf779,\n  \"Ytilde\",\n  0x1ef8,\n  \"Yusbigcyrillic\",\n  0x046a,\n  \"Yusbigiotifiedcyrillic\",\n  0x046c,\n  \"Yuslittlecyrillic\",\n  0x0466,\n  \"Yuslittleiotifiedcyrillic\",\n  0x0468,\n  \"Z\",\n  0x005a,\n  \"Zaarmenian\",\n  0x0536,\n  \"Zacute\",\n  0x0179,\n  \"Zcaron\",\n  0x017d,\n  \"Zcaronsmall\",\n  0xf6ff,\n  \"Zcircle\",\n  0x24cf,\n  \"Zcircumflex\",\n  0x1e90,\n  \"Zdot\",\n  0x017b,\n  \"Zdotaccent\",\n  0x017b,\n  \"Zdotbelow\",\n  0x1e92,\n  \"Zecyrillic\",\n  0x0417,\n  \"Zedescendercyrillic\",\n  0x0498,\n  \"Zedieresiscyrillic\",\n  0x04de,\n  \"Zeta\",\n  0x0396,\n  \"Zhearmenian\",\n  0x053a,\n  \"Zhebrevecyrillic\",\n  0x04c1,\n  \"Zhecyrillic\",\n  0x0416,\n  \"Zhedescendercyrillic\",\n  0x0496,\n  \"Zhedieresiscyrillic\",\n  0x04dc,\n  \"Zlinebelow\",\n  0x1e94,\n  \"Zmonospace\",\n  0xff3a,\n  \"Zsmall\",\n  0xf77a,\n  \"Zstroke\",\n  0x01b5,\n  \"a\",\n  0x0061,\n  \"aabengali\",\n  0x0986,\n  \"aacute\",\n  0x00e1,\n  \"aadeva\",\n  0x0906,\n  \"aagujarati\",\n  0x0a86,\n  \"aagurmukhi\",\n  0x0a06,\n  \"aamatragurmukhi\",\n  0x0a3e,\n  \"aarusquare\",\n  0x3303,\n  \"aavowelsignbengali\",\n  0x09be,\n  \"aavowelsigndeva\",\n  0x093e,\n  \"aavowelsigngujarati\",\n  0x0abe,\n  \"abbreviationmarkarmenian\",\n  0x055f,\n  \"abbreviationsigndeva\",\n  0x0970,\n  \"abengali\",\n  0x0985,\n  \"abopomofo\",\n  0x311a,\n  \"abreve\",\n  0x0103,\n  \"abreveacute\",\n  0x1eaf,\n  \"abrevecyrillic\",\n  0x04d1,\n  \"abrevedotbelow\",\n  0x1eb7,\n  \"abrevegrave\",\n  0x1eb1,\n  \"abrevehookabove\",\n  0x1eb3,\n  \"abrevetilde\",\n  0x1eb5,\n  \"acaron\",\n  0x01ce,\n  \"acircle\",\n  0x24d0,\n  \"acircumflex\",\n  0x00e2,\n  \"acircumflexacute\",\n  0x1ea5,\n  \"acircumflexdotbelow\",\n  0x1ead,\n  \"acircumflexgrave\",\n  0x1ea7,\n  \"acircumflexhookabove\",\n  0x1ea9,\n  \"acircumflextilde\",\n  0x1eab,\n  \"acute\",\n  0x00b4,\n  \"acutebelowcmb\",\n  0x0317,\n  \"acutecmb\",\n  0x0301,\n  \"acutecomb\",\n  0x0301,\n  \"acutedeva\",\n  0x0954,\n  \"acutelowmod\",\n  0x02cf,\n  \"acutetonecmb\",\n  0x0341,\n  \"acyrillic\",\n  0x0430,\n  \"adblgrave\",\n  0x0201,\n  \"addakgurmukhi\",\n  0x0a71,\n  \"adeva\",\n  0x0905,\n  \"adieresis\",\n  0x00e4,\n  \"adieresiscyrillic\",\n  0x04d3,\n  \"adieresismacron\",\n  0x01df,\n  \"adotbelow\",\n  0x1ea1,\n  \"adotmacron\",\n  0x01e1,\n  \"ae\",\n  0x00e6,\n  \"aeacute\",\n  0x01fd,\n  \"aekorean\",\n  0x3150,\n  \"aemacron\",\n  0x01e3,\n  \"afii00208\",\n  0x2015,\n  \"afii08941\",\n  0x20a4,\n  \"afii10017\",\n  0x0410,\n  \"afii10018\",\n  0x0411,\n  \"afii10019\",\n  0x0412,\n  \"afii10020\",\n  0x0413,\n  \"afii10021\",\n  0x0414,\n  \"afii10022\",\n  0x0415,\n  \"afii10023\",\n  0x0401,\n  \"afii10024\",\n  0x0416,\n  \"afii10025\",\n  0x0417,\n  \"afii10026\",\n  0x0418,\n  \"afii10027\",\n  0x0419,\n  \"afii10028\",\n  0x041a,\n  \"afii10029\",\n  0x041b,\n  \"afii10030\",\n  0x041c,\n  \"afii10031\",\n  0x041d,\n  \"afii10032\",\n  0x041e,\n  \"afii10033\",\n  0x041f,\n  \"afii10034\",\n  0x0420,\n  \"afii10035\",\n  0x0421,\n  \"afii10036\",\n  0x0422,\n  \"afii10037\",\n  0x0423,\n  \"afii10038\",\n  0x0424,\n  \"afii10039\",\n  0x0425,\n  \"afii10040\",\n  0x0426,\n  \"afii10041\",\n  0x0427,\n  \"afii10042\",\n  0x0428,\n  \"afii10043\",\n  0x0429,\n  \"afii10044\",\n  0x042a,\n  \"afii10045\",\n  0x042b,\n  \"afii10046\",\n  0x042c,\n  \"afii10047\",\n  0x042d,\n  \"afii10048\",\n  0x042e,\n  \"afii10049\",\n  0x042f,\n  \"afii10050\",\n  0x0490,\n  \"afii10051\",\n  0x0402,\n  \"afii10052\",\n  0x0403,\n  \"afii10053\",\n  0x0404,\n  \"afii10054\",\n  0x0405,\n  \"afii10055\",\n  0x0406,\n  \"afii10056\",\n  0x0407,\n  \"afii10057\",\n  0x0408,\n  \"afii10058\",\n  0x0409,\n  \"afii10059\",\n  0x040a,\n  \"afii10060\",\n  0x040b,\n  \"afii10061\",\n  0x040c,\n  \"afii10062\",\n  0x040e,\n  \"afii10063\",\n  0xf6c4,\n  \"afii10064\",\n  0xf6c5,\n  \"afii10065\",\n  0x0430,\n  \"afii10066\",\n  0x0431,\n  \"afii10067\",\n  0x0432,\n  \"afii10068\",\n  0x0433,\n  \"afii10069\",\n  0x0434,\n  \"afii10070\",\n  0x0435,\n  \"afii10071\",\n  0x0451,\n  \"afii10072\",\n  0x0436,\n  \"afii10073\",\n  0x0437,\n  \"afii10074\",\n  0x0438,\n  \"afii10075\",\n  0x0439,\n  \"afii10076\",\n  0x043a,\n  \"afii10077\",\n  0x043b,\n  \"afii10078\",\n  0x043c,\n  \"afii10079\",\n  0x043d,\n  \"afii10080\",\n  0x043e,\n  \"afii10081\",\n  0x043f,\n  \"afii10082\",\n  0x0440,\n  \"afii10083\",\n  0x0441,\n  \"afii10084\",\n  0x0442,\n  \"afii10085\",\n  0x0443,\n  \"afii10086\",\n  0x0444,\n  \"afii10087\",\n  0x0445,\n  \"afii10088\",\n  0x0446,\n  \"afii10089\",\n  0x0447,\n  \"afii10090\",\n  0x0448,\n  \"afii10091\",\n  0x0449,\n  \"afii10092\",\n  0x044a,\n  \"afii10093\",\n  0x044b,\n  \"afii10094\",\n  0x044c,\n  \"afii10095\",\n  0x044d,\n  \"afii10096\",\n  0x044e,\n  \"afii10097\",\n  0x044f,\n  \"afii10098\",\n  0x0491,\n  \"afii10099\",\n  0x0452,\n  \"afii10100\",\n  0x0453,\n  \"afii10101\",\n  0x0454,\n  \"afii10102\",\n  0x0455,\n  \"afii10103\",\n  0x0456,\n  \"afii10104\",\n  0x0457,\n  \"afii10105\",\n  0x0458,\n  \"afii10106\",\n  0x0459,\n  \"afii10107\",\n  0x045a,\n  \"afii10108\",\n  0x045b,\n  \"afii10109\",\n  0x045c,\n  \"afii10110\",\n  0x045e,\n  \"afii10145\",\n  0x040f,\n  \"afii10146\",\n  0x0462,\n  \"afii10147\",\n  0x0472,\n  \"afii10148\",\n  0x0474,\n  \"afii10192\",\n  0xf6c6,\n  \"afii10193\",\n  0x045f,\n  \"afii10194\",\n  0x0463,\n  \"afii10195\",\n  0x0473,\n  \"afii10196\",\n  0x0475,\n  \"afii10831\",\n  0xf6c7,\n  \"afii10832\",\n  0xf6c8,\n  \"afii10846\",\n  0x04d9,\n  \"afii299\",\n  0x200e,\n  \"afii300\",\n  0x200f,\n  \"afii301\",\n  0x200d,\n  \"afii57381\",\n  0x066a,\n  \"afii57388\",\n  0x060c,\n  \"afii57392\",\n  0x0660,\n  \"afii57393\",\n  0x0661,\n  \"afii57394\",\n  0x0662,\n  \"afii57395\",\n  0x0663,\n  \"afii57396\",\n  0x0664,\n  \"afii57397\",\n  0x0665,\n  \"afii57398\",\n  0x0666,\n  \"afii57399\",\n  0x0667,\n  \"afii57400\",\n  0x0668,\n  \"afii57401\",\n  0x0669,\n  \"afii57403\",\n  0x061b,\n  \"afii57407\",\n  0x061f,\n  \"afii57409\",\n  0x0621,\n  \"afii57410\",\n  0x0622,\n  \"afii57411\",\n  0x0623,\n  \"afii57412\",\n  0x0624,\n  \"afii57413\",\n  0x0625,\n  \"afii57414\",\n  0x0626,\n  \"afii57415\",\n  0x0627,\n  \"afii57416\",\n  0x0628,\n  \"afii57417\",\n  0x0629,\n  \"afii57418\",\n  0x062a,\n  \"afii57419\",\n  0x062b,\n  \"afii57420\",\n  0x062c,\n  \"afii57421\",\n  0x062d,\n  \"afii57422\",\n  0x062e,\n  \"afii57423\",\n  0x062f,\n  \"afii57424\",\n  0x0630,\n  \"afii57425\",\n  0x0631,\n  \"afii57426\",\n  0x0632,\n  \"afii57427\",\n  0x0633,\n  \"afii57428\",\n  0x0634,\n  \"afii57429\",\n  0x0635,\n  \"afii57430\",\n  0x0636,\n  \"afii57431\",\n  0x0637,\n  \"afii57432\",\n  0x0638,\n  \"afii57433\",\n  0x0639,\n  \"afii57434\",\n  0x063a,\n  \"afii57440\",\n  0x0640,\n  \"afii57441\",\n  0x0641,\n  \"afii57442\",\n  0x0642,\n  \"afii57443\",\n  0x0643,\n  \"afii57444\",\n  0x0644,\n  \"afii57445\",\n  0x0645,\n  \"afii57446\",\n  0x0646,\n  \"afii57448\",\n  0x0648,\n  \"afii57449\",\n  0x0649,\n  \"afii57450\",\n  0x064a,\n  \"afii57451\",\n  0x064b,\n  \"afii57452\",\n  0x064c,\n  \"afii57453\",\n  0x064d,\n  \"afii57454\",\n  0x064e,\n  \"afii57455\",\n  0x064f,\n  \"afii57456\",\n  0x0650,\n  \"afii57457\",\n  0x0651,\n  \"afii57458\",\n  0x0652,\n  \"afii57470\",\n  0x0647,\n  \"afii57505\",\n  0x06a4,\n  \"afii57506\",\n  0x067e,\n  \"afii57507\",\n  0x0686,\n  \"afii57508\",\n  0x0698,\n  \"afii57509\",\n  0x06af,\n  \"afii57511\",\n  0x0679,\n  \"afii57512\",\n  0x0688,\n  \"afii57513\",\n  0x0691,\n  \"afii57514\",\n  0x06ba,\n  \"afii57519\",\n  0x06d2,\n  \"afii57534\",\n  0x06d5,\n  \"afii57636\",\n  0x20aa,\n  \"afii57645\",\n  0x05be,\n  \"afii57658\",\n  0x05c3,\n  \"afii57664\",\n  0x05d0,\n  \"afii57665\",\n  0x05d1,\n  \"afii57666\",\n  0x05d2,\n  \"afii57667\",\n  0x05d3,\n  \"afii57668\",\n  0x05d4,\n  \"afii57669\",\n  0x05d5,\n  \"afii57670\",\n  0x05d6,\n  \"afii57671\",\n  0x05d7,\n  \"afii57672\",\n  0x05d8,\n  \"afii57673\",\n  0x05d9,\n  \"afii57674\",\n  0x05da,\n  \"afii57675\",\n  0x05db,\n  \"afii57676\",\n  0x05dc,\n  \"afii57677\",\n  0x05dd,\n  \"afii57678\",\n  0x05de,\n  \"afii57679\",\n  0x05df,\n  \"afii57680\",\n  0x05e0,\n  \"afii57681\",\n  0x05e1,\n  \"afii57682\",\n  0x05e2,\n  \"afii57683\",\n  0x05e3,\n  \"afii57684\",\n  0x05e4,\n  \"afii57685\",\n  0x05e5,\n  \"afii57686\",\n  0x05e6,\n  \"afii57687\",\n  0x05e7,\n  \"afii57688\",\n  0x05e8,\n  \"afii57689\",\n  0x05e9,\n  \"afii57690\",\n  0x05ea,\n  \"afii57694\",\n  0xfb2a,\n  \"afii57695\",\n  0xfb2b,\n  \"afii57700\",\n  0xfb4b,\n  \"afii57705\",\n  0xfb1f,\n  \"afii57716\",\n  0x05f0,\n  \"afii57717\",\n  0x05f1,\n  \"afii57718\",\n  0x05f2,\n  \"afii57723\",\n  0xfb35,\n  \"afii57793\",\n  0x05b4,\n  \"afii57794\",\n  0x05b5,\n  \"afii57795\",\n  0x05b6,\n  \"afii57796\",\n  0x05bb,\n  \"afii57797\",\n  0x05b8,\n  \"afii57798\",\n  0x05b7,\n  \"afii57799\",\n  0x05b0,\n  \"afii57800\",\n  0x05b2,\n  \"afii57801\",\n  0x05b1,\n  \"afii57802\",\n  0x05b3,\n  \"afii57803\",\n  0x05c2,\n  \"afii57804\",\n  0x05c1,\n  \"afii57806\",\n  0x05b9,\n  \"afii57807\",\n  0x05bc,\n  \"afii57839\",\n  0x05bd,\n  \"afii57841\",\n  0x05bf,\n  \"afii57842\",\n  0x05c0,\n  \"afii57929\",\n  0x02bc,\n  \"afii61248\",\n  0x2105,\n  \"afii61289\",\n  0x2113,\n  \"afii61352\",\n  0x2116,\n  \"afii61573\",\n  0x202c,\n  \"afii61574\",\n  0x202d,\n  \"afii61575\",\n  0x202e,\n  \"afii61664\",\n  0x200c,\n  \"afii63167\",\n  0x066d,\n  \"afii64937\",\n  0x02bd,\n  \"agrave\",\n  0x00e0,\n  \"agujarati\",\n  0x0a85,\n  \"agurmukhi\",\n  0x0a05,\n  \"ahiragana\",\n  0x3042,\n  \"ahookabove\",\n  0x1ea3,\n  \"aibengali\",\n  0x0990,\n  \"aibopomofo\",\n  0x311e,\n  \"aideva\",\n  0x0910,\n  \"aiecyrillic\",\n  0x04d5,\n  \"aigujarati\",\n  0x0a90,\n  \"aigurmukhi\",\n  0x0a10,\n  \"aimatragurmukhi\",\n  0x0a48,\n  \"ainarabic\",\n  0x0639,\n  \"ainfinalarabic\",\n  0xfeca,\n  \"aininitialarabic\",\n  0xfecb,\n  \"ainmedialarabic\",\n  0xfecc,\n  \"ainvertedbreve\",\n  0x0203,\n  \"aivowelsignbengali\",\n  0x09c8,\n  \"aivowelsigndeva\",\n  0x0948,\n  \"aivowelsigngujarati\",\n  0x0ac8,\n  \"akatakana\",\n  0x30a2,\n  \"akatakanahalfwidth\",\n  0xff71,\n  \"akorean\",\n  0x314f,\n  \"alef\",\n  0x05d0,\n  \"alefarabic\",\n  0x0627,\n  \"alefdageshhebrew\",\n  0xfb30,\n  \"aleffinalarabic\",\n  0xfe8e,\n  \"alefhamzaabovearabic\",\n  0x0623,\n  \"alefhamzaabovefinalarabic\",\n  0xfe84,\n  \"alefhamzabelowarabic\",\n  0x0625,\n  \"alefhamzabelowfinalarabic\",\n  0xfe88,\n  \"alefhebrew\",\n  0x05d0,\n  \"aleflamedhebrew\",\n  0xfb4f,\n  \"alefmaddaabovearabic\",\n  0x0622,\n  \"alefmaddaabovefinalarabic\",\n  0xfe82,\n  \"alefmaksuraarabic\",\n  0x0649,\n  \"alefmaksurafinalarabic\",\n  0xfef0,\n  \"alefmaksurainitialarabic\",\n  0xfef3,\n  \"alefmaksuramedialarabic\",\n  0xfef4,\n  \"alefpatahhebrew\",\n  0xfb2e,\n  \"alefqamatshebrew\",\n  0xfb2f,\n  \"aleph\",\n  0x2135,\n  \"allequal\",\n  0x224c,\n  \"alpha\",\n  0x03b1,\n  \"alphatonos\",\n  0x03ac,\n  \"amacron\",\n  0x0101,\n  \"amonospace\",\n  0xff41,\n  \"ampersand\",\n  0x0026,\n  \"ampersandmonospace\",\n  0xff06,\n  \"ampersandsmall\",\n  0xf726,\n  \"amsquare\",\n  0x33c2,\n  \"anbopomofo\",\n  0x3122,\n  \"angbopomofo\",\n  0x3124,\n  \"angbracketleft\",\n  0x3008,\n  \"angbracketright\",\n  0x3009,\n  \"angkhankhuthai\",\n  0x0e5a,\n  \"angle\",\n  0x2220,\n  \"anglebracketleft\",\n  0x3008,\n  \"anglebracketleftvertical\",\n  0xfe3f,\n  \"anglebracketright\",\n  0x3009,\n  \"anglebracketrightvertical\",\n  0xfe40,\n  \"angleleft\",\n  0x2329,\n  \"angleright\",\n  0x232a,\n  \"angstrom\",\n  0x212b,\n  \"anoteleia\",\n  0x0387,\n  \"anudattadeva\",\n  0x0952,\n  \"anusvarabengali\",\n  0x0982,\n  \"anusvaradeva\",\n  0x0902,\n  \"anusvaragujarati\",\n  0x0a82,\n  \"aogonek\",\n  0x0105,\n  \"apaatosquare\",\n  0x3300,\n  \"aparen\",\n  0x249c,\n  \"apostrophearmenian\",\n  0x055a,\n  \"apostrophemod\",\n  0x02bc,\n  \"apple\",\n  0xf8ff,\n  \"approaches\",\n  0x2250,\n  \"approxequal\",\n  0x2248,\n  \"approxequalorimage\",\n  0x2252,\n  \"approximatelyequal\",\n  0x2245,\n  \"araeaekorean\",\n  0x318e,\n  \"araeakorean\",\n  0x318d,\n  \"arc\",\n  0x2312,\n  \"arighthalfring\",\n  0x1e9a,\n  \"aring\",\n  0x00e5,\n  \"aringacute\",\n  0x01fb,\n  \"aringbelow\",\n  0x1e01,\n  \"arrowboth\",\n  0x2194,\n  \"arrowdashdown\",\n  0x21e3,\n  \"arrowdashleft\",\n  0x21e0,\n  \"arrowdashright\",\n  0x21e2,\n  \"arrowdashup\",\n  0x21e1,\n  \"arrowdblboth\",\n  0x21d4,\n  \"arrowdbldown\",\n  0x21d3,\n  \"arrowdblleft\",\n  0x21d0,\n  \"arrowdblright\",\n  0x21d2,\n  \"arrowdblup\",\n  0x21d1,\n  \"arrowdown\",\n  0x2193,\n  \"arrowdownleft\",\n  0x2199,\n  \"arrowdownright\",\n  0x2198,\n  \"arrowdownwhite\",\n  0x21e9,\n  \"arrowheaddownmod\",\n  0x02c5,\n  \"arrowheadleftmod\",\n  0x02c2,\n  \"arrowheadrightmod\",\n  0x02c3,\n  \"arrowheadupmod\",\n  0x02c4,\n  \"arrowhorizex\",\n  0xf8e7,\n  \"arrowleft\",\n  0x2190,\n  \"arrowleftdbl\",\n  0x21d0,\n  \"arrowleftdblstroke\",\n  0x21cd,\n  \"arrowleftoverright\",\n  0x21c6,\n  \"arrowleftwhite\",\n  0x21e6,\n  \"arrowright\",\n  0x2192,\n  \"arrowrightdblstroke\",\n  0x21cf,\n  \"arrowrightheavy\",\n  0x279e,\n  \"arrowrightoverleft\",\n  0x21c4,\n  \"arrowrightwhite\",\n  0x21e8,\n  \"arrowtableft\",\n  0x21e4,\n  \"arrowtabright\",\n  0x21e5,\n  \"arrowup\",\n  0x2191,\n  \"arrowupdn\",\n  0x2195,\n  \"arrowupdnbse\",\n  0x21a8,\n  \"arrowupdownbase\",\n  0x21a8,\n  \"arrowupleft\",\n  0x2196,\n  \"arrowupleftofdown\",\n  0x21c5,\n  \"arrowupright\",\n  0x2197,\n  \"arrowupwhite\",\n  0x21e7,\n  \"arrowvertex\",\n  0xf8e6,\n  \"asciicircum\",\n  0x005e,\n  \"asciicircummonospace\",\n  0xff3e,\n  \"asciitilde\",\n  0x007e,\n  \"asciitildemonospace\",\n  0xff5e,\n  \"ascript\",\n  0x0251,\n  \"ascriptturned\",\n  0x0252,\n  \"asmallhiragana\",\n  0x3041,\n  \"asmallkatakana\",\n  0x30a1,\n  \"asmallkatakanahalfwidth\",\n  0xff67,\n  \"asterisk\",\n  0x002a,\n  \"asteriskaltonearabic\",\n  0x066d,\n  \"asteriskarabic\",\n  0x066d,\n  \"asteriskmath\",\n  0x2217,\n  \"asteriskmonospace\",\n  0xff0a,\n  \"asterisksmall\",\n  0xfe61,\n  \"asterism\",\n  0x2042,\n  \"asuperior\",\n  0xf6e9,\n  \"asymptoticallyequal\",\n  0x2243,\n  \"at\",\n  0x0040,\n  \"atilde\",\n  0x00e3,\n  \"atmonospace\",\n  0xff20,\n  \"atsmall\",\n  0xfe6b,\n  \"aturned\",\n  0x0250,\n  \"aubengali\",\n  0x0994,\n  \"aubopomofo\",\n  0x3120,\n  \"audeva\",\n  0x0914,\n  \"augujarati\",\n  0x0a94,\n  \"augurmukhi\",\n  0x0a14,\n  \"aulengthmarkbengali\",\n  0x09d7,\n  \"aumatragurmukhi\",\n  0x0a4c,\n  \"auvowelsignbengali\",\n  0x09cc,\n  \"auvowelsigndeva\",\n  0x094c,\n  \"auvowelsigngujarati\",\n  0x0acc,\n  \"avagrahadeva\",\n  0x093d,\n  \"aybarmenian\",\n  0x0561,\n  \"ayin\",\n  0x05e2,\n  \"ayinaltonehebrew\",\n  0xfb20,\n  \"ayinhebrew\",\n  0x05e2,\n  \"b\",\n  0x0062,\n  \"babengali\",\n  0x09ac,\n  \"backslash\",\n  0x005c,\n  \"backslashmonospace\",\n  0xff3c,\n  \"badeva\",\n  0x092c,\n  \"bagujarati\",\n  0x0aac,\n  \"bagurmukhi\",\n  0x0a2c,\n  \"bahiragana\",\n  0x3070,\n  \"bahtthai\",\n  0x0e3f,\n  \"bakatakana\",\n  0x30d0,\n  \"bar\",\n  0x007c,\n  \"barmonospace\",\n  0xff5c,\n  \"bbopomofo\",\n  0x3105,\n  \"bcircle\",\n  0x24d1,\n  \"bdotaccent\",\n  0x1e03,\n  \"bdotbelow\",\n  0x1e05,\n  \"beamedsixteenthnotes\",\n  0x266c,\n  \"because\",\n  0x2235,\n  \"becyrillic\",\n  0x0431,\n  \"beharabic\",\n  0x0628,\n  \"behfinalarabic\",\n  0xfe90,\n  \"behinitialarabic\",\n  0xfe91,\n  \"behiragana\",\n  0x3079,\n  \"behmedialarabic\",\n  0xfe92,\n  \"behmeeminitialarabic\",\n  0xfc9f,\n  \"behmeemisolatedarabic\",\n  0xfc08,\n  \"behnoonfinalarabic\",\n  0xfc6d,\n  \"bekatakana\",\n  0x30d9,\n  \"benarmenian\",\n  0x0562,\n  \"bet\",\n  0x05d1,\n  \"beta\",\n  0x03b2,\n  \"betasymbolgreek\",\n  0x03d0,\n  \"betdagesh\",\n  0xfb31,\n  \"betdageshhebrew\",\n  0xfb31,\n  \"bethebrew\",\n  0x05d1,\n  \"betrafehebrew\",\n  0xfb4c,\n  \"bhabengali\",\n  0x09ad,\n  \"bhadeva\",\n  0x092d,\n  \"bhagujarati\",\n  0x0aad,\n  \"bhagurmukhi\",\n  0x0a2d,\n  \"bhook\",\n  0x0253,\n  \"bihiragana\",\n  0x3073,\n  \"bikatakana\",\n  0x30d3,\n  \"bilabialclick\",\n  0x0298,\n  \"bindigurmukhi\",\n  0x0a02,\n  \"birusquare\",\n  0x3331,\n  \"blackcircle\",\n  0x25cf,\n  \"blackdiamond\",\n  0x25c6,\n  \"blackdownpointingtriangle\",\n  0x25bc,\n  \"blackleftpointingpointer\",\n  0x25c4,\n  \"blackleftpointingtriangle\",\n  0x25c0,\n  \"blacklenticularbracketleft\",\n  0x3010,\n  \"blacklenticularbracketleftvertical\",\n  0xfe3b,\n  \"blacklenticularbracketright\",\n  0x3011,\n  \"blacklenticularbracketrightvertical\",\n  0xfe3c,\n  \"blacklowerlefttriangle\",\n  0x25e3,\n  \"blacklowerrighttriangle\",\n  0x25e2,\n  \"blackrectangle\",\n  0x25ac,\n  \"blackrightpointingpointer\",\n  0x25ba,\n  \"blackrightpointingtriangle\",\n  0x25b6,\n  \"blacksmallsquare\",\n  0x25aa,\n  \"blacksmilingface\",\n  0x263b,\n  \"blacksquare\",\n  0x25a0,\n  \"blackstar\",\n  0x2605,\n  \"blackupperlefttriangle\",\n  0x25e4,\n  \"blackupperrighttriangle\",\n  0x25e5,\n  \"blackuppointingsmalltriangle\",\n  0x25b4,\n  \"blackuppointingtriangle\",\n  0x25b2,\n  \"blank\",\n  0x2423,\n  \"blinebelow\",\n  0x1e07,\n  \"block\",\n  0x2588,\n  \"bmonospace\",\n  0xff42,\n  \"bobaimaithai\",\n  0x0e1a,\n  \"bohiragana\",\n  0x307c,\n  \"bokatakana\",\n  0x30dc,\n  \"bparen\",\n  0x249d,\n  \"bqsquare\",\n  0x33c3,\n  \"braceex\",\n  0xf8f4,\n  \"braceleft\",\n  0x007b,\n  \"braceleftbt\",\n  0xf8f3,\n  \"braceleftmid\",\n  0xf8f2,\n  \"braceleftmonospace\",\n  0xff5b,\n  \"braceleftsmall\",\n  0xfe5b,\n  \"bracelefttp\",\n  0xf8f1,\n  \"braceleftvertical\",\n  0xfe37,\n  \"braceright\",\n  0x007d,\n  \"bracerightbt\",\n  0xf8fe,\n  \"bracerightmid\",\n  0xf8fd,\n  \"bracerightmonospace\",\n  0xff5d,\n  \"bracerightsmall\",\n  0xfe5c,\n  \"bracerighttp\",\n  0xf8fc,\n  \"bracerightvertical\",\n  0xfe38,\n  \"bracketleft\",\n  0x005b,\n  \"bracketleftbt\",\n  0xf8f0,\n  \"bracketleftex\",\n  0xf8ef,\n  \"bracketleftmonospace\",\n  0xff3b,\n  \"bracketlefttp\",\n  0xf8ee,\n  \"bracketright\",\n  0x005d,\n  \"bracketrightbt\",\n  0xf8fb,\n  \"bracketrightex\",\n  0xf8fa,\n  \"bracketrightmonospace\",\n  0xff3d,\n  \"bracketrighttp\",\n  0xf8f9,\n  \"breve\",\n  0x02d8,\n  \"brevebelowcmb\",\n  0x032e,\n  \"brevecmb\",\n  0x0306,\n  \"breveinvertedbelowcmb\",\n  0x032f,\n  \"breveinvertedcmb\",\n  0x0311,\n  \"breveinverteddoublecmb\",\n  0x0361,\n  \"bridgebelowcmb\",\n  0x032a,\n  \"bridgeinvertedbelowcmb\",\n  0x033a,\n  \"brokenbar\",\n  0x00a6,\n  \"bstroke\",\n  0x0180,\n  \"bsuperior\",\n  0xf6ea,\n  \"btopbar\",\n  0x0183,\n  \"buhiragana\",\n  0x3076,\n  \"bukatakana\",\n  0x30d6,\n  \"bullet\",\n  0x2022,\n  \"bulletinverse\",\n  0x25d8,\n  \"bulletoperator\",\n  0x2219,\n  \"bullseye\",\n  0x25ce,\n  \"c\",\n  0x0063,\n  \"caarmenian\",\n  0x056e,\n  \"cabengali\",\n  0x099a,\n  \"cacute\",\n  0x0107,\n  \"cadeva\",\n  0x091a,\n  \"cagujarati\",\n  0x0a9a,\n  \"cagurmukhi\",\n  0x0a1a,\n  \"calsquare\",\n  0x3388,\n  \"candrabindubengali\",\n  0x0981,\n  \"candrabinducmb\",\n  0x0310,\n  \"candrabindudeva\",\n  0x0901,\n  \"candrabindugujarati\",\n  0x0a81,\n  \"capslock\",\n  0x21ea,\n  \"careof\",\n  0x2105,\n  \"caron\",\n  0x02c7,\n  \"caronbelowcmb\",\n  0x032c,\n  \"caroncmb\",\n  0x030c,\n  \"carriagereturn\",\n  0x21b5,\n  \"cbopomofo\",\n  0x3118,\n  \"ccaron\",\n  0x010d,\n  \"ccedilla\",\n  0x00e7,\n  \"ccedillaacute\",\n  0x1e09,\n  \"ccircle\",\n  0x24d2,\n  \"ccircumflex\",\n  0x0109,\n  \"ccurl\",\n  0x0255,\n  \"cdot\",\n  0x010b,\n  \"cdotaccent\",\n  0x010b,\n  \"cdsquare\",\n  0x33c5,\n  \"cedilla\",\n  0x00b8,\n  \"cedillacmb\",\n  0x0327,\n  \"cent\",\n  0x00a2,\n  \"centigrade\",\n  0x2103,\n  \"centinferior\",\n  0xf6df,\n  \"centmonospace\",\n  0xffe0,\n  \"centoldstyle\",\n  0xf7a2,\n  \"centsuperior\",\n  0xf6e0,\n  \"chaarmenian\",\n  0x0579,\n  \"chabengali\",\n  0x099b,\n  \"chadeva\",\n  0x091b,\n  \"chagujarati\",\n  0x0a9b,\n  \"chagurmukhi\",\n  0x0a1b,\n  \"chbopomofo\",\n  0x3114,\n  \"cheabkhasiancyrillic\",\n  0x04bd,\n  \"checkmark\",\n  0x2713,\n  \"checyrillic\",\n  0x0447,\n  \"chedescenderabkhasiancyrillic\",\n  0x04bf,\n  \"chedescendercyrillic\",\n  0x04b7,\n  \"chedieresiscyrillic\",\n  0x04f5,\n  \"cheharmenian\",\n  0x0573,\n  \"chekhakassiancyrillic\",\n  0x04cc,\n  \"cheverticalstrokecyrillic\",\n  0x04b9,\n  \"chi\",\n  0x03c7,\n  \"chieuchacirclekorean\",\n  0x3277,\n  \"chieuchaparenkorean\",\n  0x3217,\n  \"chieuchcirclekorean\",\n  0x3269,\n  \"chieuchkorean\",\n  0x314a,\n  \"chieuchparenkorean\",\n  0x3209,\n  \"chochangthai\",\n  0x0e0a,\n  \"chochanthai\",\n  0x0e08,\n  \"chochingthai\",\n  0x0e09,\n  \"chochoethai\",\n  0x0e0c,\n  \"chook\",\n  0x0188,\n  \"cieucacirclekorean\",\n  0x3276,\n  \"cieucaparenkorean\",\n  0x3216,\n  \"cieuccirclekorean\",\n  0x3268,\n  \"cieuckorean\",\n  0x3148,\n  \"cieucparenkorean\",\n  0x3208,\n  \"cieucuparenkorean\",\n  0x321c,\n  \"circle\",\n  0x25cb,\n  \"circlecopyrt\",\n  0x00a9,\n  \"circlemultiply\",\n  0x2297,\n  \"circleot\",\n  0x2299,\n  \"circleplus\",\n  0x2295,\n  \"circlepostalmark\",\n  0x3036,\n  \"circlewithlefthalfblack\",\n  0x25d0,\n  \"circlewithrighthalfblack\",\n  0x25d1,\n  \"circumflex\",\n  0x02c6,\n  \"circumflexbelowcmb\",\n  0x032d,\n  \"circumflexcmb\",\n  0x0302,\n  \"clear\",\n  0x2327,\n  \"clickalveolar\",\n  0x01c2,\n  \"clickdental\",\n  0x01c0,\n  \"clicklateral\",\n  0x01c1,\n  \"clickretroflex\",\n  0x01c3,\n  \"club\",\n  0x2663,\n  \"clubsuitblack\",\n  0x2663,\n  \"clubsuitwhite\",\n  0x2667,\n  \"cmcubedsquare\",\n  0x33a4,\n  \"cmonospace\",\n  0xff43,\n  \"cmsquaredsquare\",\n  0x33a0,\n  \"coarmenian\",\n  0x0581,\n  \"colon\",\n  0x003a,\n  \"colonmonetary\",\n  0x20a1,\n  \"colonmonospace\",\n  0xff1a,\n  \"colonsign\",\n  0x20a1,\n  \"colonsmall\",\n  0xfe55,\n  \"colontriangularhalfmod\",\n  0x02d1,\n  \"colontriangularmod\",\n  0x02d0,\n  \"comma\",\n  0x002c,\n  \"commaabovecmb\",\n  0x0313,\n  \"commaaboverightcmb\",\n  0x0315,\n  \"commaaccent\",\n  0xf6c3,\n  \"commaarabic\",\n  0x060c,\n  \"commaarmenian\",\n  0x055d,\n  \"commainferior\",\n  0xf6e1,\n  \"commamonospace\",\n  0xff0c,\n  \"commareversedabovecmb\",\n  0x0314,\n  \"commareversedmod\",\n  0x02bd,\n  \"commasmall\",\n  0xfe50,\n  \"commasuperior\",\n  0xf6e2,\n  \"commaturnedabovecmb\",\n  0x0312,\n  \"commaturnedmod\",\n  0x02bb,\n  \"compass\",\n  0x263c,\n  \"congruent\",\n  0x2245,\n  \"contourintegral\",\n  0x222e,\n  \"control\",\n  0x2303,\n  \"controlACK\",\n  0x0006,\n  \"controlBEL\",\n  0x0007,\n  \"controlBS\",\n  0x0008,\n  \"controlCAN\",\n  0x0018,\n  \"controlCR\",\n  0x000d,\n  \"controlDC1\",\n  0x0011,\n  \"controlDC2\",\n  0x0012,\n  \"controlDC3\",\n  0x0013,\n  \"controlDC4\",\n  0x0014,\n  \"controlDEL\",\n  0x007f,\n  \"controlDLE\",\n  0x0010,\n  \"controlEM\",\n  0x0019,\n  \"controlENQ\",\n  0x0005,\n  \"controlEOT\",\n  0x0004,\n  \"controlESC\",\n  0x001b,\n  \"controlETB\",\n  0x0017,\n  \"controlETX\",\n  0x0003,\n  \"controlFF\",\n  0x000c,\n  \"controlFS\",\n  0x001c,\n  \"controlGS\",\n  0x001d,\n  \"controlHT\",\n  0x0009,\n  \"controlLF\",\n  0x000a,\n  \"controlNAK\",\n  0x0015,\n  \"controlNULL\",\n  0x0000,\n  \"controlRS\",\n  0x001e,\n  \"controlSI\",\n  0x000f,\n  \"controlSO\",\n  0x000e,\n  \"controlSOT\",\n  0x0002,\n  \"controlSTX\",\n  0x0001,\n  \"controlSUB\",\n  0x001a,\n  \"controlSYN\",\n  0x0016,\n  \"controlUS\",\n  0x001f,\n  \"controlVT\",\n  0x000b,\n  \"copyright\",\n  0x00a9,\n  \"copyrightsans\",\n  0xf8e9,\n  \"copyrightserif\",\n  0xf6d9,\n  \"cornerbracketleft\",\n  0x300c,\n  \"cornerbracketlefthalfwidth\",\n  0xff62,\n  \"cornerbracketleftvertical\",\n  0xfe41,\n  \"cornerbracketright\",\n  0x300d,\n  \"cornerbracketrighthalfwidth\",\n  0xff63,\n  \"cornerbracketrightvertical\",\n  0xfe42,\n  \"corporationsquare\",\n  0x337f,\n  \"cosquare\",\n  0x33c7,\n  \"coverkgsquare\",\n  0x33c6,\n  \"cparen\",\n  0x249e,\n  \"cruzeiro\",\n  0x20a2,\n  \"cstretched\",\n  0x0297,\n  \"curlyand\",\n  0x22cf,\n  \"curlyor\",\n  0x22ce,\n  \"currency\",\n  0x00a4,\n  \"cyrBreve\",\n  0xf6d1,\n  \"cyrFlex\",\n  0xf6d2,\n  \"cyrbreve\",\n  0xf6d4,\n  \"cyrflex\",\n  0xf6d5,\n  \"d\",\n  0x0064,\n  \"daarmenian\",\n  0x0564,\n  \"dabengali\",\n  0x09a6,\n  \"dadarabic\",\n  0x0636,\n  \"dadeva\",\n  0x0926,\n  \"dadfinalarabic\",\n  0xfebe,\n  \"dadinitialarabic\",\n  0xfebf,\n  \"dadmedialarabic\",\n  0xfec0,\n  \"dagesh\",\n  0x05bc,\n  \"dageshhebrew\",\n  0x05bc,\n  \"dagger\",\n  0x2020,\n  \"daggerdbl\",\n  0x2021,\n  \"dagujarati\",\n  0x0aa6,\n  \"dagurmukhi\",\n  0x0a26,\n  \"dahiragana\",\n  0x3060,\n  \"dakatakana\",\n  0x30c0,\n  \"dalarabic\",\n  0x062f,\n  \"dalet\",\n  0x05d3,\n  \"daletdagesh\",\n  0xfb33,\n  \"daletdageshhebrew\",\n  0xfb33,\n  \"dalethebrew\",\n  0x05d3,\n  \"dalfinalarabic\",\n  0xfeaa,\n  \"dammaarabic\",\n  0x064f,\n  \"dammalowarabic\",\n  0x064f,\n  \"dammatanaltonearabic\",\n  0x064c,\n  \"dammatanarabic\",\n  0x064c,\n  \"danda\",\n  0x0964,\n  \"dargahebrew\",\n  0x05a7,\n  \"dargalefthebrew\",\n  0x05a7,\n  \"dasiapneumatacyrilliccmb\",\n  0x0485,\n  \"dblGrave\",\n  0xf6d3,\n  \"dblanglebracketleft\",\n  0x300a,\n  \"dblanglebracketleftvertical\",\n  0xfe3d,\n  \"dblanglebracketright\",\n  0x300b,\n  \"dblanglebracketrightvertical\",\n  0xfe3e,\n  \"dblarchinvertedbelowcmb\",\n  0x032b,\n  \"dblarrowleft\",\n  0x21d4,\n  \"dblarrowright\",\n  0x21d2,\n  \"dbldanda\",\n  0x0965,\n  \"dblgrave\",\n  0xf6d6,\n  \"dblgravecmb\",\n  0x030f,\n  \"dblintegral\",\n  0x222c,\n  \"dbllowline\",\n  0x2017,\n  \"dbllowlinecmb\",\n  0x0333,\n  \"dbloverlinecmb\",\n  0x033f,\n  \"dblprimemod\",\n  0x02ba,\n  \"dblverticalbar\",\n  0x2016,\n  \"dblverticallineabovecmb\",\n  0x030e,\n  \"dbopomofo\",\n  0x3109,\n  \"dbsquare\",\n  0x33c8,\n  \"dcaron\",\n  0x010f,\n  \"dcedilla\",\n  0x1e11,\n  \"dcircle\",\n  0x24d3,\n  \"dcircumflexbelow\",\n  0x1e13,\n  \"dcroat\",\n  0x0111,\n  \"ddabengali\",\n  0x09a1,\n  \"ddadeva\",\n  0x0921,\n  \"ddagujarati\",\n  0x0aa1,\n  \"ddagurmukhi\",\n  0x0a21,\n  \"ddalarabic\",\n  0x0688,\n  \"ddalfinalarabic\",\n  0xfb89,\n  \"dddhadeva\",\n  0x095c,\n  \"ddhabengali\",\n  0x09a2,\n  \"ddhadeva\",\n  0x0922,\n  \"ddhagujarati\",\n  0x0aa2,\n  \"ddhagurmukhi\",\n  0x0a22,\n  \"ddotaccent\",\n  0x1e0b,\n  \"ddotbelow\",\n  0x1e0d,\n  \"decimalseparatorarabic\",\n  0x066b,\n  \"decimalseparatorpersian\",\n  0x066b,\n  \"decyrillic\",\n  0x0434,\n  \"degree\",\n  0x00b0,\n  \"dehihebrew\",\n  0x05ad,\n  \"dehiragana\",\n  0x3067,\n  \"deicoptic\",\n  0x03ef,\n  \"dekatakana\",\n  0x30c7,\n  \"deleteleft\",\n  0x232b,\n  \"deleteright\",\n  0x2326,\n  \"delta\",\n  0x03b4,\n  \"deltaturned\",\n  0x018d,\n  \"denominatorminusonenumeratorbengali\",\n  0x09f8,\n  \"dezh\",\n  0x02a4,\n  \"dhabengali\",\n  0x09a7,\n  \"dhadeva\",\n  0x0927,\n  \"dhagujarati\",\n  0x0aa7,\n  \"dhagurmukhi\",\n  0x0a27,\n  \"dhook\",\n  0x0257,\n  \"dialytikatonos\",\n  0x0385,\n  \"dialytikatonoscmb\",\n  0x0344,\n  \"diamond\",\n  0x2666,\n  \"diamondsuitwhite\",\n  0x2662,\n  \"dieresis\",\n  0x00a8,\n  \"dieresisacute\",\n  0xf6d7,\n  \"dieresisbelowcmb\",\n  0x0324,\n  \"dieresiscmb\",\n  0x0308,\n  \"dieresisgrave\",\n  0xf6d8,\n  \"dieresistonos\",\n  0x0385,\n  \"dihiragana\",\n  0x3062,\n  \"dikatakana\",\n  0x30c2,\n  \"dittomark\",\n  0x3003,\n  \"divide\",\n  0x00f7,\n  \"divides\",\n  0x2223,\n  \"divisionslash\",\n  0x2215,\n  \"djecyrillic\",\n  0x0452,\n  \"dkshade\",\n  0x2593,\n  \"dlinebelow\",\n  0x1e0f,\n  \"dlsquare\",\n  0x3397,\n  \"dmacron\",\n  0x0111,\n  \"dmonospace\",\n  0xff44,\n  \"dnblock\",\n  0x2584,\n  \"dochadathai\",\n  0x0e0e,\n  \"dodekthai\",\n  0x0e14,\n  \"dohiragana\",\n  0x3069,\n  \"dokatakana\",\n  0x30c9,\n  \"dollar\",\n  0x0024,\n  \"dollarinferior\",\n  0xf6e3,\n  \"dollarmonospace\",\n  0xff04,\n  \"dollaroldstyle\",\n  0xf724,\n  \"dollarsmall\",\n  0xfe69,\n  \"dollarsuperior\",\n  0xf6e4,\n  \"dong\",\n  0x20ab,\n  \"dorusquare\",\n  0x3326,\n  \"dotaccent\",\n  0x02d9,\n  \"dotaccentcmb\",\n  0x0307,\n  \"dotbelowcmb\",\n  0x0323,\n  \"dotbelowcomb\",\n  0x0323,\n  \"dotkatakana\",\n  0x30fb,\n  \"dotlessi\",\n  0x0131,\n  \"dotlessj\",\n  0xf6be,\n  \"dotlessjstrokehook\",\n  0x0284,\n  \"dotmath\",\n  0x22c5,\n  \"dottedcircle\",\n  0x25cc,\n  \"doubleyodpatah\",\n  0xfb1f,\n  \"doubleyodpatahhebrew\",\n  0xfb1f,\n  \"downtackbelowcmb\",\n  0x031e,\n  \"downtackmod\",\n  0x02d5,\n  \"dparen\",\n  0x249f,\n  \"dsuperior\",\n  0xf6eb,\n  \"dtail\",\n  0x0256,\n  \"dtopbar\",\n  0x018c,\n  \"duhiragana\",\n  0x3065,\n  \"dukatakana\",\n  0x30c5,\n  \"dz\",\n  0x01f3,\n  \"dzaltone\",\n  0x02a3,\n  \"dzcaron\",\n  0x01c6,\n  \"dzcurl\",\n  0x02a5,\n  \"dzeabkhasiancyrillic\",\n  0x04e1,\n  \"dzecyrillic\",\n  0x0455,\n  \"dzhecyrillic\",\n  0x045f,\n  \"e\",\n  0x0065,\n  \"eacute\",\n  0x00e9,\n  \"earth\",\n  0x2641,\n  \"ebengali\",\n  0x098f,\n  \"ebopomofo\",\n  0x311c,\n  \"ebreve\",\n  0x0115,\n  \"ecandradeva\",\n  0x090d,\n  \"ecandragujarati\",\n  0x0a8d,\n  \"ecandravowelsigndeva\",\n  0x0945,\n  \"ecandravowelsigngujarati\",\n  0x0ac5,\n  \"ecaron\",\n  0x011b,\n  \"ecedillabreve\",\n  0x1e1d,\n  \"echarmenian\",\n  0x0565,\n  \"echyiwnarmenian\",\n  0x0587,\n  \"ecircle\",\n  0x24d4,\n  \"ecircumflex\",\n  0x00ea,\n  \"ecircumflexacute\",\n  0x1ebf,\n  \"ecircumflexbelow\",\n  0x1e19,\n  \"ecircumflexdotbelow\",\n  0x1ec7,\n  \"ecircumflexgrave\",\n  0x1ec1,\n  \"ecircumflexhookabove\",\n  0x1ec3,\n  \"ecircumflextilde\",\n  0x1ec5,\n  \"ecyrillic\",\n  0x0454,\n  \"edblgrave\",\n  0x0205,\n  \"edeva\",\n  0x090f,\n  \"edieresis\",\n  0x00eb,\n  \"edot\",\n  0x0117,\n  \"edotaccent\",\n  0x0117,\n  \"edotbelow\",\n  0x1eb9,\n  \"eegurmukhi\",\n  0x0a0f,\n  \"eematragurmukhi\",\n  0x0a47,\n  \"efcyrillic\",\n  0x0444,\n  \"egrave\",\n  0x00e8,\n  \"egujarati\",\n  0x0a8f,\n  \"eharmenian\",\n  0x0567,\n  \"ehbopomofo\",\n  0x311d,\n  \"ehiragana\",\n  0x3048,\n  \"ehookabove\",\n  0x1ebb,\n  \"eibopomofo\",\n  0x311f,\n  \"eight\",\n  0x0038,\n  \"eightarabic\",\n  0x0668,\n  \"eightbengali\",\n  0x09ee,\n  \"eightcircle\",\n  0x2467,\n  \"eightcircleinversesansserif\",\n  0x2791,\n  \"eightdeva\",\n  0x096e,\n  \"eighteencircle\",\n  0x2471,\n  \"eighteenparen\",\n  0x2485,\n  \"eighteenperiod\",\n  0x2499,\n  \"eightgujarati\",\n  0x0aee,\n  \"eightgurmukhi\",\n  0x0a6e,\n  \"eighthackarabic\",\n  0x0668,\n  \"eighthangzhou\",\n  0x3028,\n  \"eighthnotebeamed\",\n  0x266b,\n  \"eightideographicparen\",\n  0x3227,\n  \"eightinferior\",\n  0x2088,\n  \"eightmonospace\",\n  0xff18,\n  \"eightoldstyle\",\n  0xf738,\n  \"eightparen\",\n  0x247b,\n  \"eightperiod\",\n  0x248f,\n  \"eightpersian\",\n  0x06f8,\n  \"eightroman\",\n  0x2177,\n  \"eightsuperior\",\n  0x2078,\n  \"eightthai\",\n  0x0e58,\n  \"einvertedbreve\",\n  0x0207,\n  \"eiotifiedcyrillic\",\n  0x0465,\n  \"ekatakana\",\n  0x30a8,\n  \"ekatakanahalfwidth\",\n  0xff74,\n  \"ekonkargurmukhi\",\n  0x0a74,\n  \"ekorean\",\n  0x3154,\n  \"elcyrillic\",\n  0x043b,\n  \"element\",\n  0x2208,\n  \"elevencircle\",\n  0x246a,\n  \"elevenparen\",\n  0x247e,\n  \"elevenperiod\",\n  0x2492,\n  \"elevenroman\",\n  0x217a,\n  \"ellipsis\",\n  0x2026,\n  \"ellipsisvertical\",\n  0x22ee,\n  \"emacron\",\n  0x0113,\n  \"emacronacute\",\n  0x1e17,\n  \"emacrongrave\",\n  0x1e15,\n  \"emcyrillic\",\n  0x043c,\n  \"emdash\",\n  0x2014,\n  \"emdashvertical\",\n  0xfe31,\n  \"emonospace\",\n  0xff45,\n  \"emphasismarkarmenian\",\n  0x055b,\n  \"emptyset\",\n  0x2205,\n  \"enbopomofo\",\n  0x3123,\n  \"encyrillic\",\n  0x043d,\n  \"endash\",\n  0x2013,\n  \"endashvertical\",\n  0xfe32,\n  \"endescendercyrillic\",\n  0x04a3,\n  \"eng\",\n  0x014b,\n  \"engbopomofo\",\n  0x3125,\n  \"enghecyrillic\",\n  0x04a5,\n  \"enhookcyrillic\",\n  0x04c8,\n  \"enspace\",\n  0x2002,\n  \"eogonek\",\n  0x0119,\n  \"eokorean\",\n  0x3153,\n  \"eopen\",\n  0x025b,\n  \"eopenclosed\",\n  0x029a,\n  \"eopenreversed\",\n  0x025c,\n  \"eopenreversedclosed\",\n  0x025e,\n  \"eopenreversedhook\",\n  0x025d,\n  \"eparen\",\n  0x24a0,\n  \"epsilon\",\n  0x03b5,\n  \"epsilontonos\",\n  0x03ad,\n  \"equal\",\n  0x003d,\n  \"equalmonospace\",\n  0xff1d,\n  \"equalsmall\",\n  0xfe66,\n  \"equalsuperior\",\n  0x207c,\n  \"equivalence\",\n  0x2261,\n  \"erbopomofo\",\n  0x3126,\n  \"ercyrillic\",\n  0x0440,\n  \"ereversed\",\n  0x0258,\n  \"ereversedcyrillic\",\n  0x044d,\n  \"escyrillic\",\n  0x0441,\n  \"esdescendercyrillic\",\n  0x04ab,\n  \"esh\",\n  0x0283,\n  \"eshcurl\",\n  0x0286,\n  \"eshortdeva\",\n  0x090e,\n  \"eshortvowelsigndeva\",\n  0x0946,\n  \"eshreversedloop\",\n  0x01aa,\n  \"eshsquatreversed\",\n  0x0285,\n  \"esmallhiragana\",\n  0x3047,\n  \"esmallkatakana\",\n  0x30a7,\n  \"esmallkatakanahalfwidth\",\n  0xff6a,\n  \"estimated\",\n  0x212e,\n  \"esuperior\",\n  0xf6ec,\n  \"eta\",\n  0x03b7,\n  \"etarmenian\",\n  0x0568,\n  \"etatonos\",\n  0x03ae,\n  \"eth\",\n  0x00f0,\n  \"etilde\",\n  0x1ebd,\n  \"etildebelow\",\n  0x1e1b,\n  \"etnahtafoukhhebrew\",\n  0x0591,\n  \"etnahtafoukhlefthebrew\",\n  0x0591,\n  \"etnahtahebrew\",\n  0x0591,\n  \"etnahtalefthebrew\",\n  0x0591,\n  \"eturned\",\n  0x01dd,\n  \"eukorean\",\n  0x3161,\n  \"euro\",\n  0x20ac,\n  \"evowelsignbengali\",\n  0x09c7,\n  \"evowelsigndeva\",\n  0x0947,\n  \"evowelsigngujarati\",\n  0x0ac7,\n  \"exclam\",\n  0x0021,\n  \"exclamarmenian\",\n  0x055c,\n  \"exclamdbl\",\n  0x203c,\n  \"exclamdown\",\n  0x00a1,\n  \"exclamdownsmall\",\n  0xf7a1,\n  \"exclammonospace\",\n  0xff01,\n  \"exclamsmall\",\n  0xf721,\n  \"existential\",\n  0x2203,\n  \"ezh\",\n  0x0292,\n  \"ezhcaron\",\n  0x01ef,\n  \"ezhcurl\",\n  0x0293,\n  \"ezhreversed\",\n  0x01b9,\n  \"ezhtail\",\n  0x01ba,\n  \"f\",\n  0x0066,\n  \"fadeva\",\n  0x095e,\n  \"fagurmukhi\",\n  0x0a5e,\n  \"fahrenheit\",\n  0x2109,\n  \"fathaarabic\",\n  0x064e,\n  \"fathalowarabic\",\n  0x064e,\n  \"fathatanarabic\",\n  0x064b,\n  \"fbopomofo\",\n  0x3108,\n  \"fcircle\",\n  0x24d5,\n  \"fdotaccent\",\n  0x1e1f,\n  \"feharabic\",\n  0x0641,\n  \"feharmenian\",\n  0x0586,\n  \"fehfinalarabic\",\n  0xfed2,\n  \"fehinitialarabic\",\n  0xfed3,\n  \"fehmedialarabic\",\n  0xfed4,\n  \"feicoptic\",\n  0x03e5,\n  \"female\",\n  0x2640,\n  \"ff\",\n  0xfb00,\n  \"f_f\",\n  0xfb00,\n  \"ffi\",\n  0xfb03,\n  \"ffl\",\n  0xfb04,\n  \"fi\",\n  0xfb01,\n  \"fifteencircle\",\n  0x246e,\n  \"fifteenparen\",\n  0x2482,\n  \"fifteenperiod\",\n  0x2496,\n  \"figuredash\",\n  0x2012,\n  \"filledbox\",\n  0x25a0,\n  \"filledrect\",\n  0x25ac,\n  \"finalkaf\",\n  0x05da,\n  \"finalkafdagesh\",\n  0xfb3a,\n  \"finalkafdageshhebrew\",\n  0xfb3a,\n  \"finalkafhebrew\",\n  0x05da,\n  \"finalmem\",\n  0x05dd,\n  \"finalmemhebrew\",\n  0x05dd,\n  \"finalnun\",\n  0x05df,\n  \"finalnunhebrew\",\n  0x05df,\n  \"finalpe\",\n  0x05e3,\n  \"finalpehebrew\",\n  0x05e3,\n  \"finaltsadi\",\n  0x05e5,\n  \"finaltsadihebrew\",\n  0x05e5,\n  \"firsttonechinese\",\n  0x02c9,\n  \"fisheye\",\n  0x25c9,\n  \"fitacyrillic\",\n  0x0473,\n  \"five\",\n  0x0035,\n  \"fivearabic\",\n  0x0665,\n  \"fivebengali\",\n  0x09eb,\n  \"fivecircle\",\n  0x2464,\n  \"fivecircleinversesansserif\",\n  0x278e,\n  \"fivedeva\",\n  0x096b,\n  \"fiveeighths\",\n  0x215d,\n  \"fivegujarati\",\n  0x0aeb,\n  \"fivegurmukhi\",\n  0x0a6b,\n  \"fivehackarabic\",\n  0x0665,\n  \"fivehangzhou\",\n  0x3025,\n  \"fiveideographicparen\",\n  0x3224,\n  \"fiveinferior\",\n  0x2085,\n  \"fivemonospace\",\n  0xff15,\n  \"fiveoldstyle\",\n  0xf735,\n  \"fiveparen\",\n  0x2478,\n  \"fiveperiod\",\n  0x248c,\n  \"fivepersian\",\n  0x06f5,\n  \"fiveroman\",\n  0x2174,\n  \"fivesuperior\",\n  0x2075,\n  \"fivethai\",\n  0x0e55,\n  \"fl\",\n  0xfb02,\n  \"florin\",\n  0x0192,\n  \"fmonospace\",\n  0xff46,\n  \"fmsquare\",\n  0x3399,\n  \"fofanthai\",\n  0x0e1f,\n  \"fofathai\",\n  0x0e1d,\n  \"fongmanthai\",\n  0x0e4f,\n  \"forall\",\n  0x2200,\n  \"four\",\n  0x0034,\n  \"fourarabic\",\n  0x0664,\n  \"fourbengali\",\n  0x09ea,\n  \"fourcircle\",\n  0x2463,\n  \"fourcircleinversesansserif\",\n  0x278d,\n  \"fourdeva\",\n  0x096a,\n  \"fourgujarati\",\n  0x0aea,\n  \"fourgurmukhi\",\n  0x0a6a,\n  \"fourhackarabic\",\n  0x0664,\n  \"fourhangzhou\",\n  0x3024,\n  \"fourideographicparen\",\n  0x3223,\n  \"fourinferior\",\n  0x2084,\n  \"fourmonospace\",\n  0xff14,\n  \"fournumeratorbengali\",\n  0x09f7,\n  \"fouroldstyle\",\n  0xf734,\n  \"fourparen\",\n  0x2477,\n  \"fourperiod\",\n  0x248b,\n  \"fourpersian\",\n  0x06f4,\n  \"fourroman\",\n  0x2173,\n  \"foursuperior\",\n  0x2074,\n  \"fourteencircle\",\n  0x246d,\n  \"fourteenparen\",\n  0x2481,\n  \"fourteenperiod\",\n  0x2495,\n  \"fourthai\",\n  0x0e54,\n  \"fourthtonechinese\",\n  0x02cb,\n  \"fparen\",\n  0x24a1,\n  \"fraction\",\n  0x2044,\n  \"franc\",\n  0x20a3,\n  \"g\",\n  0x0067,\n  \"gabengali\",\n  0x0997,\n  \"gacute\",\n  0x01f5,\n  \"gadeva\",\n  0x0917,\n  \"gafarabic\",\n  0x06af,\n  \"gaffinalarabic\",\n  0xfb93,\n  \"gafinitialarabic\",\n  0xfb94,\n  \"gafmedialarabic\",\n  0xfb95,\n  \"gagujarati\",\n  0x0a97,\n  \"gagurmukhi\",\n  0x0a17,\n  \"gahiragana\",\n  0x304c,\n  \"gakatakana\",\n  0x30ac,\n  \"gamma\",\n  0x03b3,\n  \"gammalatinsmall\",\n  0x0263,\n  \"gammasuperior\",\n  0x02e0,\n  \"gangiacoptic\",\n  0x03eb,\n  \"gbopomofo\",\n  0x310d,\n  \"gbreve\",\n  0x011f,\n  \"gcaron\",\n  0x01e7,\n  \"gcedilla\",\n  0x0123,\n  \"gcircle\",\n  0x24d6,\n  \"gcircumflex\",\n  0x011d,\n  \"gcommaaccent\",\n  0x0123,\n  \"gdot\",\n  0x0121,\n  \"gdotaccent\",\n  0x0121,\n  \"gecyrillic\",\n  0x0433,\n  \"gehiragana\",\n  0x3052,\n  \"gekatakana\",\n  0x30b2,\n  \"geometricallyequal\",\n  0x2251,\n  \"gereshaccenthebrew\",\n  0x059c,\n  \"gereshhebrew\",\n  0x05f3,\n  \"gereshmuqdamhebrew\",\n  0x059d,\n  \"germandbls\",\n  0x00df,\n  \"gershayimaccenthebrew\",\n  0x059e,\n  \"gershayimhebrew\",\n  0x05f4,\n  \"getamark\",\n  0x3013,\n  \"ghabengali\",\n  0x0998,\n  \"ghadarmenian\",\n  0x0572,\n  \"ghadeva\",\n  0x0918,\n  \"ghagujarati\",\n  0x0a98,\n  \"ghagurmukhi\",\n  0x0a18,\n  \"ghainarabic\",\n  0x063a,\n  \"ghainfinalarabic\",\n  0xfece,\n  \"ghaininitialarabic\",\n  0xfecf,\n  \"ghainmedialarabic\",\n  0xfed0,\n  \"ghemiddlehookcyrillic\",\n  0x0495,\n  \"ghestrokecyrillic\",\n  0x0493,\n  \"gheupturncyrillic\",\n  0x0491,\n  \"ghhadeva\",\n  0x095a,\n  \"ghhagurmukhi\",\n  0x0a5a,\n  \"ghook\",\n  0x0260,\n  \"ghzsquare\",\n  0x3393,\n  \"gihiragana\",\n  0x304e,\n  \"gikatakana\",\n  0x30ae,\n  \"gimarmenian\",\n  0x0563,\n  \"gimel\",\n  0x05d2,\n  \"gimeldagesh\",\n  0xfb32,\n  \"gimeldageshhebrew\",\n  0xfb32,\n  \"gimelhebrew\",\n  0x05d2,\n  \"gjecyrillic\",\n  0x0453,\n  \"glottalinvertedstroke\",\n  0x01be,\n  \"glottalstop\",\n  0x0294,\n  \"glottalstopinverted\",\n  0x0296,\n  \"glottalstopmod\",\n  0x02c0,\n  \"glottalstopreversed\",\n  0x0295,\n  \"glottalstopreversedmod\",\n  0x02c1,\n  \"glottalstopreversedsuperior\",\n  0x02e4,\n  \"glottalstopstroke\",\n  0x02a1,\n  \"glottalstopstrokereversed\",\n  0x02a2,\n  \"gmacron\",\n  0x1e21,\n  \"gmonospace\",\n  0xff47,\n  \"gohiragana\",\n  0x3054,\n  \"gokatakana\",\n  0x30b4,\n  \"gparen\",\n  0x24a2,\n  \"gpasquare\",\n  0x33ac,\n  \"gradient\",\n  0x2207,\n  \"grave\",\n  0x0060,\n  \"gravebelowcmb\",\n  0x0316,\n  \"gravecmb\",\n  0x0300,\n  \"gravecomb\",\n  0x0300,\n  \"gravedeva\",\n  0x0953,\n  \"gravelowmod\",\n  0x02ce,\n  \"gravemonospace\",\n  0xff40,\n  \"gravetonecmb\",\n  0x0340,\n  \"greater\",\n  0x003e,\n  \"greaterequal\",\n  0x2265,\n  \"greaterequalorless\",\n  0x22db,\n  \"greatermonospace\",\n  0xff1e,\n  \"greaterorequivalent\",\n  0x2273,\n  \"greaterorless\",\n  0x2277,\n  \"greateroverequal\",\n  0x2267,\n  \"greatersmall\",\n  0xfe65,\n  \"gscript\",\n  0x0261,\n  \"gstroke\",\n  0x01e5,\n  \"guhiragana\",\n  0x3050,\n  \"guillemotleft\",\n  0x00ab,\n  \"guillemotright\",\n  0x00bb,\n  \"guilsinglleft\",\n  0x2039,\n  \"guilsinglright\",\n  0x203a,\n  \"gukatakana\",\n  0x30b0,\n  \"guramusquare\",\n  0x3318,\n  \"gysquare\",\n  0x33c9,\n  \"h\",\n  0x0068,\n  \"haabkhasiancyrillic\",\n  0x04a9,\n  \"haaltonearabic\",\n  0x06c1,\n  \"habengali\",\n  0x09b9,\n  \"hadescendercyrillic\",\n  0x04b3,\n  \"hadeva\",\n  0x0939,\n  \"hagujarati\",\n  0x0ab9,\n  \"hagurmukhi\",\n  0x0a39,\n  \"haharabic\",\n  0x062d,\n  \"hahfinalarabic\",\n  0xfea2,\n  \"hahinitialarabic\",\n  0xfea3,\n  \"hahiragana\",\n  0x306f,\n  \"hahmedialarabic\",\n  0xfea4,\n  \"haitusquare\",\n  0x332a,\n  \"hakatakana\",\n  0x30cf,\n  \"hakatakanahalfwidth\",\n  0xff8a,\n  \"halantgurmukhi\",\n  0x0a4d,\n  \"hamzaarabic\",\n  0x0621,\n  \"hamzalowarabic\",\n  0x0621,\n  \"hangulfiller\",\n  0x3164,\n  \"hardsigncyrillic\",\n  0x044a,\n  \"harpoonleftbarbup\",\n  0x21bc,\n  \"harpoonrightbarbup\",\n  0x21c0,\n  \"hasquare\",\n  0x33ca,\n  \"hatafpatah\",\n  0x05b2,\n  \"hatafpatah16\",\n  0x05b2,\n  \"hatafpatah23\",\n  0x05b2,\n  \"hatafpatah2f\",\n  0x05b2,\n  \"hatafpatahhebrew\",\n  0x05b2,\n  \"hatafpatahnarrowhebrew\",\n  0x05b2,\n  \"hatafpatahquarterhebrew\",\n  0x05b2,\n  \"hatafpatahwidehebrew\",\n  0x05b2,\n  \"hatafqamats\",\n  0x05b3,\n  \"hatafqamats1b\",\n  0x05b3,\n  \"hatafqamats28\",\n  0x05b3,\n  \"hatafqamats34\",\n  0x05b3,\n  \"hatafqamatshebrew\",\n  0x05b3,\n  \"hatafqamatsnarrowhebrew\",\n  0x05b3,\n  \"hatafqamatsquarterhebrew\",\n  0x05b3,\n  \"hatafqamatswidehebrew\",\n  0x05b3,\n  \"hatafsegol\",\n  0x05b1,\n  \"hatafsegol17\",\n  0x05b1,\n  \"hatafsegol24\",\n  0x05b1,\n  \"hatafsegol30\",\n  0x05b1,\n  \"hatafsegolhebrew\",\n  0x05b1,\n  \"hatafsegolnarrowhebrew\",\n  0x05b1,\n  \"hatafsegolquarterhebrew\",\n  0x05b1,\n  \"hatafsegolwidehebrew\",\n  0x05b1,\n  \"hbar\",\n  0x0127,\n  \"hbopomofo\",\n  0x310f,\n  \"hbrevebelow\",\n  0x1e2b,\n  \"hcedilla\",\n  0x1e29,\n  \"hcircle\",\n  0x24d7,\n  \"hcircumflex\",\n  0x0125,\n  \"hdieresis\",\n  0x1e27,\n  \"hdotaccent\",\n  0x1e23,\n  \"hdotbelow\",\n  0x1e25,\n  \"he\",\n  0x05d4,\n  \"heart\",\n  0x2665,\n  \"heartsuitblack\",\n  0x2665,\n  \"heartsuitwhite\",\n  0x2661,\n  \"hedagesh\",\n  0xfb34,\n  \"hedageshhebrew\",\n  0xfb34,\n  \"hehaltonearabic\",\n  0x06c1,\n  \"heharabic\",\n  0x0647,\n  \"hehebrew\",\n  0x05d4,\n  \"hehfinalaltonearabic\",\n  0xfba7,\n  \"hehfinalalttwoarabic\",\n  0xfeea,\n  \"hehfinalarabic\",\n  0xfeea,\n  \"hehhamzaabovefinalarabic\",\n  0xfba5,\n  \"hehhamzaaboveisolatedarabic\",\n  0xfba4,\n  \"hehinitialaltonearabic\",\n  0xfba8,\n  \"hehinitialarabic\",\n  0xfeeb,\n  \"hehiragana\",\n  0x3078,\n  \"hehmedialaltonearabic\",\n  0xfba9,\n  \"hehmedialarabic\",\n  0xfeec,\n  \"heiseierasquare\",\n  0x337b,\n  \"hekatakana\",\n  0x30d8,\n  \"hekatakanahalfwidth\",\n  0xff8d,\n  \"hekutaarusquare\",\n  0x3336,\n  \"henghook\",\n  0x0267,\n  \"herutusquare\",\n  0x3339,\n  \"het\",\n  0x05d7,\n  \"hethebrew\",\n  0x05d7,\n  \"hhook\",\n  0x0266,\n  \"hhooksuperior\",\n  0x02b1,\n  \"hieuhacirclekorean\",\n  0x327b,\n  \"hieuhaparenkorean\",\n  0x321b,\n  \"hieuhcirclekorean\",\n  0x326d,\n  \"hieuhkorean\",\n  0x314e,\n  \"hieuhparenkorean\",\n  0x320d,\n  \"hihiragana\",\n  0x3072,\n  \"hikatakana\",\n  0x30d2,\n  \"hikatakanahalfwidth\",\n  0xff8b,\n  \"hiriq\",\n  0x05b4,\n  \"hiriq14\",\n  0x05b4,\n  \"hiriq21\",\n  0x05b4,\n  \"hiriq2d\",\n  0x05b4,\n  \"hiriqhebrew\",\n  0x05b4,\n  \"hiriqnarrowhebrew\",\n  0x05b4,\n  \"hiriqquarterhebrew\",\n  0x05b4,\n  \"hiriqwidehebrew\",\n  0x05b4,\n  \"hlinebelow\",\n  0x1e96,\n  \"hmonospace\",\n  0xff48,\n  \"hoarmenian\",\n  0x0570,\n  \"hohipthai\",\n  0x0e2b,\n  \"hohiragana\",\n  0x307b,\n  \"hokatakana\",\n  0x30db,\n  \"hokatakanahalfwidth\",\n  0xff8e,\n  \"holam\",\n  0x05b9,\n  \"holam19\",\n  0x05b9,\n  \"holam26\",\n  0x05b9,\n  \"holam32\",\n  0x05b9,\n  \"holamhebrew\",\n  0x05b9,\n  \"holamnarrowhebrew\",\n  0x05b9,\n  \"holamquarterhebrew\",\n  0x05b9,\n  \"holamwidehebrew\",\n  0x05b9,\n  \"honokhukthai\",\n  0x0e2e,\n  \"hookabovecomb\",\n  0x0309,\n  \"hookcmb\",\n  0x0309,\n  \"hookpalatalizedbelowcmb\",\n  0x0321,\n  \"hookretroflexbelowcmb\",\n  0x0322,\n  \"hoonsquare\",\n  0x3342,\n  \"horicoptic\",\n  0x03e9,\n  \"horizontalbar\",\n  0x2015,\n  \"horncmb\",\n  0x031b,\n  \"hotsprings\",\n  0x2668,\n  \"house\",\n  0x2302,\n  \"hparen\",\n  0x24a3,\n  \"hsuperior\",\n  0x02b0,\n  \"hturned\",\n  0x0265,\n  \"huhiragana\",\n  0x3075,\n  \"huiitosquare\",\n  0x3333,\n  \"hukatakana\",\n  0x30d5,\n  \"hukatakanahalfwidth\",\n  0xff8c,\n  \"hungarumlaut\",\n  0x02dd,\n  \"hungarumlautcmb\",\n  0x030b,\n  \"hv\",\n  0x0195,\n  \"hyphen\",\n  0x002d,\n  \"hypheninferior\",\n  0xf6e5,\n  \"hyphenmonospace\",\n  0xff0d,\n  \"hyphensmall\",\n  0xfe63,\n  \"hyphensuperior\",\n  0xf6e6,\n  \"hyphentwo\",\n  0x2010,\n  \"i\",\n  0x0069,\n  \"iacute\",\n  0x00ed,\n  \"iacyrillic\",\n  0x044f,\n  \"ibengali\",\n  0x0987,\n  \"ibopomofo\",\n  0x3127,\n  \"ibreve\",\n  0x012d,\n  \"icaron\",\n  0x01d0,\n  \"icircle\",\n  0x24d8,\n  \"icircumflex\",\n  0x00ee,\n  \"icyrillic\",\n  0x0456,\n  \"idblgrave\",\n  0x0209,\n  \"ideographearthcircle\",\n  0x328f,\n  \"ideographfirecircle\",\n  0x328b,\n  \"ideographicallianceparen\",\n  0x323f,\n  \"ideographiccallparen\",\n  0x323a,\n  \"ideographiccentrecircle\",\n  0x32a5,\n  \"ideographicclose\",\n  0x3006,\n  \"ideographiccomma\",\n  0x3001,\n  \"ideographiccommaleft\",\n  0xff64,\n  \"ideographiccongratulationparen\",\n  0x3237,\n  \"ideographiccorrectcircle\",\n  0x32a3,\n  \"ideographicearthparen\",\n  0x322f,\n  \"ideographicenterpriseparen\",\n  0x323d,\n  \"ideographicexcellentcircle\",\n  0x329d,\n  \"ideographicfestivalparen\",\n  0x3240,\n  \"ideographicfinancialcircle\",\n  0x3296,\n  \"ideographicfinancialparen\",\n  0x3236,\n  \"ideographicfireparen\",\n  0x322b,\n  \"ideographichaveparen\",\n  0x3232,\n  \"ideographichighcircle\",\n  0x32a4,\n  \"ideographiciterationmark\",\n  0x3005,\n  \"ideographiclaborcircle\",\n  0x3298,\n  \"ideographiclaborparen\",\n  0x3238,\n  \"ideographicleftcircle\",\n  0x32a7,\n  \"ideographiclowcircle\",\n  0x32a6,\n  \"ideographicmedicinecircle\",\n  0x32a9,\n  \"ideographicmetalparen\",\n  0x322e,\n  \"ideographicmoonparen\",\n  0x322a,\n  \"ideographicnameparen\",\n  0x3234,\n  \"ideographicperiod\",\n  0x3002,\n  \"ideographicprintcircle\",\n  0x329e,\n  \"ideographicreachparen\",\n  0x3243,\n  \"ideographicrepresentparen\",\n  0x3239,\n  \"ideographicresourceparen\",\n  0x323e,\n  \"ideographicrightcircle\",\n  0x32a8,\n  \"ideographicsecretcircle\",\n  0x3299,\n  \"ideographicselfparen\",\n  0x3242,\n  \"ideographicsocietyparen\",\n  0x3233,\n  \"ideographicspace\",\n  0x3000,\n  \"ideographicspecialparen\",\n  0x3235,\n  \"ideographicstockparen\",\n  0x3231,\n  \"ideographicstudyparen\",\n  0x323b,\n  \"ideographicsunparen\",\n  0x3230,\n  \"ideographicsuperviseparen\",\n  0x323c,\n  \"ideographicwaterparen\",\n  0x322c,\n  \"ideographicwoodparen\",\n  0x322d,\n  \"ideographiczero\",\n  0x3007,\n  \"ideographmetalcircle\",\n  0x328e,\n  \"ideographmooncircle\",\n  0x328a,\n  \"ideographnamecircle\",\n  0x3294,\n  \"ideographsuncircle\",\n  0x3290,\n  \"ideographwatercircle\",\n  0x328c,\n  \"ideographwoodcircle\",\n  0x328d,\n  \"ideva\",\n  0x0907,\n  \"idieresis\",\n  0x00ef,\n  \"idieresisacute\",\n  0x1e2f,\n  \"idieresiscyrillic\",\n  0x04e5,\n  \"idotbelow\",\n  0x1ecb,\n  \"iebrevecyrillic\",\n  0x04d7,\n  \"iecyrillic\",\n  0x0435,\n  \"ieungacirclekorean\",\n  0x3275,\n  \"ieungaparenkorean\",\n  0x3215,\n  \"ieungcirclekorean\",\n  0x3267,\n  \"ieungkorean\",\n  0x3147,\n  \"ieungparenkorean\",\n  0x3207,\n  \"igrave\",\n  0x00ec,\n  \"igujarati\",\n  0x0a87,\n  \"igurmukhi\",\n  0x0a07,\n  \"ihiragana\",\n  0x3044,\n  \"ihookabove\",\n  0x1ec9,\n  \"iibengali\",\n  0x0988,\n  \"iicyrillic\",\n  0x0438,\n  \"iideva\",\n  0x0908,\n  \"iigujarati\",\n  0x0a88,\n  \"iigurmukhi\",\n  0x0a08,\n  \"iimatragurmukhi\",\n  0x0a40,\n  \"iinvertedbreve\",\n  0x020b,\n  \"iishortcyrillic\",\n  0x0439,\n  \"iivowelsignbengali\",\n  0x09c0,\n  \"iivowelsigndeva\",\n  0x0940,\n  \"iivowelsigngujarati\",\n  0x0ac0,\n  \"ij\",\n  0x0133,\n  \"ikatakana\",\n  0x30a4,\n  \"ikatakanahalfwidth\",\n  0xff72,\n  \"ikorean\",\n  0x3163,\n  \"ilde\",\n  0x02dc,\n  \"iluyhebrew\",\n  0x05ac,\n  \"imacron\",\n  0x012b,\n  \"imacroncyrillic\",\n  0x04e3,\n  \"imageorapproximatelyequal\",\n  0x2253,\n  \"imatragurmukhi\",\n  0x0a3f,\n  \"imonospace\",\n  0xff49,\n  \"increment\",\n  0x2206,\n  \"infinity\",\n  0x221e,\n  \"iniarmenian\",\n  0x056b,\n  \"integral\",\n  0x222b,\n  \"integralbottom\",\n  0x2321,\n  \"integralbt\",\n  0x2321,\n  \"integralex\",\n  0xf8f5,\n  \"integraltop\",\n  0x2320,\n  \"integraltp\",\n  0x2320,\n  \"intersection\",\n  0x2229,\n  \"intisquare\",\n  0x3305,\n  \"invbullet\",\n  0x25d8,\n  \"invcircle\",\n  0x25d9,\n  \"invsmileface\",\n  0x263b,\n  \"iocyrillic\",\n  0x0451,\n  \"iogonek\",\n  0x012f,\n  \"iota\",\n  0x03b9,\n  \"iotadieresis\",\n  0x03ca,\n  \"iotadieresistonos\",\n  0x0390,\n  \"iotalatin\",\n  0x0269,\n  \"iotatonos\",\n  0x03af,\n  \"iparen\",\n  0x24a4,\n  \"irigurmukhi\",\n  0x0a72,\n  \"ismallhiragana\",\n  0x3043,\n  \"ismallkatakana\",\n  0x30a3,\n  \"ismallkatakanahalfwidth\",\n  0xff68,\n  \"issharbengali\",\n  0x09fa,\n  \"istroke\",\n  0x0268,\n  \"isuperior\",\n  0xf6ed,\n  \"iterationhiragana\",\n  0x309d,\n  \"iterationkatakana\",\n  0x30fd,\n  \"itilde\",\n  0x0129,\n  \"itildebelow\",\n  0x1e2d,\n  \"iubopomofo\",\n  0x3129,\n  \"iucyrillic\",\n  0x044e,\n  \"ivowelsignbengali\",\n  0x09bf,\n  \"ivowelsigndeva\",\n  0x093f,\n  \"ivowelsigngujarati\",\n  0x0abf,\n  \"izhitsacyrillic\",\n  0x0475,\n  \"izhitsadblgravecyrillic\",\n  0x0477,\n  \"j\",\n  0x006a,\n  \"jaarmenian\",\n  0x0571,\n  \"jabengali\",\n  0x099c,\n  \"jadeva\",\n  0x091c,\n  \"jagujarati\",\n  0x0a9c,\n  \"jagurmukhi\",\n  0x0a1c,\n  \"jbopomofo\",\n  0x3110,\n  \"jcaron\",\n  0x01f0,\n  \"jcircle\",\n  0x24d9,\n  \"jcircumflex\",\n  0x0135,\n  \"jcrossedtail\",\n  0x029d,\n  \"jdotlessstroke\",\n  0x025f,\n  \"jecyrillic\",\n  0x0458,\n  \"jeemarabic\",\n  0x062c,\n  \"jeemfinalarabic\",\n  0xfe9e,\n  \"jeeminitialarabic\",\n  0xfe9f,\n  \"jeemmedialarabic\",\n  0xfea0,\n  \"jeharabic\",\n  0x0698,\n  \"jehfinalarabic\",\n  0xfb8b,\n  \"jhabengali\",\n  0x099d,\n  \"jhadeva\",\n  0x091d,\n  \"jhagujarati\",\n  0x0a9d,\n  \"jhagurmukhi\",\n  0x0a1d,\n  \"jheharmenian\",\n  0x057b,\n  \"jis\",\n  0x3004,\n  \"jmonospace\",\n  0xff4a,\n  \"jparen\",\n  0x24a5,\n  \"jsuperior\",\n  0x02b2,\n  \"k\",\n  0x006b,\n  \"kabashkircyrillic\",\n  0x04a1,\n  \"kabengali\",\n  0x0995,\n  \"kacute\",\n  0x1e31,\n  \"kacyrillic\",\n  0x043a,\n  \"kadescendercyrillic\",\n  0x049b,\n  \"kadeva\",\n  0x0915,\n  \"kaf\",\n  0x05db,\n  \"kafarabic\",\n  0x0643,\n  \"kafdagesh\",\n  0xfb3b,\n  \"kafdageshhebrew\",\n  0xfb3b,\n  \"kaffinalarabic\",\n  0xfeda,\n  \"kafhebrew\",\n  0x05db,\n  \"kafinitialarabic\",\n  0xfedb,\n  \"kafmedialarabic\",\n  0xfedc,\n  \"kafrafehebrew\",\n  0xfb4d,\n  \"kagujarati\",\n  0x0a95,\n  \"kagurmukhi\",\n  0x0a15,\n  \"kahiragana\",\n  0x304b,\n  \"kahookcyrillic\",\n  0x04c4,\n  \"kakatakana\",\n  0x30ab,\n  \"kakatakanahalfwidth\",\n  0xff76,\n  \"kappa\",\n  0x03ba,\n  \"kappasymbolgreek\",\n  0x03f0,\n  \"kapyeounmieumkorean\",\n  0x3171,\n  \"kapyeounphieuphkorean\",\n  0x3184,\n  \"kapyeounpieupkorean\",\n  0x3178,\n  \"kapyeounssangpieupkorean\",\n  0x3179,\n  \"karoriisquare\",\n  0x330d,\n  \"kashidaautoarabic\",\n  0x0640,\n  \"kashidaautonosidebearingarabic\",\n  0x0640,\n  \"kasmallkatakana\",\n  0x30f5,\n  \"kasquare\",\n  0x3384,\n  \"kasraarabic\",\n  0x0650,\n  \"kasratanarabic\",\n  0x064d,\n  \"kastrokecyrillic\",\n  0x049f,\n  \"katahiraprolongmarkhalfwidth\",\n  0xff70,\n  \"kaverticalstrokecyrillic\",\n  0x049d,\n  \"kbopomofo\",\n  0x310e,\n  \"kcalsquare\",\n  0x3389,\n  \"kcaron\",\n  0x01e9,\n  \"kcedilla\",\n  0x0137,\n  \"kcircle\",\n  0x24da,\n  \"kcommaaccent\",\n  0x0137,\n  \"kdotbelow\",\n  0x1e33,\n  \"keharmenian\",\n  0x0584,\n  \"kehiragana\",\n  0x3051,\n  \"kekatakana\",\n  0x30b1,\n  \"kekatakanahalfwidth\",\n  0xff79,\n  \"kenarmenian\",\n  0x056f,\n  \"kesmallkatakana\",\n  0x30f6,\n  \"kgreenlandic\",\n  0x0138,\n  \"khabengali\",\n  0x0996,\n  \"khacyrillic\",\n  0x0445,\n  \"khadeva\",\n  0x0916,\n  \"khagujarati\",\n  0x0a96,\n  \"khagurmukhi\",\n  0x0a16,\n  \"khaharabic\",\n  0x062e,\n  \"khahfinalarabic\",\n  0xfea6,\n  \"khahinitialarabic\",\n  0xfea7,\n  \"khahmedialarabic\",\n  0xfea8,\n  \"kheicoptic\",\n  0x03e7,\n  \"khhadeva\",\n  0x0959,\n  \"khhagurmukhi\",\n  0x0a59,\n  \"khieukhacirclekorean\",\n  0x3278,\n  \"khieukhaparenkorean\",\n  0x3218,\n  \"khieukhcirclekorean\",\n  0x326a,\n  \"khieukhkorean\",\n  0x314b,\n  \"khieukhparenkorean\",\n  0x320a,\n  \"khokhaithai\",\n  0x0e02,\n  \"khokhonthai\",\n  0x0e05,\n  \"khokhuatthai\",\n  0x0e03,\n  \"khokhwaithai\",\n  0x0e04,\n  \"khomutthai\",\n  0x0e5b,\n  \"khook\",\n  0x0199,\n  \"khorakhangthai\",\n  0x0e06,\n  \"khzsquare\",\n  0x3391,\n  \"kihiragana\",\n  0x304d,\n  \"kikatakana\",\n  0x30ad,\n  \"kikatakanahalfwidth\",\n  0xff77,\n  \"kiroguramusquare\",\n  0x3315,\n  \"kiromeetorusquare\",\n  0x3316,\n  \"kirosquare\",\n  0x3314,\n  \"kiyeokacirclekorean\",\n  0x326e,\n  \"kiyeokaparenkorean\",\n  0x320e,\n  \"kiyeokcirclekorean\",\n  0x3260,\n  \"kiyeokkorean\",\n  0x3131,\n  \"kiyeokparenkorean\",\n  0x3200,\n  \"kiyeoksioskorean\",\n  0x3133,\n  \"kjecyrillic\",\n  0x045c,\n  \"klinebelow\",\n  0x1e35,\n  \"klsquare\",\n  0x3398,\n  \"kmcubedsquare\",\n  0x33a6,\n  \"kmonospace\",\n  0xff4b,\n  \"kmsquaredsquare\",\n  0x33a2,\n  \"kohiragana\",\n  0x3053,\n  \"kohmsquare\",\n  0x33c0,\n  \"kokaithai\",\n  0x0e01,\n  \"kokatakana\",\n  0x30b3,\n  \"kokatakanahalfwidth\",\n  0xff7a,\n  \"kooposquare\",\n  0x331e,\n  \"koppacyrillic\",\n  0x0481,\n  \"koreanstandardsymbol\",\n  0x327f,\n  \"koroniscmb\",\n  0x0343,\n  \"kparen\",\n  0x24a6,\n  \"kpasquare\",\n  0x33aa,\n  \"ksicyrillic\",\n  0x046f,\n  \"ktsquare\",\n  0x33cf,\n  \"kturned\",\n  0x029e,\n  \"kuhiragana\",\n  0x304f,\n  \"kukatakana\",\n  0x30af,\n  \"kukatakanahalfwidth\",\n  0xff78,\n  \"kvsquare\",\n  0x33b8,\n  \"kwsquare\",\n  0x33be,\n  \"l\",\n  0x006c,\n  \"labengali\",\n  0x09b2,\n  \"lacute\",\n  0x013a,\n  \"ladeva\",\n  0x0932,\n  \"lagujarati\",\n  0x0ab2,\n  \"lagurmukhi\",\n  0x0a32,\n  \"lakkhangyaothai\",\n  0x0e45,\n  \"lamaleffinalarabic\",\n  0xfefc,\n  \"lamalefhamzaabovefinalarabic\",\n  0xfef8,\n  \"lamalefhamzaaboveisolatedarabic\",\n  0xfef7,\n  \"lamalefhamzabelowfinalarabic\",\n  0xfefa,\n  \"lamalefhamzabelowisolatedarabic\",\n  0xfef9,\n  \"lamalefisolatedarabic\",\n  0xfefb,\n  \"lamalefmaddaabovefinalarabic\",\n  0xfef6,\n  \"lamalefmaddaaboveisolatedarabic\",\n  0xfef5,\n  \"lamarabic\",\n  0x0644,\n  \"lambda\",\n  0x03bb,\n  \"lambdastroke\",\n  0x019b,\n  \"lamed\",\n  0x05dc,\n  \"lameddagesh\",\n  0xfb3c,\n  \"lameddageshhebrew\",\n  0xfb3c,\n  \"lamedhebrew\",\n  0x05dc,\n  \"lamfinalarabic\",\n  0xfede,\n  \"lamhahinitialarabic\",\n  0xfcca,\n  \"laminitialarabic\",\n  0xfedf,\n  \"lamjeeminitialarabic\",\n  0xfcc9,\n  \"lamkhahinitialarabic\",\n  0xfccb,\n  \"lamlamhehisolatedarabic\",\n  0xfdf2,\n  \"lammedialarabic\",\n  0xfee0,\n  \"lammeemhahinitialarabic\",\n  0xfd88,\n  \"lammeeminitialarabic\",\n  0xfccc,\n  \"largecircle\",\n  0x25ef,\n  \"lbar\",\n  0x019a,\n  \"lbelt\",\n  0x026c,\n  \"lbopomofo\",\n  0x310c,\n  \"lcaron\",\n  0x013e,\n  \"lcedilla\",\n  0x013c,\n  \"lcircle\",\n  0x24db,\n  \"lcircumflexbelow\",\n  0x1e3d,\n  \"lcommaaccent\",\n  0x013c,\n  \"ldot\",\n  0x0140,\n  \"ldotaccent\",\n  0x0140,\n  \"ldotbelow\",\n  0x1e37,\n  \"ldotbelowmacron\",\n  0x1e39,\n  \"leftangleabovecmb\",\n  0x031a,\n  \"lefttackbelowcmb\",\n  0x0318,\n  \"less\",\n  0x003c,\n  \"lessequal\",\n  0x2264,\n  \"lessequalorgreater\",\n  0x22da,\n  \"lessmonospace\",\n  0xff1c,\n  \"lessorequivalent\",\n  0x2272,\n  \"lessorgreater\",\n  0x2276,\n  \"lessoverequal\",\n  0x2266,\n  \"lesssmall\",\n  0xfe64,\n  \"lezh\",\n  0x026e,\n  \"lfblock\",\n  0x258c,\n  \"lhookretroflex\",\n  0x026d,\n  \"lira\",\n  0x20a4,\n  \"liwnarmenian\",\n  0x056c,\n  \"lj\",\n  0x01c9,\n  \"ljecyrillic\",\n  0x0459,\n  \"ll\",\n  0xf6c0,\n  \"lladeva\",\n  0x0933,\n  \"llagujarati\",\n  0x0ab3,\n  \"llinebelow\",\n  0x1e3b,\n  \"llladeva\",\n  0x0934,\n  \"llvocalicbengali\",\n  0x09e1,\n  \"llvocalicdeva\",\n  0x0961,\n  \"llvocalicvowelsignbengali\",\n  0x09e3,\n  \"llvocalicvowelsigndeva\",\n  0x0963,\n  \"lmiddletilde\",\n  0x026b,\n  \"lmonospace\",\n  0xff4c,\n  \"lmsquare\",\n  0x33d0,\n  \"lochulathai\",\n  0x0e2c,\n  \"logicaland\",\n  0x2227,\n  \"logicalnot\",\n  0x00ac,\n  \"logicalnotreversed\",\n  0x2310,\n  \"logicalor\",\n  0x2228,\n  \"lolingthai\",\n  0x0e25,\n  \"longs\",\n  0x017f,\n  \"lowlinecenterline\",\n  0xfe4e,\n  \"lowlinecmb\",\n  0x0332,\n  \"lowlinedashed\",\n  0xfe4d,\n  \"lozenge\",\n  0x25ca,\n  \"lparen\",\n  0x24a7,\n  \"lslash\",\n  0x0142,\n  \"lsquare\",\n  0x2113,\n  \"lsuperior\",\n  0xf6ee,\n  \"ltshade\",\n  0x2591,\n  \"luthai\",\n  0x0e26,\n  \"lvocalicbengali\",\n  0x098c,\n  \"lvocalicdeva\",\n  0x090c,\n  \"lvocalicvowelsignbengali\",\n  0x09e2,\n  \"lvocalicvowelsigndeva\",\n  0x0962,\n  \"lxsquare\",\n  0x33d3,\n  \"m\",\n  0x006d,\n  \"mabengali\",\n  0x09ae,\n  \"macron\",\n  0x00af,\n  \"macronbelowcmb\",\n  0x0331,\n  \"macroncmb\",\n  0x0304,\n  \"macronlowmod\",\n  0x02cd,\n  \"macronmonospace\",\n  0xffe3,\n  \"macute\",\n  0x1e3f,\n  \"madeva\",\n  0x092e,\n  \"magujarati\",\n  0x0aae,\n  \"magurmukhi\",\n  0x0a2e,\n  \"mahapakhhebrew\",\n  0x05a4,\n  \"mahapakhlefthebrew\",\n  0x05a4,\n  \"mahiragana\",\n  0x307e,\n  \"maichattawalowleftthai\",\n  0xf895,\n  \"maichattawalowrightthai\",\n  0xf894,\n  \"maichattawathai\",\n  0x0e4b,\n  \"maichattawaupperleftthai\",\n  0xf893,\n  \"maieklowleftthai\",\n  0xf88c,\n  \"maieklowrightthai\",\n  0xf88b,\n  \"maiekthai\",\n  0x0e48,\n  \"maiekupperleftthai\",\n  0xf88a,\n  \"maihanakatleftthai\",\n  0xf884,\n  \"maihanakatthai\",\n  0x0e31,\n  \"maitaikhuleftthai\",\n  0xf889,\n  \"maitaikhuthai\",\n  0x0e47,\n  \"maitholowleftthai\",\n  0xf88f,\n  \"maitholowrightthai\",\n  0xf88e,\n  \"maithothai\",\n  0x0e49,\n  \"maithoupperleftthai\",\n  0xf88d,\n  \"maitrilowleftthai\",\n  0xf892,\n  \"maitrilowrightthai\",\n  0xf891,\n  \"maitrithai\",\n  0x0e4a,\n  \"maitriupperleftthai\",\n  0xf890,\n  \"maiyamokthai\",\n  0x0e46,\n  \"makatakana\",\n  0x30de,\n  \"makatakanahalfwidth\",\n  0xff8f,\n  \"male\",\n  0x2642,\n  \"mansyonsquare\",\n  0x3347,\n  \"maqafhebrew\",\n  0x05be,\n  \"mars\",\n  0x2642,\n  \"masoracirclehebrew\",\n  0x05af,\n  \"masquare\",\n  0x3383,\n  \"mbopomofo\",\n  0x3107,\n  \"mbsquare\",\n  0x33d4,\n  \"mcircle\",\n  0x24dc,\n  \"mcubedsquare\",\n  0x33a5,\n  \"mdotaccent\",\n  0x1e41,\n  \"mdotbelow\",\n  0x1e43,\n  \"meemarabic\",\n  0x0645,\n  \"meemfinalarabic\",\n  0xfee2,\n  \"meeminitialarabic\",\n  0xfee3,\n  \"meemmedialarabic\",\n  0xfee4,\n  \"meemmeeminitialarabic\",\n  0xfcd1,\n  \"meemmeemisolatedarabic\",\n  0xfc48,\n  \"meetorusquare\",\n  0x334d,\n  \"mehiragana\",\n  0x3081,\n  \"meizierasquare\",\n  0x337e,\n  \"mekatakana\",\n  0x30e1,\n  \"mekatakanahalfwidth\",\n  0xff92,\n  \"mem\",\n  0x05de,\n  \"memdagesh\",\n  0xfb3e,\n  \"memdageshhebrew\",\n  0xfb3e,\n  \"memhebrew\",\n  0x05de,\n  \"menarmenian\",\n  0x0574,\n  \"merkhahebrew\",\n  0x05a5,\n  \"merkhakefulahebrew\",\n  0x05a6,\n  \"merkhakefulalefthebrew\",\n  0x05a6,\n  \"merkhalefthebrew\",\n  0x05a5,\n  \"mhook\",\n  0x0271,\n  \"mhzsquare\",\n  0x3392,\n  \"middledotkatakanahalfwidth\",\n  0xff65,\n  \"middot\",\n  0x00b7,\n  \"mieumacirclekorean\",\n  0x3272,\n  \"mieumaparenkorean\",\n  0x3212,\n  \"mieumcirclekorean\",\n  0x3264,\n  \"mieumkorean\",\n  0x3141,\n  \"mieumpansioskorean\",\n  0x3170,\n  \"mieumparenkorean\",\n  0x3204,\n  \"mieumpieupkorean\",\n  0x316e,\n  \"mieumsioskorean\",\n  0x316f,\n  \"mihiragana\",\n  0x307f,\n  \"mikatakana\",\n  0x30df,\n  \"mikatakanahalfwidth\",\n  0xff90,\n  \"minus\",\n  0x2212,\n  \"minusbelowcmb\",\n  0x0320,\n  \"minuscircle\",\n  0x2296,\n  \"minusmod\",\n  0x02d7,\n  \"minusplus\",\n  0x2213,\n  \"minute\",\n  0x2032,\n  \"miribaarusquare\",\n  0x334a,\n  \"mirisquare\",\n  0x3349,\n  \"mlonglegturned\",\n  0x0270,\n  \"mlsquare\",\n  0x3396,\n  \"mmcubedsquare\",\n  0x33a3,\n  \"mmonospace\",\n  0xff4d,\n  \"mmsquaredsquare\",\n  0x339f,\n  \"mohiragana\",\n  0x3082,\n  \"mohmsquare\",\n  0x33c1,\n  \"mokatakana\",\n  0x30e2,\n  \"mokatakanahalfwidth\",\n  0xff93,\n  \"molsquare\",\n  0x33d6,\n  \"momathai\",\n  0x0e21,\n  \"moverssquare\",\n  0x33a7,\n  \"moverssquaredsquare\",\n  0x33a8,\n  \"mparen\",\n  0x24a8,\n  \"mpasquare\",\n  0x33ab,\n  \"mssquare\",\n  0x33b3,\n  \"msuperior\",\n  0xf6ef,\n  \"mturned\",\n  0x026f,\n  \"mu\",\n  0x00b5,\n  \"mu1\",\n  0x00b5,\n  \"muasquare\",\n  0x3382,\n  \"muchgreater\",\n  0x226b,\n  \"muchless\",\n  0x226a,\n  \"mufsquare\",\n  0x338c,\n  \"mugreek\",\n  0x03bc,\n  \"mugsquare\",\n  0x338d,\n  \"muhiragana\",\n  0x3080,\n  \"mukatakana\",\n  0x30e0,\n  \"mukatakanahalfwidth\",\n  0xff91,\n  \"mulsquare\",\n  0x3395,\n  \"multiply\",\n  0x00d7,\n  \"mumsquare\",\n  0x339b,\n  \"munahhebrew\",\n  0x05a3,\n  \"munahlefthebrew\",\n  0x05a3,\n  \"musicalnote\",\n  0x266a,\n  \"musicalnotedbl\",\n  0x266b,\n  \"musicflatsign\",\n  0x266d,\n  \"musicsharpsign\",\n  0x266f,\n  \"mussquare\",\n  0x33b2,\n  \"muvsquare\",\n  0x33b6,\n  \"muwsquare\",\n  0x33bc,\n  \"mvmegasquare\",\n  0x33b9,\n  \"mvsquare\",\n  0x33b7,\n  \"mwmegasquare\",\n  0x33bf,\n  \"mwsquare\",\n  0x33bd,\n  \"n\",\n  0x006e,\n  \"nabengali\",\n  0x09a8,\n  \"nabla\",\n  0x2207,\n  \"nacute\",\n  0x0144,\n  \"nadeva\",\n  0x0928,\n  \"nagujarati\",\n  0x0aa8,\n  \"nagurmukhi\",\n  0x0a28,\n  \"nahiragana\",\n  0x306a,\n  \"nakatakana\",\n  0x30ca,\n  \"nakatakanahalfwidth\",\n  0xff85,\n  \"napostrophe\",\n  0x0149,\n  \"nasquare\",\n  0x3381,\n  \"nbopomofo\",\n  0x310b,\n  \"nbspace\",\n  0x00a0,\n  \"ncaron\",\n  0x0148,\n  \"ncedilla\",\n  0x0146,\n  \"ncircle\",\n  0x24dd,\n  \"ncircumflexbelow\",\n  0x1e4b,\n  \"ncommaaccent\",\n  0x0146,\n  \"ndotaccent\",\n  0x1e45,\n  \"ndotbelow\",\n  0x1e47,\n  \"nehiragana\",\n  0x306d,\n  \"nekatakana\",\n  0x30cd,\n  \"nekatakanahalfwidth\",\n  0xff88,\n  \"newsheqelsign\",\n  0x20aa,\n  \"nfsquare\",\n  0x338b,\n  \"ngabengali\",\n  0x0999,\n  \"ngadeva\",\n  0x0919,\n  \"ngagujarati\",\n  0x0a99,\n  \"ngagurmukhi\",\n  0x0a19,\n  \"ngonguthai\",\n  0x0e07,\n  \"nhiragana\",\n  0x3093,\n  \"nhookleft\",\n  0x0272,\n  \"nhookretroflex\",\n  0x0273,\n  \"nieunacirclekorean\",\n  0x326f,\n  \"nieunaparenkorean\",\n  0x320f,\n  \"nieuncieuckorean\",\n  0x3135,\n  \"nieuncirclekorean\",\n  0x3261,\n  \"nieunhieuhkorean\",\n  0x3136,\n  \"nieunkorean\",\n  0x3134,\n  \"nieunpansioskorean\",\n  0x3168,\n  \"nieunparenkorean\",\n  0x3201,\n  \"nieunsioskorean\",\n  0x3167,\n  \"nieuntikeutkorean\",\n  0x3166,\n  \"nihiragana\",\n  0x306b,\n  \"nikatakana\",\n  0x30cb,\n  \"nikatakanahalfwidth\",\n  0xff86,\n  \"nikhahitleftthai\",\n  0xf899,\n  \"nikhahitthai\",\n  0x0e4d,\n  \"nine\",\n  0x0039,\n  \"ninearabic\",\n  0x0669,\n  \"ninebengali\",\n  0x09ef,\n  \"ninecircle\",\n  0x2468,\n  \"ninecircleinversesansserif\",\n  0x2792,\n  \"ninedeva\",\n  0x096f,\n  \"ninegujarati\",\n  0x0aef,\n  \"ninegurmukhi\",\n  0x0a6f,\n  \"ninehackarabic\",\n  0x0669,\n  \"ninehangzhou\",\n  0x3029,\n  \"nineideographicparen\",\n  0x3228,\n  \"nineinferior\",\n  0x2089,\n  \"ninemonospace\",\n  0xff19,\n  \"nineoldstyle\",\n  0xf739,\n  \"nineparen\",\n  0x247c,\n  \"nineperiod\",\n  0x2490,\n  \"ninepersian\",\n  0x06f9,\n  \"nineroman\",\n  0x2178,\n  \"ninesuperior\",\n  0x2079,\n  \"nineteencircle\",\n  0x2472,\n  \"nineteenparen\",\n  0x2486,\n  \"nineteenperiod\",\n  0x249a,\n  \"ninethai\",\n  0x0e59,\n  \"nj\",\n  0x01cc,\n  \"njecyrillic\",\n  0x045a,\n  \"nkatakana\",\n  0x30f3,\n  \"nkatakanahalfwidth\",\n  0xff9d,\n  \"nlegrightlong\",\n  0x019e,\n  \"nlinebelow\",\n  0x1e49,\n  \"nmonospace\",\n  0xff4e,\n  \"nmsquare\",\n  0x339a,\n  \"nnabengali\",\n  0x09a3,\n  \"nnadeva\",\n  0x0923,\n  \"nnagujarati\",\n  0x0aa3,\n  \"nnagurmukhi\",\n  0x0a23,\n  \"nnnadeva\",\n  0x0929,\n  \"nohiragana\",\n  0x306e,\n  \"nokatakana\",\n  0x30ce,\n  \"nokatakanahalfwidth\",\n  0xff89,\n  \"nonbreakingspace\",\n  0x00a0,\n  \"nonenthai\",\n  0x0e13,\n  \"nonuthai\",\n  0x0e19,\n  \"noonarabic\",\n  0x0646,\n  \"noonfinalarabic\",\n  0xfee6,\n  \"noonghunnaarabic\",\n  0x06ba,\n  \"noonghunnafinalarabic\",\n  0xfb9f,\n  \"nooninitialarabic\",\n  0xfee7,\n  \"noonjeeminitialarabic\",\n  0xfcd2,\n  \"noonjeemisolatedarabic\",\n  0xfc4b,\n  \"noonmedialarabic\",\n  0xfee8,\n  \"noonmeeminitialarabic\",\n  0xfcd5,\n  \"noonmeemisolatedarabic\",\n  0xfc4e,\n  \"noonnoonfinalarabic\",\n  0xfc8d,\n  \"notcontains\",\n  0x220c,\n  \"notelement\",\n  0x2209,\n  \"notelementof\",\n  0x2209,\n  \"notequal\",\n  0x2260,\n  \"notgreater\",\n  0x226f,\n  \"notgreaternorequal\",\n  0x2271,\n  \"notgreaternorless\",\n  0x2279,\n  \"notidentical\",\n  0x2262,\n  \"notless\",\n  0x226e,\n  \"notlessnorequal\",\n  0x2270,\n  \"notparallel\",\n  0x2226,\n  \"notprecedes\",\n  0x2280,\n  \"notsubset\",\n  0x2284,\n  \"notsucceeds\",\n  0x2281,\n  \"notsuperset\",\n  0x2285,\n  \"nowarmenian\",\n  0x0576,\n  \"nparen\",\n  0x24a9,\n  \"nssquare\",\n  0x33b1,\n  \"nsuperior\",\n  0x207f,\n  \"ntilde\",\n  0x00f1,\n  \"nu\",\n  0x03bd,\n  \"nuhiragana\",\n  0x306c,\n  \"nukatakana\",\n  0x30cc,\n  \"nukatakanahalfwidth\",\n  0xff87,\n  \"nuktabengali\",\n  0x09bc,\n  \"nuktadeva\",\n  0x093c,\n  \"nuktagujarati\",\n  0x0abc,\n  \"nuktagurmukhi\",\n  0x0a3c,\n  \"numbersign\",\n  0x0023,\n  \"numbersignmonospace\",\n  0xff03,\n  \"numbersignsmall\",\n  0xfe5f,\n  \"numeralsigngreek\",\n  0x0374,\n  \"numeralsignlowergreek\",\n  0x0375,\n  \"numero\",\n  0x2116,\n  \"nun\",\n  0x05e0,\n  \"nundagesh\",\n  0xfb40,\n  \"nundageshhebrew\",\n  0xfb40,\n  \"nunhebrew\",\n  0x05e0,\n  \"nvsquare\",\n  0x33b5,\n  \"nwsquare\",\n  0x33bb,\n  \"nyabengali\",\n  0x099e,\n  \"nyadeva\",\n  0x091e,\n  \"nyagujarati\",\n  0x0a9e,\n  \"nyagurmukhi\",\n  0x0a1e,\n  \"o\",\n  0x006f,\n  \"oacute\",\n  0x00f3,\n  \"oangthai\",\n  0x0e2d,\n  \"obarred\",\n  0x0275,\n  \"obarredcyrillic\",\n  0x04e9,\n  \"obarreddieresiscyrillic\",\n  0x04eb,\n  \"obengali\",\n  0x0993,\n  \"obopomofo\",\n  0x311b,\n  \"obreve\",\n  0x014f,\n  \"ocandradeva\",\n  0x0911,\n  \"ocandragujarati\",\n  0x0a91,\n  \"ocandravowelsigndeva\",\n  0x0949,\n  \"ocandravowelsigngujarati\",\n  0x0ac9,\n  \"ocaron\",\n  0x01d2,\n  \"ocircle\",\n  0x24de,\n  \"ocircumflex\",\n  0x00f4,\n  \"ocircumflexacute\",\n  0x1ed1,\n  \"ocircumflexdotbelow\",\n  0x1ed9,\n  \"ocircumflexgrave\",\n  0x1ed3,\n  \"ocircumflexhookabove\",\n  0x1ed5,\n  \"ocircumflextilde\",\n  0x1ed7,\n  \"ocyrillic\",\n  0x043e,\n  \"odblacute\",\n  0x0151,\n  \"odblgrave\",\n  0x020d,\n  \"odeva\",\n  0x0913,\n  \"odieresis\",\n  0x00f6,\n  \"odieresiscyrillic\",\n  0x04e7,\n  \"odotbelow\",\n  0x1ecd,\n  \"oe\",\n  0x0153,\n  \"oekorean\",\n  0x315a,\n  \"ogonek\",\n  0x02db,\n  \"ogonekcmb\",\n  0x0328,\n  \"ograve\",\n  0x00f2,\n  \"ogujarati\",\n  0x0a93,\n  \"oharmenian\",\n  0x0585,\n  \"ohiragana\",\n  0x304a,\n  \"ohookabove\",\n  0x1ecf,\n  \"ohorn\",\n  0x01a1,\n  \"ohornacute\",\n  0x1edb,\n  \"ohorndotbelow\",\n  0x1ee3,\n  \"ohorngrave\",\n  0x1edd,\n  \"ohornhookabove\",\n  0x1edf,\n  \"ohorntilde\",\n  0x1ee1,\n  \"ohungarumlaut\",\n  0x0151,\n  \"oi\",\n  0x01a3,\n  \"oinvertedbreve\",\n  0x020f,\n  \"okatakana\",\n  0x30aa,\n  \"okatakanahalfwidth\",\n  0xff75,\n  \"okorean\",\n  0x3157,\n  \"olehebrew\",\n  0x05ab,\n  \"omacron\",\n  0x014d,\n  \"omacronacute\",\n  0x1e53,\n  \"omacrongrave\",\n  0x1e51,\n  \"omdeva\",\n  0x0950,\n  \"omega\",\n  0x03c9,\n  \"omega1\",\n  0x03d6,\n  \"omegacyrillic\",\n  0x0461,\n  \"omegalatinclosed\",\n  0x0277,\n  \"omegaroundcyrillic\",\n  0x047b,\n  \"omegatitlocyrillic\",\n  0x047d,\n  \"omegatonos\",\n  0x03ce,\n  \"omgujarati\",\n  0x0ad0,\n  \"omicron\",\n  0x03bf,\n  \"omicrontonos\",\n  0x03cc,\n  \"omonospace\",\n  0xff4f,\n  \"one\",\n  0x0031,\n  \"onearabic\",\n  0x0661,\n  \"onebengali\",\n  0x09e7,\n  \"onecircle\",\n  0x2460,\n  \"onecircleinversesansserif\",\n  0x278a,\n  \"onedeva\",\n  0x0967,\n  \"onedotenleader\",\n  0x2024,\n  \"oneeighth\",\n  0x215b,\n  \"onefitted\",\n  0xf6dc,\n  \"onegujarati\",\n  0x0ae7,\n  \"onegurmukhi\",\n  0x0a67,\n  \"onehackarabic\",\n  0x0661,\n  \"onehalf\",\n  0x00bd,\n  \"onehangzhou\",\n  0x3021,\n  \"oneideographicparen\",\n  0x3220,\n  \"oneinferior\",\n  0x2081,\n  \"onemonospace\",\n  0xff11,\n  \"onenumeratorbengali\",\n  0x09f4,\n  \"oneoldstyle\",\n  0xf731,\n  \"oneparen\",\n  0x2474,\n  \"oneperiod\",\n  0x2488,\n  \"onepersian\",\n  0x06f1,\n  \"onequarter\",\n  0x00bc,\n  \"oneroman\",\n  0x2170,\n  \"onesuperior\",\n  0x00b9,\n  \"onethai\",\n  0x0e51,\n  \"onethird\",\n  0x2153,\n  \"oogonek\",\n  0x01eb,\n  \"oogonekmacron\",\n  0x01ed,\n  \"oogurmukhi\",\n  0x0a13,\n  \"oomatragurmukhi\",\n  0x0a4b,\n  \"oopen\",\n  0x0254,\n  \"oparen\",\n  0x24aa,\n  \"openbullet\",\n  0x25e6,\n  \"option\",\n  0x2325,\n  \"ordfeminine\",\n  0x00aa,\n  \"ordmasculine\",\n  0x00ba,\n  \"orthogonal\",\n  0x221f,\n  \"oshortdeva\",\n  0x0912,\n  \"oshortvowelsigndeva\",\n  0x094a,\n  \"oslash\",\n  0x00f8,\n  \"oslashacute\",\n  0x01ff,\n  \"osmallhiragana\",\n  0x3049,\n  \"osmallkatakana\",\n  0x30a9,\n  \"osmallkatakanahalfwidth\",\n  0xff6b,\n  \"ostrokeacute\",\n  0x01ff,\n  \"osuperior\",\n  0xf6f0,\n  \"otcyrillic\",\n  0x047f,\n  \"otilde\",\n  0x00f5,\n  \"otildeacute\",\n  0x1e4d,\n  \"otildedieresis\",\n  0x1e4f,\n  \"oubopomofo\",\n  0x3121,\n  \"overline\",\n  0x203e,\n  \"overlinecenterline\",\n  0xfe4a,\n  \"overlinecmb\",\n  0x0305,\n  \"overlinedashed\",\n  0xfe49,\n  \"overlinedblwavy\",\n  0xfe4c,\n  \"overlinewavy\",\n  0xfe4b,\n  \"overscore\",\n  0x00af,\n  \"ovowelsignbengali\",\n  0x09cb,\n  \"ovowelsigndeva\",\n  0x094b,\n  \"ovowelsigngujarati\",\n  0x0acb,\n  \"p\",\n  0x0070,\n  \"paampssquare\",\n  0x3380,\n  \"paasentosquare\",\n  0x332b,\n  \"pabengali\",\n  0x09aa,\n  \"pacute\",\n  0x1e55,\n  \"padeva\",\n  0x092a,\n  \"pagedown\",\n  0x21df,\n  \"pageup\",\n  0x21de,\n  \"pagujarati\",\n  0x0aaa,\n  \"pagurmukhi\",\n  0x0a2a,\n  \"pahiragana\",\n  0x3071,\n  \"paiyannoithai\",\n  0x0e2f,\n  \"pakatakana\",\n  0x30d1,\n  \"palatalizationcyrilliccmb\",\n  0x0484,\n  \"palochkacyrillic\",\n  0x04c0,\n  \"pansioskorean\",\n  0x317f,\n  \"paragraph\",\n  0x00b6,\n  \"parallel\",\n  0x2225,\n  \"parenleft\",\n  0x0028,\n  \"parenleftaltonearabic\",\n  0xfd3e,\n  \"parenleftbt\",\n  0xf8ed,\n  \"parenleftex\",\n  0xf8ec,\n  \"parenleftinferior\",\n  0x208d,\n  \"parenleftmonospace\",\n  0xff08,\n  \"parenleftsmall\",\n  0xfe59,\n  \"parenleftsuperior\",\n  0x207d,\n  \"parenlefttp\",\n  0xf8eb,\n  \"parenleftvertical\",\n  0xfe35,\n  \"parenright\",\n  0x0029,\n  \"parenrightaltonearabic\",\n  0xfd3f,\n  \"parenrightbt\",\n  0xf8f8,\n  \"parenrightex\",\n  0xf8f7,\n  \"parenrightinferior\",\n  0x208e,\n  \"parenrightmonospace\",\n  0xff09,\n  \"parenrightsmall\",\n  0xfe5a,\n  \"parenrightsuperior\",\n  0x207e,\n  \"parenrighttp\",\n  0xf8f6,\n  \"parenrightvertical\",\n  0xfe36,\n  \"partialdiff\",\n  0x2202,\n  \"paseqhebrew\",\n  0x05c0,\n  \"pashtahebrew\",\n  0x0599,\n  \"pasquare\",\n  0x33a9,\n  \"patah\",\n  0x05b7,\n  \"patah11\",\n  0x05b7,\n  \"patah1d\",\n  0x05b7,\n  \"patah2a\",\n  0x05b7,\n  \"patahhebrew\",\n  0x05b7,\n  \"patahnarrowhebrew\",\n  0x05b7,\n  \"patahquarterhebrew\",\n  0x05b7,\n  \"patahwidehebrew\",\n  0x05b7,\n  \"pazerhebrew\",\n  0x05a1,\n  \"pbopomofo\",\n  0x3106,\n  \"pcircle\",\n  0x24df,\n  \"pdotaccent\",\n  0x1e57,\n  \"pe\",\n  0x05e4,\n  \"pecyrillic\",\n  0x043f,\n  \"pedagesh\",\n  0xfb44,\n  \"pedageshhebrew\",\n  0xfb44,\n  \"peezisquare\",\n  0x333b,\n  \"pefinaldageshhebrew\",\n  0xfb43,\n  \"peharabic\",\n  0x067e,\n  \"peharmenian\",\n  0x057a,\n  \"pehebrew\",\n  0x05e4,\n  \"pehfinalarabic\",\n  0xfb57,\n  \"pehinitialarabic\",\n  0xfb58,\n  \"pehiragana\",\n  0x307a,\n  \"pehmedialarabic\",\n  0xfb59,\n  \"pekatakana\",\n  0x30da,\n  \"pemiddlehookcyrillic\",\n  0x04a7,\n  \"perafehebrew\",\n  0xfb4e,\n  \"percent\",\n  0x0025,\n  \"percentarabic\",\n  0x066a,\n  \"percentmonospace\",\n  0xff05,\n  \"percentsmall\",\n  0xfe6a,\n  \"period\",\n  0x002e,\n  \"periodarmenian\",\n  0x0589,\n  \"periodcentered\",\n  0x00b7,\n  \"periodhalfwidth\",\n  0xff61,\n  \"periodinferior\",\n  0xf6e7,\n  \"periodmonospace\",\n  0xff0e,\n  \"periodsmall\",\n  0xfe52,\n  \"periodsuperior\",\n  0xf6e8,\n  \"perispomenigreekcmb\",\n  0x0342,\n  \"perpendicular\",\n  0x22a5,\n  \"perthousand\",\n  0x2030,\n  \"peseta\",\n  0x20a7,\n  \"pfsquare\",\n  0x338a,\n  \"phabengali\",\n  0x09ab,\n  \"phadeva\",\n  0x092b,\n  \"phagujarati\",\n  0x0aab,\n  \"phagurmukhi\",\n  0x0a2b,\n  \"phi\",\n  0x03c6,\n  \"phi1\",\n  0x03d5,\n  \"phieuphacirclekorean\",\n  0x327a,\n  \"phieuphaparenkorean\",\n  0x321a,\n  \"phieuphcirclekorean\",\n  0x326c,\n  \"phieuphkorean\",\n  0x314d,\n  \"phieuphparenkorean\",\n  0x320c,\n  \"philatin\",\n  0x0278,\n  \"phinthuthai\",\n  0x0e3a,\n  \"phisymbolgreek\",\n  0x03d5,\n  \"phook\",\n  0x01a5,\n  \"phophanthai\",\n  0x0e1e,\n  \"phophungthai\",\n  0x0e1c,\n  \"phosamphaothai\",\n  0x0e20,\n  \"pi\",\n  0x03c0,\n  \"pieupacirclekorean\",\n  0x3273,\n  \"pieupaparenkorean\",\n  0x3213,\n  \"pieupcieuckorean\",\n  0x3176,\n  \"pieupcirclekorean\",\n  0x3265,\n  \"pieupkiyeokkorean\",\n  0x3172,\n  \"pieupkorean\",\n  0x3142,\n  \"pieupparenkorean\",\n  0x3205,\n  \"pieupsioskiyeokkorean\",\n  0x3174,\n  \"pieupsioskorean\",\n  0x3144,\n  \"pieupsiostikeutkorean\",\n  0x3175,\n  \"pieupthieuthkorean\",\n  0x3177,\n  \"pieuptikeutkorean\",\n  0x3173,\n  \"pihiragana\",\n  0x3074,\n  \"pikatakana\",\n  0x30d4,\n  \"pisymbolgreek\",\n  0x03d6,\n  \"piwrarmenian\",\n  0x0583,\n  \"plus\",\n  0x002b,\n  \"plusbelowcmb\",\n  0x031f,\n  \"pluscircle\",\n  0x2295,\n  \"plusminus\",\n  0x00b1,\n  \"plusmod\",\n  0x02d6,\n  \"plusmonospace\",\n  0xff0b,\n  \"plussmall\",\n  0xfe62,\n  \"plussuperior\",\n  0x207a,\n  \"pmonospace\",\n  0xff50,\n  \"pmsquare\",\n  0x33d8,\n  \"pohiragana\",\n  0x307d,\n  \"pointingindexdownwhite\",\n  0x261f,\n  \"pointingindexleftwhite\",\n  0x261c,\n  \"pointingindexrightwhite\",\n  0x261e,\n  \"pointingindexupwhite\",\n  0x261d,\n  \"pokatakana\",\n  0x30dd,\n  \"poplathai\",\n  0x0e1b,\n  \"postalmark\",\n  0x3012,\n  \"postalmarkface\",\n  0x3020,\n  \"pparen\",\n  0x24ab,\n  \"precedes\",\n  0x227a,\n  \"prescription\",\n  0x211e,\n  \"primemod\",\n  0x02b9,\n  \"primereversed\",\n  0x2035,\n  \"product\",\n  0x220f,\n  \"projective\",\n  0x2305,\n  \"prolongedkana\",\n  0x30fc,\n  \"propellor\",\n  0x2318,\n  \"propersubset\",\n  0x2282,\n  \"propersuperset\",\n  0x2283,\n  \"proportion\",\n  0x2237,\n  \"proportional\",\n  0x221d,\n  \"psi\",\n  0x03c8,\n  \"psicyrillic\",\n  0x0471,\n  \"psilipneumatacyrilliccmb\",\n  0x0486,\n  \"pssquare\",\n  0x33b0,\n  \"puhiragana\",\n  0x3077,\n  \"pukatakana\",\n  0x30d7,\n  \"pvsquare\",\n  0x33b4,\n  \"pwsquare\",\n  0x33ba,\n  \"q\",\n  0x0071,\n  \"qadeva\",\n  0x0958,\n  \"qadmahebrew\",\n  0x05a8,\n  \"qafarabic\",\n  0x0642,\n  \"qaffinalarabic\",\n  0xfed6,\n  \"qafinitialarabic\",\n  0xfed7,\n  \"qafmedialarabic\",\n  0xfed8,\n  \"qamats\",\n  0x05b8,\n  \"qamats10\",\n  0x05b8,\n  \"qamats1a\",\n  0x05b8,\n  \"qamats1c\",\n  0x05b8,\n  \"qamats27\",\n  0x05b8,\n  \"qamats29\",\n  0x05b8,\n  \"qamats33\",\n  0x05b8,\n  \"qamatsde\",\n  0x05b8,\n  \"qamatshebrew\",\n  0x05b8,\n  \"qamatsnarrowhebrew\",\n  0x05b8,\n  \"qamatsqatanhebrew\",\n  0x05b8,\n  \"qamatsqatannarrowhebrew\",\n  0x05b8,\n  \"qamatsqatanquarterhebrew\",\n  0x05b8,\n  \"qamatsqatanwidehebrew\",\n  0x05b8,\n  \"qamatsquarterhebrew\",\n  0x05b8,\n  \"qamatswidehebrew\",\n  0x05b8,\n  \"qarneyparahebrew\",\n  0x059f,\n  \"qbopomofo\",\n  0x3111,\n  \"qcircle\",\n  0x24e0,\n  \"qhook\",\n  0x02a0,\n  \"qmonospace\",\n  0xff51,\n  \"qof\",\n  0x05e7,\n  \"qofdagesh\",\n  0xfb47,\n  \"qofdageshhebrew\",\n  0xfb47,\n  \"qofhebrew\",\n  0x05e7,\n  \"qparen\",\n  0x24ac,\n  \"quarternote\",\n  0x2669,\n  \"qubuts\",\n  0x05bb,\n  \"qubuts18\",\n  0x05bb,\n  \"qubuts25\",\n  0x05bb,\n  \"qubuts31\",\n  0x05bb,\n  \"qubutshebrew\",\n  0x05bb,\n  \"qubutsnarrowhebrew\",\n  0x05bb,\n  \"qubutsquarterhebrew\",\n  0x05bb,\n  \"qubutswidehebrew\",\n  0x05bb,\n  \"question\",\n  0x003f,\n  \"questionarabic\",\n  0x061f,\n  \"questionarmenian\",\n  0x055e,\n  \"questiondown\",\n  0x00bf,\n  \"questiondownsmall\",\n  0xf7bf,\n  \"questiongreek\",\n  0x037e,\n  \"questionmonospace\",\n  0xff1f,\n  \"questionsmall\",\n  0xf73f,\n  \"quotedbl\",\n  0x0022,\n  \"quotedblbase\",\n  0x201e,\n  \"quotedblleft\",\n  0x201c,\n  \"quotedblmonospace\",\n  0xff02,\n  \"quotedblprime\",\n  0x301e,\n  \"quotedblprimereversed\",\n  0x301d,\n  \"quotedblright\",\n  0x201d,\n  \"quoteleft\",\n  0x2018,\n  \"quoteleftreversed\",\n  0x201b,\n  \"quotereversed\",\n  0x201b,\n  \"quoteright\",\n  0x2019,\n  \"quoterightn\",\n  0x0149,\n  \"quotesinglbase\",\n  0x201a,\n  \"quotesingle\",\n  0x0027,\n  \"quotesinglemonospace\",\n  0xff07,\n  \"r\",\n  0x0072,\n  \"raarmenian\",\n  0x057c,\n  \"rabengali\",\n  0x09b0,\n  \"racute\",\n  0x0155,\n  \"radeva\",\n  0x0930,\n  \"radical\",\n  0x221a,\n  \"radicalex\",\n  0xf8e5,\n  \"radoverssquare\",\n  0x33ae,\n  \"radoverssquaredsquare\",\n  0x33af,\n  \"radsquare\",\n  0x33ad,\n  \"rafe\",\n  0x05bf,\n  \"rafehebrew\",\n  0x05bf,\n  \"ragujarati\",\n  0x0ab0,\n  \"ragurmukhi\",\n  0x0a30,\n  \"rahiragana\",\n  0x3089,\n  \"rakatakana\",\n  0x30e9,\n  \"rakatakanahalfwidth\",\n  0xff97,\n  \"ralowerdiagonalbengali\",\n  0x09f1,\n  \"ramiddlediagonalbengali\",\n  0x09f0,\n  \"ramshorn\",\n  0x0264,\n  \"ratio\",\n  0x2236,\n  \"rbopomofo\",\n  0x3116,\n  \"rcaron\",\n  0x0159,\n  \"rcedilla\",\n  0x0157,\n  \"rcircle\",\n  0x24e1,\n  \"rcommaaccent\",\n  0x0157,\n  \"rdblgrave\",\n  0x0211,\n  \"rdotaccent\",\n  0x1e59,\n  \"rdotbelow\",\n  0x1e5b,\n  \"rdotbelowmacron\",\n  0x1e5d,\n  \"referencemark\",\n  0x203b,\n  \"reflexsubset\",\n  0x2286,\n  \"reflexsuperset\",\n  0x2287,\n  \"registered\",\n  0x00ae,\n  \"registersans\",\n  0xf8e8,\n  \"registerserif\",\n  0xf6da,\n  \"reharabic\",\n  0x0631,\n  \"reharmenian\",\n  0x0580,\n  \"rehfinalarabic\",\n  0xfeae,\n  \"rehiragana\",\n  0x308c,\n  \"rekatakana\",\n  0x30ec,\n  \"rekatakanahalfwidth\",\n  0xff9a,\n  \"resh\",\n  0x05e8,\n  \"reshdageshhebrew\",\n  0xfb48,\n  \"reshhebrew\",\n  0x05e8,\n  \"reversedtilde\",\n  0x223d,\n  \"reviahebrew\",\n  0x0597,\n  \"reviamugrashhebrew\",\n  0x0597,\n  \"revlogicalnot\",\n  0x2310,\n  \"rfishhook\",\n  0x027e,\n  \"rfishhookreversed\",\n  0x027f,\n  \"rhabengali\",\n  0x09dd,\n  \"rhadeva\",\n  0x095d,\n  \"rho\",\n  0x03c1,\n  \"rhook\",\n  0x027d,\n  \"rhookturned\",\n  0x027b,\n  \"rhookturnedsuperior\",\n  0x02b5,\n  \"rhosymbolgreek\",\n  0x03f1,\n  \"rhotichookmod\",\n  0x02de,\n  \"rieulacirclekorean\",\n  0x3271,\n  \"rieulaparenkorean\",\n  0x3211,\n  \"rieulcirclekorean\",\n  0x3263,\n  \"rieulhieuhkorean\",\n  0x3140,\n  \"rieulkiyeokkorean\",\n  0x313a,\n  \"rieulkiyeoksioskorean\",\n  0x3169,\n  \"rieulkorean\",\n  0x3139,\n  \"rieulmieumkorean\",\n  0x313b,\n  \"rieulpansioskorean\",\n  0x316c,\n  \"rieulparenkorean\",\n  0x3203,\n  \"rieulphieuphkorean\",\n  0x313f,\n  \"rieulpieupkorean\",\n  0x313c,\n  \"rieulpieupsioskorean\",\n  0x316b,\n  \"rieulsioskorean\",\n  0x313d,\n  \"rieulthieuthkorean\",\n  0x313e,\n  \"rieultikeutkorean\",\n  0x316a,\n  \"rieulyeorinhieuhkorean\",\n  0x316d,\n  \"rightangle\",\n  0x221f,\n  \"righttackbelowcmb\",\n  0x0319,\n  \"righttriangle\",\n  0x22bf,\n  \"rihiragana\",\n  0x308a,\n  \"rikatakana\",\n  0x30ea,\n  \"rikatakanahalfwidth\",\n  0xff98,\n  \"ring\",\n  0x02da,\n  \"ringbelowcmb\",\n  0x0325,\n  \"ringcmb\",\n  0x030a,\n  \"ringhalfleft\",\n  0x02bf,\n  \"ringhalfleftarmenian\",\n  0x0559,\n  \"ringhalfleftbelowcmb\",\n  0x031c,\n  \"ringhalfleftcentered\",\n  0x02d3,\n  \"ringhalfright\",\n  0x02be,\n  \"ringhalfrightbelowcmb\",\n  0x0339,\n  \"ringhalfrightcentered\",\n  0x02d2,\n  \"rinvertedbreve\",\n  0x0213,\n  \"rittorusquare\",\n  0x3351,\n  \"rlinebelow\",\n  0x1e5f,\n  \"rlongleg\",\n  0x027c,\n  \"rlonglegturned\",\n  0x027a,\n  \"rmonospace\",\n  0xff52,\n  \"rohiragana\",\n  0x308d,\n  \"rokatakana\",\n  0x30ed,\n  \"rokatakanahalfwidth\",\n  0xff9b,\n  \"roruathai\",\n  0x0e23,\n  \"rparen\",\n  0x24ad,\n  \"rrabengali\",\n  0x09dc,\n  \"rradeva\",\n  0x0931,\n  \"rragurmukhi\",\n  0x0a5c,\n  \"rreharabic\",\n  0x0691,\n  \"rrehfinalarabic\",\n  0xfb8d,\n  \"rrvocalicbengali\",\n  0x09e0,\n  \"rrvocalicdeva\",\n  0x0960,\n  \"rrvocalicgujarati\",\n  0x0ae0,\n  \"rrvocalicvowelsignbengali\",\n  0x09c4,\n  \"rrvocalicvowelsigndeva\",\n  0x0944,\n  \"rrvocalicvowelsigngujarati\",\n  0x0ac4,\n  \"rsuperior\",\n  0xf6f1,\n  \"rtblock\",\n  0x2590,\n  \"rturned\",\n  0x0279,\n  \"rturnedsuperior\",\n  0x02b4,\n  \"ruhiragana\",\n  0x308b,\n  \"rukatakana\",\n  0x30eb,\n  \"rukatakanahalfwidth\",\n  0xff99,\n  \"rupeemarkbengali\",\n  0x09f2,\n  \"rupeesignbengali\",\n  0x09f3,\n  \"rupiah\",\n  0xf6dd,\n  \"ruthai\",\n  0x0e24,\n  \"rvocalicbengali\",\n  0x098b,\n  \"rvocalicdeva\",\n  0x090b,\n  \"rvocalicgujarati\",\n  0x0a8b,\n  \"rvocalicvowelsignbengali\",\n  0x09c3,\n  \"rvocalicvowelsigndeva\",\n  0x0943,\n  \"rvocalicvowelsigngujarati\",\n  0x0ac3,\n  \"s\",\n  0x0073,\n  \"sabengali\",\n  0x09b8,\n  \"sacute\",\n  0x015b,\n  \"sacutedotaccent\",\n  0x1e65,\n  \"sadarabic\",\n  0x0635,\n  \"sadeva\",\n  0x0938,\n  \"sadfinalarabic\",\n  0xfeba,\n  \"sadinitialarabic\",\n  0xfebb,\n  \"sadmedialarabic\",\n  0xfebc,\n  \"sagujarati\",\n  0x0ab8,\n  \"sagurmukhi\",\n  0x0a38,\n  \"sahiragana\",\n  0x3055,\n  \"sakatakana\",\n  0x30b5,\n  \"sakatakanahalfwidth\",\n  0xff7b,\n  \"sallallahoualayhewasallamarabic\",\n  0xfdfa,\n  \"samekh\",\n  0x05e1,\n  \"samekhdagesh\",\n  0xfb41,\n  \"samekhdageshhebrew\",\n  0xfb41,\n  \"samekhhebrew\",\n  0x05e1,\n  \"saraaathai\",\n  0x0e32,\n  \"saraaethai\",\n  0x0e41,\n  \"saraaimaimalaithai\",\n  0x0e44,\n  \"saraaimaimuanthai\",\n  0x0e43,\n  \"saraamthai\",\n  0x0e33,\n  \"saraathai\",\n  0x0e30,\n  \"saraethai\",\n  0x0e40,\n  \"saraiileftthai\",\n  0xf886,\n  \"saraiithai\",\n  0x0e35,\n  \"saraileftthai\",\n  0xf885,\n  \"saraithai\",\n  0x0e34,\n  \"saraothai\",\n  0x0e42,\n  \"saraueeleftthai\",\n  0xf888,\n  \"saraueethai\",\n  0x0e37,\n  \"saraueleftthai\",\n  0xf887,\n  \"sarauethai\",\n  0x0e36,\n  \"sarauthai\",\n  0x0e38,\n  \"sarauuthai\",\n  0x0e39,\n  \"sbopomofo\",\n  0x3119,\n  \"scaron\",\n  0x0161,\n  \"scarondotaccent\",\n  0x1e67,\n  \"scedilla\",\n  0x015f,\n  \"schwa\",\n  0x0259,\n  \"schwacyrillic\",\n  0x04d9,\n  \"schwadieresiscyrillic\",\n  0x04db,\n  \"schwahook\",\n  0x025a,\n  \"scircle\",\n  0x24e2,\n  \"scircumflex\",\n  0x015d,\n  \"scommaaccent\",\n  0x0219,\n  \"sdotaccent\",\n  0x1e61,\n  \"sdotbelow\",\n  0x1e63,\n  \"sdotbelowdotaccent\",\n  0x1e69,\n  \"seagullbelowcmb\",\n  0x033c,\n  \"second\",\n  0x2033,\n  \"secondtonechinese\",\n  0x02ca,\n  \"section\",\n  0x00a7,\n  \"seenarabic\",\n  0x0633,\n  \"seenfinalarabic\",\n  0xfeb2,\n  \"seeninitialarabic\",\n  0xfeb3,\n  \"seenmedialarabic\",\n  0xfeb4,\n  \"segol\",\n  0x05b6,\n  \"segol13\",\n  0x05b6,\n  \"segol1f\",\n  0x05b6,\n  \"segol2c\",\n  0x05b6,\n  \"segolhebrew\",\n  0x05b6,\n  \"segolnarrowhebrew\",\n  0x05b6,\n  \"segolquarterhebrew\",\n  0x05b6,\n  \"segoltahebrew\",\n  0x0592,\n  \"segolwidehebrew\",\n  0x05b6,\n  \"seharmenian\",\n  0x057d,\n  \"sehiragana\",\n  0x305b,\n  \"sekatakana\",\n  0x30bb,\n  \"sekatakanahalfwidth\",\n  0xff7e,\n  \"semicolon\",\n  0x003b,\n  \"semicolonarabic\",\n  0x061b,\n  \"semicolonmonospace\",\n  0xff1b,\n  \"semicolonsmall\",\n  0xfe54,\n  \"semivoicedmarkkana\",\n  0x309c,\n  \"semivoicedmarkkanahalfwidth\",\n  0xff9f,\n  \"sentisquare\",\n  0x3322,\n  \"sentosquare\",\n  0x3323,\n  \"seven\",\n  0x0037,\n  \"sevenarabic\",\n  0x0667,\n  \"sevenbengali\",\n  0x09ed,\n  \"sevencircle\",\n  0x2466,\n  \"sevencircleinversesansserif\",\n  0x2790,\n  \"sevendeva\",\n  0x096d,\n  \"seveneighths\",\n  0x215e,\n  \"sevengujarati\",\n  0x0aed,\n  \"sevengurmukhi\",\n  0x0a6d,\n  \"sevenhackarabic\",\n  0x0667,\n  \"sevenhangzhou\",\n  0x3027,\n  \"sevenideographicparen\",\n  0x3226,\n  \"seveninferior\",\n  0x2087,\n  \"sevenmonospace\",\n  0xff17,\n  \"sevenoldstyle\",\n  0xf737,\n  \"sevenparen\",\n  0x247a,\n  \"sevenperiod\",\n  0x248e,\n  \"sevenpersian\",\n  0x06f7,\n  \"sevenroman\",\n  0x2176,\n  \"sevensuperior\",\n  0x2077,\n  \"seventeencircle\",\n  0x2470,\n  \"seventeenparen\",\n  0x2484,\n  \"seventeenperiod\",\n  0x2498,\n  \"seventhai\",\n  0x0e57,\n  \"sfthyphen\",\n  0x00ad,\n  \"shaarmenian\",\n  0x0577,\n  \"shabengali\",\n  0x09b6,\n  \"shacyrillic\",\n  0x0448,\n  \"shaddaarabic\",\n  0x0651,\n  \"shaddadammaarabic\",\n  0xfc61,\n  \"shaddadammatanarabic\",\n  0xfc5e,\n  \"shaddafathaarabic\",\n  0xfc60,\n  \"shaddakasraarabic\",\n  0xfc62,\n  \"shaddakasratanarabic\",\n  0xfc5f,\n  \"shade\",\n  0x2592,\n  \"shadedark\",\n  0x2593,\n  \"shadelight\",\n  0x2591,\n  \"shademedium\",\n  0x2592,\n  \"shadeva\",\n  0x0936,\n  \"shagujarati\",\n  0x0ab6,\n  \"shagurmukhi\",\n  0x0a36,\n  \"shalshelethebrew\",\n  0x0593,\n  \"shbopomofo\",\n  0x3115,\n  \"shchacyrillic\",\n  0x0449,\n  \"sheenarabic\",\n  0x0634,\n  \"sheenfinalarabic\",\n  0xfeb6,\n  \"sheeninitialarabic\",\n  0xfeb7,\n  \"sheenmedialarabic\",\n  0xfeb8,\n  \"sheicoptic\",\n  0x03e3,\n  \"sheqel\",\n  0x20aa,\n  \"sheqelhebrew\",\n  0x20aa,\n  \"sheva\",\n  0x05b0,\n  \"sheva115\",\n  0x05b0,\n  \"sheva15\",\n  0x05b0,\n  \"sheva22\",\n  0x05b0,\n  \"sheva2e\",\n  0x05b0,\n  \"shevahebrew\",\n  0x05b0,\n  \"shevanarrowhebrew\",\n  0x05b0,\n  \"shevaquarterhebrew\",\n  0x05b0,\n  \"shevawidehebrew\",\n  0x05b0,\n  \"shhacyrillic\",\n  0x04bb,\n  \"shimacoptic\",\n  0x03ed,\n  \"shin\",\n  0x05e9,\n  \"shindagesh\",\n  0xfb49,\n  \"shindageshhebrew\",\n  0xfb49,\n  \"shindageshshindot\",\n  0xfb2c,\n  \"shindageshshindothebrew\",\n  0xfb2c,\n  \"shindageshsindot\",\n  0xfb2d,\n  \"shindageshsindothebrew\",\n  0xfb2d,\n  \"shindothebrew\",\n  0x05c1,\n  \"shinhebrew\",\n  0x05e9,\n  \"shinshindot\",\n  0xfb2a,\n  \"shinshindothebrew\",\n  0xfb2a,\n  \"shinsindot\",\n  0xfb2b,\n  \"shinsindothebrew\",\n  0xfb2b,\n  \"shook\",\n  0x0282,\n  \"sigma\",\n  0x03c3,\n  \"sigma1\",\n  0x03c2,\n  \"sigmafinal\",\n  0x03c2,\n  \"sigmalunatesymbolgreek\",\n  0x03f2,\n  \"sihiragana\",\n  0x3057,\n  \"sikatakana\",\n  0x30b7,\n  \"sikatakanahalfwidth\",\n  0xff7c,\n  \"siluqhebrew\",\n  0x05bd,\n  \"siluqlefthebrew\",\n  0x05bd,\n  \"similar\",\n  0x223c,\n  \"sindothebrew\",\n  0x05c2,\n  \"siosacirclekorean\",\n  0x3274,\n  \"siosaparenkorean\",\n  0x3214,\n  \"sioscieuckorean\",\n  0x317e,\n  \"sioscirclekorean\",\n  0x3266,\n  \"sioskiyeokkorean\",\n  0x317a,\n  \"sioskorean\",\n  0x3145,\n  \"siosnieunkorean\",\n  0x317b,\n  \"siosparenkorean\",\n  0x3206,\n  \"siospieupkorean\",\n  0x317d,\n  \"siostikeutkorean\",\n  0x317c,\n  \"six\",\n  0x0036,\n  \"sixarabic\",\n  0x0666,\n  \"sixbengali\",\n  0x09ec,\n  \"sixcircle\",\n  0x2465,\n  \"sixcircleinversesansserif\",\n  0x278f,\n  \"sixdeva\",\n  0x096c,\n  \"sixgujarati\",\n  0x0aec,\n  \"sixgurmukhi\",\n  0x0a6c,\n  \"sixhackarabic\",\n  0x0666,\n  \"sixhangzhou\",\n  0x3026,\n  \"sixideographicparen\",\n  0x3225,\n  \"sixinferior\",\n  0x2086,\n  \"sixmonospace\",\n  0xff16,\n  \"sixoldstyle\",\n  0xf736,\n  \"sixparen\",\n  0x2479,\n  \"sixperiod\",\n  0x248d,\n  \"sixpersian\",\n  0x06f6,\n  \"sixroman\",\n  0x2175,\n  \"sixsuperior\",\n  0x2076,\n  \"sixteencircle\",\n  0x246f,\n  \"sixteencurrencydenominatorbengali\",\n  0x09f9,\n  \"sixteenparen\",\n  0x2483,\n  \"sixteenperiod\",\n  0x2497,\n  \"sixthai\",\n  0x0e56,\n  \"slash\",\n  0x002f,\n  \"slashmonospace\",\n  0xff0f,\n  \"slong\",\n  0x017f,\n  \"slongdotaccent\",\n  0x1e9b,\n  \"smileface\",\n  0x263a,\n  \"smonospace\",\n  0xff53,\n  \"sofpasuqhebrew\",\n  0x05c3,\n  \"softhyphen\",\n  0x00ad,\n  \"softsigncyrillic\",\n  0x044c,\n  \"sohiragana\",\n  0x305d,\n  \"sokatakana\",\n  0x30bd,\n  \"sokatakanahalfwidth\",\n  0xff7f,\n  \"soliduslongoverlaycmb\",\n  0x0338,\n  \"solidusshortoverlaycmb\",\n  0x0337,\n  \"sorusithai\",\n  0x0e29,\n  \"sosalathai\",\n  0x0e28,\n  \"sosothai\",\n  0x0e0b,\n  \"sosuathai\",\n  0x0e2a,\n  \"space\",\n  0x0020,\n  \"spacehackarabic\",\n  0x0020,\n  \"spade\",\n  0x2660,\n  \"spadesuitblack\",\n  0x2660,\n  \"spadesuitwhite\",\n  0x2664,\n  \"sparen\",\n  0x24ae,\n  \"squarebelowcmb\",\n  0x033b,\n  \"squarecc\",\n  0x33c4,\n  \"squarecm\",\n  0x339d,\n  \"squarediagonalcrosshatchfill\",\n  0x25a9,\n  \"squarehorizontalfill\",\n  0x25a4,\n  \"squarekg\",\n  0x338f,\n  \"squarekm\",\n  0x339e,\n  \"squarekmcapital\",\n  0x33ce,\n  \"squareln\",\n  0x33d1,\n  \"squarelog\",\n  0x33d2,\n  \"squaremg\",\n  0x338e,\n  \"squaremil\",\n  0x33d5,\n  \"squaremm\",\n  0x339c,\n  \"squaremsquared\",\n  0x33a1,\n  \"squareorthogonalcrosshatchfill\",\n  0x25a6,\n  \"squareupperlefttolowerrightfill\",\n  0x25a7,\n  \"squareupperrighttolowerleftfill\",\n  0x25a8,\n  \"squareverticalfill\",\n  0x25a5,\n  \"squarewhitewithsmallblack\",\n  0x25a3,\n  \"srsquare\",\n  0x33db,\n  \"ssabengali\",\n  0x09b7,\n  \"ssadeva\",\n  0x0937,\n  \"ssagujarati\",\n  0x0ab7,\n  \"ssangcieuckorean\",\n  0x3149,\n  \"ssanghieuhkorean\",\n  0x3185,\n  \"ssangieungkorean\",\n  0x3180,\n  \"ssangkiyeokkorean\",\n  0x3132,\n  \"ssangnieunkorean\",\n  0x3165,\n  \"ssangpieupkorean\",\n  0x3143,\n  \"ssangsioskorean\",\n  0x3146,\n  \"ssangtikeutkorean\",\n  0x3138,\n  \"ssuperior\",\n  0xf6f2,\n  \"sterling\",\n  0x00a3,\n  \"sterlingmonospace\",\n  0xffe1,\n  \"strokelongoverlaycmb\",\n  0x0336,\n  \"strokeshortoverlaycmb\",\n  0x0335,\n  \"subset\",\n  0x2282,\n  \"subsetnotequal\",\n  0x228a,\n  \"subsetorequal\",\n  0x2286,\n  \"succeeds\",\n  0x227b,\n  \"suchthat\",\n  0x220b,\n  \"suhiragana\",\n  0x3059,\n  \"sukatakana\",\n  0x30b9,\n  \"sukatakanahalfwidth\",\n  0xff7d,\n  \"sukunarabic\",\n  0x0652,\n  \"summation\",\n  0x2211,\n  \"sun\",\n  0x263c,\n  \"superset\",\n  0x2283,\n  \"supersetnotequal\",\n  0x228b,\n  \"supersetorequal\",\n  0x2287,\n  \"svsquare\",\n  0x33dc,\n  \"syouwaerasquare\",\n  0x337c,\n  \"t\",\n  0x0074,\n  \"tabengali\",\n  0x09a4,\n  \"tackdown\",\n  0x22a4,\n  \"tackleft\",\n  0x22a3,\n  \"tadeva\",\n  0x0924,\n  \"tagujarati\",\n  0x0aa4,\n  \"tagurmukhi\",\n  0x0a24,\n  \"taharabic\",\n  0x0637,\n  \"tahfinalarabic\",\n  0xfec2,\n  \"tahinitialarabic\",\n  0xfec3,\n  \"tahiragana\",\n  0x305f,\n  \"tahmedialarabic\",\n  0xfec4,\n  \"taisyouerasquare\",\n  0x337d,\n  \"takatakana\",\n  0x30bf,\n  \"takatakanahalfwidth\",\n  0xff80,\n  \"tatweelarabic\",\n  0x0640,\n  \"tau\",\n  0x03c4,\n  \"tav\",\n  0x05ea,\n  \"tavdages\",\n  0xfb4a,\n  \"tavdagesh\",\n  0xfb4a,\n  \"tavdageshhebrew\",\n  0xfb4a,\n  \"tavhebrew\",\n  0x05ea,\n  \"tbar\",\n  0x0167,\n  \"tbopomofo\",\n  0x310a,\n  \"tcaron\",\n  0x0165,\n  \"tccurl\",\n  0x02a8,\n  \"tcedilla\",\n  0x0163,\n  \"tcheharabic\",\n  0x0686,\n  \"tchehfinalarabic\",\n  0xfb7b,\n  \"tchehinitialarabic\",\n  0xfb7c,\n  \"tchehmedialarabic\",\n  0xfb7d,\n  \"tcircle\",\n  0x24e3,\n  \"tcircumflexbelow\",\n  0x1e71,\n  \"tcommaaccent\",\n  0x0163,\n  \"tdieresis\",\n  0x1e97,\n  \"tdotaccent\",\n  0x1e6b,\n  \"tdotbelow\",\n  0x1e6d,\n  \"tecyrillic\",\n  0x0442,\n  \"tedescendercyrillic\",\n  0x04ad,\n  \"teharabic\",\n  0x062a,\n  \"tehfinalarabic\",\n  0xfe96,\n  \"tehhahinitialarabic\",\n  0xfca2,\n  \"tehhahisolatedarabic\",\n  0xfc0c,\n  \"tehinitialarabic\",\n  0xfe97,\n  \"tehiragana\",\n  0x3066,\n  \"tehjeeminitialarabic\",\n  0xfca1,\n  \"tehjeemisolatedarabic\",\n  0xfc0b,\n  \"tehmarbutaarabic\",\n  0x0629,\n  \"tehmarbutafinalarabic\",\n  0xfe94,\n  \"tehmedialarabic\",\n  0xfe98,\n  \"tehmeeminitialarabic\",\n  0xfca4,\n  \"tehmeemisolatedarabic\",\n  0xfc0e,\n  \"tehnoonfinalarabic\",\n  0xfc73,\n  \"tekatakana\",\n  0x30c6,\n  \"tekatakanahalfwidth\",\n  0xff83,\n  \"telephone\",\n  0x2121,\n  \"telephoneblack\",\n  0x260e,\n  \"telishagedolahebrew\",\n  0x05a0,\n  \"telishaqetanahebrew\",\n  0x05a9,\n  \"tencircle\",\n  0x2469,\n  \"tenideographicparen\",\n  0x3229,\n  \"tenparen\",\n  0x247d,\n  \"tenperiod\",\n  0x2491,\n  \"tenroman\",\n  0x2179,\n  \"tesh\",\n  0x02a7,\n  \"tet\",\n  0x05d8,\n  \"tetdagesh\",\n  0xfb38,\n  \"tetdageshhebrew\",\n  0xfb38,\n  \"tethebrew\",\n  0x05d8,\n  \"tetsecyrillic\",\n  0x04b5,\n  \"tevirhebrew\",\n  0x059b,\n  \"tevirlefthebrew\",\n  0x059b,\n  \"thabengali\",\n  0x09a5,\n  \"thadeva\",\n  0x0925,\n  \"thagujarati\",\n  0x0aa5,\n  \"thagurmukhi\",\n  0x0a25,\n  \"thalarabic\",\n  0x0630,\n  \"thalfinalarabic\",\n  0xfeac,\n  \"thanthakhatlowleftthai\",\n  0xf898,\n  \"thanthakhatlowrightthai\",\n  0xf897,\n  \"thanthakhatthai\",\n  0x0e4c,\n  \"thanthakhatupperleftthai\",\n  0xf896,\n  \"theharabic\",\n  0x062b,\n  \"thehfinalarabic\",\n  0xfe9a,\n  \"thehinitialarabic\",\n  0xfe9b,\n  \"thehmedialarabic\",\n  0xfe9c,\n  \"thereexists\",\n  0x2203,\n  \"therefore\",\n  0x2234,\n  \"theta\",\n  0x03b8,\n  \"theta1\",\n  0x03d1,\n  \"thetasymbolgreek\",\n  0x03d1,\n  \"thieuthacirclekorean\",\n  0x3279,\n  \"thieuthaparenkorean\",\n  0x3219,\n  \"thieuthcirclekorean\",\n  0x326b,\n  \"thieuthkorean\",\n  0x314c,\n  \"thieuthparenkorean\",\n  0x320b,\n  \"thirteencircle\",\n  0x246c,\n  \"thirteenparen\",\n  0x2480,\n  \"thirteenperiod\",\n  0x2494,\n  \"thonangmonthothai\",\n  0x0e11,\n  \"thook\",\n  0x01ad,\n  \"thophuthaothai\",\n  0x0e12,\n  \"thorn\",\n  0x00fe,\n  \"thothahanthai\",\n  0x0e17,\n  \"thothanthai\",\n  0x0e10,\n  \"thothongthai\",\n  0x0e18,\n  \"thothungthai\",\n  0x0e16,\n  \"thousandcyrillic\",\n  0x0482,\n  \"thousandsseparatorarabic\",\n  0x066c,\n  \"thousandsseparatorpersian\",\n  0x066c,\n  \"three\",\n  0x0033,\n  \"threearabic\",\n  0x0663,\n  \"threebengali\",\n  0x09e9,\n  \"threecircle\",\n  0x2462,\n  \"threecircleinversesansserif\",\n  0x278c,\n  \"threedeva\",\n  0x0969,\n  \"threeeighths\",\n  0x215c,\n  \"threegujarati\",\n  0x0ae9,\n  \"threegurmukhi\",\n  0x0a69,\n  \"threehackarabic\",\n  0x0663,\n  \"threehangzhou\",\n  0x3023,\n  \"threeideographicparen\",\n  0x3222,\n  \"threeinferior\",\n  0x2083,\n  \"threemonospace\",\n  0xff13,\n  \"threenumeratorbengali\",\n  0x09f6,\n  \"threeoldstyle\",\n  0xf733,\n  \"threeparen\",\n  0x2476,\n  \"threeperiod\",\n  0x248a,\n  \"threepersian\",\n  0x06f3,\n  \"threequarters\",\n  0x00be,\n  \"threequartersemdash\",\n  0xf6de,\n  \"threeroman\",\n  0x2172,\n  \"threesuperior\",\n  0x00b3,\n  \"threethai\",\n  0x0e53,\n  \"thzsquare\",\n  0x3394,\n  \"tihiragana\",\n  0x3061,\n  \"tikatakana\",\n  0x30c1,\n  \"tikatakanahalfwidth\",\n  0xff81,\n  \"tikeutacirclekorean\",\n  0x3270,\n  \"tikeutaparenkorean\",\n  0x3210,\n  \"tikeutcirclekorean\",\n  0x3262,\n  \"tikeutkorean\",\n  0x3137,\n  \"tikeutparenkorean\",\n  0x3202,\n  \"tilde\",\n  0x02dc,\n  \"tildebelowcmb\",\n  0x0330,\n  \"tildecmb\",\n  0x0303,\n  \"tildecomb\",\n  0x0303,\n  \"tildedoublecmb\",\n  0x0360,\n  \"tildeoperator\",\n  0x223c,\n  \"tildeoverlaycmb\",\n  0x0334,\n  \"tildeverticalcmb\",\n  0x033e,\n  \"timescircle\",\n  0x2297,\n  \"tipehahebrew\",\n  0x0596,\n  \"tipehalefthebrew\",\n  0x0596,\n  \"tippigurmukhi\",\n  0x0a70,\n  \"titlocyrilliccmb\",\n  0x0483,\n  \"tiwnarmenian\",\n  0x057f,\n  \"tlinebelow\",\n  0x1e6f,\n  \"tmonospace\",\n  0xff54,\n  \"toarmenian\",\n  0x0569,\n  \"tohiragana\",\n  0x3068,\n  \"tokatakana\",\n  0x30c8,\n  \"tokatakanahalfwidth\",\n  0xff84,\n  \"tonebarextrahighmod\",\n  0x02e5,\n  \"tonebarextralowmod\",\n  0x02e9,\n  \"tonebarhighmod\",\n  0x02e6,\n  \"tonebarlowmod\",\n  0x02e8,\n  \"tonebarmidmod\",\n  0x02e7,\n  \"tonefive\",\n  0x01bd,\n  \"tonesix\",\n  0x0185,\n  \"tonetwo\",\n  0x01a8,\n  \"tonos\",\n  0x0384,\n  \"tonsquare\",\n  0x3327,\n  \"topatakthai\",\n  0x0e0f,\n  \"tortoiseshellbracketleft\",\n  0x3014,\n  \"tortoiseshellbracketleftsmall\",\n  0xfe5d,\n  \"tortoiseshellbracketleftvertical\",\n  0xfe39,\n  \"tortoiseshellbracketright\",\n  0x3015,\n  \"tortoiseshellbracketrightsmall\",\n  0xfe5e,\n  \"tortoiseshellbracketrightvertical\",\n  0xfe3a,\n  \"totaothai\",\n  0x0e15,\n  \"tpalatalhook\",\n  0x01ab,\n  \"tparen\",\n  0x24af,\n  \"trademark\",\n  0x2122,\n  \"trademarksans\",\n  0xf8ea,\n  \"trademarkserif\",\n  0xf6db,\n  \"tretroflexhook\",\n  0x0288,\n  \"triagdn\",\n  0x25bc,\n  \"triaglf\",\n  0x25c4,\n  \"triagrt\",\n  0x25ba,\n  \"triagup\",\n  0x25b2,\n  \"ts\",\n  0x02a6,\n  \"tsadi\",\n  0x05e6,\n  \"tsadidagesh\",\n  0xfb46,\n  \"tsadidageshhebrew\",\n  0xfb46,\n  \"tsadihebrew\",\n  0x05e6,\n  \"tsecyrillic\",\n  0x0446,\n  \"tsere\",\n  0x05b5,\n  \"tsere12\",\n  0x05b5,\n  \"tsere1e\",\n  0x05b5,\n  \"tsere2b\",\n  0x05b5,\n  \"tserehebrew\",\n  0x05b5,\n  \"tserenarrowhebrew\",\n  0x05b5,\n  \"tserequarterhebrew\",\n  0x05b5,\n  \"tserewidehebrew\",\n  0x05b5,\n  \"tshecyrillic\",\n  0x045b,\n  \"tsuperior\",\n  0xf6f3,\n  \"ttabengali\",\n  0x099f,\n  \"ttadeva\",\n  0x091f,\n  \"ttagujarati\",\n  0x0a9f,\n  \"ttagurmukhi\",\n  0x0a1f,\n  \"tteharabic\",\n  0x0679,\n  \"ttehfinalarabic\",\n  0xfb67,\n  \"ttehinitialarabic\",\n  0xfb68,\n  \"ttehmedialarabic\",\n  0xfb69,\n  \"tthabengali\",\n  0x09a0,\n  \"tthadeva\",\n  0x0920,\n  \"tthagujarati\",\n  0x0aa0,\n  \"tthagurmukhi\",\n  0x0a20,\n  \"tturned\",\n  0x0287,\n  \"tuhiragana\",\n  0x3064,\n  \"tukatakana\",\n  0x30c4,\n  \"tukatakanahalfwidth\",\n  0xff82,\n  \"tusmallhiragana\",\n  0x3063,\n  \"tusmallkatakana\",\n  0x30c3,\n  \"tusmallkatakanahalfwidth\",\n  0xff6f,\n  \"twelvecircle\",\n  0x246b,\n  \"twelveparen\",\n  0x247f,\n  \"twelveperiod\",\n  0x2493,\n  \"twelveroman\",\n  0x217b,\n  \"twentycircle\",\n  0x2473,\n  \"twentyhangzhou\",\n  0x5344,\n  \"twentyparen\",\n  0x2487,\n  \"twentyperiod\",\n  0x249b,\n  \"two\",\n  0x0032,\n  \"twoarabic\",\n  0x0662,\n  \"twobengali\",\n  0x09e8,\n  \"twocircle\",\n  0x2461,\n  \"twocircleinversesansserif\",\n  0x278b,\n  \"twodeva\",\n  0x0968,\n  \"twodotenleader\",\n  0x2025,\n  \"twodotleader\",\n  0x2025,\n  \"twodotleadervertical\",\n  0xfe30,\n  \"twogujarati\",\n  0x0ae8,\n  \"twogurmukhi\",\n  0x0a68,\n  \"twohackarabic\",\n  0x0662,\n  \"twohangzhou\",\n  0x3022,\n  \"twoideographicparen\",\n  0x3221,\n  \"twoinferior\",\n  0x2082,\n  \"twomonospace\",\n  0xff12,\n  \"twonumeratorbengali\",\n  0x09f5,\n  \"twooldstyle\",\n  0xf732,\n  \"twoparen\",\n  0x2475,\n  \"twoperiod\",\n  0x2489,\n  \"twopersian\",\n  0x06f2,\n  \"tworoman\",\n  0x2171,\n  \"twostroke\",\n  0x01bb,\n  \"twosuperior\",\n  0x00b2,\n  \"twothai\",\n  0x0e52,\n  \"twothirds\",\n  0x2154,\n  \"u\",\n  0x0075,\n  \"uacute\",\n  0x00fa,\n  \"ubar\",\n  0x0289,\n  \"ubengali\",\n  0x0989,\n  \"ubopomofo\",\n  0x3128,\n  \"ubreve\",\n  0x016d,\n  \"ucaron\",\n  0x01d4,\n  \"ucircle\",\n  0x24e4,\n  \"ucircumflex\",\n  0x00fb,\n  \"ucircumflexbelow\",\n  0x1e77,\n  \"ucyrillic\",\n  0x0443,\n  \"udattadeva\",\n  0x0951,\n  \"udblacute\",\n  0x0171,\n  \"udblgrave\",\n  0x0215,\n  \"udeva\",\n  0x0909,\n  \"udieresis\",\n  0x00fc,\n  \"udieresisacute\",\n  0x01d8,\n  \"udieresisbelow\",\n  0x1e73,\n  \"udieresiscaron\",\n  0x01da,\n  \"udieresiscyrillic\",\n  0x04f1,\n  \"udieresisgrave\",\n  0x01dc,\n  \"udieresismacron\",\n  0x01d6,\n  \"udotbelow\",\n  0x1ee5,\n  \"ugrave\",\n  0x00f9,\n  \"ugujarati\",\n  0x0a89,\n  \"ugurmukhi\",\n  0x0a09,\n  \"uhiragana\",\n  0x3046,\n  \"uhookabove\",\n  0x1ee7,\n  \"uhorn\",\n  0x01b0,\n  \"uhornacute\",\n  0x1ee9,\n  \"uhorndotbelow\",\n  0x1ef1,\n  \"uhorngrave\",\n  0x1eeb,\n  \"uhornhookabove\",\n  0x1eed,\n  \"uhorntilde\",\n  0x1eef,\n  \"uhungarumlaut\",\n  0x0171,\n  \"uhungarumlautcyrillic\",\n  0x04f3,\n  \"uinvertedbreve\",\n  0x0217,\n  \"ukatakana\",\n  0x30a6,\n  \"ukatakanahalfwidth\",\n  0xff73,\n  \"ukcyrillic\",\n  0x0479,\n  \"ukorean\",\n  0x315c,\n  \"umacron\",\n  0x016b,\n  \"umacroncyrillic\",\n  0x04ef,\n  \"umacrondieresis\",\n  0x1e7b,\n  \"umatragurmukhi\",\n  0x0a41,\n  \"umonospace\",\n  0xff55,\n  \"underscore\",\n  0x005f,\n  \"underscoredbl\",\n  0x2017,\n  \"underscoremonospace\",\n  0xff3f,\n  \"underscorevertical\",\n  0xfe33,\n  \"underscorewavy\",\n  0xfe4f,\n  \"union\",\n  0x222a,\n  \"universal\",\n  0x2200,\n  \"uogonek\",\n  0x0173,\n  \"uparen\",\n  0x24b0,\n  \"upblock\",\n  0x2580,\n  \"upperdothebrew\",\n  0x05c4,\n  \"upsilon\",\n  0x03c5,\n  \"upsilondieresis\",\n  0x03cb,\n  \"upsilondieresistonos\",\n  0x03b0,\n  \"upsilonlatin\",\n  0x028a,\n  \"upsilontonos\",\n  0x03cd,\n  \"uptackbelowcmb\",\n  0x031d,\n  \"uptackmod\",\n  0x02d4,\n  \"uragurmukhi\",\n  0x0a73,\n  \"uring\",\n  0x016f,\n  \"ushortcyrillic\",\n  0x045e,\n  \"usmallhiragana\",\n  0x3045,\n  \"usmallkatakana\",\n  0x30a5,\n  \"usmallkatakanahalfwidth\",\n  0xff69,\n  \"ustraightcyrillic\",\n  0x04af,\n  \"ustraightstrokecyrillic\",\n  0x04b1,\n  \"utilde\",\n  0x0169,\n  \"utildeacute\",\n  0x1e79,\n  \"utildebelow\",\n  0x1e75,\n  \"uubengali\",\n  0x098a,\n  \"uudeva\",\n  0x090a,\n  \"uugujarati\",\n  0x0a8a,\n  \"uugurmukhi\",\n  0x0a0a,\n  \"uumatragurmukhi\",\n  0x0a42,\n  \"uuvowelsignbengali\",\n  0x09c2,\n  \"uuvowelsigndeva\",\n  0x0942,\n  \"uuvowelsigngujarati\",\n  0x0ac2,\n  \"uvowelsignbengali\",\n  0x09c1,\n  \"uvowelsigndeva\",\n  0x0941,\n  \"uvowelsigngujarati\",\n  0x0ac1,\n  \"v\",\n  0x0076,\n  \"vadeva\",\n  0x0935,\n  \"vagujarati\",\n  0x0ab5,\n  \"vagurmukhi\",\n  0x0a35,\n  \"vakatakana\",\n  0x30f7,\n  \"vav\",\n  0x05d5,\n  \"vavdagesh\",\n  0xfb35,\n  \"vavdagesh65\",\n  0xfb35,\n  \"vavdageshhebrew\",\n  0xfb35,\n  \"vavhebrew\",\n  0x05d5,\n  \"vavholam\",\n  0xfb4b,\n  \"vavholamhebrew\",\n  0xfb4b,\n  \"vavvavhebrew\",\n  0x05f0,\n  \"vavyodhebrew\",\n  0x05f1,\n  \"vcircle\",\n  0x24e5,\n  \"vdotbelow\",\n  0x1e7f,\n  \"vecyrillic\",\n  0x0432,\n  \"veharabic\",\n  0x06a4,\n  \"vehfinalarabic\",\n  0xfb6b,\n  \"vehinitialarabic\",\n  0xfb6c,\n  \"vehmedialarabic\",\n  0xfb6d,\n  \"vekatakana\",\n  0x30f9,\n  \"venus\",\n  0x2640,\n  \"verticalbar\",\n  0x007c,\n  \"verticallineabovecmb\",\n  0x030d,\n  \"verticallinebelowcmb\",\n  0x0329,\n  \"verticallinelowmod\",\n  0x02cc,\n  \"verticallinemod\",\n  0x02c8,\n  \"vewarmenian\",\n  0x057e,\n  \"vhook\",\n  0x028b,\n  \"vikatakana\",\n  0x30f8,\n  \"viramabengali\",\n  0x09cd,\n  \"viramadeva\",\n  0x094d,\n  \"viramagujarati\",\n  0x0acd,\n  \"visargabengali\",\n  0x0983,\n  \"visargadeva\",\n  0x0903,\n  \"visargagujarati\",\n  0x0a83,\n  \"vmonospace\",\n  0xff56,\n  \"voarmenian\",\n  0x0578,\n  \"voicediterationhiragana\",\n  0x309e,\n  \"voicediterationkatakana\",\n  0x30fe,\n  \"voicedmarkkana\",\n  0x309b,\n  \"voicedmarkkanahalfwidth\",\n  0xff9e,\n  \"vokatakana\",\n  0x30fa,\n  \"vparen\",\n  0x24b1,\n  \"vtilde\",\n  0x1e7d,\n  \"vturned\",\n  0x028c,\n  \"vuhiragana\",\n  0x3094,\n  \"vukatakana\",\n  0x30f4,\n  \"w\",\n  0x0077,\n  \"wacute\",\n  0x1e83,\n  \"waekorean\",\n  0x3159,\n  \"wahiragana\",\n  0x308f,\n  \"wakatakana\",\n  0x30ef,\n  \"wakatakanahalfwidth\",\n  0xff9c,\n  \"wakorean\",\n  0x3158,\n  \"wasmallhiragana\",\n  0x308e,\n  \"wasmallkatakana\",\n  0x30ee,\n  \"wattosquare\",\n  0x3357,\n  \"wavedash\",\n  0x301c,\n  \"wavyunderscorevertical\",\n  0xfe34,\n  \"wawarabic\",\n  0x0648,\n  \"wawfinalarabic\",\n  0xfeee,\n  \"wawhamzaabovearabic\",\n  0x0624,\n  \"wawhamzaabovefinalarabic\",\n  0xfe86,\n  \"wbsquare\",\n  0x33dd,\n  \"wcircle\",\n  0x24e6,\n  \"wcircumflex\",\n  0x0175,\n  \"wdieresis\",\n  0x1e85,\n  \"wdotaccent\",\n  0x1e87,\n  \"wdotbelow\",\n  0x1e89,\n  \"wehiragana\",\n  0x3091,\n  \"weierstrass\",\n  0x2118,\n  \"wekatakana\",\n  0x30f1,\n  \"wekorean\",\n  0x315e,\n  \"weokorean\",\n  0x315d,\n  \"wgrave\",\n  0x1e81,\n  \"whitebullet\",\n  0x25e6,\n  \"whitecircle\",\n  0x25cb,\n  \"whitecircleinverse\",\n  0x25d9,\n  \"whitecornerbracketleft\",\n  0x300e,\n  \"whitecornerbracketleftvertical\",\n  0xfe43,\n  \"whitecornerbracketright\",\n  0x300f,\n  \"whitecornerbracketrightvertical\",\n  0xfe44,\n  \"whitediamond\",\n  0x25c7,\n  \"whitediamondcontainingblacksmalldiamond\",\n  0x25c8,\n  \"whitedownpointingsmalltriangle\",\n  0x25bf,\n  \"whitedownpointingtriangle\",\n  0x25bd,\n  \"whiteleftpointingsmalltriangle\",\n  0x25c3,\n  \"whiteleftpointingtriangle\",\n  0x25c1,\n  \"whitelenticularbracketleft\",\n  0x3016,\n  \"whitelenticularbracketright\",\n  0x3017,\n  \"whiterightpointingsmalltriangle\",\n  0x25b9,\n  \"whiterightpointingtriangle\",\n  0x25b7,\n  \"whitesmallsquare\",\n  0x25ab,\n  \"whitesmilingface\",\n  0x263a,\n  \"whitesquare\",\n  0x25a1,\n  \"whitestar\",\n  0x2606,\n  \"whitetelephone\",\n  0x260f,\n  \"whitetortoiseshellbracketleft\",\n  0x3018,\n  \"whitetortoiseshellbracketright\",\n  0x3019,\n  \"whiteuppointingsmalltriangle\",\n  0x25b5,\n  \"whiteuppointingtriangle\",\n  0x25b3,\n  \"wihiragana\",\n  0x3090,\n  \"wikatakana\",\n  0x30f0,\n  \"wikorean\",\n  0x315f,\n  \"wmonospace\",\n  0xff57,\n  \"wohiragana\",\n  0x3092,\n  \"wokatakana\",\n  0x30f2,\n  \"wokatakanahalfwidth\",\n  0xff66,\n  \"won\",\n  0x20a9,\n  \"wonmonospace\",\n  0xffe6,\n  \"wowaenthai\",\n  0x0e27,\n  \"wparen\",\n  0x24b2,\n  \"wring\",\n  0x1e98,\n  \"wsuperior\",\n  0x02b7,\n  \"wturned\",\n  0x028d,\n  \"wynn\",\n  0x01bf,\n  \"x\",\n  0x0078,\n  \"xabovecmb\",\n  0x033d,\n  \"xbopomofo\",\n  0x3112,\n  \"xcircle\",\n  0x24e7,\n  \"xdieresis\",\n  0x1e8d,\n  \"xdotaccent\",\n  0x1e8b,\n  \"xeharmenian\",\n  0x056d,\n  \"xi\",\n  0x03be,\n  \"xmonospace\",\n  0xff58,\n  \"xparen\",\n  0x24b3,\n  \"xsuperior\",\n  0x02e3,\n  \"y\",\n  0x0079,\n  \"yaadosquare\",\n  0x334e,\n  \"yabengali\",\n  0x09af,\n  \"yacute\",\n  0x00fd,\n  \"yadeva\",\n  0x092f,\n  \"yaekorean\",\n  0x3152,\n  \"yagujarati\",\n  0x0aaf,\n  \"yagurmukhi\",\n  0x0a2f,\n  \"yahiragana\",\n  0x3084,\n  \"yakatakana\",\n  0x30e4,\n  \"yakatakanahalfwidth\",\n  0xff94,\n  \"yakorean\",\n  0x3151,\n  \"yamakkanthai\",\n  0x0e4e,\n  \"yasmallhiragana\",\n  0x3083,\n  \"yasmallkatakana\",\n  0x30e3,\n  \"yasmallkatakanahalfwidth\",\n  0xff6c,\n  \"yatcyrillic\",\n  0x0463,\n  \"ycircle\",\n  0x24e8,\n  \"ycircumflex\",\n  0x0177,\n  \"ydieresis\",\n  0x00ff,\n  \"ydotaccent\",\n  0x1e8f,\n  \"ydotbelow\",\n  0x1ef5,\n  \"yeharabic\",\n  0x064a,\n  \"yehbarreearabic\",\n  0x06d2,\n  \"yehbarreefinalarabic\",\n  0xfbaf,\n  \"yehfinalarabic\",\n  0xfef2,\n  \"yehhamzaabovearabic\",\n  0x0626,\n  \"yehhamzaabovefinalarabic\",\n  0xfe8a,\n  \"yehhamzaaboveinitialarabic\",\n  0xfe8b,\n  \"yehhamzaabovemedialarabic\",\n  0xfe8c,\n  \"yehinitialarabic\",\n  0xfef3,\n  \"yehmedialarabic\",\n  0xfef4,\n  \"yehmeeminitialarabic\",\n  0xfcdd,\n  \"yehmeemisolatedarabic\",\n  0xfc58,\n  \"yehnoonfinalarabic\",\n  0xfc94,\n  \"yehthreedotsbelowarabic\",\n  0x06d1,\n  \"yekorean\",\n  0x3156,\n  \"yen\",\n  0x00a5,\n  \"yenmonospace\",\n  0xffe5,\n  \"yeokorean\",\n  0x3155,\n  \"yeorinhieuhkorean\",\n  0x3186,\n  \"yerahbenyomohebrew\",\n  0x05aa,\n  \"yerahbenyomolefthebrew\",\n  0x05aa,\n  \"yericyrillic\",\n  0x044b,\n  \"yerudieresiscyrillic\",\n  0x04f9,\n  \"yesieungkorean\",\n  0x3181,\n  \"yesieungpansioskorean\",\n  0x3183,\n  \"yesieungsioskorean\",\n  0x3182,\n  \"yetivhebrew\",\n  0x059a,\n  \"ygrave\",\n  0x1ef3,\n  \"yhook\",\n  0x01b4,\n  \"yhookabove\",\n  0x1ef7,\n  \"yiarmenian\",\n  0x0575,\n  \"yicyrillic\",\n  0x0457,\n  \"yikorean\",\n  0x3162,\n  \"yinyang\",\n  0x262f,\n  \"yiwnarmenian\",\n  0x0582,\n  \"ymonospace\",\n  0xff59,\n  \"yod\",\n  0x05d9,\n  \"yoddagesh\",\n  0xfb39,\n  \"yoddageshhebrew\",\n  0xfb39,\n  \"yodhebrew\",\n  0x05d9,\n  \"yodyodhebrew\",\n  0x05f2,\n  \"yodyodpatahhebrew\",\n  0xfb1f,\n  \"yohiragana\",\n  0x3088,\n  \"yoikorean\",\n  0x3189,\n  \"yokatakana\",\n  0x30e8,\n  \"yokatakanahalfwidth\",\n  0xff96,\n  \"yokorean\",\n  0x315b,\n  \"yosmallhiragana\",\n  0x3087,\n  \"yosmallkatakana\",\n  0x30e7,\n  \"yosmallkatakanahalfwidth\",\n  0xff6e,\n  \"yotgreek\",\n  0x03f3,\n  \"yoyaekorean\",\n  0x3188,\n  \"yoyakorean\",\n  0x3187,\n  \"yoyakthai\",\n  0x0e22,\n  \"yoyingthai\",\n  0x0e0d,\n  \"yparen\",\n  0x24b4,\n  \"ypogegrammeni\",\n  0x037a,\n  \"ypogegrammenigreekcmb\",\n  0x0345,\n  \"yr\",\n  0x01a6,\n  \"yring\",\n  0x1e99,\n  \"ysuperior\",\n  0x02b8,\n  \"ytilde\",\n  0x1ef9,\n  \"yturned\",\n  0x028e,\n  \"yuhiragana\",\n  0x3086,\n  \"yuikorean\",\n  0x318c,\n  \"yukatakana\",\n  0x30e6,\n  \"yukatakanahalfwidth\",\n  0xff95,\n  \"yukorean\",\n  0x3160,\n  \"yusbigcyrillic\",\n  0x046b,\n  \"yusbigiotifiedcyrillic\",\n  0x046d,\n  \"yuslittlecyrillic\",\n  0x0467,\n  \"yuslittleiotifiedcyrillic\",\n  0x0469,\n  \"yusmallhiragana\",\n  0x3085,\n  \"yusmallkatakana\",\n  0x30e5,\n  \"yusmallkatakanahalfwidth\",\n  0xff6d,\n  \"yuyekorean\",\n  0x318b,\n  \"yuyeokorean\",\n  0x318a,\n  \"yyabengali\",\n  0x09df,\n  \"yyadeva\",\n  0x095f,\n  \"z\",\n  0x007a,\n  \"zaarmenian\",\n  0x0566,\n  \"zacute\",\n  0x017a,\n  \"zadeva\",\n  0x095b,\n  \"zagurmukhi\",\n  0x0a5b,\n  \"zaharabic\",\n  0x0638,\n  \"zahfinalarabic\",\n  0xfec6,\n  \"zahinitialarabic\",\n  0xfec7,\n  \"zahiragana\",\n  0x3056,\n  \"zahmedialarabic\",\n  0xfec8,\n  \"zainarabic\",\n  0x0632,\n  \"zainfinalarabic\",\n  0xfeb0,\n  \"zakatakana\",\n  0x30b6,\n  \"zaqefgadolhebrew\",\n  0x0595,\n  \"zaqefqatanhebrew\",\n  0x0594,\n  \"zarqahebrew\",\n  0x0598,\n  \"zayin\",\n  0x05d6,\n  \"zayindagesh\",\n  0xfb36,\n  \"zayindageshhebrew\",\n  0xfb36,\n  \"zayinhebrew\",\n  0x05d6,\n  \"zbopomofo\",\n  0x3117,\n  \"zcaron\",\n  0x017e,\n  \"zcircle\",\n  0x24e9,\n  \"zcircumflex\",\n  0x1e91,\n  \"zcurl\",\n  0x0291,\n  \"zdot\",\n  0x017c,\n  \"zdotaccent\",\n  0x017c,\n  \"zdotbelow\",\n  0x1e93,\n  \"zecyrillic\",\n  0x0437,\n  \"zedescendercyrillic\",\n  0x0499,\n  \"zedieresiscyrillic\",\n  0x04df,\n  \"zehiragana\",\n  0x305c,\n  \"zekatakana\",\n  0x30bc,\n  \"zero\",\n  0x0030,\n  \"zeroarabic\",\n  0x0660,\n  \"zerobengali\",\n  0x09e6,\n  \"zerodeva\",\n  0x0966,\n  \"zerogujarati\",\n  0x0ae6,\n  \"zerogurmukhi\",\n  0x0a66,\n  \"zerohackarabic\",\n  0x0660,\n  \"zeroinferior\",\n  0x2080,\n  \"zeromonospace\",\n  0xff10,\n  \"zerooldstyle\",\n  0xf730,\n  \"zeropersian\",\n  0x06f0,\n  \"zerosuperior\",\n  0x2070,\n  \"zerothai\",\n  0x0e50,\n  \"zerowidthjoiner\",\n  0xfeff,\n  \"zerowidthnonjoiner\",\n  0x200c,\n  \"zerowidthspace\",\n  0x200b,\n  \"zeta\",\n  0x03b6,\n  \"zhbopomofo\",\n  0x3113,\n  \"zhearmenian\",\n  0x056a,\n  \"zhebrevecyrillic\",\n  0x04c2,\n  \"zhecyrillic\",\n  0x0436,\n  \"zhedescendercyrillic\",\n  0x0497,\n  \"zhedieresiscyrillic\",\n  0x04dd,\n  \"zihiragana\",\n  0x3058,\n  \"zikatakana\",\n  0x30b8,\n  \"zinorhebrew\",\n  0x05ae,\n  \"zlinebelow\",\n  0x1e95,\n  \"zmonospace\",\n  0xff5a,\n  \"zohiragana\",\n  0x305e,\n  \"zokatakana\",\n  0x30be,\n  \"zparen\",\n  0x24b5,\n  \"zretroflexhook\",\n  0x0290,\n  \"zstroke\",\n  0x01b6,\n  \"zuhiragana\",\n  0x305a,\n  \"zukatakana\",\n  0x30ba,\n  \".notdef\",\n  0x0000,\n  \"angbracketleftbig\",\n  0x2329,\n  \"angbracketleftBig\",\n  0x2329,\n  \"angbracketleftbigg\",\n  0x2329,\n  \"angbracketleftBigg\",\n  0x2329,\n  \"angbracketrightBig\",\n  0x232a,\n  \"angbracketrightbig\",\n  0x232a,\n  \"angbracketrightBigg\",\n  0x232a,\n  \"angbracketrightbigg\",\n  0x232a,\n  \"arrowhookleft\",\n  0x21aa,\n  \"arrowhookright\",\n  0x21a9,\n  \"arrowlefttophalf\",\n  0x21bc,\n  \"arrowleftbothalf\",\n  0x21bd,\n  \"arrownortheast\",\n  0x2197,\n  \"arrownorthwest\",\n  0x2196,\n  \"arrowrighttophalf\",\n  0x21c0,\n  \"arrowrightbothalf\",\n  0x21c1,\n  \"arrowsoutheast\",\n  0x2198,\n  \"arrowsouthwest\",\n  0x2199,\n  \"backslashbig\",\n  0x2216,\n  \"backslashBig\",\n  0x2216,\n  \"backslashBigg\",\n  0x2216,\n  \"backslashbigg\",\n  0x2216,\n  \"bardbl\",\n  0x2016,\n  \"bracehtipdownleft\",\n  0xfe37,\n  \"bracehtipdownright\",\n  0xfe37,\n  \"bracehtipupleft\",\n  0xfe38,\n  \"bracehtipupright\",\n  0xfe38,\n  \"braceleftBig\",\n  0x007b,\n  \"braceleftbig\",\n  0x007b,\n  \"braceleftbigg\",\n  0x007b,\n  \"braceleftBigg\",\n  0x007b,\n  \"bracerightBig\",\n  0x007d,\n  \"bracerightbig\",\n  0x007d,\n  \"bracerightbigg\",\n  0x007d,\n  \"bracerightBigg\",\n  0x007d,\n  \"bracketleftbig\",\n  0x005b,\n  \"bracketleftBig\",\n  0x005b,\n  \"bracketleftbigg\",\n  0x005b,\n  \"bracketleftBigg\",\n  0x005b,\n  \"bracketrightBig\",\n  0x005d,\n  \"bracketrightbig\",\n  0x005d,\n  \"bracketrightbigg\",\n  0x005d,\n  \"bracketrightBigg\",\n  0x005d,\n  \"ceilingleftbig\",\n  0x2308,\n  \"ceilingleftBig\",\n  0x2308,\n  \"ceilingleftBigg\",\n  0x2308,\n  \"ceilingleftbigg\",\n  0x2308,\n  \"ceilingrightbig\",\n  0x2309,\n  \"ceilingrightBig\",\n  0x2309,\n  \"ceilingrightbigg\",\n  0x2309,\n  \"ceilingrightBigg\",\n  0x2309,\n  \"circledotdisplay\",\n  0x2299,\n  \"circledottext\",\n  0x2299,\n  \"circlemultiplydisplay\",\n  0x2297,\n  \"circlemultiplytext\",\n  0x2297,\n  \"circleplusdisplay\",\n  0x2295,\n  \"circleplustext\",\n  0x2295,\n  \"contintegraldisplay\",\n  0x222e,\n  \"contintegraltext\",\n  0x222e,\n  \"coproductdisplay\",\n  0x2210,\n  \"coproducttext\",\n  0x2210,\n  \"floorleftBig\",\n  0x230a,\n  \"floorleftbig\",\n  0x230a,\n  \"floorleftbigg\",\n  0x230a,\n  \"floorleftBigg\",\n  0x230a,\n  \"floorrightbig\",\n  0x230b,\n  \"floorrightBig\",\n  0x230b,\n  \"floorrightBigg\",\n  0x230b,\n  \"floorrightbigg\",\n  0x230b,\n  \"hatwide\",\n  0x0302,\n  \"hatwider\",\n  0x0302,\n  \"hatwidest\",\n  0x0302,\n  \"intercal\",\n  0x1d40,\n  \"integraldisplay\",\n  0x222b,\n  \"integraltext\",\n  0x222b,\n  \"intersectiondisplay\",\n  0x22c2,\n  \"intersectiontext\",\n  0x22c2,\n  \"logicalanddisplay\",\n  0x2227,\n  \"logicalandtext\",\n  0x2227,\n  \"logicalordisplay\",\n  0x2228,\n  \"logicalortext\",\n  0x2228,\n  \"parenleftBig\",\n  0x0028,\n  \"parenleftbig\",\n  0x0028,\n  \"parenleftBigg\",\n  0x0028,\n  \"parenleftbigg\",\n  0x0028,\n  \"parenrightBig\",\n  0x0029,\n  \"parenrightbig\",\n  0x0029,\n  \"parenrightBigg\",\n  0x0029,\n  \"parenrightbigg\",\n  0x0029,\n  \"prime\",\n  0x2032,\n  \"productdisplay\",\n  0x220f,\n  \"producttext\",\n  0x220f,\n  \"radicalbig\",\n  0x221a,\n  \"radicalBig\",\n  0x221a,\n  \"radicalBigg\",\n  0x221a,\n  \"radicalbigg\",\n  0x221a,\n  \"radicalbt\",\n  0x221a,\n  \"radicaltp\",\n  0x221a,\n  \"radicalvertex\",\n  0x221a,\n  \"slashbig\",\n  0x002f,\n  \"slashBig\",\n  0x002f,\n  \"slashBigg\",\n  0x002f,\n  \"slashbigg\",\n  0x002f,\n  \"summationdisplay\",\n  0x2211,\n  \"summationtext\",\n  0x2211,\n  \"tildewide\",\n  0x02dc,\n  \"tildewider\",\n  0x02dc,\n  \"tildewidest\",\n  0x02dc,\n  \"uniondisplay\",\n  0x22c3,\n  \"unionmultidisplay\",\n  0x228e,\n  \"unionmultitext\",\n  0x228e,\n  \"unionsqdisplay\",\n  0x2294,\n  \"unionsqtext\",\n  0x2294,\n  \"uniontext\",\n  0x22c3,\n  \"vextenddouble\",\n  0x2225,\n  \"vextendsingle\",\n  0x2223\n ];\n});\nconst getDingbatsGlyphsUnicode = (0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.getArrayLookupTableFactory)(function () {\n return [\n  \"space\",\n  0x0020,\n  \"a1\",\n  0x2701,\n  \"a2\",\n  0x2702,\n  \"a202\",\n  0x2703,\n  \"a3\",\n  0x2704,\n  \"a4\",\n  0x260e,\n  \"a5\",\n  0x2706,\n  \"a119\",\n  0x2707,\n  \"a118\",\n  0x2708,\n  \"a117\",\n  0x2709,\n  \"a11\",\n  0x261b,\n  \"a12\",\n  0x261e,\n  \"a13\",\n  0x270c,\n  \"a14\",\n  0x270d,\n  \"a15\",\n  0x270e,\n  \"a16\",\n  0x270f,\n  \"a105\",\n  0x2710,\n  \"a17\",\n  0x2711,\n  \"a18\",\n  0x2712,\n  \"a19\",\n  0x2713,\n  \"a20\",\n  0x2714,\n  \"a21\",\n  0x2715,\n  \"a22\",\n  0x2716,\n  \"a23\",\n  0x2717,\n  \"a24\",\n  0x2718,\n  \"a25\",\n  0x2719,\n  \"a26\",\n  0x271a,\n  \"a27\",\n  0x271b,\n  \"a28\",\n  0x271c,\n  \"a6\",\n  0x271d,\n  \"a7\",\n  0x271e,\n  \"a8\",\n  0x271f,\n  \"a9\",\n  0x2720,\n  \"a10\",\n  0x2721,\n  \"a29\",\n  0x2722,\n  \"a30\",\n  0x2723,\n  \"a31\",\n  0x2724,\n  \"a32\",\n  0x2725,\n  \"a33\",\n  0x2726,\n  \"a34\",\n  0x2727,\n  \"a35\",\n  0x2605,\n  \"a36\",\n  0x2729,\n  \"a37\",\n  0x272a,\n  \"a38\",\n  0x272b,\n  \"a39\",\n  0x272c,\n  \"a40\",\n  0x272d,\n  \"a41\",\n  0x272e,\n  \"a42\",\n  0x272f,\n  \"a43\",\n  0x2730,\n  \"a44\",\n  0x2731,\n  \"a45\",\n  0x2732,\n  \"a46\",\n  0x2733,\n  \"a47\",\n  0x2734,\n  \"a48\",\n  0x2735,\n  \"a49\",\n  0x2736,\n  \"a50\",\n  0x2737,\n  \"a51\",\n  0x2738,\n  \"a52\",\n  0x2739,\n  \"a53\",\n  0x273a,\n  \"a54\",\n  0x273b,\n  \"a55\",\n  0x273c,\n  \"a56\",\n  0x273d,\n  \"a57\",\n  0x273e,\n  \"a58\",\n  0x273f,\n  \"a59\",\n  0x2740,\n  \"a60\",\n  0x2741,\n  \"a61\",\n  0x2742,\n  \"a62\",\n  0x2743,\n  \"a63\",\n  0x2744,\n  \"a64\",\n  0x2745,\n  \"a65\",\n  0x2746,\n  \"a66\",\n  0x2747,\n  \"a67\",\n  0x2748,\n  \"a68\",\n  0x2749,\n  \"a69\",\n  0x274a,\n  \"a70\",\n  0x274b,\n  \"a71\",\n  0x25cf,\n  \"a72\",\n  0x274d,\n  \"a73\",\n  0x25a0,\n  \"a74\",\n  0x274f,\n  \"a203\",\n  0x2750,\n  \"a75\",\n  0x2751,\n  \"a204\",\n  0x2752,\n  \"a76\",\n  0x25b2,\n  \"a77\",\n  0x25bc,\n  \"a78\",\n  0x25c6,\n  \"a79\",\n  0x2756,\n  \"a81\",\n  0x25d7,\n  \"a82\",\n  0x2758,\n  \"a83\",\n  0x2759,\n  \"a84\",\n  0x275a,\n  \"a97\",\n  0x275b,\n  \"a98\",\n  0x275c,\n  \"a99\",\n  0x275d,\n  \"a100\",\n  0x275e,\n  \"a101\",\n  0x2761,\n  \"a102\",\n  0x2762,\n  \"a103\",\n  0x2763,\n  \"a104\",\n  0x2764,\n  \"a106\",\n  0x2765,\n  \"a107\",\n  0x2766,\n  \"a108\",\n  0x2767,\n  \"a112\",\n  0x2663,\n  \"a111\",\n  0x2666,\n  \"a110\",\n  0x2665,\n  \"a109\",\n  0x2660,\n  \"a120\",\n  0x2460,\n  \"a121\",\n  0x2461,\n  \"a122\",\n  0x2462,\n  \"a123\",\n  0x2463,\n  \"a124\",\n  0x2464,\n  \"a125\",\n  0x2465,\n  \"a126\",\n  0x2466,\n  \"a127\",\n  0x2467,\n  \"a128\",\n  0x2468,\n  \"a129\",\n  0x2469,\n  \"a130\",\n  0x2776,\n  \"a131\",\n  0x2777,\n  \"a132\",\n  0x2778,\n  \"a133\",\n  0x2779,\n  \"a134\",\n  0x277a,\n  \"a135\",\n  0x277b,\n  \"a136\",\n  0x277c,\n  \"a137\",\n  0x277d,\n  \"a138\",\n  0x277e,\n  \"a139\",\n  0x277f,\n  \"a140\",\n  0x2780,\n  \"a141\",\n  0x2781,\n  \"a142\",\n  0x2782,\n  \"a143\",\n  0x2783,\n  \"a144\",\n  0x2784,\n  \"a145\",\n  0x2785,\n  \"a146\",\n  0x2786,\n  \"a147\",\n  0x2787,\n  \"a148\",\n  0x2788,\n  \"a149\",\n  0x2789,\n  \"a150\",\n  0x278a,\n  \"a151\",\n  0x278b,\n  \"a152\",\n  0x278c,\n  \"a153\",\n  0x278d,\n  \"a154\",\n  0x278e,\n  \"a155\",\n  0x278f,\n  \"a156\",\n  0x2790,\n  \"a157\",\n  0x2791,\n  \"a158\",\n  0x2792,\n  \"a159\",\n  0x2793,\n  \"a160\",\n  0x2794,\n  \"a161\",\n  0x2192,\n  \"a163\",\n  0x2194,\n  \"a164\",\n  0x2195,\n  \"a196\",\n  0x2798,\n  \"a165\",\n  0x2799,\n  \"a192\",\n  0x279a,\n  \"a166\",\n  0x279b,\n  \"a167\",\n  0x279c,\n  \"a168\",\n  0x279d,\n  \"a169\",\n  0x279e,\n  \"a170\",\n  0x279f,\n  \"a171\",\n  0x27a0,\n  \"a172\",\n  0x27a1,\n  \"a173\",\n  0x27a2,\n  \"a162\",\n  0x27a3,\n  \"a174\",\n  0x27a4,\n  \"a175\",\n  0x27a5,\n  \"a176\",\n  0x27a6,\n  \"a177\",\n  0x27a7,\n  \"a178\",\n  0x27a8,\n  \"a179\",\n  0x27a9,\n  \"a193\",\n  0x27aa,\n  \"a180\",\n  0x27ab,\n  \"a199\",\n  0x27ac,\n  \"a181\",\n  0x27ad,\n  \"a200\",\n  0x27ae,\n  \"a182\",\n  0x27af,\n  \"a201\",\n  0x27b1,\n  \"a183\",\n  0x27b2,\n  \"a184\",\n  0x27b3,\n  \"a197\",\n  0x27b4,\n  \"a185\",\n  0x27b5,\n  \"a194\",\n  0x27b6,\n  \"a198\",\n  0x27b7,\n  \"a186\",\n  0x27b8,\n  \"a195\",\n  0x27b9,\n  \"a187\",\n  0x27ba,\n  \"a188\",\n  0x27bb,\n  \"a189\",\n  0x27bc,\n  \"a190\",\n  0x27bd,\n  \"a191\",\n  0x27be,\n  \"a89\",\n  0x2768,\n  \"a90\",\n  0x2769,\n  \"a93\",\n  0x276a,\n  \"a94\",\n  0x276b,\n  \"a91\",\n  0x276c,\n  \"a92\",\n  0x276d,\n  \"a205\",\n  0x276e,\n  \"a85\",\n  0x276f,\n  \"a206\",\n  0x2770,\n  \"a86\",\n  0x2771,\n  \"a87\",\n  0x2772,\n  \"a88\",\n  0x2773,\n  \"a95\",\n  0x2774,\n  \"a96\",\n  0x2775,\n  \".notdef\",\n  0x0000\n ];\n});\n\n\n/***/ }),\n/* 165 */\n/***/ ((__unused_webpack_module, __webpack_exports__, __w_pdfjs_require__) => {\n\n\"use strict\";\n__w_pdfjs_require__.r(__webpack_exports__);\n/* harmony export */ __w_pdfjs_require__.d(__webpack_exports__, {\n/* harmony export */   \"clearUnicodeCaches\": () => (/* binding */ clearUnicodeCaches),\n/* harmony export */   \"getCharUnicodeCategory\": () => (/* binding */ getCharUnicodeCategory),\n/* harmony export */   \"getNormalizedUnicodes\": () => (/* binding */ getNormalizedUnicodes),\n/* harmony export */   \"getUnicodeForGlyph\": () => (/* binding */ getUnicodeForGlyph),\n/* harmony export */   \"getUnicodeRangeFor\": () => (/* binding */ getUnicodeRangeFor),\n/* harmony export */   \"mapSpecialUnicodeValues\": () => (/* binding */ mapSpecialUnicodeValues),\n/* harmony export */   \"reverseIfRtl\": () => (/* binding */ reverseIfRtl)\n/* harmony export */ });\n/* harmony import */ var _core_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __w_pdfjs_require__(131);\n\nconst getSpecialPUASymbols = (0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.getLookupTableFactory)(function (t) {\n t[63721] = 0x00a9;\n t[63193] = 0x00a9;\n t[63720] = 0x00ae;\n t[63194] = 0x00ae;\n t[63722] = 0x2122;\n t[63195] = 0x2122;\n t[63729] = 0x23a7;\n t[63730] = 0x23a8;\n t[63731] = 0x23a9;\n t[63740] = 0x23ab;\n t[63741] = 0x23ac;\n t[63742] = 0x23ad;\n t[63726] = 0x23a1;\n t[63727] = 0x23a2;\n t[63728] = 0x23a3;\n t[63737] = 0x23a4;\n t[63738] = 0x23a5;\n t[63739] = 0x23a6;\n t[63723] = 0x239b;\n t[63724] = 0x239c;\n t[63725] = 0x239d;\n t[63734] = 0x239e;\n t[63735] = 0x239f;\n t[63736] = 0x23a0;\n});\nfunction mapSpecialUnicodeValues(code) {\n if (code >= 0xfff0 && code <= 0xffff) {\n  return 0;\n } else if (code >= 0xf600 && code <= 0xf8ff) {\n  return getSpecialPUASymbols()[code] || code;\n } else if (code === 0x00ad) {\n  return 0x002d;\n }\n return code;\n}\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n let unicode = glyphsUnicodeMap[name];\n if (unicode !== undefined) {\n  return unicode;\n }\n if (!name) {\n  return -1;\n }\n if (name[0] === \"u\") {\n  const nameLen = name.length;\n  let hexStr;\n  if (nameLen === 7 && name[1] === \"n\" && name[2] === \"i\") {\n   hexStr = name.substring(3);\n  } else if (nameLen >= 5 && nameLen <= 7) {\n   hexStr = name.substring(1);\n  } else {\n   return -1;\n  }\n  if (hexStr === hexStr.toUpperCase()) {\n   unicode = parseInt(hexStr, 16);\n   if (unicode >= 0) {\n    return unicode;\n   }\n  }\n }\n return -1;\n}\nconst UnicodeRanges = [\n {\n  begin: 0x0000,\n  end: 0x007f\n },\n {\n  begin: 0x0080,\n  end: 0x00ff\n },\n {\n  begin: 0x0100,\n  end: 0x017f\n },\n {\n  begin: 0x0180,\n  end: 0x024f\n },\n {\n  begin: 0x0250,\n  end: 0x02af\n },\n {\n  begin: 0x02b0,\n  end: 0x02ff\n },\n {\n  begin: 0x0300,\n  end: 0x036f\n },\n {\n  begin: 0x0370,\n  end: 0x03ff\n },\n {\n  begin: 0x2c80,\n  end: 0x2cff\n },\n {\n  begin: 0x0400,\n  end: 0x04ff\n },\n {\n  begin: 0x0530,\n  end: 0x058f\n },\n {\n  begin: 0x0590,\n  end: 0x05ff\n },\n {\n  begin: 0xa500,\n  end: 0xa63f\n },\n {\n  begin: 0x0600,\n  end: 0x06ff\n },\n {\n  begin: 0x07c0,\n  end: 0x07ff\n },\n {\n  begin: 0x0900,\n  end: 0x097f\n },\n {\n  begin: 0x0980,\n  end: 0x09ff\n },\n {\n  begin: 0x0a00,\n  end: 0x0a7f\n },\n {\n  begin: 0x0a80,\n  end: 0x0aff\n },\n {\n  begin: 0x0b00,\n  end: 0x0b7f\n },\n {\n  begin: 0x0b80,\n  end: 0x0bff\n },\n {\n  begin: 0x0c00,\n  end: 0x0c7f\n },\n {\n  begin: 0x0c80,\n  end: 0x0cff\n },\n {\n  begin: 0x0d00,\n  end: 0x0d7f\n },\n {\n  begin: 0x0e00,\n  end: 0x0e7f\n },\n {\n  begin: 0x0e80,\n  end: 0x0eff\n },\n {\n  begin: 0x10a0,\n  end: 0x10ff\n },\n {\n  begin: 0x1b00,\n  end: 0x1b7f\n },\n {\n  begin: 0x1100,\n  end: 0x11ff\n },\n {\n  begin: 0x1e00,\n  end: 0x1eff\n },\n {\n  begin: 0x1f00,\n  end: 0x1fff\n },\n {\n  begin: 0x2000,\n  end: 0x206f\n },\n {\n  begin: 0x2070,\n  end: 0x209f\n },\n {\n  begin: 0x20a0,\n  end: 0x20cf\n },\n {\n  begin: 0x20d0,\n  end: 0x20ff\n },\n {\n  begin: 0x2100,\n  end: 0x214f\n },\n {\n  begin: 0x2150,\n  end: 0x218f\n },\n {\n  begin: 0x2190,\n  end: 0x21ff\n },\n {\n  begin: 0x2200,\n  end: 0x22ff\n },\n {\n  begin: 0x2300,\n  end: 0x23ff\n },\n {\n  begin: 0x2400,\n  end: 0x243f\n },\n {\n  begin: 0x2440,\n  end: 0x245f\n },\n {\n  begin: 0x2460,\n  end: 0x24ff\n },\n {\n  begin: 0x2500,\n  end: 0x257f\n },\n {\n  begin: 0x2580,\n  end: 0x259f\n },\n {\n  begin: 0x25a0,\n  end: 0x25ff\n },\n {\n  begin: 0x2600,\n  end: 0x26ff\n },\n {\n  begin: 0x2700,\n  end: 0x27bf\n },\n {\n  begin: 0x3000,\n  end: 0x303f\n },\n {\n  begin: 0x3040,\n  end: 0x309f\n },\n {\n  begin: 0x30a0,\n  end: 0x30ff\n },\n {\n  begin: 0x3100,\n  end: 0x312f\n },\n {\n  begin: 0x3130,\n  end: 0x318f\n },\n {\n  begin: 0xa840,\n  end: 0xa87f\n },\n {\n  begin: 0x3200,\n  end: 0x32ff\n },\n {\n  begin: 0x3300,\n  end: 0x33ff\n },\n {\n  begin: 0xac00,\n  end: 0xd7af\n },\n {\n  begin: 0xd800,\n  end: 0xdfff\n },\n {\n  begin: 0x10900,\n  end: 0x1091f\n },\n {\n  begin: 0x4e00,\n  end: 0x9fff\n },\n {\n  begin: 0xe000,\n  end: 0xf8ff\n },\n {\n  begin: 0x31c0,\n  end: 0x31ef\n },\n {\n  begin: 0xfb00,\n  end: 0xfb4f\n },\n {\n  begin: 0xfb50,\n  end: 0xfdff\n },\n {\n  begin: 0xfe20,\n  end: 0xfe2f\n },\n {\n  begin: 0xfe10,\n  end: 0xfe1f\n },\n {\n  begin: 0xfe50,\n  end: 0xfe6f\n },\n {\n  begin: 0xfe70,\n  end: 0xfeff\n },\n {\n  begin: 0xff00,\n  end: 0xffef\n },\n {\n  begin: 0xfff0,\n  end: 0xffff\n },\n {\n  begin: 0x0f00,\n  end: 0x0fff\n },\n {\n  begin: 0x0700,\n  end: 0x074f\n },\n {\n  begin: 0x0780,\n  end: 0x07bf\n },\n {\n  begin: 0x0d80,\n  end: 0x0dff\n },\n {\n  begin: 0x1000,\n  end: 0x109f\n },\n {\n  begin: 0x1200,\n  end: 0x137f\n },\n {\n  begin: 0x13a0,\n  end: 0x13ff\n },\n {\n  begin: 0x1400,\n  end: 0x167f\n },\n {\n  begin: 0x1680,\n  end: 0x169f\n },\n {\n  begin: 0x16a0,\n  end: 0x16ff\n },\n {\n  begin: 0x1780,\n  end: 0x17ff\n },\n {\n  begin: 0x1800,\n  end: 0x18af\n },\n {\n  begin: 0x2800,\n  end: 0x28ff\n },\n {\n  begin: 0xa000,\n  end: 0xa48f\n },\n {\n  begin: 0x1700,\n  end: 0x171f\n },\n {\n  begin: 0x10300,\n  end: 0x1032f\n },\n {\n  begin: 0x10330,\n  end: 0x1034f\n },\n {\n  begin: 0x10400,\n  end: 0x1044f\n },\n {\n  begin: 0x1d000,\n  end: 0x1d0ff\n },\n {\n  begin: 0x1d400,\n  end: 0x1d7ff\n },\n {\n  begin: 0xff000,\n  end: 0xffffd\n },\n {\n  begin: 0xfe00,\n  end: 0xfe0f\n },\n {\n  begin: 0xe0000,\n  end: 0xe007f\n },\n {\n  begin: 0x1900,\n  end: 0x194f\n },\n {\n  begin: 0x1950,\n  end: 0x197f\n },\n {\n  begin: 0x1980,\n  end: 0x19df\n },\n {\n  begin: 0x1a00,\n  end: 0x1a1f\n },\n {\n  begin: 0x2c00,\n  end: 0x2c5f\n },\n {\n  begin: 0x2d30,\n  end: 0x2d7f\n },\n {\n  begin: 0x4dc0,\n  end: 0x4dff\n },\n {\n  begin: 0xa800,\n  end: 0xa82f\n },\n {\n  begin: 0x10000,\n  end: 0x1007f\n },\n {\n  begin: 0x10140,\n  end: 0x1018f\n },\n {\n  begin: 0x10380,\n  end: 0x1039f\n },\n {\n  begin: 0x103a0,\n  end: 0x103df\n },\n {\n  begin: 0x10450,\n  end: 0x1047f\n },\n {\n  begin: 0x10480,\n  end: 0x104af\n },\n {\n  begin: 0x10800,\n  end: 0x1083f\n },\n {\n  begin: 0x10a00,\n  end: 0x10a5f\n },\n {\n  begin: 0x1d300,\n  end: 0x1d35f\n },\n {\n  begin: 0x12000,\n  end: 0x123ff\n },\n {\n  begin: 0x1d360,\n  end: 0x1d37f\n },\n {\n  begin: 0x1b80,\n  end: 0x1bbf\n },\n {\n  begin: 0x1c00,\n  end: 0x1c4f\n },\n {\n  begin: 0x1c50,\n  end: 0x1c7f\n },\n {\n  begin: 0xa880,\n  end: 0xa8df\n },\n {\n  begin: 0xa900,\n  end: 0xa92f\n },\n {\n  begin: 0xa930,\n  end: 0xa95f\n },\n {\n  begin: 0xaa00,\n  end: 0xaa5f\n },\n {\n  begin: 0x10190,\n  end: 0x101cf\n },\n {\n  begin: 0x101d0,\n  end: 0x101ff\n },\n {\n  begin: 0x102a0,\n  end: 0x102df\n },\n {\n  begin: 0x1f030,\n  end: 0x1f09f\n }\n];\nfunction getUnicodeRangeFor(value) {\n for (let i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n  const range = UnicodeRanges[i];\n  if (value >= range.begin && value < range.end) {\n   return i;\n  }\n }\n return -1;\n}\nfunction isRTLRangeFor(value) {\n let range = UnicodeRanges[13];\n if (value >= range.begin && value < range.end) {\n  return true;\n }\n range = UnicodeRanges[11];\n if (value >= range.begin && value < range.end) {\n  return true;\n }\n return false;\n}\nconst getNormalizedUnicodes = (0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.getArrayLookupTableFactory)(function () {\n return [\n  \"\\u00A8\",\n  \"\\u0020\\u0308\",\n  \"\\u00AF\",\n  \"\\u0020\\u0304\",\n  \"\\u00B4\",\n  \"\\u0020\\u0301\",\n  \"\\u00B5\",\n  \"\\u03BC\",\n  \"\\u00B8\",\n  \"\\u0020\\u0327\",\n  \"\\u0132\",\n  \"\\u0049\\u004A\",\n  \"\\u0133\",\n  \"\\u0069\\u006A\",\n  \"\\u013F\",\n  \"\\u004C\\u00B7\",\n  \"\\u0140\",\n  \"\\u006C\\u00B7\",\n  \"\\u0149\",\n  \"\\u02BC\\u006E\",\n  \"\\u017F\",\n  \"\\u0073\",\n  \"\\u01C4\",\n  \"\\u0044\\u017D\",\n  \"\\u01C5\",\n  \"\\u0044\\u017E\",\n  \"\\u01C6\",\n  \"\\u0064\\u017E\",\n  \"\\u01C7\",\n  \"\\u004C\\u004A\",\n  \"\\u01C8\",\n  \"\\u004C\\u006A\",\n  \"\\u01C9\",\n  \"\\u006C\\u006A\",\n  \"\\u01CA\",\n  \"\\u004E\\u004A\",\n  \"\\u01CB\",\n  \"\\u004E\\u006A\",\n  \"\\u01CC\",\n  \"\\u006E\\u006A\",\n  \"\\u01F1\",\n  \"\\u0044\\u005A\",\n  \"\\u01F2\",\n  \"\\u0044\\u007A\",\n  \"\\u01F3\",\n  \"\\u0064\\u007A\",\n  \"\\u02D8\",\n  \"\\u0020\\u0306\",\n  \"\\u02D9\",\n  \"\\u0020\\u0307\",\n  \"\\u02DA\",\n  \"\\u0020\\u030A\",\n  \"\\u02DB\",\n  \"\\u0020\\u0328\",\n  \"\\u02DC\",\n  \"\\u0020\\u0303\",\n  \"\\u02DD\",\n  \"\\u0020\\u030B\",\n  \"\\u037A\",\n  \"\\u0020\\u0345\",\n  \"\\u0384\",\n  \"\\u0020\\u0301\",\n  \"\\u03D0\",\n  \"\\u03B2\",\n  \"\\u03D1\",\n  \"\\u03B8\",\n  \"\\u03D2\",\n  \"\\u03A5\",\n  \"\\u03D5\",\n  \"\\u03C6\",\n  \"\\u03D6\",\n  \"\\u03C0\",\n  \"\\u03F0\",\n  \"\\u03BA\",\n  \"\\u03F1\",\n  \"\\u03C1\",\n  \"\\u03F2\",\n  \"\\u03C2\",\n  \"\\u03F4\",\n  \"\\u0398\",\n  \"\\u03F5\",\n  \"\\u03B5\",\n  \"\\u03F9\",\n  \"\\u03A3\",\n  \"\\u0587\",\n  \"\\u0565\\u0582\",\n  \"\\u0675\",\n  \"\\u0627\\u0674\",\n  \"\\u0676\",\n  \"\\u0648\\u0674\",\n  \"\\u0677\",\n  \"\\u06C7\\u0674\",\n  \"\\u0678\",\n  \"\\u064A\\u0674\",\n  \"\\u0E33\",\n  \"\\u0E4D\\u0E32\",\n  \"\\u0EB3\",\n  \"\\u0ECD\\u0EB2\",\n  \"\\u0EDC\",\n  \"\\u0EAB\\u0E99\",\n  \"\\u0EDD\",\n  \"\\u0EAB\\u0EA1\",\n  \"\\u0F77\",\n  \"\\u0FB2\\u0F81\",\n  \"\\u0F79\",\n  \"\\u0FB3\\u0F81\",\n  \"\\u1E9A\",\n  \"\\u0061\\u02BE\",\n  \"\\u1FBD\",\n  \"\\u0020\\u0313\",\n  \"\\u1FBF\",\n  \"\\u0020\\u0313\",\n  \"\\u1FC0\",\n  \"\\u0020\\u0342\",\n  \"\\u1FFE\",\n  \"\\u0020\\u0314\",\n  \"\\u2002\",\n  \"\\u0020\",\n  \"\\u2003\",\n  \"\\u0020\",\n  \"\\u2004\",\n  \"\\u0020\",\n  \"\\u2005\",\n  \"\\u0020\",\n  \"\\u2006\",\n  \"\\u0020\",\n  \"\\u2008\",\n  \"\\u0020\",\n  \"\\u2009\",\n  \"\\u0020\",\n  \"\\u200A\",\n  \"\\u0020\",\n  \"\\u2017\",\n  \"\\u0020\\u0333\",\n  \"\\u2024\",\n  \"\\u002E\",\n  \"\\u2025\",\n  \"\\u002E\\u002E\",\n  \"\\u2026\",\n  \"\\u002E\\u002E\\u002E\",\n  \"\\u2033\",\n  \"\\u2032\\u2032\",\n  \"\\u2034\",\n  \"\\u2032\\u2032\\u2032\",\n  \"\\u2036\",\n  \"\\u2035\\u2035\",\n  \"\\u2037\",\n  \"\\u2035\\u2035\\u2035\",\n  \"\\u203C\",\n  \"\\u0021\\u0021\",\n  \"\\u203E\",\n  \"\\u0020\\u0305\",\n  \"\\u2047\",\n  \"\\u003F\\u003F\",\n  \"\\u2048\",\n  \"\\u003F\\u0021\",\n  \"\\u2049\",\n  \"\\u0021\\u003F\",\n  \"\\u2057\",\n  \"\\u2032\\u2032\\u2032\\u2032\",\n  \"\\u205F\",\n  \"\\u0020\",\n  \"\\u20A8\",\n  \"\\u0052\\u0073\",\n  \"\\u2100\",\n  \"\\u0061\\u002F\\u0063\",\n  \"\\u2101\",\n  \"\\u0061\\u002F\\u0073\",\n  \"\\u2103\",\n  \"\\u00B0\\u0043\",\n  \"\\u2105\",\n  \"\\u0063\\u002F\\u006F\",\n  \"\\u2106\",\n  \"\\u0063\\u002F\\u0075\",\n  \"\\u2107\",\n  \"\\u0190\",\n  \"\\u2109\",\n  \"\\u00B0\\u0046\",\n  \"\\u2116\",\n  \"\\u004E\\u006F\",\n  \"\\u2121\",\n  \"\\u0054\\u0045\\u004C\",\n  \"\\u2135\",\n  \"\\u05D0\",\n  \"\\u2136\",\n  \"\\u05D1\",\n  \"\\u2137\",\n  \"\\u05D2\",\n  \"\\u2138\",\n  \"\\u05D3\",\n  \"\\u213B\",\n  \"\\u0046\\u0041\\u0058\",\n  \"\\u2160\",\n  \"\\u0049\",\n  \"\\u2161\",\n  \"\\u0049\\u0049\",\n  \"\\u2162\",\n  \"\\u0049\\u0049\\u0049\",\n  \"\\u2163\",\n  \"\\u0049\\u0056\",\n  \"\\u2164\",\n  \"\\u0056\",\n  \"\\u2165\",\n  \"\\u0056\\u0049\",\n  \"\\u2166\",\n  \"\\u0056\\u0049\\u0049\",\n  \"\\u2167\",\n  \"\\u0056\\u0049\\u0049\\u0049\",\n  \"\\u2168\",\n  \"\\u0049\\u0058\",\n  \"\\u2169\",\n  \"\\u0058\",\n  \"\\u216A\",\n  \"\\u0058\\u0049\",\n  \"\\u216B\",\n  \"\\u0058\\u0049\\u0049\",\n  \"\\u216C\",\n  \"\\u004C\",\n  \"\\u216D\",\n  \"\\u0043\",\n  \"\\u216E\",\n  \"\\u0044\",\n  \"\\u216F\",\n  \"\\u004D\",\n  \"\\u2170\",\n  \"\\u0069\",\n  \"\\u2171\",\n  \"\\u0069\\u0069\",\n  \"\\u2172\",\n  \"\\u0069\\u0069\\u0069\",\n  \"\\u2173\",\n  \"\\u0069\\u0076\",\n  \"\\u2174\",\n  \"\\u0076\",\n  \"\\u2175\",\n  \"\\u0076\\u0069\",\n  \"\\u2176\",\n  \"\\u0076\\u0069\\u0069\",\n  \"\\u2177\",\n  \"\\u0076\\u0069\\u0069\\u0069\",\n  \"\\u2178\",\n  \"\\u0069\\u0078\",\n  \"\\u2179\",\n  \"\\u0078\",\n  \"\\u217A\",\n  \"\\u0078\\u0069\",\n  \"\\u217B\",\n  \"\\u0078\\u0069\\u0069\",\n  \"\\u217C\",\n  \"\\u006C\",\n  \"\\u217D\",\n  \"\\u0063\",\n  \"\\u217E\",\n  \"\\u0064\",\n  \"\\u217F\",\n  \"\\u006D\",\n  \"\\u222C\",\n  \"\\u222B\\u222B\",\n  \"\\u222D\",\n  \"\\u222B\\u222B\\u222B\",\n  \"\\u222F\",\n  \"\\u222E\\u222E\",\n  \"\\u2230\",\n  \"\\u222E\\u222E\\u222E\",\n  \"\\u2474\",\n  \"\\u0028\\u0031\\u0029\",\n  \"\\u2475\",\n  \"\\u0028\\u0032\\u0029\",\n  \"\\u2476\",\n  \"\\u0028\\u0033\\u0029\",\n  \"\\u2477\",\n  \"\\u0028\\u0034\\u0029\",\n  \"\\u2478\",\n  \"\\u0028\\u0035\\u0029\",\n  \"\\u2479\",\n  \"\\u0028\\u0036\\u0029\",\n  \"\\u247A\",\n  \"\\u0028\\u0037\\u0029\",\n  \"\\u247B\",\n  \"\\u0028\\u0038\\u0029\",\n  \"\\u247C\",\n  \"\\u0028\\u0039\\u0029\",\n  \"\\u247D\",\n  \"\\u0028\\u0031\\u0030\\u0029\",\n  \"\\u247E\",\n  \"\\u0028\\u0031\\u0031\\u0029\",\n  \"\\u247F\",\n  \"\\u0028\\u0031\\u0032\\u0029\",\n  \"\\u2480\",\n  \"\\u0028\\u0031\\u0033\\u0029\",\n  \"\\u2481\",\n  \"\\u0028\\u0031\\u0034\\u0029\",\n  \"\\u2482\",\n  \"\\u0028\\u0031\\u0035\\u0029\",\n  \"\\u2483\",\n  \"\\u0028\\u0031\\u0036\\u0029\",\n  \"\\u2484\",\n  \"\\u0028\\u0031\\u0037\\u0029\",\n  \"\\u2485\",\n  \"\\u0028\\u0031\\u0038\\u0029\",\n  \"\\u2486\",\n  \"\\u0028\\u0031\\u0039\\u0029\",\n  \"\\u2487\",\n  \"\\u0028\\u0032\\u0030\\u0029\",\n  \"\\u2488\",\n  \"\\u0031\\u002E\",\n  \"\\u2489\",\n  \"\\u0032\\u002E\",\n  \"\\u248A\",\n  \"\\u0033\\u002E\",\n  \"\\u248B\",\n  \"\\u0034\\u002E\",\n  \"\\u248C\",\n  \"\\u0035\\u002E\",\n  \"\\u248D\",\n  \"\\u0036\\u002E\",\n  \"\\u248E\",\n  \"\\u0037\\u002E\",\n  \"\\u248F\",\n  \"\\u0038\\u002E\",\n  \"\\u2490\",\n  \"\\u0039\\u002E\",\n  \"\\u2491\",\n  \"\\u0031\\u0030\\u002E\",\n  \"\\u2492\",\n  \"\\u0031\\u0031\\u002E\",\n  \"\\u2493\",\n  \"\\u0031\\u0032\\u002E\",\n  \"\\u2494\",\n  \"\\u0031\\u0033\\u002E\",\n  \"\\u2495\",\n  \"\\u0031\\u0034\\u002E\",\n  \"\\u2496\",\n  \"\\u0031\\u0035\\u002E\",\n  \"\\u2497\",\n  \"\\u0031\\u0036\\u002E\",\n  \"\\u2498\",\n  \"\\u0031\\u0037\\u002E\",\n  \"\\u2499\",\n  \"\\u0031\\u0038\\u002E\",\n  \"\\u249A\",\n  \"\\u0031\\u0039\\u002E\",\n  \"\\u249B\",\n  \"\\u0032\\u0030\\u002E\",\n  \"\\u249C\",\n  \"\\u0028\\u0061\\u0029\",\n  \"\\u249D\",\n  \"\\u0028\\u0062\\u0029\",\n  \"\\u249E\",\n  \"\\u0028\\u0063\\u0029\",\n  \"\\u249F\",\n  \"\\u0028\\u0064\\u0029\",\n  \"\\u24A0\",\n  \"\\u0028\\u0065\\u0029\",\n  \"\\u24A1\",\n  \"\\u0028\\u0066\\u0029\",\n  \"\\u24A2\",\n  \"\\u0028\\u0067\\u0029\",\n  \"\\u24A3\",\n  \"\\u0028\\u0068\\u0029\",\n  \"\\u24A4\",\n  \"\\u0028\\u0069\\u0029\",\n  \"\\u24A5\",\n  \"\\u0028\\u006A\\u0029\",\n  \"\\u24A6\",\n  \"\\u0028\\u006B\\u0029\",\n  \"\\u24A7\",\n  \"\\u0028\\u006C\\u0029\",\n  \"\\u24A8\",\n  \"\\u0028\\u006D\\u0029\",\n  \"\\u24A9\",\n  \"\\u0028\\u006E\\u0029\",\n  \"\\u24AA\",\n  \"\\u0028\\u006F\\u0029\",\n  \"\\u24AB\",\n  \"\\u0028\\u0070\\u0029\",\n  \"\\u24AC\",\n  \"\\u0028\\u0071\\u0029\",\n  \"\\u24AD\",\n  \"\\u0028\\u0072\\u0029\",\n  \"\\u24AE\",\n  \"\\u0028\\u0073\\u0029\",\n  \"\\u24AF\",\n  \"\\u0028\\u0074\\u0029\",\n  \"\\u24B0\",\n  \"\\u0028\\u0075\\u0029\",\n  \"\\u24B1\",\n  \"\\u0028\\u0076\\u0029\",\n  \"\\u24B2\",\n  \"\\u0028\\u0077\\u0029\",\n  \"\\u24B3\",\n  \"\\u0028\\u0078\\u0029\",\n  \"\\u24B4\",\n  \"\\u0028\\u0079\\u0029\",\n  \"\\u24B5\",\n  \"\\u0028\\u007A\\u0029\",\n  \"\\u2A0C\",\n  \"\\u222B\\u222B\\u222B\\u222B\",\n  \"\\u2A74\",\n  \"\\u003A\\u003A\\u003D\",\n  \"\\u2A75\",\n  \"\\u003D\\u003D\",\n  \"\\u2A76\",\n  \"\\u003D\\u003D\\u003D\",\n  \"\\u2E9F\",\n  \"\\u6BCD\",\n  \"\\u2EF3\",\n  \"\\u9F9F\",\n  \"\\u2F00\",\n  \"\\u4E00\",\n  \"\\u2F01\",\n  \"\\u4E28\",\n  \"\\u2F02\",\n  \"\\u4E36\",\n  \"\\u2F03\",\n  \"\\u4E3F\",\n  \"\\u2F04\",\n  \"\\u4E59\",\n  \"\\u2F05\",\n  \"\\u4E85\",\n  \"\\u2F06\",\n  \"\\u4E8C\",\n  \"\\u2F07\",\n  \"\\u4EA0\",\n  \"\\u2F08\",\n  \"\\u4EBA\",\n  \"\\u2F09\",\n  \"\\u513F\",\n  \"\\u2F0A\",\n  \"\\u5165\",\n  \"\\u2F0B\",\n  \"\\u516B\",\n  \"\\u2F0C\",\n  \"\\u5182\",\n  \"\\u2F0D\",\n  \"\\u5196\",\n  \"\\u2F0E\",\n  \"\\u51AB\",\n  \"\\u2F0F\",\n  \"\\u51E0\",\n  \"\\u2F10\",\n  \"\\u51F5\",\n  \"\\u2F11\",\n  \"\\u5200\",\n  \"\\u2F12\",\n  \"\\u529B\",\n  \"\\u2F13\",\n  \"\\u52F9\",\n  \"\\u2F14\",\n  \"\\u5315\",\n  \"\\u2F15\",\n  \"\\u531A\",\n  \"\\u2F16\",\n  \"\\u5338\",\n  \"\\u2F17\",\n  \"\\u5341\",\n  \"\\u2F18\",\n  \"\\u535C\",\n  \"\\u2F19\",\n  \"\\u5369\",\n  \"\\u2F1A\",\n  \"\\u5382\",\n  \"\\u2F1B\",\n  \"\\u53B6\",\n  \"\\u2F1C\",\n  \"\\u53C8\",\n  \"\\u2F1D\",\n  \"\\u53E3\",\n  \"\\u2F1E\",\n  \"\\u56D7\",\n  \"\\u2F1F\",\n  \"\\u571F\",\n  \"\\u2F20\",\n  \"\\u58EB\",\n  \"\\u2F21\",\n  \"\\u5902\",\n  \"\\u2F22\",\n  \"\\u590A\",\n  \"\\u2F23\",\n  \"\\u5915\",\n  \"\\u2F24\",\n  \"\\u5927\",\n  \"\\u2F25\",\n  \"\\u5973\",\n  \"\\u2F26\",\n  \"\\u5B50\",\n  \"\\u2F27\",\n  \"\\u5B80\",\n  \"\\u2F28\",\n  \"\\u5BF8\",\n  \"\\u2F29\",\n  \"\\u5C0F\",\n  \"\\u2F2A\",\n  \"\\u5C22\",\n  \"\\u2F2B\",\n  \"\\u5C38\",\n  \"\\u2F2C\",\n  \"\\u5C6E\",\n  \"\\u2F2D\",\n  \"\\u5C71\",\n  \"\\u2F2E\",\n  \"\\u5DDB\",\n  \"\\u2F2F\",\n  \"\\u5DE5\",\n  \"\\u2F30\",\n  \"\\u5DF1\",\n  \"\\u2F31\",\n  \"\\u5DFE\",\n  \"\\u2F32\",\n  \"\\u5E72\",\n  \"\\u2F33\",\n  \"\\u5E7A\",\n  \"\\u2F34\",\n  \"\\u5E7F\",\n  \"\\u2F35\",\n  \"\\u5EF4\",\n  \"\\u2F36\",\n  \"\\u5EFE\",\n  \"\\u2F37\",\n  \"\\u5F0B\",\n  \"\\u2F38\",\n  \"\\u5F13\",\n  \"\\u2F39\",\n  \"\\u5F50\",\n  \"\\u2F3A\",\n  \"\\u5F61\",\n  \"\\u2F3B\",\n  \"\\u5F73\",\n  \"\\u2F3C\",\n  \"\\u5FC3\",\n  \"\\u2F3D\",\n  \"\\u6208\",\n  \"\\u2F3E\",\n  \"\\u6236\",\n  \"\\u2F3F\",\n  \"\\u624B\",\n  \"\\u2F40\",\n  \"\\u652F\",\n  \"\\u2F41\",\n  \"\\u6534\",\n  \"\\u2F42\",\n  \"\\u6587\",\n  \"\\u2F43\",\n  \"\\u6597\",\n  \"\\u2F44\",\n  \"\\u65A4\",\n  \"\\u2F45\",\n  \"\\u65B9\",\n  \"\\u2F46\",\n  \"\\u65E0\",\n  \"\\u2F47\",\n  \"\\u65E5\",\n  \"\\u2F48\",\n  \"\\u66F0\",\n  \"\\u2F49\",\n  \"\\u6708\",\n  \"\\u2F4A\",\n  \"\\u6728\",\n  \"\\u2F4B\",\n  \"\\u6B20\",\n  \"\\u2F4C\",\n  \"\\u6B62\",\n  \"\\u2F4D\",\n  \"\\u6B79\",\n  \"\\u2F4E\",\n  \"\\u6BB3\",\n  \"\\u2F4F\",\n  \"\\u6BCB\",\n  \"\\u2F50\",\n  \"\\u6BD4\",\n  \"\\u2F51\",\n  \"\\u6BDB\",\n  \"\\u2F52\",\n  \"\\u6C0F\",\n  \"\\u2F53\",\n  \"\\u6C14\",\n  \"\\u2F54\",\n  \"\\u6C34\",\n  \"\\u2F55\",\n  \"\\u706B\",\n  \"\\u2F56\",\n  \"\\u722A\",\n  \"\\u2F57\",\n  \"\\u7236\",\n  \"\\u2F58\",\n  \"\\u723B\",\n  \"\\u2F59\",\n  \"\\u723F\",\n  \"\\u2F5A\",\n  \"\\u7247\",\n  \"\\u2F5B\",\n  \"\\u7259\",\n  \"\\u2F5C\",\n  \"\\u725B\",\n  \"\\u2F5D\",\n  \"\\u72AC\",\n  \"\\u2F5E\",\n  \"\\u7384\",\n  \"\\u2F5F\",\n  \"\\u7389\",\n  \"\\u2F60\",\n  \"\\u74DC\",\n  \"\\u2F61\",\n  \"\\u74E6\",\n  \"\\u2F62\",\n  \"\\u7518\",\n  \"\\u2F63\",\n  \"\\u751F\",\n  \"\\u2F64\",\n  \"\\u7528\",\n  \"\\u2F65\",\n  \"\\u7530\",\n  \"\\u2F66\",\n  \"\\u758B\",\n  \"\\u2F67\",\n  \"\\u7592\",\n  \"\\u2F68\",\n  \"\\u7676\",\n  \"\\u2F69\",\n  \"\\u767D\",\n  \"\\u2F6A\",\n  \"\\u76AE\",\n  \"\\u2F6B\",\n  \"\\u76BF\",\n  \"\\u2F6C\",\n  \"\\u76EE\",\n  \"\\u2F6D\",\n  \"\\u77DB\",\n  \"\\u2F6E\",\n  \"\\u77E2\",\n  \"\\u2F6F\",\n  \"\\u77F3\",\n  \"\\u2F70\",\n  \"\\u793A\",\n  \"\\u2F71\",\n  \"\\u79B8\",\n  \"\\u2F72\",\n  \"\\u79BE\",\n  \"\\u2F73\",\n  \"\\u7A74\",\n  \"\\u2F74\",\n  \"\\u7ACB\",\n  \"\\u2F75\",\n  \"\\u7AF9\",\n  \"\\u2F76\",\n  \"\\u7C73\",\n  \"\\u2F77\",\n  \"\\u7CF8\",\n  \"\\u2F78\",\n  \"\\u7F36\",\n  \"\\u2F79\",\n  \"\\u7F51\",\n  \"\\u2F7A\",\n  \"\\u7F8A\",\n  \"\\u2F7B\",\n  \"\\u7FBD\",\n  \"\\u2F7C\",\n  \"\\u8001\",\n  \"\\u2F7D\",\n  \"\\u800C\",\n  \"\\u2F7E\",\n  \"\\u8012\",\n  \"\\u2F7F\",\n  \"\\u8033\",\n  \"\\u2F80\",\n  \"\\u807F\",\n  \"\\u2F81\",\n  \"\\u8089\",\n  \"\\u2F82\",\n  \"\\u81E3\",\n  \"\\u2F83\",\n  \"\\u81EA\",\n  \"\\u2F84\",\n  \"\\u81F3\",\n  \"\\u2F85\",\n  \"\\u81FC\",\n  \"\\u2F86\",\n  \"\\u820C\",\n  \"\\u2F87\",\n  \"\\u821B\",\n  \"\\u2F88\",\n  \"\\u821F\",\n  \"\\u2F89\",\n  \"\\u826E\",\n  \"\\u2F8A\",\n  \"\\u8272\",\n  \"\\u2F8B\",\n  \"\\u8278\",\n  \"\\u2F8C\",\n  \"\\u864D\",\n  \"\\u2F8D\",\n  \"\\u866B\",\n  \"\\u2F8E\",\n  \"\\u8840\",\n  \"\\u2F8F\",\n  \"\\u884C\",\n  \"\\u2F90\",\n  \"\\u8863\",\n  \"\\u2F91\",\n  \"\\u897E\",\n  \"\\u2F92\",\n  \"\\u898B\",\n  \"\\u2F93\",\n  \"\\u89D2\",\n  \"\\u2F94\",\n  \"\\u8A00\",\n  \"\\u2F95\",\n  \"\\u8C37\",\n  \"\\u2F96\",\n  \"\\u8C46\",\n  \"\\u2F97\",\n  \"\\u8C55\",\n  \"\\u2F98\",\n  \"\\u8C78\",\n  \"\\u2F99\",\n  \"\\u8C9D\",\n  \"\\u2F9A\",\n  \"\\u8D64\",\n  \"\\u2F9B\",\n  \"\\u8D70\",\n  \"\\u2F9C\",\n  \"\\u8DB3\",\n  \"\\u2F9D\",\n  \"\\u8EAB\",\n  \"\\u2F9E\",\n  \"\\u8ECA\",\n  \"\\u2F9F\",\n  \"\\u8F9B\",\n  \"\\u2FA0\",\n  \"\\u8FB0\",\n  \"\\u2FA1\",\n  \"\\u8FB5\",\n  \"\\u2FA2\",\n  \"\\u9091\",\n  \"\\u2FA3\",\n  \"\\u9149\",\n  \"\\u2FA4\",\n  \"\\u91C6\",\n  \"\\u2FA5\",\n  \"\\u91CC\",\n  \"\\u2FA6\",\n  \"\\u91D1\",\n  \"\\u2FA7\",\n  \"\\u9577\",\n  \"\\u2FA8\",\n  \"\\u9580\",\n  \"\\u2FA9\",\n  \"\\u961C\",\n  \"\\u2FAA\",\n  \"\\u96B6\",\n  \"\\u2FAB\",\n  \"\\u96B9\",\n  \"\\u2FAC\",\n  \"\\u96E8\",\n  \"\\u2FAD\",\n  \"\\u9751\",\n  \"\\u2FAE\",\n  \"\\u975E\",\n  \"\\u2FAF\",\n  \"\\u9762\",\n  \"\\u2FB0\",\n  \"\\u9769\",\n  \"\\u2FB1\",\n  \"\\u97CB\",\n  \"\\u2FB2\",\n  \"\\u97ED\",\n  \"\\u2FB3\",\n  \"\\u97F3\",\n  \"\\u2FB4\",\n  \"\\u9801\",\n  \"\\u2FB5\",\n  \"\\u98A8\",\n  \"\\u2FB6\",\n  \"\\u98DB\",\n  \"\\u2FB7\",\n  \"\\u98DF\",\n  \"\\u2FB8\",\n  \"\\u9996\",\n  \"\\u2FB9\",\n  \"\\u9999\",\n  \"\\u2FBA\",\n  \"\\u99AC\",\n  \"\\u2FBB\",\n  \"\\u9AA8\",\n  \"\\u2FBC\",\n  \"\\u9AD8\",\n  \"\\u2FBD\",\n  \"\\u9ADF\",\n  \"\\u2FBE\",\n  \"\\u9B25\",\n  \"\\u2FBF\",\n  \"\\u9B2F\",\n  \"\\u2FC0\",\n  \"\\u9B32\",\n  \"\\u2FC1\",\n  \"\\u9B3C\",\n  \"\\u2FC2\",\n  \"\\u9B5A\",\n  \"\\u2FC3\",\n  \"\\u9CE5\",\n  \"\\u2FC4\",\n  \"\\u9E75\",\n  \"\\u2FC5\",\n  \"\\u9E7F\",\n  \"\\u2FC6\",\n  \"\\u9EA5\",\n  \"\\u2FC7\",\n  \"\\u9EBB\",\n  \"\\u2FC8\",\n  \"\\u9EC3\",\n  \"\\u2FC9\",\n  \"\\u9ECD\",\n  \"\\u2FCA\",\n  \"\\u9ED1\",\n  \"\\u2FCB\",\n  \"\\u9EF9\",\n  \"\\u2FCC\",\n  \"\\u9EFD\",\n  \"\\u2FCD\",\n  \"\\u9F0E\",\n  \"\\u2FCE\",\n  \"\\u9F13\",\n  \"\\u2FCF\",\n  \"\\u9F20\",\n  \"\\u2FD0\",\n  \"\\u9F3B\",\n  \"\\u2FD1\",\n  \"\\u9F4A\",\n  \"\\u2FD2\",\n  \"\\u9F52\",\n  \"\\u2FD3\",\n  \"\\u9F8D\",\n  \"\\u2FD4\",\n  \"\\u9F9C\",\n  \"\\u2FD5\",\n  \"\\u9FA0\",\n  \"\\u3036\",\n  \"\\u3012\",\n  \"\\u3038\",\n  \"\\u5341\",\n  \"\\u3039\",\n  \"\\u5344\",\n  \"\\u303A\",\n  \"\\u5345\",\n  \"\\u309B\",\n  \"\\u0020\\u3099\",\n  \"\\u309C\",\n  \"\\u0020\\u309A\",\n  \"\\u3131\",\n  \"\\u1100\",\n  \"\\u3132\",\n  \"\\u1101\",\n  \"\\u3133\",\n  \"\\u11AA\",\n  \"\\u3134\",\n  \"\\u1102\",\n  \"\\u3135\",\n  \"\\u11AC\",\n  \"\\u3136\",\n  \"\\u11AD\",\n  \"\\u3137\",\n  \"\\u1103\",\n  \"\\u3138\",\n  \"\\u1104\",\n  \"\\u3139\",\n  \"\\u1105\",\n  \"\\u313A\",\n  \"\\u11B0\",\n  \"\\u313B\",\n  \"\\u11B1\",\n  \"\\u313C\",\n  \"\\u11B2\",\n  \"\\u313D\",\n  \"\\u11B3\",\n  \"\\u313E\",\n  \"\\u11B4\",\n  \"\\u313F\",\n  \"\\u11B5\",\n  \"\\u3140\",\n  \"\\u111A\",\n  \"\\u3141\",\n  \"\\u1106\",\n  \"\\u3142\",\n  \"\\u1107\",\n  \"\\u3143\",\n  \"\\u1108\",\n  \"\\u3144\",\n  \"\\u1121\",\n  \"\\u3145\",\n  \"\\u1109\",\n  \"\\u3146\",\n  \"\\u110A\",\n  \"\\u3147\",\n  \"\\u110B\",\n  \"\\u3148\",\n  \"\\u110C\",\n  \"\\u3149\",\n  \"\\u110D\",\n  \"\\u314A\",\n  \"\\u110E\",\n  \"\\u314B\",\n  \"\\u110F\",\n  \"\\u314C\",\n  \"\\u1110\",\n  \"\\u314D\",\n  \"\\u1111\",\n  \"\\u314E\",\n  \"\\u1112\",\n  \"\\u314F\",\n  \"\\u1161\",\n  \"\\u3150\",\n  \"\\u1162\",\n  \"\\u3151\",\n  \"\\u1163\",\n  \"\\u3152\",\n  \"\\u1164\",\n  \"\\u3153\",\n  \"\\u1165\",\n  \"\\u3154\",\n  \"\\u1166\",\n  \"\\u3155\",\n  \"\\u1167\",\n  \"\\u3156\",\n  \"\\u1168\",\n  \"\\u3157\",\n  \"\\u1169\",\n  \"\\u3158\",\n  \"\\u116A\",\n  \"\\u3159\",\n  \"\\u116B\",\n  \"\\u315A\",\n  \"\\u116C\",\n  \"\\u315B\",\n  \"\\u116D\",\n  \"\\u315C\",\n  \"\\u116E\",\n  \"\\u315D\",\n  \"\\u116F\",\n  \"\\u315E\",\n  \"\\u1170\",\n  \"\\u315F\",\n  \"\\u1171\",\n  \"\\u3160\",\n  \"\\u1172\",\n  \"\\u3161\",\n  \"\\u1173\",\n  \"\\u3162\",\n  \"\\u1174\",\n  \"\\u3163\",\n  \"\\u1175\",\n  \"\\u3164\",\n  \"\\u1160\",\n  \"\\u3165\",\n  \"\\u1114\",\n  \"\\u3166\",\n  \"\\u1115\",\n  \"\\u3167\",\n  \"\\u11C7\",\n  \"\\u3168\",\n  \"\\u11C8\",\n  \"\\u3169\",\n  \"\\u11CC\",\n  \"\\u316A\",\n  \"\\u11CE\",\n  \"\\u316B\",\n  \"\\u11D3\",\n  \"\\u316C\",\n  \"\\u11D7\",\n  \"\\u316D\",\n  \"\\u11D9\",\n  \"\\u316E\",\n  \"\\u111C\",\n  \"\\u316F\",\n  \"\\u11DD\",\n  \"\\u3170\",\n  \"\\u11DF\",\n  \"\\u3171\",\n  \"\\u111D\",\n  \"\\u3172\",\n  \"\\u111E\",\n  \"\\u3173\",\n  \"\\u1120\",\n  \"\\u3174\",\n  \"\\u1122\",\n  \"\\u3175\",\n  \"\\u1123\",\n  \"\\u3176\",\n  \"\\u1127\",\n  \"\\u3177\",\n  \"\\u1129\",\n  \"\\u3178\",\n  \"\\u112B\",\n  \"\\u3179\",\n  \"\\u112C\",\n  \"\\u317A\",\n  \"\\u112D\",\n  \"\\u317B\",\n  \"\\u112E\",\n  \"\\u317C\",\n  \"\\u112F\",\n  \"\\u317D\",\n  \"\\u1132\",\n  \"\\u317E\",\n  \"\\u1136\",\n  \"\\u317F\",\n  \"\\u1140\",\n  \"\\u3180\",\n  \"\\u1147\",\n  \"\\u3181\",\n  \"\\u114C\",\n  \"\\u3182\",\n  \"\\u11F1\",\n  \"\\u3183\",\n  \"\\u11F2\",\n  \"\\u3184\",\n  \"\\u1157\",\n  \"\\u3185\",\n  \"\\u1158\",\n  \"\\u3186\",\n  \"\\u1159\",\n  \"\\u3187\",\n  \"\\u1184\",\n  \"\\u3188\",\n  \"\\u1185\",\n  \"\\u3189\",\n  \"\\u1188\",\n  \"\\u318A\",\n  \"\\u1191\",\n  \"\\u318B\",\n  \"\\u1192\",\n  \"\\u318C\",\n  \"\\u1194\",\n  \"\\u318D\",\n  \"\\u119E\",\n  \"\\u318E\",\n  \"\\u11A1\",\n  \"\\u3200\",\n  \"\\u0028\\u1100\\u0029\",\n  \"\\u3201\",\n  \"\\u0028\\u1102\\u0029\",\n  \"\\u3202\",\n  \"\\u0028\\u1103\\u0029\",\n  \"\\u3203\",\n  \"\\u0028\\u1105\\u0029\",\n  \"\\u3204\",\n  \"\\u0028\\u1106\\u0029\",\n  \"\\u3205\",\n  \"\\u0028\\u1107\\u0029\",\n  \"\\u3206\",\n  \"\\u0028\\u1109\\u0029\",\n  \"\\u3207\",\n  \"\\u0028\\u110B\\u0029\",\n  \"\\u3208\",\n  \"\\u0028\\u110C\\u0029\",\n  \"\\u3209\",\n  \"\\u0028\\u110E\\u0029\",\n  \"\\u320A\",\n  \"\\u0028\\u110F\\u0029\",\n  \"\\u320B\",\n  \"\\u0028\\u1110\\u0029\",\n  \"\\u320C\",\n  \"\\u0028\\u1111\\u0029\",\n  \"\\u320D\",\n  \"\\u0028\\u1112\\u0029\",\n  \"\\u320E\",\n  \"\\u0028\\u1100\\u1161\\u0029\",\n  \"\\u320F\",\n  \"\\u0028\\u1102\\u1161\\u0029\",\n  \"\\u3210\",\n  \"\\u0028\\u1103\\u1161\\u0029\",\n  \"\\u3211\",\n  \"\\u0028\\u1105\\u1161\\u0029\",\n  \"\\u3212\",\n  \"\\u0028\\u1106\\u1161\\u0029\",\n  \"\\u3213\",\n  \"\\u0028\\u1107\\u1161\\u0029\",\n  \"\\u3214\",\n  \"\\u0028\\u1109\\u1161\\u0029\",\n  \"\\u3215\",\n  \"\\u0028\\u110B\\u1161\\u0029\",\n  \"\\u3216\",\n  \"\\u0028\\u110C\\u1161\\u0029\",\n  \"\\u3217\",\n  \"\\u0028\\u110E\\u1161\\u0029\",\n  \"\\u3218\",\n  \"\\u0028\\u110F\\u1161\\u0029\",\n  \"\\u3219\",\n  \"\\u0028\\u1110\\u1161\\u0029\",\n  \"\\u321A\",\n  \"\\u0028\\u1111\\u1161\\u0029\",\n  \"\\u321B\",\n  \"\\u0028\\u1112\\u1161\\u0029\",\n  \"\\u321C\",\n  \"\\u0028\\u110C\\u116E\\u0029\",\n  \"\\u321D\",\n  \"\\u0028\\u110B\\u1169\\u110C\\u1165\\u11AB\\u0029\",\n  \"\\u321E\",\n  \"\\u0028\\u110B\\u1169\\u1112\\u116E\\u0029\",\n  \"\\u3220\",\n  \"\\u0028\\u4E00\\u0029\",\n  \"\\u3221\",\n  \"\\u0028\\u4E8C\\u0029\",\n  \"\\u3222\",\n  \"\\u0028\\u4E09\\u0029\",\n  \"\\u3223\",\n  \"\\u0028\\u56DB\\u0029\",\n  \"\\u3224\",\n  \"\\u0028\\u4E94\\u0029\",\n  \"\\u3225\",\n  \"\\u0028\\u516D\\u0029\",\n  \"\\u3226\",\n  \"\\u0028\\u4E03\\u0029\",\n  \"\\u3227\",\n  \"\\u0028\\u516B\\u0029\",\n  \"\\u3228\",\n  \"\\u0028\\u4E5D\\u0029\",\n  \"\\u3229\",\n  \"\\u0028\\u5341\\u0029\",\n  \"\\u322A\",\n  \"\\u0028\\u6708\\u0029\",\n  \"\\u322B\",\n  \"\\u0028\\u706B\\u0029\",\n  \"\\u322C\",\n  \"\\u0028\\u6C34\\u0029\",\n  \"\\u322D\",\n  \"\\u0028\\u6728\\u0029\",\n  \"\\u322E\",\n  \"\\u0028\\u91D1\\u0029\",\n  \"\\u322F\",\n  \"\\u0028\\u571F\\u0029\",\n  \"\\u3230\",\n  \"\\u0028\\u65E5\\u0029\",\n  \"\\u3231\",\n  \"\\u0028\\u682A\\u0029\",\n  \"\\u3232\",\n  \"\\u0028\\u6709\\u0029\",\n  \"\\u3233\",\n  \"\\u0028\\u793E\\u0029\",\n  \"\\u3234\",\n  \"\\u0028\\u540D\\u0029\",\n  \"\\u3235\",\n  \"\\u0028\\u7279\\u0029\",\n  \"\\u3236\",\n  \"\\u0028\\u8CA1\\u0029\",\n  \"\\u3237\",\n  \"\\u0028\\u795D\\u0029\",\n  \"\\u3238\",\n  \"\\u0028\\u52B4\\u0029\",\n  \"\\u3239\",\n  \"\\u0028\\u4EE3\\u0029\",\n  \"\\u323A\",\n  \"\\u0028\\u547C\\u0029\",\n  \"\\u323B\",\n  \"\\u0028\\u5B66\\u0029\",\n  \"\\u323C\",\n  \"\\u0028\\u76E3\\u0029\",\n  \"\\u323D\",\n  \"\\u0028\\u4F01\\u0029\",\n  \"\\u323E\",\n  \"\\u0028\\u8CC7\\u0029\",\n  \"\\u323F\",\n  \"\\u0028\\u5354\\u0029\",\n  \"\\u3240\",\n  \"\\u0028\\u796D\\u0029\",\n  \"\\u3241\",\n  \"\\u0028\\u4F11\\u0029\",\n  \"\\u3242\",\n  \"\\u0028\\u81EA\\u0029\",\n  \"\\u3243\",\n  \"\\u0028\\u81F3\\u0029\",\n  \"\\u32C0\",\n  \"\\u0031\\u6708\",\n  \"\\u32C1\",\n  \"\\u0032\\u6708\",\n  \"\\u32C2\",\n  \"\\u0033\\u6708\",\n  \"\\u32C3\",\n  \"\\u0034\\u6708\",\n  \"\\u32C4\",\n  \"\\u0035\\u6708\",\n  \"\\u32C5\",\n  \"\\u0036\\u6708\",\n  \"\\u32C6\",\n  \"\\u0037\\u6708\",\n  \"\\u32C7\",\n  \"\\u0038\\u6708\",\n  \"\\u32C8\",\n  \"\\u0039\\u6708\",\n  \"\\u32C9\",\n  \"\\u0031\\u0030\\u6708\",\n  \"\\u32CA\",\n  \"\\u0031\\u0031\\u6708\",\n  \"\\u32CB\",\n  \"\\u0031\\u0032\\u6708\",\n  \"\\u3358\",\n  \"\\u0030\\u70B9\",\n  \"\\u3359\",\n  \"\\u0031\\u70B9\",\n  \"\\u335A\",\n  \"\\u0032\\u70B9\",\n  \"\\u335B\",\n  \"\\u0033\\u70B9\",\n  \"\\u335C\",\n  \"\\u0034\\u70B9\",\n  \"\\u335D\",\n  \"\\u0035\\u70B9\",\n  \"\\u335E\",\n  \"\\u0036\\u70B9\",\n  \"\\u335F\",\n  \"\\u0037\\u70B9\",\n  \"\\u3360\",\n  \"\\u0038\\u70B9\",\n  \"\\u3361\",\n  \"\\u0039\\u70B9\",\n  \"\\u3362\",\n  \"\\u0031\\u0030\\u70B9\",\n  \"\\u3363\",\n  \"\\u0031\\u0031\\u70B9\",\n  \"\\u3364\",\n  \"\\u0031\\u0032\\u70B9\",\n  \"\\u3365\",\n  \"\\u0031\\u0033\\u70B9\",\n  \"\\u3366\",\n  \"\\u0031\\u0034\\u70B9\",\n  \"\\u3367\",\n  \"\\u0031\\u0035\\u70B9\",\n  \"\\u3368\",\n  \"\\u0031\\u0036\\u70B9\",\n  \"\\u3369\",\n  \"\\u0031\\u0037\\u70B9\",\n  \"\\u336A\",\n  \"\\u0031\\u0038\\u70B9\",\n  \"\\u336B\",\n  \"\\u0031\\u0039\\u70B9\",\n  \"\\u336C\",\n  \"\\u0032\\u0030\\u70B9\",\n  \"\\u336D\",\n  \"\\u0032\\u0031\\u70B9\",\n  \"\\u336E\",\n  \"\\u0032\\u0032\\u70B9\",\n  \"\\u336F\",\n  \"\\u0032\\u0033\\u70B9\",\n  \"\\u3370\",\n  \"\\u0032\\u0034\\u70B9\",\n  \"\\u33E0\",\n  \"\\u0031\\u65E5\",\n  \"\\u33E1\",\n  \"\\u0032\\u65E5\",\n  \"\\u33E2\",\n  \"\\u0033\\u65E5\",\n  \"\\u33E3\",\n  \"\\u0034\\u65E5\",\n  \"\\u33E4\",\n  \"\\u0035\\u65E5\",\n  \"\\u33E5\",\n  \"\\u0036\\u65E5\",\n  \"\\u33E6\",\n  \"\\u0037\\u65E5\",\n  \"\\u33E7\",\n  \"\\u0038\\u65E5\",\n  \"\\u33E8\",\n  \"\\u0039\\u65E5\",\n  \"\\u33E9\",\n  \"\\u0031\\u0030\\u65E5\",\n  \"\\u33EA\",\n  \"\\u0031\\u0031\\u65E5\",\n  \"\\u33EB\",\n  \"\\u0031\\u0032\\u65E5\",\n  \"\\u33EC\",\n  \"\\u0031\\u0033\\u65E5\",\n  \"\\u33ED\",\n  \"\\u0031\\u0034\\u65E5\",\n  \"\\u33EE\",\n  \"\\u0031\\u0035\\u65E5\",\n  \"\\u33EF\",\n  \"\\u0031\\u0036\\u65E5\",\n  \"\\u33F0\",\n  \"\\u0031\\u0037\\u65E5\",\n  \"\\u33F1\",\n  \"\\u0031\\u0038\\u65E5\",\n  \"\\u33F2\",\n  \"\\u0031\\u0039\\u65E5\",\n  \"\\u33F3\",\n  \"\\u0032\\u0030\\u65E5\",\n  \"\\u33F4\",\n  \"\\u0032\\u0031\\u65E5\",\n  \"\\u33F5\",\n  \"\\u0032\\u0032\\u65E5\",\n  \"\\u33F6\",\n  \"\\u0032\\u0033\\u65E5\",\n  \"\\u33F7\",\n  \"\\u0032\\u0034\\u65E5\",\n  \"\\u33F8\",\n  \"\\u0032\\u0035\\u65E5\",\n  \"\\u33F9\",\n  \"\\u0032\\u0036\\u65E5\",\n  \"\\u33FA\",\n  \"\\u0032\\u0037\\u65E5\",\n  \"\\u33FB\",\n  \"\\u0032\\u0038\\u65E5\",\n  \"\\u33FC\",\n  \"\\u0032\\u0039\\u65E5\",\n  \"\\u33FD\",\n  \"\\u0033\\u0030\\u65E5\",\n  \"\\u33FE\",\n  \"\\u0033\\u0031\\u65E5\",\n  \"\\uFB00\",\n  \"\\u0066\\u0066\",\n  \"\\uFB01\",\n  \"\\u0066\\u0069\",\n  \"\\uFB02\",\n  \"\\u0066\\u006C\",\n  \"\\uFB03\",\n  \"\\u0066\\u0066\\u0069\",\n  \"\\uFB04\",\n  \"\\u0066\\u0066\\u006C\",\n  \"\\uFB05\",\n  \"\\u017F\\u0074\",\n  \"\\uFB06\",\n  \"\\u0073\\u0074\",\n  \"\\uFB13\",\n  \"\\u0574\\u0576\",\n  \"\\uFB14\",\n  \"\\u0574\\u0565\",\n  \"\\uFB15\",\n  \"\\u0574\\u056B\",\n  \"\\uFB16\",\n  \"\\u057E\\u0576\",\n  \"\\uFB17\",\n  \"\\u0574\\u056D\",\n  \"\\uFB4F\",\n  \"\\u05D0\\u05DC\",\n  \"\\uFB50\",\n  \"\\u0671\",\n  \"\\uFB51\",\n  \"\\u0671\",\n  \"\\uFB52\",\n  \"\\u067B\",\n  \"\\uFB53\",\n  \"\\u067B\",\n  \"\\uFB54\",\n  \"\\u067B\",\n  \"\\uFB55\",\n  \"\\u067B\",\n  \"\\uFB56\",\n  \"\\u067E\",\n  \"\\uFB57\",\n  \"\\u067E\",\n  \"\\uFB58\",\n  \"\\u067E\",\n  \"\\uFB59\",\n  \"\\u067E\",\n  \"\\uFB5A\",\n  \"\\u0680\",\n  \"\\uFB5B\",\n  \"\\u0680\",\n  \"\\uFB5C\",\n  \"\\u0680\",\n  \"\\uFB5D\",\n  \"\\u0680\",\n  \"\\uFB5E\",\n  \"\\u067A\",\n  \"\\uFB5F\",\n  \"\\u067A\",\n  \"\\uFB60\",\n  \"\\u067A\",\n  \"\\uFB61\",\n  \"\\u067A\",\n  \"\\uFB62\",\n  \"\\u067F\",\n  \"\\uFB63\",\n  \"\\u067F\",\n  \"\\uFB64\",\n  \"\\u067F\",\n  \"\\uFB65\",\n  \"\\u067F\",\n  \"\\uFB66\",\n  \"\\u0679\",\n  \"\\uFB67\",\n  \"\\u0679\",\n  \"\\uFB68\",\n  \"\\u0679\",\n  \"\\uFB69\",\n  \"\\u0679\",\n  \"\\uFB6A\",\n  \"\\u06A4\",\n  \"\\uFB6B\",\n  \"\\u06A4\",\n  \"\\uFB6C\",\n  \"\\u06A4\",\n  \"\\uFB6D\",\n  \"\\u06A4\",\n  \"\\uFB6E\",\n  \"\\u06A6\",\n  \"\\uFB6F\",\n  \"\\u06A6\",\n  \"\\uFB70\",\n  \"\\u06A6\",\n  \"\\uFB71\",\n  \"\\u06A6\",\n  \"\\uFB72\",\n  \"\\u0684\",\n  \"\\uFB73\",\n  \"\\u0684\",\n  \"\\uFB74\",\n  \"\\u0684\",\n  \"\\uFB75\",\n  \"\\u0684\",\n  \"\\uFB76\",\n  \"\\u0683\",\n  \"\\uFB77\",\n  \"\\u0683\",\n  \"\\uFB78\",\n  \"\\u0683\",\n  \"\\uFB79\",\n  \"\\u0683\",\n  \"\\uFB7A\",\n  \"\\u0686\",\n  \"\\uFB7B\",\n  \"\\u0686\",\n  \"\\uFB7C\",\n  \"\\u0686\",\n  \"\\uFB7D\",\n  \"\\u0686\",\n  \"\\uFB7E\",\n  \"\\u0687\",\n  \"\\uFB7F\",\n  \"\\u0687\",\n  \"\\uFB80\",\n  \"\\u0687\",\n  \"\\uFB81\",\n  \"\\u0687\",\n  \"\\uFB82\",\n  \"\\u068D\",\n  \"\\uFB83\",\n  \"\\u068D\",\n  \"\\uFB84\",\n  \"\\u068C\",\n  \"\\uFB85\",\n  \"\\u068C\",\n  \"\\uFB86\",\n  \"\\u068E\",\n  \"\\uFB87\",\n  \"\\u068E\",\n  \"\\uFB88\",\n  \"\\u0688\",\n  \"\\uFB89\",\n  \"\\u0688\",\n  \"\\uFB8A\",\n  \"\\u0698\",\n  \"\\uFB8B\",\n  \"\\u0698\",\n  \"\\uFB8C\",\n  \"\\u0691\",\n  \"\\uFB8D\",\n  \"\\u0691\",\n  \"\\uFB8E\",\n  \"\\u06A9\",\n  \"\\uFB8F\",\n  \"\\u06A9\",\n  \"\\uFB90\",\n  \"\\u06A9\",\n  \"\\uFB91\",\n  \"\\u06A9\",\n  \"\\uFB92\",\n  \"\\u06AF\",\n  \"\\uFB93\",\n  \"\\u06AF\",\n  \"\\uFB94\",\n  \"\\u06AF\",\n  \"\\uFB95\",\n  \"\\u06AF\",\n  \"\\uFB96\",\n  \"\\u06B3\",\n  \"\\uFB97\",\n  \"\\u06B3\",\n  \"\\uFB98\",\n  \"\\u06B3\",\n  \"\\uFB99\",\n  \"\\u06B3\",\n  \"\\uFB9A\",\n  \"\\u06B1\",\n  \"\\uFB9B\",\n  \"\\u06B1\",\n  \"\\uFB9C\",\n  \"\\u06B1\",\n  \"\\uFB9D\",\n  \"\\u06B1\",\n  \"\\uFB9E\",\n  \"\\u06BA\",\n  \"\\uFB9F\",\n  \"\\u06BA\",\n  \"\\uFBA0\",\n  \"\\u06BB\",\n  \"\\uFBA1\",\n  \"\\u06BB\",\n  \"\\uFBA2\",\n  \"\\u06BB\",\n  \"\\uFBA3\",\n  \"\\u06BB\",\n  \"\\uFBA4\",\n  \"\\u06C0\",\n  \"\\uFBA5\",\n  \"\\u06C0\",\n  \"\\uFBA6\",\n  \"\\u06C1\",\n  \"\\uFBA7\",\n  \"\\u06C1\",\n  \"\\uFBA8\",\n  \"\\u06C1\",\n  \"\\uFBA9\",\n  \"\\u06C1\",\n  \"\\uFBAA\",\n  \"\\u06BE\",\n  \"\\uFBAB\",\n  \"\\u06BE\",\n  \"\\uFBAC\",\n  \"\\u06BE\",\n  \"\\uFBAD\",\n  \"\\u06BE\",\n  \"\\uFBAE\",\n  \"\\u06D2\",\n  \"\\uFBAF\",\n  \"\\u06D2\",\n  \"\\uFBB0\",\n  \"\\u06D3\",\n  \"\\uFBB1\",\n  \"\\u06D3\",\n  \"\\uFBD3\",\n  \"\\u06AD\",\n  \"\\uFBD4\",\n  \"\\u06AD\",\n  \"\\uFBD5\",\n  \"\\u06AD\",\n  \"\\uFBD6\",\n  \"\\u06AD\",\n  \"\\uFBD7\",\n  \"\\u06C7\",\n  \"\\uFBD8\",\n  \"\\u06C7\",\n  \"\\uFBD9\",\n  \"\\u06C6\",\n  \"\\uFBDA\",\n  \"\\u06C6\",\n  \"\\uFBDB\",\n  \"\\u06C8\",\n  \"\\uFBDC\",\n  \"\\u06C8\",\n  \"\\uFBDD\",\n  \"\\u0677\",\n  \"\\uFBDE\",\n  \"\\u06CB\",\n  \"\\uFBDF\",\n  \"\\u06CB\",\n  \"\\uFBE0\",\n  \"\\u06C5\",\n  \"\\uFBE1\",\n  \"\\u06C5\",\n  \"\\uFBE2\",\n  \"\\u06C9\",\n  \"\\uFBE3\",\n  \"\\u06C9\",\n  \"\\uFBE4\",\n  \"\\u06D0\",\n  \"\\uFBE5\",\n  \"\\u06D0\",\n  \"\\uFBE6\",\n  \"\\u06D0\",\n  \"\\uFBE7\",\n  \"\\u06D0\",\n  \"\\uFBE8\",\n  \"\\u0649\",\n  \"\\uFBE9\",\n  \"\\u0649\",\n  \"\\uFBEA\",\n  \"\\u0626\\u0627\",\n  \"\\uFBEB\",\n  \"\\u0626\\u0627\",\n  \"\\uFBEC\",\n  \"\\u0626\\u06D5\",\n  \"\\uFBED\",\n  \"\\u0626\\u06D5\",\n  \"\\uFBEE\",\n  \"\\u0626\\u0648\",\n  \"\\uFBEF\",\n  \"\\u0626\\u0648\",\n  \"\\uFBF0\",\n  \"\\u0626\\u06C7\",\n  \"\\uFBF1\",\n  \"\\u0626\\u06C7\",\n  \"\\uFBF2\",\n  \"\\u0626\\u06C6\",\n  \"\\uFBF3\",\n  \"\\u0626\\u06C6\",\n  \"\\uFBF4\",\n  \"\\u0626\\u06C8\",\n  \"\\uFBF5\",\n  \"\\u0626\\u06C8\",\n  \"\\uFBF6\",\n  \"\\u0626\\u06D0\",\n  \"\\uFBF7\",\n  \"\\u0626\\u06D0\",\n  \"\\uFBF8\",\n  \"\\u0626\\u06D0\",\n  \"\\uFBF9\",\n  \"\\u0626\\u0649\",\n  \"\\uFBFA\",\n  \"\\u0626\\u0649\",\n  \"\\uFBFB\",\n  \"\\u0626\\u0649\",\n  \"\\uFBFC\",\n  \"\\u06CC\",\n  \"\\uFBFD\",\n  \"\\u06CC\",\n  \"\\uFBFE\",\n  \"\\u06CC\",\n  \"\\uFBFF\",\n  \"\\u06CC\",\n  \"\\uFC00\",\n  \"\\u0626\\u062C\",\n  \"\\uFC01\",\n  \"\\u0626\\u062D\",\n  \"\\uFC02\",\n  \"\\u0626\\u0645\",\n  \"\\uFC03\",\n  \"\\u0626\\u0649\",\n  \"\\uFC04\",\n  \"\\u0626\\u064A\",\n  \"\\uFC05\",\n  \"\\u0628\\u062C\",\n  \"\\uFC06\",\n  \"\\u0628\\u062D\",\n  \"\\uFC07\",\n  \"\\u0628\\u062E\",\n  \"\\uFC08\",\n  \"\\u0628\\u0645\",\n  \"\\uFC09\",\n  \"\\u0628\\u0649\",\n  \"\\uFC0A\",\n  \"\\u0628\\u064A\",\n  \"\\uFC0B\",\n  \"\\u062A\\u062C\",\n  \"\\uFC0C\",\n  \"\\u062A\\u062D\",\n  \"\\uFC0D\",\n  \"\\u062A\\u062E\",\n  \"\\uFC0E\",\n  \"\\u062A\\u0645\",\n  \"\\uFC0F\",\n  \"\\u062A\\u0649\",\n  \"\\uFC10\",\n  \"\\u062A\\u064A\",\n  \"\\uFC11\",\n  \"\\u062B\\u062C\",\n  \"\\uFC12\",\n  \"\\u062B\\u0645\",\n  \"\\uFC13\",\n  \"\\u062B\\u0649\",\n  \"\\uFC14\",\n  \"\\u062B\\u064A\",\n  \"\\uFC15\",\n  \"\\u062C\\u062D\",\n  \"\\uFC16\",\n  \"\\u062C\\u0645\",\n  \"\\uFC17\",\n  \"\\u062D\\u062C\",\n  \"\\uFC18\",\n  \"\\u062D\\u0645\",\n  \"\\uFC19\",\n  \"\\u062E\\u062C\",\n  \"\\uFC1A\",\n  \"\\u062E\\u062D\",\n  \"\\uFC1B\",\n  \"\\u062E\\u0645\",\n  \"\\uFC1C\",\n  \"\\u0633\\u062C\",\n  \"\\uFC1D\",\n  \"\\u0633\\u062D\",\n  \"\\uFC1E\",\n  \"\\u0633\\u062E\",\n  \"\\uFC1F\",\n  \"\\u0633\\u0645\",\n  \"\\uFC20\",\n  \"\\u0635\\u062D\",\n  \"\\uFC21\",\n  \"\\u0635\\u0645\",\n  \"\\uFC22\",\n  \"\\u0636\\u062C\",\n  \"\\uFC23\",\n  \"\\u0636\\u062D\",\n  \"\\uFC24\",\n  \"\\u0636\\u062E\",\n  \"\\uFC25\",\n  \"\\u0636\\u0645\",\n  \"\\uFC26\",\n  \"\\u0637\\u062D\",\n  \"\\uFC27\",\n  \"\\u0637\\u0645\",\n  \"\\uFC28\",\n  \"\\u0638\\u0645\",\n  \"\\uFC29\",\n  \"\\u0639\\u062C\",\n  \"\\uFC2A\",\n  \"\\u0639\\u0645\",\n  \"\\uFC2B\",\n  \"\\u063A\\u062C\",\n  \"\\uFC2C\",\n  \"\\u063A\\u0645\",\n  \"\\uFC2D\",\n  \"\\u0641\\u062C\",\n  \"\\uFC2E\",\n  \"\\u0641\\u062D\",\n  \"\\uFC2F\",\n  \"\\u0641\\u062E\",\n  \"\\uFC30\",\n  \"\\u0641\\u0645\",\n  \"\\uFC31\",\n  \"\\u0641\\u0649\",\n  \"\\uFC32\",\n  \"\\u0641\\u064A\",\n  \"\\uFC33\",\n  \"\\u0642\\u062D\",\n  \"\\uFC34\",\n  \"\\u0642\\u0645\",\n  \"\\uFC35\",\n  \"\\u0642\\u0649\",\n  \"\\uFC36\",\n  \"\\u0642\\u064A\",\n  \"\\uFC37\",\n  \"\\u0643\\u0627\",\n  \"\\uFC38\",\n  \"\\u0643\\u062C\",\n  \"\\uFC39\",\n  \"\\u0643\\u062D\",\n  \"\\uFC3A\",\n  \"\\u0643\\u062E\",\n  \"\\uFC3B\",\n  \"\\u0643\\u0644\",\n  \"\\uFC3C\",\n  \"\\u0643\\u0645\",\n  \"\\uFC3D\",\n  \"\\u0643\\u0649\",\n  \"\\uFC3E\",\n  \"\\u0643\\u064A\",\n  \"\\uFC3F\",\n  \"\\u0644\\u062C\",\n  \"\\uFC40\",\n  \"\\u0644\\u062D\",\n  \"\\uFC41\",\n  \"\\u0644\\u062E\",\n  \"\\uFC42\",\n  \"\\u0644\\u0645\",\n  \"\\uFC43\",\n  \"\\u0644\\u0649\",\n  \"\\uFC44\",\n  \"\\u0644\\u064A\",\n  \"\\uFC45\",\n  \"\\u0645\\u062C\",\n  \"\\uFC46\",\n  \"\\u0645\\u062D\",\n  \"\\uFC47\",\n  \"\\u0645\\u062E\",\n  \"\\uFC48\",\n  \"\\u0645\\u0645\",\n  \"\\uFC49\",\n  \"\\u0645\\u0649\",\n  \"\\uFC4A\",\n  \"\\u0645\\u064A\",\n  \"\\uFC4B\",\n  \"\\u0646\\u062C\",\n  \"\\uFC4C\",\n  \"\\u0646\\u062D\",\n  \"\\uFC4D\",\n  \"\\u0646\\u062E\",\n  \"\\uFC4E\",\n  \"\\u0646\\u0645\",\n  \"\\uFC4F\",\n  \"\\u0646\\u0649\",\n  \"\\uFC50\",\n  \"\\u0646\\u064A\",\n  \"\\uFC51\",\n  \"\\u0647\\u062C\",\n  \"\\uFC52\",\n  \"\\u0647\\u0645\",\n  \"\\uFC53\",\n  \"\\u0647\\u0649\",\n  \"\\uFC54\",\n  \"\\u0647\\u064A\",\n  \"\\uFC55\",\n  \"\\u064A\\u062C\",\n  \"\\uFC56\",\n  \"\\u064A\\u062D\",\n  \"\\uFC57\",\n  \"\\u064A\\u062E\",\n  \"\\uFC58\",\n  \"\\u064A\\u0645\",\n  \"\\uFC59\",\n  \"\\u064A\\u0649\",\n  \"\\uFC5A\",\n  \"\\u064A\\u064A\",\n  \"\\uFC5B\",\n  \"\\u0630\\u0670\",\n  \"\\uFC5C\",\n  \"\\u0631\\u0670\",\n  \"\\uFC5D\",\n  \"\\u0649\\u0670\",\n  \"\\uFC5E\",\n  \"\\u0020\\u064C\\u0651\",\n  \"\\uFC5F\",\n  \"\\u0020\\u064D\\u0651\",\n  \"\\uFC60\",\n  \"\\u0020\\u064E\\u0651\",\n  \"\\uFC61\",\n  \"\\u0020\\u064F\\u0651\",\n  \"\\uFC62\",\n  \"\\u0020\\u0650\\u0651\",\n  \"\\uFC63\",\n  \"\\u0020\\u0651\\u0670\",\n  \"\\uFC64\",\n  \"\\u0626\\u0631\",\n  \"\\uFC65\",\n  \"\\u0626\\u0632\",\n  \"\\uFC66\",\n  \"\\u0626\\u0645\",\n  \"\\uFC67\",\n  \"\\u0626\\u0646\",\n  \"\\uFC68\",\n  \"\\u0626\\u0649\",\n  \"\\uFC69\",\n  \"\\u0626\\u064A\",\n  \"\\uFC6A\",\n  \"\\u0628\\u0631\",\n  \"\\uFC6B\",\n  \"\\u0628\\u0632\",\n  \"\\uFC6C\",\n  \"\\u0628\\u0645\",\n  \"\\uFC6D\",\n  \"\\u0628\\u0646\",\n  \"\\uFC6E\",\n  \"\\u0628\\u0649\",\n  \"\\uFC6F\",\n  \"\\u0628\\u064A\",\n  \"\\uFC70\",\n  \"\\u062A\\u0631\",\n  \"\\uFC71\",\n  \"\\u062A\\u0632\",\n  \"\\uFC72\",\n  \"\\u062A\\u0645\",\n  \"\\uFC73\",\n  \"\\u062A\\u0646\",\n  \"\\uFC74\",\n  \"\\u062A\\u0649\",\n  \"\\uFC75\",\n  \"\\u062A\\u064A\",\n  \"\\uFC76\",\n  \"\\u062B\\u0631\",\n  \"\\uFC77\",\n  \"\\u062B\\u0632\",\n  \"\\uFC78\",\n  \"\\u062B\\u0645\",\n  \"\\uFC79\",\n  \"\\u062B\\u0646\",\n  \"\\uFC7A\",\n  \"\\u062B\\u0649\",\n  \"\\uFC7B\",\n  \"\\u062B\\u064A\",\n  \"\\uFC7C\",\n  \"\\u0641\\u0649\",\n  \"\\uFC7D\",\n  \"\\u0641\\u064A\",\n  \"\\uFC7E\",\n  \"\\u0642\\u0649\",\n  \"\\uFC7F\",\n  \"\\u0642\\u064A\",\n  \"\\uFC80\",\n  \"\\u0643\\u0627\",\n  \"\\uFC81\",\n  \"\\u0643\\u0644\",\n  \"\\uFC82\",\n  \"\\u0643\\u0645\",\n  \"\\uFC83\",\n  \"\\u0643\\u0649\",\n  \"\\uFC84\",\n  \"\\u0643\\u064A\",\n  \"\\uFC85\",\n  \"\\u0644\\u0645\",\n  \"\\uFC86\",\n  \"\\u0644\\u0649\",\n  \"\\uFC87\",\n  \"\\u0644\\u064A\",\n  \"\\uFC88\",\n  \"\\u0645\\u0627\",\n  \"\\uFC89\",\n  \"\\u0645\\u0645\",\n  \"\\uFC8A\",\n  \"\\u0646\\u0631\",\n  \"\\uFC8B\",\n  \"\\u0646\\u0632\",\n  \"\\uFC8C\",\n  \"\\u0646\\u0645\",\n  \"\\uFC8D\",\n  \"\\u0646\\u0646\",\n  \"\\uFC8E\",\n  \"\\u0646\\u0649\",\n  \"\\uFC8F\",\n  \"\\u0646\\u064A\",\n  \"\\uFC90\",\n  \"\\u0649\\u0670\",\n  \"\\uFC91\",\n  \"\\u064A\\u0631\",\n  \"\\uFC92\",\n  \"\\u064A\\u0632\",\n  \"\\uFC93\",\n  \"\\u064A\\u0645\",\n  \"\\uFC94\",\n  \"\\u064A\\u0646\",\n  \"\\uFC95\",\n  \"\\u064A\\u0649\",\n  \"\\uFC96\",\n  \"\\u064A\\u064A\",\n  \"\\uFC97\",\n  \"\\u0626\\u062C\",\n  \"\\uFC98\",\n  \"\\u0626\\u062D\",\n  \"\\uFC99\",\n  \"\\u0626\\u062E\",\n  \"\\uFC9A\",\n  \"\\u0626\\u0645\",\n  \"\\uFC9B\",\n  \"\\u0626\\u0647\",\n  \"\\uFC9C\",\n  \"\\u0628\\u062C\",\n  \"\\uFC9D\",\n  \"\\u0628\\u062D\",\n  \"\\uFC9E\",\n  \"\\u0628\\u062E\",\n  \"\\uFC9F\",\n  \"\\u0628\\u0645\",\n  \"\\uFCA0\",\n  \"\\u0628\\u0647\",\n  \"\\uFCA1\",\n  \"\\u062A\\u062C\",\n  \"\\uFCA2\",\n  \"\\u062A\\u062D\",\n  \"\\uFCA3\",\n  \"\\u062A\\u062E\",\n  \"\\uFCA4\",\n  \"\\u062A\\u0645\",\n  \"\\uFCA5\",\n  \"\\u062A\\u0647\",\n  \"\\uFCA6\",\n  \"\\u062B\\u0645\",\n  \"\\uFCA7\",\n  \"\\u062C\\u062D\",\n  \"\\uFCA8\",\n  \"\\u062C\\u0645\",\n  \"\\uFCA9\",\n  \"\\u062D\\u062C\",\n  \"\\uFCAA\",\n  \"\\u062D\\u0645\",\n  \"\\uFCAB\",\n  \"\\u062E\\u062C\",\n  \"\\uFCAC\",\n  \"\\u062E\\u0645\",\n  \"\\uFCAD\",\n  \"\\u0633\\u062C\",\n  \"\\uFCAE\",\n  \"\\u0633\\u062D\",\n  \"\\uFCAF\",\n  \"\\u0633\\u062E\",\n  \"\\uFCB0\",\n  \"\\u0633\\u0645\",\n  \"\\uFCB1\",\n  \"\\u0635\\u062D\",\n  \"\\uFCB2\",\n  \"\\u0635\\u062E\",\n  \"\\uFCB3\",\n  \"\\u0635\\u0645\",\n  \"\\uFCB4\",\n  \"\\u0636\\u062C\",\n  \"\\uFCB5\",\n  \"\\u0636\\u062D\",\n  \"\\uFCB6\",\n  \"\\u0636\\u062E\",\n  \"\\uFCB7\",\n  \"\\u0636\\u0645\",\n  \"\\uFCB8\",\n  \"\\u0637\\u062D\",\n  \"\\uFCB9\",\n  \"\\u0638\\u0645\",\n  \"\\uFCBA\",\n  \"\\u0639\\u062C\",\n  \"\\uFCBB\",\n  \"\\u0639\\u0645\",\n  \"\\uFCBC\",\n  \"\\u063A\\u062C\",\n  \"\\uFCBD\",\n  \"\\u063A\\u0645\",\n  \"\\uFCBE\",\n  \"\\u0641\\u062C\",\n  \"\\uFCBF\",\n  \"\\u0641\\u062D\",\n  \"\\uFCC0\",\n  \"\\u0641\\u062E\",\n  \"\\uFCC1\",\n  \"\\u0641\\u0645\",\n  \"\\uFCC2\",\n  \"\\u0642\\u062D\",\n  \"\\uFCC3\",\n  \"\\u0642\\u0645\",\n  \"\\uFCC4\",\n  \"\\u0643\\u062C\",\n  \"\\uFCC5\",\n  \"\\u0643\\u062D\",\n  \"\\uFCC6\",\n  \"\\u0643\\u062E\",\n  \"\\uFCC7\",\n  \"\\u0643\\u0644\",\n  \"\\uFCC8\",\n  \"\\u0643\\u0645\",\n  \"\\uFCC9\",\n  \"\\u0644\\u062C\",\n  \"\\uFCCA\",\n  \"\\u0644\\u062D\",\n  \"\\uFCCB\",\n  \"\\u0644\\u062E\",\n  \"\\uFCCC\",\n  \"\\u0644\\u0645\",\n  \"\\uFCCD\",\n  \"\\u0644\\u0647\",\n  \"\\uFCCE\",\n  \"\\u0645\\u062C\",\n  \"\\uFCCF\",\n  \"\\u0645\\u062D\",\n  \"\\uFCD0\",\n  \"\\u0645\\u062E\",\n  \"\\uFCD1\",\n  \"\\u0645\\u0645\",\n  \"\\uFCD2\",\n  \"\\u0646\\u062C\",\n  \"\\uFCD3\",\n  \"\\u0646\\u062D\",\n  \"\\uFCD4\",\n  \"\\u0646\\u062E\",\n  \"\\uFCD5\",\n  \"\\u0646\\u0645\",\n  \"\\uFCD6\",\n  \"\\u0646\\u0647\",\n  \"\\uFCD7\",\n  \"\\u0647\\u062C\",\n  \"\\uFCD8\",\n  \"\\u0647\\u0645\",\n  \"\\uFCD9\",\n  \"\\u0647\\u0670\",\n  \"\\uFCDA\",\n  \"\\u064A\\u062C\",\n  \"\\uFCDB\",\n  \"\\u064A\\u062D\",\n  \"\\uFCDC\",\n  \"\\u064A\\u062E\",\n  \"\\uFCDD\",\n  \"\\u064A\\u0645\",\n  \"\\uFCDE\",\n  \"\\u064A\\u0647\",\n  \"\\uFCDF\",\n  \"\\u0626\\u0645\",\n  \"\\uFCE0\",\n  \"\\u0626\\u0647\",\n  \"\\uFCE1\",\n  \"\\u0628\\u0645\",\n  \"\\uFCE2\",\n  \"\\u0628\\u0647\",\n  \"\\uFCE3\",\n  \"\\u062A\\u0645\",\n  \"\\uFCE4\",\n  \"\\u062A\\u0647\",\n  \"\\uFCE5\",\n  \"\\u062B\\u0645\",\n  \"\\uFCE6\",\n  \"\\u062B\\u0647\",\n  \"\\uFCE7\",\n  \"\\u0633\\u0645\",\n  \"\\uFCE8\",\n  \"\\u0633\\u0647\",\n  \"\\uFCE9\",\n  \"\\u0634\\u0645\",\n  \"\\uFCEA\",\n  \"\\u0634\\u0647\",\n  \"\\uFCEB\",\n  \"\\u0643\\u0644\",\n  \"\\uFCEC\",\n  \"\\u0643\\u0645\",\n  \"\\uFCED\",\n  \"\\u0644\\u0645\",\n  \"\\uFCEE\",\n  \"\\u0646\\u0645\",\n  \"\\uFCEF\",\n  \"\\u0646\\u0647\",\n  \"\\uFCF0\",\n  \"\\u064A\\u0645\",\n  \"\\uFCF1\",\n  \"\\u064A\\u0647\",\n  \"\\uFCF2\",\n  \"\\u0640\\u064E\\u0651\",\n  \"\\uFCF3\",\n  \"\\u0640\\u064F\\u0651\",\n  \"\\uFCF4\",\n  \"\\u0640\\u0650\\u0651\",\n  \"\\uFCF5\",\n  \"\\u0637\\u0649\",\n  \"\\uFCF6\",\n  \"\\u0637\\u064A\",\n  \"\\uFCF7\",\n  \"\\u0639\\u0649\",\n  \"\\uFCF8\",\n  \"\\u0639\\u064A\",\n  \"\\uFCF9\",\n  \"\\u063A\\u0649\",\n  \"\\uFCFA\",\n  \"\\u063A\\u064A\",\n  \"\\uFCFB\",\n  \"\\u0633\\u0649\",\n  \"\\uFCFC\",\n  \"\\u0633\\u064A\",\n  \"\\uFCFD\",\n  \"\\u0634\\u0649\",\n  \"\\uFCFE\",\n  \"\\u0634\\u064A\",\n  \"\\uFCFF\",\n  \"\\u062D\\u0649\",\n  \"\\uFD00\",\n  \"\\u062D\\u064A\",\n  \"\\uFD01\",\n  \"\\u062C\\u0649\",\n  \"\\uFD02\",\n  \"\\u062C\\u064A\",\n  \"\\uFD03\",\n  \"\\u062E\\u0649\",\n  \"\\uFD04\",\n  \"\\u062E\\u064A\",\n  \"\\uFD05\",\n  \"\\u0635\\u0649\",\n  \"\\uFD06\",\n  \"\\u0635\\u064A\",\n  \"\\uFD07\",\n  \"\\u0636\\u0649\",\n  \"\\uFD08\",\n  \"\\u0636\\u064A\",\n  \"\\uFD09\",\n  \"\\u0634\\u062C\",\n  \"\\uFD0A\",\n  \"\\u0634\\u062D\",\n  \"\\uFD0B\",\n  \"\\u0634\\u062E\",\n  \"\\uFD0C\",\n  \"\\u0634\\u0645\",\n  \"\\uFD0D\",\n  \"\\u0634\\u0631\",\n  \"\\uFD0E\",\n  \"\\u0633\\u0631\",\n  \"\\uFD0F\",\n  \"\\u0635\\u0631\",\n  \"\\uFD10\",\n  \"\\u0636\\u0631\",\n  \"\\uFD11\",\n  \"\\u0637\\u0649\",\n  \"\\uFD12\",\n  \"\\u0637\\u064A\",\n  \"\\uFD13\",\n  \"\\u0639\\u0649\",\n  \"\\uFD14\",\n  \"\\u0639\\u064A\",\n  \"\\uFD15\",\n  \"\\u063A\\u0649\",\n  \"\\uFD16\",\n  \"\\u063A\\u064A\",\n  \"\\uFD17\",\n  \"\\u0633\\u0649\",\n  \"\\uFD18\",\n  \"\\u0633\\u064A\",\n  \"\\uFD19\",\n  \"\\u0634\\u0649\",\n  \"\\uFD1A\",\n  \"\\u0634\\u064A\",\n  \"\\uFD1B\",\n  \"\\u062D\\u0649\",\n  \"\\uFD1C\",\n  \"\\u062D\\u064A\",\n  \"\\uFD1D\",\n  \"\\u062C\\u0649\",\n  \"\\uFD1E\",\n  \"\\u062C\\u064A\",\n  \"\\uFD1F\",\n  \"\\u062E\\u0649\",\n  \"\\uFD20\",\n  \"\\u062E\\u064A\",\n  \"\\uFD21\",\n  \"\\u0635\\u0649\",\n  \"\\uFD22\",\n  \"\\u0635\\u064A\",\n  \"\\uFD23\",\n  \"\\u0636\\u0649\",\n  \"\\uFD24\",\n  \"\\u0636\\u064A\",\n  \"\\uFD25\",\n  \"\\u0634\\u062C\",\n  \"\\uFD26\",\n  \"\\u0634\\u062D\",\n  \"\\uFD27\",\n  \"\\u0634\\u062E\",\n  \"\\uFD28\",\n  \"\\u0634\\u0645\",\n  \"\\uFD29\",\n  \"\\u0634\\u0631\",\n  \"\\uFD2A\",\n  \"\\u0633\\u0631\",\n  \"\\uFD2B\",\n  \"\\u0635\\u0631\",\n  \"\\uFD2C\",\n  \"\\u0636\\u0631\",\n  \"\\uFD2D\",\n  \"\\u0634\\u062C\",\n  \"\\uFD2E\",\n  \"\\u0634\\u062D\",\n  \"\\uFD2F\",\n  \"\\u0634\\u062E\",\n  \"\\uFD30\",\n  \"\\u0634\\u0645\",\n  \"\\uFD31\",\n  \"\\u0633\\u0647\",\n  \"\\uFD32\",\n  \"\\u0634\\u0647\",\n  \"\\uFD33\",\n  \"\\u0637\\u0645\",\n  \"\\uFD34\",\n  \"\\u0633\\u062C\",\n  \"\\uFD35\",\n  \"\\u0633\\u062D\",\n  \"\\uFD36\",\n  \"\\u0633\\u062E\",\n  \"\\uFD37\",\n  \"\\u0634\\u062C\",\n  \"\\uFD38\",\n  \"\\u0634\\u062D\",\n  \"\\uFD39\",\n  \"\\u0634\\u062E\",\n  \"\\uFD3A\",\n  \"\\u0637\\u0645\",\n  \"\\uFD3B\",\n  \"\\u0638\\u0645\",\n  \"\\uFD3C\",\n  \"\\u0627\\u064B\",\n  \"\\uFD3D\",\n  \"\\u0627\\u064B\",\n  \"\\uFD50\",\n  \"\\u062A\\u062C\\u0645\",\n  \"\\uFD51\",\n  \"\\u062A\\u062D\\u062C\",\n  \"\\uFD52\",\n  \"\\u062A\\u062D\\u062C\",\n  \"\\uFD53\",\n  \"\\u062A\\u062D\\u0645\",\n  \"\\uFD54\",\n  \"\\u062A\\u062E\\u0645\",\n  \"\\uFD55\",\n  \"\\u062A\\u0645\\u062C\",\n  \"\\uFD56\",\n  \"\\u062A\\u0645\\u062D\",\n  \"\\uFD57\",\n  \"\\u062A\\u0645\\u062E\",\n  \"\\uFD58\",\n  \"\\u062C\\u0645\\u062D\",\n  \"\\uFD59\",\n  \"\\u062C\\u0645\\u062D\",\n  \"\\uFD5A\",\n  \"\\u062D\\u0645\\u064A\",\n  \"\\uFD5B\",\n  \"\\u062D\\u0645\\u0649\",\n  \"\\uFD5C\",\n  \"\\u0633\\u062D\\u062C\",\n  \"\\uFD5D\",\n  \"\\u0633\\u062C\\u062D\",\n  \"\\uFD5E\",\n  \"\\u0633\\u062C\\u0649\",\n  \"\\uFD5F\",\n  \"\\u0633\\u0645\\u062D\",\n  \"\\uFD60\",\n  \"\\u0633\\u0645\\u062D\",\n  \"\\uFD61\",\n  \"\\u0633\\u0645\\u062C\",\n  \"\\uFD62\",\n  \"\\u0633\\u0645\\u0645\",\n  \"\\uFD63\",\n  \"\\u0633\\u0645\\u0645\",\n  \"\\uFD64\",\n  \"\\u0635\\u062D\\u062D\",\n  \"\\uFD65\",\n  \"\\u0635\\u062D\\u062D\",\n  \"\\uFD66\",\n  \"\\u0635\\u0645\\u0645\",\n  \"\\uFD67\",\n  \"\\u0634\\u062D\\u0645\",\n  \"\\uFD68\",\n  \"\\u0634\\u062D\\u0645\",\n  \"\\uFD69\",\n  \"\\u0634\\u062C\\u064A\",\n  \"\\uFD6A\",\n  \"\\u0634\\u0645\\u062E\",\n  \"\\uFD6B\",\n  \"\\u0634\\u0645\\u062E\",\n  \"\\uFD6C\",\n  \"\\u0634\\u0645\\u0645\",\n  \"\\uFD6D\",\n  \"\\u0634\\u0645\\u0645\",\n  \"\\uFD6E\",\n  \"\\u0636\\u062D\\u0649\",\n  \"\\uFD6F\",\n  \"\\u0636\\u062E\\u0645\",\n  \"\\uFD70\",\n  \"\\u0636\\u062E\\u0645\",\n  \"\\uFD71\",\n  \"\\u0637\\u0645\\u062D\",\n  \"\\uFD72\",\n  \"\\u0637\\u0645\\u062D\",\n  \"\\uFD73\",\n  \"\\u0637\\u0645\\u0645\",\n  \"\\uFD74\",\n  \"\\u0637\\u0645\\u064A\",\n  \"\\uFD75\",\n  \"\\u0639\\u062C\\u0645\",\n  \"\\uFD76\",\n  \"\\u0639\\u0645\\u0645\",\n  \"\\uFD77\",\n  \"\\u0639\\u0645\\u0645\",\n  \"\\uFD78\",\n  \"\\u0639\\u0645\\u0649\",\n  \"\\uFD79\",\n  \"\\u063A\\u0645\\u0645\",\n  \"\\uFD7A\",\n  \"\\u063A\\u0645\\u064A\",\n  \"\\uFD7B\",\n  \"\\u063A\\u0645\\u0649\",\n  \"\\uFD7C\",\n  \"\\u0641\\u062E\\u0645\",\n  \"\\uFD7D\",\n  \"\\u0641\\u062E\\u0645\",\n  \"\\uFD7E\",\n  \"\\u0642\\u0645\\u062D\",\n  \"\\uFD7F\",\n  \"\\u0642\\u0645\\u0645\",\n  \"\\uFD80\",\n  \"\\u0644\\u062D\\u0645\",\n  \"\\uFD81\",\n  \"\\u0644\\u062D\\u064A\",\n  \"\\uFD82\",\n  \"\\u0644\\u062D\\u0649\",\n  \"\\uFD83\",\n  \"\\u0644\\u062C\\u062C\",\n  \"\\uFD84\",\n  \"\\u0644\\u062C\\u062C\",\n  \"\\uFD85\",\n  \"\\u0644\\u062E\\u0645\",\n  \"\\uFD86\",\n  \"\\u0644\\u062E\\u0645\",\n  \"\\uFD87\",\n  \"\\u0644\\u0645\\u062D\",\n  \"\\uFD88\",\n  \"\\u0644\\u0645\\u062D\",\n  \"\\uFD89\",\n  \"\\u0645\\u062D\\u062C\",\n  \"\\uFD8A\",\n  \"\\u0645\\u062D\\u0645\",\n  \"\\uFD8B\",\n  \"\\u0645\\u062D\\u064A\",\n  \"\\uFD8C\",\n  \"\\u0645\\u062C\\u062D\",\n  \"\\uFD8D\",\n  \"\\u0645\\u062C\\u0645\",\n  \"\\uFD8E\",\n  \"\\u0645\\u062E\\u062C\",\n  \"\\uFD8F\",\n  \"\\u0645\\u062E\\u0645\",\n  \"\\uFD92\",\n  \"\\u0645\\u062C\\u062E\",\n  \"\\uFD93\",\n  \"\\u0647\\u0645\\u062C\",\n  \"\\uFD94\",\n  \"\\u0647\\u0645\\u0645\",\n  \"\\uFD95\",\n  \"\\u0646\\u062D\\u0645\",\n  \"\\uFD96\",\n  \"\\u0646\\u062D\\u0649\",\n  \"\\uFD97\",\n  \"\\u0646\\u062C\\u0645\",\n  \"\\uFD98\",\n  \"\\u0646\\u062C\\u0645\",\n  \"\\uFD99\",\n  \"\\u0646\\u062C\\u0649\",\n  \"\\uFD9A\",\n  \"\\u0646\\u0645\\u064A\",\n  \"\\uFD9B\",\n  \"\\u0646\\u0645\\u0649\",\n  \"\\uFD9C\",\n  \"\\u064A\\u0645\\u0645\",\n  \"\\uFD9D\",\n  \"\\u064A\\u0645\\u0645\",\n  \"\\uFD9E\",\n  \"\\u0628\\u062E\\u064A\",\n  \"\\uFD9F\",\n  \"\\u062A\\u062C\\u064A\",\n  \"\\uFDA0\",\n  \"\\u062A\\u062C\\u0649\",\n  \"\\uFDA1\",\n  \"\\u062A\\u062E\\u064A\",\n  \"\\uFDA2\",\n  \"\\u062A\\u062E\\u0649\",\n  \"\\uFDA3\",\n  \"\\u062A\\u0645\\u064A\",\n  \"\\uFDA4\",\n  \"\\u062A\\u0645\\u0649\",\n  \"\\uFDA5\",\n  \"\\u062C\\u0645\\u064A\",\n  \"\\uFDA6\",\n  \"\\u062C\\u062D\\u0649\",\n  \"\\uFDA7\",\n  \"\\u062C\\u0645\\u0649\",\n  \"\\uFDA8\",\n  \"\\u0633\\u062E\\u0649\",\n  \"\\uFDA9\",\n  \"\\u0635\\u062D\\u064A\",\n  \"\\uFDAA\",\n  \"\\u0634\\u062D\\u064A\",\n  \"\\uFDAB\",\n  \"\\u0636\\u062D\\u064A\",\n  \"\\uFDAC\",\n  \"\\u0644\\u062C\\u064A\",\n  \"\\uFDAD\",\n  \"\\u0644\\u0645\\u064A\",\n  \"\\uFDAE\",\n  \"\\u064A\\u062D\\u064A\",\n  \"\\uFDAF\",\n  \"\\u064A\\u062C\\u064A\",\n  \"\\uFDB0\",\n  \"\\u064A\\u0645\\u064A\",\n  \"\\uFDB1\",\n  \"\\u0645\\u0645\\u064A\",\n  \"\\uFDB2\",\n  \"\\u0642\\u0645\\u064A\",\n  \"\\uFDB3\",\n  \"\\u0646\\u062D\\u064A\",\n  \"\\uFDB4\",\n  \"\\u0642\\u0645\\u062D\",\n  \"\\uFDB5\",\n  \"\\u0644\\u062D\\u0645\",\n  \"\\uFDB6\",\n  \"\\u0639\\u0645\\u064A\",\n  \"\\uFDB7\",\n  \"\\u0643\\u0645\\u064A\",\n  \"\\uFDB8\",\n  \"\\u0646\\u062C\\u062D\",\n  \"\\uFDB9\",\n  \"\\u0645\\u062E\\u064A\",\n  \"\\uFDBA\",\n  \"\\u0644\\u062C\\u0645\",\n  \"\\uFDBB\",\n  \"\\u0643\\u0645\\u0645\",\n  \"\\uFDBC\",\n  \"\\u0644\\u062C\\u0645\",\n  \"\\uFDBD\",\n  \"\\u0646\\u062C\\u062D\",\n  \"\\uFDBE\",\n  \"\\u062C\\u062D\\u064A\",\n  \"\\uFDBF\",\n  \"\\u062D\\u062C\\u064A\",\n  \"\\uFDC0\",\n  \"\\u0645\\u062C\\u064A\",\n  \"\\uFDC1\",\n  \"\\u0641\\u0645\\u064A\",\n  \"\\uFDC2\",\n  \"\\u0628\\u062D\\u064A\",\n  \"\\uFDC3\",\n  \"\\u0643\\u0645\\u0645\",\n  \"\\uFDC4\",\n  \"\\u0639\\u062C\\u0645\",\n  \"\\uFDC5\",\n  \"\\u0635\\u0645\\u0645\",\n  \"\\uFDC6\",\n  \"\\u0633\\u062E\\u064A\",\n  \"\\uFDC7\",\n  \"\\u0646\\u062C\\u064A\",\n  \"\\uFE49\",\n  \"\\u203E\",\n  \"\\uFE4A\",\n  \"\\u203E\",\n  \"\\uFE4B\",\n  \"\\u203E\",\n  \"\\uFE4C\",\n  \"\\u203E\",\n  \"\\uFE4D\",\n  \"\\u005F\",\n  \"\\uFE4E\",\n  \"\\u005F\",\n  \"\\uFE4F\",\n  \"\\u005F\",\n  \"\\uFE80\",\n  \"\\u0621\",\n  \"\\uFE81\",\n  \"\\u0622\",\n  \"\\uFE82\",\n  \"\\u0622\",\n  \"\\uFE83\",\n  \"\\u0623\",\n  \"\\uFE84\",\n  \"\\u0623\",\n  \"\\uFE85\",\n  \"\\u0624\",\n  \"\\uFE86\",\n  \"\\u0624\",\n  \"\\uFE87\",\n  \"\\u0625\",\n  \"\\uFE88\",\n  \"\\u0625\",\n  \"\\uFE89\",\n  \"\\u0626\",\n  \"\\uFE8A\",\n  \"\\u0626\",\n  \"\\uFE8B\",\n  \"\\u0626\",\n  \"\\uFE8C\",\n  \"\\u0626\",\n  \"\\uFE8D\",\n  \"\\u0627\",\n  \"\\uFE8E\",\n  \"\\u0627\",\n  \"\\uFE8F\",\n  \"\\u0628\",\n  \"\\uFE90\",\n  \"\\u0628\",\n  \"\\uFE91\",\n  \"\\u0628\",\n  \"\\uFE92\",\n  \"\\u0628\",\n  \"\\uFE93\",\n  \"\\u0629\",\n  \"\\uFE94\",\n  \"\\u0629\",\n  \"\\uFE95\",\n  \"\\u062A\",\n  \"\\uFE96\",\n  \"\\u062A\",\n  \"\\uFE97\",\n  \"\\u062A\",\n  \"\\uFE98\",\n  \"\\u062A\",\n  \"\\uFE99\",\n  \"\\u062B\",\n  \"\\uFE9A\",\n  \"\\u062B\",\n  \"\\uFE9B\",\n  \"\\u062B\",\n  \"\\uFE9C\",\n  \"\\u062B\",\n  \"\\uFE9D\",\n  \"\\u062C\",\n  \"\\uFE9E\",\n  \"\\u062C\",\n  \"\\uFE9F\",\n  \"\\u062C\",\n  \"\\uFEA0\",\n  \"\\u062C\",\n  \"\\uFEA1\",\n  \"\\u062D\",\n  \"\\uFEA2\",\n  \"\\u062D\",\n  \"\\uFEA3\",\n  \"\\u062D\",\n  \"\\uFEA4\",\n  \"\\u062D\",\n  \"\\uFEA5\",\n  \"\\u062E\",\n  \"\\uFEA6\",\n  \"\\u062E\",\n  \"\\uFEA7\",\n  \"\\u062E\",\n  \"\\uFEA8\",\n  \"\\u062E\",\n  \"\\uFEA9\",\n  \"\\u062F\",\n  \"\\uFEAA\",\n  \"\\u062F\",\n  \"\\uFEAB\",\n  \"\\u0630\",\n  \"\\uFEAC\",\n  \"\\u0630\",\n  \"\\uFEAD\",\n  \"\\u0631\",\n  \"\\uFEAE\",\n  \"\\u0631\",\n  \"\\uFEAF\",\n  \"\\u0632\",\n  \"\\uFEB0\",\n  \"\\u0632\",\n  \"\\uFEB1\",\n  \"\\u0633\",\n  \"\\uFEB2\",\n  \"\\u0633\",\n  \"\\uFEB3\",\n  \"\\u0633\",\n  \"\\uFEB4\",\n  \"\\u0633\",\n  \"\\uFEB5\",\n  \"\\u0634\",\n  \"\\uFEB6\",\n  \"\\u0634\",\n  \"\\uFEB7\",\n  \"\\u0634\",\n  \"\\uFEB8\",\n  \"\\u0634\",\n  \"\\uFEB9\",\n  \"\\u0635\",\n  \"\\uFEBA\",\n  \"\\u0635\",\n  \"\\uFEBB\",\n  \"\\u0635\",\n  \"\\uFEBC\",\n  \"\\u0635\",\n  \"\\uFEBD\",\n  \"\\u0636\",\n  \"\\uFEBE\",\n  \"\\u0636\",\n  \"\\uFEBF\",\n  \"\\u0636\",\n  \"\\uFEC0\",\n  \"\\u0636\",\n  \"\\uFEC1\",\n  \"\\u0637\",\n  \"\\uFEC2\",\n  \"\\u0637\",\n  \"\\uFEC3\",\n  \"\\u0637\",\n  \"\\uFEC4\",\n  \"\\u0637\",\n  \"\\uFEC5\",\n  \"\\u0638\",\n  \"\\uFEC6\",\n  \"\\u0638\",\n  \"\\uFEC7\",\n  \"\\u0638\",\n  \"\\uFEC8\",\n  \"\\u0638\",\n  \"\\uFEC9\",\n  \"\\u0639\",\n  \"\\uFECA\",\n  \"\\u0639\",\n  \"\\uFECB\",\n  \"\\u0639\",\n  \"\\uFECC\",\n  \"\\u0639\",\n  \"\\uFECD\",\n  \"\\u063A\",\n  \"\\uFECE\",\n  \"\\u063A\",\n  \"\\uFECF\",\n  \"\\u063A\",\n  \"\\uFED0\",\n  \"\\u063A\",\n  \"\\uFED1\",\n  \"\\u0641\",\n  \"\\uFED2\",\n  \"\\u0641\",\n  \"\\uFED3\",\n  \"\\u0641\",\n  \"\\uFED4\",\n  \"\\u0641\",\n  \"\\uFED5\",\n  \"\\u0642\",\n  \"\\uFED6\",\n  \"\\u0642\",\n  \"\\uFED7\",\n  \"\\u0642\",\n  \"\\uFED8\",\n  \"\\u0642\",\n  \"\\uFED9\",\n  \"\\u0643\",\n  \"\\uFEDA\",\n  \"\\u0643\",\n  \"\\uFEDB\",\n  \"\\u0643\",\n  \"\\uFEDC\",\n  \"\\u0643\",\n  \"\\uFEDD\",\n  \"\\u0644\",\n  \"\\uFEDE\",\n  \"\\u0644\",\n  \"\\uFEDF\",\n  \"\\u0644\",\n  \"\\uFEE0\",\n  \"\\u0644\",\n  \"\\uFEE1\",\n  \"\\u0645\",\n  \"\\uFEE2\",\n  \"\\u0645\",\n  \"\\uFEE3\",\n  \"\\u0645\",\n  \"\\uFEE4\",\n  \"\\u0645\",\n  \"\\uFEE5\",\n  \"\\u0646\",\n  \"\\uFEE6\",\n  \"\\u0646\",\n  \"\\uFEE7\",\n  \"\\u0646\",\n  \"\\uFEE8\",\n  \"\\u0646\",\n  \"\\uFEE9\",\n  \"\\u0647\",\n  \"\\uFEEA\",\n  \"\\u0647\",\n  \"\\uFEEB\",\n  \"\\u0647\",\n  \"\\uFEEC\",\n  \"\\u0647\",\n  \"\\uFEED\",\n  \"\\u0648\",\n  \"\\uFEEE\",\n  \"\\u0648\",\n  \"\\uFEEF\",\n  \"\\u0649\",\n  \"\\uFEF0\",\n  \"\\u0649\",\n  \"\\uFEF1\",\n  \"\\u064A\",\n  \"\\uFEF2\",\n  \"\\u064A\",\n  \"\\uFEF3\",\n  \"\\u064A\",\n  \"\\uFEF4\",\n  \"\\u064A\",\n  \"\\uFEF5\",\n  \"\\u0644\\u0622\",\n  \"\\uFEF6\",\n  \"\\u0644\\u0622\",\n  \"\\uFEF7\",\n  \"\\u0644\\u0623\",\n  \"\\uFEF8\",\n  \"\\u0644\\u0623\",\n  \"\\uFEF9\",\n  \"\\u0644\\u0625\",\n  \"\\uFEFA\",\n  \"\\u0644\\u0625\",\n  \"\\uFEFB\",\n  \"\\u0644\\u0627\",\n  \"\\uFEFC\",\n  \"\\u0644\\u0627\"\n ];\n});\nfunction reverseIfRtl(chars) {\n const charsLength = chars.length;\n if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) {\n  return chars;\n }\n const buf = [];\n for (let ii = charsLength - 1; ii >= 0; ii--) {\n  buf.push(chars[ii]);\n }\n return buf.join(\"\");\n}\nconst SpecialCharRegExp = new RegExp(\"^(\\\\s)|(\\\\p{Mn})|(\\\\p{Cf})$\", \"u\");\nconst CategoryCache = new Map();\nfunction getCharUnicodeCategory(char) {\n const cachedCategory = CategoryCache.get(char);\n if (cachedCategory) {\n  return cachedCategory;\n }\n const groups = char.match(SpecialCharRegExp);\n const category = {\n  isWhitespace: !!(groups && groups[1]),\n  isZeroWidthDiacritic: !!(groups && groups[2]),\n  isInvisibleFormatMark: !!(groups && groups[3])\n };\n CategoryCache.set(char, category);\n return category;\n}\nfunction clearUnicodeCaches() {\n CategoryCache.clear();\n}\n\n\n/***/ }),\n/* 166 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.getSerifFonts = exports.getNonStdFontMap = exports.getGlyphMapForStandardFonts = exports.getFontNameToFileMap = void 0;\nexports.getStandardFontName = getStandardFontName;\nexports.getSymbolsFonts = exports.getSupplementalGlyphMapForCalibri = exports.getSupplementalGlyphMapForArialBlack = exports.getStdFontMap = void 0;\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _fonts_utils = __w_pdfjs_require__(163);\n\nconst getStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t[\"Times-Roman\"] = \"Times-Roman\";\n  t.Helvetica = \"Helvetica\";\n  t.Courier = \"Courier\";\n  t.Symbol = \"Symbol\";\n  t[\"Times-Bold\"] = \"Times-Bold\";\n  t[\"Helvetica-Bold\"] = \"Helvetica-Bold\";\n  t[\"Courier-Bold\"] = \"Courier-Bold\";\n  t.ZapfDingbats = \"ZapfDingbats\";\n  t[\"Times-Italic\"] = \"Times-Italic\";\n  t[\"Helvetica-Oblique\"] = \"Helvetica-Oblique\";\n  t[\"Courier-Oblique\"] = \"Courier-Oblique\";\n  t[\"Times-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"Helvetica-BoldOblique\"] = \"Helvetica-BoldOblique\";\n  t[\"Courier-BoldOblique\"] = \"Courier-BoldOblique\";\n  t.ArialNarrow = \"Helvetica\";\n  t[\"ArialNarrow-Bold\"] = \"Helvetica-Bold\";\n  t[\"ArialNarrow-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ArialNarrow-Italic\"] = \"Helvetica-Oblique\";\n  t.ArialBlack = \"Helvetica\";\n  t[\"ArialBlack-Bold\"] = \"Helvetica-Bold\";\n  t[\"ArialBlack-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ArialBlack-Italic\"] = \"Helvetica-Oblique\";\n  t[\"Arial-Black\"] = \"Helvetica\";\n  t[\"Arial-Black-Bold\"] = \"Helvetica-Bold\";\n  t[\"Arial-Black-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-Black-Italic\"] = \"Helvetica-Oblique\";\n  t.Arial = \"Helvetica\";\n  t[\"Arial-Bold\"] = \"Helvetica-Bold\";\n  t[\"Arial-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-Italic\"] = \"Helvetica-Oblique\";\n  t.ArialMT = \"Helvetica\";\n  t[\"Arial-BoldItalicMT\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-BoldMT\"] = \"Helvetica-Bold\";\n  t[\"Arial-ItalicMT\"] = \"Helvetica-Oblique\";\n  t.ArialUnicodeMS = \"Helvetica\";\n  t[\"ArialUnicodeMS-Bold\"] = \"Helvetica-Bold\";\n  t[\"ArialUnicodeMS-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ArialUnicodeMS-Italic\"] = \"Helvetica-Oblique\";\n  t[\"Courier-BoldItalic\"] = \"Courier-BoldOblique\";\n  t[\"Courier-Italic\"] = \"Courier-Oblique\";\n  t.CourierNew = \"Courier\";\n  t[\"CourierNew-Bold\"] = \"Courier-Bold\";\n  t[\"CourierNew-BoldItalic\"] = \"Courier-BoldOblique\";\n  t[\"CourierNew-Italic\"] = \"Courier-Oblique\";\n  t[\"CourierNewPS-BoldItalicMT\"] = \"Courier-BoldOblique\";\n  t[\"CourierNewPS-BoldMT\"] = \"Courier-Bold\";\n  t[\"CourierNewPS-ItalicMT\"] = \"Courier-Oblique\";\n  t.CourierNewPSMT = \"Courier\";\n  t[\"Helvetica-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Helvetica-Italic\"] = \"Helvetica-Oblique\";\n  t[\"Symbol-Bold\"] = \"Symbol\";\n  t[\"Symbol-BoldItalic\"] = \"Symbol\";\n  t[\"Symbol-Italic\"] = \"Symbol\";\n  t.TimesNewRoman = \"Times-Roman\";\n  t[\"TimesNewRoman-Bold\"] = \"Times-Bold\";\n  t[\"TimesNewRoman-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRoman-Italic\"] = \"Times-Italic\";\n  t.TimesNewRomanPS = \"Times-Roman\";\n  t[\"TimesNewRomanPS-Bold\"] = \"Times-Bold\";\n  t[\"TimesNewRomanPS-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRomanPS-BoldItalicMT\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRomanPS-BoldMT\"] = \"Times-Bold\";\n  t[\"TimesNewRomanPS-Italic\"] = \"Times-Italic\";\n  t[\"TimesNewRomanPS-ItalicMT\"] = \"Times-Italic\";\n  t.TimesNewRomanPSMT = \"Times-Roman\";\n  t[\"TimesNewRomanPSMT-Bold\"] = \"Times-Bold\";\n  t[\"TimesNewRomanPSMT-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRomanPSMT-Italic\"] = \"Times-Italic\";\n});\nexports.getStdFontMap = getStdFontMap;\nconst getFontNameToFileMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t.Courier = \"FoxitFixed.pfb\";\n  t[\"Courier-Bold\"] = \"FoxitFixedBold.pfb\";\n  t[\"Courier-BoldOblique\"] = \"FoxitFixedBoldItalic.pfb\";\n  t[\"Courier-Oblique\"] = \"FoxitFixedItalic.pfb\";\n  t.Helvetica = \"FoxitSans.pfb\";\n  t[\"Helvetica-Bold\"] = \"FoxitSansBold.pfb\";\n  t[\"Helvetica-BoldOblique\"] = \"FoxitSansBoldItalic.pfb\";\n  t[\"Helvetica-Oblique\"] = \"FoxitSansItalic.pfb\";\n  t[\"Times-Roman\"] = \"FoxitSerif.pfb\";\n  t[\"Times-Bold\"] = \"FoxitSerifBold.pfb\";\n  t[\"Times-BoldItalic\"] = \"FoxitSerifBoldItalic.pfb\";\n  t[\"Times-Italic\"] = \"FoxitSerifItalic.pfb\";\n  t.Symbol = \"FoxitSymbol.pfb\";\n  t.ZapfDingbats = \"FoxitDingbats.pfb\";\n  t[\"LiberationSans-Regular\"] = \"LiberationSans-Regular.ttf\";\n  t[\"LiberationSans-Bold\"] = \"LiberationSans-Bold.ttf\";\n  t[\"LiberationSans-Italic\"] = \"LiberationSans-Italic.ttf\";\n  t[\"LiberationSans-BoldItalic\"] = \"LiberationSans-BoldItalic.ttf\";\n});\nexports.getFontNameToFileMap = getFontNameToFileMap;\nconst getNonStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t.Calibri = \"Helvetica\";\n  t[\"Calibri-Bold\"] = \"Helvetica-Bold\";\n  t[\"Calibri-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Calibri-Italic\"] = \"Helvetica-Oblique\";\n  t.CenturyGothic = \"Helvetica\";\n  t[\"CenturyGothic-Bold\"] = \"Helvetica-Bold\";\n  t[\"CenturyGothic-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"CenturyGothic-Italic\"] = \"Helvetica-Oblique\";\n  t.ComicSansMS = \"Comic Sans MS\";\n  t[\"ComicSansMS-Bold\"] = \"Comic Sans MS-Bold\";\n  t[\"ComicSansMS-BoldItalic\"] = \"Comic Sans MS-BoldItalic\";\n  t[\"ComicSansMS-Italic\"] = \"Comic Sans MS-Italic\";\n  t[\"ItcSymbol-Bold\"] = \"Helvetica-Bold\";\n  t[\"ItcSymbol-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ItcSymbol-Book\"] = \"Helvetica\";\n  t[\"ItcSymbol-BookItalic\"] = \"Helvetica-Oblique\";\n  t[\"ItcSymbol-Medium\"] = \"Helvetica\";\n  t[\"ItcSymbol-MediumItalic\"] = \"Helvetica-Oblique\";\n  t.LucidaConsole = \"Courier\";\n  t[\"LucidaConsole-Bold\"] = \"Courier-Bold\";\n  t[\"LucidaConsole-BoldItalic\"] = \"Courier-BoldOblique\";\n  t[\"LucidaConsole-Italic\"] = \"Courier-Oblique\";\n  t[\"LucidaSans-Demi\"] = \"Helvetica-Bold\";\n  t[\"MS-Gothic\"] = \"MS Gothic\";\n  t[\"MS-Gothic-Bold\"] = \"MS Gothic-Bold\";\n  t[\"MS-Gothic-BoldItalic\"] = \"MS Gothic-BoldItalic\";\n  t[\"MS-Gothic-Italic\"] = \"MS Gothic-Italic\";\n  t[\"MS-Mincho\"] = \"MS Mincho\";\n  t[\"MS-Mincho-Bold\"] = \"MS Mincho-Bold\";\n  t[\"MS-Mincho-BoldItalic\"] = \"MS Mincho-BoldItalic\";\n  t[\"MS-Mincho-Italic\"] = \"MS Mincho-Italic\";\n  t[\"MS-PGothic\"] = \"MS PGothic\";\n  t[\"MS-PGothic-Bold\"] = \"MS PGothic-Bold\";\n  t[\"MS-PGothic-BoldItalic\"] = \"MS PGothic-BoldItalic\";\n  t[\"MS-PGothic-Italic\"] = \"MS PGothic-Italic\";\n  t[\"MS-PMincho\"] = \"MS PMincho\";\n  t[\"MS-PMincho-Bold\"] = \"MS PMincho-Bold\";\n  t[\"MS-PMincho-BoldItalic\"] = \"MS PMincho-BoldItalic\";\n  t[\"MS-PMincho-Italic\"] = \"MS PMincho-Italic\";\n  t.NuptialScript = \"Times-Italic\";\n  t.SegoeUISymbol = \"Helvetica\";\n  t.Wingdings = \"ZapfDingbats\";\n  t[\"Wingdings-Regular\"] = \"ZapfDingbats\";\n});\nexports.getNonStdFontMap = getNonStdFontMap;\nconst getSerifFonts = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t[\"Adobe Jenson\"] = true;\n  t[\"Adobe Text\"] = true;\n  t.Albertus = true;\n  t.Aldus = true;\n  t.Alexandria = true;\n  t.Algerian = true;\n  t[\"American Typewriter\"] = true;\n  t.Antiqua = true;\n  t.Apex = true;\n  t.Arno = true;\n  t.Aster = true;\n  t.Aurora = true;\n  t.Baskerville = true;\n  t.Bell = true;\n  t.Bembo = true;\n  t[\"Bembo Schoolbook\"] = true;\n  t.Benguiat = true;\n  t[\"Berkeley Old Style\"] = true;\n  t[\"Bernhard Modern\"] = true;\n  t[\"Berthold City\"] = true;\n  t.Bodoni = true;\n  t[\"Bauer Bodoni\"] = true;\n  t[\"Book Antiqua\"] = true;\n  t.Bookman = true;\n  t[\"Bordeaux Roman\"] = true;\n  t[\"Californian FB\"] = true;\n  t.Calisto = true;\n  t.Calvert = true;\n  t.Capitals = true;\n  t.Cambria = true;\n  t.Cartier = true;\n  t.Caslon = true;\n  t.Catull = true;\n  t.Centaur = true;\n  t[\"Century Old Style\"] = true;\n  t[\"Century Schoolbook\"] = true;\n  t.Chaparral = true;\n  t[\"Charis SIL\"] = true;\n  t.Cheltenham = true;\n  t[\"Cholla Slab\"] = true;\n  t.Clarendon = true;\n  t.Clearface = true;\n  t.Cochin = true;\n  t.Colonna = true;\n  t[\"Computer Modern\"] = true;\n  t[\"Concrete Roman\"] = true;\n  t.Constantia = true;\n  t[\"Cooper Black\"] = true;\n  t.Corona = true;\n  t.Ecotype = true;\n  t.Egyptienne = true;\n  t.Elephant = true;\n  t.Excelsior = true;\n  t.Fairfield = true;\n  t[\"FF Scala\"] = true;\n  t.Folkard = true;\n  t.Footlight = true;\n  t.FreeSerif = true;\n  t[\"Friz Quadrata\"] = true;\n  t.Garamond = true;\n  t.Gentium = true;\n  t.Georgia = true;\n  t.Gloucester = true;\n  t[\"Goudy Old Style\"] = true;\n  t[\"Goudy Schoolbook\"] = true;\n  t[\"Goudy Pro Font\"] = true;\n  t.Granjon = true;\n  t[\"Guardian Egyptian\"] = true;\n  t.Heather = true;\n  t.Hercules = true;\n  t[\"High Tower Text\"] = true;\n  t.Hiroshige = true;\n  t[\"Hoefler Text\"] = true;\n  t[\"Humana Serif\"] = true;\n  t.Imprint = true;\n  t[\"Ionic No. 5\"] = true;\n  t.Janson = true;\n  t.Joanna = true;\n  t.Korinna = true;\n  t.Lexicon = true;\n  t.LiberationSerif = true;\n  t[\"Liberation Serif\"] = true;\n  t[\"Linux Libertine\"] = true;\n  t.Literaturnaya = true;\n  t.Lucida = true;\n  t[\"Lucida Bright\"] = true;\n  t.Melior = true;\n  t.Memphis = true;\n  t.Miller = true;\n  t.Minion = true;\n  t.Modern = true;\n  t[\"Mona Lisa\"] = true;\n  t[\"Mrs Eaves\"] = true;\n  t[\"MS Serif\"] = true;\n  t[\"Museo Slab\"] = true;\n  t[\"New York\"] = true;\n  t[\"Nimbus Roman\"] = true;\n  t[\"NPS Rawlinson Roadway\"] = true;\n  t.NuptialScript = true;\n  t.Palatino = true;\n  t.Perpetua = true;\n  t.Plantin = true;\n  t[\"Plantin Schoolbook\"] = true;\n  t.Playbill = true;\n  t[\"Poor Richard\"] = true;\n  t[\"Rawlinson Roadway\"] = true;\n  t.Renault = true;\n  t.Requiem = true;\n  t.Rockwell = true;\n  t.Roman = true;\n  t[\"Rotis Serif\"] = true;\n  t.Sabon = true;\n  t.Scala = true;\n  t.Seagull = true;\n  t.Sistina = true;\n  t.Souvenir = true;\n  t.STIX = true;\n  t[\"Stone Informal\"] = true;\n  t[\"Stone Serif\"] = true;\n  t.Sylfaen = true;\n  t.Times = true;\n  t.Trajan = true;\n  t[\"Trinité\"] = true;\n  t[\"Trump Mediaeval\"] = true;\n  t.Utopia = true;\n  t[\"Vale Type\"] = true;\n  t[\"Bitstream Vera\"] = true;\n  t[\"Vera Serif\"] = true;\n  t.Versailles = true;\n  t.Wanted = true;\n  t.Weiss = true;\n  t[\"Wide Latin\"] = true;\n  t.Windsor = true;\n  t.XITS = true;\n});\nexports.getSerifFonts = getSerifFonts;\nconst getSymbolsFonts = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t.Dingbats = true;\n  t.Symbol = true;\n  t.ZapfDingbats = true;\n});\nexports.getSymbolsFonts = getSymbolsFonts;\nconst getGlyphMapForStandardFonts = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t[2] = 10;\n  t[3] = 32;\n  t[4] = 33;\n  t[5] = 34;\n  t[6] = 35;\n  t[7] = 36;\n  t[8] = 37;\n  t[9] = 38;\n  t[10] = 39;\n  t[11] = 40;\n  t[12] = 41;\n  t[13] = 42;\n  t[14] = 43;\n  t[15] = 44;\n  t[16] = 45;\n  t[17] = 46;\n  t[18] = 47;\n  t[19] = 48;\n  t[20] = 49;\n  t[21] = 50;\n  t[22] = 51;\n  t[23] = 52;\n  t[24] = 53;\n  t[25] = 54;\n  t[26] = 55;\n  t[27] = 56;\n  t[28] = 57;\n  t[29] = 58;\n  t[30] = 894;\n  t[31] = 60;\n  t[32] = 61;\n  t[33] = 62;\n  t[34] = 63;\n  t[35] = 64;\n  t[36] = 65;\n  t[37] = 66;\n  t[38] = 67;\n  t[39] = 68;\n  t[40] = 69;\n  t[41] = 70;\n  t[42] = 71;\n  t[43] = 72;\n  t[44] = 73;\n  t[45] = 74;\n  t[46] = 75;\n  t[47] = 76;\n  t[48] = 77;\n  t[49] = 78;\n  t[50] = 79;\n  t[51] = 80;\n  t[52] = 81;\n  t[53] = 82;\n  t[54] = 83;\n  t[55] = 84;\n  t[56] = 85;\n  t[57] = 86;\n  t[58] = 87;\n  t[59] = 88;\n  t[60] = 89;\n  t[61] = 90;\n  t[62] = 91;\n  t[63] = 92;\n  t[64] = 93;\n  t[65] = 94;\n  t[66] = 95;\n  t[67] = 96;\n  t[68] = 97;\n  t[69] = 98;\n  t[70] = 99;\n  t[71] = 100;\n  t[72] = 101;\n  t[73] = 102;\n  t[74] = 103;\n  t[75] = 104;\n  t[76] = 105;\n  t[77] = 106;\n  t[78] = 107;\n  t[79] = 108;\n  t[80] = 109;\n  t[81] = 110;\n  t[82] = 111;\n  t[83] = 112;\n  t[84] = 113;\n  t[85] = 114;\n  t[86] = 115;\n  t[87] = 116;\n  t[88] = 117;\n  t[89] = 118;\n  t[90] = 119;\n  t[91] = 120;\n  t[92] = 121;\n  t[93] = 122;\n  t[94] = 123;\n  t[95] = 124;\n  t[96] = 125;\n  t[97] = 126;\n  t[98] = 196;\n  t[99] = 197;\n  t[100] = 199;\n  t[101] = 201;\n  t[102] = 209;\n  t[103] = 214;\n  t[104] = 220;\n  t[105] = 225;\n  t[106] = 224;\n  t[107] = 226;\n  t[108] = 228;\n  t[109] = 227;\n  t[110] = 229;\n  t[111] = 231;\n  t[112] = 233;\n  t[113] = 232;\n  t[114] = 234;\n  t[115] = 235;\n  t[116] = 237;\n  t[117] = 236;\n  t[118] = 238;\n  t[119] = 239;\n  t[120] = 241;\n  t[121] = 243;\n  t[122] = 242;\n  t[123] = 244;\n  t[124] = 246;\n  t[125] = 245;\n  t[126] = 250;\n  t[127] = 249;\n  t[128] = 251;\n  t[129] = 252;\n  t[130] = 8224;\n  t[131] = 176;\n  t[132] = 162;\n  t[133] = 163;\n  t[134] = 167;\n  t[135] = 8226;\n  t[136] = 182;\n  t[137] = 223;\n  t[138] = 174;\n  t[139] = 169;\n  t[140] = 8482;\n  t[141] = 180;\n  t[142] = 168;\n  t[143] = 8800;\n  t[144] = 198;\n  t[145] = 216;\n  t[146] = 8734;\n  t[147] = 177;\n  t[148] = 8804;\n  t[149] = 8805;\n  t[150] = 165;\n  t[151] = 181;\n  t[152] = 8706;\n  t[153] = 8721;\n  t[154] = 8719;\n  t[156] = 8747;\n  t[157] = 170;\n  t[158] = 186;\n  t[159] = 8486;\n  t[160] = 230;\n  t[161] = 248;\n  t[162] = 191;\n  t[163] = 161;\n  t[164] = 172;\n  t[165] = 8730;\n  t[166] = 402;\n  t[167] = 8776;\n  t[168] = 8710;\n  t[169] = 171;\n  t[170] = 187;\n  t[171] = 8230;\n  t[200] = 193;\n  t[203] = 205;\n  t[210] = 218;\n  t[223] = 711;\n  t[224] = 321;\n  t[225] = 322;\n  t[226] = 352;\n  t[227] = 353;\n  t[228] = 381;\n  t[229] = 382;\n  t[233] = 221;\n  t[234] = 253;\n  t[252] = 263;\n  t[253] = 268;\n  t[254] = 269;\n  t[258] = 258;\n  t[260] = 260;\n  t[261] = 261;\n  t[265] = 280;\n  t[266] = 281;\n  t[267] = 282;\n  t[268] = 283;\n  t[269] = 313;\n  t[275] = 323;\n  t[276] = 324;\n  t[278] = 328;\n  t[283] = 344;\n  t[284] = 345;\n  t[285] = 346;\n  t[286] = 347;\n  t[292] = 367;\n  t[295] = 377;\n  t[296] = 378;\n  t[298] = 380;\n  t[305] = 963;\n  t[306] = 964;\n  t[307] = 966;\n  t[308] = 8215;\n  t[309] = 8252;\n  t[310] = 8319;\n  t[311] = 8359;\n  t[312] = 8592;\n  t[313] = 8593;\n  t[337] = 9552;\n  t[493] = 1039;\n  t[494] = 1040;\n  t[672] = 1488;\n  t[673] = 1489;\n  t[674] = 1490;\n  t[675] = 1491;\n  t[676] = 1492;\n  t[677] = 1493;\n  t[678] = 1494;\n  t[679] = 1495;\n  t[680] = 1496;\n  t[681] = 1497;\n  t[682] = 1498;\n  t[683] = 1499;\n  t[684] = 1500;\n  t[685] = 1501;\n  t[686] = 1502;\n  t[687] = 1503;\n  t[688] = 1504;\n  t[689] = 1505;\n  t[690] = 1506;\n  t[691] = 1507;\n  t[692] = 1508;\n  t[693] = 1509;\n  t[694] = 1510;\n  t[695] = 1511;\n  t[696] = 1512;\n  t[697] = 1513;\n  t[698] = 1514;\n  t[705] = 1524;\n  t[706] = 8362;\n  t[710] = 64288;\n  t[711] = 64298;\n  t[759] = 1617;\n  t[761] = 1776;\n  t[763] = 1778;\n  t[775] = 1652;\n  t[777] = 1764;\n  t[778] = 1780;\n  t[779] = 1781;\n  t[780] = 1782;\n  t[782] = 771;\n  t[783] = 64726;\n  t[786] = 8363;\n  t[788] = 8532;\n  t[790] = 768;\n  t[791] = 769;\n  t[792] = 768;\n  t[795] = 803;\n  t[797] = 64336;\n  t[798] = 64337;\n  t[799] = 64342;\n  t[800] = 64343;\n  t[801] = 64344;\n  t[802] = 64345;\n  t[803] = 64362;\n  t[804] = 64363;\n  t[805] = 64364;\n  t[2424] = 7821;\n  t[2425] = 7822;\n  t[2426] = 7823;\n  t[2427] = 7824;\n  t[2428] = 7825;\n  t[2429] = 7826;\n  t[2430] = 7827;\n  t[2433] = 7682;\n  t[2678] = 8045;\n  t[2679] = 8046;\n  t[2830] = 1552;\n  t[2838] = 686;\n  t[2840] = 751;\n  t[2842] = 753;\n  t[2843] = 754;\n  t[2844] = 755;\n  t[2846] = 757;\n  t[2856] = 767;\n  t[2857] = 848;\n  t[2858] = 849;\n  t[2862] = 853;\n  t[2863] = 854;\n  t[2864] = 855;\n  t[2865] = 861;\n  t[2866] = 862;\n  t[2906] = 7460;\n  t[2908] = 7462;\n  t[2909] = 7463;\n  t[2910] = 7464;\n  t[2912] = 7466;\n  t[2913] = 7467;\n  t[2914] = 7468;\n  t[2916] = 7470;\n  t[2917] = 7471;\n  t[2918] = 7472;\n  t[2920] = 7474;\n  t[2921] = 7475;\n  t[2922] = 7476;\n  t[2924] = 7478;\n  t[2925] = 7479;\n  t[2926] = 7480;\n  t[2928] = 7482;\n  t[2929] = 7483;\n  t[2930] = 7484;\n  t[2932] = 7486;\n  t[2933] = 7487;\n  t[2934] = 7488;\n  t[2936] = 7490;\n  t[2937] = 7491;\n  t[2938] = 7492;\n  t[2940] = 7494;\n  t[2941] = 7495;\n  t[2942] = 7496;\n  t[2944] = 7498;\n  t[2946] = 7500;\n  t[2948] = 7502;\n  t[2950] = 7504;\n  t[2951] = 7505;\n  t[2952] = 7506;\n  t[2954] = 7508;\n  t[2955] = 7509;\n  t[2956] = 7510;\n  t[2958] = 7512;\n  t[2959] = 7513;\n  t[2960] = 7514;\n  t[2962] = 7516;\n  t[2963] = 7517;\n  t[2964] = 7518;\n  t[2966] = 7520;\n  t[2967] = 7521;\n  t[2968] = 7522;\n  t[2970] = 7524;\n  t[2971] = 7525;\n  t[2972] = 7526;\n  t[2974] = 7528;\n  t[2975] = 7529;\n  t[2976] = 7530;\n  t[2978] = 1537;\n  t[2979] = 1538;\n  t[2980] = 1539;\n  t[2982] = 1549;\n  t[2983] = 1551;\n  t[2984] = 1552;\n  t[2986] = 1554;\n  t[2987] = 1555;\n  t[2988] = 1556;\n  t[2990] = 1623;\n  t[2991] = 1624;\n  t[2995] = 1775;\n  t[2999] = 1791;\n  t[3002] = 64290;\n  t[3003] = 64291;\n  t[3004] = 64292;\n  t[3006] = 64294;\n  t[3007] = 64295;\n  t[3008] = 64296;\n  t[3011] = 1900;\n  t[3014] = 8223;\n  t[3015] = 8244;\n  t[3017] = 7532;\n  t[3018] = 7533;\n  t[3019] = 7534;\n  t[3075] = 7590;\n  t[3076] = 7591;\n  t[3079] = 7594;\n  t[3080] = 7595;\n  t[3083] = 7598;\n  t[3084] = 7599;\n  t[3087] = 7602;\n  t[3088] = 7603;\n  t[3091] = 7606;\n  t[3092] = 7607;\n  t[3095] = 7610;\n  t[3096] = 7611;\n  t[3099] = 7614;\n  t[3100] = 7615;\n  t[3103] = 7618;\n  t[3104] = 7619;\n  t[3107] = 8337;\n  t[3108] = 8338;\n  t[3116] = 1884;\n  t[3119] = 1885;\n  t[3120] = 1885;\n  t[3123] = 1886;\n  t[3124] = 1886;\n  t[3127] = 1887;\n  t[3128] = 1887;\n  t[3131] = 1888;\n  t[3132] = 1888;\n  t[3135] = 1889;\n  t[3136] = 1889;\n  t[3139] = 1890;\n  t[3140] = 1890;\n  t[3143] = 1891;\n  t[3144] = 1891;\n  t[3147] = 1892;\n  t[3148] = 1892;\n  t[3153] = 580;\n  t[3154] = 581;\n  t[3157] = 584;\n  t[3158] = 585;\n  t[3161] = 588;\n  t[3162] = 589;\n  t[3165] = 891;\n  t[3166] = 892;\n  t[3169] = 1274;\n  t[3170] = 1275;\n  t[3173] = 1278;\n  t[3174] = 1279;\n  t[3181] = 7622;\n  t[3182] = 7623;\n  t[3282] = 11799;\n  t[3316] = 578;\n  t[3379] = 42785;\n  t[3393] = 1159;\n  t[3416] = 8377;\n});\nexports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts;\nconst getSupplementalGlyphMapForArialBlack = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t[227] = 322;\n  t[264] = 261;\n  t[291] = 346;\n});\nexports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack;\nconst getSupplementalGlyphMapForCalibri = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t[1] = 32;\n  t[4] = 65;\n  t[6] = 193;\n  t[17] = 66;\n  t[18] = 67;\n  t[21] = 268;\n  t[24] = 68;\n  t[28] = 69;\n  t[30] = 201;\n  t[32] = 282;\n  t[38] = 70;\n  t[39] = 71;\n  t[44] = 72;\n  t[47] = 73;\n  t[49] = 205;\n  t[58] = 74;\n  t[60] = 75;\n  t[62] = 76;\n  t[68] = 77;\n  t[69] = 78;\n  t[75] = 79;\n  t[87] = 80;\n  t[89] = 81;\n  t[90] = 82;\n  t[92] = 344;\n  t[94] = 83;\n  t[97] = 352;\n  t[100] = 84;\n  t[104] = 85;\n  t[115] = 86;\n  t[116] = 87;\n  t[121] = 88;\n  t[122] = 89;\n  t[124] = 221;\n  t[127] = 90;\n  t[129] = 381;\n  t[258] = 97;\n  t[260] = 225;\n  t[268] = 261;\n  t[271] = 98;\n  t[272] = 99;\n  t[273] = 263;\n  t[275] = 269;\n  t[282] = 100;\n  t[286] = 101;\n  t[288] = 233;\n  t[290] = 283;\n  t[295] = 281;\n  t[296] = 102;\n  t[336] = 103;\n  t[346] = 104;\n  t[349] = 105;\n  t[351] = 237;\n  t[361] = 106;\n  t[364] = 107;\n  t[367] = 108;\n  t[371] = 322;\n  t[373] = 109;\n  t[374] = 110;\n  t[381] = 111;\n  t[383] = 243;\n  t[393] = 112;\n  t[395] = 113;\n  t[396] = 114;\n  t[398] = 345;\n  t[400] = 115;\n  t[401] = 347;\n  t[403] = 353;\n  t[410] = 116;\n  t[437] = 117;\n  t[448] = 118;\n  t[449] = 119;\n  t[454] = 120;\n  t[455] = 121;\n  t[457] = 253;\n  t[460] = 122;\n  t[462] = 382;\n  t[463] = 380;\n  t[853] = 44;\n  t[855] = 58;\n  t[856] = 46;\n  t[876] = 47;\n  t[878] = 45;\n  t[882] = 45;\n  t[894] = 40;\n  t[895] = 41;\n  t[896] = 91;\n  t[897] = 93;\n  t[923] = 64;\n  t[1004] = 48;\n  t[1005] = 49;\n  t[1006] = 50;\n  t[1007] = 51;\n  t[1008] = 52;\n  t[1009] = 53;\n  t[1010] = 54;\n  t[1011] = 55;\n  t[1012] = 56;\n  t[1013] = 57;\n  t[1081] = 37;\n  t[1085] = 43;\n  t[1086] = 45;\n});\nexports.getSupplementalGlyphMapForCalibri = getSupplementalGlyphMapForCalibri;\n\nfunction getStandardFontName(name) {\n  const fontName = (0, _fonts_utils.normalizeFontName)(name);\n  const stdFontMap = getStdFontMap();\n  return stdFontMap[fontName];\n}\n\n/***/ }),\n/* 167 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ToUnicodeMap = exports.IdentityToUnicodeMap = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass ToUnicodeMap {\n  constructor() {\n    let cmap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    this._map = cmap;\n  }\n\n  get length() {\n    return this._map.length;\n  }\n\n  forEach(callback) {\n    for (const charCode in this._map) {\n      callback(charCode, this._map[charCode].charCodeAt(0));\n    }\n  }\n\n  has(i) {\n    return this._map[i] !== undefined;\n  }\n\n  get(i) {\n    return this._map[i];\n  }\n\n  charCodeOf(value) {\n    const map = this._map;\n\n    if (map.length <= 0x10000) {\n      return map.indexOf(value);\n    }\n\n    for (const charCode in map) {\n      if (map[charCode] === value) {\n        return charCode | 0;\n      }\n    }\n\n    return -1;\n  }\n\n  amend(map) {\n    for (const charCode in map) {\n      this._map[charCode] = map[charCode];\n    }\n  }\n\n}\n\nexports.ToUnicodeMap = ToUnicodeMap;\n\nclass IdentityToUnicodeMap {\n  constructor(firstChar, lastChar) {\n    this.firstChar = firstChar;\n    this.lastChar = lastChar;\n  }\n\n  get length() {\n    return this.lastChar + 1 - this.firstChar;\n  }\n\n  forEach(callback) {\n    for (let i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n      callback(i, i);\n    }\n  }\n\n  has(i) {\n    return this.firstChar <= i && i <= this.lastChar;\n  }\n\n  get(i) {\n    if (this.firstChar <= i && i <= this.lastChar) {\n      return String.fromCharCode(i);\n    }\n\n    return undefined;\n  }\n\n  charCodeOf(v) {\n    return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar ? v : -1;\n  }\n\n  amend(map) {\n    (0, _util.unreachable)(\"Should not call amend()\");\n  }\n\n}\n\nexports.IdentityToUnicodeMap = IdentityToUnicodeMap;\n\n/***/ }),\n/* 168 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CFFFont = void 0;\n\nvar _cff_parser = __w_pdfjs_require__(160);\n\nvar _fonts_utils = __w_pdfjs_require__(163);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass CFFFont {\n  constructor(file, properties) {\n    this.properties = properties;\n    const parser = new _cff_parser.CFFParser(file, properties, _fonts_utils.SEAC_ANALYSIS_ENABLED);\n    this.cff = parser.parse();\n    this.cff.duplicateFirstGlyph();\n    const compiler = new _cff_parser.CFFCompiler(this.cff);\n    this.seacs = this.cff.seacs;\n\n    try {\n      this.data = compiler.compile();\n    } catch (e) {\n      (0, _util.warn)(\"Failed to compile font \" + properties.loadedName);\n      this.data = file;\n    }\n\n    this._createBuiltInEncoding();\n  }\n\n  get numGlyphs() {\n    return this.cff.charStrings.count;\n  }\n\n  getCharset() {\n    return this.cff.charset.charset;\n  }\n\n  getGlyphMapping() {\n    const cff = this.cff;\n    const properties = this.properties;\n    const charsets = cff.charset.charset;\n    let charCodeToGlyphId;\n    let glyphId;\n\n    if (properties.composite) {\n      charCodeToGlyphId = Object.create(null);\n      let charCode;\n\n      if (cff.isCIDFont) {\n        for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n          const cid = charsets[glyphId];\n          charCode = properties.cMap.charCodeOf(cid);\n          charCodeToGlyphId[charCode] = glyphId;\n        }\n      } else {\n        for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n          charCode = properties.cMap.charCodeOf(glyphId);\n          charCodeToGlyphId[charCode] = glyphId;\n        }\n      }\n\n      return charCodeToGlyphId;\n    }\n\n    let encoding = cff.encoding ? cff.encoding.encoding : null;\n\n    if (properties.isInternalFont) {\n      encoding = properties.defaultEncoding;\n    }\n\n    charCodeToGlyphId = (0, _fonts_utils.type1FontGlyphMapping)(properties, encoding, charsets);\n    return charCodeToGlyphId;\n  }\n\n  hasGlyphId(id) {\n    return this.cff.hasGlyphId(id);\n  }\n\n  _createBuiltInEncoding() {\n    const {\n      charset,\n      encoding\n    } = this.cff;\n\n    if (!charset || !encoding) {\n      return;\n    }\n\n    const charsets = charset.charset,\n          encodings = encoding.encoding;\n    const map = [];\n\n    for (const charCode in encodings) {\n      const glyphId = encodings[charCode];\n\n      if (glyphId >= 0) {\n        const glyphName = charsets[glyphId];\n\n        if (glyphName) {\n          map[charCode] = glyphName;\n        }\n      }\n    }\n\n    if (map.length > 0) {\n      this.properties.builtInEncoding = map;\n    }\n  }\n\n}\n\nexports.CFFFont = CFFFont;\n\n/***/ }),\n/* 169 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.FontRendererFactory = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cff_parser = __w_pdfjs_require__(160);\n\nvar _glyphlist = __w_pdfjs_require__(164);\n\nvar _encodings = __w_pdfjs_require__(162);\n\nvar _stream = __w_pdfjs_require__(135);\n\nfunction getUint32(data, offset) {\n  return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;\n}\n\nfunction getUint16(data, offset) {\n  return data[offset] << 8 | data[offset + 1];\n}\n\nfunction getInt16(data, offset) {\n  return (data[offset] << 24 | data[offset + 1] << 16) >> 16;\n}\n\nfunction getInt8(data, offset) {\n  return data[offset] << 24 >> 24;\n}\n\nfunction getFloat214(data, offset) {\n  return getInt16(data, offset) / 16384;\n}\n\nfunction getSubroutineBias(subrs) {\n  const numSubrs = subrs.length;\n  let bias = 32768;\n\n  if (numSubrs < 1240) {\n    bias = 107;\n  } else if (numSubrs < 33900) {\n    bias = 1131;\n  }\n\n  return bias;\n}\n\nfunction parseCmap(data, start, end) {\n  const offset = getUint16(data, start + 2) === 1 ? getUint32(data, start + 8) : getUint32(data, start + 16);\n  const format = getUint16(data, start + offset);\n  let ranges, p, i;\n\n  if (format === 4) {\n    getUint16(data, start + offset + 2);\n    const segCount = getUint16(data, start + offset + 6) >> 1;\n    p = start + offset + 14;\n    ranges = [];\n\n    for (i = 0; i < segCount; i++, p += 2) {\n      ranges[i] = {\n        end: getUint16(data, p)\n      };\n    }\n\n    p += 2;\n\n    for (i = 0; i < segCount; i++, p += 2) {\n      ranges[i].start = getUint16(data, p);\n    }\n\n    for (i = 0; i < segCount; i++, p += 2) {\n      ranges[i].idDelta = getUint16(data, p);\n    }\n\n    for (i = 0; i < segCount; i++, p += 2) {\n      let idOffset = getUint16(data, p);\n\n      if (idOffset === 0) {\n        continue;\n      }\n\n      ranges[i].ids = [];\n\n      for (let j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n        ranges[i].ids[j] = getUint16(data, p + idOffset);\n        idOffset += 2;\n      }\n    }\n\n    return ranges;\n  } else if (format === 12) {\n    const groups = getUint32(data, start + offset + 12);\n    p = start + offset + 16;\n    ranges = [];\n\n    for (i = 0; i < groups; i++) {\n      start = getUint32(data, p);\n      ranges.push({\n        start,\n        end: getUint32(data, p + 4),\n        idDelta: getUint32(data, p + 8) - start\n      });\n      p += 12;\n    }\n\n    return ranges;\n  }\n\n  throw new _util.FormatError(`unsupported cmap: ${format}`);\n}\n\nfunction parseCff(data, start, end, seacAnalysisEnabled) {\n  const properties = {};\n  const parser = new _cff_parser.CFFParser(new _stream.Stream(data, start, end - start), properties, seacAnalysisEnabled);\n  const cff = parser.parse();\n  return {\n    glyphs: cff.charStrings.objects,\n    subrs: cff.topDict.privateDict && cff.topDict.privateDict.subrsIndex && cff.topDict.privateDict.subrsIndex.objects,\n    gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects,\n    isCFFCIDFont: cff.isCIDFont,\n    fdSelect: cff.fdSelect,\n    fdArray: cff.fdArray\n  };\n}\n\nfunction parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n  let itemSize, itemDecode;\n\n  if (isGlyphLocationsLong) {\n    itemSize = 4;\n    itemDecode = getUint32;\n  } else {\n    itemSize = 2;\n\n    itemDecode = (data, offset) => 2 * getUint16(data, offset);\n  }\n\n  const glyphs = [];\n  let startOffset = itemDecode(loca, 0);\n\n  for (let j = itemSize; j < loca.length; j += itemSize) {\n    const endOffset = itemDecode(loca, j);\n    glyphs.push(glyf.subarray(startOffset, endOffset));\n    startOffset = endOffset;\n  }\n\n  return glyphs;\n}\n\nfunction lookupCmap(ranges, unicode) {\n  const code = unicode.codePointAt(0);\n  let gid = 0,\n      l = 0,\n      r = ranges.length - 1;\n\n  while (l < r) {\n    const c = l + r + 1 >> 1;\n\n    if (code < ranges[c].start) {\n      r = c - 1;\n    } else {\n      l = c;\n    }\n  }\n\n  if (ranges[l].start <= code && code <= ranges[l].end) {\n    gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xffff;\n  }\n\n  return {\n    charCode: code,\n    glyphId: gid\n  };\n}\n\nfunction compileGlyf(code, cmds, font) {\n  function moveTo(x, y) {\n    cmds.push({\n      cmd: \"moveTo\",\n      args: [x, y]\n    });\n  }\n\n  function lineTo(x, y) {\n    cmds.push({\n      cmd: \"lineTo\",\n      args: [x, y]\n    });\n  }\n\n  function quadraticCurveTo(xa, ya, x, y) {\n    cmds.push({\n      cmd: \"quadraticCurveTo\",\n      args: [xa, ya, x, y]\n    });\n  }\n\n  let i = 0;\n  const numberOfContours = getInt16(code, i);\n  let flags;\n  let x = 0,\n      y = 0;\n  i += 10;\n\n  if (numberOfContours < 0) {\n    do {\n      flags = getUint16(code, i);\n      const glyphIndex = getUint16(code, i + 2);\n      i += 4;\n      let arg1, arg2;\n\n      if (flags & 0x01) {\n        if (flags & 0x02) {\n          arg1 = getInt16(code, i);\n          arg2 = getInt16(code, i + 2);\n        } else {\n          arg1 = getUint16(code, i);\n          arg2 = getUint16(code, i + 2);\n        }\n\n        i += 4;\n      } else {\n        if (flags & 0x02) {\n          arg1 = getInt8(code, i++);\n          arg2 = getInt8(code, i++);\n        } else {\n          arg1 = code[i++];\n          arg2 = code[i++];\n        }\n      }\n\n      if (flags & 0x02) {\n        x = arg1;\n        y = arg2;\n      } else {\n        x = 0;\n        y = 0;\n      }\n\n      let scaleX = 1,\n          scaleY = 1,\n          scale01 = 0,\n          scale10 = 0;\n\n      if (flags & 0x08) {\n        scaleX = scaleY = getFloat214(code, i);\n        i += 2;\n      } else if (flags & 0x40) {\n        scaleX = getFloat214(code, i);\n        scaleY = getFloat214(code, i + 2);\n        i += 4;\n      } else if (flags & 0x80) {\n        scaleX = getFloat214(code, i);\n        scale01 = getFloat214(code, i + 2);\n        scale10 = getFloat214(code, i + 4);\n        scaleY = getFloat214(code, i + 6);\n        i += 8;\n      }\n\n      const subglyph = font.glyphs[glyphIndex];\n\n      if (subglyph) {\n        cmds.push({\n          cmd: \"save\"\n        }, {\n          cmd: \"transform\",\n          args: [scaleX, scale01, scale10, scaleY, x, y]\n        });\n\n        if (!(flags & 0x02)) {}\n\n        compileGlyf(subglyph, cmds, font);\n        cmds.push({\n          cmd: \"restore\"\n        });\n      }\n    } while (flags & 0x20);\n  } else {\n    const endPtsOfContours = [];\n    let j, jj;\n\n    for (j = 0; j < numberOfContours; j++) {\n      endPtsOfContours.push(getUint16(code, i));\n      i += 2;\n    }\n\n    const instructionLength = getUint16(code, i);\n    i += 2 + instructionLength;\n    const numberOfPoints = endPtsOfContours.at(-1) + 1;\n    const points = [];\n\n    while (points.length < numberOfPoints) {\n      flags = code[i++];\n      let repeat = 1;\n\n      if (flags & 0x08) {\n        repeat += code[i++];\n      }\n\n      while (repeat-- > 0) {\n        points.push({\n          flags\n        });\n      }\n    }\n\n    for (j = 0; j < numberOfPoints; j++) {\n      switch (points[j].flags & 0x12) {\n        case 0x00:\n          x += getInt16(code, i);\n          i += 2;\n          break;\n\n        case 0x02:\n          x -= code[i++];\n          break;\n\n        case 0x12:\n          x += code[i++];\n          break;\n      }\n\n      points[j].x = x;\n    }\n\n    for (j = 0; j < numberOfPoints; j++) {\n      switch (points[j].flags & 0x24) {\n        case 0x00:\n          y += getInt16(code, i);\n          i += 2;\n          break;\n\n        case 0x04:\n          y -= code[i++];\n          break;\n\n        case 0x24:\n          y += code[i++];\n          break;\n      }\n\n      points[j].y = y;\n    }\n\n    let startPoint = 0;\n\n    for (i = 0; i < numberOfContours; i++) {\n      const endPoint = endPtsOfContours[i];\n      const contour = points.slice(startPoint, endPoint + 1);\n\n      if (contour[0].flags & 1) {\n        contour.push(contour[0]);\n      } else if (contour.at(-1).flags & 1) {\n        contour.unshift(contour.at(-1));\n      } else {\n        const p = {\n          flags: 1,\n          x: (contour[0].x + contour.at(-1).x) / 2,\n          y: (contour[0].y + contour.at(-1).y) / 2\n        };\n        contour.unshift(p);\n        contour.push(p);\n      }\n\n      moveTo(contour[0].x, contour[0].y);\n\n      for (j = 1, jj = contour.length; j < jj; j++) {\n        if (contour[j].flags & 1) {\n          lineTo(contour[j].x, contour[j].y);\n        } else if (contour[j + 1].flags & 1) {\n          quadraticCurveTo(contour[j].x, contour[j].y, contour[j + 1].x, contour[j + 1].y);\n          j++;\n        } else {\n          quadraticCurveTo(contour[j].x, contour[j].y, (contour[j].x + contour[j + 1].x) / 2, (contour[j].y + contour[j + 1].y) / 2);\n        }\n      }\n\n      startPoint = endPoint + 1;\n    }\n  }\n}\n\nfunction compileCharString(charStringCode, cmds, font, glyphId) {\n  function moveTo(x, y) {\n    cmds.push({\n      cmd: \"moveTo\",\n      args: [x, y]\n    });\n  }\n\n  function lineTo(x, y) {\n    cmds.push({\n      cmd: \"lineTo\",\n      args: [x, y]\n    });\n  }\n\n  function bezierCurveTo(x1, y1, x2, y2, x, y) {\n    cmds.push({\n      cmd: \"bezierCurveTo\",\n      args: [x1, y1, x2, y2, x, y]\n    });\n  }\n\n  const stack = [];\n  let x = 0,\n      y = 0;\n  let stems = 0;\n\n  function parse(code) {\n    let i = 0;\n\n    while (i < code.length) {\n      let stackClean = false;\n      let v = code[i++];\n      let xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n\n      switch (v) {\n        case 1:\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n\n        case 3:\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n\n        case 4:\n          y += stack.pop();\n          moveTo(x, y);\n          stackClean = true;\n          break;\n\n        case 5:\n          while (stack.length > 0) {\n            x += stack.shift();\n            y += stack.shift();\n            lineTo(x, y);\n          }\n\n          break;\n\n        case 6:\n          while (stack.length > 0) {\n            x += stack.shift();\n            lineTo(x, y);\n\n            if (stack.length === 0) {\n              break;\n            }\n\n            y += stack.shift();\n            lineTo(x, y);\n          }\n\n          break;\n\n        case 7:\n          while (stack.length > 0) {\n            y += stack.shift();\n            lineTo(x, y);\n\n            if (stack.length === 0) {\n              break;\n            }\n\n            x += stack.shift();\n            lineTo(x, y);\n          }\n\n          break;\n\n        case 8:\n          while (stack.length > 0) {\n            xa = x + stack.shift();\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n\n          break;\n\n        case 10:\n          n = stack.pop();\n          subrCode = null;\n\n          if (font.isCFFCIDFont) {\n            const fdIndex = font.fdSelect.getFDIndex(glyphId);\n\n            if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n              const fontDict = font.fdArray[fdIndex];\n              let subrs;\n\n              if (fontDict.privateDict && fontDict.privateDict.subrsIndex) {\n                subrs = fontDict.privateDict.subrsIndex.objects;\n              }\n\n              if (subrs) {\n                n += getSubroutineBias(subrs);\n                subrCode = subrs[n];\n              }\n            } else {\n              (0, _util.warn)(\"Invalid fd index for glyph index.\");\n            }\n          } else {\n            subrCode = font.subrs[n + font.subrsBias];\n          }\n\n          if (subrCode) {\n            parse(subrCode);\n          }\n\n          break;\n\n        case 11:\n          return;\n\n        case 12:\n          v = code[i++];\n\n          switch (v) {\n            case 34:\n              xa = x + stack.shift();\n              xb = xa + stack.shift();\n              y1 = y + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y, xb, y1, x, y1);\n              xa = x + stack.shift();\n              xb = xa + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y1, xb, y, x, y);\n              break;\n\n            case 35:\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              stack.pop();\n              break;\n\n            case 36:\n              xa = x + stack.shift();\n              y1 = y + stack.shift();\n              xb = xa + stack.shift();\n              y2 = y1 + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y1, xb, y2, x, y2);\n              xa = x + stack.shift();\n              xb = xa + stack.shift();\n              y3 = y2 + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y2, xb, y3, x, y);\n              break;\n\n            case 37:\n              const x0 = x,\n                    y0 = y;\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb;\n              y = yb;\n\n              if (Math.abs(x - x0) > Math.abs(y - y0)) {\n                x += stack.shift();\n              } else {\n                y += stack.shift();\n              }\n\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              break;\n\n            default:\n              throw new _util.FormatError(`unknown operator: 12 ${v}`);\n          }\n\n          break;\n\n        case 14:\n          if (stack.length >= 4) {\n            const achar = stack.pop();\n            const bchar = stack.pop();\n            y = stack.pop();\n            x = stack.pop();\n            cmds.push({\n              cmd: \"save\"\n            }, {\n              cmd: \"translate\",\n              args: [x, y]\n            });\n            let cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[achar]]));\n            compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n            cmds.push({\n              cmd: \"restore\"\n            });\n            cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[bchar]]));\n            compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n          }\n\n          return;\n\n        case 18:\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n\n        case 19:\n          stems += stack.length >> 1;\n          i += stems + 7 >> 3;\n          stackClean = true;\n          break;\n\n        case 20:\n          stems += stack.length >> 1;\n          i += stems + 7 >> 3;\n          stackClean = true;\n          break;\n\n        case 21:\n          y += stack.pop();\n          x += stack.pop();\n          moveTo(x, y);\n          stackClean = true;\n          break;\n\n        case 22:\n          x += stack.pop();\n          moveTo(x, y);\n          stackClean = true;\n          break;\n\n        case 23:\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n\n        case 24:\n          while (stack.length > 2) {\n            xa = x + stack.shift();\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n\n          x += stack.shift();\n          y += stack.shift();\n          lineTo(x, y);\n          break;\n\n        case 25:\n          while (stack.length > 6) {\n            x += stack.shift();\n            y += stack.shift();\n            lineTo(x, y);\n          }\n\n          xa = x + stack.shift();\n          ya = y + stack.shift();\n          xb = xa + stack.shift();\n          yb = ya + stack.shift();\n          x = xb + stack.shift();\n          y = yb + stack.shift();\n          bezierCurveTo(xa, ya, xb, yb, x, y);\n          break;\n\n        case 26:\n          if (stack.length % 2) {\n            x += stack.shift();\n          }\n\n          while (stack.length > 0) {\n            xa = x;\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb;\n            y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n\n          break;\n\n        case 27:\n          if (stack.length % 2) {\n            y += stack.shift();\n          }\n\n          while (stack.length > 0) {\n            xa = x + stack.shift();\n            ya = y;\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb;\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n\n          break;\n\n        case 28:\n          stack.push((code[i] << 24 | code[i + 1] << 16) >> 16);\n          i += 2;\n          break;\n\n        case 29:\n          n = stack.pop() + font.gsubrsBias;\n          subrCode = font.gsubrs[n];\n\n          if (subrCode) {\n            parse(subrCode);\n          }\n\n          break;\n\n        case 30:\n          while (stack.length > 0) {\n            xa = x;\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n\n            if (stack.length === 0) {\n              break;\n            }\n\n            xa = x + stack.shift();\n            ya = y;\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            y = yb + stack.shift();\n            x = xb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n\n          break;\n\n        case 31:\n          while (stack.length > 0) {\n            xa = x + stack.shift();\n            ya = y;\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            y = yb + stack.shift();\n            x = xb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n\n            if (stack.length === 0) {\n              break;\n            }\n\n            xa = x;\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n\n          break;\n\n        default:\n          if (v < 32) {\n            throw new _util.FormatError(`unknown operator: ${v}`);\n          }\n\n          if (v < 247) {\n            stack.push(v - 139);\n          } else if (v < 251) {\n            stack.push((v - 247) * 256 + code[i++] + 108);\n          } else if (v < 255) {\n            stack.push(-(v - 251) * 256 - code[i++] - 108);\n          } else {\n            stack.push((code[i] << 24 | code[i + 1] << 16 | code[i + 2] << 8 | code[i + 3]) / 65536);\n            i += 4;\n          }\n\n          break;\n      }\n\n      if (stackClean) {\n        stack.length = 0;\n      }\n    }\n  }\n\n  parse(charStringCode);\n}\n\nconst NOOP = [];\n\nclass CompiledFont {\n  constructor(fontMatrix) {\n    if (this.constructor === CompiledFont) {\n      (0, _util.unreachable)(\"Cannot initialize CompiledFont.\");\n    }\n\n    this.fontMatrix = fontMatrix;\n    this.compiledGlyphs = Object.create(null);\n    this.compiledCharCodeToGlyphId = Object.create(null);\n  }\n\n  getPathJs(unicode) {\n    const {\n      charCode,\n      glyphId\n    } = lookupCmap(this.cmap, unicode);\n    let fn = this.compiledGlyphs[glyphId];\n\n    if (!fn) {\n      try {\n        fn = this.compileGlyph(this.glyphs[glyphId], glyphId);\n        this.compiledGlyphs[glyphId] = fn;\n      } catch (ex) {\n        this.compiledGlyphs[glyphId] = NOOP;\n\n        if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n          this.compiledCharCodeToGlyphId[charCode] = glyphId;\n        }\n\n        throw ex;\n      }\n    }\n\n    if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n      this.compiledCharCodeToGlyphId[charCode] = glyphId;\n    }\n\n    return fn;\n  }\n\n  compileGlyph(code, glyphId) {\n    if (!code || code.length === 0 || code[0] === 14) {\n      return NOOP;\n    }\n\n    let fontMatrix = this.fontMatrix;\n\n    if (this.isCFFCIDFont) {\n      const fdIndex = this.fdSelect.getFDIndex(glyphId);\n\n      if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n        const fontDict = this.fdArray[fdIndex];\n        fontMatrix = fontDict.getByName(\"FontMatrix\") || _util.FONT_IDENTITY_MATRIX;\n      } else {\n        (0, _util.warn)(\"Invalid fd index for glyph index.\");\n      }\n    }\n\n    const cmds = [{\n      cmd: \"save\"\n    }, {\n      cmd: \"transform\",\n      args: fontMatrix.slice()\n    }, {\n      cmd: \"scale\",\n      args: [\"size\", \"-size\"]\n    }];\n    this.compileGlyphImpl(code, cmds, glyphId);\n    cmds.push({\n      cmd: \"restore\"\n    });\n    return cmds;\n  }\n\n  compileGlyphImpl() {\n    (0, _util.unreachable)(\"Children classes should implement this.\");\n  }\n\n  hasBuiltPath(unicode) {\n    const {\n      charCode,\n      glyphId\n    } = lookupCmap(this.cmap, unicode);\n    return this.compiledGlyphs[glyphId] !== undefined && this.compiledCharCodeToGlyphId[charCode] !== undefined;\n  }\n\n}\n\nclass TrueTypeCompiled extends CompiledFont {\n  constructor(glyphs, cmap, fontMatrix) {\n    super(fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]);\n    this.glyphs = glyphs;\n    this.cmap = cmap;\n  }\n\n  compileGlyphImpl(code, cmds) {\n    compileGlyf(code, cmds, this);\n  }\n\n}\n\nclass Type2Compiled extends CompiledFont {\n  constructor(cffInfo, cmap, fontMatrix, glyphNameMap) {\n    super(fontMatrix || [0.001, 0, 0, 0.001, 0, 0]);\n    this.glyphs = cffInfo.glyphs;\n    this.gsubrs = cffInfo.gsubrs || [];\n    this.subrs = cffInfo.subrs || [];\n    this.cmap = cmap;\n    this.glyphNameMap = glyphNameMap || (0, _glyphlist.getGlyphsUnicode)();\n    this.gsubrsBias = getSubroutineBias(this.gsubrs);\n    this.subrsBias = getSubroutineBias(this.subrs);\n    this.isCFFCIDFont = cffInfo.isCFFCIDFont;\n    this.fdSelect = cffInfo.fdSelect;\n    this.fdArray = cffInfo.fdArray;\n  }\n\n  compileGlyphImpl(code, cmds, glyphId) {\n    compileCharString(code, cmds, this, glyphId);\n  }\n\n}\n\nclass FontRendererFactory {\n  static create(font, seacAnalysisEnabled) {\n    const data = new Uint8Array(font.data);\n    let cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n    const numTables = getUint16(data, 4);\n\n    for (let i = 0, p = 12; i < numTables; i++, p += 16) {\n      const tag = (0, _util.bytesToString)(data.subarray(p, p + 4));\n      const offset = getUint32(data, p + 8);\n      const length = getUint32(data, p + 12);\n\n      switch (tag) {\n        case \"cmap\":\n          cmap = parseCmap(data, offset, offset + length);\n          break;\n\n        case \"glyf\":\n          glyf = data.subarray(offset, offset + length);\n          break;\n\n        case \"loca\":\n          loca = data.subarray(offset, offset + length);\n          break;\n\n        case \"head\":\n          unitsPerEm = getUint16(data, offset + 18);\n          indexToLocFormat = getUint16(data, offset + 50);\n          break;\n\n        case \"CFF \":\n          cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n          break;\n      }\n    }\n\n    if (glyf) {\n      const fontMatrix = !unitsPerEm ? font.fontMatrix : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n      return new TrueTypeCompiled(parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix);\n    }\n\n    return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n  }\n\n}\n\nexports.FontRendererFactory = FontRendererFactory;\n\n/***/ }),\n/* 170 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.getMetrics = exports.getFontBasicMetrics = void 0;\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nconst getMetrics = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t.Courier = 600;\n  t[\"Courier-Bold\"] = 600;\n  t[\"Courier-BoldOblique\"] = 600;\n  t[\"Courier-Oblique\"] = 600;\n  t.Helvetica = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 278;\n    t.exclam = 278;\n    t.quotedbl = 355;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 667;\n    t.quoteright = 222;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 556;\n    t.at = 1015;\n    t.A = 667;\n    t.B = 667;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 500;\n    t.K = 667;\n    t.L = 556;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 278;\n    t.backslash = 278;\n    t.bracketright = 278;\n    t.asciicircum = 469;\n    t.underscore = 556;\n    t.quoteleft = 222;\n    t.a = 556;\n    t.b = 556;\n    t.c = 500;\n    t.d = 556;\n    t.e = 556;\n    t.f = 278;\n    t.g = 556;\n    t.h = 556;\n    t.i = 222;\n    t.j = 222;\n    t.k = 500;\n    t.l = 222;\n    t.m = 833;\n    t.n = 556;\n    t.o = 556;\n    t.p = 556;\n    t.q = 556;\n    t.r = 333;\n    t.s = 500;\n    t.t = 278;\n    t.u = 556;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 500;\n    t.braceleft = 334;\n    t.bar = 260;\n    t.braceright = 334;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 191;\n    t.quotedblleft = 333;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 500;\n    t.fl = 500;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 537;\n    t.bullet = 350;\n    t.quotesinglbase = 222;\n    t.quotedblbase = 333;\n    t.quotedblright = 333;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 556;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 222;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 556;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 667;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 500;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 500;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 222;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 500;\n    t.scedilla = 500;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 556;\n    t.acircumflex = 556;\n    t.Amacron = 667;\n    t.rcaron = 333;\n    t.ccedilla = 500;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 643;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 667;\n    t.Abreve = 667;\n    t.multiply = 584;\n    t.uacute = 556;\n    t.Tcaron = 611;\n    t.partialdiff = 476;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 500;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 260;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 333;\n    t.omacron = 556;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 222;\n    t.tcaron = 317;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 667;\n    t.Adieresis = 667;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 222;\n    t.Oacute = 778;\n    t.oacute = 556;\n    t.amacron = 556;\n    t.sacute = 500;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 556;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 556;\n    t.igrave = 278;\n    t.ohungarumlaut = 556;\n    t.Eogonek = 667;\n    t.dcroat = 556;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 299;\n    t.Kcommaaccent = 667;\n    t.Lacute = 556;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 556;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 556;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 556;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 556;\n    t.Ccaron = 722;\n    t.ugrave = 556;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 333;\n    t.Ntilde = 722;\n    t.otilde = 556;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 556;\n    t.Atilde = 667;\n    t.Aogonek = 667;\n    t.Aring = 667;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 500;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 556;\n    t.tcommaaccent = 278;\n    t.logicalnot = 584;\n    t.odieresis = 556;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 556;\n    t.eth = 556;\n    t.zcaron = 500;\n    t.ncommaaccent = 556;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  t[\"Helvetica-Bold\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 278;\n    t.exclam = 333;\n    t.quotedbl = 474;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 722;\n    t.quoteright = 278;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 611;\n    t.at = 975;\n    t.A = 722;\n    t.B = 722;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 556;\n    t.K = 722;\n    t.L = 611;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 584;\n    t.underscore = 556;\n    t.quoteleft = 278;\n    t.a = 556;\n    t.b = 611;\n    t.c = 556;\n    t.d = 611;\n    t.e = 556;\n    t.f = 333;\n    t.g = 611;\n    t.h = 611;\n    t.i = 278;\n    t.j = 278;\n    t.k = 556;\n    t.l = 278;\n    t.m = 889;\n    t.n = 611;\n    t.o = 611;\n    t.p = 611;\n    t.q = 611;\n    t.r = 389;\n    t.s = 556;\n    t.t = 333;\n    t.u = 611;\n    t.v = 556;\n    t.w = 778;\n    t.x = 556;\n    t.y = 556;\n    t.z = 500;\n    t.braceleft = 389;\n    t.bar = 280;\n    t.braceright = 389;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 238;\n    t.quotedblleft = 500;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 611;\n    t.fl = 611;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 556;\n    t.bullet = 350;\n    t.quotesinglbase = 278;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 611;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 611;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 722;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 556;\n    t.scommaaccent = 556;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 611;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 556;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 556;\n    t.scedilla = 556;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 611;\n    t.acircumflex = 556;\n    t.Amacron = 722;\n    t.rcaron = 389;\n    t.ccedilla = 556;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 743;\n    t.Umacron = 722;\n    t.uring = 611;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 584;\n    t.uacute = 611;\n    t.Tcaron = 611;\n    t.partialdiff = 494;\n    t.ydieresis = 556;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 556;\n    t.nacute = 611;\n    t.umacron = 611;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 280;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 389;\n    t.omacron = 611;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 278;\n    t.tcaron = 389;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 278;\n    t.Oacute = 778;\n    t.oacute = 611;\n    t.amacron = 556;\n    t.sacute = 556;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 611;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 611;\n    t.igrave = 278;\n    t.ohungarumlaut = 611;\n    t.Eogonek = 667;\n    t.dcroat = 611;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 400;\n    t.Kcommaaccent = 722;\n    t.Lacute = 611;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 611;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 611;\n    t.ntilde = 611;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 611;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 611;\n    t.Ccaron = 722;\n    t.ugrave = 611;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 722;\n    t.otilde = 611;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 611;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 556;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 611;\n    t.tcommaaccent = 333;\n    t.logicalnot = 584;\n    t.odieresis = 611;\n    t.udieresis = 611;\n    t.notequal = 549;\n    t.gcommaaccent = 611;\n    t.eth = 611;\n    t.zcaron = 500;\n    t.ncommaaccent = 611;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  t[\"Helvetica-BoldOblique\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 278;\n    t.exclam = 333;\n    t.quotedbl = 474;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 722;\n    t.quoteright = 278;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 611;\n    t.at = 975;\n    t.A = 722;\n    t.B = 722;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 556;\n    t.K = 722;\n    t.L = 611;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 584;\n    t.underscore = 556;\n    t.quoteleft = 278;\n    t.a = 556;\n    t.b = 611;\n    t.c = 556;\n    t.d = 611;\n    t.e = 556;\n    t.f = 333;\n    t.g = 611;\n    t.h = 611;\n    t.i = 278;\n    t.j = 278;\n    t.k = 556;\n    t.l = 278;\n    t.m = 889;\n    t.n = 611;\n    t.o = 611;\n    t.p = 611;\n    t.q = 611;\n    t.r = 389;\n    t.s = 556;\n    t.t = 333;\n    t.u = 611;\n    t.v = 556;\n    t.w = 778;\n    t.x = 556;\n    t.y = 556;\n    t.z = 500;\n    t.braceleft = 389;\n    t.bar = 280;\n    t.braceright = 389;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 238;\n    t.quotedblleft = 500;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 611;\n    t.fl = 611;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 556;\n    t.bullet = 350;\n    t.quotesinglbase = 278;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 611;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 611;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 722;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 556;\n    t.scommaaccent = 556;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 611;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 556;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 556;\n    t.scedilla = 556;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 611;\n    t.acircumflex = 556;\n    t.Amacron = 722;\n    t.rcaron = 389;\n    t.ccedilla = 556;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 743;\n    t.Umacron = 722;\n    t.uring = 611;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 584;\n    t.uacute = 611;\n    t.Tcaron = 611;\n    t.partialdiff = 494;\n    t.ydieresis = 556;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 556;\n    t.nacute = 611;\n    t.umacron = 611;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 280;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 389;\n    t.omacron = 611;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 278;\n    t.tcaron = 389;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 278;\n    t.Oacute = 778;\n    t.oacute = 611;\n    t.amacron = 556;\n    t.sacute = 556;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 611;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 611;\n    t.igrave = 278;\n    t.ohungarumlaut = 611;\n    t.Eogonek = 667;\n    t.dcroat = 611;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 400;\n    t.Kcommaaccent = 722;\n    t.Lacute = 611;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 611;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 611;\n    t.ntilde = 611;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 611;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 611;\n    t.Ccaron = 722;\n    t.ugrave = 611;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 722;\n    t.otilde = 611;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 611;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 556;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 611;\n    t.tcommaaccent = 333;\n    t.logicalnot = 584;\n    t.odieresis = 611;\n    t.udieresis = 611;\n    t.notequal = 549;\n    t.gcommaaccent = 611;\n    t.eth = 611;\n    t.zcaron = 500;\n    t.ncommaaccent = 611;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  t[\"Helvetica-Oblique\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 278;\n    t.exclam = 278;\n    t.quotedbl = 355;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 667;\n    t.quoteright = 222;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 556;\n    t.at = 1015;\n    t.A = 667;\n    t.B = 667;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 500;\n    t.K = 667;\n    t.L = 556;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 278;\n    t.backslash = 278;\n    t.bracketright = 278;\n    t.asciicircum = 469;\n    t.underscore = 556;\n    t.quoteleft = 222;\n    t.a = 556;\n    t.b = 556;\n    t.c = 500;\n    t.d = 556;\n    t.e = 556;\n    t.f = 278;\n    t.g = 556;\n    t.h = 556;\n    t.i = 222;\n    t.j = 222;\n    t.k = 500;\n    t.l = 222;\n    t.m = 833;\n    t.n = 556;\n    t.o = 556;\n    t.p = 556;\n    t.q = 556;\n    t.r = 333;\n    t.s = 500;\n    t.t = 278;\n    t.u = 556;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 500;\n    t.braceleft = 334;\n    t.bar = 260;\n    t.braceright = 334;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 191;\n    t.quotedblleft = 333;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 500;\n    t.fl = 500;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 537;\n    t.bullet = 350;\n    t.quotesinglbase = 222;\n    t.quotedblbase = 333;\n    t.quotedblright = 333;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 556;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 222;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 556;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 667;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 500;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 500;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 222;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 500;\n    t.scedilla = 500;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 556;\n    t.acircumflex = 556;\n    t.Amacron = 667;\n    t.rcaron = 333;\n    t.ccedilla = 500;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 643;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 667;\n    t.Abreve = 667;\n    t.multiply = 584;\n    t.uacute = 556;\n    t.Tcaron = 611;\n    t.partialdiff = 476;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 500;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 260;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 333;\n    t.omacron = 556;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 222;\n    t.tcaron = 317;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 667;\n    t.Adieresis = 667;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 222;\n    t.Oacute = 778;\n    t.oacute = 556;\n    t.amacron = 556;\n    t.sacute = 500;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 556;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 556;\n    t.igrave = 278;\n    t.ohungarumlaut = 556;\n    t.Eogonek = 667;\n    t.dcroat = 556;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 299;\n    t.Kcommaaccent = 667;\n    t.Lacute = 556;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 556;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 556;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 556;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 556;\n    t.Ccaron = 722;\n    t.ugrave = 556;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 333;\n    t.Ntilde = 722;\n    t.otilde = 556;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 556;\n    t.Atilde = 667;\n    t.Aogonek = 667;\n    t.Aring = 667;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 500;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 556;\n    t.tcommaaccent = 278;\n    t.logicalnot = 584;\n    t.odieresis = 556;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 556;\n    t.eth = 556;\n    t.zcaron = 500;\n    t.ncommaaccent = 556;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  t.Symbol = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.universal = 713;\n    t.numbersign = 500;\n    t.existential = 549;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.suchthat = 439;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asteriskmath = 500;\n    t.plus = 549;\n    t.comma = 250;\n    t.minus = 549;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 549;\n    t.equal = 549;\n    t.greater = 549;\n    t.question = 444;\n    t.congruent = 549;\n    t.Alpha = 722;\n    t.Beta = 667;\n    t.Chi = 722;\n    t.Delta = 612;\n    t.Epsilon = 611;\n    t.Phi = 763;\n    t.Gamma = 603;\n    t.Eta = 722;\n    t.Iota = 333;\n    t.theta1 = 631;\n    t.Kappa = 722;\n    t.Lambda = 686;\n    t.Mu = 889;\n    t.Nu = 722;\n    t.Omicron = 722;\n    t.Pi = 768;\n    t.Theta = 741;\n    t.Rho = 556;\n    t.Sigma = 592;\n    t.Tau = 611;\n    t.Upsilon = 690;\n    t.sigma1 = 439;\n    t.Omega = 768;\n    t.Xi = 645;\n    t.Psi = 795;\n    t.Zeta = 611;\n    t.bracketleft = 333;\n    t.therefore = 863;\n    t.bracketright = 333;\n    t.perpendicular = 658;\n    t.underscore = 500;\n    t.radicalex = 500;\n    t.alpha = 631;\n    t.beta = 549;\n    t.chi = 549;\n    t.delta = 494;\n    t.epsilon = 439;\n    t.phi = 521;\n    t.gamma = 411;\n    t.eta = 603;\n    t.iota = 329;\n    t.phi1 = 603;\n    t.kappa = 549;\n    t.lambda = 549;\n    t.mu = 576;\n    t.nu = 521;\n    t.omicron = 549;\n    t.pi = 549;\n    t.theta = 521;\n    t.rho = 549;\n    t.sigma = 603;\n    t.tau = 439;\n    t.upsilon = 576;\n    t.omega1 = 713;\n    t.omega = 686;\n    t.xi = 493;\n    t.psi = 686;\n    t.zeta = 494;\n    t.braceleft = 480;\n    t.bar = 200;\n    t.braceright = 480;\n    t.similar = 549;\n    t.Euro = 750;\n    t.Upsilon1 = 620;\n    t.minute = 247;\n    t.lessequal = 549;\n    t.fraction = 167;\n    t.infinity = 713;\n    t.florin = 500;\n    t.club = 753;\n    t.diamond = 753;\n    t.heart = 753;\n    t.spade = 753;\n    t.arrowboth = 1042;\n    t.arrowleft = 987;\n    t.arrowup = 603;\n    t.arrowright = 987;\n    t.arrowdown = 603;\n    t.degree = 400;\n    t.plusminus = 549;\n    t.second = 411;\n    t.greaterequal = 549;\n    t.multiply = 549;\n    t.proportional = 713;\n    t.partialdiff = 494;\n    t.bullet = 460;\n    t.divide = 549;\n    t.notequal = 549;\n    t.equivalence = 549;\n    t.approxequal = 549;\n    t.ellipsis = 1000;\n    t.arrowvertex = 603;\n    t.arrowhorizex = 1000;\n    t.carriagereturn = 658;\n    t.aleph = 823;\n    t.Ifraktur = 686;\n    t.Rfraktur = 795;\n    t.weierstrass = 987;\n    t.circlemultiply = 768;\n    t.circleplus = 768;\n    t.emptyset = 823;\n    t.intersection = 768;\n    t.union = 768;\n    t.propersuperset = 713;\n    t.reflexsuperset = 713;\n    t.notsubset = 713;\n    t.propersubset = 713;\n    t.reflexsubset = 713;\n    t.element = 713;\n    t.notelement = 713;\n    t.angle = 768;\n    t.gradient = 713;\n    t.registerserif = 790;\n    t.copyrightserif = 790;\n    t.trademarkserif = 890;\n    t.product = 823;\n    t.radical = 549;\n    t.dotmath = 250;\n    t.logicalnot = 713;\n    t.logicaland = 603;\n    t.logicalor = 603;\n    t.arrowdblboth = 1042;\n    t.arrowdblleft = 987;\n    t.arrowdblup = 603;\n    t.arrowdblright = 987;\n    t.arrowdbldown = 603;\n    t.lozenge = 494;\n    t.angleleft = 329;\n    t.registersans = 790;\n    t.copyrightsans = 790;\n    t.trademarksans = 786;\n    t.summation = 713;\n    t.parenlefttp = 384;\n    t.parenleftex = 384;\n    t.parenleftbt = 384;\n    t.bracketlefttp = 384;\n    t.bracketleftex = 384;\n    t.bracketleftbt = 384;\n    t.bracelefttp = 494;\n    t.braceleftmid = 494;\n    t.braceleftbt = 494;\n    t.braceex = 494;\n    t.angleright = 329;\n    t.integral = 274;\n    t.integraltp = 686;\n    t.integralex = 686;\n    t.integralbt = 686;\n    t.parenrighttp = 384;\n    t.parenrightex = 384;\n    t.parenrightbt = 384;\n    t.bracketrighttp = 384;\n    t.bracketrightex = 384;\n    t.bracketrightbt = 384;\n    t.bracerighttp = 494;\n    t.bracerightmid = 494;\n    t.bracerightbt = 494;\n    t.apple = 790;\n  });\n  t[\"Times-Roman\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.quotedbl = 408;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 564;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 564;\n    t.equal = 564;\n    t.greater = 564;\n    t.question = 444;\n    t.at = 921;\n    t.A = 722;\n    t.B = 667;\n    t.C = 667;\n    t.D = 722;\n    t.E = 611;\n    t.F = 556;\n    t.G = 722;\n    t.H = 722;\n    t.I = 333;\n    t.J = 389;\n    t.K = 722;\n    t.L = 611;\n    t.M = 889;\n    t.N = 722;\n    t.O = 722;\n    t.P = 556;\n    t.Q = 722;\n    t.R = 667;\n    t.S = 556;\n    t.T = 611;\n    t.U = 722;\n    t.V = 722;\n    t.W = 944;\n    t.X = 722;\n    t.Y = 722;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 469;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 444;\n    t.b = 500;\n    t.c = 444;\n    t.d = 500;\n    t.e = 444;\n    t.f = 333;\n    t.g = 500;\n    t.h = 500;\n    t.i = 278;\n    t.j = 278;\n    t.k = 500;\n    t.l = 278;\n    t.m = 778;\n    t.n = 500;\n    t.o = 500;\n    t.p = 500;\n    t.q = 500;\n    t.r = 333;\n    t.s = 389;\n    t.t = 278;\n    t.u = 500;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 444;\n    t.braceleft = 480;\n    t.bar = 200;\n    t.braceright = 480;\n    t.asciitilde = 541;\n    t.exclamdown = 333;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 180;\n    t.quotedblleft = 444;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 556;\n    t.fl = 556;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 453;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 444;\n    t.quotedblright = 444;\n    t.guillemotright = 500;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 444;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 889;\n    t.ordfeminine = 276;\n    t.Lslash = 611;\n    t.Oslash = 722;\n    t.OE = 889;\n    t.ordmasculine = 310;\n    t.ae = 667;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 722;\n    t.germandbls = 500;\n    t.Idieresis = 333;\n    t.eacute = 444;\n    t.abreve = 444;\n    t.uhungarumlaut = 500;\n    t.ecaron = 444;\n    t.Ydieresis = 722;\n    t.divide = 564;\n    t.Yacute = 722;\n    t.Acircumflex = 722;\n    t.aacute = 444;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 444;\n    t.Uacute = 722;\n    t.uogonek = 500;\n    t.Edieresis = 611;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 760;\n    t.Emacron = 611;\n    t.ccaron = 444;\n    t.aring = 444;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 444;\n    t.Tcommaaccent = 611;\n    t.Cacute = 667;\n    t.atilde = 444;\n    t.Edotaccent = 611;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 667;\n    t.Gcommaaccent = 722;\n    t.ucircumflex = 500;\n    t.acircumflex = 444;\n    t.Amacron = 722;\n    t.rcaron = 333;\n    t.ccedilla = 444;\n    t.Zdotaccent = 611;\n    t.Thorn = 556;\n    t.Omacron = 722;\n    t.Racute = 667;\n    t.Sacute = 556;\n    t.dcaron = 588;\n    t.Umacron = 722;\n    t.uring = 500;\n    t.threesuperior = 300;\n    t.Ograve = 722;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 564;\n    t.uacute = 500;\n    t.Tcaron = 611;\n    t.partialdiff = 476;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 611;\n    t.adieresis = 444;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 500;\n    t.umacron = 500;\n    t.Ncaron = 722;\n    t.Iacute = 333;\n    t.plusminus = 564;\n    t.brokenbar = 200;\n    t.registered = 760;\n    t.Gbreve = 722;\n    t.Idotaccent = 333;\n    t.summation = 600;\n    t.Egrave = 611;\n    t.racute = 333;\n    t.omacron = 500;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 667;\n    t.lcommaaccent = 278;\n    t.tcaron = 326;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 444;\n    t.zacute = 444;\n    t.iogonek = 278;\n    t.Oacute = 722;\n    t.oacute = 500;\n    t.amacron = 444;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 722;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 500;\n    t.twosuperior = 300;\n    t.Odieresis = 722;\n    t.mu = 500;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 611;\n    t.dcroat = 500;\n    t.threequarters = 750;\n    t.Scedilla = 556;\n    t.lcaron = 344;\n    t.Kcommaaccent = 722;\n    t.Lacute = 611;\n    t.trademark = 980;\n    t.edotaccent = 444;\n    t.Igrave = 333;\n    t.Imacron = 333;\n    t.Lcaron = 611;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 500;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 611;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 556;\n    t.Scommaaccent = 556;\n    t.Ohungarumlaut = 722;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 667;\n    t.ugrave = 500;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 333;\n    t.Ntilde = 722;\n    t.otilde = 500;\n    t.Rcommaaccent = 667;\n    t.Lcommaaccent = 611;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 722;\n    t.zdotaccent = 444;\n    t.Ecaron = 611;\n    t.Iogonek = 333;\n    t.kcommaaccent = 500;\n    t.minus = 564;\n    t.Icircumflex = 333;\n    t.ncaron = 500;\n    t.tcommaaccent = 278;\n    t.logicalnot = 564;\n    t.odieresis = 500;\n    t.udieresis = 500;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 444;\n    t.ncommaaccent = 500;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  t[\"Times-Bold\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.quotedbl = 555;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 1000;\n    t.ampersand = 833;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 570;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 570;\n    t.equal = 570;\n    t.greater = 570;\n    t.question = 500;\n    t.at = 930;\n    t.A = 722;\n    t.B = 667;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 778;\n    t.I = 389;\n    t.J = 500;\n    t.K = 778;\n    t.L = 667;\n    t.M = 944;\n    t.N = 722;\n    t.O = 778;\n    t.P = 611;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 556;\n    t.T = 667;\n    t.U = 722;\n    t.V = 722;\n    t.W = 1000;\n    t.X = 722;\n    t.Y = 722;\n    t.Z = 667;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 581;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 500;\n    t.b = 556;\n    t.c = 444;\n    t.d = 556;\n    t.e = 444;\n    t.f = 333;\n    t.g = 500;\n    t.h = 556;\n    t.i = 278;\n    t.j = 333;\n    t.k = 556;\n    t.l = 278;\n    t.m = 833;\n    t.n = 556;\n    t.o = 500;\n    t.p = 556;\n    t.q = 556;\n    t.r = 444;\n    t.s = 389;\n    t.t = 333;\n    t.u = 556;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 444;\n    t.braceleft = 394;\n    t.bar = 220;\n    t.braceright = 394;\n    t.asciitilde = 520;\n    t.exclamdown = 333;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 278;\n    t.quotedblleft = 500;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 556;\n    t.fl = 556;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 540;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 500;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 500;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 300;\n    t.Lslash = 667;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 330;\n    t.ae = 722;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 722;\n    t.germandbls = 556;\n    t.Idieresis = 389;\n    t.eacute = 444;\n    t.abreve = 500;\n    t.uhungarumlaut = 556;\n    t.ecaron = 444;\n    t.Ydieresis = 722;\n    t.divide = 570;\n    t.Yacute = 722;\n    t.Acircumflex = 722;\n    t.aacute = 500;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 500;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 747;\n    t.Emacron = 667;\n    t.ccaron = 444;\n    t.aring = 500;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 500;\n    t.Tcommaaccent = 667;\n    t.Cacute = 722;\n    t.atilde = 500;\n    t.Edotaccent = 667;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 556;\n    t.acircumflex = 500;\n    t.Amacron = 722;\n    t.rcaron = 444;\n    t.ccedilla = 444;\n    t.Zdotaccent = 667;\n    t.Thorn = 611;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 556;\n    t.dcaron = 672;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 300;\n    t.Ograve = 778;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 570;\n    t.uacute = 556;\n    t.Tcaron = 667;\n    t.partialdiff = 494;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 500;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 389;\n    t.plusminus = 570;\n    t.brokenbar = 220;\n    t.registered = 747;\n    t.Gbreve = 778;\n    t.Idotaccent = 389;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 444;\n    t.omacron = 500;\n    t.Zacute = 667;\n    t.Zcaron = 667;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 278;\n    t.tcaron = 416;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 444;\n    t.zacute = 444;\n    t.iogonek = 278;\n    t.Oacute = 778;\n    t.oacute = 500;\n    t.amacron = 500;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 556;\n    t.twosuperior = 300;\n    t.Odieresis = 778;\n    t.mu = 556;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 667;\n    t.dcroat = 556;\n    t.threequarters = 750;\n    t.Scedilla = 556;\n    t.lcaron = 394;\n    t.Kcommaaccent = 778;\n    t.Lacute = 667;\n    t.trademark = 1000;\n    t.edotaccent = 444;\n    t.Igrave = 389;\n    t.Imacron = 389;\n    t.Lcaron = 667;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 556;\n    t.Scommaaccent = 556;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 722;\n    t.ugrave = 556;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 444;\n    t.Ntilde = 722;\n    t.otilde = 500;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 667;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 778;\n    t.zdotaccent = 444;\n    t.Ecaron = 667;\n    t.Iogonek = 389;\n    t.kcommaaccent = 556;\n    t.minus = 570;\n    t.Icircumflex = 389;\n    t.ncaron = 556;\n    t.tcommaaccent = 333;\n    t.logicalnot = 570;\n    t.odieresis = 500;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 444;\n    t.ncommaaccent = 556;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  t[\"Times-BoldItalic\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 250;\n    t.exclam = 389;\n    t.quotedbl = 555;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 570;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 570;\n    t.equal = 570;\n    t.greater = 570;\n    t.question = 500;\n    t.at = 832;\n    t.A = 667;\n    t.B = 667;\n    t.C = 667;\n    t.D = 722;\n    t.E = 667;\n    t.F = 667;\n    t.G = 722;\n    t.H = 778;\n    t.I = 389;\n    t.J = 500;\n    t.K = 667;\n    t.L = 611;\n    t.M = 889;\n    t.N = 722;\n    t.O = 722;\n    t.P = 611;\n    t.Q = 722;\n    t.R = 667;\n    t.S = 556;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 889;\n    t.X = 667;\n    t.Y = 611;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 570;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 500;\n    t.b = 500;\n    t.c = 444;\n    t.d = 500;\n    t.e = 444;\n    t.f = 333;\n    t.g = 500;\n    t.h = 556;\n    t.i = 278;\n    t.j = 278;\n    t.k = 500;\n    t.l = 278;\n    t.m = 778;\n    t.n = 556;\n    t.o = 500;\n    t.p = 500;\n    t.q = 500;\n    t.r = 389;\n    t.s = 389;\n    t.t = 278;\n    t.u = 556;\n    t.v = 444;\n    t.w = 667;\n    t.x = 500;\n    t.y = 444;\n    t.z = 389;\n    t.braceleft = 348;\n    t.bar = 220;\n    t.braceright = 348;\n    t.asciitilde = 570;\n    t.exclamdown = 389;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 278;\n    t.quotedblleft = 500;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 556;\n    t.fl = 556;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 500;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 500;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 500;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 944;\n    t.ordfeminine = 266;\n    t.Lslash = 611;\n    t.Oslash = 722;\n    t.OE = 944;\n    t.ordmasculine = 300;\n    t.ae = 722;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 722;\n    t.germandbls = 500;\n    t.Idieresis = 389;\n    t.eacute = 444;\n    t.abreve = 500;\n    t.uhungarumlaut = 556;\n    t.ecaron = 444;\n    t.Ydieresis = 611;\n    t.divide = 570;\n    t.Yacute = 611;\n    t.Acircumflex = 667;\n    t.aacute = 500;\n    t.Ucircumflex = 722;\n    t.yacute = 444;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 500;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 747;\n    t.Emacron = 667;\n    t.ccaron = 444;\n    t.aring = 500;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 500;\n    t.Tcommaaccent = 611;\n    t.Cacute = 667;\n    t.atilde = 500;\n    t.Edotaccent = 667;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 667;\n    t.Gcommaaccent = 722;\n    t.ucircumflex = 556;\n    t.acircumflex = 500;\n    t.Amacron = 667;\n    t.rcaron = 389;\n    t.ccedilla = 444;\n    t.Zdotaccent = 611;\n    t.Thorn = 611;\n    t.Omacron = 722;\n    t.Racute = 667;\n    t.Sacute = 556;\n    t.dcaron = 608;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 300;\n    t.Ograve = 722;\n    t.Agrave = 667;\n    t.Abreve = 667;\n    t.multiply = 570;\n    t.uacute = 556;\n    t.Tcaron = 611;\n    t.partialdiff = 494;\n    t.ydieresis = 444;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 500;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 389;\n    t.plusminus = 570;\n    t.brokenbar = 220;\n    t.registered = 747;\n    t.Gbreve = 722;\n    t.Idotaccent = 389;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 389;\n    t.omacron = 500;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 667;\n    t.lcommaaccent = 278;\n    t.tcaron = 366;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 667;\n    t.Adieresis = 667;\n    t.egrave = 444;\n    t.zacute = 389;\n    t.iogonek = 278;\n    t.Oacute = 722;\n    t.oacute = 500;\n    t.amacron = 500;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 722;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 500;\n    t.twosuperior = 300;\n    t.Odieresis = 722;\n    t.mu = 576;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 667;\n    t.dcroat = 500;\n    t.threequarters = 750;\n    t.Scedilla = 556;\n    t.lcaron = 382;\n    t.Kcommaaccent = 667;\n    t.Lacute = 611;\n    t.trademark = 1000;\n    t.edotaccent = 444;\n    t.Igrave = 389;\n    t.Imacron = 389;\n    t.Lcaron = 611;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 556;\n    t.Scommaaccent = 556;\n    t.Ohungarumlaut = 722;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 667;\n    t.ugrave = 556;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 722;\n    t.otilde = 500;\n    t.Rcommaaccent = 667;\n    t.Lcommaaccent = 611;\n    t.Atilde = 667;\n    t.Aogonek = 667;\n    t.Aring = 667;\n    t.Otilde = 722;\n    t.zdotaccent = 389;\n    t.Ecaron = 667;\n    t.Iogonek = 389;\n    t.kcommaaccent = 500;\n    t.minus = 606;\n    t.Icircumflex = 389;\n    t.ncaron = 556;\n    t.tcommaaccent = 278;\n    t.logicalnot = 606;\n    t.odieresis = 500;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 389;\n    t.ncommaaccent = 556;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  t[\"Times-Italic\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.quotedbl = 420;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 675;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 675;\n    t.equal = 675;\n    t.greater = 675;\n    t.question = 500;\n    t.at = 920;\n    t.A = 611;\n    t.B = 611;\n    t.C = 667;\n    t.D = 722;\n    t.E = 611;\n    t.F = 611;\n    t.G = 722;\n    t.H = 722;\n    t.I = 333;\n    t.J = 444;\n    t.K = 667;\n    t.L = 556;\n    t.M = 833;\n    t.N = 667;\n    t.O = 722;\n    t.P = 611;\n    t.Q = 722;\n    t.R = 611;\n    t.S = 500;\n    t.T = 556;\n    t.U = 722;\n    t.V = 611;\n    t.W = 833;\n    t.X = 611;\n    t.Y = 556;\n    t.Z = 556;\n    t.bracketleft = 389;\n    t.backslash = 278;\n    t.bracketright = 389;\n    t.asciicircum = 422;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 500;\n    t.b = 500;\n    t.c = 444;\n    t.d = 500;\n    t.e = 444;\n    t.f = 278;\n    t.g = 500;\n    t.h = 500;\n    t.i = 278;\n    t.j = 278;\n    t.k = 444;\n    t.l = 278;\n    t.m = 722;\n    t.n = 500;\n    t.o = 500;\n    t.p = 500;\n    t.q = 500;\n    t.r = 389;\n    t.s = 389;\n    t.t = 278;\n    t.u = 500;\n    t.v = 444;\n    t.w = 667;\n    t.x = 444;\n    t.y = 444;\n    t.z = 389;\n    t.braceleft = 400;\n    t.bar = 275;\n    t.braceright = 400;\n    t.asciitilde = 541;\n    t.exclamdown = 389;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 214;\n    t.quotedblleft = 556;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 500;\n    t.fl = 500;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 523;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 556;\n    t.quotedblright = 556;\n    t.guillemotright = 500;\n    t.ellipsis = 889;\n    t.perthousand = 1000;\n    t.questiondown = 500;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 889;\n    t.AE = 889;\n    t.ordfeminine = 276;\n    t.Lslash = 556;\n    t.Oslash = 722;\n    t.OE = 944;\n    t.ordmasculine = 310;\n    t.ae = 667;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 667;\n    t.germandbls = 500;\n    t.Idieresis = 333;\n    t.eacute = 444;\n    t.abreve = 500;\n    t.uhungarumlaut = 500;\n    t.ecaron = 444;\n    t.Ydieresis = 556;\n    t.divide = 675;\n    t.Yacute = 556;\n    t.Acircumflex = 611;\n    t.aacute = 500;\n    t.Ucircumflex = 722;\n    t.yacute = 444;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 500;\n    t.Uacute = 722;\n    t.uogonek = 500;\n    t.Edieresis = 611;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 760;\n    t.Emacron = 611;\n    t.ccaron = 444;\n    t.aring = 500;\n    t.Ncommaaccent = 667;\n    t.lacute = 278;\n    t.agrave = 500;\n    t.Tcommaaccent = 556;\n    t.Cacute = 667;\n    t.atilde = 500;\n    t.Edotaccent = 611;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 611;\n    t.Gcommaaccent = 722;\n    t.ucircumflex = 500;\n    t.acircumflex = 500;\n    t.Amacron = 611;\n    t.rcaron = 389;\n    t.ccedilla = 444;\n    t.Zdotaccent = 556;\n    t.Thorn = 611;\n    t.Omacron = 722;\n    t.Racute = 611;\n    t.Sacute = 500;\n    t.dcaron = 544;\n    t.Umacron = 722;\n    t.uring = 500;\n    t.threesuperior = 300;\n    t.Ograve = 722;\n    t.Agrave = 611;\n    t.Abreve = 611;\n    t.multiply = 675;\n    t.uacute = 500;\n    t.Tcaron = 556;\n    t.partialdiff = 476;\n    t.ydieresis = 444;\n    t.Nacute = 667;\n    t.icircumflex = 278;\n    t.Ecircumflex = 611;\n    t.adieresis = 500;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 500;\n    t.umacron = 500;\n    t.Ncaron = 667;\n    t.Iacute = 333;\n    t.plusminus = 675;\n    t.brokenbar = 275;\n    t.registered = 760;\n    t.Gbreve = 722;\n    t.Idotaccent = 333;\n    t.summation = 600;\n    t.Egrave = 611;\n    t.racute = 389;\n    t.omacron = 500;\n    t.Zacute = 556;\n    t.Zcaron = 556;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 667;\n    t.lcommaaccent = 278;\n    t.tcaron = 300;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 611;\n    t.Adieresis = 611;\n    t.egrave = 444;\n    t.zacute = 389;\n    t.iogonek = 278;\n    t.Oacute = 722;\n    t.oacute = 500;\n    t.amacron = 500;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 722;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 500;\n    t.twosuperior = 300;\n    t.Odieresis = 722;\n    t.mu = 500;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 611;\n    t.dcroat = 500;\n    t.threequarters = 750;\n    t.Scedilla = 500;\n    t.lcaron = 300;\n    t.Kcommaaccent = 667;\n    t.Lacute = 556;\n    t.trademark = 980;\n    t.edotaccent = 444;\n    t.Igrave = 333;\n    t.Imacron = 333;\n    t.Lcaron = 611;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 500;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 611;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 500;\n    t.Scommaaccent = 500;\n    t.Ohungarumlaut = 722;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 667;\n    t.ugrave = 500;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 667;\n    t.otilde = 500;\n    t.Rcommaaccent = 611;\n    t.Lcommaaccent = 556;\n    t.Atilde = 611;\n    t.Aogonek = 611;\n    t.Aring = 611;\n    t.Otilde = 722;\n    t.zdotaccent = 389;\n    t.Ecaron = 611;\n    t.Iogonek = 333;\n    t.kcommaaccent = 444;\n    t.minus = 675;\n    t.Icircumflex = 333;\n    t.ncaron = 500;\n    t.tcommaaccent = 278;\n    t.logicalnot = 675;\n    t.odieresis = 500;\n    t.udieresis = 500;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 389;\n    t.ncommaaccent = 500;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  t.ZapfDingbats = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 278;\n    t.a1 = 974;\n    t.a2 = 961;\n    t.a202 = 974;\n    t.a3 = 980;\n    t.a4 = 719;\n    t.a5 = 789;\n    t.a119 = 790;\n    t.a118 = 791;\n    t.a117 = 690;\n    t.a11 = 960;\n    t.a12 = 939;\n    t.a13 = 549;\n    t.a14 = 855;\n    t.a15 = 911;\n    t.a16 = 933;\n    t.a105 = 911;\n    t.a17 = 945;\n    t.a18 = 974;\n    t.a19 = 755;\n    t.a20 = 846;\n    t.a21 = 762;\n    t.a22 = 761;\n    t.a23 = 571;\n    t.a24 = 677;\n    t.a25 = 763;\n    t.a26 = 760;\n    t.a27 = 759;\n    t.a28 = 754;\n    t.a6 = 494;\n    t.a7 = 552;\n    t.a8 = 537;\n    t.a9 = 577;\n    t.a10 = 692;\n    t.a29 = 786;\n    t.a30 = 788;\n    t.a31 = 788;\n    t.a32 = 790;\n    t.a33 = 793;\n    t.a34 = 794;\n    t.a35 = 816;\n    t.a36 = 823;\n    t.a37 = 789;\n    t.a38 = 841;\n    t.a39 = 823;\n    t.a40 = 833;\n    t.a41 = 816;\n    t.a42 = 831;\n    t.a43 = 923;\n    t.a44 = 744;\n    t.a45 = 723;\n    t.a46 = 749;\n    t.a47 = 790;\n    t.a48 = 792;\n    t.a49 = 695;\n    t.a50 = 776;\n    t.a51 = 768;\n    t.a52 = 792;\n    t.a53 = 759;\n    t.a54 = 707;\n    t.a55 = 708;\n    t.a56 = 682;\n    t.a57 = 701;\n    t.a58 = 826;\n    t.a59 = 815;\n    t.a60 = 789;\n    t.a61 = 789;\n    t.a62 = 707;\n    t.a63 = 687;\n    t.a64 = 696;\n    t.a65 = 689;\n    t.a66 = 786;\n    t.a67 = 787;\n    t.a68 = 713;\n    t.a69 = 791;\n    t.a70 = 785;\n    t.a71 = 791;\n    t.a72 = 873;\n    t.a73 = 761;\n    t.a74 = 762;\n    t.a203 = 762;\n    t.a75 = 759;\n    t.a204 = 759;\n    t.a76 = 892;\n    t.a77 = 892;\n    t.a78 = 788;\n    t.a79 = 784;\n    t.a81 = 438;\n    t.a82 = 138;\n    t.a83 = 277;\n    t.a84 = 415;\n    t.a97 = 392;\n    t.a98 = 392;\n    t.a99 = 668;\n    t.a100 = 668;\n    t.a89 = 390;\n    t.a90 = 390;\n    t.a93 = 317;\n    t.a94 = 317;\n    t.a91 = 276;\n    t.a92 = 276;\n    t.a205 = 509;\n    t.a85 = 509;\n    t.a206 = 410;\n    t.a86 = 410;\n    t.a87 = 234;\n    t.a88 = 234;\n    t.a95 = 334;\n    t.a96 = 334;\n    t.a101 = 732;\n    t.a102 = 544;\n    t.a103 = 544;\n    t.a104 = 910;\n    t.a106 = 667;\n    t.a107 = 760;\n    t.a108 = 760;\n    t.a112 = 776;\n    t.a111 = 595;\n    t.a110 = 694;\n    t.a109 = 626;\n    t.a120 = 788;\n    t.a121 = 788;\n    t.a122 = 788;\n    t.a123 = 788;\n    t.a124 = 788;\n    t.a125 = 788;\n    t.a126 = 788;\n    t.a127 = 788;\n    t.a128 = 788;\n    t.a129 = 788;\n    t.a130 = 788;\n    t.a131 = 788;\n    t.a132 = 788;\n    t.a133 = 788;\n    t.a134 = 788;\n    t.a135 = 788;\n    t.a136 = 788;\n    t.a137 = 788;\n    t.a138 = 788;\n    t.a139 = 788;\n    t.a140 = 788;\n    t.a141 = 788;\n    t.a142 = 788;\n    t.a143 = 788;\n    t.a144 = 788;\n    t.a145 = 788;\n    t.a146 = 788;\n    t.a147 = 788;\n    t.a148 = 788;\n    t.a149 = 788;\n    t.a150 = 788;\n    t.a151 = 788;\n    t.a152 = 788;\n    t.a153 = 788;\n    t.a154 = 788;\n    t.a155 = 788;\n    t.a156 = 788;\n    t.a157 = 788;\n    t.a158 = 788;\n    t.a159 = 788;\n    t.a160 = 894;\n    t.a161 = 838;\n    t.a163 = 1016;\n    t.a164 = 458;\n    t.a196 = 748;\n    t.a165 = 924;\n    t.a192 = 748;\n    t.a166 = 918;\n    t.a167 = 927;\n    t.a168 = 928;\n    t.a169 = 928;\n    t.a170 = 834;\n    t.a171 = 873;\n    t.a172 = 828;\n    t.a173 = 924;\n    t.a162 = 924;\n    t.a174 = 917;\n    t.a175 = 930;\n    t.a176 = 931;\n    t.a177 = 463;\n    t.a178 = 883;\n    t.a179 = 836;\n    t.a193 = 836;\n    t.a180 = 867;\n    t.a199 = 867;\n    t.a181 = 696;\n    t.a200 = 696;\n    t.a182 = 874;\n    t.a201 = 874;\n    t.a183 = 760;\n    t.a184 = 946;\n    t.a197 = 771;\n    t.a185 = 865;\n    t.a194 = 771;\n    t.a198 = 888;\n    t.a186 = 967;\n    t.a195 = 888;\n    t.a187 = 831;\n    t.a188 = 873;\n    t.a189 = 927;\n    t.a190 = 970;\n    t.a191 = 918;\n  });\n});\nexports.getMetrics = getMetrics;\nconst getFontBasicMetrics = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t.Courier = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: -426\n  };\n  t[\"Courier-Bold\"] = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: 439\n  };\n  t[\"Courier-Oblique\"] = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: 426\n  };\n  t[\"Courier-BoldOblique\"] = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: 426\n  };\n  t.Helvetica = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 523\n  };\n  t[\"Helvetica-Bold\"] = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 532\n  };\n  t[\"Helvetica-Oblique\"] = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 523\n  };\n  t[\"Helvetica-BoldOblique\"] = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 532\n  };\n  t[\"Times-Roman\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 662,\n    xHeight: 450\n  };\n  t[\"Times-Bold\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 676,\n    xHeight: 461\n  };\n  t[\"Times-Italic\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 653,\n    xHeight: 441\n  };\n  t[\"Times-BoldItalic\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 669,\n    xHeight: 462\n  };\n  t.Symbol = {\n    ascent: Math.NaN,\n    descent: Math.NaN,\n    capHeight: Math.NaN,\n    xHeight: Math.NaN\n  };\n  t.ZapfDingbats = {\n    ascent: Math.NaN,\n    descent: Math.NaN,\n    capHeight: Math.NaN,\n    xHeight: Math.NaN\n  };\n});\nexports.getFontBasicMetrics = getFontBasicMetrics;\n\n/***/ }),\n/* 171 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.GlyfTable = void 0;\nconst ON_CURVE_POINT = 1 << 0;\nconst X_SHORT_VECTOR = 1 << 1;\nconst Y_SHORT_VECTOR = 1 << 2;\nconst REPEAT_FLAG = 1 << 3;\nconst X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR = 1 << 4;\nconst Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR = 1 << 5;\nconst OVERLAP_SIMPLE = 1 << 6;\nconst ARG_1_AND_2_ARE_WORDS = 1 << 0;\nconst ARGS_ARE_XY_VALUES = 1 << 1;\nconst WE_HAVE_A_SCALE = 1 << 3;\nconst MORE_COMPONENTS = 1 << 5;\nconst WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6;\nconst WE_HAVE_A_TWO_BY_TWO = 1 << 7;\nconst WE_HAVE_INSTRUCTIONS = 1 << 8;\n\nclass GlyfTable {\n  constructor(_ref) {\n    let {\n      glyfTable,\n      isGlyphLocationsLong,\n      locaTable,\n      numGlyphs\n    } = _ref;\n    this.glyphs = [];\n    const loca = new DataView(locaTable.buffer, locaTable.byteOffset, locaTable.byteLength);\n    const glyf = new DataView(glyfTable.buffer, glyfTable.byteOffset, glyfTable.byteLength);\n    const offsetSize = isGlyphLocationsLong ? 4 : 2;\n    let prev = isGlyphLocationsLong ? loca.getUint32(0) : 2 * loca.getUint16(0);\n    let pos = 0;\n\n    for (let i = 0; i < numGlyphs; i++) {\n      pos += offsetSize;\n      const next = isGlyphLocationsLong ? loca.getUint32(pos) : 2 * loca.getUint16(pos);\n\n      if (next === prev) {\n        this.glyphs.push(new Glyph({}));\n        continue;\n      }\n\n      const glyph = Glyph.parse(prev, glyf);\n      this.glyphs.push(glyph);\n      prev = next;\n    }\n  }\n\n  getSize() {\n    return this.glyphs.reduce((a, g) => {\n      const size = g.getSize();\n      return a + (size + 3 & ~3);\n    }, 0);\n  }\n\n  write() {\n    const totalSize = this.getSize();\n    const glyfTable = new DataView(new ArrayBuffer(totalSize));\n    const isLocationLong = totalSize > 0x1fffe;\n    const offsetSize = isLocationLong ? 4 : 2;\n    const locaTable = new DataView(new ArrayBuffer((this.glyphs.length + 1) * offsetSize));\n\n    if (isLocationLong) {\n      locaTable.setUint32(0, 0);\n    } else {\n      locaTable.setUint16(0, 0);\n    }\n\n    let pos = 0;\n    let locaIndex = 0;\n\n    for (const glyph of this.glyphs) {\n      pos += glyph.write(pos, glyfTable);\n      pos = pos + 3 & ~3;\n      locaIndex += offsetSize;\n\n      if (isLocationLong) {\n        locaTable.setUint32(locaIndex, pos);\n      } else {\n        locaTable.setUint16(locaIndex, pos >> 1);\n      }\n    }\n\n    return {\n      isLocationLong,\n      loca: new Uint8Array(locaTable.buffer),\n      glyf: new Uint8Array(glyfTable.buffer)\n    };\n  }\n\n  scale(factors) {\n    for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n      this.glyphs[i].scale(factors[i]);\n    }\n  }\n\n}\n\nexports.GlyfTable = GlyfTable;\n\nclass Glyph {\n  constructor(_ref2) {\n    let {\n      header = null,\n      simple = null,\n      composites = null\n    } = _ref2;\n    this.header = header;\n    this.simple = simple;\n    this.composites = composites;\n  }\n\n  static parse(pos, glyf) {\n    const [read, header] = GlyphHeader.parse(pos, glyf);\n    pos += read;\n\n    if (header.numberOfContours < 0) {\n      const composites = [];\n\n      while (true) {\n        const [n, composite] = CompositeGlyph.parse(pos, glyf);\n        pos += n;\n        composites.push(composite);\n\n        if (!(composite.flags & MORE_COMPONENTS)) {\n          break;\n        }\n      }\n\n      return new Glyph({\n        header,\n        composites\n      });\n    }\n\n    const simple = SimpleGlyph.parse(pos, glyf, header.numberOfContours);\n    return new Glyph({\n      header,\n      simple\n    });\n  }\n\n  getSize() {\n    if (!this.header) {\n      return 0;\n    }\n\n    const size = this.simple ? this.simple.getSize() : this.composites.reduce((a, c) => a + c.getSize(), 0);\n    return this.header.getSize() + size;\n  }\n\n  write(pos, buf) {\n    if (!this.header) {\n      return 0;\n    }\n\n    const spos = pos;\n    pos += this.header.write(pos, buf);\n\n    if (this.simple) {\n      pos += this.simple.write(pos, buf);\n    } else {\n      for (const composite of this.composites) {\n        pos += composite.write(pos, buf);\n      }\n    }\n\n    return pos - spos;\n  }\n\n  scale(factor) {\n    if (!this.header) {\n      return;\n    }\n\n    const xMiddle = (this.header.xMin + this.header.xMax) / 2;\n    this.header.scale(xMiddle, factor);\n\n    if (this.simple) {\n      this.simple.scale(xMiddle, factor);\n    } else {\n      for (const composite of this.composites) {\n        composite.scale(xMiddle, factor);\n      }\n    }\n  }\n\n}\n\nclass GlyphHeader {\n  constructor(_ref3) {\n    let {\n      numberOfContours,\n      xMin,\n      yMin,\n      xMax,\n      yMax\n    } = _ref3;\n    this.numberOfContours = numberOfContours;\n    this.xMin = xMin;\n    this.yMin = yMin;\n    this.xMax = xMax;\n    this.yMax = yMax;\n  }\n\n  static parse(pos, glyf) {\n    return [10, new GlyphHeader({\n      numberOfContours: glyf.getInt16(pos),\n      xMin: glyf.getInt16(pos + 2),\n      yMin: glyf.getInt16(pos + 4),\n      xMax: glyf.getInt16(pos + 6),\n      yMax: glyf.getInt16(pos + 8)\n    })];\n  }\n\n  getSize() {\n    return 10;\n  }\n\n  write(pos, buf) {\n    buf.setInt16(pos, this.numberOfContours);\n    buf.setInt16(pos + 2, this.xMin);\n    buf.setInt16(pos + 4, this.yMin);\n    buf.setInt16(pos + 6, this.xMax);\n    buf.setInt16(pos + 8, this.yMax);\n    return 10;\n  }\n\n  scale(x, factor) {\n    this.xMin = Math.round(x + (this.xMin - x) * factor);\n    this.xMax = Math.round(x + (this.xMax - x) * factor);\n  }\n\n}\n\nclass Contour {\n  constructor(_ref4) {\n    let {\n      flags,\n      xCoordinates,\n      yCoordinates\n    } = _ref4;\n    this.xCoordinates = xCoordinates;\n    this.yCoordinates = yCoordinates;\n    this.flags = flags;\n  }\n\n}\n\nclass SimpleGlyph {\n  constructor(_ref5) {\n    let {\n      contours,\n      instructions\n    } = _ref5;\n    this.contours = contours;\n    this.instructions = instructions;\n  }\n\n  static parse(pos, glyf, numberOfContours) {\n    const endPtsOfContours = [];\n\n    for (let i = 0; i < numberOfContours; i++) {\n      const endPt = glyf.getUint16(pos);\n      pos += 2;\n      endPtsOfContours.push(endPt);\n    }\n\n    const numberOfPt = endPtsOfContours[numberOfContours - 1] + 1;\n    const instructionLength = glyf.getUint16(pos);\n    pos += 2;\n    const instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength);\n    pos += instructionLength;\n    const flags = [];\n\n    for (let i = 0; i < numberOfPt; pos++, i++) {\n      let flag = glyf.getUint8(pos);\n      flags.push(flag);\n\n      if (flag & REPEAT_FLAG) {\n        const count = glyf.getUint8(++pos);\n        flag ^= REPEAT_FLAG;\n\n        for (let m = 0; m < count; m++) {\n          flags.push(flag);\n        }\n\n        i += count;\n      }\n    }\n\n    const allXCoordinates = [];\n    let xCoordinates = [];\n    let yCoordinates = [];\n    let pointFlags = [];\n    const contours = [];\n    let endPtsOfContoursIndex = 0;\n    let lastCoordinate = 0;\n\n    for (let i = 0; i < numberOfPt; i++) {\n      const flag = flags[i];\n\n      if (flag & X_SHORT_VECTOR) {\n        const x = glyf.getUint8(pos++);\n        lastCoordinate += flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR ? x : -x;\n        xCoordinates.push(lastCoordinate);\n      } else if (flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR) {\n        xCoordinates.push(lastCoordinate);\n      } else {\n        lastCoordinate += glyf.getInt16(pos);\n        pos += 2;\n        xCoordinates.push(lastCoordinate);\n      }\n\n      if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n        endPtsOfContoursIndex++;\n        allXCoordinates.push(xCoordinates);\n        xCoordinates = [];\n      }\n    }\n\n    lastCoordinate = 0;\n    endPtsOfContoursIndex = 0;\n\n    for (let i = 0; i < numberOfPt; i++) {\n      const flag = flags[i];\n\n      if (flag & Y_SHORT_VECTOR) {\n        const y = glyf.getUint8(pos++);\n        lastCoordinate += flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR ? y : -y;\n        yCoordinates.push(lastCoordinate);\n      } else if (flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR) {\n        yCoordinates.push(lastCoordinate);\n      } else {\n        lastCoordinate += glyf.getInt16(pos);\n        pos += 2;\n        yCoordinates.push(lastCoordinate);\n      }\n\n      pointFlags.push(flag & ON_CURVE_POINT | flag & OVERLAP_SIMPLE);\n\n      if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n        xCoordinates = allXCoordinates[endPtsOfContoursIndex];\n        endPtsOfContoursIndex++;\n        contours.push(new Contour({\n          flags: pointFlags,\n          xCoordinates,\n          yCoordinates\n        }));\n        yCoordinates = [];\n        pointFlags = [];\n      }\n    }\n\n    return new SimpleGlyph({\n      contours,\n      instructions\n    });\n  }\n\n  getSize() {\n    let size = this.contours.length * 2 + 2 + this.instructions.length;\n    let lastX = 0;\n    let lastY = 0;\n\n    for (const contour of this.contours) {\n      size += contour.flags.length;\n\n      for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n        const x = contour.xCoordinates[i];\n        const y = contour.yCoordinates[i];\n        let abs = Math.abs(x - lastX);\n\n        if (abs > 255) {\n          size += 2;\n        } else if (abs > 0) {\n          size += 1;\n        }\n\n        lastX = x;\n        abs = Math.abs(y - lastY);\n\n        if (abs > 255) {\n          size += 2;\n        } else if (abs > 0) {\n          size += 1;\n        }\n\n        lastY = y;\n      }\n    }\n\n    return size;\n  }\n\n  write(pos, buf) {\n    const spos = pos;\n    const xCoordinates = [];\n    const yCoordinates = [];\n    const flags = [];\n    let lastX = 0;\n    let lastY = 0;\n\n    for (const contour of this.contours) {\n      for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n        let flag = contour.flags[i];\n        const x = contour.xCoordinates[i];\n        let delta = x - lastX;\n\n        if (delta === 0) {\n          flag |= X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR;\n          xCoordinates.push(0);\n        } else {\n          const abs = Math.abs(delta);\n\n          if (abs <= 255) {\n            flag |= delta >= 0 ? X_SHORT_VECTOR | X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR : X_SHORT_VECTOR;\n            xCoordinates.push(abs);\n          } else {\n            xCoordinates.push(delta);\n          }\n        }\n\n        lastX = x;\n        const y = contour.yCoordinates[i];\n        delta = y - lastY;\n\n        if (delta === 0) {\n          flag |= Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR;\n          yCoordinates.push(0);\n        } else {\n          const abs = Math.abs(delta);\n\n          if (abs <= 255) {\n            flag |= delta >= 0 ? Y_SHORT_VECTOR | Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR : Y_SHORT_VECTOR;\n            yCoordinates.push(abs);\n          } else {\n            yCoordinates.push(delta);\n          }\n        }\n\n        lastY = y;\n        flags.push(flag);\n      }\n\n      buf.setUint16(pos, xCoordinates.length - 1);\n      pos += 2;\n    }\n\n    buf.setUint16(pos, this.instructions.length);\n    pos += 2;\n\n    if (this.instructions.length) {\n      new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(this.instructions, pos);\n      pos += this.instructions.length;\n    }\n\n    for (const flag of flags) {\n      buf.setUint8(pos++, flag);\n    }\n\n    for (let i = 0, ii = xCoordinates.length; i < ii; i++) {\n      const x = xCoordinates[i];\n      const flag = flags[i];\n\n      if (flag & X_SHORT_VECTOR) {\n        buf.setUint8(pos++, x);\n      } else if (!(flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR)) {\n        buf.setInt16(pos, x);\n        pos += 2;\n      }\n    }\n\n    for (let i = 0, ii = yCoordinates.length; i < ii; i++) {\n      const y = yCoordinates[i];\n      const flag = flags[i];\n\n      if (flag & Y_SHORT_VECTOR) {\n        buf.setUint8(pos++, y);\n      } else if (!(flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR)) {\n        buf.setInt16(pos, y);\n        pos += 2;\n      }\n    }\n\n    return pos - spos;\n  }\n\n  scale(x, factor) {\n    for (const contour of this.contours) {\n      if (contour.xCoordinates.length === 0) {\n        continue;\n      }\n\n      for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n        contour.xCoordinates[i] = Math.round(x + (contour.xCoordinates[i] - x) * factor);\n      }\n    }\n  }\n\n}\n\nclass CompositeGlyph {\n  constructor(_ref6) {\n    let {\n      flags,\n      glyphIndex,\n      argument1,\n      argument2,\n      transf,\n      instructions\n    } = _ref6;\n    this.flags = flags;\n    this.glyphIndex = glyphIndex;\n    this.argument1 = argument1;\n    this.argument2 = argument2;\n    this.transf = transf;\n    this.instructions = instructions;\n  }\n\n  static parse(pos, glyf) {\n    const spos = pos;\n    const transf = [];\n    let flags = glyf.getUint16(pos);\n    const glyphIndex = glyf.getUint16(pos + 2);\n    pos += 4;\n    let argument1, argument2;\n\n    if (flags & ARG_1_AND_2_ARE_WORDS) {\n      if (flags & ARGS_ARE_XY_VALUES) {\n        argument1 = glyf.getInt16(pos);\n        argument2 = glyf.getInt16(pos + 2);\n      } else {\n        argument1 = glyf.getUint16(pos);\n        argument2 = glyf.getUint16(pos + 2);\n      }\n\n      pos += 4;\n      flags ^= ARG_1_AND_2_ARE_WORDS;\n    } else {\n      if (flags & ARGS_ARE_XY_VALUES) {\n        argument1 = glyf.getInt8(pos);\n        argument2 = glyf.getInt8(pos + 1);\n      } else {\n        argument1 = glyf.getUint8(pos);\n        argument2 = glyf.getUint8(pos + 1);\n      }\n\n      pos += 2;\n    }\n\n    if (flags & WE_HAVE_A_SCALE) {\n      transf.push(glyf.getUint16(pos));\n      pos += 2;\n    } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n      transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2));\n      pos += 4;\n    } else if (flags & WE_HAVE_A_TWO_BY_TWO) {\n      transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2), glyf.getUint16(pos + 4), glyf.getUint16(pos + 6));\n      pos += 8;\n    }\n\n    let instructions = null;\n\n    if (flags & WE_HAVE_INSTRUCTIONS) {\n      const instructionLength = glyf.getUint16(pos);\n      pos += 2;\n      instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength);\n      pos += instructionLength;\n    }\n\n    return [pos - spos, new CompositeGlyph({\n      flags,\n      glyphIndex,\n      argument1,\n      argument2,\n      transf,\n      instructions\n    })];\n  }\n\n  getSize() {\n    let size = 2 + 2 + this.transf.length * 2;\n\n    if (this.flags & WE_HAVE_INSTRUCTIONS) {\n      size += 2 + this.instructions.length;\n    }\n\n    size += 2;\n\n    if (this.flags & 2) {\n      if (!(this.argument1 >= -128 && this.argument1 <= 127 && this.argument2 >= -128 && this.argument2 <= 127)) {\n        size += 2;\n      }\n    } else {\n      if (!(this.argument1 >= 0 && this.argument1 <= 255 && this.argument2 >= 0 && this.argument2 <= 255)) {\n        size += 2;\n      }\n    }\n\n    return size;\n  }\n\n  write(pos, buf) {\n    const spos = pos;\n\n    if (this.flags & ARGS_ARE_XY_VALUES) {\n      if (!(this.argument1 >= -128 && this.argument1 <= 127 && this.argument2 >= -128 && this.argument2 <= 127)) {\n        this.flags |= ARG_1_AND_2_ARE_WORDS;\n      }\n    } else {\n      if (!(this.argument1 >= 0 && this.argument1 <= 255 && this.argument2 >= 0 && this.argument2 <= 255)) {\n        this.flags |= ARG_1_AND_2_ARE_WORDS;\n      }\n    }\n\n    buf.setUint16(pos, this.flags);\n    buf.setUint16(pos + 2, this.glyphIndex);\n    pos += 4;\n\n    if (this.flags & ARG_1_AND_2_ARE_WORDS) {\n      if (this.flags & ARGS_ARE_XY_VALUES) {\n        buf.setInt16(pos, this.argument1);\n        buf.setInt16(pos + 2, this.argument2);\n      } else {\n        buf.setUint16(pos, this.argument1);\n        buf.setUint16(pos + 2, this.argument2);\n      }\n\n      pos += 4;\n    } else {\n      buf.setUint8(pos, this.argument1);\n      buf.setUint8(pos + 1, this.argument2);\n      pos += 2;\n    }\n\n    if (this.flags & WE_HAVE_INSTRUCTIONS) {\n      buf.setUint16(pos, this.instructions.length);\n      pos += 2;\n\n      if (this.instructions.length) {\n        new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(this.instructions, pos);\n        pos += this.instructions.length;\n      }\n    }\n\n    return pos - spos;\n  }\n\n  scale(x, factor) {}\n\n}\n\n/***/ }),\n/* 172 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.OpenTypeFileBuilder = void 0;\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction writeInt16(dest, offset, num) {\n  dest[offset] = num >> 8 & 0xff;\n  dest[offset + 1] = num & 0xff;\n}\n\nfunction writeInt32(dest, offset, num) {\n  dest[offset] = num >> 24 & 0xff;\n  dest[offset + 1] = num >> 16 & 0xff;\n  dest[offset + 2] = num >> 8 & 0xff;\n  dest[offset + 3] = num & 0xff;\n}\n\nfunction writeData(dest, offset, data) {\n  if (data instanceof Uint8Array) {\n    dest.set(data, offset);\n  } else if (typeof data === \"string\") {\n    for (let i = 0, ii = data.length; i < ii; i++) {\n      dest[offset++] = data.charCodeAt(i) & 0xff;\n    }\n  } else {\n    for (let i = 0, ii = data.length; i < ii; i++) {\n      dest[offset++] = data[i] & 0xff;\n    }\n  }\n}\n\nconst OTF_HEADER_SIZE = 12;\nconst OTF_TABLE_ENTRY_SIZE = 16;\n\nclass OpenTypeFileBuilder {\n  constructor(sfnt) {\n    this.sfnt = sfnt;\n    this.tables = Object.create(null);\n  }\n\n  static getSearchParams(entriesCount, entrySize) {\n    let maxPower2 = 1,\n        log2 = 0;\n\n    while ((maxPower2 ^ entriesCount) > maxPower2) {\n      maxPower2 <<= 1;\n      log2++;\n    }\n\n    const searchRange = maxPower2 * entrySize;\n    return {\n      range: searchRange,\n      entry: log2,\n      rangeShift: entrySize * entriesCount - searchRange\n    };\n  }\n\n  toArray() {\n    let sfnt = this.sfnt;\n    const tables = this.tables;\n    const tablesNames = Object.keys(tables);\n    tablesNames.sort();\n    const numTables = tablesNames.length;\n    let i, j, jj, table, tableName;\n    let offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n    const tableOffsets = [offset];\n\n    for (i = 0; i < numTables; i++) {\n      table = tables[tablesNames[i]];\n      const paddedLength = (table.length + 3 & ~3) >>> 0;\n      offset += paddedLength;\n      tableOffsets.push(offset);\n    }\n\n    const file = new Uint8Array(offset);\n\n    for (i = 0; i < numTables; i++) {\n      table = tables[tablesNames[i]];\n      writeData(file, tableOffsets[i], table);\n    }\n\n    if (sfnt === \"true\") {\n      sfnt = (0, _util.string32)(0x00010000);\n    }\n\n    file[0] = sfnt.charCodeAt(0) & 0xff;\n    file[1] = sfnt.charCodeAt(1) & 0xff;\n    file[2] = sfnt.charCodeAt(2) & 0xff;\n    file[3] = sfnt.charCodeAt(3) & 0xff;\n    writeInt16(file, 4, numTables);\n    const searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n    writeInt16(file, 6, searchParams.range);\n    writeInt16(file, 8, searchParams.entry);\n    writeInt16(file, 10, searchParams.rangeShift);\n    offset = OTF_HEADER_SIZE;\n\n    for (i = 0; i < numTables; i++) {\n      tableName = tablesNames[i];\n      file[offset] = tableName.charCodeAt(0) & 0xff;\n      file[offset + 1] = tableName.charCodeAt(1) & 0xff;\n      file[offset + 2] = tableName.charCodeAt(2) & 0xff;\n      file[offset + 3] = tableName.charCodeAt(3) & 0xff;\n      let checksum = 0;\n\n      for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n        const quad = (0, _core_utils.readUint32)(file, j);\n        checksum = checksum + quad >>> 0;\n      }\n\n      writeInt32(file, offset + 4, checksum);\n      writeInt32(file, offset + 8, tableOffsets[i]);\n      writeInt32(file, offset + 12, tables[tableName].length);\n      offset += OTF_TABLE_ENTRY_SIZE;\n    }\n\n    return file;\n  }\n\n  addTable(tag, data) {\n    if (tag in this.tables) {\n      throw new Error(\"Table \" + tag + \" already exists\");\n    }\n\n    this.tables[tag] = data;\n  }\n\n}\n\nexports.OpenTypeFileBuilder = OpenTypeFileBuilder;\n\n/***/ }),\n/* 173 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Type1Font = void 0;\n\nvar _cff_parser = __w_pdfjs_require__(160);\n\nvar _fonts_utils = __w_pdfjs_require__(163);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _stream = __w_pdfjs_require__(135);\n\nvar _type1_parser = __w_pdfjs_require__(174);\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction findBlock(streamBytes, signature, startIndex) {\n  const streamBytesLength = streamBytes.length;\n  const signatureLength = signature.length;\n  const scanLength = streamBytesLength - signatureLength;\n  let i = startIndex,\n      found = false;\n\n  while (i < scanLength) {\n    let j = 0;\n\n    while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n      j++;\n    }\n\n    if (j >= signatureLength) {\n      i += j;\n\n      while (i < streamBytesLength && (0, _core_utils.isWhiteSpace)(streamBytes[i])) {\n        i++;\n      }\n\n      found = true;\n      break;\n    }\n\n    i++;\n  }\n\n  return {\n    found,\n    length: i\n  };\n}\n\nfunction getHeaderBlock(stream, suggestedLength) {\n  const EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n  const streamStartPos = stream.pos;\n  let headerBytes, headerBytesLength, block;\n\n  try {\n    headerBytes = stream.getBytes(suggestedLength);\n    headerBytesLength = headerBytes.length;\n  } catch (ex) {}\n\n  if (headerBytesLength === suggestedLength) {\n    block = findBlock(headerBytes, EEXEC_SIGNATURE, suggestedLength - 2 * EEXEC_SIGNATURE.length);\n\n    if (block.found && block.length === suggestedLength) {\n      return {\n        stream: new _stream.Stream(headerBytes),\n        length: suggestedLength\n      };\n    }\n  }\n\n  (0, _util.warn)('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n  stream.pos = streamStartPos;\n  const SCAN_BLOCK_LENGTH = 2048;\n  let actualLength;\n\n  while (true) {\n    const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n    block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n\n    if (block.length === 0) {\n      break;\n    }\n\n    stream.pos += block.length;\n\n    if (block.found) {\n      actualLength = stream.pos - streamStartPos;\n      break;\n    }\n  }\n\n  stream.pos = streamStartPos;\n\n  if (actualLength) {\n    return {\n      stream: new _stream.Stream(stream.getBytes(actualLength)),\n      length: actualLength\n    };\n  }\n\n  (0, _util.warn)('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n  return {\n    stream: new _stream.Stream(stream.getBytes(suggestedLength)),\n    length: suggestedLength\n  };\n}\n\nfunction getEexecBlock(stream, suggestedLength) {\n  const eexecBytes = stream.getBytes();\n  return {\n    stream: new _stream.Stream(eexecBytes),\n    length: eexecBytes.length\n  };\n}\n\nclass Type1Font {\n  constructor(name, file, properties) {\n    const PFB_HEADER_SIZE = 6;\n    let headerBlockLength = properties.length1;\n    let eexecBlockLength = properties.length2;\n    let pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n    const pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n\n    if (pfbHeaderPresent) {\n      file.skip(PFB_HEADER_SIZE);\n      headerBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n    }\n\n    const headerBlock = getHeaderBlock(file, headerBlockLength);\n    const headerBlockParser = new _type1_parser.Type1Parser(headerBlock.stream, false, _fonts_utils.SEAC_ANALYSIS_ENABLED);\n    headerBlockParser.extractFontHeader(properties);\n\n    if (pfbHeaderPresent) {\n      pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n      eexecBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n    }\n\n    const eexecBlock = getEexecBlock(file, eexecBlockLength);\n    const eexecBlockParser = new _type1_parser.Type1Parser(eexecBlock.stream, true, _fonts_utils.SEAC_ANALYSIS_ENABLED);\n    const data = eexecBlockParser.extractFontProgram(properties);\n\n    for (const key in data.properties) {\n      properties[key] = data.properties[key];\n    }\n\n    const charstrings = data.charstrings;\n    const type2Charstrings = this.getType2Charstrings(charstrings);\n    const subrs = this.getType2Subrs(data.subrs);\n    this.charstrings = charstrings;\n    this.data = this.wrap(name, type2Charstrings, this.charstrings, subrs, properties);\n    this.seacs = this.getSeacs(data.charstrings);\n  }\n\n  get numGlyphs() {\n    return this.charstrings.length + 1;\n  }\n\n  getCharset() {\n    const charset = [\".notdef\"];\n\n    for (const {\n      glyphName\n    } of this.charstrings) {\n      charset.push(glyphName);\n    }\n\n    return charset;\n  }\n\n  getGlyphMapping(properties) {\n    const charstrings = this.charstrings;\n\n    if (properties.composite) {\n      const charCodeToGlyphId = Object.create(null);\n\n      for (let glyphId = 0, charstringsLen = charstrings.length; glyphId < charstringsLen; glyphId++) {\n        const charCode = properties.cMap.charCodeOf(glyphId);\n        charCodeToGlyphId[charCode] = glyphId + 1;\n      }\n\n      return charCodeToGlyphId;\n    }\n\n    const glyphNames = [\".notdef\"];\n    let builtInEncoding, glyphId;\n\n    for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n      glyphNames.push(charstrings[glyphId].glyphName);\n    }\n\n    const encoding = properties.builtInEncoding;\n\n    if (encoding) {\n      builtInEncoding = Object.create(null);\n\n      for (const charCode in encoding) {\n        glyphId = glyphNames.indexOf(encoding[charCode]);\n\n        if (glyphId >= 0) {\n          builtInEncoding[charCode] = glyphId;\n        }\n      }\n    }\n\n    return (0, _fonts_utils.type1FontGlyphMapping)(properties, builtInEncoding, glyphNames);\n  }\n\n  hasGlyphId(id) {\n    if (id < 0 || id >= this.numGlyphs) {\n      return false;\n    }\n\n    if (id === 0) {\n      return true;\n    }\n\n    const glyph = this.charstrings[id - 1];\n    return glyph.charstring.length > 0;\n  }\n\n  getSeacs(charstrings) {\n    const seacMap = [];\n\n    for (let i = 0, ii = charstrings.length; i < ii; i++) {\n      const charstring = charstrings[i];\n\n      if (charstring.seac) {\n        seacMap[i + 1] = charstring.seac;\n      }\n    }\n\n    return seacMap;\n  }\n\n  getType2Charstrings(type1Charstrings) {\n    const type2Charstrings = [];\n\n    for (let i = 0, ii = type1Charstrings.length; i < ii; i++) {\n      type2Charstrings.push(type1Charstrings[i].charstring);\n    }\n\n    return type2Charstrings;\n  }\n\n  getType2Subrs(type1Subrs) {\n    let bias = 0;\n    const count = type1Subrs.length;\n\n    if (count < 1133) {\n      bias = 107;\n    } else if (count < 33769) {\n      bias = 1131;\n    } else {\n      bias = 32768;\n    }\n\n    const type2Subrs = [];\n    let i;\n\n    for (i = 0; i < bias; i++) {\n      type2Subrs.push([0x0b]);\n    }\n\n    for (i = 0; i < count; i++) {\n      type2Subrs.push(type1Subrs[i]);\n    }\n\n    return type2Subrs;\n  }\n\n  wrap(name, glyphs, charstrings, subrs, properties) {\n    const cff = new _cff_parser.CFF();\n    cff.header = new _cff_parser.CFFHeader(1, 0, 4, 4);\n    cff.names = [name];\n    const topDict = new _cff_parser.CFFTopDict();\n    topDict.setByName(\"version\", 391);\n    topDict.setByName(\"Notice\", 392);\n    topDict.setByName(\"FullName\", 393);\n    topDict.setByName(\"FamilyName\", 394);\n    topDict.setByName(\"Weight\", 395);\n    topDict.setByName(\"Encoding\", null);\n    topDict.setByName(\"FontMatrix\", properties.fontMatrix);\n    topDict.setByName(\"FontBBox\", properties.bbox);\n    topDict.setByName(\"charset\", null);\n    topDict.setByName(\"CharStrings\", null);\n    topDict.setByName(\"Private\", null);\n    cff.topDict = topDict;\n    const strings = new _cff_parser.CFFStrings();\n    strings.add(\"Version 0.11\");\n    strings.add(\"See original notice\");\n    strings.add(name);\n    strings.add(name);\n    strings.add(\"Medium\");\n    cff.strings = strings;\n    cff.globalSubrIndex = new _cff_parser.CFFIndex();\n    const count = glyphs.length;\n    const charsetArray = [\".notdef\"];\n    let i, ii;\n\n    for (i = 0; i < count; i++) {\n      const glyphName = charstrings[i].glyphName;\n\n      const index = _cff_parser.CFFStandardStrings.indexOf(glyphName);\n\n      if (index === -1) {\n        strings.add(glyphName);\n      }\n\n      charsetArray.push(glyphName);\n    }\n\n    cff.charset = new _cff_parser.CFFCharset(false, 0, charsetArray);\n    const charStringsIndex = new _cff_parser.CFFIndex();\n    charStringsIndex.add([0x8b, 0x0e]);\n\n    for (i = 0; i < count; i++) {\n      charStringsIndex.add(glyphs[i]);\n    }\n\n    cff.charStrings = charStringsIndex;\n    const privateDict = new _cff_parser.CFFPrivateDict();\n    privateDict.setByName(\"Subrs\", null);\n    const fields = [\"BlueValues\", \"OtherBlues\", \"FamilyBlues\", \"FamilyOtherBlues\", \"StemSnapH\", \"StemSnapV\", \"BlueShift\", \"BlueFuzz\", \"BlueScale\", \"LanguageGroup\", \"ExpansionFactor\", \"ForceBold\", \"StdHW\", \"StdVW\"];\n\n    for (i = 0, ii = fields.length; i < ii; i++) {\n      const field = fields[i];\n\n      if (!(field in properties.privateData)) {\n        continue;\n      }\n\n      const value = properties.privateData[field];\n\n      if (Array.isArray(value)) {\n        for (let j = value.length - 1; j > 0; j--) {\n          value[j] -= value[j - 1];\n        }\n      }\n\n      privateDict.setByName(field, value);\n    }\n\n    cff.topDict.privateDict = privateDict;\n    const subrIndex = new _cff_parser.CFFIndex();\n\n    for (i = 0, ii = subrs.length; i < ii; i++) {\n      subrIndex.add(subrs[i]);\n    }\n\n    privateDict.subrsIndex = subrIndex;\n    const compiler = new _cff_parser.CFFCompiler(cff);\n    return compiler.compile();\n  }\n\n}\n\nexports.Type1Font = Type1Font;\n\n/***/ }),\n/* 174 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Type1Parser = void 0;\n\nvar _encodings = __w_pdfjs_require__(162);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _stream = __w_pdfjs_require__(135);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst HINTING_ENABLED = false;\nconst COMMAND_MAP = {\n  hstem: [1],\n  vstem: [3],\n  vmoveto: [4],\n  rlineto: [5],\n  hlineto: [6],\n  vlineto: [7],\n  rrcurveto: [8],\n  callsubr: [10],\n  flex: [12, 35],\n  drop: [12, 18],\n  endchar: [14],\n  rmoveto: [21],\n  hmoveto: [22],\n  vhcurveto: [30],\n  hvcurveto: [31]\n};\n\nclass Type1CharString {\n  constructor() {\n    this.width = 0;\n    this.lsb = 0;\n    this.flexing = false;\n    this.output = [];\n    this.stack = [];\n  }\n\n  convert(encoded, subrs, seacAnalysisEnabled) {\n    const count = encoded.length;\n    let error = false;\n    let wx, sbx, subrNumber;\n\n    for (let i = 0; i < count; i++) {\n      let value = encoded[i];\n\n      if (value < 32) {\n        if (value === 12) {\n          value = (value << 8) + encoded[++i];\n        }\n\n        switch (value) {\n          case 1:\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n\n            error = this.executeCommand(2, COMMAND_MAP.hstem);\n            break;\n\n          case 3:\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n\n            error = this.executeCommand(2, COMMAND_MAP.vstem);\n            break;\n\n          case 4:\n            if (this.flexing) {\n              if (this.stack.length < 1) {\n                error = true;\n                break;\n              }\n\n              const dy = this.stack.pop();\n              this.stack.push(0, dy);\n              break;\n            }\n\n            error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n            break;\n\n          case 5:\n            error = this.executeCommand(2, COMMAND_MAP.rlineto);\n            break;\n\n          case 6:\n            error = this.executeCommand(1, COMMAND_MAP.hlineto);\n            break;\n\n          case 7:\n            error = this.executeCommand(1, COMMAND_MAP.vlineto);\n            break;\n\n          case 8:\n            error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n            break;\n\n          case 9:\n            this.stack = [];\n            break;\n\n          case 10:\n            if (this.stack.length < 1) {\n              error = true;\n              break;\n            }\n\n            subrNumber = this.stack.pop();\n\n            if (!subrs[subrNumber]) {\n              error = true;\n              break;\n            }\n\n            error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled);\n            break;\n\n          case 11:\n            return error;\n\n          case 13:\n            if (this.stack.length < 2) {\n              error = true;\n              break;\n            }\n\n            wx = this.stack.pop();\n            sbx = this.stack.pop();\n            this.lsb = sbx;\n            this.width = wx;\n            this.stack.push(wx, sbx);\n            error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n            break;\n\n          case 14:\n            this.output.push(COMMAND_MAP.endchar[0]);\n            break;\n\n          case 21:\n            if (this.flexing) {\n              break;\n            }\n\n            error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n            break;\n\n          case 22:\n            if (this.flexing) {\n              this.stack.push(0);\n              break;\n            }\n\n            error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n            break;\n\n          case 30:\n            error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n            break;\n\n          case 31:\n            error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n            break;\n\n          case (12 << 8) + 0:\n            this.stack = [];\n            break;\n\n          case (12 << 8) + 1:\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n\n            error = this.executeCommand(2, COMMAND_MAP.vstem);\n            break;\n\n          case (12 << 8) + 2:\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n\n            error = this.executeCommand(2, COMMAND_MAP.hstem);\n            break;\n\n          case (12 << 8) + 6:\n            if (seacAnalysisEnabled) {\n              const asb = this.stack.at(-5);\n              this.seac = this.stack.splice(-4, 4);\n              this.seac[0] += this.lsb - asb;\n              error = this.executeCommand(0, COMMAND_MAP.endchar);\n            } else {\n              error = this.executeCommand(4, COMMAND_MAP.endchar);\n            }\n\n            break;\n\n          case (12 << 8) + 7:\n            if (this.stack.length < 4) {\n              error = true;\n              break;\n            }\n\n            this.stack.pop();\n            wx = this.stack.pop();\n            const sby = this.stack.pop();\n            sbx = this.stack.pop();\n            this.lsb = sbx;\n            this.width = wx;\n            this.stack.push(wx, sbx, sby);\n            error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n            break;\n\n          case (12 << 8) + 12:\n            if (this.stack.length < 2) {\n              error = true;\n              break;\n            }\n\n            const num2 = this.stack.pop();\n            const num1 = this.stack.pop();\n            this.stack.push(num1 / num2);\n            break;\n\n          case (12 << 8) + 16:\n            if (this.stack.length < 2) {\n              error = true;\n              break;\n            }\n\n            subrNumber = this.stack.pop();\n            const numArgs = this.stack.pop();\n\n            if (subrNumber === 0 && numArgs === 3) {\n              const flexArgs = this.stack.splice(this.stack.length - 17, 17);\n              this.stack.push(flexArgs[2] + flexArgs[0], flexArgs[3] + flexArgs[1], flexArgs[4], flexArgs[5], flexArgs[6], flexArgs[7], flexArgs[8], flexArgs[9], flexArgs[10], flexArgs[11], flexArgs[12], flexArgs[13], flexArgs[14]);\n              error = this.executeCommand(13, COMMAND_MAP.flex, true);\n              this.flexing = false;\n              this.stack.push(flexArgs[15], flexArgs[16]);\n            } else if (subrNumber === 1 && numArgs === 0) {\n              this.flexing = true;\n            }\n\n            break;\n\n          case (12 << 8) + 17:\n            break;\n\n          case (12 << 8) + 33:\n            this.stack = [];\n            break;\n\n          default:\n            (0, _util.warn)('Unknown type 1 charstring command of \"' + value + '\"');\n            break;\n        }\n\n        if (error) {\n          break;\n        }\n\n        continue;\n      } else if (value <= 246) {\n        value -= 139;\n      } else if (value <= 250) {\n        value = (value - 247) * 256 + encoded[++i] + 108;\n      } else if (value <= 254) {\n        value = -((value - 251) * 256) - encoded[++i] - 108;\n      } else {\n        value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0;\n      }\n\n      this.stack.push(value);\n    }\n\n    return error;\n  }\n\n  executeCommand(howManyArgs, command, keepStack) {\n    const stackLength = this.stack.length;\n\n    if (howManyArgs > stackLength) {\n      return true;\n    }\n\n    const start = stackLength - howManyArgs;\n\n    for (let i = start; i < stackLength; i++) {\n      let value = this.stack[i];\n\n      if (Number.isInteger(value)) {\n        this.output.push(28, value >> 8 & 0xff, value & 0xff);\n      } else {\n        value = 65536 * value | 0;\n        this.output.push(255, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n      }\n    }\n\n    this.output.push(...command);\n\n    if (keepStack) {\n      this.stack.splice(start, howManyArgs);\n    } else {\n      this.stack.length = 0;\n    }\n\n    return false;\n  }\n\n}\n\nconst EEXEC_ENCRYPT_KEY = 55665;\nconst CHAR_STRS_ENCRYPT_KEY = 4330;\n\nfunction isHexDigit(code) {\n  return code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102;\n}\n\nfunction decrypt(data, key, discardNumber) {\n  if (discardNumber >= data.length) {\n    return new Uint8Array(0);\n  }\n\n  const c1 = 52845,\n        c2 = 22719;\n  let r = key | 0,\n      i,\n      j;\n\n  for (i = 0; i < discardNumber; i++) {\n    r = (data[i] + r) * c1 + c2 & (1 << 16) - 1;\n  }\n\n  const count = data.length - discardNumber;\n  const decrypted = new Uint8Array(count);\n\n  for (i = discardNumber, j = 0; j < count; i++, j++) {\n    const value = data[i];\n    decrypted[j] = value ^ r >> 8;\n    r = (value + r) * c1 + c2 & (1 << 16) - 1;\n  }\n\n  return decrypted;\n}\n\nfunction decryptAscii(data, key, discardNumber) {\n  const c1 = 52845,\n        c2 = 22719;\n  let r = key | 0;\n  const count = data.length,\n        maybeLength = count >>> 1;\n  const decrypted = new Uint8Array(maybeLength);\n  let i, j;\n\n  for (i = 0, j = 0; i < count; i++) {\n    const digit1 = data[i];\n\n    if (!isHexDigit(digit1)) {\n      continue;\n    }\n\n    i++;\n    let digit2;\n\n    while (i < count && !isHexDigit(digit2 = data[i])) {\n      i++;\n    }\n\n    if (i < count) {\n      const value = parseInt(String.fromCharCode(digit1, digit2), 16);\n      decrypted[j++] = value ^ r >> 8;\n      r = (value + r) * c1 + c2 & (1 << 16) - 1;\n    }\n  }\n\n  return decrypted.slice(discardNumber, j);\n}\n\nfunction isSpecial(c) {\n  return c === 0x2f || c === 0x5b || c === 0x5d || c === 0x7b || c === 0x7d || c === 0x28 || c === 0x29;\n}\n\nclass Type1Parser {\n  constructor(stream, encrypted, seacAnalysisEnabled) {\n    if (encrypted) {\n      const data = stream.getBytes();\n      const isBinary = !((isHexDigit(data[0]) || (0, _core_utils.isWhiteSpace)(data[0])) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3]) && isHexDigit(data[4]) && isHexDigit(data[5]) && isHexDigit(data[6]) && isHexDigit(data[7]));\n      stream = new _stream.Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4));\n    }\n\n    this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n    this.stream = stream;\n    this.nextChar();\n  }\n\n  readNumberArray() {\n    this.getToken();\n    const array = [];\n\n    while (true) {\n      const token = this.getToken();\n\n      if (token === null || token === \"]\" || token === \"}\") {\n        break;\n      }\n\n      array.push(parseFloat(token || 0));\n    }\n\n    return array;\n  }\n\n  readNumber() {\n    const token = this.getToken();\n    return parseFloat(token || 0);\n  }\n\n  readInt() {\n    const token = this.getToken();\n    return parseInt(token || 0, 10) | 0;\n  }\n\n  readBoolean() {\n    const token = this.getToken();\n    return token === \"true\" ? 1 : 0;\n  }\n\n  nextChar() {\n    return this.currentChar = this.stream.getByte();\n  }\n\n  prevChar() {\n    this.stream.skip(-2);\n    return this.currentChar = this.stream.getByte();\n  }\n\n  getToken() {\n    let comment = false;\n    let ch = this.currentChar;\n\n    while (true) {\n      if (ch === -1) {\n        return null;\n      }\n\n      if (comment) {\n        if (ch === 0x0a || ch === 0x0d) {\n          comment = false;\n        }\n      } else if (ch === 0x25) {\n        comment = true;\n      } else if (!(0, _core_utils.isWhiteSpace)(ch)) {\n        break;\n      }\n\n      ch = this.nextChar();\n    }\n\n    if (isSpecial(ch)) {\n      this.nextChar();\n      return String.fromCharCode(ch);\n    }\n\n    let token = \"\";\n\n    do {\n      token += String.fromCharCode(ch);\n      ch = this.nextChar();\n    } while (ch >= 0 && !(0, _core_utils.isWhiteSpace)(ch) && !isSpecial(ch));\n\n    return token;\n  }\n\n  readCharStrings(bytes, lenIV) {\n    if (lenIV === -1) {\n      return bytes;\n    }\n\n    return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n  }\n\n  extractFontProgram(properties) {\n    const stream = this.stream;\n    const subrs = [],\n          charstrings = [];\n    const privateData = Object.create(null);\n    privateData.lenIV = 4;\n    const program = {\n      subrs: [],\n      charstrings: [],\n      properties: {\n        privateData\n      }\n    };\n    let token, length, data, lenIV;\n\n    while ((token = this.getToken()) !== null) {\n      if (token !== \"/\") {\n        continue;\n      }\n\n      token = this.getToken();\n\n      switch (token) {\n        case \"CharStrings\":\n          this.getToken();\n          this.getToken();\n          this.getToken();\n          this.getToken();\n\n          while (true) {\n            token = this.getToken();\n\n            if (token === null || token === \"end\") {\n              break;\n            }\n\n            if (token !== \"/\") {\n              continue;\n            }\n\n            const glyph = this.getToken();\n            length = this.readInt();\n            this.getToken();\n            data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n            lenIV = program.properties.privateData.lenIV;\n            const encoded = this.readCharStrings(data, lenIV);\n            this.nextChar();\n            token = this.getToken();\n\n            if (token === \"noaccess\") {\n              this.getToken();\n            } else if (token === \"/\") {\n              this.prevChar();\n            }\n\n            charstrings.push({\n              glyph,\n              encoded\n            });\n          }\n\n          break;\n\n        case \"Subrs\":\n          this.readInt();\n          this.getToken();\n\n          while (this.getToken() === \"dup\") {\n            const index = this.readInt();\n            length = this.readInt();\n            this.getToken();\n            data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n            lenIV = program.properties.privateData.lenIV;\n            const encoded = this.readCharStrings(data, lenIV);\n            this.nextChar();\n            token = this.getToken();\n\n            if (token === \"noaccess\") {\n              this.getToken();\n            }\n\n            subrs[index] = encoded;\n          }\n\n          break;\n\n        case \"BlueValues\":\n        case \"OtherBlues\":\n        case \"FamilyBlues\":\n        case \"FamilyOtherBlues\":\n          const blueArray = this.readNumberArray();\n\n          if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) {\n            program.properties.privateData[token] = blueArray;\n          }\n\n          break;\n\n        case \"StemSnapH\":\n        case \"StemSnapV\":\n          program.properties.privateData[token] = this.readNumberArray();\n          break;\n\n        case \"StdHW\":\n        case \"StdVW\":\n          program.properties.privateData[token] = this.readNumberArray()[0];\n          break;\n\n        case \"BlueShift\":\n        case \"lenIV\":\n        case \"BlueFuzz\":\n        case \"BlueScale\":\n        case \"LanguageGroup\":\n        case \"ExpansionFactor\":\n          program.properties.privateData[token] = this.readNumber();\n          break;\n\n        case \"ForceBold\":\n          program.properties.privateData[token] = this.readBoolean();\n          break;\n      }\n    }\n\n    for (const {\n      encoded,\n      glyph\n    } of charstrings) {\n      const charString = new Type1CharString();\n      const error = charString.convert(encoded, subrs, this.seacAnalysisEnabled);\n      let output = charString.output;\n\n      if (error) {\n        output = [14];\n      }\n\n      const charStringObject = {\n        glyphName: glyph,\n        charstring: output,\n        width: charString.width,\n        lsb: charString.lsb,\n        seac: charString.seac\n      };\n\n      if (glyph === \".notdef\") {\n        program.charstrings.unshift(charStringObject);\n      } else {\n        program.charstrings.push(charStringObject);\n      }\n\n      if (properties.builtInEncoding) {\n        const index = properties.builtInEncoding.indexOf(glyph);\n\n        if (index > -1 && properties.widths[index] === undefined && index >= properties.firstChar && index <= properties.lastChar) {\n          properties.widths[index] = charString.width;\n        }\n      }\n    }\n\n    return program;\n  }\n\n  extractFontHeader(properties) {\n    let token;\n\n    while ((token = this.getToken()) !== null) {\n      if (token !== \"/\") {\n        continue;\n      }\n\n      token = this.getToken();\n\n      switch (token) {\n        case \"FontMatrix\":\n          const matrix = this.readNumberArray();\n          properties.fontMatrix = matrix;\n          break;\n\n        case \"Encoding\":\n          const encodingArg = this.getToken();\n          let encoding;\n\n          if (!/^\\d+$/.test(encodingArg)) {\n            encoding = (0, _encodings.getEncoding)(encodingArg);\n          } else {\n            encoding = [];\n            const size = parseInt(encodingArg, 10) | 0;\n            this.getToken();\n\n            for (let j = 0; j < size; j++) {\n              token = this.getToken();\n\n              while (token !== \"dup\" && token !== \"def\") {\n                token = this.getToken();\n\n                if (token === null) {\n                  return;\n                }\n              }\n\n              if (token === \"def\") {\n                break;\n              }\n\n              const index = this.readInt();\n              this.getToken();\n              const glyph = this.getToken();\n              encoding[index] = glyph;\n              this.getToken();\n            }\n          }\n\n          properties.builtInEncoding = encoding;\n          break;\n\n        case \"FontBBox\":\n          const fontBBox = this.readNumberArray();\n          properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n          properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n          properties.ascentScaled = true;\n          break;\n      }\n    }\n  }\n\n}\n\nexports.Type1Parser = Type1Parser;\n\n/***/ }),\n/* 175 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Pattern = void 0;\nexports.getTilingPatternIR = getTilingPatternIR;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _colorspace = __w_pdfjs_require__(139);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nconst ShadingType = {\n  FUNCTION_BASED: 1,\n  AXIAL: 2,\n  RADIAL: 3,\n  FREE_FORM_MESH: 4,\n  LATTICE_FORM_MESH: 5,\n  COONS_PATCH_MESH: 6,\n  TENSOR_PATCH_MESH: 7\n};\n\nclass Pattern {\n  constructor() {\n    (0, _util.unreachable)(\"Cannot initialize Pattern.\");\n  }\n\n  static parseShading(shading, xref, res, handler, pdfFunctionFactory, localColorSpaceCache) {\n    const dict = shading instanceof _base_stream.BaseStream ? shading.dict : shading;\n    const type = dict.get(\"ShadingType\");\n\n    try {\n      switch (type) {\n        case ShadingType.AXIAL:\n        case ShadingType.RADIAL:\n          return new RadialAxialShading(dict, xref, res, pdfFunctionFactory, localColorSpaceCache);\n\n        case ShadingType.FREE_FORM_MESH:\n        case ShadingType.LATTICE_FORM_MESH:\n        case ShadingType.COONS_PATCH_MESH:\n        case ShadingType.TENSOR_PATCH_MESH:\n          return new MeshShading(shading, xref, res, pdfFunctionFactory, localColorSpaceCache);\n\n        default:\n          throw new _util.FormatError(\"Unsupported ShadingType: \" + type);\n      }\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      handler.send(\"UnsupportedFeature\", {\n        featureId: _util.UNSUPPORTED_FEATURES.shadingPattern\n      });\n      (0, _util.warn)(ex);\n      return new DummyShading();\n    }\n  }\n\n}\n\nexports.Pattern = Pattern;\n\nclass BaseShading {\n  static get SMALL_NUMBER() {\n    return (0, _util.shadow)(this, \"SMALL_NUMBER\", 1e-6);\n  }\n\n  constructor() {\n    if (this.constructor === BaseShading) {\n      (0, _util.unreachable)(\"Cannot initialize BaseShading.\");\n    }\n  }\n\n  getIR() {\n    (0, _util.unreachable)(\"Abstract method `getIR` called.\");\n  }\n\n}\n\nclass RadialAxialShading extends BaseShading {\n  constructor(dict, xref, resources, pdfFunctionFactory, localColorSpaceCache) {\n    super();\n    this.coordsArr = dict.getArray(\"Coords\");\n    this.shadingType = dict.get(\"ShadingType\");\n\n    const cs = _colorspace.ColorSpace.parse({\n      cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n      xref,\n      resources,\n      pdfFunctionFactory,\n      localColorSpaceCache\n    });\n\n    const bbox = dict.getArray(\"BBox\");\n\n    if (Array.isArray(bbox) && bbox.length === 4) {\n      this.bbox = _util.Util.normalizeRect(bbox);\n    } else {\n      this.bbox = null;\n    }\n\n    let t0 = 0.0,\n        t1 = 1.0;\n\n    if (dict.has(\"Domain\")) {\n      const domainArr = dict.getArray(\"Domain\");\n      t0 = domainArr[0];\n      t1 = domainArr[1];\n    }\n\n    let extendStart = false,\n        extendEnd = false;\n\n    if (dict.has(\"Extend\")) {\n      const extendArr = dict.getArray(\"Extend\");\n      extendStart = extendArr[0];\n      extendEnd = extendArr[1];\n    }\n\n    if (this.shadingType === ShadingType.RADIAL && (!extendStart || !extendEnd)) {\n      const [x1, y1, r1, x2, y2, r2] = this.coordsArr;\n      const distance = Math.hypot(x1 - x2, y1 - y2);\n\n      if (r1 <= r2 + distance && r2 <= r1 + distance) {\n        (0, _util.warn)(\"Unsupported radial gradient.\");\n      }\n    }\n\n    this.extendStart = extendStart;\n    this.extendEnd = extendEnd;\n    const fnObj = dict.getRaw(\"Function\");\n    const fn = pdfFunctionFactory.createFromArray(fnObj);\n    const NUMBER_OF_SAMPLES = 10;\n    const step = (t1 - t0) / NUMBER_OF_SAMPLES;\n    const colorStops = this.colorStops = [];\n\n    if (t0 >= t1 || step <= 0) {\n      (0, _util.info)(\"Bad shading domain.\");\n      return;\n    }\n\n    const color = new Float32Array(cs.numComps),\n          ratio = new Float32Array(1);\n    let rgbColor;\n\n    for (let i = 0; i <= NUMBER_OF_SAMPLES; i++) {\n      ratio[0] = t0 + i * step;\n      fn(ratio, 0, color, 0);\n      rgbColor = cs.getRgb(color, 0);\n\n      const cssColor = _util.Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]);\n\n      colorStops.push([i / NUMBER_OF_SAMPLES, cssColor]);\n    }\n\n    let background = \"transparent\";\n\n    if (dict.has(\"Background\")) {\n      rgbColor = cs.getRgb(dict.get(\"Background\"), 0);\n      background = _util.Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]);\n    }\n\n    if (!extendStart) {\n      colorStops.unshift([0, background]);\n      colorStops[1][0] += BaseShading.SMALL_NUMBER;\n    }\n\n    if (!extendEnd) {\n      colorStops.at(-1)[0] -= BaseShading.SMALL_NUMBER;\n      colorStops.push([1, background]);\n    }\n\n    this.colorStops = colorStops;\n  }\n\n  getIR() {\n    const coordsArr = this.coordsArr;\n    const shadingType = this.shadingType;\n    let type, p0, p1, r0, r1;\n\n    if (shadingType === ShadingType.AXIAL) {\n      p0 = [coordsArr[0], coordsArr[1]];\n      p1 = [coordsArr[2], coordsArr[3]];\n      r0 = null;\n      r1 = null;\n      type = \"axial\";\n    } else if (shadingType === ShadingType.RADIAL) {\n      p0 = [coordsArr[0], coordsArr[1]];\n      p1 = [coordsArr[3], coordsArr[4]];\n      r0 = coordsArr[2];\n      r1 = coordsArr[5];\n      type = \"radial\";\n    } else {\n      (0, _util.unreachable)(`getPattern type unknown: ${shadingType}`);\n    }\n\n    return [\"RadialAxial\", type, this.bbox, this.colorStops, p0, p1, r0, r1];\n  }\n\n}\n\nclass MeshStreamReader {\n  constructor(stream, context) {\n    this.stream = stream;\n    this.context = context;\n    this.buffer = 0;\n    this.bufferLength = 0;\n    const numComps = context.numComps;\n    this.tmpCompsBuf = new Float32Array(numComps);\n    const csNumComps = context.colorSpace.numComps;\n    this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : this.tmpCompsBuf;\n  }\n\n  get hasData() {\n    if (this.stream.end) {\n      return this.stream.pos < this.stream.end;\n    }\n\n    if (this.bufferLength > 0) {\n      return true;\n    }\n\n    const nextByte = this.stream.getByte();\n\n    if (nextByte < 0) {\n      return false;\n    }\n\n    this.buffer = nextByte;\n    this.bufferLength = 8;\n    return true;\n  }\n\n  readBits(n) {\n    let buffer = this.buffer;\n    let bufferLength = this.bufferLength;\n\n    if (n === 32) {\n      if (bufferLength === 0) {\n        return (this.stream.getByte() << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte()) >>> 0;\n      }\n\n      buffer = buffer << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte();\n      const nextByte = this.stream.getByte();\n      this.buffer = nextByte & (1 << bufferLength) - 1;\n      return (buffer << 8 - bufferLength | (nextByte & 0xff) >> bufferLength) >>> 0;\n    }\n\n    if (n === 8 && bufferLength === 0) {\n      return this.stream.getByte();\n    }\n\n    while (bufferLength < n) {\n      buffer = buffer << 8 | this.stream.getByte();\n      bufferLength += 8;\n    }\n\n    bufferLength -= n;\n    this.bufferLength = bufferLength;\n    this.buffer = buffer & (1 << bufferLength) - 1;\n    return buffer >> bufferLength;\n  }\n\n  align() {\n    this.buffer = 0;\n    this.bufferLength = 0;\n  }\n\n  readFlag() {\n    return this.readBits(this.context.bitsPerFlag);\n  }\n\n  readCoordinate() {\n    const bitsPerCoordinate = this.context.bitsPerCoordinate;\n    const xi = this.readBits(bitsPerCoordinate);\n    const yi = this.readBits(bitsPerCoordinate);\n    const decode = this.context.decode;\n    const scale = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : 2.3283064365386963e-10;\n    return [xi * scale * (decode[1] - decode[0]) + decode[0], yi * scale * (decode[3] - decode[2]) + decode[2]];\n  }\n\n  readComponents() {\n    const numComps = this.context.numComps;\n    const bitsPerComponent = this.context.bitsPerComponent;\n    const scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10;\n    const decode = this.context.decode;\n    const components = this.tmpCompsBuf;\n\n    for (let i = 0, j = 4; i < numComps; i++, j += 2) {\n      const ci = this.readBits(bitsPerComponent);\n      components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n    }\n\n    const color = this.tmpCsCompsBuf;\n\n    if (this.context.colorFn) {\n      this.context.colorFn(components, 0, color, 0);\n    }\n\n    return this.context.colorSpace.getRgb(color, 0);\n  }\n\n}\n\nconst getB = function getBClosure() {\n  function buildB(count) {\n    const lut = [];\n\n    for (let i = 0; i <= count; i++) {\n      const t = i / count,\n            t_ = 1 - t;\n      lut.push(new Float32Array([t_ * t_ * t_, 3 * t * t_ * t_, 3 * t * t * t_, t * t * t]));\n    }\n\n    return lut;\n  }\n\n  const cache = [];\n  return function (count) {\n    if (!cache[count]) {\n      cache[count] = buildB(count);\n    }\n\n    return cache[count];\n  };\n}();\n\nclass MeshShading extends BaseShading {\n  static get MIN_SPLIT_PATCH_CHUNKS_AMOUNT() {\n    return (0, _util.shadow)(this, \"MIN_SPLIT_PATCH_CHUNKS_AMOUNT\", 3);\n  }\n\n  static get MAX_SPLIT_PATCH_CHUNKS_AMOUNT() {\n    return (0, _util.shadow)(this, \"MAX_SPLIT_PATCH_CHUNKS_AMOUNT\", 20);\n  }\n\n  static get TRIANGLE_DENSITY() {\n    return (0, _util.shadow)(this, \"TRIANGLE_DENSITY\", 20);\n  }\n\n  constructor(stream, xref, resources, pdfFunctionFactory, localColorSpaceCache) {\n    super();\n\n    if (!(stream instanceof _base_stream.BaseStream)) {\n      throw new _util.FormatError(\"Mesh data is not a stream\");\n    }\n\n    const dict = stream.dict;\n    this.shadingType = dict.get(\"ShadingType\");\n    const bbox = dict.getArray(\"BBox\");\n\n    if (Array.isArray(bbox) && bbox.length === 4) {\n      this.bbox = _util.Util.normalizeRect(bbox);\n    } else {\n      this.bbox = null;\n    }\n\n    const cs = _colorspace.ColorSpace.parse({\n      cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n      xref,\n      resources,\n      pdfFunctionFactory,\n      localColorSpaceCache\n    });\n\n    this.background = dict.has(\"Background\") ? cs.getRgb(dict.get(\"Background\"), 0) : null;\n    const fnObj = dict.getRaw(\"Function\");\n    const fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n    this.coords = [];\n    this.colors = [];\n    this.figures = [];\n    const decodeContext = {\n      bitsPerCoordinate: dict.get(\"BitsPerCoordinate\"),\n      bitsPerComponent: dict.get(\"BitsPerComponent\"),\n      bitsPerFlag: dict.get(\"BitsPerFlag\"),\n      decode: dict.getArray(\"Decode\"),\n      colorFn: fn,\n      colorSpace: cs,\n      numComps: fn ? 1 : cs.numComps\n    };\n    const reader = new MeshStreamReader(stream, decodeContext);\n    let patchMesh = false;\n\n    switch (this.shadingType) {\n      case ShadingType.FREE_FORM_MESH:\n        this._decodeType4Shading(reader);\n\n        break;\n\n      case ShadingType.LATTICE_FORM_MESH:\n        const verticesPerRow = dict.get(\"VerticesPerRow\") | 0;\n\n        if (verticesPerRow < 2) {\n          throw new _util.FormatError(\"Invalid VerticesPerRow\");\n        }\n\n        this._decodeType5Shading(reader, verticesPerRow);\n\n        break;\n\n      case ShadingType.COONS_PATCH_MESH:\n        this._decodeType6Shading(reader);\n\n        patchMesh = true;\n        break;\n\n      case ShadingType.TENSOR_PATCH_MESH:\n        this._decodeType7Shading(reader);\n\n        patchMesh = true;\n        break;\n\n      default:\n        (0, _util.unreachable)(\"Unsupported mesh type.\");\n        break;\n    }\n\n    if (patchMesh) {\n      this._updateBounds();\n\n      for (let i = 0, ii = this.figures.length; i < ii; i++) {\n        this._buildFigureFromPatch(i);\n      }\n    }\n\n    this._updateBounds();\n\n    this._packData();\n  }\n\n  _decodeType4Shading(reader) {\n    const coords = this.coords;\n    const colors = this.colors;\n    const operators = [];\n    const ps = [];\n    let verticesLeft = 0;\n\n    while (reader.hasData) {\n      const f = reader.readFlag();\n      const coord = reader.readCoordinate();\n      const color = reader.readComponents();\n\n      if (verticesLeft === 0) {\n        if (!(0 <= f && f <= 2)) {\n          throw new _util.FormatError(\"Unknown type4 flag\");\n        }\n\n        switch (f) {\n          case 0:\n            verticesLeft = 3;\n            break;\n\n          case 1:\n            ps.push(ps.at(-2), ps.at(-1));\n            verticesLeft = 1;\n            break;\n\n          case 2:\n            ps.push(ps.at(-3), ps.at(-1));\n            verticesLeft = 1;\n            break;\n        }\n\n        operators.push(f);\n      }\n\n      ps.push(coords.length);\n      coords.push(coord);\n      colors.push(color);\n      verticesLeft--;\n      reader.align();\n    }\n\n    this.figures.push({\n      type: \"triangles\",\n      coords: new Int32Array(ps),\n      colors: new Int32Array(ps)\n    });\n  }\n\n  _decodeType5Shading(reader, verticesPerRow) {\n    const coords = this.coords;\n    const colors = this.colors;\n    const ps = [];\n\n    while (reader.hasData) {\n      const coord = reader.readCoordinate();\n      const color = reader.readComponents();\n      ps.push(coords.length);\n      coords.push(coord);\n      colors.push(color);\n    }\n\n    this.figures.push({\n      type: \"lattice\",\n      coords: new Int32Array(ps),\n      colors: new Int32Array(ps),\n      verticesPerRow\n    });\n  }\n\n  _decodeType6Shading(reader) {\n    const coords = this.coords;\n    const colors = this.colors;\n    const ps = new Int32Array(16);\n    const cs = new Int32Array(4);\n\n    while (reader.hasData) {\n      const f = reader.readFlag();\n\n      if (!(0 <= f && f <= 3)) {\n        throw new _util.FormatError(\"Unknown type6 flag\");\n      }\n\n      const pi = coords.length;\n\n      for (let i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n        coords.push(reader.readCoordinate());\n      }\n\n      const ci = colors.length;\n\n      for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n        colors.push(reader.readComponents());\n      }\n\n      let tmp1, tmp2, tmp3, tmp4;\n\n      switch (f) {\n        case 0:\n          ps[12] = pi + 3;\n          ps[13] = pi + 4;\n          ps[14] = pi + 5;\n          ps[15] = pi + 6;\n          ps[8] = pi + 2;\n          ps[11] = pi + 7;\n          ps[4] = pi + 1;\n          ps[7] = pi + 8;\n          ps[0] = pi;\n          ps[1] = pi + 11;\n          ps[2] = pi + 10;\n          ps[3] = pi + 9;\n          cs[2] = ci + 1;\n          cs[3] = ci + 2;\n          cs[0] = ci;\n          cs[1] = ci + 3;\n          break;\n\n        case 1:\n          tmp1 = ps[12];\n          tmp2 = ps[13];\n          tmp3 = ps[14];\n          tmp4 = ps[15];\n          ps[12] = tmp4;\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = tmp3;\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[2];\n          tmp2 = cs[3];\n          cs[2] = tmp2;\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 2:\n          tmp1 = ps[15];\n          tmp2 = ps[11];\n          ps[12] = ps[3];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[7];\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[3];\n          cs[2] = cs[1];\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 3:\n          ps[12] = ps[0];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[1];\n          ps[11] = pi + 3;\n          ps[4] = ps[2];\n          ps[7] = pi + 4;\n          ps[0] = ps[3];\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          cs[2] = cs[0];\n          cs[3] = ci;\n          cs[0] = cs[1];\n          cs[1] = ci + 1;\n          break;\n      }\n\n      ps[5] = coords.length;\n      coords.push([(-4 * coords[ps[0]][0] - coords[ps[15]][0] + 6 * (coords[ps[4]][0] + coords[ps[1]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[13]][0] + coords[ps[7]][0])) / 9, (-4 * coords[ps[0]][1] - coords[ps[15]][1] + 6 * (coords[ps[4]][1] + coords[ps[1]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[13]][1] + coords[ps[7]][1])) / 9]);\n      ps[6] = coords.length;\n      coords.push([(-4 * coords[ps[3]][0] - coords[ps[12]][0] + 6 * (coords[ps[2]][0] + coords[ps[7]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[4]][0] + coords[ps[14]][0])) / 9, (-4 * coords[ps[3]][1] - coords[ps[12]][1] + 6 * (coords[ps[2]][1] + coords[ps[7]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[4]][1] + coords[ps[14]][1])) / 9]);\n      ps[9] = coords.length;\n      coords.push([(-4 * coords[ps[12]][0] - coords[ps[3]][0] + 6 * (coords[ps[8]][0] + coords[ps[13]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[11]][0] + coords[ps[1]][0])) / 9, (-4 * coords[ps[12]][1] - coords[ps[3]][1] + 6 * (coords[ps[8]][1] + coords[ps[13]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[11]][1] + coords[ps[1]][1])) / 9]);\n      ps[10] = coords.length;\n      coords.push([(-4 * coords[ps[15]][0] - coords[ps[0]][0] + 6 * (coords[ps[11]][0] + coords[ps[14]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[2]][0] + coords[ps[8]][0])) / 9, (-4 * coords[ps[15]][1] - coords[ps[0]][1] + 6 * (coords[ps[11]][1] + coords[ps[14]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[2]][1] + coords[ps[8]][1])) / 9]);\n      this.figures.push({\n        type: \"patch\",\n        coords: new Int32Array(ps),\n        colors: new Int32Array(cs)\n      });\n    }\n  }\n\n  _decodeType7Shading(reader) {\n    const coords = this.coords;\n    const colors = this.colors;\n    const ps = new Int32Array(16);\n    const cs = new Int32Array(4);\n\n    while (reader.hasData) {\n      const f = reader.readFlag();\n\n      if (!(0 <= f && f <= 3)) {\n        throw new _util.FormatError(\"Unknown type7 flag\");\n      }\n\n      const pi = coords.length;\n\n      for (let i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n        coords.push(reader.readCoordinate());\n      }\n\n      const ci = colors.length;\n\n      for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n        colors.push(reader.readComponents());\n      }\n\n      let tmp1, tmp2, tmp3, tmp4;\n\n      switch (f) {\n        case 0:\n          ps[12] = pi + 3;\n          ps[13] = pi + 4;\n          ps[14] = pi + 5;\n          ps[15] = pi + 6;\n          ps[8] = pi + 2;\n          ps[9] = pi + 13;\n          ps[10] = pi + 14;\n          ps[11] = pi + 7;\n          ps[4] = pi + 1;\n          ps[5] = pi + 12;\n          ps[6] = pi + 15;\n          ps[7] = pi + 8;\n          ps[0] = pi;\n          ps[1] = pi + 11;\n          ps[2] = pi + 10;\n          ps[3] = pi + 9;\n          cs[2] = ci + 1;\n          cs[3] = ci + 2;\n          cs[0] = ci;\n          cs[1] = ci + 3;\n          break;\n\n        case 1:\n          tmp1 = ps[12];\n          tmp2 = ps[13];\n          tmp3 = ps[14];\n          tmp4 = ps[15];\n          ps[12] = tmp4;\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = tmp3;\n          ps[9] = pi + 9;\n          ps[10] = pi + 10;\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[5] = pi + 8;\n          ps[6] = pi + 11;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[2];\n          tmp2 = cs[3];\n          cs[2] = tmp2;\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 2:\n          tmp1 = ps[15];\n          tmp2 = ps[11];\n          ps[12] = ps[3];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[7];\n          ps[9] = pi + 9;\n          ps[10] = pi + 10;\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[5] = pi + 8;\n          ps[6] = pi + 11;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[3];\n          cs[2] = cs[1];\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 3:\n          ps[12] = ps[0];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[1];\n          ps[9] = pi + 9;\n          ps[10] = pi + 10;\n          ps[11] = pi + 3;\n          ps[4] = ps[2];\n          ps[5] = pi + 8;\n          ps[6] = pi + 11;\n          ps[7] = pi + 4;\n          ps[0] = ps[3];\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          cs[2] = cs[0];\n          cs[3] = ci;\n          cs[0] = cs[1];\n          cs[1] = ci + 1;\n          break;\n      }\n\n      this.figures.push({\n        type: \"patch\",\n        coords: new Int32Array(ps),\n        colors: new Int32Array(cs)\n      });\n    }\n  }\n\n  _buildFigureFromPatch(index) {\n    const figure = this.figures[index];\n    (0, _util.assert)(figure.type === \"patch\", \"Unexpected patch mesh figure\");\n    const coords = this.coords,\n          colors = this.colors;\n    const pi = figure.coords;\n    const ci = figure.colors;\n    const figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n    const figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n    const figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n    const figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n    let splitXBy = Math.ceil((figureMaxX - figureMinX) * MeshShading.TRIANGLE_DENSITY / (this.bounds[2] - this.bounds[0]));\n    splitXBy = Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy));\n    let splitYBy = Math.ceil((figureMaxY - figureMinY) * MeshShading.TRIANGLE_DENSITY / (this.bounds[3] - this.bounds[1]));\n    splitYBy = Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy));\n    const verticesPerRow = splitXBy + 1;\n    const figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n    const figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n    let k = 0;\n    const cl = new Uint8Array(3),\n          cr = new Uint8Array(3);\n    const c0 = colors[ci[0]],\n          c1 = colors[ci[1]],\n          c2 = colors[ci[2]],\n          c3 = colors[ci[3]];\n    const bRow = getB(splitYBy),\n          bCol = getB(splitXBy);\n\n    for (let row = 0; row <= splitYBy; row++) {\n      cl[0] = (c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy | 0;\n      cl[1] = (c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy | 0;\n      cl[2] = (c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy | 0;\n      cr[0] = (c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy | 0;\n      cr[1] = (c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy | 0;\n      cr[2] = (c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy | 0;\n\n      for (let col = 0; col <= splitXBy; col++, k++) {\n        if ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) {\n          continue;\n        }\n\n        let x = 0,\n            y = 0;\n        let q = 0;\n\n        for (let i = 0; i <= 3; i++) {\n          for (let j = 0; j <= 3; j++, q++) {\n            const m = bRow[row][i] * bCol[col][j];\n            x += coords[pi[q]][0] * m;\n            y += coords[pi[q]][1] * m;\n          }\n        }\n\n        figureCoords[k] = coords.length;\n        coords.push([x, y]);\n        figureColors[k] = colors.length;\n        const newColor = new Uint8Array(3);\n        newColor[0] = (cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy | 0;\n        newColor[1] = (cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy | 0;\n        newColor[2] = (cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy | 0;\n        colors.push(newColor);\n      }\n    }\n\n    figureCoords[0] = pi[0];\n    figureColors[0] = ci[0];\n    figureCoords[splitXBy] = pi[3];\n    figureColors[splitXBy] = ci[1];\n    figureCoords[verticesPerRow * splitYBy] = pi[12];\n    figureColors[verticesPerRow * splitYBy] = ci[2];\n    figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n    figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n    this.figures[index] = {\n      type: \"lattice\",\n      coords: figureCoords,\n      colors: figureColors,\n      verticesPerRow\n    };\n  }\n\n  _updateBounds() {\n    let minX = this.coords[0][0],\n        minY = this.coords[0][1],\n        maxX = minX,\n        maxY = minY;\n\n    for (let i = 1, ii = this.coords.length; i < ii; i++) {\n      const x = this.coords[i][0],\n            y = this.coords[i][1];\n      minX = minX > x ? x : minX;\n      minY = minY > y ? y : minY;\n      maxX = maxX < x ? x : maxX;\n      maxY = maxY < y ? y : maxY;\n    }\n\n    this.bounds = [minX, minY, maxX, maxY];\n  }\n\n  _packData() {\n    let i, ii, j, jj;\n    const coords = this.coords;\n    const coordsPacked = new Float32Array(coords.length * 2);\n\n    for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n      const xy = coords[i];\n      coordsPacked[j++] = xy[0];\n      coordsPacked[j++] = xy[1];\n    }\n\n    this.coords = coordsPacked;\n    const colors = this.colors;\n    const colorsPacked = new Uint8Array(colors.length * 3);\n\n    for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n      const c = colors[i];\n      colorsPacked[j++] = c[0];\n      colorsPacked[j++] = c[1];\n      colorsPacked[j++] = c[2];\n    }\n\n    this.colors = colorsPacked;\n    const figures = this.figures;\n\n    for (i = 0, ii = figures.length; i < ii; i++) {\n      const figure = figures[i],\n            ps = figure.coords,\n            cs = figure.colors;\n\n      for (j = 0, jj = ps.length; j < jj; j++) {\n        ps[j] *= 2;\n        cs[j] *= 3;\n      }\n    }\n  }\n\n  getIR() {\n    return [\"Mesh\", this.shadingType, this.coords, this.colors, this.figures, this.bounds, this.bbox, this.background];\n  }\n\n}\n\nclass DummyShading extends BaseShading {\n  getIR() {\n    return [\"Dummy\"];\n  }\n\n}\n\nfunction getTilingPatternIR(operatorList, dict, color) {\n  const matrix = dict.getArray(\"Matrix\");\n\n  const bbox = _util.Util.normalizeRect(dict.getArray(\"BBox\"));\n\n  const xstep = dict.get(\"XStep\");\n  const ystep = dict.get(\"YStep\");\n  const paintType = dict.get(\"PaintType\");\n  const tilingType = dict.get(\"TilingType\");\n\n  if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n    throw new _util.FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`);\n  }\n\n  return [\"TilingPattern\", color, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType];\n}\n\n/***/ }),\n/* 176 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.getXfaFontDict = getXfaFontDict;\nexports.getXfaFontName = getXfaFontName;\n\nvar _calibri_factors = __w_pdfjs_require__(177);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _helvetica_factors = __w_pdfjs_require__(178);\n\nvar _liberationsans_widths = __w_pdfjs_require__(179);\n\nvar _myriadpro_factors = __w_pdfjs_require__(180);\n\nvar _segoeui_factors = __w_pdfjs_require__(181);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _fonts_utils = __w_pdfjs_require__(163);\n\nconst getXFAFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t[\"MyriadPro-Regular\"] = t[\"PdfJS-Fallback-Regular\"] = {\n    name: \"LiberationSans-Regular\",\n    factors: _myriadpro_factors.MyriadProRegularFactors,\n    baseWidths: _liberationsans_widths.LiberationSansRegularWidths,\n    baseMapping: _liberationsans_widths.LiberationSansRegularMapping,\n    metrics: _myriadpro_factors.MyriadProRegularMetrics\n  };\n  t[\"MyriadPro-Bold\"] = t[\"PdfJS-Fallback-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: _myriadpro_factors.MyriadProBoldFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldMapping,\n    metrics: _myriadpro_factors.MyriadProBoldMetrics\n  };\n  t[\"MyriadPro-It\"] = t[\"MyriadPro-Italic\"] = t[\"PdfJS-Fallback-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    factors: _myriadpro_factors.MyriadProItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansItalicMapping,\n    metrics: _myriadpro_factors.MyriadProItalicMetrics\n  };\n  t[\"MyriadPro-BoldIt\"] = t[\"MyriadPro-BoldItalic\"] = t[\"PdfJS-Fallback-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    factors: _myriadpro_factors.MyriadProBoldItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldItalicMapping,\n    metrics: _myriadpro_factors.MyriadProBoldItalicMetrics\n  };\n  t.ArialMT = t.Arial = t[\"Arial-Regular\"] = {\n    name: \"LiberationSans-Regular\",\n    baseWidths: _liberationsans_widths.LiberationSansRegularWidths,\n    baseMapping: _liberationsans_widths.LiberationSansRegularMapping\n  };\n  t[\"Arial-BoldMT\"] = t[\"Arial-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    baseWidths: _liberationsans_widths.LiberationSansBoldWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldMapping\n  };\n  t[\"Arial-ItalicMT\"] = t[\"Arial-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    baseWidths: _liberationsans_widths.LiberationSansItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansItalicMapping\n  };\n  t[\"Arial-BoldItalicMT\"] = t[\"Arial-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldItalicMapping\n  };\n  t[\"Calibri-Regular\"] = {\n    name: \"LiberationSans-Regular\",\n    factors: _calibri_factors.CalibriRegularFactors,\n    baseWidths: _liberationsans_widths.LiberationSansRegularWidths,\n    baseMapping: _liberationsans_widths.LiberationSansRegularMapping,\n    metrics: _calibri_factors.CalibriRegularMetrics\n  };\n  t[\"Calibri-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: _calibri_factors.CalibriBoldFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldMapping,\n    metrics: _calibri_factors.CalibriBoldMetrics\n  };\n  t[\"Calibri-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    factors: _calibri_factors.CalibriItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansItalicMapping,\n    metrics: _calibri_factors.CalibriItalicMetrics\n  };\n  t[\"Calibri-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    factors: _calibri_factors.CalibriBoldItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldItalicMapping,\n    metrics: _calibri_factors.CalibriBoldItalicMetrics\n  };\n  t[\"Segoeui-Regular\"] = {\n    name: \"LiberationSans-Regular\",\n    factors: _segoeui_factors.SegoeuiRegularFactors,\n    baseWidths: _liberationsans_widths.LiberationSansRegularWidths,\n    baseMapping: _liberationsans_widths.LiberationSansRegularMapping,\n    metrics: _segoeui_factors.SegoeuiRegularMetrics\n  };\n  t[\"Segoeui-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: _segoeui_factors.SegoeuiBoldFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldMapping,\n    metrics: _segoeui_factors.SegoeuiBoldMetrics\n  };\n  t[\"Segoeui-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    factors: _segoeui_factors.SegoeuiItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansItalicMapping,\n    metrics: _segoeui_factors.SegoeuiItalicMetrics\n  };\n  t[\"Segoeui-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    factors: _segoeui_factors.SegoeuiBoldItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldItalicMapping,\n    metrics: _segoeui_factors.SegoeuiBoldItalicMetrics\n  };\n  t[\"Helvetica-Regular\"] = t.Helvetica = {\n    name: \"LiberationSans-Regular\",\n    factors: _helvetica_factors.HelveticaRegularFactors,\n    baseWidths: _liberationsans_widths.LiberationSansRegularWidths,\n    baseMapping: _liberationsans_widths.LiberationSansRegularMapping,\n    metrics: _helvetica_factors.HelveticaRegularMetrics\n  };\n  t[\"Helvetica-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: _helvetica_factors.HelveticaBoldFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldMapping,\n    metrics: _helvetica_factors.HelveticaBoldMetrics\n  };\n  t[\"Helvetica-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    factors: _helvetica_factors.HelveticaItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansItalicMapping,\n    metrics: _helvetica_factors.HelveticaItalicMetrics\n  };\n  t[\"Helvetica-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    factors: _helvetica_factors.HelveticaBoldItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldItalicMapping,\n    metrics: _helvetica_factors.HelveticaBoldItalicMetrics\n  };\n});\n\nfunction getXfaFontName(name) {\n  const fontName = (0, _fonts_utils.normalizeFontName)(name);\n  const fontMap = getXFAFontMap();\n  return fontMap[fontName];\n}\n\nfunction getXfaFontWidths(name) {\n  const info = getXfaFontName(name);\n\n  if (!info) {\n    return null;\n  }\n\n  const {\n    baseWidths,\n    baseMapping,\n    factors\n  } = info;\n  let rescaledBaseWidths;\n\n  if (!factors) {\n    rescaledBaseWidths = baseWidths;\n  } else {\n    rescaledBaseWidths = baseWidths.map((w, i) => w * factors[i]);\n  }\n\n  let currentCode = -2;\n  let currentArray;\n  const newWidths = [];\n\n  for (const [unicode, glyphIndex] of baseMapping.map((charUnicode, index) => [charUnicode, index]).sort((_ref, _ref2) => {\n    let [unicode1] = _ref;\n    let [unicode2] = _ref2;\n    return unicode1 - unicode2;\n  })) {\n    if (unicode === -1) {\n      continue;\n    }\n\n    if (unicode === currentCode + 1) {\n      currentArray.push(rescaledBaseWidths[glyphIndex]);\n      currentCode += 1;\n    } else {\n      currentCode = unicode;\n      currentArray = [rescaledBaseWidths[glyphIndex]];\n      newWidths.push(unicode, currentArray);\n    }\n  }\n\n  return newWidths;\n}\n\nfunction getXfaFontDict(name) {\n  const widths = getXfaFontWidths(name);\n  const dict = new _primitives.Dict(null);\n  dict.set(\"BaseFont\", _primitives.Name.get(name));\n  dict.set(\"Type\", _primitives.Name.get(\"Font\"));\n  dict.set(\"Subtype\", _primitives.Name.get(\"CIDFontType2\"));\n  dict.set(\"Encoding\", _primitives.Name.get(\"Identity-H\"));\n  dict.set(\"CIDToGIDMap\", _primitives.Name.get(\"Identity\"));\n  dict.set(\"W\", widths);\n  dict.set(\"FirstChar\", widths[0]);\n  dict.set(\"LastChar\", widths.at(-2) + widths.at(-1).length - 1);\n  const descriptor = new _primitives.Dict(null);\n  dict.set(\"FontDescriptor\", descriptor);\n  const systemInfo = new _primitives.Dict(null);\n  systemInfo.set(\"Ordering\", \"Identity\");\n  systemInfo.set(\"Registry\", \"Adobe\");\n  systemInfo.set(\"Supplement\", 0);\n  dict.set(\"CIDSystemInfo\", systemInfo);\n  return dict;\n}\n\n/***/ }),\n/* 177 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CalibriRegularMetrics = exports.CalibriRegularFactors = exports.CalibriItalicMetrics = exports.CalibriItalicFactors = exports.CalibriBoldMetrics = exports.CalibriBoldItalicMetrics = exports.CalibriBoldItalicFactors = exports.CalibriBoldFactors = void 0;\nconst CalibriBoldFactors = [1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566, 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.54657, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762, 0.73293, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356, 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.9121, 0.86943, 0.79795, 0.88198, 0.77958, 0.70864, 0.81055, 0.90399, 0.88653, 0.96017, 0.82577, 0.77892, 0.78257, 0.97507, 1.54657, 0.97507, 0.85284, 0.89552, 0.90176, 0.88762, 0.8785, 0.75241, 0.8785, 0.90518, 0.95015, 0.77618, 0.8785, 0.88401, 0.91916, 0.86304, 0.88401, 0.91488, 0.8785, 0.8801, 0.8785, 0.8785, 0.91343, 0.7173, 1.04106, 0.8785, 0.85075, 0.95794, 0.82616, 0.85162, 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.12401, 0.96839, 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.73293, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506, 0.9121, 0.86943, 0.86943, 0.86943, 0.86943, 0.86943, 0.85284, 0.87508, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.8715, 0.75241, 0.90518, 0.90518, 0.90518, 0.90518, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.8785, 0.8801, 0.8801, 0.8801, 0.8801, 0.8801, 0.90747, 0.89049, 0.8785, 0.8785, 0.8785, 0.8785, 0.85162, 0.8785, 0.85162, 0.83908, 0.88762, 0.83908, 0.88762, 0.83908, 0.88762, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241, 0.87289, 0.83016, 0.88506, 0.93125, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.81921, 0.77618, 0.81921, 0.77618, 0.81921, 0.77618, 1, 1, 0.87356, 0.8785, 0.91075, 0.89608, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.76229, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.79468, 0.91926, 0.88175, 0.70823, 0.94903, 0.9121, 0.8785, 1, 1, 0.9121, 0.8785, 0.87802, 0.88656, 0.8785, 0.86943, 0.8801, 0.86943, 0.8801, 0.86943, 0.8801, 0.87402, 0.89291, 0.77958, 0.91343, 1, 1, 0.77958, 0.91343, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864, 0.7173, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.96017, 0.95794, 0.77892, 0.85162, 0.77892, 0.78257, 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.88762, 0.77539, 0.8715, 0.87508, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528, 1, 1.15543, 0.70674, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.06303, 0.83908, 0.80352, 0.57184, 0.6965, 0.56289, 0.82001, 0.56029, 0.81235, 1.02988, 0.83908, 0.7762, 0.68156, 0.80367, 0.73133, 0.78257, 0.87356, 0.86943, 0.95958, 0.75727, 0.89019, 1.04924, 0.9121, 0.7648, 0.86943, 0.87356, 0.79795, 0.78275, 0.81055, 0.77892, 0.9762, 0.82577, 0.99819, 0.84896, 0.95958, 0.77892, 0.96108, 1.01407, 0.89049, 1.02988, 0.94211, 0.96108, 0.8936, 0.84021, 0.87842, 0.96399, 0.79109, 0.89049, 1.00813, 1.02988, 0.86077, 0.87445, 0.92099, 0.84723, 0.86513, 0.8801, 0.75638, 0.85714, 0.78216, 0.79586, 0.87965, 0.94211, 0.97747, 0.78287, 0.97926, 0.84971, 1.02988, 0.94211, 0.8801, 0.94211, 0.84971, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90264, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90518, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90548, 1, 1, 1, 1, 1, 1, 0.96017, 0.95794, 0.96017, 0.95794, 0.96017, 0.95794, 0.77892, 0.85162, 1, 1, 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.92794, 0.87012, 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71143, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171, 1.4956, 2.2807, 0.93835, 0.83406, 0.91133, 0.84107, 0.91133, 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90527, 1.81055, 0.90527, 1.81055, 1.31006, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.CalibriBoldFactors = CalibriBoldFactors;\nconst CalibriBoldMetrics = {\n  lineHeight: 1.2207,\n  lineGap: 0.2207\n};\nexports.CalibriBoldMetrics = CalibriBoldMetrics;\nconst CalibriBoldItalicFactors = [1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566, 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.56239, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762, 0.71805, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356, 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.90872, 0.85938, 0.79795, 0.87068, 0.77958, 0.69766, 0.81055, 0.90399, 0.88653, 0.96068, 0.82577, 0.77892, 0.78257, 0.97507, 1.529, 0.97507, 0.85284, 0.89552, 0.90176, 0.94908, 0.86411, 0.74012, 0.86411, 0.88323, 0.95015, 0.86411, 0.86331, 0.88401, 0.91916, 0.86304, 0.88401, 0.9039, 0.86331, 0.86331, 0.86411, 0.86411, 0.90464, 0.70852, 1.04106, 0.86331, 0.84372, 0.95794, 0.82616, 0.84548, 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.19129, 0.96839, 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.71805, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506, 0.90872, 0.85938, 0.85938, 0.85938, 0.85938, 0.85938, 0.85284, 0.87068, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.85887, 0.74012, 0.88323, 0.88323, 0.88323, 0.88323, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.90747, 0.89049, 0.86331, 0.86331, 0.86331, 0.86331, 0.84548, 0.86411, 0.84548, 0.83908, 0.94908, 0.83908, 0.94908, 0.83908, 0.94908, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.87289, 0.79538, 0.88506, 0.92726, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.81921, 0.86411, 0.81921, 0.86411, 0.81921, 0.86411, 1, 1, 0.87356, 0.86331, 0.91075, 0.8777, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.76467, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.77312, 0.91926, 0.88175, 0.70823, 0.94903, 0.90872, 0.86331, 1, 1, 0.90872, 0.86331, 0.86906, 0.88116, 0.86331, 0.85938, 0.86331, 0.85938, 0.86331, 0.85938, 0.86331, 0.87402, 0.86549, 0.77958, 0.90464, 1, 1, 0.77958, 0.90464, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.96068, 0.95794, 0.77892, 0.84548, 0.77892, 0.78257, 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.94908, 0.77539, 0.85887, 0.87068, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528, 1, 1.15543, 0.70088, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.48387, 0.83908, 0.80352, 0.57118, 0.6965, 0.56347, 0.79179, 0.55853, 0.80346, 1.02988, 0.83908, 0.7762, 0.67174, 0.86036, 0.73133, 0.78257, 0.87356, 0.86441, 0.95958, 0.75727, 0.89019, 1.04924, 0.90872, 0.74889, 0.85938, 0.87891, 0.79795, 0.7957, 0.81055, 0.77892, 0.97447, 0.82577, 0.97466, 0.87179, 0.95958, 0.77892, 0.94252, 0.95612, 0.8753, 1.02988, 0.92733, 0.94252, 0.87411, 0.84021, 0.8728, 0.95612, 0.74081, 0.8753, 1.02189, 1.02988, 0.84814, 0.87445, 0.91822, 0.84723, 0.85668, 0.86331, 0.81344, 0.87581, 0.76422, 0.82046, 0.96057, 0.92733, 0.99375, 0.78022, 0.95452, 0.86015, 1.02988, 0.92733, 0.86331, 0.92733, 0.86015, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90631, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88323, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85174, 1, 1, 1, 1, 1, 1, 0.96068, 0.95794, 0.96068, 0.95794, 0.96068, 0.95794, 0.77892, 0.84548, 1, 1, 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.89807, 0.87012, 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71094, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171, 1.4956, 2.2807, 0.92972, 0.83406, 0.91133, 0.83326, 0.91133, 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90616, 1.81055, 0.90527, 1.81055, 1.3107, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.CalibriBoldItalicFactors = CalibriBoldItalicFactors;\nconst CalibriBoldItalicMetrics = {\n  lineHeight: 1.2207,\n  lineGap: 0.2207\n};\nexports.CalibriBoldItalicMetrics = CalibriBoldItalicMetrics;\nconst CalibriItalicFactors = [1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601, 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39543, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552, 0.72346, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685, 0.6377, 0.77892, 0.75593, 1.02638, 0.89249, 0.84118, 0.77452, 0.85374, 0.75186, 0.67789, 0.79776, 0.88844, 0.85066, 0.94309, 0.77818, 0.7306, 0.76659, 1.10369, 1.38313, 1.10369, 1.06139, 0.89552, 0.8739, 0.9245, 0.9245, 0.83203, 0.9245, 0.85865, 1.09842, 0.9245, 0.9245, 1.03297, 1.07692, 0.90918, 1.03297, 0.94959, 0.9245, 0.92274, 0.9245, 0.9245, 1.02933, 0.77832, 1.20562, 0.9245, 0.8916, 0.98986, 0.86621, 0.89453, 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.16359, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.72346, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685, 0.86477, 0.89249, 0.84118, 0.84118, 0.84118, 0.84118, 0.84118, 0.85284, 0.84557, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.84843, 0.83203, 0.85865, 0.85865, 0.85865, 0.85865, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469, 0.9245, 0.92274, 0.92274, 0.92274, 0.92274, 0.92274, 0.90747, 0.86651, 0.9245, 0.9245, 0.9245, 0.9245, 0.89453, 0.9245, 0.89453, 0.8675, 0.9245, 0.8675, 0.9245, 0.8675, 0.9245, 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.85193, 0.8875, 0.86477, 0.99034, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.81105, 0.9245, 0.81105, 0.9245, 0.81105, 0.9245, 1, 1, 0.86275, 0.9245, 0.90872, 0.93591, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77896, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032, 0.9375, 0.98156, 0.93407, 0.77261, 1.11429, 0.89249, 0.9245, 1, 1, 0.89249, 0.9245, 0.92534, 0.86698, 0.9245, 0.84118, 0.92274, 0.84118, 0.92274, 0.84118, 0.92274, 0.8667, 0.86291, 0.75186, 1.02933, 1, 1, 0.75186, 1.02933, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 1, 1, 0.79776, 0.97655, 0.79776, 1.23023, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.94309, 0.98986, 0.7306, 0.89453, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.9245, 0.76318, 0.84843, 0.84557, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67009, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387, 0.8675, 0.90861, 0.6192, 0.7363, 0.64824, 0.82411, 0.56321, 0.85696, 1.23516, 0.8675, 0.81552, 0.7286, 0.84134, 0.73206, 0.76659, 0.86275, 0.84369, 0.90685, 0.77892, 0.85871, 1.02638, 0.89249, 0.75828, 0.84118, 0.85984, 0.77452, 0.76466, 0.79776, 0.7306, 0.90782, 0.77818, 0.903, 0.87291, 0.90685, 0.7306, 0.99058, 1.03667, 0.94635, 1.23516, 0.9849, 0.99058, 0.92393, 0.8916, 0.942, 1.03667, 0.75026, 0.94635, 1.0297, 1.23516, 0.90918, 0.94048, 0.98217, 0.89746, 0.84153, 0.92274, 0.82507, 0.88832, 0.84438, 0.88178, 1.03525, 0.9849, 1.00225, 0.78086, 0.97248, 0.89404, 1.23516, 0.9849, 0.92274, 0.9849, 0.89404, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89693, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85865, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90933, 1, 1, 1, 1, 1, 1, 0.94309, 0.98986, 0.94309, 0.98986, 0.94309, 0.98986, 0.7306, 0.89453, 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566, 0.89552, 0.89552, 1.42259, 0.68994, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523, 1.4956, 2.01462, 0.97858, 0.82616, 0.91133, 0.83437, 0.91133, 1, 1, 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90572, 1.81055, 0.90749, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589, 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747, 0.85284, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.CalibriItalicFactors = CalibriItalicFactors;\nconst CalibriItalicMetrics = {\n  lineHeight: 1.2207,\n  lineGap: 0.2207\n};\nexports.CalibriItalicMetrics = CalibriItalicMetrics;\nconst CalibriRegularFactors = [1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601, 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39016, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552, 0.73834, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685, 0.6377, 0.77892, 0.75593, 1.02638, 0.89385, 0.85122, 0.77452, 0.86503, 0.75186, 0.68887, 0.79776, 0.88844, 0.85066, 0.94258, 0.77818, 0.7306, 0.76659, 1.10369, 1.39016, 1.10369, 1.06139, 0.89552, 0.8739, 0.86128, 0.94469, 0.8457, 0.94469, 0.89464, 1.09842, 0.84636, 0.94469, 1.03297, 1.07692, 0.90918, 1.03297, 0.95897, 0.94469, 0.9482, 0.94469, 0.94469, 1.04692, 0.78223, 1.20562, 0.94469, 0.90332, 0.98986, 0.86621, 0.90527, 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.08707, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.73834, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685, 0.86477, 0.89385, 0.85122, 0.85122, 0.85122, 0.85122, 0.85122, 0.85284, 0.85311, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.8693, 0.8457, 0.89464, 0.89464, 0.89464, 0.89464, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469, 0.94469, 0.9482, 0.9482, 0.9482, 0.9482, 0.9482, 0.90747, 0.86651, 0.94469, 0.94469, 0.94469, 0.94469, 0.90527, 0.94469, 0.90527, 0.8675, 0.86128, 0.8675, 0.86128, 0.8675, 0.86128, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457, 0.85193, 0.92454, 0.86477, 0.9921, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.81105, 0.84636, 0.81105, 0.84636, 0.81105, 0.84636, 1, 1, 0.86275, 0.94469, 0.90872, 0.95786, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77741, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032, 0.90452, 0.98156, 1.11842, 0.77261, 1.11429, 0.89385, 0.94469, 1, 1, 0.89385, 0.94469, 0.95877, 0.86901, 0.94469, 0.85122, 0.9482, 0.85122, 0.9482, 0.85122, 0.9482, 0.8667, 0.90016, 0.75186, 1.04692, 1, 1, 0.75186, 1.04692, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223, 1, 1, 0.79776, 0.92188, 0.79776, 1.23023, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.94258, 0.98986, 0.7306, 0.90527, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.86128, 0.76318, 0.8693, 0.85311, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67742, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387, 0.86686, 0.90861, 0.62267, 0.74359, 0.65649, 0.85498, 0.56963, 0.88254, 1.23516, 0.8675, 0.81552, 0.75443, 0.84503, 0.73206, 0.76659, 0.86275, 0.85122, 0.90685, 0.77892, 0.85746, 1.02638, 0.89385, 0.75657, 0.85122, 0.86275, 0.77452, 0.74171, 0.79776, 0.7306, 0.95165, 0.77818, 0.89772, 0.88831, 0.90685, 0.7306, 0.98142, 1.02191, 0.96576, 1.23516, 0.99018, 0.98142, 0.9236, 0.89258, 0.94035, 1.02191, 0.78848, 0.96576, 0.9561, 1.23516, 0.90918, 0.92578, 0.95424, 0.89746, 0.83969, 0.9482, 0.80113, 0.89442, 0.85208, 0.86155, 0.98022, 0.99018, 1.00452, 0.81209, 0.99247, 0.89181, 1.23516, 0.99018, 0.9482, 0.99018, 0.89181, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88844, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89464, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96766, 1, 1, 1, 1, 1, 1, 0.94258, 0.98986, 0.94258, 0.98986, 0.94258, 0.98986, 0.7306, 0.90527, 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566, 0.89552, 0.89552, 1.42259, 0.69043, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523, 1.4956, 2.01462, 0.99331, 0.82616, 0.91133, 0.84286, 0.91133, 1, 1, 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90527, 1.81055, 0.90527, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589, 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1.07185, 0.99413, 0.96334, 1.08065, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.CalibriRegularFactors = CalibriRegularFactors;\nconst CalibriRegularMetrics = {\n  lineHeight: 1.2207,\n  lineGap: 0.2207\n};\nexports.CalibriRegularMetrics = CalibriRegularMetrics;\n\n/***/ }),\n/* 178 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.HelveticaRegularMetrics = exports.HelveticaRegularFactors = exports.HelveticaItalicMetrics = exports.HelveticaItalicFactors = exports.HelveticaBoldMetrics = exports.HelveticaBoldItalicMetrics = exports.HelveticaBoldItalicFactors = exports.HelveticaBoldFactors = void 0;\nconst HelveticaBoldFactors = [0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977, 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998, 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 1.03374, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.00042, 0.99973, 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.03828, 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977, 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 1.00034, 0.99977, 1, 0.99997, 1.00026, 1.00078, 1.00036, 0.99973, 1.00013, 1.0006, 0.99977, 0.99977, 0.99988, 0.85148, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 1.00069, 1.00022, 0.99977, 1.00001, 0.99984, 1.00026, 1.00001, 1.00024, 1.00001, 0.9999, 1, 1.0006, 1.00001, 1.00041, 0.99962, 1.00026, 1.0006, 0.99995, 1.00041, 0.99942, 0.99973, 0.99927, 1.00082, 0.99902, 1.00026, 1.00087, 1.0006, 1.00069, 0.99973, 0.99867, 0.99973, 0.9993, 1.00026, 1.00049, 1.00056, 1, 0.99988, 0.99935, 0.99995, 0.99954, 1.00055, 0.99945, 1.00032, 1.0006, 0.99995, 1.00026, 0.99995, 1.00032, 1.00001, 1.00008, 0.99971, 1.00019, 0.9994, 1.00001, 1.0006, 1.00044, 0.99973, 1.00023, 1.00047, 1, 0.99942, 0.99561, 0.99989, 1.00035, 0.99977, 1.00035, 0.99977, 1.00019, 0.99944, 1.00001, 1.00021, 0.99926, 1.00035, 1.00035, 0.99942, 1.00048, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.99989, 1.00057, 1.00001, 0.99936, 1.00052, 1.00012, 0.99996, 1.00043, 1, 1.00035, 0.9994, 0.99976, 1.00035, 0.99973, 1.00052, 1.00041, 1.00119, 1.00037, 0.99973, 1.00002, 0.99986, 1.00041, 1.00041, 0.99902, 0.9996, 1.00034, 0.99999, 1.00026, 0.99999, 1.00026, 0.99973, 1.00052, 0.99973, 1, 0.99973, 1.00041, 1.00075, 0.9994, 1.0003, 0.99999, 1, 1.00041, 0.99955, 1, 0.99915, 0.99973, 0.99973, 1.00026, 1.00119, 0.99955, 0.99973, 1.0006, 0.99911, 1.0006, 1.00026, 0.99972, 1.00026, 0.99902, 1.00041, 0.99973, 0.99999, 1, 1, 1.00038, 1.0005, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973, 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 1.00047, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.HelveticaBoldFactors = HelveticaBoldFactors;\nconst HelveticaBoldMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nexports.HelveticaBoldMetrics = HelveticaBoldMetrics;\nconst HelveticaBoldItalicFactors = [0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977, 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998, 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 1.0044, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99971, 0.99973, 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.01011, 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977, 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99977, 1, 1, 1.00026, 0.99969, 0.99972, 0.99981, 0.9998, 1.0006, 0.99977, 0.99977, 1.00022, 0.91155, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 0.99966, 1.00022, 1.00032, 1.00001, 0.99944, 1.00026, 1.00001, 0.99968, 1.00001, 1.00047, 1, 1.0006, 1.00001, 0.99981, 1.00101, 1.00026, 1.0006, 0.99948, 0.99981, 1.00064, 0.99973, 0.99942, 1.00101, 1.00061, 1.00026, 1.00069, 1.0006, 1.00014, 0.99973, 1.01322, 0.99973, 1.00065, 1.00026, 1.00012, 0.99923, 1, 1.00064, 1.00076, 0.99948, 1.00055, 1.00063, 1.00007, 0.99943, 1.0006, 0.99948, 1.00026, 0.99948, 0.99943, 1.00001, 1.00001, 1.00029, 1.00038, 1.00035, 1.00001, 1.0006, 1.0006, 0.99973, 0.99978, 1.00001, 1.00057, 0.99989, 0.99967, 0.99964, 0.99967, 0.99977, 0.99999, 0.99977, 1.00038, 0.99977, 1.00001, 0.99973, 1.00066, 0.99967, 0.99967, 1.00041, 0.99998, 0.99999, 0.99977, 1.00022, 0.99967, 1.00001, 0.99977, 1.00026, 0.99964, 1.00031, 1.00001, 0.99999, 0.99999, 1, 1.00023, 1, 1, 0.99999, 1.00035, 1.00001, 0.99999, 0.99973, 0.99977, 0.99999, 1.00058, 0.99973, 0.99973, 0.99955, 0.9995, 1.00026, 1.00026, 1.00032, 0.99989, 1.00034, 0.99999, 1.00026, 1.00026, 1.00026, 0.99973, 0.45998, 0.99973, 1.00026, 0.99973, 1.00001, 0.99999, 0.99982, 0.99994, 0.99996, 1, 1.00042, 1.00044, 1.00029, 1.00023, 0.99973, 0.99973, 1.00026, 0.99949, 1.00002, 0.99973, 1.0006, 1.0006, 1.0006, 0.99975, 1.00026, 1.00026, 1.00032, 0.98685, 0.99973, 1.00026, 1, 1, 0.99966, 1.00044, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973, 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1, 0.99973, 0.99971, 0.99978, 1, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00098, 1, 1, 1, 1.00049, 1, 1, 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.HelveticaBoldItalicFactors = HelveticaBoldItalicFactors;\nconst HelveticaBoldItalicMetrics = {\n  lineHeight: 1.35,\n  lineGap: 0.2\n};\nexports.HelveticaBoldItalicMetrics = HelveticaBoldItalicMetrics;\nconst HelveticaItalicFactors = [0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001, 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924, 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.0288, 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006, 1.0006, 0.99946, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924, 0.99973, 0.99924, 0.99973, 1.06311, 0.99973, 1.00024, 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00041, 0.9998, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016, 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.89547, 1.00026, 1.0006, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 1.00001, 1, 1.00054, 0.99977, 1.00084, 1.00007, 0.99973, 1.00013, 0.99924, 1.00001, 1.00001, 0.99945, 0.91221, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 1.00001, 1.00001, 0.99999, 0.99977, 0.99933, 1.00022, 1.00054, 1.00001, 1.00065, 1.00026, 1.00001, 1.0001, 1.00001, 1.00052, 1, 1.0006, 1.00001, 0.99945, 0.99897, 0.99968, 0.99924, 1.00036, 0.99945, 0.99949, 1, 1.0006, 0.99897, 0.99918, 0.99968, 0.99911, 0.99924, 1, 0.99962, 1.01487, 1, 1.0005, 0.99973, 1.00012, 1.00043, 1, 0.99995, 0.99994, 1.00036, 0.99947, 1.00019, 1.00063, 1.00025, 0.99924, 1.00036, 0.99973, 1.00036, 1.00025, 1.00001, 1.00001, 1.00027, 1.0001, 1.00068, 1.00001, 1.0006, 1.0006, 1, 1.00008, 0.99957, 0.99972, 0.9994, 0.99954, 0.99975, 1.00051, 1.00001, 1.00019, 1.00001, 1.0001, 0.99986, 1.00001, 1.00001, 1.00038, 0.99954, 0.99954, 0.9994, 1.00066, 0.99999, 0.99977, 1.00022, 1.00054, 1.00001, 0.99977, 1.00026, 0.99975, 1.0001, 1.00001, 0.99993, 0.9995, 0.99955, 1.00016, 0.99978, 0.99974, 1.00019, 1.00022, 0.99955, 1.00053, 0.99973, 1.00089, 1.00005, 0.99967, 1.00048, 0.99973, 1.00002, 1.00034, 0.99973, 0.99973, 0.99964, 1.00006, 1.00066, 0.99947, 0.99973, 0.98894, 0.99973, 1, 0.44898, 1, 0.99946, 1, 1.00039, 1.00082, 0.99991, 0.99991, 0.99985, 1.00022, 1.00023, 1.00061, 1.00006, 0.99966, 0.99973, 0.99973, 0.99973, 1.00019, 1.0008, 1, 0.99924, 0.99924, 0.99924, 0.99983, 1.00044, 0.99973, 0.99964, 0.98332, 1, 0.99973, 1, 1, 0.99962, 0.99895, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 1.00423, 0.99925, 0.99999, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00049, 1, 1.00245, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 1.00003, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.HelveticaItalicFactors = HelveticaItalicFactors;\nconst HelveticaItalicMetrics = {\n  lineHeight: 1.35,\n  lineGap: 0.2\n};\nexports.HelveticaItalicMetrics = HelveticaItalicMetrics;\nconst HelveticaRegularFactors = [0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001, 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924, 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.04596, 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006, 1.0006, 1.00019, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924, 0.99973, 0.99924, 0.99973, 1.02572, 0.99973, 1.00005, 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99999, 0.9998, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016, 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.84533, 1.00026, 1.0006, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99928, 1, 0.99977, 1.00013, 1.00055, 0.99947, 0.99945, 0.99941, 0.99924, 1.00001, 1.00001, 1.0004, 0.91621, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 1.00001, 1.00005, 0.99999, 0.99977, 1.00015, 1.00022, 0.99977, 1.00001, 0.99973, 1.00026, 1.00001, 1.00019, 1.00001, 0.99946, 1, 1.0006, 1.00001, 0.99978, 1.00045, 0.99973, 0.99924, 1.00023, 0.99978, 0.99966, 1, 1.00065, 1.00045, 1.00019, 0.99973, 0.99973, 0.99924, 1, 1, 0.96499, 1, 1.00055, 0.99973, 1.00008, 1.00027, 1, 0.9997, 0.99995, 1.00023, 0.99933, 1.00019, 1.00015, 1.00031, 0.99924, 1.00023, 0.99973, 1.00023, 1.00031, 1.00001, 0.99928, 1.00029, 1.00092, 1.00035, 1.00001, 1.0006, 1.0006, 1, 0.99988, 0.99975, 1, 1.00082, 0.99561, 0.9996, 1.00035, 1.00001, 0.99962, 1.00001, 1.00092, 0.99964, 1.00001, 0.99963, 0.99999, 1.00035, 1.00035, 1.00082, 0.99962, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.9996, 0.99967, 1.00001, 1.00034, 1.00074, 1.00054, 1.00053, 1.00063, 0.99971, 0.99962, 1.00035, 0.99975, 0.99977, 0.99973, 1.00043, 0.99953, 1.0007, 0.99915, 0.99973, 1.00008, 0.99892, 1.00073, 1.00073, 1.00114, 0.99915, 1.00073, 0.99955, 0.99973, 1.00092, 0.99973, 1, 0.99998, 1, 1.0003, 1, 1.00043, 1.00001, 0.99969, 1.0003, 1, 1.00035, 1.00001, 0.9995, 1, 1.00092, 0.99973, 0.99973, 0.99973, 1.0007, 0.9995, 1, 0.99924, 1.0006, 0.99924, 0.99972, 1.00062, 0.99973, 1.00114, 1.00073, 1, 0.99955, 1, 1, 1.00047, 0.99968, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 0.99925, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.HelveticaRegularFactors = HelveticaRegularFactors;\nconst HelveticaRegularMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nexports.HelveticaRegularMetrics = HelveticaRegularMetrics;\n\n/***/ }),\n/* 179 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.LiberationSansRegularWidths = exports.LiberationSansRegularMapping = exports.LiberationSansItalicWidths = exports.LiberationSansItalicMapping = exports.LiberationSansBoldWidths = exports.LiberationSansBoldMapping = exports.LiberationSansBoldItalicWidths = exports.LiberationSansBoldItalicMapping = void 0;\nconst LiberationSansBoldWidths = [365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 719, 722, 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 785, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 385, 611, 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 465, 722, 333, 853, 906, 474, 825, 927, 838, 278, 722, 722, 601, 719, 667, 611, 722, 778, 278, 722, 667, 833, 722, 644, 778, 722, 667, 600, 611, 667, 821, 667, 809, 802, 278, 667, 615, 451, 611, 278, 582, 615, 610, 556, 606, 475, 460, 611, 541, 278, 558, 556, 612, 556, 445, 611, 766, 619, 520, 684, 446, 582, 715, 576, 753, 845, 278, 582, 611, 582, 845, 667, 669, 885, 567, 711, 667, 278, 276, 556, 1094, 1062, 875, 610, 722, 622, 719, 722, 719, 722, 567, 712, 667, 904, 626, 719, 719, 610, 702, 833, 722, 778, 719, 667, 722, 611, 622, 854, 667, 730, 703, 1005, 1019, 870, 979, 719, 711, 1031, 719, 556, 618, 615, 417, 635, 556, 709, 497, 615, 615, 500, 635, 740, 604, 611, 604, 611, 556, 490, 556, 875, 556, 615, 581, 833, 844, 729, 854, 615, 552, 854, 583, 556, 556, 611, 417, 552, 556, 278, 281, 278, 969, 906, 611, 500, 615, 556, 604, 778, 611, 487, 447, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552, 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333, 333, 604, 333, 167, 396, 556, 556, 1094, 556, 885, 489, 1115, 1000, 768, 600, 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333, 333, 333, 333, 333];\nexports.LiberationSansBoldWidths = LiberationSansBoldWidths;\nconst LiberationSansBoldMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];\nexports.LiberationSansBoldMapping = LiberationSansBoldMapping;\nconst LiberationSansBoldItalicWidths = [365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 740, 722, 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 782, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 396, 611, 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 722, 333, 854, 906, 473, 844, 930, 847, 278, 722, 722, 610, 671, 667, 611, 722, 778, 278, 722, 667, 833, 722, 657, 778, 718, 667, 590, 611, 667, 822, 667, 829, 781, 278, 667, 620, 479, 611, 278, 591, 620, 621, 556, 610, 479, 492, 611, 558, 278, 566, 556, 603, 556, 450, 611, 712, 605, 532, 664, 409, 591, 704, 578, 773, 834, 278, 591, 611, 591, 834, 667, 667, 886, 614, 719, 667, 278, 278, 556, 1094, 1042, 854, 622, 719, 677, 719, 722, 708, 722, 614, 722, 667, 927, 643, 719, 719, 615, 687, 833, 722, 778, 719, 667, 722, 611, 677, 781, 667, 729, 708, 979, 989, 854, 1000, 708, 719, 1042, 729, 556, 619, 604, 534, 618, 556, 736, 510, 611, 611, 507, 622, 740, 604, 611, 611, 611, 556, 889, 556, 885, 556, 646, 583, 889, 935, 707, 854, 594, 552, 865, 589, 556, 556, 611, 469, 563, 556, 278, 278, 278, 969, 906, 611, 507, 619, 556, 611, 778, 611, 575, 467, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552, 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333, 333, 604, 333, 167, 396, 556, 556, 1104, 556, 885, 516, 1146, 1000, 768, 600, 834, 834, 834, 834, 999, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333, 333, 333, 333, 333];\nexports.LiberationSansBoldItalicWidths = LiberationSansBoldItalicWidths;\nconst LiberationSansBoldItalicMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];\nexports.LiberationSansBoldItalicMapping = LiberationSansBoldItalicMapping;\nconst LiberationSansItalicWidths = [365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556, 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 625, 722, 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278, 278, 733, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 281, 556, 400, 556, 222, 722, 556, 722, 556, 722, 556, 615, 723, 556, 778, 556, 778, 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667, 500, 667, 500, 611, 278, 611, 354, 611, 278, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 789, 846, 389, 794, 865, 775, 222, 667, 667, 570, 671, 667, 611, 722, 778, 278, 667, 667, 833, 722, 648, 778, 725, 667, 600, 611, 667, 837, 667, 831, 761, 278, 667, 570, 439, 555, 222, 550, 570, 571, 500, 556, 439, 463, 555, 542, 222, 500, 492, 548, 500, 447, 556, 670, 573, 486, 603, 374, 550, 652, 546, 728, 779, 222, 550, 556, 550, 779, 667, 667, 843, 544, 708, 667, 278, 278, 500, 1066, 982, 844, 589, 715, 639, 724, 667, 651, 667, 544, 704, 667, 917, 614, 715, 715, 589, 686, 833, 722, 778, 725, 667, 722, 611, 639, 795, 667, 727, 673, 920, 923, 805, 886, 651, 694, 1022, 682, 556, 562, 522, 493, 553, 556, 688, 465, 556, 556, 472, 564, 686, 550, 556, 556, 556, 500, 833, 500, 835, 500, 572, 518, 830, 851, 621, 736, 526, 492, 752, 534, 556, 556, 556, 378, 496, 500, 222, 222, 222, 910, 828, 556, 472, 565, 500, 556, 778, 556, 492, 339, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552, 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333, 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1083, 1000, 768, 600, 834, 834, 834, 834, 1000, 500, 998, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 719, 274, 549, 549, 584, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324, 316, 328, 398, 285];\nexports.LiberationSansItalicWidths = LiberationSansItalicWidths;\nconst LiberationSansItalicMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];\nexports.LiberationSansItalicMapping = LiberationSansItalicMapping;\nconst LiberationSansRegularWidths = [365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556, 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 615, 722, 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278, 278, 735, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 292, 556, 334, 556, 222, 722, 556, 722, 556, 722, 556, 604, 723, 556, 778, 556, 778, 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667, 500, 667, 500, 611, 278, 611, 375, 611, 278, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 784, 838, 384, 774, 855, 752, 222, 667, 667, 551, 668, 667, 611, 722, 778, 278, 667, 668, 833, 722, 650, 778, 722, 667, 618, 611, 667, 798, 667, 835, 748, 278, 667, 578, 446, 556, 222, 547, 578, 575, 500, 557, 446, 441, 556, 556, 222, 500, 500, 576, 500, 448, 556, 690, 569, 482, 617, 395, 547, 648, 525, 713, 781, 222, 547, 556, 547, 781, 667, 667, 865, 542, 719, 667, 278, 278, 500, 1057, 1010, 854, 583, 722, 635, 719, 667, 656, 667, 542, 677, 667, 923, 604, 719, 719, 583, 656, 833, 722, 778, 719, 667, 722, 611, 635, 760, 667, 740, 667, 917, 938, 792, 885, 656, 719, 1010, 722, 556, 573, 531, 365, 583, 556, 669, 458, 559, 559, 438, 583, 688, 552, 556, 542, 556, 500, 458, 500, 823, 500, 573, 521, 802, 823, 625, 719, 521, 510, 750, 542, 556, 556, 556, 365, 510, 500, 222, 278, 222, 906, 812, 556, 438, 559, 500, 552, 778, 556, 489, 411, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552, 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333, 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1073, 1000, 768, 600, 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 719, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324, 316, 328, 398, 285];\nexports.LiberationSansRegularWidths = LiberationSansRegularWidths;\nconst LiberationSansRegularMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];\nexports.LiberationSansRegularMapping = LiberationSansRegularMapping;\n\n/***/ }),\n/* 180 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.MyriadProRegularMetrics = exports.MyriadProRegularFactors = exports.MyriadProItalicMetrics = exports.MyriadProItalicFactors = exports.MyriadProBoldMetrics = exports.MyriadProBoldItalicMetrics = exports.MyriadProBoldItalicFactors = exports.MyriadProBoldFactors = void 0;\nconst MyriadProBoldFactors = [1.36898, 1, 1, 0.72706, 0.80479, 0.83734, 0.98894, 0.99793, 0.9897, 0.93884, 0.86209, 0.94292, 0.94292, 1.16661, 1.02058, 0.93582, 0.96694, 0.93582, 1.19137, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058, 0.72851, 0.78966, 0.90838, 0.83637, 0.82391, 0.96376, 0.80061, 0.86275, 0.8768, 0.95407, 1.0258, 0.73901, 0.85022, 0.83655, 1.0156, 0.95546, 0.92179, 0.87107, 0.92179, 0.82114, 0.8096, 0.89713, 0.94438, 0.95353, 0.94083, 0.91905, 0.90406, 0.9446, 0.94292, 1.18777, 0.94292, 1.02058, 0.89903, 0.90088, 0.94938, 0.97898, 0.81093, 0.97571, 0.94938, 1.024, 0.9577, 0.95933, 0.98621, 1.0474, 0.97455, 0.98981, 0.9672, 0.95933, 0.9446, 0.97898, 0.97407, 0.97646, 0.78036, 1.10208, 0.95442, 0.95298, 0.97579, 0.9332, 0.94039, 0.938, 0.80687, 1.01149, 0.80687, 1.02058, 0.80479, 0.99793, 0.99793, 0.99793, 0.99793, 1.01149, 1.00872, 0.90088, 0.91882, 1.0213, 0.8361, 1.02058, 0.62295, 0.54324, 0.89022, 1.08595, 1, 1, 0.90088, 1, 0.97455, 0.93582, 0.90088, 1, 1.05686, 0.8361, 0.99642, 0.99642, 0.99642, 0.72851, 0.90838, 0.90838, 0.90838, 0.90838, 0.90838, 0.90838, 0.868, 0.82391, 0.80061, 0.80061, 0.80061, 0.80061, 1.0258, 1.0258, 1.0258, 1.0258, 0.97484, 0.95546, 0.92179, 0.92179, 0.92179, 0.92179, 0.92179, 1.02058, 0.92179, 0.94438, 0.94438, 0.94438, 0.94438, 0.90406, 0.86958, 0.98225, 0.94938, 0.94938, 0.94938, 0.94938, 0.94938, 0.94938, 0.9031, 0.81093, 0.94938, 0.94938, 0.94938, 0.94938, 0.98621, 0.98621, 0.98621, 0.98621, 0.93969, 0.95933, 0.9446, 0.9446, 0.9446, 0.9446, 0.9446, 1.08595, 0.9446, 0.95442, 0.95442, 0.95442, 0.95442, 0.94039, 0.97898, 0.94039, 0.90838, 0.94938, 0.90838, 0.94938, 0.90838, 0.94938, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.96376, 0.84313, 0.97484, 0.97571, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.8768, 0.9577, 0.8768, 0.9577, 0.8768, 0.9577, 1, 1, 0.95407, 0.95933, 0.97069, 0.95933, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 0.887, 1.01591, 0.73901, 1.0474, 1, 1, 0.97455, 0.83655, 0.98981, 1, 1, 0.83655, 0.73977, 0.83655, 0.73903, 0.84638, 1.033, 0.95546, 0.95933, 1, 1, 0.95546, 0.95933, 0.8271, 0.95417, 0.95933, 0.92179, 0.9446, 0.92179, 0.9446, 0.92179, 0.9446, 0.936, 0.91964, 0.82114, 0.97646, 1, 1, 0.82114, 0.97646, 0.8096, 0.78036, 0.8096, 0.78036, 1, 1, 0.8096, 0.78036, 1, 1, 0.89713, 0.77452, 0.89713, 1.10208, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94083, 0.97579, 0.90406, 0.94039, 0.90406, 0.9446, 0.938, 0.9446, 0.938, 0.9446, 0.938, 1, 0.99793, 0.90838, 0.94938, 0.868, 0.9031, 0.92179, 0.9446, 1, 1, 0.89713, 1.10208, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90989, 0.9358, 0.91945, 0.83181, 0.75261, 0.87992, 0.82976, 0.96034, 0.83689, 0.97268, 1.0078, 0.90838, 0.83637, 0.8019, 0.90157, 0.80061, 0.9446, 0.95407, 0.92436, 1.0258, 0.85022, 0.97153, 1.0156, 0.95546, 0.89192, 0.92179, 0.92361, 0.87107, 0.96318, 0.89713, 0.93704, 0.95638, 0.91905, 0.91709, 0.92796, 1.0258, 0.93704, 0.94836, 1.0373, 0.95933, 1.0078, 0.95871, 0.94836, 0.96174, 0.92601, 0.9498, 0.98607, 0.95776, 0.95933, 1.05453, 1.0078, 0.98275, 0.9314, 0.95617, 0.91701, 1.05993, 0.9446, 0.78367, 0.9553, 1, 0.86832, 1.0128, 0.95871, 0.99394, 0.87548, 0.96361, 0.86774, 1.0078, 0.95871, 0.9446, 0.95871, 0.86774, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.94083, 0.97579, 0.94083, 0.97579, 0.94083, 0.97579, 0.90406, 0.94039, 0.96694, 1, 0.89903, 1, 1, 1, 0.93582, 0.93582, 0.93582, 1, 0.908, 0.908, 0.918, 0.94219, 0.94219, 0.96544, 1, 1.285, 1, 1, 0.81079, 0.81079, 1, 1, 0.74854, 1, 1, 1, 1, 0.99793, 1, 1, 1, 0.65, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.17173, 1, 0.80535, 0.76169, 1.02058, 1.0732, 1.05486, 1, 1, 1.30692, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.16161, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.MyriadProBoldFactors = MyriadProBoldFactors;\nconst MyriadProBoldMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nexports.MyriadProBoldMetrics = MyriadProBoldMetrics;\nconst MyriadProBoldItalicFactors = [1.36898, 1, 1, 0.66227, 0.80779, 0.81625, 0.97276, 0.97276, 0.97733, 0.92222, 0.83266, 0.94292, 0.94292, 1.16148, 1.02058, 0.93582, 0.96694, 0.93582, 1.17337, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058, 0.71541, 0.76813, 0.85576, 0.80591, 0.80729, 0.94299, 0.77512, 0.83655, 0.86523, 0.92222, 0.98621, 0.71743, 0.81698, 0.79726, 0.98558, 0.92222, 0.90637, 0.83809, 0.90637, 0.80729, 0.76463, 0.86275, 0.90699, 0.91605, 0.9154, 0.85308, 0.85458, 0.90531, 0.94292, 1.21296, 0.94292, 1.02058, 0.89903, 1.18616, 0.99613, 0.91677, 0.78216, 0.91677, 0.90083, 0.98796, 0.9135, 0.92168, 0.95381, 0.98981, 0.95298, 0.95381, 0.93459, 0.92168, 0.91513, 0.92004, 0.91677, 0.95077, 0.748, 1.04502, 0.91677, 0.92061, 0.94236, 0.89544, 0.89364, 0.9, 0.80687, 0.8578, 0.80687, 1.02058, 0.80779, 0.97276, 0.97276, 0.97276, 0.97276, 0.8578, 0.99973, 1.18616, 0.91339, 1.08074, 0.82891, 1.02058, 0.55509, 0.71526, 0.89022, 1.08595, 1, 1, 1.18616, 1, 0.96736, 0.93582, 1.18616, 1, 1.04864, 0.82711, 0.99043, 0.99043, 0.99043, 0.71541, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.845, 0.80729, 0.77512, 0.77512, 0.77512, 0.77512, 0.98621, 0.98621, 0.98621, 0.98621, 0.95961, 0.92222, 0.90637, 0.90637, 0.90637, 0.90637, 0.90637, 1.02058, 0.90251, 0.90699, 0.90699, 0.90699, 0.90699, 0.85458, 0.83659, 0.94951, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.85811, 0.78216, 0.90083, 0.90083, 0.90083, 0.90083, 0.95381, 0.95381, 0.95381, 0.95381, 0.9135, 0.92168, 0.91513, 0.91513, 0.91513, 0.91513, 0.91513, 1.08595, 0.91677, 0.91677, 0.91677, 0.91677, 0.91677, 0.89364, 0.92332, 0.89364, 0.85576, 0.99613, 0.85576, 0.99613, 0.85576, 0.99613, 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.94299, 0.76783, 0.95961, 0.91677, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.86523, 0.9135, 0.86523, 0.9135, 0.86523, 0.9135, 1, 1, 0.92222, 0.92168, 0.92222, 0.92168, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.86036, 0.97096, 0.71743, 0.98981, 1, 1, 0.95298, 0.79726, 0.95381, 1, 1, 0.79726, 0.6894, 0.79726, 0.74321, 0.81691, 1.0006, 0.92222, 0.92168, 1, 1, 0.92222, 0.92168, 0.79464, 0.92098, 0.92168, 0.90637, 0.91513, 0.90637, 0.91513, 0.90637, 0.91513, 0.909, 0.87514, 0.80729, 0.95077, 1, 1, 0.80729, 0.95077, 0.76463, 0.748, 0.76463, 0.748, 1, 1, 0.76463, 0.748, 1, 1, 0.86275, 0.72651, 0.86275, 1.04502, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.9154, 0.94236, 0.85458, 0.89364, 0.85458, 0.90531, 0.9, 0.90531, 0.9, 0.90531, 0.9, 1, 0.97276, 0.85576, 0.99613, 0.845, 0.85811, 0.90251, 0.91677, 1, 1, 0.86275, 1.04502, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.00899, 1.30628, 0.85576, 0.80178, 0.66862, 0.7927, 0.69323, 0.88127, 0.72459, 0.89711, 0.95381, 0.85576, 0.80591, 0.7805, 0.94729, 0.77512, 0.90531, 0.92222, 0.90637, 0.98621, 0.81698, 0.92655, 0.98558, 0.92222, 0.85359, 0.90637, 0.90976, 0.83809, 0.94523, 0.86275, 0.83509, 0.93157, 0.85308, 0.83392, 0.92346, 0.98621, 0.83509, 0.92886, 0.91324, 0.92168, 0.95381, 0.90646, 0.92886, 0.90557, 0.86847, 0.90276, 0.91324, 0.86842, 0.92168, 0.99531, 0.95381, 0.9224, 0.85408, 0.92699, 0.86847, 1.0051, 0.91513, 0.80487, 0.93481, 1, 0.88159, 1.05214, 0.90646, 0.97355, 0.81539, 0.89398, 0.85923, 0.95381, 0.90646, 0.91513, 0.90646, 0.85923, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9154, 0.94236, 0.9154, 0.94236, 0.9154, 0.94236, 0.85458, 0.89364, 0.96694, 1, 0.89903, 1, 1, 1, 0.91782, 0.91782, 0.91782, 1, 0.896, 0.896, 0.896, 0.9332, 0.9332, 0.95973, 1, 1.26, 1, 1, 0.80479, 0.80178, 1, 1, 0.85633, 1, 1, 1, 1, 0.97276, 1, 1, 1, 0.698, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.14542, 1, 0.79199, 0.78694, 1.02058, 1.03493, 1.05486, 1, 1, 1.23026, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.20006, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.MyriadProBoldItalicFactors = MyriadProBoldItalicFactors;\nconst MyriadProBoldItalicMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nexports.MyriadProBoldItalicMetrics = MyriadProBoldItalicMetrics;\nconst MyriadProItalicFactors = [1.36898, 1, 1, 0.65507, 0.84943, 0.85639, 0.88465, 0.88465, 0.86936, 0.88307, 0.86948, 0.85283, 0.85283, 1.06383, 1.02058, 0.75945, 0.9219, 0.75945, 1.17337, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.75945, 0.75945, 1.02058, 1.02058, 1.02058, 0.69046, 0.70926, 0.85158, 0.77812, 0.76852, 0.89591, 0.70466, 0.76125, 0.80094, 0.86822, 0.83864, 0.728, 0.77212, 0.79475, 0.93637, 0.87514, 0.8588, 0.76013, 0.8588, 0.72421, 0.69866, 0.77598, 0.85991, 0.80811, 0.87832, 0.78112, 0.77512, 0.8562, 1.0222, 1.18417, 1.0222, 1.27014, 0.89903, 1.15012, 0.93859, 0.94399, 0.846, 0.94399, 0.81453, 1.0186, 0.94219, 0.96017, 1.03075, 1.02175, 0.912, 1.03075, 0.96998, 0.96017, 0.93859, 0.94399, 0.94399, 0.95493, 0.746, 1.12658, 0.94578, 0.91, 0.979, 0.882, 0.882, 0.83, 0.85034, 0.83537, 0.85034, 1.02058, 0.70869, 0.88465, 0.88465, 0.88465, 0.88465, 0.83537, 0.90083, 1.15012, 0.9161, 0.94565, 0.73541, 1.02058, 0.53609, 0.69353, 0.79519, 1.08595, 1, 1, 1.15012, 1, 0.91974, 0.75945, 1.15012, 1, 0.9446, 0.73361, 0.9005, 0.9005, 0.9005, 0.62864, 0.85158, 0.85158, 0.85158, 0.85158, 0.85158, 0.85158, 0.773, 0.76852, 0.70466, 0.70466, 0.70466, 0.70466, 0.83864, 0.83864, 0.83864, 0.83864, 0.90561, 0.87514, 0.8588, 0.8588, 0.8588, 0.8588, 0.8588, 1.02058, 0.85751, 0.85991, 0.85991, 0.85991, 0.85991, 0.77512, 0.76013, 0.88075, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.8075, 0.846, 0.81453, 0.81453, 0.81453, 0.81453, 0.82424, 0.82424, 0.82424, 0.82424, 0.9278, 0.96017, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 1.08595, 0.8562, 0.94578, 0.94578, 0.94578, 0.94578, 0.882, 0.94578, 0.882, 0.85158, 0.93859, 0.85158, 0.93859, 0.85158, 0.93859, 0.76852, 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.89591, 0.8544, 0.90561, 0.94399, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.80094, 0.94219, 0.80094, 0.94219, 0.80094, 0.94219, 1, 1, 0.86822, 0.96017, 0.86822, 0.96017, 0.83864, 0.82424, 0.83864, 0.82424, 0.83864, 0.82424, 0.83864, 1.03075, 0.83864, 0.82424, 0.81402, 1.02738, 0.728, 1.02175, 1, 1, 0.912, 0.79475, 1.03075, 1, 1, 0.79475, 0.83911, 0.79475, 0.66266, 0.80553, 1.06676, 0.87514, 0.96017, 1, 1, 0.87514, 0.96017, 0.86865, 0.87396, 0.96017, 0.8588, 0.93859, 0.8588, 0.93859, 0.8588, 0.93859, 0.867, 0.84759, 0.72421, 0.95493, 1, 1, 0.72421, 0.95493, 0.69866, 0.746, 0.69866, 0.746, 1, 1, 0.69866, 0.746, 1, 1, 0.77598, 0.88417, 0.77598, 1.12658, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.87832, 0.979, 0.77512, 0.882, 0.77512, 0.8562, 0.83, 0.8562, 0.83, 0.8562, 0.83, 1, 0.88465, 0.85158, 0.93859, 0.773, 0.8075, 0.85751, 0.8562, 1, 1, 0.77598, 1.12658, 1.15012, 1.15012, 1.15012, 1.15012, 1.15012, 1.15313, 1.15012, 1.15012, 1.15012, 1.08106, 1.03901, 0.85158, 0.77025, 0.62264, 0.7646, 0.65351, 0.86026, 0.69461, 0.89947, 1.03075, 0.85158, 0.77812, 0.76449, 0.88836, 0.70466, 0.8562, 0.86822, 0.8588, 0.83864, 0.77212, 0.85308, 0.93637, 0.87514, 0.82352, 0.8588, 0.85701, 0.76013, 0.89058, 0.77598, 0.8156, 0.82565, 0.78112, 0.77899, 0.89386, 0.83864, 0.8156, 0.9486, 0.92388, 0.96186, 1.03075, 0.91123, 0.9486, 0.93298, 0.878, 0.93942, 0.92388, 0.84596, 0.96186, 0.95119, 1.03075, 0.922, 0.88787, 0.95829, 0.88, 0.93559, 0.93859, 0.78815, 0.93758, 1, 0.89217, 1.03737, 0.91123, 0.93969, 0.77487, 0.85769, 0.86799, 1.03075, 0.91123, 0.93859, 0.91123, 0.86799, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87832, 0.979, 0.87832, 0.979, 0.87832, 0.979, 0.77512, 0.882, 0.9219, 1, 0.89903, 1, 1, 1, 0.87321, 0.87321, 0.87321, 1, 1.027, 1.027, 1.027, 0.86847, 0.86847, 0.79121, 1, 1.124, 1, 1, 0.73572, 0.73572, 1, 1, 0.85034, 1, 1, 1, 1, 0.88465, 1, 1, 1, 0.669, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04828, 1, 0.74948, 0.75187, 1.02058, 0.98391, 1.02119, 1, 1, 1.06233, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05233, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.MyriadProItalicFactors = MyriadProItalicFactors;\nconst MyriadProItalicMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nexports.MyriadProItalicMetrics = MyriadProItalicMetrics;\nconst MyriadProRegularFactors = [1.36898, 1, 1, 0.76305, 0.82784, 0.94935, 0.89364, 0.92241, 0.89073, 0.90706, 0.98472, 0.85283, 0.85283, 1.0664, 1.02058, 0.74505, 0.9219, 0.74505, 1.23456, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.74505, 0.74505, 1.02058, 1.02058, 1.02058, 0.73002, 0.72601, 0.91755, 0.8126, 0.80314, 0.92222, 0.73764, 0.79726, 0.83051, 0.90284, 0.86023, 0.74, 0.8126, 0.84869, 0.96518, 0.91115, 0.8858, 0.79761, 0.8858, 0.74498, 0.73914, 0.81363, 0.89591, 0.83659, 0.89633, 0.85608, 0.8111, 0.90531, 1.0222, 1.22736, 1.0222, 1.27014, 0.89903, 0.90088, 0.86667, 1.0231, 0.896, 1.01411, 0.90083, 1.05099, 1.00512, 0.99793, 1.05326, 1.09377, 0.938, 1.06226, 1.00119, 0.99793, 0.98714, 1.0231, 1.01231, 0.98196, 0.792, 1.19137, 0.99074, 0.962, 1.01915, 0.926, 0.942, 0.856, 0.85034, 0.92006, 0.85034, 1.02058, 0.69067, 0.92241, 0.92241, 0.92241, 0.92241, 0.92006, 0.9332, 0.90088, 0.91882, 0.93484, 0.75339, 1.02058, 0.56866, 0.54324, 0.79519, 1.08595, 1, 1, 0.90088, 1, 0.95325, 0.74505, 0.90088, 1, 0.97198, 0.75339, 0.91009, 0.91009, 0.91009, 0.66466, 0.91755, 0.91755, 0.91755, 0.91755, 0.91755, 0.91755, 0.788, 0.80314, 0.73764, 0.73764, 0.73764, 0.73764, 0.86023, 0.86023, 0.86023, 0.86023, 0.92915, 0.91115, 0.8858, 0.8858, 0.8858, 0.8858, 0.8858, 1.02058, 0.8858, 0.89591, 0.89591, 0.89591, 0.89591, 0.8111, 0.79611, 0.89713, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86936, 0.896, 0.90083, 0.90083, 0.90083, 0.90083, 0.84224, 0.84224, 0.84224, 0.84224, 0.97276, 0.99793, 0.98714, 0.98714, 0.98714, 0.98714, 0.98714, 1.08595, 0.89876, 0.99074, 0.99074, 0.99074, 0.99074, 0.942, 1.0231, 0.942, 0.91755, 0.86667, 0.91755, 0.86667, 0.91755, 0.86667, 0.80314, 0.896, 0.80314, 0.896, 0.80314, 0.896, 0.80314, 0.896, 0.92222, 0.93372, 0.92915, 1.01411, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.83051, 1.00512, 0.83051, 1.00512, 0.83051, 1.00512, 1, 1, 0.90284, 0.99793, 0.90976, 0.99793, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023, 1.05326, 0.86023, 0.84224, 0.82873, 1.07469, 0.74, 1.09377, 1, 1, 0.938, 0.84869, 1.06226, 1, 1, 0.84869, 0.83704, 0.84869, 0.81441, 0.85588, 1.08927, 0.91115, 0.99793, 1, 1, 0.91115, 0.99793, 0.91887, 0.90991, 0.99793, 0.8858, 0.98714, 0.8858, 0.98714, 0.8858, 0.98714, 0.894, 0.91434, 0.74498, 0.98196, 1, 1, 0.74498, 0.98196, 0.73914, 0.792, 0.73914, 0.792, 1, 1, 0.73914, 0.792, 1, 1, 0.81363, 0.904, 0.81363, 1.19137, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89633, 1.01915, 0.8111, 0.942, 0.8111, 0.90531, 0.856, 0.90531, 0.856, 0.90531, 0.856, 1, 0.92241, 0.91755, 0.86667, 0.788, 0.86936, 0.8858, 0.89876, 1, 1, 0.81363, 1.19137, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90388, 1.03901, 0.92138, 0.78105, 0.7154, 0.86169, 0.80513, 0.94007, 0.82528, 0.98612, 1.06226, 0.91755, 0.8126, 0.81884, 0.92819, 0.73764, 0.90531, 0.90284, 0.8858, 0.86023, 0.8126, 0.91172, 0.96518, 0.91115, 0.83089, 0.8858, 0.87791, 0.79761, 0.89297, 0.81363, 0.88157, 0.89992, 0.85608, 0.81992, 0.94307, 0.86023, 0.88157, 0.95308, 0.98699, 0.99793, 1.06226, 0.95817, 0.95308, 0.97358, 0.928, 0.98088, 0.98699, 0.92761, 0.99793, 0.96017, 1.06226, 0.986, 0.944, 0.95978, 0.938, 0.96705, 0.98714, 0.80442, 0.98972, 1, 0.89762, 1.04552, 0.95817, 0.99007, 0.87064, 0.91879, 0.88888, 1.06226, 0.95817, 0.98714, 0.95817, 0.88888, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89633, 1.01915, 0.89633, 1.01915, 0.89633, 1.01915, 0.8111, 0.942, 0.9219, 1, 0.89903, 1, 1, 1, 0.93173, 0.93173, 0.93173, 1, 1.06304, 1.06304, 1.06904, 0.89903, 0.89903, 0.80549, 1, 1.156, 1, 1, 0.76575, 0.76575, 1, 1, 0.72458, 1, 1, 1, 1, 0.92241, 1, 1, 1, 0.619, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.07257, 1, 0.74705, 0.71119, 1.02058, 1.024, 1.02119, 1, 1, 1.1536, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05638, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.MyriadProRegularFactors = MyriadProRegularFactors;\nconst MyriadProRegularMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nexports.MyriadProRegularMetrics = MyriadProRegularMetrics;\n\n/***/ }),\n/* 181 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.SegoeuiRegularMetrics = exports.SegoeuiRegularFactors = exports.SegoeuiItalicMetrics = exports.SegoeuiItalicFactors = exports.SegoeuiBoldMetrics = exports.SegoeuiBoldItalicMetrics = exports.SegoeuiBoldItalicFactors = exports.SegoeuiBoldFactors = void 0;\nconst SegoeuiBoldFactors = [1.76738, 1, 1, 0.99297, 0.9824, 1.04016, 1.06497, 1.03424, 0.97529, 1.17647, 1.23203, 1.1085, 1.1085, 1.16939, 1.2107, 0.9754, 1.21408, 0.9754, 1.59578, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 0.81378, 0.81378, 1.2107, 1.2107, 1.2107, 0.71703, 0.97847, 0.97363, 0.88776, 0.8641, 1.02096, 0.79795, 0.85132, 0.914, 1.06085, 1.1406, 0.8007, 0.89858, 0.83693, 1.14889, 1.09398, 0.97489, 0.92094, 0.97489, 0.90399, 0.84041, 0.95923, 1.00135, 1, 1.06467, 0.98243, 0.90996, 0.99361, 1.1085, 1.56942, 1.1085, 1.2107, 0.74627, 0.94282, 0.96752, 1.01519, 0.86304, 1.01359, 0.97278, 1.15103, 1.01359, 0.98561, 1.02285, 1.02285, 1.00527, 1.02285, 1.0302, 0.99041, 1.0008, 1.01519, 1.01359, 1.02258, 0.79104, 1.16862, 0.99041, 0.97454, 1.02511, 0.99298, 0.96752, 0.95801, 0.94856, 1.16579, 0.94856, 1.2107, 0.9824, 1.03424, 1.03424, 1, 1.03424, 1.16579, 0.8727, 1.3871, 1.18622, 1.10818, 1.04478, 1.2107, 1.18622, 0.75155, 0.94994, 1.28826, 1.21408, 1.21408, 0.91056, 1, 0.91572, 0.9754, 0.64663, 1.18328, 1.24866, 1.04478, 1.14169, 1.15749, 1.17389, 0.71703, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.93506, 0.8641, 0.79795, 0.79795, 0.79795, 0.79795, 1.1406, 1.1406, 1.1406, 1.1406, 1.02096, 1.09398, 0.97426, 0.97426, 0.97426, 0.97426, 0.97426, 1.2107, 0.97489, 1.00135, 1.00135, 1.00135, 1.00135, 0.90996, 0.92094, 1.02798, 0.96752, 0.96752, 0.96752, 0.96752, 0.96752, 0.96752, 0.93136, 0.86304, 0.97278, 0.97278, 0.97278, 0.97278, 1.02285, 1.02285, 1.02285, 1.02285, 0.97122, 0.99041, 1, 1, 1, 1, 1, 1.28826, 1.0008, 0.99041, 0.99041, 0.99041, 0.99041, 0.96752, 1.01519, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.8641, 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 1.02096, 1.03057, 1.02096, 1.03517, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.914, 1.01359, 0.914, 1.01359, 0.914, 1.01359, 1, 1, 1.06085, 0.98561, 1.06085, 1.00879, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 0.97138, 1.08692, 0.8007, 1.02285, 1, 1, 1.00527, 0.83693, 1.02285, 1, 1, 0.83693, 0.9455, 0.83693, 0.90418, 0.83693, 1.13005, 1.09398, 0.99041, 1, 1, 1.09398, 0.99041, 0.96692, 1.09251, 0.99041, 0.97489, 1.0008, 0.97489, 1.0008, 0.97489, 1.0008, 0.93994, 0.97931, 0.90399, 1.02258, 1, 1, 0.90399, 1.02258, 0.84041, 0.79104, 0.84041, 0.79104, 0.84041, 0.79104, 0.84041, 0.79104, 1, 1, 0.95923, 1.07034, 0.95923, 1.16862, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.06467, 1.02511, 0.90996, 0.96752, 0.90996, 0.99361, 0.95801, 0.99361, 0.95801, 0.99361, 0.95801, 1.07733, 1.03424, 0.97363, 0.96752, 0.93506, 0.93136, 0.97489, 1.0008, 1, 1, 0.95923, 1.16862, 1.15103, 1.15103, 1.01173, 1.03959, 0.75953, 0.81378, 0.79912, 1.15103, 1.21994, 0.95161, 0.87815, 1.01149, 0.81525, 0.7676, 0.98167, 1.01134, 1.02546, 0.84097, 1.03089, 1.18102, 0.97363, 0.88776, 0.85134, 0.97826, 0.79795, 0.99361, 1.06085, 0.97489, 1.1406, 0.89858, 1.0388, 1.14889, 1.09398, 0.86039, 0.97489, 1.0595, 0.92094, 0.94793, 0.95923, 0.90996, 0.99346, 0.98243, 1.02112, 0.95493, 1.1406, 0.90996, 1.03574, 1.02597, 1.0008, 1.18102, 1.06628, 1.03574, 1.0192, 1.01932, 1.00886, 0.97531, 1.0106, 1.0008, 1.13189, 1.18102, 1.02277, 0.98683, 1.0016, 0.99561, 1.07237, 1.0008, 0.90434, 0.99921, 0.93803, 0.8965, 1.23085, 1.06628, 1.04983, 0.96268, 1.0499, 0.98439, 1.18102, 1.06628, 1.0008, 1.06628, 0.98439, 0.79795, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.09466, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.97278, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.02065, 1, 1, 1, 1, 1, 1, 1.06467, 1.02511, 1.06467, 1.02511, 1.06467, 1.02511, 0.90996, 0.96752, 1, 1.21408, 0.89903, 1, 1, 0.75155, 1.04394, 1.04394, 1.04394, 1.04394, 0.98633, 0.98633, 0.98633, 0.73047, 0.73047, 1.20642, 0.91211, 1.25635, 1.222, 1.02956, 1.03372, 1.03372, 0.96039, 1.24633, 1, 1.12454, 0.93503, 1.03424, 1.19687, 1.03424, 1, 1, 1, 0.771, 1, 1, 1.15749, 1.15749, 1.15749, 1.10948, 0.86279, 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.16897, 1, 0.96085, 0.90137, 1.2107, 1.18416, 1.13973, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21172, 1.29004, 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18874, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.09193, 1.09193, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.SegoeuiBoldFactors = SegoeuiBoldFactors;\nconst SegoeuiBoldMetrics = {\n  lineHeight: 1.33008,\n  lineGap: 0\n};\nexports.SegoeuiBoldMetrics = SegoeuiBoldMetrics;\nconst SegoeuiBoldItalicFactors = [1.76738, 1, 1, 0.98946, 1.03959, 1.04016, 1.02809, 1.036, 0.97639, 1.10953, 1.23203, 1.11144, 1.11144, 1.16939, 1.21237, 0.9754, 1.21261, 0.9754, 1.59754, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 0.81378, 0.81378, 1.21237, 1.21237, 1.21237, 0.73541, 0.97847, 0.97363, 0.89723, 0.87897, 1.0426, 0.79429, 0.85292, 0.91149, 1.05815, 1.1406, 0.79631, 0.90128, 0.83853, 1.04396, 1.10615, 0.97552, 0.94436, 0.97552, 0.88641, 0.80527, 0.96083, 1.00135, 1, 1.06777, 0.9817, 0.91142, 0.99361, 1.11144, 1.57293, 1.11144, 1.21237, 0.74627, 1.31818, 1.06585, 0.97042, 0.83055, 0.97042, 0.93503, 1.1261, 0.97042, 0.97922, 1.14236, 0.94552, 1.01054, 1.14236, 1.02471, 0.97922, 0.94165, 0.97042, 0.97042, 1.0276, 0.78929, 1.1261, 0.97922, 0.95874, 1.02197, 0.98507, 0.96752, 0.97168, 0.95107, 1.16579, 0.95107, 1.21237, 1.03959, 1.036, 1.036, 1, 1.036, 1.16579, 0.87357, 1.31818, 1.18754, 1.26781, 1.05356, 1.21237, 1.18622, 0.79487, 0.94994, 1.29004, 1.24047, 1.24047, 1.31818, 1, 0.91484, 0.9754, 1.31818, 1.1349, 1.24866, 1.05356, 1.13934, 1.15574, 1.17389, 0.73541, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.94385, 0.87897, 0.79429, 0.79429, 0.79429, 0.79429, 1.1406, 1.1406, 1.1406, 1.1406, 1.0426, 1.10615, 0.97552, 0.97552, 0.97552, 0.97552, 0.97552, 1.21237, 0.97552, 1.00135, 1.00135, 1.00135, 1.00135, 0.91142, 0.94436, 0.98721, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585, 0.96705, 0.83055, 0.93503, 0.93503, 0.93503, 0.93503, 1.14236, 1.14236, 1.14236, 1.14236, 0.93125, 0.97922, 0.94165, 0.94165, 0.94165, 0.94165, 0.94165, 1.29004, 0.94165, 0.97922, 0.97922, 0.97922, 0.97922, 0.96752, 0.97042, 0.96752, 0.97363, 1.06585, 0.97363, 1.06585, 0.97363, 1.06585, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 1.0426, 1.0033, 1.0426, 0.97042, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.91149, 0.97042, 0.91149, 0.97042, 0.91149, 0.97042, 1, 1, 1.05815, 0.97922, 1.05815, 0.97922, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 0.97441, 1.04302, 0.79631, 1.01582, 1, 1, 1.01054, 0.83853, 1.14236, 1, 1, 0.83853, 1.09125, 0.83853, 0.90418, 0.83853, 1.19508, 1.10615, 0.97922, 1, 1, 1.10615, 0.97922, 1.01034, 1.10466, 0.97922, 0.97552, 0.94165, 0.97552, 0.94165, 0.97552, 0.94165, 0.91602, 0.91981, 0.88641, 1.0276, 1, 1, 0.88641, 1.0276, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 1, 1, 0.96083, 1.05403, 0.95923, 1.16862, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.06777, 1.02197, 0.91142, 0.96752, 0.91142, 0.99361, 0.97168, 0.99361, 0.97168, 0.99361, 0.97168, 1.23199, 1.036, 0.97363, 1.06585, 0.94385, 0.96705, 0.97552, 0.94165, 1, 1, 0.96083, 1.1261, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 0.95161, 1.27126, 1.00811, 0.83284, 0.77702, 0.99137, 0.95253, 1.0347, 0.86142, 1.07205, 1.14236, 0.97363, 0.89723, 0.86869, 1.09818, 0.79429, 0.99361, 1.05815, 0.97552, 1.1406, 0.90128, 1.06662, 1.04396, 1.10615, 0.84918, 0.97552, 1.04694, 0.94436, 0.98015, 0.96083, 0.91142, 1.00356, 0.9817, 1.01945, 0.98999, 1.1406, 0.91142, 1.04961, 0.9898, 1.00639, 1.14236, 1.07514, 1.04961, 0.99607, 1.02897, 1.008, 0.9898, 0.95134, 1.00639, 1.11121, 1.14236, 1.00518, 0.97981, 1.02186, 1, 1.08578, 0.94165, 0.99314, 0.98387, 0.93028, 0.93377, 1.35125, 1.07514, 1.10687, 0.93491, 1.04232, 1.00351, 1.14236, 1.07514, 0.94165, 1.07514, 1.00351, 0.79429, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.09097, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.93503, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96609, 1, 1, 1, 1, 1, 1, 1.06777, 1.02197, 1.06777, 1.02197, 1.06777, 1.02197, 0.91142, 0.96752, 1, 1.21261, 0.89903, 1, 1, 0.75155, 1.04745, 1.04745, 1.04745, 1.04394, 0.98633, 0.98633, 0.98633, 0.72959, 0.72959, 1.20502, 0.91406, 1.26514, 1.222, 1.02956, 1.03372, 1.03372, 0.96039, 1.24633, 1, 1.09125, 0.93327, 1.03336, 1.16541, 1.036, 1, 1, 1, 0.771, 1, 1, 1.15574, 1.15574, 1.15574, 1.15574, 0.86364, 0.94434, 0.86279, 0.94434, 0.86224, 1, 1, 1.16798, 1, 0.96085, 0.90068, 1.21237, 1.18416, 1.13904, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21339, 1.29004, 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18775, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.13269, 1.13269, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.SegoeuiBoldItalicFactors = SegoeuiBoldItalicFactors;\nconst SegoeuiBoldItalicMetrics = {\n  lineHeight: 1.33008,\n  lineGap: 0\n};\nexports.SegoeuiBoldItalicMetrics = SegoeuiBoldItalicMetrics;\nconst SegoeuiItalicFactors = [1.76738, 1, 1, 0.98946, 1.14763, 1.05365, 1.06234, 0.96927, 0.92586, 1.15373, 1.18414, 0.91349, 0.91349, 1.07403, 1.17308, 0.78383, 1.20088, 0.78383, 1.42531, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.78383, 0.78383, 1.17308, 1.17308, 1.17308, 0.77349, 0.94565, 0.94729, 0.85944, 0.88506, 0.9858, 0.74817, 0.80016, 0.88449, 0.98039, 0.95782, 0.69238, 0.89898, 0.83231, 0.98183, 1.03989, 0.96924, 0.86237, 0.96924, 0.80595, 0.74524, 0.86091, 0.95402, 0.94143, 0.98448, 0.8858, 0.83089, 0.93285, 1.0949, 1.39016, 1.0949, 1.45994, 0.74627, 1.04839, 0.97454, 0.97454, 0.87207, 0.97454, 0.87533, 1.06151, 0.97454, 1.00176, 1.16484, 1.08132, 0.98047, 1.16484, 1.02989, 1.01054, 0.96225, 0.97454, 0.97454, 1.06598, 0.79004, 1.16344, 1.00351, 0.94629, 0.9973, 0.91016, 0.96777, 0.9043, 0.91082, 0.92481, 0.91082, 1.17308, 0.95748, 0.96927, 0.96927, 1, 0.96927, 0.92481, 0.80597, 1.04839, 1.23393, 1.1781, 0.9245, 1.17308, 1.20808, 0.63218, 0.94261, 1.24822, 1.09971, 1.09971, 1.04839, 1, 0.85273, 0.78032, 1.04839, 1.09971, 1.22326, 0.9245, 1.09836, 1.13525, 1.15222, 0.70424, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729, 0.85498, 0.88506, 0.74817, 0.74817, 0.74817, 0.74817, 0.95782, 0.95782, 0.95782, 0.95782, 0.9858, 1.03989, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.17308, 0.96924, 0.95402, 0.95402, 0.95402, 0.95402, 0.83089, 0.86237, 0.88409, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454, 0.92916, 0.87207, 0.87533, 0.87533, 0.87533, 0.87533, 0.93146, 0.93146, 0.93146, 0.93146, 0.93854, 1.01054, 0.96225, 0.96225, 0.96225, 0.96225, 0.96225, 1.24822, 0.8761, 1.00351, 1.00351, 1.00351, 1.00351, 0.96777, 0.97454, 0.96777, 0.94729, 0.97454, 0.94729, 0.97454, 0.94729, 0.97454, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.9858, 0.95391, 0.9858, 0.97454, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.88449, 0.97454, 0.88449, 0.97454, 0.88449, 0.97454, 1, 1, 0.98039, 1.00176, 0.98039, 1.00176, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 1.16484, 0.95782, 0.93146, 0.84421, 1.12761, 0.69238, 1.08132, 1, 1, 0.98047, 0.83231, 1.16484, 1, 1, 0.84723, 1.04861, 0.84723, 0.78755, 0.83231, 1.23736, 1.03989, 1.01054, 1, 1, 1.03989, 1.01054, 0.9857, 1.03849, 1.01054, 0.96924, 0.96225, 0.96924, 0.96225, 0.96924, 0.96225, 0.92383, 0.90171, 0.80595, 1.06598, 1, 1, 0.80595, 1.06598, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004, 1, 1, 0.86091, 1.02759, 0.85771, 1.16344, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.98448, 0.9973, 0.83089, 0.96777, 0.83089, 0.93285, 0.9043, 0.93285, 0.9043, 0.93285, 0.9043, 1.31868, 0.96927, 0.94729, 0.97454, 0.85498, 0.92916, 0.96924, 0.8761, 1, 1, 0.86091, 1.16344, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 0.81965, 0.81965, 0.94729, 0.78032, 0.71022, 0.90883, 0.84171, 0.99877, 0.77596, 1.05734, 1.2, 0.94729, 0.85944, 0.82791, 0.9607, 0.74817, 0.93285, 0.98039, 0.96924, 0.95782, 0.89898, 0.98316, 0.98183, 1.03989, 0.78614, 0.96924, 0.97642, 0.86237, 0.86075, 0.86091, 0.83089, 0.90082, 0.8858, 0.97296, 1.01284, 0.95782, 0.83089, 1.0976, 1.04, 1.03342, 1.2, 1.0675, 1.0976, 0.98205, 1.03809, 1.05097, 1.04, 0.95364, 1.03342, 1.05401, 1.2, 1.02148, 1.0119, 1.04724, 1.0127, 1.02732, 0.96225, 0.8965, 0.97783, 0.93574, 0.94818, 1.30679, 1.0675, 1.11826, 0.99821, 1.0557, 1.0326, 1.2, 1.0675, 0.96225, 1.0675, 1.0326, 0.74817, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03754, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87533, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.98705, 1, 1, 1, 1, 1, 1, 0.98448, 0.9973, 0.98448, 0.9973, 0.98448, 0.9973, 0.83089, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 0.94945, 0.94945, 0.94945, 0.94945, 1.12317, 1.12317, 1.12317, 0.67603, 0.67603, 1.15621, 0.73584, 1.21191, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87709, 0.96927, 1.01473, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.09836, 1.09836, 1.09836, 1.01522, 0.86321, 0.94434, 0.8649, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86438, 1.17308, 1.18416, 1.14589, 0.69825, 0.97622, 1.96791, 1.24822, 1.24822, 1.17308, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.17984, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10742, 1.10742, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.SegoeuiItalicFactors = SegoeuiItalicFactors;\nconst SegoeuiItalicMetrics = {\n  lineHeight: 1.33008,\n  lineGap: 0\n};\nexports.SegoeuiItalicMetrics = SegoeuiItalicMetrics;\nconst SegoeuiRegularFactors = [1.76738, 1, 1, 0.98594, 1.02285, 1.10454, 1.06234, 0.96927, 0.92037, 1.19985, 1.2046, 0.90616, 0.90616, 1.07152, 1.1714, 0.78032, 1.20088, 0.78032, 1.40246, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.78032, 0.78032, 1.1714, 1.1714, 1.1714, 0.80597, 0.94084, 0.96706, 0.85944, 0.85734, 0.97093, 0.75842, 0.79936, 0.88198, 0.9831, 0.95782, 0.71387, 0.86969, 0.84636, 1.07796, 1.03584, 0.96924, 0.83968, 0.96924, 0.82826, 0.79649, 0.85771, 0.95132, 0.93119, 0.98965, 0.88433, 0.8287, 0.93365, 1.08612, 1.3638, 1.08612, 1.45786, 0.74627, 0.80499, 0.91484, 1.05707, 0.92383, 1.05882, 0.9403, 1.12654, 1.05882, 1.01756, 1.09011, 1.09011, 0.99414, 1.09011, 1.034, 1.01756, 1.05356, 1.05707, 1.05882, 1.04399, 0.84863, 1.21968, 1.01756, 0.95801, 1.00068, 0.91797, 0.96777, 0.9043, 0.90351, 0.92105, 0.90351, 1.1714, 0.85337, 0.96927, 0.96927, 0.99912, 0.96927, 0.92105, 0.80597, 1.2434, 1.20808, 1.05937, 0.90957, 1.1714, 1.20808, 0.75155, 0.94261, 1.24644, 1.09971, 1.09971, 0.84751, 1, 0.85273, 0.78032, 0.61584, 1.05425, 1.17914, 0.90957, 1.08665, 1.11593, 1.14169, 0.73381, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.86035, 0.85734, 0.75842, 0.75842, 0.75842, 0.75842, 0.95782, 0.95782, 0.95782, 0.95782, 0.97093, 1.03584, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.1714, 0.96924, 0.95132, 0.95132, 0.95132, 0.95132, 0.8287, 0.83968, 0.89049, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.93575, 0.92383, 0.9403, 0.9403, 0.9403, 0.9403, 0.8717, 0.8717, 0.8717, 0.8717, 1.00527, 1.01756, 1.05356, 1.05356, 1.05356, 1.05356, 1.05356, 1.24644, 0.95923, 1.01756, 1.01756, 1.01756, 1.01756, 0.96777, 1.05707, 0.96777, 0.96706, 0.91484, 0.96706, 0.91484, 0.96706, 0.91484, 0.85734, 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.97093, 1.0969, 0.97093, 1.05882, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.88198, 1.05882, 0.88198, 1.05882, 0.88198, 1.05882, 1, 1, 0.9831, 1.01756, 0.9831, 1.01756, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782, 1.09011, 0.95782, 0.8717, 0.84784, 1.11551, 0.71387, 1.09011, 1, 1, 0.99414, 0.84636, 1.09011, 1, 1, 0.84636, 1.0536, 0.84636, 0.94298, 0.84636, 1.23297, 1.03584, 1.01756, 1, 1, 1.03584, 1.01756, 1.00323, 1.03444, 1.01756, 0.96924, 1.05356, 0.96924, 1.05356, 0.96924, 1.05356, 0.93066, 0.98293, 0.82826, 1.04399, 1, 1, 0.82826, 1.04399, 0.79649, 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 1, 1, 0.85771, 1.17318, 0.85771, 1.21968, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.98965, 1.00068, 0.8287, 0.96777, 0.8287, 0.93365, 0.9043, 0.93365, 0.9043, 0.93365, 0.9043, 1.08571, 0.96927, 0.96706, 0.91484, 0.86035, 0.93575, 0.96924, 0.95923, 1, 1, 0.85771, 1.21968, 1.11437, 1.11437, 0.93109, 0.91202, 0.60411, 0.84164, 0.55572, 1.01173, 0.97361, 0.81818, 0.81818, 0.96635, 0.78032, 0.72727, 0.92366, 0.98601, 1.03405, 0.77968, 1.09799, 1.2, 0.96706, 0.85944, 0.85638, 0.96491, 0.75842, 0.93365, 0.9831, 0.96924, 0.95782, 0.86969, 0.94152, 1.07796, 1.03584, 0.78437, 0.96924, 0.98715, 0.83968, 0.83491, 0.85771, 0.8287, 0.94492, 0.88433, 0.9287, 1.0098, 0.95782, 0.8287, 1.0625, 0.98248, 1.03424, 1.2, 1.01071, 1.0625, 0.95246, 1.03809, 1.04912, 0.98248, 1.00221, 1.03424, 1.05443, 1.2, 1.04785, 0.99609, 1.00169, 1.05176, 0.99346, 1.05356, 0.9087, 1.03004, 0.95542, 0.93117, 1.23362, 1.01071, 1.07831, 1.02512, 1.05205, 1.03502, 1.2, 1.01071, 1.05356, 1.01071, 1.03502, 0.75842, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03719, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9403, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04021, 1, 1, 1, 1, 1, 1, 0.98965, 1.00068, 0.98965, 1.00068, 0.98965, 1.00068, 0.8287, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 1.03077, 1.03077, 1.03077, 1.03077, 1.13196, 1.13196, 1.13196, 0.67428, 0.67428, 1.16039, 0.73291, 1.20996, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87796, 0.96927, 1.01518, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.10539, 1.10539, 1.11358, 1.06967, 0.86279, 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86507, 1.1714, 1.18416, 1.14589, 0.69825, 0.97622, 1.9697, 1.24822, 1.24822, 1.17238, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18083, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10938, 1.10938, 1, 1, 1, 1.05425, 1.09971, 1.09971, 1.09971, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.SegoeuiRegularFactors = SegoeuiRegularFactors;\nconst SegoeuiRegularMetrics = {\n  lineHeight: 1.33008,\n  lineGap: 0\n};\nexports.SegoeuiRegularMetrics = SegoeuiRegularMetrics;\n\n/***/ }),\n/* 182 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PostScriptEvaluator = exports.PostScriptCompiler = exports.PDFFunctionFactory = void 0;\nexports.isPDFFunction = isPDFFunction;\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _ps_parser = __w_pdfjs_require__(183);\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _image_utils = __w_pdfjs_require__(184);\n\nclass PDFFunctionFactory {\n  constructor(_ref) {\n    let {\n      xref,\n      isEvalSupported = true\n    } = _ref;\n    this.xref = xref;\n    this.isEvalSupported = isEvalSupported !== false;\n  }\n\n  create(fn) {\n    const cachedFunction = this.getCached(fn);\n\n    if (cachedFunction) {\n      return cachedFunction;\n    }\n\n    const parsedFunction = PDFFunction.parse({\n      xref: this.xref,\n      isEvalSupported: this.isEvalSupported,\n      fn: fn instanceof _primitives.Ref ? this.xref.fetch(fn) : fn\n    });\n\n    this._cache(fn, parsedFunction);\n\n    return parsedFunction;\n  }\n\n  createFromArray(fnObj) {\n    const cachedFunction = this.getCached(fnObj);\n\n    if (cachedFunction) {\n      return cachedFunction;\n    }\n\n    const parsedFunction = PDFFunction.parseArray({\n      xref: this.xref,\n      isEvalSupported: this.isEvalSupported,\n      fnObj: fnObj instanceof _primitives.Ref ? this.xref.fetch(fnObj) : fnObj\n    });\n\n    this._cache(fnObj, parsedFunction);\n\n    return parsedFunction;\n  }\n\n  getCached(cacheKey) {\n    let fnRef;\n\n    if (cacheKey instanceof _primitives.Ref) {\n      fnRef = cacheKey;\n    } else if (cacheKey instanceof _primitives.Dict) {\n      fnRef = cacheKey.objId;\n    } else if (cacheKey instanceof _base_stream.BaseStream) {\n      fnRef = cacheKey.dict && cacheKey.dict.objId;\n    }\n\n    if (fnRef) {\n      const localFunction = this._localFunctionCache.getByRef(fnRef);\n\n      if (localFunction) {\n        return localFunction;\n      }\n    }\n\n    return null;\n  }\n\n  _cache(cacheKey, parsedFunction) {\n    if (!parsedFunction) {\n      throw new Error('PDFFunctionFactory._cache - expected \"parsedFunction\" argument.');\n    }\n\n    let fnRef;\n\n    if (cacheKey instanceof _primitives.Ref) {\n      fnRef = cacheKey;\n    } else if (cacheKey instanceof _primitives.Dict) {\n      fnRef = cacheKey.objId;\n    } else if (cacheKey instanceof _base_stream.BaseStream) {\n      fnRef = cacheKey.dict && cacheKey.dict.objId;\n    }\n\n    if (fnRef) {\n      this._localFunctionCache.set(null, fnRef, parsedFunction);\n    }\n  }\n\n  get _localFunctionCache() {\n    return (0, _util.shadow)(this, \"_localFunctionCache\", new _image_utils.LocalFunctionCache());\n  }\n\n}\n\nexports.PDFFunctionFactory = PDFFunctionFactory;\n\nfunction toNumberArray(arr) {\n  if (!Array.isArray(arr)) {\n    return null;\n  }\n\n  const length = arr.length;\n\n  for (let i = 0; i < length; i++) {\n    if (typeof arr[i] !== \"number\") {\n      const result = new Array(length);\n\n      for (let j = 0; j < length; j++) {\n        result[j] = +arr[j];\n      }\n\n      return result;\n    }\n  }\n\n  return arr;\n}\n\nclass PDFFunction {\n  static getSampleArray(size, outputSize, bps, stream) {\n    let i, ii;\n    let length = 1;\n\n    for (i = 0, ii = size.length; i < ii; i++) {\n      length *= size[i];\n    }\n\n    length *= outputSize;\n    const array = new Array(length);\n    let codeSize = 0;\n    let codeBuf = 0;\n    const sampleMul = 1.0 / (2.0 ** bps - 1);\n    const strBytes = stream.getBytes((length * bps + 7) / 8);\n    let strIdx = 0;\n\n    for (i = 0; i < length; i++) {\n      while (codeSize < bps) {\n        codeBuf <<= 8;\n        codeBuf |= strBytes[strIdx++];\n        codeSize += 8;\n      }\n\n      codeSize -= bps;\n      array[i] = (codeBuf >> codeSize) * sampleMul;\n      codeBuf &= (1 << codeSize) - 1;\n    }\n\n    return array;\n  }\n\n  static parse(_ref2) {\n    let {\n      xref,\n      isEvalSupported,\n      fn\n    } = _ref2;\n    const dict = fn.dict || fn;\n    const typeNum = dict.get(\"FunctionType\");\n\n    switch (typeNum) {\n      case 0:\n        return this.constructSampled({\n          xref,\n          isEvalSupported,\n          fn,\n          dict\n        });\n\n      case 1:\n        break;\n\n      case 2:\n        return this.constructInterpolated({\n          xref,\n          isEvalSupported,\n          dict\n        });\n\n      case 3:\n        return this.constructStiched({\n          xref,\n          isEvalSupported,\n          dict\n        });\n\n      case 4:\n        return this.constructPostScript({\n          xref,\n          isEvalSupported,\n          fn,\n          dict\n        });\n    }\n\n    throw new _util.FormatError(\"Unknown type of function\");\n  }\n\n  static parseArray(_ref3) {\n    let {\n      xref,\n      isEvalSupported,\n      fnObj\n    } = _ref3;\n\n    if (!Array.isArray(fnObj)) {\n      return this.parse({\n        xref,\n        isEvalSupported,\n        fn: fnObj\n      });\n    }\n\n    const fnArray = [];\n\n    for (let j = 0, jj = fnObj.length; j < jj; j++) {\n      fnArray.push(this.parse({\n        xref,\n        isEvalSupported,\n        fn: xref.fetchIfRef(fnObj[j])\n      }));\n    }\n\n    return function (src, srcOffset, dest, destOffset) {\n      for (let i = 0, ii = fnArray.length; i < ii; i++) {\n        fnArray[i](src, srcOffset, dest, destOffset + i);\n      }\n    };\n  }\n\n  static constructSampled(_ref4) {\n    let {\n      xref,\n      isEvalSupported,\n      fn,\n      dict\n    } = _ref4;\n\n    function toMultiArray(arr) {\n      const inputLength = arr.length;\n      const out = [];\n      let index = 0;\n\n      for (let i = 0; i < inputLength; i += 2) {\n        out[index++] = [arr[i], arr[i + 1]];\n      }\n\n      return out;\n    }\n\n    function interpolate(x, xmin, xmax, ymin, ymax) {\n      return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n    }\n\n    let domain = toNumberArray(dict.getArray(\"Domain\"));\n    let range = toNumberArray(dict.getArray(\"Range\"));\n\n    if (!domain || !range) {\n      throw new _util.FormatError(\"No domain or range\");\n    }\n\n    const inputSize = domain.length / 2;\n    const outputSize = range.length / 2;\n    domain = toMultiArray(domain);\n    range = toMultiArray(range);\n    const size = toNumberArray(dict.getArray(\"Size\"));\n    const bps = dict.get(\"BitsPerSample\");\n    const order = dict.get(\"Order\") || 1;\n\n    if (order !== 1) {\n      (0, _util.info)(\"No support for cubic spline interpolation: \" + order);\n    }\n\n    let encode = toNumberArray(dict.getArray(\"Encode\"));\n\n    if (!encode) {\n      encode = [];\n\n      for (let i = 0; i < inputSize; ++i) {\n        encode.push([0, size[i] - 1]);\n      }\n    } else {\n      encode = toMultiArray(encode);\n    }\n\n    let decode = toNumberArray(dict.getArray(\"Decode\"));\n\n    if (!decode) {\n      decode = range;\n    } else {\n      decode = toMultiArray(decode);\n    }\n\n    const samples = this.getSampleArray(size, outputSize, bps, fn);\n    return function constructSampledFn(src, srcOffset, dest, destOffset) {\n      const cubeVertices = 1 << inputSize;\n      const cubeN = new Float64Array(cubeVertices);\n      const cubeVertex = new Uint32Array(cubeVertices);\n      let i, j;\n\n      for (j = 0; j < cubeVertices; j++) {\n        cubeN[j] = 1;\n      }\n\n      let k = outputSize,\n          pos = 1;\n\n      for (i = 0; i < inputSize; ++i) {\n        const domain_2i = domain[i][0];\n        const domain_2i_1 = domain[i][1];\n        const xi = Math.min(Math.max(src[srcOffset + i], domain_2i), domain_2i_1);\n        let e = interpolate(xi, domain_2i, domain_2i_1, encode[i][0], encode[i][1]);\n        const size_i = size[i];\n        e = Math.min(Math.max(e, 0), size_i - 1);\n        const e0 = e < size_i - 1 ? Math.floor(e) : e - 1;\n        const n0 = e0 + 1 - e;\n        const n1 = e - e0;\n        const offset0 = e0 * k;\n        const offset1 = offset0 + k;\n\n        for (j = 0; j < cubeVertices; j++) {\n          if (j & pos) {\n            cubeN[j] *= n1;\n            cubeVertex[j] += offset1;\n          } else {\n            cubeN[j] *= n0;\n            cubeVertex[j] += offset0;\n          }\n        }\n\n        k *= size_i;\n        pos <<= 1;\n      }\n\n      for (j = 0; j < outputSize; ++j) {\n        let rj = 0;\n\n        for (i = 0; i < cubeVertices; i++) {\n          rj += samples[cubeVertex[i] + j] * cubeN[i];\n        }\n\n        rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n        dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n      }\n    };\n  }\n\n  static constructInterpolated(_ref5) {\n    let {\n      xref,\n      isEvalSupported,\n      dict\n    } = _ref5;\n    const c0 = toNumberArray(dict.getArray(\"C0\")) || [0];\n    const c1 = toNumberArray(dict.getArray(\"C1\")) || [1];\n    const n = dict.get(\"N\");\n    const diff = [];\n\n    for (let i = 0, ii = c0.length; i < ii; ++i) {\n      diff.push(c1[i] - c0[i]);\n    }\n\n    const length = diff.length;\n    return function constructInterpolatedFn(src, srcOffset, dest, destOffset) {\n      const x = n === 1 ? src[srcOffset] : src[srcOffset] ** n;\n\n      for (let j = 0; j < length; ++j) {\n        dest[destOffset + j] = c0[j] + x * diff[j];\n      }\n    };\n  }\n\n  static constructStiched(_ref6) {\n    let {\n      xref,\n      isEvalSupported,\n      dict\n    } = _ref6;\n    const domain = toNumberArray(dict.getArray(\"Domain\"));\n\n    if (!domain) {\n      throw new _util.FormatError(\"No domain\");\n    }\n\n    const inputSize = domain.length / 2;\n\n    if (inputSize !== 1) {\n      throw new _util.FormatError(\"Bad domain for stiched function\");\n    }\n\n    const fnRefs = dict.get(\"Functions\");\n    const fns = [];\n\n    for (let i = 0, ii = fnRefs.length; i < ii; ++i) {\n      fns.push(this.parse({\n        xref,\n        isEvalSupported,\n        fn: xref.fetchIfRef(fnRefs[i])\n      }));\n    }\n\n    const bounds = toNumberArray(dict.getArray(\"Bounds\"));\n    const encode = toNumberArray(dict.getArray(\"Encode\"));\n    const tmpBuf = new Float32Array(1);\n    return function constructStichedFn(src, srcOffset, dest, destOffset) {\n      const clip = function constructStichedFromIRClip(v, min, max) {\n        if (v > max) {\n          v = max;\n        } else if (v < min) {\n          v = min;\n        }\n\n        return v;\n      };\n\n      const v = clip(src[srcOffset], domain[0], domain[1]);\n      const length = bounds.length;\n      let i;\n\n      for (i = 0; i < length; ++i) {\n        if (v < bounds[i]) {\n          break;\n        }\n      }\n\n      let dmin = domain[0];\n\n      if (i > 0) {\n        dmin = bounds[i - 1];\n      }\n\n      let dmax = domain[1];\n\n      if (i < bounds.length) {\n        dmax = bounds[i];\n      }\n\n      const rmin = encode[2 * i];\n      const rmax = encode[2 * i + 1];\n      tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin);\n      fns[i](tmpBuf, 0, dest, destOffset);\n    };\n  }\n\n  static constructPostScript(_ref7) {\n    let {\n      xref,\n      isEvalSupported,\n      fn,\n      dict\n    } = _ref7;\n    const domain = toNumberArray(dict.getArray(\"Domain\"));\n    const range = toNumberArray(dict.getArray(\"Range\"));\n\n    if (!domain) {\n      throw new _util.FormatError(\"No domain.\");\n    }\n\n    if (!range) {\n      throw new _util.FormatError(\"No range.\");\n    }\n\n    const lexer = new _ps_parser.PostScriptLexer(fn);\n    const parser = new _ps_parser.PostScriptParser(lexer);\n    const code = parser.parse();\n\n    if (isEvalSupported && _util.FeatureTest.isEvalSupported) {\n      const compiled = new PostScriptCompiler().compile(code, domain, range);\n\n      if (compiled) {\n        return new Function(\"src\", \"srcOffset\", \"dest\", \"destOffset\", compiled);\n      }\n    }\n\n    (0, _util.info)(\"Unable to compile PS function\");\n    const numOutputs = range.length >> 1;\n    const numInputs = domain.length >> 1;\n    const evaluator = new PostScriptEvaluator(code);\n    const cache = Object.create(null);\n    const MAX_CACHE_SIZE = 2048 * 4;\n    let cache_available = MAX_CACHE_SIZE;\n    const tmpBuf = new Float32Array(numInputs);\n    return function constructPostScriptFn(src, srcOffset, dest, destOffset) {\n      let i, value;\n      let key = \"\";\n      const input = tmpBuf;\n\n      for (i = 0; i < numInputs; i++) {\n        value = src[srcOffset + i];\n        input[i] = value;\n        key += value + \"_\";\n      }\n\n      const cachedValue = cache[key];\n\n      if (cachedValue !== undefined) {\n        dest.set(cachedValue, destOffset);\n        return;\n      }\n\n      const output = new Float32Array(numOutputs);\n      const stack = evaluator.execute(input);\n      const stackIndex = stack.length - numOutputs;\n\n      for (i = 0; i < numOutputs; i++) {\n        value = stack[stackIndex + i];\n        let bound = range[i * 2];\n\n        if (value < bound) {\n          value = bound;\n        } else {\n          bound = range[i * 2 + 1];\n\n          if (value > bound) {\n            value = bound;\n          }\n        }\n\n        output[i] = value;\n      }\n\n      if (cache_available > 0) {\n        cache_available--;\n        cache[key] = output;\n      }\n\n      dest.set(output, destOffset);\n    };\n  }\n\n}\n\nfunction isPDFFunction(v) {\n  let fnDict;\n\n  if (typeof v !== \"object\") {\n    return false;\n  } else if (v instanceof _primitives.Dict) {\n    fnDict = v;\n  } else if (v instanceof _base_stream.BaseStream) {\n    fnDict = v.dict;\n  } else {\n    return false;\n  }\n\n  return fnDict.has(\"FunctionType\");\n}\n\nclass PostScriptStack {\n  static get MAX_STACK_SIZE() {\n    return (0, _util.shadow)(this, \"MAX_STACK_SIZE\", 100);\n  }\n\n  constructor(initialStack) {\n    this.stack = !initialStack ? [] : Array.prototype.slice.call(initialStack, 0);\n  }\n\n  push(value) {\n    if (this.stack.length >= PostScriptStack.MAX_STACK_SIZE) {\n      throw new Error(\"PostScript function stack overflow.\");\n    }\n\n    this.stack.push(value);\n  }\n\n  pop() {\n    if (this.stack.length <= 0) {\n      throw new Error(\"PostScript function stack underflow.\");\n    }\n\n    return this.stack.pop();\n  }\n\n  copy(n) {\n    if (this.stack.length + n >= PostScriptStack.MAX_STACK_SIZE) {\n      throw new Error(\"PostScript function stack overflow.\");\n    }\n\n    const stack = this.stack;\n\n    for (let i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n      stack.push(stack[i]);\n    }\n  }\n\n  index(n) {\n    this.push(this.stack[this.stack.length - n - 1]);\n  }\n\n  roll(n, p) {\n    const stack = this.stack;\n    const l = stack.length - n;\n    const r = stack.length - 1;\n    const c = l + (p - Math.floor(p / n) * n);\n\n    for (let i = l, j = r; i < j; i++, j--) {\n      const t = stack[i];\n      stack[i] = stack[j];\n      stack[j] = t;\n    }\n\n    for (let i = l, j = c - 1; i < j; i++, j--) {\n      const t = stack[i];\n      stack[i] = stack[j];\n      stack[j] = t;\n    }\n\n    for (let i = c, j = r; i < j; i++, j--) {\n      const t = stack[i];\n      stack[i] = stack[j];\n      stack[j] = t;\n    }\n  }\n\n}\n\nclass PostScriptEvaluator {\n  constructor(operators) {\n    this.operators = operators;\n  }\n\n  execute(initialStack) {\n    const stack = new PostScriptStack(initialStack);\n    let counter = 0;\n    const operators = this.operators;\n    const length = operators.length;\n    let operator, a, b;\n\n    while (counter < length) {\n      operator = operators[counter++];\n\n      if (typeof operator === \"number\") {\n        stack.push(operator);\n        continue;\n      }\n\n      switch (operator) {\n        case \"jz\":\n          b = stack.pop();\n          a = stack.pop();\n\n          if (!a) {\n            counter = b;\n          }\n\n          break;\n\n        case \"j\":\n          a = stack.pop();\n          counter = a;\n          break;\n\n        case \"abs\":\n          a = stack.pop();\n          stack.push(Math.abs(a));\n          break;\n\n        case \"add\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a + b);\n          break;\n\n        case \"and\":\n          b = stack.pop();\n          a = stack.pop();\n\n          if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n            stack.push(a && b);\n          } else {\n            stack.push(a & b);\n          }\n\n          break;\n\n        case \"atan\":\n          a = stack.pop();\n          stack.push(Math.atan(a));\n          break;\n\n        case \"bitshift\":\n          b = stack.pop();\n          a = stack.pop();\n\n          if (a > 0) {\n            stack.push(a << b);\n          } else {\n            stack.push(a >> b);\n          }\n\n          break;\n\n        case \"ceiling\":\n          a = stack.pop();\n          stack.push(Math.ceil(a));\n          break;\n\n        case \"copy\":\n          a = stack.pop();\n          stack.copy(a);\n          break;\n\n        case \"cos\":\n          a = stack.pop();\n          stack.push(Math.cos(a));\n          break;\n\n        case \"cvi\":\n          a = stack.pop() | 0;\n          stack.push(a);\n          break;\n\n        case \"cvr\":\n          break;\n\n        case \"div\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a / b);\n          break;\n\n        case \"dup\":\n          stack.copy(1);\n          break;\n\n        case \"eq\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a === b);\n          break;\n\n        case \"exch\":\n          stack.roll(2, 1);\n          break;\n\n        case \"exp\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a ** b);\n          break;\n\n        case \"false\":\n          stack.push(false);\n          break;\n\n        case \"floor\":\n          a = stack.pop();\n          stack.push(Math.floor(a));\n          break;\n\n        case \"ge\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a >= b);\n          break;\n\n        case \"gt\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a > b);\n          break;\n\n        case \"idiv\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a / b | 0);\n          break;\n\n        case \"index\":\n          a = stack.pop();\n          stack.index(a);\n          break;\n\n        case \"le\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a <= b);\n          break;\n\n        case \"ln\":\n          a = stack.pop();\n          stack.push(Math.log(a));\n          break;\n\n        case \"log\":\n          a = stack.pop();\n          stack.push(Math.log(a) / Math.LN10);\n          break;\n\n        case \"lt\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a < b);\n          break;\n\n        case \"mod\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a % b);\n          break;\n\n        case \"mul\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a * b);\n          break;\n\n        case \"ne\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a !== b);\n          break;\n\n        case \"neg\":\n          a = stack.pop();\n          stack.push(-a);\n          break;\n\n        case \"not\":\n          a = stack.pop();\n\n          if (typeof a === \"boolean\") {\n            stack.push(!a);\n          } else {\n            stack.push(~a);\n          }\n\n          break;\n\n        case \"or\":\n          b = stack.pop();\n          a = stack.pop();\n\n          if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n            stack.push(a || b);\n          } else {\n            stack.push(a | b);\n          }\n\n          break;\n\n        case \"pop\":\n          stack.pop();\n          break;\n\n        case \"roll\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.roll(a, b);\n          break;\n\n        case \"round\":\n          a = stack.pop();\n          stack.push(Math.round(a));\n          break;\n\n        case \"sin\":\n          a = stack.pop();\n          stack.push(Math.sin(a));\n          break;\n\n        case \"sqrt\":\n          a = stack.pop();\n          stack.push(Math.sqrt(a));\n          break;\n\n        case \"sub\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a - b);\n          break;\n\n        case \"true\":\n          stack.push(true);\n          break;\n\n        case \"truncate\":\n          a = stack.pop();\n          a = a < 0 ? Math.ceil(a) : Math.floor(a);\n          stack.push(a);\n          break;\n\n        case \"xor\":\n          b = stack.pop();\n          a = stack.pop();\n\n          if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n            stack.push(a !== b);\n          } else {\n            stack.push(a ^ b);\n          }\n\n          break;\n\n        default:\n          throw new _util.FormatError(`Unknown operator ${operator}`);\n      }\n    }\n\n    return stack.stack;\n  }\n\n}\n\nexports.PostScriptEvaluator = PostScriptEvaluator;\n\nclass AstNode {\n  constructor(type) {\n    this.type = type;\n  }\n\n  visit(visitor) {\n    (0, _util.unreachable)(\"abstract method\");\n  }\n\n}\n\nclass AstArgument extends AstNode {\n  constructor(index, min, max) {\n    super(\"args\");\n    this.index = index;\n    this.min = min;\n    this.max = max;\n  }\n\n  visit(visitor) {\n    visitor.visitArgument(this);\n  }\n\n}\n\nclass AstLiteral extends AstNode {\n  constructor(number) {\n    super(\"literal\");\n    this.number = number;\n    this.min = number;\n    this.max = number;\n  }\n\n  visit(visitor) {\n    visitor.visitLiteral(this);\n  }\n\n}\n\nclass AstBinaryOperation extends AstNode {\n  constructor(op, arg1, arg2, min, max) {\n    super(\"binary\");\n    this.op = op;\n    this.arg1 = arg1;\n    this.arg2 = arg2;\n    this.min = min;\n    this.max = max;\n  }\n\n  visit(visitor) {\n    visitor.visitBinaryOperation(this);\n  }\n\n}\n\nclass AstMin extends AstNode {\n  constructor(arg, max) {\n    super(\"max\");\n    this.arg = arg;\n    this.min = arg.min;\n    this.max = max;\n  }\n\n  visit(visitor) {\n    visitor.visitMin(this);\n  }\n\n}\n\nclass AstVariable extends AstNode {\n  constructor(index, min, max) {\n    super(\"var\");\n    this.index = index;\n    this.min = min;\n    this.max = max;\n  }\n\n  visit(visitor) {\n    visitor.visitVariable(this);\n  }\n\n}\n\nclass AstVariableDefinition extends AstNode {\n  constructor(variable, arg) {\n    super(\"definition\");\n    this.variable = variable;\n    this.arg = arg;\n  }\n\n  visit(visitor) {\n    visitor.visitVariableDefinition(this);\n  }\n\n}\n\nclass ExpressionBuilderVisitor {\n  constructor() {\n    this.parts = [];\n  }\n\n  visitArgument(arg) {\n    this.parts.push(\"Math.max(\", arg.min, \", Math.min(\", arg.max, \", src[srcOffset + \", arg.index, \"]))\");\n  }\n\n  visitVariable(variable) {\n    this.parts.push(\"v\", variable.index);\n  }\n\n  visitLiteral(literal) {\n    this.parts.push(literal.number);\n  }\n\n  visitBinaryOperation(operation) {\n    this.parts.push(\"(\");\n    operation.arg1.visit(this);\n    this.parts.push(\" \", operation.op, \" \");\n    operation.arg2.visit(this);\n    this.parts.push(\")\");\n  }\n\n  visitVariableDefinition(definition) {\n    this.parts.push(\"var \");\n    definition.variable.visit(this);\n    this.parts.push(\" = \");\n    definition.arg.visit(this);\n    this.parts.push(\";\");\n  }\n\n  visitMin(max) {\n    this.parts.push(\"Math.min(\");\n    max.arg.visit(this);\n    this.parts.push(\", \", max.max, \")\");\n  }\n\n  toString() {\n    return this.parts.join(\"\");\n  }\n\n}\n\nfunction buildAddOperation(num1, num2) {\n  if (num2.type === \"literal\" && num2.number === 0) {\n    return num1;\n  }\n\n  if (num1.type === \"literal\" && num1.number === 0) {\n    return num2;\n  }\n\n  if (num2.type === \"literal\" && num1.type === \"literal\") {\n    return new AstLiteral(num1.number + num2.number);\n  }\n\n  return new AstBinaryOperation(\"+\", num1, num2, num1.min + num2.min, num1.max + num2.max);\n}\n\nfunction buildMulOperation(num1, num2) {\n  if (num2.type === \"literal\") {\n    if (num2.number === 0) {\n      return new AstLiteral(0);\n    } else if (num2.number === 1) {\n      return num1;\n    } else if (num1.type === \"literal\") {\n      return new AstLiteral(num1.number * num2.number);\n    }\n  }\n\n  if (num1.type === \"literal\") {\n    if (num1.number === 0) {\n      return new AstLiteral(0);\n    } else if (num1.number === 1) {\n      return num2;\n    }\n  }\n\n  const min = Math.min(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n  const max = Math.max(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n  return new AstBinaryOperation(\"*\", num1, num2, min, max);\n}\n\nfunction buildSubOperation(num1, num2) {\n  if (num2.type === \"literal\") {\n    if (num2.number === 0) {\n      return num1;\n    } else if (num1.type === \"literal\") {\n      return new AstLiteral(num1.number - num2.number);\n    }\n  }\n\n  if (num2.type === \"binary\" && num2.op === \"-\" && num1.type === \"literal\" && num1.number === 1 && num2.arg1.type === \"literal\" && num2.arg1.number === 1) {\n    return num2.arg2;\n  }\n\n  return new AstBinaryOperation(\"-\", num1, num2, num1.min - num2.max, num1.max - num2.min);\n}\n\nfunction buildMinOperation(num1, max) {\n  if (num1.min >= max) {\n    return new AstLiteral(max);\n  } else if (num1.max <= max) {\n    return num1;\n  }\n\n  return new AstMin(num1, max);\n}\n\nclass PostScriptCompiler {\n  compile(code, domain, range) {\n    const stack = [];\n    const instructions = [];\n    const inputSize = domain.length >> 1,\n          outputSize = range.length >> 1;\n    let lastRegister = 0;\n    let n, j;\n    let num1, num2, ast1, ast2, tmpVar, item;\n\n    for (let i = 0; i < inputSize; i++) {\n      stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n    }\n\n    for (let i = 0, ii = code.length; i < ii; i++) {\n      item = code[i];\n\n      if (typeof item === \"number\") {\n        stack.push(new AstLiteral(item));\n        continue;\n      }\n\n      switch (item) {\n        case \"add\":\n          if (stack.length < 2) {\n            return null;\n          }\n\n          num2 = stack.pop();\n          num1 = stack.pop();\n          stack.push(buildAddOperation(num1, num2));\n          break;\n\n        case \"cvr\":\n          if (stack.length < 1) {\n            return null;\n          }\n\n          break;\n\n        case \"mul\":\n          if (stack.length < 2) {\n            return null;\n          }\n\n          num2 = stack.pop();\n          num1 = stack.pop();\n          stack.push(buildMulOperation(num1, num2));\n          break;\n\n        case \"sub\":\n          if (stack.length < 2) {\n            return null;\n          }\n\n          num2 = stack.pop();\n          num1 = stack.pop();\n          stack.push(buildSubOperation(num1, num2));\n          break;\n\n        case \"exch\":\n          if (stack.length < 2) {\n            return null;\n          }\n\n          ast1 = stack.pop();\n          ast2 = stack.pop();\n          stack.push(ast1, ast2);\n          break;\n\n        case \"pop\":\n          if (stack.length < 1) {\n            return null;\n          }\n\n          stack.pop();\n          break;\n\n        case \"index\":\n          if (stack.length < 1) {\n            return null;\n          }\n\n          num1 = stack.pop();\n\n          if (num1.type !== \"literal\") {\n            return null;\n          }\n\n          n = num1.number;\n\n          if (n < 0 || !Number.isInteger(n) || stack.length < n) {\n            return null;\n          }\n\n          ast1 = stack[stack.length - n - 1];\n\n          if (ast1.type === \"literal\" || ast1.type === \"var\") {\n            stack.push(ast1);\n            break;\n          }\n\n          tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n          stack[stack.length - n - 1] = tmpVar;\n          stack.push(tmpVar);\n          instructions.push(new AstVariableDefinition(tmpVar, ast1));\n          break;\n\n        case \"dup\":\n          if (stack.length < 1) {\n            return null;\n          }\n\n          if (typeof code[i + 1] === \"number\" && code[i + 2] === \"gt\" && code[i + 3] === i + 7 && code[i + 4] === \"jz\" && code[i + 5] === \"pop\" && code[i + 6] === code[i + 1]) {\n            num1 = stack.pop();\n            stack.push(buildMinOperation(num1, code[i + 1]));\n            i += 6;\n            break;\n          }\n\n          ast1 = stack.at(-1);\n\n          if (ast1.type === \"literal\" || ast1.type === \"var\") {\n            stack.push(ast1);\n            break;\n          }\n\n          tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n          stack[stack.length - 1] = tmpVar;\n          stack.push(tmpVar);\n          instructions.push(new AstVariableDefinition(tmpVar, ast1));\n          break;\n\n        case \"roll\":\n          if (stack.length < 2) {\n            return null;\n          }\n\n          num2 = stack.pop();\n          num1 = stack.pop();\n\n          if (num2.type !== \"literal\" || num1.type !== \"literal\") {\n            return null;\n          }\n\n          j = num2.number;\n          n = num1.number;\n\n          if (n <= 0 || !Number.isInteger(n) || !Number.isInteger(j) || stack.length < n) {\n            return null;\n          }\n\n          j = (j % n + n) % n;\n\n          if (j === 0) {\n            break;\n          }\n\n          Array.prototype.push.apply(stack, stack.splice(stack.length - n, n - j));\n          break;\n\n        default:\n          return null;\n      }\n    }\n\n    if (stack.length !== outputSize) {\n      return null;\n    }\n\n    const result = [];\n\n    for (const instruction of instructions) {\n      const statementBuilder = new ExpressionBuilderVisitor();\n      instruction.visit(statementBuilder);\n      result.push(statementBuilder.toString());\n    }\n\n    for (let i = 0, ii = stack.length; i < ii; i++) {\n      const expr = stack[i],\n            statementBuilder = new ExpressionBuilderVisitor();\n      expr.visit(statementBuilder);\n      const min = range[i * 2],\n            max = range[i * 2 + 1];\n      const out = [statementBuilder.toString()];\n\n      if (min > expr.min) {\n        out.unshift(\"Math.max(\", min, \", \");\n        out.push(\")\");\n      }\n\n      if (max < expr.max) {\n        out.unshift(\"Math.min(\", max, \", \");\n        out.push(\")\");\n      }\n\n      out.unshift(\"dest[destOffset + \", i, \"] = \");\n      out.push(\";\");\n      result.push(out.join(\"\"));\n    }\n\n    return result.join(\"\\n\");\n  }\n\n}\n\nexports.PostScriptCompiler = PostScriptCompiler;\n\n/***/ }),\n/* 183 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PostScriptParser = exports.PostScriptLexer = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nclass PostScriptParser {\n  constructor(lexer) {\n    this.lexer = lexer;\n    this.operators = [];\n    this.token = null;\n    this.prev = null;\n  }\n\n  nextToken() {\n    this.prev = this.token;\n    this.token = this.lexer.getToken();\n  }\n\n  accept(type) {\n    if (this.token.type === type) {\n      this.nextToken();\n      return true;\n    }\n\n    return false;\n  }\n\n  expect(type) {\n    if (this.accept(type)) {\n      return true;\n    }\n\n    throw new _util.FormatError(`Unexpected symbol: found ${this.token.type} expected ${type}.`);\n  }\n\n  parse() {\n    this.nextToken();\n    this.expect(PostScriptTokenTypes.LBRACE);\n    this.parseBlock();\n    this.expect(PostScriptTokenTypes.RBRACE);\n    return this.operators;\n  }\n\n  parseBlock() {\n    while (true) {\n      if (this.accept(PostScriptTokenTypes.NUMBER)) {\n        this.operators.push(this.prev.value);\n      } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n        this.operators.push(this.prev.value);\n      } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n        this.parseCondition();\n      } else {\n        return;\n      }\n    }\n  }\n\n  parseCondition() {\n    const conditionLocation = this.operators.length;\n    this.operators.push(null, null);\n    this.parseBlock();\n    this.expect(PostScriptTokenTypes.RBRACE);\n\n    if (this.accept(PostScriptTokenTypes.IF)) {\n      this.operators[conditionLocation] = this.operators.length;\n      this.operators[conditionLocation + 1] = \"jz\";\n    } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n      const jumpLocation = this.operators.length;\n      this.operators.push(null, null);\n      const endOfTrue = this.operators.length;\n      this.parseBlock();\n      this.expect(PostScriptTokenTypes.RBRACE);\n      this.expect(PostScriptTokenTypes.IFELSE);\n      this.operators[jumpLocation] = this.operators.length;\n      this.operators[jumpLocation + 1] = \"j\";\n      this.operators[conditionLocation] = endOfTrue;\n      this.operators[conditionLocation + 1] = \"jz\";\n    } else {\n      throw new _util.FormatError(\"PS Function: error parsing conditional.\");\n    }\n  }\n\n}\n\nexports.PostScriptParser = PostScriptParser;\nconst PostScriptTokenTypes = {\n  LBRACE: 0,\n  RBRACE: 1,\n  NUMBER: 2,\n  OPERATOR: 3,\n  IF: 4,\n  IFELSE: 5\n};\n\nclass PostScriptToken {\n  static get opCache() {\n    return (0, _util.shadow)(this, \"opCache\", Object.create(null));\n  }\n\n  constructor(type, value) {\n    this.type = type;\n    this.value = value;\n  }\n\n  static getOperator(op) {\n    const opValue = PostScriptToken.opCache[op];\n\n    if (opValue) {\n      return opValue;\n    }\n\n    return PostScriptToken.opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);\n  }\n\n  static get LBRACE() {\n    return (0, _util.shadow)(this, \"LBRACE\", new PostScriptToken(PostScriptTokenTypes.LBRACE, \"{\"));\n  }\n\n  static get RBRACE() {\n    return (0, _util.shadow)(this, \"RBRACE\", new PostScriptToken(PostScriptTokenTypes.RBRACE, \"}\"));\n  }\n\n  static get IF() {\n    return (0, _util.shadow)(this, \"IF\", new PostScriptToken(PostScriptTokenTypes.IF, \"IF\"));\n  }\n\n  static get IFELSE() {\n    return (0, _util.shadow)(this, \"IFELSE\", new PostScriptToken(PostScriptTokenTypes.IFELSE, \"IFELSE\"));\n  }\n\n}\n\nclass PostScriptLexer {\n  constructor(stream) {\n    this.stream = stream;\n    this.nextChar();\n    this.strBuf = [];\n  }\n\n  nextChar() {\n    return this.currentChar = this.stream.getByte();\n  }\n\n  getToken() {\n    let comment = false;\n    let ch = this.currentChar;\n\n    while (true) {\n      if (ch < 0) {\n        return _primitives.EOF;\n      }\n\n      if (comment) {\n        if (ch === 0x0a || ch === 0x0d) {\n          comment = false;\n        }\n      } else if (ch === 0x25) {\n        comment = true;\n      } else if (!(0, _core_utils.isWhiteSpace)(ch)) {\n        break;\n      }\n\n      ch = this.nextChar();\n    }\n\n    switch (ch | 0) {\n      case 0x30:\n      case 0x31:\n      case 0x32:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n        return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber());\n\n      case 0x7b:\n        this.nextChar();\n        return PostScriptToken.LBRACE;\n\n      case 0x7d:\n        this.nextChar();\n        return PostScriptToken.RBRACE;\n    }\n\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    strBuf[0] = String.fromCharCode(ch);\n\n    while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5a || ch >= 0x61 && ch <= 0x7a)) {\n      strBuf.push(String.fromCharCode(ch));\n    }\n\n    const str = strBuf.join(\"\");\n\n    switch (str.toLowerCase()) {\n      case \"if\":\n        return PostScriptToken.IF;\n\n      case \"ifelse\":\n        return PostScriptToken.IFELSE;\n\n      default:\n        return PostScriptToken.getOperator(str);\n    }\n  }\n\n  getNumber() {\n    let ch = this.currentChar;\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    strBuf[0] = String.fromCharCode(ch);\n\n    while ((ch = this.nextChar()) >= 0) {\n      if (ch >= 0x30 && ch <= 0x39 || ch === 0x2d || ch === 0x2e) {\n        strBuf.push(String.fromCharCode(ch));\n      } else {\n        break;\n      }\n    }\n\n    const value = parseFloat(strBuf.join(\"\"));\n\n    if (isNaN(value)) {\n      throw new _util.FormatError(`Invalid floating point number: ${value}`);\n    }\n\n    return value;\n  }\n\n}\n\nexports.PostScriptLexer = PostScriptLexer;\n\n/***/ }),\n/* 184 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.LocalTilingPatternCache = exports.LocalImageCache = exports.LocalGStateCache = exports.LocalFunctionCache = exports.LocalColorSpaceCache = exports.GlobalImageCache = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nclass BaseLocalCache {\n  constructor(options) {\n    if (this.constructor === BaseLocalCache) {\n      (0, _util.unreachable)(\"Cannot initialize BaseLocalCache.\");\n    }\n\n    this._onlyRefs = (options && options.onlyRefs) === true;\n\n    if (!this._onlyRefs) {\n      this._nameRefMap = new Map();\n      this._imageMap = new Map();\n    }\n\n    this._imageCache = new _primitives.RefSetCache();\n  }\n\n  getByName(name) {\n    if (this._onlyRefs) {\n      (0, _util.unreachable)(\"Should not call `getByName` method.\");\n    }\n\n    const ref = this._nameRefMap.get(name);\n\n    if (ref) {\n      return this.getByRef(ref);\n    }\n\n    return this._imageMap.get(name) || null;\n  }\n\n  getByRef(ref) {\n    return this._imageCache.get(ref) || null;\n  }\n\n  set(name, ref, data) {\n    (0, _util.unreachable)(\"Abstract method `set` called.\");\n  }\n\n}\n\nclass LocalImageCache extends BaseLocalCache {\n  set(name) {\n    let ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    let data = arguments.length > 2 ? arguments[2] : undefined;\n\n    if (typeof name !== \"string\") {\n      throw new Error('LocalImageCache.set - expected \"name\" argument.');\n    }\n\n    if (ref) {\n      if (this._imageCache.has(ref)) {\n        return;\n      }\n\n      this._nameRefMap.set(name, ref);\n\n      this._imageCache.put(ref, data);\n\n      return;\n    }\n\n    if (this._imageMap.has(name)) {\n      return;\n    }\n\n    this._imageMap.set(name, data);\n  }\n\n}\n\nexports.LocalImageCache = LocalImageCache;\n\nclass LocalColorSpaceCache extends BaseLocalCache {\n  set() {\n    let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    let ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    let data = arguments.length > 2 ? arguments[2] : undefined;\n\n    if (typeof name !== \"string\" && !ref) {\n      throw new Error('LocalColorSpaceCache.set - expected \"name\" and/or \"ref\" argument.');\n    }\n\n    if (ref) {\n      if (this._imageCache.has(ref)) {\n        return;\n      }\n\n      if (name !== null) {\n        this._nameRefMap.set(name, ref);\n      }\n\n      this._imageCache.put(ref, data);\n\n      return;\n    }\n\n    if (this._imageMap.has(name)) {\n      return;\n    }\n\n    this._imageMap.set(name, data);\n  }\n\n}\n\nexports.LocalColorSpaceCache = LocalColorSpaceCache;\n\nclass LocalFunctionCache extends BaseLocalCache {\n  constructor(options) {\n    super({\n      onlyRefs: true\n    });\n  }\n\n  set() {\n    let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    let ref = arguments.length > 1 ? arguments[1] : undefined;\n    let data = arguments.length > 2 ? arguments[2] : undefined;\n\n    if (!ref) {\n      throw new Error('LocalFunctionCache.set - expected \"ref\" argument.');\n    }\n\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n\n    this._imageCache.put(ref, data);\n  }\n\n}\n\nexports.LocalFunctionCache = LocalFunctionCache;\n\nclass LocalGStateCache extends BaseLocalCache {\n  set(name) {\n    let ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    let data = arguments.length > 2 ? arguments[2] : undefined;\n\n    if (typeof name !== \"string\") {\n      throw new Error('LocalGStateCache.set - expected \"name\" argument.');\n    }\n\n    if (ref) {\n      if (this._imageCache.has(ref)) {\n        return;\n      }\n\n      this._nameRefMap.set(name, ref);\n\n      this._imageCache.put(ref, data);\n\n      return;\n    }\n\n    if (this._imageMap.has(name)) {\n      return;\n    }\n\n    this._imageMap.set(name, data);\n  }\n\n}\n\nexports.LocalGStateCache = LocalGStateCache;\n\nclass LocalTilingPatternCache extends BaseLocalCache {\n  constructor(options) {\n    super({\n      onlyRefs: true\n    });\n  }\n\n  set() {\n    let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    let ref = arguments.length > 1 ? arguments[1] : undefined;\n    let data = arguments.length > 2 ? arguments[2] : undefined;\n\n    if (!ref) {\n      throw new Error('LocalTilingPatternCache.set - expected \"ref\" argument.');\n    }\n\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n\n    this._imageCache.put(ref, data);\n  }\n\n}\n\nexports.LocalTilingPatternCache = LocalTilingPatternCache;\n\nclass GlobalImageCache {\n  static get NUM_PAGES_THRESHOLD() {\n    return (0, _util.shadow)(this, \"NUM_PAGES_THRESHOLD\", 2);\n  }\n\n  static get MIN_IMAGES_TO_CACHE() {\n    return (0, _util.shadow)(this, \"MIN_IMAGES_TO_CACHE\", 10);\n  }\n\n  static get MAX_BYTE_SIZE() {\n    return (0, _util.shadow)(this, \"MAX_BYTE_SIZE\", 40e6);\n  }\n\n  constructor() {\n    this._refCache = new _primitives.RefSetCache();\n    this._imageCache = new _primitives.RefSetCache();\n  }\n\n  get _byteSize() {\n    let byteSize = 0;\n\n    for (const imageData of this._imageCache) {\n      byteSize += imageData.byteSize;\n    }\n\n    return byteSize;\n  }\n\n  get _cacheLimitReached() {\n    if (this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) {\n      return false;\n    }\n\n    if (this._byteSize < GlobalImageCache.MAX_BYTE_SIZE) {\n      return false;\n    }\n\n    return true;\n  }\n\n  shouldCache(ref, pageIndex) {\n    const pageIndexSet = this._refCache.get(ref);\n\n    const numPages = pageIndexSet ? pageIndexSet.size + (pageIndexSet.has(pageIndex) ? 0 : 1) : 1;\n\n    if (numPages < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n      return false;\n    }\n\n    if (!this._imageCache.has(ref) && this._cacheLimitReached) {\n      return false;\n    }\n\n    return true;\n  }\n\n  addPageIndex(ref, pageIndex) {\n    let pageIndexSet = this._refCache.get(ref);\n\n    if (!pageIndexSet) {\n      pageIndexSet = new Set();\n\n      this._refCache.put(ref, pageIndexSet);\n    }\n\n    pageIndexSet.add(pageIndex);\n  }\n\n  addByteSize(ref, byteSize) {\n    const imageData = this._imageCache.get(ref);\n\n    if (!imageData) {\n      return;\n    }\n\n    if (imageData.byteSize) {\n      return;\n    }\n\n    imageData.byteSize = byteSize;\n  }\n\n  getData(ref, pageIndex) {\n    const pageIndexSet = this._refCache.get(ref);\n\n    if (!pageIndexSet) {\n      return null;\n    }\n\n    if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n      return null;\n    }\n\n    const imageData = this._imageCache.get(ref);\n\n    if (!imageData) {\n      return null;\n    }\n\n    pageIndexSet.add(pageIndex);\n    return imageData;\n  }\n\n  setData(ref, data) {\n    if (!this._refCache.has(ref)) {\n      throw new Error('GlobalImageCache.setData - expected \"addPageIndex\" to have been called.');\n    }\n\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n\n    if (this._cacheLimitReached) {\n      (0, _util.warn)(\"GlobalImageCache.setData - cache limit reached.\");\n      return;\n    }\n\n    this._imageCache.put(ref, data);\n  }\n\n  clear() {\n    let onlyData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    if (!onlyData) {\n      this._refCache.clear();\n    }\n\n    this._imageCache.clear();\n  }\n\n}\n\nexports.GlobalImageCache = GlobalImageCache;\n\n/***/ }),\n/* 185 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.bidi = bidi;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst baseTypes = [\"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"S\", \"B\", \"S\", \"WS\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"B\", \"B\", \"S\", \"WS\", \"ON\", \"ON\", \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ES\", \"CS\", \"ES\", \"CS\", \"CS\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"CS\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"CS\", \"ON\", \"ET\", \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"ON\", \"ON\", \"BN\", \"ON\", \"ON\", \"ET\", \"ET\", \"EN\", \"EN\", \"ON\", \"L\", \"ON\", \"ON\", \"ON\", \"EN\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\"];\nconst arabicTypes = [\"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ON\", \"ON\", \"AL\", \"ET\", \"ET\", \"AL\", \"CS\", \"AL\", \"ON\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ET\", \"AN\", \"AN\", \"AL\", \"AL\", \"AL\", \"NSM\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\"];\n\nfunction isOdd(i) {\n  return (i & 1) !== 0;\n}\n\nfunction isEven(i) {\n  return (i & 1) === 0;\n}\n\nfunction findUnequal(arr, start, value) {\n  let j, jj;\n\n  for (j = start, jj = arr.length; j < jj; ++j) {\n    if (arr[j] !== value) {\n      return j;\n    }\n  }\n\n  return j;\n}\n\nfunction setValues(arr, start, end, value) {\n  for (let j = start; j < end; ++j) {\n    arr[j] = value;\n  }\n}\n\nfunction reverseValues(arr, start, end) {\n  for (let i = start, j = end - 1; i < j; ++i, --j) {\n    const temp = arr[i];\n    arr[i] = arr[j];\n    arr[j] = temp;\n  }\n}\n\nfunction createBidiText(str, isLTR) {\n  let vertical = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  let dir = \"ltr\";\n\n  if (vertical) {\n    dir = \"ttb\";\n  } else if (!isLTR) {\n    dir = \"rtl\";\n  }\n\n  return {\n    str,\n    dir\n  };\n}\n\nconst chars = [];\nconst types = [];\n\nfunction bidi(str) {\n  let startLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n  let vertical = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  let isLTR = true;\n  const strLength = str.length;\n\n  if (strLength === 0 || vertical) {\n    return createBidiText(str, isLTR, vertical);\n  }\n\n  chars.length = strLength;\n  types.length = strLength;\n  let numBidi = 0;\n  let i, ii;\n\n  for (i = 0; i < strLength; ++i) {\n    chars[i] = str.charAt(i);\n    const charCode = str.charCodeAt(i);\n    let charType = \"L\";\n\n    if (charCode <= 0x00ff) {\n      charType = baseTypes[charCode];\n    } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n      charType = \"R\";\n    } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n      charType = arabicTypes[charCode & 0xff];\n\n      if (!charType) {\n        (0, _util.warn)(\"Bidi: invalid Unicode character \" + charCode.toString(16));\n      }\n    } else if (0x0700 <= charCode && charCode <= 0x08ac) {\n      charType = \"AL\";\n    }\n\n    if (charType === \"R\" || charType === \"AL\" || charType === \"AN\") {\n      numBidi++;\n    }\n\n    types[i] = charType;\n  }\n\n  if (numBidi === 0) {\n    isLTR = true;\n    return createBidiText(str, isLTR);\n  }\n\n  if (startLevel === -1) {\n    if (numBidi / strLength < 0.3 && strLength > 4) {\n      isLTR = true;\n      startLevel = 0;\n    } else {\n      isLTR = false;\n      startLevel = 1;\n    }\n  }\n\n  const levels = [];\n\n  for (i = 0; i < strLength; ++i) {\n    levels[i] = startLevel;\n  }\n\n  const e = isOdd(startLevel) ? \"R\" : \"L\";\n  const sor = e;\n  const eor = sor;\n  let lastType = sor;\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"NSM\") {\n      types[i] = lastType;\n    } else {\n      lastType = types[i];\n    }\n  }\n\n  lastType = sor;\n  let t;\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === \"EN\") {\n      types[i] = lastType === \"AL\" ? \"AN\" : \"EN\";\n    } else if (t === \"R\" || t === \"L\" || t === \"AL\") {\n      lastType = t;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === \"AL\") {\n      types[i] = \"R\";\n    }\n  }\n\n  for (i = 1; i < strLength - 1; ++i) {\n    if (types[i] === \"ES\" && types[i - 1] === \"EN\" && types[i + 1] === \"EN\") {\n      types[i] = \"EN\";\n    }\n\n    if (types[i] === \"CS\" && (types[i - 1] === \"EN\" || types[i - 1] === \"AN\") && types[i + 1] === types[i - 1]) {\n      types[i] = types[i - 1];\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"EN\") {\n      for (let j = i - 1; j >= 0; --j) {\n        if (types[j] !== \"ET\") {\n          break;\n        }\n\n        types[j] = \"EN\";\n      }\n\n      for (let j = i + 1; j < strLength; ++j) {\n        if (types[j] !== \"ET\") {\n          break;\n        }\n\n        types[j] = \"EN\";\n      }\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === \"WS\" || t === \"ES\" || t === \"ET\" || t === \"CS\") {\n      types[i] = \"ON\";\n    }\n  }\n\n  lastType = sor;\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === \"EN\") {\n      types[i] = lastType === \"L\" ? \"L\" : \"EN\";\n    } else if (t === \"R\" || t === \"L\") {\n      lastType = t;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"ON\") {\n      const end = findUnequal(types, i + 1, \"ON\");\n      let before = sor;\n\n      if (i > 0) {\n        before = types[i - 1];\n      }\n\n      let after = eor;\n\n      if (end + 1 < strLength) {\n        after = types[end + 1];\n      }\n\n      if (before !== \"L\") {\n        before = \"R\";\n      }\n\n      if (after !== \"L\") {\n        after = \"R\";\n      }\n\n      if (before === after) {\n        setValues(types, i, end, before);\n      }\n\n      i = end - 1;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"ON\") {\n      types[i] = e;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (isEven(levels[i])) {\n      if (t === \"R\") {\n        levels[i] += 1;\n      } else if (t === \"AN\" || t === \"EN\") {\n        levels[i] += 2;\n      }\n    } else {\n      if (t === \"L\" || t === \"AN\" || t === \"EN\") {\n        levels[i] += 1;\n      }\n    }\n  }\n\n  let highestLevel = -1;\n  let lowestOddLevel = 99;\n  let level;\n\n  for (i = 0, ii = levels.length; i < ii; ++i) {\n    level = levels[i];\n\n    if (highestLevel < level) {\n      highestLevel = level;\n    }\n\n    if (lowestOddLevel > level && isOdd(level)) {\n      lowestOddLevel = level;\n    }\n  }\n\n  for (level = highestLevel; level >= lowestOddLevel; --level) {\n    let start = -1;\n\n    for (i = 0, ii = levels.length; i < ii; ++i) {\n      if (levels[i] < level) {\n        if (start >= 0) {\n          reverseValues(chars, start, i);\n          start = -1;\n        }\n      } else if (start < 0) {\n        start = i;\n      }\n    }\n\n    if (start >= 0) {\n      reverseValues(chars, start, levels.length);\n    }\n  }\n\n  for (i = 0, ii = chars.length; i < ii; ++i) {\n    const ch = chars[i];\n\n    if (ch === \"<\" || ch === \">\") {\n      chars[i] = \"\";\n    }\n  }\n\n  return createBidiText(chars.join(\"\"), isLTR);\n}\n\n/***/ }),\n/* 186 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.MurmurHash3_64 = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n  constructor(seed) {\n    this.h1 = seed ? seed & 0xffffffff : SEED;\n    this.h2 = seed ? seed & 0xffffffff : SEED;\n  }\n\n  update(input) {\n    let data, length;\n\n    if (typeof input === \"string\") {\n      data = new Uint8Array(input.length * 2);\n      length = 0;\n\n      for (let i = 0, ii = input.length; i < ii; i++) {\n        const code = input.charCodeAt(i);\n\n        if (code <= 0xff) {\n          data[length++] = code;\n        } else {\n          data[length++] = code >>> 8;\n          data[length++] = code & 0xff;\n        }\n      }\n    } else if ((0, _util.isArrayBuffer)(input)) {\n      data = input.slice();\n      length = data.byteLength;\n    } else {\n      throw new Error(\"Wrong data format in MurmurHash3_64_update. \" + \"Input must be a string or array.\");\n    }\n\n    const blockCounts = length >> 2;\n    const tailLength = length - blockCounts * 4;\n    const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n    let k1 = 0,\n        k2 = 0;\n    let h1 = this.h1,\n        h2 = this.h2;\n    const C1 = 0xcc9e2d51,\n          C2 = 0x1b873593;\n    const C1_LOW = C1 & MASK_LOW,\n          C2_LOW = C2 & MASK_LOW;\n\n    for (let i = 0; i < blockCounts; i++) {\n      if (i & 1) {\n        k1 = dataUint32[i];\n        k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n        k1 = k1 << 15 | k1 >>> 17;\n        k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n        h1 ^= k1;\n        h1 = h1 << 13 | h1 >>> 19;\n        h1 = h1 * 5 + 0xe6546b64;\n      } else {\n        k2 = dataUint32[i];\n        k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n        k2 = k2 << 15 | k2 >>> 17;\n        k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n        h2 ^= k2;\n        h2 = h2 << 13 | h2 >>> 19;\n        h2 = h2 * 5 + 0xe6546b64;\n      }\n    }\n\n    k1 = 0;\n\n    switch (tailLength) {\n      case 3:\n        k1 ^= data[blockCounts * 4 + 2] << 16;\n\n      case 2:\n        k1 ^= data[blockCounts * 4 + 1] << 8;\n\n      case 1:\n        k1 ^= data[blockCounts * 4];\n        k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n        k1 = k1 << 15 | k1 >>> 17;\n        k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n\n        if (blockCounts & 1) {\n          h1 ^= k1;\n        } else {\n          h2 ^= k1;\n        }\n\n    }\n\n    this.h1 = h1;\n    this.h2 = h2;\n  }\n\n  hexdigest() {\n    let h1 = this.h1,\n        h2 = this.h2;\n    h1 ^= h2 >>> 1;\n    h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n    h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n    h1 ^= h2 >>> 1;\n    h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n    h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n    h1 ^= h2 >>> 1;\n    const hex1 = (h1 >>> 0).toString(16),\n          hex2 = (h2 >>> 0).toString(16);\n    return hex1.padStart(8, \"0\") + hex2.padStart(8, \"0\");\n  }\n\n}\n\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 187 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.OperatorList = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction addState(parentState, pattern, checkFn, iterateFn, processFn) {\n  let state = parentState;\n\n  for (let i = 0, ii = pattern.length - 1; i < ii; i++) {\n    const item = pattern[i];\n    state = state[item] || (state[item] = []);\n  }\n\n  state[pattern.at(-1)] = {\n    checkFn,\n    iterateFn,\n    processFn\n  };\n}\n\nconst InitialState = [];\naddState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintInlineImageXObject, _util.OPS.restore], null, function iterateInlineImageGroup(context, i) {\n  const fnArray = context.fnArray;\n  const iFirstSave = context.iCurr - 3;\n  const pos = (i - iFirstSave) % 4;\n\n  switch (pos) {\n    case 0:\n      return fnArray[i] === _util.OPS.save;\n\n    case 1:\n      return fnArray[i] === _util.OPS.transform;\n\n    case 2:\n      return fnArray[i] === _util.OPS.paintInlineImageXObject;\n\n    case 3:\n      return fnArray[i] === _util.OPS.restore;\n  }\n\n  throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`);\n}, function foundInlineImageGroup(context, i) {\n  const MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n  const MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n  const MAX_WIDTH = 1000;\n  const IMAGE_PADDING = 1;\n  const fnArray = context.fnArray,\n        argsArray = context.argsArray;\n  const curr = context.iCurr;\n  const iFirstSave = curr - 3;\n  const iFirstTransform = curr - 2;\n  const iFirstPIIXO = curr - 1;\n  const count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);\n\n  if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n    return i - (i - iFirstSave) % 4;\n  }\n\n  let maxX = 0;\n  const map = [];\n  let maxLineHeight = 0;\n  let currentX = IMAGE_PADDING,\n      currentY = IMAGE_PADDING;\n\n  for (let q = 0; q < count; q++) {\n    const transform = argsArray[iFirstTransform + (q << 2)];\n    const img = argsArray[iFirstPIIXO + (q << 2)][0];\n\n    if (currentX + img.width > MAX_WIDTH) {\n      maxX = Math.max(maxX, currentX);\n      currentY += maxLineHeight + 2 * IMAGE_PADDING;\n      currentX = 0;\n      maxLineHeight = 0;\n    }\n\n    map.push({\n      transform,\n      x: currentX,\n      y: currentY,\n      w: img.width,\n      h: img.height\n    });\n    currentX += img.width + 2 * IMAGE_PADDING;\n    maxLineHeight = Math.max(maxLineHeight, img.height);\n  }\n\n  const imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n  const imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n  const imgData = new Uint8Array(imgWidth * imgHeight * 4);\n  const imgRowSize = imgWidth << 2;\n\n  for (let q = 0; q < count; q++) {\n    const data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n    const rowSize = map[q].w << 2;\n    let dataOffset = 0;\n    let offset = map[q].x + map[q].y * imgWidth << 2;\n    imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n\n    for (let k = 0, kk = map[q].h; k < kk; k++) {\n      imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n      dataOffset += rowSize;\n      offset += imgRowSize;\n    }\n\n    imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n\n    while (offset >= 0) {\n      data[offset - 4] = data[offset];\n      data[offset - 3] = data[offset + 1];\n      data[offset - 2] = data[offset + 2];\n      data[offset - 1] = data[offset + 3];\n      data[offset + rowSize] = data[offset + rowSize - 4];\n      data[offset + rowSize + 1] = data[offset + rowSize - 3];\n      data[offset + rowSize + 2] = data[offset + rowSize - 2];\n      data[offset + rowSize + 3] = data[offset + rowSize - 1];\n      offset -= imgRowSize;\n    }\n  }\n\n  fnArray.splice(iFirstSave, count * 4, _util.OPS.paintInlineImageXObjectGroup);\n  argsArray.splice(iFirstSave, count * 4, [{\n    width: imgWidth,\n    height: imgHeight,\n    kind: _util.ImageKind.RGBA_32BPP,\n    data: imgData\n  }, map]);\n  return iFirstSave + 1;\n});\naddState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageMaskXObject, _util.OPS.restore], null, function iterateImageMaskGroup(context, i) {\n  const fnArray = context.fnArray;\n  const iFirstSave = context.iCurr - 3;\n  const pos = (i - iFirstSave) % 4;\n\n  switch (pos) {\n    case 0:\n      return fnArray[i] === _util.OPS.save;\n\n    case 1:\n      return fnArray[i] === _util.OPS.transform;\n\n    case 2:\n      return fnArray[i] === _util.OPS.paintImageMaskXObject;\n\n    case 3:\n      return fnArray[i] === _util.OPS.restore;\n  }\n\n  throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`);\n}, function foundImageMaskGroup(context, i) {\n  const MIN_IMAGES_IN_MASKS_BLOCK = 10;\n  const MAX_IMAGES_IN_MASKS_BLOCK = 100;\n  const MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n  const fnArray = context.fnArray,\n        argsArray = context.argsArray;\n  const curr = context.iCurr;\n  const iFirstSave = curr - 3;\n  const iFirstTransform = curr - 2;\n  const iFirstPIMXO = curr - 1;\n  let count = Math.floor((i - iFirstSave) / 4);\n\n  if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n    return i - (i - iFirstSave) % 4;\n  }\n\n  let isSameImage = false;\n  let iTransform, transformArgs;\n  const firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n  const firstTransformArg0 = argsArray[iFirstTransform][0],\n        firstTransformArg1 = argsArray[iFirstTransform][1],\n        firstTransformArg2 = argsArray[iFirstTransform][2],\n        firstTransformArg3 = argsArray[iFirstTransform][3];\n\n  if (firstTransformArg1 === firstTransformArg2) {\n    isSameImage = true;\n    iTransform = iFirstTransform + 4;\n    let iPIMXO = iFirstPIMXO + 4;\n\n    for (let q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n      transformArgs = argsArray[iTransform];\n\n      if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== firstTransformArg1 || transformArgs[2] !== firstTransformArg2 || transformArgs[3] !== firstTransformArg3) {\n        if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n          isSameImage = false;\n        } else {\n          count = q;\n        }\n\n        break;\n      }\n    }\n  }\n\n  if (isSameImage) {\n    count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n    const positions = new Float32Array(count * 2);\n    iTransform = iFirstTransform;\n\n    for (let q = 0; q < count; q++, iTransform += 4) {\n      transformArgs = argsArray[iTransform];\n      positions[q << 1] = transformArgs[4];\n      positions[(q << 1) + 1] = transformArgs[5];\n    }\n\n    fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat);\n    argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg1, firstTransformArg2, firstTransformArg3, positions]);\n  } else {\n    count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n    const images = [];\n\n    for (let q = 0; q < count; q++) {\n      transformArgs = argsArray[iFirstTransform + (q << 2)];\n      const maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n      images.push({\n        data: maskParams.data,\n        width: maskParams.width,\n        height: maskParams.height,\n        interpolate: maskParams.interpolate,\n        count: maskParams.count,\n        transform: transformArgs\n      });\n    }\n\n    fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectGroup);\n    argsArray.splice(iFirstSave, count * 4, [images]);\n  }\n\n  return iFirstSave + 1;\n});\naddState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageXObject, _util.OPS.restore], function (context) {\n  const argsArray = context.argsArray;\n  const iFirstTransform = context.iCurr - 2;\n  return argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0;\n}, function iterateImageGroup(context, i) {\n  const fnArray = context.fnArray,\n        argsArray = context.argsArray;\n  const iFirstSave = context.iCurr - 3;\n  const pos = (i - iFirstSave) % 4;\n\n  switch (pos) {\n    case 0:\n      return fnArray[i] === _util.OPS.save;\n\n    case 1:\n      if (fnArray[i] !== _util.OPS.transform) {\n        return false;\n      }\n\n      const iFirstTransform = context.iCurr - 2;\n      const firstTransformArg0 = argsArray[iFirstTransform][0];\n      const firstTransformArg3 = argsArray[iFirstTransform][3];\n\n      if (argsArray[i][0] !== firstTransformArg0 || argsArray[i][1] !== 0 || argsArray[i][2] !== 0 || argsArray[i][3] !== firstTransformArg3) {\n        return false;\n      }\n\n      return true;\n\n    case 2:\n      if (fnArray[i] !== _util.OPS.paintImageXObject) {\n        return false;\n      }\n\n      const iFirstPIXO = context.iCurr - 1;\n      const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n\n      if (argsArray[i][0] !== firstPIXOArg0) {\n        return false;\n      }\n\n      return true;\n\n    case 3:\n      return fnArray[i] === _util.OPS.restore;\n  }\n\n  throw new Error(`iterateImageGroup - invalid pos: ${pos}`);\n}, function (context, i) {\n  const MIN_IMAGES_IN_BLOCK = 3;\n  const MAX_IMAGES_IN_BLOCK = 1000;\n  const fnArray = context.fnArray,\n        argsArray = context.argsArray;\n  const curr = context.iCurr;\n  const iFirstSave = curr - 3;\n  const iFirstTransform = curr - 2;\n  const iFirstPIXO = curr - 1;\n  const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n  const firstTransformArg0 = argsArray[iFirstTransform][0];\n  const firstTransformArg3 = argsArray[iFirstTransform][3];\n  const count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_BLOCK);\n\n  if (count < MIN_IMAGES_IN_BLOCK) {\n    return i - (i - iFirstSave) % 4;\n  }\n\n  const positions = new Float32Array(count * 2);\n  let iTransform = iFirstTransform;\n\n  for (let q = 0; q < count; q++, iTransform += 4) {\n    const transformArgs = argsArray[iTransform];\n    positions[q << 1] = transformArgs[4];\n    positions[(q << 1) + 1] = transformArgs[5];\n  }\n\n  const args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions];\n  fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageXObjectRepeat);\n  argsArray.splice(iFirstSave, count * 4, args);\n  return iFirstSave + 1;\n});\naddState(InitialState, [_util.OPS.beginText, _util.OPS.setFont, _util.OPS.setTextMatrix, _util.OPS.showText, _util.OPS.endText], null, function iterateShowTextGroup(context, i) {\n  const fnArray = context.fnArray,\n        argsArray = context.argsArray;\n  const iFirstSave = context.iCurr - 4;\n  const pos = (i - iFirstSave) % 5;\n\n  switch (pos) {\n    case 0:\n      return fnArray[i] === _util.OPS.beginText;\n\n    case 1:\n      return fnArray[i] === _util.OPS.setFont;\n\n    case 2:\n      return fnArray[i] === _util.OPS.setTextMatrix;\n\n    case 3:\n      if (fnArray[i] !== _util.OPS.showText) {\n        return false;\n      }\n\n      const iFirstSetFont = context.iCurr - 3;\n      const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n      const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n\n      if (argsArray[i][0] !== firstSetFontArg0 || argsArray[i][1] !== firstSetFontArg1) {\n        return false;\n      }\n\n      return true;\n\n    case 4:\n      return fnArray[i] === _util.OPS.endText;\n  }\n\n  throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`);\n}, function (context, i) {\n  const MIN_CHARS_IN_BLOCK = 3;\n  const MAX_CHARS_IN_BLOCK = 1000;\n  const fnArray = context.fnArray,\n        argsArray = context.argsArray;\n  const curr = context.iCurr;\n  const iFirstBeginText = curr - 4;\n  const iFirstSetFont = curr - 3;\n  const iFirstSetTextMatrix = curr - 2;\n  const iFirstShowText = curr - 1;\n  const iFirstEndText = curr;\n  const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n  const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n  let count = Math.min(Math.floor((i - iFirstBeginText) / 5), MAX_CHARS_IN_BLOCK);\n\n  if (count < MIN_CHARS_IN_BLOCK) {\n    return i - (i - iFirstBeginText) % 5;\n  }\n\n  let iFirst = iFirstBeginText;\n\n  if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) {\n    count++;\n    iFirst -= 5;\n  }\n\n  let iEndText = iFirst + 4;\n\n  for (let q = 1; q < count; q++) {\n    fnArray.splice(iEndText, 3);\n    argsArray.splice(iEndText, 3);\n    iEndText += 2;\n  }\n\n  return iEndText + 1;\n});\n\nclass NullOptimizer {\n  constructor(queue) {\n    this.queue = queue;\n  }\n\n  _optimize() {}\n\n  push(fn, args) {\n    this.queue.fnArray.push(fn);\n    this.queue.argsArray.push(args);\n\n    this._optimize();\n  }\n\n  flush() {}\n\n  reset() {}\n\n}\n\nclass QueueOptimizer extends NullOptimizer {\n  constructor(queue) {\n    super(queue);\n    this.state = null;\n    this.context = {\n      iCurr: 0,\n      fnArray: queue.fnArray,\n      argsArray: queue.argsArray\n    };\n    this.match = null;\n    this.lastProcessed = 0;\n  }\n\n  _optimize() {\n    const fnArray = this.queue.fnArray;\n    let i = this.lastProcessed,\n        ii = fnArray.length;\n    let state = this.state;\n    let match = this.match;\n\n    if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n      this.lastProcessed = ii;\n      return;\n    }\n\n    const context = this.context;\n\n    while (i < ii) {\n      if (match) {\n        const iterate = (0, match.iterateFn)(context, i);\n\n        if (iterate) {\n          i++;\n          continue;\n        }\n\n        i = (0, match.processFn)(context, i + 1);\n        ii = fnArray.length;\n        match = null;\n        state = null;\n\n        if (i >= ii) {\n          break;\n        }\n      }\n\n      state = (state || InitialState)[fnArray[i]];\n\n      if (!state || Array.isArray(state)) {\n        i++;\n        continue;\n      }\n\n      context.iCurr = i;\n      i++;\n\n      if (state.checkFn && !(0, state.checkFn)(context)) {\n        state = null;\n        continue;\n      }\n\n      match = state;\n      state = null;\n    }\n\n    this.state = state;\n    this.match = match;\n    this.lastProcessed = i;\n  }\n\n  flush() {\n    while (this.match) {\n      const length = this.queue.fnArray.length;\n      this.lastProcessed = (0, this.match.processFn)(this.context, length);\n      this.match = null;\n      this.state = null;\n\n      this._optimize();\n    }\n  }\n\n  reset() {\n    this.state = null;\n    this.match = null;\n    this.lastProcessed = 0;\n  }\n\n}\n\nclass OperatorList {\n  static get CHUNK_SIZE() {\n    return (0, _util.shadow)(this, \"CHUNK_SIZE\", 1000);\n  }\n\n  static get CHUNK_SIZE_ABOUT() {\n    return (0, _util.shadow)(this, \"CHUNK_SIZE_ABOUT\", this.CHUNK_SIZE - 5);\n  }\n\n  constructor() {\n    let intent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n    let streamSink = arguments.length > 1 ? arguments[1] : undefined;\n    this._streamSink = streamSink;\n    this.fnArray = [];\n    this.argsArray = [];\n\n    if (streamSink && !(intent & _util.RenderingIntentFlag.OPLIST)) {\n      this.optimizer = new QueueOptimizer(this);\n    } else {\n      this.optimizer = new NullOptimizer(this);\n    }\n\n    this.dependencies = new Set();\n    this._totalLength = 0;\n    this.weight = 0;\n    this._resolved = streamSink ? null : Promise.resolve();\n  }\n\n  get length() {\n    return this.argsArray.length;\n  }\n\n  get ready() {\n    return this._resolved || this._streamSink.ready;\n  }\n\n  get totalLength() {\n    return this._totalLength + this.length;\n  }\n\n  addOp(fn, args) {\n    this.optimizer.push(fn, args);\n    this.weight++;\n\n    if (this._streamSink) {\n      if (this.weight >= OperatorList.CHUNK_SIZE) {\n        this.flush();\n      } else if (this.weight >= OperatorList.CHUNK_SIZE_ABOUT && (fn === _util.OPS.restore || fn === _util.OPS.endText)) {\n        this.flush();\n      }\n    }\n  }\n\n  addImageOps(fn, args, optionalContent) {\n    if (optionalContent !== undefined) {\n      this.addOp(_util.OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n\n    this.addOp(fn, args);\n\n    if (optionalContent !== undefined) {\n      this.addOp(_util.OPS.endMarkedContent, []);\n    }\n  }\n\n  addDependency(dependency) {\n    if (this.dependencies.has(dependency)) {\n      return;\n    }\n\n    this.dependencies.add(dependency);\n    this.addOp(_util.OPS.dependency, [dependency]);\n  }\n\n  addDependencies(dependencies) {\n    for (const dependency of dependencies) {\n      this.addDependency(dependency);\n    }\n  }\n\n  addOpList(opList) {\n    if (!(opList instanceof OperatorList)) {\n      (0, _util.warn)('addOpList - ignoring invalid \"opList\" parameter.');\n      return;\n    }\n\n    for (const dependency of opList.dependencies) {\n      this.dependencies.add(dependency);\n    }\n\n    for (let i = 0, ii = opList.length; i < ii; i++) {\n      this.addOp(opList.fnArray[i], opList.argsArray[i]);\n    }\n  }\n\n  getIR() {\n    return {\n      fnArray: this.fnArray,\n      argsArray: this.argsArray,\n      length: this.length\n    };\n  }\n\n  get _transfers() {\n    const transfers = [];\n    const {\n      fnArray,\n      argsArray,\n      length\n    } = this;\n\n    for (let i = 0; i < length; i++) {\n      switch (fnArray[i]) {\n        case _util.OPS.paintInlineImageXObject:\n        case _util.OPS.paintInlineImageXObjectGroup:\n        case _util.OPS.paintImageMaskXObject:\n          const arg = argsArray[i][0];\n\n          if (!arg.cached && arg.data && arg.data.buffer instanceof ArrayBuffer) {\n            transfers.push(arg.data.buffer);\n          }\n\n          break;\n      }\n    }\n\n    return transfers;\n  }\n\n  flush() {\n    let lastChunk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    let separateAnnots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    this.optimizer.flush();\n    const length = this.length;\n    this._totalLength += length;\n\n    this._streamSink.enqueue({\n      fnArray: this.fnArray,\n      argsArray: this.argsArray,\n      lastChunk,\n      separateAnnots,\n      length\n    }, 1, this._transfers);\n\n    this.dependencies.clear();\n    this.fnArray.length = 0;\n    this.argsArray.length = 0;\n    this.weight = 0;\n    this.optimizer.reset();\n  }\n\n}\n\nexports.OperatorList = OperatorList;\n\n/***/ }),\n/* 188 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PDFImage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _image_utils = __w_pdfjs_require__(189);\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _colorspace = __w_pdfjs_require__(139);\n\nvar _decode_stream = __w_pdfjs_require__(144);\n\nvar _jpeg_stream = __w_pdfjs_require__(152);\n\nvar _jpx = __w_pdfjs_require__(155);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nfunction decodeAndClamp(value, addend, coefficient, max) {\n  value = addend + value * coefficient;\n\n  if (value < 0) {\n    value = 0;\n  } else if (value > max) {\n    value = max;\n  }\n\n  return value;\n}\n\nfunction resizeImageMask(src, bpc, w1, h1, w2, h2) {\n  const length = w2 * h2;\n  let dest;\n\n  if (bpc <= 8) {\n    dest = new Uint8Array(length);\n  } else if (bpc <= 16) {\n    dest = new Uint16Array(length);\n  } else {\n    dest = new Uint32Array(length);\n  }\n\n  const xRatio = w1 / w2;\n  const yRatio = h1 / h2;\n  let i,\n      j,\n      py,\n      newIndex = 0,\n      oldIndex;\n  const xScaled = new Uint16Array(w2);\n  const w1Scanline = w1;\n\n  for (i = 0; i < w2; i++) {\n    xScaled[i] = Math.floor(i * xRatio);\n  }\n\n  for (i = 0; i < h2; i++) {\n    py = Math.floor(i * yRatio) * w1Scanline;\n\n    for (j = 0; j < w2; j++) {\n      oldIndex = py + xScaled[j];\n      dest[newIndex++] = src[oldIndex];\n    }\n  }\n\n  return dest;\n}\n\nclass PDFImage {\n  constructor(_ref) {\n    let {\n      xref,\n      res,\n      image,\n      isInline = false,\n      smask = null,\n      mask = null,\n      isMask = false,\n      pdfFunctionFactory,\n      localColorSpaceCache\n    } = _ref;\n    this.image = image;\n    const dict = image.dict;\n    const filter = dict.get(\"F\", \"Filter\");\n    let filterName;\n\n    if (filter instanceof _primitives.Name) {\n      filterName = filter.name;\n    } else if (Array.isArray(filter)) {\n      const filterZero = xref.fetchIfRef(filter[0]);\n\n      if (filterZero instanceof _primitives.Name) {\n        filterName = filterZero.name;\n      }\n    }\n\n    switch (filterName) {\n      case \"JPXDecode\":\n        const jpxImage = new _jpx.JpxImage();\n        jpxImage.parseImageProperties(image.stream);\n        image.stream.reset();\n        image.width = jpxImage.width;\n        image.height = jpxImage.height;\n        image.bitsPerComponent = jpxImage.bitsPerComponent;\n        image.numComps = jpxImage.componentsCount;\n        break;\n\n      case \"JBIG2Decode\":\n        image.bitsPerComponent = 1;\n        image.numComps = 1;\n        break;\n    }\n\n    let width = dict.get(\"W\", \"Width\");\n    let height = dict.get(\"H\", \"Height\");\n\n    if (Number.isInteger(image.width) && image.width > 0 && Number.isInteger(image.height) && image.height > 0 && (image.width !== width || image.height !== height)) {\n      (0, _util.warn)(\"PDFImage - using the Width/Height of the image data, \" + \"rather than the image dictionary.\");\n      width = image.width;\n      height = image.height;\n    }\n\n    if (width < 1 || height < 1) {\n      throw new _util.FormatError(`Invalid image width: ${width} or height: ${height}`);\n    }\n\n    this.width = width;\n    this.height = height;\n    this.interpolate = dict.get(\"I\", \"Interpolate\");\n    this.imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n    this.matte = dict.get(\"Matte\") || false;\n    let bitsPerComponent = image.bitsPerComponent;\n\n    if (!bitsPerComponent) {\n      bitsPerComponent = dict.get(\"BPC\", \"BitsPerComponent\");\n\n      if (!bitsPerComponent) {\n        if (this.imageMask) {\n          bitsPerComponent = 1;\n        } else {\n          throw new _util.FormatError(`Bits per component missing in image: ${this.imageMask}`);\n        }\n      }\n    }\n\n    this.bpc = bitsPerComponent;\n\n    if (!this.imageMask) {\n      let colorSpace = dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\");\n\n      if (!colorSpace) {\n        (0, _util.info)(\"JPX images (which do not require color spaces)\");\n\n        switch (image.numComps) {\n          case 1:\n            colorSpace = _primitives.Name.get(\"DeviceGray\");\n            break;\n\n          case 3:\n            colorSpace = _primitives.Name.get(\"DeviceRGB\");\n            break;\n\n          case 4:\n            colorSpace = _primitives.Name.get(\"DeviceCMYK\");\n            break;\n\n          default:\n            throw new Error(`JPX images with ${image.numComps} color components not supported.`);\n        }\n      }\n\n      this.colorSpace = _colorspace.ColorSpace.parse({\n        cs: colorSpace,\n        xref,\n        resources: isInline ? res : null,\n        pdfFunctionFactory,\n        localColorSpaceCache\n      });\n      this.numComps = this.colorSpace.numComps;\n    }\n\n    this.decode = dict.getArray(\"D\", \"Decode\");\n    this.needsDecode = false;\n\n    if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent) || isMask && !_colorspace.ColorSpace.isDefaultDecode(this.decode, 1))) {\n      this.needsDecode = true;\n      const max = (1 << bitsPerComponent) - 1;\n      this.decodeCoefficients = [];\n      this.decodeAddends = [];\n      const isIndexed = this.colorSpace && this.colorSpace.name === \"Indexed\";\n\n      for (let i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n        const dmin = this.decode[i];\n        const dmax = this.decode[i + 1];\n        this.decodeCoefficients[j] = isIndexed ? (dmax - dmin) / max : dmax - dmin;\n        this.decodeAddends[j] = isIndexed ? dmin : max * dmin;\n      }\n    }\n\n    if (smask) {\n      this.smask = new PDFImage({\n        xref,\n        res,\n        image: smask,\n        isInline,\n        pdfFunctionFactory,\n        localColorSpaceCache\n      });\n    } else if (mask) {\n      if (mask instanceof _base_stream.BaseStream) {\n        const maskDict = mask.dict,\n              imageMask = maskDict.get(\"IM\", \"ImageMask\");\n\n        if (!imageMask) {\n          (0, _util.warn)(\"Ignoring /Mask in image without /ImageMask.\");\n        } else {\n          this.mask = new PDFImage({\n            xref,\n            res,\n            image: mask,\n            isInline,\n            isMask: true,\n            pdfFunctionFactory,\n            localColorSpaceCache\n          });\n        }\n      } else {\n        this.mask = mask;\n      }\n    }\n  }\n\n  static async buildImage(_ref2) {\n    let {\n      xref,\n      res,\n      image,\n      isInline = false,\n      pdfFunctionFactory,\n      localColorSpaceCache\n    } = _ref2;\n    const imageData = image;\n    let smaskData = null;\n    let maskData = null;\n    const smask = image.dict.get(\"SMask\");\n    const mask = image.dict.get(\"Mask\");\n\n    if (smask) {\n      if (smask instanceof _base_stream.BaseStream) {\n        smaskData = smask;\n      } else {\n        (0, _util.warn)(\"Unsupported /SMask format.\");\n      }\n    } else if (mask) {\n      if (mask instanceof _base_stream.BaseStream || Array.isArray(mask)) {\n        maskData = mask;\n      } else {\n        (0, _util.warn)(\"Unsupported /Mask format.\");\n      }\n    }\n\n    return new PDFImage({\n      xref,\n      res,\n      image: imageData,\n      isInline,\n      smask: smaskData,\n      mask: maskData,\n      pdfFunctionFactory,\n      localColorSpaceCache\n    });\n  }\n\n  static createRawMask(_ref3) {\n    let {\n      imgArray,\n      width,\n      height,\n      imageIsFromDecodeStream,\n      inverseDecode,\n      interpolate\n    } = _ref3;\n    const computedLength = (width + 7 >> 3) * height;\n    const actualLength = imgArray.byteLength;\n    const haveFullData = computedLength === actualLength;\n    let data, i;\n\n    if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {\n      data = imgArray;\n    } else if (!inverseDecode) {\n      data = new Uint8Array(imgArray);\n    } else {\n      data = new Uint8Array(computedLength);\n      data.set(imgArray);\n      data.fill(0xff, actualLength);\n    }\n\n    if (inverseDecode) {\n      for (i = 0; i < actualLength; i++) {\n        data[i] ^= 0xff;\n      }\n    }\n\n    return {\n      data,\n      width,\n      height,\n      interpolate\n    };\n  }\n\n  static createMask(_ref4) {\n    let {\n      imgArray,\n      width,\n      height,\n      imageIsFromDecodeStream,\n      inverseDecode,\n      interpolate\n    } = _ref4;\n    const isSingleOpaquePixel = width === 1 && height === 1 && inverseDecode === (imgArray.length === 0 || !!(imgArray[0] & 128));\n\n    if (isSingleOpaquePixel) {\n      return {\n        isSingleOpaquePixel\n      };\n    }\n\n    if (_util.FeatureTest.isOffscreenCanvasSupported) {\n      const canvas = new OffscreenCanvas(width, height);\n      const ctx = canvas.getContext(\"2d\");\n      const imgData = ctx.createImageData(width, height);\n      (0, _image_utils.applyMaskImageData)({\n        src: imgArray,\n        dest: imgData.data,\n        width,\n        height,\n        inverseDecode\n      });\n      ctx.putImageData(imgData, 0, 0);\n      const bitmap = canvas.transferToImageBitmap();\n      return {\n        data: null,\n        width,\n        height,\n        interpolate,\n        bitmap\n      };\n    }\n\n    return this.createRawMask({\n      imgArray,\n      width,\n      height,\n      inverseDecode,\n      imageIsFromDecodeStream,\n      interpolate\n    });\n  }\n\n  get drawWidth() {\n    return Math.max(this.width, this.smask && this.smask.width || 0, this.mask && this.mask.width || 0);\n  }\n\n  get drawHeight() {\n    return Math.max(this.height, this.smask && this.smask.height || 0, this.mask && this.mask.height || 0);\n  }\n\n  decodeBuffer(buffer) {\n    const bpc = this.bpc;\n    const numComps = this.numComps;\n    const decodeAddends = this.decodeAddends;\n    const decodeCoefficients = this.decodeCoefficients;\n    const max = (1 << bpc) - 1;\n    let i, ii;\n\n    if (bpc === 1) {\n      for (i = 0, ii = buffer.length; i < ii; i++) {\n        buffer[i] = +!buffer[i];\n      }\n\n      return;\n    }\n\n    let index = 0;\n\n    for (i = 0, ii = this.width * this.height; i < ii; i++) {\n      for (let j = 0; j < numComps; j++) {\n        buffer[index] = decodeAndClamp(buffer[index], decodeAddends[j], decodeCoefficients[j], max);\n        index++;\n      }\n    }\n  }\n\n  getComponents(buffer) {\n    const bpc = this.bpc;\n\n    if (bpc === 8) {\n      return buffer;\n    }\n\n    const width = this.width;\n    const height = this.height;\n    const numComps = this.numComps;\n    const length = width * height * numComps;\n    let bufferPos = 0;\n    let output;\n\n    if (bpc <= 8) {\n      output = new Uint8Array(length);\n    } else if (bpc <= 16) {\n      output = new Uint16Array(length);\n    } else {\n      output = new Uint32Array(length);\n    }\n\n    const rowComps = width * numComps;\n    const max = (1 << bpc) - 1;\n    let i = 0,\n        ii,\n        buf;\n\n    if (bpc === 1) {\n      let mask, loop1End, loop2End;\n\n      for (let j = 0; j < height; j++) {\n        loop1End = i + (rowComps & ~7);\n        loop2End = i + rowComps;\n\n        while (i < loop1End) {\n          buf = buffer[bufferPos++];\n          output[i] = buf >> 7 & 1;\n          output[i + 1] = buf >> 6 & 1;\n          output[i + 2] = buf >> 5 & 1;\n          output[i + 3] = buf >> 4 & 1;\n          output[i + 4] = buf >> 3 & 1;\n          output[i + 5] = buf >> 2 & 1;\n          output[i + 6] = buf >> 1 & 1;\n          output[i + 7] = buf & 1;\n          i += 8;\n        }\n\n        if (i < loop2End) {\n          buf = buffer[bufferPos++];\n          mask = 128;\n\n          while (i < loop2End) {\n            output[i++] = +!!(buf & mask);\n            mask >>= 1;\n          }\n        }\n      }\n    } else {\n      let bits = 0;\n      buf = 0;\n\n      for (i = 0, ii = length; i < ii; ++i) {\n        if (i % rowComps === 0) {\n          buf = 0;\n          bits = 0;\n        }\n\n        while (bits < bpc) {\n          buf = buf << 8 | buffer[bufferPos++];\n          bits += 8;\n        }\n\n        const remainingBits = bits - bpc;\n        let value = buf >> remainingBits;\n\n        if (value < 0) {\n          value = 0;\n        } else if (value > max) {\n          value = max;\n        }\n\n        output[i] = value;\n        buf &= (1 << remainingBits) - 1;\n        bits = remainingBits;\n      }\n    }\n\n    return output;\n  }\n\n  fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n    const smask = this.smask;\n    const mask = this.mask;\n    let alphaBuf, sw, sh, i, ii, j;\n\n    if (smask) {\n      sw = smask.width;\n      sh = smask.height;\n      alphaBuf = new Uint8ClampedArray(sw * sh);\n      smask.fillGrayBuffer(alphaBuf);\n\n      if (sw !== width || sh !== height) {\n        alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height);\n      }\n    } else if (mask) {\n      if (mask instanceof PDFImage) {\n        sw = mask.width;\n        sh = mask.height;\n        alphaBuf = new Uint8ClampedArray(sw * sh);\n        mask.numComps = 1;\n        mask.fillGrayBuffer(alphaBuf);\n\n        for (i = 0, ii = sw * sh; i < ii; ++i) {\n          alphaBuf[i] = 255 - alphaBuf[i];\n        }\n\n        if (sw !== width || sh !== height) {\n          alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height);\n        }\n      } else if (Array.isArray(mask)) {\n        alphaBuf = new Uint8ClampedArray(width * height);\n        const numComps = this.numComps;\n\n        for (i = 0, ii = width * height; i < ii; ++i) {\n          let opacity = 0;\n          const imageOffset = i * numComps;\n\n          for (j = 0; j < numComps; ++j) {\n            const color = image[imageOffset + j];\n            const maskOffset = j * 2;\n\n            if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n              opacity = 255;\n              break;\n            }\n          }\n\n          alphaBuf[i] = opacity;\n        }\n      } else {\n        throw new _util.FormatError(\"Unknown mask format.\");\n      }\n    }\n\n    if (alphaBuf) {\n      for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n        rgbaBuf[j] = alphaBuf[i];\n      }\n    } else {\n      for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n        rgbaBuf[j] = 255;\n      }\n    }\n  }\n\n  undoPreblend(buffer, width, height) {\n    const matte = this.smask && this.smask.matte;\n\n    if (!matte) {\n      return;\n    }\n\n    const matteRgb = this.colorSpace.getRgb(matte, 0);\n    const matteR = matteRgb[0];\n    const matteG = matteRgb[1];\n    const matteB = matteRgb[2];\n    const length = width * height * 4;\n\n    for (let i = 0; i < length; i += 4) {\n      const alpha = buffer[i + 3];\n\n      if (alpha === 0) {\n        buffer[i] = 255;\n        buffer[i + 1] = 255;\n        buffer[i + 2] = 255;\n        continue;\n      }\n\n      const k = 255 / alpha;\n      buffer[i] = (buffer[i] - matteR) * k + matteR;\n      buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG;\n      buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;\n    }\n  }\n\n  createImageData() {\n    let forceRGBA = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    const drawWidth = this.drawWidth;\n    const drawHeight = this.drawHeight;\n    const imgData = {\n      width: drawWidth,\n      height: drawHeight,\n      interpolate: this.interpolate,\n      kind: 0,\n      data: null\n    };\n    const numComps = this.numComps;\n    const originalWidth = this.width;\n    const originalHeight = this.height;\n    const bpc = this.bpc;\n    const rowBytes = originalWidth * numComps * bpc + 7 >> 3;\n\n    if (!forceRGBA) {\n      let kind;\n\n      if (this.colorSpace.name === \"DeviceGray\" && bpc === 1) {\n        kind = _util.ImageKind.GRAYSCALE_1BPP;\n      } else if (this.colorSpace.name === \"DeviceRGB\" && bpc === 8 && !this.needsDecode) {\n        kind = _util.ImageKind.RGB_24BPP;\n      }\n\n      if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) {\n        imgData.kind = kind;\n        imgData.data = this.getImageBytes(originalHeight * rowBytes, {});\n\n        if (this.needsDecode) {\n          (0, _util.assert)(kind === _util.ImageKind.GRAYSCALE_1BPP, \"PDFImage.createImageData: The image must be grayscale.\");\n          const buffer = imgData.data;\n\n          for (let i = 0, ii = buffer.length; i < ii; i++) {\n            buffer[i] ^= 0xff;\n          }\n        }\n\n        return imgData;\n      }\n\n      if (this.image instanceof _jpeg_stream.JpegStream && !this.smask && !this.mask) {\n        let imageLength = originalHeight * rowBytes;\n\n        switch (this.colorSpace.name) {\n          case \"DeviceGray\":\n            imageLength *= 3;\n\n          case \"DeviceRGB\":\n          case \"DeviceCMYK\":\n            imgData.kind = _util.ImageKind.RGB_24BPP;\n            imgData.data = this.getImageBytes(imageLength, {\n              drawWidth,\n              drawHeight,\n              forceRGB: true\n            });\n            return imgData;\n        }\n      }\n    }\n\n    const imgArray = this.getImageBytes(originalHeight * rowBytes, {\n      internal: true\n    });\n    const actualHeight = 0 | imgArray.length / rowBytes * drawHeight / originalHeight;\n    const comps = this.getComponents(imgArray);\n    let alpha01, maybeUndoPreblend;\n\n    if (!forceRGBA && !this.smask && !this.mask) {\n      imgData.kind = _util.ImageKind.RGB_24BPP;\n      imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 3);\n      alpha01 = 0;\n      maybeUndoPreblend = false;\n    } else {\n      imgData.kind = _util.ImageKind.RGBA_32BPP;\n      imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 4);\n      alpha01 = 1;\n      maybeUndoPreblend = true;\n      this.fillOpacity(imgData.data, drawWidth, drawHeight, actualHeight, comps);\n    }\n\n    if (this.needsDecode) {\n      this.decodeBuffer(comps);\n    }\n\n    this.colorSpace.fillRgb(imgData.data, originalWidth, originalHeight, drawWidth, drawHeight, actualHeight, bpc, comps, alpha01);\n\n    if (maybeUndoPreblend) {\n      this.undoPreblend(imgData.data, drawWidth, actualHeight);\n    }\n\n    return imgData;\n  }\n\n  fillGrayBuffer(buffer) {\n    const numComps = this.numComps;\n\n    if (numComps !== 1) {\n      throw new _util.FormatError(`Reading gray scale from a color image: ${numComps}`);\n    }\n\n    const width = this.width;\n    const height = this.height;\n    const bpc = this.bpc;\n    const rowBytes = width * numComps * bpc + 7 >> 3;\n    const imgArray = this.getImageBytes(height * rowBytes, {\n      internal: true\n    });\n    const comps = this.getComponents(imgArray);\n    let i, length;\n\n    if (bpc === 1) {\n      length = width * height;\n\n      if (this.needsDecode) {\n        for (i = 0; i < length; ++i) {\n          buffer[i] = comps[i] - 1 & 255;\n        }\n      } else {\n        for (i = 0; i < length; ++i) {\n          buffer[i] = -comps[i] & 255;\n        }\n      }\n\n      return;\n    }\n\n    if (this.needsDecode) {\n      this.decodeBuffer(comps);\n    }\n\n    length = width * height;\n    const scale = 255 / ((1 << bpc) - 1);\n\n    for (i = 0; i < length; ++i) {\n      buffer[i] = scale * comps[i];\n    }\n  }\n\n  getImageBytes(length, _ref5) {\n    let {\n      drawWidth,\n      drawHeight,\n      forceRGB = false,\n      internal = false\n    } = _ref5;\n    this.image.reset();\n    this.image.drawWidth = drawWidth || this.width;\n    this.image.drawHeight = drawHeight || this.height;\n    this.image.forceRGB = !!forceRGB;\n    const imageBytes = this.image.getBytes(length);\n\n    if (internal || this.image instanceof _decode_stream.DecodeStream) {\n      return imageBytes;\n    }\n\n    (0, _util.assert)(imageBytes instanceof Uint8Array, 'PDFImage.getImageBytes: Unsupported \"imageBytes\" type.');\n    return new Uint8Array(imageBytes);\n  }\n\n}\n\nexports.PDFImage = PDFImage;\n\n/***/ }),\n/* 189 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.applyMaskImageData = applyMaskImageData;\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction applyMaskImageData(_ref) {\n  let {\n    src,\n    srcPos = 0,\n    dest,\n    destPos = 0,\n    width,\n    height,\n    inverseDecode = false\n  } = _ref;\n  const opaque = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n  const [zeroMapping, oneMapping] = !inverseDecode ? [opaque, 0] : [0, opaque];\n  const widthInSource = width >> 3;\n  const widthRemainder = width & 7;\n  const srcLength = src.length;\n  dest = new Uint32Array(dest.buffer);\n\n  for (let i = 0; i < height; i++) {\n    for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n      const elem = srcPos < srcLength ? src[srcPos] : 255;\n      dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n    }\n\n    if (widthRemainder === 0) {\n      continue;\n    }\n\n    const elem = srcPos < srcLength ? src[srcPos++] : 255;\n\n    for (let j = 0; j < widthRemainder; j++) {\n      dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;\n    }\n  }\n\n  return {\n    srcPos,\n    destPos\n  };\n}\n\n/***/ }),\n/* 190 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.incrementalUpdate = incrementalUpdate;\nexports.writeDict = writeDict;\nexports.writeObject = writeObject;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _xml_parser = __w_pdfjs_require__(191);\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _crypto = __w_pdfjs_require__(192);\n\nfunction writeObject(ref, obj, buffer, transform) {\n  buffer.push(`${ref.num} ${ref.gen} obj\\n`);\n\n  if (obj instanceof _primitives.Dict) {\n    writeDict(obj, buffer, transform);\n  } else if (obj instanceof _base_stream.BaseStream) {\n    writeStream(obj, buffer, transform);\n  }\n\n  buffer.push(\"\\nendobj\\n\");\n}\n\nfunction writeDict(dict, buffer, transform) {\n  buffer.push(\"<<\");\n\n  for (const key of dict.getKeys()) {\n    buffer.push(` /${(0, _core_utils.escapePDFName)(key)} `);\n    writeValue(dict.getRaw(key), buffer, transform);\n  }\n\n  buffer.push(\">>\");\n}\n\nfunction writeStream(stream, buffer, transform) {\n  writeDict(stream.dict, buffer, transform);\n  buffer.push(\" stream\\n\");\n  let string = stream.getString();\n\n  if (transform !== null) {\n    string = transform.encryptString(string);\n  }\n\n  buffer.push(string, \"\\nendstream\\n\");\n}\n\nfunction writeArray(array, buffer, transform) {\n  buffer.push(\"[\");\n  let first = true;\n\n  for (const val of array) {\n    if (!first) {\n      buffer.push(\" \");\n    } else {\n      first = false;\n    }\n\n    writeValue(val, buffer, transform);\n  }\n\n  buffer.push(\"]\");\n}\n\nfunction writeValue(value, buffer, transform) {\n  if (value instanceof _primitives.Name) {\n    buffer.push(`/${(0, _core_utils.escapePDFName)(value.name)}`);\n  } else if (value instanceof _primitives.Ref) {\n    buffer.push(`${value.num} ${value.gen} R`);\n  } else if (Array.isArray(value)) {\n    writeArray(value, buffer, transform);\n  } else if (typeof value === \"string\") {\n    if (transform !== null) {\n      value = transform.encryptString(value);\n    }\n\n    buffer.push(`(${(0, _util.escapeString)(value)})`);\n  } else if (typeof value === \"number\") {\n    buffer.push((0, _core_utils.numberToString)(value));\n  } else if (typeof value === \"boolean\") {\n    buffer.push(value.toString());\n  } else if (value instanceof _primitives.Dict) {\n    writeDict(value, buffer, transform);\n  } else if (value instanceof _base_stream.BaseStream) {\n    writeStream(value, buffer, transform);\n  } else if (value === null) {\n    buffer.push(\"null\");\n  } else {\n    (0, _util.warn)(`Unhandled value in writer: ${typeof value}, please file a bug.`);\n  }\n}\n\nfunction writeInt(number, size, offset, buffer) {\n  for (let i = size + offset - 1; i > offset - 1; i--) {\n    buffer[i] = number & 0xff;\n    number >>= 8;\n  }\n\n  return offset + size;\n}\n\nfunction writeString(string, offset, buffer) {\n  for (let i = 0, len = string.length; i < len; i++) {\n    buffer[offset + i] = string.charCodeAt(i) & 0xff;\n  }\n}\n\nfunction computeMD5(filesize, xrefInfo) {\n  const time = Math.floor(Date.now() / 1000);\n  const filename = xrefInfo.filename || \"\";\n  const md5Buffer = [time.toString(), filename, filesize.toString()];\n  let md5BufferLen = md5Buffer.reduce((a, str) => a + str.length, 0);\n\n  for (const value of Object.values(xrefInfo.info)) {\n    md5Buffer.push(value);\n    md5BufferLen += value.length;\n  }\n\n  const array = new Uint8Array(md5BufferLen);\n  let offset = 0;\n\n  for (const str of md5Buffer) {\n    writeString(str, offset, array);\n    offset += str.length;\n  }\n\n  return (0, _util.bytesToString)((0, _crypto.calculateMD5)(array));\n}\n\nfunction writeXFADataForAcroform(str, newRefs) {\n  const xml = new _xml_parser.SimpleXMLParser({\n    hasAttributes: true\n  }).parseFromString(str);\n\n  for (const {\n    xfa\n  } of newRefs) {\n    if (!xfa) {\n      continue;\n    }\n\n    const {\n      path,\n      value\n    } = xfa;\n\n    if (!path) {\n      continue;\n    }\n\n    const node = xml.documentElement.searchNode((0, _core_utils.parseXFAPath)(path), 0);\n\n    if (node) {\n      if (Array.isArray(value)) {\n        node.childNodes = value.map(val => new _xml_parser.SimpleDOMNode(\"value\", val));\n      } else {\n        node.childNodes = [new _xml_parser.SimpleDOMNode(\"#text\", value)];\n      }\n    } else {\n      (0, _util.warn)(`Node not found for path: ${path}`);\n    }\n  }\n\n  const buffer = [];\n  xml.documentElement.dump(buffer);\n  return buffer.join(\"\");\n}\n\nfunction updateXFA(_ref) {\n  let {\n    xfaData,\n    xfaDatasetsRef,\n    hasXfaDatasetsEntry,\n    acroFormRef,\n    acroForm,\n    newRefs,\n    xref,\n    xrefInfo\n  } = _ref;\n\n  if (xref === null) {\n    return;\n  }\n\n  if (!hasXfaDatasetsEntry) {\n    if (!acroFormRef) {\n      (0, _util.warn)(\"XFA - Cannot save it\");\n      return;\n    }\n\n    const oldXfa = acroForm.get(\"XFA\");\n    const newXfa = oldXfa.slice();\n    newXfa.splice(2, 0, \"datasets\");\n    newXfa.splice(3, 0, xfaDatasetsRef);\n    acroForm.set(\"XFA\", newXfa);\n    const encrypt = xref.encrypt;\n    let transform = null;\n\n    if (encrypt) {\n      transform = encrypt.createCipherTransform(acroFormRef.num, acroFormRef.gen);\n    }\n\n    const buffer = [`${acroFormRef.num} ${acroFormRef.gen} obj\\n`];\n    writeDict(acroForm, buffer, transform);\n    buffer.push(\"\\n\");\n    acroForm.set(\"XFA\", oldXfa);\n    newRefs.push({\n      ref: acroFormRef,\n      data: buffer.join(\"\")\n    });\n  }\n\n  if (xfaData === null) {\n    const datasets = xref.fetchIfRef(xfaDatasetsRef);\n    xfaData = writeXFADataForAcroform(datasets.getString(), newRefs);\n  }\n\n  const encrypt = xref.encrypt;\n\n  if (encrypt) {\n    const transform = encrypt.createCipherTransform(xfaDatasetsRef.num, xfaDatasetsRef.gen);\n    xfaData = transform.encryptString(xfaData);\n  }\n\n  const data = `${xfaDatasetsRef.num} ${xfaDatasetsRef.gen} obj\\n` + `<< /Type /EmbeddedFile /Length ${xfaData.length}>>\\nstream\\n` + xfaData + \"\\nendstream\\nendobj\\n\";\n  newRefs.push({\n    ref: xfaDatasetsRef,\n    data\n  });\n}\n\nfunction incrementalUpdate(_ref2) {\n  let {\n    originalData,\n    xrefInfo,\n    newRefs,\n    xref = null,\n    hasXfa = false,\n    xfaDatasetsRef = null,\n    hasXfaDatasetsEntry = false,\n    acroFormRef = null,\n    acroForm = null,\n    xfaData = null\n  } = _ref2;\n\n  if (hasXfa) {\n    updateXFA({\n      xfaData,\n      xfaDatasetsRef,\n      hasXfaDatasetsEntry,\n      acroFormRef,\n      acroForm,\n      newRefs,\n      xref,\n      xrefInfo\n    });\n  }\n\n  const newXref = new _primitives.Dict(null);\n  const refForXrefTable = xrefInfo.newRef;\n  let buffer, baseOffset;\n  const lastByte = originalData.at(-1);\n\n  if (lastByte === 0x0a || lastByte === 0x0d) {\n    buffer = [];\n    baseOffset = originalData.length;\n  } else {\n    buffer = [\"\\n\"];\n    baseOffset = originalData.length + 1;\n  }\n\n  newXref.set(\"Size\", refForXrefTable.num + 1);\n  newXref.set(\"Prev\", xrefInfo.startXRef);\n  newXref.set(\"Type\", _primitives.Name.get(\"XRef\"));\n\n  if (xrefInfo.rootRef !== null) {\n    newXref.set(\"Root\", xrefInfo.rootRef);\n  }\n\n  if (xrefInfo.infoRef !== null) {\n    newXref.set(\"Info\", xrefInfo.infoRef);\n  }\n\n  if (xrefInfo.encryptRef !== null) {\n    newXref.set(\"Encrypt\", xrefInfo.encryptRef);\n  }\n\n  newRefs.push({\n    ref: refForXrefTable,\n    data: \"\"\n  });\n  newRefs = newRefs.sort((a, b) => {\n    return a.ref.num - b.ref.num;\n  });\n  const xrefTableData = [[0, 1, 0xffff]];\n  const indexes = [0, 1];\n  let maxOffset = 0;\n\n  for (const {\n    ref,\n    data\n  } of newRefs) {\n    maxOffset = Math.max(maxOffset, baseOffset);\n    xrefTableData.push([1, baseOffset, Math.min(ref.gen, 0xffff)]);\n    baseOffset += data.length;\n    indexes.push(ref.num, 1);\n    buffer.push(data);\n  }\n\n  newXref.set(\"Index\", indexes);\n\n  if (Array.isArray(xrefInfo.fileIds) && xrefInfo.fileIds.length > 0) {\n    const md5 = computeMD5(baseOffset, xrefInfo);\n    newXref.set(\"ID\", [xrefInfo.fileIds[0], md5]);\n  }\n\n  const offsetSize = Math.ceil(Math.log2(maxOffset) / 8);\n  const sizes = [1, offsetSize, 2];\n  const structSize = sizes[0] + sizes[1] + sizes[2];\n  const tableLength = structSize * xrefTableData.length;\n  newXref.set(\"W\", sizes);\n  newXref.set(\"Length\", tableLength);\n  buffer.push(`${refForXrefTable.num} ${refForXrefTable.gen} obj\\n`);\n  writeDict(newXref, buffer, null);\n  buffer.push(\" stream\\n\");\n  const bufferLen = buffer.reduce((a, str) => a + str.length, 0);\n  const footer = `\\nendstream\\nendobj\\nstartxref\\n${baseOffset}\\n%%EOF\\n`;\n  const array = new Uint8Array(originalData.length + bufferLen + tableLength + footer.length);\n  array.set(originalData);\n  let offset = originalData.length;\n\n  for (const str of buffer) {\n    writeString(str, offset, array);\n    offset += str.length;\n  }\n\n  for (const [type, objOffset, gen] of xrefTableData) {\n    offset = writeInt(type, sizes[0], offset, array);\n    offset = writeInt(objOffset, sizes[1], offset, array);\n    offset = writeInt(gen, sizes[2], offset, array);\n  }\n\n  writeString(footer, offset, array);\n  return array;\n}\n\n/***/ }),\n/* 191 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XMLParserErrorCode = exports.XMLParserBase = exports.SimpleXMLParser = exports.SimpleDOMNode = void 0;\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nconst XMLParserErrorCode = {\n  NoError: 0,\n  EndOfDocument: -1,\n  UnterminatedCdat: -2,\n  UnterminatedXmlDeclaration: -3,\n  UnterminatedDoctypeDeclaration: -4,\n  UnterminatedComment: -5,\n  MalformedElement: -6,\n  OutOfMemory: -7,\n  UnterminatedAttributeValue: -8,\n  UnterminatedElement: -9,\n  ElementNeverBegun: -10\n};\nexports.XMLParserErrorCode = XMLParserErrorCode;\n\nfunction isWhitespace(s, index) {\n  const ch = s[index];\n  return ch === \" \" || ch === \"\\n\" || ch === \"\\r\" || ch === \"\\t\";\n}\n\nfunction isWhitespaceString(s) {\n  for (let i = 0, ii = s.length; i < ii; i++) {\n    if (!isWhitespace(s, i)) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nclass XMLParserBase {\n  _resolveEntities(s) {\n    return s.replace(/&([^;]+);/g, (all, entity) => {\n      if (entity.substring(0, 2) === \"#x\") {\n        return String.fromCodePoint(parseInt(entity.substring(2), 16));\n      } else if (entity.substring(0, 1) === \"#\") {\n        return String.fromCodePoint(parseInt(entity.substring(1), 10));\n      }\n\n      switch (entity) {\n        case \"lt\":\n          return \"<\";\n\n        case \"gt\":\n          return \">\";\n\n        case \"amp\":\n          return \"&\";\n\n        case \"quot\":\n          return '\"';\n\n        case \"apos\":\n          return \"'\";\n      }\n\n      return this.onResolveEntity(entity);\n    });\n  }\n\n  _parseContent(s, start) {\n    const attributes = [];\n    let pos = start;\n\n    function skipWs() {\n      while (pos < s.length && isWhitespace(s, pos)) {\n        ++pos;\n      }\n    }\n\n    while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"/\") {\n      ++pos;\n    }\n\n    const name = s.substring(start, pos);\n    skipWs();\n\n    while (pos < s.length && s[pos] !== \">\" && s[pos] !== \"/\" && s[pos] !== \"?\") {\n      skipWs();\n      let attrName = \"\",\n          attrValue = \"\";\n\n      while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n        attrName += s[pos];\n        ++pos;\n      }\n\n      skipWs();\n\n      if (s[pos] !== \"=\") {\n        return null;\n      }\n\n      ++pos;\n      skipWs();\n      const attrEndChar = s[pos];\n\n      if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n        return null;\n      }\n\n      const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n\n      if (attrEndIndex < 0) {\n        return null;\n      }\n\n      attrValue = s.substring(pos, attrEndIndex);\n      attributes.push({\n        name: attrName,\n        value: this._resolveEntities(attrValue)\n      });\n      pos = attrEndIndex + 1;\n      skipWs();\n    }\n\n    return {\n      name,\n      attributes,\n      parsed: pos - start\n    };\n  }\n\n  _parseProcessingInstruction(s, start) {\n    let pos = start;\n\n    function skipWs() {\n      while (pos < s.length && isWhitespace(s, pos)) {\n        ++pos;\n      }\n    }\n\n    while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"?\" && s[pos] !== \"/\") {\n      ++pos;\n    }\n\n    const name = s.substring(start, pos);\n    skipWs();\n    const attrStart = pos;\n\n    while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n      ++pos;\n    }\n\n    const value = s.substring(attrStart, pos);\n    return {\n      name,\n      value,\n      parsed: pos - start\n    };\n  }\n\n  parseXml(s) {\n    let i = 0;\n\n    while (i < s.length) {\n      const ch = s[i];\n      let j = i;\n\n      if (ch === \"<\") {\n        ++j;\n        const ch2 = s[j];\n        let q;\n\n        switch (ch2) {\n          case \"/\":\n            ++j;\n            q = s.indexOf(\">\", j);\n\n            if (q < 0) {\n              this.onError(XMLParserErrorCode.UnterminatedElement);\n              return;\n            }\n\n            this.onEndElement(s.substring(j, q));\n            j = q + 1;\n            break;\n\n          case \"?\":\n            ++j;\n\n            const pi = this._parseProcessingInstruction(s, j);\n\n            if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n              this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n              return;\n            }\n\n            this.onPi(pi.name, pi.value);\n            j += pi.parsed + 2;\n            break;\n\n          case \"!\":\n            if (s.substring(j + 1, j + 3) === \"--\") {\n              q = s.indexOf(\"-->\", j + 3);\n\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedComment);\n                return;\n              }\n\n              this.onComment(s.substring(j + 3, q));\n              j = q + 3;\n            } else if (s.substring(j + 1, j + 8) === \"[CDATA[\") {\n              q = s.indexOf(\"]]>\", j + 8);\n\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedCdat);\n                return;\n              }\n\n              this.onCdata(s.substring(j + 8, q));\n              j = q + 3;\n            } else if (s.substring(j + 1, j + 8) === \"DOCTYPE\") {\n              const q2 = s.indexOf(\"[\", j + 8);\n              let complexDoctype = false;\n              q = s.indexOf(\">\", j + 8);\n\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n                return;\n              }\n\n              if (q2 > 0 && q > q2) {\n                q = s.indexOf(\"]>\", j + 8);\n\n                if (q < 0) {\n                  this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n                  return;\n                }\n\n                complexDoctype = true;\n              }\n\n              const doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0));\n              this.onDoctype(doctypeContent);\n              j = q + (complexDoctype ? 2 : 1);\n            } else {\n              this.onError(XMLParserErrorCode.MalformedElement);\n              return;\n            }\n\n            break;\n\n          default:\n            const content = this._parseContent(s, j);\n\n            if (content === null) {\n              this.onError(XMLParserErrorCode.MalformedElement);\n              return;\n            }\n\n            let isClosed = false;\n\n            if (s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\") {\n              isClosed = true;\n            } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== \">\") {\n              this.onError(XMLParserErrorCode.UnterminatedElement);\n              return;\n            }\n\n            this.onBeginElement(content.name, content.attributes, isClosed);\n            j += content.parsed + (isClosed ? 2 : 1);\n            break;\n        }\n      } else {\n        while (j < s.length && s[j] !== \"<\") {\n          j++;\n        }\n\n        const text = s.substring(i, j);\n        this.onText(this._resolveEntities(text));\n      }\n\n      i = j;\n    }\n  }\n\n  onResolveEntity(name) {\n    return `&${name};`;\n  }\n\n  onPi(name, value) {}\n\n  onComment(text) {}\n\n  onCdata(text) {}\n\n  onDoctype(doctypeContent) {}\n\n  onText(text) {}\n\n  onBeginElement(name, attributes, isEmpty) {}\n\n  onEndElement(name) {}\n\n  onError(code) {}\n\n}\n\nexports.XMLParserBase = XMLParserBase;\n\nclass SimpleDOMNode {\n  constructor(nodeName, nodeValue) {\n    this.nodeName = nodeName;\n    this.nodeValue = nodeValue;\n    Object.defineProperty(this, \"parentNode\", {\n      value: null,\n      writable: true\n    });\n  }\n\n  get firstChild() {\n    return this.childNodes && this.childNodes[0];\n  }\n\n  get nextSibling() {\n    const childNodes = this.parentNode.childNodes;\n\n    if (!childNodes) {\n      return undefined;\n    }\n\n    const index = childNodes.indexOf(this);\n\n    if (index === -1) {\n      return undefined;\n    }\n\n    return childNodes[index + 1];\n  }\n\n  get textContent() {\n    if (!this.childNodes) {\n      return this.nodeValue || \"\";\n    }\n\n    return this.childNodes.map(function (child) {\n      return child.textContent;\n    }).join(\"\");\n  }\n\n  get children() {\n    return this.childNodes || [];\n  }\n\n  hasChildNodes() {\n    return this.childNodes && this.childNodes.length > 0;\n  }\n\n  searchNode(paths, pos) {\n    if (pos >= paths.length) {\n      return this;\n    }\n\n    const component = paths[pos];\n    const stack = [];\n    let node = this;\n\n    while (true) {\n      if (component.name === node.nodeName) {\n        if (component.pos === 0) {\n          const res = node.searchNode(paths, pos + 1);\n\n          if (res !== null) {\n            return res;\n          }\n        } else if (stack.length === 0) {\n          return null;\n        } else {\n          const [parent] = stack.pop();\n          let siblingPos = 0;\n\n          for (const child of parent.childNodes) {\n            if (component.name === child.nodeName) {\n              if (siblingPos === component.pos) {\n                return child.searchNode(paths, pos + 1);\n              }\n\n              siblingPos++;\n            }\n          }\n\n          return node.searchNode(paths, pos + 1);\n        }\n      }\n\n      if (node.childNodes && node.childNodes.length !== 0) {\n        stack.push([node, 0]);\n        node = node.childNodes[0];\n      } else if (stack.length === 0) {\n        return null;\n      } else {\n        while (stack.length !== 0) {\n          const [parent, currentPos] = stack.pop();\n          const newPos = currentPos + 1;\n\n          if (newPos < parent.childNodes.length) {\n            stack.push([parent, newPos]);\n            node = parent.childNodes[newPos];\n            break;\n          }\n        }\n\n        if (stack.length === 0) {\n          return null;\n        }\n      }\n    }\n  }\n\n  dump(buffer) {\n    if (this.nodeName === \"#text\") {\n      buffer.push((0, _core_utils.encodeToXmlString)(this.nodeValue));\n      return;\n    }\n\n    buffer.push(`<${this.nodeName}`);\n\n    if (this.attributes) {\n      for (const attribute of this.attributes) {\n        buffer.push(` ${attribute.name}=\"${(0, _core_utils.encodeToXmlString)(attribute.value)}\"`);\n      }\n    }\n\n    if (this.hasChildNodes()) {\n      buffer.push(\">\");\n\n      for (const child of this.childNodes) {\n        child.dump(buffer);\n      }\n\n      buffer.push(`</${this.nodeName}>`);\n    } else if (this.nodeValue) {\n      buffer.push(`>${(0, _core_utils.encodeToXmlString)(this.nodeValue)}</${this.nodeName}>`);\n    } else {\n      buffer.push(\"/>\");\n    }\n  }\n\n}\n\nexports.SimpleDOMNode = SimpleDOMNode;\n\nclass SimpleXMLParser extends XMLParserBase {\n  constructor(_ref) {\n    let {\n      hasAttributes = false,\n      lowerCaseName = false\n    } = _ref;\n    super();\n    this._currentFragment = null;\n    this._stack = null;\n    this._errorCode = XMLParserErrorCode.NoError;\n    this._hasAttributes = hasAttributes;\n    this._lowerCaseName = lowerCaseName;\n  }\n\n  parseFromString(data) {\n    this._currentFragment = [];\n    this._stack = [];\n    this._errorCode = XMLParserErrorCode.NoError;\n    this.parseXml(data);\n\n    if (this._errorCode !== XMLParserErrorCode.NoError) {\n      return undefined;\n    }\n\n    const [documentElement] = this._currentFragment;\n\n    if (!documentElement) {\n      return undefined;\n    }\n\n    return {\n      documentElement\n    };\n  }\n\n  onText(text) {\n    if (isWhitespaceString(text)) {\n      return;\n    }\n\n    const node = new SimpleDOMNode(\"#text\", text);\n\n    this._currentFragment.push(node);\n  }\n\n  onCdata(text) {\n    const node = new SimpleDOMNode(\"#text\", text);\n\n    this._currentFragment.push(node);\n  }\n\n  onBeginElement(name, attributes, isEmpty) {\n    if (this._lowerCaseName) {\n      name = name.toLowerCase();\n    }\n\n    const node = new SimpleDOMNode(name);\n    node.childNodes = [];\n\n    if (this._hasAttributes) {\n      node.attributes = attributes;\n    }\n\n    this._currentFragment.push(node);\n\n    if (isEmpty) {\n      return;\n    }\n\n    this._stack.push(this._currentFragment);\n\n    this._currentFragment = node.childNodes;\n  }\n\n  onEndElement(name) {\n    this._currentFragment = this._stack.pop() || [];\n\n    const lastElement = this._currentFragment.at(-1);\n\n    if (!lastElement) {\n      return null;\n    }\n\n    for (let i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n      lastElement.childNodes[i].parentNode = lastElement;\n    }\n\n    return lastElement;\n  }\n\n  onError(code) {\n    this._errorCode = code;\n  }\n\n}\n\nexports.SimpleXMLParser = SimpleXMLParser;\n\n/***/ }),\n/* 192 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.calculateSHA256 = exports.calculateMD5 = exports.PDF20 = exports.PDF17 = exports.CipherTransformFactory = exports.ARCFourCipher = exports.AES256Cipher = exports.AES128Cipher = void 0;\nexports.calculateSHA384 = calculateSHA384;\nexports.calculateSHA512 = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _decrypt_stream = __w_pdfjs_require__(193);\n\nclass ARCFourCipher {\n  constructor(key) {\n    this.a = 0;\n    this.b = 0;\n    const s = new Uint8Array(256);\n    const keyLength = key.length;\n\n    for (let i = 0; i < 256; ++i) {\n      s[i] = i;\n    }\n\n    for (let i = 0, j = 0; i < 256; ++i) {\n      const tmp = s[i];\n      j = j + tmp + key[i % keyLength] & 0xff;\n      s[i] = s[j];\n      s[j] = tmp;\n    }\n\n    this.s = s;\n  }\n\n  encryptBlock(data) {\n    let a = this.a,\n        b = this.b;\n    const s = this.s;\n    const n = data.length;\n    const output = new Uint8Array(n);\n\n    for (let i = 0; i < n; ++i) {\n      a = a + 1 & 0xff;\n      const tmp = s[a];\n      b = b + tmp & 0xff;\n      const tmp2 = s[b];\n      s[a] = tmp2;\n      s[b] = tmp;\n      output[i] = data[i] ^ s[tmp + tmp2 & 0xff];\n    }\n\n    this.a = a;\n    this.b = b;\n    return output;\n  }\n\n  decryptBlock(data) {\n    return this.encryptBlock(data);\n  }\n\n  encrypt(data) {\n    return this.encryptBlock(data);\n  }\n\n}\n\nexports.ARCFourCipher = ARCFourCipher;\n\nconst calculateMD5 = function calculateMD5Closure() {\n  const r = new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]);\n  const k = new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, -145523070, -1120210379, 718787259, -343485551]);\n\n  function hash(data, offset, length) {\n    let h0 = 1732584193,\n        h1 = -271733879,\n        h2 = -1732584194,\n        h3 = 271733878;\n    const paddedLength = length + 72 & ~63;\n    const padded = new Uint8Array(paddedLength);\n    let i, j;\n\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n\n    padded[i++] = 0x80;\n    const n = paddedLength - 8;\n\n    while (i < n) {\n      padded[i++] = 0;\n    }\n\n    padded[i++] = length << 3 & 0xff;\n    padded[i++] = length >> 5 & 0xff;\n    padded[i++] = length >> 13 & 0xff;\n    padded[i++] = length >> 21 & 0xff;\n    padded[i++] = length >>> 29 & 0xff;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    const w = new Int32Array(16);\n\n    for (i = 0; i < paddedLength;) {\n      for (j = 0; j < 16; ++j, i += 4) {\n        w[j] = padded[i] | padded[i + 1] << 8 | padded[i + 2] << 16 | padded[i + 3] << 24;\n      }\n\n      let a = h0,\n          b = h1,\n          c = h2,\n          d = h3,\n          f,\n          g;\n\n      for (j = 0; j < 64; ++j) {\n        if (j < 16) {\n          f = b & c | ~b & d;\n          g = j;\n        } else if (j < 32) {\n          f = d & b | ~d & c;\n          g = 5 * j + 1 & 15;\n        } else if (j < 48) {\n          f = b ^ c ^ d;\n          g = 3 * j + 5 & 15;\n        } else {\n          f = c ^ (b | ~d);\n          g = 7 * j & 15;\n        }\n\n        const tmp = d,\n              rotateArg = a + f + k[j] + w[g] | 0,\n              rotate = r[j];\n        d = c;\n        c = b;\n        b = b + (rotateArg << rotate | rotateArg >>> 32 - rotate) | 0;\n        a = tmp;\n      }\n\n      h0 = h0 + a | 0;\n      h1 = h1 + b | 0;\n      h2 = h2 + c | 0;\n      h3 = h3 + d | 0;\n    }\n\n    return new Uint8Array([h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >>> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >>> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >>> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >>> 24 & 0xFF]);\n  }\n\n  return hash;\n}();\n\nexports.calculateMD5 = calculateMD5;\n\nclass Word64 {\n  constructor(highInteger, lowInteger) {\n    this.high = highInteger | 0;\n    this.low = lowInteger | 0;\n  }\n\n  and(word) {\n    this.high &= word.high;\n    this.low &= word.low;\n  }\n\n  xor(word) {\n    this.high ^= word.high;\n    this.low ^= word.low;\n  }\n\n  or(word) {\n    this.high |= word.high;\n    this.low |= word.low;\n  }\n\n  shiftRight(places) {\n    if (places >= 32) {\n      this.low = this.high >>> places - 32 | 0;\n      this.high = 0;\n    } else {\n      this.low = this.low >>> places | this.high << 32 - places;\n      this.high = this.high >>> places | 0;\n    }\n  }\n\n  shiftLeft(places) {\n    if (places >= 32) {\n      this.high = this.low << places - 32;\n      this.low = 0;\n    } else {\n      this.high = this.high << places | this.low >>> 32 - places;\n      this.low <<= places;\n    }\n  }\n\n  rotateRight(places) {\n    let low, high;\n\n    if (places & 32) {\n      high = this.low;\n      low = this.high;\n    } else {\n      low = this.low;\n      high = this.high;\n    }\n\n    places &= 31;\n    this.low = low >>> places | high << 32 - places;\n    this.high = high >>> places | low << 32 - places;\n  }\n\n  not() {\n    this.high = ~this.high;\n    this.low = ~this.low;\n  }\n\n  add(word) {\n    const lowAdd = (this.low >>> 0) + (word.low >>> 0);\n    let highAdd = (this.high >>> 0) + (word.high >>> 0);\n\n    if (lowAdd > 0xffffffff) {\n      highAdd += 1;\n    }\n\n    this.low = lowAdd | 0;\n    this.high = highAdd | 0;\n  }\n\n  copyTo(bytes, offset) {\n    bytes[offset] = this.high >>> 24 & 0xff;\n    bytes[offset + 1] = this.high >> 16 & 0xff;\n    bytes[offset + 2] = this.high >> 8 & 0xff;\n    bytes[offset + 3] = this.high & 0xff;\n    bytes[offset + 4] = this.low >>> 24 & 0xff;\n    bytes[offset + 5] = this.low >> 16 & 0xff;\n    bytes[offset + 6] = this.low >> 8 & 0xff;\n    bytes[offset + 7] = this.low & 0xff;\n  }\n\n  assign(word) {\n    this.high = word.high;\n    this.low = word.low;\n  }\n\n}\n\nconst calculateSHA256 = function calculateSHA256Closure() {\n  function rotr(x, n) {\n    return x >>> n | x << 32 - n;\n  }\n\n  function ch(x, y, z) {\n    return x & y ^ ~x & z;\n  }\n\n  function maj(x, y, z) {\n    return x & y ^ x & z ^ y & z;\n  }\n\n  function sigma(x) {\n    return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n  }\n\n  function sigmaPrime(x) {\n    return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n  }\n\n  function littleSigma(x) {\n    return rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3;\n  }\n\n  function littleSigmaPrime(x) {\n    return rotr(x, 17) ^ rotr(x, 19) ^ x >>> 10;\n  }\n\n  const k = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\n  function hash(data, offset, length) {\n    let h0 = 0x6a09e667,\n        h1 = 0xbb67ae85,\n        h2 = 0x3c6ef372,\n        h3 = 0xa54ff53a,\n        h4 = 0x510e527f,\n        h5 = 0x9b05688c,\n        h6 = 0x1f83d9ab,\n        h7 = 0x5be0cd19;\n    const paddedLength = Math.ceil((length + 9) / 64) * 64;\n    const padded = new Uint8Array(paddedLength);\n    let i, j;\n\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n\n    padded[i++] = 0x80;\n    const n = paddedLength - 8;\n\n    while (i < n) {\n      padded[i++] = 0;\n    }\n\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = length >>> 29 & 0xff;\n    padded[i++] = length >> 21 & 0xff;\n    padded[i++] = length >> 13 & 0xff;\n    padded[i++] = length >> 5 & 0xff;\n    padded[i++] = length << 3 & 0xff;\n    const w = new Uint32Array(64);\n\n    for (i = 0; i < paddedLength;) {\n      for (j = 0; j < 16; ++j) {\n        w[j] = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n        i += 4;\n      }\n\n      for (j = 16; j < 64; ++j) {\n        w[j] = littleSigmaPrime(w[j - 2]) + w[j - 7] + littleSigma(w[j - 15]) + w[j - 16] | 0;\n      }\n\n      let a = h0,\n          b = h1,\n          c = h2,\n          d = h3,\n          e = h4,\n          f = h5,\n          g = h6,\n          h = h7,\n          t1,\n          t2;\n\n      for (j = 0; j < 64; ++j) {\n        t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n        t2 = sigma(a) + maj(a, b, c);\n        h = g;\n        g = f;\n        f = e;\n        e = d + t1 | 0;\n        d = c;\n        c = b;\n        b = a;\n        a = t1 + t2 | 0;\n      }\n\n      h0 = h0 + a | 0;\n      h1 = h1 + b | 0;\n      h2 = h2 + c | 0;\n      h3 = h3 + d | 0;\n      h4 = h4 + e | 0;\n      h5 = h5 + f | 0;\n      h6 = h6 + g | 0;\n      h7 = h7 + h | 0;\n    }\n\n    return new Uint8Array([h0 >> 24 & 0xFF, h0 >> 16 & 0xFF, h0 >> 8 & 0xFF, h0 & 0xFF, h1 >> 24 & 0xFF, h1 >> 16 & 0xFF, h1 >> 8 & 0xFF, h1 & 0xFF, h2 >> 24 & 0xFF, h2 >> 16 & 0xFF, h2 >> 8 & 0xFF, h2 & 0xFF, h3 >> 24 & 0xFF, h3 >> 16 & 0xFF, h3 >> 8 & 0xFF, h3 & 0xFF, h4 >> 24 & 0xFF, h4 >> 16 & 0xFF, h4 >> 8 & 0xFF, h4 & 0xFF, h5 >> 24 & 0xFF, h5 >> 16 & 0xFF, h5 >> 8 & 0xFF, h5 & 0xFF, h6 >> 24 & 0xFF, h6 >> 16 & 0xFF, h6 >> 8 & 0xFF, h6 & 0xFF, h7 >> 24 & 0xFF, h7 >> 16 & 0xFF, h7 >> 8 & 0xFF, h7 & 0xFF]);\n  }\n\n  return hash;\n}();\n\nexports.calculateSHA256 = calculateSHA256;\n\nconst calculateSHA512 = function calculateSHA512Closure() {\n  function ch(result, x, y, z, tmp) {\n    result.assign(x);\n    result.and(y);\n    tmp.assign(x);\n    tmp.not();\n    tmp.and(z);\n    result.xor(tmp);\n  }\n\n  function maj(result, x, y, z, tmp) {\n    result.assign(x);\n    result.and(y);\n    tmp.assign(x);\n    tmp.and(z);\n    result.xor(tmp);\n    tmp.assign(y);\n    tmp.and(z);\n    result.xor(tmp);\n  }\n\n  function sigma(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(28);\n    tmp.assign(x);\n    tmp.rotateRight(34);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.rotateRight(39);\n    result.xor(tmp);\n  }\n\n  function sigmaPrime(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(14);\n    tmp.assign(x);\n    tmp.rotateRight(18);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.rotateRight(41);\n    result.xor(tmp);\n  }\n\n  function littleSigma(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(1);\n    tmp.assign(x);\n    tmp.rotateRight(8);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.shiftRight(7);\n    result.xor(tmp);\n  }\n\n  function littleSigmaPrime(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(19);\n    tmp.assign(x);\n    tmp.rotateRight(61);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.shiftRight(6);\n    result.xor(tmp);\n  }\n\n  const k = [new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd), new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc), new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019), new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118), new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe), new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2), new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1), new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694), new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3), new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65), new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483), new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5), new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210), new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4), new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725), new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70), new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926), new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df), new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8), new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b), new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001), new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30), new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910), new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8), new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53), new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8), new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb), new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3), new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60), new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec), new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9), new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b), new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207), new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178), new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6), new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b), new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493), new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c), new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a), new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n\n  function hash(data, offset, length) {\n    let mode384 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n    let h0, h1, h2, h3, h4, h5, h6, h7;\n\n    if (!mode384) {\n      h0 = new Word64(0x6a09e667, 0xf3bcc908);\n      h1 = new Word64(0xbb67ae85, 0x84caa73b);\n      h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n      h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n      h4 = new Word64(0x510e527f, 0xade682d1);\n      h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n      h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n      h7 = new Word64(0x5be0cd19, 0x137e2179);\n    } else {\n      h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n      h1 = new Word64(0x629a292a, 0x367cd507);\n      h2 = new Word64(0x9159015a, 0x3070dd17);\n      h3 = new Word64(0x152fecd8, 0xf70e5939);\n      h4 = new Word64(0x67332667, 0xffc00b31);\n      h5 = new Word64(0x8eb44a87, 0x68581511);\n      h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n      h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n    }\n\n    const paddedLength = Math.ceil((length + 17) / 128) * 128;\n    const padded = new Uint8Array(paddedLength);\n    let i, j;\n\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n\n    padded[i++] = 0x80;\n    const n = paddedLength - 16;\n\n    while (i < n) {\n      padded[i++] = 0;\n    }\n\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = length >>> 29 & 0xff;\n    padded[i++] = length >> 21 & 0xff;\n    padded[i++] = length >> 13 & 0xff;\n    padded[i++] = length >> 5 & 0xff;\n    padded[i++] = length << 3 & 0xff;\n    const w = new Array(80);\n\n    for (i = 0; i < 80; i++) {\n      w[i] = new Word64(0, 0);\n    }\n\n    let a = new Word64(0, 0),\n        b = new Word64(0, 0),\n        c = new Word64(0, 0);\n    let d = new Word64(0, 0),\n        e = new Word64(0, 0),\n        f = new Word64(0, 0);\n    let g = new Word64(0, 0),\n        h = new Word64(0, 0);\n    const t1 = new Word64(0, 0),\n          t2 = new Word64(0, 0);\n    const tmp1 = new Word64(0, 0),\n          tmp2 = new Word64(0, 0);\n    let tmp3;\n\n    for (i = 0; i < paddedLength;) {\n      for (j = 0; j < 16; ++j) {\n        w[j].high = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n        w[j].low = padded[i + 4] << 24 | padded[i + 5] << 16 | padded[i + 6] << 8 | padded[i + 7];\n        i += 8;\n      }\n\n      for (j = 16; j < 80; ++j) {\n        tmp3 = w[j];\n        littleSigmaPrime(tmp3, w[j - 2], tmp2);\n        tmp3.add(w[j - 7]);\n        littleSigma(tmp1, w[j - 15], tmp2);\n        tmp3.add(tmp1);\n        tmp3.add(w[j - 16]);\n      }\n\n      a.assign(h0);\n      b.assign(h1);\n      c.assign(h2);\n      d.assign(h3);\n      e.assign(h4);\n      f.assign(h5);\n      g.assign(h6);\n      h.assign(h7);\n\n      for (j = 0; j < 80; ++j) {\n        t1.assign(h);\n        sigmaPrime(tmp1, e, tmp2);\n        t1.add(tmp1);\n        ch(tmp1, e, f, g, tmp2);\n        t1.add(tmp1);\n        t1.add(k[j]);\n        t1.add(w[j]);\n        sigma(t2, a, tmp2);\n        maj(tmp1, a, b, c, tmp2);\n        t2.add(tmp1);\n        tmp3 = h;\n        h = g;\n        g = f;\n        f = e;\n        d.add(t1);\n        e = d;\n        d = c;\n        c = b;\n        b = a;\n        tmp3.assign(t1);\n        tmp3.add(t2);\n        a = tmp3;\n      }\n\n      h0.add(a);\n      h1.add(b);\n      h2.add(c);\n      h3.add(d);\n      h4.add(e);\n      h5.add(f);\n      h6.add(g);\n      h7.add(h);\n    }\n\n    let result;\n\n    if (!mode384) {\n      result = new Uint8Array(64);\n      h0.copyTo(result, 0);\n      h1.copyTo(result, 8);\n      h2.copyTo(result, 16);\n      h3.copyTo(result, 24);\n      h4.copyTo(result, 32);\n      h5.copyTo(result, 40);\n      h6.copyTo(result, 48);\n      h7.copyTo(result, 56);\n    } else {\n      result = new Uint8Array(48);\n      h0.copyTo(result, 0);\n      h1.copyTo(result, 8);\n      h2.copyTo(result, 16);\n      h3.copyTo(result, 24);\n      h4.copyTo(result, 32);\n      h5.copyTo(result, 40);\n    }\n\n    return result;\n  }\n\n  return hash;\n}();\n\nexports.calculateSHA512 = calculateSHA512;\n\nfunction calculateSHA384(data, offset, length) {\n  return calculateSHA512(data, offset, length, true);\n}\n\nclass NullCipher {\n  decryptBlock(data) {\n    return data;\n  }\n\n  encrypt(data) {\n    return data;\n  }\n\n}\n\nclass AESBaseCipher {\n  constructor() {\n    if (this.constructor === AESBaseCipher) {\n      (0, _util.unreachable)(\"Cannot initialize AESBaseCipher.\");\n    }\n\n    this._s = new Uint8Array([0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]);\n    this._inv_s = new Uint8Array([0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]);\n    this._mix = new Uint32Array([0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]);\n    this._mixCol = new Uint8Array(256);\n\n    for (let i = 0; i < 256; i++) {\n      if (i < 128) {\n        this._mixCol[i] = i << 1;\n      } else {\n        this._mixCol[i] = i << 1 ^ 0x1b;\n      }\n    }\n\n    this.buffer = new Uint8Array(16);\n    this.bufferPosition = 0;\n  }\n\n  _expandKey(cipherKey) {\n    (0, _util.unreachable)(\"Cannot call `_expandKey` on the base class\");\n  }\n\n  _decrypt(input, key) {\n    let t, u, v;\n    const state = new Uint8Array(16);\n    state.set(input);\n\n    for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n      state[j] ^= key[k];\n    }\n\n    for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) {\n      t = state[13];\n      state[13] = state[9];\n      state[9] = state[5];\n      state[5] = state[1];\n      state[1] = t;\n      t = state[14];\n      u = state[10];\n      state[14] = state[6];\n      state[10] = state[2];\n      state[6] = t;\n      state[2] = u;\n      t = state[15];\n      u = state[11];\n      v = state[7];\n      state[15] = state[3];\n      state[11] = t;\n      state[7] = u;\n      state[3] = v;\n\n      for (let j = 0; j < 16; ++j) {\n        state[j] = this._inv_s[state[j]];\n      }\n\n      for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n        state[j] ^= key[k];\n      }\n\n      for (let j = 0; j < 16; j += 4) {\n        const s0 = this._mix[state[j]];\n        const s1 = this._mix[state[j + 1]];\n        const s2 = this._mix[state[j + 2]];\n        const s3 = this._mix[state[j + 3]];\n        t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8;\n        state[j] = t >>> 24 & 0xff;\n        state[j + 1] = t >> 16 & 0xff;\n        state[j + 2] = t >> 8 & 0xff;\n        state[j + 3] = t & 0xff;\n      }\n    }\n\n    t = state[13];\n    state[13] = state[9];\n    state[9] = state[5];\n    state[5] = state[1];\n    state[1] = t;\n    t = state[14];\n    u = state[10];\n    state[14] = state[6];\n    state[10] = state[2];\n    state[6] = t;\n    state[2] = u;\n    t = state[15];\n    u = state[11];\n    v = state[7];\n    state[15] = state[3];\n    state[11] = t;\n    state[7] = u;\n    state[3] = v;\n\n    for (let j = 0; j < 16; ++j) {\n      state[j] = this._inv_s[state[j]];\n      state[j] ^= key[j];\n    }\n\n    return state;\n  }\n\n  _encrypt(input, key) {\n    const s = this._s;\n    let t, u, v;\n    const state = new Uint8Array(16);\n    state.set(input);\n\n    for (let j = 0; j < 16; ++j) {\n      state[j] ^= key[j];\n    }\n\n    for (let i = 1; i < this._cyclesOfRepetition; i++) {\n      for (let j = 0; j < 16; ++j) {\n        state[j] = s[state[j]];\n      }\n\n      v = state[1];\n      state[1] = state[5];\n      state[5] = state[9];\n      state[9] = state[13];\n      state[13] = v;\n      v = state[2];\n      u = state[6];\n      state[2] = state[10];\n      state[6] = state[14];\n      state[10] = v;\n      state[14] = u;\n      v = state[3];\n      u = state[7];\n      t = state[11];\n      state[3] = state[15];\n      state[7] = v;\n      state[11] = u;\n      state[15] = t;\n\n      for (let j = 0; j < 16; j += 4) {\n        const s0 = state[j + 0];\n        const s1 = state[j + 1];\n        const s2 = state[j + 2];\n        const s3 = state[j + 3];\n        t = s0 ^ s1 ^ s2 ^ s3;\n        state[j + 0] ^= t ^ this._mixCol[s0 ^ s1];\n        state[j + 1] ^= t ^ this._mixCol[s1 ^ s2];\n        state[j + 2] ^= t ^ this._mixCol[s2 ^ s3];\n        state[j + 3] ^= t ^ this._mixCol[s3 ^ s0];\n      }\n\n      for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n        state[j] ^= key[k];\n      }\n    }\n\n    for (let j = 0; j < 16; ++j) {\n      state[j] = s[state[j]];\n    }\n\n    v = state[1];\n    state[1] = state[5];\n    state[5] = state[9];\n    state[9] = state[13];\n    state[13] = v;\n    v = state[2];\n    u = state[6];\n    state[2] = state[10];\n    state[6] = state[14];\n    state[10] = v;\n    state[14] = u;\n    v = state[3];\n    u = state[7];\n    t = state[11];\n    state[3] = state[15];\n    state[7] = v;\n    state[11] = u;\n    state[15] = t;\n\n    for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n      state[j] ^= key[k];\n    }\n\n    return state;\n  }\n\n  _decryptBlock2(data, finalize) {\n    const sourceLength = data.length;\n    let buffer = this.buffer,\n        bufferLength = this.bufferPosition;\n    const result = [];\n    let iv = this.iv;\n\n    for (let i = 0; i < sourceLength; ++i) {\n      buffer[bufferLength] = data[i];\n      ++bufferLength;\n\n      if (bufferLength < 16) {\n        continue;\n      }\n\n      const plain = this._decrypt(buffer, this._key);\n\n      for (let j = 0; j < 16; ++j) {\n        plain[j] ^= iv[j];\n      }\n\n      iv = buffer;\n      result.push(plain);\n      buffer = new Uint8Array(16);\n      bufferLength = 0;\n    }\n\n    this.buffer = buffer;\n    this.bufferLength = bufferLength;\n    this.iv = iv;\n\n    if (result.length === 0) {\n      return new Uint8Array(0);\n    }\n\n    let outputLength = 16 * result.length;\n\n    if (finalize) {\n      const lastBlock = result.at(-1);\n      let psLen = lastBlock[15];\n\n      if (psLen <= 16) {\n        for (let i = 15, ii = 16 - psLen; i >= ii; --i) {\n          if (lastBlock[i] !== psLen) {\n            psLen = 0;\n            break;\n          }\n        }\n\n        outputLength -= psLen;\n        result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n      }\n    }\n\n    const output = new Uint8Array(outputLength);\n\n    for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n      output.set(result[i], j);\n    }\n\n    return output;\n  }\n\n  decryptBlock(data, finalize) {\n    let iv = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n    const sourceLength = data.length;\n    const buffer = this.buffer;\n    let bufferLength = this.bufferPosition;\n\n    if (iv) {\n      this.iv = iv;\n    } else {\n      for (let i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) {\n        buffer[bufferLength] = data[i];\n      }\n\n      if (bufferLength < 16) {\n        this.bufferLength = bufferLength;\n        return new Uint8Array(0);\n      }\n\n      this.iv = buffer;\n      data = data.subarray(16);\n    }\n\n    this.buffer = new Uint8Array(16);\n    this.bufferLength = 0;\n    this.decryptBlock = this._decryptBlock2;\n    return this.decryptBlock(data, finalize);\n  }\n\n  encrypt(data, iv) {\n    const sourceLength = data.length;\n    let buffer = this.buffer,\n        bufferLength = this.bufferPosition;\n    const result = [];\n\n    if (!iv) {\n      iv = new Uint8Array(16);\n    }\n\n    for (let i = 0; i < sourceLength; ++i) {\n      buffer[bufferLength] = data[i];\n      ++bufferLength;\n\n      if (bufferLength < 16) {\n        continue;\n      }\n\n      for (let j = 0; j < 16; ++j) {\n        buffer[j] ^= iv[j];\n      }\n\n      const cipher = this._encrypt(buffer, this._key);\n\n      iv = cipher;\n      result.push(cipher);\n      buffer = new Uint8Array(16);\n      bufferLength = 0;\n    }\n\n    this.buffer = buffer;\n    this.bufferLength = bufferLength;\n    this.iv = iv;\n\n    if (result.length === 0) {\n      return new Uint8Array(0);\n    }\n\n    const outputLength = 16 * result.length;\n    const output = new Uint8Array(outputLength);\n\n    for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n      output.set(result[i], j);\n    }\n\n    return output;\n  }\n\n}\n\nclass AES128Cipher extends AESBaseCipher {\n  constructor(key) {\n    super();\n    this._cyclesOfRepetition = 10;\n    this._keySize = 160;\n    this._rcon = new Uint8Array([0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d]);\n    this._key = this._expandKey(key);\n  }\n\n  _expandKey(cipherKey) {\n    const b = 176;\n    const s = this._s;\n    const rcon = this._rcon;\n    const result = new Uint8Array(b);\n    result.set(cipherKey);\n\n    for (let j = 16, i = 1; j < b; ++i) {\n      let t1 = result[j - 3];\n      let t2 = result[j - 2];\n      let t3 = result[j - 1];\n      let t4 = result[j - 4];\n      t1 = s[t1];\n      t2 = s[t2];\n      t3 = s[t3];\n      t4 = s[t4];\n      t1 ^= rcon[i];\n\n      for (let n = 0; n < 4; ++n) {\n        result[j] = t1 ^= result[j - 16];\n        j++;\n        result[j] = t2 ^= result[j - 16];\n        j++;\n        result[j] = t3 ^= result[j - 16];\n        j++;\n        result[j] = t4 ^= result[j - 16];\n        j++;\n      }\n    }\n\n    return result;\n  }\n\n}\n\nexports.AES128Cipher = AES128Cipher;\n\nclass AES256Cipher extends AESBaseCipher {\n  constructor(key) {\n    super();\n    this._cyclesOfRepetition = 14;\n    this._keySize = 224;\n    this._key = this._expandKey(key);\n  }\n\n  _expandKey(cipherKey) {\n    const b = 240;\n    const s = this._s;\n    const result = new Uint8Array(b);\n    result.set(cipherKey);\n    let r = 1;\n    let t1, t2, t3, t4;\n\n    for (let j = 32, i = 1; j < b; ++i) {\n      if (j % 32 === 16) {\n        t1 = s[t1];\n        t2 = s[t2];\n        t3 = s[t3];\n        t4 = s[t4];\n      } else if (j % 32 === 0) {\n        t1 = result[j - 3];\n        t2 = result[j - 2];\n        t3 = result[j - 1];\n        t4 = result[j - 4];\n        t1 = s[t1];\n        t2 = s[t2];\n        t3 = s[t3];\n        t4 = s[t4];\n        t1 ^= r;\n\n        if ((r <<= 1) >= 256) {\n          r = (r ^ 0x1b) & 0xff;\n        }\n      }\n\n      for (let n = 0; n < 4; ++n) {\n        result[j] = t1 ^= result[j - 32];\n        j++;\n        result[j] = t2 ^= result[j - 32];\n        j++;\n        result[j] = t3 ^= result[j - 32];\n        j++;\n        result[j] = t4 ^= result[j - 32];\n        j++;\n      }\n    }\n\n    return result;\n  }\n\n}\n\nexports.AES256Cipher = AES256Cipher;\n\nclass PDF17 {\n  checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n    const hashData = new Uint8Array(password.length + 56);\n    hashData.set(password, 0);\n    hashData.set(ownerValidationSalt, password.length);\n    hashData.set(userBytes, password.length + ownerValidationSalt.length);\n    const result = calculateSHA256(hashData, 0, hashData.length);\n    return (0, _util.isArrayEqual)(result, ownerPassword);\n  }\n\n  checkUserPassword(password, userValidationSalt, userPassword) {\n    const hashData = new Uint8Array(password.length + 8);\n    hashData.set(password, 0);\n    hashData.set(userValidationSalt, password.length);\n    const result = calculateSHA256(hashData, 0, hashData.length);\n    return (0, _util.isArrayEqual)(result, userPassword);\n  }\n\n  getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n    const hashData = new Uint8Array(password.length + 56);\n    hashData.set(password, 0);\n    hashData.set(ownerKeySalt, password.length);\n    hashData.set(userBytes, password.length + ownerKeySalt.length);\n    const key = calculateSHA256(hashData, 0, hashData.length);\n    const cipher = new AES256Cipher(key);\n    return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n  }\n\n  getUserKey(password, userKeySalt, userEncryption) {\n    const hashData = new Uint8Array(password.length + 8);\n    hashData.set(password, 0);\n    hashData.set(userKeySalt, password.length);\n    const key = calculateSHA256(hashData, 0, hashData.length);\n    const cipher = new AES256Cipher(key);\n    return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n  }\n\n}\n\nexports.PDF17 = PDF17;\n\nconst PDF20 = function PDF20Closure() {\n  function calculatePDF20Hash(password, input, userBytes) {\n    let k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n    let e = [0];\n    let i = 0;\n\n    while (i < 64 || e.at(-1) > i - 32) {\n      const combinedLength = password.length + k.length + userBytes.length,\n            combinedArray = new Uint8Array(combinedLength);\n      let writeOffset = 0;\n      combinedArray.set(password, writeOffset);\n      writeOffset += password.length;\n      combinedArray.set(k, writeOffset);\n      writeOffset += k.length;\n      combinedArray.set(userBytes, writeOffset);\n      const k1 = new Uint8Array(combinedLength * 64);\n\n      for (let j = 0, pos = 0; j < 64; j++, pos += combinedLength) {\n        k1.set(combinedArray, pos);\n      }\n\n      const cipher = new AES128Cipher(k.subarray(0, 16));\n      e = cipher.encrypt(k1, k.subarray(16, 32));\n      let remainder = 0;\n\n      for (let z = 0; z < 16; z++) {\n        remainder *= 256 % 3;\n        remainder %= 3;\n        remainder += (e[z] >>> 0) % 3;\n        remainder %= 3;\n      }\n\n      if (remainder === 0) {\n        k = calculateSHA256(e, 0, e.length);\n      } else if (remainder === 1) {\n        k = calculateSHA384(e, 0, e.length);\n      } else if (remainder === 2) {\n        k = calculateSHA512(e, 0, e.length);\n      }\n\n      i++;\n    }\n\n    return k.subarray(0, 32);\n  }\n\n  class PDF20 {\n    hash(password, concatBytes, userBytes) {\n      return calculatePDF20Hash(password, concatBytes, userBytes);\n    }\n\n    checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n      const hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerValidationSalt, password.length);\n      hashData.set(userBytes, password.length + ownerValidationSalt.length);\n      const result = calculatePDF20Hash(password, hashData, userBytes);\n      return (0, _util.isArrayEqual)(result, ownerPassword);\n    }\n\n    checkUserPassword(password, userValidationSalt, userPassword) {\n      const hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userValidationSalt, password.length);\n      const result = calculatePDF20Hash(password, hashData, []);\n      return (0, _util.isArrayEqual)(result, userPassword);\n    }\n\n    getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n      const hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerKeySalt, password.length);\n      hashData.set(userBytes, password.length + ownerKeySalt.length);\n      const key = calculatePDF20Hash(password, hashData, userBytes);\n      const cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n    }\n\n    getUserKey(password, userKeySalt, userEncryption) {\n      const hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userKeySalt, password.length);\n      const key = calculatePDF20Hash(password, hashData, []);\n      const cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n    }\n\n  }\n\n  return PDF20;\n}();\n\nexports.PDF20 = PDF20;\n\nclass CipherTransform {\n  constructor(stringCipherConstructor, streamCipherConstructor) {\n    this.StringCipherConstructor = stringCipherConstructor;\n    this.StreamCipherConstructor = streamCipherConstructor;\n  }\n\n  createStream(stream, length) {\n    const cipher = new this.StreamCipherConstructor();\n    return new _decrypt_stream.DecryptStream(stream, length, function cipherTransformDecryptStream(data, finalize) {\n      return cipher.decryptBlock(data, finalize);\n    });\n  }\n\n  decryptString(s) {\n    const cipher = new this.StringCipherConstructor();\n    let data = (0, _util.stringToBytes)(s);\n    data = cipher.decryptBlock(data, true);\n    return (0, _util.bytesToString)(data);\n  }\n\n  encryptString(s) {\n    const cipher = new this.StringCipherConstructor();\n\n    if (cipher instanceof AESBaseCipher) {\n      const strLen = s.length;\n      const pad = 16 - strLen % 16;\n      s += String.fromCharCode(pad).repeat(pad);\n      const iv = new Uint8Array(16);\n\n      if (typeof crypto !== \"undefined\") {\n        crypto.getRandomValues(iv);\n      } else {\n        for (let i = 0; i < 16; i++) {\n          iv[i] = Math.floor(256 * Math.random());\n        }\n      }\n\n      let data = (0, _util.stringToBytes)(s);\n      data = cipher.encrypt(data, iv);\n      const buf = new Uint8Array(16 + data.length);\n      buf.set(iv);\n      buf.set(data, 16);\n      return (0, _util.bytesToString)(buf);\n    }\n\n    let data = (0, _util.stringToBytes)(s);\n    data = cipher.encrypt(data);\n    return (0, _util.bytesToString)(data);\n  }\n\n}\n\nconst CipherTransformFactory = function CipherTransformFactoryClosure() {\n  const defaultPasswordBytes = new Uint8Array([0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56, 0xff, 0xfa, 0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80, 0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a]);\n\n  function createEncryptionKey20(revision, password, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms) {\n    if (password) {\n      const passwordLength = Math.min(127, password.length);\n      password = password.subarray(0, passwordLength);\n    } else {\n      password = [];\n    }\n\n    let pdfAlgorithm;\n\n    if (revision === 6) {\n      pdfAlgorithm = new PDF20();\n    } else {\n      pdfAlgorithm = new PDF17();\n    }\n\n    if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)) {\n      return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n    } else if (password.length && pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, uBytes, ownerPassword)) {\n      return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, ownerEncryption);\n    }\n\n    return null;\n  }\n\n  function prepareKeyData(fileId, password, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata) {\n    const hashDataSize = 40 + ownerPassword.length + fileId.length;\n    const hashData = new Uint8Array(hashDataSize);\n    let i = 0,\n        j,\n        n;\n\n    if (password) {\n      n = Math.min(32, password.length);\n\n      for (; i < n; ++i) {\n        hashData[i] = password[i];\n      }\n    }\n\n    j = 0;\n\n    while (i < 32) {\n      hashData[i++] = defaultPasswordBytes[j++];\n    }\n\n    for (j = 0, n = ownerPassword.length; j < n; ++j) {\n      hashData[i++] = ownerPassword[j];\n    }\n\n    hashData[i++] = flags & 0xff;\n    hashData[i++] = flags >> 8 & 0xff;\n    hashData[i++] = flags >> 16 & 0xff;\n    hashData[i++] = flags >>> 24 & 0xff;\n\n    for (j = 0, n = fileId.length; j < n; ++j) {\n      hashData[i++] = fileId[j];\n    }\n\n    if (revision >= 4 && !encryptMetadata) {\n      hashData[i++] = 0xff;\n      hashData[i++] = 0xff;\n      hashData[i++] = 0xff;\n      hashData[i++] = 0xff;\n    }\n\n    let hash = calculateMD5(hashData, 0, i);\n    const keyLengthInBytes = keyLength >> 3;\n\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n        hash = calculateMD5(hash, 0, keyLengthInBytes);\n      }\n    }\n\n    const encryptionKey = hash.subarray(0, keyLengthInBytes);\n    let cipher, checkData;\n\n    if (revision >= 3) {\n      for (i = 0; i < 32; ++i) {\n        hashData[i] = defaultPasswordBytes[i];\n      }\n\n      for (j = 0, n = fileId.length; j < n; ++j) {\n        hashData[i++] = fileId[j];\n      }\n\n      cipher = new ARCFourCipher(encryptionKey);\n      checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n      n = encryptionKey.length;\n      const derivedKey = new Uint8Array(n);\n\n      for (j = 1; j <= 19; ++j) {\n        for (let k = 0; k < n; ++k) {\n          derivedKey[k] = encryptionKey[k] ^ j;\n        }\n\n        cipher = new ARCFourCipher(derivedKey);\n        checkData = cipher.encryptBlock(checkData);\n      }\n\n      for (j = 0, n = checkData.length; j < n; ++j) {\n        if (userPassword[j] !== checkData[j]) {\n          return null;\n        }\n      }\n    } else {\n      cipher = new ARCFourCipher(encryptionKey);\n      checkData = cipher.encryptBlock(defaultPasswordBytes);\n\n      for (j = 0, n = checkData.length; j < n; ++j) {\n        if (userPassword[j] !== checkData[j]) {\n          return null;\n        }\n      }\n    }\n\n    return encryptionKey;\n  }\n\n  function decodeUserPassword(password, ownerPassword, revision, keyLength) {\n    const hashData = new Uint8Array(32);\n    let i = 0;\n    const n = Math.min(32, password.length);\n\n    for (; i < n; ++i) {\n      hashData[i] = password[i];\n    }\n\n    let j = 0;\n\n    while (i < 32) {\n      hashData[i++] = defaultPasswordBytes[j++];\n    }\n\n    let hash = calculateMD5(hashData, 0, i);\n    const keyLengthInBytes = keyLength >> 3;\n\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n        hash = calculateMD5(hash, 0, hash.length);\n      }\n    }\n\n    let cipher, userPassword;\n\n    if (revision >= 3) {\n      userPassword = ownerPassword;\n      const derivedKey = new Uint8Array(keyLengthInBytes);\n\n      for (j = 19; j >= 0; j--) {\n        for (let k = 0; k < keyLengthInBytes; ++k) {\n          derivedKey[k] = hash[k] ^ j;\n        }\n\n        cipher = new ARCFourCipher(derivedKey);\n        userPassword = cipher.encryptBlock(userPassword);\n      }\n    } else {\n      cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n      userPassword = cipher.encryptBlock(ownerPassword);\n    }\n\n    return userPassword;\n  }\n\n  const identityName = _primitives.Name.get(\"Identity\");\n\n  function buildObjectKey(num, gen, encryptionKey) {\n    let isAes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n    const key = new Uint8Array(encryptionKey.length + 9);\n    const n = encryptionKey.length;\n    let i;\n\n    for (i = 0; i < n; ++i) {\n      key[i] = encryptionKey[i];\n    }\n\n    key[i++] = num & 0xff;\n    key[i++] = num >> 8 & 0xff;\n    key[i++] = num >> 16 & 0xff;\n    key[i++] = gen & 0xff;\n    key[i++] = gen >> 8 & 0xff;\n\n    if (isAes) {\n      key[i++] = 0x73;\n      key[i++] = 0x41;\n      key[i++] = 0x6c;\n      key[i++] = 0x54;\n    }\n\n    const hash = calculateMD5(key, 0, i);\n    return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n  }\n\n  function buildCipherConstructor(cf, name, num, gen, key) {\n    if (!(name instanceof _primitives.Name)) {\n      throw new _util.FormatError(\"Invalid crypt filter name.\");\n    }\n\n    const cryptFilter = cf.get(name.name);\n    let cfm;\n\n    if (cryptFilter !== null && cryptFilter !== undefined) {\n      cfm = cryptFilter.get(\"CFM\");\n    }\n\n    if (!cfm || cfm.name === \"None\") {\n      return function cipherTransformFactoryBuildCipherConstructorNone() {\n        return new NullCipher();\n      };\n    }\n\n    if (cfm.name === \"V2\") {\n      return function cipherTransformFactoryBuildCipherConstructorV2() {\n        return new ARCFourCipher(buildObjectKey(num, gen, key, false));\n      };\n    }\n\n    if (cfm.name === \"AESV2\") {\n      return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n        return new AES128Cipher(buildObjectKey(num, gen, key, true));\n      };\n    }\n\n    if (cfm.name === \"AESV3\") {\n      return function cipherTransformFactoryBuildCipherConstructorAESV3() {\n        return new AES256Cipher(key);\n      };\n    }\n\n    throw new _util.FormatError(\"Unknown crypto method\");\n  }\n\n  class CipherTransformFactory {\n    constructor(dict, fileId, password) {\n      const filter = dict.get(\"Filter\");\n\n      if (!(0, _primitives.isName)(filter, \"Standard\")) {\n        throw new _util.FormatError(\"unknown encryption method\");\n      }\n\n      this.filterName = filter.name;\n      this.dict = dict;\n      const algorithm = dict.get(\"V\");\n\n      if (!Number.isInteger(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) {\n        throw new _util.FormatError(\"unsupported encryption algorithm\");\n      }\n\n      this.algorithm = algorithm;\n      let keyLength = dict.get(\"Length\");\n\n      if (!keyLength) {\n        if (algorithm <= 3) {\n          keyLength = 40;\n        } else {\n          const cfDict = dict.get(\"CF\");\n          const streamCryptoName = dict.get(\"StmF\");\n\n          if (cfDict instanceof _primitives.Dict && streamCryptoName instanceof _primitives.Name) {\n            cfDict.suppressEncryption = true;\n            const handlerDict = cfDict.get(streamCryptoName.name);\n            keyLength = handlerDict && handlerDict.get(\"Length\") || 128;\n\n            if (keyLength < 40) {\n              keyLength <<= 3;\n            }\n          }\n        }\n      }\n\n      if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) {\n        throw new _util.FormatError(\"invalid key length\");\n      }\n\n      const ownerPassword = (0, _util.stringToBytes)(dict.get(\"O\")).subarray(0, 32);\n      const userPassword = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(0, 32);\n      const flags = dict.get(\"P\");\n      const revision = dict.get(\"R\");\n      const encryptMetadata = (algorithm === 4 || algorithm === 5) && dict.get(\"EncryptMetadata\") !== false;\n      this.encryptMetadata = encryptMetadata;\n      const fileIdBytes = (0, _util.stringToBytes)(fileId);\n      let passwordBytes;\n\n      if (password) {\n        if (revision === 6) {\n          try {\n            password = (0, _util.utf8StringToString)(password);\n          } catch (ex) {\n            (0, _util.warn)(\"CipherTransformFactory: \" + \"Unable to convert UTF8 encoded password.\");\n          }\n        }\n\n        passwordBytes = (0, _util.stringToBytes)(password);\n      }\n\n      let encryptionKey;\n\n      if (algorithm !== 5) {\n        encryptionKey = prepareKeyData(fileIdBytes, passwordBytes, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n      } else {\n        const ownerValidationSalt = (0, _util.stringToBytes)(dict.get(\"O\")).subarray(32, 40);\n        const ownerKeySalt = (0, _util.stringToBytes)(dict.get(\"O\")).subarray(40, 48);\n        const uBytes = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(0, 48);\n        const userValidationSalt = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(32, 40);\n        const userKeySalt = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(40, 48);\n        const ownerEncryption = (0, _util.stringToBytes)(dict.get(\"OE\"));\n        const userEncryption = (0, _util.stringToBytes)(dict.get(\"UE\"));\n        const perms = (0, _util.stringToBytes)(dict.get(\"Perms\"));\n        encryptionKey = createEncryptionKey20(revision, passwordBytes, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms);\n      }\n\n      if (!encryptionKey && !password) {\n        throw new _util.PasswordException(\"No password given\", _util.PasswordResponses.NEED_PASSWORD);\n      } else if (!encryptionKey && password) {\n        const decodedPassword = decodeUserPassword(passwordBytes, ownerPassword, revision, keyLength);\n        encryptionKey = prepareKeyData(fileIdBytes, decodedPassword, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n      }\n\n      if (!encryptionKey) {\n        throw new _util.PasswordException(\"Incorrect Password\", _util.PasswordResponses.INCORRECT_PASSWORD);\n      }\n\n      this.encryptionKey = encryptionKey;\n\n      if (algorithm >= 4) {\n        const cf = dict.get(\"CF\");\n\n        if (cf instanceof _primitives.Dict) {\n          cf.suppressEncryption = true;\n        }\n\n        this.cf = cf;\n        this.stmf = dict.get(\"StmF\") || identityName;\n        this.strf = dict.get(\"StrF\") || identityName;\n        this.eff = dict.get(\"EFF\") || this.stmf;\n      }\n    }\n\n    createCipherTransform(num, gen) {\n      if (this.algorithm === 4 || this.algorithm === 5) {\n        return new CipherTransform(buildCipherConstructor(this.cf, this.strf, num, gen, this.encryptionKey), buildCipherConstructor(this.cf, this.stmf, num, gen, this.encryptionKey));\n      }\n\n      const key = buildObjectKey(num, gen, this.encryptionKey, false);\n\n      const cipherConstructor = function buildCipherCipherConstructor() {\n        return new ARCFourCipher(key);\n      };\n\n      return new CipherTransform(cipherConstructor, cipherConstructor);\n    }\n\n  }\n\n  return CipherTransformFactory;\n}();\n\nexports.CipherTransformFactory = CipherTransformFactory;\n\n/***/ }),\n/* 193 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.DecryptStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(144);\n\nconst chunkSize = 512;\n\nclass DecryptStream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength, decrypt) {\n    super(maybeLength);\n    this.str = str;\n    this.dict = str.dict;\n    this.decrypt = decrypt;\n    this.nextChunk = null;\n    this.initialized = false;\n  }\n\n  readBlock() {\n    let chunk;\n\n    if (this.initialized) {\n      chunk = this.nextChunk;\n    } else {\n      chunk = this.str.getBytes(chunkSize);\n      this.initialized = true;\n    }\n\n    if (!chunk || chunk.length === 0) {\n      this.eof = true;\n      return;\n    }\n\n    this.nextChunk = this.str.getBytes(chunkSize);\n    const hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n    const decrypt = this.decrypt;\n    chunk = decrypt(chunk, !hasMoreData);\n    let bufferLength = this.bufferLength;\n    const n = chunk.length,\n          buffer = this.ensureBuffer(bufferLength + n);\n\n    for (let i = 0; i < n; i++) {\n      buffer[bufferLength++] = chunk[i];\n    }\n\n    this.bufferLength = bufferLength;\n  }\n\n}\n\nexports.DecryptStream = DecryptStream;\n\n/***/ }),\n/* 194 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Catalog = void 0;\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _name_number_tree = __w_pdfjs_require__(195);\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _cleanup_helper = __w_pdfjs_require__(196);\n\nvar _colorspace = __w_pdfjs_require__(139);\n\nvar _file_spec = __w_pdfjs_require__(197);\n\nvar _image_utils = __w_pdfjs_require__(184);\n\nvar _metadata_parser = __w_pdfjs_require__(198);\n\nvar _struct_tree = __w_pdfjs_require__(199);\n\nfunction fetchDestination(dest) {\n  if (dest instanceof _primitives.Dict) {\n    dest = dest.get(\"D\");\n  }\n\n  return Array.isArray(dest) ? dest : null;\n}\n\nclass Catalog {\n  constructor(pdfManager, xref) {\n    this.pdfManager = pdfManager;\n    this.xref = xref;\n    this._catDict = xref.getCatalogObj();\n\n    if (!(this._catDict instanceof _primitives.Dict)) {\n      throw new _util.FormatError(\"Catalog object is not a dictionary.\");\n    }\n\n    this.toplevelPagesDict;\n    this._actualNumPages = null;\n    this.fontCache = new _primitives.RefSetCache();\n    this.builtInCMapCache = new Map();\n    this.standardFontDataCache = new Map();\n    this.globalImageCache = new _image_utils.GlobalImageCache();\n    this.pageKidsCountCache = new _primitives.RefSetCache();\n    this.pageIndexCache = new _primitives.RefSetCache();\n    this.nonBlendModesSet = new _primitives.RefSet();\n  }\n\n  get version() {\n    const version = this._catDict.get(\"Version\");\n\n    return (0, _util.shadow)(this, \"version\", version instanceof _primitives.Name ? version.name : null);\n  }\n\n  get lang() {\n    const lang = this._catDict.get(\"Lang\");\n\n    return (0, _util.shadow)(this, \"lang\", typeof lang === \"string\" ? (0, _util.stringToPDFString)(lang) : null);\n  }\n\n  get needsRendering() {\n    const needsRendering = this._catDict.get(\"NeedsRendering\");\n\n    return (0, _util.shadow)(this, \"needsRendering\", typeof needsRendering === \"boolean\" ? needsRendering : false);\n  }\n\n  get collection() {\n    let collection = null;\n\n    try {\n      const obj = this._catDict.get(\"Collection\");\n\n      if (obj instanceof _primitives.Dict && obj.size > 0) {\n        collection = obj;\n      }\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.info)(\"Cannot fetch Collection entry; assuming no collection is present.\");\n    }\n\n    return (0, _util.shadow)(this, \"collection\", collection);\n  }\n\n  get acroForm() {\n    let acroForm = null;\n\n    try {\n      const obj = this._catDict.get(\"AcroForm\");\n\n      if (obj instanceof _primitives.Dict && obj.size > 0) {\n        acroForm = obj;\n      }\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.info)(\"Cannot fetch AcroForm entry; assuming no forms are present.\");\n    }\n\n    return (0, _util.shadow)(this, \"acroForm\", acroForm);\n  }\n\n  get acroFormRef() {\n    const value = this._catDict.getRaw(\"AcroForm\");\n\n    return (0, _util.shadow)(this, \"acroFormRef\", value instanceof _primitives.Ref ? value : null);\n  }\n\n  get metadata() {\n    const streamRef = this._catDict.getRaw(\"Metadata\");\n\n    if (!(streamRef instanceof _primitives.Ref)) {\n      return (0, _util.shadow)(this, \"metadata\", null);\n    }\n\n    let metadata = null;\n\n    try {\n      const suppressEncryption = !(this.xref.encrypt && this.xref.encrypt.encryptMetadata);\n      const stream = this.xref.fetch(streamRef, suppressEncryption);\n\n      if (stream instanceof _base_stream.BaseStream && stream.dict instanceof _primitives.Dict) {\n        const type = stream.dict.get(\"Type\");\n        const subtype = stream.dict.get(\"Subtype\");\n\n        if ((0, _primitives.isName)(type, \"Metadata\") && (0, _primitives.isName)(subtype, \"XML\")) {\n          const data = (0, _util.stringToUTF8String)(stream.getString());\n\n          if (data) {\n            metadata = new _metadata_parser.MetadataParser(data).serializable;\n          }\n        }\n      }\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.info)(`Skipping invalid Metadata: \"${ex}\".`);\n    }\n\n    return (0, _util.shadow)(this, \"metadata\", metadata);\n  }\n\n  get markInfo() {\n    let markInfo = null;\n\n    try {\n      markInfo = this._readMarkInfo();\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(\"Unable to read mark info.\");\n    }\n\n    return (0, _util.shadow)(this, \"markInfo\", markInfo);\n  }\n\n  _readMarkInfo() {\n    const obj = this._catDict.get(\"MarkInfo\");\n\n    if (!(obj instanceof _primitives.Dict)) {\n      return null;\n    }\n\n    const markInfo = {\n      Marked: false,\n      UserProperties: false,\n      Suspects: false\n    };\n\n    for (const key in markInfo) {\n      const value = obj.get(key);\n\n      if (typeof value === \"boolean\") {\n        markInfo[key] = value;\n      }\n    }\n\n    return markInfo;\n  }\n\n  get structTreeRoot() {\n    let structTree = null;\n\n    try {\n      structTree = this._readStructTreeRoot();\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(\"Unable read to structTreeRoot info.\");\n    }\n\n    return (0, _util.shadow)(this, \"structTreeRoot\", structTree);\n  }\n\n  _readStructTreeRoot() {\n    const obj = this._catDict.get(\"StructTreeRoot\");\n\n    if (!(obj instanceof _primitives.Dict)) {\n      return null;\n    }\n\n    const root = new _struct_tree.StructTreeRoot(obj);\n    root.init();\n    return root;\n  }\n\n  get toplevelPagesDict() {\n    const pagesObj = this._catDict.get(\"Pages\");\n\n    if (!(pagesObj instanceof _primitives.Dict)) {\n      throw new _util.FormatError(\"Invalid top-level pages dictionary.\");\n    }\n\n    return (0, _util.shadow)(this, \"toplevelPagesDict\", pagesObj);\n  }\n\n  get documentOutline() {\n    let obj = null;\n\n    try {\n      obj = this._readDocumentOutline();\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(\"Unable to read document outline.\");\n    }\n\n    return (0, _util.shadow)(this, \"documentOutline\", obj);\n  }\n\n  _readDocumentOutline() {\n    let obj = this._catDict.get(\"Outlines\");\n\n    if (!(obj instanceof _primitives.Dict)) {\n      return null;\n    }\n\n    obj = obj.getRaw(\"First\");\n\n    if (!(obj instanceof _primitives.Ref)) {\n      return null;\n    }\n\n    const root = {\n      items: []\n    };\n    const queue = [{\n      obj,\n      parent: root\n    }];\n    const processed = new _primitives.RefSet();\n    processed.put(obj);\n    const xref = this.xref,\n          blackColor = new Uint8ClampedArray(3);\n\n    while (queue.length > 0) {\n      const i = queue.shift();\n      const outlineDict = xref.fetchIfRef(i.obj);\n\n      if (outlineDict === null) {\n        continue;\n      }\n\n      if (!outlineDict.has(\"Title\")) {\n        throw new _util.FormatError(\"Invalid outline item encountered.\");\n      }\n\n      const data = {\n        url: null,\n        dest: null\n      };\n      Catalog.parseDestDictionary({\n        destDict: outlineDict,\n        resultObj: data,\n        docBaseUrl: this.pdfManager.docBaseUrl\n      });\n      const title = outlineDict.get(\"Title\");\n      const flags = outlineDict.get(\"F\") || 0;\n      const color = outlineDict.getArray(\"C\");\n      const count = outlineDict.get(\"Count\");\n      let rgbColor = blackColor;\n\n      if (Array.isArray(color) && color.length === 3 && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) {\n        rgbColor = _colorspace.ColorSpace.singletons.rgb.getRgb(color, 0);\n      }\n\n      const outlineItem = {\n        dest: data.dest,\n        url: data.url,\n        unsafeUrl: data.unsafeUrl,\n        newWindow: data.newWindow,\n        title: (0, _util.stringToPDFString)(title),\n        color: rgbColor,\n        count: Number.isInteger(count) ? count : undefined,\n        bold: !!(flags & 2),\n        italic: !!(flags & 1),\n        items: []\n      };\n      i.parent.items.push(outlineItem);\n      obj = outlineDict.getRaw(\"First\");\n\n      if (obj instanceof _primitives.Ref && !processed.has(obj)) {\n        queue.push({\n          obj,\n          parent: outlineItem\n        });\n        processed.put(obj);\n      }\n\n      obj = outlineDict.getRaw(\"Next\");\n\n      if (obj instanceof _primitives.Ref && !processed.has(obj)) {\n        queue.push({\n          obj,\n          parent: i.parent\n        });\n        processed.put(obj);\n      }\n    }\n\n    return root.items.length > 0 ? root.items : null;\n  }\n\n  get permissions() {\n    let permissions = null;\n\n    try {\n      permissions = this._readPermissions();\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(\"Unable to read permissions.\");\n    }\n\n    return (0, _util.shadow)(this, \"permissions\", permissions);\n  }\n\n  _readPermissions() {\n    const encrypt = this.xref.trailer.get(\"Encrypt\");\n\n    if (!(encrypt instanceof _primitives.Dict)) {\n      return null;\n    }\n\n    let flags = encrypt.get(\"P\");\n\n    if (typeof flags !== \"number\") {\n      return null;\n    }\n\n    flags += 2 ** 32;\n    const permissions = [];\n\n    for (const key in _util.PermissionFlag) {\n      const value = _util.PermissionFlag[key];\n\n      if (flags & value) {\n        permissions.push(value);\n      }\n    }\n\n    return permissions;\n  }\n\n  get optionalContentConfig() {\n    let config = null;\n\n    try {\n      const properties = this._catDict.get(\"OCProperties\");\n\n      if (!properties) {\n        return (0, _util.shadow)(this, \"optionalContentConfig\", null);\n      }\n\n      const defaultConfig = properties.get(\"D\");\n\n      if (!defaultConfig) {\n        return (0, _util.shadow)(this, \"optionalContentConfig\", null);\n      }\n\n      const groupsData = properties.get(\"OCGs\");\n\n      if (!Array.isArray(groupsData)) {\n        return (0, _util.shadow)(this, \"optionalContentConfig\", null);\n      }\n\n      const groups = [];\n      const groupRefs = [];\n\n      for (const groupRef of groupsData) {\n        if (!(groupRef instanceof _primitives.Ref)) {\n          continue;\n        }\n\n        groupRefs.push(groupRef);\n        const group = this.xref.fetchIfRef(groupRef);\n        groups.push({\n          id: groupRef.toString(),\n          name: typeof group.get(\"Name\") === \"string\" ? (0, _util.stringToPDFString)(group.get(\"Name\")) : null,\n          intent: typeof group.get(\"Intent\") === \"string\" ? (0, _util.stringToPDFString)(group.get(\"Intent\")) : null\n        });\n      }\n\n      config = this._readOptionalContentConfig(defaultConfig, groupRefs);\n      config.groups = groups;\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(`Unable to read optional content config: ${ex}`);\n    }\n\n    return (0, _util.shadow)(this, \"optionalContentConfig\", config);\n  }\n\n  _readOptionalContentConfig(config, contentGroupRefs) {\n    function parseOnOff(refs) {\n      const onParsed = [];\n\n      if (Array.isArray(refs)) {\n        for (const value of refs) {\n          if (!(value instanceof _primitives.Ref)) {\n            continue;\n          }\n\n          if (contentGroupRefs.includes(value)) {\n            onParsed.push(value.toString());\n          }\n        }\n      }\n\n      return onParsed;\n    }\n\n    function parseOrder(refs) {\n      let nestedLevels = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n      if (!Array.isArray(refs)) {\n        return null;\n      }\n\n      const order = [];\n\n      for (const value of refs) {\n        if (value instanceof _primitives.Ref && contentGroupRefs.includes(value)) {\n          parsedOrderRefs.put(value);\n          order.push(value.toString());\n          continue;\n        }\n\n        const nestedOrder = parseNestedOrder(value, nestedLevels);\n\n        if (nestedOrder) {\n          order.push(nestedOrder);\n        }\n      }\n\n      if (nestedLevels > 0) {\n        return order;\n      }\n\n      const hiddenGroups = [];\n\n      for (const groupRef of contentGroupRefs) {\n        if (parsedOrderRefs.has(groupRef)) {\n          continue;\n        }\n\n        hiddenGroups.push(groupRef.toString());\n      }\n\n      if (hiddenGroups.length) {\n        order.push({\n          name: null,\n          order: hiddenGroups\n        });\n      }\n\n      return order;\n    }\n\n    function parseNestedOrder(ref, nestedLevels) {\n      if (++nestedLevels > MAX_NESTED_LEVELS) {\n        (0, _util.warn)(\"parseNestedOrder - reached MAX_NESTED_LEVELS.\");\n        return null;\n      }\n\n      const value = xref.fetchIfRef(ref);\n\n      if (!Array.isArray(value)) {\n        return null;\n      }\n\n      const nestedName = xref.fetchIfRef(value[0]);\n\n      if (typeof nestedName !== \"string\") {\n        return null;\n      }\n\n      const nestedOrder = parseOrder(value.slice(1), nestedLevels);\n\n      if (!nestedOrder || !nestedOrder.length) {\n        return null;\n      }\n\n      return {\n        name: (0, _util.stringToPDFString)(nestedName),\n        order: nestedOrder\n      };\n    }\n\n    const xref = this.xref,\n          parsedOrderRefs = new _primitives.RefSet(),\n          MAX_NESTED_LEVELS = 10;\n    return {\n      name: typeof config.get(\"Name\") === \"string\" ? (0, _util.stringToPDFString)(config.get(\"Name\")) : null,\n      creator: typeof config.get(\"Creator\") === \"string\" ? (0, _util.stringToPDFString)(config.get(\"Creator\")) : null,\n      baseState: config.get(\"BaseState\") instanceof _primitives.Name ? config.get(\"BaseState\").name : null,\n      on: parseOnOff(config.get(\"ON\")),\n      off: parseOnOff(config.get(\"OFF\")),\n      order: parseOrder(config.get(\"Order\")),\n      groups: null\n    };\n  }\n\n  setActualNumPages() {\n    let num = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    this._actualNumPages = num;\n  }\n\n  get hasActualNumPages() {\n    return this._actualNumPages !== null;\n  }\n\n  get _pagesCount() {\n    const obj = this.toplevelPagesDict.get(\"Count\");\n\n    if (!Number.isInteger(obj)) {\n      throw new _util.FormatError(\"Page count in top-level pages dictionary is not an integer.\");\n    }\n\n    return (0, _util.shadow)(this, \"_pagesCount\", obj);\n  }\n\n  get numPages() {\n    return this.hasActualNumPages ? this._actualNumPages : this._pagesCount;\n  }\n\n  get destinations() {\n    const obj = this._readDests(),\n          dests = Object.create(null);\n\n    if (obj instanceof _name_number_tree.NameTree) {\n      for (const [key, value] of obj.getAll()) {\n        const dest = fetchDestination(value);\n\n        if (dest) {\n          dests[(0, _util.stringToPDFString)(key)] = dest;\n        }\n      }\n    } else if (obj instanceof _primitives.Dict) {\n      obj.forEach(function (key, value) {\n        const dest = fetchDestination(value);\n\n        if (dest) {\n          dests[key] = dest;\n        }\n      });\n    }\n\n    return (0, _util.shadow)(this, \"destinations\", dests);\n  }\n\n  getDestination(id) {\n    const obj = this._readDests();\n\n    if (obj instanceof _name_number_tree.NameTree) {\n      const dest = fetchDestination(obj.get(id));\n\n      if (dest) {\n        return dest;\n      }\n\n      const allDest = this.destinations[id];\n\n      if (allDest) {\n        (0, _util.warn)(`Found \"${id}\" at an incorrect position in the NameTree.`);\n        return allDest;\n      }\n    } else if (obj instanceof _primitives.Dict) {\n      const dest = fetchDestination(obj.get(id));\n\n      if (dest) {\n        return dest;\n      }\n    }\n\n    return null;\n  }\n\n  _readDests() {\n    const obj = this._catDict.get(\"Names\");\n\n    if (obj && obj.has(\"Dests\")) {\n      return new _name_number_tree.NameTree(obj.getRaw(\"Dests\"), this.xref);\n    } else if (this._catDict.has(\"Dests\")) {\n      return this._catDict.get(\"Dests\");\n    }\n\n    return undefined;\n  }\n\n  get pageLabels() {\n    let obj = null;\n\n    try {\n      obj = this._readPageLabels();\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(\"Unable to read page labels.\");\n    }\n\n    return (0, _util.shadow)(this, \"pageLabels\", obj);\n  }\n\n  _readPageLabels() {\n    const obj = this._catDict.getRaw(\"PageLabels\");\n\n    if (!obj) {\n      return null;\n    }\n\n    const pageLabels = new Array(this.numPages);\n    let style = null,\n        prefix = \"\";\n    const numberTree = new _name_number_tree.NumberTree(obj, this.xref);\n    const nums = numberTree.getAll();\n    let currentLabel = \"\",\n        currentIndex = 1;\n\n    for (let i = 0, ii = this.numPages; i < ii; i++) {\n      const labelDict = nums.get(i);\n\n      if (labelDict !== undefined) {\n        if (!(labelDict instanceof _primitives.Dict)) {\n          throw new _util.FormatError(\"PageLabel is not a dictionary.\");\n        }\n\n        if (labelDict.has(\"Type\") && !(0, _primitives.isName)(labelDict.get(\"Type\"), \"PageLabel\")) {\n          throw new _util.FormatError(\"Invalid type in PageLabel dictionary.\");\n        }\n\n        if (labelDict.has(\"S\")) {\n          const s = labelDict.get(\"S\");\n\n          if (!(s instanceof _primitives.Name)) {\n            throw new _util.FormatError(\"Invalid style in PageLabel dictionary.\");\n          }\n\n          style = s.name;\n        } else {\n          style = null;\n        }\n\n        if (labelDict.has(\"P\")) {\n          const p = labelDict.get(\"P\");\n\n          if (typeof p !== \"string\") {\n            throw new _util.FormatError(\"Invalid prefix in PageLabel dictionary.\");\n          }\n\n          prefix = (0, _util.stringToPDFString)(p);\n        } else {\n          prefix = \"\";\n        }\n\n        if (labelDict.has(\"St\")) {\n          const st = labelDict.get(\"St\");\n\n          if (!(Number.isInteger(st) && st >= 1)) {\n            throw new _util.FormatError(\"Invalid start in PageLabel dictionary.\");\n          }\n\n          currentIndex = st;\n        } else {\n          currentIndex = 1;\n        }\n      }\n\n      switch (style) {\n        case \"D\":\n          currentLabel = currentIndex;\n          break;\n\n        case \"R\":\n        case \"r\":\n          currentLabel = (0, _core_utils.toRomanNumerals)(currentIndex, style === \"r\");\n          break;\n\n        case \"A\":\n        case \"a\":\n          const LIMIT = 26;\n          const A_UPPER_CASE = 0x41,\n                A_LOWER_CASE = 0x61;\n          const baseCharCode = style === \"a\" ? A_LOWER_CASE : A_UPPER_CASE;\n          const letterIndex = currentIndex - 1;\n          const character = String.fromCharCode(baseCharCode + letterIndex % LIMIT);\n          currentLabel = character.repeat(Math.floor(letterIndex / LIMIT) + 1);\n          break;\n\n        default:\n          if (style) {\n            throw new _util.FormatError(`Invalid style \"${style}\" in PageLabel dictionary.`);\n          }\n\n          currentLabel = \"\";\n      }\n\n      pageLabels[i] = prefix + currentLabel;\n      currentIndex++;\n    }\n\n    return pageLabels;\n  }\n\n  get pageLayout() {\n    const obj = this._catDict.get(\"PageLayout\");\n\n    let pageLayout = \"\";\n\n    if (obj instanceof _primitives.Name) {\n      switch (obj.name) {\n        case \"SinglePage\":\n        case \"OneColumn\":\n        case \"TwoColumnLeft\":\n        case \"TwoColumnRight\":\n        case \"TwoPageLeft\":\n        case \"TwoPageRight\":\n          pageLayout = obj.name;\n      }\n    }\n\n    return (0, _util.shadow)(this, \"pageLayout\", pageLayout);\n  }\n\n  get pageMode() {\n    const obj = this._catDict.get(\"PageMode\");\n\n    let pageMode = \"UseNone\";\n\n    if (obj instanceof _primitives.Name) {\n      switch (obj.name) {\n        case \"UseNone\":\n        case \"UseOutlines\":\n        case \"UseThumbs\":\n        case \"FullScreen\":\n        case \"UseOC\":\n        case \"UseAttachments\":\n          pageMode = obj.name;\n      }\n    }\n\n    return (0, _util.shadow)(this, \"pageMode\", pageMode);\n  }\n\n  get viewerPreferences() {\n    const obj = this._catDict.get(\"ViewerPreferences\");\n\n    if (!(obj instanceof _primitives.Dict)) {\n      return (0, _util.shadow)(this, \"viewerPreferences\", null);\n    }\n\n    let prefs = null;\n\n    for (const key of obj.getKeys()) {\n      const value = obj.get(key);\n      let prefValue;\n\n      switch (key) {\n        case \"HideToolbar\":\n        case \"HideMenubar\":\n        case \"HideWindowUI\":\n        case \"FitWindow\":\n        case \"CenterWindow\":\n        case \"DisplayDocTitle\":\n        case \"PickTrayByPDFSize\":\n          if (typeof value === \"boolean\") {\n            prefValue = value;\n          }\n\n          break;\n\n        case \"NonFullScreenPageMode\":\n          if (value instanceof _primitives.Name) {\n            switch (value.name) {\n              case \"UseNone\":\n              case \"UseOutlines\":\n              case \"UseThumbs\":\n              case \"UseOC\":\n                prefValue = value.name;\n                break;\n\n              default:\n                prefValue = \"UseNone\";\n            }\n          }\n\n          break;\n\n        case \"Direction\":\n          if (value instanceof _primitives.Name) {\n            switch (value.name) {\n              case \"L2R\":\n              case \"R2L\":\n                prefValue = value.name;\n                break;\n\n              default:\n                prefValue = \"L2R\";\n            }\n          }\n\n          break;\n\n        case \"ViewArea\":\n        case \"ViewClip\":\n        case \"PrintArea\":\n        case \"PrintClip\":\n          if (value instanceof _primitives.Name) {\n            switch (value.name) {\n              case \"MediaBox\":\n              case \"CropBox\":\n              case \"BleedBox\":\n              case \"TrimBox\":\n              case \"ArtBox\":\n                prefValue = value.name;\n                break;\n\n              default:\n                prefValue = \"CropBox\";\n            }\n          }\n\n          break;\n\n        case \"PrintScaling\":\n          if (value instanceof _primitives.Name) {\n            switch (value.name) {\n              case \"None\":\n              case \"AppDefault\":\n                prefValue = value.name;\n                break;\n\n              default:\n                prefValue = \"AppDefault\";\n            }\n          }\n\n          break;\n\n        case \"Duplex\":\n          if (value instanceof _primitives.Name) {\n            switch (value.name) {\n              case \"Simplex\":\n              case \"DuplexFlipShortEdge\":\n              case \"DuplexFlipLongEdge\":\n                prefValue = value.name;\n                break;\n\n              default:\n                prefValue = \"None\";\n            }\n          }\n\n          break;\n\n        case \"PrintPageRange\":\n          if (Array.isArray(value) && value.length % 2 === 0) {\n            const isValid = value.every((page, i, arr) => {\n              return Number.isInteger(page) && page > 0 && (i === 0 || page >= arr[i - 1]) && page <= this.numPages;\n            });\n\n            if (isValid) {\n              prefValue = value;\n            }\n          }\n\n          break;\n\n        case \"NumCopies\":\n          if (Number.isInteger(value) && value > 0) {\n            prefValue = value;\n          }\n\n          break;\n\n        default:\n          (0, _util.warn)(`Ignoring non-standard key in ViewerPreferences: ${key}.`);\n          continue;\n      }\n\n      if (prefValue === undefined) {\n        (0, _util.warn)(`Bad value, for key \"${key}\", in ViewerPreferences: ${value}.`);\n        continue;\n      }\n\n      if (!prefs) {\n        prefs = Object.create(null);\n      }\n\n      prefs[key] = prefValue;\n    }\n\n    return (0, _util.shadow)(this, \"viewerPreferences\", prefs);\n  }\n\n  get openAction() {\n    const obj = this._catDict.get(\"OpenAction\");\n\n    const openAction = Object.create(null);\n\n    if (obj instanceof _primitives.Dict) {\n      const destDict = new _primitives.Dict(this.xref);\n      destDict.set(\"A\", obj);\n      const resultObj = {\n        url: null,\n        dest: null,\n        action: null\n      };\n      Catalog.parseDestDictionary({\n        destDict,\n        resultObj\n      });\n\n      if (Array.isArray(resultObj.dest)) {\n        openAction.dest = resultObj.dest;\n      } else if (resultObj.action) {\n        openAction.action = resultObj.action;\n      }\n    } else if (Array.isArray(obj)) {\n      openAction.dest = obj;\n    }\n\n    return (0, _util.shadow)(this, \"openAction\", (0, _util.objectSize)(openAction) > 0 ? openAction : null);\n  }\n\n  get attachments() {\n    const obj = this._catDict.get(\"Names\");\n\n    let attachments = null;\n\n    if (obj instanceof _primitives.Dict && obj.has(\"EmbeddedFiles\")) {\n      const nameTree = new _name_number_tree.NameTree(obj.getRaw(\"EmbeddedFiles\"), this.xref);\n\n      for (const [key, value] of nameTree.getAll()) {\n        const fs = new _file_spec.FileSpec(value, this.xref);\n\n        if (!attachments) {\n          attachments = Object.create(null);\n        }\n\n        attachments[(0, _util.stringToPDFString)(key)] = fs.serializable;\n      }\n    }\n\n    return (0, _util.shadow)(this, \"attachments\", attachments);\n  }\n\n  get xfaImages() {\n    const obj = this._catDict.get(\"Names\");\n\n    let xfaImages = null;\n\n    if (obj instanceof _primitives.Dict && obj.has(\"XFAImages\")) {\n      const nameTree = new _name_number_tree.NameTree(obj.getRaw(\"XFAImages\"), this.xref);\n\n      for (const [key, value] of nameTree.getAll()) {\n        if (!xfaImages) {\n          xfaImages = new _primitives.Dict(this.xref);\n        }\n\n        xfaImages.set((0, _util.stringToPDFString)(key), value);\n      }\n    }\n\n    return (0, _util.shadow)(this, \"xfaImages\", xfaImages);\n  }\n\n  _collectJavaScript() {\n    const obj = this._catDict.get(\"Names\");\n\n    let javaScript = null;\n\n    function appendIfJavaScriptDict(name, jsDict) {\n      if (!(jsDict instanceof _primitives.Dict)) {\n        return;\n      }\n\n      if (!(0, _primitives.isName)(jsDict.get(\"S\"), \"JavaScript\")) {\n        return;\n      }\n\n      let js = jsDict.get(\"JS\");\n\n      if (js instanceof _base_stream.BaseStream) {\n        js = js.getString();\n      } else if (typeof js !== \"string\") {\n        return;\n      }\n\n      if (javaScript === null) {\n        javaScript = new Map();\n      }\n\n      js = (0, _util.stringToPDFString)(js).replace(/\\u0000/g, \"\");\n      javaScript.set(name, js);\n    }\n\n    if (obj instanceof _primitives.Dict && obj.has(\"JavaScript\")) {\n      const nameTree = new _name_number_tree.NameTree(obj.getRaw(\"JavaScript\"), this.xref);\n\n      for (const [key, value] of nameTree.getAll()) {\n        appendIfJavaScriptDict((0, _util.stringToPDFString)(key), value);\n      }\n    }\n\n    const openAction = this._catDict.get(\"OpenAction\");\n\n    if (openAction) {\n      appendIfJavaScriptDict(\"OpenAction\", openAction);\n    }\n\n    return javaScript;\n  }\n\n  get javaScript() {\n    const javaScript = this._collectJavaScript();\n\n    return (0, _util.shadow)(this, \"javaScript\", javaScript ? [...javaScript.values()] : null);\n  }\n\n  get jsActions() {\n    const javaScript = this._collectJavaScript();\n\n    let actions = (0, _core_utils.collectActions)(this.xref, this._catDict, _util.DocumentActionEventType);\n\n    if (javaScript) {\n      if (!actions) {\n        actions = Object.create(null);\n      }\n\n      for (const [key, val] of javaScript) {\n        if (key in actions) {\n          actions[key].push(val);\n        } else {\n          actions[key] = [val];\n        }\n      }\n    }\n\n    return (0, _util.shadow)(this, \"jsActions\", actions);\n  }\n\n  async fontFallback(id, handler) {\n    const translatedFonts = await Promise.all(this.fontCache);\n\n    for (const translatedFont of translatedFonts) {\n      if (translatedFont.loadedName === id) {\n        translatedFont.fallback(handler);\n        return;\n      }\n    }\n  }\n\n  async cleanup() {\n    let manuallyTriggered = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    (0, _cleanup_helper.clearGlobalCaches)();\n    this.globalImageCache.clear(manuallyTriggered);\n    this.pageKidsCountCache.clear();\n    this.pageIndexCache.clear();\n    this.nonBlendModesSet.clear();\n    const translatedFonts = await Promise.all(this.fontCache);\n\n    for (const {\n      dict\n    } of translatedFonts) {\n      delete dict.cacheKey;\n    }\n\n    this.fontCache.clear();\n    this.builtInCMapCache.clear();\n    this.standardFontDataCache.clear();\n  }\n\n  async getPageDict(pageIndex) {\n    const nodesToVisit = [this.toplevelPagesDict];\n    const visitedNodes = new _primitives.RefSet();\n\n    const pagesRef = this._catDict.getRaw(\"Pages\");\n\n    if (pagesRef instanceof _primitives.Ref) {\n      visitedNodes.put(pagesRef);\n    }\n\n    const xref = this.xref,\n          pageKidsCountCache = this.pageKidsCountCache,\n          pageIndexCache = this.pageIndexCache;\n    let currentPageIndex = 0;\n\n    while (nodesToVisit.length) {\n      const currentNode = nodesToVisit.pop();\n\n      if (currentNode instanceof _primitives.Ref) {\n        const count = pageKidsCountCache.get(currentNode);\n\n        if (count >= 0 && currentPageIndex + count <= pageIndex) {\n          currentPageIndex += count;\n          continue;\n        }\n\n        if (visitedNodes.has(currentNode)) {\n          throw new _util.FormatError(\"Pages tree contains circular reference.\");\n        }\n\n        visitedNodes.put(currentNode);\n        const obj = await xref.fetchAsync(currentNode);\n\n        if (obj instanceof _primitives.Dict) {\n          let type = obj.getRaw(\"Type\");\n\n          if (type instanceof _primitives.Ref) {\n            type = await xref.fetchAsync(type);\n          }\n\n          if ((0, _primitives.isName)(type, \"Page\") || !obj.has(\"Kids\")) {\n            if (!pageKidsCountCache.has(currentNode)) {\n              pageKidsCountCache.put(currentNode, 1);\n            }\n\n            if (!pageIndexCache.has(currentNode)) {\n              pageIndexCache.put(currentNode, currentPageIndex);\n            }\n\n            if (currentPageIndex === pageIndex) {\n              return [obj, currentNode];\n            }\n\n            currentPageIndex++;\n            continue;\n          }\n        }\n\n        nodesToVisit.push(obj);\n        continue;\n      }\n\n      if (!(currentNode instanceof _primitives.Dict)) {\n        throw new _util.FormatError(\"Page dictionary kid reference points to wrong type of object.\");\n      }\n\n      const {\n        objId\n      } = currentNode;\n      let count = currentNode.getRaw(\"Count\");\n\n      if (count instanceof _primitives.Ref) {\n        count = await xref.fetchAsync(count);\n      }\n\n      if (Number.isInteger(count) && count >= 0) {\n        if (objId && !pageKidsCountCache.has(objId)) {\n          pageKidsCountCache.put(objId, count);\n        }\n\n        if (currentPageIndex + count <= pageIndex) {\n          currentPageIndex += count;\n          continue;\n        }\n      }\n\n      let kids = currentNode.getRaw(\"Kids\");\n\n      if (kids instanceof _primitives.Ref) {\n        kids = await xref.fetchAsync(kids);\n      }\n\n      if (!Array.isArray(kids)) {\n        let type = currentNode.getRaw(\"Type\");\n\n        if (type instanceof _primitives.Ref) {\n          type = await xref.fetchAsync(type);\n        }\n\n        if ((0, _primitives.isName)(type, \"Page\") || !currentNode.has(\"Kids\")) {\n          if (currentPageIndex === pageIndex) {\n            return [currentNode, null];\n          }\n\n          currentPageIndex++;\n          continue;\n        }\n\n        throw new _util.FormatError(\"Page dictionary kids object is not an array.\");\n      }\n\n      for (let last = kids.length - 1; last >= 0; last--) {\n        nodesToVisit.push(kids[last]);\n      }\n    }\n\n    throw new Error(`Page index ${pageIndex} not found.`);\n  }\n\n  async getAllPageDicts() {\n    let recoveryMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    const queue = [{\n      currentNode: this.toplevelPagesDict,\n      posInKids: 0\n    }];\n    const visitedNodes = new _primitives.RefSet();\n\n    const pagesRef = this._catDict.getRaw(\"Pages\");\n\n    if (pagesRef instanceof _primitives.Ref) {\n      visitedNodes.put(pagesRef);\n    }\n\n    const map = new Map(),\n          xref = this.xref,\n          pageIndexCache = this.pageIndexCache;\n    let pageIndex = 0;\n\n    function addPageDict(pageDict, pageRef) {\n      if (pageRef && !pageIndexCache.has(pageRef)) {\n        pageIndexCache.put(pageRef, pageIndex);\n      }\n\n      map.set(pageIndex++, [pageDict, pageRef]);\n    }\n\n    function addPageError(error) {\n      if (error instanceof _core_utils.XRefEntryException && !recoveryMode) {\n        throw error;\n      }\n\n      map.set(pageIndex++, [error, null]);\n    }\n\n    while (queue.length > 0) {\n      const queueItem = queue.at(-1);\n      const {\n        currentNode,\n        posInKids\n      } = queueItem;\n      let kids = currentNode.getRaw(\"Kids\");\n\n      if (kids instanceof _primitives.Ref) {\n        try {\n          kids = await xref.fetchAsync(kids);\n        } catch (ex) {\n          addPageError(ex);\n          break;\n        }\n      }\n\n      if (!Array.isArray(kids)) {\n        addPageError(new _util.FormatError(\"Page dictionary kids object is not an array.\"));\n        break;\n      }\n\n      if (posInKids >= kids.length) {\n        queue.pop();\n        continue;\n      }\n\n      const kidObj = kids[posInKids];\n      let obj;\n\n      if (kidObj instanceof _primitives.Ref) {\n        if (visitedNodes.has(kidObj)) {\n          addPageError(new _util.FormatError(\"Pages tree contains circular reference.\"));\n          break;\n        }\n\n        visitedNodes.put(kidObj);\n\n        try {\n          obj = await xref.fetchAsync(kidObj);\n        } catch (ex) {\n          addPageError(ex);\n          break;\n        }\n      } else {\n        obj = kidObj;\n      }\n\n      if (!(obj instanceof _primitives.Dict)) {\n        addPageError(new _util.FormatError(\"Page dictionary kid reference points to wrong type of object.\"));\n        break;\n      }\n\n      let type = obj.getRaw(\"Type\");\n\n      if (type instanceof _primitives.Ref) {\n        try {\n          type = await xref.fetchAsync(type);\n        } catch (ex) {\n          addPageError(ex);\n          break;\n        }\n      }\n\n      if ((0, _primitives.isName)(type, \"Page\") || !obj.has(\"Kids\")) {\n        addPageDict(obj, kidObj instanceof _primitives.Ref ? kidObj : null);\n      } else {\n        queue.push({\n          currentNode: obj,\n          posInKids: 0\n        });\n      }\n\n      queueItem.posInKids++;\n    }\n\n    return map;\n  }\n\n  getPageIndex(pageRef) {\n    const cachedPageIndex = this.pageIndexCache.get(pageRef);\n\n    if (cachedPageIndex !== undefined) {\n      return Promise.resolve(cachedPageIndex);\n    }\n\n    const xref = this.xref;\n\n    function pagesBeforeRef(kidRef) {\n      let total = 0,\n          parentRef;\n      return xref.fetchAsync(kidRef).then(function (node) {\n        if ((0, _primitives.isRefsEqual)(kidRef, pageRef) && !(0, _primitives.isDict)(node, \"Page\") && !(node instanceof _primitives.Dict && !node.has(\"Type\") && node.has(\"Contents\"))) {\n          throw new _util.FormatError(\"The reference does not point to a /Page dictionary.\");\n        }\n\n        if (!node) {\n          return null;\n        }\n\n        if (!(node instanceof _primitives.Dict)) {\n          throw new _util.FormatError(\"Node must be a dictionary.\");\n        }\n\n        parentRef = node.getRaw(\"Parent\");\n        return node.getAsync(\"Parent\");\n      }).then(function (parent) {\n        if (!parent) {\n          return null;\n        }\n\n        if (!(parent instanceof _primitives.Dict)) {\n          throw new _util.FormatError(\"Parent must be a dictionary.\");\n        }\n\n        return parent.getAsync(\"Kids\");\n      }).then(function (kids) {\n        if (!kids) {\n          return null;\n        }\n\n        const kidPromises = [];\n        let found = false;\n\n        for (let i = 0, ii = kids.length; i < ii; i++) {\n          const kid = kids[i];\n\n          if (!(kid instanceof _primitives.Ref)) {\n            throw new _util.FormatError(\"Kid must be a reference.\");\n          }\n\n          if ((0, _primitives.isRefsEqual)(kid, kidRef)) {\n            found = true;\n            break;\n          }\n\n          kidPromises.push(xref.fetchAsync(kid).then(function (obj) {\n            if (!(obj instanceof _primitives.Dict)) {\n              throw new _util.FormatError(\"Kid node must be a dictionary.\");\n            }\n\n            if (obj.has(\"Count\")) {\n              total += obj.get(\"Count\");\n            } else {\n              total++;\n            }\n          }));\n        }\n\n        if (!found) {\n          throw new _util.FormatError(\"Kid reference not found in parent's kids.\");\n        }\n\n        return Promise.all(kidPromises).then(function () {\n          return [total, parentRef];\n        });\n      });\n    }\n\n    let total = 0;\n\n    const next = ref => pagesBeforeRef(ref).then(args => {\n      if (!args) {\n        this.pageIndexCache.put(pageRef, total);\n        return total;\n      }\n\n      const [count, parentRef] = args;\n      total += count;\n      return next(parentRef);\n    });\n\n    return next(pageRef);\n  }\n\n  get baseUrl() {\n    const uri = this._catDict.get(\"URI\");\n\n    if (uri instanceof _primitives.Dict) {\n      const base = uri.get(\"Base\");\n\n      if (typeof base === \"string\") {\n        const absoluteUrl = (0, _util.createValidAbsoluteUrl)(base, null, {\n          tryConvertEncoding: true\n        });\n\n        if (absoluteUrl) {\n          return (0, _util.shadow)(this, \"baseUrl\", absoluteUrl.href);\n        }\n      }\n    }\n\n    return (0, _util.shadow)(this, \"baseUrl\", null);\n  }\n\n  static parseDestDictionary(params) {\n    const destDict = params.destDict;\n\n    if (!(destDict instanceof _primitives.Dict)) {\n      (0, _util.warn)(\"parseDestDictionary: `destDict` must be a dictionary.\");\n      return;\n    }\n\n    const resultObj = params.resultObj;\n\n    if (typeof resultObj !== \"object\") {\n      (0, _util.warn)(\"parseDestDictionary: `resultObj` must be an object.\");\n      return;\n    }\n\n    const docBaseUrl = params.docBaseUrl || null;\n    let action = destDict.get(\"A\"),\n        url,\n        dest;\n\n    if (!(action instanceof _primitives.Dict)) {\n      if (destDict.has(\"Dest\")) {\n        action = destDict.get(\"Dest\");\n      } else {\n        action = destDict.get(\"AA\");\n\n        if (action instanceof _primitives.Dict) {\n          if (action.has(\"D\")) {\n            action = action.get(\"D\");\n          } else if (action.has(\"U\")) {\n            action = action.get(\"U\");\n          }\n        }\n      }\n    }\n\n    if (action instanceof _primitives.Dict) {\n      const actionType = action.get(\"S\");\n\n      if (!(actionType instanceof _primitives.Name)) {\n        (0, _util.warn)(\"parseDestDictionary: Invalid type in Action dictionary.\");\n        return;\n      }\n\n      const actionName = actionType.name;\n\n      switch (actionName) {\n        case \"ResetForm\":\n          const flags = action.get(\"Flags\");\n          const include = ((typeof flags === \"number\" ? flags : 0) & 1) === 0;\n          const fields = [];\n          const refs = [];\n\n          for (const obj of action.get(\"Fields\") || []) {\n            if (obj instanceof _primitives.Ref) {\n              refs.push(obj.toString());\n            } else if (typeof obj === \"string\") {\n              fields.push((0, _util.stringToPDFString)(obj));\n            }\n          }\n\n          resultObj.resetForm = {\n            fields,\n            refs,\n            include\n          };\n          break;\n\n        case \"URI\":\n          url = action.get(\"URI\");\n\n          if (url instanceof _primitives.Name) {\n            url = \"/\" + url.name;\n          }\n\n          break;\n\n        case \"GoTo\":\n          dest = action.get(\"D\");\n          break;\n\n        case \"Launch\":\n        case \"GoToR\":\n          const urlDict = action.get(\"F\");\n\n          if (urlDict instanceof _primitives.Dict) {\n            url = urlDict.get(\"F\") || null;\n          } else if (typeof urlDict === \"string\") {\n            url = urlDict;\n          }\n\n          let remoteDest = action.get(\"D\");\n\n          if (remoteDest) {\n            if (remoteDest instanceof _primitives.Name) {\n              remoteDest = remoteDest.name;\n            }\n\n            if (typeof url === \"string\") {\n              const baseUrl = url.split(\"#\")[0];\n\n              if (typeof remoteDest === \"string\") {\n                url = baseUrl + \"#\" + remoteDest;\n              } else if (Array.isArray(remoteDest)) {\n                url = baseUrl + \"#\" + JSON.stringify(remoteDest);\n              }\n            }\n          }\n\n          const newWindow = action.get(\"NewWindow\");\n\n          if (typeof newWindow === \"boolean\") {\n            resultObj.newWindow = newWindow;\n          }\n\n          break;\n\n        case \"Named\":\n          const namedAction = action.get(\"N\");\n\n          if (namedAction instanceof _primitives.Name) {\n            resultObj.action = namedAction.name;\n          }\n\n          break;\n\n        case \"JavaScript\":\n          const jsAction = action.get(\"JS\");\n          let js;\n\n          if (jsAction instanceof _base_stream.BaseStream) {\n            js = jsAction.getString();\n          } else if (typeof jsAction === \"string\") {\n            js = jsAction;\n          }\n\n          const jsURL = js && (0, _core_utils.recoverJsURL)((0, _util.stringToPDFString)(js));\n\n          if (jsURL) {\n            url = jsURL.url;\n            resultObj.newWindow = jsURL.newWindow;\n            break;\n          }\n\n        default:\n          if (actionName === \"JavaScript\" || actionName === \"SubmitForm\") {\n            break;\n          }\n\n          (0, _util.warn)(`parseDestDictionary - unsupported action: \"${actionName}\".`);\n          break;\n      }\n    } else if (destDict.has(\"Dest\")) {\n      dest = destDict.get(\"Dest\");\n    }\n\n    if (typeof url === \"string\") {\n      const absoluteUrl = (0, _util.createValidAbsoluteUrl)(url, docBaseUrl, {\n        addDefaultProtocol: true,\n        tryConvertEncoding: true\n      });\n\n      if (absoluteUrl) {\n        resultObj.url = absoluteUrl.href;\n      }\n\n      resultObj.unsafeUrl = url;\n    }\n\n    if (dest) {\n      if (dest instanceof _primitives.Name) {\n        dest = dest.name;\n      }\n\n      if (typeof dest === \"string\") {\n        resultObj.dest = (0, _util.stringToPDFString)(dest);\n      } else if (Array.isArray(dest)) {\n        resultObj.dest = dest;\n      }\n    }\n  }\n\n}\n\nexports.Catalog = Catalog;\n\n/***/ }),\n/* 195 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.NumberTree = exports.NameTree = void 0;\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass NameOrNumberTree {\n  constructor(root, xref, type) {\n    if (this.constructor === NameOrNumberTree) {\n      (0, _util.unreachable)(\"Cannot initialize NameOrNumberTree.\");\n    }\n\n    this.root = root;\n    this.xref = xref;\n    this._type = type;\n  }\n\n  getAll() {\n    const map = new Map();\n\n    if (!this.root) {\n      return map;\n    }\n\n    const xref = this.xref;\n    const processed = new _primitives.RefSet();\n    processed.put(this.root);\n    const queue = [this.root];\n\n    while (queue.length > 0) {\n      const obj = xref.fetchIfRef(queue.shift());\n\n      if (!(obj instanceof _primitives.Dict)) {\n        continue;\n      }\n\n      if (obj.has(\"Kids\")) {\n        const kids = obj.get(\"Kids\");\n\n        if (!Array.isArray(kids)) {\n          continue;\n        }\n\n        for (const kid of kids) {\n          if (processed.has(kid)) {\n            throw new _util.FormatError(`Duplicate entry in \"${this._type}\" tree.`);\n          }\n\n          queue.push(kid);\n          processed.put(kid);\n        }\n\n        continue;\n      }\n\n      const entries = obj.get(this._type);\n\n      if (!Array.isArray(entries)) {\n        continue;\n      }\n\n      for (let i = 0, ii = entries.length; i < ii; i += 2) {\n        map.set(xref.fetchIfRef(entries[i]), xref.fetchIfRef(entries[i + 1]));\n      }\n    }\n\n    return map;\n  }\n\n  get(key) {\n    if (!this.root) {\n      return null;\n    }\n\n    const xref = this.xref;\n    let kidsOrEntries = xref.fetchIfRef(this.root);\n    let loopCount = 0;\n    const MAX_LEVELS = 10;\n\n    while (kidsOrEntries.has(\"Kids\")) {\n      if (++loopCount > MAX_LEVELS) {\n        (0, _util.warn)(`Search depth limit reached for \"${this._type}\" tree.`);\n        return null;\n      }\n\n      const kids = kidsOrEntries.get(\"Kids\");\n\n      if (!Array.isArray(kids)) {\n        return null;\n      }\n\n      let l = 0,\n          r = kids.length - 1;\n\n      while (l <= r) {\n        const m = l + r >> 1;\n        const kid = xref.fetchIfRef(kids[m]);\n        const limits = kid.get(\"Limits\");\n\n        if (key < xref.fetchIfRef(limits[0])) {\n          r = m - 1;\n        } else if (key > xref.fetchIfRef(limits[1])) {\n          l = m + 1;\n        } else {\n          kidsOrEntries = kid;\n          break;\n        }\n      }\n\n      if (l > r) {\n        return null;\n      }\n    }\n\n    const entries = kidsOrEntries.get(this._type);\n\n    if (Array.isArray(entries)) {\n      let l = 0,\n          r = entries.length - 2;\n\n      while (l <= r) {\n        const tmp = l + r >> 1,\n              m = tmp + (tmp & 1);\n        const currentKey = xref.fetchIfRef(entries[m]);\n\n        if (key < currentKey) {\n          r = m - 2;\n        } else if (key > currentKey) {\n          l = m + 2;\n        } else {\n          return xref.fetchIfRef(entries[m + 1]);\n        }\n      }\n    }\n\n    return null;\n  }\n\n}\n\nclass NameTree extends NameOrNumberTree {\n  constructor(root, xref) {\n    super(root, xref, \"Names\");\n  }\n\n}\n\nexports.NameTree = NameTree;\n\nclass NumberTree extends NameOrNumberTree {\n  constructor(root, xref) {\n    super(root, xref, \"Nums\");\n  }\n\n}\n\nexports.NumberTree = NumberTree;\n\n/***/ }),\n/* 196 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.clearGlobalCaches = clearGlobalCaches;\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _unicode = __w_pdfjs_require__(165);\n\nfunction clearGlobalCaches() {\n  (0, _primitives.clearPrimitiveCaches)();\n  (0, _unicode.clearUnicodeCaches)();\n}\n\n/***/ }),\n/* 197 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.FileSpec = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nfunction pickPlatformItem(dict) {\n  if (dict.has(\"UF\")) {\n    return dict.get(\"UF\");\n  } else if (dict.has(\"F\")) {\n    return dict.get(\"F\");\n  } else if (dict.has(\"Unix\")) {\n    return dict.get(\"Unix\");\n  } else if (dict.has(\"Mac\")) {\n    return dict.get(\"Mac\");\n  } else if (dict.has(\"DOS\")) {\n    return dict.get(\"DOS\");\n  }\n\n  return null;\n}\n\nclass FileSpec {\n  constructor(root, xref) {\n    if (!(root instanceof _primitives.Dict)) {\n      return;\n    }\n\n    this.xref = xref;\n    this.root = root;\n\n    if (root.has(\"FS\")) {\n      this.fs = root.get(\"FS\");\n    }\n\n    this.description = root.has(\"Desc\") ? (0, _util.stringToPDFString)(root.get(\"Desc\")) : \"\";\n\n    if (root.has(\"RF\")) {\n      (0, _util.warn)(\"Related file specifications are not supported\");\n    }\n\n    this.contentAvailable = true;\n\n    if (!root.has(\"EF\")) {\n      this.contentAvailable = false;\n      (0, _util.warn)(\"Non-embedded file specifications are not supported\");\n    }\n  }\n\n  get filename() {\n    if (!this._filename && this.root) {\n      const filename = pickPlatformItem(this.root) || \"unnamed\";\n      this._filename = (0, _util.stringToPDFString)(filename).replace(/\\\\\\\\/g, \"\\\\\").replace(/\\\\\\//g, \"/\").replace(/\\\\/g, \"/\");\n    }\n\n    return this._filename;\n  }\n\n  get content() {\n    if (!this.contentAvailable) {\n      return null;\n    }\n\n    if (!this.contentRef && this.root) {\n      this.contentRef = pickPlatformItem(this.root.get(\"EF\"));\n    }\n\n    let content = null;\n\n    if (this.contentRef) {\n      const fileObj = this.xref.fetchIfRef(this.contentRef);\n\n      if (fileObj instanceof _base_stream.BaseStream) {\n        content = fileObj.getBytes();\n      } else {\n        (0, _util.warn)(\"Embedded file specification points to non-existing/invalid content\");\n      }\n    } else {\n      (0, _util.warn)(\"Embedded file specification does not have a content\");\n    }\n\n    return content;\n  }\n\n  get serializable() {\n    return {\n      filename: this.filename,\n      content: this.content\n    };\n  }\n\n}\n\nexports.FileSpec = FileSpec;\n\n/***/ }),\n/* 198 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.MetadataParser = void 0;\n\nvar _xml_parser = __w_pdfjs_require__(191);\n\nclass MetadataParser {\n  constructor(data) {\n    data = this._repair(data);\n    const parser = new _xml_parser.SimpleXMLParser({\n      lowerCaseName: true\n    });\n    const xmlDocument = parser.parseFromString(data);\n    this._metadataMap = new Map();\n    this._data = data;\n\n    if (xmlDocument) {\n      this._parse(xmlDocument);\n    }\n  }\n\n  _repair(data) {\n    return data.replace(/^[^<]+/, \"\").replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n      const bytes = codes.replace(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n        return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n      }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n        switch (name) {\n          case \"amp\":\n            return \"&\";\n\n          case \"apos\":\n            return \"'\";\n\n          case \"gt\":\n            return \">\";\n\n          case \"lt\":\n            return \"<\";\n\n          case \"quot\":\n            return '\"';\n        }\n\n        throw new Error(`_repair: ${name} isn't defined.`);\n      });\n      const charBuf = [];\n\n      for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n        const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n\n        if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) {\n          charBuf.push(String.fromCharCode(code));\n        } else {\n          charBuf.push(\"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\");\n        }\n      }\n\n      return \">\" + charBuf.join(\"\");\n    });\n  }\n\n  _getSequence(entry) {\n    const name = entry.nodeName;\n\n    if (name !== \"rdf:bag\" && name !== \"rdf:seq\" && name !== \"rdf:alt\") {\n      return null;\n    }\n\n    return entry.childNodes.filter(node => node.nodeName === \"rdf:li\");\n  }\n\n  _parseArray(entry) {\n    if (!entry.hasChildNodes()) {\n      return;\n    }\n\n    const [seqNode] = entry.childNodes;\n    const sequence = this._getSequence(seqNode) || [];\n\n    this._metadataMap.set(entry.nodeName, sequence.map(node => node.textContent.trim()));\n  }\n\n  _parse(xmlDocument) {\n    let rdf = xmlDocument.documentElement;\n\n    if (rdf.nodeName !== \"rdf:rdf\") {\n      rdf = rdf.firstChild;\n\n      while (rdf && rdf.nodeName !== \"rdf:rdf\") {\n        rdf = rdf.nextSibling;\n      }\n    }\n\n    if (!rdf || rdf.nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n      return;\n    }\n\n    for (const desc of rdf.childNodes) {\n      if (desc.nodeName !== \"rdf:description\") {\n        continue;\n      }\n\n      for (const entry of desc.childNodes) {\n        const name = entry.nodeName;\n\n        switch (name) {\n          case \"#text\":\n            continue;\n\n          case \"dc:creator\":\n          case \"dc:subject\":\n            this._parseArray(entry);\n\n            continue;\n        }\n\n        this._metadataMap.set(name, entry.textContent.trim());\n      }\n    }\n  }\n\n  get serializable() {\n    return {\n      parsedData: this._metadataMap,\n      rawData: this._data\n    };\n  }\n\n}\n\nexports.MetadataParser = MetadataParser;\n\n/***/ }),\n/* 199 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.StructTreeRoot = exports.StructTreePage = void 0;\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _name_number_tree = __w_pdfjs_require__(195);\n\nconst MAX_DEPTH = 40;\nconst StructElementType = {\n  PAGE_CONTENT: \"PAGE_CONTENT\",\n  STREAM_CONTENT: \"STREAM_CONTENT\",\n  OBJECT: \"OBJECT\",\n  ELEMENT: \"ELEMENT\"\n};\n\nclass StructTreeRoot {\n  constructor(rootDict) {\n    this.dict = rootDict;\n    this.roleMap = new Map();\n  }\n\n  init() {\n    this.readRoleMap();\n  }\n\n  readRoleMap() {\n    const roleMapDict = this.dict.get(\"RoleMap\");\n\n    if (!(roleMapDict instanceof _primitives.Dict)) {\n      return;\n    }\n\n    roleMapDict.forEach((key, value) => {\n      if (!(value instanceof _primitives.Name)) {\n        return;\n      }\n\n      this.roleMap.set(key, value.name);\n    });\n  }\n\n}\n\nexports.StructTreeRoot = StructTreeRoot;\n\nclass StructElementNode {\n  constructor(tree, dict) {\n    this.tree = tree;\n    this.dict = dict;\n    this.kids = [];\n    this.parseKids();\n  }\n\n  get role() {\n    const nameObj = this.dict.get(\"S\");\n    const name = nameObj instanceof _primitives.Name ? nameObj.name : \"\";\n    const {\n      root\n    } = this.tree;\n\n    if (root.roleMap.has(name)) {\n      return root.roleMap.get(name);\n    }\n\n    return name;\n  }\n\n  parseKids() {\n    let pageObjId = null;\n    const objRef = this.dict.getRaw(\"Pg\");\n\n    if (objRef instanceof _primitives.Ref) {\n      pageObjId = objRef.toString();\n    }\n\n    const kids = this.dict.get(\"K\");\n\n    if (Array.isArray(kids)) {\n      for (const kid of kids) {\n        const element = this.parseKid(pageObjId, kid);\n\n        if (element) {\n          this.kids.push(element);\n        }\n      }\n    } else {\n      const element = this.parseKid(pageObjId, kids);\n\n      if (element) {\n        this.kids.push(element);\n      }\n    }\n  }\n\n  parseKid(pageObjId, kid) {\n    if (Number.isInteger(kid)) {\n      if (this.tree.pageDict.objId !== pageObjId) {\n        return null;\n      }\n\n      return new StructElement({\n        type: StructElementType.PAGE_CONTENT,\n        mcid: kid,\n        pageObjId\n      });\n    }\n\n    let kidDict = null;\n\n    if (kid instanceof _primitives.Ref) {\n      kidDict = this.dict.xref.fetch(kid);\n    } else if (kid instanceof _primitives.Dict) {\n      kidDict = kid;\n    }\n\n    if (!kidDict) {\n      return null;\n    }\n\n    const pageRef = kidDict.getRaw(\"Pg\");\n\n    if (pageRef instanceof _primitives.Ref) {\n      pageObjId = pageRef.toString();\n    }\n\n    const type = kidDict.get(\"Type\") instanceof _primitives.Name ? kidDict.get(\"Type\").name : null;\n\n    if (type === \"MCR\") {\n      if (this.tree.pageDict.objId !== pageObjId) {\n        return null;\n      }\n\n      return new StructElement({\n        type: StructElementType.STREAM_CONTENT,\n        refObjId: kidDict.getRaw(\"Stm\") instanceof _primitives.Ref ? kidDict.getRaw(\"Stm\").toString() : null,\n        pageObjId,\n        mcid: kidDict.get(\"MCID\")\n      });\n    }\n\n    if (type === \"OBJR\") {\n      if (this.tree.pageDict.objId !== pageObjId) {\n        return null;\n      }\n\n      return new StructElement({\n        type: StructElementType.OBJECT,\n        refObjId: kidDict.getRaw(\"Obj\") instanceof _primitives.Ref ? kidDict.getRaw(\"Obj\").toString() : null,\n        pageObjId\n      });\n    }\n\n    return new StructElement({\n      type: StructElementType.ELEMENT,\n      dict: kidDict\n    });\n  }\n\n}\n\nclass StructElement {\n  constructor(_ref) {\n    let {\n      type,\n      dict = null,\n      mcid = null,\n      pageObjId = null,\n      refObjId = null\n    } = _ref;\n    this.type = type;\n    this.dict = dict;\n    this.mcid = mcid;\n    this.pageObjId = pageObjId;\n    this.refObjId = refObjId;\n    this.parentNode = null;\n  }\n\n}\n\nclass StructTreePage {\n  constructor(structTreeRoot, pageDict) {\n    this.root = structTreeRoot;\n    this.rootDict = structTreeRoot ? structTreeRoot.dict : null;\n    this.pageDict = pageDict;\n    this.nodes = [];\n  }\n\n  parse() {\n    if (!this.root || !this.rootDict) {\n      return;\n    }\n\n    const parentTree = this.rootDict.get(\"ParentTree\");\n\n    if (!parentTree) {\n      return;\n    }\n\n    const id = this.pageDict.get(\"StructParents\");\n\n    if (!Number.isInteger(id)) {\n      return;\n    }\n\n    const numberTree = new _name_number_tree.NumberTree(parentTree, this.rootDict.xref);\n    const parentArray = numberTree.get(id);\n\n    if (!Array.isArray(parentArray)) {\n      return;\n    }\n\n    const map = new Map();\n\n    for (const ref of parentArray) {\n      if (ref instanceof _primitives.Ref) {\n        this.addNode(this.rootDict.xref.fetch(ref), map);\n      }\n    }\n  }\n\n  addNode(dict, map) {\n    let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n    if (level > MAX_DEPTH) {\n      (0, _util.warn)(\"StructTree MAX_DEPTH reached.\");\n      return null;\n    }\n\n    if (map.has(dict)) {\n      return map.get(dict);\n    }\n\n    const element = new StructElementNode(this, dict);\n    map.set(dict, element);\n    const parent = dict.get(\"P\");\n\n    if (!parent || (0, _primitives.isName)(parent.get(\"Type\"), \"StructTreeRoot\")) {\n      if (!this.addTopLevelNode(dict, element)) {\n        map.delete(dict);\n      }\n\n      return element;\n    }\n\n    const parentNode = this.addNode(parent, map, level + 1);\n\n    if (!parentNode) {\n      return element;\n    }\n\n    let save = false;\n\n    for (const kid of parentNode.kids) {\n      if (kid.type === StructElementType.ELEMENT && kid.dict === dict) {\n        kid.parentNode = element;\n        save = true;\n      }\n    }\n\n    if (!save) {\n      map.delete(dict);\n    }\n\n    return element;\n  }\n\n  addTopLevelNode(dict, element) {\n    const obj = this.rootDict.get(\"K\");\n\n    if (!obj) {\n      return false;\n    }\n\n    if (obj instanceof _primitives.Dict) {\n      if (obj.objId !== dict.objId) {\n        return false;\n      }\n\n      this.nodes[0] = element;\n      return true;\n    }\n\n    if (!Array.isArray(obj)) {\n      return true;\n    }\n\n    let save = false;\n\n    for (let i = 0; i < obj.length; i++) {\n      const kidRef = obj[i];\n\n      if (kidRef && kidRef.toString() === dict.objId) {\n        this.nodes[i] = element;\n        save = true;\n      }\n    }\n\n    return save;\n  }\n\n  get serializable() {\n    function nodeToSerializable(node, parent) {\n      let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n      if (level > MAX_DEPTH) {\n        (0, _util.warn)(\"StructTree too deep to be fully serialized.\");\n        return;\n      }\n\n      const obj = Object.create(null);\n      obj.role = node.role;\n      obj.children = [];\n      parent.children.push(obj);\n      const alt = node.dict.get(\"Alt\");\n\n      if (typeof alt === \"string\") {\n        obj.alt = (0, _util.stringToPDFString)(alt);\n      }\n\n      const lang = node.dict.get(\"Lang\");\n\n      if (typeof lang === \"string\") {\n        obj.lang = (0, _util.stringToPDFString)(lang);\n      }\n\n      for (const kid of node.kids) {\n        const kidElement = kid.type === StructElementType.ELEMENT ? kid.parentNode : null;\n\n        if (kidElement) {\n          nodeToSerializable(kidElement, obj, level + 1);\n          continue;\n        } else if (kid.type === StructElementType.PAGE_CONTENT || kid.type === StructElementType.STREAM_CONTENT) {\n          obj.children.push({\n            type: \"content\",\n            id: `page${kid.pageObjId}_mcid${kid.mcid}`\n          });\n        } else if (kid.type === StructElementType.OBJECT) {\n          obj.children.push({\n            type: \"object\",\n            id: kid.refObjId\n          });\n        }\n      }\n    }\n\n    const root = Object.create(null);\n    root.children = [];\n    root.role = \"Root\";\n\n    for (const child of this.nodes) {\n      if (!child) {\n        continue;\n      }\n\n      nodeToSerializable(child, root);\n    }\n\n    return root;\n  }\n\n}\n\nexports.StructTreePage = StructTreePage;\n\n/***/ }),\n/* 200 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ObjectLoader = void 0;\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction mayHaveChildren(value) {\n  return value instanceof _primitives.Ref || value instanceof _primitives.Dict || value instanceof _base_stream.BaseStream || Array.isArray(value);\n}\n\nfunction addChildren(node, nodesToVisit) {\n  if (node instanceof _primitives.Dict) {\n    node = node.getRawValues();\n  } else if (node instanceof _base_stream.BaseStream) {\n    node = node.dict.getRawValues();\n  } else if (!Array.isArray(node)) {\n    return;\n  }\n\n  for (const rawValue of node) {\n    if (mayHaveChildren(rawValue)) {\n      nodesToVisit.push(rawValue);\n    }\n  }\n}\n\nclass ObjectLoader {\n  constructor(dict, keys, xref) {\n    this.dict = dict;\n    this.keys = keys;\n    this.xref = xref;\n    this.refSet = null;\n  }\n\n  async load() {\n    if (this.xref.stream.isDataLoaded) {\n      return undefined;\n    }\n\n    const {\n      keys,\n      dict\n    } = this;\n    this.refSet = new _primitives.RefSet();\n    const nodesToVisit = [];\n\n    for (let i = 0, ii = keys.length; i < ii; i++) {\n      const rawValue = dict.getRaw(keys[i]);\n\n      if (rawValue !== undefined) {\n        nodesToVisit.push(rawValue);\n      }\n    }\n\n    return this._walk(nodesToVisit);\n  }\n\n  async _walk(nodesToVisit) {\n    const nodesToRevisit = [];\n    const pendingRequests = [];\n\n    while (nodesToVisit.length) {\n      let currentNode = nodesToVisit.pop();\n\n      if (currentNode instanceof _primitives.Ref) {\n        if (this.refSet.has(currentNode)) {\n          continue;\n        }\n\n        try {\n          this.refSet.put(currentNode);\n          currentNode = this.xref.fetch(currentNode);\n        } catch (ex) {\n          if (!(ex instanceof _core_utils.MissingDataException)) {\n            (0, _util.warn)(`ObjectLoader._walk - requesting all data: \"${ex}\".`);\n            this.refSet = null;\n            const {\n              manager\n            } = this.xref.stream;\n            return manager.requestAllChunks();\n          }\n\n          nodesToRevisit.push(currentNode);\n          pendingRequests.push({\n            begin: ex.begin,\n            end: ex.end\n          });\n        }\n      }\n\n      if (currentNode instanceof _base_stream.BaseStream) {\n        const baseStreams = currentNode.getBaseStreams();\n\n        if (baseStreams) {\n          let foundMissingData = false;\n\n          for (const stream of baseStreams) {\n            if (stream.isDataLoaded) {\n              continue;\n            }\n\n            foundMissingData = true;\n            pendingRequests.push({\n              begin: stream.start,\n              end: stream.end\n            });\n          }\n\n          if (foundMissingData) {\n            nodesToRevisit.push(currentNode);\n          }\n        }\n      }\n\n      addChildren(currentNode, nodesToVisit);\n    }\n\n    if (pendingRequests.length) {\n      await this.xref.stream.manager.requestRanges(pendingRequests);\n\n      for (const node of nodesToRevisit) {\n        if (node instanceof _primitives.Ref) {\n          this.refSet.remove(node);\n        }\n      }\n\n      return this._walk(nodesToRevisit);\n    }\n\n    this.refSet = null;\n    return undefined;\n  }\n\n}\n\nexports.ObjectLoader = ObjectLoader;\n\n/***/ }),\n/* 201 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XFAFactory = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nvar _bind = __w_pdfjs_require__(206);\n\nvar _data = __w_pdfjs_require__(212);\n\nvar _fonts = __w_pdfjs_require__(210);\n\nvar _utils = __w_pdfjs_require__(203);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _parser = __w_pdfjs_require__(213);\n\nvar _xhtml = __w_pdfjs_require__(223);\n\nclass XFAFactory {\n  constructor(data) {\n    try {\n      this.root = new _parser.XFAParser().parse(XFAFactory._createDocument(data));\n      const binder = new _bind.Binder(this.root);\n      this.form = binder.bind();\n      this.dataHandler = new _data.DataHandler(this.root, binder.getData());\n      this.form[_xfa_object.$globalData].template = this.form;\n    } catch (e) {\n      (0, _util.warn)(`XFA - an error occurred during parsing and binding: ${e}`);\n    }\n  }\n\n  isValid() {\n    return this.root && this.form;\n  }\n\n  _createPagesHelper() {\n    const iterator = this.form[_xfa_object.$toPages]();\n\n    return new Promise((resolve, reject) => {\n      const nextIteration = () => {\n        try {\n          const value = iterator.next();\n\n          if (value.done) {\n            resolve(value.value);\n          } else {\n            setTimeout(nextIteration, 0);\n          }\n        } catch (e) {\n          reject(e);\n        }\n      };\n\n      setTimeout(nextIteration, 0);\n    });\n  }\n\n  async _createPages() {\n    try {\n      this.pages = await this._createPagesHelper();\n      this.dims = this.pages.children.map(c => {\n        const {\n          width,\n          height\n        } = c.attributes.style;\n        return [0, 0, parseInt(width), parseInt(height)];\n      });\n    } catch (e) {\n      (0, _util.warn)(`XFA - an error occurred during layout: ${e}`);\n    }\n  }\n\n  getBoundingBox(pageIndex) {\n    return this.dims[pageIndex];\n  }\n\n  async getNumPages() {\n    if (!this.pages) {\n      await this._createPages();\n    }\n\n    return this.dims.length;\n  }\n\n  setImages(images) {\n    this.form[_xfa_object.$globalData].images = images;\n  }\n\n  setFonts(fonts) {\n    this.form[_xfa_object.$globalData].fontFinder = new _fonts.FontFinder(fonts);\n    const missingFonts = [];\n\n    for (let typeface of this.form[_xfa_object.$globalData].usedTypefaces) {\n      typeface = (0, _utils.stripQuotes)(typeface);\n\n      const font = this.form[_xfa_object.$globalData].fontFinder.find(typeface);\n\n      if (!font) {\n        missingFonts.push(typeface);\n      }\n    }\n\n    if (missingFonts.length > 0) {\n      return missingFonts;\n    }\n\n    return null;\n  }\n\n  appendFonts(fonts, reallyMissingFonts) {\n    this.form[_xfa_object.$globalData].fontFinder.add(fonts, reallyMissingFonts);\n  }\n\n  async getPages() {\n    if (!this.pages) {\n      await this._createPages();\n    }\n\n    const pages = this.pages;\n    this.pages = null;\n    return pages;\n  }\n\n  serializeData(storage) {\n    return this.dataHandler.serialize(storage);\n  }\n\n  static _createDocument(data) {\n    if (!data[\"/xdp:xdp\"]) {\n      return data[\"xdp:xdp\"];\n    }\n\n    return Object.values(data).join(\"\");\n  }\n\n  static getRichTextAsHtml(rc) {\n    if (!rc || typeof rc !== \"string\") {\n      return null;\n    }\n\n    try {\n      let root = new _parser.XFAParser(_xhtml.XhtmlNamespace, true).parse(rc);\n\n      if (![\"body\", \"xhtml\"].includes(root[_xfa_object.$nodeName])) {\n        const newRoot = _xhtml.XhtmlNamespace.body({});\n\n        newRoot[_xfa_object.$appendChild](root);\n\n        root = newRoot;\n      }\n\n      const result = root[_xfa_object.$toHTML]();\n\n      if (!result.success) {\n        return null;\n      }\n\n      const {\n        html\n      } = result;\n      const {\n        attributes\n      } = html;\n\n      if (attributes) {\n        if (attributes.class) {\n          attributes.class = attributes.class.filter(attr => !attr.startsWith(\"xfa\"));\n        }\n\n        attributes.dir = \"auto\";\n      }\n\n      return {\n        html,\n        str: root[_xfa_object.$text]()\n      };\n    } catch (e) {\n      (0, _util.warn)(`XFA - an error occurred during parsing of rich text: ${e}`);\n    }\n\n    return null;\n  }\n\n}\n\nexports.XFAFactory = XFAFactory;\n\n/***/ }),\n/* 202 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XmlObject = exports.XFAObjectArray = exports.XFAObject = exports.XFAAttribute = exports.StringObject = exports.OptionObject = exports.Option10 = exports.Option01 = exports.IntegerObject = exports.ContentObject = exports.$uid = exports.$toStyle = exports.$toString = exports.$toPages = exports.$toHTML = exports.$text = exports.$tabIndex = exports.$setValue = exports.$setSetAttributes = exports.$setId = exports.$searchNode = exports.$root = exports.$resolvePrototypes = exports.$removeChild = exports.$pushPara = exports.$pushGlyphs = exports.$popPara = exports.$onText = exports.$onChildCheck = exports.$onChild = exports.$nsAttributes = exports.$nodeName = exports.$namespaceId = exports.$isUsable = exports.$isTransparent = exports.$isThereMoreWidth = exports.$isSplittable = exports.$isNsAgnostic = exports.$isDescendent = exports.$isDataValue = exports.$isCDATAXml = exports.$isBindable = exports.$insertAt = exports.$indexOf = exports.$ids = exports.$hasSettableValue = exports.$globalData = exports.$getTemplateRoot = exports.$getSubformParent = exports.$getRealChildrenByNameIt = exports.$getParent = exports.$getNextPage = exports.$getExtra = exports.$getDataValue = exports.$getContainedChildren = exports.$getChildrenByNameIt = exports.$getChildrenByName = exports.$getChildrenByClass = exports.$getChildren = exports.$getAvailableSpace = exports.$getAttributes = exports.$getAttributeIt = exports.$flushHTML = exports.$finalize = exports.$extra = exports.$dump = exports.$data = exports.$content = exports.$consumed = exports.$clone = exports.$cleanup = exports.$cleanPage = exports.$clean = exports.$childrenToHTML = exports.$appendChild = exports.$addHTML = exports.$acceptWhitespace = void 0;\n\nvar _utils = __w_pdfjs_require__(203);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _namespaces = __w_pdfjs_require__(204);\n\nvar _som = __w_pdfjs_require__(205);\n\nconst $acceptWhitespace = Symbol();\nexports.$acceptWhitespace = $acceptWhitespace;\nconst $addHTML = Symbol();\nexports.$addHTML = $addHTML;\nconst $appendChild = Symbol();\nexports.$appendChild = $appendChild;\nconst $childrenToHTML = Symbol();\nexports.$childrenToHTML = $childrenToHTML;\nconst $clean = Symbol();\nexports.$clean = $clean;\nconst $cleanPage = Symbol();\nexports.$cleanPage = $cleanPage;\nconst $cleanup = Symbol();\nexports.$cleanup = $cleanup;\nconst $clone = Symbol();\nexports.$clone = $clone;\nconst $consumed = Symbol();\nexports.$consumed = $consumed;\nconst $content = Symbol(\"content\");\nexports.$content = $content;\nconst $data = Symbol(\"data\");\nexports.$data = $data;\nconst $dump = Symbol();\nexports.$dump = $dump;\nconst $extra = Symbol(\"extra\");\nexports.$extra = $extra;\nconst $finalize = Symbol();\nexports.$finalize = $finalize;\nconst $flushHTML = Symbol();\nexports.$flushHTML = $flushHTML;\nconst $getAttributeIt = Symbol();\nexports.$getAttributeIt = $getAttributeIt;\nconst $getAttributes = Symbol();\nexports.$getAttributes = $getAttributes;\nconst $getAvailableSpace = Symbol();\nexports.$getAvailableSpace = $getAvailableSpace;\nconst $getChildrenByClass = Symbol();\nexports.$getChildrenByClass = $getChildrenByClass;\nconst $getChildrenByName = Symbol();\nexports.$getChildrenByName = $getChildrenByName;\nconst $getChildrenByNameIt = Symbol();\nexports.$getChildrenByNameIt = $getChildrenByNameIt;\nconst $getDataValue = Symbol();\nexports.$getDataValue = $getDataValue;\nconst $getExtra = Symbol();\nexports.$getExtra = $getExtra;\nconst $getRealChildrenByNameIt = Symbol();\nexports.$getRealChildrenByNameIt = $getRealChildrenByNameIt;\nconst $getChildren = Symbol();\nexports.$getChildren = $getChildren;\nconst $getContainedChildren = Symbol();\nexports.$getContainedChildren = $getContainedChildren;\nconst $getNextPage = Symbol();\nexports.$getNextPage = $getNextPage;\nconst $getSubformParent = Symbol();\nexports.$getSubformParent = $getSubformParent;\nconst $getParent = Symbol();\nexports.$getParent = $getParent;\nconst $getTemplateRoot = Symbol();\nexports.$getTemplateRoot = $getTemplateRoot;\nconst $globalData = Symbol();\nexports.$globalData = $globalData;\nconst $hasSettableValue = Symbol();\nexports.$hasSettableValue = $hasSettableValue;\nconst $ids = Symbol();\nexports.$ids = $ids;\nconst $indexOf = Symbol();\nexports.$indexOf = $indexOf;\nconst $insertAt = Symbol();\nexports.$insertAt = $insertAt;\nconst $isCDATAXml = Symbol();\nexports.$isCDATAXml = $isCDATAXml;\nconst $isBindable = Symbol();\nexports.$isBindable = $isBindable;\nconst $isDataValue = Symbol();\nexports.$isDataValue = $isDataValue;\nconst $isDescendent = Symbol();\nexports.$isDescendent = $isDescendent;\nconst $isNsAgnostic = Symbol();\nexports.$isNsAgnostic = $isNsAgnostic;\nconst $isSplittable = Symbol();\nexports.$isSplittable = $isSplittable;\nconst $isThereMoreWidth = Symbol();\nexports.$isThereMoreWidth = $isThereMoreWidth;\nconst $isTransparent = Symbol();\nexports.$isTransparent = $isTransparent;\nconst $isUsable = Symbol();\nexports.$isUsable = $isUsable;\nconst $lastAttribute = Symbol();\nconst $namespaceId = Symbol(\"namespaceId\");\nexports.$namespaceId = $namespaceId;\nconst $nodeName = Symbol(\"nodeName\");\nexports.$nodeName = $nodeName;\nconst $nsAttributes = Symbol();\nexports.$nsAttributes = $nsAttributes;\nconst $onChild = Symbol();\nexports.$onChild = $onChild;\nconst $onChildCheck = Symbol();\nexports.$onChildCheck = $onChildCheck;\nconst $onText = Symbol();\nexports.$onText = $onText;\nconst $pushGlyphs = Symbol();\nexports.$pushGlyphs = $pushGlyphs;\nconst $popPara = Symbol();\nexports.$popPara = $popPara;\nconst $pushPara = Symbol();\nexports.$pushPara = $pushPara;\nconst $removeChild = Symbol();\nexports.$removeChild = $removeChild;\nconst $root = Symbol(\"root\");\nexports.$root = $root;\nconst $resolvePrototypes = Symbol();\nexports.$resolvePrototypes = $resolvePrototypes;\nconst $searchNode = Symbol();\nexports.$searchNode = $searchNode;\nconst $setId = Symbol();\nexports.$setId = $setId;\nconst $setSetAttributes = Symbol();\nexports.$setSetAttributes = $setSetAttributes;\nconst $setValue = Symbol();\nexports.$setValue = $setValue;\nconst $tabIndex = Symbol();\nexports.$tabIndex = $tabIndex;\nconst $text = Symbol();\nexports.$text = $text;\nconst $toPages = Symbol();\nexports.$toPages = $toPages;\nconst $toHTML = Symbol();\nexports.$toHTML = $toHTML;\nconst $toString = Symbol();\nexports.$toString = $toString;\nconst $toStyle = Symbol();\nexports.$toStyle = $toStyle;\nconst $uid = Symbol(\"uid\");\nexports.$uid = $uid;\n\nconst _applyPrototype = Symbol();\n\nconst _attributes = Symbol();\n\nconst _attributeNames = Symbol();\n\nconst _children = Symbol(\"_children\");\n\nconst _cloneAttribute = Symbol();\n\nconst _dataValue = Symbol();\n\nconst _defaultValue = Symbol();\n\nconst _filteredChildrenGenerator = Symbol();\n\nconst _getPrototype = Symbol();\n\nconst _getUnsetAttributes = Symbol();\n\nconst _hasChildren = Symbol();\n\nconst _max = Symbol();\n\nconst _options = Symbol();\n\nconst _parent = Symbol(\"parent\");\n\nconst _resolvePrototypesHelper = Symbol();\n\nconst _setAttributes = Symbol();\n\nconst _validator = Symbol();\n\nlet uid = 0;\nconst NS_DATASETS = _namespaces.NamespaceIds.datasets.id;\n\nclass XFAObject {\n  constructor(nsId, name) {\n    let hasChildren = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    this[$namespaceId] = nsId;\n    this[$nodeName] = name;\n    this[_hasChildren] = hasChildren;\n    this[_parent] = null;\n    this[_children] = [];\n    this[$uid] = `${name}${uid++}`;\n    this[$globalData] = null;\n  }\n\n  [$onChild](child) {\n    if (!this[_hasChildren] || !this[$onChildCheck](child)) {\n      return false;\n    }\n\n    const name = child[$nodeName];\n    const node = this[name];\n\n    if (node instanceof XFAObjectArray) {\n      if (node.push(child)) {\n        this[$appendChild](child);\n        return true;\n      }\n    } else {\n      if (node !== null) {\n        this[$removeChild](node);\n      }\n\n      this[name] = child;\n      this[$appendChild](child);\n      return true;\n    }\n\n    let id = \"\";\n\n    if (this.id) {\n      id = ` (id: ${this.id})`;\n    } else if (this.name) {\n      id = ` (name: ${this.name} ${this.h.value})`;\n    }\n\n    (0, _util.warn)(`XFA - node \"${this[$nodeName]}\"${id} has already enough \"${name}\"!`);\n    return false;\n  }\n\n  [$onChildCheck](child) {\n    return this.hasOwnProperty(child[$nodeName]) && child[$namespaceId] === this[$namespaceId];\n  }\n\n  [$isNsAgnostic]() {\n    return false;\n  }\n\n  [$acceptWhitespace]() {\n    return false;\n  }\n\n  [$isCDATAXml]() {\n    return false;\n  }\n\n  [$isBindable]() {\n    return false;\n  }\n\n  [$popPara]() {\n    if (this.para) {\n      this[$getTemplateRoot]()[$extra].paraStack.pop();\n    }\n  }\n\n  [$pushPara]() {\n    this[$getTemplateRoot]()[$extra].paraStack.push(this.para);\n  }\n\n  [$setId](ids) {\n    if (this.id && this[$namespaceId] === _namespaces.NamespaceIds.template.id) {\n      ids.set(this.id, this);\n    }\n  }\n\n  [$getTemplateRoot]() {\n    return this[$globalData].template;\n  }\n\n  [$isSplittable]() {\n    return false;\n  }\n\n  [$isThereMoreWidth]() {\n    return false;\n  }\n\n  [$appendChild](child) {\n    child[_parent] = this;\n\n    this[_children].push(child);\n\n    if (!child[$globalData] && this[$globalData]) {\n      child[$globalData] = this[$globalData];\n    }\n  }\n\n  [$removeChild](child) {\n    const i = this[_children].indexOf(child);\n\n    this[_children].splice(i, 1);\n  }\n\n  [$hasSettableValue]() {\n    return this.hasOwnProperty(\"value\");\n  }\n\n  [$setValue](_) {}\n\n  [$onText](_) {}\n\n  [$finalize]() {}\n\n  [$clean](builder) {\n    delete this[_hasChildren];\n\n    if (this[$cleanup]) {\n      builder.clean(this[$cleanup]);\n      delete this[$cleanup];\n    }\n  }\n\n  [$indexOf](child) {\n    return this[_children].indexOf(child);\n  }\n\n  [$insertAt](i, child) {\n    child[_parent] = this;\n\n    this[_children].splice(i, 0, child);\n\n    if (!child[$globalData] && this[$globalData]) {\n      child[$globalData] = this[$globalData];\n    }\n  }\n\n  [$isTransparent]() {\n    return !this.name;\n  }\n\n  [$lastAttribute]() {\n    return \"\";\n  }\n\n  [$text]() {\n    if (this[_children].length === 0) {\n      return this[$content];\n    }\n\n    return this[_children].map(c => c[$text]()).join(\"\");\n  }\n\n  get [_attributeNames]() {\n    const proto = Object.getPrototypeOf(this);\n\n    if (!proto._attributes) {\n      const attributes = proto._attributes = new Set();\n\n      for (const name of Object.getOwnPropertyNames(this)) {\n        if (this[name] === null || this[name] instanceof XFAObject || this[name] instanceof XFAObjectArray) {\n          break;\n        }\n\n        attributes.add(name);\n      }\n    }\n\n    return (0, _util.shadow)(this, _attributeNames, proto._attributes);\n  }\n\n  [$isDescendent](parent) {\n    let node = this;\n\n    while (node) {\n      if (node === parent) {\n        return true;\n      }\n\n      node = node[$getParent]();\n    }\n\n    return false;\n  }\n\n  [$getParent]() {\n    return this[_parent];\n  }\n\n  [$getSubformParent]() {\n    return this[$getParent]();\n  }\n\n  [$getChildren]() {\n    let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n    if (!name) {\n      return this[_children];\n    }\n\n    return this[name];\n  }\n\n  [$dump]() {\n    const dumped = Object.create(null);\n\n    if (this[$content]) {\n      dumped.$content = this[$content];\n    }\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      const value = this[name];\n\n      if (value === null) {\n        continue;\n      }\n\n      if (value instanceof XFAObject) {\n        dumped[name] = value[$dump]();\n      } else if (value instanceof XFAObjectArray) {\n        if (!value.isEmpty()) {\n          dumped[name] = value.dump();\n        }\n      } else {\n        dumped[name] = value;\n      }\n    }\n\n    return dumped;\n  }\n\n  [$toStyle]() {\n    return null;\n  }\n\n  [$toHTML]() {\n    return _utils.HTMLResult.EMPTY;\n  }\n\n  *[$getContainedChildren]() {\n    for (const node of this[$getChildren]()) {\n      yield node;\n    }\n  }\n\n  *[_filteredChildrenGenerator](filter, include) {\n    for (const node of this[$getContainedChildren]()) {\n      if (!filter || include === filter.has(node[$nodeName])) {\n        const availableSpace = this[$getAvailableSpace]();\n        const res = node[$toHTML](availableSpace);\n\n        if (!res.success) {\n          this[$extra].failingNode = node;\n        }\n\n        yield res;\n      }\n    }\n  }\n\n  [$flushHTML]() {\n    return null;\n  }\n\n  [$addHTML](html, bbox) {\n    this[$extra].children.push(html);\n  }\n\n  [$getAvailableSpace]() {}\n\n  [$childrenToHTML](_ref) {\n    let {\n      filter = null,\n      include = true\n    } = _ref;\n\n    if (!this[$extra].generator) {\n      this[$extra].generator = this[_filteredChildrenGenerator](filter, include);\n    } else {\n      const availableSpace = this[$getAvailableSpace]();\n      const res = this[$extra].failingNode[$toHTML](availableSpace);\n\n      if (!res.success) {\n        return res;\n      }\n\n      if (res.html) {\n        this[$addHTML](res.html, res.bbox);\n      }\n\n      delete this[$extra].failingNode;\n    }\n\n    while (true) {\n      const gen = this[$extra].generator.next();\n\n      if (gen.done) {\n        break;\n      }\n\n      const res = gen.value;\n\n      if (!res.success) {\n        return res;\n      }\n\n      if (res.html) {\n        this[$addHTML](res.html, res.bbox);\n      }\n    }\n\n    this[$extra].generator = null;\n    return _utils.HTMLResult.EMPTY;\n  }\n\n  [$setSetAttributes](attributes) {\n    this[_setAttributes] = new Set(Object.keys(attributes));\n  }\n\n  [_getUnsetAttributes](protoAttributes) {\n    const allAttr = this[_attributeNames];\n    const setAttr = this[_setAttributes];\n    return [...protoAttributes].filter(x => allAttr.has(x) && !setAttr.has(x));\n  }\n\n  [$resolvePrototypes](ids) {\n    let ancestors = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n    for (const child of this[_children]) {\n      child[_resolvePrototypesHelper](ids, ancestors);\n    }\n  }\n\n  [_resolvePrototypesHelper](ids, ancestors) {\n    const proto = this[_getPrototype](ids, ancestors);\n\n    if (proto) {\n      this[_applyPrototype](proto, ids, ancestors);\n    } else {\n      this[$resolvePrototypes](ids, ancestors);\n    }\n  }\n\n  [_getPrototype](ids, ancestors) {\n    const {\n      use,\n      usehref\n    } = this;\n\n    if (!use && !usehref) {\n      return null;\n    }\n\n    let proto = null;\n    let somExpression = null;\n    let id = null;\n    let ref = use;\n\n    if (usehref) {\n      ref = usehref;\n\n      if (usehref.startsWith(\"#som(\") && usehref.endsWith(\")\")) {\n        somExpression = usehref.slice(\"#som(\".length, usehref.length - 1);\n      } else if (usehref.startsWith(\".#som(\") && usehref.endsWith(\")\")) {\n        somExpression = usehref.slice(\".#som(\".length, usehref.length - 1);\n      } else if (usehref.startsWith(\"#\")) {\n        id = usehref.slice(1);\n      } else if (usehref.startsWith(\".#\")) {\n        id = usehref.slice(2);\n      }\n    } else if (use.startsWith(\"#\")) {\n      id = use.slice(1);\n    } else {\n      somExpression = use;\n    }\n\n    this.use = this.usehref = \"\";\n\n    if (id) {\n      proto = ids.get(id);\n    } else {\n      proto = (0, _som.searchNode)(ids.get($root), this, somExpression, true, false);\n\n      if (proto) {\n        proto = proto[0];\n      }\n    }\n\n    if (!proto) {\n      (0, _util.warn)(`XFA - Invalid prototype reference: ${ref}.`);\n      return null;\n    }\n\n    if (proto[$nodeName] !== this[$nodeName]) {\n      (0, _util.warn)(`XFA - Incompatible prototype: ${proto[$nodeName]} !== ${this[$nodeName]}.`);\n      return null;\n    }\n\n    if (ancestors.has(proto)) {\n      (0, _util.warn)(`XFA - Cycle detected in prototypes use.`);\n      return null;\n    }\n\n    ancestors.add(proto);\n\n    const protoProto = proto[_getPrototype](ids, ancestors);\n\n    if (protoProto) {\n      proto[_applyPrototype](protoProto, ids, ancestors);\n    }\n\n    proto[$resolvePrototypes](ids, ancestors);\n    ancestors.delete(proto);\n    return proto;\n  }\n\n  [_applyPrototype](proto, ids, ancestors) {\n    if (ancestors.has(proto)) {\n      (0, _util.warn)(`XFA - Cycle detected in prototypes use.`);\n      return;\n    }\n\n    if (!this[$content] && proto[$content]) {\n      this[$content] = proto[$content];\n    }\n\n    const newAncestors = new Set(ancestors);\n    newAncestors.add(proto);\n\n    for (const unsetAttrName of this[_getUnsetAttributes](proto[_setAttributes])) {\n      this[unsetAttrName] = proto[unsetAttrName];\n\n      if (this[_setAttributes]) {\n        this[_setAttributes].add(unsetAttrName);\n      }\n    }\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (this[_attributeNames].has(name)) {\n        continue;\n      }\n\n      const value = this[name];\n      const protoValue = proto[name];\n\n      if (value instanceof XFAObjectArray) {\n        for (const child of value[_children]) {\n          child[_resolvePrototypesHelper](ids, ancestors);\n        }\n\n        for (let i = value[_children].length, ii = protoValue[_children].length; i < ii; i++) {\n          const child = proto[_children][i][$clone]();\n\n          if (value.push(child)) {\n            child[_parent] = this;\n\n            this[_children].push(child);\n\n            child[_resolvePrototypesHelper](ids, ancestors);\n          } else {\n            break;\n          }\n        }\n\n        continue;\n      }\n\n      if (value !== null) {\n        value[$resolvePrototypes](ids, ancestors);\n\n        if (protoValue) {\n          value[_applyPrototype](protoValue, ids, ancestors);\n        }\n\n        continue;\n      }\n\n      if (protoValue !== null) {\n        const child = protoValue[$clone]();\n        child[_parent] = this;\n        this[name] = child;\n\n        this[_children].push(child);\n\n        child[_resolvePrototypesHelper](ids, ancestors);\n      }\n    }\n  }\n\n  static [_cloneAttribute](obj) {\n    if (Array.isArray(obj)) {\n      return obj.map(x => XFAObject[_cloneAttribute](x));\n    }\n\n    if (typeof obj === \"object\" && obj !== null) {\n      return Object.assign({}, obj);\n    }\n\n    return obj;\n  }\n\n  [$clone]() {\n    const clone = Object.create(Object.getPrototypeOf(this));\n\n    for (const $symbol of Object.getOwnPropertySymbols(this)) {\n      try {\n        clone[$symbol] = this[$symbol];\n      } catch (_) {\n        (0, _util.shadow)(clone, $symbol, this[$symbol]);\n      }\n    }\n\n    clone[$uid] = `${clone[$nodeName]}${uid++}`;\n    clone[_children] = [];\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (this[_attributeNames].has(name)) {\n        clone[name] = XFAObject[_cloneAttribute](this[name]);\n        continue;\n      }\n\n      const value = this[name];\n\n      if (value instanceof XFAObjectArray) {\n        clone[name] = new XFAObjectArray(value[_max]);\n      } else {\n        clone[name] = null;\n      }\n    }\n\n    for (const child of this[_children]) {\n      const name = child[$nodeName];\n      const clonedChild = child[$clone]();\n\n      clone[_children].push(clonedChild);\n\n      clonedChild[_parent] = clone;\n\n      if (clone[name] === null) {\n        clone[name] = clonedChild;\n      } else {\n        clone[name][_children].push(clonedChild);\n      }\n    }\n\n    return clone;\n  }\n\n  [$getChildren]() {\n    let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n    if (!name) {\n      return this[_children];\n    }\n\n    return this[_children].filter(c => c[$nodeName] === name);\n  }\n\n  [$getChildrenByClass](name) {\n    return this[name];\n  }\n\n  [$getChildrenByName](name, allTransparent) {\n    let first = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n    return Array.from(this[$getChildrenByNameIt](name, allTransparent, first));\n  }\n\n  *[$getChildrenByNameIt](name, allTransparent) {\n    let first = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n    if (name === \"parent\") {\n      yield this[_parent];\n      return;\n    }\n\n    for (const child of this[_children]) {\n      if (child[$nodeName] === name) {\n        yield child;\n      }\n\n      if (child.name === name) {\n        yield child;\n      }\n\n      if (allTransparent || child[$isTransparent]()) {\n        yield* child[$getChildrenByNameIt](name, allTransparent, false);\n      }\n    }\n\n    if (first && this[_attributeNames].has(name)) {\n      yield new XFAAttribute(this, name, this[name]);\n    }\n  }\n\n}\n\nexports.XFAObject = XFAObject;\n\nclass XFAObjectArray {\n  constructor() {\n    let max = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Infinity;\n    this[_max] = max;\n    this[_children] = [];\n  }\n\n  push(child) {\n    const len = this[_children].length;\n\n    if (len <= this[_max]) {\n      this[_children].push(child);\n\n      return true;\n    }\n\n    (0, _util.warn)(`XFA - node \"${child[$nodeName]}\" accepts no more than ${this[_max]} children`);\n    return false;\n  }\n\n  isEmpty() {\n    return this[_children].length === 0;\n  }\n\n  dump() {\n    return this[_children].length === 1 ? this[_children][0][$dump]() : this[_children].map(x => x[$dump]());\n  }\n\n  [$clone]() {\n    const clone = new XFAObjectArray(this[_max]);\n    clone[_children] = this[_children].map(c => c[$clone]());\n    return clone;\n  }\n\n  get children() {\n    return this[_children];\n  }\n\n  clear() {\n    this[_children].length = 0;\n  }\n\n}\n\nexports.XFAObjectArray = XFAObjectArray;\n\nclass XFAAttribute {\n  constructor(node, name, value) {\n    this[_parent] = node;\n    this[$nodeName] = name;\n    this[$content] = value;\n    this[$consumed] = false;\n    this[$uid] = `attribute${uid++}`;\n  }\n\n  [$getParent]() {\n    return this[_parent];\n  }\n\n  [$isDataValue]() {\n    return true;\n  }\n\n  [$getDataValue]() {\n    return this[$content].trim();\n  }\n\n  [$setValue](value) {\n    value = value.value || \"\";\n    this[$content] = value.toString();\n  }\n\n  [$text]() {\n    return this[$content];\n  }\n\n  [$isDescendent](parent) {\n    return this[_parent] === parent || this[_parent][$isDescendent](parent);\n  }\n\n}\n\nexports.XFAAttribute = XFAAttribute;\n\nclass XmlObject extends XFAObject {\n  constructor(nsId, name) {\n    let attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    super(nsId, name);\n    this[$content] = \"\";\n    this[_dataValue] = null;\n\n    if (name !== \"#text\") {\n      const map = new Map();\n      this[_attributes] = map;\n\n      for (const [attrName, value] of Object.entries(attributes)) {\n        map.set(attrName, new XFAAttribute(this, attrName, value));\n      }\n\n      if (attributes.hasOwnProperty($nsAttributes)) {\n        const dataNode = attributes[$nsAttributes].xfa.dataNode;\n\n        if (dataNode !== undefined) {\n          if (dataNode === \"dataGroup\") {\n            this[_dataValue] = false;\n          } else if (dataNode === \"dataValue\") {\n            this[_dataValue] = true;\n          }\n        }\n      }\n    }\n\n    this[$consumed] = false;\n  }\n\n  [$toString](buf) {\n    const tagName = this[$nodeName];\n\n    if (tagName === \"#text\") {\n      buf.push((0, _core_utils.encodeToXmlString)(this[$content]));\n      return;\n    }\n\n    const utf8TagName = (0, _util.utf8StringToString)(tagName);\n    const prefix = this[$namespaceId] === NS_DATASETS ? \"xfa:\" : \"\";\n    buf.push(`<${prefix}${utf8TagName}`);\n\n    for (const [name, value] of this[_attributes].entries()) {\n      const utf8Name = (0, _util.utf8StringToString)(name);\n      buf.push(` ${utf8Name}=\"${(0, _core_utils.encodeToXmlString)(value[$content])}\"`);\n    }\n\n    if (this[_dataValue] !== null) {\n      if (this[_dataValue]) {\n        buf.push(` xfa:dataNode=\"dataValue\"`);\n      } else {\n        buf.push(` xfa:dataNode=\"dataGroup\"`);\n      }\n    }\n\n    if (!this[$content] && this[_children].length === 0) {\n      buf.push(\"/>\");\n      return;\n    }\n\n    buf.push(\">\");\n\n    if (this[$content]) {\n      if (typeof this[$content] === \"string\") {\n        buf.push((0, _core_utils.encodeToXmlString)(this[$content]));\n      } else {\n        this[$content][$toString](buf);\n      }\n    } else {\n      for (const child of this[_children]) {\n        child[$toString](buf);\n      }\n    }\n\n    buf.push(`</${prefix}${utf8TagName}>`);\n  }\n\n  [$onChild](child) {\n    if (this[$content]) {\n      const node = new XmlObject(this[$namespaceId], \"#text\");\n      this[$appendChild](node);\n      node[$content] = this[$content];\n      this[$content] = \"\";\n    }\n\n    this[$appendChild](child);\n    return true;\n  }\n\n  [$onText](str) {\n    this[$content] += str;\n  }\n\n  [$finalize]() {\n    if (this[$content] && this[_children].length > 0) {\n      const node = new XmlObject(this[$namespaceId], \"#text\");\n      this[$appendChild](node);\n      node[$content] = this[$content];\n      delete this[$content];\n    }\n  }\n\n  [$toHTML]() {\n    if (this[$nodeName] === \"#text\") {\n      return _utils.HTMLResult.success({\n        name: \"#text\",\n        value: this[$content]\n      });\n    }\n\n    return _utils.HTMLResult.EMPTY;\n  }\n\n  [$getChildren]() {\n    let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n    if (!name) {\n      return this[_children];\n    }\n\n    return this[_children].filter(c => c[$nodeName] === name);\n  }\n\n  [$getAttributes]() {\n    return this[_attributes];\n  }\n\n  [$getChildrenByClass](name) {\n    const value = this[_attributes].get(name);\n\n    if (value !== undefined) {\n      return value;\n    }\n\n    return this[$getChildren](name);\n  }\n\n  *[$getChildrenByNameIt](name, allTransparent) {\n    const value = this[_attributes].get(name);\n\n    if (value) {\n      yield value;\n    }\n\n    for (const child of this[_children]) {\n      if (child[$nodeName] === name) {\n        yield child;\n      }\n\n      if (allTransparent) {\n        yield* child[$getChildrenByNameIt](name, allTransparent);\n      }\n    }\n  }\n\n  *[$getAttributeIt](name, skipConsumed) {\n    const value = this[_attributes].get(name);\n\n    if (value && (!skipConsumed || !value[$consumed])) {\n      yield value;\n    }\n\n    for (const child of this[_children]) {\n      yield* child[$getAttributeIt](name, skipConsumed);\n    }\n  }\n\n  *[$getRealChildrenByNameIt](name, allTransparent, skipConsumed) {\n    for (const child of this[_children]) {\n      if (child[$nodeName] === name && (!skipConsumed || !child[$consumed])) {\n        yield child;\n      }\n\n      if (allTransparent) {\n        yield* child[$getRealChildrenByNameIt](name, allTransparent, skipConsumed);\n      }\n    }\n  }\n\n  [$isDataValue]() {\n    if (this[_dataValue] === null) {\n      return this[_children].length === 0 || this[_children][0][$namespaceId] === _namespaces.NamespaceIds.xhtml.id;\n    }\n\n    return this[_dataValue];\n  }\n\n  [$getDataValue]() {\n    if (this[_dataValue] === null) {\n      if (this[_children].length === 0) {\n        return this[$content].trim();\n      }\n\n      if (this[_children][0][$namespaceId] === _namespaces.NamespaceIds.xhtml.id) {\n        return this[_children][0][$text]().trim();\n      }\n\n      return null;\n    }\n\n    return this[$content].trim();\n  }\n\n  [$setValue](value) {\n    value = value.value || \"\";\n    this[$content] = value.toString();\n  }\n\n  [$dump]() {\n    let hasNS = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    const dumped = Object.create(null);\n\n    if (hasNS) {\n      dumped.$ns = this[$namespaceId];\n    }\n\n    if (this[$content]) {\n      dumped.$content = this[$content];\n    }\n\n    dumped.$name = this[$nodeName];\n    dumped.children = [];\n\n    for (const child of this[_children]) {\n      dumped.children.push(child[$dump](hasNS));\n    }\n\n    dumped.attributes = Object.create(null);\n\n    for (const [name, value] of this[_attributes]) {\n      dumped.attributes[name] = value[$content];\n    }\n\n    return dumped;\n  }\n\n}\n\nexports.XmlObject = XmlObject;\n\nclass ContentObject extends XFAObject {\n  constructor(nsId, name) {\n    super(nsId, name);\n    this[$content] = \"\";\n  }\n\n  [$onText](text) {\n    this[$content] += text;\n  }\n\n  [$finalize]() {}\n\n}\n\nexports.ContentObject = ContentObject;\n\nclass OptionObject extends ContentObject {\n  constructor(nsId, name, options) {\n    super(nsId, name);\n    this[_options] = options;\n  }\n\n  [$finalize]() {\n    this[$content] = (0, _utils.getKeyword)({\n      data: this[$content],\n      defaultValue: this[_options][0],\n      validate: k => this[_options].includes(k)\n    });\n  }\n\n  [$clean](builder) {\n    super[$clean](builder);\n    delete this[_options];\n  }\n\n}\n\nexports.OptionObject = OptionObject;\n\nclass StringObject extends ContentObject {\n  [$finalize]() {\n    this[$content] = this[$content].trim();\n  }\n\n}\n\nexports.StringObject = StringObject;\n\nclass IntegerObject extends ContentObject {\n  constructor(nsId, name, defaultValue, validator) {\n    super(nsId, name);\n    this[_defaultValue] = defaultValue;\n    this[_validator] = validator;\n  }\n\n  [$finalize]() {\n    this[$content] = (0, _utils.getInteger)({\n      data: this[$content],\n      defaultValue: this[_defaultValue],\n      validate: this[_validator]\n    });\n  }\n\n  [$clean](builder) {\n    super[$clean](builder);\n    delete this[_defaultValue];\n    delete this[_validator];\n  }\n\n}\n\nexports.IntegerObject = IntegerObject;\n\nclass Option01 extends IntegerObject {\n  constructor(nsId, name) {\n    super(nsId, name, 0, n => n === 1);\n  }\n\n}\n\nexports.Option01 = Option01;\n\nclass Option10 extends IntegerObject {\n  constructor(nsId, name) {\n    super(nsId, name, 1, n => n === 0);\n  }\n\n}\n\nexports.Option10 = Option10;\n\n/***/ }),\n/* 203 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.HTMLResult = void 0;\nexports.getBBox = getBBox;\nexports.getColor = getColor;\nexports.getFloat = getFloat;\nexports.getInteger = getInteger;\nexports.getKeyword = getKeyword;\nexports.getMeasurement = getMeasurement;\nexports.getRatio = getRatio;\nexports.getRelevant = getRelevant;\nexports.getStringOption = getStringOption;\nexports.stripQuotes = stripQuotes;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst dimConverters = {\n  pt: x => x,\n  cm: x => x / 2.54 * 72,\n  mm: x => x / (10 * 2.54) * 72,\n  in: x => x * 72,\n  px: x => x\n};\nconst measurementPattern = /([+-]?\\d+\\.?\\d*)(.*)/;\n\nfunction stripQuotes(str) {\n  if (str.startsWith(\"'\") || str.startsWith('\"')) {\n    return str.slice(1, str.length - 1);\n  }\n\n  return str;\n}\n\nfunction getInteger(_ref) {\n  let {\n    data,\n    defaultValue,\n    validate\n  } = _ref;\n\n  if (!data) {\n    return defaultValue;\n  }\n\n  data = data.trim();\n  const n = parseInt(data, 10);\n\n  if (!isNaN(n) && validate(n)) {\n    return n;\n  }\n\n  return defaultValue;\n}\n\nfunction getFloat(_ref2) {\n  let {\n    data,\n    defaultValue,\n    validate\n  } = _ref2;\n\n  if (!data) {\n    return defaultValue;\n  }\n\n  data = data.trim();\n  const n = parseFloat(data);\n\n  if (!isNaN(n) && validate(n)) {\n    return n;\n  }\n\n  return defaultValue;\n}\n\nfunction getKeyword(_ref3) {\n  let {\n    data,\n    defaultValue,\n    validate\n  } = _ref3;\n\n  if (!data) {\n    return defaultValue;\n  }\n\n  data = data.trim();\n\n  if (validate(data)) {\n    return data;\n  }\n\n  return defaultValue;\n}\n\nfunction getStringOption(data, options) {\n  return getKeyword({\n    data,\n    defaultValue: options[0],\n    validate: k => options.includes(k)\n  });\n}\n\nfunction getMeasurement(str) {\n  let def = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"0\";\n  def = def || \"0\";\n\n  if (!str) {\n    return getMeasurement(def);\n  }\n\n  const match = str.trim().match(measurementPattern);\n\n  if (!match) {\n    return getMeasurement(def);\n  }\n\n  const [, valueStr, unit] = match;\n  const value = parseFloat(valueStr);\n\n  if (isNaN(value)) {\n    return getMeasurement(def);\n  }\n\n  if (value === 0) {\n    return 0;\n  }\n\n  const conv = dimConverters[unit];\n\n  if (conv) {\n    return conv(value);\n  }\n\n  return value;\n}\n\nfunction getRatio(data) {\n  if (!data) {\n    return {\n      num: 1,\n      den: 1\n    };\n  }\n\n  const ratio = data.trim().split(/\\s*:\\s*/).map(x => parseFloat(x)).filter(x => !isNaN(x));\n\n  if (ratio.length === 1) {\n    ratio.push(1);\n  }\n\n  if (ratio.length === 0) {\n    return {\n      num: 1,\n      den: 1\n    };\n  }\n\n  const [num, den] = ratio;\n  return {\n    num,\n    den\n  };\n}\n\nfunction getRelevant(data) {\n  if (!data) {\n    return [];\n  }\n\n  return data.trim().split(/\\s+/).map(e => {\n    return {\n      excluded: e[0] === \"-\",\n      viewname: e.substring(1)\n    };\n  });\n}\n\nfunction getColor(data) {\n  let def = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 0];\n  let [r, g, b] = def;\n\n  if (!data) {\n    return {\n      r,\n      g,\n      b\n    };\n  }\n\n  const color = data.trim().split(/\\s*,\\s*/).map(c => Math.min(Math.max(0, parseInt(c.trim(), 10)), 255)).map(c => isNaN(c) ? 0 : c);\n\n  if (color.length < 3) {\n    return {\n      r,\n      g,\n      b\n    };\n  }\n\n  [r, g, b] = color;\n  return {\n    r,\n    g,\n    b\n  };\n}\n\nfunction getBBox(data) {\n  const def = -1;\n\n  if (!data) {\n    return {\n      x: def,\n      y: def,\n      width: def,\n      height: def\n    };\n  }\n\n  const bbox = data.trim().split(/\\s*,\\s*/).map(m => getMeasurement(m, \"-1\"));\n\n  if (bbox.length < 4 || bbox[2] < 0 || bbox[3] < 0) {\n    return {\n      x: def,\n      y: def,\n      width: def,\n      height: def\n    };\n  }\n\n  const [x, y, width, height] = bbox;\n  return {\n    x,\n    y,\n    width,\n    height\n  };\n}\n\nclass HTMLResult {\n  static get FAILURE() {\n    return (0, _util.shadow)(this, \"FAILURE\", new HTMLResult(false, null, null, null));\n  }\n\n  static get EMPTY() {\n    return (0, _util.shadow)(this, \"EMPTY\", new HTMLResult(true, null, null, null));\n  }\n\n  constructor(success, html, bbox, breakNode) {\n    this.success = success;\n    this.html = html;\n    this.bbox = bbox;\n    this.breakNode = breakNode;\n  }\n\n  isBreak() {\n    return !!this.breakNode;\n  }\n\n  static breakNode(node) {\n    return new HTMLResult(false, null, null, node);\n  }\n\n  static success(html) {\n    let bbox = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    return new HTMLResult(true, html, bbox, null);\n  }\n\n}\n\nexports.HTMLResult = HTMLResult;\n\n/***/ }),\n/* 204 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.NamespaceIds = exports.$buildXFAObject = void 0;\nconst $buildXFAObject = Symbol();\nexports.$buildXFAObject = $buildXFAObject;\nconst NamespaceIds = {\n  config: {\n    id: 0,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xci/\")\n  },\n  connectionSet: {\n    id: 1,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-connection-set/\")\n  },\n  datasets: {\n    id: 2,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-data/\")\n  },\n  form: {\n    id: 3,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-form/\")\n  },\n  localeSet: {\n    id: 4,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-locale-set/\")\n  },\n  pdf: {\n    id: 5,\n    check: ns => ns === \"http://ns.adobe.com/xdp/pdf/\"\n  },\n  signature: {\n    id: 6,\n    check: ns => ns === \"http://www.w3.org/2000/09/xmldsig#\"\n  },\n  sourceSet: {\n    id: 7,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-source-set/\")\n  },\n  stylesheet: {\n    id: 8,\n    check: ns => ns === \"http://www.w3.org/1999/XSL/Transform\"\n  },\n  template: {\n    id: 9,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-template/\")\n  },\n  xdc: {\n    id: 10,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xdc/\")\n  },\n  xdp: {\n    id: 11,\n    check: ns => ns === \"http://ns.adobe.com/xdp/\"\n  },\n  xfdf: {\n    id: 12,\n    check: ns => ns === \"http://ns.adobe.com/xfdf/\"\n  },\n  xhtml: {\n    id: 13,\n    check: ns => ns === \"http://www.w3.org/1999/xhtml\"\n  },\n  xmpmeta: {\n    id: 14,\n    check: ns => ns === \"http://ns.adobe.com/xmpmeta/\"\n  }\n};\nexports.NamespaceIds = NamespaceIds;\n\n/***/ }),\n/* 205 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.createDataNode = createDataNode;\nexports.searchNode = searchNode;\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nvar _namespaces = __w_pdfjs_require__(204);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst namePattern = /^[^.[]+/;\nconst indexPattern = /^[^\\]]+/;\nconst operators = {\n  dot: 0,\n  dotDot: 1,\n  dotHash: 2,\n  dotBracket: 3,\n  dotParen: 4\n};\nconst shortcuts = new Map([[\"$data\", (root, current) => root.datasets ? root.datasets.data : root], [\"$record\", (root, current) => (root.datasets ? root.datasets.data : root)[_xfa_object.$getChildren]()[0]], [\"$template\", (root, current) => root.template], [\"$connectionSet\", (root, current) => root.connectionSet], [\"$form\", (root, current) => root.form], [\"$layout\", (root, current) => root.layout], [\"$host\", (root, current) => root.host], [\"$dataWindow\", (root, current) => root.dataWindow], [\"$event\", (root, current) => root.event], [\"!\", (root, current) => root.datasets], [\"$xfa\", (root, current) => root], [\"xfa\", (root, current) => root], [\"$\", (root, current) => current]]);\nconst somCache = new WeakMap();\nconst NS_DATASETS = _namespaces.NamespaceIds.datasets.id;\n\nfunction parseIndex(index) {\n  index = index.trim();\n\n  if (index === \"*\") {\n    return Infinity;\n  }\n\n  return parseInt(index, 10) || 0;\n}\n\nfunction parseExpression(expr, dotDotAllowed) {\n  let noExpr = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n  let match = expr.match(namePattern);\n\n  if (!match) {\n    return null;\n  }\n\n  let [name] = match;\n  const parsed = [{\n    name,\n    cacheName: \".\" + name,\n    index: 0,\n    js: null,\n    formCalc: null,\n    operator: operators.dot\n  }];\n  let pos = name.length;\n\n  while (pos < expr.length) {\n    const spos = pos;\n    const char = expr.charAt(pos++);\n\n    if (char === \"[\") {\n      match = expr.slice(pos).match(indexPattern);\n\n      if (!match) {\n        (0, _util.warn)(\"XFA - Invalid index in SOM expression\");\n        return null;\n      }\n\n      parsed.at(-1).index = parseIndex(match[0]);\n      pos += match[0].length + 1;\n      continue;\n    }\n\n    let operator;\n\n    switch (expr.charAt(pos)) {\n      case \".\":\n        if (!dotDotAllowed) {\n          return null;\n        }\n\n        pos++;\n        operator = operators.dotDot;\n        break;\n\n      case \"#\":\n        pos++;\n        operator = operators.dotHash;\n        break;\n\n      case \"[\":\n        if (noExpr) {\n          (0, _util.warn)(\"XFA - SOM expression contains a FormCalc subexpression which is not supported for now.\");\n          return null;\n        }\n\n        operator = operators.dotBracket;\n        break;\n\n      case \"(\":\n        if (noExpr) {\n          (0, _util.warn)(\"XFA - SOM expression contains a JavaScript subexpression which is not supported for now.\");\n          return null;\n        }\n\n        operator = operators.dotParen;\n        break;\n\n      default:\n        operator = operators.dot;\n        break;\n    }\n\n    match = expr.slice(pos).match(namePattern);\n\n    if (!match) {\n      break;\n    }\n\n    [name] = match;\n    pos += name.length;\n    parsed.push({\n      name,\n      cacheName: expr.slice(spos, pos),\n      operator,\n      index: 0,\n      js: null,\n      formCalc: null\n    });\n  }\n\n  return parsed;\n}\n\nfunction searchNode(root, container, expr) {\n  let dotDotAllowed = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n  let useCache = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n  const parsed = parseExpression(expr, dotDotAllowed);\n\n  if (!parsed) {\n    return null;\n  }\n\n  const fn = shortcuts.get(parsed[0].name);\n  let i = 0;\n  let isQualified;\n\n  if (fn) {\n    isQualified = true;\n    root = [fn(root, container)];\n    i = 1;\n  } else {\n    isQualified = container === null;\n    root = [container || root];\n  }\n\n  for (let ii = parsed.length; i < ii; i++) {\n    const {\n      name,\n      cacheName,\n      operator,\n      index\n    } = parsed[i];\n    const nodes = [];\n\n    for (const node of root) {\n      if (!(node instanceof _xfa_object.XFAObject)) {\n        continue;\n      }\n\n      let children, cached;\n\n      if (useCache) {\n        cached = somCache.get(node);\n\n        if (!cached) {\n          cached = new Map();\n          somCache.set(node, cached);\n        }\n\n        children = cached.get(cacheName);\n      }\n\n      if (!children) {\n        switch (operator) {\n          case operators.dot:\n            children = node[_xfa_object.$getChildrenByName](name, false);\n            break;\n\n          case operators.dotDot:\n            children = node[_xfa_object.$getChildrenByName](name, true);\n            break;\n\n          case operators.dotHash:\n            children = node[_xfa_object.$getChildrenByClass](name);\n\n            if (children instanceof _xfa_object.XFAObjectArray) {\n              children = children.children;\n            } else {\n              children = [children];\n            }\n\n            break;\n\n          default:\n            break;\n        }\n\n        if (useCache) {\n          cached.set(cacheName, children);\n        }\n      }\n\n      if (children.length > 0) {\n        nodes.push(children);\n      }\n    }\n\n    if (nodes.length === 0 && !isQualified && i === 0) {\n      const parent = container[_xfa_object.$getParent]();\n\n      container = parent;\n\n      if (!container) {\n        return null;\n      }\n\n      i = -1;\n      root = [container];\n      continue;\n    }\n\n    if (isFinite(index)) {\n      root = nodes.filter(node => index < node.length).map(node => node[index]);\n    } else {\n      root = nodes.flat();\n    }\n  }\n\n  if (root.length === 0) {\n    return null;\n  }\n\n  return root;\n}\n\nfunction createNodes(root, path) {\n  let node = null;\n\n  for (const {\n    name,\n    index\n  } of path) {\n    for (let i = 0, ii = !isFinite(index) ? 0 : index; i <= ii; i++) {\n      const nsId = root[_xfa_object.$namespaceId] === NS_DATASETS ? -1 : root[_xfa_object.$namespaceId];\n      node = new _xfa_object.XmlObject(nsId, name);\n\n      root[_xfa_object.$appendChild](node);\n    }\n\n    root = node;\n  }\n\n  return node;\n}\n\nfunction createDataNode(root, container, expr) {\n  const parsed = parseExpression(expr);\n\n  if (!parsed) {\n    return null;\n  }\n\n  if (parsed.some(x => x.operator === operators.dotDot)) {\n    return null;\n  }\n\n  const fn = shortcuts.get(parsed[0].name);\n  let i = 0;\n\n  if (fn) {\n    root = fn(root, container);\n    i = 1;\n  } else {\n    root = container || root;\n  }\n\n  for (let ii = parsed.length; i < ii; i++) {\n    const {\n      name,\n      operator,\n      index\n    } = parsed[i];\n\n    if (!isFinite(index)) {\n      parsed[i].index = 0;\n      return createNodes(root, parsed.slice(i));\n    }\n\n    let children;\n\n    switch (operator) {\n      case operators.dot:\n        children = root[_xfa_object.$getChildrenByName](name, false);\n        break;\n\n      case operators.dotDot:\n        children = root[_xfa_object.$getChildrenByName](name, true);\n        break;\n\n      case operators.dotHash:\n        children = root[_xfa_object.$getChildrenByClass](name);\n\n        if (children instanceof _xfa_object.XFAObjectArray) {\n          children = children.children;\n        } else {\n          children = [children];\n        }\n\n        break;\n\n      default:\n        break;\n    }\n\n    if (children.length === 0) {\n      return createNodes(root, parsed.slice(i));\n    }\n\n    if (index < children.length) {\n      const child = children[index];\n\n      if (!(child instanceof _xfa_object.XFAObject)) {\n        (0, _util.warn)(`XFA - Cannot create a node.`);\n        return null;\n      }\n\n      root = child;\n    } else {\n      parsed[i].index = index - children.length;\n      return createNodes(root, parsed.slice(i));\n    }\n  }\n\n  return null;\n}\n\n/***/ }),\n/* 206 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Binder = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nvar _template = __w_pdfjs_require__(207);\n\nvar _som = __w_pdfjs_require__(205);\n\nvar _namespaces = __w_pdfjs_require__(204);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst NS_DATASETS = _namespaces.NamespaceIds.datasets.id;\n\nfunction createText(content) {\n  const node = new _template.Text({});\n  node[_xfa_object.$content] = content;\n  return node;\n}\n\nclass Binder {\n  constructor(root) {\n    this.root = root;\n    this.datasets = root.datasets;\n\n    if (root.datasets && root.datasets.data) {\n      this.data = root.datasets.data;\n    } else {\n      this.data = new _xfa_object.XmlObject(_namespaces.NamespaceIds.datasets.id, \"data\");\n    }\n\n    this.emptyMerge = this.data[_xfa_object.$getChildren]().length === 0;\n    this.root.form = this.form = root.template[_xfa_object.$clone]();\n  }\n\n  _isConsumeData() {\n    return !this.emptyMerge && this._mergeMode;\n  }\n\n  _isMatchTemplate() {\n    return !this._isConsumeData();\n  }\n\n  bind() {\n    this._bindElement(this.form, this.data);\n\n    return this.form;\n  }\n\n  getData() {\n    return this.data;\n  }\n\n  _bindValue(formNode, data, picture) {\n    formNode[_xfa_object.$data] = data;\n\n    if (formNode[_xfa_object.$hasSettableValue]()) {\n      if (data[_xfa_object.$isDataValue]()) {\n        const value = data[_xfa_object.$getDataValue]();\n\n        formNode[_xfa_object.$setValue](createText(value));\n      } else if (formNode instanceof _template.Field && formNode.ui && formNode.ui.choiceList && formNode.ui.choiceList.open === \"multiSelect\") {\n        const value = data[_xfa_object.$getChildren]().map(child => child[_xfa_object.$content].trim()).join(\"\\n\");\n\n        formNode[_xfa_object.$setValue](createText(value));\n      } else if (this._isConsumeData()) {\n        (0, _util.warn)(`XFA - Nodes haven't the same type.`);\n      }\n    } else if (!data[_xfa_object.$isDataValue]() || this._isMatchTemplate()) {\n      this._bindElement(formNode, data);\n    } else {\n      (0, _util.warn)(`XFA - Nodes haven't the same type.`);\n    }\n  }\n\n  _findDataByNameToConsume(name, isValue, dataNode, global) {\n    if (!name) {\n      return null;\n    }\n\n    let generator, match;\n\n    for (let i = 0; i < 3; i++) {\n      generator = dataNode[_xfa_object.$getRealChildrenByNameIt](name, false, true);\n\n      while (true) {\n        match = generator.next().value;\n\n        if (!match) {\n          break;\n        }\n\n        if (isValue === match[_xfa_object.$isDataValue]()) {\n          return match;\n        }\n      }\n\n      if (dataNode[_xfa_object.$namespaceId] === _namespaces.NamespaceIds.datasets.id && dataNode[_xfa_object.$nodeName] === \"data\") {\n        break;\n      }\n\n      dataNode = dataNode[_xfa_object.$getParent]();\n    }\n\n    if (!global) {\n      return null;\n    }\n\n    generator = this.data[_xfa_object.$getRealChildrenByNameIt](name, true, false);\n    match = generator.next().value;\n\n    if (match) {\n      return match;\n    }\n\n    generator = this.data[_xfa_object.$getAttributeIt](name, true);\n    match = generator.next().value;\n\n    if (match && match[_xfa_object.$isDataValue]()) {\n      return match;\n    }\n\n    return null;\n  }\n\n  _setProperties(formNode, dataNode) {\n    if (!formNode.hasOwnProperty(\"setProperty\")) {\n      return;\n    }\n\n    for (const {\n      ref,\n      target,\n      connection\n    } of formNode.setProperty.children) {\n      if (connection) {\n        continue;\n      }\n\n      if (!ref) {\n        continue;\n      }\n\n      const nodes = (0, _som.searchNode)(this.root, dataNode, ref, false, false);\n\n      if (!nodes) {\n        (0, _util.warn)(`XFA - Invalid reference: ${ref}.`);\n        continue;\n      }\n\n      const [node] = nodes;\n\n      if (!node[_xfa_object.$isDescendent](this.data)) {\n        (0, _util.warn)(`XFA - Invalid node: must be a data node.`);\n        continue;\n      }\n\n      const targetNodes = (0, _som.searchNode)(this.root, formNode, target, false, false);\n\n      if (!targetNodes) {\n        (0, _util.warn)(`XFA - Invalid target: ${target}.`);\n        continue;\n      }\n\n      const [targetNode] = targetNodes;\n\n      if (!targetNode[_xfa_object.$isDescendent](formNode)) {\n        (0, _util.warn)(`XFA - Invalid target: must be a property or subproperty.`);\n        continue;\n      }\n\n      const targetParent = targetNode[_xfa_object.$getParent]();\n\n      if (targetNode instanceof _template.SetProperty || targetParent instanceof _template.SetProperty) {\n        (0, _util.warn)(`XFA - Invalid target: cannot be a setProperty or one of its properties.`);\n        continue;\n      }\n\n      if (targetNode instanceof _template.BindItems || targetParent instanceof _template.BindItems) {\n        (0, _util.warn)(`XFA - Invalid target: cannot be a bindItems or one of its properties.`);\n        continue;\n      }\n\n      const content = node[_xfa_object.$text]();\n\n      const name = targetNode[_xfa_object.$nodeName];\n\n      if (targetNode instanceof _xfa_object.XFAAttribute) {\n        const attrs = Object.create(null);\n        attrs[name] = content;\n        const obj = Reflect.construct(Object.getPrototypeOf(targetParent).constructor, [attrs]);\n        targetParent[name] = obj[name];\n        continue;\n      }\n\n      if (!targetNode.hasOwnProperty(_xfa_object.$content)) {\n        (0, _util.warn)(`XFA - Invalid node to use in setProperty`);\n        continue;\n      }\n\n      targetNode[_xfa_object.$data] = node;\n      targetNode[_xfa_object.$content] = content;\n\n      targetNode[_xfa_object.$finalize]();\n    }\n  }\n\n  _bindItems(formNode, dataNode) {\n    if (!formNode.hasOwnProperty(\"items\") || !formNode.hasOwnProperty(\"bindItems\") || formNode.bindItems.isEmpty()) {\n      return;\n    }\n\n    for (const item of formNode.items.children) {\n      formNode[_xfa_object.$removeChild](item);\n    }\n\n    formNode.items.clear();\n    const labels = new _template.Items({});\n    const values = new _template.Items({});\n\n    formNode[_xfa_object.$appendChild](labels);\n\n    formNode.items.push(labels);\n\n    formNode[_xfa_object.$appendChild](values);\n\n    formNode.items.push(values);\n\n    for (const {\n      ref,\n      labelRef,\n      valueRef,\n      connection\n    } of formNode.bindItems.children) {\n      if (connection) {\n        continue;\n      }\n\n      if (!ref) {\n        continue;\n      }\n\n      const nodes = (0, _som.searchNode)(this.root, dataNode, ref, false, false);\n\n      if (!nodes) {\n        (0, _util.warn)(`XFA - Invalid reference: ${ref}.`);\n        continue;\n      }\n\n      for (const node of nodes) {\n        if (!node[_xfa_object.$isDescendent](this.datasets)) {\n          (0, _util.warn)(`XFA - Invalid ref (${ref}): must be a datasets child.`);\n          continue;\n        }\n\n        const labelNodes = (0, _som.searchNode)(this.root, node, labelRef, true, false);\n\n        if (!labelNodes) {\n          (0, _util.warn)(`XFA - Invalid label: ${labelRef}.`);\n          continue;\n        }\n\n        const [labelNode] = labelNodes;\n\n        if (!labelNode[_xfa_object.$isDescendent](this.datasets)) {\n          (0, _util.warn)(`XFA - Invalid label: must be a datasets child.`);\n          continue;\n        }\n\n        const valueNodes = (0, _som.searchNode)(this.root, node, valueRef, true, false);\n\n        if (!valueNodes) {\n          (0, _util.warn)(`XFA - Invalid value: ${valueRef}.`);\n          continue;\n        }\n\n        const [valueNode] = valueNodes;\n\n        if (!valueNode[_xfa_object.$isDescendent](this.datasets)) {\n          (0, _util.warn)(`XFA - Invalid value: must be a datasets child.`);\n          continue;\n        }\n\n        const label = createText(labelNode[_xfa_object.$text]());\n        const value = createText(valueNode[_xfa_object.$text]());\n\n        labels[_xfa_object.$appendChild](label);\n\n        labels.text.push(label);\n\n        values[_xfa_object.$appendChild](value);\n\n        values.text.push(value);\n      }\n    }\n  }\n\n  _bindOccurrences(formNode, matches, picture) {\n    let baseClone;\n\n    if (matches.length > 1) {\n      baseClone = formNode[_xfa_object.$clone]();\n\n      baseClone[_xfa_object.$removeChild](baseClone.occur);\n\n      baseClone.occur = null;\n    }\n\n    this._bindValue(formNode, matches[0], picture);\n\n    this._setProperties(formNode, matches[0]);\n\n    this._bindItems(formNode, matches[0]);\n\n    if (matches.length === 1) {\n      return;\n    }\n\n    const parent = formNode[_xfa_object.$getParent]();\n\n    const name = formNode[_xfa_object.$nodeName];\n\n    const pos = parent[_xfa_object.$indexOf](formNode);\n\n    for (let i = 1, ii = matches.length; i < ii; i++) {\n      const match = matches[i];\n\n      const clone = baseClone[_xfa_object.$clone]();\n\n      parent[name].push(clone);\n\n      parent[_xfa_object.$insertAt](pos + i, clone);\n\n      this._bindValue(clone, match, picture);\n\n      this._setProperties(clone, match);\n\n      this._bindItems(clone, match);\n    }\n  }\n\n  _createOccurrences(formNode) {\n    if (!this.emptyMerge) {\n      return;\n    }\n\n    const {\n      occur\n    } = formNode;\n\n    if (!occur || occur.initial <= 1) {\n      return;\n    }\n\n    const parent = formNode[_xfa_object.$getParent]();\n\n    const name = formNode[_xfa_object.$nodeName];\n\n    if (!(parent[name] instanceof _xfa_object.XFAObjectArray)) {\n      return;\n    }\n\n    let currentNumber;\n\n    if (formNode.name) {\n      currentNumber = parent[name].children.filter(e => e.name === formNode.name).length;\n    } else {\n      currentNumber = parent[name].children.length;\n    }\n\n    const pos = parent[_xfa_object.$indexOf](formNode) + 1;\n    const ii = occur.initial - currentNumber;\n\n    if (ii) {\n      const nodeClone = formNode[_xfa_object.$clone]();\n\n      nodeClone[_xfa_object.$removeChild](nodeClone.occur);\n\n      nodeClone.occur = null;\n      parent[name].push(nodeClone);\n\n      parent[_xfa_object.$insertAt](pos, nodeClone);\n\n      for (let i = 1; i < ii; i++) {\n        const clone = nodeClone[_xfa_object.$clone]();\n\n        parent[name].push(clone);\n\n        parent[_xfa_object.$insertAt](pos + i, clone);\n      }\n    }\n  }\n\n  _getOccurInfo(formNode) {\n    const {\n      name,\n      occur\n    } = formNode;\n\n    if (!occur || !name) {\n      return [1, 1];\n    }\n\n    const max = occur.max === -1 ? Infinity : occur.max;\n    return [occur.min, max];\n  }\n\n  _setAndBind(formNode, dataNode) {\n    this._setProperties(formNode, dataNode);\n\n    this._bindItems(formNode, dataNode);\n\n    this._bindElement(formNode, dataNode);\n  }\n\n  _bindElement(formNode, dataNode) {\n    const uselessNodes = [];\n\n    this._createOccurrences(formNode);\n\n    for (const child of formNode[_xfa_object.$getChildren]()) {\n      if (child[_xfa_object.$data]) {\n        continue;\n      }\n\n      if (this._mergeMode === undefined && child[_xfa_object.$nodeName] === \"subform\") {\n        this._mergeMode = child.mergeMode === \"consumeData\";\n\n        const dataChildren = dataNode[_xfa_object.$getChildren]();\n\n        if (dataChildren.length > 0) {\n          this._bindOccurrences(child, [dataChildren[0]], null);\n        } else if (this.emptyMerge) {\n          const nsId = dataNode[_xfa_object.$namespaceId] === NS_DATASETS ? -1 : dataNode[_xfa_object.$namespaceId];\n          const dataChild = child[_xfa_object.$data] = new _xfa_object.XmlObject(nsId, child.name || \"root\");\n\n          dataNode[_xfa_object.$appendChild](dataChild);\n\n          this._bindElement(child, dataChild);\n        }\n\n        continue;\n      }\n\n      if (!child[_xfa_object.$isBindable]()) {\n        continue;\n      }\n\n      let global = false;\n      let picture = null;\n      let ref = null;\n      let match = null;\n\n      if (child.bind) {\n        switch (child.bind.match) {\n          case \"none\":\n            this._setAndBind(child, dataNode);\n\n            continue;\n\n          case \"global\":\n            global = true;\n            break;\n\n          case \"dataRef\":\n            if (!child.bind.ref) {\n              (0, _util.warn)(`XFA - ref is empty in node ${child[_xfa_object.$nodeName]}.`);\n\n              this._setAndBind(child, dataNode);\n\n              continue;\n            }\n\n            ref = child.bind.ref;\n            break;\n\n          default:\n            break;\n        }\n\n        if (child.bind.picture) {\n          picture = child.bind.picture[_xfa_object.$content];\n        }\n      }\n\n      const [min, max] = this._getOccurInfo(child);\n\n      if (ref) {\n        match = (0, _som.searchNode)(this.root, dataNode, ref, true, false);\n\n        if (match === null) {\n          match = (0, _som.createDataNode)(this.data, dataNode, ref);\n\n          if (!match) {\n            continue;\n          }\n\n          if (this._isConsumeData()) {\n            match[_xfa_object.$consumed] = true;\n          }\n\n          this._setAndBind(child, match);\n\n          continue;\n        } else {\n          if (this._isConsumeData()) {\n            match = match.filter(node => !node[_xfa_object.$consumed]);\n          }\n\n          if (match.length > max) {\n            match = match.slice(0, max);\n          } else if (match.length === 0) {\n            match = null;\n          }\n\n          if (match && this._isConsumeData()) {\n            match.forEach(node => {\n              node[_xfa_object.$consumed] = true;\n            });\n          }\n        }\n      } else {\n        if (!child.name) {\n          this._setAndBind(child, dataNode);\n\n          continue;\n        }\n\n        if (this._isConsumeData()) {\n          const matches = [];\n\n          while (matches.length < max) {\n            const found = this._findDataByNameToConsume(child.name, child[_xfa_object.$hasSettableValue](), dataNode, global);\n\n            if (!found) {\n              break;\n            }\n\n            found[_xfa_object.$consumed] = true;\n            matches.push(found);\n          }\n\n          match = matches.length > 0 ? matches : null;\n        } else {\n          match = dataNode[_xfa_object.$getRealChildrenByNameIt](child.name, false, this.emptyMerge).next().value;\n\n          if (!match) {\n            if (min === 0) {\n              uselessNodes.push(child);\n              continue;\n            }\n\n            const nsId = dataNode[_xfa_object.$namespaceId] === NS_DATASETS ? -1 : dataNode[_xfa_object.$namespaceId];\n            match = child[_xfa_object.$data] = new _xfa_object.XmlObject(nsId, child.name);\n\n            if (this.emptyMerge) {\n              match[_xfa_object.$consumed] = true;\n            }\n\n            dataNode[_xfa_object.$appendChild](match);\n\n            this._setAndBind(child, match);\n\n            continue;\n          }\n\n          if (this.emptyMerge) {\n            match[_xfa_object.$consumed] = true;\n          }\n\n          match = [match];\n        }\n      }\n\n      if (match) {\n        this._bindOccurrences(child, match, picture);\n      } else if (min > 0) {\n        this._setAndBind(child, dataNode);\n      } else {\n        uselessNodes.push(child);\n      }\n    }\n\n    uselessNodes.forEach(node => node[_xfa_object.$getParent]()[_xfa_object.$removeChild](node));\n  }\n\n}\n\nexports.Binder = Binder;\n\n/***/ }),\n/* 207 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Value = exports.Text = exports.TemplateNamespace = exports.Template = exports.SetProperty = exports.Items = exports.Field = exports.BindItems = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nvar _namespaces = __w_pdfjs_require__(204);\n\nvar _layout = __w_pdfjs_require__(208);\n\nvar _html_utils = __w_pdfjs_require__(209);\n\nvar _utils = __w_pdfjs_require__(203);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _fonts = __w_pdfjs_require__(210);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _som = __w_pdfjs_require__(205);\n\nconst TEMPLATE_NS_ID = _namespaces.NamespaceIds.template.id;\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nconst MAX_ATTEMPTS_FOR_LRTB_LAYOUT = 2;\nconst MAX_EMPTY_PAGES = 3;\nconst DEFAULT_TAB_INDEX = 5000;\nconst HEADING_PATTERN = /^H(\\d+)$/;\nconst MIMES = new Set([\"image/gif\", \"image/jpeg\", \"image/jpg\", \"image/pjpeg\", \"image/png\", \"image/apng\", \"image/x-png\", \"image/bmp\", \"image/x-ms-bmp\", \"image/tiff\", \"image/tif\", \"application/octet-stream\"]);\nconst IMAGES_HEADERS = [[[0x42, 0x4d], \"image/bmp\"], [[0xff, 0xd8, 0xff], \"image/jpeg\"], [[0x49, 0x49, 0x2a, 0x00], \"image/tiff\"], [[0x4d, 0x4d, 0x00, 0x2a], \"image/tiff\"], [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61], \"image/gif\"], [[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a], \"image/png\"]];\n\nfunction getBorderDims(node) {\n  if (!node || !node.border) {\n    return {\n      w: 0,\n      h: 0\n    };\n  }\n\n  const borderExtra = node.border[_xfa_object.$getExtra]();\n\n  if (!borderExtra) {\n    return {\n      w: 0,\n      h: 0\n    };\n  }\n\n  return {\n    w: borderExtra.widths[0] + borderExtra.widths[2] + borderExtra.insets[0] + borderExtra.insets[2],\n    h: borderExtra.widths[1] + borderExtra.widths[3] + borderExtra.insets[1] + borderExtra.insets[3]\n  };\n}\n\nfunction hasMargin(node) {\n  return node.margin && (node.margin.topInset || node.margin.rightInset || node.margin.bottomInset || node.margin.leftInset);\n}\n\nfunction _setValue(templateNode, value) {\n  if (!templateNode.value) {\n    const nodeValue = new Value({});\n\n    templateNode[_xfa_object.$appendChild](nodeValue);\n\n    templateNode.value = nodeValue;\n  }\n\n  templateNode.value[_xfa_object.$setValue](value);\n}\n\nfunction* getContainedChildren(node) {\n  for (const child of node[_xfa_object.$getChildren]()) {\n    if (child instanceof SubformSet) {\n      yield* child[_xfa_object.$getContainedChildren]();\n      continue;\n    }\n\n    yield child;\n  }\n}\n\nfunction isRequired(node) {\n  return node.validate && node.validate.nullTest === \"error\";\n}\n\nfunction setTabIndex(node) {\n  while (node) {\n    if (!node.traversal) {\n      node[_xfa_object.$tabIndex] = node[_xfa_object.$getParent]()[_xfa_object.$tabIndex];\n      return;\n    }\n\n    if (node[_xfa_object.$tabIndex]) {\n      return;\n    }\n\n    let next = null;\n\n    for (const child of node.traversal[_xfa_object.$getChildren]()) {\n      if (child.operation === \"next\") {\n        next = child;\n        break;\n      }\n    }\n\n    if (!next || !next.ref) {\n      node[_xfa_object.$tabIndex] = node[_xfa_object.$getParent]()[_xfa_object.$tabIndex];\n      return;\n    }\n\n    const root = node[_xfa_object.$getTemplateRoot]();\n\n    node[_xfa_object.$tabIndex] = ++root[_xfa_object.$tabIndex];\n\n    const ref = root[_xfa_object.$searchNode](next.ref, node);\n\n    if (!ref) {\n      return;\n    }\n\n    node = ref[0];\n  }\n}\n\nfunction applyAssist(obj, attributes) {\n  const assist = obj.assist;\n\n  if (assist) {\n    const assistTitle = assist[_xfa_object.$toHTML]();\n\n    if (assistTitle) {\n      attributes.title = assistTitle;\n    }\n\n    const role = assist.role;\n    const match = role.match(HEADING_PATTERN);\n\n    if (match) {\n      const ariaRole = \"heading\";\n      const ariaLevel = match[1];\n      attributes.role = ariaRole;\n      attributes[\"aria-level\"] = ariaLevel;\n    }\n  }\n\n  if (obj.layout === \"table\") {\n    attributes.role = \"table\";\n  } else if (obj.layout === \"row\") {\n    attributes.role = \"row\";\n  } else {\n    const parent = obj[_xfa_object.$getParent]();\n\n    if (parent.layout === \"row\") {\n      if (parent.assist && parent.assist.role === \"TH\") {\n        attributes.role = \"columnheader\";\n      } else {\n        attributes.role = \"cell\";\n      }\n    }\n  }\n}\n\nfunction ariaLabel(obj) {\n  if (!obj.assist) {\n    return null;\n  }\n\n  const assist = obj.assist;\n\n  if (assist.speak && assist.speak[_xfa_object.$content] !== \"\") {\n    return assist.speak[_xfa_object.$content];\n  }\n\n  if (assist.toolTip) {\n    return assist.toolTip[_xfa_object.$content];\n  }\n\n  return null;\n}\n\nfunction valueToHtml(value) {\n  return _utils.HTMLResult.success({\n    name: \"div\",\n    attributes: {\n      class: [\"xfaRich\"],\n      style: Object.create(null)\n    },\n    children: [{\n      name: \"span\",\n      attributes: {\n        style: Object.create(null)\n      },\n      value\n    }]\n  });\n}\n\nfunction setFirstUnsplittable(node) {\n  const root = node[_xfa_object.$getTemplateRoot]();\n\n  if (root[_xfa_object.$extra].firstUnsplittable === null) {\n    root[_xfa_object.$extra].firstUnsplittable = node;\n    root[_xfa_object.$extra].noLayoutFailure = true;\n  }\n}\n\nfunction unsetFirstUnsplittable(node) {\n  const root = node[_xfa_object.$getTemplateRoot]();\n\n  if (root[_xfa_object.$extra].firstUnsplittable === node) {\n    root[_xfa_object.$extra].noLayoutFailure = false;\n  }\n}\n\nfunction handleBreak(node) {\n  if (node[_xfa_object.$extra]) {\n    return false;\n  }\n\n  node[_xfa_object.$extra] = Object.create(null);\n\n  if (node.targetType === \"auto\") {\n    return false;\n  }\n\n  const root = node[_xfa_object.$getTemplateRoot]();\n\n  let target = null;\n\n  if (node.target) {\n    target = root[_xfa_object.$searchNode](node.target, node[_xfa_object.$getParent]());\n\n    if (!target) {\n      return false;\n    }\n\n    target = target[0];\n  }\n\n  const {\n    currentPageArea,\n    currentContentArea\n  } = root[_xfa_object.$extra];\n\n  if (node.targetType === \"pageArea\") {\n    if (!(target instanceof PageArea)) {\n      target = null;\n    }\n\n    if (node.startNew) {\n      node[_xfa_object.$extra].target = target || currentPageArea;\n      return true;\n    } else if (target && target !== currentPageArea) {\n      node[_xfa_object.$extra].target = target;\n      return true;\n    }\n\n    return false;\n  }\n\n  if (!(target instanceof ContentArea)) {\n    target = null;\n  }\n\n  const pageArea = target && target[_xfa_object.$getParent]();\n\n  let index;\n  let nextPageArea = pageArea;\n\n  if (node.startNew) {\n    if (target) {\n      const contentAreas = pageArea.contentArea.children;\n      const indexForCurrent = contentAreas.indexOf(currentContentArea);\n      const indexForTarget = contentAreas.indexOf(target);\n\n      if (indexForCurrent !== -1 && indexForCurrent < indexForTarget) {\n        nextPageArea = null;\n      }\n\n      index = indexForTarget - 1;\n    } else {\n      index = currentPageArea.contentArea.children.indexOf(currentContentArea);\n    }\n  } else if (target && target !== currentContentArea) {\n    const contentAreas = pageArea.contentArea.children;\n    index = contentAreas.indexOf(target) - 1;\n    nextPageArea = pageArea === currentPageArea ? null : pageArea;\n  } else {\n    return false;\n  }\n\n  node[_xfa_object.$extra].target = nextPageArea;\n  node[_xfa_object.$extra].index = index;\n  return true;\n}\n\nfunction handleOverflow(node, extraNode, space) {\n  const root = node[_xfa_object.$getTemplateRoot]();\n\n  const saved = root[_xfa_object.$extra].noLayoutFailure;\n  const savedMethod = extraNode[_xfa_object.$getSubformParent];\n\n  extraNode[_xfa_object.$getSubformParent] = () => node;\n\n  root[_xfa_object.$extra].noLayoutFailure = true;\n\n  const res = extraNode[_xfa_object.$toHTML](space);\n\n  node[_xfa_object.$addHTML](res.html, res.bbox);\n\n  root[_xfa_object.$extra].noLayoutFailure = saved;\n  extraNode[_xfa_object.$getSubformParent] = savedMethod;\n}\n\nclass AppearanceFilter extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"appearanceFilter\");\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Arc extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"arc\", true);\n    this.circular = (0, _utils.getInteger)({\n      data: attributes.circular,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.hand = (0, _utils.getStringOption)(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.startAngle = (0, _utils.getFloat)({\n      data: attributes.startAngle,\n      defaultValue: 0,\n      validate: x => true\n    });\n    this.sweepAngle = (0, _utils.getFloat)({\n      data: attributes.sweepAngle,\n      defaultValue: 360,\n      validate: x => true\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.edge = null;\n    this.fill = null;\n  }\n\n  [_xfa_object.$toHTML]() {\n    const edge = this.edge || new Edge({});\n\n    const edgeStyle = edge[_xfa_object.$toStyle]();\n\n    const style = Object.create(null);\n\n    if (this.fill && this.fill.presence === \"visible\") {\n      Object.assign(style, this.fill[_xfa_object.$toStyle]());\n    } else {\n      style.fill = \"transparent\";\n    }\n\n    style.strokeWidth = (0, _html_utils.measureToString)(edge.presence === \"visible\" ? edge.thickness : 0);\n    style.stroke = edgeStyle.color;\n    let arc;\n    const attributes = {\n      xmlns: SVG_NS,\n      style: {\n        width: \"100%\",\n        height: \"100%\",\n        overflow: \"visible\"\n      }\n    };\n\n    if (this.sweepAngle === 360) {\n      arc = {\n        name: \"ellipse\",\n        attributes: {\n          xmlns: SVG_NS,\n          cx: \"50%\",\n          cy: \"50%\",\n          rx: \"50%\",\n          ry: \"50%\",\n          style\n        }\n      };\n    } else {\n      const startAngle = this.startAngle * Math.PI / 180;\n      const sweepAngle = this.sweepAngle * Math.PI / 180;\n      const largeArc = this.sweepAngle > 180 ? 1 : 0;\n      const [x1, y1, x2, y2] = [50 * (1 + Math.cos(startAngle)), 50 * (1 - Math.sin(startAngle)), 50 * (1 + Math.cos(startAngle + sweepAngle)), 50 * (1 - Math.sin(startAngle + sweepAngle))];\n      arc = {\n        name: \"path\",\n        attributes: {\n          xmlns: SVG_NS,\n          d: `M ${x1} ${y1} A 50 50 0 ${largeArc} 0 ${x2} ${y2}`,\n          vectorEffect: \"non-scaling-stroke\",\n          style\n        }\n      };\n      Object.assign(attributes, {\n        viewBox: \"0 0 100 100\",\n        preserveAspectRatio: \"none\"\n      });\n    }\n\n    const svg = {\n      name: \"svg\",\n      children: [arc],\n      attributes\n    };\n\n    const parent = this[_xfa_object.$getParent]()[_xfa_object.$getParent]();\n\n    if (hasMargin(parent)) {\n      return _utils.HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          style: {\n            display: \"inline\",\n            width: \"100%\",\n            height: \"100%\"\n          }\n        },\n        children: [svg]\n      });\n    }\n\n    svg.attributes.style.position = \"absolute\";\n    return _utils.HTMLResult.success(svg);\n  }\n\n}\n\nclass Area extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"area\", true);\n    this.colSpan = (0, _utils.getInteger)({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1\n    });\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n    this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n    this.desc = null;\n    this.extras = null;\n    this.area = new _xfa_object.XFAObjectArray();\n    this.draw = new _xfa_object.XFAObjectArray();\n    this.exObject = new _xfa_object.XFAObjectArray();\n    this.exclGroup = new _xfa_object.XFAObjectArray();\n    this.field = new _xfa_object.XFAObjectArray();\n    this.subform = new _xfa_object.XFAObjectArray();\n    this.subformSet = new _xfa_object.XFAObjectArray();\n  }\n\n  *[_xfa_object.$getContainedChildren]() {\n    yield* getContainedChildren(this);\n  }\n\n  [_xfa_object.$isTransparent]() {\n    return true;\n  }\n\n  [_xfa_object.$isBindable]() {\n    return true;\n  }\n\n  [_xfa_object.$addHTML](html, bbox) {\n    const [x, y, w, h] = bbox;\n    this[_xfa_object.$extra].width = Math.max(this[_xfa_object.$extra].width, x + w);\n    this[_xfa_object.$extra].height = Math.max(this[_xfa_object.$extra].height, y + h);\n\n    this[_xfa_object.$extra].children.push(html);\n  }\n\n  [_xfa_object.$getAvailableSpace]() {\n    return this[_xfa_object.$extra].availableSpace;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const style = (0, _html_utils.toStyle)(this, \"position\");\n    const attributes = {\n      style,\n      id: this[_xfa_object.$uid],\n      class: [\"xfaArea\"]\n    };\n\n    if ((0, _html_utils.isPrintOnly)(this)) {\n      attributes.class.push(\"xfaPrintOnly\");\n    }\n\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n\n    const children = [];\n    this[_xfa_object.$extra] = {\n      children,\n      width: 0,\n      height: 0,\n      availableSpace\n    };\n\n    const result = this[_xfa_object.$childrenToHTML]({\n      filter: new Set([\"area\", \"draw\", \"field\", \"exclGroup\", \"subform\", \"subformSet\"]),\n      include: true\n    });\n\n    if (!result.success) {\n      if (result.isBreak()) {\n        return result;\n      }\n\n      delete this[_xfa_object.$extra];\n      return _utils.HTMLResult.FAILURE;\n    }\n\n    style.width = (0, _html_utils.measureToString)(this[_xfa_object.$extra].width);\n    style.height = (0, _html_utils.measureToString)(this[_xfa_object.$extra].height);\n    const html = {\n      name: \"div\",\n      attributes,\n      children\n    };\n    const bbox = [this.x, this.y, this[_xfa_object.$extra].width, this[_xfa_object.$extra].height];\n    delete this[_xfa_object.$extra];\n    return _utils.HTMLResult.success(html, bbox);\n  }\n\n}\n\nclass Assist extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"assist\", true);\n    this.id = attributes.id || \"\";\n    this.role = attributes.role || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.speak = null;\n    this.toolTip = null;\n  }\n\n  [_xfa_object.$toHTML]() {\n    return this.toolTip && this.toolTip[_xfa_object.$content] ? this.toolTip[_xfa_object.$content] : null;\n  }\n\n}\n\nclass Barcode extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"barcode\", true);\n    this.charEncoding = (0, _utils.getKeyword)({\n      data: attributes.charEncoding ? attributes.charEncoding.toLowerCase() : \"\",\n      defaultValue: \"\",\n      validate: k => [\"utf-8\", \"big-five\", \"fontspecific\", \"gbk\", \"gb-18030\", \"gb-2312\", \"ksc-5601\", \"none\", \"shift-jis\", \"ucs-2\", \"utf-16\"].includes(k) || k.match(/iso-8859-\\d{2}/)\n    });\n    this.checksum = (0, _utils.getStringOption)(attributes.checksum, [\"none\", \"1mod10\", \"1mod10_1mod11\", \"2mod10\", \"auto\"]);\n    this.dataColumnCount = (0, _utils.getInteger)({\n      data: attributes.dataColumnCount,\n      defaultValue: -1,\n      validate: x => x >= 0\n    });\n    this.dataLength = (0, _utils.getInteger)({\n      data: attributes.dataLength,\n      defaultValue: -1,\n      validate: x => x >= 0\n    });\n    this.dataPrep = (0, _utils.getStringOption)(attributes.dataPrep, [\"none\", \"flateCompress\"]);\n    this.dataRowCount = (0, _utils.getInteger)({\n      data: attributes.dataRowCount,\n      defaultValue: -1,\n      validate: x => x >= 0\n    });\n    this.endChar = attributes.endChar || \"\";\n    this.errorCorrectionLevel = (0, _utils.getInteger)({\n      data: attributes.errorCorrectionLevel,\n      defaultValue: -1,\n      validate: x => x >= 0 && x <= 8\n    });\n    this.id = attributes.id || \"\";\n    this.moduleHeight = (0, _utils.getMeasurement)(attributes.moduleHeight, \"5mm\");\n    this.moduleWidth = (0, _utils.getMeasurement)(attributes.moduleWidth, \"0.25mm\");\n    this.printCheckDigit = (0, _utils.getInteger)({\n      data: attributes.printCheckDigit,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.rowColumnRatio = (0, _utils.getRatio)(attributes.rowColumnRatio);\n    this.startChar = attributes.startChar || \"\";\n    this.textLocation = (0, _utils.getStringOption)(attributes.textLocation, [\"below\", \"above\", \"aboveEmbedded\", \"belowEmbedded\", \"none\"]);\n    this.truncate = (0, _utils.getInteger)({\n      data: attributes.truncate,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.type = (0, _utils.getStringOption)(attributes.type ? attributes.type.toLowerCase() : \"\", [\"aztec\", \"codabar\", \"code2of5industrial\", \"code2of5interleaved\", \"code2of5matrix\", \"code2of5standard\", \"code3of9\", \"code3of9extended\", \"code11\", \"code49\", \"code93\", \"code128\", \"code128a\", \"code128b\", \"code128c\", \"code128sscc\", \"datamatrix\", \"ean8\", \"ean8add2\", \"ean8add5\", \"ean13\", \"ean13add2\", \"ean13add5\", \"ean13pwcd\", \"fim\", \"logmars\", \"maxicode\", \"msi\", \"pdf417\", \"pdf417macro\", \"plessey\", \"postauscust2\", \"postauscust3\", \"postausreplypaid\", \"postausstandard\", \"postukrm4scc\", \"postusdpbc\", \"postusimb\", \"postusstandard\", \"postus5zip\", \"qrcode\", \"rfid\", \"rss14\", \"rss14expanded\", \"rss14limited\", \"rss14stacked\", \"rss14stackedomni\", \"rss14truncated\", \"telepen\", \"ucc128\", \"ucc128random\", \"ucc128sscc\", \"upca\", \"upcaadd2\", \"upcaadd5\", \"upcapwcd\", \"upce\", \"upceadd2\", \"upceadd5\", \"upcean2\", \"upcean5\", \"upsmaxicode\"]);\n    this.upsMode = (0, _utils.getStringOption)(attributes.upsMode, [\"usCarrier\", \"internationalCarrier\", \"secureSymbol\", \"standardSymbol\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.wideNarrowRatio = (0, _utils.getRatio)(attributes.wideNarrowRatio);\n    this.encrypt = null;\n    this.extras = null;\n  }\n\n}\n\nclass Bind extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"bind\", true);\n    this.match = (0, _utils.getStringOption)(attributes.match, [\"once\", \"dataRef\", \"global\", \"none\"]);\n    this.ref = attributes.ref || \"\";\n    this.picture = null;\n  }\n\n}\n\nclass BindItems extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"bindItems\");\n    this.connection = attributes.connection || \"\";\n    this.labelRef = attributes.labelRef || \"\";\n    this.ref = attributes.ref || \"\";\n    this.valueRef = attributes.valueRef || \"\";\n  }\n\n}\n\nexports.BindItems = BindItems;\n\nclass Bookend extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"bookend\");\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass BooleanElement extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"boolean\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return valueToHtml(this[_xfa_object.$content] === 1 ? \"1\" : \"0\");\n  }\n\n}\n\nclass Border extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"border\", true);\n    this.break = (0, _utils.getStringOption)(attributes.break, [\"close\", \"open\"]);\n    this.hand = (0, _utils.getStringOption)(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.corner = new _xfa_object.XFAObjectArray(4);\n    this.edge = new _xfa_object.XFAObjectArray(4);\n    this.extras = null;\n    this.fill = null;\n    this.margin = null;\n  }\n\n  [_xfa_object.$getExtra]() {\n    if (!this[_xfa_object.$extra]) {\n      const edges = this.edge.children.slice();\n\n      if (edges.length < 4) {\n        const defaultEdge = edges.at(-1) || new Edge({});\n\n        for (let i = edges.length; i < 4; i++) {\n          edges.push(defaultEdge);\n        }\n      }\n\n      const widths = edges.map(edge => edge.thickness);\n      const insets = [0, 0, 0, 0];\n\n      if (this.margin) {\n        insets[0] = this.margin.topInset;\n        insets[1] = this.margin.rightInset;\n        insets[2] = this.margin.bottomInset;\n        insets[3] = this.margin.leftInset;\n      }\n\n      this[_xfa_object.$extra] = {\n        widths,\n        insets,\n        edges\n      };\n    }\n\n    return this[_xfa_object.$extra];\n  }\n\n  [_xfa_object.$toStyle]() {\n    const {\n      edges\n    } = this[_xfa_object.$getExtra]();\n\n    const edgeStyles = edges.map(node => {\n      const style = node[_xfa_object.$toStyle]();\n\n      style.color = style.color || \"#000000\";\n      return style;\n    });\n    const style = Object.create(null);\n\n    if (this.margin) {\n      Object.assign(style, this.margin[_xfa_object.$toStyle]());\n    }\n\n    if (this.fill && this.fill.presence === \"visible\") {\n      Object.assign(style, this.fill[_xfa_object.$toStyle]());\n    }\n\n    if (this.corner.children.some(node => node.radius !== 0)) {\n      const cornerStyles = this.corner.children.map(node => node[_xfa_object.$toStyle]());\n\n      if (cornerStyles.length === 2 || cornerStyles.length === 3) {\n        const last = cornerStyles.at(-1);\n\n        for (let i = cornerStyles.length; i < 4; i++) {\n          cornerStyles.push(last);\n        }\n      }\n\n      style.borderRadius = cornerStyles.map(s => s.radius).join(\" \");\n    }\n\n    switch (this.presence) {\n      case \"invisible\":\n      case \"hidden\":\n        style.borderStyle = \"\";\n        break;\n\n      case \"inactive\":\n        style.borderStyle = \"none\";\n        break;\n\n      default:\n        style.borderStyle = edgeStyles.map(s => s.style).join(\" \");\n        break;\n    }\n\n    style.borderWidth = edgeStyles.map(s => s.width).join(\" \");\n    style.borderColor = edgeStyles.map(s => s.color).join(\" \");\n    return style;\n  }\n\n}\n\nclass Break extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"break\", true);\n    this.after = (0, _utils.getStringOption)(attributes.after, [\"auto\", \"contentArea\", \"pageArea\", \"pageEven\", \"pageOdd\"]);\n    this.afterTarget = attributes.afterTarget || \"\";\n    this.before = (0, _utils.getStringOption)(attributes.before, [\"auto\", \"contentArea\", \"pageArea\", \"pageEven\", \"pageOdd\"]);\n    this.beforeTarget = attributes.beforeTarget || \"\";\n    this.bookendLeader = attributes.bookendLeader || \"\";\n    this.bookendTrailer = attributes.bookendTrailer || \"\";\n    this.id = attributes.id || \"\";\n    this.overflowLeader = attributes.overflowLeader || \"\";\n    this.overflowTarget = attributes.overflowTarget || \"\";\n    this.overflowTrailer = attributes.overflowTrailer || \"\";\n    this.startNew = (0, _utils.getInteger)({\n      data: attributes.startNew,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n}\n\nclass BreakAfter extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"breakAfter\", true);\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.startNew = (0, _utils.getInteger)({\n      data: attributes.startNew,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.target = attributes.target || \"\";\n    this.targetType = (0, _utils.getStringOption)(attributes.targetType, [\"auto\", \"contentArea\", \"pageArea\"]);\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.script = null;\n  }\n\n}\n\nclass BreakBefore extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"breakBefore\", true);\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.startNew = (0, _utils.getInteger)({\n      data: attributes.startNew,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.target = attributes.target || \"\";\n    this.targetType = (0, _utils.getStringOption)(attributes.targetType, [\"auto\", \"contentArea\", \"pageArea\"]);\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.script = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    this[_xfa_object.$extra] = {};\n    return _utils.HTMLResult.FAILURE;\n  }\n\n}\n\nclass Button extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"button\", true);\n    this.highlight = (0, _utils.getStringOption)(attributes.highlight, [\"inverted\", \"none\", \"outline\", \"push\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const parent = this[_xfa_object.$getParent]();\n\n    const grandpa = parent[_xfa_object.$getParent]();\n\n    const htmlButton = {\n      name: \"button\",\n      attributes: {\n        id: this[_xfa_object.$uid],\n        class: [\"xfaButton\"],\n        style: {}\n      },\n      children: []\n    };\n\n    for (const event of grandpa.event.children) {\n      if (event.activity !== \"click\" || !event.script) {\n        continue;\n      }\n\n      const jsURL = (0, _core_utils.recoverJsURL)(event.script[_xfa_object.$content]);\n\n      if (!jsURL) {\n        continue;\n      }\n\n      const href = (0, _html_utils.fixURL)(jsURL.url);\n\n      if (!href) {\n        continue;\n      }\n\n      htmlButton.children.push({\n        name: \"a\",\n        attributes: {\n          id: \"link\" + this[_xfa_object.$uid],\n          href,\n          newWindow: jsURL.newWindow,\n          class: [\"xfaLink\"],\n          style: {}\n        },\n        children: []\n      });\n    }\n\n    return _utils.HTMLResult.success(htmlButton);\n  }\n\n}\n\nclass Calculate extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"calculate\", true);\n    this.id = attributes.id || \"\";\n    this.override = (0, _utils.getStringOption)(attributes.override, [\"disabled\", \"error\", \"ignore\", \"warning\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.message = null;\n    this.script = null;\n  }\n\n}\n\nclass Caption extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"caption\", true);\n    this.id = attributes.id || \"\";\n    this.placement = (0, _utils.getStringOption)(attributes.placement, [\"left\", \"bottom\", \"inline\", \"right\", \"top\"]);\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.reserve = Math.ceil((0, _utils.getMeasurement)(attributes.reserve));\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.font = null;\n    this.margin = null;\n    this.para = null;\n    this.value = null;\n  }\n\n  [_xfa_object.$setValue](value) {\n    _setValue(this, value);\n  }\n\n  [_xfa_object.$getExtra](availableSpace) {\n    if (!this[_xfa_object.$extra]) {\n      let {\n        width,\n        height\n      } = availableSpace;\n\n      switch (this.placement) {\n        case \"left\":\n        case \"right\":\n        case \"inline\":\n          width = this.reserve <= 0 ? width : this.reserve;\n          break;\n\n        case \"top\":\n        case \"bottom\":\n          height = this.reserve <= 0 ? height : this.reserve;\n          break;\n      }\n\n      this[_xfa_object.$extra] = (0, _html_utils.layoutNode)(this, {\n        width,\n        height\n      });\n    }\n\n    return this[_xfa_object.$extra];\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    if (!this.value) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    this[_xfa_object.$pushPara]();\n\n    const value = this.value[_xfa_object.$toHTML](availableSpace).html;\n\n    if (!value) {\n      this[_xfa_object.$popPara]();\n\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    const savedReserve = this.reserve;\n\n    if (this.reserve <= 0) {\n      const {\n        w,\n        h\n      } = this[_xfa_object.$getExtra](availableSpace);\n\n      switch (this.placement) {\n        case \"left\":\n        case \"right\":\n        case \"inline\":\n          this.reserve = w;\n          break;\n\n        case \"top\":\n        case \"bottom\":\n          this.reserve = h;\n          break;\n      }\n    }\n\n    const children = [];\n\n    if (typeof value === \"string\") {\n      children.push({\n        name: \"#text\",\n        value\n      });\n    } else {\n      children.push(value);\n    }\n\n    const style = (0, _html_utils.toStyle)(this, \"font\", \"margin\", \"visibility\");\n\n    switch (this.placement) {\n      case \"left\":\n      case \"right\":\n        if (this.reserve > 0) {\n          style.width = (0, _html_utils.measureToString)(this.reserve);\n        }\n\n        break;\n\n      case \"top\":\n      case \"bottom\":\n        if (this.reserve > 0) {\n          style.height = (0, _html_utils.measureToString)(this.reserve);\n        }\n\n        break;\n    }\n\n    (0, _html_utils.setPara)(this, null, value);\n\n    this[_xfa_object.$popPara]();\n\n    this.reserve = savedReserve;\n    return _utils.HTMLResult.success({\n      name: \"div\",\n      attributes: {\n        style,\n        class: [\"xfaCaption\"]\n      },\n      children\n    });\n  }\n\n}\n\nclass Certificate extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"certificate\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Certificates extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"certificates\", true);\n    this.credentialServerPolicy = (0, _utils.getStringOption)(attributes.credentialServerPolicy, [\"optional\", \"required\"]);\n    this.id = attributes.id || \"\";\n    this.url = attributes.url || \"\";\n    this.urlPolicy = attributes.urlPolicy || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.encryption = null;\n    this.issuers = null;\n    this.keyUsage = null;\n    this.oids = null;\n    this.signing = null;\n    this.subjectDNs = null;\n  }\n\n}\n\nclass CheckButton extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"checkButton\", true);\n    this.id = attributes.id || \"\";\n    this.mark = (0, _utils.getStringOption)(attributes.mark, [\"default\", \"check\", \"circle\", \"cross\", \"diamond\", \"square\", \"star\"]);\n    this.shape = (0, _utils.getStringOption)(attributes.shape, [\"square\", \"round\"]);\n    this.size = (0, _utils.getMeasurement)(attributes.size, \"10pt\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const style = (0, _html_utils.toStyle)(\"margin\");\n    const size = (0, _html_utils.measureToString)(this.size);\n    style.width = style.height = size;\n    let type;\n    let className;\n    let groupId;\n\n    const field = this[_xfa_object.$getParent]()[_xfa_object.$getParent]();\n\n    const items = field.items.children.length && field.items.children[0][_xfa_object.$toHTML]().html || [];\n    const exportedValue = {\n      on: (items[0] !== undefined ? items[0] : \"on\").toString(),\n      off: (items[1] !== undefined ? items[1] : \"off\").toString()\n    };\n    const value = field.value && field.value[_xfa_object.$text]() || \"off\";\n    const checked = value === exportedValue.on || undefined;\n\n    const container = field[_xfa_object.$getSubformParent]();\n\n    const fieldId = field[_xfa_object.$uid];\n    let dataId;\n\n    if (container instanceof ExclGroup) {\n      groupId = container[_xfa_object.$uid];\n      type = \"radio\";\n      className = \"xfaRadio\";\n      dataId = container[_xfa_object.$data] && container[_xfa_object.$data][_xfa_object.$uid] || container[_xfa_object.$uid];\n    } else {\n      type = \"checkbox\";\n      className = \"xfaCheckbox\";\n      dataId = field[_xfa_object.$data] && field[_xfa_object.$data][_xfa_object.$uid] || field[_xfa_object.$uid];\n    }\n\n    const input = {\n      name: \"input\",\n      attributes: {\n        class: [className],\n        style,\n        fieldId,\n        dataId,\n        type,\n        checked,\n        xfaOn: exportedValue.on,\n        xfaOff: exportedValue.off,\n        \"aria-label\": ariaLabel(field),\n        \"aria-required\": false\n      }\n    };\n\n    if (groupId) {\n      input.attributes.name = groupId;\n    }\n\n    if (isRequired(field)) {\n      input.attributes[\"aria-required\"] = true;\n      input.attributes.required = true;\n    }\n\n    return _utils.HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"]\n      },\n      children: [input]\n    });\n  }\n\n}\n\nclass ChoiceList extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"choiceList\", true);\n    this.commitOn = (0, _utils.getStringOption)(attributes.commitOn, [\"select\", \"exit\"]);\n    this.id = attributes.id || \"\";\n    this.open = (0, _utils.getStringOption)(attributes.open, [\"userControl\", \"always\", \"multiSelect\", \"onEntry\"]);\n    this.textEntry = (0, _utils.getInteger)({\n      data: attributes.textEntry,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const style = (0, _html_utils.toStyle)(this, \"border\", \"margin\");\n\n    const ui = this[_xfa_object.$getParent]();\n\n    const field = ui[_xfa_object.$getParent]();\n\n    const fontSize = field.font && field.font.size || 10;\n    const optionStyle = {\n      fontSize: `calc(${fontSize}px * var(--scale-factor))`\n    };\n    const children = [];\n\n    if (field.items.children.length > 0) {\n      const items = field.items;\n      let displayedIndex = 0;\n      let saveIndex = 0;\n\n      if (items.children.length === 2) {\n        displayedIndex = items.children[0].save;\n        saveIndex = 1 - displayedIndex;\n      }\n\n      const displayed = items.children[displayedIndex][_xfa_object.$toHTML]().html;\n\n      const values = items.children[saveIndex][_xfa_object.$toHTML]().html;\n\n      let selected = false;\n      const value = field.value && field.value[_xfa_object.$text]() || \"\";\n\n      for (let i = 0, ii = displayed.length; i < ii; i++) {\n        const option = {\n          name: \"option\",\n          attributes: {\n            value: values[i] || displayed[i],\n            style: optionStyle\n          },\n          value: displayed[i]\n        };\n\n        if (values[i] === value) {\n          option.attributes.selected = selected = true;\n        }\n\n        children.push(option);\n      }\n\n      if (!selected) {\n        children.splice(0, 0, {\n          name: \"option\",\n          attributes: {\n            hidden: true,\n            selected: true\n          },\n          value: \" \"\n        });\n      }\n    }\n\n    const selectAttributes = {\n      class: [\"xfaSelect\"],\n      fieldId: field[_xfa_object.$uid],\n      dataId: field[_xfa_object.$data] && field[_xfa_object.$data][_xfa_object.$uid] || field[_xfa_object.$uid],\n      style,\n      \"aria-label\": ariaLabel(field),\n      \"aria-required\": false\n    };\n\n    if (isRequired(field)) {\n      selectAttributes[\"aria-required\"] = true;\n      selectAttributes.required = true;\n    }\n\n    if (this.open === \"multiSelect\") {\n      selectAttributes.multiple = true;\n    }\n\n    return _utils.HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"]\n      },\n      children: [{\n        name: \"select\",\n        children,\n        attributes: selectAttributes\n      }]\n    });\n  }\n\n}\n\nclass Color extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"color\", true);\n    this.cSpace = (0, _utils.getStringOption)(attributes.cSpace, [\"SRGB\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.value = attributes.value ? (0, _utils.getColor)(attributes.value) : \"\";\n    this.extras = null;\n  }\n\n  [_xfa_object.$hasSettableValue]() {\n    return false;\n  }\n\n  [_xfa_object.$toStyle]() {\n    return this.value ? _util.Util.makeHexColor(this.value.r, this.value.g, this.value.b) : null;\n  }\n\n}\n\nclass Comb extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"comb\");\n    this.id = attributes.id || \"\";\n    this.numberOfCells = (0, _utils.getInteger)({\n      data: attributes.numberOfCells,\n      defaultValue: 0,\n      validate: x => x >= 0\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Connect extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"connect\", true);\n    this.connection = attributes.connection || \"\";\n    this.id = attributes.id || \"\";\n    this.ref = attributes.ref || \"\";\n    this.usage = (0, _utils.getStringOption)(attributes.usage, [\"exportAndImport\", \"exportOnly\", \"importOnly\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.picture = null;\n  }\n\n}\n\nclass ContentArea extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"contentArea\", true);\n    this.h = (0, _utils.getMeasurement)(attributes.h);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = (0, _utils.getMeasurement)(attributes.w);\n    this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n    this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n    this.desc = null;\n    this.extras = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const left = (0, _html_utils.measureToString)(this.x);\n    const top = (0, _html_utils.measureToString)(this.y);\n    const style = {\n      left,\n      top,\n      width: (0, _html_utils.measureToString)(this.w),\n      height: (0, _html_utils.measureToString)(this.h)\n    };\n    const classNames = [\"xfaContentarea\"];\n\n    if ((0, _html_utils.isPrintOnly)(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n\n    return _utils.HTMLResult.success({\n      name: \"div\",\n      children: [],\n      attributes: {\n        style,\n        class: classNames,\n        id: this[_xfa_object.$uid]\n      }\n    });\n  }\n\n}\n\nclass Corner extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"corner\", true);\n    this.id = attributes.id || \"\";\n    this.inverted = (0, _utils.getInteger)({\n      data: attributes.inverted,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.join = (0, _utils.getStringOption)(attributes.join, [\"square\", \"round\"]);\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.radius = (0, _utils.getMeasurement)(attributes.radius);\n    this.stroke = (0, _utils.getStringOption)(attributes.stroke, [\"solid\", \"dashDot\", \"dashDotDot\", \"dashed\", \"dotted\", \"embossed\", \"etched\", \"lowered\", \"raised\"]);\n    this.thickness = (0, _utils.getMeasurement)(attributes.thickness, \"0.5pt\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle]() {\n    const style = (0, _html_utils.toStyle)(this, \"visibility\");\n    style.radius = (0, _html_utils.measureToString)(this.join === \"square\" ? 0 : this.radius);\n    return style;\n  }\n\n}\n\nclass DateElement extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"date\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    const date = this[_xfa_object.$content].trim();\n\n    this[_xfa_object.$content] = date ? new Date(date) : null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return valueToHtml(this[_xfa_object.$content] ? this[_xfa_object.$content].toString() : \"\");\n  }\n\n}\n\nclass DateTime extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"dateTime\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    const date = this[_xfa_object.$content].trim();\n\n    this[_xfa_object.$content] = date ? new Date(date) : null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return valueToHtml(this[_xfa_object.$content] ? this[_xfa_object.$content].toString() : \"\");\n  }\n\n}\n\nclass DateTimeEdit extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"dateTimeEdit\", true);\n    this.hScrollPolicy = (0, _utils.getStringOption)(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n    this.id = attributes.id || \"\";\n    this.picker = (0, _utils.getStringOption)(attributes.picker, [\"host\", \"none\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.comb = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const style = (0, _html_utils.toStyle)(this, \"border\", \"font\", \"margin\");\n\n    const field = this[_xfa_object.$getParent]()[_xfa_object.$getParent]();\n\n    const html = {\n      name: \"input\",\n      attributes: {\n        type: \"text\",\n        fieldId: field[_xfa_object.$uid],\n        dataId: field[_xfa_object.$data] && field[_xfa_object.$data][_xfa_object.$uid] || field[_xfa_object.$uid],\n        class: [\"xfaTextfield\"],\n        style,\n        \"aria-label\": ariaLabel(field),\n        \"aria-required\": false\n      }\n    };\n\n    if (isRequired(field)) {\n      html.attributes[\"aria-required\"] = true;\n      html.attributes.required = true;\n    }\n\n    return _utils.HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"]\n      },\n      children: [html]\n    });\n  }\n\n}\n\nclass Decimal extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"decimal\");\n    this.fracDigits = (0, _utils.getInteger)({\n      data: attributes.fracDigits,\n      defaultValue: 2,\n      validate: x => true\n    });\n    this.id = attributes.id || \"\";\n    this.leadDigits = (0, _utils.getInteger)({\n      data: attributes.leadDigits,\n      defaultValue: -1,\n      validate: x => true\n    });\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    const number = parseFloat(this[_xfa_object.$content].trim());\n    this[_xfa_object.$content] = isNaN(number) ? null : number;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return valueToHtml(this[_xfa_object.$content] !== null ? this[_xfa_object.$content].toString() : \"\");\n  }\n\n}\n\nclass DefaultUi extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"defaultUi\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n}\n\nclass Desc extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"desc\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new _xfa_object.XFAObjectArray();\n    this.date = new _xfa_object.XFAObjectArray();\n    this.dateTime = new _xfa_object.XFAObjectArray();\n    this.decimal = new _xfa_object.XFAObjectArray();\n    this.exData = new _xfa_object.XFAObjectArray();\n    this.float = new _xfa_object.XFAObjectArray();\n    this.image = new _xfa_object.XFAObjectArray();\n    this.integer = new _xfa_object.XFAObjectArray();\n    this.text = new _xfa_object.XFAObjectArray();\n    this.time = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass DigestMethod extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"digestMethod\", [\"\", \"SHA1\", \"SHA256\", \"SHA512\", \"RIPEMD160\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass DigestMethods extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"digestMethods\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.digestMethod = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Draw extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"draw\", true);\n    this.anchorType = (0, _utils.getStringOption)(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n    this.colSpan = (0, _utils.getInteger)({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1\n    });\n    this.h = attributes.h ? (0, _utils.getMeasurement)(attributes.h) : \"\";\n    this.hAlign = (0, _utils.getStringOption)(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.locale = attributes.locale || \"\";\n    this.maxH = (0, _utils.getMeasurement)(attributes.maxH, \"0pt\");\n    this.maxW = (0, _utils.getMeasurement)(attributes.maxW, \"0pt\");\n    this.minH = (0, _utils.getMeasurement)(attributes.minH, \"0pt\");\n    this.minW = (0, _utils.getMeasurement)(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.rotate = (0, _utils.getInteger)({\n      data: attributes.rotate,\n      defaultValue: 0,\n      validate: x => x % 90 === 0\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? (0, _utils.getMeasurement)(attributes.w) : \"\";\n    this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n    this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n    this.assist = null;\n    this.border = null;\n    this.caption = null;\n    this.desc = null;\n    this.extras = null;\n    this.font = null;\n    this.keep = null;\n    this.margin = null;\n    this.para = null;\n    this.traversal = null;\n    this.ui = null;\n    this.value = null;\n    this.setProperty = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$setValue](value) {\n    _setValue(this, value);\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    setTabIndex(this);\n\n    if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    (0, _html_utils.fixDimensions)(this);\n\n    this[_xfa_object.$pushPara]();\n\n    const savedW = this.w;\n    const savedH = this.h;\n    const {\n      w,\n      h,\n      isBroken\n    } = (0, _html_utils.layoutNode)(this, availableSpace);\n\n    if (w && this.w === \"\") {\n      if (isBroken && this[_xfa_object.$getSubformParent]()[_xfa_object.$isThereMoreWidth]()) {\n        this[_xfa_object.$popPara]();\n\n        return _utils.HTMLResult.FAILURE;\n      }\n\n      this.w = w;\n    }\n\n    if (h && this.h === \"\") {\n      this.h = h;\n    }\n\n    setFirstUnsplittable(this);\n\n    if (!(0, _layout.checkDimensions)(this, availableSpace)) {\n      this.w = savedW;\n      this.h = savedH;\n\n      this[_xfa_object.$popPara]();\n\n      return _utils.HTMLResult.FAILURE;\n    }\n\n    unsetFirstUnsplittable(this);\n    const style = (0, _html_utils.toStyle)(this, \"font\", \"hAlign\", \"dimensions\", \"position\", \"presence\", \"rotate\", \"anchorType\", \"border\", \"margin\");\n    (0, _html_utils.setMinMaxDimensions)(this, style);\n\n    if (style.margin) {\n      style.padding = style.margin;\n      delete style.margin;\n    }\n\n    const classNames = [\"xfaDraw\"];\n\n    if (this.font) {\n      classNames.push(\"xfaFont\");\n    }\n\n    if ((0, _html_utils.isPrintOnly)(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n\n    const attributes = {\n      style,\n      id: this[_xfa_object.$uid],\n      class: classNames\n    };\n\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n\n    const html = {\n      name: \"div\",\n      attributes,\n      children: []\n    };\n    applyAssist(this, attributes);\n    const bbox = (0, _html_utils.computeBbox)(this, html, availableSpace);\n    const value = this.value ? this.value[_xfa_object.$toHTML](availableSpace).html : null;\n\n    if (value === null) {\n      this.w = savedW;\n      this.h = savedH;\n\n      this[_xfa_object.$popPara]();\n\n      return _utils.HTMLResult.success((0, _html_utils.createWrapper)(this, html), bbox);\n    }\n\n    html.children.push(value);\n    (0, _html_utils.setPara)(this, style, value);\n    this.w = savedW;\n    this.h = savedH;\n\n    this[_xfa_object.$popPara]();\n\n    return _utils.HTMLResult.success((0, _html_utils.createWrapper)(this, html), bbox);\n  }\n\n}\n\nclass Edge extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"edge\", true);\n    this.cap = (0, _utils.getStringOption)(attributes.cap, [\"square\", \"butt\", \"round\"]);\n    this.id = attributes.id || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.stroke = (0, _utils.getStringOption)(attributes.stroke, [\"solid\", \"dashDot\", \"dashDotDot\", \"dashed\", \"dotted\", \"embossed\", \"etched\", \"lowered\", \"raised\"]);\n    this.thickness = (0, _utils.getMeasurement)(attributes.thickness, \"0.5pt\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle]() {\n    const style = (0, _html_utils.toStyle)(this, \"visibility\");\n    Object.assign(style, {\n      linecap: this.cap,\n      width: (0, _html_utils.measureToString)(this.thickness),\n      color: this.color ? this.color[_xfa_object.$toStyle]() : \"#000000\",\n      style: \"\"\n    });\n\n    if (this.presence !== \"visible\") {\n      style.style = \"none\";\n    } else {\n      switch (this.stroke) {\n        case \"solid\":\n          style.style = \"solid\";\n          break;\n\n        case \"dashDot\":\n          style.style = \"dashed\";\n          break;\n\n        case \"dashDotDot\":\n          style.style = \"dashed\";\n          break;\n\n        case \"dashed\":\n          style.style = \"dashed\";\n          break;\n\n        case \"dotted\":\n          style.style = \"dotted\";\n          break;\n\n        case \"embossed\":\n          style.style = \"ridge\";\n          break;\n\n        case \"etched\":\n          style.style = \"groove\";\n          break;\n\n        case \"lowered\":\n          style.style = \"inset\";\n          break;\n\n        case \"raised\":\n          style.style = \"outset\";\n          break;\n      }\n    }\n\n    return style;\n  }\n\n}\n\nclass Encoding extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encoding\", [\"adbe.x509.rsa_sha1\", \"adbe.pkcs7.detached\", \"adbe.pkcs7.sha1\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Encodings extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encodings\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.encoding = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Encrypt extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encrypt\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = null;\n  }\n\n}\n\nclass EncryptData extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryptData\", true);\n    this.id = attributes.id || \"\";\n    this.operation = (0, _utils.getStringOption)(attributes.operation, [\"encrypt\", \"decrypt\"]);\n    this.target = attributes.target || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.filter = null;\n    this.manifest = null;\n  }\n\n}\n\nclass Encryption extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryption\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass EncryptionMethod extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryptionMethod\", [\"\", \"AES256-CBC\", \"TRIPLEDES-CBC\", \"AES128-CBC\", \"AES192-CBC\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass EncryptionMethods extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryptionMethods\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.encryptionMethod = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Event extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"event\", true);\n    this.activity = (0, _utils.getStringOption)(attributes.activity, [\"click\", \"change\", \"docClose\", \"docReady\", \"enter\", \"exit\", \"full\", \"indexChange\", \"initialize\", \"mouseDown\", \"mouseEnter\", \"mouseExit\", \"mouseUp\", \"postExecute\", \"postOpen\", \"postPrint\", \"postSave\", \"postSign\", \"postSubmit\", \"preExecute\", \"preOpen\", \"prePrint\", \"preSave\", \"preSign\", \"preSubmit\", \"ready\", \"validationState\"]);\n    this.id = attributes.id || \"\";\n    this.listen = (0, _utils.getStringOption)(attributes.listen, [\"refOnly\", \"refAndDescendents\"]);\n    this.name = attributes.name || \"\";\n    this.ref = attributes.ref || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.encryptData = null;\n    this.execute = null;\n    this.script = null;\n    this.signData = null;\n    this.submit = null;\n  }\n\n}\n\nclass ExData extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"exData\");\n    this.contentType = attributes.contentType || \"\";\n    this.href = attributes.href || \"\";\n    this.id = attributes.id || \"\";\n    this.maxLength = (0, _utils.getInteger)({\n      data: attributes.maxLength,\n      defaultValue: -1,\n      validate: x => x >= -1\n    });\n    this.name = attributes.name || \"\";\n    this.rid = attributes.rid || \"\";\n    this.transferEncoding = (0, _utils.getStringOption)(attributes.transferEncoding, [\"none\", \"base64\", \"package\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$isCDATAXml]() {\n    return this.contentType === \"text/html\";\n  }\n\n  [_xfa_object.$onChild](child) {\n    if (this.contentType === \"text/html\" && child[_xfa_object.$namespaceId] === _namespaces.NamespaceIds.xhtml.id) {\n      this[_xfa_object.$content] = child;\n      return true;\n    }\n\n    if (this.contentType === \"text/xml\") {\n      this[_xfa_object.$content] = child;\n      return true;\n    }\n\n    return false;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    if (this.contentType !== \"text/html\" || !this[_xfa_object.$content]) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    return this[_xfa_object.$content][_xfa_object.$toHTML](availableSpace);\n  }\n\n}\n\nclass ExObject extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"exObject\", true);\n    this.archive = attributes.archive || \"\";\n    this.classId = attributes.classId || \"\";\n    this.codeBase = attributes.codeBase || \"\";\n    this.codeType = attributes.codeType || \"\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.boolean = new _xfa_object.XFAObjectArray();\n    this.date = new _xfa_object.XFAObjectArray();\n    this.dateTime = new _xfa_object.XFAObjectArray();\n    this.decimal = new _xfa_object.XFAObjectArray();\n    this.exData = new _xfa_object.XFAObjectArray();\n    this.exObject = new _xfa_object.XFAObjectArray();\n    this.float = new _xfa_object.XFAObjectArray();\n    this.image = new _xfa_object.XFAObjectArray();\n    this.integer = new _xfa_object.XFAObjectArray();\n    this.text = new _xfa_object.XFAObjectArray();\n    this.time = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass ExclGroup extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"exclGroup\", true);\n    this.access = (0, _utils.getStringOption)(attributes.access, [\"open\", \"nonInteractive\", \"protected\", \"readOnly\"]);\n    this.accessKey = attributes.accessKey || \"\";\n    this.anchorType = (0, _utils.getStringOption)(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n    this.colSpan = (0, _utils.getInteger)({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1\n    });\n    this.h = attributes.h ? (0, _utils.getMeasurement)(attributes.h) : \"\";\n    this.hAlign = (0, _utils.getStringOption)(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.layout = (0, _utils.getStringOption)(attributes.layout, [\"position\", \"lr-tb\", \"rl-row\", \"rl-tb\", \"row\", \"table\", \"tb\"]);\n    this.maxH = (0, _utils.getMeasurement)(attributes.maxH, \"0pt\");\n    this.maxW = (0, _utils.getMeasurement)(attributes.maxW, \"0pt\");\n    this.minH = (0, _utils.getMeasurement)(attributes.minH, \"0pt\");\n    this.minW = (0, _utils.getMeasurement)(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? (0, _utils.getMeasurement)(attributes.w) : \"\";\n    this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n    this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n    this.assist = null;\n    this.bind = null;\n    this.border = null;\n    this.calculate = null;\n    this.caption = null;\n    this.desc = null;\n    this.extras = null;\n    this.margin = null;\n    this.para = null;\n    this.traversal = null;\n    this.validate = null;\n    this.connect = new _xfa_object.XFAObjectArray();\n    this.event = new _xfa_object.XFAObjectArray();\n    this.field = new _xfa_object.XFAObjectArray();\n    this.setProperty = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$isBindable]() {\n    return true;\n  }\n\n  [_xfa_object.$hasSettableValue]() {\n    return true;\n  }\n\n  [_xfa_object.$setValue](value) {\n    for (const field of this.field.children) {\n      if (!field.value) {\n        const nodeValue = new Value({});\n\n        field[_xfa_object.$appendChild](nodeValue);\n\n        field.value = nodeValue;\n      }\n\n      field.value[_xfa_object.$setValue](value);\n    }\n  }\n\n  [_xfa_object.$isThereMoreWidth]() {\n    return this.layout.endsWith(\"-tb\") && this[_xfa_object.$extra].attempt === 0 && this[_xfa_object.$extra].numberInLine > 0 || this[_xfa_object.$getParent]()[_xfa_object.$isThereMoreWidth]();\n  }\n\n  [_xfa_object.$isSplittable]() {\n    const parent = this[_xfa_object.$getSubformParent]();\n\n    if (!parent[_xfa_object.$isSplittable]()) {\n      return false;\n    }\n\n    if (this[_xfa_object.$extra]._isSplittable !== undefined) {\n      return this[_xfa_object.$extra]._isSplittable;\n    }\n\n    if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n      this[_xfa_object.$extra]._isSplittable = false;\n      return false;\n    }\n\n    if (parent.layout && parent.layout.endsWith(\"-tb\") && parent[_xfa_object.$extra].numberInLine !== 0) {\n      return false;\n    }\n\n    this[_xfa_object.$extra]._isSplittable = true;\n    return true;\n  }\n\n  [_xfa_object.$flushHTML]() {\n    return (0, _layout.flushHTML)(this);\n  }\n\n  [_xfa_object.$addHTML](html, bbox) {\n    (0, _layout.addHTML)(this, html, bbox);\n  }\n\n  [_xfa_object.$getAvailableSpace]() {\n    return (0, _layout.getAvailableSpace)(this);\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    setTabIndex(this);\n\n    if (this.presence === \"hidden\" || this.presence === \"inactive\" || this.h === 0 || this.w === 0) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    (0, _html_utils.fixDimensions)(this);\n    const children = [];\n    const attributes = {\n      id: this[_xfa_object.$uid],\n      class: []\n    };\n    (0, _html_utils.setAccess)(this, attributes.class);\n\n    if (!this[_xfa_object.$extra]) {\n      this[_xfa_object.$extra] = Object.create(null);\n    }\n\n    Object.assign(this[_xfa_object.$extra], {\n      children,\n      attributes,\n      attempt: 0,\n      line: null,\n      numberInLine: 0,\n      availableSpace: {\n        width: Math.min(this.w || Infinity, availableSpace.width),\n        height: Math.min(this.h || Infinity, availableSpace.height)\n      },\n      width: 0,\n      height: 0,\n      prevHeight: 0,\n      currentWidth: 0\n    });\n\n    const isSplittable = this[_xfa_object.$isSplittable]();\n\n    if (!isSplittable) {\n      setFirstUnsplittable(this);\n    }\n\n    if (!(0, _layout.checkDimensions)(this, availableSpace)) {\n      return _utils.HTMLResult.FAILURE;\n    }\n\n    const filter = new Set([\"field\"]);\n\n    if (this.layout.includes(\"row\")) {\n      const columnWidths = this[_xfa_object.$getSubformParent]().columnWidths;\n\n      if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n        this[_xfa_object.$extra].columnWidths = columnWidths;\n        this[_xfa_object.$extra].currentColumn = 0;\n      }\n    }\n\n    const style = (0, _html_utils.toStyle)(this, \"anchorType\", \"dimensions\", \"position\", \"presence\", \"border\", \"margin\", \"hAlign\");\n    const classNames = [\"xfaExclgroup\"];\n    const cl = (0, _html_utils.layoutClass)(this);\n\n    if (cl) {\n      classNames.push(cl);\n    }\n\n    if ((0, _html_utils.isPrintOnly)(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n\n    attributes.style = style;\n    attributes.class = classNames;\n\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n\n    this[_xfa_object.$pushPara]();\n\n    const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n    const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n\n    for (; this[_xfa_object.$extra].attempt < maxRun; this[_xfa_object.$extra].attempt++) {\n      if (isLrTb && this[_xfa_object.$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n        this[_xfa_object.$extra].numberInLine = 0;\n      }\n\n      const result = this[_xfa_object.$childrenToHTML]({\n        filter,\n        include: true\n      });\n\n      if (result.success) {\n        break;\n      }\n\n      if (result.isBreak()) {\n        this[_xfa_object.$popPara]();\n\n        return result;\n      }\n\n      if (isLrTb && this[_xfa_object.$extra].attempt === 0 && this[_xfa_object.$extra].numberInLine === 0 && !this[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure) {\n        this[_xfa_object.$extra].attempt = maxRun;\n        break;\n      }\n    }\n\n    this[_xfa_object.$popPara]();\n\n    if (!isSplittable) {\n      unsetFirstUnsplittable(this);\n    }\n\n    if (this[_xfa_object.$extra].attempt === maxRun) {\n      if (!isSplittable) {\n        delete this[_xfa_object.$extra];\n      }\n\n      return _utils.HTMLResult.FAILURE;\n    }\n\n    let marginH = 0;\n    let marginV = 0;\n\n    if (this.margin) {\n      marginH = this.margin.leftInset + this.margin.rightInset;\n      marginV = this.margin.topInset + this.margin.bottomInset;\n    }\n\n    const width = Math.max(this[_xfa_object.$extra].width + marginH, this.w || 0);\n    const height = Math.max(this[_xfa_object.$extra].height + marginV, this.h || 0);\n    const bbox = [this.x, this.y, width, height];\n\n    if (this.w === \"\") {\n      style.width = (0, _html_utils.measureToString)(width);\n    }\n\n    if (this.h === \"\") {\n      style.height = (0, _html_utils.measureToString)(height);\n    }\n\n    const html = {\n      name: \"div\",\n      attributes,\n      children\n    };\n    applyAssist(this, attributes);\n    delete this[_xfa_object.$extra];\n    return _utils.HTMLResult.success((0, _html_utils.createWrapper)(this, html), bbox);\n  }\n\n}\n\nclass Execute extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"execute\");\n    this.connection = attributes.connection || \"\";\n    this.executeType = (0, _utils.getStringOption)(attributes.executeType, [\"import\", \"remerge\"]);\n    this.id = attributes.id || \"\";\n    this.runAt = (0, _utils.getStringOption)(attributes.runAt, [\"client\", \"both\", \"server\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Extras extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"extras\", true);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new _xfa_object.XFAObjectArray();\n    this.date = new _xfa_object.XFAObjectArray();\n    this.dateTime = new _xfa_object.XFAObjectArray();\n    this.decimal = new _xfa_object.XFAObjectArray();\n    this.exData = new _xfa_object.XFAObjectArray();\n    this.extras = new _xfa_object.XFAObjectArray();\n    this.float = new _xfa_object.XFAObjectArray();\n    this.image = new _xfa_object.XFAObjectArray();\n    this.integer = new _xfa_object.XFAObjectArray();\n    this.text = new _xfa_object.XFAObjectArray();\n    this.time = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Field extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"field\", true);\n    this.access = (0, _utils.getStringOption)(attributes.access, [\"open\", \"nonInteractive\", \"protected\", \"readOnly\"]);\n    this.accessKey = attributes.accessKey || \"\";\n    this.anchorType = (0, _utils.getStringOption)(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n    this.colSpan = (0, _utils.getInteger)({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1\n    });\n    this.h = attributes.h ? (0, _utils.getMeasurement)(attributes.h) : \"\";\n    this.hAlign = (0, _utils.getStringOption)(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.locale = attributes.locale || \"\";\n    this.maxH = (0, _utils.getMeasurement)(attributes.maxH, \"0pt\");\n    this.maxW = (0, _utils.getMeasurement)(attributes.maxW, \"0pt\");\n    this.minH = (0, _utils.getMeasurement)(attributes.minH, \"0pt\");\n    this.minW = (0, _utils.getMeasurement)(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.rotate = (0, _utils.getInteger)({\n      data: attributes.rotate,\n      defaultValue: 0,\n      validate: x => x % 90 === 0\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? (0, _utils.getMeasurement)(attributes.w) : \"\";\n    this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n    this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n    this.assist = null;\n    this.bind = null;\n    this.border = null;\n    this.calculate = null;\n    this.caption = null;\n    this.desc = null;\n    this.extras = null;\n    this.font = null;\n    this.format = null;\n    this.items = new _xfa_object.XFAObjectArray(2);\n    this.keep = null;\n    this.margin = null;\n    this.para = null;\n    this.traversal = null;\n    this.ui = null;\n    this.validate = null;\n    this.value = null;\n    this.bindItems = new _xfa_object.XFAObjectArray();\n    this.connect = new _xfa_object.XFAObjectArray();\n    this.event = new _xfa_object.XFAObjectArray();\n    this.setProperty = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$isBindable]() {\n    return true;\n  }\n\n  [_xfa_object.$setValue](value) {\n    _setValue(this, value);\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    setTabIndex(this);\n\n    if (!this.ui) {\n      this.ui = new Ui({});\n      this.ui[_xfa_object.$globalData] = this[_xfa_object.$globalData];\n\n      this[_xfa_object.$appendChild](this.ui);\n\n      let node;\n\n      switch (this.items.children.length) {\n        case 0:\n          node = new TextEdit({});\n          this.ui.textEdit = node;\n          break;\n\n        case 1:\n          node = new CheckButton({});\n          this.ui.checkButton = node;\n          break;\n\n        case 2:\n          node = new ChoiceList({});\n          this.ui.choiceList = node;\n          break;\n      }\n\n      this.ui[_xfa_object.$appendChild](node);\n    }\n\n    if (!this.ui || this.presence === \"hidden\" || this.presence === \"inactive\" || this.h === 0 || this.w === 0) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    if (this.caption) {\n      delete this.caption[_xfa_object.$extra];\n    }\n\n    this[_xfa_object.$pushPara]();\n\n    const caption = this.caption ? this.caption[_xfa_object.$toHTML](availableSpace).html : null;\n    const savedW = this.w;\n    const savedH = this.h;\n    let marginH = 0;\n    let marginV = 0;\n\n    if (this.margin) {\n      marginH = this.margin.leftInset + this.margin.rightInset;\n      marginV = this.margin.topInset + this.margin.bottomInset;\n    }\n\n    let borderDims = null;\n\n    if (this.w === \"\" || this.h === \"\") {\n      let width = null;\n      let height = null;\n      let uiW = 0;\n      let uiH = 0;\n\n      if (this.ui.checkButton) {\n        uiW = uiH = this.ui.checkButton.size;\n      } else {\n        const {\n          w,\n          h\n        } = (0, _html_utils.layoutNode)(this, availableSpace);\n\n        if (w !== null) {\n          uiW = w;\n          uiH = h;\n        } else {\n          uiH = (0, _fonts.getMetrics)(this.font, true).lineNoGap;\n        }\n      }\n\n      borderDims = getBorderDims(this.ui[_xfa_object.$getExtra]());\n      uiW += borderDims.w;\n      uiH += borderDims.h;\n\n      if (this.caption) {\n        const {\n          w,\n          h,\n          isBroken\n        } = this.caption[_xfa_object.$getExtra](availableSpace);\n\n        if (isBroken && this[_xfa_object.$getSubformParent]()[_xfa_object.$isThereMoreWidth]()) {\n          this[_xfa_object.$popPara]();\n\n          return _utils.HTMLResult.FAILURE;\n        }\n\n        width = w;\n        height = h;\n\n        switch (this.caption.placement) {\n          case \"left\":\n          case \"right\":\n          case \"inline\":\n            width += uiW;\n            break;\n\n          case \"top\":\n          case \"bottom\":\n            height += uiH;\n            break;\n        }\n      } else {\n        width = uiW;\n        height = uiH;\n      }\n\n      if (width && this.w === \"\") {\n        width += marginH;\n        this.w = Math.min(this.maxW <= 0 ? Infinity : this.maxW, this.minW + 1 < width ? width : this.minW);\n      }\n\n      if (height && this.h === \"\") {\n        height += marginV;\n        this.h = Math.min(this.maxH <= 0 ? Infinity : this.maxH, this.minH + 1 < height ? height : this.minH);\n      }\n    }\n\n    this[_xfa_object.$popPara]();\n\n    (0, _html_utils.fixDimensions)(this);\n    setFirstUnsplittable(this);\n\n    if (!(0, _layout.checkDimensions)(this, availableSpace)) {\n      this.w = savedW;\n      this.h = savedH;\n\n      this[_xfa_object.$popPara]();\n\n      return _utils.HTMLResult.FAILURE;\n    }\n\n    unsetFirstUnsplittable(this);\n    const style = (0, _html_utils.toStyle)(this, \"font\", \"dimensions\", \"position\", \"rotate\", \"anchorType\", \"presence\", \"margin\", \"hAlign\");\n    (0, _html_utils.setMinMaxDimensions)(this, style);\n    const classNames = [\"xfaField\"];\n\n    if (this.font) {\n      classNames.push(\"xfaFont\");\n    }\n\n    if ((0, _html_utils.isPrintOnly)(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n\n    const attributes = {\n      style,\n      id: this[_xfa_object.$uid],\n      class: classNames\n    };\n\n    if (style.margin) {\n      style.padding = style.margin;\n      delete style.margin;\n    }\n\n    (0, _html_utils.setAccess)(this, classNames);\n\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n\n    const children = [];\n    const html = {\n      name: \"div\",\n      attributes,\n      children\n    };\n    applyAssist(this, attributes);\n    const borderStyle = this.border ? this.border[_xfa_object.$toStyle]() : null;\n    const bbox = (0, _html_utils.computeBbox)(this, html, availableSpace);\n\n    const ui = this.ui[_xfa_object.$toHTML]().html;\n\n    if (!ui) {\n      Object.assign(style, borderStyle);\n      return _utils.HTMLResult.success((0, _html_utils.createWrapper)(this, html), bbox);\n    }\n\n    if (this[_xfa_object.$tabIndex]) {\n      if (ui.children && ui.children[0]) {\n        ui.children[0].attributes.tabindex = this[_xfa_object.$tabIndex];\n      } else {\n        ui.attributes.tabindex = this[_xfa_object.$tabIndex];\n      }\n    }\n\n    if (!ui.attributes.style) {\n      ui.attributes.style = Object.create(null);\n    }\n\n    let aElement = null;\n\n    if (this.ui.button) {\n      if (ui.children.length === 1) {\n        [aElement] = ui.children.splice(0, 1);\n      }\n\n      Object.assign(ui.attributes.style, borderStyle);\n    } else {\n      Object.assign(style, borderStyle);\n    }\n\n    children.push(ui);\n\n    if (this.value) {\n      if (this.ui.imageEdit) {\n        ui.children.push(this.value[_xfa_object.$toHTML]().html);\n      } else if (!this.ui.button) {\n        let value = \"\";\n\n        if (this.value.exData) {\n          value = this.value.exData[_xfa_object.$text]();\n        } else if (this.value.text) {\n          value = this.value.text[_xfa_object.$getExtra]();\n        } else {\n          const htmlValue = this.value[_xfa_object.$toHTML]().html;\n\n          if (htmlValue !== null) {\n            value = htmlValue.children[0].value;\n          }\n        }\n\n        if (this.ui.textEdit && this.value.text && this.value.text.maxChars) {\n          ui.children[0].attributes.maxLength = this.value.text.maxChars;\n        }\n\n        if (value) {\n          if (this.ui.numericEdit) {\n            value = parseFloat(value);\n            value = isNaN(value) ? \"\" : value.toString();\n          }\n\n          if (ui.children[0].name === \"textarea\") {\n            ui.children[0].attributes.textContent = value;\n          } else {\n            ui.children[0].attributes.value = value;\n          }\n        }\n      }\n    }\n\n    if (!this.ui.imageEdit && ui.children && ui.children[0] && this.h) {\n      borderDims = borderDims || getBorderDims(this.ui[_xfa_object.$getExtra]());\n      let captionHeight = 0;\n\n      if (this.caption && [\"top\", \"bottom\"].includes(this.caption.placement)) {\n        captionHeight = this.caption.reserve;\n\n        if (captionHeight <= 0) {\n          captionHeight = this.caption[_xfa_object.$getExtra](availableSpace).h;\n        }\n\n        const inputHeight = this.h - captionHeight - marginV - borderDims.h;\n        ui.children[0].attributes.style.height = (0, _html_utils.measureToString)(inputHeight);\n      } else {\n        ui.children[0].attributes.style.height = \"100%\";\n      }\n    }\n\n    if (aElement) {\n      ui.children.push(aElement);\n    }\n\n    if (!caption) {\n      if (ui.attributes.class) {\n        ui.attributes.class.push(\"xfaLeft\");\n      }\n\n      this.w = savedW;\n      this.h = savedH;\n      return _utils.HTMLResult.success((0, _html_utils.createWrapper)(this, html), bbox);\n    }\n\n    if (this.ui.button) {\n      if (style.padding) {\n        delete style.padding;\n      }\n\n      if (caption.name === \"div\") {\n        caption.name = \"span\";\n      }\n\n      ui.children.push(caption);\n      return _utils.HTMLResult.success(html, bbox);\n    } else if (this.ui.checkButton) {\n      caption.attributes.class[0] = \"xfaCaptionForCheckButton\";\n    }\n\n    if (!ui.attributes.class) {\n      ui.attributes.class = [];\n    }\n\n    ui.children.splice(0, 0, caption);\n\n    switch (this.caption.placement) {\n      case \"left\":\n        ui.attributes.class.push(\"xfaLeft\");\n        break;\n\n      case \"right\":\n        ui.attributes.class.push(\"xfaRight\");\n        break;\n\n      case \"top\":\n        ui.attributes.class.push(\"xfaTop\");\n        break;\n\n      case \"bottom\":\n        ui.attributes.class.push(\"xfaBottom\");\n        break;\n\n      case \"inline\":\n        ui.attributes.class.push(\"xfaLeft\");\n        break;\n    }\n\n    this.w = savedW;\n    this.h = savedH;\n    return _utils.HTMLResult.success((0, _html_utils.createWrapper)(this, html), bbox);\n  }\n\n}\n\nexports.Field = Field;\n\nclass Fill extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"fill\", true);\n    this.id = attributes.id || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n    this.linear = null;\n    this.pattern = null;\n    this.radial = null;\n    this.solid = null;\n    this.stipple = null;\n  }\n\n  [_xfa_object.$toStyle]() {\n    const parent = this[_xfa_object.$getParent]();\n\n    const grandpa = parent[_xfa_object.$getParent]();\n\n    const ggrandpa = grandpa[_xfa_object.$getParent]();\n\n    const style = Object.create(null);\n    let propName = \"color\";\n    let altPropName = propName;\n\n    if (parent instanceof Border) {\n      propName = \"background-color\";\n      altPropName = \"background\";\n\n      if (ggrandpa instanceof Ui) {\n        style.backgroundColor = \"white\";\n      }\n    }\n\n    if (parent instanceof Rectangle || parent instanceof Arc) {\n      propName = altPropName = \"fill\";\n      style.fill = \"white\";\n    }\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (name === \"extras\" || name === \"color\") {\n        continue;\n      }\n\n      const obj = this[name];\n\n      if (!(obj instanceof _xfa_object.XFAObject)) {\n        continue;\n      }\n\n      const color = obj[_xfa_object.$toStyle](this.color);\n\n      if (color) {\n        style[color.startsWith(\"#\") ? propName : altPropName] = color;\n      }\n\n      return style;\n    }\n\n    if (this.color && this.color.value) {\n      const color = this.color[_xfa_object.$toStyle]();\n\n      style[color.startsWith(\"#\") ? propName : altPropName] = color;\n    }\n\n    return style;\n  }\n\n}\n\nclass Filter extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"filter\", true);\n    this.addRevocationInfo = (0, _utils.getStringOption)(attributes.addRevocationInfo, [\"\", \"required\", \"optional\", \"none\"]);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.version = (0, _utils.getInteger)({\n      data: this.version,\n      defaultValue: 5,\n      validate: x => x >= 1 && x <= 5\n    });\n    this.appearanceFilter = null;\n    this.certificates = null;\n    this.digestMethods = null;\n    this.encodings = null;\n    this.encryptionMethods = null;\n    this.handler = null;\n    this.lockDocument = null;\n    this.mdp = null;\n    this.reasons = null;\n    this.timeStamp = null;\n  }\n\n}\n\nclass Float extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"float\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    const number = parseFloat(this[_xfa_object.$content].trim());\n    this[_xfa_object.$content] = isNaN(number) ? null : number;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return valueToHtml(this[_xfa_object.$content] !== null ? this[_xfa_object.$content].toString() : \"\");\n  }\n\n}\n\nclass Font extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"font\", true);\n    this.baselineShift = (0, _utils.getMeasurement)(attributes.baselineShift);\n    this.fontHorizontalScale = (0, _utils.getFloat)({\n      data: attributes.fontHorizontalScale,\n      defaultValue: 100,\n      validate: x => x >= 0\n    });\n    this.fontVerticalScale = (0, _utils.getFloat)({\n      data: attributes.fontVerticalScale,\n      defaultValue: 100,\n      validate: x => x >= 0\n    });\n    this.id = attributes.id || \"\";\n    this.kerningMode = (0, _utils.getStringOption)(attributes.kerningMode, [\"none\", \"pair\"]);\n    this.letterSpacing = (0, _utils.getMeasurement)(attributes.letterSpacing, \"0\");\n    this.lineThrough = (0, _utils.getInteger)({\n      data: attributes.lineThrough,\n      defaultValue: 0,\n      validate: x => x === 1 || x === 2\n    });\n    this.lineThroughPeriod = (0, _utils.getStringOption)(attributes.lineThroughPeriod, [\"all\", \"word\"]);\n    this.overline = (0, _utils.getInteger)({\n      data: attributes.overline,\n      defaultValue: 0,\n      validate: x => x === 1 || x === 2\n    });\n    this.overlinePeriod = (0, _utils.getStringOption)(attributes.overlinePeriod, [\"all\", \"word\"]);\n    this.posture = (0, _utils.getStringOption)(attributes.posture, [\"normal\", \"italic\"]);\n    this.size = (0, _utils.getMeasurement)(attributes.size, \"10pt\");\n    this.typeface = attributes.typeface || \"Courier\";\n    this.underline = (0, _utils.getInteger)({\n      data: attributes.underline,\n      defaultValue: 0,\n      validate: x => x === 1 || x === 2\n    });\n    this.underlinePeriod = (0, _utils.getStringOption)(attributes.underlinePeriod, [\"all\", \"word\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.weight = (0, _utils.getStringOption)(attributes.weight, [\"normal\", \"bold\"]);\n    this.extras = null;\n    this.fill = null;\n  }\n\n  [_xfa_object.$clean](builder) {\n    super[_xfa_object.$clean](builder);\n\n    this[_xfa_object.$globalData].usedTypefaces.add(this.typeface);\n  }\n\n  [_xfa_object.$toStyle]() {\n    const style = (0, _html_utils.toStyle)(this, \"fill\");\n    const color = style.color;\n\n    if (color) {\n      if (color === \"#000000\") {\n        delete style.color;\n      } else if (!color.startsWith(\"#\")) {\n        style.background = color;\n        style.backgroundClip = \"text\";\n        style.color = \"transparent\";\n      }\n    }\n\n    if (this.baselineShift) {\n      style.verticalAlign = (0, _html_utils.measureToString)(this.baselineShift);\n    }\n\n    style.fontKerning = this.kerningMode === \"none\" ? \"none\" : \"normal\";\n    style.letterSpacing = (0, _html_utils.measureToString)(this.letterSpacing);\n\n    if (this.lineThrough !== 0) {\n      style.textDecoration = \"line-through\";\n\n      if (this.lineThrough === 2) {\n        style.textDecorationStyle = \"double\";\n      }\n    }\n\n    if (this.overline !== 0) {\n      style.textDecoration = \"overline\";\n\n      if (this.overline === 2) {\n        style.textDecorationStyle = \"double\";\n      }\n    }\n\n    style.fontStyle = this.posture;\n    style.fontSize = (0, _html_utils.measureToString)(0.99 * this.size);\n    (0, _html_utils.setFontFamily)(this, this, this[_xfa_object.$globalData].fontFinder, style);\n\n    if (this.underline !== 0) {\n      style.textDecoration = \"underline\";\n\n      if (this.underline === 2) {\n        style.textDecorationStyle = \"double\";\n      }\n    }\n\n    style.fontWeight = this.weight;\n    return style;\n  }\n\n}\n\nclass Format extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"format\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.picture = null;\n  }\n\n}\n\nclass Handler extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"handler\");\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Hyphenation extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"hyphenation\");\n    this.excludeAllCaps = (0, _utils.getInteger)({\n      data: attributes.excludeAllCaps,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.excludeInitialCap = (0, _utils.getInteger)({\n      data: attributes.excludeInitialCap,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.hyphenate = (0, _utils.getInteger)({\n      data: attributes.hyphenate,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.id = attributes.id || \"\";\n    this.pushCharacterCount = (0, _utils.getInteger)({\n      data: attributes.pushCharacterCount,\n      defaultValue: 3,\n      validate: x => x >= 0\n    });\n    this.remainCharacterCount = (0, _utils.getInteger)({\n      data: attributes.remainCharacterCount,\n      defaultValue: 3,\n      validate: x => x >= 0\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.wordCharacterCount = (0, _utils.getInteger)({\n      data: attributes.wordCharacterCount,\n      defaultValue: 7,\n      validate: x => x >= 0\n    });\n  }\n\n}\n\nclass Image extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"image\");\n    this.aspect = (0, _utils.getStringOption)(attributes.aspect, [\"fit\", \"actual\", \"height\", \"none\", \"width\"]);\n    this.contentType = attributes.contentType || \"\";\n    this.href = attributes.href || \"\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.transferEncoding = (0, _utils.getStringOption)(attributes.transferEncoding, [\"base64\", \"none\", \"package\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$toHTML]() {\n    if (this.contentType && !MIMES.has(this.contentType.toLowerCase())) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    let buffer = this[_xfa_object.$globalData].images && this[_xfa_object.$globalData].images.get(this.href);\n\n    if (!buffer && (this.href || !this[_xfa_object.$content])) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    if (!buffer && this.transferEncoding === \"base64\") {\n      buffer = (0, _util.stringToBytes)(atob(this[_xfa_object.$content]));\n    }\n\n    if (!buffer) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    if (!this.contentType) {\n      for (const [header, type] of IMAGES_HEADERS) {\n        if (buffer.length > header.length && header.every((x, i) => x === buffer[i])) {\n          this.contentType = type;\n          break;\n        }\n      }\n\n      if (!this.contentType) {\n        return _utils.HTMLResult.EMPTY;\n      }\n    }\n\n    const blob = new Blob([buffer], {\n      type: this.contentType\n    });\n    let style;\n\n    switch (this.aspect) {\n      case \"fit\":\n      case \"actual\":\n        break;\n\n      case \"height\":\n        style = {\n          height: \"100%\",\n          objectFit: \"fill\"\n        };\n        break;\n\n      case \"none\":\n        style = {\n          width: \"100%\",\n          height: \"100%\",\n          objectFit: \"fill\"\n        };\n        break;\n\n      case \"width\":\n        style = {\n          width: \"100%\",\n          objectFit: \"fill\"\n        };\n        break;\n    }\n\n    const parent = this[_xfa_object.$getParent]();\n\n    return _utils.HTMLResult.success({\n      name: \"img\",\n      attributes: {\n        class: [\"xfaImage\"],\n        style,\n        src: URL.createObjectURL(blob),\n        alt: parent ? ariaLabel(parent[_xfa_object.$getParent]()) : null\n      }\n    });\n  }\n\n}\n\nclass ImageEdit extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"imageEdit\", true);\n    this.data = (0, _utils.getStringOption)(attributes.data, [\"link\", \"embed\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    if (this.data === \"embed\") {\n      return _utils.HTMLResult.success({\n        name: \"div\",\n        children: [],\n        attributes: {}\n      });\n    }\n\n    return _utils.HTMLResult.EMPTY;\n  }\n\n}\n\nclass Integer extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"integer\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    const number = parseInt(this[_xfa_object.$content].trim(), 10);\n    this[_xfa_object.$content] = isNaN(number) ? null : number;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return valueToHtml(this[_xfa_object.$content] !== null ? this[_xfa_object.$content].toString() : \"\");\n  }\n\n}\n\nclass Issuers extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"issuers\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Items extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"items\", true);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.ref = attributes.ref || \"\";\n    this.save = (0, _utils.getInteger)({\n      data: attributes.save,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new _xfa_object.XFAObjectArray();\n    this.date = new _xfa_object.XFAObjectArray();\n    this.dateTime = new _xfa_object.XFAObjectArray();\n    this.decimal = new _xfa_object.XFAObjectArray();\n    this.exData = new _xfa_object.XFAObjectArray();\n    this.float = new _xfa_object.XFAObjectArray();\n    this.image = new _xfa_object.XFAObjectArray();\n    this.integer = new _xfa_object.XFAObjectArray();\n    this.text = new _xfa_object.XFAObjectArray();\n    this.time = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$toHTML]() {\n    const output = [];\n\n    for (const child of this[_xfa_object.$getChildren]()) {\n      output.push(child[_xfa_object.$text]());\n    }\n\n    return _utils.HTMLResult.success(output);\n  }\n\n}\n\nexports.Items = Items;\n\nclass Keep extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"keep\", true);\n    this.id = attributes.id || \"\";\n    const options = [\"none\", \"contentArea\", \"pageArea\"];\n    this.intact = (0, _utils.getStringOption)(attributes.intact, options);\n    this.next = (0, _utils.getStringOption)(attributes.next, options);\n    this.previous = (0, _utils.getStringOption)(attributes.previous, options);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n}\n\nclass KeyUsage extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"keyUsage\");\n    const options = [\"\", \"yes\", \"no\"];\n    this.crlSign = (0, _utils.getStringOption)(attributes.crlSign, options);\n    this.dataEncipherment = (0, _utils.getStringOption)(attributes.dataEncipherment, options);\n    this.decipherOnly = (0, _utils.getStringOption)(attributes.decipherOnly, options);\n    this.digitalSignature = (0, _utils.getStringOption)(attributes.digitalSignature, options);\n    this.encipherOnly = (0, _utils.getStringOption)(attributes.encipherOnly, options);\n    this.id = attributes.id || \"\";\n    this.keyAgreement = (0, _utils.getStringOption)(attributes.keyAgreement, options);\n    this.keyCertSign = (0, _utils.getStringOption)(attributes.keyCertSign, options);\n    this.keyEncipherment = (0, _utils.getStringOption)(attributes.keyEncipherment, options);\n    this.nonRepudiation = (0, _utils.getStringOption)(attributes.nonRepudiation, options);\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Line extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"line\", true);\n    this.hand = (0, _utils.getStringOption)(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.slope = (0, _utils.getStringOption)(attributes.slope, [\"\\\\\", \"/\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.edge = null;\n  }\n\n  [_xfa_object.$toHTML]() {\n    const parent = this[_xfa_object.$getParent]()[_xfa_object.$getParent]();\n\n    const edge = this.edge || new Edge({});\n\n    const edgeStyle = edge[_xfa_object.$toStyle]();\n\n    const style = Object.create(null);\n    const thickness = edge.presence === \"visible\" ? edge.thickness : 0;\n    style.strokeWidth = (0, _html_utils.measureToString)(thickness);\n    style.stroke = edgeStyle.color;\n    let x1, y1, x2, y2;\n    let width = \"100%\";\n    let height = \"100%\";\n\n    if (parent.w <= thickness) {\n      [x1, y1, x2, y2] = [\"50%\", 0, \"50%\", \"100%\"];\n      width = style.strokeWidth;\n    } else if (parent.h <= thickness) {\n      [x1, y1, x2, y2] = [0, \"50%\", \"100%\", \"50%\"];\n      height = style.strokeWidth;\n    } else {\n      if (this.slope === \"\\\\\") {\n        [x1, y1, x2, y2] = [0, 0, \"100%\", \"100%\"];\n      } else {\n        [x1, y1, x2, y2] = [0, \"100%\", \"100%\", 0];\n      }\n    }\n\n    const line = {\n      name: \"line\",\n      attributes: {\n        xmlns: SVG_NS,\n        x1,\n        y1,\n        x2,\n        y2,\n        style\n      }\n    };\n    const svg = {\n      name: \"svg\",\n      children: [line],\n      attributes: {\n        xmlns: SVG_NS,\n        width,\n        height,\n        style: {\n          overflow: \"visible\"\n        }\n      }\n    };\n\n    if (hasMargin(parent)) {\n      return _utils.HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          style: {\n            display: \"inline\",\n            width: \"100%\",\n            height: \"100%\"\n          }\n        },\n        children: [svg]\n      });\n    }\n\n    svg.attributes.style.position = \"absolute\";\n    return _utils.HTMLResult.success(svg);\n  }\n\n}\n\nclass Linear extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"linear\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"toRight\", \"toBottom\", \"toLeft\", \"toTop\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle](startColor) {\n    startColor = startColor ? startColor[_xfa_object.$toStyle]() : \"#FFFFFF\";\n    const transf = this.type.replace(/([RBLT])/, \" $1\").toLowerCase();\n    const endColor = this.color ? this.color[_xfa_object.$toStyle]() : \"#000000\";\n    return `linear-gradient(${transf}, ${startColor}, ${endColor})`;\n  }\n\n}\n\nclass LockDocument extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"lockDocument\");\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = (0, _utils.getStringOption)(this[_xfa_object.$content], [\"auto\", \"0\", \"1\"]);\n  }\n\n}\n\nclass Manifest extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"manifest\", true);\n    this.action = (0, _utils.getStringOption)(attributes.action, [\"include\", \"all\", \"exclude\"]);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.ref = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Margin extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"margin\", true);\n    this.bottomInset = (0, _utils.getMeasurement)(attributes.bottomInset, \"0\");\n    this.id = attributes.id || \"\";\n    this.leftInset = (0, _utils.getMeasurement)(attributes.leftInset, \"0\");\n    this.rightInset = (0, _utils.getMeasurement)(attributes.rightInset, \"0\");\n    this.topInset = (0, _utils.getMeasurement)(attributes.topInset, \"0\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle]() {\n    return {\n      margin: (0, _html_utils.measureToString)(this.topInset) + \" \" + (0, _html_utils.measureToString)(this.rightInset) + \" \" + (0, _html_utils.measureToString)(this.bottomInset) + \" \" + (0, _html_utils.measureToString)(this.leftInset)\n    };\n  }\n\n}\n\nclass Mdp extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"mdp\");\n    this.id = attributes.id || \"\";\n    this.permissions = (0, _utils.getInteger)({\n      data: attributes.permissions,\n      defaultValue: 2,\n      validate: x => x === 1 || x === 3\n    });\n    this.signatureType = (0, _utils.getStringOption)(attributes.signatureType, [\"filler\", \"author\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Medium extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"medium\");\n    this.id = attributes.id || \"\";\n    this.imagingBBox = (0, _utils.getBBox)(attributes.imagingBBox);\n    this.long = (0, _utils.getMeasurement)(attributes.long);\n    this.orientation = (0, _utils.getStringOption)(attributes.orientation, [\"portrait\", \"landscape\"]);\n    this.short = (0, _utils.getMeasurement)(attributes.short);\n    this.stock = attributes.stock || \"\";\n    this.trayIn = (0, _utils.getStringOption)(attributes.trayIn, [\"auto\", \"delegate\", \"pageFront\"]);\n    this.trayOut = (0, _utils.getStringOption)(attributes.trayOut, [\"auto\", \"delegate\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Message extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"message\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.text = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass NumericEdit extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"numericEdit\", true);\n    this.hScrollPolicy = (0, _utils.getStringOption)(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.comb = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const style = (0, _html_utils.toStyle)(this, \"border\", \"font\", \"margin\");\n\n    const field = this[_xfa_object.$getParent]()[_xfa_object.$getParent]();\n\n    const html = {\n      name: \"input\",\n      attributes: {\n        type: \"text\",\n        fieldId: field[_xfa_object.$uid],\n        dataId: field[_xfa_object.$data] && field[_xfa_object.$data][_xfa_object.$uid] || field[_xfa_object.$uid],\n        class: [\"xfaTextfield\"],\n        style,\n        \"aria-label\": ariaLabel(field),\n        \"aria-required\": false\n      }\n    };\n\n    if (isRequired(field)) {\n      html.attributes[\"aria-required\"] = true;\n      html.attributes.required = true;\n    }\n\n    return _utils.HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"]\n      },\n      children: [html]\n    });\n  }\n\n}\n\nclass Occur extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"occur\", true);\n    this.id = attributes.id || \"\";\n    this.initial = attributes.initial !== \"\" ? (0, _utils.getInteger)({\n      data: attributes.initial,\n      defaultValue: \"\",\n      validate: x => true\n    }) : \"\";\n    this.max = attributes.max !== \"\" ? (0, _utils.getInteger)({\n      data: attributes.max,\n      defaultValue: 1,\n      validate: x => true\n    }) : \"\";\n    this.min = attributes.min !== \"\" ? (0, _utils.getInteger)({\n      data: attributes.min,\n      defaultValue: 1,\n      validate: x => true\n    }) : \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n  [_xfa_object.$clean]() {\n    const parent = this[_xfa_object.$getParent]();\n\n    const originalMin = this.min;\n\n    if (this.min === \"\") {\n      this.min = parent instanceof PageArea || parent instanceof PageSet ? 0 : 1;\n    }\n\n    if (this.max === \"\") {\n      if (originalMin === \"\") {\n        this.max = parent instanceof PageArea || parent instanceof PageSet ? -1 : 1;\n      } else {\n        this.max = this.min;\n      }\n    }\n\n    if (this.max !== -1 && this.max < this.min) {\n      this.max = this.min;\n    }\n\n    if (this.initial === \"\") {\n      this.initial = parent instanceof Template ? 1 : this.min;\n    }\n  }\n\n}\n\nclass Oid extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"oid\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Oids extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"oids\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.oid = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Overflow extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"overflow\");\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.target = attributes.target || \"\";\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$getExtra]() {\n    if (!this[_xfa_object.$extra]) {\n      const parent = this[_xfa_object.$getParent]();\n\n      const root = this[_xfa_object.$getTemplateRoot]();\n\n      const target = root[_xfa_object.$searchNode](this.target, parent);\n\n      const leader = root[_xfa_object.$searchNode](this.leader, parent);\n\n      const trailer = root[_xfa_object.$searchNode](this.trailer, parent);\n\n      this[_xfa_object.$extra] = {\n        target: target && target[0] || null,\n        leader: leader && leader[0] || null,\n        trailer: trailer && trailer[0] || null,\n        addLeader: false,\n        addTrailer: false\n      };\n    }\n\n    return this[_xfa_object.$extra];\n  }\n\n}\n\nclass PageArea extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"pageArea\", true);\n    this.blankOrNotBlank = (0, _utils.getStringOption)(attributes.blankOrNotBlank, [\"any\", \"blank\", \"notBlank\"]);\n    this.id = attributes.id || \"\";\n    this.initialNumber = (0, _utils.getInteger)({\n      data: attributes.initialNumber,\n      defaultValue: 1,\n      validate: x => true\n    });\n    this.name = attributes.name || \"\";\n    this.numbered = (0, _utils.getInteger)({\n      data: attributes.numbered,\n      defaultValue: 1,\n      validate: x => true\n    });\n    this.oddOrEven = (0, _utils.getStringOption)(attributes.oddOrEven, [\"any\", \"even\", \"odd\"]);\n    this.pagePosition = (0, _utils.getStringOption)(attributes.pagePosition, [\"any\", \"first\", \"last\", \"only\", \"rest\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.desc = null;\n    this.extras = null;\n    this.medium = null;\n    this.occur = null;\n    this.area = new _xfa_object.XFAObjectArray();\n    this.contentArea = new _xfa_object.XFAObjectArray();\n    this.draw = new _xfa_object.XFAObjectArray();\n    this.exclGroup = new _xfa_object.XFAObjectArray();\n    this.field = new _xfa_object.XFAObjectArray();\n    this.subform = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$isUsable]() {\n    if (!this[_xfa_object.$extra]) {\n      this[_xfa_object.$extra] = {\n        numberOfUse: 0\n      };\n      return true;\n    }\n\n    return !this.occur || this.occur.max === -1 || this[_xfa_object.$extra].numberOfUse < this.occur.max;\n  }\n\n  [_xfa_object.$cleanPage]() {\n    delete this[_xfa_object.$extra];\n  }\n\n  [_xfa_object.$getNextPage]() {\n    if (!this[_xfa_object.$extra]) {\n      this[_xfa_object.$extra] = {\n        numberOfUse: 0\n      };\n    }\n\n    const parent = this[_xfa_object.$getParent]();\n\n    if (parent.relation === \"orderedOccurrence\") {\n      if (this[_xfa_object.$isUsable]()) {\n        this[_xfa_object.$extra].numberOfUse += 1;\n        return this;\n      }\n    }\n\n    return parent[_xfa_object.$getNextPage]();\n  }\n\n  [_xfa_object.$getAvailableSpace]() {\n    return this[_xfa_object.$extra].space || {\n      width: 0,\n      height: 0\n    };\n  }\n\n  [_xfa_object.$toHTML]() {\n    if (!this[_xfa_object.$extra]) {\n      this[_xfa_object.$extra] = {\n        numberOfUse: 1\n      };\n    }\n\n    const children = [];\n    this[_xfa_object.$extra].children = children;\n    const style = Object.create(null);\n\n    if (this.medium && this.medium.short && this.medium.long) {\n      style.width = (0, _html_utils.measureToString)(this.medium.short);\n      style.height = (0, _html_utils.measureToString)(this.medium.long);\n      this[_xfa_object.$extra].space = {\n        width: this.medium.short,\n        height: this.medium.long\n      };\n\n      if (this.medium.orientation === \"landscape\") {\n        const x = style.width;\n        style.width = style.height;\n        style.height = x;\n        this[_xfa_object.$extra].space = {\n          width: this.medium.long,\n          height: this.medium.short\n        };\n      }\n    } else {\n      (0, _util.warn)(\"XFA - No medium specified in pageArea: please file a bug.\");\n    }\n\n    this[_xfa_object.$childrenToHTML]({\n      filter: new Set([\"area\", \"draw\", \"field\", \"subform\"]),\n      include: true\n    });\n\n    this[_xfa_object.$childrenToHTML]({\n      filter: new Set([\"contentArea\"]),\n      include: true\n    });\n\n    return _utils.HTMLResult.success({\n      name: \"div\",\n      children,\n      attributes: {\n        class: [\"xfaPage\"],\n        id: this[_xfa_object.$uid],\n        style,\n        xfaName: this.name\n      }\n    });\n  }\n\n}\n\nclass PageSet extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"pageSet\", true);\n    this.duplexImposition = (0, _utils.getStringOption)(attributes.duplexImposition, [\"longEdge\", \"shortEdge\"]);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relation = (0, _utils.getStringOption)(attributes.relation, [\"orderedOccurrence\", \"duplexPaginated\", \"simplexPaginated\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.occur = null;\n    this.pageArea = new _xfa_object.XFAObjectArray();\n    this.pageSet = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$cleanPage]() {\n    for (const page of this.pageArea.children) {\n      page[_xfa_object.$cleanPage]();\n    }\n\n    for (const page of this.pageSet.children) {\n      page[_xfa_object.$cleanPage]();\n    }\n  }\n\n  [_xfa_object.$isUsable]() {\n    return !this.occur || this.occur.max === -1 || this[_xfa_object.$extra].numberOfUse < this.occur.max;\n  }\n\n  [_xfa_object.$getNextPage]() {\n    if (!this[_xfa_object.$extra]) {\n      this[_xfa_object.$extra] = {\n        numberOfUse: 1,\n        pageIndex: -1,\n        pageSetIndex: -1\n      };\n    }\n\n    if (this.relation === \"orderedOccurrence\") {\n      if (this[_xfa_object.$extra].pageIndex + 1 < this.pageArea.children.length) {\n        this[_xfa_object.$extra].pageIndex += 1;\n        const pageArea = this.pageArea.children[this[_xfa_object.$extra].pageIndex];\n        return pageArea[_xfa_object.$getNextPage]();\n      }\n\n      if (this[_xfa_object.$extra].pageSetIndex + 1 < this.pageSet.children.length) {\n        this[_xfa_object.$extra].pageSetIndex += 1;\n        return this.pageSet.children[this[_xfa_object.$extra].pageSetIndex][_xfa_object.$getNextPage]();\n      }\n\n      if (this[_xfa_object.$isUsable]()) {\n        this[_xfa_object.$extra].numberOfUse += 1;\n        this[_xfa_object.$extra].pageIndex = -1;\n        this[_xfa_object.$extra].pageSetIndex = -1;\n        return this[_xfa_object.$getNextPage]();\n      }\n\n      const parent = this[_xfa_object.$getParent]();\n\n      if (parent instanceof PageSet) {\n        return parent[_xfa_object.$getNextPage]();\n      }\n\n      this[_xfa_object.$cleanPage]();\n\n      return this[_xfa_object.$getNextPage]();\n    }\n\n    const pageNumber = this[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].pageNumber;\n\n    const parity = pageNumber % 2 === 0 ? \"even\" : \"odd\";\n    const position = pageNumber === 0 ? \"first\" : \"rest\";\n    let page = this.pageArea.children.find(p => p.oddOrEven === parity && p.pagePosition === position);\n\n    if (page) {\n      return page;\n    }\n\n    page = this.pageArea.children.find(p => p.oddOrEven === \"any\" && p.pagePosition === position);\n\n    if (page) {\n      return page;\n    }\n\n    page = this.pageArea.children.find(p => p.oddOrEven === \"any\" && p.pagePosition === \"any\");\n\n    if (page) {\n      return page;\n    }\n\n    return this.pageArea.children[0];\n  }\n\n}\n\nclass Para extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"para\", true);\n    this.hAlign = (0, _utils.getStringOption)(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.lineHeight = attributes.lineHeight ? (0, _utils.getMeasurement)(attributes.lineHeight, \"0pt\") : \"\";\n    this.marginLeft = attributes.marginLeft ? (0, _utils.getMeasurement)(attributes.marginLeft, \"0pt\") : \"\";\n    this.marginRight = attributes.marginRight ? (0, _utils.getMeasurement)(attributes.marginRight, \"0pt\") : \"\";\n    this.orphans = (0, _utils.getInteger)({\n      data: attributes.orphans,\n      defaultValue: 0,\n      validate: x => x >= 0\n    });\n    this.preserve = attributes.preserve || \"\";\n    this.radixOffset = attributes.radixOffset ? (0, _utils.getMeasurement)(attributes.radixOffset, \"0pt\") : \"\";\n    this.spaceAbove = attributes.spaceAbove ? (0, _utils.getMeasurement)(attributes.spaceAbove, \"0pt\") : \"\";\n    this.spaceBelow = attributes.spaceBelow ? (0, _utils.getMeasurement)(attributes.spaceBelow, \"0pt\") : \"\";\n    this.tabDefault = attributes.tabDefault ? (0, _utils.getMeasurement)(this.tabDefault) : \"\";\n    this.tabStops = (attributes.tabStops || \"\").trim().split(/\\s+/).map((x, i) => i % 2 === 1 ? (0, _utils.getMeasurement)(x) : x);\n    this.textIndent = attributes.textIndent ? (0, _utils.getMeasurement)(attributes.textIndent, \"0pt\") : \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.vAlign = (0, _utils.getStringOption)(attributes.vAlign, [\"top\", \"bottom\", \"middle\"]);\n    this.widows = (0, _utils.getInteger)({\n      data: attributes.widows,\n      defaultValue: 0,\n      validate: x => x >= 0\n    });\n    this.hyphenation = null;\n  }\n\n  [_xfa_object.$toStyle]() {\n    const style = (0, _html_utils.toStyle)(this, \"hAlign\");\n\n    if (this.marginLeft !== \"\") {\n      style.paddingLeft = (0, _html_utils.measureToString)(this.marginLeft);\n    }\n\n    if (this.marginRight !== \"\") {\n      style.paddingight = (0, _html_utils.measureToString)(this.marginRight);\n    }\n\n    if (this.spaceAbove !== \"\") {\n      style.paddingTop = (0, _html_utils.measureToString)(this.spaceAbove);\n    }\n\n    if (this.spaceBelow !== \"\") {\n      style.paddingBottom = (0, _html_utils.measureToString)(this.spaceBelow);\n    }\n\n    if (this.textIndent !== \"\") {\n      style.textIndent = (0, _html_utils.measureToString)(this.textIndent);\n      (0, _html_utils.fixTextIndent)(style);\n    }\n\n    if (this.lineHeight > 0) {\n      style.lineHeight = (0, _html_utils.measureToString)(this.lineHeight);\n    }\n\n    if (this.tabDefault !== \"\") {\n      style.tabSize = (0, _html_utils.measureToString)(this.tabDefault);\n    }\n\n    if (this.tabStops.length > 0) {}\n\n    if (this.hyphenatation) {\n      Object.assign(style, this.hyphenatation[_xfa_object.$toStyle]());\n    }\n\n    return style;\n  }\n\n}\n\nclass PasswordEdit extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"passwordEdit\", true);\n    this.hScrollPolicy = (0, _utils.getStringOption)(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n    this.id = attributes.id || \"\";\n    this.passwordChar = attributes.passwordChar || \"*\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n}\n\nclass Pattern extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"pattern\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"crossHatch\", \"crossDiagonal\", \"diagonalLeft\", \"diagonalRight\", \"horizontal\", \"vertical\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle](startColor) {\n    startColor = startColor ? startColor[_xfa_object.$toStyle]() : \"#FFFFFF\";\n    const endColor = this.color ? this.color[_xfa_object.$toStyle]() : \"#000000\";\n    const width = 5;\n    const cmd = \"repeating-linear-gradient\";\n    const colors = `${startColor},${startColor} ${width}px,${endColor} ${width}px,${endColor} ${2 * width}px`;\n\n    switch (this.type) {\n      case \"crossHatch\":\n        return `${cmd}(to top,${colors}) ${cmd}(to right,${colors})`;\n\n      case \"crossDiagonal\":\n        return `${cmd}(45deg,${colors}) ${cmd}(-45deg,${colors})`;\n\n      case \"diagonalLeft\":\n        return `${cmd}(45deg,${colors})`;\n\n      case \"diagonalRight\":\n        return `${cmd}(-45deg,${colors})`;\n\n      case \"horizontal\":\n        return `${cmd}(to top,${colors})`;\n\n      case \"vertical\":\n        return `${cmd}(to right,${colors})`;\n    }\n\n    return \"\";\n  }\n\n}\n\nclass Picture extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"picture\");\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Proto extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"proto\", true);\n    this.appearanceFilter = new _xfa_object.XFAObjectArray();\n    this.arc = new _xfa_object.XFAObjectArray();\n    this.area = new _xfa_object.XFAObjectArray();\n    this.assist = new _xfa_object.XFAObjectArray();\n    this.barcode = new _xfa_object.XFAObjectArray();\n    this.bindItems = new _xfa_object.XFAObjectArray();\n    this.bookend = new _xfa_object.XFAObjectArray();\n    this.boolean = new _xfa_object.XFAObjectArray();\n    this.border = new _xfa_object.XFAObjectArray();\n    this.break = new _xfa_object.XFAObjectArray();\n    this.breakAfter = new _xfa_object.XFAObjectArray();\n    this.breakBefore = new _xfa_object.XFAObjectArray();\n    this.button = new _xfa_object.XFAObjectArray();\n    this.calculate = new _xfa_object.XFAObjectArray();\n    this.caption = new _xfa_object.XFAObjectArray();\n    this.certificate = new _xfa_object.XFAObjectArray();\n    this.certificates = new _xfa_object.XFAObjectArray();\n    this.checkButton = new _xfa_object.XFAObjectArray();\n    this.choiceList = new _xfa_object.XFAObjectArray();\n    this.color = new _xfa_object.XFAObjectArray();\n    this.comb = new _xfa_object.XFAObjectArray();\n    this.connect = new _xfa_object.XFAObjectArray();\n    this.contentArea = new _xfa_object.XFAObjectArray();\n    this.corner = new _xfa_object.XFAObjectArray();\n    this.date = new _xfa_object.XFAObjectArray();\n    this.dateTime = new _xfa_object.XFAObjectArray();\n    this.dateTimeEdit = new _xfa_object.XFAObjectArray();\n    this.decimal = new _xfa_object.XFAObjectArray();\n    this.defaultUi = new _xfa_object.XFAObjectArray();\n    this.desc = new _xfa_object.XFAObjectArray();\n    this.digestMethod = new _xfa_object.XFAObjectArray();\n    this.digestMethods = new _xfa_object.XFAObjectArray();\n    this.draw = new _xfa_object.XFAObjectArray();\n    this.edge = new _xfa_object.XFAObjectArray();\n    this.encoding = new _xfa_object.XFAObjectArray();\n    this.encodings = new _xfa_object.XFAObjectArray();\n    this.encrypt = new _xfa_object.XFAObjectArray();\n    this.encryptData = new _xfa_object.XFAObjectArray();\n    this.encryption = new _xfa_object.XFAObjectArray();\n    this.encryptionMethod = new _xfa_object.XFAObjectArray();\n    this.encryptionMethods = new _xfa_object.XFAObjectArray();\n    this.event = new _xfa_object.XFAObjectArray();\n    this.exData = new _xfa_object.XFAObjectArray();\n    this.exObject = new _xfa_object.XFAObjectArray();\n    this.exclGroup = new _xfa_object.XFAObjectArray();\n    this.execute = new _xfa_object.XFAObjectArray();\n    this.extras = new _xfa_object.XFAObjectArray();\n    this.field = new _xfa_object.XFAObjectArray();\n    this.fill = new _xfa_object.XFAObjectArray();\n    this.filter = new _xfa_object.XFAObjectArray();\n    this.float = new _xfa_object.XFAObjectArray();\n    this.font = new _xfa_object.XFAObjectArray();\n    this.format = new _xfa_object.XFAObjectArray();\n    this.handler = new _xfa_object.XFAObjectArray();\n    this.hyphenation = new _xfa_object.XFAObjectArray();\n    this.image = new _xfa_object.XFAObjectArray();\n    this.imageEdit = new _xfa_object.XFAObjectArray();\n    this.integer = new _xfa_object.XFAObjectArray();\n    this.issuers = new _xfa_object.XFAObjectArray();\n    this.items = new _xfa_object.XFAObjectArray();\n    this.keep = new _xfa_object.XFAObjectArray();\n    this.keyUsage = new _xfa_object.XFAObjectArray();\n    this.line = new _xfa_object.XFAObjectArray();\n    this.linear = new _xfa_object.XFAObjectArray();\n    this.lockDocument = new _xfa_object.XFAObjectArray();\n    this.manifest = new _xfa_object.XFAObjectArray();\n    this.margin = new _xfa_object.XFAObjectArray();\n    this.mdp = new _xfa_object.XFAObjectArray();\n    this.medium = new _xfa_object.XFAObjectArray();\n    this.message = new _xfa_object.XFAObjectArray();\n    this.numericEdit = new _xfa_object.XFAObjectArray();\n    this.occur = new _xfa_object.XFAObjectArray();\n    this.oid = new _xfa_object.XFAObjectArray();\n    this.oids = new _xfa_object.XFAObjectArray();\n    this.overflow = new _xfa_object.XFAObjectArray();\n    this.pageArea = new _xfa_object.XFAObjectArray();\n    this.pageSet = new _xfa_object.XFAObjectArray();\n    this.para = new _xfa_object.XFAObjectArray();\n    this.passwordEdit = new _xfa_object.XFAObjectArray();\n    this.pattern = new _xfa_object.XFAObjectArray();\n    this.picture = new _xfa_object.XFAObjectArray();\n    this.radial = new _xfa_object.XFAObjectArray();\n    this.reason = new _xfa_object.XFAObjectArray();\n    this.reasons = new _xfa_object.XFAObjectArray();\n    this.rectangle = new _xfa_object.XFAObjectArray();\n    this.ref = new _xfa_object.XFAObjectArray();\n    this.script = new _xfa_object.XFAObjectArray();\n    this.setProperty = new _xfa_object.XFAObjectArray();\n    this.signData = new _xfa_object.XFAObjectArray();\n    this.signature = new _xfa_object.XFAObjectArray();\n    this.signing = new _xfa_object.XFAObjectArray();\n    this.solid = new _xfa_object.XFAObjectArray();\n    this.speak = new _xfa_object.XFAObjectArray();\n    this.stipple = new _xfa_object.XFAObjectArray();\n    this.subform = new _xfa_object.XFAObjectArray();\n    this.subformSet = new _xfa_object.XFAObjectArray();\n    this.subjectDN = new _xfa_object.XFAObjectArray();\n    this.subjectDNs = new _xfa_object.XFAObjectArray();\n    this.submit = new _xfa_object.XFAObjectArray();\n    this.text = new _xfa_object.XFAObjectArray();\n    this.textEdit = new _xfa_object.XFAObjectArray();\n    this.time = new _xfa_object.XFAObjectArray();\n    this.timeStamp = new _xfa_object.XFAObjectArray();\n    this.toolTip = new _xfa_object.XFAObjectArray();\n    this.traversal = new _xfa_object.XFAObjectArray();\n    this.traverse = new _xfa_object.XFAObjectArray();\n    this.ui = new _xfa_object.XFAObjectArray();\n    this.validate = new _xfa_object.XFAObjectArray();\n    this.value = new _xfa_object.XFAObjectArray();\n    this.variables = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Radial extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"radial\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"toEdge\", \"toCenter\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle](startColor) {\n    startColor = startColor ? startColor[_xfa_object.$toStyle]() : \"#FFFFFF\";\n    const endColor = this.color ? this.color[_xfa_object.$toStyle]() : \"#000000\";\n    const colors = this.type === \"toEdge\" ? `${startColor},${endColor}` : `${endColor},${startColor}`;\n    return `radial-gradient(circle at center, ${colors})`;\n  }\n\n}\n\nclass Reason extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"reason\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Reasons extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"reasons\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.reason = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Rectangle extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"rectangle\", true);\n    this.hand = (0, _utils.getStringOption)(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.corner = new _xfa_object.XFAObjectArray(4);\n    this.edge = new _xfa_object.XFAObjectArray(4);\n    this.fill = null;\n  }\n\n  [_xfa_object.$toHTML]() {\n    const edge = this.edge.children.length ? this.edge.children[0] : new Edge({});\n\n    const edgeStyle = edge[_xfa_object.$toStyle]();\n\n    const style = Object.create(null);\n\n    if (this.fill && this.fill.presence === \"visible\") {\n      Object.assign(style, this.fill[_xfa_object.$toStyle]());\n    } else {\n      style.fill = \"transparent\";\n    }\n\n    style.strokeWidth = (0, _html_utils.measureToString)(edge.presence === \"visible\" ? edge.thickness : 0);\n    style.stroke = edgeStyle.color;\n    const corner = this.corner.children.length ? this.corner.children[0] : new Corner({});\n\n    const cornerStyle = corner[_xfa_object.$toStyle]();\n\n    const rect = {\n      name: \"rect\",\n      attributes: {\n        xmlns: SVG_NS,\n        width: \"100%\",\n        height: \"100%\",\n        x: 0,\n        y: 0,\n        rx: cornerStyle.radius,\n        ry: cornerStyle.radius,\n        style\n      }\n    };\n    const svg = {\n      name: \"svg\",\n      children: [rect],\n      attributes: {\n        xmlns: SVG_NS,\n        style: {\n          overflow: \"visible\"\n        },\n        width: \"100%\",\n        height: \"100%\"\n      }\n    };\n\n    const parent = this[_xfa_object.$getParent]()[_xfa_object.$getParent]();\n\n    if (hasMargin(parent)) {\n      return _utils.HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          style: {\n            display: \"inline\",\n            width: \"100%\",\n            height: \"100%\"\n          }\n        },\n        children: [svg]\n      });\n    }\n\n    svg.attributes.style.position = \"absolute\";\n    return _utils.HTMLResult.success(svg);\n  }\n\n}\n\nclass RefElement extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"ref\");\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Script extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"script\");\n    this.binding = attributes.binding || \"\";\n    this.contentType = attributes.contentType || \"\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.runAt = (0, _utils.getStringOption)(attributes.runAt, [\"client\", \"both\", \"server\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass SetProperty extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"setProperty\");\n    this.connection = attributes.connection || \"\";\n    this.ref = attributes.ref || \"\";\n    this.target = attributes.target || \"\";\n  }\n\n}\n\nexports.SetProperty = SetProperty;\n\nclass SignData extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"signData\", true);\n    this.id = attributes.id || \"\";\n    this.operation = (0, _utils.getStringOption)(attributes.operation, [\"sign\", \"clear\", \"verify\"]);\n    this.ref = attributes.ref || \"\";\n    this.target = attributes.target || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.filter = null;\n    this.manifest = null;\n  }\n\n}\n\nclass Signature extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"signature\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"PDF1.3\", \"PDF1.6\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.filter = null;\n    this.manifest = null;\n    this.margin = null;\n  }\n\n}\n\nclass Signing extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"signing\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Solid extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"solid\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle](startColor) {\n    return startColor ? startColor[_xfa_object.$toStyle]() : \"#FFFFFF\";\n  }\n\n}\n\nclass Speak extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"speak\");\n    this.disable = (0, _utils.getInteger)({\n      data: attributes.disable,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.id = attributes.id || \"\";\n    this.priority = (0, _utils.getStringOption)(attributes.priority, [\"custom\", \"caption\", \"name\", \"toolTip\"]);\n    this.rid = attributes.rid || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Stipple extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"stipple\", true);\n    this.id = attributes.id || \"\";\n    this.rate = (0, _utils.getInteger)({\n      data: attributes.rate,\n      defaultValue: 50,\n      validate: x => x >= 0 && x <= 100\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle](bgColor) {\n    const alpha = this.rate / 100;\n    return _util.Util.makeHexColor(Math.round(bgColor.value.r * (1 - alpha) + this.value.r * alpha), Math.round(bgColor.value.g * (1 - alpha) + this.value.g * alpha), Math.round(bgColor.value.b * (1 - alpha) + this.value.b * alpha));\n  }\n\n}\n\nclass Subform extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subform\", true);\n    this.access = (0, _utils.getStringOption)(attributes.access, [\"open\", \"nonInteractive\", \"protected\", \"readOnly\"]);\n    this.allowMacro = (0, _utils.getInteger)({\n      data: attributes.allowMacro,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.anchorType = (0, _utils.getStringOption)(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n    this.colSpan = (0, _utils.getInteger)({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1\n    });\n    this.columnWidths = (attributes.columnWidths || \"\").trim().split(/\\s+/).map(x => x === \"-1\" ? -1 : (0, _utils.getMeasurement)(x));\n    this.h = attributes.h ? (0, _utils.getMeasurement)(attributes.h) : \"\";\n    this.hAlign = (0, _utils.getStringOption)(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.layout = (0, _utils.getStringOption)(attributes.layout, [\"position\", \"lr-tb\", \"rl-row\", \"rl-tb\", \"row\", \"table\", \"tb\"]);\n    this.locale = attributes.locale || \"\";\n    this.maxH = (0, _utils.getMeasurement)(attributes.maxH, \"0pt\");\n    this.maxW = (0, _utils.getMeasurement)(attributes.maxW, \"0pt\");\n    this.mergeMode = (0, _utils.getStringOption)(attributes.mergeMode, [\"consumeData\", \"matchTemplate\"]);\n    this.minH = (0, _utils.getMeasurement)(attributes.minH, \"0pt\");\n    this.minW = (0, _utils.getMeasurement)(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.restoreState = (0, _utils.getStringOption)(attributes.restoreState, [\"manual\", \"auto\"]);\n    this.scope = (0, _utils.getStringOption)(attributes.scope, [\"name\", \"none\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? (0, _utils.getMeasurement)(attributes.w) : \"\";\n    this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n    this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n    this.assist = null;\n    this.bind = null;\n    this.bookend = null;\n    this.border = null;\n    this.break = null;\n    this.calculate = null;\n    this.desc = null;\n    this.extras = null;\n    this.keep = null;\n    this.margin = null;\n    this.occur = null;\n    this.overflow = null;\n    this.pageSet = null;\n    this.para = null;\n    this.traversal = null;\n    this.validate = null;\n    this.variables = null;\n    this.area = new _xfa_object.XFAObjectArray();\n    this.breakAfter = new _xfa_object.XFAObjectArray();\n    this.breakBefore = new _xfa_object.XFAObjectArray();\n    this.connect = new _xfa_object.XFAObjectArray();\n    this.draw = new _xfa_object.XFAObjectArray();\n    this.event = new _xfa_object.XFAObjectArray();\n    this.exObject = new _xfa_object.XFAObjectArray();\n    this.exclGroup = new _xfa_object.XFAObjectArray();\n    this.field = new _xfa_object.XFAObjectArray();\n    this.proto = new _xfa_object.XFAObjectArray();\n    this.setProperty = new _xfa_object.XFAObjectArray();\n    this.subform = new _xfa_object.XFAObjectArray();\n    this.subformSet = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$getSubformParent]() {\n    const parent = this[_xfa_object.$getParent]();\n\n    if (parent instanceof SubformSet) {\n      return parent[_xfa_object.$getSubformParent]();\n    }\n\n    return parent;\n  }\n\n  [_xfa_object.$isBindable]() {\n    return true;\n  }\n\n  [_xfa_object.$isThereMoreWidth]() {\n    return this.layout.endsWith(\"-tb\") && this[_xfa_object.$extra].attempt === 0 && this[_xfa_object.$extra].numberInLine > 0 || this[_xfa_object.$getParent]()[_xfa_object.$isThereMoreWidth]();\n  }\n\n  *[_xfa_object.$getContainedChildren]() {\n    yield* getContainedChildren(this);\n  }\n\n  [_xfa_object.$flushHTML]() {\n    return (0, _layout.flushHTML)(this);\n  }\n\n  [_xfa_object.$addHTML](html, bbox) {\n    (0, _layout.addHTML)(this, html, bbox);\n  }\n\n  [_xfa_object.$getAvailableSpace]() {\n    return (0, _layout.getAvailableSpace)(this);\n  }\n\n  [_xfa_object.$isSplittable]() {\n    const parent = this[_xfa_object.$getSubformParent]();\n\n    if (!parent[_xfa_object.$isSplittable]()) {\n      return false;\n    }\n\n    if (this[_xfa_object.$extra]._isSplittable !== undefined) {\n      return this[_xfa_object.$extra]._isSplittable;\n    }\n\n    if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n      this[_xfa_object.$extra]._isSplittable = false;\n      return false;\n    }\n\n    if (this.keep && this.keep.intact !== \"none\") {\n      this[_xfa_object.$extra]._isSplittable = false;\n      return false;\n    }\n\n    if (parent.layout && parent.layout.endsWith(\"-tb\") && parent[_xfa_object.$extra].numberInLine !== 0) {\n      return false;\n    }\n\n    this[_xfa_object.$extra]._isSplittable = true;\n    return true;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    setTabIndex(this);\n\n    if (this.break) {\n      if (this.break.after !== \"auto\" || this.break.afterTarget !== \"\") {\n        const node = new BreakAfter({\n          targetType: this.break.after,\n          target: this.break.afterTarget,\n          startNew: this.break.startNew.toString()\n        });\n        node[_xfa_object.$globalData] = this[_xfa_object.$globalData];\n\n        this[_xfa_object.$appendChild](node);\n\n        this.breakAfter.push(node);\n      }\n\n      if (this.break.before !== \"auto\" || this.break.beforeTarget !== \"\") {\n        const node = new BreakBefore({\n          targetType: this.break.before,\n          target: this.break.beforeTarget,\n          startNew: this.break.startNew.toString()\n        });\n        node[_xfa_object.$globalData] = this[_xfa_object.$globalData];\n\n        this[_xfa_object.$appendChild](node);\n\n        this.breakBefore.push(node);\n      }\n\n      if (this.break.overflowTarget !== \"\") {\n        const node = new Overflow({\n          target: this.break.overflowTarget,\n          leader: this.break.overflowLeader,\n          trailer: this.break.overflowTrailer\n        });\n        node[_xfa_object.$globalData] = this[_xfa_object.$globalData];\n\n        this[_xfa_object.$appendChild](node);\n\n        this.overflow.push(node);\n      }\n\n      this[_xfa_object.$removeChild](this.break);\n\n      this.break = null;\n    }\n\n    if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    if (this.breakBefore.children.length > 1 || this.breakAfter.children.length > 1) {\n      (0, _util.warn)(\"XFA - Several breakBefore or breakAfter in subforms: please file a bug.\");\n    }\n\n    if (this.breakBefore.children.length >= 1) {\n      const breakBefore = this.breakBefore.children[0];\n\n      if (handleBreak(breakBefore)) {\n        return _utils.HTMLResult.breakNode(breakBefore);\n      }\n    }\n\n    if (this[_xfa_object.$extra] && this[_xfa_object.$extra].afterBreakAfter) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    (0, _html_utils.fixDimensions)(this);\n    const children = [];\n    const attributes = {\n      id: this[_xfa_object.$uid],\n      class: []\n    };\n    (0, _html_utils.setAccess)(this, attributes.class);\n\n    if (!this[_xfa_object.$extra]) {\n      this[_xfa_object.$extra] = Object.create(null);\n    }\n\n    Object.assign(this[_xfa_object.$extra], {\n      children,\n      line: null,\n      attributes,\n      attempt: 0,\n      numberInLine: 0,\n      availableSpace: {\n        width: Math.min(this.w || Infinity, availableSpace.width),\n        height: Math.min(this.h || Infinity, availableSpace.height)\n      },\n      width: 0,\n      height: 0,\n      prevHeight: 0,\n      currentWidth: 0\n    });\n\n    const root = this[_xfa_object.$getTemplateRoot]();\n\n    const savedNoLayoutFailure = root[_xfa_object.$extra].noLayoutFailure;\n\n    const isSplittable = this[_xfa_object.$isSplittable]();\n\n    if (!isSplittable) {\n      setFirstUnsplittable(this);\n    }\n\n    if (!(0, _layout.checkDimensions)(this, availableSpace)) {\n      return _utils.HTMLResult.FAILURE;\n    }\n\n    const filter = new Set([\"area\", \"draw\", \"exclGroup\", \"field\", \"subform\", \"subformSet\"]);\n\n    if (this.layout.includes(\"row\")) {\n      const columnWidths = this[_xfa_object.$getSubformParent]().columnWidths;\n\n      if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n        this[_xfa_object.$extra].columnWidths = columnWidths;\n        this[_xfa_object.$extra].currentColumn = 0;\n      }\n    }\n\n    const style = (0, _html_utils.toStyle)(this, \"anchorType\", \"dimensions\", \"position\", \"presence\", \"border\", \"margin\", \"hAlign\");\n    const classNames = [\"xfaSubform\"];\n    const cl = (0, _html_utils.layoutClass)(this);\n\n    if (cl) {\n      classNames.push(cl);\n    }\n\n    attributes.style = style;\n    attributes.class = classNames;\n\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n\n    if (this.overflow) {\n      const overflowExtra = this.overflow[_xfa_object.$getExtra]();\n\n      if (overflowExtra.addLeader) {\n        overflowExtra.addLeader = false;\n        handleOverflow(this, overflowExtra.leader, availableSpace);\n      }\n    }\n\n    this[_xfa_object.$pushPara]();\n\n    const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n    const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n\n    for (; this[_xfa_object.$extra].attempt < maxRun; this[_xfa_object.$extra].attempt++) {\n      if (isLrTb && this[_xfa_object.$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n        this[_xfa_object.$extra].numberInLine = 0;\n      }\n\n      const result = this[_xfa_object.$childrenToHTML]({\n        filter,\n        include: true\n      });\n\n      if (result.success) {\n        break;\n      }\n\n      if (result.isBreak()) {\n        this[_xfa_object.$popPara]();\n\n        return result;\n      }\n\n      if (isLrTb && this[_xfa_object.$extra].attempt === 0 && this[_xfa_object.$extra].numberInLine === 0 && !root[_xfa_object.$extra].noLayoutFailure) {\n        this[_xfa_object.$extra].attempt = maxRun;\n        break;\n      }\n    }\n\n    this[_xfa_object.$popPara]();\n\n    if (!isSplittable) {\n      unsetFirstUnsplittable(this);\n    }\n\n    root[_xfa_object.$extra].noLayoutFailure = savedNoLayoutFailure;\n\n    if (this[_xfa_object.$extra].attempt === maxRun) {\n      if (this.overflow) {\n        this[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].overflowNode = this.overflow;\n      }\n\n      if (!isSplittable) {\n        delete this[_xfa_object.$extra];\n      }\n\n      return _utils.HTMLResult.FAILURE;\n    }\n\n    if (this.overflow) {\n      const overflowExtra = this.overflow[_xfa_object.$getExtra]();\n\n      if (overflowExtra.addTrailer) {\n        overflowExtra.addTrailer = false;\n        handleOverflow(this, overflowExtra.trailer, availableSpace);\n      }\n    }\n\n    let marginH = 0;\n    let marginV = 0;\n\n    if (this.margin) {\n      marginH = this.margin.leftInset + this.margin.rightInset;\n      marginV = this.margin.topInset + this.margin.bottomInset;\n    }\n\n    const width = Math.max(this[_xfa_object.$extra].width + marginH, this.w || 0);\n    const height = Math.max(this[_xfa_object.$extra].height + marginV, this.h || 0);\n    const bbox = [this.x, this.y, width, height];\n\n    if (this.w === \"\") {\n      style.width = (0, _html_utils.measureToString)(width);\n    }\n\n    if (this.h === \"\") {\n      style.height = (0, _html_utils.measureToString)(height);\n    }\n\n    if ((style.width === \"0px\" || style.height === \"0px\") && children.length === 0) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    const html = {\n      name: \"div\",\n      attributes,\n      children\n    };\n    applyAssist(this, attributes);\n\n    const result = _utils.HTMLResult.success((0, _html_utils.createWrapper)(this, html), bbox);\n\n    if (this.breakAfter.children.length >= 1) {\n      const breakAfter = this.breakAfter.children[0];\n\n      if (handleBreak(breakAfter)) {\n        this[_xfa_object.$extra].afterBreakAfter = result;\n        return _utils.HTMLResult.breakNode(breakAfter);\n      }\n    }\n\n    delete this[_xfa_object.$extra];\n    return result;\n  }\n\n}\n\nclass SubformSet extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subformSet\", true);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relation = (0, _utils.getStringOption)(attributes.relation, [\"ordered\", \"choice\", \"unordered\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.bookend = null;\n    this.break = null;\n    this.desc = null;\n    this.extras = null;\n    this.occur = null;\n    this.overflow = null;\n    this.breakAfter = new _xfa_object.XFAObjectArray();\n    this.breakBefore = new _xfa_object.XFAObjectArray();\n    this.subform = new _xfa_object.XFAObjectArray();\n    this.subformSet = new _xfa_object.XFAObjectArray();\n  }\n\n  *[_xfa_object.$getContainedChildren]() {\n    yield* getContainedChildren(this);\n  }\n\n  [_xfa_object.$getSubformParent]() {\n    let parent = this[_xfa_object.$getParent]();\n\n    while (!(parent instanceof Subform)) {\n      parent = parent[_xfa_object.$getParent]();\n    }\n\n    return parent;\n  }\n\n  [_xfa_object.$isBindable]() {\n    return true;\n  }\n\n}\n\nclass SubjectDN extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subjectDN\");\n    this.delimiter = attributes.delimiter || \",\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = new Map(this[_xfa_object.$content].split(this.delimiter).map(kv => {\n      kv = kv.split(\"=\", 2);\n      kv[0] = kv[0].trim();\n      return kv;\n    }));\n  }\n\n}\n\nclass SubjectDNs extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subjectDNs\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.subjectDN = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Submit extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"submit\", true);\n    this.embedPDF = (0, _utils.getInteger)({\n      data: attributes.embedPDF,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.format = (0, _utils.getStringOption)(attributes.format, [\"xdp\", \"formdata\", \"pdf\", \"urlencoded\", \"xfd\", \"xml\"]);\n    this.id = attributes.id || \"\";\n    this.target = attributes.target || \"\";\n    this.textEncoding = (0, _utils.getKeyword)({\n      data: attributes.textEncoding ? attributes.textEncoding.toLowerCase() : \"\",\n      defaultValue: \"\",\n      validate: k => [\"utf-8\", \"big-five\", \"fontspecific\", \"gbk\", \"gb-18030\", \"gb-2312\", \"ksc-5601\", \"none\", \"shift-jis\", \"ucs-2\", \"utf-16\"].includes(k) || k.match(/iso-8859-\\d{2}/)\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.xdpContent = attributes.xdpContent || \"\";\n    this.encrypt = null;\n    this.encryptData = new _xfa_object.XFAObjectArray();\n    this.signData = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Template extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"template\", true);\n    this.baseProfile = (0, _utils.getStringOption)(attributes.baseProfile, [\"full\", \"interactiveForms\"]);\n    this.extras = null;\n    this.subform = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$finalize]() {\n    if (this.subform.children.length === 0) {\n      (0, _util.warn)(\"XFA - No subforms in template node.\");\n    }\n\n    if (this.subform.children.length >= 2) {\n      (0, _util.warn)(\"XFA - Several subforms in template node: please file a bug.\");\n    }\n\n    this[_xfa_object.$tabIndex] = DEFAULT_TAB_INDEX;\n  }\n\n  [_xfa_object.$isSplittable]() {\n    return true;\n  }\n\n  [_xfa_object.$searchNode](expr, container) {\n    if (expr.startsWith(\"#\")) {\n      return [this[_xfa_object.$ids].get(expr.slice(1))];\n    }\n\n    return (0, _som.searchNode)(this, container, expr, true, true);\n  }\n\n  *[_xfa_object.$toPages]() {\n    if (!this.subform.children.length) {\n      return _utils.HTMLResult.success({\n        name: \"div\",\n        children: []\n      });\n    }\n\n    this[_xfa_object.$extra] = {\n      overflowNode: null,\n      firstUnsplittable: null,\n      currentContentArea: null,\n      currentPageArea: null,\n      noLayoutFailure: false,\n      pageNumber: 1,\n      pagePosition: \"first\",\n      oddOrEven: \"odd\",\n      blankOrNotBlank: \"nonBlank\",\n      paraStack: []\n    };\n    const root = this.subform.children[0];\n\n    root.pageSet[_xfa_object.$cleanPage]();\n\n    const pageAreas = root.pageSet.pageArea.children;\n    const mainHtml = {\n      name: \"div\",\n      children: []\n    };\n    let pageArea = null;\n    let breakBefore = null;\n    let breakBeforeTarget = null;\n\n    if (root.breakBefore.children.length >= 1) {\n      breakBefore = root.breakBefore.children[0];\n      breakBeforeTarget = breakBefore.target;\n    } else if (root.subform.children.length >= 1 && root.subform.children[0].breakBefore.children.length >= 1) {\n      breakBefore = root.subform.children[0].breakBefore.children[0];\n      breakBeforeTarget = breakBefore.target;\n    } else if (root.break && root.break.beforeTarget) {\n      breakBefore = root.break;\n      breakBeforeTarget = breakBefore.beforeTarget;\n    } else if (root.subform.children.length >= 1 && root.subform.children[0].break && root.subform.children[0].break.beforeTarget) {\n      breakBefore = root.subform.children[0].break;\n      breakBeforeTarget = breakBefore.beforeTarget;\n    }\n\n    if (breakBefore) {\n      const target = this[_xfa_object.$searchNode](breakBeforeTarget, breakBefore[_xfa_object.$getParent]());\n\n      if (target instanceof PageArea) {\n        pageArea = target;\n        breakBefore[_xfa_object.$extra] = {};\n      }\n    }\n\n    if (!pageArea) {\n      pageArea = pageAreas[0];\n    }\n\n    pageArea[_xfa_object.$extra] = {\n      numberOfUse: 1\n    };\n\n    const pageAreaParent = pageArea[_xfa_object.$getParent]();\n\n    pageAreaParent[_xfa_object.$extra] = {\n      numberOfUse: 1,\n      pageIndex: pageAreaParent.pageArea.children.indexOf(pageArea),\n      pageSetIndex: 0\n    };\n    let targetPageArea;\n    let leader = null;\n    let trailer = null;\n    let hasSomething = true;\n    let hasSomethingCounter = 0;\n    let startIndex = 0;\n\n    while (true) {\n      if (!hasSomething) {\n        mainHtml.children.pop();\n\n        if (++hasSomethingCounter === MAX_EMPTY_PAGES) {\n          (0, _util.warn)(\"XFA - Something goes wrong: please file a bug.\");\n          return mainHtml;\n        }\n      } else {\n        hasSomethingCounter = 0;\n      }\n\n      targetPageArea = null;\n      this[_xfa_object.$extra].currentPageArea = pageArea;\n\n      const page = pageArea[_xfa_object.$toHTML]().html;\n\n      mainHtml.children.push(page);\n\n      if (leader) {\n        this[_xfa_object.$extra].noLayoutFailure = true;\n        page.children.push(leader[_xfa_object.$toHTML](pageArea[_xfa_object.$extra].space).html);\n        leader = null;\n      }\n\n      if (trailer) {\n        this[_xfa_object.$extra].noLayoutFailure = true;\n        page.children.push(trailer[_xfa_object.$toHTML](pageArea[_xfa_object.$extra].space).html);\n        trailer = null;\n      }\n\n      const contentAreas = pageArea.contentArea.children;\n      const htmlContentAreas = page.children.filter(node => node.attributes.class.includes(\"xfaContentarea\"));\n      hasSomething = false;\n      this[_xfa_object.$extra].firstUnsplittable = null;\n      this[_xfa_object.$extra].noLayoutFailure = false;\n\n      const flush = index => {\n        const html = root[_xfa_object.$flushHTML]();\n\n        if (html) {\n          hasSomething = hasSomething || html.children && html.children.length !== 0;\n          htmlContentAreas[index].children.push(html);\n        }\n      };\n\n      for (let i = startIndex, ii = contentAreas.length; i < ii; i++) {\n        const contentArea = this[_xfa_object.$extra].currentContentArea = contentAreas[i];\n        const space = {\n          width: contentArea.w,\n          height: contentArea.h\n        };\n        startIndex = 0;\n\n        if (leader) {\n          htmlContentAreas[i].children.push(leader[_xfa_object.$toHTML](space).html);\n          leader = null;\n        }\n\n        if (trailer) {\n          htmlContentAreas[i].children.push(trailer[_xfa_object.$toHTML](space).html);\n          trailer = null;\n        }\n\n        const html = root[_xfa_object.$toHTML](space);\n\n        if (html.success) {\n          if (html.html) {\n            hasSomething = hasSomething || html.html.children && html.html.children.length !== 0;\n            htmlContentAreas[i].children.push(html.html);\n          } else if (!hasSomething && mainHtml.children.length > 1) {\n            mainHtml.children.pop();\n          }\n\n          return mainHtml;\n        }\n\n        if (html.isBreak()) {\n          const node = html.breakNode;\n          flush(i);\n\n          if (node.targetType === \"auto\") {\n            continue;\n          }\n\n          if (node.leader) {\n            leader = this[_xfa_object.$searchNode](node.leader, node[_xfa_object.$getParent]());\n            leader = leader ? leader[0] : null;\n          }\n\n          if (node.trailer) {\n            trailer = this[_xfa_object.$searchNode](node.trailer, node[_xfa_object.$getParent]());\n            trailer = trailer ? trailer[0] : null;\n          }\n\n          if (node.targetType === \"pageArea\") {\n            targetPageArea = node[_xfa_object.$extra].target;\n            i = Infinity;\n          } else if (!node[_xfa_object.$extra].target) {\n            i = node[_xfa_object.$extra].index;\n          } else {\n            targetPageArea = node[_xfa_object.$extra].target;\n            startIndex = node[_xfa_object.$extra].index + 1;\n            i = Infinity;\n          }\n\n          continue;\n        }\n\n        if (this[_xfa_object.$extra].overflowNode) {\n          const node = this[_xfa_object.$extra].overflowNode;\n          this[_xfa_object.$extra].overflowNode = null;\n\n          const overflowExtra = node[_xfa_object.$getExtra]();\n\n          const target = overflowExtra.target;\n          overflowExtra.addLeader = overflowExtra.leader !== null;\n          overflowExtra.addTrailer = overflowExtra.trailer !== null;\n          flush(i);\n          const currentIndex = i;\n          i = Infinity;\n\n          if (target instanceof PageArea) {\n            targetPageArea = target;\n          } else if (target instanceof ContentArea) {\n            const index = contentAreas.indexOf(target);\n\n            if (index !== -1) {\n              if (index > currentIndex) {\n                i = index - 1;\n              } else {\n                startIndex = index;\n              }\n            } else {\n              targetPageArea = target[_xfa_object.$getParent]();\n              startIndex = targetPageArea.contentArea.children.indexOf(target);\n            }\n          }\n\n          continue;\n        }\n\n        flush(i);\n      }\n\n      this[_xfa_object.$extra].pageNumber += 1;\n\n      if (targetPageArea) {\n        if (targetPageArea[_xfa_object.$isUsable]()) {\n          targetPageArea[_xfa_object.$extra].numberOfUse += 1;\n        } else {\n          targetPageArea = null;\n        }\n      }\n\n      pageArea = targetPageArea || pageArea[_xfa_object.$getNextPage]();\n      yield null;\n    }\n  }\n\n}\n\nexports.Template = Template;\n\nclass Text extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"text\");\n    this.id = attributes.id || \"\";\n    this.maxChars = (0, _utils.getInteger)({\n      data: attributes.maxChars,\n      defaultValue: 0,\n      validate: x => x >= 0\n    });\n    this.name = attributes.name || \"\";\n    this.rid = attributes.rid || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$acceptWhitespace]() {\n    return true;\n  }\n\n  [_xfa_object.$onChild](child) {\n    if (child[_xfa_object.$namespaceId] === _namespaces.NamespaceIds.xhtml.id) {\n      this[_xfa_object.$content] = child;\n      return true;\n    }\n\n    (0, _util.warn)(`XFA - Invalid content in Text: ${child[_xfa_object.$nodeName]}.`);\n    return false;\n  }\n\n  [_xfa_object.$onText](str) {\n    if (this[_xfa_object.$content] instanceof _xfa_object.XFAObject) {\n      return;\n    }\n\n    super[_xfa_object.$onText](str);\n  }\n\n  [_xfa_object.$finalize]() {\n    if (typeof this[_xfa_object.$content] === \"string\") {\n      this[_xfa_object.$content] = this[_xfa_object.$content].replace(/\\r\\n/g, \"\\n\");\n    }\n  }\n\n  [_xfa_object.$getExtra]() {\n    if (typeof this[_xfa_object.$content] === \"string\") {\n      return this[_xfa_object.$content].split(/[\\u2029\\u2028\\n]/).reduce((acc, line) => {\n        if (line) {\n          acc.push(line);\n        }\n\n        return acc;\n      }, []).join(\"\\n\");\n    }\n\n    return this[_xfa_object.$content][_xfa_object.$text]();\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    if (typeof this[_xfa_object.$content] === \"string\") {\n      const html = valueToHtml(this[_xfa_object.$content]).html;\n\n      if (this[_xfa_object.$content].includes(\"\\u2029\")) {\n        html.name = \"div\";\n        html.children = [];\n\n        this[_xfa_object.$content].split(\"\\u2029\").map(para => para.split(/[\\u2028\\n]/).reduce((acc, line) => {\n          acc.push({\n            name: \"span\",\n            value: line\n          }, {\n            name: \"br\"\n          });\n          return acc;\n        }, [])).forEach(lines => {\n          html.children.push({\n            name: \"p\",\n            children: lines\n          });\n        });\n      } else if (/[\\u2028\\n]/.test(this[_xfa_object.$content])) {\n        html.name = \"div\";\n        html.children = [];\n\n        this[_xfa_object.$content].split(/[\\u2028\\n]/).forEach(line => {\n          html.children.push({\n            name: \"span\",\n            value: line\n          }, {\n            name: \"br\"\n          });\n        });\n      }\n\n      return _utils.HTMLResult.success(html);\n    }\n\n    return this[_xfa_object.$content][_xfa_object.$toHTML](availableSpace);\n  }\n\n}\n\nexports.Text = Text;\n\nclass TextEdit extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"textEdit\", true);\n    this.allowRichText = (0, _utils.getInteger)({\n      data: attributes.allowRichText,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.hScrollPolicy = (0, _utils.getStringOption)(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n    this.id = attributes.id || \"\";\n    this.multiLine = (0, _utils.getInteger)({\n      data: attributes.multiLine,\n      defaultValue: \"\",\n      validate: x => x === 0 || x === 1\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.vScrollPolicy = (0, _utils.getStringOption)(attributes.vScrollPolicy, [\"auto\", \"off\", \"on\"]);\n    this.border = null;\n    this.comb = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const style = (0, _html_utils.toStyle)(this, \"border\", \"font\", \"margin\");\n    let html;\n\n    const field = this[_xfa_object.$getParent]()[_xfa_object.$getParent]();\n\n    if (this.multiLine === \"\") {\n      this.multiLine = field instanceof Draw ? 1 : 0;\n    }\n\n    if (this.multiLine === 1) {\n      html = {\n        name: \"textarea\",\n        attributes: {\n          dataId: field[_xfa_object.$data] && field[_xfa_object.$data][_xfa_object.$uid] || field[_xfa_object.$uid],\n          fieldId: field[_xfa_object.$uid],\n          class: [\"xfaTextfield\"],\n          style,\n          \"aria-label\": ariaLabel(field),\n          \"aria-required\": false\n        }\n      };\n    } else {\n      html = {\n        name: \"input\",\n        attributes: {\n          type: \"text\",\n          dataId: field[_xfa_object.$data] && field[_xfa_object.$data][_xfa_object.$uid] || field[_xfa_object.$uid],\n          fieldId: field[_xfa_object.$uid],\n          class: [\"xfaTextfield\"],\n          style,\n          \"aria-label\": ariaLabel(field),\n          \"aria-required\": false\n        }\n      };\n    }\n\n    if (isRequired(field)) {\n      html.attributes[\"aria-required\"] = true;\n      html.attributes.required = true;\n    }\n\n    return _utils.HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"]\n      },\n      children: [html]\n    });\n  }\n\n}\n\nclass Time extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"time\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    const date = this[_xfa_object.$content].trim();\n\n    this[_xfa_object.$content] = date ? new Date(date) : null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return valueToHtml(this[_xfa_object.$content] ? this[_xfa_object.$content].toString() : \"\");\n  }\n\n}\n\nclass TimeStamp extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"timeStamp\");\n    this.id = attributes.id || \"\";\n    this.server = attributes.server || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass ToolTip extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"toolTip\");\n    this.id = attributes.id || \"\";\n    this.rid = attributes.rid || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Traversal extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"traversal\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.traverse = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Traverse extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"traverse\", true);\n    this.id = attributes.id || \"\";\n    this.operation = (0, _utils.getStringOption)(attributes.operation, [\"next\", \"back\", \"down\", \"first\", \"left\", \"right\", \"up\"]);\n    this.ref = attributes.ref || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.script = null;\n  }\n\n  get name() {\n    return this.operation;\n  }\n\n  [_xfa_object.$isTransparent]() {\n    return false;\n  }\n\n}\n\nclass Ui extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"ui\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.picture = null;\n    this.barcode = null;\n    this.button = null;\n    this.checkButton = null;\n    this.choiceList = null;\n    this.dateTimeEdit = null;\n    this.defaultUi = null;\n    this.imageEdit = null;\n    this.numericEdit = null;\n    this.passwordEdit = null;\n    this.signature = null;\n    this.textEdit = null;\n  }\n\n  [_xfa_object.$getExtra]() {\n    if (this[_xfa_object.$extra] === undefined) {\n      for (const name of Object.getOwnPropertyNames(this)) {\n        if (name === \"extras\" || name === \"picture\") {\n          continue;\n        }\n\n        const obj = this[name];\n\n        if (!(obj instanceof _xfa_object.XFAObject)) {\n          continue;\n        }\n\n        this[_xfa_object.$extra] = obj;\n        return obj;\n      }\n\n      this[_xfa_object.$extra] = null;\n    }\n\n    return this[_xfa_object.$extra];\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const obj = this[_xfa_object.$getExtra]();\n\n    if (obj) {\n      return obj[_xfa_object.$toHTML](availableSpace);\n    }\n\n    return _utils.HTMLResult.EMPTY;\n  }\n\n}\n\nclass Validate extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"validate\", true);\n    this.formatTest = (0, _utils.getStringOption)(attributes.formatTest, [\"warning\", \"disabled\", \"error\"]);\n    this.id = attributes.id || \"\";\n    this.nullTest = (0, _utils.getStringOption)(attributes.nullTest, [\"disabled\", \"error\", \"warning\"]);\n    this.scriptTest = (0, _utils.getStringOption)(attributes.scriptTest, [\"error\", \"disabled\", \"warning\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.message = null;\n    this.picture = null;\n    this.script = null;\n  }\n\n}\n\nclass Value extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"value\", true);\n    this.id = attributes.id || \"\";\n    this.override = (0, _utils.getInteger)({\n      data: attributes.override,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.arc = null;\n    this.boolean = null;\n    this.date = null;\n    this.dateTime = null;\n    this.decimal = null;\n    this.exData = null;\n    this.float = null;\n    this.image = null;\n    this.integer = null;\n    this.line = null;\n    this.rectangle = null;\n    this.text = null;\n    this.time = null;\n  }\n\n  [_xfa_object.$setValue](value) {\n    const parent = this[_xfa_object.$getParent]();\n\n    if (parent instanceof Field) {\n      if (parent.ui && parent.ui.imageEdit) {\n        if (!this.image) {\n          this.image = new Image({});\n\n          this[_xfa_object.$appendChild](this.image);\n        }\n\n        this.image[_xfa_object.$content] = value[_xfa_object.$content];\n        return;\n      }\n    }\n\n    const valueName = value[_xfa_object.$nodeName];\n\n    if (this[valueName] !== null) {\n      this[valueName][_xfa_object.$content] = value[_xfa_object.$content];\n      return;\n    }\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      const obj = this[name];\n\n      if (obj instanceof _xfa_object.XFAObject) {\n        this[name] = null;\n\n        this[_xfa_object.$removeChild](obj);\n      }\n    }\n\n    this[value[_xfa_object.$nodeName]] = value;\n\n    this[_xfa_object.$appendChild](value);\n  }\n\n  [_xfa_object.$text]() {\n    if (this.exData) {\n      if (typeof this.exData[_xfa_object.$content] === \"string\") {\n        return this.exData[_xfa_object.$content].trim();\n      }\n\n      return this.exData[_xfa_object.$content][_xfa_object.$text]().trim();\n    }\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (name === \"image\") {\n        continue;\n      }\n\n      const obj = this[name];\n\n      if (obj instanceof _xfa_object.XFAObject) {\n        return (obj[_xfa_object.$content] || \"\").toString().trim();\n      }\n    }\n\n    return null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    for (const name of Object.getOwnPropertyNames(this)) {\n      const obj = this[name];\n\n      if (!(obj instanceof _xfa_object.XFAObject)) {\n        continue;\n      }\n\n      return obj[_xfa_object.$toHTML](availableSpace);\n    }\n\n    return _utils.HTMLResult.EMPTY;\n  }\n\n}\n\nexports.Value = Value;\n\nclass Variables extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"variables\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new _xfa_object.XFAObjectArray();\n    this.date = new _xfa_object.XFAObjectArray();\n    this.dateTime = new _xfa_object.XFAObjectArray();\n    this.decimal = new _xfa_object.XFAObjectArray();\n    this.exData = new _xfa_object.XFAObjectArray();\n    this.float = new _xfa_object.XFAObjectArray();\n    this.image = new _xfa_object.XFAObjectArray();\n    this.integer = new _xfa_object.XFAObjectArray();\n    this.manifest = new _xfa_object.XFAObjectArray();\n    this.script = new _xfa_object.XFAObjectArray();\n    this.text = new _xfa_object.XFAObjectArray();\n    this.time = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$isTransparent]() {\n    return true;\n  }\n\n}\n\nclass TemplateNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (TemplateNamespace.hasOwnProperty(name)) {\n      const node = TemplateNamespace[name](attributes);\n\n      node[_xfa_object.$setSetAttributes](attributes);\n\n      return node;\n    }\n\n    return undefined;\n  }\n\n  static appearanceFilter(attrs) {\n    return new AppearanceFilter(attrs);\n  }\n\n  static arc(attrs) {\n    return new Arc(attrs);\n  }\n\n  static area(attrs) {\n    return new Area(attrs);\n  }\n\n  static assist(attrs) {\n    return new Assist(attrs);\n  }\n\n  static barcode(attrs) {\n    return new Barcode(attrs);\n  }\n\n  static bind(attrs) {\n    return new Bind(attrs);\n  }\n\n  static bindItems(attrs) {\n    return new BindItems(attrs);\n  }\n\n  static bookend(attrs) {\n    return new Bookend(attrs);\n  }\n\n  static boolean(attrs) {\n    return new BooleanElement(attrs);\n  }\n\n  static border(attrs) {\n    return new Border(attrs);\n  }\n\n  static break(attrs) {\n    return new Break(attrs);\n  }\n\n  static breakAfter(attrs) {\n    return new BreakAfter(attrs);\n  }\n\n  static breakBefore(attrs) {\n    return new BreakBefore(attrs);\n  }\n\n  static button(attrs) {\n    return new Button(attrs);\n  }\n\n  static calculate(attrs) {\n    return new Calculate(attrs);\n  }\n\n  static caption(attrs) {\n    return new Caption(attrs);\n  }\n\n  static certificate(attrs) {\n    return new Certificate(attrs);\n  }\n\n  static certificates(attrs) {\n    return new Certificates(attrs);\n  }\n\n  static checkButton(attrs) {\n    return new CheckButton(attrs);\n  }\n\n  static choiceList(attrs) {\n    return new ChoiceList(attrs);\n  }\n\n  static color(attrs) {\n    return new Color(attrs);\n  }\n\n  static comb(attrs) {\n    return new Comb(attrs);\n  }\n\n  static connect(attrs) {\n    return new Connect(attrs);\n  }\n\n  static contentArea(attrs) {\n    return new ContentArea(attrs);\n  }\n\n  static corner(attrs) {\n    return new Corner(attrs);\n  }\n\n  static date(attrs) {\n    return new DateElement(attrs);\n  }\n\n  static dateTime(attrs) {\n    return new DateTime(attrs);\n  }\n\n  static dateTimeEdit(attrs) {\n    return new DateTimeEdit(attrs);\n  }\n\n  static decimal(attrs) {\n    return new Decimal(attrs);\n  }\n\n  static defaultUi(attrs) {\n    return new DefaultUi(attrs);\n  }\n\n  static desc(attrs) {\n    return new Desc(attrs);\n  }\n\n  static digestMethod(attrs) {\n    return new DigestMethod(attrs);\n  }\n\n  static digestMethods(attrs) {\n    return new DigestMethods(attrs);\n  }\n\n  static draw(attrs) {\n    return new Draw(attrs);\n  }\n\n  static edge(attrs) {\n    return new Edge(attrs);\n  }\n\n  static encoding(attrs) {\n    return new Encoding(attrs);\n  }\n\n  static encodings(attrs) {\n    return new Encodings(attrs);\n  }\n\n  static encrypt(attrs) {\n    return new Encrypt(attrs);\n  }\n\n  static encryptData(attrs) {\n    return new EncryptData(attrs);\n  }\n\n  static encryption(attrs) {\n    return new Encryption(attrs);\n  }\n\n  static encryptionMethod(attrs) {\n    return new EncryptionMethod(attrs);\n  }\n\n  static encryptionMethods(attrs) {\n    return new EncryptionMethods(attrs);\n  }\n\n  static event(attrs) {\n    return new Event(attrs);\n  }\n\n  static exData(attrs) {\n    return new ExData(attrs);\n  }\n\n  static exObject(attrs) {\n    return new ExObject(attrs);\n  }\n\n  static exclGroup(attrs) {\n    return new ExclGroup(attrs);\n  }\n\n  static execute(attrs) {\n    return new Execute(attrs);\n  }\n\n  static extras(attrs) {\n    return new Extras(attrs);\n  }\n\n  static field(attrs) {\n    return new Field(attrs);\n  }\n\n  static fill(attrs) {\n    return new Fill(attrs);\n  }\n\n  static filter(attrs) {\n    return new Filter(attrs);\n  }\n\n  static float(attrs) {\n    return new Float(attrs);\n  }\n\n  static font(attrs) {\n    return new Font(attrs);\n  }\n\n  static format(attrs) {\n    return new Format(attrs);\n  }\n\n  static handler(attrs) {\n    return new Handler(attrs);\n  }\n\n  static hyphenation(attrs) {\n    return new Hyphenation(attrs);\n  }\n\n  static image(attrs) {\n    return new Image(attrs);\n  }\n\n  static imageEdit(attrs) {\n    return new ImageEdit(attrs);\n  }\n\n  static integer(attrs) {\n    return new Integer(attrs);\n  }\n\n  static issuers(attrs) {\n    return new Issuers(attrs);\n  }\n\n  static items(attrs) {\n    return new Items(attrs);\n  }\n\n  static keep(attrs) {\n    return new Keep(attrs);\n  }\n\n  static keyUsage(attrs) {\n    return new KeyUsage(attrs);\n  }\n\n  static line(attrs) {\n    return new Line(attrs);\n  }\n\n  static linear(attrs) {\n    return new Linear(attrs);\n  }\n\n  static lockDocument(attrs) {\n    return new LockDocument(attrs);\n  }\n\n  static manifest(attrs) {\n    return new Manifest(attrs);\n  }\n\n  static margin(attrs) {\n    return new Margin(attrs);\n  }\n\n  static mdp(attrs) {\n    return new Mdp(attrs);\n  }\n\n  static medium(attrs) {\n    return new Medium(attrs);\n  }\n\n  static message(attrs) {\n    return new Message(attrs);\n  }\n\n  static numericEdit(attrs) {\n    return new NumericEdit(attrs);\n  }\n\n  static occur(attrs) {\n    return new Occur(attrs);\n  }\n\n  static oid(attrs) {\n    return new Oid(attrs);\n  }\n\n  static oids(attrs) {\n    return new Oids(attrs);\n  }\n\n  static overflow(attrs) {\n    return new Overflow(attrs);\n  }\n\n  static pageArea(attrs) {\n    return new PageArea(attrs);\n  }\n\n  static pageSet(attrs) {\n    return new PageSet(attrs);\n  }\n\n  static para(attrs) {\n    return new Para(attrs);\n  }\n\n  static passwordEdit(attrs) {\n    return new PasswordEdit(attrs);\n  }\n\n  static pattern(attrs) {\n    return new Pattern(attrs);\n  }\n\n  static picture(attrs) {\n    return new Picture(attrs);\n  }\n\n  static proto(attrs) {\n    return new Proto(attrs);\n  }\n\n  static radial(attrs) {\n    return new Radial(attrs);\n  }\n\n  static reason(attrs) {\n    return new Reason(attrs);\n  }\n\n  static reasons(attrs) {\n    return new Reasons(attrs);\n  }\n\n  static rectangle(attrs) {\n    return new Rectangle(attrs);\n  }\n\n  static ref(attrs) {\n    return new RefElement(attrs);\n  }\n\n  static script(attrs) {\n    return new Script(attrs);\n  }\n\n  static setProperty(attrs) {\n    return new SetProperty(attrs);\n  }\n\n  static signData(attrs) {\n    return new SignData(attrs);\n  }\n\n  static signature(attrs) {\n    return new Signature(attrs);\n  }\n\n  static signing(attrs) {\n    return new Signing(attrs);\n  }\n\n  static solid(attrs) {\n    return new Solid(attrs);\n  }\n\n  static speak(attrs) {\n    return new Speak(attrs);\n  }\n\n  static stipple(attrs) {\n    return new Stipple(attrs);\n  }\n\n  static subform(attrs) {\n    return new Subform(attrs);\n  }\n\n  static subformSet(attrs) {\n    return new SubformSet(attrs);\n  }\n\n  static subjectDN(attrs) {\n    return new SubjectDN(attrs);\n  }\n\n  static subjectDNs(attrs) {\n    return new SubjectDNs(attrs);\n  }\n\n  static submit(attrs) {\n    return new Submit(attrs);\n  }\n\n  static template(attrs) {\n    return new Template(attrs);\n  }\n\n  static text(attrs) {\n    return new Text(attrs);\n  }\n\n  static textEdit(attrs) {\n    return new TextEdit(attrs);\n  }\n\n  static time(attrs) {\n    return new Time(attrs);\n  }\n\n  static timeStamp(attrs) {\n    return new TimeStamp(attrs);\n  }\n\n  static toolTip(attrs) {\n    return new ToolTip(attrs);\n  }\n\n  static traversal(attrs) {\n    return new Traversal(attrs);\n  }\n\n  static traverse(attrs) {\n    return new Traverse(attrs);\n  }\n\n  static ui(attrs) {\n    return new Ui(attrs);\n  }\n\n  static validate(attrs) {\n    return new Validate(attrs);\n  }\n\n  static value(attrs) {\n    return new Value(attrs);\n  }\n\n  static variables(attrs) {\n    return new Variables(attrs);\n  }\n\n}\n\nexports.TemplateNamespace = TemplateNamespace;\n\n/***/ }),\n/* 208 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.addHTML = addHTML;\nexports.checkDimensions = checkDimensions;\nexports.flushHTML = flushHTML;\nexports.getAvailableSpace = getAvailableSpace;\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nvar _html_utils = __w_pdfjs_require__(209);\n\nfunction createLine(node, children) {\n  return {\n    name: \"div\",\n    attributes: {\n      class: [node.layout === \"lr-tb\" ? \"xfaLr\" : \"xfaRl\"]\n    },\n    children\n  };\n}\n\nfunction flushHTML(node) {\n  if (!node[_xfa_object.$extra]) {\n    return null;\n  }\n\n  const attributes = node[_xfa_object.$extra].attributes;\n  const html = {\n    name: \"div\",\n    attributes,\n    children: node[_xfa_object.$extra].children\n  };\n\n  if (node[_xfa_object.$extra].failingNode) {\n    const htmlFromFailing = node[_xfa_object.$extra].failingNode[_xfa_object.$flushHTML]();\n\n    if (htmlFromFailing) {\n      if (node.layout.endsWith(\"-tb\")) {\n        html.children.push(createLine(node, [htmlFromFailing]));\n      } else {\n        html.children.push(htmlFromFailing);\n      }\n    }\n  }\n\n  if (html.children.length === 0) {\n    return null;\n  }\n\n  return html;\n}\n\nfunction addHTML(node, html, bbox) {\n  const extra = node[_xfa_object.$extra];\n  const availableSpace = extra.availableSpace;\n  const [x, y, w, h] = bbox;\n\n  switch (node.layout) {\n    case \"position\":\n      {\n        extra.width = Math.max(extra.width, x + w);\n        extra.height = Math.max(extra.height, y + h);\n        extra.children.push(html);\n        break;\n      }\n\n    case \"lr-tb\":\n    case \"rl-tb\":\n      if (!extra.line || extra.attempt === 1) {\n        extra.line = createLine(node, []);\n        extra.children.push(extra.line);\n        extra.numberInLine = 0;\n      }\n\n      extra.numberInLine += 1;\n      extra.line.children.push(html);\n\n      if (extra.attempt === 0) {\n        extra.currentWidth += w;\n        extra.height = Math.max(extra.height, extra.prevHeight + h);\n      } else {\n        extra.currentWidth = w;\n        extra.prevHeight = extra.height;\n        extra.height += h;\n        extra.attempt = 0;\n      }\n\n      extra.width = Math.max(extra.width, extra.currentWidth);\n      break;\n\n    case \"rl-row\":\n    case \"row\":\n      {\n        extra.children.push(html);\n        extra.width += w;\n        extra.height = Math.max(extra.height, h);\n        const height = (0, _html_utils.measureToString)(extra.height);\n\n        for (const child of extra.children) {\n          child.attributes.style.height = height;\n        }\n\n        break;\n      }\n\n    case \"table\":\n      {\n        extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n        extra.height += h;\n        extra.children.push(html);\n        break;\n      }\n\n    case \"tb\":\n      {\n        extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n        extra.height += h;\n        extra.children.push(html);\n        break;\n      }\n  }\n}\n\nfunction getAvailableSpace(node) {\n  const availableSpace = node[_xfa_object.$extra].availableSpace;\n  const marginV = node.margin ? node.margin.topInset + node.margin.bottomInset : 0;\n  const marginH = node.margin ? node.margin.leftInset + node.margin.rightInset : 0;\n\n  switch (node.layout) {\n    case \"lr-tb\":\n    case \"rl-tb\":\n      if (node[_xfa_object.$extra].attempt === 0) {\n        return {\n          width: availableSpace.width - marginH - node[_xfa_object.$extra].currentWidth,\n          height: availableSpace.height - marginV - node[_xfa_object.$extra].prevHeight\n        };\n      }\n\n      return {\n        width: availableSpace.width - marginH,\n        height: availableSpace.height - marginV - node[_xfa_object.$extra].height\n      };\n\n    case \"rl-row\":\n    case \"row\":\n      const width = node[_xfa_object.$extra].columnWidths.slice(node[_xfa_object.$extra].currentColumn).reduce((a, x) => a + x);\n\n      return {\n        width,\n        height: availableSpace.height - marginH\n      };\n\n    case \"table\":\n    case \"tb\":\n      return {\n        width: availableSpace.width - marginH,\n        height: availableSpace.height - marginV - node[_xfa_object.$extra].height\n      };\n\n    case \"position\":\n    default:\n      return availableSpace;\n  }\n}\n\nfunction getTransformedBBox(node) {\n  let w = node.w === \"\" ? NaN : node.w;\n  let h = node.h === \"\" ? NaN : node.h;\n  let [centerX, centerY] = [0, 0];\n\n  switch (node.anchorType || \"\") {\n    case \"bottomCenter\":\n      [centerX, centerY] = [w / 2, h];\n      break;\n\n    case \"bottomLeft\":\n      [centerX, centerY] = [0, h];\n      break;\n\n    case \"bottomRight\":\n      [centerX, centerY] = [w, h];\n      break;\n\n    case \"middleCenter\":\n      [centerX, centerY] = [w / 2, h / 2];\n      break;\n\n    case \"middleLeft\":\n      [centerX, centerY] = [0, h / 2];\n      break;\n\n    case \"middleRight\":\n      [centerX, centerY] = [w, h / 2];\n      break;\n\n    case \"topCenter\":\n      [centerX, centerY] = [w / 2, 0];\n      break;\n\n    case \"topRight\":\n      [centerX, centerY] = [w, 0];\n      break;\n  }\n\n  let x, y;\n\n  switch (node.rotate || 0) {\n    case 0:\n      [x, y] = [-centerX, -centerY];\n      break;\n\n    case 90:\n      [x, y] = [-centerY, centerX];\n      [w, h] = [h, -w];\n      break;\n\n    case 180:\n      [x, y] = [centerX, centerY];\n      [w, h] = [-w, -h];\n      break;\n\n    case 270:\n      [x, y] = [centerY, -centerX];\n      [w, h] = [-h, w];\n      break;\n  }\n\n  return [node.x + x + Math.min(0, w), node.y + y + Math.min(0, h), Math.abs(w), Math.abs(h)];\n}\n\nfunction checkDimensions(node, space) {\n  if (node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].firstUnsplittable === null) {\n    return true;\n  }\n\n  if (node.w === 0 || node.h === 0) {\n    return true;\n  }\n\n  const ERROR = 2;\n\n  const parent = node[_xfa_object.$getSubformParent]();\n\n  const attempt = parent[_xfa_object.$extra] && parent[_xfa_object.$extra].attempt || 0;\n  const [, y, w, h] = getTransformedBBox(node);\n\n  switch (parent.layout) {\n    case \"lr-tb\":\n    case \"rl-tb\":\n      if (attempt === 0) {\n        if (!node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure) {\n          if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n            return false;\n          }\n\n          if (node.w !== \"\") {\n            if (Math.round(w - space.width) <= ERROR) {\n              return true;\n            }\n\n            if (parent[_xfa_object.$extra].numberInLine === 0) {\n              return space.height > ERROR;\n            }\n\n            return false;\n          }\n\n          return space.width > ERROR;\n        }\n\n        if (node.w !== \"\") {\n          return Math.round(w - space.width) <= ERROR;\n        }\n\n        return space.width > ERROR;\n      }\n\n      if (node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure) {\n        return true;\n      }\n\n      if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n        return false;\n      }\n\n      if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n        return space.height > ERROR;\n      }\n\n      if (parent[_xfa_object.$isThereMoreWidth]()) {\n        return false;\n      }\n\n      return space.height > ERROR;\n\n    case \"table\":\n    case \"tb\":\n      if (node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure) {\n        return true;\n      }\n\n      if (node.h !== \"\" && !node[_xfa_object.$isSplittable]()) {\n        return Math.round(h - space.height) <= ERROR;\n      }\n\n      if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n        return space.height > ERROR;\n      }\n\n      if (parent[_xfa_object.$isThereMoreWidth]()) {\n        return false;\n      }\n\n      return space.height > ERROR;\n\n    case \"position\":\n      if (node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure) {\n        return true;\n      }\n\n      if (node.h === \"\" || Math.round(h + y - space.height) <= ERROR) {\n        return true;\n      }\n\n      const area = node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].currentContentArea;\n\n      return h + y > area.h;\n\n    case \"rl-row\":\n    case \"row\":\n      if (node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure) {\n        return true;\n      }\n\n      if (node.h !== \"\") {\n        return Math.round(h - space.height) <= ERROR;\n      }\n\n      return true;\n\n    default:\n      return true;\n  }\n}\n\n/***/ }),\n/* 209 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.computeBbox = computeBbox;\nexports.createWrapper = createWrapper;\nexports.fixDimensions = fixDimensions;\nexports.fixTextIndent = fixTextIndent;\nexports.fixURL = fixURL;\nexports.isPrintOnly = isPrintOnly;\nexports.layoutClass = layoutClass;\nexports.layoutNode = layoutNode;\nexports.measureToString = measureToString;\nexports.setAccess = setAccess;\nexports.setFontFamily = setFontFamily;\nexports.setMinMaxDimensions = setMinMaxDimensions;\nexports.setPara = setPara;\nexports.toStyle = toStyle;\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _utils = __w_pdfjs_require__(203);\n\nvar _fonts = __w_pdfjs_require__(210);\n\nvar _text = __w_pdfjs_require__(211);\n\nfunction measureToString(m) {\n  if (typeof m === \"string\") {\n    return \"0px\";\n  }\n\n  return Number.isInteger(m) ? `${m}px` : `${m.toFixed(2)}px`;\n}\n\nconst converters = {\n  anchorType(node, style) {\n    const parent = node[_xfa_object.$getSubformParent]();\n\n    if (!parent || parent.layout && parent.layout !== \"position\") {\n      return;\n    }\n\n    if (!(\"transform\" in style)) {\n      style.transform = \"\";\n    }\n\n    switch (node.anchorType) {\n      case \"bottomCenter\":\n        style.transform += \"translate(-50%, -100%)\";\n        break;\n\n      case \"bottomLeft\":\n        style.transform += \"translate(0,-100%)\";\n        break;\n\n      case \"bottomRight\":\n        style.transform += \"translate(-100%,-100%)\";\n        break;\n\n      case \"middleCenter\":\n        style.transform += \"translate(-50%,-50%)\";\n        break;\n\n      case \"middleLeft\":\n        style.transform += \"translate(0,-50%)\";\n        break;\n\n      case \"middleRight\":\n        style.transform += \"translate(-100%,-50%)\";\n        break;\n\n      case \"topCenter\":\n        style.transform += \"translate(-50%,0)\";\n        break;\n\n      case \"topRight\":\n        style.transform += \"translate(-100%,0)\";\n        break;\n    }\n  },\n\n  dimensions(node, style) {\n    const parent = node[_xfa_object.$getSubformParent]();\n\n    let width = node.w;\n    const height = node.h;\n\n    if (parent.layout && parent.layout.includes(\"row\")) {\n      const extra = parent[_xfa_object.$extra];\n      const colSpan = node.colSpan;\n      let w;\n\n      if (colSpan === -1) {\n        w = extra.columnWidths.slice(extra.currentColumn).reduce((a, x) => a + x, 0);\n        extra.currentColumn = 0;\n      } else {\n        w = extra.columnWidths.slice(extra.currentColumn, extra.currentColumn + colSpan).reduce((a, x) => a + x, 0);\n        extra.currentColumn = (extra.currentColumn + node.colSpan) % extra.columnWidths.length;\n      }\n\n      if (!isNaN(w)) {\n        width = node.w = w;\n      }\n    }\n\n    if (width !== \"\") {\n      style.width = measureToString(width);\n    } else {\n      style.width = \"auto\";\n    }\n\n    if (height !== \"\") {\n      style.height = measureToString(height);\n    } else {\n      style.height = \"auto\";\n    }\n  },\n\n  position(node, style) {\n    const parent = node[_xfa_object.$getSubformParent]();\n\n    if (parent && parent.layout && parent.layout !== \"position\") {\n      return;\n    }\n\n    style.position = \"absolute\";\n    style.left = measureToString(node.x);\n    style.top = measureToString(node.y);\n  },\n\n  rotate(node, style) {\n    if (node.rotate) {\n      if (!(\"transform\" in style)) {\n        style.transform = \"\";\n      }\n\n      style.transform += `rotate(-${node.rotate}deg)`;\n      style.transformOrigin = \"top left\";\n    }\n  },\n\n  presence(node, style) {\n    switch (node.presence) {\n      case \"invisible\":\n        style.visibility = \"hidden\";\n        break;\n\n      case \"hidden\":\n      case \"inactive\":\n        style.display = \"none\";\n        break;\n    }\n  },\n\n  hAlign(node, style) {\n    if (node[_xfa_object.$nodeName] === \"para\") {\n      switch (node.hAlign) {\n        case \"justifyAll\":\n          style.textAlign = \"justify-all\";\n          break;\n\n        case \"radix\":\n          style.textAlign = \"left\";\n          break;\n\n        default:\n          style.textAlign = node.hAlign;\n      }\n    } else {\n      switch (node.hAlign) {\n        case \"left\":\n          style.alignSelf = \"start\";\n          break;\n\n        case \"center\":\n          style.alignSelf = \"center\";\n          break;\n\n        case \"right\":\n          style.alignSelf = \"end\";\n          break;\n      }\n    }\n  },\n\n  margin(node, style) {\n    if (node.margin) {\n      style.margin = node.margin[_xfa_object.$toStyle]().margin;\n    }\n  }\n\n};\n\nfunction setMinMaxDimensions(node, style) {\n  const parent = node[_xfa_object.$getSubformParent]();\n\n  if (parent.layout === \"position\") {\n    if (node.minW > 0) {\n      style.minWidth = measureToString(node.minW);\n    }\n\n    if (node.maxW > 0) {\n      style.maxWidth = measureToString(node.maxW);\n    }\n\n    if (node.minH > 0) {\n      style.minHeight = measureToString(node.minH);\n    }\n\n    if (node.maxH > 0) {\n      style.maxHeight = measureToString(node.maxH);\n    }\n  }\n}\n\nfunction layoutText(text, xfaFont, margin, lineHeight, fontFinder, width) {\n  const measure = new _text.TextMeasure(xfaFont, margin, lineHeight, fontFinder);\n\n  if (typeof text === \"string\") {\n    measure.addString(text);\n  } else {\n    text[_xfa_object.$pushGlyphs](measure);\n  }\n\n  return measure.compute(width);\n}\n\nfunction layoutNode(node, availableSpace) {\n  let height = null;\n  let width = null;\n  let isBroken = false;\n\n  if ((!node.w || !node.h) && node.value) {\n    let marginH = 0;\n    let marginV = 0;\n\n    if (node.margin) {\n      marginH = node.margin.leftInset + node.margin.rightInset;\n      marginV = node.margin.topInset + node.margin.bottomInset;\n    }\n\n    let lineHeight = null;\n    let margin = null;\n\n    if (node.para) {\n      margin = Object.create(null);\n      lineHeight = node.para.lineHeight === \"\" ? null : node.para.lineHeight;\n      margin.top = node.para.spaceAbove === \"\" ? 0 : node.para.spaceAbove;\n      margin.bottom = node.para.spaceBelow === \"\" ? 0 : node.para.spaceBelow;\n      margin.left = node.para.marginLeft === \"\" ? 0 : node.para.marginLeft;\n      margin.right = node.para.marginRight === \"\" ? 0 : node.para.marginRight;\n    }\n\n    let font = node.font;\n\n    if (!font) {\n      const root = node[_xfa_object.$getTemplateRoot]();\n\n      let parent = node[_xfa_object.$getParent]();\n\n      while (parent && parent !== root) {\n        if (parent.font) {\n          font = parent.font;\n          break;\n        }\n\n        parent = parent[_xfa_object.$getParent]();\n      }\n    }\n\n    const maxWidth = (node.w || availableSpace.width) - marginH;\n    const fontFinder = node[_xfa_object.$globalData].fontFinder;\n\n    if (node.value.exData && node.value.exData[_xfa_object.$content] && node.value.exData.contentType === \"text/html\") {\n      const res = layoutText(node.value.exData[_xfa_object.$content], font, margin, lineHeight, fontFinder, maxWidth);\n      width = res.width;\n      height = res.height;\n      isBroken = res.isBroken;\n    } else {\n      const text = node.value[_xfa_object.$text]();\n\n      if (text) {\n        const res = layoutText(text, font, margin, lineHeight, fontFinder, maxWidth);\n        width = res.width;\n        height = res.height;\n        isBroken = res.isBroken;\n      }\n    }\n\n    if (width !== null && !node.w) {\n      width += marginH;\n    }\n\n    if (height !== null && !node.h) {\n      height += marginV;\n    }\n  }\n\n  return {\n    w: width,\n    h: height,\n    isBroken\n  };\n}\n\nfunction computeBbox(node, html, availableSpace) {\n  let bbox;\n\n  if (node.w !== \"\" && node.h !== \"\") {\n    bbox = [node.x, node.y, node.w, node.h];\n  } else {\n    if (!availableSpace) {\n      return null;\n    }\n\n    let width = node.w;\n\n    if (width === \"\") {\n      if (node.maxW === 0) {\n        const parent = node[_xfa_object.$getSubformParent]();\n\n        if (parent.layout === \"position\" && parent.w !== \"\") {\n          width = 0;\n        } else {\n          width = node.minW;\n        }\n      } else {\n        width = Math.min(node.maxW, availableSpace.width);\n      }\n\n      html.attributes.style.width = measureToString(width);\n    }\n\n    let height = node.h;\n\n    if (height === \"\") {\n      if (node.maxH === 0) {\n        const parent = node[_xfa_object.$getSubformParent]();\n\n        if (parent.layout === \"position\" && parent.h !== \"\") {\n          height = 0;\n        } else {\n          height = node.minH;\n        }\n      } else {\n        height = Math.min(node.maxH, availableSpace.height);\n      }\n\n      html.attributes.style.height = measureToString(height);\n    }\n\n    bbox = [node.x, node.y, width, height];\n  }\n\n  return bbox;\n}\n\nfunction fixDimensions(node) {\n  const parent = node[_xfa_object.$getSubformParent]();\n\n  if (parent.layout && parent.layout.includes(\"row\")) {\n    const extra = parent[_xfa_object.$extra];\n    const colSpan = node.colSpan;\n    let width;\n\n    if (colSpan === -1) {\n      width = extra.columnWidths.slice(extra.currentColumn).reduce((a, w) => a + w, 0);\n    } else {\n      width = extra.columnWidths.slice(extra.currentColumn, extra.currentColumn + colSpan).reduce((a, w) => a + w, 0);\n    }\n\n    if (!isNaN(width)) {\n      node.w = width;\n    }\n  }\n\n  if (parent.layout && parent.layout !== \"position\") {\n    node.x = node.y = 0;\n  }\n\n  if (node.layout === \"table\") {\n    if (node.w === \"\" && Array.isArray(node.columnWidths)) {\n      node.w = node.columnWidths.reduce((a, x) => a + x, 0);\n    }\n  }\n}\n\nfunction layoutClass(node) {\n  switch (node.layout) {\n    case \"position\":\n      return \"xfaPosition\";\n\n    case \"lr-tb\":\n      return \"xfaLrTb\";\n\n    case \"rl-row\":\n      return \"xfaRlRow\";\n\n    case \"rl-tb\":\n      return \"xfaRlTb\";\n\n    case \"row\":\n      return \"xfaRow\";\n\n    case \"table\":\n      return \"xfaTable\";\n\n    case \"tb\":\n      return \"xfaTb\";\n\n    default:\n      return \"xfaPosition\";\n  }\n}\n\nfunction toStyle(node) {\n  const style = Object.create(null);\n\n  for (var _len = arguments.length, names = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    names[_key - 1] = arguments[_key];\n  }\n\n  for (const name of names) {\n    const value = node[name];\n\n    if (value === null) {\n      continue;\n    }\n\n    if (converters.hasOwnProperty(name)) {\n      converters[name](node, style);\n      continue;\n    }\n\n    if (value instanceof _xfa_object.XFAObject) {\n      const newStyle = value[_xfa_object.$toStyle]();\n\n      if (newStyle) {\n        Object.assign(style, newStyle);\n      } else {\n        (0, _util.warn)(`(DEBUG) - XFA - style for ${name} not implemented yet`);\n      }\n    }\n  }\n\n  return style;\n}\n\nfunction createWrapper(node, html) {\n  const {\n    attributes\n  } = html;\n  const {\n    style\n  } = attributes;\n  const wrapper = {\n    name: \"div\",\n    attributes: {\n      class: [\"xfaWrapper\"],\n      style: Object.create(null)\n    },\n    children: []\n  };\n  attributes.class.push(\"xfaWrapped\");\n\n  if (node.border) {\n    const {\n      widths,\n      insets\n    } = node.border[_xfa_object.$extra];\n    let width, height;\n    let top = insets[0];\n    let left = insets[3];\n    const insetsH = insets[0] + insets[2];\n    const insetsW = insets[1] + insets[3];\n\n    switch (node.border.hand) {\n      case \"even\":\n        top -= widths[0] / 2;\n        left -= widths[3] / 2;\n        width = `calc(100% + ${(widths[1] + widths[3]) / 2 - insetsW}px)`;\n        height = `calc(100% + ${(widths[0] + widths[2]) / 2 - insetsH}px)`;\n        break;\n\n      case \"left\":\n        top -= widths[0];\n        left -= widths[3];\n        width = `calc(100% + ${widths[1] + widths[3] - insetsW}px)`;\n        height = `calc(100% + ${widths[0] + widths[2] - insetsH}px)`;\n        break;\n\n      case \"right\":\n        width = insetsW ? `calc(100% - ${insetsW}px)` : \"100%\";\n        height = insetsH ? `calc(100% - ${insetsH}px)` : \"100%\";\n        break;\n    }\n\n    const classNames = [\"xfaBorder\"];\n\n    if (isPrintOnly(node.border)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n\n    const border = {\n      name: \"div\",\n      attributes: {\n        class: classNames,\n        style: {\n          top: `${top}px`,\n          left: `${left}px`,\n          width,\n          height\n        }\n      },\n      children: []\n    };\n\n    for (const key of [\"border\", \"borderWidth\", \"borderColor\", \"borderRadius\", \"borderStyle\"]) {\n      if (style[key] !== undefined) {\n        border.attributes.style[key] = style[key];\n        delete style[key];\n      }\n    }\n\n    wrapper.children.push(border, html);\n  } else {\n    wrapper.children.push(html);\n  }\n\n  for (const key of [\"background\", \"backgroundClip\", \"top\", \"left\", \"width\", \"height\", \"minWidth\", \"minHeight\", \"maxWidth\", \"maxHeight\", \"transform\", \"transformOrigin\", \"visibility\"]) {\n    if (style[key] !== undefined) {\n      wrapper.attributes.style[key] = style[key];\n      delete style[key];\n    }\n  }\n\n  if (style.position === \"absolute\") {\n    wrapper.attributes.style.position = \"absolute\";\n  } else {\n    wrapper.attributes.style.position = \"relative\";\n  }\n\n  delete style.position;\n\n  if (style.alignSelf) {\n    wrapper.attributes.style.alignSelf = style.alignSelf;\n    delete style.alignSelf;\n  }\n\n  return wrapper;\n}\n\nfunction fixTextIndent(styles) {\n  const indent = (0, _utils.getMeasurement)(styles.textIndent, \"0px\");\n\n  if (indent >= 0) {\n    return;\n  }\n\n  const align = styles.textAlign === \"right\" ? \"right\" : \"left\";\n  const name = \"padding\" + (align === \"left\" ? \"Left\" : \"Right\");\n  const padding = (0, _utils.getMeasurement)(styles[name], \"0px\");\n  styles[name] = `${padding - indent}px`;\n}\n\nfunction setAccess(node, classNames) {\n  switch (node.access) {\n    case \"nonInteractive\":\n      classNames.push(\"xfaNonInteractive\");\n      break;\n\n    case \"readOnly\":\n      classNames.push(\"xfaReadOnly\");\n      break;\n\n    case \"protected\":\n      classNames.push(\"xfaDisabled\");\n      break;\n  }\n}\n\nfunction isPrintOnly(node) {\n  return node.relevant.length > 0 && !node.relevant[0].excluded && node.relevant[0].viewname === \"print\";\n}\n\nfunction getCurrentPara(node) {\n  const stack = node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].paraStack;\n\n  return stack.length ? stack.at(-1) : null;\n}\n\nfunction setPara(node, nodeStyle, value) {\n  if (value.attributes.class && value.attributes.class.includes(\"xfaRich\")) {\n    if (nodeStyle) {\n      if (node.h === \"\") {\n        nodeStyle.height = \"auto\";\n      }\n\n      if (node.w === \"\") {\n        nodeStyle.width = \"auto\";\n      }\n    }\n\n    const para = getCurrentPara(node);\n\n    if (para) {\n      const valueStyle = value.attributes.style;\n      valueStyle.display = \"flex\";\n      valueStyle.flexDirection = \"column\";\n\n      switch (para.vAlign) {\n        case \"top\":\n          valueStyle.justifyContent = \"start\";\n          break;\n\n        case \"bottom\":\n          valueStyle.justifyContent = \"end\";\n          break;\n\n        case \"middle\":\n          valueStyle.justifyContent = \"center\";\n          break;\n      }\n\n      const paraStyle = para[_xfa_object.$toStyle]();\n\n      for (const [key, val] of Object.entries(paraStyle)) {\n        if (!(key in valueStyle)) {\n          valueStyle[key] = val;\n        }\n      }\n    }\n  }\n}\n\nfunction setFontFamily(xfaFont, node, fontFinder, style) {\n  if (!fontFinder) {\n    delete style.fontFamily;\n    return;\n  }\n\n  const name = (0, _utils.stripQuotes)(xfaFont.typeface);\n  style.fontFamily = `\"${name}\"`;\n  const typeface = fontFinder.find(name);\n\n  if (typeface) {\n    const {\n      fontFamily\n    } = typeface.regular.cssFontInfo;\n\n    if (fontFamily !== name) {\n      style.fontFamily = `\"${fontFamily}\"`;\n    }\n\n    const para = getCurrentPara(node);\n\n    if (para && para.lineHeight !== \"\") {\n      return;\n    }\n\n    if (style.lineHeight) {\n      return;\n    }\n\n    const pdfFont = (0, _fonts.selectFont)(xfaFont, typeface);\n\n    if (pdfFont) {\n      style.lineHeight = Math.max(1.2, pdfFont.lineHeight);\n    }\n  }\n}\n\nfunction fixURL(str) {\n  const absoluteUrl = (0, _util.createValidAbsoluteUrl)(str, null, {\n    addDefaultProtocol: true,\n    tryConvertEncoding: true\n  });\n  return absoluteUrl ? absoluteUrl.href : null;\n}\n\n/***/ }),\n/* 210 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.FontFinder = void 0;\nexports.getMetrics = getMetrics;\nexports.selectFont = selectFont;\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nvar _utils = __w_pdfjs_require__(203);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass FontFinder {\n  constructor(pdfFonts) {\n    this.fonts = new Map();\n    this.cache = new Map();\n    this.warned = new Set();\n    this.defaultFont = null;\n    this.add(pdfFonts);\n  }\n\n  add(pdfFonts) {\n    let reallyMissingFonts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n    for (const pdfFont of pdfFonts) {\n      this.addPdfFont(pdfFont);\n    }\n\n    for (const pdfFont of this.fonts.values()) {\n      if (!pdfFont.regular) {\n        pdfFont.regular = pdfFont.italic || pdfFont.bold || pdfFont.bolditalic;\n      }\n    }\n\n    if (!reallyMissingFonts || reallyMissingFonts.size === 0) {\n      return;\n    }\n\n    const myriad = this.fonts.get(\"PdfJS-Fallback-PdfJS-XFA\");\n\n    for (const missing of reallyMissingFonts) {\n      this.fonts.set(missing, myriad);\n    }\n  }\n\n  addPdfFont(pdfFont) {\n    const cssFontInfo = pdfFont.cssFontInfo;\n    const name = cssFontInfo.fontFamily;\n    let font = this.fonts.get(name);\n\n    if (!font) {\n      font = Object.create(null);\n      this.fonts.set(name, font);\n\n      if (!this.defaultFont) {\n        this.defaultFont = font;\n      }\n    }\n\n    let property = \"\";\n    const fontWeight = parseFloat(cssFontInfo.fontWeight);\n\n    if (parseFloat(cssFontInfo.italicAngle) !== 0) {\n      property = fontWeight >= 700 ? \"bolditalic\" : \"italic\";\n    } else if (fontWeight >= 700) {\n      property = \"bold\";\n    }\n\n    if (!property) {\n      if (pdfFont.name.includes(\"Bold\") || pdfFont.psName && pdfFont.psName.includes(\"Bold\")) {\n        property = \"bold\";\n      }\n\n      if (pdfFont.name.includes(\"Italic\") || pdfFont.name.endsWith(\"It\") || pdfFont.psName && (pdfFont.psName.includes(\"Italic\") || pdfFont.psName.endsWith(\"It\"))) {\n        property += \"italic\";\n      }\n    }\n\n    if (!property) {\n      property = \"regular\";\n    }\n\n    font[property] = pdfFont;\n  }\n\n  getDefault() {\n    return this.defaultFont;\n  }\n\n  find(fontName) {\n    let mustWarn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    let font = this.fonts.get(fontName) || this.cache.get(fontName);\n\n    if (font) {\n      return font;\n    }\n\n    const pattern = /,|-|_| |bolditalic|bold|italic|regular|it/gi;\n    let name = fontName.replace(pattern, \"\");\n    font = this.fonts.get(name);\n\n    if (font) {\n      this.cache.set(fontName, font);\n      return font;\n    }\n\n    name = name.toLowerCase();\n    const maybe = [];\n\n    for (const [family, pdfFont] of this.fonts.entries()) {\n      if (family.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n        maybe.push(pdfFont);\n      }\n    }\n\n    if (maybe.length === 0) {\n      for (const [, pdfFont] of this.fonts.entries()) {\n        if (pdfFont.regular.name && pdfFont.regular.name.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n          maybe.push(pdfFont);\n        }\n      }\n    }\n\n    if (maybe.length === 0) {\n      name = name.replace(/psmt|mt/gi, \"\");\n\n      for (const [family, pdfFont] of this.fonts.entries()) {\n        if (family.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n          maybe.push(pdfFont);\n        }\n      }\n    }\n\n    if (maybe.length === 0) {\n      for (const pdfFont of this.fonts.values()) {\n        if (pdfFont.regular.name && pdfFont.regular.name.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n          maybe.push(pdfFont);\n        }\n      }\n    }\n\n    if (maybe.length >= 1) {\n      if (maybe.length !== 1 && mustWarn) {\n        (0, _util.warn)(`XFA - Too many choices to guess the correct font: ${fontName}`);\n      }\n\n      this.cache.set(fontName, maybe[0]);\n      return maybe[0];\n    }\n\n    if (mustWarn && !this.warned.has(fontName)) {\n      this.warned.add(fontName);\n      (0, _util.warn)(`XFA - Cannot find the font: ${fontName}`);\n    }\n\n    return null;\n  }\n\n}\n\nexports.FontFinder = FontFinder;\n\nfunction selectFont(xfaFont, typeface) {\n  if (xfaFont.posture === \"italic\") {\n    if (xfaFont.weight === \"bold\") {\n      return typeface.bolditalic;\n    }\n\n    return typeface.italic;\n  } else if (xfaFont.weight === \"bold\") {\n    return typeface.bold;\n  }\n\n  return typeface.regular;\n}\n\nfunction getMetrics(xfaFont) {\n  let real = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  let pdfFont = null;\n\n  if (xfaFont) {\n    const name = (0, _utils.stripQuotes)(xfaFont.typeface);\n\n    const typeface = xfaFont[_xfa_object.$globalData].fontFinder.find(name);\n\n    pdfFont = selectFont(xfaFont, typeface);\n  }\n\n  if (!pdfFont) {\n    return {\n      lineHeight: 12,\n      lineGap: 2,\n      lineNoGap: 10\n    };\n  }\n\n  const size = xfaFont.size || 10;\n  const lineHeight = pdfFont.lineHeight ? Math.max(real ? 0 : 1.2, pdfFont.lineHeight) : 1.2;\n  const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n  return {\n    lineHeight: lineHeight * size,\n    lineGap: lineGap * size,\n    lineNoGap: Math.max(1, lineHeight - lineGap) * size\n  };\n}\n\n/***/ }),\n/* 211 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.TextMeasure = void 0;\n\nvar _fonts = __w_pdfjs_require__(210);\n\nconst WIDTH_FACTOR = 1.02;\n\nclass FontInfo {\n  constructor(xfaFont, margin, lineHeight, fontFinder) {\n    this.lineHeight = lineHeight;\n    this.paraMargin = margin || {\n      top: 0,\n      bottom: 0,\n      left: 0,\n      right: 0\n    };\n\n    if (!xfaFont) {\n      [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n      return;\n    }\n\n    this.xfaFont = {\n      typeface: xfaFont.typeface,\n      posture: xfaFont.posture,\n      weight: xfaFont.weight,\n      size: xfaFont.size,\n      letterSpacing: xfaFont.letterSpacing\n    };\n    const typeface = fontFinder.find(xfaFont.typeface);\n\n    if (!typeface) {\n      [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n      return;\n    }\n\n    this.pdfFont = (0, _fonts.selectFont)(xfaFont, typeface);\n\n    if (!this.pdfFont) {\n      [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n    }\n  }\n\n  defaultFont(fontFinder) {\n    const font = fontFinder.find(\"Helvetica\", false) || fontFinder.find(\"Myriad Pro\", false) || fontFinder.find(\"Arial\", false) || fontFinder.getDefault();\n\n    if (font && font.regular) {\n      const pdfFont = font.regular;\n      const info = pdfFont.cssFontInfo;\n      const xfaFont = {\n        typeface: info.fontFamily,\n        posture: \"normal\",\n        weight: \"normal\",\n        size: 10,\n        letterSpacing: 0\n      };\n      return [pdfFont, xfaFont];\n    }\n\n    const xfaFont = {\n      typeface: \"Courier\",\n      posture: \"normal\",\n      weight: \"normal\",\n      size: 10,\n      letterSpacing: 0\n    };\n    return [null, xfaFont];\n  }\n\n}\n\nclass FontSelector {\n  constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fontFinder) {\n    this.fontFinder = fontFinder;\n    this.stack = [new FontInfo(defaultXfaFont, defaultParaMargin, defaultLineHeight, fontFinder)];\n  }\n\n  pushData(xfaFont, margin, lineHeight) {\n    const lastFont = this.stack.at(-1);\n\n    for (const name of [\"typeface\", \"posture\", \"weight\", \"size\", \"letterSpacing\"]) {\n      if (!xfaFont[name]) {\n        xfaFont[name] = lastFont.xfaFont[name];\n      }\n    }\n\n    for (const name of [\"top\", \"bottom\", \"left\", \"right\"]) {\n      if (isNaN(margin[name])) {\n        margin[name] = lastFont.paraMargin[name];\n      }\n    }\n\n    const fontInfo = new FontInfo(xfaFont, margin, lineHeight || lastFont.lineHeight, this.fontFinder);\n\n    if (!fontInfo.pdfFont) {\n      fontInfo.pdfFont = lastFont.pdfFont;\n    }\n\n    this.stack.push(fontInfo);\n  }\n\n  popFont() {\n    this.stack.pop();\n  }\n\n  topFont() {\n    return this.stack.at(-1);\n  }\n\n}\n\nclass TextMeasure {\n  constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts) {\n    this.glyphs = [];\n    this.fontSelector = new FontSelector(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts);\n    this.extraHeight = 0;\n  }\n\n  pushData(xfaFont, margin, lineHeight) {\n    this.fontSelector.pushData(xfaFont, margin, lineHeight);\n  }\n\n  popFont(xfaFont) {\n    return this.fontSelector.popFont();\n  }\n\n  addPara() {\n    const lastFont = this.fontSelector.topFont();\n    this.extraHeight += lastFont.paraMargin.top + lastFont.paraMargin.bottom;\n  }\n\n  addString(str) {\n    if (!str) {\n      return;\n    }\n\n    const lastFont = this.fontSelector.topFont();\n    const fontSize = lastFont.xfaFont.size;\n\n    if (lastFont.pdfFont) {\n      const letterSpacing = lastFont.xfaFont.letterSpacing;\n      const pdfFont = lastFont.pdfFont;\n      const fontLineHeight = pdfFont.lineHeight || 1.2;\n      const lineHeight = lastFont.lineHeight || Math.max(1.2, fontLineHeight) * fontSize;\n      const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n      const noGap = fontLineHeight - lineGap;\n      const firstLineHeight = Math.max(1, noGap) * fontSize;\n      const scale = fontSize / 1000;\n      const fallbackWidth = pdfFont.defaultWidth || pdfFont.charsToGlyphs(\" \")[0].width;\n\n      for (const line of str.split(/[\\u2029\\n]/)) {\n        const encodedLine = pdfFont.encodeString(line).join(\"\");\n        const glyphs = pdfFont.charsToGlyphs(encodedLine);\n\n        for (const glyph of glyphs) {\n          const width = glyph.width || fallbackWidth;\n          this.glyphs.push([width * scale + letterSpacing, lineHeight, firstLineHeight, glyph.unicode, false]);\n        }\n\n        this.glyphs.push([0, 0, 0, \"\\n\", true]);\n      }\n\n      this.glyphs.pop();\n      return;\n    }\n\n    for (const line of str.split(/[\\u2029\\n]/)) {\n      for (const char of line.split(\"\")) {\n        this.glyphs.push([fontSize, 1.2 * fontSize, fontSize, char, false]);\n      }\n\n      this.glyphs.push([0, 0, 0, \"\\n\", true]);\n    }\n\n    this.glyphs.pop();\n  }\n\n  compute(maxWidth) {\n    let lastSpacePos = -1,\n        lastSpaceWidth = 0,\n        width = 0,\n        height = 0,\n        currentLineWidth = 0,\n        currentLineHeight = 0;\n    let isBroken = false;\n    let isFirstLine = true;\n\n    for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n      const [glyphWidth, lineHeight, firstLineHeight, char, isEOL] = this.glyphs[i];\n      const isSpace = char === \" \";\n      const glyphHeight = isFirstLine ? firstLineHeight : lineHeight;\n\n      if (isEOL) {\n        width = Math.max(width, currentLineWidth);\n        currentLineWidth = 0;\n        height += currentLineHeight;\n        currentLineHeight = glyphHeight;\n        lastSpacePos = -1;\n        lastSpaceWidth = 0;\n        isFirstLine = false;\n        continue;\n      }\n\n      if (isSpace) {\n        if (currentLineWidth + glyphWidth > maxWidth) {\n          width = Math.max(width, currentLineWidth);\n          currentLineWidth = 0;\n          height += currentLineHeight;\n          currentLineHeight = glyphHeight;\n          lastSpacePos = -1;\n          lastSpaceWidth = 0;\n          isBroken = true;\n          isFirstLine = false;\n        } else {\n          currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n          lastSpaceWidth = currentLineWidth;\n          currentLineWidth += glyphWidth;\n          lastSpacePos = i;\n        }\n\n        continue;\n      }\n\n      if (currentLineWidth + glyphWidth > maxWidth) {\n        height += currentLineHeight;\n        currentLineHeight = glyphHeight;\n\n        if (lastSpacePos !== -1) {\n          i = lastSpacePos;\n          width = Math.max(width, lastSpaceWidth);\n          currentLineWidth = 0;\n          lastSpacePos = -1;\n          lastSpaceWidth = 0;\n        } else {\n          width = Math.max(width, currentLineWidth);\n          currentLineWidth = glyphWidth;\n        }\n\n        isBroken = true;\n        isFirstLine = false;\n        continue;\n      }\n\n      currentLineWidth += glyphWidth;\n      currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n    }\n\n    width = Math.max(width, currentLineWidth);\n    height += currentLineHeight + this.extraHeight;\n    return {\n      width: WIDTH_FACTOR * width,\n      height,\n      isBroken\n    };\n  }\n\n}\n\nexports.TextMeasure = TextMeasure;\n\n/***/ }),\n/* 212 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.DataHandler = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nclass DataHandler {\n  constructor(root, data) {\n    this.data = data;\n    this.dataset = root.datasets || null;\n  }\n\n  serialize(storage) {\n    const stack = [[-1, this.data[_xfa_object.$getChildren]()]];\n\n    while (stack.length > 0) {\n      const last = stack.at(-1);\n      const [i, children] = last;\n\n      if (i + 1 === children.length) {\n        stack.pop();\n        continue;\n      }\n\n      const child = children[++last[0]];\n      const storageEntry = storage.get(child[_xfa_object.$uid]);\n\n      if (storageEntry) {\n        child[_xfa_object.$setValue](storageEntry);\n      } else {\n        const attributes = child[_xfa_object.$getAttributes]();\n\n        for (const value of attributes.values()) {\n          const entry = storage.get(value[_xfa_object.$uid]);\n\n          if (entry) {\n            value[_xfa_object.$setValue](entry);\n\n            break;\n          }\n        }\n      }\n\n      const nodes = child[_xfa_object.$getChildren]();\n\n      if (nodes.length > 0) {\n        stack.push([-1, nodes]);\n      }\n    }\n\n    const buf = [`<xfa:datasets xmlns:xfa=\"http://www.xfa.org/schema/xfa-data/1.0/\">`];\n\n    if (this.dataset) {\n      for (const child of this.dataset[_xfa_object.$getChildren]()) {\n        if (child[_xfa_object.$nodeName] !== \"data\") {\n          child[_xfa_object.$toString](buf);\n        }\n      }\n    }\n\n    this.data[_xfa_object.$toString](buf);\n\n    buf.push(\"</xfa:datasets>\");\n    return buf.join(\"\");\n  }\n\n}\n\nexports.DataHandler = DataHandler;\n\n/***/ }),\n/* 213 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XFAParser = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nvar _xml_parser = __w_pdfjs_require__(191);\n\nvar _builder = __w_pdfjs_require__(214);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass XFAParser extends _xml_parser.XMLParserBase {\n  constructor() {\n    let rootNameSpace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    let richText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    super();\n    this._builder = new _builder.Builder(rootNameSpace);\n    this._stack = [];\n    this._globalData = {\n      usedTypefaces: new Set()\n    };\n    this._ids = new Map();\n    this._current = this._builder.buildRoot(this._ids);\n    this._errorCode = _xml_parser.XMLParserErrorCode.NoError;\n    this._whiteRegex = /^\\s+$/;\n    this._nbsps = /\\xa0+/g;\n    this._richText = richText;\n  }\n\n  parse(data) {\n    this.parseXml(data);\n\n    if (this._errorCode !== _xml_parser.XMLParserErrorCode.NoError) {\n      return undefined;\n    }\n\n    this._current[_xfa_object.$finalize]();\n\n    return this._current.element;\n  }\n\n  onText(text) {\n    text = text.replace(this._nbsps, match => match.slice(1) + \" \");\n\n    if (this._richText || this._current[_xfa_object.$acceptWhitespace]()) {\n      this._current[_xfa_object.$onText](text, this._richText);\n\n      return;\n    }\n\n    if (this._whiteRegex.test(text)) {\n      return;\n    }\n\n    this._current[_xfa_object.$onText](text.trim());\n  }\n\n  onCdata(text) {\n    this._current[_xfa_object.$onText](text);\n  }\n\n  _mkAttributes(attributes, tagName) {\n    let namespace = null;\n    let prefixes = null;\n    const attributeObj = Object.create({});\n\n    for (const {\n      name,\n      value\n    } of attributes) {\n      if (name === \"xmlns\") {\n        if (!namespace) {\n          namespace = value;\n        } else {\n          (0, _util.warn)(`XFA - multiple namespace definition in <${tagName}>`);\n        }\n      } else if (name.startsWith(\"xmlns:\")) {\n        const prefix = name.substring(\"xmlns:\".length);\n\n        if (!prefixes) {\n          prefixes = [];\n        }\n\n        prefixes.push({\n          prefix,\n          value\n        });\n      } else {\n        const i = name.indexOf(\":\");\n\n        if (i === -1) {\n          attributeObj[name] = value;\n        } else {\n          let nsAttrs = attributeObj[_xfa_object.$nsAttributes];\n\n          if (!nsAttrs) {\n            nsAttrs = attributeObj[_xfa_object.$nsAttributes] = Object.create(null);\n          }\n\n          const [ns, attrName] = [name.slice(0, i), name.slice(i + 1)];\n          let attrs = nsAttrs[ns];\n\n          if (!attrs) {\n            attrs = nsAttrs[ns] = Object.create(null);\n          }\n\n          attrs[attrName] = value;\n        }\n      }\n    }\n\n    return [namespace, prefixes, attributeObj];\n  }\n\n  _getNameAndPrefix(name, nsAgnostic) {\n    const i = name.indexOf(\":\");\n\n    if (i === -1) {\n      return [name, null];\n    }\n\n    return [name.substring(i + 1), nsAgnostic ? \"\" : name.substring(0, i)];\n  }\n\n  onBeginElement(tagName, attributes, isEmpty) {\n    const [namespace, prefixes, attributesObj] = this._mkAttributes(attributes, tagName);\n\n    const [name, nsPrefix] = this._getNameAndPrefix(tagName, this._builder.isNsAgnostic());\n\n    const node = this._builder.build({\n      nsPrefix,\n      name,\n      attributes: attributesObj,\n      namespace,\n      prefixes\n    });\n\n    node[_xfa_object.$globalData] = this._globalData;\n\n    if (isEmpty) {\n      node[_xfa_object.$finalize]();\n\n      if (this._current[_xfa_object.$onChild](node)) {\n        node[_xfa_object.$setId](this._ids);\n      }\n\n      node[_xfa_object.$clean](this._builder);\n\n      return;\n    }\n\n    this._stack.push(this._current);\n\n    this._current = node;\n  }\n\n  onEndElement(name) {\n    const node = this._current;\n\n    if (node[_xfa_object.$isCDATAXml]() && typeof node[_xfa_object.$content] === \"string\") {\n      const parser = new XFAParser();\n      parser._globalData = this._globalData;\n      const root = parser.parse(node[_xfa_object.$content]);\n      node[_xfa_object.$content] = null;\n\n      node[_xfa_object.$onChild](root);\n    }\n\n    node[_xfa_object.$finalize]();\n\n    this._current = this._stack.pop();\n\n    if (this._current[_xfa_object.$onChild](node)) {\n      node[_xfa_object.$setId](this._ids);\n    }\n\n    node[_xfa_object.$clean](this._builder);\n  }\n\n  onError(code) {\n    this._errorCode = code;\n  }\n\n}\n\nexports.XFAParser = XFAParser;\n\n/***/ }),\n/* 214 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Builder = void 0;\n\nvar _namespaces = __w_pdfjs_require__(204);\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nvar _setup = __w_pdfjs_require__(215);\n\nvar _template = __w_pdfjs_require__(207);\n\nvar _unknown = __w_pdfjs_require__(224);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass Root extends _xfa_object.XFAObject {\n  constructor(ids) {\n    super(-1, \"root\", Object.create(null));\n    this.element = null;\n    this[_xfa_object.$ids] = ids;\n  }\n\n  [_xfa_object.$onChild](child) {\n    this.element = child;\n    return true;\n  }\n\n  [_xfa_object.$finalize]() {\n    super[_xfa_object.$finalize]();\n\n    if (this.element.template instanceof _template.Template) {\n      this[_xfa_object.$ids].set(_xfa_object.$root, this.element);\n\n      this.element.template[_xfa_object.$resolvePrototypes](this[_xfa_object.$ids]);\n\n      this.element.template[_xfa_object.$ids] = this[_xfa_object.$ids];\n    }\n  }\n\n}\n\nclass Empty extends _xfa_object.XFAObject {\n  constructor() {\n    super(-1, \"\", Object.create(null));\n  }\n\n  [_xfa_object.$onChild](_) {\n    return false;\n  }\n\n}\n\nclass Builder {\n  constructor() {\n    let rootNameSpace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    this._namespaceStack = [];\n    this._nsAgnosticLevel = 0;\n    this._namespacePrefixes = new Map();\n    this._namespaces = new Map();\n    this._nextNsId = Math.max(...Object.values(_namespaces.NamespaceIds).map(_ref => {\n      let {\n        id\n      } = _ref;\n      return id;\n    }));\n    this._currentNamespace = rootNameSpace || new _unknown.UnknownNamespace(++this._nextNsId);\n  }\n\n  buildRoot(ids) {\n    return new Root(ids);\n  }\n\n  build(_ref2) {\n    let {\n      nsPrefix,\n      name,\n      attributes,\n      namespace,\n      prefixes\n    } = _ref2;\n    const hasNamespaceDef = namespace !== null;\n\n    if (hasNamespaceDef) {\n      this._namespaceStack.push(this._currentNamespace);\n\n      this._currentNamespace = this._searchNamespace(namespace);\n    }\n\n    if (prefixes) {\n      this._addNamespacePrefix(prefixes);\n    }\n\n    if (attributes.hasOwnProperty(_xfa_object.$nsAttributes)) {\n      const dataTemplate = _setup.NamespaceSetUp.datasets;\n      const nsAttrs = attributes[_xfa_object.$nsAttributes];\n      let xfaAttrs = null;\n\n      for (const [ns, attrs] of Object.entries(nsAttrs)) {\n        const nsToUse = this._getNamespaceToUse(ns);\n\n        if (nsToUse === dataTemplate) {\n          xfaAttrs = {\n            xfa: attrs\n          };\n          break;\n        }\n      }\n\n      if (xfaAttrs) {\n        attributes[_xfa_object.$nsAttributes] = xfaAttrs;\n      } else {\n        delete attributes[_xfa_object.$nsAttributes];\n      }\n    }\n\n    const namespaceToUse = this._getNamespaceToUse(nsPrefix);\n\n    const node = namespaceToUse && namespaceToUse[_namespaces.$buildXFAObject](name, attributes) || new Empty();\n\n    if (node[_xfa_object.$isNsAgnostic]()) {\n      this._nsAgnosticLevel++;\n    }\n\n    if (hasNamespaceDef || prefixes || node[_xfa_object.$isNsAgnostic]()) {\n      node[_xfa_object.$cleanup] = {\n        hasNamespace: hasNamespaceDef,\n        prefixes,\n        nsAgnostic: node[_xfa_object.$isNsAgnostic]()\n      };\n    }\n\n    return node;\n  }\n\n  isNsAgnostic() {\n    return this._nsAgnosticLevel > 0;\n  }\n\n  _searchNamespace(nsName) {\n    let ns = this._namespaces.get(nsName);\n\n    if (ns) {\n      return ns;\n    }\n\n    for (const [name, {\n      check\n    }] of Object.entries(_namespaces.NamespaceIds)) {\n      if (check(nsName)) {\n        ns = _setup.NamespaceSetUp[name];\n\n        if (ns) {\n          this._namespaces.set(nsName, ns);\n\n          return ns;\n        }\n\n        break;\n      }\n    }\n\n    ns = new _unknown.UnknownNamespace(++this._nextNsId);\n\n    this._namespaces.set(nsName, ns);\n\n    return ns;\n  }\n\n  _addNamespacePrefix(prefixes) {\n    for (const {\n      prefix,\n      value\n    } of prefixes) {\n      const namespace = this._searchNamespace(value);\n\n      let prefixStack = this._namespacePrefixes.get(prefix);\n\n      if (!prefixStack) {\n        prefixStack = [];\n\n        this._namespacePrefixes.set(prefix, prefixStack);\n      }\n\n      prefixStack.push(namespace);\n    }\n  }\n\n  _getNamespaceToUse(prefix) {\n    if (!prefix) {\n      return this._currentNamespace;\n    }\n\n    const prefixStack = this._namespacePrefixes.get(prefix);\n\n    if (prefixStack && prefixStack.length > 0) {\n      return prefixStack.at(-1);\n    }\n\n    (0, _util.warn)(`Unknown namespace prefix: ${prefix}.`);\n    return null;\n  }\n\n  clean(data) {\n    const {\n      hasNamespace,\n      prefixes,\n      nsAgnostic\n    } = data;\n\n    if (hasNamespace) {\n      this._currentNamespace = this._namespaceStack.pop();\n    }\n\n    if (prefixes) {\n      prefixes.forEach(_ref3 => {\n        let {\n          prefix\n        } = _ref3;\n\n        this._namespacePrefixes.get(prefix).pop();\n      });\n    }\n\n    if (nsAgnostic) {\n      this._nsAgnosticLevel--;\n    }\n  }\n\n}\n\nexports.Builder = Builder;\n\n/***/ }),\n/* 215 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.NamespaceSetUp = void 0;\n\nvar _config = __w_pdfjs_require__(216);\n\nvar _connection_set = __w_pdfjs_require__(217);\n\nvar _datasets = __w_pdfjs_require__(218);\n\nvar _locale_set = __w_pdfjs_require__(219);\n\nvar _signature = __w_pdfjs_require__(220);\n\nvar _stylesheet = __w_pdfjs_require__(221);\n\nvar _template = __w_pdfjs_require__(207);\n\nvar _xdp = __w_pdfjs_require__(222);\n\nvar _xhtml = __w_pdfjs_require__(223);\n\nconst NamespaceSetUp = {\n  config: _config.ConfigNamespace,\n  connection: _connection_set.ConnectionSetNamespace,\n  datasets: _datasets.DatasetsNamespace,\n  localeSet: _locale_set.LocaleSetNamespace,\n  signature: _signature.SignatureNamespace,\n  stylesheet: _stylesheet.StylesheetNamespace,\n  template: _template.TemplateNamespace,\n  xdp: _xdp.XdpNamespace,\n  xhtml: _xhtml.XhtmlNamespace\n};\nexports.NamespaceSetUp = NamespaceSetUp;\n\n/***/ }),\n/* 216 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ConfigNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(204);\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nvar _utils = __w_pdfjs_require__(203);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CONFIG_NS_ID = _namespaces.NamespaceIds.config.id;\n\nclass Acrobat extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"acrobat\", true);\n    this.acrobat7 = null;\n    this.autoSave = null;\n    this.common = null;\n    this.validate = null;\n    this.validateApprovalSignatures = null;\n    this.submitUrl = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Acrobat7 extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"acrobat7\", true);\n    this.dynamicRender = null;\n  }\n\n}\n\nclass ADBE_JSConsole extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ADBE_JSConsole\", [\"delegate\", \"Enable\", \"Disable\"]);\n  }\n\n}\n\nclass ADBE_JSDebugger extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ADBE_JSDebugger\", [\"delegate\", \"Enable\", \"Disable\"]);\n  }\n\n}\n\nclass AddSilentPrint extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"addSilentPrint\");\n  }\n\n}\n\nclass AddViewerPreferences extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"addViewerPreferences\");\n  }\n\n}\n\nclass AdjustData extends _xfa_object.Option10 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"adjustData\");\n  }\n\n}\n\nclass AdobeExtensionLevel extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"adobeExtensionLevel\", 0, n => n >= 1 && n <= 8);\n  }\n\n}\n\nclass Agent extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"agent\", true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.common = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass AlwaysEmbed extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"alwaysEmbed\");\n  }\n\n}\n\nclass Amd extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"amd\");\n  }\n\n}\n\nclass Area extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"area\");\n    this.level = (0, _utils.getInteger)({\n      data: attributes.level,\n      defaultValue: 0,\n      validate: n => n >= 1 && n <= 3\n    });\n    this.name = (0, _utils.getStringOption)(attributes.name, [\"\", \"barcode\", \"coreinit\", \"deviceDriver\", \"font\", \"general\", \"layout\", \"merge\", \"script\", \"signature\", \"sourceSet\", \"templateCache\"]);\n  }\n\n}\n\nclass Attributes extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"attributes\", [\"preserve\", \"delegate\", \"ignore\"]);\n  }\n\n}\n\nclass AutoSave extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"autoSave\", [\"disabled\", \"enabled\"]);\n  }\n\n}\n\nclass Base extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"base\");\n  }\n\n}\n\nclass BatchOutput extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"batchOutput\");\n    this.format = (0, _utils.getStringOption)(attributes.format, [\"none\", \"concat\", \"zip\", \"zipCompress\"]);\n  }\n\n}\n\nclass BehaviorOverride extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"behaviorOverride\");\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = new Map(this[_xfa_object.$content].trim().split(/\\s+/).filter(x => x.includes(\":\")).map(x => x.split(\":\", 2)));\n  }\n\n}\n\nclass Cache extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"cache\", true);\n    this.templateCache = null;\n  }\n\n}\n\nclass Change extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"change\");\n  }\n\n}\n\nclass Common extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"common\", true);\n    this.data = null;\n    this.locale = null;\n    this.localeSet = null;\n    this.messaging = null;\n    this.suppressBanner = null;\n    this.template = null;\n    this.validationMessaging = null;\n    this.versionControl = null;\n    this.log = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Compress extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compress\");\n    this.scope = (0, _utils.getStringOption)(attributes.scope, [\"imageOnly\", \"document\"]);\n  }\n\n}\n\nclass CompressLogicalStructure extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compressLogicalStructure\");\n  }\n\n}\n\nclass CompressObjectStream extends _xfa_object.Option10 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compressObjectStream\");\n  }\n\n}\n\nclass Compression extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compression\", true);\n    this.compressLogicalStructure = null;\n    this.compressObjectStream = null;\n    this.level = null;\n    this.type = null;\n  }\n\n}\n\nclass Config extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"config\", true);\n    this.acrobat = null;\n    this.present = null;\n    this.trace = null;\n    this.agent = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Conformance extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"conformance\", [\"A\", \"B\"]);\n  }\n\n}\n\nclass ContentCopy extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"contentCopy\");\n  }\n\n}\n\nclass Copies extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"copies\", 1, n => n >= 1);\n  }\n\n}\n\nclass Creator extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"creator\");\n  }\n\n}\n\nclass CurrentPage extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"currentPage\", 0, n => n >= 0);\n  }\n\n}\n\nclass Data extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"data\", true);\n    this.adjustData = null;\n    this.attributes = null;\n    this.incrementalLoad = null;\n    this.outputXSL = null;\n    this.range = null;\n    this.record = null;\n    this.startNode = null;\n    this.uri = null;\n    this.window = null;\n    this.xsl = null;\n    this.excludeNS = new _xfa_object.XFAObjectArray();\n    this.transform = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Debug extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"debug\", true);\n    this.uri = null;\n  }\n\n}\n\nclass DefaultTypeface extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"defaultTypeface\");\n    this.writingScript = (0, _utils.getStringOption)(attributes.writingScript, [\"*\", \"Arabic\", \"Cyrillic\", \"EastEuropeanRoman\", \"Greek\", \"Hebrew\", \"Japanese\", \"Korean\", \"Roman\", \"SimplifiedChinese\", \"Thai\", \"TraditionalChinese\", \"Vietnamese\"]);\n  }\n\n}\n\nclass Destination extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"destination\", [\"pdf\", \"pcl\", \"ps\", \"webClient\", \"zpl\"]);\n  }\n\n}\n\nclass DocumentAssembly extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"documentAssembly\");\n  }\n\n}\n\nclass Driver extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"driver\", true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n\n}\n\nclass DuplexOption extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"duplexOption\", [\"simplex\", \"duplexFlipLongEdge\", \"duplexFlipShortEdge\"]);\n  }\n\n}\n\nclass DynamicRender extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"dynamicRender\", [\"forbidden\", \"required\"]);\n  }\n\n}\n\nclass Embed extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"embed\");\n  }\n\n}\n\nclass Encrypt extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"encrypt\");\n  }\n\n}\n\nclass Encryption extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"encryption\", true);\n    this.encrypt = null;\n    this.encryptionLevel = null;\n    this.permissions = null;\n  }\n\n}\n\nclass EncryptionLevel extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"encryptionLevel\", [\"40bit\", \"128bit\"]);\n  }\n\n}\n\nclass Enforce extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"enforce\");\n  }\n\n}\n\nclass Equate extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"equate\");\n    this.force = (0, _utils.getInteger)({\n      data: attributes.force,\n      defaultValue: 1,\n      validate: n => n === 0\n    });\n    this.from = attributes.from || \"\";\n    this.to = attributes.to || \"\";\n  }\n\n}\n\nclass EquateRange extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"equateRange\");\n    this.from = attributes.from || \"\";\n    this.to = attributes.to || \"\";\n    this._unicodeRange = attributes.unicodeRange || \"\";\n  }\n\n  get unicodeRange() {\n    const ranges = [];\n    const unicodeRegex = /U\\+([0-9a-fA-F]+)/;\n    const unicodeRange = this._unicodeRange;\n\n    for (let range of unicodeRange.split(\",\").map(x => x.trim()).filter(x => !!x)) {\n      range = range.split(\"-\", 2).map(x => {\n        const found = x.match(unicodeRegex);\n\n        if (!found) {\n          return 0;\n        }\n\n        return parseInt(found[1], 16);\n      });\n\n      if (range.length === 1) {\n        range.push(range[0]);\n      }\n\n      ranges.push(range);\n    }\n\n    return (0, _util.shadow)(this, \"unicodeRange\", ranges);\n  }\n\n}\n\nclass Exclude extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"exclude\");\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = this[_xfa_object.$content].trim().split(/\\s+/).filter(x => x && [\"calculate\", \"close\", \"enter\", \"exit\", \"initialize\", \"ready\", \"validate\"].includes(x));\n  }\n\n}\n\nclass ExcludeNS extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"excludeNS\");\n  }\n\n}\n\nclass FlipLabel extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"flipLabel\", [\"usePrinterSetting\", \"on\", \"off\"]);\n  }\n\n}\n\nclass FontInfo extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"fontInfo\", true);\n    this.embed = null;\n    this.map = null;\n    this.subsetBelow = null;\n    this.alwaysEmbed = new _xfa_object.XFAObjectArray();\n    this.defaultTypeface = new _xfa_object.XFAObjectArray();\n    this.neverEmbed = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass FormFieldFilling extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"formFieldFilling\");\n  }\n\n}\n\nclass GroupParent extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"groupParent\");\n  }\n\n}\n\nclass IfEmpty extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ifEmpty\", [\"dataValue\", \"dataGroup\", \"ignore\", \"remove\"]);\n  }\n\n}\n\nclass IncludeXDPContent extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"includeXDPContent\");\n  }\n\n}\n\nclass IncrementalLoad extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"incrementalLoad\", [\"none\", \"forwardOnly\"]);\n  }\n\n}\n\nclass IncrementalMerge extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"incrementalMerge\");\n  }\n\n}\n\nclass Interactive extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"interactive\");\n  }\n\n}\n\nclass Jog extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"jog\", [\"usePrinterSetting\", \"none\", \"pageSet\"]);\n  }\n\n}\n\nclass LabelPrinter extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"labelPrinter\", true);\n    this.name = (0, _utils.getStringOption)(attributes.name, [\"zpl\", \"dpl\", \"ipl\", \"tcpl\"]);\n    this.batchOutput = null;\n    this.flipLabel = null;\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n\n}\n\nclass Layout extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"layout\", [\"paginate\", \"panel\"]);\n  }\n\n}\n\nclass Level extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"level\", 0, n => n > 0);\n  }\n\n}\n\nclass Linearized extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"linearized\");\n  }\n\n}\n\nclass Locale extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"locale\");\n  }\n\n}\n\nclass LocaleSet extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"localeSet\");\n  }\n\n}\n\nclass Log extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"log\", true);\n    this.mode = null;\n    this.threshold = null;\n    this.to = null;\n    this.uri = null;\n  }\n\n}\n\nclass MapElement extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"map\", true);\n    this.equate = new _xfa_object.XFAObjectArray();\n    this.equateRange = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass MediumInfo extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"mediumInfo\", true);\n    this.map = null;\n  }\n\n}\n\nclass Message extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"message\", true);\n    this.msgId = null;\n    this.severity = null;\n  }\n\n}\n\nclass Messaging extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"messaging\", true);\n    this.message = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Mode extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"mode\", [\"append\", \"overwrite\"]);\n  }\n\n}\n\nclass ModifyAnnots extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"modifyAnnots\");\n  }\n\n}\n\nclass MsgId extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"msgId\", 1, n => n >= 1);\n  }\n\n}\n\nclass NameAttr extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"nameAttr\");\n  }\n\n}\n\nclass NeverEmbed extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"neverEmbed\");\n  }\n\n}\n\nclass NumberOfCopies extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"numberOfCopies\", null, n => n >= 2 && n <= 5);\n  }\n\n}\n\nclass OpenAction extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"openAction\", true);\n    this.destination = null;\n  }\n\n}\n\nclass Output extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"output\", true);\n    this.to = null;\n    this.type = null;\n    this.uri = null;\n  }\n\n}\n\nclass OutputBin extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"outputBin\");\n  }\n\n}\n\nclass OutputXSL extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"outputXSL\", true);\n    this.uri = null;\n  }\n\n}\n\nclass Overprint extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"overprint\", [\"none\", \"both\", \"draw\", \"field\"]);\n  }\n\n}\n\nclass Packets extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"packets\");\n  }\n\n  [_xfa_object.$finalize]() {\n    if (this[_xfa_object.$content] === \"*\") {\n      return;\n    }\n\n    this[_xfa_object.$content] = this[_xfa_object.$content].trim().split(/\\s+/).filter(x => [\"config\", \"datasets\", \"template\", \"xfdf\", \"xslt\"].includes(x));\n  }\n\n}\n\nclass PageOffset extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pageOffset\");\n    this.x = (0, _utils.getInteger)({\n      data: attributes.x,\n      defaultValue: \"useXDCSetting\",\n      validate: n => true\n    });\n    this.y = (0, _utils.getInteger)({\n      data: attributes.y,\n      defaultValue: \"useXDCSetting\",\n      validate: n => true\n    });\n  }\n\n}\n\nclass PageRange extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pageRange\");\n  }\n\n  [_xfa_object.$finalize]() {\n    const numbers = this[_xfa_object.$content].trim().split(/\\s+/).map(x => parseInt(x, 10));\n\n    const ranges = [];\n\n    for (let i = 0, ii = numbers.length; i < ii; i += 2) {\n      ranges.push(numbers.slice(i, i + 2));\n    }\n\n    this[_xfa_object.$content] = ranges;\n  }\n\n}\n\nclass Pagination extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pagination\", [\"simplex\", \"duplexShortEdge\", \"duplexLongEdge\"]);\n  }\n\n}\n\nclass PaginationOverride extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"paginationOverride\", [\"none\", \"forceDuplex\", \"forceDuplexLongEdge\", \"forceDuplexShortEdge\", \"forceSimplex\"]);\n  }\n\n}\n\nclass Part extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"part\", 1, n => false);\n  }\n\n}\n\nclass Pcl extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pcl\", true);\n    this.name = attributes.name || \"\";\n    this.batchOutput = null;\n    this.fontInfo = null;\n    this.jog = null;\n    this.mediumInfo = null;\n    this.outputBin = null;\n    this.pageOffset = null;\n    this.staple = null;\n    this.xdc = null;\n  }\n\n}\n\nclass Pdf extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pdf\", true);\n    this.name = attributes.name || \"\";\n    this.adobeExtensionLevel = null;\n    this.batchOutput = null;\n    this.compression = null;\n    this.creator = null;\n    this.encryption = null;\n    this.fontInfo = null;\n    this.interactive = null;\n    this.linearized = null;\n    this.openAction = null;\n    this.pdfa = null;\n    this.producer = null;\n    this.renderPolicy = null;\n    this.scriptModel = null;\n    this.silentPrint = null;\n    this.submitFormat = null;\n    this.tagged = null;\n    this.version = null;\n    this.viewerPreferences = null;\n    this.xdc = null;\n  }\n\n}\n\nclass Pdfa extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pdfa\", true);\n    this.amd = null;\n    this.conformance = null;\n    this.includeXDPContent = null;\n    this.part = null;\n  }\n\n}\n\nclass Permissions extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"permissions\", true);\n    this.accessibleContent = null;\n    this.change = null;\n    this.contentCopy = null;\n    this.documentAssembly = null;\n    this.formFieldFilling = null;\n    this.modifyAnnots = null;\n    this.plaintextMetadata = null;\n    this.print = null;\n    this.printHighQuality = null;\n  }\n\n}\n\nclass PickTrayByPDFSize extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pickTrayByPDFSize\");\n  }\n\n}\n\nclass Picture extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"picture\");\n  }\n\n}\n\nclass PlaintextMetadata extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"plaintextMetadata\");\n  }\n\n}\n\nclass Presence extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"presence\", [\"preserve\", \"dissolve\", \"dissolveStructure\", \"ignore\", \"remove\"]);\n  }\n\n}\n\nclass Present extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"present\", true);\n    this.behaviorOverride = null;\n    this.cache = null;\n    this.common = null;\n    this.copies = null;\n    this.destination = null;\n    this.incrementalMerge = null;\n    this.layout = null;\n    this.output = null;\n    this.overprint = null;\n    this.pagination = null;\n    this.paginationOverride = null;\n    this.script = null;\n    this.validate = null;\n    this.xdp = null;\n    this.driver = new _xfa_object.XFAObjectArray();\n    this.labelPrinter = new _xfa_object.XFAObjectArray();\n    this.pcl = new _xfa_object.XFAObjectArray();\n    this.pdf = new _xfa_object.XFAObjectArray();\n    this.ps = new _xfa_object.XFAObjectArray();\n    this.submitUrl = new _xfa_object.XFAObjectArray();\n    this.webClient = new _xfa_object.XFAObjectArray();\n    this.zpl = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Print extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"print\");\n  }\n\n}\n\nclass PrintHighQuality extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"printHighQuality\");\n  }\n\n}\n\nclass PrintScaling extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"printScaling\", [\"appdefault\", \"noScaling\"]);\n  }\n\n}\n\nclass PrinterName extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"printerName\");\n  }\n\n}\n\nclass Producer extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"producer\");\n  }\n\n}\n\nclass Ps extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ps\", true);\n    this.name = attributes.name || \"\";\n    this.batchOutput = null;\n    this.fontInfo = null;\n    this.jog = null;\n    this.mediumInfo = null;\n    this.outputBin = null;\n    this.staple = null;\n    this.xdc = null;\n  }\n\n}\n\nclass Range extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"range\");\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = this[_xfa_object.$content].trim().split(/\\s*,\\s*/, 2).map(range => range.split(\"-\").map(x => parseInt(x.trim(), 10))).filter(range => range.every(x => !isNaN(x))).map(range => {\n      if (range.length === 1) {\n        range.push(range[0]);\n      }\n\n      return range;\n    });\n  }\n\n}\n\nclass Record extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"record\");\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = this[_xfa_object.$content].trim();\n    const n = parseInt(this[_xfa_object.$content], 10);\n\n    if (!isNaN(n) && n >= 0) {\n      this[_xfa_object.$content] = n;\n    }\n  }\n\n}\n\nclass Relevant extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"relevant\");\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = this[_xfa_object.$content].trim().split(/\\s+/);\n  }\n\n}\n\nclass Rename extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"rename\");\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = this[_xfa_object.$content].trim();\n\n    if (this[_xfa_object.$content].toLowerCase().startsWith(\"xml\") || this[_xfa_object.$content].match(new RegExp(\"[\\\\p{L}_][\\\\p{L}\\\\d._\\\\p{M}-]*\", \"u\"))) {\n      (0, _util.warn)(\"XFA - Rename: invalid XFA name\");\n    }\n  }\n\n}\n\nclass RenderPolicy extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"renderPolicy\", [\"server\", \"client\"]);\n  }\n\n}\n\nclass RunScripts extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"runScripts\", [\"both\", \"client\", \"none\", \"server\"]);\n  }\n\n}\n\nclass Script extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"script\", true);\n    this.currentPage = null;\n    this.exclude = null;\n    this.runScripts = null;\n  }\n\n}\n\nclass ScriptModel extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"scriptModel\", [\"XFA\", \"none\"]);\n  }\n\n}\n\nclass Severity extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"severity\", [\"ignore\", \"error\", \"information\", \"trace\", \"warning\"]);\n  }\n\n}\n\nclass SilentPrint extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"silentPrint\", true);\n    this.addSilentPrint = null;\n    this.printerName = null;\n  }\n\n}\n\nclass Staple extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"staple\");\n    this.mode = (0, _utils.getStringOption)(attributes.mode, [\"usePrinterSetting\", \"on\", \"off\"]);\n  }\n\n}\n\nclass StartNode extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"startNode\");\n  }\n\n}\n\nclass StartPage extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"startPage\", 0, n => true);\n  }\n\n}\n\nclass SubmitFormat extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"submitFormat\", [\"html\", \"delegate\", \"fdf\", \"xml\", \"pdf\"]);\n  }\n\n}\n\nclass SubmitUrl extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"submitUrl\");\n  }\n\n}\n\nclass SubsetBelow extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"subsetBelow\", 100, n => n >= 0 && n <= 100);\n  }\n\n}\n\nclass SuppressBanner extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"suppressBanner\");\n  }\n\n}\n\nclass Tagged extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"tagged\");\n  }\n\n}\n\nclass Template extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"template\", true);\n    this.base = null;\n    this.relevant = null;\n    this.startPage = null;\n    this.uri = null;\n    this.xsl = null;\n  }\n\n}\n\nclass Threshold extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"threshold\", [\"trace\", \"error\", \"information\", \"warning\"]);\n  }\n\n}\n\nclass To extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"to\", [\"null\", \"memory\", \"stderr\", \"stdout\", \"system\", \"uri\"]);\n  }\n\n}\n\nclass TemplateCache extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"templateCache\");\n    this.maxEntries = (0, _utils.getInteger)({\n      data: attributes.maxEntries,\n      defaultValue: 5,\n      validate: n => n >= 0\n    });\n  }\n\n}\n\nclass Trace extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"trace\", true);\n    this.area = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Transform extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"transform\", true);\n    this.groupParent = null;\n    this.ifEmpty = null;\n    this.nameAttr = null;\n    this.picture = null;\n    this.presence = null;\n    this.rename = null;\n    this.whitespace = null;\n  }\n\n}\n\nclass Type extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"type\", [\"none\", \"ascii85\", \"asciiHex\", \"ccittfax\", \"flate\", \"lzw\", \"runLength\", \"native\", \"xdp\", \"mergedXDP\"]);\n  }\n\n}\n\nclass Uri extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"uri\");\n  }\n\n}\n\nclass Validate extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"validate\", [\"preSubmit\", \"prePrint\", \"preExecute\", \"preSave\"]);\n  }\n\n}\n\nclass ValidateApprovalSignatures extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"validateApprovalSignatures\");\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = this[_xfa_object.$content].trim().split(/\\s+/).filter(x => [\"docReady\", \"postSign\"].includes(x));\n  }\n\n}\n\nclass ValidationMessaging extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"validationMessaging\", [\"allMessagesIndividually\", \"allMessagesTogether\", \"firstMessageOnly\", \"noMessages\"]);\n  }\n\n}\n\nclass Version extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"version\", [\"1.7\", \"1.6\", \"1.5\", \"1.4\", \"1.3\", \"1.2\"]);\n  }\n\n}\n\nclass VersionControl extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"VersionControl\");\n    this.outputBelow = (0, _utils.getStringOption)(attributes.outputBelow, [\"warn\", \"error\", \"update\"]);\n    this.sourceAbove = (0, _utils.getStringOption)(attributes.sourceAbove, [\"warn\", \"error\"]);\n    this.sourceBelow = (0, _utils.getStringOption)(attributes.sourceBelow, [\"update\", \"maintain\"]);\n  }\n\n}\n\nclass ViewerPreferences extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"viewerPreferences\", true);\n    this.ADBE_JSConsole = null;\n    this.ADBE_JSDebugger = null;\n    this.addViewerPreferences = null;\n    this.duplexOption = null;\n    this.enforce = null;\n    this.numberOfCopies = null;\n    this.pageRange = null;\n    this.pickTrayByPDFSize = null;\n    this.printScaling = null;\n  }\n\n}\n\nclass WebClient extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"webClient\", true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n\n}\n\nclass Whitespace extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"whitespace\", [\"preserve\", \"ltrim\", \"normalize\", \"rtrim\", \"trim\"]);\n  }\n\n}\n\nclass Window extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"window\");\n  }\n\n  [_xfa_object.$finalize]() {\n    const pair = this[_xfa_object.$content].trim().split(/\\s*,\\s*/, 2).map(x => parseInt(x, 10));\n\n    if (pair.some(x => isNaN(x))) {\n      this[_xfa_object.$content] = [0, 0];\n      return;\n    }\n\n    if (pair.length === 1) {\n      pair.push(pair[0]);\n    }\n\n    this[_xfa_object.$content] = pair;\n  }\n\n}\n\nclass Xdc extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"xdc\", true);\n    this.uri = new _xfa_object.XFAObjectArray();\n    this.xsl = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Xdp extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"xdp\", true);\n    this.packets = null;\n  }\n\n}\n\nclass Xsl extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"xsl\", true);\n    this.debug = null;\n    this.uri = null;\n  }\n\n}\n\nclass Zpl extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"zpl\", true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.batchOutput = null;\n    this.flipLabel = null;\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n\n}\n\nclass ConfigNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (ConfigNamespace.hasOwnProperty(name)) {\n      return ConfigNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static acrobat(attrs) {\n    return new Acrobat(attrs);\n  }\n\n  static acrobat7(attrs) {\n    return new Acrobat7(attrs);\n  }\n\n  static ADBE_JSConsole(attrs) {\n    return new ADBE_JSConsole(attrs);\n  }\n\n  static ADBE_JSDebugger(attrs) {\n    return new ADBE_JSDebugger(attrs);\n  }\n\n  static addSilentPrint(attrs) {\n    return new AddSilentPrint(attrs);\n  }\n\n  static addViewerPreferences(attrs) {\n    return new AddViewerPreferences(attrs);\n  }\n\n  static adjustData(attrs) {\n    return new AdjustData(attrs);\n  }\n\n  static adobeExtensionLevel(attrs) {\n    return new AdobeExtensionLevel(attrs);\n  }\n\n  static agent(attrs) {\n    return new Agent(attrs);\n  }\n\n  static alwaysEmbed(attrs) {\n    return new AlwaysEmbed(attrs);\n  }\n\n  static amd(attrs) {\n    return new Amd(attrs);\n  }\n\n  static area(attrs) {\n    return new Area(attrs);\n  }\n\n  static attributes(attrs) {\n    return new Attributes(attrs);\n  }\n\n  static autoSave(attrs) {\n    return new AutoSave(attrs);\n  }\n\n  static base(attrs) {\n    return new Base(attrs);\n  }\n\n  static batchOutput(attrs) {\n    return new BatchOutput(attrs);\n  }\n\n  static behaviorOverride(attrs) {\n    return new BehaviorOverride(attrs);\n  }\n\n  static cache(attrs) {\n    return new Cache(attrs);\n  }\n\n  static change(attrs) {\n    return new Change(attrs);\n  }\n\n  static common(attrs) {\n    return new Common(attrs);\n  }\n\n  static compress(attrs) {\n    return new Compress(attrs);\n  }\n\n  static compressLogicalStructure(attrs) {\n    return new CompressLogicalStructure(attrs);\n  }\n\n  static compressObjectStream(attrs) {\n    return new CompressObjectStream(attrs);\n  }\n\n  static compression(attrs) {\n    return new Compression(attrs);\n  }\n\n  static config(attrs) {\n    return new Config(attrs);\n  }\n\n  static conformance(attrs) {\n    return new Conformance(attrs);\n  }\n\n  static contentCopy(attrs) {\n    return new ContentCopy(attrs);\n  }\n\n  static copies(attrs) {\n    return new Copies(attrs);\n  }\n\n  static creator(attrs) {\n    return new Creator(attrs);\n  }\n\n  static currentPage(attrs) {\n    return new CurrentPage(attrs);\n  }\n\n  static data(attrs) {\n    return new Data(attrs);\n  }\n\n  static debug(attrs) {\n    return new Debug(attrs);\n  }\n\n  static defaultTypeface(attrs) {\n    return new DefaultTypeface(attrs);\n  }\n\n  static destination(attrs) {\n    return new Destination(attrs);\n  }\n\n  static documentAssembly(attrs) {\n    return new DocumentAssembly(attrs);\n  }\n\n  static driver(attrs) {\n    return new Driver(attrs);\n  }\n\n  static duplexOption(attrs) {\n    return new DuplexOption(attrs);\n  }\n\n  static dynamicRender(attrs) {\n    return new DynamicRender(attrs);\n  }\n\n  static embed(attrs) {\n    return new Embed(attrs);\n  }\n\n  static encrypt(attrs) {\n    return new Encrypt(attrs);\n  }\n\n  static encryption(attrs) {\n    return new Encryption(attrs);\n  }\n\n  static encryptionLevel(attrs) {\n    return new EncryptionLevel(attrs);\n  }\n\n  static enforce(attrs) {\n    return new Enforce(attrs);\n  }\n\n  static equate(attrs) {\n    return new Equate(attrs);\n  }\n\n  static equateRange(attrs) {\n    return new EquateRange(attrs);\n  }\n\n  static exclude(attrs) {\n    return new Exclude(attrs);\n  }\n\n  static excludeNS(attrs) {\n    return new ExcludeNS(attrs);\n  }\n\n  static flipLabel(attrs) {\n    return new FlipLabel(attrs);\n  }\n\n  static fontInfo(attrs) {\n    return new FontInfo(attrs);\n  }\n\n  static formFieldFilling(attrs) {\n    return new FormFieldFilling(attrs);\n  }\n\n  static groupParent(attrs) {\n    return new GroupParent(attrs);\n  }\n\n  static ifEmpty(attrs) {\n    return new IfEmpty(attrs);\n  }\n\n  static includeXDPContent(attrs) {\n    return new IncludeXDPContent(attrs);\n  }\n\n  static incrementalLoad(attrs) {\n    return new IncrementalLoad(attrs);\n  }\n\n  static incrementalMerge(attrs) {\n    return new IncrementalMerge(attrs);\n  }\n\n  static interactive(attrs) {\n    return new Interactive(attrs);\n  }\n\n  static jog(attrs) {\n    return new Jog(attrs);\n  }\n\n  static labelPrinter(attrs) {\n    return new LabelPrinter(attrs);\n  }\n\n  static layout(attrs) {\n    return new Layout(attrs);\n  }\n\n  static level(attrs) {\n    return new Level(attrs);\n  }\n\n  static linearized(attrs) {\n    return new Linearized(attrs);\n  }\n\n  static locale(attrs) {\n    return new Locale(attrs);\n  }\n\n  static localeSet(attrs) {\n    return new LocaleSet(attrs);\n  }\n\n  static log(attrs) {\n    return new Log(attrs);\n  }\n\n  static map(attrs) {\n    return new MapElement(attrs);\n  }\n\n  static mediumInfo(attrs) {\n    return new MediumInfo(attrs);\n  }\n\n  static message(attrs) {\n    return new Message(attrs);\n  }\n\n  static messaging(attrs) {\n    return new Messaging(attrs);\n  }\n\n  static mode(attrs) {\n    return new Mode(attrs);\n  }\n\n  static modifyAnnots(attrs) {\n    return new ModifyAnnots(attrs);\n  }\n\n  static msgId(attrs) {\n    return new MsgId(attrs);\n  }\n\n  static nameAttr(attrs) {\n    return new NameAttr(attrs);\n  }\n\n  static neverEmbed(attrs) {\n    return new NeverEmbed(attrs);\n  }\n\n  static numberOfCopies(attrs) {\n    return new NumberOfCopies(attrs);\n  }\n\n  static openAction(attrs) {\n    return new OpenAction(attrs);\n  }\n\n  static output(attrs) {\n    return new Output(attrs);\n  }\n\n  static outputBin(attrs) {\n    return new OutputBin(attrs);\n  }\n\n  static outputXSL(attrs) {\n    return new OutputXSL(attrs);\n  }\n\n  static overprint(attrs) {\n    return new Overprint(attrs);\n  }\n\n  static packets(attrs) {\n    return new Packets(attrs);\n  }\n\n  static pageOffset(attrs) {\n    return new PageOffset(attrs);\n  }\n\n  static pageRange(attrs) {\n    return new PageRange(attrs);\n  }\n\n  static pagination(attrs) {\n    return new Pagination(attrs);\n  }\n\n  static paginationOverride(attrs) {\n    return new PaginationOverride(attrs);\n  }\n\n  static part(attrs) {\n    return new Part(attrs);\n  }\n\n  static pcl(attrs) {\n    return new Pcl(attrs);\n  }\n\n  static pdf(attrs) {\n    return new Pdf(attrs);\n  }\n\n  static pdfa(attrs) {\n    return new Pdfa(attrs);\n  }\n\n  static permissions(attrs) {\n    return new Permissions(attrs);\n  }\n\n  static pickTrayByPDFSize(attrs) {\n    return new PickTrayByPDFSize(attrs);\n  }\n\n  static picture(attrs) {\n    return new Picture(attrs);\n  }\n\n  static plaintextMetadata(attrs) {\n    return new PlaintextMetadata(attrs);\n  }\n\n  static presence(attrs) {\n    return new Presence(attrs);\n  }\n\n  static present(attrs) {\n    return new Present(attrs);\n  }\n\n  static print(attrs) {\n    return new Print(attrs);\n  }\n\n  static printHighQuality(attrs) {\n    return new PrintHighQuality(attrs);\n  }\n\n  static printScaling(attrs) {\n    return new PrintScaling(attrs);\n  }\n\n  static printerName(attrs) {\n    return new PrinterName(attrs);\n  }\n\n  static producer(attrs) {\n    return new Producer(attrs);\n  }\n\n  static ps(attrs) {\n    return new Ps(attrs);\n  }\n\n  static range(attrs) {\n    return new Range(attrs);\n  }\n\n  static record(attrs) {\n    return new Record(attrs);\n  }\n\n  static relevant(attrs) {\n    return new Relevant(attrs);\n  }\n\n  static rename(attrs) {\n    return new Rename(attrs);\n  }\n\n  static renderPolicy(attrs) {\n    return new RenderPolicy(attrs);\n  }\n\n  static runScripts(attrs) {\n    return new RunScripts(attrs);\n  }\n\n  static script(attrs) {\n    return new Script(attrs);\n  }\n\n  static scriptModel(attrs) {\n    return new ScriptModel(attrs);\n  }\n\n  static severity(attrs) {\n    return new Severity(attrs);\n  }\n\n  static silentPrint(attrs) {\n    return new SilentPrint(attrs);\n  }\n\n  static staple(attrs) {\n    return new Staple(attrs);\n  }\n\n  static startNode(attrs) {\n    return new StartNode(attrs);\n  }\n\n  static startPage(attrs) {\n    return new StartPage(attrs);\n  }\n\n  static submitFormat(attrs) {\n    return new SubmitFormat(attrs);\n  }\n\n  static submitUrl(attrs) {\n    return new SubmitUrl(attrs);\n  }\n\n  static subsetBelow(attrs) {\n    return new SubsetBelow(attrs);\n  }\n\n  static suppressBanner(attrs) {\n    return new SuppressBanner(attrs);\n  }\n\n  static tagged(attrs) {\n    return new Tagged(attrs);\n  }\n\n  static template(attrs) {\n    return new Template(attrs);\n  }\n\n  static templateCache(attrs) {\n    return new TemplateCache(attrs);\n  }\n\n  static threshold(attrs) {\n    return new Threshold(attrs);\n  }\n\n  static to(attrs) {\n    return new To(attrs);\n  }\n\n  static trace(attrs) {\n    return new Trace(attrs);\n  }\n\n  static transform(attrs) {\n    return new Transform(attrs);\n  }\n\n  static type(attrs) {\n    return new Type(attrs);\n  }\n\n  static uri(attrs) {\n    return new Uri(attrs);\n  }\n\n  static validate(attrs) {\n    return new Validate(attrs);\n  }\n\n  static validateApprovalSignatures(attrs) {\n    return new ValidateApprovalSignatures(attrs);\n  }\n\n  static validationMessaging(attrs) {\n    return new ValidationMessaging(attrs);\n  }\n\n  static version(attrs) {\n    return new Version(attrs);\n  }\n\n  static versionControl(attrs) {\n    return new VersionControl(attrs);\n  }\n\n  static viewerPreferences(attrs) {\n    return new ViewerPreferences(attrs);\n  }\n\n  static webClient(attrs) {\n    return new WebClient(attrs);\n  }\n\n  static whitespace(attrs) {\n    return new Whitespace(attrs);\n  }\n\n  static window(attrs) {\n    return new Window(attrs);\n  }\n\n  static xdc(attrs) {\n    return new Xdc(attrs);\n  }\n\n  static xdp(attrs) {\n    return new Xdp(attrs);\n  }\n\n  static xsl(attrs) {\n    return new Xsl(attrs);\n  }\n\n  static zpl(attrs) {\n    return new Zpl(attrs);\n  }\n\n}\n\nexports.ConfigNamespace = ConfigNamespace;\n\n/***/ }),\n/* 217 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ConnectionSetNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(204);\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nconst CONNECTION_SET_NS_ID = _namespaces.NamespaceIds.connectionSet.id;\n\nclass ConnectionSet extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"connectionSet\", true);\n    this.wsdlConnection = new _xfa_object.XFAObjectArray();\n    this.xmlConnection = new _xfa_object.XFAObjectArray();\n    this.xsdConnection = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass EffectiveInputPolicy extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"effectiveInputPolicy\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass EffectiveOutputPolicy extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"effectiveOutputPolicy\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Operation extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"operation\");\n    this.id = attributes.id || \"\";\n    this.input = attributes.input || \"\";\n    this.name = attributes.name || \"\";\n    this.output = attributes.output || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass RootElement extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"rootElement\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass SoapAction extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"soapAction\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass SoapAddress extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"soapAddress\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Uri extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"uri\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass WsdlAddress extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"wsdlAddress\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass WsdlConnection extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"wsdlConnection\", true);\n    this.dataDescription = attributes.dataDescription || \"\";\n    this.name = attributes.name || \"\";\n    this.effectiveInputPolicy = null;\n    this.effectiveOutputPolicy = null;\n    this.operation = null;\n    this.soapAction = null;\n    this.soapAddress = null;\n    this.wsdlAddress = null;\n  }\n\n}\n\nclass XmlConnection extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"xmlConnection\", true);\n    this.dataDescription = attributes.dataDescription || \"\";\n    this.name = attributes.name || \"\";\n    this.uri = null;\n  }\n\n}\n\nclass XsdConnection extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"xsdConnection\", true);\n    this.dataDescription = attributes.dataDescription || \"\";\n    this.name = attributes.name || \"\";\n    this.rootElement = null;\n    this.uri = null;\n  }\n\n}\n\nclass ConnectionSetNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (ConnectionSetNamespace.hasOwnProperty(name)) {\n      return ConnectionSetNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static connectionSet(attrs) {\n    return new ConnectionSet(attrs);\n  }\n\n  static effectiveInputPolicy(attrs) {\n    return new EffectiveInputPolicy(attrs);\n  }\n\n  static effectiveOutputPolicy(attrs) {\n    return new EffectiveOutputPolicy(attrs);\n  }\n\n  static operation(attrs) {\n    return new Operation(attrs);\n  }\n\n  static rootElement(attrs) {\n    return new RootElement(attrs);\n  }\n\n  static soapAction(attrs) {\n    return new SoapAction(attrs);\n  }\n\n  static soapAddress(attrs) {\n    return new SoapAddress(attrs);\n  }\n\n  static uri(attrs) {\n    return new Uri(attrs);\n  }\n\n  static wsdlAddress(attrs) {\n    return new WsdlAddress(attrs);\n  }\n\n  static wsdlConnection(attrs) {\n    return new WsdlConnection(attrs);\n  }\n\n  static xmlConnection(attrs) {\n    return new XmlConnection(attrs);\n  }\n\n  static xsdConnection(attrs) {\n    return new XsdConnection(attrs);\n  }\n\n}\n\nexports.ConnectionSetNamespace = ConnectionSetNamespace;\n\n/***/ }),\n/* 218 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.DatasetsNamespace = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nvar _namespaces = __w_pdfjs_require__(204);\n\nconst DATASETS_NS_ID = _namespaces.NamespaceIds.datasets.id;\n\nclass Data extends _xfa_object.XmlObject {\n  constructor(attributes) {\n    super(DATASETS_NS_ID, \"data\", attributes);\n  }\n\n  [_xfa_object.$isNsAgnostic]() {\n    return true;\n  }\n\n}\n\nclass Datasets extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(DATASETS_NS_ID, \"datasets\", true);\n    this.data = null;\n    this.Signature = null;\n  }\n\n  [_xfa_object.$onChild](child) {\n    const name = child[_xfa_object.$nodeName];\n\n    if (name === \"data\" && child[_xfa_object.$namespaceId] === DATASETS_NS_ID || name === \"Signature\" && child[_xfa_object.$namespaceId] === _namespaces.NamespaceIds.signature.id) {\n      this[name] = child;\n    }\n\n    this[_xfa_object.$appendChild](child);\n  }\n\n}\n\nclass DatasetsNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (DatasetsNamespace.hasOwnProperty(name)) {\n      return DatasetsNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static datasets(attributes) {\n    return new Datasets(attributes);\n  }\n\n  static data(attributes) {\n    return new Data(attributes);\n  }\n\n}\n\nexports.DatasetsNamespace = DatasetsNamespace;\n\n/***/ }),\n/* 219 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.LocaleSetNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(204);\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nvar _utils = __w_pdfjs_require__(203);\n\nconst LOCALE_SET_NS_ID = _namespaces.NamespaceIds.localeSet.id;\n\nclass CalendarSymbols extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"calendarSymbols\", true);\n    this.name = \"gregorian\";\n    this.dayNames = new _xfa_object.XFAObjectArray(2);\n    this.eraNames = null;\n    this.meridiemNames = null;\n    this.monthNames = new _xfa_object.XFAObjectArray(2);\n  }\n\n}\n\nclass CurrencySymbol extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"currencySymbol\");\n    this.name = (0, _utils.getStringOption)(attributes.name, [\"symbol\", \"isoname\", \"decimal\"]);\n  }\n\n}\n\nclass CurrencySymbols extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"currencySymbols\", true);\n    this.currencySymbol = new _xfa_object.XFAObjectArray(3);\n  }\n\n}\n\nclass DatePattern extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"datePattern\");\n    this.name = (0, _utils.getStringOption)(attributes.name, [\"full\", \"long\", \"med\", \"short\"]);\n  }\n\n}\n\nclass DatePatterns extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"datePatterns\", true);\n    this.datePattern = new _xfa_object.XFAObjectArray(4);\n  }\n\n}\n\nclass DateTimeSymbols extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"dateTimeSymbols\");\n  }\n\n}\n\nclass Day extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"day\");\n  }\n\n}\n\nclass DayNames extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"dayNames\", true);\n    this.abbr = (0, _utils.getInteger)({\n      data: attributes.abbr,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.day = new _xfa_object.XFAObjectArray(7);\n  }\n\n}\n\nclass Era extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"era\");\n  }\n\n}\n\nclass EraNames extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"eraNames\", true);\n    this.era = new _xfa_object.XFAObjectArray(2);\n  }\n\n}\n\nclass Locale extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"locale\", true);\n    this.desc = attributes.desc || \"\";\n    this.name = \"isoname\";\n    this.calendarSymbols = null;\n    this.currencySymbols = null;\n    this.datePatterns = null;\n    this.dateTimeSymbols = null;\n    this.numberPatterns = null;\n    this.numberSymbols = null;\n    this.timePatterns = null;\n    this.typeFaces = null;\n  }\n\n}\n\nclass LocaleSet extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"localeSet\", true);\n    this.locale = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Meridiem extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"meridiem\");\n  }\n\n}\n\nclass MeridiemNames extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"meridiemNames\", true);\n    this.meridiem = new _xfa_object.XFAObjectArray(2);\n  }\n\n}\n\nclass Month extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"month\");\n  }\n\n}\n\nclass MonthNames extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"monthNames\", true);\n    this.abbr = (0, _utils.getInteger)({\n      data: attributes.abbr,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.month = new _xfa_object.XFAObjectArray(12);\n  }\n\n}\n\nclass NumberPattern extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberPattern\");\n    this.name = (0, _utils.getStringOption)(attributes.name, [\"full\", \"long\", \"med\", \"short\"]);\n  }\n\n}\n\nclass NumberPatterns extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberPatterns\", true);\n    this.numberPattern = new _xfa_object.XFAObjectArray(4);\n  }\n\n}\n\nclass NumberSymbol extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberSymbol\");\n    this.name = (0, _utils.getStringOption)(attributes.name, [\"decimal\", \"grouping\", \"percent\", \"minus\", \"zero\"]);\n  }\n\n}\n\nclass NumberSymbols extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberSymbols\", true);\n    this.numberSymbol = new _xfa_object.XFAObjectArray(5);\n  }\n\n}\n\nclass TimePattern extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"timePattern\");\n    this.name = (0, _utils.getStringOption)(attributes.name, [\"full\", \"long\", \"med\", \"short\"]);\n  }\n\n}\n\nclass TimePatterns extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"timePatterns\", true);\n    this.timePattern = new _xfa_object.XFAObjectArray(4);\n  }\n\n}\n\nclass TypeFace extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"typeFace\", true);\n    this.name = attributes.name | \"\";\n  }\n\n}\n\nclass TypeFaces extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"typeFaces\", true);\n    this.typeFace = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass LocaleSetNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (LocaleSetNamespace.hasOwnProperty(name)) {\n      return LocaleSetNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static calendarSymbols(attrs) {\n    return new CalendarSymbols(attrs);\n  }\n\n  static currencySymbol(attrs) {\n    return new CurrencySymbol(attrs);\n  }\n\n  static currencySymbols(attrs) {\n    return new CurrencySymbols(attrs);\n  }\n\n  static datePattern(attrs) {\n    return new DatePattern(attrs);\n  }\n\n  static datePatterns(attrs) {\n    return new DatePatterns(attrs);\n  }\n\n  static dateTimeSymbols(attrs) {\n    return new DateTimeSymbols(attrs);\n  }\n\n  static day(attrs) {\n    return new Day(attrs);\n  }\n\n  static dayNames(attrs) {\n    return new DayNames(attrs);\n  }\n\n  static era(attrs) {\n    return new Era(attrs);\n  }\n\n  static eraNames(attrs) {\n    return new EraNames(attrs);\n  }\n\n  static locale(attrs) {\n    return new Locale(attrs);\n  }\n\n  static localeSet(attrs) {\n    return new LocaleSet(attrs);\n  }\n\n  static meridiem(attrs) {\n    return new Meridiem(attrs);\n  }\n\n  static meridiemNames(attrs) {\n    return new MeridiemNames(attrs);\n  }\n\n  static month(attrs) {\n    return new Month(attrs);\n  }\n\n  static monthNames(attrs) {\n    return new MonthNames(attrs);\n  }\n\n  static numberPattern(attrs) {\n    return new NumberPattern(attrs);\n  }\n\n  static numberPatterns(attrs) {\n    return new NumberPatterns(attrs);\n  }\n\n  static numberSymbol(attrs) {\n    return new NumberSymbol(attrs);\n  }\n\n  static numberSymbols(attrs) {\n    return new NumberSymbols(attrs);\n  }\n\n  static timePattern(attrs) {\n    return new TimePattern(attrs);\n  }\n\n  static timePatterns(attrs) {\n    return new TimePatterns(attrs);\n  }\n\n  static typeFace(attrs) {\n    return new TypeFace(attrs);\n  }\n\n  static typeFaces(attrs) {\n    return new TypeFaces(attrs);\n  }\n\n}\n\nexports.LocaleSetNamespace = LocaleSetNamespace;\n\n/***/ }),\n/* 220 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.SignatureNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(204);\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nconst SIGNATURE_NS_ID = _namespaces.NamespaceIds.signature.id;\n\nclass Signature extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(SIGNATURE_NS_ID, \"signature\", true);\n  }\n\n}\n\nclass SignatureNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (SignatureNamespace.hasOwnProperty(name)) {\n      return SignatureNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static signature(attributes) {\n    return new Signature(attributes);\n  }\n\n}\n\nexports.SignatureNamespace = SignatureNamespace;\n\n/***/ }),\n/* 221 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.StylesheetNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(204);\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nconst STYLESHEET_NS_ID = _namespaces.NamespaceIds.stylesheet.id;\n\nclass Stylesheet extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(STYLESHEET_NS_ID, \"stylesheet\", true);\n  }\n\n}\n\nclass StylesheetNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (StylesheetNamespace.hasOwnProperty(name)) {\n      return StylesheetNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static stylesheet(attributes) {\n    return new Stylesheet(attributes);\n  }\n\n}\n\nexports.StylesheetNamespace = StylesheetNamespace;\n\n/***/ }),\n/* 222 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XdpNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(204);\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nconst XDP_NS_ID = _namespaces.NamespaceIds.xdp.id;\n\nclass Xdp extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(XDP_NS_ID, \"xdp\", true);\n    this.uuid = attributes.uuid || \"\";\n    this.timeStamp = attributes.timeStamp || \"\";\n    this.config = null;\n    this.connectionSet = null;\n    this.datasets = null;\n    this.localeSet = null;\n    this.stylesheet = new _xfa_object.XFAObjectArray();\n    this.template = null;\n  }\n\n  [_xfa_object.$onChildCheck](child) {\n    const ns = _namespaces.NamespaceIds[child[_xfa_object.$nodeName]];\n    return ns && child[_xfa_object.$namespaceId] === ns.id;\n  }\n\n}\n\nclass XdpNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (XdpNamespace.hasOwnProperty(name)) {\n      return XdpNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static xdp(attributes) {\n    return new Xdp(attributes);\n  }\n\n}\n\nexports.XdpNamespace = XdpNamespace;\n\n/***/ }),\n/* 223 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XhtmlNamespace = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nvar _namespaces = __w_pdfjs_require__(204);\n\nvar _html_utils = __w_pdfjs_require__(209);\n\nvar _utils = __w_pdfjs_require__(203);\n\nconst XHTML_NS_ID = _namespaces.NamespaceIds.xhtml.id;\nconst $richText = Symbol();\nconst VALID_STYLES = new Set([\"color\", \"font\", \"font-family\", \"font-size\", \"font-stretch\", \"font-style\", \"font-weight\", \"margin\", \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"letter-spacing\", \"line-height\", \"orphans\", \"page-break-after\", \"page-break-before\", \"page-break-inside\", \"tab-interval\", \"tab-stop\", \"text-align\", \"text-decoration\", \"text-indent\", \"vertical-align\", \"widows\", \"kerning-mode\", \"xfa-font-horizontal-scale\", \"xfa-font-vertical-scale\", \"xfa-spacerun\", \"xfa-tab-stops\"]);\nconst StyleMapping = new Map([[\"page-break-after\", \"breakAfter\"], [\"page-break-before\", \"breakBefore\"], [\"page-break-inside\", \"breakInside\"], [\"kerning-mode\", value => value === \"none\" ? \"none\" : \"normal\"], [\"xfa-font-horizontal-scale\", value => `scaleX(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`], [\"xfa-font-vertical-scale\", value => `scaleY(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`], [\"xfa-spacerun\", \"\"], [\"xfa-tab-stops\", \"\"], [\"font-size\", (value, original) => {\n  value = original.fontSize = (0, _utils.getMeasurement)(value);\n  return (0, _html_utils.measureToString)(0.99 * value);\n}], [\"letter-spacing\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"line-height\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"margin\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"margin-bottom\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"margin-left\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"margin-right\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"margin-top\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"text-indent\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"font-family\", value => value], [\"vertical-align\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))]]);\nconst spacesRegExp = /\\s+/g;\nconst crlfRegExp = /[\\r\\n]+/g;\nconst crlfForRichTextRegExp = /\\r\\n?/g;\n\nfunction mapStyle(styleStr, node, richText) {\n  const style = Object.create(null);\n\n  if (!styleStr) {\n    return style;\n  }\n\n  const original = Object.create(null);\n\n  for (const [key, value] of styleStr.split(\";\").map(s => s.split(\":\", 2))) {\n    const mapping = StyleMapping.get(key);\n\n    if (mapping === \"\") {\n      continue;\n    }\n\n    let newValue = value;\n\n    if (mapping) {\n      if (typeof mapping === \"string\") {\n        newValue = mapping;\n      } else {\n        newValue = mapping(value, original);\n      }\n    }\n\n    if (key.endsWith(\"scale\")) {\n      if (style.transform) {\n        style.transform = `${style[key]} ${newValue}`;\n      } else {\n        style.transform = newValue;\n      }\n    } else {\n      style[key.replaceAll(/-([a-zA-Z])/g, (_, x) => x.toUpperCase())] = newValue;\n    }\n  }\n\n  if (style.fontFamily) {\n    (0, _html_utils.setFontFamily)({\n      typeface: style.fontFamily,\n      weight: style.fontWeight || \"normal\",\n      posture: style.fontStyle || \"normal\",\n      size: original.fontSize || 0\n    }, node, node[_xfa_object.$globalData].fontFinder, style);\n  }\n\n  if (richText && style.verticalAlign && style.verticalAlign !== \"0px\" && style.fontSize) {\n    const SUB_SUPER_SCRIPT_FACTOR = 0.583;\n    const VERTICAL_FACTOR = 0.333;\n    const fontSize = (0, _utils.getMeasurement)(style.fontSize);\n    style.fontSize = (0, _html_utils.measureToString)(fontSize * SUB_SUPER_SCRIPT_FACTOR);\n    style.verticalAlign = (0, _html_utils.measureToString)(Math.sign((0, _utils.getMeasurement)(style.verticalAlign)) * fontSize * VERTICAL_FACTOR);\n  }\n\n  if (richText && style.fontSize) {\n    style.fontSize = `calc(${style.fontSize} * var(--scale-factor))`;\n  }\n\n  (0, _html_utils.fixTextIndent)(style);\n  return style;\n}\n\nfunction checkStyle(node) {\n  if (!node.style) {\n    return \"\";\n  }\n\n  return node.style.trim().split(/\\s*;\\s*/).filter(s => !!s).map(s => s.split(/\\s*:\\s*/, 2)).filter(_ref => {\n    let [key, value] = _ref;\n\n    if (key === \"font-family\") {\n      node[_xfa_object.$globalData].usedTypefaces.add(value);\n    }\n\n    return VALID_STYLES.has(key);\n  }).map(kv => kv.join(\":\")).join(\";\");\n}\n\nconst NoWhites = new Set([\"body\", \"html\"]);\n\nclass XhtmlObject extends _xfa_object.XmlObject {\n  constructor(attributes, name) {\n    super(XHTML_NS_ID, name);\n    this[$richText] = false;\n    this.style = attributes.style || \"\";\n  }\n\n  [_xfa_object.$clean](builder) {\n    super[_xfa_object.$clean](builder);\n\n    this.style = checkStyle(this);\n  }\n\n  [_xfa_object.$acceptWhitespace]() {\n    return !NoWhites.has(this[_xfa_object.$nodeName]);\n  }\n\n  [_xfa_object.$onText](str) {\n    let richText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    if (!richText) {\n      str = str.replace(crlfRegExp, \"\");\n\n      if (!this.style.includes(\"xfa-spacerun:yes\")) {\n        str = str.replace(spacesRegExp, \" \");\n      }\n    } else {\n      this[$richText] = true;\n    }\n\n    if (str) {\n      this[_xfa_object.$content] += str;\n    }\n  }\n\n  [_xfa_object.$pushGlyphs](measure) {\n    let mustPop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    const xfaFont = Object.create(null);\n    const margin = {\n      top: NaN,\n      bottom: NaN,\n      left: NaN,\n      right: NaN\n    };\n    let lineHeight = null;\n\n    for (const [key, value] of this.style.split(\";\").map(s => s.split(\":\", 2))) {\n      switch (key) {\n        case \"font-family\":\n          xfaFont.typeface = (0, _utils.stripQuotes)(value);\n          break;\n\n        case \"font-size\":\n          xfaFont.size = (0, _utils.getMeasurement)(value);\n          break;\n\n        case \"font-weight\":\n          xfaFont.weight = value;\n          break;\n\n        case \"font-style\":\n          xfaFont.posture = value;\n          break;\n\n        case \"letter-spacing\":\n          xfaFont.letterSpacing = (0, _utils.getMeasurement)(value);\n          break;\n\n        case \"margin\":\n          const values = value.split(/ \\t/).map(x => (0, _utils.getMeasurement)(x));\n\n          switch (values.length) {\n            case 1:\n              margin.top = margin.bottom = margin.left = margin.right = values[0];\n              break;\n\n            case 2:\n              margin.top = margin.bottom = values[0];\n              margin.left = margin.right = values[1];\n              break;\n\n            case 3:\n              margin.top = values[0];\n              margin.bottom = values[2];\n              margin.left = margin.right = values[1];\n              break;\n\n            case 4:\n              margin.top = values[0];\n              margin.left = values[1];\n              margin.bottom = values[2];\n              margin.right = values[3];\n              break;\n          }\n\n          break;\n\n        case \"margin-top\":\n          margin.top = (0, _utils.getMeasurement)(value);\n          break;\n\n        case \"margin-bottom\":\n          margin.bottom = (0, _utils.getMeasurement)(value);\n          break;\n\n        case \"margin-left\":\n          margin.left = (0, _utils.getMeasurement)(value);\n          break;\n\n        case \"margin-right\":\n          margin.right = (0, _utils.getMeasurement)(value);\n          break;\n\n        case \"line-height\":\n          lineHeight = (0, _utils.getMeasurement)(value);\n          break;\n      }\n    }\n\n    measure.pushData(xfaFont, margin, lineHeight);\n\n    if (this[_xfa_object.$content]) {\n      measure.addString(this[_xfa_object.$content]);\n    } else {\n      for (const child of this[_xfa_object.$getChildren]()) {\n        if (child[_xfa_object.$nodeName] === \"#text\") {\n          measure.addString(child[_xfa_object.$content]);\n          continue;\n        }\n\n        child[_xfa_object.$pushGlyphs](measure);\n      }\n    }\n\n    if (mustPop) {\n      measure.popFont();\n    }\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const children = [];\n    this[_xfa_object.$extra] = {\n      children\n    };\n\n    this[_xfa_object.$childrenToHTML]({});\n\n    if (children.length === 0 && !this[_xfa_object.$content]) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    let value;\n\n    if (this[$richText]) {\n      value = this[_xfa_object.$content] ? this[_xfa_object.$content].replace(crlfForRichTextRegExp, \"\\n\") : undefined;\n    } else {\n      value = this[_xfa_object.$content] || undefined;\n    }\n\n    return _utils.HTMLResult.success({\n      name: this[_xfa_object.$nodeName],\n      attributes: {\n        href: this.href,\n        style: mapStyle(this.style, this, this[$richText])\n      },\n      children,\n      value\n    });\n  }\n\n}\n\nclass A extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"a\");\n    this.href = (0, _html_utils.fixURL)(attributes.href) || \"\";\n  }\n\n}\n\nclass B extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"b\");\n  }\n\n  [_xfa_object.$pushGlyphs](measure) {\n    measure.pushFont({\n      weight: \"bold\"\n    });\n\n    super[_xfa_object.$pushGlyphs](measure);\n\n    measure.popFont();\n  }\n\n}\n\nclass Body extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"body\");\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const res = super[_xfa_object.$toHTML](availableSpace);\n\n    const {\n      html\n    } = res;\n\n    if (!html) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    html.name = \"div\";\n    html.attributes.class = [\"xfaRich\"];\n    return res;\n  }\n\n}\n\nclass Br extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"br\");\n  }\n\n  [_xfa_object.$text]() {\n    return \"\\n\";\n  }\n\n  [_xfa_object.$pushGlyphs](measure) {\n    measure.addString(\"\\n\");\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return _utils.HTMLResult.success({\n      name: \"br\"\n    });\n  }\n\n}\n\nclass Html extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"html\");\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const children = [];\n    this[_xfa_object.$extra] = {\n      children\n    };\n\n    this[_xfa_object.$childrenToHTML]({});\n\n    if (children.length === 0) {\n      return _utils.HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          class: [\"xfaRich\"],\n          style: {}\n        },\n        value: this[_xfa_object.$content] || \"\"\n      });\n    }\n\n    if (children.length === 1) {\n      const child = children[0];\n\n      if (child.attributes && child.attributes.class.includes(\"xfaRich\")) {\n        return _utils.HTMLResult.success(child);\n      }\n    }\n\n    return _utils.HTMLResult.success({\n      name: \"div\",\n      attributes: {\n        class: [\"xfaRich\"],\n        style: {}\n      },\n      children\n    });\n  }\n\n}\n\nclass I extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"i\");\n  }\n\n  [_xfa_object.$pushGlyphs](measure) {\n    measure.pushFont({\n      posture: \"italic\"\n    });\n\n    super[_xfa_object.$pushGlyphs](measure);\n\n    measure.popFont();\n  }\n\n}\n\nclass Li extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"li\");\n  }\n\n}\n\nclass Ol extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"ol\");\n  }\n\n}\n\nclass P extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"p\");\n  }\n\n  [_xfa_object.$pushGlyphs](measure) {\n    super[_xfa_object.$pushGlyphs](measure, false);\n\n    measure.addString(\"\\n\");\n    measure.addPara();\n    measure.popFont();\n  }\n\n  [_xfa_object.$text]() {\n    const siblings = this[_xfa_object.$getParent]()[_xfa_object.$getChildren]();\n\n    if (siblings.at(-1) === this) {\n      return super[_xfa_object.$text]();\n    }\n\n    return super[_xfa_object.$text]() + \"\\n\";\n  }\n\n}\n\nclass Span extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"span\");\n  }\n\n}\n\nclass Sub extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"sub\");\n  }\n\n}\n\nclass Sup extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"sup\");\n  }\n\n}\n\nclass Ul extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"ul\");\n  }\n\n}\n\nclass XhtmlNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (XhtmlNamespace.hasOwnProperty(name)) {\n      return XhtmlNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static a(attributes) {\n    return new A(attributes);\n  }\n\n  static b(attributes) {\n    return new B(attributes);\n  }\n\n  static body(attributes) {\n    return new Body(attributes);\n  }\n\n  static br(attributes) {\n    return new Br(attributes);\n  }\n\n  static html(attributes) {\n    return new Html(attributes);\n  }\n\n  static i(attributes) {\n    return new I(attributes);\n  }\n\n  static li(attributes) {\n    return new Li(attributes);\n  }\n\n  static ol(attributes) {\n    return new Ol(attributes);\n  }\n\n  static p(attributes) {\n    return new P(attributes);\n  }\n\n  static span(attributes) {\n    return new Span(attributes);\n  }\n\n  static sub(attributes) {\n    return new Sub(attributes);\n  }\n\n  static sup(attributes) {\n    return new Sup(attributes);\n  }\n\n  static ul(attributes) {\n    return new Ul(attributes);\n  }\n\n}\n\nexports.XhtmlNamespace = XhtmlNamespace;\n\n/***/ }),\n/* 224 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.UnknownNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(204);\n\nvar _xfa_object = __w_pdfjs_require__(202);\n\nclass UnknownNamespace {\n  constructor(nsId) {\n    this.namespaceId = nsId;\n  }\n\n  [_namespaces.$buildXFAObject](name, attributes) {\n    return new _xfa_object.XmlObject(this.namespaceId, name, attributes);\n  }\n\n}\n\nexports.UnknownNamespace = UnknownNamespace;\n\n/***/ }),\n/* 225 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.DatasetReader = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _xml_parser = __w_pdfjs_require__(191);\n\nfunction decodeString(str) {\n  try {\n    return (0, _util.stringToUTF8String)(str);\n  } catch (ex) {\n    (0, _util.warn)(`UTF-8 decoding failed: \"${ex}\".`);\n    return str;\n  }\n}\n\nclass DatasetXMLParser extends _xml_parser.SimpleXMLParser {\n  constructor(options) {\n    super(options);\n    this.node = null;\n  }\n\n  onEndElement(name) {\n    const node = super.onEndElement(name);\n\n    if (node && name === \"xfa:datasets\") {\n      this.node = node;\n      throw new Error(\"Aborting DatasetXMLParser.\");\n    }\n  }\n\n}\n\nclass DatasetReader {\n  constructor(data) {\n    if (data.datasets) {\n      this.node = new _xml_parser.SimpleXMLParser({\n        hasAttributes: true\n      }).parseFromString(data.datasets).documentElement;\n    } else {\n      const parser = new DatasetXMLParser({\n        hasAttributes: true\n      });\n\n      try {\n        parser.parseFromString(data[\"xdp:xdp\"]);\n      } catch (_) {}\n\n      this.node = parser.node;\n    }\n  }\n\n  getValue(path) {\n    if (!this.node || !path) {\n      return \"\";\n    }\n\n    const node = this.node.searchNode((0, _core_utils.parseXFAPath)(path), 0);\n\n    if (!node) {\n      return \"\";\n    }\n\n    const first = node.firstChild;\n\n    if (first && first.nodeName === \"value\") {\n      return node.children.map(child => decodeString(child.textContent));\n    }\n\n    return decodeString(node.textContent);\n  }\n\n}\n\nexports.DatasetReader = DatasetReader;\n\n/***/ }),\n/* 226 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XRef = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(130);\n\nvar _core_utils = __w_pdfjs_require__(131);\n\nvar _parser = __w_pdfjs_require__(142);\n\nvar _base_stream = __w_pdfjs_require__(132);\n\nvar _crypto = __w_pdfjs_require__(192);\n\nclass XRef {\n  constructor(stream, pdfManager) {\n    this.stream = stream;\n    this.pdfManager = pdfManager;\n    this.entries = [];\n    this.xrefstms = Object.create(null);\n    this._cacheMap = new Map();\n    this._pendingRefs = new _primitives.RefSet();\n    this.stats = new _core_utils.DocStats(pdfManager.msgHandler);\n    this._newRefNum = null;\n  }\n\n  getNewRef() {\n    if (this._newRefNum === null) {\n      this._newRefNum = this.entries.length || 1;\n    }\n\n    return _primitives.Ref.get(this._newRefNum++, 0);\n  }\n\n  resetNewRef() {\n    this._newRefNum = null;\n  }\n\n  setStartXRef(startXRef) {\n    this.startXRefQueue = [startXRef];\n  }\n\n  parse() {\n    let recoveryMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    let trailerDict;\n\n    if (!recoveryMode) {\n      trailerDict = this.readXRef();\n    } else {\n      (0, _util.warn)(\"Indexing all PDF objects\");\n      trailerDict = this.indexObjects();\n    }\n\n    trailerDict.assignXref(this);\n    this.trailer = trailerDict;\n    let encrypt;\n\n    try {\n      encrypt = trailerDict.get(\"Encrypt\");\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(`XRef.parse - Invalid \"Encrypt\" reference: \"${ex}\".`);\n    }\n\n    if (encrypt instanceof _primitives.Dict) {\n      const ids = trailerDict.get(\"ID\");\n      const fileId = ids && ids.length ? ids[0] : \"\";\n      encrypt.suppressEncryption = true;\n      this.encrypt = new _crypto.CipherTransformFactory(encrypt, fileId, this.pdfManager.password);\n    }\n\n    let root;\n\n    try {\n      root = trailerDict.get(\"Root\");\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(`XRef.parse - Invalid \"Root\" reference: \"${ex}\".`);\n    }\n\n    if (root instanceof _primitives.Dict) {\n      try {\n        const pages = root.get(\"Pages\");\n\n        if (pages instanceof _primitives.Dict) {\n          this.root = root;\n          return;\n        }\n      } catch (ex) {\n        if (ex instanceof _core_utils.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)(`XRef.parse - Invalid \"Pages\" reference: \"${ex}\".`);\n      }\n    }\n\n    if (!recoveryMode) {\n      throw new _core_utils.XRefParseException();\n    }\n\n    throw new _util.InvalidPDFException(\"Invalid Root reference.\");\n  }\n\n  processXRefTable(parser) {\n    if (!(\"tableState\" in this)) {\n      this.tableState = {\n        entryNum: 0,\n        streamPos: parser.lexer.stream.pos,\n        parserBuf1: parser.buf1,\n        parserBuf2: parser.buf2\n      };\n    }\n\n    const obj = this.readXRefTable(parser);\n\n    if (!(0, _primitives.isCmd)(obj, \"trailer\")) {\n      throw new _util.FormatError(\"Invalid XRef table: could not find trailer dictionary\");\n    }\n\n    let dict = parser.getObj();\n\n    if (!(dict instanceof _primitives.Dict) && dict.dict) {\n      dict = dict.dict;\n    }\n\n    if (!(dict instanceof _primitives.Dict)) {\n      throw new _util.FormatError(\"Invalid XRef table: could not parse trailer dictionary\");\n    }\n\n    delete this.tableState;\n    return dict;\n  }\n\n  readXRefTable(parser) {\n    const stream = parser.lexer.stream;\n    const tableState = this.tableState;\n    stream.pos = tableState.streamPos;\n    parser.buf1 = tableState.parserBuf1;\n    parser.buf2 = tableState.parserBuf2;\n    let obj;\n\n    while (true) {\n      if (!(\"firstEntryNum\" in tableState) || !(\"entryCount\" in tableState)) {\n        if ((0, _primitives.isCmd)(obj = parser.getObj(), \"trailer\")) {\n          break;\n        }\n\n        tableState.firstEntryNum = obj;\n        tableState.entryCount = parser.getObj();\n      }\n\n      let first = tableState.firstEntryNum;\n      const count = tableState.entryCount;\n\n      if (!Number.isInteger(first) || !Number.isInteger(count)) {\n        throw new _util.FormatError(\"Invalid XRef table: wrong types in subsection header\");\n      }\n\n      for (let i = tableState.entryNum; i < count; i++) {\n        tableState.streamPos = stream.pos;\n        tableState.entryNum = i;\n        tableState.parserBuf1 = parser.buf1;\n        tableState.parserBuf2 = parser.buf2;\n        const entry = {};\n        entry.offset = parser.getObj();\n        entry.gen = parser.getObj();\n        const type = parser.getObj();\n\n        if (type instanceof _primitives.Cmd) {\n          switch (type.cmd) {\n            case \"f\":\n              entry.free = true;\n              break;\n\n            case \"n\":\n              entry.uncompressed = true;\n              break;\n          }\n        }\n\n        if (!Number.isInteger(entry.offset) || !Number.isInteger(entry.gen) || !(entry.free || entry.uncompressed)) {\n          throw new _util.FormatError(`Invalid entry in XRef subsection: ${first}, ${count}`);\n        }\n\n        if (i === 0 && entry.free && first === 1) {\n          first = 0;\n        }\n\n        if (!this.entries[i + first]) {\n          this.entries[i + first] = entry;\n        }\n      }\n\n      tableState.entryNum = 0;\n      tableState.streamPos = stream.pos;\n      tableState.parserBuf1 = parser.buf1;\n      tableState.parserBuf2 = parser.buf2;\n      delete tableState.firstEntryNum;\n      delete tableState.entryCount;\n    }\n\n    if (this.entries[0] && !this.entries[0].free) {\n      throw new _util.FormatError(\"Invalid XRef table: unexpected first object\");\n    }\n\n    return obj;\n  }\n\n  processXRefStream(stream) {\n    if (!(\"streamState\" in this)) {\n      const streamParameters = stream.dict;\n      const byteWidths = streamParameters.get(\"W\");\n      let range = streamParameters.get(\"Index\");\n\n      if (!range) {\n        range = [0, streamParameters.get(\"Size\")];\n      }\n\n      this.streamState = {\n        entryRanges: range,\n        byteWidths,\n        entryNum: 0,\n        streamPos: stream.pos\n      };\n    }\n\n    this.readXRefStream(stream);\n    delete this.streamState;\n    return stream.dict;\n  }\n\n  readXRefStream(stream) {\n    const streamState = this.streamState;\n    stream.pos = streamState.streamPos;\n    const [typeFieldWidth, offsetFieldWidth, generationFieldWidth] = streamState.byteWidths;\n    const entryRanges = streamState.entryRanges;\n\n    while (entryRanges.length > 0) {\n      const [first, n] = entryRanges;\n\n      if (!Number.isInteger(first) || !Number.isInteger(n)) {\n        throw new _util.FormatError(`Invalid XRef range fields: ${first}, ${n}`);\n      }\n\n      if (!Number.isInteger(typeFieldWidth) || !Number.isInteger(offsetFieldWidth) || !Number.isInteger(generationFieldWidth)) {\n        throw new _util.FormatError(`Invalid XRef entry fields length: ${first}, ${n}`);\n      }\n\n      for (let i = streamState.entryNum; i < n; ++i) {\n        streamState.entryNum = i;\n        streamState.streamPos = stream.pos;\n        let type = 0,\n            offset = 0,\n            generation = 0;\n\n        for (let j = 0; j < typeFieldWidth; ++j) {\n          const typeByte = stream.getByte();\n\n          if (typeByte === -1) {\n            throw new _util.FormatError(\"Invalid XRef byteWidths 'type'.\");\n          }\n\n          type = type << 8 | typeByte;\n        }\n\n        if (typeFieldWidth === 0) {\n          type = 1;\n        }\n\n        for (let j = 0; j < offsetFieldWidth; ++j) {\n          const offsetByte = stream.getByte();\n\n          if (offsetByte === -1) {\n            throw new _util.FormatError(\"Invalid XRef byteWidths 'offset'.\");\n          }\n\n          offset = offset << 8 | offsetByte;\n        }\n\n        for (let j = 0; j < generationFieldWidth; ++j) {\n          const generationByte = stream.getByte();\n\n          if (generationByte === -1) {\n            throw new _util.FormatError(\"Invalid XRef byteWidths 'generation'.\");\n          }\n\n          generation = generation << 8 | generationByte;\n        }\n\n        const entry = {};\n        entry.offset = offset;\n        entry.gen = generation;\n\n        switch (type) {\n          case 0:\n            entry.free = true;\n            break;\n\n          case 1:\n            entry.uncompressed = true;\n            break;\n\n          case 2:\n            break;\n\n          default:\n            throw new _util.FormatError(`Invalid XRef entry type: ${type}`);\n        }\n\n        if (!this.entries[first + i]) {\n          this.entries[first + i] = entry;\n        }\n      }\n\n      streamState.entryNum = 0;\n      streamState.streamPos = stream.pos;\n      entryRanges.splice(0, 2);\n    }\n  }\n\n  indexObjects() {\n    const TAB = 0x9,\n          LF = 0xa,\n          CR = 0xd,\n          SPACE = 0x20;\n    const PERCENT = 0x25,\n          LT = 0x3c;\n\n    function readToken(data, offset) {\n      let token = \"\",\n          ch = data[offset];\n\n      while (ch !== LF && ch !== CR && ch !== LT) {\n        if (++offset >= data.length) {\n          break;\n        }\n\n        token += String.fromCharCode(ch);\n        ch = data[offset];\n      }\n\n      return token;\n    }\n\n    function skipUntil(data, offset, what) {\n      const length = what.length,\n            dataLength = data.length;\n      let skipped = 0;\n\n      while (offset < dataLength) {\n        let i = 0;\n\n        while (i < length && data[offset + i] === what[i]) {\n          ++i;\n        }\n\n        if (i >= length) {\n          break;\n        }\n\n        offset++;\n        skipped++;\n      }\n\n      return skipped;\n    }\n\n    const objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n    const endobjRegExp = /\\bendobj[\\b\\s]$/;\n    const nestedObjRegExp = /\\s+(\\d+\\s+\\d+\\s+obj[\\b\\s<])$/;\n    const CHECK_CONTENT_LENGTH = 25;\n    const trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n    const startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]);\n    const objBytes = new Uint8Array([111, 98, 106]);\n    const xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n    this.entries.length = 0;\n\n    this._cacheMap.clear();\n\n    const stream = this.stream;\n    stream.pos = 0;\n    const buffer = stream.getBytes(),\n          length = buffer.length;\n    let position = stream.start;\n    const trailers = [],\n          xrefStms = [];\n\n    while (position < length) {\n      let ch = buffer[position];\n\n      if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n        ++position;\n        continue;\n      }\n\n      if (ch === PERCENT) {\n        do {\n          ++position;\n\n          if (position >= length) {\n            break;\n          }\n\n          ch = buffer[position];\n        } while (ch !== LF && ch !== CR);\n\n        continue;\n      }\n\n      const token = readToken(buffer, position);\n      let m;\n\n      if (token.startsWith(\"xref\") && (token.length === 4 || /\\s/.test(token[4]))) {\n        position += skipUntil(buffer, position, trailerBytes);\n        trailers.push(position);\n        position += skipUntil(buffer, position, startxrefBytes);\n      } else if (m = objRegExp.exec(token)) {\n        const num = m[1] | 0,\n              gen = m[2] | 0;\n        let contentLength,\n            startPos = position + token.length,\n            updateEntries = false;\n\n        if (!this.entries[num]) {\n          updateEntries = true;\n        } else if (this.entries[num].gen === gen) {\n          try {\n            const parser = new _parser.Parser({\n              lexer: new _parser.Lexer(stream.makeSubStream(startPos))\n            });\n            parser.getObj();\n            updateEntries = true;\n          } catch (ex) {\n            if (ex instanceof _core_utils.ParserEOFException) {\n              (0, _util.warn)(`indexObjects -- checking object (${token}): \"${ex}\".`);\n            } else {\n              updateEntries = true;\n            }\n          }\n        }\n\n        if (updateEntries) {\n          this.entries[num] = {\n            offset: position - stream.start,\n            gen,\n            uncompressed: true\n          };\n        }\n\n        while (startPos < buffer.length) {\n          const endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4;\n          contentLength = endPos - position;\n          const checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos);\n          const tokenStr = (0, _util.bytesToString)(buffer.subarray(checkPos, endPos));\n\n          if (endobjRegExp.test(tokenStr)) {\n            break;\n          } else {\n            const objToken = nestedObjRegExp.exec(tokenStr);\n\n            if (objToken && objToken[1]) {\n              (0, _util.warn)('indexObjects: Found new \"obj\" inside of another \"obj\", ' + 'caused by missing \"endobj\" -- trying to recover.');\n              contentLength -= objToken[1].length;\n              break;\n            }\n          }\n\n          startPos = endPos;\n        }\n\n        const content = buffer.subarray(position, position + contentLength);\n        const xrefTagOffset = skipUntil(content, 0, xrefBytes);\n\n        if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n          xrefStms.push(position - stream.start);\n          this.xrefstms[position - stream.start] = 1;\n        }\n\n        position += contentLength;\n      } else if (token.startsWith(\"trailer\") && (token.length === 7 || /\\s/.test(token[7]))) {\n        trailers.push(position);\n        position += skipUntil(buffer, position, startxrefBytes);\n      } else {\n        position += token.length + 1;\n      }\n    }\n\n    for (let i = 0, ii = xrefStms.length; i < ii; ++i) {\n      this.startXRefQueue.push(xrefStms[i]);\n      this.readXRef(true);\n    }\n\n    let trailerDict;\n\n    for (let i = 0, ii = trailers.length; i < ii; ++i) {\n      stream.pos = trailers[i];\n      const parser = new _parser.Parser({\n        lexer: new _parser.Lexer(stream),\n        xref: this,\n        allowStreams: true,\n        recoveryMode: true\n      });\n      const obj = parser.getObj();\n\n      if (!(0, _primitives.isCmd)(obj, \"trailer\")) {\n        continue;\n      }\n\n      const dict = parser.getObj();\n\n      if (!(dict instanceof _primitives.Dict)) {\n        continue;\n      }\n\n      try {\n        const rootDict = dict.get(\"Root\");\n\n        if (!(rootDict instanceof _primitives.Dict)) {\n          continue;\n        }\n\n        const pagesDict = rootDict.get(\"Pages\");\n\n        if (!(pagesDict instanceof _primitives.Dict)) {\n          continue;\n        }\n\n        const pagesCount = pagesDict.get(\"Count\");\n\n        if (!Number.isInteger(pagesCount)) {\n          continue;\n        }\n      } catch (ex) {\n        continue;\n      }\n\n      if (dict.has(\"ID\")) {\n        return dict;\n      }\n\n      trailerDict = dict;\n    }\n\n    if (trailerDict) {\n      return trailerDict;\n    }\n\n    if (this.topDict) {\n      return this.topDict;\n    }\n\n    throw new _util.InvalidPDFException(\"Invalid PDF structure.\");\n  }\n\n  readXRef() {\n    let recoveryMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    const stream = this.stream;\n    const startXRefParsedCache = new Set();\n\n    try {\n      while (this.startXRefQueue.length) {\n        const startXRef = this.startXRefQueue[0];\n\n        if (startXRefParsedCache.has(startXRef)) {\n          (0, _util.warn)(\"readXRef - skipping XRef table since it was already parsed.\");\n          this.startXRefQueue.shift();\n          continue;\n        }\n\n        startXRefParsedCache.add(startXRef);\n        stream.pos = startXRef + stream.start;\n        const parser = new _parser.Parser({\n          lexer: new _parser.Lexer(stream),\n          xref: this,\n          allowStreams: true\n        });\n        let obj = parser.getObj();\n        let dict;\n\n        if ((0, _primitives.isCmd)(obj, \"xref\")) {\n          dict = this.processXRefTable(parser);\n\n          if (!this.topDict) {\n            this.topDict = dict;\n          }\n\n          obj = dict.get(\"XRefStm\");\n\n          if (Number.isInteger(obj)) {\n            const pos = obj;\n\n            if (!(pos in this.xrefstms)) {\n              this.xrefstms[pos] = 1;\n              this.startXRefQueue.push(pos);\n            }\n          }\n        } else if (Number.isInteger(obj)) {\n          if (!Number.isInteger(parser.getObj()) || !(0, _primitives.isCmd)(parser.getObj(), \"obj\") || !((obj = parser.getObj()) instanceof _base_stream.BaseStream)) {\n            throw new _util.FormatError(\"Invalid XRef stream\");\n          }\n\n          dict = this.processXRefStream(obj);\n\n          if (!this.topDict) {\n            this.topDict = dict;\n          }\n\n          if (!dict) {\n            throw new _util.FormatError(\"Failed to read XRef stream\");\n          }\n        } else {\n          throw new _util.FormatError(\"Invalid XRef stream header\");\n        }\n\n        obj = dict.get(\"Prev\");\n\n        if (Number.isInteger(obj)) {\n          this.startXRefQueue.push(obj);\n        } else if (obj instanceof _primitives.Ref) {\n          this.startXRefQueue.push(obj.num);\n        }\n\n        this.startXRefQueue.shift();\n      }\n\n      return this.topDict;\n    } catch (e) {\n      if (e instanceof _core_utils.MissingDataException) {\n        throw e;\n      }\n\n      (0, _util.info)(\"(while reading XRef): \" + e);\n      this.startXRefQueue.shift();\n    }\n\n    if (recoveryMode) {\n      return undefined;\n    }\n\n    throw new _core_utils.XRefParseException();\n  }\n\n  getEntry(i) {\n    const xrefEntry = this.entries[i];\n\n    if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n      return xrefEntry;\n    }\n\n    return null;\n  }\n\n  fetchIfRef(obj) {\n    let suppressEncryption = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    if (obj instanceof _primitives.Ref) {\n      return this.fetch(obj, suppressEncryption);\n    }\n\n    return obj;\n  }\n\n  fetch(ref) {\n    let suppressEncryption = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    if (!(ref instanceof _primitives.Ref)) {\n      throw new Error(\"ref object is not a reference\");\n    }\n\n    const num = ref.num;\n\n    const cacheEntry = this._cacheMap.get(num);\n\n    if (cacheEntry !== undefined) {\n      if (cacheEntry instanceof _primitives.Dict && !cacheEntry.objId) {\n        cacheEntry.objId = ref.toString();\n      }\n\n      return cacheEntry;\n    }\n\n    let xrefEntry = this.getEntry(num);\n\n    if (xrefEntry === null) {\n      this._cacheMap.set(num, xrefEntry);\n\n      return xrefEntry;\n    }\n\n    if (this._pendingRefs.has(ref)) {\n      this._pendingRefs.remove(ref);\n\n      (0, _util.warn)(`Ignoring circular reference: ${ref}.`);\n      return _primitives.CIRCULAR_REF;\n    }\n\n    this._pendingRefs.put(ref);\n\n    try {\n      if (xrefEntry.uncompressed) {\n        xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption);\n      } else {\n        xrefEntry = this.fetchCompressed(ref, xrefEntry, suppressEncryption);\n      }\n\n      this._pendingRefs.remove(ref);\n    } catch (ex) {\n      this._pendingRefs.remove(ref);\n\n      throw ex;\n    }\n\n    if (xrefEntry instanceof _primitives.Dict) {\n      xrefEntry.objId = ref.toString();\n    } else if (xrefEntry instanceof _base_stream.BaseStream) {\n      xrefEntry.dict.objId = ref.toString();\n    }\n\n    return xrefEntry;\n  }\n\n  fetchUncompressed(ref, xrefEntry) {\n    let suppressEncryption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    const gen = ref.gen;\n    let num = ref.num;\n\n    if (xrefEntry.gen !== gen) {\n      throw new _core_utils.XRefEntryException(`Inconsistent generation in XRef: ${ref}`);\n    }\n\n    const stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start);\n    const parser = new _parser.Parser({\n      lexer: new _parser.Lexer(stream),\n      xref: this,\n      allowStreams: true\n    });\n    const obj1 = parser.getObj();\n    const obj2 = parser.getObj();\n    const obj3 = parser.getObj();\n\n    if (obj1 !== num || obj2 !== gen || !(obj3 instanceof _primitives.Cmd)) {\n      throw new _core_utils.XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n    }\n\n    if (obj3.cmd !== \"obj\") {\n      if (obj3.cmd.startsWith(\"obj\")) {\n        num = parseInt(obj3.cmd.substring(3), 10);\n\n        if (!Number.isNaN(num)) {\n          return num;\n        }\n      }\n\n      throw new _core_utils.XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n    }\n\n    if (this.encrypt && !suppressEncryption) {\n      xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n    } else {\n      xrefEntry = parser.getObj();\n    }\n\n    if (!(xrefEntry instanceof _base_stream.BaseStream)) {\n      this._cacheMap.set(num, xrefEntry);\n    }\n\n    return xrefEntry;\n  }\n\n  fetchCompressed(ref, xrefEntry) {\n    let suppressEncryption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    const tableOffset = xrefEntry.offset;\n    const stream = this.fetch(_primitives.Ref.get(tableOffset, 0));\n\n    if (!(stream instanceof _base_stream.BaseStream)) {\n      throw new _util.FormatError(\"bad ObjStm stream\");\n    }\n\n    const first = stream.dict.get(\"First\");\n    const n = stream.dict.get(\"N\");\n\n    if (!Number.isInteger(first) || !Number.isInteger(n)) {\n      throw new _util.FormatError(\"invalid first and n parameters for ObjStm stream\");\n    }\n\n    let parser = new _parser.Parser({\n      lexer: new _parser.Lexer(stream),\n      xref: this,\n      allowStreams: true\n    });\n    const nums = new Array(n);\n    const offsets = new Array(n);\n\n    for (let i = 0; i < n; ++i) {\n      const num = parser.getObj();\n\n      if (!Number.isInteger(num)) {\n        throw new _util.FormatError(`invalid object number in the ObjStm stream: ${num}`);\n      }\n\n      const offset = parser.getObj();\n\n      if (!Number.isInteger(offset)) {\n        throw new _util.FormatError(`invalid object offset in the ObjStm stream: ${offset}`);\n      }\n\n      nums[i] = num;\n      offsets[i] = offset;\n    }\n\n    const start = (stream.start || 0) + first;\n    const entries = new Array(n);\n\n    for (let i = 0; i < n; ++i) {\n      const length = i < n - 1 ? offsets[i + 1] - offsets[i] : undefined;\n\n      if (length < 0) {\n        throw new _util.FormatError(\"Invalid offset in the ObjStm stream.\");\n      }\n\n      parser = new _parser.Parser({\n        lexer: new _parser.Lexer(stream.makeSubStream(start + offsets[i], length, stream.dict)),\n        xref: this,\n        allowStreams: true\n      });\n      const obj = parser.getObj();\n      entries[i] = obj;\n\n      if (obj instanceof _base_stream.BaseStream) {\n        continue;\n      }\n\n      const num = nums[i],\n            entry = this.entries[num];\n\n      if (entry && entry.offset === tableOffset && entry.gen === i) {\n        this._cacheMap.set(num, obj);\n      }\n    }\n\n    xrefEntry = entries[xrefEntry.gen];\n\n    if (xrefEntry === undefined) {\n      throw new _core_utils.XRefEntryException(`Bad (compressed) XRef entry: ${ref}`);\n    }\n\n    return xrefEntry;\n  }\n\n  async fetchIfRefAsync(obj, suppressEncryption) {\n    if (obj instanceof _primitives.Ref) {\n      return this.fetchAsync(obj, suppressEncryption);\n    }\n\n    return obj;\n  }\n\n  async fetchAsync(ref, suppressEncryption) {\n    try {\n      return this.fetch(ref, suppressEncryption);\n    } catch (ex) {\n      if (!(ex instanceof _core_utils.MissingDataException)) {\n        throw ex;\n      }\n\n      await this.pdfManager.requestRange(ex.begin, ex.end);\n      return this.fetchAsync(ref, suppressEncryption);\n    }\n  }\n\n  getCatalogObj() {\n    return this.root;\n  }\n\n}\n\nexports.XRef = XRef;\n\n/***/ }),\n/* 227 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.MessageHandler = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CallbackKind = {\n  UNKNOWN: 0,\n  DATA: 1,\n  ERROR: 2\n};\nconst StreamKind = {\n  UNKNOWN: 0,\n  CANCEL: 1,\n  CANCEL_COMPLETE: 2,\n  CLOSE: 3,\n  ENQUEUE: 4,\n  ERROR: 5,\n  PULL: 6,\n  PULL_COMPLETE: 7,\n  START_COMPLETE: 8\n};\n\nfunction wrapReason(reason) {\n  if (!(reason instanceof Error || typeof reason === \"object\" && reason !== null)) {\n    (0, _util.unreachable)('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n  }\n\n  switch (reason.name) {\n    case \"AbortException\":\n      return new _util.AbortException(reason.message);\n\n    case \"MissingPDFException\":\n      return new _util.MissingPDFException(reason.message);\n\n    case \"PasswordException\":\n      return new _util.PasswordException(reason.message, reason.code);\n\n    case \"UnexpectedResponseException\":\n      return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n    case \"UnknownErrorException\":\n      return new _util.UnknownErrorException(reason.message, reason.details);\n\n    default:\n      return new _util.UnknownErrorException(reason.message, reason.toString());\n  }\n}\n\nclass MessageHandler {\n  constructor(sourceName, targetName, comObj) {\n    this.sourceName = sourceName;\n    this.targetName = targetName;\n    this.comObj = comObj;\n    this.callbackId = 1;\n    this.streamId = 1;\n    this.streamSinks = Object.create(null);\n    this.streamControllers = Object.create(null);\n    this.callbackCapabilities = Object.create(null);\n    this.actionHandler = Object.create(null);\n\n    this._onComObjOnMessage = event => {\n      const data = event.data;\n\n      if (data.targetName !== this.sourceName) {\n        return;\n      }\n\n      if (data.stream) {\n        this._processStreamMessage(data);\n\n        return;\n      }\n\n      if (data.callback) {\n        const callbackId = data.callbackId;\n        const capability = this.callbackCapabilities[callbackId];\n\n        if (!capability) {\n          throw new Error(`Cannot resolve callback ${callbackId}`);\n        }\n\n        delete this.callbackCapabilities[callbackId];\n\n        if (data.callback === CallbackKind.DATA) {\n          capability.resolve(data.data);\n        } else if (data.callback === CallbackKind.ERROR) {\n          capability.reject(wrapReason(data.reason));\n        } else {\n          throw new Error(\"Unexpected callback case\");\n        }\n\n        return;\n      }\n\n      const action = this.actionHandler[data.action];\n\n      if (!action) {\n        throw new Error(`Unknown action from worker: ${data.action}`);\n      }\n\n      if (data.callbackId) {\n        const cbSourceName = this.sourceName;\n        const cbTargetName = data.sourceName;\n        new Promise(function (resolve) {\n          resolve(action(data.data));\n        }).then(function (result) {\n          comObj.postMessage({\n            sourceName: cbSourceName,\n            targetName: cbTargetName,\n            callback: CallbackKind.DATA,\n            callbackId: data.callbackId,\n            data: result\n          });\n        }, function (reason) {\n          comObj.postMessage({\n            sourceName: cbSourceName,\n            targetName: cbTargetName,\n            callback: CallbackKind.ERROR,\n            callbackId: data.callbackId,\n            reason: wrapReason(reason)\n          });\n        });\n        return;\n      }\n\n      if (data.streamId) {\n        this._createStreamSink(data);\n\n        return;\n      }\n\n      action(data.data);\n    };\n\n    comObj.addEventListener(\"message\", this._onComObjOnMessage);\n  }\n\n  on(actionName, handler) {\n    const ah = this.actionHandler;\n\n    if (ah[actionName]) {\n      throw new Error(`There is already an actionName called \"${actionName}\"`);\n    }\n\n    ah[actionName] = handler;\n  }\n\n  send(actionName, data, transfers) {\n    this.comObj.postMessage({\n      sourceName: this.sourceName,\n      targetName: this.targetName,\n      action: actionName,\n      data\n    }, transfers);\n  }\n\n  sendWithPromise(actionName, data, transfers) {\n    const callbackId = this.callbackId++;\n    const capability = (0, _util.createPromiseCapability)();\n    this.callbackCapabilities[callbackId] = capability;\n\n    try {\n      this.comObj.postMessage({\n        sourceName: this.sourceName,\n        targetName: this.targetName,\n        action: actionName,\n        callbackId,\n        data\n      }, transfers);\n    } catch (ex) {\n      capability.reject(ex);\n    }\n\n    return capability.promise;\n  }\n\n  sendWithStream(actionName, data, queueingStrategy, transfers) {\n    const streamId = this.streamId++,\n          sourceName = this.sourceName,\n          targetName = this.targetName,\n          comObj = this.comObj;\n    return new ReadableStream({\n      start: controller => {\n        const startCapability = (0, _util.createPromiseCapability)();\n        this.streamControllers[streamId] = {\n          controller,\n          startCall: startCapability,\n          pullCall: null,\n          cancelCall: null,\n          isClosed: false\n        };\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          action: actionName,\n          streamId,\n          data,\n          desiredSize: controller.desiredSize\n        }, transfers);\n        return startCapability.promise;\n      },\n      pull: controller => {\n        const pullCapability = (0, _util.createPromiseCapability)();\n        this.streamControllers[streamId].pullCall = pullCapability;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.PULL,\n          streamId,\n          desiredSize: controller.desiredSize\n        });\n        return pullCapability.promise;\n      },\n      cancel: reason => {\n        (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n        const cancelCapability = (0, _util.createPromiseCapability)();\n        this.streamControllers[streamId].cancelCall = cancelCapability;\n        this.streamControllers[streamId].isClosed = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.CANCEL,\n          streamId,\n          reason: wrapReason(reason)\n        });\n        return cancelCapability.promise;\n      }\n    }, queueingStrategy);\n  }\n\n  _createStreamSink(data) {\n    const streamId = data.streamId,\n          sourceName = this.sourceName,\n          targetName = data.sourceName,\n          comObj = this.comObj;\n    const self = this,\n          action = this.actionHandler[data.action];\n    const streamSink = {\n      enqueue(chunk) {\n        let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n        let transfers = arguments.length > 2 ? arguments[2] : undefined;\n\n        if (this.isCancelled) {\n          return;\n        }\n\n        const lastDesiredSize = this.desiredSize;\n        this.desiredSize -= size;\n\n        if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n          this.sinkCapability = (0, _util.createPromiseCapability)();\n          this.ready = this.sinkCapability.promise;\n        }\n\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.ENQUEUE,\n          streamId,\n          chunk\n        }, transfers);\n      },\n\n      close() {\n        if (this.isCancelled) {\n          return;\n        }\n\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.CLOSE,\n          streamId\n        });\n        delete self.streamSinks[streamId];\n      },\n\n      error(reason) {\n        (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n\n        if (this.isCancelled) {\n          return;\n        }\n\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.ERROR,\n          streamId,\n          reason: wrapReason(reason)\n        });\n      },\n\n      sinkCapability: (0, _util.createPromiseCapability)(),\n      onPull: null,\n      onCancel: null,\n      isCancelled: false,\n      desiredSize: data.desiredSize,\n      ready: null\n    };\n    streamSink.sinkCapability.resolve();\n    streamSink.ready = streamSink.sinkCapability.promise;\n    this.streamSinks[streamId] = streamSink;\n    new Promise(function (resolve) {\n      resolve(action(data.data, streamSink));\n    }).then(function () {\n      comObj.postMessage({\n        sourceName,\n        targetName,\n        stream: StreamKind.START_COMPLETE,\n        streamId,\n        success: true\n      });\n    }, function (reason) {\n      comObj.postMessage({\n        sourceName,\n        targetName,\n        stream: StreamKind.START_COMPLETE,\n        streamId,\n        reason: wrapReason(reason)\n      });\n    });\n  }\n\n  _processStreamMessage(data) {\n    const streamId = data.streamId,\n          sourceName = this.sourceName,\n          targetName = data.sourceName,\n          comObj = this.comObj;\n    const streamController = this.streamControllers[streamId],\n          streamSink = this.streamSinks[streamId];\n\n    switch (data.stream) {\n      case StreamKind.START_COMPLETE:\n        if (data.success) {\n          streamController.startCall.resolve();\n        } else {\n          streamController.startCall.reject(wrapReason(data.reason));\n        }\n\n        break;\n\n      case StreamKind.PULL_COMPLETE:\n        if (data.success) {\n          streamController.pullCall.resolve();\n        } else {\n          streamController.pullCall.reject(wrapReason(data.reason));\n        }\n\n        break;\n\n      case StreamKind.PULL:\n        if (!streamSink) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            success: true\n          });\n          break;\n        }\n\n        if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n          streamSink.sinkCapability.resolve();\n        }\n\n        streamSink.desiredSize = data.desiredSize;\n        new Promise(function (resolve) {\n          resolve(streamSink.onPull && streamSink.onPull());\n        }).then(function () {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            success: true\n          });\n        }, function (reason) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            reason: wrapReason(reason)\n          });\n        });\n        break;\n\n      case StreamKind.ENQUEUE:\n        (0, _util.assert)(streamController, \"enqueue should have stream controller\");\n\n        if (streamController.isClosed) {\n          break;\n        }\n\n        streamController.controller.enqueue(data.chunk);\n        break;\n\n      case StreamKind.CLOSE:\n        (0, _util.assert)(streamController, \"close should have stream controller\");\n\n        if (streamController.isClosed) {\n          break;\n        }\n\n        streamController.isClosed = true;\n        streamController.controller.close();\n\n        this._deleteStreamController(streamController, streamId);\n\n        break;\n\n      case StreamKind.ERROR:\n        (0, _util.assert)(streamController, \"error should have stream controller\");\n        streamController.controller.error(wrapReason(data.reason));\n\n        this._deleteStreamController(streamController, streamId);\n\n        break;\n\n      case StreamKind.CANCEL_COMPLETE:\n        if (data.success) {\n          streamController.cancelCall.resolve();\n        } else {\n          streamController.cancelCall.reject(wrapReason(data.reason));\n        }\n\n        this._deleteStreamController(streamController, streamId);\n\n        break;\n\n      case StreamKind.CANCEL:\n        if (!streamSink) {\n          break;\n        }\n\n        new Promise(function (resolve) {\n          resolve(streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason)));\n        }).then(function () {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.CANCEL_COMPLETE,\n            streamId,\n            success: true\n          });\n        }, function (reason) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.CANCEL_COMPLETE,\n            streamId,\n            reason: wrapReason(reason)\n          });\n        });\n        streamSink.sinkCapability.reject(wrapReason(data.reason));\n        streamSink.isCancelled = true;\n        delete this.streamSinks[streamId];\n        break;\n\n      default:\n        throw new Error(\"Unexpected stream case\");\n    }\n  }\n\n  async _deleteStreamController(streamController, streamId) {\n    await Promise.allSettled([streamController.startCall && streamController.startCall.promise, streamController.pullCall && streamController.pullCall.promise, streamController.cancelCall && streamController.cancelCall.promise]);\n    delete this.streamControllers[streamId];\n  }\n\n  destroy() {\n    this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n  }\n\n}\n\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 228 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PDFWorkerStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass PDFWorkerStream {\n  constructor(msgHandler) {\n    this._msgHandler = msgHandler;\n    this._contentLength = null;\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  getFullReader() {\n    (0, _util.assert)(!this._fullRequestReader, \"PDFWorkerStream.getFullReader can only be called once.\");\n    this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(begin, end) {\n    const reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\n\n    this._rangeRequestReaders.push(reader);\n\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.cancel(reason);\n    }\n\n    for (const reader of this._rangeRequestReaders.slice(0)) {\n      reader.cancel(reason);\n    }\n  }\n\n}\n\nexports.PDFWorkerStream = PDFWorkerStream;\n\nclass PDFWorkerStreamReader {\n  constructor(msgHandler) {\n    this._msgHandler = msgHandler;\n    this.onProgress = null;\n    this._contentLength = null;\n    this._isRangeSupported = false;\n    this._isStreamingSupported = false;\n\n    const readableStream = this._msgHandler.sendWithStream(\"GetReader\");\n\n    this._reader = readableStream.getReader();\n    this._headersReady = this._msgHandler.sendWithPromise(\"ReaderHeadersReady\").then(data => {\n      this._isStreamingSupported = data.isStreamingSupported;\n      this._isRangeSupported = data.isRangeSupported;\n      this._contentLength = data.contentLength;\n    });\n  }\n\n  get headersReady() {\n    return this._headersReady;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  async read() {\n    const {\n      value,\n      done\n    } = await this._reader.read();\n\n    if (done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n\n    return {\n      value: value.buffer,\n      done: false\n    };\n  }\n\n  cancel(reason) {\n    this._reader.cancel(reason);\n  }\n\n}\n\nclass PDFWorkerStreamRangeReader {\n  constructor(begin, end, msgHandler) {\n    this._msgHandler = msgHandler;\n    this.onProgress = null;\n\n    const readableStream = this._msgHandler.sendWithStream(\"GetRangeReader\", {\n      begin,\n      end\n    });\n\n    this._reader = readableStream.getReader();\n  }\n\n  get isStreamingSupported() {\n    return false;\n  }\n\n  async read() {\n    const {\n      value,\n      done\n    } = await this._reader.read();\n\n    if (done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n\n    return {\n      value: value.buffer,\n      done: false\n    };\n  }\n\n  cancel(reason) {\n    this._reader.cancel(reason);\n  }\n\n}\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__w_pdfjs_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__w_pdfjs_require__.o(definition, key) && !__w_pdfjs_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__w_pdfjs_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__w_pdfjs_require__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n(() => {\n\"use strict\";\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nObject.defineProperty(exports, \"WorkerMessageHandler\", ({\n  enumerable: true,\n  get: function () {\n    return _worker.WorkerMessageHandler;\n  }\n}));\n\nvar _worker = __w_pdfjs_require__(1);\n\nconst pdfjsVersion = '2.16.105';\nconst pdfjsBuild = '172ccdbe5';\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=pdf.worker.js.map\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer, __webpack_require__(/*! ./../../../node-libs-browser/mock/process.js */ \"./node_modules/node-libs-browser/mock/process.js\"), __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/pdfjs-dist/legacy/build/pdf.worker.js?");

/***/ }),

/***/ "./node_modules/qs/lib/formats.js":
/*!****************************************!*\
  !*** ./node_modules/qs/lib/formats.js ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n    RFC1738: 'RFC1738',\n    RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n    'default': Format.RFC3986,\n    formatters: {\n        RFC1738: function (value) {\n            return replace.call(value, percentTwenties, '+');\n        },\n        RFC3986: function (value) {\n            return String(value);\n        }\n    },\n    RFC1738: Format.RFC1738,\n    RFC3986: Format.RFC3986\n};\n\n\n//# sourceURL=webpack:///./node_modules/qs/lib/formats.js?");

/***/ }),

/***/ "./node_modules/qs/lib/index.js":
/*!**************************************!*\
  !*** ./node_modules/qs/lib/index.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar stringify = __webpack_require__(/*! ./stringify */ \"./node_modules/qs/lib/stringify.js\");\nvar parse = __webpack_require__(/*! ./parse */ \"./node_modules/qs/lib/parse.js\");\nvar formats = __webpack_require__(/*! ./formats */ \"./node_modules/qs/lib/formats.js\");\n\nmodule.exports = {\n    formats: formats,\n    parse: parse,\n    stringify: stringify\n};\n\n\n//# sourceURL=webpack:///./node_modules/qs/lib/index.js?");

/***/ }),

/***/ "./node_modules/qs/lib/parse.js":
/*!**************************************!*\
  !*** ./node_modules/qs/lib/parse.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/qs/lib/utils.js\");\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n    allowDots: false,\n    allowEmptyArrays: false,\n    allowPrototypes: false,\n    allowSparse: false,\n    arrayLimit: 20,\n    charset: 'utf-8',\n    charsetSentinel: false,\n    comma: false,\n    decodeDotInKeys: false,\n    decoder: utils.decode,\n    delimiter: '&',\n    depth: 5,\n    duplicates: 'combine',\n    ignoreQueryPrefix: false,\n    interpretNumericEntities: false,\n    parameterLimit: 1000,\n    parseArrays: true,\n    plainObjects: false,\n    strictDepth: false,\n    strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n    return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n        return String.fromCharCode(parseInt(numberStr, 10));\n    });\n};\n\nvar parseArrayValue = function (val, options) {\n    if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n        return val.split(',');\n    }\n\n    return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('&#10003;')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n    var obj = { __proto__: null };\n\n    var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n    cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n    var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n    var parts = cleanStr.split(options.delimiter, limit);\n    var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n    var i;\n\n    var charset = options.charset;\n    if (options.charsetSentinel) {\n        for (i = 0; i < parts.length; ++i) {\n            if (parts[i].indexOf('utf8=') === 0) {\n                if (parts[i] === charsetSentinel) {\n                    charset = 'utf-8';\n                } else if (parts[i] === isoSentinel) {\n                    charset = 'iso-8859-1';\n                }\n                skipIndex = i;\n                i = parts.length; // The eslint settings do not allow break;\n            }\n        }\n    }\n\n    for (i = 0; i < parts.length; ++i) {\n        if (i === skipIndex) {\n            continue;\n        }\n        var part = parts[i];\n\n        var bracketEqualsPos = part.indexOf(']=');\n        var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n        var key, val;\n        if (pos === -1) {\n            key = options.decoder(part, defaults.decoder, charset, 'key');\n            val = options.strictNullHandling ? null : '';\n        } else {\n            key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n            val = utils.maybeMap(\n                parseArrayValue(part.slice(pos + 1), options),\n                function (encodedVal) {\n                    return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n                }\n            );\n        }\n\n        if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n            val = interpretNumericEntities(val);\n        }\n\n        if (part.indexOf('[]=') > -1) {\n            val = isArray(val) ? [val] : val;\n        }\n\n        var existing = has.call(obj, key);\n        if (existing && options.duplicates === 'combine') {\n            obj[key] = utils.combine(obj[key], val);\n        } else if (!existing || options.duplicates === 'last') {\n            obj[key] = val;\n        }\n    }\n\n    return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n    var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n    for (var i = chain.length - 1; i >= 0; --i) {\n        var obj;\n        var root = chain[i];\n\n        if (root === '[]' && options.parseArrays) {\n            obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))\n                ? []\n                : [].concat(leaf);\n        } else {\n            obj = options.plainObjects ? Object.create(null) : {};\n            var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n            var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;\n            var index = parseInt(decodedRoot, 10);\n            if (!options.parseArrays && decodedRoot === '') {\n                obj = { 0: leaf };\n            } else if (\n                !isNaN(index)\n                && root !== decodedRoot\n                && String(index) === decodedRoot\n                && index >= 0\n                && (options.parseArrays && index <= options.arrayLimit)\n            ) {\n                obj = [];\n                obj[index] = leaf;\n            } else if (decodedRoot !== '__proto__') {\n                obj[decodedRoot] = leaf;\n            }\n        }\n\n        leaf = obj;\n    }\n\n    return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n    if (!givenKey) {\n        return;\n    }\n\n    // Transform dot notation to bracket notation\n    var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n    // The regex chunks\n\n    var brackets = /(\\[[^[\\]]*])/;\n    var child = /(\\[[^[\\]]*])/g;\n\n    // Get the parent\n\n    var segment = options.depth > 0 && brackets.exec(key);\n    var parent = segment ? key.slice(0, segment.index) : key;\n\n    // Stash the parent if it exists\n\n    var keys = [];\n    if (parent) {\n        // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n        if (!options.plainObjects && has.call(Object.prototype, parent)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        keys.push(parent);\n    }\n\n    // Loop through children appending to the array until we hit depth\n\n    var i = 0;\n    while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n        i += 1;\n        if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n        keys.push(segment[1]);\n    }\n\n    // If there's a remainder, check strictDepth option for throw, else just add whatever is left\n\n    if (segment) {\n        if (options.strictDepth === true) {\n            throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');\n        }\n        keys.push('[' + key.slice(segment.index) + ']');\n    }\n\n    return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n    if (!opts) {\n        return defaults;\n    }\n\n    if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n        throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n    }\n\n    if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {\n        throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');\n    }\n\n    if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {\n        throw new TypeError('Decoder has to be a function.');\n    }\n\n    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n    }\n    var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n    var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;\n\n    if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {\n        throw new TypeError('The duplicates option must be either combine, first, or last');\n    }\n\n    var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n    return {\n        allowDots: allowDots,\n        allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n        allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n        allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n        arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n        decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,\n        decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n        delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n        // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n        depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n        duplicates: duplicates,\n        ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n        interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n        parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n        parseArrays: opts.parseArrays !== false,\n        plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n        strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,\n        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n    };\n};\n\nmodule.exports = function (str, opts) {\n    var options = normalizeParseOptions(opts);\n\n    if (str === '' || str === null || typeof str === 'undefined') {\n        return options.plainObjects ? Object.create(null) : {};\n    }\n\n    var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n    var obj = options.plainObjects ? Object.create(null) : {};\n\n    // Iterate over the keys and setup the new object\n\n    var keys = Object.keys(tempObj);\n    for (var i = 0; i < keys.length; ++i) {\n        var key = keys[i];\n        var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n        obj = utils.merge(obj, newObj, options);\n    }\n\n    if (options.allowSparse === true) {\n        return obj;\n    }\n\n    return utils.compact(obj);\n};\n\n\n//# sourceURL=webpack:///./node_modules/qs/lib/parse.js?");

/***/ }),

/***/ "./node_modules/qs/lib/stringify.js":
/*!******************************************!*\
  !*** ./node_modules/qs/lib/stringify.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar getSideChannel = __webpack_require__(/*! side-channel */ \"./node_modules/side-channel/index.js\");\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/qs/lib/utils.js\");\nvar formats = __webpack_require__(/*! ./formats */ \"./node_modules/qs/lib/formats.js\");\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n    brackets: function brackets(prefix) {\n        return prefix + '[]';\n    },\n    comma: 'comma',\n    indices: function indices(prefix, key) {\n        return prefix + '[' + key + ']';\n    },\n    repeat: function repeat(prefix) {\n        return prefix;\n    }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n    push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n    addQueryPrefix: false,\n    allowDots: false,\n    allowEmptyArrays: false,\n    arrayFormat: 'indices',\n    charset: 'utf-8',\n    charsetSentinel: false,\n    delimiter: '&',\n    encode: true,\n    encodeDotInKeys: false,\n    encoder: utils.encode,\n    encodeValuesOnly: false,\n    format: defaultFormat,\n    formatter: formats.formatters[defaultFormat],\n    // deprecated\n    indices: false,\n    serializeDate: function serializeDate(date) {\n        return toISO.call(date);\n    },\n    skipNulls: false,\n    strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n    return typeof v === 'string'\n        || typeof v === 'number'\n        || typeof v === 'boolean'\n        || typeof v === 'symbol'\n        || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n    object,\n    prefix,\n    generateArrayPrefix,\n    commaRoundTrip,\n    allowEmptyArrays,\n    strictNullHandling,\n    skipNulls,\n    encodeDotInKeys,\n    encoder,\n    filter,\n    sort,\n    allowDots,\n    serializeDate,\n    format,\n    formatter,\n    encodeValuesOnly,\n    charset,\n    sideChannel\n) {\n    var obj = object;\n\n    var tmpSc = sideChannel;\n    var step = 0;\n    var findFlag = false;\n    while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n        // Where object last appeared in the ref tree\n        var pos = tmpSc.get(object);\n        step += 1;\n        if (typeof pos !== 'undefined') {\n            if (pos === step) {\n                throw new RangeError('Cyclic object value');\n            } else {\n                findFlag = true; // Break while\n            }\n        }\n        if (typeof tmpSc.get(sentinel) === 'undefined') {\n            step = 0;\n        }\n    }\n\n    if (typeof filter === 'function') {\n        obj = filter(prefix, obj);\n    } else if (obj instanceof Date) {\n        obj = serializeDate(obj);\n    } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n        obj = utils.maybeMap(obj, function (value) {\n            if (value instanceof Date) {\n                return serializeDate(value);\n            }\n            return value;\n        });\n    }\n\n    if (obj === null) {\n        if (strictNullHandling) {\n            return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n        }\n\n        obj = '';\n    }\n\n    if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n        if (encoder) {\n            var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n            return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n        }\n        return [formatter(prefix) + '=' + formatter(String(obj))];\n    }\n\n    var values = [];\n\n    if (typeof obj === 'undefined') {\n        return values;\n    }\n\n    var objKeys;\n    if (generateArrayPrefix === 'comma' && isArray(obj)) {\n        // we need to join elements in\n        if (encodeValuesOnly && encoder) {\n            obj = utils.maybeMap(obj, encoder);\n        }\n        objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n    } else if (isArray(filter)) {\n        objKeys = filter;\n    } else {\n        var keys = Object.keys(obj);\n        objKeys = sort ? keys.sort(sort) : keys;\n    }\n\n    var encodedPrefix = encodeDotInKeys ? prefix.replace(/\\./g, '%2E') : prefix;\n\n    var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;\n\n    if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n        return adjustedPrefix + '[]';\n    }\n\n    for (var j = 0; j < objKeys.length; ++j) {\n        var key = objKeys[j];\n        var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n        if (skipNulls && value === null) {\n            continue;\n        }\n\n        var encodedKey = allowDots && encodeDotInKeys ? key.replace(/\\./g, '%2E') : key;\n        var keyPrefix = isArray(obj)\n            ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix\n            : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');\n\n        sideChannel.set(object, step);\n        var valueSideChannel = getSideChannel();\n        valueSideChannel.set(sentinel, sideChannel);\n        pushToArray(values, stringify(\n            value,\n            keyPrefix,\n            generateArrayPrefix,\n            commaRoundTrip,\n            allowEmptyArrays,\n            strictNullHandling,\n            skipNulls,\n            encodeDotInKeys,\n            generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n            filter,\n            sort,\n            allowDots,\n            serializeDate,\n            format,\n            formatter,\n            encodeValuesOnly,\n            charset,\n            valueSideChannel\n        ));\n    }\n\n    return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n    if (!opts) {\n        return defaults;\n    }\n\n    if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n        throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n    }\n\n    if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n        throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n    }\n\n    if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n        throw new TypeError('Encoder has to be a function.');\n    }\n\n    var charset = opts.charset || defaults.charset;\n    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n    }\n\n    var format = formats['default'];\n    if (typeof opts.format !== 'undefined') {\n        if (!has.call(formats.formatters, opts.format)) {\n            throw new TypeError('Unknown format option provided.');\n        }\n        format = opts.format;\n    }\n    var formatter = formats.formatters[format];\n\n    var filter = defaults.filter;\n    if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n        filter = opts.filter;\n    }\n\n    var arrayFormat;\n    if (opts.arrayFormat in arrayPrefixGenerators) {\n        arrayFormat = opts.arrayFormat;\n    } else if ('indices' in opts) {\n        arrayFormat = opts.indices ? 'indices' : 'repeat';\n    } else {\n        arrayFormat = defaults.arrayFormat;\n    }\n\n    if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n        throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n    }\n\n    var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n    return {\n        addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n        allowDots: allowDots,\n        allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n        arrayFormat: arrayFormat,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        commaRoundTrip: opts.commaRoundTrip,\n        delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n        encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n        encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n        encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n        encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n        filter: filter,\n        format: format,\n        formatter: formatter,\n        serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n        skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n        sort: typeof opts.sort === 'function' ? opts.sort : null,\n        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n    };\n};\n\nmodule.exports = function (object, opts) {\n    var obj = object;\n    var options = normalizeStringifyOptions(opts);\n\n    var objKeys;\n    var filter;\n\n    if (typeof options.filter === 'function') {\n        filter = options.filter;\n        obj = filter('', obj);\n    } else if (isArray(options.filter)) {\n        filter = options.filter;\n        objKeys = filter;\n    }\n\n    var keys = [];\n\n    if (typeof obj !== 'object' || obj === null) {\n        return '';\n    }\n\n    var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];\n    var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n\n    if (!objKeys) {\n        objKeys = Object.keys(obj);\n    }\n\n    if (options.sort) {\n        objKeys.sort(options.sort);\n    }\n\n    var sideChannel = getSideChannel();\n    for (var i = 0; i < objKeys.length; ++i) {\n        var key = objKeys[i];\n\n        if (options.skipNulls && obj[key] === null) {\n            continue;\n        }\n        pushToArray(keys, stringify(\n            obj[key],\n            key,\n            generateArrayPrefix,\n            commaRoundTrip,\n            options.allowEmptyArrays,\n            options.strictNullHandling,\n            options.skipNulls,\n            options.encodeDotInKeys,\n            options.encode ? options.encoder : null,\n            options.filter,\n            options.sort,\n            options.allowDots,\n            options.serializeDate,\n            options.format,\n            options.formatter,\n            options.encodeValuesOnly,\n            options.charset,\n            sideChannel\n        ));\n    }\n\n    var joined = keys.join(options.delimiter);\n    var prefix = options.addQueryPrefix === true ? '?' : '';\n\n    if (options.charsetSentinel) {\n        if (options.charset === 'iso-8859-1') {\n            // encodeURIComponent('&#10003;'), the \"numeric entity\" representation of a checkmark\n            prefix += 'utf8=%26%2310003%3B&';\n        } else {\n            // encodeURIComponent('✓')\n            prefix += 'utf8=%E2%9C%93&';\n        }\n    }\n\n    return joined.length > 0 ? prefix + joined : '';\n};\n\n\n//# sourceURL=webpack:///./node_modules/qs/lib/stringify.js?");

/***/ }),

/***/ "./node_modules/qs/lib/utils.js":
/*!**************************************!*\
  !*** ./node_modules/qs/lib/utils.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar formats = __webpack_require__(/*! ./formats */ \"./node_modules/qs/lib/formats.js\");\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n    var array = [];\n    for (var i = 0; i < 256; ++i) {\n        array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n    }\n\n    return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n    while (queue.length > 1) {\n        var item = queue.pop();\n        var obj = item.obj[item.prop];\n\n        if (isArray(obj)) {\n            var compacted = [];\n\n            for (var j = 0; j < obj.length; ++j) {\n                if (typeof obj[j] !== 'undefined') {\n                    compacted.push(obj[j]);\n                }\n            }\n\n            item.obj[item.prop] = compacted;\n        }\n    }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n    var obj = options && options.plainObjects ? Object.create(null) : {};\n    for (var i = 0; i < source.length; ++i) {\n        if (typeof source[i] !== 'undefined') {\n            obj[i] = source[i];\n        }\n    }\n\n    return obj;\n};\n\nvar merge = function merge(target, source, options) {\n    /* eslint no-param-reassign: 0 */\n    if (!source) {\n        return target;\n    }\n\n    if (typeof source !== 'object') {\n        if (isArray(target)) {\n            target.push(source);\n        } else if (target && typeof target === 'object') {\n            if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n                target[source] = true;\n            }\n        } else {\n            return [target, source];\n        }\n\n        return target;\n    }\n\n    if (!target || typeof target !== 'object') {\n        return [target].concat(source);\n    }\n\n    var mergeTarget = target;\n    if (isArray(target) && !isArray(source)) {\n        mergeTarget = arrayToObject(target, options);\n    }\n\n    if (isArray(target) && isArray(source)) {\n        source.forEach(function (item, i) {\n            if (has.call(target, i)) {\n                var targetItem = target[i];\n                if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n                    target[i] = merge(targetItem, item, options);\n                } else {\n                    target.push(item);\n                }\n            } else {\n                target[i] = item;\n            }\n        });\n        return target;\n    }\n\n    return Object.keys(source).reduce(function (acc, key) {\n        var value = source[key];\n\n        if (has.call(acc, key)) {\n            acc[key] = merge(acc[key], value, options);\n        } else {\n            acc[key] = value;\n        }\n        return acc;\n    }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n    return Object.keys(source).reduce(function (acc, key) {\n        acc[key] = source[key];\n        return acc;\n    }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n    var strWithoutPlus = str.replace(/\\+/g, ' ');\n    if (charset === 'iso-8859-1') {\n        // unescape never throws, no try...catch needed:\n        return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n    }\n    // utf-8\n    try {\n        return decodeURIComponent(strWithoutPlus);\n    } catch (e) {\n        return strWithoutPlus;\n    }\n};\n\nvar limit = 1024;\n\n/* eslint operator-linebreak: [2, \"before\"] */\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n    // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n    // It has been adapted here for stricter adherence to RFC 3986\n    if (str.length === 0) {\n        return str;\n    }\n\n    var string = str;\n    if (typeof str === 'symbol') {\n        string = Symbol.prototype.toString.call(str);\n    } else if (typeof str !== 'string') {\n        string = String(str);\n    }\n\n    if (charset === 'iso-8859-1') {\n        return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n            return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n        });\n    }\n\n    var out = '';\n    for (var j = 0; j < string.length; j += limit) {\n        var segment = string.length >= limit ? string.slice(j, j + limit) : string;\n        var arr = [];\n\n        for (var i = 0; i < segment.length; ++i) {\n            var c = segment.charCodeAt(i);\n            if (\n                c === 0x2D // -\n                || c === 0x2E // .\n                || c === 0x5F // _\n                || c === 0x7E // ~\n                || (c >= 0x30 && c <= 0x39) // 0-9\n                || (c >= 0x41 && c <= 0x5A) // a-z\n                || (c >= 0x61 && c <= 0x7A) // A-Z\n                || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n            ) {\n                arr[arr.length] = segment.charAt(i);\n                continue;\n            }\n\n            if (c < 0x80) {\n                arr[arr.length] = hexTable[c];\n                continue;\n            }\n\n            if (c < 0x800) {\n                arr[arr.length] = hexTable[0xC0 | (c >> 6)]\n                    + hexTable[0x80 | (c & 0x3F)];\n                continue;\n            }\n\n            if (c < 0xD800 || c >= 0xE000) {\n                arr[arr.length] = hexTable[0xE0 | (c >> 12)]\n                    + hexTable[0x80 | ((c >> 6) & 0x3F)]\n                    + hexTable[0x80 | (c & 0x3F)];\n                continue;\n            }\n\n            i += 1;\n            c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));\n\n            arr[arr.length] = hexTable[0xF0 | (c >> 18)]\n                + hexTable[0x80 | ((c >> 12) & 0x3F)]\n                + hexTable[0x80 | ((c >> 6) & 0x3F)]\n                + hexTable[0x80 | (c & 0x3F)];\n        }\n\n        out += arr.join('');\n    }\n\n    return out;\n};\n\nvar compact = function compact(value) {\n    var queue = [{ obj: { o: value }, prop: 'o' }];\n    var refs = [];\n\n    for (var i = 0; i < queue.length; ++i) {\n        var item = queue[i];\n        var obj = item.obj[item.prop];\n\n        var keys = Object.keys(obj);\n        for (var j = 0; j < keys.length; ++j) {\n            var key = keys[j];\n            var val = obj[key];\n            if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n                queue.push({ obj: obj, prop: key });\n                refs.push(val);\n            }\n        }\n    }\n\n    compactQueue(queue);\n\n    return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n    return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n    if (!obj || typeof obj !== 'object') {\n        return false;\n    }\n\n    return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n    return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n    if (isArray(val)) {\n        var mapped = [];\n        for (var i = 0; i < val.length; i += 1) {\n            mapped.push(fn(val[i]));\n        }\n        return mapped;\n    }\n    return fn(val);\n};\n\nmodule.exports = {\n    arrayToObject: arrayToObject,\n    assign: assign,\n    combine: combine,\n    compact: compact,\n    decode: decode,\n    encode: encode,\n    isBuffer: isBuffer,\n    isRegExp: isRegExp,\n    maybeMap: maybeMap,\n    merge: merge\n};\n\n\n//# sourceURL=webpack:///./node_modules/qs/lib/utils.js?");

/***/ }),

/***/ "./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js":
/*!*************************************************************************!*\
  !*** ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js ***!
  \*************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n    if (typeof Map !== 'undefined') {\r\n        return Map;\r\n    }\r\n    /**\r\n     * Returns index in provided array that matches the specified key.\r\n     *\r\n     * @param {Array<Array>} arr\r\n     * @param {*} key\r\n     * @returns {number}\r\n     */\r\n    function getIndex(arr, key) {\r\n        var result = -1;\r\n        arr.some(function (entry, index) {\r\n            if (entry[0] === key) {\r\n                result = index;\r\n                return true;\r\n            }\r\n            return false;\r\n        });\r\n        return result;\r\n    }\r\n    return /** @class */ (function () {\r\n        function class_1() {\r\n            this.__entries__ = [];\r\n        }\r\n        Object.defineProperty(class_1.prototype, \"size\", {\r\n            /**\r\n             * @returns {boolean}\r\n             */\r\n            get: function () {\r\n                return this.__entries__.length;\r\n            },\r\n            enumerable: true,\r\n            configurable: true\r\n        });\r\n        /**\r\n         * @param {*} key\r\n         * @returns {*}\r\n         */\r\n        class_1.prototype.get = function (key) {\r\n            var index = getIndex(this.__entries__, key);\r\n            var entry = this.__entries__[index];\r\n            return entry && entry[1];\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @param {*} value\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.set = function (key, value) {\r\n            var index = getIndex(this.__entries__, key);\r\n            if (~index) {\r\n                this.__entries__[index][1] = value;\r\n            }\r\n            else {\r\n                this.__entries__.push([key, value]);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.delete = function (key) {\r\n            var entries = this.__entries__;\r\n            var index = getIndex(entries, key);\r\n            if (~index) {\r\n                entries.splice(index, 1);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.has = function (key) {\r\n            return !!~getIndex(this.__entries__, key);\r\n        };\r\n        /**\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.clear = function () {\r\n            this.__entries__.splice(0);\r\n        };\r\n        /**\r\n         * @param {Function} callback\r\n         * @param {*} [ctx=null]\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.forEach = function (callback, ctx) {\r\n            if (ctx === void 0) { ctx = null; }\r\n            for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n                var entry = _a[_i];\r\n                callback.call(ctx, entry[1], entry[0]);\r\n            }\r\n        };\r\n        return class_1;\r\n    }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n    if (typeof global !== 'undefined' && global.Math === Math) {\r\n        return global;\r\n    }\r\n    if (typeof self !== 'undefined' && self.Math === Math) {\r\n        return self;\r\n    }\r\n    if (typeof window !== 'undefined' && window.Math === Math) {\r\n        return window;\r\n    }\r\n    // eslint-disable-next-line no-new-func\r\n    return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n    if (typeof requestAnimationFrame === 'function') {\r\n        // It's required to use a bounded function because IE sometimes throws\r\n        // an \"Invalid calling object\" error if rAF is invoked without the global\r\n        // object on the left hand side.\r\n        return requestAnimationFrame.bind(global$1);\r\n    }\r\n    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n    var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n    /**\r\n     * Invokes the original callback function and schedules new invocation if\r\n     * the \"proxy\" was called during current request.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function resolvePending() {\r\n        if (leadingCall) {\r\n            leadingCall = false;\r\n            callback();\r\n        }\r\n        if (trailingCall) {\r\n            proxy();\r\n        }\r\n    }\r\n    /**\r\n     * Callback invoked after the specified delay. It will further postpone\r\n     * invocation of the original function delegating it to the\r\n     * requestAnimationFrame.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function timeoutCallback() {\r\n        requestAnimationFrame$1(resolvePending);\r\n    }\r\n    /**\r\n     * Schedules invocation of the original function.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function proxy() {\r\n        var timeStamp = Date.now();\r\n        if (leadingCall) {\r\n            // Reject immediately following calls.\r\n            if (timeStamp - lastCallTime < trailingTimeout) {\r\n                return;\r\n            }\r\n            // Schedule new call to be in invoked when the pending one is resolved.\r\n            // This is important for \"transitions\" which never actually start\r\n            // immediately so there is a chance that we might miss one if change\r\n            // happens amids the pending invocation.\r\n            trailingCall = true;\r\n        }\r\n        else {\r\n            leadingCall = true;\r\n            trailingCall = false;\r\n            setTimeout(timeoutCallback, delay);\r\n        }\r\n        lastCallTime = timeStamp;\r\n    }\r\n    return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserverController.\r\n     *\r\n     * @private\r\n     */\r\n    function ResizeObserverController() {\r\n        /**\r\n         * Indicates whether DOM listeners have been added.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.connected_ = false;\r\n        /**\r\n         * Tells that controller has subscribed for Mutation Events.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.mutationEventsAdded_ = false;\r\n        /**\r\n         * Keeps reference to the instance of MutationObserver.\r\n         *\r\n         * @private {MutationObserver}\r\n         */\r\n        this.mutationsObserver_ = null;\r\n        /**\r\n         * A list of connected observers.\r\n         *\r\n         * @private {Array<ResizeObserverSPI>}\r\n         */\r\n        this.observers_ = [];\r\n        this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n        this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n    }\r\n    /**\r\n     * Adds observer to observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be added.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.addObserver = function (observer) {\r\n        if (!~this.observers_.indexOf(observer)) {\r\n            this.observers_.push(observer);\r\n        }\r\n        // Add listeners if they haven't been added yet.\r\n        if (!this.connected_) {\r\n            this.connect_();\r\n        }\r\n    };\r\n    /**\r\n     * Removes observer from observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.removeObserver = function (observer) {\r\n        var observers = this.observers_;\r\n        var index = observers.indexOf(observer);\r\n        // Remove observer if it's present in registry.\r\n        if (~index) {\r\n            observers.splice(index, 1);\r\n        }\r\n        // Remove listeners if controller has no connected observers.\r\n        if (!observers.length && this.connected_) {\r\n            this.disconnect_();\r\n        }\r\n    };\r\n    /**\r\n     * Invokes the update of observers. It will continue running updates insofar\r\n     * it detects changes.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.refresh = function () {\r\n        var changesDetected = this.updateObservers_();\r\n        // Continue running updates if changes have been detected as there might\r\n        // be future ones caused by CSS transitions.\r\n        if (changesDetected) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Updates every observer from observers list and notifies them of queued\r\n     * entries.\r\n     *\r\n     * @private\r\n     * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n     *      dimensions of it's elements.\r\n     */\r\n    ResizeObserverController.prototype.updateObservers_ = function () {\r\n        // Collect observers that have active observations.\r\n        var activeObservers = this.observers_.filter(function (observer) {\r\n            return observer.gatherActive(), observer.hasActive();\r\n        });\r\n        // Deliver notifications in a separate cycle in order to avoid any\r\n        // collisions between observers, e.g. when multiple instances of\r\n        // ResizeObserver are tracking the same element and the callback of one\r\n        // of them changes content dimensions of the observed target. Sometimes\r\n        // this may result in notifications being blocked for the rest of observers.\r\n        activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n        return activeObservers.length > 0;\r\n    };\r\n    /**\r\n     * Initializes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.connect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already added.\r\n        if (!isBrowser || this.connected_) {\r\n            return;\r\n        }\r\n        // Subscription to the \"Transitionend\" event is used as a workaround for\r\n        // delayed transitions. This way it's possible to capture at least the\r\n        // final state of an element.\r\n        document.addEventListener('transitionend', this.onTransitionEnd_);\r\n        window.addEventListener('resize', this.refresh);\r\n        if (mutationObserverSupported) {\r\n            this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n            this.mutationsObserver_.observe(document, {\r\n                attributes: true,\r\n                childList: true,\r\n                characterData: true,\r\n                subtree: true\r\n            });\r\n        }\r\n        else {\r\n            document.addEventListener('DOMSubtreeModified', this.refresh);\r\n            this.mutationEventsAdded_ = true;\r\n        }\r\n        this.connected_ = true;\r\n    };\r\n    /**\r\n     * Removes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.disconnect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already removed.\r\n        if (!isBrowser || !this.connected_) {\r\n            return;\r\n        }\r\n        document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n        window.removeEventListener('resize', this.refresh);\r\n        if (this.mutationsObserver_) {\r\n            this.mutationsObserver_.disconnect();\r\n        }\r\n        if (this.mutationEventsAdded_) {\r\n            document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n        }\r\n        this.mutationsObserver_ = null;\r\n        this.mutationEventsAdded_ = false;\r\n        this.connected_ = false;\r\n    };\r\n    /**\r\n     * \"Transitionend\" event handler.\r\n     *\r\n     * @private\r\n     * @param {TransitionEvent} event\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n        var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n        // Detect whether transition may affect dimensions of an element.\r\n        var isReflowProperty = transitionKeys.some(function (key) {\r\n            return !!~propertyName.indexOf(key);\r\n        });\r\n        if (isReflowProperty) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Returns instance of the ResizeObserverController.\r\n     *\r\n     * @returns {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.getInstance = function () {\r\n        if (!this.instance_) {\r\n            this.instance_ = new ResizeObserverController();\r\n        }\r\n        return this.instance_;\r\n    };\r\n    /**\r\n     * Holds reference to the controller's instance.\r\n     *\r\n     * @private {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.instance_ = null;\r\n    return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n        var key = _a[_i];\r\n        Object.defineProperty(target, key, {\r\n            value: props[key],\r\n            enumerable: false,\r\n            writable: false,\r\n            configurable: true\r\n        });\r\n    }\r\n    return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n    // Assume that the element is an instance of Node, which means that it\r\n    // has the \"ownerDocument\" property from which we can retrieve a\r\n    // corresponding global object.\r\n    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n    // Return the local global object if it's not possible extract one from\r\n    // provided element.\r\n    return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n    return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n    var positions = [];\r\n    for (var _i = 1; _i < arguments.length; _i++) {\r\n        positions[_i - 1] = arguments[_i];\r\n    }\r\n    return positions.reduce(function (size, position) {\r\n        var value = styles['border-' + position + '-width'];\r\n        return size + toFloat(value);\r\n    }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n    var positions = ['top', 'right', 'bottom', 'left'];\r\n    var paddings = {};\r\n    for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n        var position = positions_1[_i];\r\n        var value = styles['padding-' + position];\r\n        paddings[position] = toFloat(value);\r\n    }\r\n    return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n *      to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n    var bbox = target.getBBox();\r\n    return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n    // Client width & height properties can't be\r\n    // used exclusively as they provide rounded values.\r\n    var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n    // By this condition we can catch all non-replaced inline, hidden and\r\n    // detached elements. Though elements with width & height properties less\r\n    // than 0.5 will be discarded as well.\r\n    //\r\n    // Without it we would need to implement separate methods for each of\r\n    // those cases and it's not possible to perform a precise and performance\r\n    // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n    // gives wrong results for elements with width & height less than 0.5.\r\n    if (!clientWidth && !clientHeight) {\r\n        return emptyRect;\r\n    }\r\n    var styles = getWindowOf(target).getComputedStyle(target);\r\n    var paddings = getPaddings(styles);\r\n    var horizPad = paddings.left + paddings.right;\r\n    var vertPad = paddings.top + paddings.bottom;\r\n    // Computed styles of width & height are being used because they are the\r\n    // only dimensions available to JS that contain non-rounded values. It could\r\n    // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n    // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n    var width = toFloat(styles.width), height = toFloat(styles.height);\r\n    // Width & height include paddings and borders when the 'border-box' box\r\n    // model is applied (except for IE).\r\n    if (styles.boxSizing === 'border-box') {\r\n        // Following conditions are required to handle Internet Explorer which\r\n        // doesn't include paddings and borders to computed CSS dimensions.\r\n        //\r\n        // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n        // properties then it's either IE, and thus we don't need to subtract\r\n        // anything, or an element merely doesn't have paddings/borders styles.\r\n        if (Math.round(width + horizPad) !== clientWidth) {\r\n            width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n        }\r\n        if (Math.round(height + vertPad) !== clientHeight) {\r\n            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n        }\r\n    }\r\n    // Following steps can't be applied to the document's root element as its\r\n    // client[Width/Height] properties represent viewport area of the window.\r\n    // Besides, it's as well not necessary as the <html> itself neither has\r\n    // rendered scroll bars nor it can be clipped.\r\n    if (!isDocumentElement(target)) {\r\n        // In some browsers (only in Firefox, actually) CSS width & height\r\n        // include scroll bars size which can be removed at this step as scroll\r\n        // bars are the only difference between rounded dimensions + paddings\r\n        // and \"client\" properties, though that is not always true in Chrome.\r\n        var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n        var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n        // Chrome has a rather weird rounding of \"client\" properties.\r\n        // E.g. for an element with content width of 314.2px it sometimes gives\r\n        // the client width of 315px and for the width of 314.7px it may give\r\n        // 314px. And it doesn't happen all the time. So just ignore this delta\r\n        // as a non-relevant.\r\n        if (Math.abs(vertScrollbar) !== 1) {\r\n            width -= vertScrollbar;\r\n        }\r\n        if (Math.abs(horizScrollbar) !== 1) {\r\n            height -= horizScrollbar;\r\n        }\r\n    }\r\n    return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n    // interface.\r\n    if (typeof SVGGraphicsElement !== 'undefined') {\r\n        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n    }\r\n    // If it's so, then check that element is at least an instance of the\r\n    // SVGElement and that it has the \"getBBox\" method.\r\n    // eslint-disable-next-line no-extra-parens\r\n    return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n        typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n    return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n    if (!isBrowser) {\r\n        return emptyRect;\r\n    }\r\n    if (isSVGGraphicsElement(target)) {\r\n        return getSVGContentRect(target);\r\n    }\r\n    return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n    var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n    // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n    var rect = Object.create(Constr.prototype);\r\n    // Rectangle's properties are not writable and non-enumerable.\r\n    defineConfigurable(rect, {\r\n        x: x, y: y, width: width, height: height,\r\n        top: y,\r\n        right: x + width,\r\n        bottom: height + y,\r\n        left: x\r\n    });\r\n    return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n    return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObservation.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     */\r\n    function ResizeObservation(target) {\r\n        /**\r\n         * Broadcasted width of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastWidth = 0;\r\n        /**\r\n         * Broadcasted height of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastHeight = 0;\r\n        /**\r\n         * Reference to the last observed content rectangle.\r\n         *\r\n         * @private {DOMRectInit}\r\n         */\r\n        this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n        this.target = target;\r\n    }\r\n    /**\r\n     * Updates content rectangle and tells whether it's width or height properties\r\n     * have changed since the last broadcast.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObservation.prototype.isActive = function () {\r\n        var rect = getContentRect(this.target);\r\n        this.contentRect_ = rect;\r\n        return (rect.width !== this.broadcastWidth ||\r\n            rect.height !== this.broadcastHeight);\r\n    };\r\n    /**\r\n     * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n     * from the corresponding properties of the last observed content rectangle.\r\n     *\r\n     * @returns {DOMRectInit} Last observed content rectangle.\r\n     */\r\n    ResizeObservation.prototype.broadcastRect = function () {\r\n        var rect = this.contentRect_;\r\n        this.broadcastWidth = rect.width;\r\n        this.broadcastHeight = rect.height;\r\n        return rect;\r\n    };\r\n    return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObserverEntry.\r\n     *\r\n     * @param {Element} target - Element that is being observed.\r\n     * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n     */\r\n    function ResizeObserverEntry(target, rectInit) {\r\n        var contentRect = createReadOnlyRect(rectInit);\r\n        // According to the specification following properties are not writable\r\n        // and are also not enumerable in the native implementation.\r\n        //\r\n        // Property accessors are not being used as they'd require to define a\r\n        // private WeakMap storage which may cause memory leaks in browsers that\r\n        // don't support this type of collections.\r\n        defineConfigurable(this, { target: target, contentRect: contentRect });\r\n    }\r\n    return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n     *      when one of the observed elements changes it's content dimensions.\r\n     * @param {ResizeObserverController} controller - Controller instance which\r\n     *      is responsible for the updates of observer.\r\n     * @param {ResizeObserver} callbackCtx - Reference to the public\r\n     *      ResizeObserver instance which will be passed to callback function.\r\n     */\r\n    function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n        /**\r\n         * Collection of resize observations that have detected changes in dimensions\r\n         * of elements.\r\n         *\r\n         * @private {Array<ResizeObservation>}\r\n         */\r\n        this.activeObservations_ = [];\r\n        /**\r\n         * Registry of the ResizeObservation instances.\r\n         *\r\n         * @private {Map<Element, ResizeObservation>}\r\n         */\r\n        this.observations_ = new MapShim();\r\n        if (typeof callback !== 'function') {\r\n            throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n        }\r\n        this.callback_ = callback;\r\n        this.controller_ = controller;\r\n        this.callbackCtx_ = callbackCtx;\r\n    }\r\n    /**\r\n     * Starts observing provided element.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.observe = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is already being observed.\r\n        if (observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.set(target, new ResizeObservation(target));\r\n        this.controller_.addObserver(this);\r\n        // Force the update of observations.\r\n        this.controller_.refresh();\r\n    };\r\n    /**\r\n     * Stops observing provided element.\r\n     *\r\n     * @param {Element} target - Element to stop observing.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.unobserve = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is not being observed.\r\n        if (!observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.delete(target);\r\n        if (!observations.size) {\r\n            this.controller_.removeObserver(this);\r\n        }\r\n    };\r\n    /**\r\n     * Stops observing all elements.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.disconnect = function () {\r\n        this.clearActive();\r\n        this.observations_.clear();\r\n        this.controller_.removeObserver(this);\r\n    };\r\n    /**\r\n     * Collects observation instances the associated element of which has changed\r\n     * it's content rectangle.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.gatherActive = function () {\r\n        var _this = this;\r\n        this.clearActive();\r\n        this.observations_.forEach(function (observation) {\r\n            if (observation.isActive()) {\r\n                _this.activeObservations_.push(observation);\r\n            }\r\n        });\r\n    };\r\n    /**\r\n     * Invokes initial callback function with a list of ResizeObserverEntry\r\n     * instances collected from active resize observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.broadcastActive = function () {\r\n        // Do nothing if observer doesn't have active observations.\r\n        if (!this.hasActive()) {\r\n            return;\r\n        }\r\n        var ctx = this.callbackCtx_;\r\n        // Create ResizeObserverEntry instance for every active observation.\r\n        var entries = this.activeObservations_.map(function (observation) {\r\n            return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n        });\r\n        this.callback_.call(ctx, entries, ctx);\r\n        this.clearActive();\r\n    };\r\n    /**\r\n     * Clears the collection of active observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.clearActive = function () {\r\n        this.activeObservations_.splice(0);\r\n    };\r\n    /**\r\n     * Tells whether observer has active observations.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObserverSPI.prototype.hasActive = function () {\r\n        return this.activeObservations_.length > 0;\r\n    };\r\n    return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n     *      dimensions of the observed elements change.\r\n     */\r\n    function ResizeObserver(callback) {\r\n        if (!(this instanceof ResizeObserver)) {\r\n            throw new TypeError('Cannot call a class as a function.');\r\n        }\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        var controller = ResizeObserverController.getInstance();\r\n        var observer = new ResizeObserverSPI(callback, controller, this);\r\n        observers.set(this, observer);\r\n    }\r\n    return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n    'observe',\r\n    'unobserve',\r\n    'disconnect'\r\n].forEach(function (method) {\r\n    ResizeObserver.prototype[method] = function () {\r\n        var _a;\r\n        return (_a = observers.get(this))[method].apply(_a, arguments);\r\n    };\r\n});\n\nvar index = (function () {\r\n    // Export existing implementation if available.\r\n    if (typeof global$1.ResizeObserver !== 'undefined') {\r\n        return global$1.ResizeObserver;\r\n    }\r\n    return ResizeObserver;\r\n})();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (index);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js?");

/***/ }),

/***/ "./node_modules/set-function-length/index.js":
/*!***************************************************!*\
  !*** ./node_modules/set-function-length/index.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar GetIntrinsic = __webpack_require__(/*! get-intrinsic */ \"./node_modules/get-intrinsic/index.js\");\nvar define = __webpack_require__(/*! define-data-property */ \"./node_modules/define-data-property/index.js\");\nvar hasDescriptors = __webpack_require__(/*! has-property-descriptors */ \"./node_modules/has-property-descriptors/index.js\")();\nvar gOPD = __webpack_require__(/*! gopd */ \"./node_modules/gopd/index.js\");\n\nvar $TypeError = __webpack_require__(/*! es-errors/type */ \"./node_modules/es-errors/type.js\");\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n\n\n//# sourceURL=webpack:///./node_modules/set-function-length/index.js?");

/***/ }),

/***/ "./node_modules/side-channel/index.js":
/*!********************************************!*\
  !*** ./node_modules/side-channel/index.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar GetIntrinsic = __webpack_require__(/*! get-intrinsic */ \"./node_modules/get-intrinsic/index.js\");\nvar callBound = __webpack_require__(/*! call-bind/callBound */ \"./node_modules/call-bind/callBound.js\");\nvar inspect = __webpack_require__(/*! object-inspect */ \"./node_modules/object-inspect/index.js\");\n\nvar $TypeError = __webpack_require__(/*! es-errors/type */ \"./node_modules/es-errors/type.js\");\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list. By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('.').listGetNode} */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\tfor (; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tcurr.next = /** @type {NonNullable<typeof list.next>} */ (list.next);\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('.').listGet} */\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('.').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('.').ListNode<typeof value>} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('.').listHas} */\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @type {WeakMap<object, unknown>} */ var $wm;\n\t/** @type {Map<object, unknown>} */ var $m;\n\t/** @type {import('.').RootNode<unknown>} */ var $o;\n\n\t/** @type {import('.').Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n\n\n//# sourceURL=webpack:///./node_modules/side-channel/index.js?");

/***/ }),

/***/ "./node_modules/svg-baker-runtime/browser-symbol.js":
/*!**********************************************************!*\
  !*** ./node_modules/svg-baker-runtime/browser-symbol.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(global) {(function (global, factory) {\n\t true ? module.exports = factory() :\n\tundefined;\n}(this, (function () { 'use strict';\n\nvar SpriteSymbol = function SpriteSymbol(ref) {\n  var id = ref.id;\n  var viewBox = ref.viewBox;\n  var content = ref.content;\n\n  this.id = id;\n  this.viewBox = viewBox;\n  this.content = content;\n};\n\n/**\n * @return {string}\n */\nSpriteSymbol.prototype.stringify = function stringify () {\n  return this.content;\n};\n\n/**\n * @return {string}\n */\nSpriteSymbol.prototype.toString = function toString () {\n  return this.stringify();\n};\n\nSpriteSymbol.prototype.destroy = function destroy () {\n    var this$1 = this;\n\n  ['id', 'viewBox', 'content'].forEach(function (prop) { return delete this$1[prop]; });\n};\n\n/**\n * @param {string} content\n * @return {Element}\n */\nvar parse = function (content) {\n  var hasImportNode = !!document.importNode;\n  var doc = new DOMParser().parseFromString(content, 'image/svg+xml').documentElement;\n\n  /**\n   * Fix for browser which are throwing WrongDocumentError\n   * if you insert an element which is not part of the document\n   * @see http://stackoverflow.com/a/7986519/4624403\n   */\n  if (hasImportNode) {\n    return document.importNode(doc, true);\n  }\n\n  return doc;\n};\n\nvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n\n\n\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar deepmerge = createCommonjsModule(function (module, exports) {\n(function (root, factory) {\n    if (false) {} else {\n        module.exports = factory();\n    }\n}(commonjsGlobal, function () {\n\nfunction isMergeableObject(val) {\n    var nonNullObject = val && typeof val === 'object';\n\n    return nonNullObject\n        && Object.prototype.toString.call(val) !== '[object RegExp]'\n        && Object.prototype.toString.call(val) !== '[object Date]'\n}\n\nfunction emptyTarget(val) {\n    return Array.isArray(val) ? [] : {}\n}\n\nfunction cloneIfNecessary(value, optionsArgument) {\n    var clone = optionsArgument && optionsArgument.clone === true;\n    return (clone && isMergeableObject(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value\n}\n\nfunction defaultArrayMerge(target, source, optionsArgument) {\n    var destination = target.slice();\n    source.forEach(function(e, i) {\n        if (typeof destination[i] === 'undefined') {\n            destination[i] = cloneIfNecessary(e, optionsArgument);\n        } else if (isMergeableObject(e)) {\n            destination[i] = deepmerge(target[i], e, optionsArgument);\n        } else if (target.indexOf(e) === -1) {\n            destination.push(cloneIfNecessary(e, optionsArgument));\n        }\n    });\n    return destination\n}\n\nfunction mergeObject(target, source, optionsArgument) {\n    var destination = {};\n    if (isMergeableObject(target)) {\n        Object.keys(target).forEach(function (key) {\n            destination[key] = cloneIfNecessary(target[key], optionsArgument);\n        });\n    }\n    Object.keys(source).forEach(function (key) {\n        if (!isMergeableObject(source[key]) || !target[key]) {\n            destination[key] = cloneIfNecessary(source[key], optionsArgument);\n        } else {\n            destination[key] = deepmerge(target[key], source[key], optionsArgument);\n        }\n    });\n    return destination\n}\n\nfunction deepmerge(target, source, optionsArgument) {\n    var array = Array.isArray(source);\n    var options = optionsArgument || { arrayMerge: defaultArrayMerge };\n    var arrayMerge = options.arrayMerge || defaultArrayMerge;\n\n    if (array) {\n        return Array.isArray(target) ? arrayMerge(target, source, optionsArgument) : cloneIfNecessary(source, optionsArgument)\n    } else {\n        return mergeObject(target, source, optionsArgument)\n    }\n}\n\ndeepmerge.all = function deepmergeAll(array, optionsArgument) {\n    if (!Array.isArray(array) || array.length < 2) {\n        throw new Error('first argument should be an array with at least two elements')\n    }\n\n    // we are sure there are at least 2 values, so it is safe to have no initial value\n    return array.reduce(function(prev, next) {\n        return deepmerge(prev, next, optionsArgument)\n    })\n};\n\nreturn deepmerge\n\n}));\n});\n\nvar namespaces_1 = createCommonjsModule(function (module, exports) {\nvar namespaces = {\n  svg: {\n    name: 'xmlns',\n    uri: 'http://www.w3.org/2000/svg'\n  },\n  xlink: {\n    name: 'xmlns:xlink',\n    uri: 'http://www.w3.org/1999/xlink'\n  }\n};\n\nexports.default = namespaces;\nmodule.exports = exports.default;\n});\n\n/**\n * @param {Object} attrs\n * @return {string}\n */\nvar objectToAttrsString = function (attrs) {\n  return Object.keys(attrs).map(function (attr) {\n    var value = attrs[attr].toString().replace(/\"/g, '&quot;');\n    return (attr + \"=\\\"\" + value + \"\\\"\");\n  }).join(' ');\n};\n\nvar svg = namespaces_1.svg;\nvar xlink = namespaces_1.xlink;\n\nvar defaultAttrs = {};\ndefaultAttrs[svg.name] = svg.uri;\ndefaultAttrs[xlink.name] = xlink.uri;\n\n/**\n * @param {string} [content]\n * @param {Object} [attributes]\n * @return {string}\n */\nvar wrapInSvgString = function (content, attributes) {\n  if ( content === void 0 ) content = '';\n\n  var attrs = deepmerge(defaultAttrs, attributes || {});\n  var attrsRendered = objectToAttrsString(attrs);\n  return (\"<svg \" + attrsRendered + \">\" + content + \"</svg>\");\n};\n\nvar BrowserSpriteSymbol = (function (SpriteSymbol$$1) {\n  function BrowserSpriteSymbol () {\n    SpriteSymbol$$1.apply(this, arguments);\n  }\n\n  if ( SpriteSymbol$$1 ) BrowserSpriteSymbol.__proto__ = SpriteSymbol$$1;\n  BrowserSpriteSymbol.prototype = Object.create( SpriteSymbol$$1 && SpriteSymbol$$1.prototype );\n  BrowserSpriteSymbol.prototype.constructor = BrowserSpriteSymbol;\n\n  var prototypeAccessors = { isMounted: {} };\n\n  prototypeAccessors.isMounted.get = function () {\n    return !!this.node;\n  };\n\n  /**\n   * @param {Element} node\n   * @return {BrowserSpriteSymbol}\n   */\n  BrowserSpriteSymbol.createFromExistingNode = function createFromExistingNode (node) {\n    return new BrowserSpriteSymbol({\n      id: node.getAttribute('id'),\n      viewBox: node.getAttribute('viewBox'),\n      content: node.outerHTML\n    });\n  };\n\n  BrowserSpriteSymbol.prototype.destroy = function destroy () {\n    if (this.isMounted) {\n      this.unmount();\n    }\n    SpriteSymbol$$1.prototype.destroy.call(this);\n  };\n\n  /**\n   * @param {Element|string} target\n   * @return {Element}\n   */\n  BrowserSpriteSymbol.prototype.mount = function mount (target) {\n    if (this.isMounted) {\n      return this.node;\n    }\n\n    var mountTarget = typeof target === 'string' ? document.querySelector(target) : target;\n    var node = this.render();\n    this.node = node;\n\n    mountTarget.appendChild(node);\n\n    return node;\n  };\n\n  /**\n   * @return {Element}\n   */\n  BrowserSpriteSymbol.prototype.render = function render () {\n    var content = this.stringify();\n    return parse(wrapInSvgString(content)).childNodes[0];\n  };\n\n  BrowserSpriteSymbol.prototype.unmount = function unmount () {\n    this.node.parentNode.removeChild(this.node);\n  };\n\n  Object.defineProperties( BrowserSpriteSymbol.prototype, prototypeAccessors );\n\n  return BrowserSpriteSymbol;\n}(SpriteSymbol));\n\nreturn BrowserSpriteSymbol;\n\n})));\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/svg-baker-runtime/browser-symbol.js?");

/***/ }),

/***/ "./node_modules/svg-sprite-loader/runtime/browser-sprite.build.js":
/*!************************************************************************!*\
  !*** ./node_modules/svg-sprite-loader/runtime/browser-sprite.build.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(global) {(function (global, factory) {\n\t true ? module.exports = factory() :\n\tundefined;\n}(this, (function () { 'use strict';\n\nvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n\n\n\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar deepmerge = createCommonjsModule(function (module, exports) {\n(function (root, factory) {\n    if (false) {} else {\n        module.exports = factory();\n    }\n}(commonjsGlobal, function () {\n\nfunction isMergeableObject(val) {\n    var nonNullObject = val && typeof val === 'object';\n\n    return nonNullObject\n        && Object.prototype.toString.call(val) !== '[object RegExp]'\n        && Object.prototype.toString.call(val) !== '[object Date]'\n}\n\nfunction emptyTarget(val) {\n    return Array.isArray(val) ? [] : {}\n}\n\nfunction cloneIfNecessary(value, optionsArgument) {\n    var clone = optionsArgument && optionsArgument.clone === true;\n    return (clone && isMergeableObject(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value\n}\n\nfunction defaultArrayMerge(target, source, optionsArgument) {\n    var destination = target.slice();\n    source.forEach(function(e, i) {\n        if (typeof destination[i] === 'undefined') {\n            destination[i] = cloneIfNecessary(e, optionsArgument);\n        } else if (isMergeableObject(e)) {\n            destination[i] = deepmerge(target[i], e, optionsArgument);\n        } else if (target.indexOf(e) === -1) {\n            destination.push(cloneIfNecessary(e, optionsArgument));\n        }\n    });\n    return destination\n}\n\nfunction mergeObject(target, source, optionsArgument) {\n    var destination = {};\n    if (isMergeableObject(target)) {\n        Object.keys(target).forEach(function (key) {\n            destination[key] = cloneIfNecessary(target[key], optionsArgument);\n        });\n    }\n    Object.keys(source).forEach(function (key) {\n        if (!isMergeableObject(source[key]) || !target[key]) {\n            destination[key] = cloneIfNecessary(source[key], optionsArgument);\n        } else {\n            destination[key] = deepmerge(target[key], source[key], optionsArgument);\n        }\n    });\n    return destination\n}\n\nfunction deepmerge(target, source, optionsArgument) {\n    var array = Array.isArray(source);\n    var options = optionsArgument || { arrayMerge: defaultArrayMerge };\n    var arrayMerge = options.arrayMerge || defaultArrayMerge;\n\n    if (array) {\n        return Array.isArray(target) ? arrayMerge(target, source, optionsArgument) : cloneIfNecessary(source, optionsArgument)\n    } else {\n        return mergeObject(target, source, optionsArgument)\n    }\n}\n\ndeepmerge.all = function deepmergeAll(array, optionsArgument) {\n    if (!Array.isArray(array) || array.length < 2) {\n        throw new Error('first argument should be an array with at least two elements')\n    }\n\n    // we are sure there are at least 2 values, so it is safe to have no initial value\n    return array.reduce(function(prev, next) {\n        return deepmerge(prev, next, optionsArgument)\n    })\n};\n\nreturn deepmerge\n\n}));\n});\n\n//      \n// An event handler can take an optional event argument\n// and should not return a value\n                                          \n// An array of all currently registered event handlers for a type\n                                            \n// A map of event types and their corresponding event handlers.\n                        \n                                   \n  \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n *  @name mitt\n *  @returns {Mitt}\n */\nfunction mitt(all                 ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param  {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param  {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type        , handler              ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param  {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param  {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type        , handler              ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type  The event type to invoke\n\t\t * @param {Any} [evt]  Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberof mitt\n\t\t */\n\t\temit: function emit(type        , evt     ) {\n\t\t\t(all[type] || []).map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nvar namespaces_1 = createCommonjsModule(function (module, exports) {\nvar namespaces = {\n  svg: {\n    name: 'xmlns',\n    uri: 'http://www.w3.org/2000/svg'\n  },\n  xlink: {\n    name: 'xmlns:xlink',\n    uri: 'http://www.w3.org/1999/xlink'\n  }\n};\n\nexports.default = namespaces;\nmodule.exports = exports.default;\n});\n\n/**\n * @param {Object} attrs\n * @return {string}\n */\nvar objectToAttrsString = function (attrs) {\n  return Object.keys(attrs).map(function (attr) {\n    var value = attrs[attr].toString().replace(/\"/g, '&quot;');\n    return (attr + \"=\\\"\" + value + \"\\\"\");\n  }).join(' ');\n};\n\nvar svg = namespaces_1.svg;\nvar xlink = namespaces_1.xlink;\n\nvar defaultAttrs = {};\ndefaultAttrs[svg.name] = svg.uri;\ndefaultAttrs[xlink.name] = xlink.uri;\n\n/**\n * @param {string} [content]\n * @param {Object} [attributes]\n * @return {string}\n */\nvar wrapInSvgString = function (content, attributes) {\n  if ( content === void 0 ) content = '';\n\n  var attrs = deepmerge(defaultAttrs, attributes || {});\n  var attrsRendered = objectToAttrsString(attrs);\n  return (\"<svg \" + attrsRendered + \">\" + content + \"</svg>\");\n};\n\nvar svg$1 = namespaces_1.svg;\nvar xlink$1 = namespaces_1.xlink;\n\nvar defaultConfig = {\n  attrs: ( obj = {\n    style: ['position: absolute', 'width: 0', 'height: 0'].join('; ')\n  }, obj[svg$1.name] = svg$1.uri, obj[xlink$1.name] = xlink$1.uri, obj )\n};\nvar obj;\n\nvar Sprite = function Sprite(config) {\n  this.config = deepmerge(defaultConfig, config || {});\n  this.symbols = [];\n};\n\n/**\n * Add new symbol. If symbol with the same id exists it will be replaced.\n * @param {SpriteSymbol} symbol\n * @return {boolean} `true` - symbol was added, `false` - replaced\n */\nSprite.prototype.add = function add (symbol) {\n  var ref = this;\n    var symbols = ref.symbols;\n  var existing = this.find(symbol.id);\n\n  if (existing) {\n    symbols[symbols.indexOf(existing)] = symbol;\n    return false;\n  }\n\n  symbols.push(symbol);\n  return true;\n};\n\n/**\n * Remove symbol & destroy it\n * @param {string} id\n * @return {boolean} `true` - symbol was found & successfully destroyed, `false` - otherwise\n */\nSprite.prototype.remove = function remove (id) {\n  var ref = this;\n    var symbols = ref.symbols;\n  var symbol = this.find(id);\n\n  if (symbol) {\n    symbols.splice(symbols.indexOf(symbol), 1);\n    symbol.destroy();\n    return true;\n  }\n\n  return false;\n};\n\n/**\n * @param {string} id\n * @return {SpriteSymbol|null}\n */\nSprite.prototype.find = function find (id) {\n  return this.symbols.filter(function (s) { return s.id === id; })[0] || null;\n};\n\n/**\n * @param {string} id\n * @return {boolean}\n */\nSprite.prototype.has = function has (id) {\n  return this.find(id) !== null;\n};\n\n/**\n * @return {string}\n */\nSprite.prototype.stringify = function stringify () {\n  var ref = this.config;\n    var attrs = ref.attrs;\n  var stringifiedSymbols = this.symbols.map(function (s) { return s.stringify(); }).join('');\n  return wrapInSvgString(stringifiedSymbols, attrs);\n};\n\n/**\n * @return {string}\n */\nSprite.prototype.toString = function toString () {\n  return this.stringify();\n};\n\nSprite.prototype.destroy = function destroy () {\n  this.symbols.forEach(function (s) { return s.destroy(); });\n};\n\nvar SpriteSymbol = function SpriteSymbol(ref) {\n  var id = ref.id;\n  var viewBox = ref.viewBox;\n  var content = ref.content;\n\n  this.id = id;\n  this.viewBox = viewBox;\n  this.content = content;\n};\n\n/**\n * @return {string}\n */\nSpriteSymbol.prototype.stringify = function stringify () {\n  return this.content;\n};\n\n/**\n * @return {string}\n */\nSpriteSymbol.prototype.toString = function toString () {\n  return this.stringify();\n};\n\nSpriteSymbol.prototype.destroy = function destroy () {\n    var this$1 = this;\n\n  ['id', 'viewBox', 'content'].forEach(function (prop) { return delete this$1[prop]; });\n};\n\n/**\n * @param {string} content\n * @return {Element}\n */\nvar parse = function (content) {\n  var hasImportNode = !!document.importNode;\n  var doc = new DOMParser().parseFromString(content, 'image/svg+xml').documentElement;\n\n  /**\n   * Fix for browser which are throwing WrongDocumentError\n   * if you insert an element which is not part of the document\n   * @see http://stackoverflow.com/a/7986519/4624403\n   */\n  if (hasImportNode) {\n    return document.importNode(doc, true);\n  }\n\n  return doc;\n};\n\nvar BrowserSpriteSymbol = (function (SpriteSymbol$$1) {\n  function BrowserSpriteSymbol () {\n    SpriteSymbol$$1.apply(this, arguments);\n  }\n\n  if ( SpriteSymbol$$1 ) BrowserSpriteSymbol.__proto__ = SpriteSymbol$$1;\n  BrowserSpriteSymbol.prototype = Object.create( SpriteSymbol$$1 && SpriteSymbol$$1.prototype );\n  BrowserSpriteSymbol.prototype.constructor = BrowserSpriteSymbol;\n\n  var prototypeAccessors = { isMounted: {} };\n\n  prototypeAccessors.isMounted.get = function () {\n    return !!this.node;\n  };\n\n  /**\n   * @param {Element} node\n   * @return {BrowserSpriteSymbol}\n   */\n  BrowserSpriteSymbol.createFromExistingNode = function createFromExistingNode (node) {\n    return new BrowserSpriteSymbol({\n      id: node.getAttribute('id'),\n      viewBox: node.getAttribute('viewBox'),\n      content: node.outerHTML\n    });\n  };\n\n  BrowserSpriteSymbol.prototype.destroy = function destroy () {\n    if (this.isMounted) {\n      this.unmount();\n    }\n    SpriteSymbol$$1.prototype.destroy.call(this);\n  };\n\n  /**\n   * @param {Element|string} target\n   * @return {Element}\n   */\n  BrowserSpriteSymbol.prototype.mount = function mount (target) {\n    if (this.isMounted) {\n      return this.node;\n    }\n\n    var mountTarget = typeof target === 'string' ? document.querySelector(target) : target;\n    var node = this.render();\n    this.node = node;\n\n    mountTarget.appendChild(node);\n\n    return node;\n  };\n\n  /**\n   * @return {Element}\n   */\n  BrowserSpriteSymbol.prototype.render = function render () {\n    var content = this.stringify();\n    return parse(wrapInSvgString(content)).childNodes[0];\n  };\n\n  BrowserSpriteSymbol.prototype.unmount = function unmount () {\n    this.node.parentNode.removeChild(this.node);\n  };\n\n  Object.defineProperties( BrowserSpriteSymbol.prototype, prototypeAccessors );\n\n  return BrowserSpriteSymbol;\n}(SpriteSymbol));\n\nvar defaultConfig$1 = {\n  /**\n   * Should following options be automatically configured:\n   * - `syncUrlsWithBaseTag`\n   * - `locationChangeAngularEmitter`\n   * - `moveGradientsOutsideSymbol`\n   * @type {boolean}\n   */\n  autoConfigure: true,\n\n  /**\n   * Default mounting selector\n   * @type {string}\n   */\n  mountTo: 'body',\n\n  /**\n   * Fix disappearing SVG elements when <base href> exists.\n   * Executes when sprite mounted.\n   * @see http://stackoverflow.com/a/18265336/796152\n   * @see https://github.com/everdimension/angular-svg-base-fix\n   * @see https://github.com/angular/angular.js/issues/8934#issuecomment-56568466\n   * @type {boolean}\n   */\n  syncUrlsWithBaseTag: false,\n\n  /**\n   * Should sprite listen custom location change event\n   * @type {boolean}\n   */\n  listenLocationChangeEvent: true,\n\n  /**\n   * Custom window event name which should be emitted to update sprite urls\n   * @type {string}\n   */\n  locationChangeEvent: 'locationChange',\n\n  /**\n   * Emit location change event in Angular automatically\n   * @type {boolean}\n   */\n  locationChangeAngularEmitter: false,\n\n  /**\n   * Selector to find symbols usages when updating sprite urls\n   * @type {string}\n   */\n  usagesToUpdate: 'use[*|href]',\n\n  /**\n   * Fix Firefox bug when gradients and patterns don't work if they are within a symbol.\n   * Executes when sprite is rendered, but not mounted.\n   * @see https://bugzilla.mozilla.org/show_bug.cgi?id=306674\n   * @see https://bugzilla.mozilla.org/show_bug.cgi?id=353575\n   * @see https://bugzilla.mozilla.org/show_bug.cgi?id=1235364\n   * @type {boolean}\n   */\n  moveGradientsOutsideSymbol: false\n};\n\n/**\n * @param {*} arrayLike\n * @return {Array}\n */\nvar arrayFrom = function (arrayLike) {\n  return Array.prototype.slice.call(arrayLike, 0);\n};\n\nvar ua = navigator.userAgent;\n\nvar browser = {\n  isChrome: /chrome/i.test(ua),\n  isFirefox: /firefox/i.test(ua),\n\n  // https://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx\n  isIE: /msie/i.test(ua) || /trident/i.test(ua),\n  isEdge: /edge/i.test(ua)\n};\n\n/**\n * @param {string} name\n * @param {*} data\n */\nvar dispatchEvent = function (name, data) {\n  var event = document.createEvent('CustomEvent');\n  event.initCustomEvent(name, false, false, data);\n  window.dispatchEvent(event);\n};\n\n/**\n * IE doesn't evaluate <style> tags in SVGs that are dynamically added to the page.\n * This trick will trigger IE to read and use any existing SVG <style> tags.\n * @see https://github.com/iconic/SVGInjector/issues/23\n * @see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10898469/\n *\n * @param {Element} node DOM Element to search <style> tags in\n * @return {Array<HTMLStyleElement>}\n */\nvar evalStylesIEWorkaround = function (node) {\n  var updatedNodes = [];\n\n  arrayFrom(node.querySelectorAll('style'))\n    .forEach(function (style) {\n      style.textContent += '';\n      updatedNodes.push(style);\n    });\n\n  return updatedNodes;\n};\n\n/**\n * @param {string} [url] If not provided - current URL will be used\n * @return {string}\n */\nvar getUrlWithoutFragment = function (url) {\n  return (url || window.location.href).split('#')[0];\n};\n\n/* global angular */\n/**\n * @param {string} eventName\n */\nvar locationChangeAngularEmitter = function (eventName) {\n  angular.module('ng').run(['$rootScope', function ($rootScope) {\n    $rootScope.$on('$locationChangeSuccess', function (e, newUrl, oldUrl) {\n      dispatchEvent(eventName, { oldUrl: oldUrl, newUrl: newUrl });\n    });\n  }]);\n};\n\nvar defaultSelector = 'linearGradient, radialGradient, pattern';\n\n/**\n * @param {Element} svg\n * @param {string} [selector]\n * @return {Element}\n */\nvar moveGradientsOutsideSymbol = function (svg, selector) {\n  if ( selector === void 0 ) selector = defaultSelector;\n\n  arrayFrom(svg.querySelectorAll('symbol')).forEach(function (symbol) {\n    arrayFrom(symbol.querySelectorAll(selector)).forEach(function (node) {\n      symbol.parentNode.insertBefore(node, symbol);\n    });\n  });\n  return svg;\n};\n\n/**\n * @param {NodeList} nodes\n * @param {Function} [matcher]\n * @return {Attr[]}\n */\nfunction selectAttributes(nodes, matcher) {\n  var attrs = arrayFrom(nodes).reduce(function (acc, node) {\n    if (!node.attributes) {\n      return acc;\n    }\n\n    var arrayfied = arrayFrom(node.attributes);\n    var matched = matcher ? arrayfied.filter(matcher) : arrayfied;\n    return acc.concat(matched);\n  }, []);\n\n  return attrs;\n}\n\n/**\n * @param {NodeList|Node} nodes\n * @param {boolean} [clone=true]\n * @return {string}\n */\n\nvar xLinkNS = namespaces_1.xlink.uri;\nvar xLinkAttrName = 'xlink:href';\n\n// eslint-disable-next-line no-useless-escape\nvar specialUrlCharsPattern = /[{}|\\\\\\^\\[\\]`\"<>]/g;\n\nfunction encoder(url) {\n  return url.replace(specialUrlCharsPattern, function (match) {\n    return (\"%\" + (match[0].charCodeAt(0).toString(16).toUpperCase()));\n  });\n}\n\n/**\n * @param {NodeList} nodes\n * @param {string} startsWith\n * @param {string} replaceWith\n * @return {NodeList}\n */\nfunction updateReferences(nodes, startsWith, replaceWith) {\n  arrayFrom(nodes).forEach(function (node) {\n    var href = node.getAttribute(xLinkAttrName);\n    if (href && href.indexOf(startsWith) === 0) {\n      var newUrl = href.replace(startsWith, replaceWith);\n      node.setAttributeNS(xLinkNS, xLinkAttrName, newUrl);\n    }\n  });\n\n  return nodes;\n}\n\n/**\n * List of SVG attributes to update url() target in them\n */\nvar attList = [\n  'clipPath',\n  'colorProfile',\n  'src',\n  'cursor',\n  'fill',\n  'filter',\n  'marker',\n  'markerStart',\n  'markerMid',\n  'markerEnd',\n  'mask',\n  'stroke',\n  'style'\n];\n\nvar attSelector = attList.map(function (attr) { return (\"[\" + attr + \"]\"); }).join(',');\n\n/**\n * Update URLs in svg image (like `fill=\"url(...)\"`) and update referencing elements\n * @param {Element} svg\n * @param {NodeList} references\n * @param {string|RegExp} startsWith\n * @param {string} replaceWith\n * @return {void}\n *\n * @example\n * const sprite = document.querySelector('svg.sprite');\n * const usages = document.querySelectorAll('use');\n * updateUrls(sprite, usages, '#', 'prefix#');\n */\nvar updateUrls = function (svg, references, startsWith, replaceWith) {\n  var startsWithEncoded = encoder(startsWith);\n  var replaceWithEncoded = encoder(replaceWith);\n\n  var nodes = svg.querySelectorAll(attSelector);\n  var attrs = selectAttributes(nodes, function (ref) {\n    var localName = ref.localName;\n    var value = ref.value;\n\n    return attList.indexOf(localName) !== -1 && value.indexOf((\"url(\" + startsWithEncoded)) !== -1;\n  });\n\n  attrs.forEach(function (attr) { return attr.value = attr.value.replace(startsWithEncoded, replaceWithEncoded); });\n  updateReferences(references, startsWithEncoded, replaceWithEncoded);\n};\n\n/**\n * Internal emitter events\n * @enum\n * @private\n */\nvar Events = {\n  MOUNT: 'mount',\n  SYMBOL_MOUNT: 'symbol_mount'\n};\n\nvar BrowserSprite = (function (Sprite$$1) {\n  function BrowserSprite(cfg) {\n    var this$1 = this;\n    if ( cfg === void 0 ) cfg = {};\n\n    Sprite$$1.call(this, deepmerge(defaultConfig$1, cfg));\n\n    var emitter = mitt();\n    this._emitter = emitter;\n    this.node = null;\n\n    var ref = this;\n    var config = ref.config;\n\n    if (config.autoConfigure) {\n      this._autoConfigure(cfg);\n    }\n\n    if (config.syncUrlsWithBaseTag) {\n      var baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\n      emitter.on(Events.MOUNT, function () { return this$1.updateUrls('#', baseUrl); });\n    }\n\n    var handleLocationChange = this._handleLocationChange.bind(this);\n    this._handleLocationChange = handleLocationChange;\n\n    // Provide way to update sprite urls externally via dispatching custom window event\n    if (config.listenLocationChangeEvent) {\n      window.addEventListener(config.locationChangeEvent, handleLocationChange);\n    }\n\n    // Emit location change event in Angular automatically\n    if (config.locationChangeAngularEmitter) {\n      locationChangeAngularEmitter(config.locationChangeEvent);\n    }\n\n    // After sprite mounted\n    emitter.on(Events.MOUNT, function (spriteNode) {\n      if (config.moveGradientsOutsideSymbol) {\n        moveGradientsOutsideSymbol(spriteNode);\n      }\n    });\n\n    // After symbol mounted into sprite\n    emitter.on(Events.SYMBOL_MOUNT, function (symbolNode) {\n      if (config.moveGradientsOutsideSymbol) {\n        moveGradientsOutsideSymbol(symbolNode.parentNode);\n      }\n\n      if (browser.isIE || browser.isEdge) {\n        evalStylesIEWorkaround(symbolNode);\n      }\n    });\n  }\n\n  if ( Sprite$$1 ) BrowserSprite.__proto__ = Sprite$$1;\n  BrowserSprite.prototype = Object.create( Sprite$$1 && Sprite$$1.prototype );\n  BrowserSprite.prototype.constructor = BrowserSprite;\n\n  var prototypeAccessors = { isMounted: {} };\n\n  /**\n   * @return {boolean}\n   */\n  prototypeAccessors.isMounted.get = function () {\n    return !!this.node;\n  };\n\n  /**\n   * Automatically configure following options\n   * - `syncUrlsWithBaseTag`\n   * - `locationChangeAngularEmitter`\n   * - `moveGradientsOutsideSymbol`\n   * @param {Object} cfg\n   * @private\n   */\n  BrowserSprite.prototype._autoConfigure = function _autoConfigure (cfg) {\n    var ref = this;\n    var config = ref.config;\n\n    if (typeof cfg.syncUrlsWithBaseTag === 'undefined') {\n      config.syncUrlsWithBaseTag = typeof document.getElementsByTagName('base')[0] !== 'undefined';\n    }\n\n    if (typeof cfg.locationChangeAngularEmitter === 'undefined') {\n      config.locationChangeAngularEmitter = 'angular' in window;\n    }\n\n    if (typeof cfg.moveGradientsOutsideSymbol === 'undefined') {\n      config.moveGradientsOutsideSymbol = browser.isFirefox;\n    }\n  };\n\n  /**\n   * @param {Event} event\n   * @param {Object} event.detail\n   * @param {string} event.detail.oldUrl\n   * @param {string} event.detail.newUrl\n   * @private\n   */\n  BrowserSprite.prototype._handleLocationChange = function _handleLocationChange (event) {\n    var ref = event.detail;\n    var oldUrl = ref.oldUrl;\n    var newUrl = ref.newUrl;\n    this.updateUrls(oldUrl, newUrl);\n  };\n\n  /**\n   * Add new symbol. If symbol with the same id exists it will be replaced.\n   * If sprite already mounted - `symbol.mount(sprite.node)` will be called.\n   * @fires Events#SYMBOL_MOUNT\n   * @param {BrowserSpriteSymbol} symbol\n   * @return {boolean} `true` - symbol was added, `false` - replaced\n   */\n  BrowserSprite.prototype.add = function add (symbol) {\n    var sprite = this;\n    var isNewSymbol = Sprite$$1.prototype.add.call(this, symbol);\n\n    if (this.isMounted && isNewSymbol) {\n      symbol.mount(sprite.node);\n      this._emitter.emit(Events.SYMBOL_MOUNT, symbol.node);\n    }\n\n    return isNewSymbol;\n  };\n\n  /**\n   * Attach to existing DOM node\n   * @param {string|Element} target\n   * @return {Element|null} attached DOM Element. null if node to attach not found.\n   */\n  BrowserSprite.prototype.attach = function attach (target) {\n    var this$1 = this;\n\n    var sprite = this;\n\n    if (sprite.isMounted) {\n      return sprite.node;\n    }\n\n    /** @type Element */\n    var node = typeof target === 'string' ? document.querySelector(target) : target;\n    sprite.node = node;\n\n    // Already added symbols needs to be mounted\n    this.symbols.forEach(function (symbol) {\n      symbol.mount(sprite.node);\n      this$1._emitter.emit(Events.SYMBOL_MOUNT, symbol.node);\n    });\n\n    // Create symbols from existing DOM nodes, add and mount them\n    arrayFrom(node.querySelectorAll('symbol'))\n      .forEach(function (symbolNode) {\n        var symbol = BrowserSpriteSymbol.createFromExistingNode(symbolNode);\n        symbol.node = symbolNode; // hack to prevent symbol mounting to sprite when adding\n        sprite.add(symbol);\n      });\n\n    this._emitter.emit(Events.MOUNT, node);\n\n    return node;\n  };\n\n  BrowserSprite.prototype.destroy = function destroy () {\n    var ref = this;\n    var config = ref.config;\n    var symbols = ref.symbols;\n    var _emitter = ref._emitter;\n\n    symbols.forEach(function (s) { return s.destroy(); });\n\n    _emitter.off('*');\n    window.removeEventListener(config.locationChangeEvent, this._handleLocationChange);\n\n    if (this.isMounted) {\n      this.unmount();\n    }\n  };\n\n  /**\n   * @fires Events#MOUNT\n   * @param {string|Element} [target]\n   * @param {boolean} [prepend=false]\n   * @return {Element|null} rendered sprite node. null if mount node not found.\n   */\n  BrowserSprite.prototype.mount = function mount (target, prepend) {\n    if ( target === void 0 ) target = this.config.mountTo;\n    if ( prepend === void 0 ) prepend = false;\n\n    var sprite = this;\n\n    if (sprite.isMounted) {\n      return sprite.node;\n    }\n\n    var mountNode = typeof target === 'string' ? document.querySelector(target) : target;\n    var node = sprite.render();\n    this.node = node;\n\n    if (prepend && mountNode.childNodes[0]) {\n      mountNode.insertBefore(node, mountNode.childNodes[0]);\n    } else {\n      mountNode.appendChild(node);\n    }\n\n    this._emitter.emit(Events.MOUNT, node);\n\n    return node;\n  };\n\n  /**\n   * @return {Element}\n   */\n  BrowserSprite.prototype.render = function render () {\n    return parse(this.stringify());\n  };\n\n  /**\n   * Detach sprite from the DOM\n   */\n  BrowserSprite.prototype.unmount = function unmount () {\n    this.node.parentNode.removeChild(this.node);\n  };\n\n  /**\n   * Update URLs in sprite and usage elements\n   * @param {string} oldUrl\n   * @param {string} newUrl\n   * @return {boolean} `true` - URLs was updated, `false` - sprite is not mounted\n   */\n  BrowserSprite.prototype.updateUrls = function updateUrls$1 (oldUrl, newUrl) {\n    if (!this.isMounted) {\n      return false;\n    }\n\n    var usages = document.querySelectorAll(this.config.usagesToUpdate);\n\n    updateUrls(\n      this.node,\n      usages,\n      ((getUrlWithoutFragment(oldUrl)) + \"#\"),\n      ((getUrlWithoutFragment(newUrl)) + \"#\")\n    );\n\n    return true;\n  };\n\n  Object.defineProperties( BrowserSprite.prototype, prototypeAccessors );\n\n  return BrowserSprite;\n}(Sprite));\n\nvar ready$1 = createCommonjsModule(function (module) {\n/*!\n  * domready (c) Dustin Diaz 2014 - License MIT\n  */\n!function (name, definition) {\n\n  { module.exports = definition(); }\n\n}('domready', function () {\n\n  var fns = [], listener\n    , doc = document\n    , hack = doc.documentElement.doScroll\n    , domContentLoaded = 'DOMContentLoaded'\n    , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n\n  if (!loaded)\n  { doc.addEventListener(domContentLoaded, listener = function () {\n    doc.removeEventListener(domContentLoaded, listener);\n    loaded = 1;\n    while (listener = fns.shift()) { listener(); }\n  }); }\n\n  return function (fn) {\n    loaded ? setTimeout(fn, 0) : fns.push(fn);\n  }\n\n});\n});\n\nvar spriteNodeId = '__SVG_SPRITE_NODE__';\nvar spriteGlobalVarName = '__SVG_SPRITE__';\nvar isSpriteExists = !!window[spriteGlobalVarName];\n\n// eslint-disable-next-line import/no-mutable-exports\nvar sprite;\n\nif (isSpriteExists) {\n  sprite = window[spriteGlobalVarName];\n} else {\n  sprite = new BrowserSprite({ attrs: { id: spriteNodeId } });\n  window[spriteGlobalVarName] = sprite;\n}\n\nvar loadSprite = function () {\n  /**\n   * Check for page already contains sprite node\n   * If found - attach to and reuse it's content\n   * If not - render and mount the new sprite\n   */\n  var existing = document.getElementById(spriteNodeId);\n\n  if (existing) {\n    sprite.attach(existing);\n  } else {\n    sprite.mount(document.body, true);\n  }\n};\n\nif (document.body) {\n  loadSprite();\n} else {\n  ready$1(loadSprite);\n}\n\nvar sprite$1 = sprite;\n\nreturn sprite$1;\n\n})));\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/svg-sprite-loader/runtime/browser-sprite.build.js?");

/***/ }),

/***/ "./node_modules/throttle-debounce/debounce.js":
/*!****************************************************!*\
  !*** ./node_modules/throttle-debounce/debounce.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* eslint-disable no-undefined */\n\nvar throttle = __webpack_require__(/*! ./throttle */ \"./node_modules/throttle-debounce/throttle.js\");\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param  {Number}   delay         A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param  {Boolean}  [atBegin]     Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n *                                  after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n *                                  (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param  {Function} callback      A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n *                                  to `callback` when the debounced-function is executed.\n *\n * @return {Function} A new, debounced function.\n */\nmodule.exports = function ( delay, atBegin, callback ) {\n\treturn callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);\n};\n\n\n//# sourceURL=webpack:///./node_modules/throttle-debounce/debounce.js?");

/***/ }),

/***/ "./node_modules/throttle-debounce/index.js":
/*!*************************************************!*\
  !*** ./node_modules/throttle-debounce/index.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var throttle = __webpack_require__(/*! ./throttle */ \"./node_modules/throttle-debounce/throttle.js\");\nvar debounce = __webpack_require__(/*! ./debounce */ \"./node_modules/throttle-debounce/debounce.js\");\n\nmodule.exports = {\n\tthrottle: throttle,\n\tdebounce: debounce\n};\n\n\n//# sourceURL=webpack:///./node_modules/throttle-debounce/index.js?");

/***/ }),

/***/ "./node_modules/throttle-debounce/throttle.js":
/*!****************************************************!*\
  !*** ./node_modules/throttle-debounce/throttle.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param  {Number}    delay          A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param  {Boolean}   [noTrailing]   Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n *                                    throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n *                                    after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n *                                    the internal counter is reset)\n * @param  {Function}  callback       A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n *                                    to `callback` when the throttled-function is executed.\n * @param  {Boolean}   [debounceMode] If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n *                                    schedule `callback` to execute after `delay` ms.\n *\n * @return {Function}  A new, throttled, function.\n */\nmodule.exports = function ( delay, noTrailing, callback, debounceMode ) {\n\n\t// After wrapper has stopped being called, this timeout ensures that\n\t// `callback` is executed at the proper times in `throttle` and `end`\n\t// debounce modes.\n\tvar timeoutID;\n\n\t// Keep track of the last time `callback` was executed.\n\tvar lastExec = 0;\n\n\t// `noTrailing` defaults to falsy.\n\tif ( typeof noTrailing !== 'boolean' ) {\n\t\tdebounceMode = callback;\n\t\tcallback = noTrailing;\n\t\tnoTrailing = undefined;\n\t}\n\n\t// The `wrapper` function encapsulates all of the throttling / debouncing\n\t// functionality and when executed will limit the rate at which `callback`\n\t// is executed.\n\tfunction wrapper () {\n\n\t\tvar self = this;\n\t\tvar elapsed = Number(new Date()) - lastExec;\n\t\tvar args = arguments;\n\n\t\t// Execute `callback` and update the `lastExec` timestamp.\n\t\tfunction exec () {\n\t\t\tlastExec = Number(new Date());\n\t\t\tcallback.apply(self, args);\n\t\t}\n\n\t\t// If `debounceMode` is true (at begin) this is used to clear the flag\n\t\t// to allow future `callback` executions.\n\t\tfunction clear () {\n\t\t\ttimeoutID = undefined;\n\t\t}\n\n\t\tif ( debounceMode && !timeoutID ) {\n\t\t\t// Since `wrapper` is being called for the first time and\n\t\t\t// `debounceMode` is true (at begin), execute `callback`.\n\t\t\texec();\n\t\t}\n\n\t\t// Clear any existing timeout.\n\t\tif ( timeoutID ) {\n\t\t\tclearTimeout(timeoutID);\n\t\t}\n\n\t\tif ( debounceMode === undefined && elapsed > delay ) {\n\t\t\t// In throttle mode, if `delay` time has been exceeded, execute\n\t\t\t// `callback`.\n\t\t\texec();\n\n\t\t} else if ( noTrailing !== true ) {\n\t\t\t// In trailing throttle mode, since `delay` time has not been\n\t\t\t// exceeded, schedule `callback` to execute `delay` ms after most\n\t\t\t// recent execution.\n\t\t\t//\n\t\t\t// If `debounceMode` is true (at begin), schedule `clear` to execute\n\t\t\t// after `delay` ms.\n\t\t\t//\n\t\t\t// If `debounceMode` is false (at end), schedule `callback` to\n\t\t\t// execute after `delay` ms.\n\t\t\ttimeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n\t\t}\n\n\t}\n\n\t// Return the wrapper function.\n\treturn wrapper;\n\n};\n\n\n//# sourceURL=webpack:///./node_modules/throttle-debounce/throttle.js?");

/***/ }),

/***/ "./node_modules/vue-clipboard2/vue-clipboard.js":
/*!******************************************************!*\
  !*** ./node_modules/vue-clipboard2/vue-clipboard.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var Clipboard = __webpack_require__(/*! clipboard/dist/clipboard.min.js */ \"./node_modules/clipboard/dist/clipboard.min.js\") // FIXME: workaround for browserify\n\nvar VueClipboardConfig = {\n  autoSetContainer: false,\n  appendToBody: true // This fixes IE, see #50\n}\n\nvar VueClipboard = {\n  install: function (Vue) {\n    var globalPrototype = Vue.version.slice(0, 2) === '3.' ? Vue.config.globalProperties : Vue.prototype\n    globalPrototype.$clipboardConfig = VueClipboardConfig\n    globalPrototype.$copyText = function (text, container) {\n      return new Promise(function (resolve, reject) {\n        var fakeElement = document.createElement('button')\n        var clipboard = new Clipboard(fakeElement, {\n          text: function () { return text },\n          action: function () { return 'copy' },\n          container: typeof container === 'object' ? container : document.body\n        })\n        clipboard.on('success', function (e) {\n          clipboard.destroy()\n          resolve(e)\n        })\n        clipboard.on('error', function (e) {\n          clipboard.destroy()\n          reject(e)\n        })\n        if (VueClipboardConfig.appendToBody) document.body.appendChild(fakeElement)\n        fakeElement.click()\n        if (VueClipboardConfig.appendToBody) document.body.removeChild(fakeElement)\n      })\n    }\n\n    Vue.directive('clipboard', {\n      bind: function (el, binding, vnode) {\n        if (binding.arg === 'success') {\n          el._vClipboard_success = binding.value\n        } else if (binding.arg === 'error') {\n          el._vClipboard_error = binding.value\n        } else {\n          var clipboard = new Clipboard(el, {\n            text: function () { return binding.value },\n            action: function () { return binding.arg === 'cut' ? 'cut' : 'copy' },\n            container: VueClipboardConfig.autoSetContainer ? el : undefined\n          })\n          clipboard.on('success', function (e) {\n            var callback = el._vClipboard_success\n            callback && callback(e)\n          })\n          clipboard.on('error', function (e) {\n            var callback = el._vClipboard_error\n            callback && callback(e)\n          })\n          el._vClipboard = clipboard\n        }\n      },\n      update: function (el, binding) {\n        if (binding.arg === 'success') {\n          el._vClipboard_success = binding.value\n        } else if (binding.arg === 'error') {\n          el._vClipboard_error = binding.value\n        } else {\n          el._vClipboard.text = function () { return binding.value }\n          el._vClipboard.action = function () { return binding.arg === 'cut' ? 'cut' : 'copy' }\n        }\n      },\n      unbind: function (el, binding) {\n        // FIXME: investigate why $element._vClipboard was missing\n        if (!el._vClipboard) return\n        if (binding.arg === 'success') {\n          delete el._vClipboard_success\n        } else if (binding.arg === 'error') {\n          delete el._vClipboard_error\n        } else {\n          el._vClipboard.destroy()\n          delete el._vClipboard\n        }\n      }\n    })\n  },\n  config: VueClipboardConfig\n}\n\nif (true) {\n  module.exports = VueClipboard\n} else {}\n\n\n//# sourceURL=webpack:///./node_modules/vue-clipboard2/vue-clipboard.js?");

/***/ }),

/***/ "./node_modules/vue-count-to/dist/vue-count-to.min.js":
/*!************************************************************!*\
  !*** ./node_modules/vue-count-to/dist/vue-count-to.min.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("!function(t,e){ true?module.exports=e():undefined}(this,function(){return function(t){function e(n){if(i[n])return i[n].exports;var a=i[n]={i:n,l:!1,exports:{}};return t[n].call(a.exports,a,a.exports,e),a.l=!0,a.exports}var i={};return e.m=t,e.c=i,e.i=function(t){return t},e.d=function(t,i,n){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,\"a\",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/dist/\",e(e.s=2)}([function(t,e,i){var n=i(4)(i(1),i(5),null,null);t.exports=n.exports},function(t,e,i){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=i(3);e.default={props:{startVal:{type:Number,required:!1,default:0},endVal:{type:Number,required:!1,default:2017},duration:{type:Number,required:!1,default:3e3},autoplay:{type:Boolean,required:!1,default:!0},decimals:{type:Number,required:!1,default:0,validator:function(t){return t>=0}},decimal:{type:String,required:!1,default:\".\"},separator:{type:String,required:!1,default:\",\"},prefix:{type:String,required:!1,default:\"\"},suffix:{type:String,required:!1,default:\"\"},useEasing:{type:Boolean,required:!1,default:!0},easingFn:{type:Function,default:function(t,e,i,n){return i*(1-Math.pow(2,-10*t/n))*1024/1023+e}}},data:function(){return{localStartVal:this.startVal,displayValue:this.formatNumber(this.startVal),printVal:null,paused:!1,localDuration:this.duration,startTime:null,timestamp:null,remaining:null,rAF:null}},computed:{countDown:function(){return this.startVal>this.endVal}},watch:{startVal:function(){this.autoplay&&this.start()},endVal:function(){this.autoplay&&this.start()}},mounted:function(){this.autoplay&&this.start(),this.$emit(\"mountedCallback\")},methods:{start:function(){this.localStartVal=this.startVal,this.startTime=null,this.localDuration=this.duration,this.paused=!1,this.rAF=(0,n.requestAnimationFrame)(this.count)},pauseResume:function(){this.paused?(this.resume(),this.paused=!1):(this.pause(),this.paused=!0)},pause:function(){(0,n.cancelAnimationFrame)(this.rAF)},resume:function(){this.startTime=null,this.localDuration=+this.remaining,this.localStartVal=+this.printVal,(0,n.requestAnimationFrame)(this.count)},reset:function(){this.startTime=null,(0,n.cancelAnimationFrame)(this.rAF),this.displayValue=this.formatNumber(this.startVal)},count:function(t){this.startTime||(this.startTime=t),this.timestamp=t;var e=t-this.startTime;this.remaining=this.localDuration-e,this.useEasing?this.countDown?this.printVal=this.localStartVal-this.easingFn(e,0,this.localStartVal-this.endVal,this.localDuration):this.printVal=this.easingFn(e,this.localStartVal,this.endVal-this.localStartVal,this.localDuration):this.countDown?this.printVal=this.localStartVal-(this.localStartVal-this.endVal)*(e/this.localDuration):this.printVal=this.localStartVal+(this.localStartVal-this.startVal)*(e/this.localDuration),this.countDown?this.printVal=this.printVal<this.endVal?this.endVal:this.printVal:this.printVal=this.printVal>this.endVal?this.endVal:this.printVal,this.displayValue=this.formatNumber(this.printVal),e<this.localDuration?this.rAF=(0,n.requestAnimationFrame)(this.count):this.$emit(\"callback\")},isNumber:function(t){return!isNaN(parseFloat(t))},formatNumber:function(t){t=t.toFixed(this.decimals),t+=\"\";var e=t.split(\".\"),i=e[0],n=e.length>1?this.decimal+e[1]:\"\",a=/(\\d+)(\\d{3})/;if(this.separator&&!this.isNumber(this.separator))for(;a.test(i);)i=i.replace(a,\"$1\"+this.separator+\"$2\");return this.prefix+i+n+this.suffix}},destroyed:function(){(0,n.cancelAnimationFrame)(this.rAF)}}},function(t,e,i){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=i(0),a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=a.default,\"undefined\"!=typeof window&&window.Vue&&window.Vue.component(\"count-to\",a.default)},function(t,e,i){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=0,a=\"webkit moz ms o\".split(\" \"),r=void 0,o=void 0;if(\"undefined\"==typeof window)e.requestAnimationFrame=r=function(){},e.cancelAnimationFrame=o=function(){};else{e.requestAnimationFrame=r=window.requestAnimationFrame,e.cancelAnimationFrame=o=window.cancelAnimationFrame;for(var s=void 0,u=0;u<a.length&&(!r||!o);u++)s=a[u],e.requestAnimationFrame=r=r||window[s+\"RequestAnimationFrame\"],e.cancelAnimationFrame=o=o||window[s+\"CancelAnimationFrame\"]||window[s+\"CancelRequestAnimationFrame\"];r&&o||(e.requestAnimationFrame=r=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-n)),a=window.setTimeout(function(){t(e+i)},i);return n=e+i,a},e.cancelAnimationFrame=o=function(t){window.clearTimeout(t)})}e.requestAnimationFrame=r,e.cancelAnimationFrame=o},function(t,e){t.exports=function(t,e,i,n){var a,r=t=t||{},o=typeof t.default;\"object\"!==o&&\"function\"!==o||(a=t,r=t.default);var s=\"function\"==typeof r?r.options:r;if(e&&(s.render=e.render,s.staticRenderFns=e.staticRenderFns),i&&(s._scopeId=i),n){var u=Object.create(s.computed||null);Object.keys(n).forEach(function(t){var e=n[t];u[t]=function(){return e}}),s.computed=u}return{esModule:a,exports:r,options:s}}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"span\",[t._v(\"\\n  \"+t._s(t.displayValue)+\"\\n\")])},staticRenderFns:[]}}])});\n//# sourceMappingURL=vue-count-to.min.js.map\n\n//# sourceURL=webpack:///./node_modules/vue-count-to/dist/vue-count-to.min.js?");

/***/ }),

/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js":
/*!********************************************************************!*\
  !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return normalizeComponent; });\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent(\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */,\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options =\n    typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) {\n    // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () {\n          injectStyles.call(\n            this,\n            (options.functional ? this.parent : this).$root.$options.shadowRoot\n          )\n        }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functional component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection(h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n\n\n//# sourceURL=webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js?");

/***/ }),

/***/ "./node_modules/vue-router/dist/vue-router.esm.js":
/*!********************************************************!*\
  !*** ./node_modules/vue-router/dist/vue-router.esm.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/*!\n  * vue-router v3.0.6\n  * (c) 2019 Evan You\n  * @license MIT\n  */\n/*  */\n\nfunction assert (condition, message) {\n  if (!condition) {\n    throw new Error((\"[vue-router] \" + message))\n  }\n}\n\nfunction warn (condition, message) {\n  if ( true && !condition) {\n    typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n  }\n}\n\nfunction isError (err) {\n  return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction extend (a, b) {\n  for (var key in b) {\n    a[key] = b[key];\n  }\n  return a\n}\n\nvar View = {\n  name: 'RouterView',\n  functional: true,\n  props: {\n    name: {\n      type: String,\n      default: 'default'\n    }\n  },\n  render: function render (_, ref) {\n    var props = ref.props;\n    var children = ref.children;\n    var parent = ref.parent;\n    var data = ref.data;\n\n    // used by devtools to display a router-view badge\n    data.routerView = true;\n\n    // directly use parent context's createElement() function\n    // so that components rendered by router-view can resolve named slots\n    var h = parent.$createElement;\n    var name = props.name;\n    var route = parent.$route;\n    var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n    // determine current view depth, also check to see if the tree\n    // has been toggled inactive but kept-alive.\n    var depth = 0;\n    var inactive = false;\n    while (parent && parent._routerRoot !== parent) {\n      var vnodeData = parent.$vnode && parent.$vnode.data;\n      if (vnodeData) {\n        if (vnodeData.routerView) {\n          depth++;\n        }\n        if (vnodeData.keepAlive && parent._inactive) {\n          inactive = true;\n        }\n      }\n      parent = parent.$parent;\n    }\n    data.routerViewDepth = depth;\n\n    // render previous view if the tree is inactive and kept-alive\n    if (inactive) {\n      return h(cache[name], data, children)\n    }\n\n    var matched = route.matched[depth];\n    // render empty node if no matched route\n    if (!matched) {\n      cache[name] = null;\n      return h()\n    }\n\n    var component = cache[name] = matched.components[name];\n\n    // attach instance registration hook\n    // this will be called in the instance's injected lifecycle hooks\n    data.registerRouteInstance = function (vm, val) {\n      // val could be undefined for unregistration\n      var current = matched.instances[name];\n      if (\n        (val && current !== vm) ||\n        (!val && current === vm)\n      ) {\n        matched.instances[name] = val;\n      }\n    }\n\n    // also register instance in prepatch hook\n    // in case the same component instance is reused across different routes\n    ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n      matched.instances[name] = vnode.componentInstance;\n    };\n\n    // register instance in init hook\n    // in case kept-alive component be actived when routes changed\n    data.hook.init = function (vnode) {\n      if (vnode.data.keepAlive &&\n        vnode.componentInstance &&\n        vnode.componentInstance !== matched.instances[name]\n      ) {\n        matched.instances[name] = vnode.componentInstance;\n      }\n    };\n\n    // resolve props\n    var propsToPass = data.props = resolveProps(route, matched.props && matched.props[name]);\n    if (propsToPass) {\n      // clone to prevent mutation\n      propsToPass = data.props = extend({}, propsToPass);\n      // pass non-declared props as attrs\n      var attrs = data.attrs = data.attrs || {};\n      for (var key in propsToPass) {\n        if (!component.props || !(key in component.props)) {\n          attrs[key] = propsToPass[key];\n          delete propsToPass[key];\n        }\n      }\n    }\n\n    return h(component, data, children)\n  }\n}\n\nfunction resolveProps (route, config) {\n  switch (typeof config) {\n    case 'undefined':\n      return\n    case 'object':\n      return config\n    case 'function':\n      return config(route)\n    case 'boolean':\n      return config ? route.params : undefined\n    default:\n      if (true) {\n        warn(\n          false,\n          \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n          \"expecting an object, function or boolean.\"\n        );\n      }\n  }\n}\n\n/*  */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n  .replace(encodeReserveRE, encodeReserveReplacer)\n  .replace(commaRE, ','); };\n\nvar decode = decodeURIComponent;\n\nfunction resolveQuery (\n  query,\n  extraQuery,\n  _parseQuery\n) {\n  if ( extraQuery === void 0 ) extraQuery = {};\n\n  var parse = _parseQuery || parseQuery;\n  var parsedQuery;\n  try {\n    parsedQuery = parse(query || '');\n  } catch (e) {\n     true && warn(false, e.message);\n    parsedQuery = {};\n  }\n  for (var key in extraQuery) {\n    parsedQuery[key] = extraQuery[key];\n  }\n  return parsedQuery\n}\n\nfunction parseQuery (query) {\n  var res = {};\n\n  query = query.trim().replace(/^(\\?|#|&)/, '');\n\n  if (!query) {\n    return res\n  }\n\n  query.split('&').forEach(function (param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = decode(parts.shift());\n    var val = parts.length > 0\n      ? decode(parts.join('='))\n      : null;\n\n    if (res[key] === undefined) {\n      res[key] = val;\n    } else if (Array.isArray(res[key])) {\n      res[key].push(val);\n    } else {\n      res[key] = [res[key], val];\n    }\n  });\n\n  return res\n}\n\nfunction stringifyQuery (obj) {\n  var res = obj ? Object.keys(obj).map(function (key) {\n    var val = obj[key];\n\n    if (val === undefined) {\n      return ''\n    }\n\n    if (val === null) {\n      return encode(key)\n    }\n\n    if (Array.isArray(val)) {\n      var result = [];\n      val.forEach(function (val2) {\n        if (val2 === undefined) {\n          return\n        }\n        if (val2 === null) {\n          result.push(encode(key));\n        } else {\n          result.push(encode(key) + '=' + encode(val2));\n        }\n      });\n      return result.join('&')\n    }\n\n    return encode(key) + '=' + encode(val)\n  }).filter(function (x) { return x.length > 0; }).join('&') : null;\n  return res ? (\"?\" + res) : ''\n}\n\n/*  */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n  record,\n  location,\n  redirectedFrom,\n  router\n) {\n  var stringifyQuery$$1 = router && router.options.stringifyQuery;\n\n  var query = location.query || {};\n  try {\n    query = clone(query);\n  } catch (e) {}\n\n  var route = {\n    name: location.name || (record && record.name),\n    meta: (record && record.meta) || {},\n    path: location.path || '/',\n    hash: location.hash || '',\n    query: query,\n    params: location.params || {},\n    fullPath: getFullPath(location, stringifyQuery$$1),\n    matched: record ? formatMatch(record) : []\n  };\n  if (redirectedFrom) {\n    route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery$$1);\n  }\n  return Object.freeze(route)\n}\n\nfunction clone (value) {\n  if (Array.isArray(value)) {\n    return value.map(clone)\n  } else if (value && typeof value === 'object') {\n    var res = {};\n    for (var key in value) {\n      res[key] = clone(value[key]);\n    }\n    return res\n  } else {\n    return value\n  }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n  path: '/'\n});\n\nfunction formatMatch (record) {\n  var res = [];\n  while (record) {\n    res.unshift(record);\n    record = record.parent;\n  }\n  return res\n}\n\nfunction getFullPath (\n  ref,\n  _stringifyQuery\n) {\n  var path = ref.path;\n  var query = ref.query; if ( query === void 0 ) query = {};\n  var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n  var stringify = _stringifyQuery || stringifyQuery;\n  return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b) {\n  if (b === START) {\n    return a === b\n  } else if (!b) {\n    return false\n  } else if (a.path && b.path) {\n    return (\n      a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n      a.hash === b.hash &&\n      isObjectEqual(a.query, b.query)\n    )\n  } else if (a.name && b.name) {\n    return (\n      a.name === b.name &&\n      a.hash === b.hash &&\n      isObjectEqual(a.query, b.query) &&\n      isObjectEqual(a.params, b.params)\n    )\n  } else {\n    return false\n  }\n}\n\nfunction isObjectEqual (a, b) {\n  if ( a === void 0 ) a = {};\n  if ( b === void 0 ) b = {};\n\n  // handle null value #1566\n  if (!a || !b) { return a === b }\n  var aKeys = Object.keys(a);\n  var bKeys = Object.keys(b);\n  if (aKeys.length !== bKeys.length) {\n    return false\n  }\n  return aKeys.every(function (key) {\n    var aVal = a[key];\n    var bVal = b[key];\n    // check nested equality\n    if (typeof aVal === 'object' && typeof bVal === 'object') {\n      return isObjectEqual(aVal, bVal)\n    }\n    return String(aVal) === String(bVal)\n  })\n}\n\nfunction isIncludedRoute (current, target) {\n  return (\n    current.path.replace(trailingSlashRE, '/').indexOf(\n      target.path.replace(trailingSlashRE, '/')\n    ) === 0 &&\n    (!target.hash || current.hash === target.hash) &&\n    queryIncludes(current.query, target.query)\n  )\n}\n\nfunction queryIncludes (current, target) {\n  for (var key in target) {\n    if (!(key in current)) {\n      return false\n    }\n  }\n  return true\n}\n\n/*  */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar Link = {\n  name: 'RouterLink',\n  props: {\n    to: {\n      type: toTypes,\n      required: true\n    },\n    tag: {\n      type: String,\n      default: 'a'\n    },\n    exact: Boolean,\n    append: Boolean,\n    replace: Boolean,\n    activeClass: String,\n    exactActiveClass: String,\n    event: {\n      type: eventTypes,\n      default: 'click'\n    }\n  },\n  render: function render (h) {\n    var this$1 = this;\n\n    var router = this.$router;\n    var current = this.$route;\n    var ref = router.resolve(this.to, current, this.append);\n    var location = ref.location;\n    var route = ref.route;\n    var href = ref.href;\n\n    var classes = {};\n    var globalActiveClass = router.options.linkActiveClass;\n    var globalExactActiveClass = router.options.linkExactActiveClass;\n    // Support global empty active class\n    var activeClassFallback = globalActiveClass == null\n      ? 'router-link-active'\n      : globalActiveClass;\n    var exactActiveClassFallback = globalExactActiveClass == null\n      ? 'router-link-exact-active'\n      : globalExactActiveClass;\n    var activeClass = this.activeClass == null\n      ? activeClassFallback\n      : this.activeClass;\n    var exactActiveClass = this.exactActiveClass == null\n      ? exactActiveClassFallback\n      : this.exactActiveClass;\n    var compareTarget = location.path\n      ? createRoute(null, location, null, router)\n      : route;\n\n    classes[exactActiveClass] = isSameRoute(current, compareTarget);\n    classes[activeClass] = this.exact\n      ? classes[exactActiveClass]\n      : isIncludedRoute(current, compareTarget);\n\n    var handler = function (e) {\n      if (guardEvent(e)) {\n        if (this$1.replace) {\n          router.replace(location);\n        } else {\n          router.push(location);\n        }\n      }\n    };\n\n    var on = { click: guardEvent };\n    if (Array.isArray(this.event)) {\n      this.event.forEach(function (e) { on[e] = handler; });\n    } else {\n      on[this.event] = handler;\n    }\n\n    var data = {\n      class: classes\n    };\n\n    if (this.tag === 'a') {\n      data.on = on;\n      data.attrs = { href: href };\n    } else {\n      // find the first <a> child and apply listener and href\n      var a = findAnchor(this.$slots.default);\n      if (a) {\n        // in case the <a> is a static node\n        a.isStatic = false;\n        var aData = a.data = extend({}, a.data);\n        aData.on = on;\n        var aAttrs = a.data.attrs = extend({}, a.data.attrs);\n        aAttrs.href = href;\n      } else {\n        // doesn't have <a> child, apply listener to self\n        data.on = on;\n      }\n    }\n\n    return h(this.tag, data, this.$slots.default)\n  }\n}\n\nfunction guardEvent (e) {\n  // don't redirect with control keys\n  if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n  // don't redirect when preventDefault called\n  if (e.defaultPrevented) { return }\n  // don't redirect on right click\n  if (e.button !== undefined && e.button !== 0) { return }\n  // don't redirect if `target=\"_blank\"`\n  if (e.currentTarget && e.currentTarget.getAttribute) {\n    var target = e.currentTarget.getAttribute('target');\n    if (/\\b_blank\\b/i.test(target)) { return }\n  }\n  // this may be a Weex event which doesn't have this method\n  if (e.preventDefault) {\n    e.preventDefault();\n  }\n  return true\n}\n\nfunction findAnchor (children) {\n  if (children) {\n    var child;\n    for (var i = 0; i < children.length; i++) {\n      child = children[i];\n      if (child.tag === 'a') {\n        return child\n      }\n      if (child.children && (child = findAnchor(child.children))) {\n        return child\n      }\n    }\n  }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n  if (install.installed && _Vue === Vue) { return }\n  install.installed = true;\n\n  _Vue = Vue;\n\n  var isDef = function (v) { return v !== undefined; };\n\n  var registerInstance = function (vm, callVal) {\n    var i = vm.$options._parentVnode;\n    if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n      i(vm, callVal);\n    }\n  };\n\n  Vue.mixin({\n    beforeCreate: function beforeCreate () {\n      if (isDef(this.$options.router)) {\n        this._routerRoot = this;\n        this._router = this.$options.router;\n        this._router.init(this);\n        Vue.util.defineReactive(this, '_route', this._router.history.current);\n      } else {\n        this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n      }\n      registerInstance(this, this);\n    },\n    destroyed: function destroyed () {\n      registerInstance(this);\n    }\n  });\n\n  Object.defineProperty(Vue.prototype, '$router', {\n    get: function get () { return this._routerRoot._router }\n  });\n\n  Object.defineProperty(Vue.prototype, '$route', {\n    get: function get () { return this._routerRoot._route }\n  });\n\n  Vue.component('RouterView', View);\n  Vue.component('RouterLink', Link);\n\n  var strats = Vue.config.optionMergeStrategies;\n  // use the same hook merging strategy for route hooks\n  strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/*  */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/*  */\n\nfunction resolvePath (\n  relative,\n  base,\n  append\n) {\n  var firstChar = relative.charAt(0);\n  if (firstChar === '/') {\n    return relative\n  }\n\n  if (firstChar === '?' || firstChar === '#') {\n    return base + relative\n  }\n\n  var stack = base.split('/');\n\n  // remove trailing segment if:\n  // - not appending\n  // - appending to trailing slash (last segment is empty)\n  if (!append || !stack[stack.length - 1]) {\n    stack.pop();\n  }\n\n  // resolve relative path\n  var segments = relative.replace(/^\\//, '').split('/');\n  for (var i = 0; i < segments.length; i++) {\n    var segment = segments[i];\n    if (segment === '..') {\n      stack.pop();\n    } else if (segment !== '.') {\n      stack.push(segment);\n    }\n  }\n\n  // ensure leading slash\n  if (stack[0] !== '') {\n    stack.unshift('');\n  }\n\n  return stack.join('/')\n}\n\nfunction parsePath (path) {\n  var hash = '';\n  var query = '';\n\n  var hashIndex = path.indexOf('#');\n  if (hashIndex >= 0) {\n    hash = path.slice(hashIndex);\n    path = path.slice(0, hashIndex);\n  }\n\n  var queryIndex = path.indexOf('?');\n  if (queryIndex >= 0) {\n    query = path.slice(queryIndex + 1);\n    path = path.slice(0, queryIndex);\n  }\n\n  return {\n    path: path,\n    query: query,\n    hash: hash\n  }\n}\n\nfunction cleanPath (path) {\n  return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n  return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n  // Match escaped characters that would otherwise appear in future matches.\n  // This allows the user to escape special characters that won't transform.\n  '(\\\\\\\\.)',\n  // Match Express-style parameters and un-named parameters with a prefix\n  // and optional suffixes. Matches appear as:\n  //\n  // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n  // \"/route(\\\\d+)\"  => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n  // \"/*\"            => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n  '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param  {string}  str\n * @param  {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n  var tokens = [];\n  var key = 0;\n  var index = 0;\n  var path = '';\n  var defaultDelimiter = options && options.delimiter || '/';\n  var res;\n\n  while ((res = PATH_REGEXP.exec(str)) != null) {\n    var m = res[0];\n    var escaped = res[1];\n    var offset = res.index;\n    path += str.slice(index, offset);\n    index = offset + m.length;\n\n    // Ignore already escaped sequences.\n    if (escaped) {\n      path += escaped[1];\n      continue\n    }\n\n    var next = str[index];\n    var prefix = res[2];\n    var name = res[3];\n    var capture = res[4];\n    var group = res[5];\n    var modifier = res[6];\n    var asterisk = res[7];\n\n    // Push the current path onto the tokens.\n    if (path) {\n      tokens.push(path);\n      path = '';\n    }\n\n    var partial = prefix != null && next != null && next !== prefix;\n    var repeat = modifier === '+' || modifier === '*';\n    var optional = modifier === '?' || modifier === '*';\n    var delimiter = res[2] || defaultDelimiter;\n    var pattern = capture || group;\n\n    tokens.push({\n      name: name || key++,\n      prefix: prefix || '',\n      delimiter: delimiter,\n      optional: optional,\n      repeat: repeat,\n      partial: partial,\n      asterisk: !!asterisk,\n      pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n    });\n  }\n\n  // Match any characters still remaining.\n  if (index < str.length) {\n    path += str.substr(index);\n  }\n\n  // If the path exists, push it onto the end.\n  if (path) {\n    tokens.push(path);\n  }\n\n  return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param  {string}             str\n * @param  {Object=}            options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n  return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n  return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n  return encodeURI(str).replace(/[?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n  // Compile all the tokens into regexps.\n  var matches = new Array(tokens.length);\n\n  // Compile all the patterns before compilation.\n  for (var i = 0; i < tokens.length; i++) {\n    if (typeof tokens[i] === 'object') {\n      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$');\n    }\n  }\n\n  return function (obj, opts) {\n    var path = '';\n    var data = obj || {};\n    var options = opts || {};\n    var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n    for (var i = 0; i < tokens.length; i++) {\n      var token = tokens[i];\n\n      if (typeof token === 'string') {\n        path += token;\n\n        continue\n      }\n\n      var value = data[token.name];\n      var segment;\n\n      if (value == null) {\n        if (token.optional) {\n          // Prepend partial segment prefixes.\n          if (token.partial) {\n            path += token.prefix;\n          }\n\n          continue\n        } else {\n          throw new TypeError('Expected \"' + token.name + '\" to be defined')\n        }\n      }\n\n      if (isarray(value)) {\n        if (!token.repeat) {\n          throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n        }\n\n        if (value.length === 0) {\n          if (token.optional) {\n            continue\n          } else {\n            throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n          }\n        }\n\n        for (var j = 0; j < value.length; j++) {\n          segment = encode(value[j]);\n\n          if (!matches[i].test(segment)) {\n            throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n          }\n\n          path += (j === 0 ? token.prefix : token.delimiter) + segment;\n        }\n\n        continue\n      }\n\n      segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n      if (!matches[i].test(segment)) {\n        throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n      }\n\n      path += token.prefix + segment;\n    }\n\n    return path\n  }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param  {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n  return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param  {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n  return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param  {!RegExp} re\n * @param  {Array}   keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n  re.keys = keys;\n  return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param  {Object} options\n * @return {string}\n */\nfunction flags (options) {\n  return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param  {!RegExp} path\n * @param  {!Array}  keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n  // Use a negative lookahead to match only capturing groups.\n  var groups = path.source.match(/\\((?!\\?)/g);\n\n  if (groups) {\n    for (var i = 0; i < groups.length; i++) {\n      keys.push({\n        name: i,\n        prefix: null,\n        delimiter: null,\n        optional: false,\n        repeat: false,\n        partial: false,\n        asterisk: false,\n        pattern: null\n      });\n    }\n  }\n\n  return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param  {!Array}  path\n * @param  {Array}   keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n  var parts = [];\n\n  for (var i = 0; i < path.length; i++) {\n    parts.push(pathToRegexp(path[i], keys, options).source);\n  }\n\n  var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n  return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param  {string}  path\n * @param  {!Array}  keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n  return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param  {!Array}          tokens\n * @param  {(Array|Object)=} keys\n * @param  {Object=}         options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options);\n    keys = [];\n  }\n\n  options = options || {};\n\n  var strict = options.strict;\n  var end = options.end !== false;\n  var route = '';\n\n  // Iterate over the tokens and create our regexp string.\n  for (var i = 0; i < tokens.length; i++) {\n    var token = tokens[i];\n\n    if (typeof token === 'string') {\n      route += escapeString(token);\n    } else {\n      var prefix = escapeString(token.prefix);\n      var capture = '(?:' + token.pattern + ')';\n\n      keys.push(token);\n\n      if (token.repeat) {\n        capture += '(?:' + prefix + capture + ')*';\n      }\n\n      if (token.optional) {\n        if (!token.partial) {\n          capture = '(?:' + prefix + '(' + capture + '))?';\n        } else {\n          capture = prefix + '(' + capture + ')?';\n        }\n      } else {\n        capture = prefix + '(' + capture + ')';\n      }\n\n      route += capture;\n    }\n  }\n\n  var delimiter = escapeString(options.delimiter || '/');\n  var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n  // In non-strict mode we allow a slash at the end of match. If the path to\n  // match already ends with a slash, we remove it for consistency. The slash\n  // is valid at the end of a path match, not in the middle. This is important\n  // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n  if (!strict) {\n    route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n  }\n\n  if (end) {\n    route += '$';\n  } else {\n    // In non-ending mode, we need the capturing groups to match as much as\n    // possible by using a positive lookahead to the end or next path segment.\n    route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n  }\n\n  return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param  {(string|RegExp|Array)} path\n * @param  {(Array|Object)=}       keys\n * @param  {Object=}               options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options);\n    keys = [];\n  }\n\n  options = options || {};\n\n  if (path instanceof RegExp) {\n    return regexpToRegexp(path, /** @type {!Array} */ (keys))\n  }\n\n  if (isarray(path)) {\n    return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n  }\n\n  return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/*  */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n  path,\n  params,\n  routeMsg\n) {\n  params = params || {};\n  try {\n    var filler =\n      regexpCompileCache[path] ||\n      (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n    // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n    if (params.pathMatch) { params[0] = params.pathMatch; }\n\n    return filler(params, { pretty: true })\n  } catch (e) {\n    if (true) {\n      warn(false, (\"missing param for \" + routeMsg + \": \" + (e.message)));\n    }\n    return ''\n  } finally {\n    // delete the 0 if it was added\n    delete params[0];\n  }\n}\n\n/*  */\n\nfunction createRouteMap (\n  routes,\n  oldPathList,\n  oldPathMap,\n  oldNameMap\n) {\n  // the path list is used to control path matching priority\n  var pathList = oldPathList || [];\n  // $flow-disable-line\n  var pathMap = oldPathMap || Object.create(null);\n  // $flow-disable-line\n  var nameMap = oldNameMap || Object.create(null);\n\n  routes.forEach(function (route) {\n    addRouteRecord(pathList, pathMap, nameMap, route);\n  });\n\n  // ensure wildcard routes are always at the end\n  for (var i = 0, l = pathList.length; i < l; i++) {\n    if (pathList[i] === '*') {\n      pathList.push(pathList.splice(i, 1)[0]);\n      l--;\n      i--;\n    }\n  }\n\n  return {\n    pathList: pathList,\n    pathMap: pathMap,\n    nameMap: nameMap\n  }\n}\n\nfunction addRouteRecord (\n  pathList,\n  pathMap,\n  nameMap,\n  route,\n  parent,\n  matchAs\n) {\n  var path = route.path;\n  var name = route.name;\n  if (true) {\n    assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n    assert(\n      typeof route.component !== 'string',\n      \"route config \\\"component\\\" for path: \" + (String(path || name)) + \" cannot be a \" +\n      \"string id. Use an actual component instead.\"\n    );\n  }\n\n  var pathToRegexpOptions = route.pathToRegexpOptions || {};\n  var normalizedPath = normalizePath(\n    path,\n    parent,\n    pathToRegexpOptions.strict\n  );\n\n  if (typeof route.caseSensitive === 'boolean') {\n    pathToRegexpOptions.sensitive = route.caseSensitive;\n  }\n\n  var record = {\n    path: normalizedPath,\n    regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n    components: route.components || { default: route.component },\n    instances: {},\n    name: name,\n    parent: parent,\n    matchAs: matchAs,\n    redirect: route.redirect,\n    beforeEnter: route.beforeEnter,\n    meta: route.meta || {},\n    props: route.props == null\n      ? {}\n      : route.components\n        ? route.props\n        : { default: route.props }\n  };\n\n  if (route.children) {\n    // Warn if route is named, does not redirect and has a default child route.\n    // If users navigate to this route by name, the default child will\n    // not be rendered (GH Issue #629)\n    if (true) {\n      if (route.name && !route.redirect && route.children.some(function (child) { return /^\\/?$/.test(child.path); })) {\n        warn(\n          false,\n          \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n          \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n          \"the default child route will not be rendered. Remove the name from \" +\n          \"this route and use the name of the default child route for named \" +\n          \"links instead.\"\n        );\n      }\n    }\n    route.children.forEach(function (child) {\n      var childMatchAs = matchAs\n        ? cleanPath((matchAs + \"/\" + (child.path)))\n        : undefined;\n      addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n    });\n  }\n\n  if (route.alias !== undefined) {\n    var aliases = Array.isArray(route.alias)\n      ? route.alias\n      : [route.alias];\n\n    aliases.forEach(function (alias) {\n      var aliasRoute = {\n        path: alias,\n        children: route.children\n      };\n      addRouteRecord(\n        pathList,\n        pathMap,\n        nameMap,\n        aliasRoute,\n        parent,\n        record.path || '/' // matchAs\n      );\n    });\n  }\n\n  if (!pathMap[record.path]) {\n    pathList.push(record.path);\n    pathMap[record.path] = record;\n  }\n\n  if (name) {\n    if (!nameMap[name]) {\n      nameMap[name] = record;\n    } else if ( true && !matchAs) {\n      warn(\n        false,\n        \"Duplicate named routes definition: \" +\n        \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n      );\n    }\n  }\n}\n\nfunction compileRouteRegex (path, pathToRegexpOptions) {\n  var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n  if (true) {\n    var keys = Object.create(null);\n    regex.keys.forEach(function (key) {\n      warn(!keys[key.name], (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\"));\n      keys[key.name] = true;\n    });\n  }\n  return regex\n}\n\nfunction normalizePath (path, parent, strict) {\n  if (!strict) { path = path.replace(/\\/$/, ''); }\n  if (path[0] === '/') { return path }\n  if (parent == null) { return path }\n  return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/*  */\n\nfunction normalizeLocation (\n  raw,\n  current,\n  append,\n  router\n) {\n  var next = typeof raw === 'string' ? { path: raw } : raw;\n  // named target\n  if (next._normalized) {\n    return next\n  } else if (next.name) {\n    return extend({}, raw)\n  }\n\n  // relative params\n  if (!next.path && next.params && current) {\n    next = extend({}, next);\n    next._normalized = true;\n    var params = extend(extend({}, current.params), next.params);\n    if (current.name) {\n      next.name = current.name;\n      next.params = params;\n    } else if (current.matched.length) {\n      var rawPath = current.matched[current.matched.length - 1].path;\n      next.path = fillParams(rawPath, params, (\"path \" + (current.path)));\n    } else if (true) {\n      warn(false, \"relative params navigation requires a current route.\");\n    }\n    return next\n  }\n\n  var parsedPath = parsePath(next.path || '');\n  var basePath = (current && current.path) || '/';\n  var path = parsedPath.path\n    ? resolvePath(parsedPath.path, basePath, append || next.append)\n    : basePath;\n\n  var query = resolveQuery(\n    parsedPath.query,\n    next.query,\n    router && router.options.parseQuery\n  );\n\n  var hash = next.hash || parsedPath.hash;\n  if (hash && hash.charAt(0) !== '#') {\n    hash = \"#\" + hash;\n  }\n\n  return {\n    _normalized: true,\n    path: path,\n    query: query,\n    hash: hash\n  }\n}\n\n/*  */\n\n\n\nfunction createMatcher (\n  routes,\n  router\n) {\n  var ref = createRouteMap(routes);\n  var pathList = ref.pathList;\n  var pathMap = ref.pathMap;\n  var nameMap = ref.nameMap;\n\n  function addRoutes (routes) {\n    createRouteMap(routes, pathList, pathMap, nameMap);\n  }\n\n  function match (\n    raw,\n    currentRoute,\n    redirectedFrom\n  ) {\n    var location = normalizeLocation(raw, currentRoute, false, router);\n    var name = location.name;\n\n    if (name) {\n      var record = nameMap[name];\n      if (true) {\n        warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n      }\n      if (!record) { return _createRoute(null, location) }\n      var paramNames = record.regex.keys\n        .filter(function (key) { return !key.optional; })\n        .map(function (key) { return key.name; });\n\n      if (typeof location.params !== 'object') {\n        location.params = {};\n      }\n\n      if (currentRoute && typeof currentRoute.params === 'object') {\n        for (var key in currentRoute.params) {\n          if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n            location.params[key] = currentRoute.params[key];\n          }\n        }\n      }\n\n      if (record) {\n        location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n        return _createRoute(record, location, redirectedFrom)\n      }\n    } else if (location.path) {\n      location.params = {};\n      for (var i = 0; i < pathList.length; i++) {\n        var path = pathList[i];\n        var record$1 = pathMap[path];\n        if (matchRoute(record$1.regex, location.path, location.params)) {\n          return _createRoute(record$1, location, redirectedFrom)\n        }\n      }\n    }\n    // no match\n    return _createRoute(null, location)\n  }\n\n  function redirect (\n    record,\n    location\n  ) {\n    var originalRedirect = record.redirect;\n    var redirect = typeof originalRedirect === 'function'\n      ? originalRedirect(createRoute(record, location, null, router))\n      : originalRedirect;\n\n    if (typeof redirect === 'string') {\n      redirect = { path: redirect };\n    }\n\n    if (!redirect || typeof redirect !== 'object') {\n      if (true) {\n        warn(\n          false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n        );\n      }\n      return _createRoute(null, location)\n    }\n\n    var re = redirect;\n    var name = re.name;\n    var path = re.path;\n    var query = location.query;\n    var hash = location.hash;\n    var params = location.params;\n    query = re.hasOwnProperty('query') ? re.query : query;\n    hash = re.hasOwnProperty('hash') ? re.hash : hash;\n    params = re.hasOwnProperty('params') ? re.params : params;\n\n    if (name) {\n      // resolved named direct\n      var targetRecord = nameMap[name];\n      if (true) {\n        assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n      }\n      return match({\n        _normalized: true,\n        name: name,\n        query: query,\n        hash: hash,\n        params: params\n      }, undefined, location)\n    } else if (path) {\n      // 1. resolve relative redirect\n      var rawPath = resolveRecordPath(path, record);\n      // 2. resolve params\n      var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n      // 3. rematch with existing query and hash\n      return match({\n        _normalized: true,\n        path: resolvedPath,\n        query: query,\n        hash: hash\n      }, undefined, location)\n    } else {\n      if (true) {\n        warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n      }\n      return _createRoute(null, location)\n    }\n  }\n\n  function alias (\n    record,\n    location,\n    matchAs\n  ) {\n    var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n    var aliasedMatch = match({\n      _normalized: true,\n      path: aliasedPath\n    });\n    if (aliasedMatch) {\n      var matched = aliasedMatch.matched;\n      var aliasedRecord = matched[matched.length - 1];\n      location.params = aliasedMatch.params;\n      return _createRoute(aliasedRecord, location)\n    }\n    return _createRoute(null, location)\n  }\n\n  function _createRoute (\n    record,\n    location,\n    redirectedFrom\n  ) {\n    if (record && record.redirect) {\n      return redirect(record, redirectedFrom || location)\n    }\n    if (record && record.matchAs) {\n      return alias(record, location, record.matchAs)\n    }\n    return createRoute(record, location, redirectedFrom, router)\n  }\n\n  return {\n    match: match,\n    addRoutes: addRoutes\n  }\n}\n\nfunction matchRoute (\n  regex,\n  path,\n  params\n) {\n  var m = path.match(regex);\n\n  if (!m) {\n    return false\n  } else if (!params) {\n    return true\n  }\n\n  for (var i = 1, len = m.length; i < len; ++i) {\n    var key = regex.keys[i - 1];\n    var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];\n    if (key) {\n      // Fix #1994: using * with props: true generates a param named 0\n      params[key.name || 'pathMatch'] = val;\n    }\n  }\n\n  return true\n}\n\nfunction resolveRecordPath (path, record) {\n  return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/*  */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n  // Fix for #1585 for Firefox\n  // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n  window.history.replaceState({ key: getStateKey() }, '', window.location.href.replace(window.location.origin, ''));\n  window.addEventListener('popstate', function (e) {\n    saveScrollPosition();\n    if (e.state && e.state.key) {\n      setStateKey(e.state.key);\n    }\n  });\n}\n\nfunction handleScroll (\n  router,\n  to,\n  from,\n  isPop\n) {\n  if (!router.app) {\n    return\n  }\n\n  var behavior = router.options.scrollBehavior;\n  if (!behavior) {\n    return\n  }\n\n  if (true) {\n    assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n  }\n\n  // wait until re-render finishes before scrolling\n  router.app.$nextTick(function () {\n    var position = getScrollPosition();\n    var shouldScroll = behavior.call(router, to, from, isPop ? position : null);\n\n    if (!shouldScroll) {\n      return\n    }\n\n    if (typeof shouldScroll.then === 'function') {\n      shouldScroll.then(function (shouldScroll) {\n        scrollToPosition((shouldScroll), position);\n      }).catch(function (err) {\n        if (true) {\n          assert(false, err.toString());\n        }\n      });\n    } else {\n      scrollToPosition(shouldScroll, position);\n    }\n  });\n}\n\nfunction saveScrollPosition () {\n  var key = getStateKey();\n  if (key) {\n    positionStore[key] = {\n      x: window.pageXOffset,\n      y: window.pageYOffset\n    };\n  }\n}\n\nfunction getScrollPosition () {\n  var key = getStateKey();\n  if (key) {\n    return positionStore[key]\n  }\n}\n\nfunction getElementPosition (el, offset) {\n  var docEl = document.documentElement;\n  var docRect = docEl.getBoundingClientRect();\n  var elRect = el.getBoundingClientRect();\n  return {\n    x: elRect.left - docRect.left - offset.x,\n    y: elRect.top - docRect.top - offset.y\n  }\n}\n\nfunction isValidPosition (obj) {\n  return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n  return {\n    x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n    y: isNumber(obj.y) ? obj.y : window.pageYOffset\n  }\n}\n\nfunction normalizeOffset (obj) {\n  return {\n    x: isNumber(obj.x) ? obj.x : 0,\n    y: isNumber(obj.y) ? obj.y : 0\n  }\n}\n\nfunction isNumber (v) {\n  return typeof v === 'number'\n}\n\nfunction scrollToPosition (shouldScroll, position) {\n  var isObject = typeof shouldScroll === 'object';\n  if (isObject && typeof shouldScroll.selector === 'string') {\n    var el = document.querySelector(shouldScroll.selector);\n    if (el) {\n      var offset = shouldScroll.offset && typeof shouldScroll.offset === 'object' ? shouldScroll.offset : {};\n      offset = normalizeOffset(offset);\n      position = getElementPosition(el, offset);\n    } else if (isValidPosition(shouldScroll)) {\n      position = normalizePosition(shouldScroll);\n    }\n  } else if (isObject && isValidPosition(shouldScroll)) {\n    position = normalizePosition(shouldScroll);\n  }\n\n  if (position) {\n    window.scrollTo(position.x, position.y);\n  }\n}\n\n/*  */\n\nvar supportsPushState = inBrowser && (function () {\n  var ua = window.navigator.userAgent;\n\n  if (\n    (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n    ua.indexOf('Mobile Safari') !== -1 &&\n    ua.indexOf('Chrome') === -1 &&\n    ua.indexOf('Windows Phone') === -1\n  ) {\n    return false\n  }\n\n  return window.history && 'pushState' in window.history\n})();\n\n// use User Timing api (if present) for more accurate key precision\nvar Time = inBrowser && window.performance && window.performance.now\n  ? window.performance\n  : Date;\n\nvar _key = genKey();\n\nfunction genKey () {\n  return Time.now().toFixed(3)\n}\n\nfunction getStateKey () {\n  return _key\n}\n\nfunction setStateKey (key) {\n  _key = key;\n}\n\nfunction pushState (url, replace) {\n  saveScrollPosition();\n  // try...catch the pushState call to get around Safari\n  // DOM Exception 18 where it limits to 100 pushState calls\n  var history = window.history;\n  try {\n    if (replace) {\n      history.replaceState({ key: _key }, '', url);\n    } else {\n      _key = genKey();\n      history.pushState({ key: _key }, '', url);\n    }\n  } catch (e) {\n    window.location[replace ? 'replace' : 'assign'](url);\n  }\n}\n\nfunction replaceState (url) {\n  pushState(url, true);\n}\n\n/*  */\n\nfunction runQueue (queue, fn, cb) {\n  var step = function (index) {\n    if (index >= queue.length) {\n      cb();\n    } else {\n      if (queue[index]) {\n        fn(queue[index], function () {\n          step(index + 1);\n        });\n      } else {\n        step(index + 1);\n      }\n    }\n  };\n  step(0);\n}\n\n/*  */\n\nfunction resolveAsyncComponents (matched) {\n  return function (to, from, next) {\n    var hasAsync = false;\n    var pending = 0;\n    var error = null;\n\n    flatMapComponents(matched, function (def, _, match, key) {\n      // if it's a function and doesn't have cid attached,\n      // assume it's an async component resolve function.\n      // we are not using Vue's default async resolving mechanism because\n      // we want to halt the navigation until the incoming component has been\n      // resolved.\n      if (typeof def === 'function' && def.cid === undefined) {\n        hasAsync = true;\n        pending++;\n\n        var resolve = once(function (resolvedDef) {\n          if (isESModule(resolvedDef)) {\n            resolvedDef = resolvedDef.default;\n          }\n          // save resolved on async factory in case it's used elsewhere\n          def.resolved = typeof resolvedDef === 'function'\n            ? resolvedDef\n            : _Vue.extend(resolvedDef);\n          match.components[key] = resolvedDef;\n          pending--;\n          if (pending <= 0) {\n            next();\n          }\n        });\n\n        var reject = once(function (reason) {\n          var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n           true && warn(false, msg);\n          if (!error) {\n            error = isError(reason)\n              ? reason\n              : new Error(msg);\n            next(error);\n          }\n        });\n\n        var res;\n        try {\n          res = def(resolve, reject);\n        } catch (e) {\n          reject(e);\n        }\n        if (res) {\n          if (typeof res.then === 'function') {\n            res.then(resolve, reject);\n          } else {\n            // new syntax in Vue 2.3\n            var comp = res.component;\n            if (comp && typeof comp.then === 'function') {\n              comp.then(resolve, reject);\n            }\n          }\n        }\n      }\n    });\n\n    if (!hasAsync) { next(); }\n  }\n}\n\nfunction flatMapComponents (\n  matched,\n  fn\n) {\n  return flatten(matched.map(function (m) {\n    return Object.keys(m.components).map(function (key) { return fn(\n      m.components[key],\n      m.instances[key],\n      m, key\n    ); })\n  }))\n}\n\nfunction flatten (arr) {\n  return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n  typeof Symbol === 'function' &&\n  typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n  return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n  var called = false;\n  return function () {\n    var args = [], len = arguments.length;\n    while ( len-- ) args[ len ] = arguments[ len ];\n\n    if (called) { return }\n    called = true;\n    return fn.apply(this, args)\n  }\n}\n\n/*  */\n\nvar History = function History (router, base) {\n  this.router = router;\n  this.base = normalizeBase(base);\n  // start with a route object that stands for \"nowhere\"\n  this.current = START;\n  this.pending = null;\n  this.ready = false;\n  this.readyCbs = [];\n  this.readyErrorCbs = [];\n  this.errorCbs = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n  this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n  if (this.ready) {\n    cb();\n  } else {\n    this.readyCbs.push(cb);\n    if (errorCb) {\n      this.readyErrorCbs.push(errorCb);\n    }\n  }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n  this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (location, onComplete, onAbort) {\n    var this$1 = this;\n\n  var route = this.router.match(location, this.current);\n  this.confirmTransition(route, function () {\n    this$1.updateRoute(route);\n    onComplete && onComplete(route);\n    this$1.ensureURL();\n\n    // fire ready cbs once\n    if (!this$1.ready) {\n      this$1.ready = true;\n      this$1.readyCbs.forEach(function (cb) { cb(route); });\n    }\n  }, function (err) {\n    if (onAbort) {\n      onAbort(err);\n    }\n    if (err && !this$1.ready) {\n      this$1.ready = true;\n      this$1.readyErrorCbs.forEach(function (cb) { cb(err); });\n    }\n  });\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n    var this$1 = this;\n\n  var current = this.current;\n  var abort = function (err) {\n    if (isError(err)) {\n      if (this$1.errorCbs.length) {\n        this$1.errorCbs.forEach(function (cb) { cb(err); });\n      } else {\n        warn(false, 'uncaught error during route navigation:');\n        console.error(err);\n      }\n    }\n    onAbort && onAbort(err);\n  };\n  if (\n    isSameRoute(route, current) &&\n    // in the case the route map has been dynamically appended to\n    route.matched.length === current.matched.length\n  ) {\n    this.ensureURL();\n    return abort()\n  }\n\n  var ref = resolveQueue(this.current.matched, route.matched);\n    var updated = ref.updated;\n    var deactivated = ref.deactivated;\n    var activated = ref.activated;\n\n  var queue = [].concat(\n    // in-component leave guards\n    extractLeaveGuards(deactivated),\n    // global before hooks\n    this.router.beforeHooks,\n    // in-component update hooks\n    extractUpdateHooks(updated),\n    // in-config enter guards\n    activated.map(function (m) { return m.beforeEnter; }),\n    // async components\n    resolveAsyncComponents(activated)\n  );\n\n  this.pending = route;\n  var iterator = function (hook, next) {\n    if (this$1.pending !== route) {\n      return abort()\n    }\n    try {\n      hook(route, current, function (to) {\n        if (to === false || isError(to)) {\n          // next(false) -> abort navigation, ensure current URL\n          this$1.ensureURL(true);\n          abort(to);\n        } else if (\n          typeof to === 'string' ||\n          (typeof to === 'object' && (\n            typeof to.path === 'string' ||\n            typeof to.name === 'string'\n          ))\n        ) {\n          // next('/') or next({ path: '/' }) -> redirect\n          abort();\n          if (typeof to === 'object' && to.replace) {\n            this$1.replace(to);\n          } else {\n            this$1.push(to);\n          }\n        } else {\n          // confirm transition and pass on the value\n          next(to);\n        }\n      });\n    } catch (e) {\n      abort(e);\n    }\n  };\n\n  runQueue(queue, iterator, function () {\n    var postEnterCbs = [];\n    var isValid = function () { return this$1.current === route; };\n    // wait until async components are resolved before\n    // extracting in-component enter guards\n    var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);\n    var queue = enterGuards.concat(this$1.router.resolveHooks);\n    runQueue(queue, iterator, function () {\n      if (this$1.pending !== route) {\n        return abort()\n      }\n      this$1.pending = null;\n      onComplete(route);\n      if (this$1.router.app) {\n        this$1.router.app.$nextTick(function () {\n          postEnterCbs.forEach(function (cb) { cb(); });\n        });\n      }\n    });\n  });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n  var prev = this.current;\n  this.current = route;\n  this.cb && this.cb(route);\n  this.router.afterHooks.forEach(function (hook) {\n    hook && hook(route, prev);\n  });\n};\n\nfunction normalizeBase (base) {\n  if (!base) {\n    if (inBrowser) {\n      // respect <base> tag\n      var baseEl = document.querySelector('base');\n      base = (baseEl && baseEl.getAttribute('href')) || '/';\n      // strip full URL origin\n      base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n    } else {\n      base = '/';\n    }\n  }\n  // make sure there's the starting slash\n  if (base.charAt(0) !== '/') {\n    base = '/' + base;\n  }\n  // remove trailing slash\n  return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n  current,\n  next\n) {\n  var i;\n  var max = Math.max(current.length, next.length);\n  for (i = 0; i < max; i++) {\n    if (current[i] !== next[i]) {\n      break\n    }\n  }\n  return {\n    updated: next.slice(0, i),\n    activated: next.slice(i),\n    deactivated: current.slice(i)\n  }\n}\n\nfunction extractGuards (\n  records,\n  name,\n  bind,\n  reverse\n) {\n  var guards = flatMapComponents(records, function (def, instance, match, key) {\n    var guard = extractGuard(def, name);\n    if (guard) {\n      return Array.isArray(guard)\n        ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n        : bind(guard, instance, match, key)\n    }\n  });\n  return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n  def,\n  key\n) {\n  if (typeof def !== 'function') {\n    // extend now so that global mixins are applied.\n    def = _Vue.extend(def);\n  }\n  return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n  return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n  return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n  if (instance) {\n    return function boundRouteGuard () {\n      return guard.apply(instance, arguments)\n    }\n  }\n}\n\nfunction extractEnterGuards (\n  activated,\n  cbs,\n  isValid\n) {\n  return extractGuards(activated, 'beforeRouteEnter', function (guard, _, match, key) {\n    return bindEnterGuard(guard, match, key, cbs, isValid)\n  })\n}\n\nfunction bindEnterGuard (\n  guard,\n  match,\n  key,\n  cbs,\n  isValid\n) {\n  return function routeEnterGuard (to, from, next) {\n    return guard(to, from, function (cb) {\n      next(cb);\n      if (typeof cb === 'function') {\n        cbs.push(function () {\n          // #750\n          // if a router-view is wrapped with an out-in transition,\n          // the instance may not have been registered at this time.\n          // we will need to poll for registration until current route\n          // is no longer valid.\n          poll(cb, match.instances, key, isValid);\n        });\n      }\n    })\n  }\n}\n\nfunction poll (\n  cb, // somehow flow cannot infer this is a function\n  instances,\n  key,\n  isValid\n) {\n  if (\n    instances[key] &&\n    !instances[key]._isBeingDestroyed // do not reuse being destroyed instance\n  ) {\n    cb(instances[key]);\n  } else if (isValid()) {\n    setTimeout(function () {\n      poll(cb, instances, key, isValid);\n    }, 16);\n  }\n}\n\n/*  */\n\nvar HTML5History = /*@__PURE__*/(function (History$$1) {\n  function HTML5History (router, base) {\n    var this$1 = this;\n\n    History$$1.call(this, router, base);\n\n    var expectScroll = router.options.scrollBehavior;\n    var supportsScroll = supportsPushState && expectScroll;\n\n    if (supportsScroll) {\n      setupScroll();\n    }\n\n    var initLocation = getLocation(this.base);\n    window.addEventListener('popstate', function (e) {\n      var current = this$1.current;\n\n      // Avoiding first `popstate` event dispatched in some browsers but first\n      // history route not updated since async guard at the same time.\n      var location = getLocation(this$1.base);\n      if (this$1.current === START && location === initLocation) {\n        return\n      }\n\n      this$1.transitionTo(location, function (route) {\n        if (supportsScroll) {\n          handleScroll(router, route, current, true);\n        }\n      });\n    });\n  }\n\n  if ( History$$1 ) HTML5History.__proto__ = History$$1;\n  HTML5History.prototype = Object.create( History$$1 && History$$1.prototype );\n  HTML5History.prototype.constructor = HTML5History;\n\n  HTML5History.prototype.go = function go (n) {\n    window.history.go(n);\n  };\n\n  HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n    var this$1 = this;\n\n    var ref = this;\n    var fromRoute = ref.current;\n    this.transitionTo(location, function (route) {\n      pushState(cleanPath(this$1.base + route.fullPath));\n      handleScroll(this$1.router, route, fromRoute, false);\n      onComplete && onComplete(route);\n    }, onAbort);\n  };\n\n  HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n    var this$1 = this;\n\n    var ref = this;\n    var fromRoute = ref.current;\n    this.transitionTo(location, function (route) {\n      replaceState(cleanPath(this$1.base + route.fullPath));\n      handleScroll(this$1.router, route, fromRoute, false);\n      onComplete && onComplete(route);\n    }, onAbort);\n  };\n\n  HTML5History.prototype.ensureURL = function ensureURL (push) {\n    if (getLocation(this.base) !== this.current.fullPath) {\n      var current = cleanPath(this.base + this.current.fullPath);\n      push ? pushState(current) : replaceState(current);\n    }\n  };\n\n  HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n    return getLocation(this.base)\n  };\n\n  return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n  var path = decodeURI(window.location.pathname);\n  if (base && path.indexOf(base) === 0) {\n    path = path.slice(base.length);\n  }\n  return (path || '/') + window.location.search + window.location.hash\n}\n\n/*  */\n\nvar HashHistory = /*@__PURE__*/(function (History$$1) {\n  function HashHistory (router, base, fallback) {\n    History$$1.call(this, router, base);\n    // check history fallback deeplinking\n    if (fallback && checkFallback(this.base)) {\n      return\n    }\n    ensureSlash();\n  }\n\n  if ( History$$1 ) HashHistory.__proto__ = History$$1;\n  HashHistory.prototype = Object.create( History$$1 && History$$1.prototype );\n  HashHistory.prototype.constructor = HashHistory;\n\n  // this is delayed until the app mounts\n  // to avoid the hashchange listener being fired too early\n  HashHistory.prototype.setupListeners = function setupListeners () {\n    var this$1 = this;\n\n    var router = this.router;\n    var expectScroll = router.options.scrollBehavior;\n    var supportsScroll = supportsPushState && expectScroll;\n\n    if (supportsScroll) {\n      setupScroll();\n    }\n\n    window.addEventListener(supportsPushState ? 'popstate' : 'hashchange', function () {\n      var current = this$1.current;\n      if (!ensureSlash()) {\n        return\n      }\n      this$1.transitionTo(getHash(), function (route) {\n        if (supportsScroll) {\n          handleScroll(this$1.router, route, current, true);\n        }\n        if (!supportsPushState) {\n          replaceHash(route.fullPath);\n        }\n      });\n    });\n  };\n\n  HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n    var this$1 = this;\n\n    var ref = this;\n    var fromRoute = ref.current;\n    this.transitionTo(location, function (route) {\n      pushHash(route.fullPath);\n      handleScroll(this$1.router, route, fromRoute, false);\n      onComplete && onComplete(route);\n    }, onAbort);\n  };\n\n  HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n    var this$1 = this;\n\n    var ref = this;\n    var fromRoute = ref.current;\n    this.transitionTo(location, function (route) {\n      replaceHash(route.fullPath);\n      handleScroll(this$1.router, route, fromRoute, false);\n      onComplete && onComplete(route);\n    }, onAbort);\n  };\n\n  HashHistory.prototype.go = function go (n) {\n    window.history.go(n);\n  };\n\n  HashHistory.prototype.ensureURL = function ensureURL (push) {\n    var current = this.current.fullPath;\n    if (getHash() !== current) {\n      push ? pushHash(current) : replaceHash(current);\n    }\n  };\n\n  HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n    return getHash()\n  };\n\n  return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n  var location = getLocation(base);\n  if (!/^\\/#/.test(location)) {\n    window.location.replace(\n      cleanPath(base + '/#' + location)\n    );\n    return true\n  }\n}\n\nfunction ensureSlash () {\n  var path = getHash();\n  if (path.charAt(0) === '/') {\n    return true\n  }\n  replaceHash('/' + path);\n  return false\n}\n\nfunction getHash () {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  var href = window.location.href;\n  var index = href.indexOf('#');\n  // empty path\n  if (index < 0) { return '' }\n\n  href = href.slice(index + 1);\n  // decode the hash but not the search or hash\n  // as search(query) is already decoded\n  // https://github.com/vuejs/vue-router/issues/2708\n  var searchIndex = href.indexOf('?');\n  if (searchIndex < 0) {\n    var hashIndex = href.indexOf('#');\n    if (hashIndex > -1) { href = decodeURI(href.slice(0, hashIndex)) + href.slice(hashIndex); }\n    else { href = decodeURI(href); }\n  } else {\n    if (searchIndex > -1) { href = decodeURI(href.slice(0, searchIndex)) + href.slice(searchIndex); }\n  }\n\n  return href\n}\n\nfunction getUrl (path) {\n  var href = window.location.href;\n  var i = href.indexOf('#');\n  var base = i >= 0 ? href.slice(0, i) : href;\n  return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n  if (supportsPushState) {\n    pushState(getUrl(path));\n  } else {\n    window.location.hash = path;\n  }\n}\n\nfunction replaceHash (path) {\n  if (supportsPushState) {\n    replaceState(getUrl(path));\n  } else {\n    window.location.replace(getUrl(path));\n  }\n}\n\n/*  */\n\nvar AbstractHistory = /*@__PURE__*/(function (History$$1) {\n  function AbstractHistory (router, base) {\n    History$$1.call(this, router, base);\n    this.stack = [];\n    this.index = -1;\n  }\n\n  if ( History$$1 ) AbstractHistory.__proto__ = History$$1;\n  AbstractHistory.prototype = Object.create( History$$1 && History$$1.prototype );\n  AbstractHistory.prototype.constructor = AbstractHistory;\n\n  AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n    var this$1 = this;\n\n    this.transitionTo(location, function (route) {\n      this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n      this$1.index++;\n      onComplete && onComplete(route);\n    }, onAbort);\n  };\n\n  AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n    var this$1 = this;\n\n    this.transitionTo(location, function (route) {\n      this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n      onComplete && onComplete(route);\n    }, onAbort);\n  };\n\n  AbstractHistory.prototype.go = function go (n) {\n    var this$1 = this;\n\n    var targetIndex = this.index + n;\n    if (targetIndex < 0 || targetIndex >= this.stack.length) {\n      return\n    }\n    var route = this.stack[targetIndex];\n    this.confirmTransition(route, function () {\n      this$1.index = targetIndex;\n      this$1.updateRoute(route);\n    });\n  };\n\n  AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n    var current = this.stack[this.stack.length - 1];\n    return current ? current.fullPath : '/'\n  };\n\n  AbstractHistory.prototype.ensureURL = function ensureURL () {\n    // noop\n  };\n\n  return AbstractHistory;\n}(History));\n\n/*  */\n\n\n\nvar VueRouter = function VueRouter (options) {\n  if ( options === void 0 ) options = {};\n\n  this.app = null;\n  this.apps = [];\n  this.options = options;\n  this.beforeHooks = [];\n  this.resolveHooks = [];\n  this.afterHooks = [];\n  this.matcher = createMatcher(options.routes || [], this);\n\n  var mode = options.mode || 'hash';\n  this.fallback = mode === 'history' && !supportsPushState && options.fallback !== false;\n  if (this.fallback) {\n    mode = 'hash';\n  }\n  if (!inBrowser) {\n    mode = 'abstract';\n  }\n  this.mode = mode;\n\n  switch (mode) {\n    case 'history':\n      this.history = new HTML5History(this, options.base);\n      break\n    case 'hash':\n      this.history = new HashHistory(this, options.base, this.fallback);\n      break\n    case 'abstract':\n      this.history = new AbstractHistory(this, options.base);\n      break\n    default:\n      if (true) {\n        assert(false, (\"invalid mode: \" + mode));\n      }\n  }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (\n  raw,\n  current,\n  redirectedFrom\n) {\n  return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n  return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n    var this$1 = this;\n\n   true && assert(\n    install.installed,\n    \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n    \"before creating root instance.\"\n  );\n\n  this.apps.push(app);\n\n  // set up app destroyed handler\n  // https://github.com/vuejs/vue-router/issues/2639\n  app.$once('hook:destroyed', function () {\n    // clean out app from this.apps array once destroyed\n    var index = this$1.apps.indexOf(app);\n    if (index > -1) { this$1.apps.splice(index, 1); }\n    // ensure we still have a main app or null if no apps\n    // we do not release the router so it can be reused\n    if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }\n  });\n\n  // main app previously initialized\n  // return as we don't need to set up new history listener\n  if (this.app) {\n    return\n  }\n\n  this.app = app;\n\n  var history = this.history;\n\n  if (history instanceof HTML5History) {\n    history.transitionTo(history.getCurrentLocation());\n  } else if (history instanceof HashHistory) {\n    var setupHashListener = function () {\n      history.setupListeners();\n    };\n    history.transitionTo(\n      history.getCurrentLocation(),\n      setupHashListener,\n      setupHashListener\n    );\n  }\n\n  history.listen(function (route) {\n    this$1.apps.forEach(function (app) {\n      app._route = route;\n    });\n  });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n  return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n  return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n  return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n  this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n  this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n  this.history.push(location, onComplete, onAbort);\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n  this.history.replace(location, onComplete, onAbort);\n};\n\nVueRouter.prototype.go = function go (n) {\n  this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n  this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n  this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n  var route = to\n    ? to.matched\n      ? to\n      : this.resolve(to).route\n    : this.currentRoute;\n  if (!route) {\n    return []\n  }\n  return [].concat.apply([], route.matched.map(function (m) {\n    return Object.keys(m.components).map(function (key) {\n      return m.components[key]\n    })\n  }))\n};\n\nVueRouter.prototype.resolve = function resolve (\n  to,\n  current,\n  append\n) {\n  current = current || this.history.current;\n  var location = normalizeLocation(\n    to,\n    current,\n    append,\n    this\n  );\n  var route = this.match(location, current);\n  var fullPath = route.redirectedFrom || route.fullPath;\n  var base = this.history.base;\n  var href = createHref(base, fullPath, this.mode);\n  return {\n    location: location,\n    route: route,\n    href: href,\n    // for backwards compat\n    normalizedTo: location,\n    resolved: route\n  }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n  this.matcher.addRoutes(routes);\n  if (this.history.current !== START) {\n    this.history.transitionTo(this.history.getCurrentLocation());\n  }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n  list.push(fn);\n  return function () {\n    var i = list.indexOf(fn);\n    if (i > -1) { list.splice(i, 1); }\n  }\n}\n\nfunction createHref (base, fullPath, mode) {\n  var path = mode === 'hash' ? '#' + fullPath : fullPath;\n  return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.0.6';\n\nif (inBrowser && window.Vue) {\n  window.Vue.use(VueRouter);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (VueRouter);\n\n\n//# sourceURL=webpack:///./node_modules/vue-router/dist/vue-router.esm.js?");

/***/ }),

/***/ "./node_modules/vue-seamless-scroll/dist/vue-seamless-scroll.min.js":
/*!**************************************************************************!*\
  !*** ./node_modules/vue-seamless-scroll/dist/vue-seamless-scroll.min.js ***!
  \**************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("!function(t,i){ true?module.exports=i():undefined}(\"undefined\"!=typeof self?self:this,function(){return function(t){function i(o){if(e[o])return e[o].exports;var n=e[o]={i:o,l:!1,exports:{}};return t[o].call(n.exports,n,n.exports,i),n.l=!0,n.exports}var e={};return i.m=t,i.c=e,i.d=function(t,e,o){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:o})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,\"a\",e),e},i.o=function(t,i){return Object.prototype.hasOwnProperty.call(t,i)},i.p=\"\",i(i.s=1)}([function(t,i,e){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0}),e(4)();var o=e(5),n=e(6);i.default={name:\"vue-seamless-scroll\",data:function(){return{xPos:0,yPos:0,delay:0,copyHtml:\"\",height:0,width:0,realBoxWidth:0}},props:{data:{type:Array,default:function(){return[]}},classOption:{type:Object,default:function(){return{}}}},computed:{leftSwitchState:function(){return this.xPos<0},rightSwitchState:function(){return Math.abs(this.xPos)<this.realBoxWidth-this.width},leftSwitchClass:function(){return this.leftSwitchState?\"\":this.options.switchDisabledClass},rightSwitchClass:function(){return this.rightSwitchState?\"\":this.options.switchDisabledClass},leftSwitch:function(){return{position:\"absolute\",margin:this.height/2+\"px 0 0 -\"+this.options.switchOffset+\"px\",transform:\"translate(-100%,-50%)\"}},rightSwitch:function(){return{position:\"absolute\",margin:this.height/2+\"px 0 0 \"+(this.width+this.options.switchOffset)+\"px\",transform:\"translateY(-50%)\"}},float:function(){return this.isHorizontal?{float:\"left\",overflow:\"hidden\"}:{overflow:\"hidden\"}},pos:function(){return{transform:\"translate(\"+this.xPos+\"px,\"+this.yPos+\"px)\",transition:\"all \"+this.ease+\" \"+this.delay+\"ms\",overflow:\"hidden\"}},defaultOption:function(){return{step:1,limitMoveNum:5,hoverStop:!0,direction:1,openTouch:!0,singleHeight:0,singleWidth:0,waitTime:1e3,switchOffset:30,autoPlay:!0,navigation:!1,switchSingleStep:134,switchDelay:400,switchDisabledClass:\"disabled\",isSingleRemUnit:!1}},options:function(){return n({},this.defaultOption,this.classOption)},navigation:function(){return this.options.navigation},autoPlay:function(){return!this.navigation&&this.options.autoPlay},scrollSwitch:function(){return this.data.length>=this.options.limitMoveNum},hoverStopSwitch:function(){return this.options.hoverStop&&this.autoPlay&&this.scrollSwitch},canTouchScroll:function(){return this.options.openTouch},isHorizontal:function(){return this.options.direction>1},baseFontSize:function(){return this.options.isSingleRemUnit?parseInt(window.getComputedStyle(document.documentElement,null).fontSize):1},realSingleStopWidth:function(){return this.options.singleWidth*this.baseFontSize},realSingleStopHeight:function(){return this.options.singleHeight*this.baseFontSize},step:function(){var t=this.options.step;return this.isHorizontal?this.realSingleStopWidth:this.realSingleStopHeight,t}},methods:{reset:function(){this._cancle(),this._initMove()},leftSwitchClick:function(){if(this.leftSwitchState)return Math.abs(this.xPos)<this.options.switchSingleStep?void(this.xPos=0):void(this.xPos+=this.options.switchSingleStep)},rightSwitchClick:function(){if(this.rightSwitchState)return this.realBoxWidth-this.width+this.xPos<this.options.switchSingleStep?void(this.xPos=this.width-this.realBoxWidth):void(this.xPos-=this.options.switchSingleStep)},_cancle:function(){cancelAnimationFrame(this.reqFrame||\"\")},touchStart:function(t){var i=this;if(this.canTouchScroll){var e=void 0,o=t.targetTouches[0],n=this.options,s=n.waitTime,r=n.singleHeight,a=n.singleWidth;this.startPos={x:o.pageX,y:o.pageY},this.startPosY=this.yPos,this.startPosX=this.xPos,r&&a?(e&&clearTimeout(e),e=setTimeout(function(){i._cancle()},s+20)):this._cancle()}},touchMove:function(t){if(!(!this.canTouchScroll||t.targetTouches.length>1||t.scale&&1!==t.scale)){var i=t.targetTouches[0],e=this.options.direction;this.endPos={x:i.pageX-this.startPos.x,y:i.pageY-this.startPos.y},event.preventDefault();var o=Math.abs(this.endPos.x)<Math.abs(this.endPos.y)?1:0;1===o&&e<2?this.yPos=this.startPosY+this.endPos.y:0===o&&e>1&&(this.xPos=this.startPosX+this.endPos.x)}},touchEnd:function(){var t=this;if(this.canTouchScroll){var i=void 0,e=this.options.direction;if(this.delay=50,1===e)this.yPos>0&&(this.yPos=0);else if(0===e){var o=this.realBoxHeight/2*-1;this.yPos<o&&(this.yPos=o)}else if(2===e)this.xPos>0&&(this.xPos=0);else if(3===e){var n=-1*this.realBoxWidth;this.xPos<n&&(this.xPos=n)}i&&clearTimeout(i),i=setTimeout(function(){t.delay=0,t._move()},this.delay)}},enter:function(){this.hoverStopSwitch&&this._stopMove()},leave:function(){this.hoverStopSwitch&&this._startMove()},_move:function(){this.isHover||(this._cancle(),this.reqFrame=requestAnimationFrame(function(){var t=this,i=this.realBoxHeight/2,e=this.realBoxWidth/2,o=this.options,n=o.direction,s=o.waitTime,r=this.step;1===n?(Math.abs(this.yPos)>=i&&(this.$emit(\"ScrollEnd\"),this.yPos=0),this.yPos-=r):0===n?(this.yPos>=0&&(this.$emit(\"ScrollEnd\"),this.yPos=-1*i),this.yPos+=r):2===n?(Math.abs(this.xPos)>=e&&(this.$emit(\"ScrollEnd\"),this.xPos=0),this.xPos-=r):3===n&&(this.xPos>=0&&(this.$emit(\"ScrollEnd\"),this.xPos=-1*e),this.xPos+=r),this.singleWaitTime&&clearTimeout(this.singleWaitTime),this.realSingleStopHeight?Math.abs(this.yPos)%this.realSingleStopHeight<r?this.singleWaitTime=setTimeout(function(){t._move()},s):this._move():this.realSingleStopWidth&&Math.abs(this.xPos)%this.realSingleStopWidth<r?this.singleWaitTime=setTimeout(function(){t._move()},s):this._move()}.bind(this)))},_initMove:function(){var t=this;this.$nextTick(function(){var i=t.options.switchDelay,e=t.autoPlay,o=t.isHorizontal;if(t._dataWarm(t.data),t.copyHtml=\"\",o){t.height=t.$refs.wrap.offsetHeight,t.width=t.$refs.wrap.offsetWidth;var n=t.$refs.slotList.offsetWidth;e&&(n=2*n+1),t.$refs.realBox.style.width=n+\"px\",t.realBoxWidth=n}if(!e)return t.ease=\"linear\",void(t.delay=i);if(t.ease=\"ease-in\",t.delay=0,t.scrollSwitch){t.copyHtml=t.$refs.slotList.innerHTML,setTimeout(function(){t.realBoxHeight=t.$refs.realBox.offsetHeight,t._move()},0)}else t._cancle(),t.yPos=t.xPos=0})},_dataWarm:function(t){t.length},_startMove:function(){this.isHover=!1,this._move()},_stopMove:function(){this.isHover=!0,this.singleWaitTime&&clearTimeout(this.singleWaitTime),this._cancle()}},mounted:function(){this._initMove()},watch:{data:function(t,i){this._dataWarm(t),o(t,i)||this.reset()},autoPlay:function(t){t?this.reset():this._stopMove()}},beforeCreate:function(){this.reqFrame=null,this.singleWaitTime=null,this.isHover=!1,this.ease=\"ease-in\"},beforeDestroy:function(){this._cancle(),clearTimeout(this.singleWaitTime)}}},function(t,i,e){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0});var o=e(2),n=function(t){return t&&t.__esModule?t:{default:t}}(o);n.default.install=function(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.component(i.componentName||n.default.name,n.default)},\"undefined\"!=typeof window&&window.Vue&&Vue.component(n.default.name,n.default),i.default=n.default},function(t,i,e){\"use strict\";Object.defineProperty(i,\"__esModule\",{value:!0});var o=e(0),n=e.n(o);for(var s in o)\"default\"!==s&&function(t){e.d(i,t,function(){return o[t]})}(s);var r=e(7),a=e(3),h=a(n.a,r.a,!1,null,null,null);i.default=h.exports},function(t,i){t.exports=function(t,i,e,o,n,s){var r,a=t=t||{},h=typeof t.default;\"object\"!==h&&\"function\"!==h||(r=t,a=t.default);var l=\"function\"==typeof a?a.options:a;i&&(l.render=i.render,l.staticRenderFns=i.staticRenderFns,l._compiled=!0),e&&(l.functional=!0),n&&(l._scopeId=n);var c;if(s?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},l._ssrRegister=c):o&&(c=o),c){var u=l.functional,f=u?l.render:l.beforeCreate;u?(l._injectStyles=c,l.render=function(t,i){return c.call(i),f(t,i)}):l.beforeCreate=f?[].concat(f,c):[c]}return{esModule:r,exports:a,options:l}}},function(t,i){var e=function(){window.cancelAnimationFrame=function(){return window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||function(t){return window.clearTimeout(t)}}(),window.requestAnimationFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)}}()};t.exports=e},function(t,i){var e=function(t,i){if(t===i)return!0;if(t.length!==i.length)return!1;for(var e=0;e<t.length;++e)if(t[e]!==i[e])return!1;return!0};t.exports=e},function(t,i){function e(){Array.isArray||(Array.isArray=function(t){return\"[object Array]\"===Object.prototype.toString.call(t)});var t=void 0,i=void 0,n=void 0,s=void 0,r=void 0,a=void 0,h=1,l=arguments[0]||{},c=!1,u=arguments.length;if(\"boolean\"==typeof l&&(c=l,l=arguments[1]||{},h++),\"object\"!==(void 0===l?\"undefined\":o(l))&&\"function\"!=typeof l&&(l={}),h===u)return l;for(;h<u;h++)if(null!=(i=arguments[h]))for(t in i)n=l[t],s=i[t],r=Array.isArray(s),c&&s&&(\"object\"===(void 0===s?\"undefined\":o(s))||r)?(r?(r=!1,a=n&&Array.isArray(n)?n:[]):a=n&&\"object\"===(void 0===n?\"undefined\":o(n))?n:{},l[t]=e(c,a,s)):void 0!==s&&(l[t]=s);return l}var o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t};t.exports=e},function(t,i,e){\"use strict\";var o=function(){var t=this,i=t.$createElement,e=t._self._c||i;return e(\"div\",{ref:\"wrap\"},[t.navigation?e(\"div\",{class:t.leftSwitchClass,style:t.leftSwitch,on:{click:t.leftSwitchClick}},[t._t(\"left-switch\")],2):t._e(),t._v(\" \"),t.navigation?e(\"div\",{class:t.rightSwitchClass,style:t.rightSwitch,on:{click:t.rightSwitchClick}},[t._t(\"right-switch\")],2):t._e(),t._v(\" \"),e(\"div\",{ref:\"realBox\",style:t.pos,on:{mouseenter:t.enter,mouseleave:t.leave,touchstart:t.touchStart,touchmove:t.touchMove,touchend:t.touchEnd}},[e(\"div\",{ref:\"slotList\",style:t.float},[t._t(\"default\")],2),t._v(\" \"),e(\"div\",{style:t.float,domProps:{innerHTML:t._s(t.copyHtml)}})])])},n=[],s={render:o,staticRenderFns:n};i.a=s}]).default});\n\n//# sourceURL=webpack:///./node_modules/vue-seamless-scroll/dist/vue-seamless-scroll.min.js?");

/***/ }),

/***/ "./node_modules/vue-style-loader/lib/addStylesClient.js":
/*!**************************************************************!*\
  !*** ./node_modules/vue-style-loader/lib/addStylesClient.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return addStylesClient; });\n/* harmony import */ var _listToStyles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./listToStyles */ \"./node_modules/vue-style-loader/lib/listToStyles.js\");\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n  Modified by Evan You @yyx990803\n*/\n\n\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n  if (!hasDocument) {\n    throw new Error(\n    'vue-style-loader cannot be used in a non-browser environment. ' +\n    \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n  ) }\n}\n\n/*\ntype StyleObject = {\n  id: number;\n  parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n  css: string;\n  media: string;\n  sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n  [id: number]: {\n    id: number,\n    refs: number,\n    parts: Array<(obj?: StyleObjectPart) => void>\n  }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nfunction addStylesClient (parentId, list, _isProduction, _options) {\n  isProduction = _isProduction\n\n  options = _options || {}\n\n  var styles = Object(_listToStyles__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(parentId, list)\n  addStylesToDom(styles)\n\n  return function update (newList) {\n    var mayRemove = []\n    for (var i = 0; i < styles.length; i++) {\n      var item = styles[i]\n      var domStyle = stylesInDom[item.id]\n      domStyle.refs--\n      mayRemove.push(domStyle)\n    }\n    if (newList) {\n      styles = Object(_listToStyles__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(parentId, newList)\n      addStylesToDom(styles)\n    } else {\n      styles = []\n    }\n    for (var i = 0; i < mayRemove.length; i++) {\n      var domStyle = mayRemove[i]\n      if (domStyle.refs === 0) {\n        for (var j = 0; j < domStyle.parts.length; j++) {\n          domStyle.parts[j]()\n        }\n        delete stylesInDom[domStyle.id]\n      }\n    }\n  }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n  for (var i = 0; i < styles.length; i++) {\n    var item = styles[i]\n    var domStyle = stylesInDom[item.id]\n    if (domStyle) {\n      domStyle.refs++\n      for (var j = 0; j < domStyle.parts.length; j++) {\n        domStyle.parts[j](item.parts[j])\n      }\n      for (; j < item.parts.length; j++) {\n        domStyle.parts.push(addStyle(item.parts[j]))\n      }\n      if (domStyle.parts.length > item.parts.length) {\n        domStyle.parts.length = item.parts.length\n      }\n    } else {\n      var parts = []\n      for (var j = 0; j < item.parts.length; j++) {\n        parts.push(addStyle(item.parts[j]))\n      }\n      stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n    }\n  }\n}\n\nfunction createStyleElement () {\n  var styleElement = document.createElement('style')\n  styleElement.type = 'text/css'\n  head.appendChild(styleElement)\n  return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n  var update, remove\n  var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n  if (styleElement) {\n    if (isProduction) {\n      // has SSR styles and in production mode.\n      // simply do nothing.\n      return noop\n    } else {\n      // has SSR styles but in dev mode.\n      // for some reason Chrome can't handle source map in server-rendered\n      // style tags - source maps in <style> only works if the style tag is\n      // created and inserted dynamically. So we remove the server rendered\n      // styles and inject new ones.\n      styleElement.parentNode.removeChild(styleElement)\n    }\n  }\n\n  if (isOldIE) {\n    // use singleton mode for IE9.\n    var styleIndex = singletonCounter++\n    styleElement = singletonElement || (singletonElement = createStyleElement())\n    update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n    remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n  } else {\n    // use multi-style-tag mode in all other cases\n    styleElement = createStyleElement()\n    update = applyToTag.bind(null, styleElement)\n    remove = function () {\n      styleElement.parentNode.removeChild(styleElement)\n    }\n  }\n\n  update(obj)\n\n  return function updateStyle (newObj /* StyleObjectPart */) {\n    if (newObj) {\n      if (newObj.css === obj.css &&\n          newObj.media === obj.media &&\n          newObj.sourceMap === obj.sourceMap) {\n        return\n      }\n      update(obj = newObj)\n    } else {\n      remove()\n    }\n  }\n}\n\nvar replaceText = (function () {\n  var textStore = []\n\n  return function (index, replacement) {\n    textStore[index] = replacement\n    return textStore.filter(Boolean).join('\\n')\n  }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n  var css = remove ? '' : obj.css\n\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = replaceText(index, css)\n  } else {\n    var cssNode = document.createTextNode(css)\n    var childNodes = styleElement.childNodes\n    if (childNodes[index]) styleElement.removeChild(childNodes[index])\n    if (childNodes.length) {\n      styleElement.insertBefore(cssNode, childNodes[index])\n    } else {\n      styleElement.appendChild(cssNode)\n    }\n  }\n}\n\nfunction applyToTag (styleElement, obj) {\n  var css = obj.css\n  var media = obj.media\n  var sourceMap = obj.sourceMap\n\n  if (media) {\n    styleElement.setAttribute('media', media)\n  }\n  if (options.ssrId) {\n    styleElement.setAttribute(ssrIdKey, obj.id)\n  }\n\n  if (sourceMap) {\n    // https://developer.chrome.com/devtools/docs/javascript-debugging\n    // this makes source maps inside style tags work properly in Chrome\n    css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n    // http://stackoverflow.com/a/26603875\n    css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n  }\n\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = css\n  } else {\n    while (styleElement.firstChild) {\n      styleElement.removeChild(styleElement.firstChild)\n    }\n    styleElement.appendChild(document.createTextNode(css))\n  }\n}\n\n\n//# sourceURL=webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js?");

/***/ }),

/***/ "./node_modules/vue-style-loader/lib/listToStyles.js":
/*!***********************************************************!*\
  !*** ./node_modules/vue-style-loader/lib/listToStyles.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return listToStyles; });\n/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nfunction listToStyles (parentId, list) {\n  var styles = []\n  var newStyles = {}\n  for (var i = 0; i < list.length; i++) {\n    var item = list[i]\n    var id = item[0]\n    var css = item[1]\n    var media = item[2]\n    var sourceMap = item[3]\n    var part = {\n      id: parentId + ':' + i,\n      css: css,\n      media: media,\n      sourceMap: sourceMap\n    }\n    if (!newStyles[id]) {\n      styles.push(newStyles[id] = { id: id, parts: [part] })\n    } else {\n      newStyles[id].parts.push(part)\n    }\n  }\n  return styles\n}\n\n\n//# sourceURL=webpack:///./node_modules/vue-style-loader/lib/listToStyles.js?");

/***/ }),

/***/ "./node_modules/vue/dist/vue.runtime.esm.js":
/*!**************************************************!*\
  !*** ./node_modules/vue/dist/vue.runtime.esm.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/*!\n * Vue.js v2.6.10\n * (c) 2014-2019 Evan You\n * Released under the MIT License.\n */\n/*  */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n  return v === undefined || v === null\n}\n\nfunction isDef (v) {\n  return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n  return v === true\n}\n\nfunction isFalse (v) {\n  return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n  return (\n    typeof value === 'string' ||\n    typeof value === 'number' ||\n    // $flow-disable-line\n    typeof value === 'symbol' ||\n    typeof value === 'boolean'\n  )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n  return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n  return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n  return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n  return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n  var n = parseFloat(String(val));\n  return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n  return (\n    isDef(val) &&\n    typeof val.then === 'function' &&\n    typeof val.catch === 'function'\n  )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n  return val == null\n    ? ''\n    : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n      ? JSON.stringify(val, null, 2)\n      : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n  var n = parseFloat(val);\n  return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n  str,\n  expectsLowerCase\n) {\n  var map = Object.create(null);\n  var list = str.split(',');\n  for (var i = 0; i < list.length; i++) {\n    map[list[i]] = true;\n  }\n  return expectsLowerCase\n    ? function (val) { return map[val.toLowerCase()]; }\n    : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n  if (arr.length) {\n    var index = arr.indexOf(item);\n    if (index > -1) {\n      return arr.splice(index, 1)\n    }\n  }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n  return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n  var cache = Object.create(null);\n  return (function cachedFn (str) {\n    var hit = cache[str];\n    return hit || (cache[str] = fn(str))\n  })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n  return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n  return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n  return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n  function boundFn (a) {\n    var l = arguments.length;\n    return l\n      ? l > 1\n        ? fn.apply(ctx, arguments)\n        : fn.call(ctx, a)\n      : fn.call(ctx)\n  }\n\n  boundFn._length = fn.length;\n  return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n  return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n  ? nativeBind\n  : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n  start = start || 0;\n  var i = list.length - start;\n  var ret = new Array(i);\n  while (i--) {\n    ret[i] = list[i + start];\n  }\n  return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n  for (var key in _from) {\n    to[key] = _from[key];\n  }\n  return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n  var res = {};\n  for (var i = 0; i < arr.length; i++) {\n    if (arr[i]) {\n      extend(res, arr[i]);\n    }\n  }\n  return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n  if (a === b) { return true }\n  var isObjectA = isObject(a);\n  var isObjectB = isObject(b);\n  if (isObjectA && isObjectB) {\n    try {\n      var isArrayA = Array.isArray(a);\n      var isArrayB = Array.isArray(b);\n      if (isArrayA && isArrayB) {\n        return a.length === b.length && a.every(function (e, i) {\n          return looseEqual(e, b[i])\n        })\n      } else if (a instanceof Date && b instanceof Date) {\n        return a.getTime() === b.getTime()\n      } else if (!isArrayA && !isArrayB) {\n        var keysA = Object.keys(a);\n        var keysB = Object.keys(b);\n        return keysA.length === keysB.length && keysA.every(function (key) {\n          return looseEqual(a[key], b[key])\n        })\n      } else {\n        /* istanbul ignore next */\n        return false\n      }\n    } catch (e) {\n      /* istanbul ignore next */\n      return false\n    }\n  } else if (!isObjectA && !isObjectB) {\n    return String(a) === String(b)\n  } else {\n    return false\n  }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n  for (var i = 0; i < arr.length; i++) {\n    if (looseEqual(arr[i], val)) { return i }\n  }\n  return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n  var called = false;\n  return function () {\n    if (!called) {\n      called = true;\n      fn.apply(this, arguments);\n    }\n  }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n  'component',\n  'directive',\n  'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n  'beforeCreate',\n  'created',\n  'beforeMount',\n  'mounted',\n  'beforeUpdate',\n  'updated',\n  'beforeDestroy',\n  'destroyed',\n  'activated',\n  'deactivated',\n  'errorCaptured',\n  'serverPrefetch'\n];\n\n/*  */\n\n\n\nvar config = ({\n  /**\n   * Option merge strategies (used in core/util/options)\n   */\n  // $flow-disable-line\n  optionMergeStrategies: Object.create(null),\n\n  /**\n   * Whether to suppress warnings.\n   */\n  silent: false,\n\n  /**\n   * Show production mode tip message on boot?\n   */\n  productionTip: \"test\" !== 'production',\n\n  /**\n   * Whether to enable devtools\n   */\n  devtools: \"test\" !== 'production',\n\n  /**\n   * Whether to record perf\n   */\n  performance: false,\n\n  /**\n   * Error handler for watcher errors\n   */\n  errorHandler: null,\n\n  /**\n   * Warn handler for watcher warns\n   */\n  warnHandler: null,\n\n  /**\n   * Ignore certain custom elements\n   */\n  ignoredElements: [],\n\n  /**\n   * Custom user key aliases for v-on\n   */\n  // $flow-disable-line\n  keyCodes: Object.create(null),\n\n  /**\n   * Check if a tag is reserved so that it cannot be registered as a\n   * component. This is platform-dependent and may be overwritten.\n   */\n  isReservedTag: no,\n\n  /**\n   * Check if an attribute is reserved so that it cannot be used as a component\n   * prop. This is platform-dependent and may be overwritten.\n   */\n  isReservedAttr: no,\n\n  /**\n   * Check if a tag is an unknown element.\n   * Platform-dependent.\n   */\n  isUnknownElement: no,\n\n  /**\n   * Get the namespace of an element\n   */\n  getTagNamespace: noop,\n\n  /**\n   * Parse the real tag name for the specific platform.\n   */\n  parsePlatformTagName: identity,\n\n  /**\n   * Check if an attribute must be bound using property, e.g. value\n   * Platform-dependent.\n   */\n  mustUseProp: no,\n\n  /**\n   * Perform updates asynchronously. Intended to be used by Vue Test Utils\n   * This will significantly reduce performance if set to false.\n   */\n  async: true,\n\n  /**\n   * Exposed for legacy reasons\n   */\n  _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/*  */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n  var c = (str + '').charCodeAt(0);\n  return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n  Object.defineProperty(obj, key, {\n    value: val,\n    enumerable: !!enumerable,\n    writable: true,\n    configurable: true\n  });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n  if (bailRE.test(path)) {\n    return\n  }\n  var segments = path.split('.');\n  return function (obj) {\n    for (var i = 0; i < segments.length; i++) {\n      if (!obj) { return }\n      obj = obj[segments[i]];\n    }\n    return obj\n  }\n}\n\n/*  */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n  try {\n    var opts = {};\n    Object.defineProperty(opts, 'passive', ({\n      get: function get () {\n        /* istanbul ignore next */\n        supportsPassive = true;\n      }\n    })); // https://github.com/facebook/flow/issues/285\n    window.addEventListener('test-passive', null, opts);\n  } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n  if (_isServer === undefined) {\n    /* istanbul ignore if */\n    if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n      // detect presence of vue-server-renderer and avoid\n      // Webpack shimming the process\n      _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n    } else {\n      _isServer = false;\n    }\n  }\n  return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n  return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n  typeof Symbol !== 'undefined' && isNative(Symbol) &&\n  typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n  // use native Set when available.\n  _Set = Set;\n} else {\n  // a non-standard Set polyfill that only works with primitive keys.\n  _Set = /*@__PURE__*/(function () {\n    function Set () {\n      this.set = Object.create(null);\n    }\n    Set.prototype.has = function has (key) {\n      return this.set[key] === true\n    };\n    Set.prototype.add = function add (key) {\n      this.set[key] = true;\n    };\n    Set.prototype.clear = function clear () {\n      this.set = Object.create(null);\n    };\n\n    return Set;\n  }());\n}\n\n/*  */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (true) {\n  var hasConsole = typeof console !== 'undefined';\n  var classifyRE = /(?:^|[-_])(\\w)/g;\n  var classify = function (str) { return str\n    .replace(classifyRE, function (c) { return c.toUpperCase(); })\n    .replace(/[-_]/g, ''); };\n\n  warn = function (msg, vm) {\n    var trace = vm ? generateComponentTrace(vm) : '';\n\n    if (config.warnHandler) {\n      config.warnHandler.call(null, msg, vm, trace);\n    } else if (hasConsole && (!config.silent)) {\n      console.error((\"[Vue warn]: \" + msg + trace));\n    }\n  };\n\n  tip = function (msg, vm) {\n    if (hasConsole && (!config.silent)) {\n      console.warn(\"[Vue tip]: \" + msg + (\n        vm ? generateComponentTrace(vm) : ''\n      ));\n    }\n  };\n\n  formatComponentName = function (vm, includeFile) {\n    if (vm.$root === vm) {\n      return '<Root>'\n    }\n    var options = typeof vm === 'function' && vm.cid != null\n      ? vm.options\n      : vm._isVue\n        ? vm.$options || vm.constructor.options\n        : vm;\n    var name = options.name || options._componentTag;\n    var file = options.__file;\n    if (!name && file) {\n      var match = file.match(/([^/\\\\]+)\\.vue$/);\n      name = match && match[1];\n    }\n\n    return (\n      (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n      (file && includeFile !== false ? (\" at \" + file) : '')\n    )\n  };\n\n  var repeat = function (str, n) {\n    var res = '';\n    while (n) {\n      if (n % 2 === 1) { res += str; }\n      if (n > 1) { str += str; }\n      n >>= 1;\n    }\n    return res\n  };\n\n  generateComponentTrace = function (vm) {\n    if (vm._isVue && vm.$parent) {\n      var tree = [];\n      var currentRecursiveSequence = 0;\n      while (vm) {\n        if (tree.length > 0) {\n          var last = tree[tree.length - 1];\n          if (last.constructor === vm.constructor) {\n            currentRecursiveSequence++;\n            vm = vm.$parent;\n            continue\n          } else if (currentRecursiveSequence > 0) {\n            tree[tree.length - 1] = [last, currentRecursiveSequence];\n            currentRecursiveSequence = 0;\n          }\n        }\n        tree.push(vm);\n        vm = vm.$parent;\n      }\n      return '\\n\\nfound in\\n\\n' + tree\n        .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n            ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n            : formatComponentName(vm))); })\n        .join('\\n')\n    } else {\n      return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n    }\n  };\n}\n\n/*  */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n  this.id = uid++;\n  this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n  this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n  remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n  if (Dep.target) {\n    Dep.target.addDep(this);\n  }\n};\n\nDep.prototype.notify = function notify () {\n  // stabilize the subscriber list first\n  var subs = this.subs.slice();\n  if ( true && !config.async) {\n    // subs aren't sorted in scheduler if not running async\n    // we need to sort them now to make sure they fire in correct\n    // order\n    subs.sort(function (a, b) { return a.id - b.id; });\n  }\n  for (var i = 0, l = subs.length; i < l; i++) {\n    subs[i].update();\n  }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n  targetStack.push(target);\n  Dep.target = target;\n}\n\nfunction popTarget () {\n  targetStack.pop();\n  Dep.target = targetStack[targetStack.length - 1];\n}\n\n/*  */\n\nvar VNode = function VNode (\n  tag,\n  data,\n  children,\n  text,\n  elm,\n  context,\n  componentOptions,\n  asyncFactory\n) {\n  this.tag = tag;\n  this.data = data;\n  this.children = children;\n  this.text = text;\n  this.elm = elm;\n  this.ns = undefined;\n  this.context = context;\n  this.fnContext = undefined;\n  this.fnOptions = undefined;\n  this.fnScopeId = undefined;\n  this.key = data && data.key;\n  this.componentOptions = componentOptions;\n  this.componentInstance = undefined;\n  this.parent = undefined;\n  this.raw = false;\n  this.isStatic = false;\n  this.isRootInsert = true;\n  this.isComment = false;\n  this.isCloned = false;\n  this.isOnce = false;\n  this.asyncFactory = asyncFactory;\n  this.asyncMeta = undefined;\n  this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n  return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n  if ( text === void 0 ) text = '';\n\n  var node = new VNode();\n  node.text = text;\n  node.isComment = true;\n  return node\n};\n\nfunction createTextVNode (val) {\n  return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n  var cloned = new VNode(\n    vnode.tag,\n    vnode.data,\n    // #7975\n    // clone children array to avoid mutating original in case of cloning\n    // a child.\n    vnode.children && vnode.children.slice(),\n    vnode.text,\n    vnode.elm,\n    vnode.context,\n    vnode.componentOptions,\n    vnode.asyncFactory\n  );\n  cloned.ns = vnode.ns;\n  cloned.isStatic = vnode.isStatic;\n  cloned.key = vnode.key;\n  cloned.isComment = vnode.isComment;\n  cloned.fnContext = vnode.fnContext;\n  cloned.fnOptions = vnode.fnOptions;\n  cloned.fnScopeId = vnode.fnScopeId;\n  cloned.asyncMeta = vnode.asyncMeta;\n  cloned.isCloned = true;\n  return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n  'push',\n  'pop',\n  'shift',\n  'unshift',\n  'splice',\n  'sort',\n  'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n  // cache original method\n  var original = arrayProto[method];\n  def(arrayMethods, method, function mutator () {\n    var args = [], len = arguments.length;\n    while ( len-- ) args[ len ] = arguments[ len ];\n\n    var result = original.apply(this, args);\n    var ob = this.__ob__;\n    var inserted;\n    switch (method) {\n      case 'push':\n      case 'unshift':\n        inserted = args;\n        break\n      case 'splice':\n        inserted = args.slice(2);\n        break\n    }\n    if (inserted) { ob.observeArray(inserted); }\n    // notify change\n    ob.dep.notify();\n    return result\n  });\n});\n\n/*  */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n  shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n  this.value = value;\n  this.dep = new Dep();\n  this.vmCount = 0;\n  def(value, '__ob__', this);\n  if (Array.isArray(value)) {\n    if (hasProto) {\n      protoAugment(value, arrayMethods);\n    } else {\n      copyAugment(value, arrayMethods, arrayKeys);\n    }\n    this.observeArray(value);\n  } else {\n    this.walk(value);\n  }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n  var keys = Object.keys(obj);\n  for (var i = 0; i < keys.length; i++) {\n    defineReactive$$1(obj, keys[i]);\n  }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n  for (var i = 0, l = items.length; i < l; i++) {\n    observe(items[i]);\n  }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n  /* eslint-disable no-proto */\n  target.__proto__ = src;\n  /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n  for (var i = 0, l = keys.length; i < l; i++) {\n    var key = keys[i];\n    def(target, key, src[key]);\n  }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n  if (!isObject(value) || value instanceof VNode) {\n    return\n  }\n  var ob;\n  if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n    ob = value.__ob__;\n  } else if (\n    shouldObserve &&\n    !isServerRendering() &&\n    (Array.isArray(value) || isPlainObject(value)) &&\n    Object.isExtensible(value) &&\n    !value._isVue\n  ) {\n    ob = new Observer(value);\n  }\n  if (asRootData && ob) {\n    ob.vmCount++;\n  }\n  return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n  obj,\n  key,\n  val,\n  customSetter,\n  shallow\n) {\n  var dep = new Dep();\n\n  var property = Object.getOwnPropertyDescriptor(obj, key);\n  if (property && property.configurable === false) {\n    return\n  }\n\n  // cater for pre-defined getter/setters\n  var getter = property && property.get;\n  var setter = property && property.set;\n  if ((!getter || setter) && arguments.length === 2) {\n    val = obj[key];\n  }\n\n  var childOb = !shallow && observe(val);\n  Object.defineProperty(obj, key, {\n    enumerable: true,\n    configurable: true,\n    get: function reactiveGetter () {\n      var value = getter ? getter.call(obj) : val;\n      if (Dep.target) {\n        dep.depend();\n        if (childOb) {\n          childOb.dep.depend();\n          if (Array.isArray(value)) {\n            dependArray(value);\n          }\n        }\n      }\n      return value\n    },\n    set: function reactiveSetter (newVal) {\n      var value = getter ? getter.call(obj) : val;\n      /* eslint-disable no-self-compare */\n      if (newVal === value || (newVal !== newVal && value !== value)) {\n        return\n      }\n      /* eslint-enable no-self-compare */\n      if ( true && customSetter) {\n        customSetter();\n      }\n      // #7981: for accessor properties without setter\n      if (getter && !setter) { return }\n      if (setter) {\n        setter.call(obj, newVal);\n      } else {\n        val = newVal;\n      }\n      childOb = !shallow && observe(newVal);\n      dep.notify();\n    }\n  });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n  if ( true &&\n    (isUndef(target) || isPrimitive(target))\n  ) {\n    warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n  }\n  if (Array.isArray(target) && isValidArrayIndex(key)) {\n    target.length = Math.max(target.length, key);\n    target.splice(key, 1, val);\n    return val\n  }\n  if (key in target && !(key in Object.prototype)) {\n    target[key] = val;\n    return val\n  }\n  var ob = (target).__ob__;\n  if (target._isVue || (ob && ob.vmCount)) {\n     true && warn(\n      'Avoid adding reactive properties to a Vue instance or its root $data ' +\n      'at runtime - declare it upfront in the data option.'\n    );\n    return val\n  }\n  if (!ob) {\n    target[key] = val;\n    return val\n  }\n  defineReactive$$1(ob.value, key, val);\n  ob.dep.notify();\n  return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n  if ( true &&\n    (isUndef(target) || isPrimitive(target))\n  ) {\n    warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n  }\n  if (Array.isArray(target) && isValidArrayIndex(key)) {\n    target.splice(key, 1);\n    return\n  }\n  var ob = (target).__ob__;\n  if (target._isVue || (ob && ob.vmCount)) {\n     true && warn(\n      'Avoid deleting properties on a Vue instance or its root $data ' +\n      '- just set it to null.'\n    );\n    return\n  }\n  if (!hasOwn(target, key)) {\n    return\n  }\n  delete target[key];\n  if (!ob) {\n    return\n  }\n  ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n  for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n    e = value[i];\n    e && e.__ob__ && e.__ob__.dep.depend();\n    if (Array.isArray(e)) {\n      dependArray(e);\n    }\n  }\n}\n\n/*  */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (true) {\n  strats.el = strats.propsData = function (parent, child, vm, key) {\n    if (!vm) {\n      warn(\n        \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n        'creation with the `new` keyword.'\n      );\n    }\n    return defaultStrat(parent, child)\n  };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n  if (!from) { return to }\n  var key, toVal, fromVal;\n\n  var keys = hasSymbol\n    ? Reflect.ownKeys(from)\n    : Object.keys(from);\n\n  for (var i = 0; i < keys.length; i++) {\n    key = keys[i];\n    // in case the object is already observed...\n    if (key === '__ob__') { continue }\n    toVal = to[key];\n    fromVal = from[key];\n    if (!hasOwn(to, key)) {\n      set(to, key, fromVal);\n    } else if (\n      toVal !== fromVal &&\n      isPlainObject(toVal) &&\n      isPlainObject(fromVal)\n    ) {\n      mergeData(toVal, fromVal);\n    }\n  }\n  return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n  parentVal,\n  childVal,\n  vm\n) {\n  if (!vm) {\n    // in a Vue.extend merge, both should be functions\n    if (!childVal) {\n      return parentVal\n    }\n    if (!parentVal) {\n      return childVal\n    }\n    // when parentVal & childVal are both present,\n    // we need to return a function that returns the\n    // merged result of both functions... no need to\n    // check if parentVal is a function here because\n    // it has to be a function to pass previous merges.\n    return function mergedDataFn () {\n      return mergeData(\n        typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n        typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n      )\n    }\n  } else {\n    return function mergedInstanceDataFn () {\n      // instance merge\n      var instanceData = typeof childVal === 'function'\n        ? childVal.call(vm, vm)\n        : childVal;\n      var defaultData = typeof parentVal === 'function'\n        ? parentVal.call(vm, vm)\n        : parentVal;\n      if (instanceData) {\n        return mergeData(instanceData, defaultData)\n      } else {\n        return defaultData\n      }\n    }\n  }\n}\n\nstrats.data = function (\n  parentVal,\n  childVal,\n  vm\n) {\n  if (!vm) {\n    if (childVal && typeof childVal !== 'function') {\n       true && warn(\n        'The \"data\" option should be a function ' +\n        'that returns a per-instance value in component ' +\n        'definitions.',\n        vm\n      );\n\n      return parentVal\n    }\n    return mergeDataOrFn(parentVal, childVal)\n  }\n\n  return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n  parentVal,\n  childVal\n) {\n  var res = childVal\n    ? parentVal\n      ? parentVal.concat(childVal)\n      : Array.isArray(childVal)\n        ? childVal\n        : [childVal]\n    : parentVal;\n  return res\n    ? dedupeHooks(res)\n    : res\n}\n\nfunction dedupeHooks (hooks) {\n  var res = [];\n  for (var i = 0; i < hooks.length; i++) {\n    if (res.indexOf(hooks[i]) === -1) {\n      res.push(hooks[i]);\n    }\n  }\n  return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n  strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n  parentVal,\n  childVal,\n  vm,\n  key\n) {\n  var res = Object.create(parentVal || null);\n  if (childVal) {\n     true && assertObjectType(key, childVal, vm);\n    return extend(res, childVal)\n  } else {\n    return res\n  }\n}\n\nASSET_TYPES.forEach(function (type) {\n  strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n  parentVal,\n  childVal,\n  vm,\n  key\n) {\n  // work around Firefox's Object.prototype.watch...\n  if (parentVal === nativeWatch) { parentVal = undefined; }\n  if (childVal === nativeWatch) { childVal = undefined; }\n  /* istanbul ignore if */\n  if (!childVal) { return Object.create(parentVal || null) }\n  if (true) {\n    assertObjectType(key, childVal, vm);\n  }\n  if (!parentVal) { return childVal }\n  var ret = {};\n  extend(ret, parentVal);\n  for (var key$1 in childVal) {\n    var parent = ret[key$1];\n    var child = childVal[key$1];\n    if (parent && !Array.isArray(parent)) {\n      parent = [parent];\n    }\n    ret[key$1] = parent\n      ? parent.concat(child)\n      : Array.isArray(child) ? child : [child];\n  }\n  return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n  parentVal,\n  childVal,\n  vm,\n  key\n) {\n  if (childVal && \"test\" !== 'production') {\n    assertObjectType(key, childVal, vm);\n  }\n  if (!parentVal) { return childVal }\n  var ret = Object.create(null);\n  extend(ret, parentVal);\n  if (childVal) { extend(ret, childVal); }\n  return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n  return childVal === undefined\n    ? parentVal\n    : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n  for (var key in options.components) {\n    validateComponentName(key);\n  }\n}\n\nfunction validateComponentName (name) {\n  if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n    warn(\n      'Invalid component name: \"' + name + '\". Component names ' +\n      'should conform to valid custom element name in html5 specification.'\n    );\n  }\n  if (isBuiltInTag(name) || config.isReservedTag(name)) {\n    warn(\n      'Do not use built-in or reserved HTML elements as component ' +\n      'id: ' + name\n    );\n  }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n  var props = options.props;\n  if (!props) { return }\n  var res = {};\n  var i, val, name;\n  if (Array.isArray(props)) {\n    i = props.length;\n    while (i--) {\n      val = props[i];\n      if (typeof val === 'string') {\n        name = camelize(val);\n        res[name] = { type: null };\n      } else if (true) {\n        warn('props must be strings when using array syntax.');\n      }\n    }\n  } else if (isPlainObject(props)) {\n    for (var key in props) {\n      val = props[key];\n      name = camelize(key);\n      res[name] = isPlainObject(val)\n        ? val\n        : { type: val };\n    }\n  } else if (true) {\n    warn(\n      \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n      \"but got \" + (toRawType(props)) + \".\",\n      vm\n    );\n  }\n  options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n  var inject = options.inject;\n  if (!inject) { return }\n  var normalized = options.inject = {};\n  if (Array.isArray(inject)) {\n    for (var i = 0; i < inject.length; i++) {\n      normalized[inject[i]] = { from: inject[i] };\n    }\n  } else if (isPlainObject(inject)) {\n    for (var key in inject) {\n      var val = inject[key];\n      normalized[key] = isPlainObject(val)\n        ? extend({ from: key }, val)\n        : { from: val };\n    }\n  } else if (true) {\n    warn(\n      \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n      \"but got \" + (toRawType(inject)) + \".\",\n      vm\n    );\n  }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n  var dirs = options.directives;\n  if (dirs) {\n    for (var key in dirs) {\n      var def$$1 = dirs[key];\n      if (typeof def$$1 === 'function') {\n        dirs[key] = { bind: def$$1, update: def$$1 };\n      }\n    }\n  }\n}\n\nfunction assertObjectType (name, value, vm) {\n  if (!isPlainObject(value)) {\n    warn(\n      \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n      \"but got \" + (toRawType(value)) + \".\",\n      vm\n    );\n  }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n  parent,\n  child,\n  vm\n) {\n  if (true) {\n    checkComponents(child);\n  }\n\n  if (typeof child === 'function') {\n    child = child.options;\n  }\n\n  normalizeProps(child, vm);\n  normalizeInject(child, vm);\n  normalizeDirectives(child);\n\n  // Apply extends and mixins on the child options,\n  // but only if it is a raw options object that isn't\n  // the result of another mergeOptions call.\n  // Only merged options has the _base property.\n  if (!child._base) {\n    if (child.extends) {\n      parent = mergeOptions(parent, child.extends, vm);\n    }\n    if (child.mixins) {\n      for (var i = 0, l = child.mixins.length; i < l; i++) {\n        parent = mergeOptions(parent, child.mixins[i], vm);\n      }\n    }\n  }\n\n  var options = {};\n  var key;\n  for (key in parent) {\n    mergeField(key);\n  }\n  for (key in child) {\n    if (!hasOwn(parent, key)) {\n      mergeField(key);\n    }\n  }\n  function mergeField (key) {\n    var strat = strats[key] || defaultStrat;\n    options[key] = strat(parent[key], child[key], vm, key);\n  }\n  return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n  options,\n  type,\n  id,\n  warnMissing\n) {\n  /* istanbul ignore if */\n  if (typeof id !== 'string') {\n    return\n  }\n  var assets = options[type];\n  // check local registration variations first\n  if (hasOwn(assets, id)) { return assets[id] }\n  var camelizedId = camelize(id);\n  if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n  var PascalCaseId = capitalize(camelizedId);\n  if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n  // fallback to prototype chain\n  var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n  if ( true && warnMissing && !res) {\n    warn(\n      'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n      options\n    );\n  }\n  return res\n}\n\n/*  */\n\n\n\nfunction validateProp (\n  key,\n  propOptions,\n  propsData,\n  vm\n) {\n  var prop = propOptions[key];\n  var absent = !hasOwn(propsData, key);\n  var value = propsData[key];\n  // boolean casting\n  var booleanIndex = getTypeIndex(Boolean, prop.type);\n  if (booleanIndex > -1) {\n    if (absent && !hasOwn(prop, 'default')) {\n      value = false;\n    } else if (value === '' || value === hyphenate(key)) {\n      // only cast empty string / same name to boolean if\n      // boolean has higher priority\n      var stringIndex = getTypeIndex(String, prop.type);\n      if (stringIndex < 0 || booleanIndex < stringIndex) {\n        value = true;\n      }\n    }\n  }\n  // check default value\n  if (value === undefined) {\n    value = getPropDefaultValue(vm, prop, key);\n    // since the default value is a fresh copy,\n    // make sure to observe it.\n    var prevShouldObserve = shouldObserve;\n    toggleObserving(true);\n    observe(value);\n    toggleObserving(prevShouldObserve);\n  }\n  if (\n    true\n  ) {\n    assertProp(prop, key, value, vm, absent);\n  }\n  return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n  // no default, return undefined\n  if (!hasOwn(prop, 'default')) {\n    return undefined\n  }\n  var def = prop.default;\n  // warn against non-factory defaults for Object & Array\n  if ( true && isObject(def)) {\n    warn(\n      'Invalid default value for prop \"' + key + '\": ' +\n      'Props with type Object/Array must use a factory function ' +\n      'to return the default value.',\n      vm\n    );\n  }\n  // the raw prop value was also undefined from previous render,\n  // return previous default value to avoid unnecessary watcher trigger\n  if (vm && vm.$options.propsData &&\n    vm.$options.propsData[key] === undefined &&\n    vm._props[key] !== undefined\n  ) {\n    return vm._props[key]\n  }\n  // call factory function for non-Function types\n  // a value is Function if its prototype is function even across different execution context\n  return typeof def === 'function' && getType(prop.type) !== 'Function'\n    ? def.call(vm)\n    : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n  prop,\n  name,\n  value,\n  vm,\n  absent\n) {\n  if (prop.required && absent) {\n    warn(\n      'Missing required prop: \"' + name + '\"',\n      vm\n    );\n    return\n  }\n  if (value == null && !prop.required) {\n    return\n  }\n  var type = prop.type;\n  var valid = !type || type === true;\n  var expectedTypes = [];\n  if (type) {\n    if (!Array.isArray(type)) {\n      type = [type];\n    }\n    for (var i = 0; i < type.length && !valid; i++) {\n      var assertedType = assertType(value, type[i]);\n      expectedTypes.push(assertedType.expectedType || '');\n      valid = assertedType.valid;\n    }\n  }\n\n  if (!valid) {\n    warn(\n      getInvalidTypeMessage(name, value, expectedTypes),\n      vm\n    );\n    return\n  }\n  var validator = prop.validator;\n  if (validator) {\n    if (!validator(value)) {\n      warn(\n        'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n        vm\n      );\n    }\n  }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n  var valid;\n  var expectedType = getType(type);\n  if (simpleCheckRE.test(expectedType)) {\n    var t = typeof value;\n    valid = t === expectedType.toLowerCase();\n    // for primitive wrapper objects\n    if (!valid && t === 'object') {\n      valid = value instanceof type;\n    }\n  } else if (expectedType === 'Object') {\n    valid = isPlainObject(value);\n  } else if (expectedType === 'Array') {\n    valid = Array.isArray(value);\n  } else {\n    valid = value instanceof type;\n  }\n  return {\n    valid: valid,\n    expectedType: expectedType\n  }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n  var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n  return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n  return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n  if (!Array.isArray(expectedTypes)) {\n    return isSameType(expectedTypes, type) ? 0 : -1\n  }\n  for (var i = 0, len = expectedTypes.length; i < len; i++) {\n    if (isSameType(expectedTypes[i], type)) {\n      return i\n    }\n  }\n  return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n  var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n    \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n  var expectedType = expectedTypes[0];\n  var receivedType = toRawType(value);\n  var expectedValue = styleValue(value, expectedType);\n  var receivedValue = styleValue(value, receivedType);\n  // check if we need to specify expected value\n  if (expectedTypes.length === 1 &&\n      isExplicable(expectedType) &&\n      !isBoolean(expectedType, receivedType)) {\n    message += \" with value \" + expectedValue;\n  }\n  message += \", got \" + receivedType + \" \";\n  // check if we need to specify received value\n  if (isExplicable(receivedType)) {\n    message += \"with value \" + receivedValue + \".\";\n  }\n  return message\n}\n\nfunction styleValue (value, type) {\n  if (type === 'String') {\n    return (\"\\\"\" + value + \"\\\"\")\n  } else if (type === 'Number') {\n    return (\"\" + (Number(value)))\n  } else {\n    return (\"\" + value)\n  }\n}\n\nfunction isExplicable (value) {\n  var explicitTypes = ['string', 'number', 'boolean'];\n  return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n  var args = [], len = arguments.length;\n  while ( len-- ) args[ len ] = arguments[ len ];\n\n  return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/*  */\n\nfunction handleError (err, vm, info) {\n  // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n  // See: https://github.com/vuejs/vuex/issues/1505\n  pushTarget();\n  try {\n    if (vm) {\n      var cur = vm;\n      while ((cur = cur.$parent)) {\n        var hooks = cur.$options.errorCaptured;\n        if (hooks) {\n          for (var i = 0; i < hooks.length; i++) {\n            try {\n              var capture = hooks[i].call(cur, err, vm, info) === false;\n              if (capture) { return }\n            } catch (e) {\n              globalHandleError(e, cur, 'errorCaptured hook');\n            }\n          }\n        }\n      }\n    }\n    globalHandleError(err, vm, info);\n  } finally {\n    popTarget();\n  }\n}\n\nfunction invokeWithErrorHandling (\n  handler,\n  context,\n  args,\n  vm,\n  info\n) {\n  var res;\n  try {\n    res = args ? handler.apply(context, args) : handler.call(context);\n    if (res && !res._isVue && isPromise(res) && !res._handled) {\n      res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n      // issue #9511\n      // avoid catch triggering multiple times when nested calls\n      res._handled = true;\n    }\n  } catch (e) {\n    handleError(e, vm, info);\n  }\n  return res\n}\n\nfunction globalHandleError (err, vm, info) {\n  if (config.errorHandler) {\n    try {\n      return config.errorHandler.call(null, err, vm, info)\n    } catch (e) {\n      // if the user intentionally throws the original error in the handler,\n      // do not log it twice\n      if (e !== err) {\n        logError(e, null, 'config.errorHandler');\n      }\n    }\n  }\n  logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n  if (true) {\n    warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n  }\n  /* istanbul ignore else */\n  if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n    console.error(err);\n  } else {\n    throw err\n  }\n}\n\n/*  */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n  pending = false;\n  var copies = callbacks.slice(0);\n  callbacks.length = 0;\n  for (var i = 0; i < copies.length; i++) {\n    copies[i]();\n  }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n  var p = Promise.resolve();\n  timerFunc = function () {\n    p.then(flushCallbacks);\n    // In problematic UIWebViews, Promise.then doesn't completely break, but\n    // it can get stuck in a weird state where callbacks are pushed into the\n    // microtask queue but the queue isn't being flushed, until the browser\n    // needs to do some other work, e.g. handle a timer. Therefore we can\n    // \"force\" the microtask queue to be flushed by adding an empty timer.\n    if (isIOS) { setTimeout(noop); }\n  };\n  isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n  isNative(MutationObserver) ||\n  // PhantomJS and iOS 7.x\n  MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n  // Use MutationObserver where native Promise is not available,\n  // e.g. PhantomJS, iOS7, Android 4.4\n  // (#6466 MutationObserver is unreliable in IE11)\n  var counter = 1;\n  var observer = new MutationObserver(flushCallbacks);\n  var textNode = document.createTextNode(String(counter));\n  observer.observe(textNode, {\n    characterData: true\n  });\n  timerFunc = function () {\n    counter = (counter + 1) % 2;\n    textNode.data = String(counter);\n  };\n  isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n  // Fallback to setImmediate.\n  // Techinically it leverages the (macro) task queue,\n  // but it is still a better choice than setTimeout.\n  timerFunc = function () {\n    setImmediate(flushCallbacks);\n  };\n} else {\n  // Fallback to setTimeout.\n  timerFunc = function () {\n    setTimeout(flushCallbacks, 0);\n  };\n}\n\nfunction nextTick (cb, ctx) {\n  var _resolve;\n  callbacks.push(function () {\n    if (cb) {\n      try {\n        cb.call(ctx);\n      } catch (e) {\n        handleError(e, ctx, 'nextTick');\n      }\n    } else if (_resolve) {\n      _resolve(ctx);\n    }\n  });\n  if (!pending) {\n    pending = true;\n    timerFunc();\n  }\n  // $flow-disable-line\n  if (!cb && typeof Promise !== 'undefined') {\n    return new Promise(function (resolve) {\n      _resolve = resolve;\n    })\n  }\n}\n\n/*  */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (true) {\n  var allowedGlobals = makeMap(\n    'Infinity,undefined,NaN,isFinite,isNaN,' +\n    'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n    'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n    'require' // for Webpack/Browserify\n  );\n\n  var warnNonPresent = function (target, key) {\n    warn(\n      \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n      'referenced during render. Make sure that this property is reactive, ' +\n      'either in the data option, or for class-based components, by ' +\n      'initializing the property. ' +\n      'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n      target\n    );\n  };\n\n  var warnReservedPrefix = function (target, key) {\n    warn(\n      \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n      'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n      'prevent conflicts with Vue internals' +\n      'See: https://vuejs.org/v2/api/#data',\n      target\n    );\n  };\n\n  var hasProxy =\n    typeof Proxy !== 'undefined' && isNative(Proxy);\n\n  if (hasProxy) {\n    var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n    config.keyCodes = new Proxy(config.keyCodes, {\n      set: function set (target, key, value) {\n        if (isBuiltInModifier(key)) {\n          warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n          return false\n        } else {\n          target[key] = value;\n          return true\n        }\n      }\n    });\n  }\n\n  var hasHandler = {\n    has: function has (target, key) {\n      var has = key in target;\n      var isAllowed = allowedGlobals(key) ||\n        (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n      if (!has && !isAllowed) {\n        if (key in target.$data) { warnReservedPrefix(target, key); }\n        else { warnNonPresent(target, key); }\n      }\n      return has || !isAllowed\n    }\n  };\n\n  var getHandler = {\n    get: function get (target, key) {\n      if (typeof key === 'string' && !(key in target)) {\n        if (key in target.$data) { warnReservedPrefix(target, key); }\n        else { warnNonPresent(target, key); }\n      }\n      return target[key]\n    }\n  };\n\n  initProxy = function initProxy (vm) {\n    if (hasProxy) {\n      // determine which proxy handler to use\n      var options = vm.$options;\n      var handlers = options.render && options.render._withStripped\n        ? getHandler\n        : hasHandler;\n      vm._renderProxy = new Proxy(vm, handlers);\n    } else {\n      vm._renderProxy = vm;\n    }\n  };\n}\n\n/*  */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n  _traverse(val, seenObjects);\n  seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n  var i, keys;\n  var isA = Array.isArray(val);\n  if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n    return\n  }\n  if (val.__ob__) {\n    var depId = val.__ob__.dep.id;\n    if (seen.has(depId)) {\n      return\n    }\n    seen.add(depId);\n  }\n  if (isA) {\n    i = val.length;\n    while (i--) { _traverse(val[i], seen); }\n  } else {\n    keys = Object.keys(val);\n    i = keys.length;\n    while (i--) { _traverse(val[keys[i]], seen); }\n  }\n}\n\nvar mark;\nvar measure;\n\nif (true) {\n  var perf = inBrowser && window.performance;\n  /* istanbul ignore if */\n  if (\n    perf &&\n    perf.mark &&\n    perf.measure &&\n    perf.clearMarks &&\n    perf.clearMeasures\n  ) {\n    mark = function (tag) { return perf.mark(tag); };\n    measure = function (name, startTag, endTag) {\n      perf.measure(name, startTag, endTag);\n      perf.clearMarks(startTag);\n      perf.clearMarks(endTag);\n      // perf.clearMeasures(name)\n    };\n  }\n}\n\n/*  */\n\nvar normalizeEvent = cached(function (name) {\n  var passive = name.charAt(0) === '&';\n  name = passive ? name.slice(1) : name;\n  var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n  name = once$$1 ? name.slice(1) : name;\n  var capture = name.charAt(0) === '!';\n  name = capture ? name.slice(1) : name;\n  return {\n    name: name,\n    once: once$$1,\n    capture: capture,\n    passive: passive\n  }\n});\n\nfunction createFnInvoker (fns, vm) {\n  function invoker () {\n    var arguments$1 = arguments;\n\n    var fns = invoker.fns;\n    if (Array.isArray(fns)) {\n      var cloned = fns.slice();\n      for (var i = 0; i < cloned.length; i++) {\n        invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n      }\n    } else {\n      // return handler return value for single handlers\n      return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n    }\n  }\n  invoker.fns = fns;\n  return invoker\n}\n\nfunction updateListeners (\n  on,\n  oldOn,\n  add,\n  remove$$1,\n  createOnceHandler,\n  vm\n) {\n  var name, def$$1, cur, old, event;\n  for (name in on) {\n    def$$1 = cur = on[name];\n    old = oldOn[name];\n    event = normalizeEvent(name);\n    if (isUndef(cur)) {\n       true && warn(\n        \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n        vm\n      );\n    } else if (isUndef(old)) {\n      if (isUndef(cur.fns)) {\n        cur = on[name] = createFnInvoker(cur, vm);\n      }\n      if (isTrue(event.once)) {\n        cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n      }\n      add(event.name, cur, event.capture, event.passive, event.params);\n    } else if (cur !== old) {\n      old.fns = cur;\n      on[name] = old;\n    }\n  }\n  for (name in oldOn) {\n    if (isUndef(on[name])) {\n      event = normalizeEvent(name);\n      remove$$1(event.name, oldOn[name], event.capture);\n    }\n  }\n}\n\n/*  */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n  if (def instanceof VNode) {\n    def = def.data.hook || (def.data.hook = {});\n  }\n  var invoker;\n  var oldHook = def[hookKey];\n\n  function wrappedHook () {\n    hook.apply(this, arguments);\n    // important: remove merged hook to ensure it's called only once\n    // and prevent memory leak\n    remove(invoker.fns, wrappedHook);\n  }\n\n  if (isUndef(oldHook)) {\n    // no existing hook\n    invoker = createFnInvoker([wrappedHook]);\n  } else {\n    /* istanbul ignore if */\n    if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n      // already a merged invoker\n      invoker = oldHook;\n      invoker.fns.push(wrappedHook);\n    } else {\n      // existing plain hook\n      invoker = createFnInvoker([oldHook, wrappedHook]);\n    }\n  }\n\n  invoker.merged = true;\n  def[hookKey] = invoker;\n}\n\n/*  */\n\nfunction extractPropsFromVNodeData (\n  data,\n  Ctor,\n  tag\n) {\n  // we are only extracting raw values here.\n  // validation and default values are handled in the child\n  // component itself.\n  var propOptions = Ctor.options.props;\n  if (isUndef(propOptions)) {\n    return\n  }\n  var res = {};\n  var attrs = data.attrs;\n  var props = data.props;\n  if (isDef(attrs) || isDef(props)) {\n    for (var key in propOptions) {\n      var altKey = hyphenate(key);\n      if (true) {\n        var keyInLowerCase = key.toLowerCase();\n        if (\n          key !== keyInLowerCase &&\n          attrs && hasOwn(attrs, keyInLowerCase)\n        ) {\n          tip(\n            \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n            (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n            \" \\\"\" + key + \"\\\". \" +\n            \"Note that HTML attributes are case-insensitive and camelCased \" +\n            \"props need to use their kebab-case equivalents when using in-DOM \" +\n            \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n          );\n        }\n      }\n      checkProp(res, props, key, altKey, true) ||\n      checkProp(res, attrs, key, altKey, false);\n    }\n  }\n  return res\n}\n\nfunction checkProp (\n  res,\n  hash,\n  key,\n  altKey,\n  preserve\n) {\n  if (isDef(hash)) {\n    if (hasOwn(hash, key)) {\n      res[key] = hash[key];\n      if (!preserve) {\n        delete hash[key];\n      }\n      return true\n    } else if (hasOwn(hash, altKey)) {\n      res[key] = hash[altKey];\n      if (!preserve) {\n        delete hash[altKey];\n      }\n      return true\n    }\n  }\n  return false\n}\n\n/*  */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n  for (var i = 0; i < children.length; i++) {\n    if (Array.isArray(children[i])) {\n      return Array.prototype.concat.apply([], children)\n    }\n  }\n  return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n  return isPrimitive(children)\n    ? [createTextVNode(children)]\n    : Array.isArray(children)\n      ? normalizeArrayChildren(children)\n      : undefined\n}\n\nfunction isTextNode (node) {\n  return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n  var res = [];\n  var i, c, lastIndex, last;\n  for (i = 0; i < children.length; i++) {\n    c = children[i];\n    if (isUndef(c) || typeof c === 'boolean') { continue }\n    lastIndex = res.length - 1;\n    last = res[lastIndex];\n    //  nested\n    if (Array.isArray(c)) {\n      if (c.length > 0) {\n        c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n        // merge adjacent text nodes\n        if (isTextNode(c[0]) && isTextNode(last)) {\n          res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n          c.shift();\n        }\n        res.push.apply(res, c);\n      }\n    } else if (isPrimitive(c)) {\n      if (isTextNode(last)) {\n        // merge adjacent text nodes\n        // this is necessary for SSR hydration because text nodes are\n        // essentially merged when rendered to HTML strings\n        res[lastIndex] = createTextVNode(last.text + c);\n      } else if (c !== '') {\n        // convert primitive to vnode\n        res.push(createTextVNode(c));\n      }\n    } else {\n      if (isTextNode(c) && isTextNode(last)) {\n        // merge adjacent text nodes\n        res[lastIndex] = createTextVNode(last.text + c.text);\n      } else {\n        // default key for nested array children (likely generated by v-for)\n        if (isTrue(children._isVList) &&\n          isDef(c.tag) &&\n          isUndef(c.key) &&\n          isDef(nestedIndex)) {\n          c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n        }\n        res.push(c);\n      }\n    }\n  }\n  return res\n}\n\n/*  */\n\nfunction initProvide (vm) {\n  var provide = vm.$options.provide;\n  if (provide) {\n    vm._provided = typeof provide === 'function'\n      ? provide.call(vm)\n      : provide;\n  }\n}\n\nfunction initInjections (vm) {\n  var result = resolveInject(vm.$options.inject, vm);\n  if (result) {\n    toggleObserving(false);\n    Object.keys(result).forEach(function (key) {\n      /* istanbul ignore else */\n      if (true) {\n        defineReactive$$1(vm, key, result[key], function () {\n          warn(\n            \"Avoid mutating an injected value directly since the changes will be \" +\n            \"overwritten whenever the provided component re-renders. \" +\n            \"injection being mutated: \\\"\" + key + \"\\\"\",\n            vm\n          );\n        });\n      } else {}\n    });\n    toggleObserving(true);\n  }\n}\n\nfunction resolveInject (inject, vm) {\n  if (inject) {\n    // inject is :any because flow is not smart enough to figure out cached\n    var result = Object.create(null);\n    var keys = hasSymbol\n      ? Reflect.ownKeys(inject)\n      : Object.keys(inject);\n\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n      // #6574 in case the inject object is observed...\n      if (key === '__ob__') { continue }\n      var provideKey = inject[key].from;\n      var source = vm;\n      while (source) {\n        if (source._provided && hasOwn(source._provided, provideKey)) {\n          result[key] = source._provided[provideKey];\n          break\n        }\n        source = source.$parent;\n      }\n      if (!source) {\n        if ('default' in inject[key]) {\n          var provideDefault = inject[key].default;\n          result[key] = typeof provideDefault === 'function'\n            ? provideDefault.call(vm)\n            : provideDefault;\n        } else if (true) {\n          warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n        }\n      }\n    }\n    return result\n  }\n}\n\n/*  */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n  children,\n  context\n) {\n  if (!children || !children.length) {\n    return {}\n  }\n  var slots = {};\n  for (var i = 0, l = children.length; i < l; i++) {\n    var child = children[i];\n    var data = child.data;\n    // remove slot attribute if the node is resolved as a Vue slot node\n    if (data && data.attrs && data.attrs.slot) {\n      delete data.attrs.slot;\n    }\n    // named slots should only be respected if the vnode was rendered in the\n    // same context.\n    if ((child.context === context || child.fnContext === context) &&\n      data && data.slot != null\n    ) {\n      var name = data.slot;\n      var slot = (slots[name] || (slots[name] = []));\n      if (child.tag === 'template') {\n        slot.push.apply(slot, child.children || []);\n      } else {\n        slot.push(child);\n      }\n    } else {\n      (slots.default || (slots.default = [])).push(child);\n    }\n  }\n  // ignore slots that contains only whitespace\n  for (var name$1 in slots) {\n    if (slots[name$1].every(isWhitespace)) {\n      delete slots[name$1];\n    }\n  }\n  return slots\n}\n\nfunction isWhitespace (node) {\n  return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/*  */\n\nfunction normalizeScopedSlots (\n  slots,\n  normalSlots,\n  prevSlots\n) {\n  var res;\n  var hasNormalSlots = Object.keys(normalSlots).length > 0;\n  var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n  var key = slots && slots.$key;\n  if (!slots) {\n    res = {};\n  } else if (slots._normalized) {\n    // fast path 1: child component re-render only, parent did not change\n    return slots._normalized\n  } else if (\n    isStable &&\n    prevSlots &&\n    prevSlots !== emptyObject &&\n    key === prevSlots.$key &&\n    !hasNormalSlots &&\n    !prevSlots.$hasNormal\n  ) {\n    // fast path 2: stable scoped slots w/ no normal slots to proxy,\n    // only need to normalize once\n    return prevSlots\n  } else {\n    res = {};\n    for (var key$1 in slots) {\n      if (slots[key$1] && key$1[0] !== '$') {\n        res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n      }\n    }\n  }\n  // expose normal slots on scopedSlots\n  for (var key$2 in normalSlots) {\n    if (!(key$2 in res)) {\n      res[key$2] = proxyNormalSlot(normalSlots, key$2);\n    }\n  }\n  // avoriaz seems to mock a non-extensible $scopedSlots object\n  // and when that is passed down this would cause an error\n  if (slots && Object.isExtensible(slots)) {\n    (slots)._normalized = res;\n  }\n  def(res, '$stable', isStable);\n  def(res, '$key', key);\n  def(res, '$hasNormal', hasNormalSlots);\n  return res\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n  var normalized = function () {\n    var res = arguments.length ? fn.apply(null, arguments) : fn({});\n    res = res && typeof res === 'object' && !Array.isArray(res)\n      ? [res] // single vnode\n      : normalizeChildren(res);\n    return res && (\n      res.length === 0 ||\n      (res.length === 1 && res[0].isComment) // #9658\n    ) ? undefined\n      : res\n  };\n  // this is a slot using the new v-slot syntax without scope. although it is\n  // compiled as a scoped slot, render fn users would expect it to be present\n  // on this.$slots because the usage is semantically a normal slot.\n  if (fn.proxy) {\n    Object.defineProperty(normalSlots, key, {\n      get: normalized,\n      enumerable: true,\n      configurable: true\n    });\n  }\n  return normalized\n}\n\nfunction proxyNormalSlot(slots, key) {\n  return function () { return slots[key]; }\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n  val,\n  render\n) {\n  var ret, i, l, keys, key;\n  if (Array.isArray(val) || typeof val === 'string') {\n    ret = new Array(val.length);\n    for (i = 0, l = val.length; i < l; i++) {\n      ret[i] = render(val[i], i);\n    }\n  } else if (typeof val === 'number') {\n    ret = new Array(val);\n    for (i = 0; i < val; i++) {\n      ret[i] = render(i + 1, i);\n    }\n  } else if (isObject(val)) {\n    if (hasSymbol && val[Symbol.iterator]) {\n      ret = [];\n      var iterator = val[Symbol.iterator]();\n      var result = iterator.next();\n      while (!result.done) {\n        ret.push(render(result.value, ret.length));\n        result = iterator.next();\n      }\n    } else {\n      keys = Object.keys(val);\n      ret = new Array(keys.length);\n      for (i = 0, l = keys.length; i < l; i++) {\n        key = keys[i];\n        ret[i] = render(val[key], key, i);\n      }\n    }\n  }\n  if (!isDef(ret)) {\n    ret = [];\n  }\n  (ret)._isVList = true;\n  return ret\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n  name,\n  fallback,\n  props,\n  bindObject\n) {\n  var scopedSlotFn = this.$scopedSlots[name];\n  var nodes;\n  if (scopedSlotFn) { // scoped slot\n    props = props || {};\n    if (bindObject) {\n      if ( true && !isObject(bindObject)) {\n        warn(\n          'slot v-bind without argument expects an Object',\n          this\n        );\n      }\n      props = extend(extend({}, bindObject), props);\n    }\n    nodes = scopedSlotFn(props) || fallback;\n  } else {\n    nodes = this.$slots[name] || fallback;\n  }\n\n  var target = props && props.slot;\n  if (target) {\n    return this.$createElement('template', { slot: target }, nodes)\n  } else {\n    return nodes\n  }\n}\n\n/*  */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n  return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/*  */\n\nfunction isKeyNotMatch (expect, actual) {\n  if (Array.isArray(expect)) {\n    return expect.indexOf(actual) === -1\n  } else {\n    return expect !== actual\n  }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n  eventKeyCode,\n  key,\n  builtInKeyCode,\n  eventKeyName,\n  builtInKeyName\n) {\n  var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n  if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n    return isKeyNotMatch(builtInKeyName, eventKeyName)\n  } else if (mappedKeyCode) {\n    return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n  } else if (eventKeyName) {\n    return hyphenate(eventKeyName) !== key\n  }\n}\n\n/*  */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n  data,\n  tag,\n  value,\n  asProp,\n  isSync\n) {\n  if (value) {\n    if (!isObject(value)) {\n       true && warn(\n        'v-bind without argument expects an Object or Array value',\n        this\n      );\n    } else {\n      if (Array.isArray(value)) {\n        value = toObject(value);\n      }\n      var hash;\n      var loop = function ( key ) {\n        if (\n          key === 'class' ||\n          key === 'style' ||\n          isReservedAttribute(key)\n        ) {\n          hash = data;\n        } else {\n          var type = data.attrs && data.attrs.type;\n          hash = asProp || config.mustUseProp(tag, type, key)\n            ? data.domProps || (data.domProps = {})\n            : data.attrs || (data.attrs = {});\n        }\n        var camelizedKey = camelize(key);\n        var hyphenatedKey = hyphenate(key);\n        if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n          hash[key] = value[key];\n\n          if (isSync) {\n            var on = data.on || (data.on = {});\n            on[(\"update:\" + key)] = function ($event) {\n              value[key] = $event;\n            };\n          }\n        }\n      };\n\n      for (var key in value) loop( key );\n    }\n  }\n  return data\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n  index,\n  isInFor\n) {\n  var cached = this._staticTrees || (this._staticTrees = []);\n  var tree = cached[index];\n  // if has already-rendered static tree and not inside v-for,\n  // we can reuse the same tree.\n  if (tree && !isInFor) {\n    return tree\n  }\n  // otherwise, render a fresh tree.\n  tree = cached[index] = this.$options.staticRenderFns[index].call(\n    this._renderProxy,\n    null,\n    this // for render fns generated for functional component templates\n  );\n  markStatic(tree, (\"__static__\" + index), false);\n  return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n  tree,\n  index,\n  key\n) {\n  markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n  return tree\n}\n\nfunction markStatic (\n  tree,\n  key,\n  isOnce\n) {\n  if (Array.isArray(tree)) {\n    for (var i = 0; i < tree.length; i++) {\n      if (tree[i] && typeof tree[i] !== 'string') {\n        markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n      }\n    }\n  } else {\n    markStaticNode(tree, key, isOnce);\n  }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n  node.isStatic = true;\n  node.key = key;\n  node.isOnce = isOnce;\n}\n\n/*  */\n\nfunction bindObjectListeners (data, value) {\n  if (value) {\n    if (!isPlainObject(value)) {\n       true && warn(\n        'v-on without argument expects an Object value',\n        this\n      );\n    } else {\n      var on = data.on = data.on ? extend({}, data.on) : {};\n      for (var key in value) {\n        var existing = on[key];\n        var ours = value[key];\n        on[key] = existing ? [].concat(existing, ours) : ours;\n      }\n    }\n  }\n  return data\n}\n\n/*  */\n\nfunction resolveScopedSlots (\n  fns, // see flow/vnode\n  res,\n  // the following are added in 2.6\n  hasDynamicKeys,\n  contentHashKey\n) {\n  res = res || { $stable: !hasDynamicKeys };\n  for (var i = 0; i < fns.length; i++) {\n    var slot = fns[i];\n    if (Array.isArray(slot)) {\n      resolveScopedSlots(slot, res, hasDynamicKeys);\n    } else if (slot) {\n      // marker for reverse proxying v-slot without scope on this.$slots\n      if (slot.proxy) {\n        slot.fn.proxy = true;\n      }\n      res[slot.key] = slot.fn;\n    }\n  }\n  if (contentHashKey) {\n    (res).$key = contentHashKey;\n  }\n  return res\n}\n\n/*  */\n\nfunction bindDynamicKeys (baseObj, values) {\n  for (var i = 0; i < values.length; i += 2) {\n    var key = values[i];\n    if (typeof key === 'string' && key) {\n      baseObj[values[i]] = values[i + 1];\n    } else if ( true && key !== '' && key !== null) {\n      // null is a speical value for explicitly removing a binding\n      warn(\n        (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n        this\n      );\n    }\n  }\n  return baseObj\n}\n\n// helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\nfunction prependModifier (value, symbol) {\n  return typeof value === 'string' ? symbol + value : value\n}\n\n/*  */\n\nfunction installRenderHelpers (target) {\n  target._o = markOnce;\n  target._n = toNumber;\n  target._s = toString;\n  target._l = renderList;\n  target._t = renderSlot;\n  target._q = looseEqual;\n  target._i = looseIndexOf;\n  target._m = renderStatic;\n  target._f = resolveFilter;\n  target._k = checkKeyCodes;\n  target._b = bindObjectProps;\n  target._v = createTextVNode;\n  target._e = createEmptyVNode;\n  target._u = resolveScopedSlots;\n  target._g = bindObjectListeners;\n  target._d = bindDynamicKeys;\n  target._p = prependModifier;\n}\n\n/*  */\n\nfunction FunctionalRenderContext (\n  data,\n  props,\n  children,\n  parent,\n  Ctor\n) {\n  var this$1 = this;\n\n  var options = Ctor.options;\n  // ensure the createElement function in functional components\n  // gets a unique context - this is necessary for correct named slot check\n  var contextVm;\n  if (hasOwn(parent, '_uid')) {\n    contextVm = Object.create(parent);\n    // $flow-disable-line\n    contextVm._original = parent;\n  } else {\n    // the context vm passed in is a functional context as well.\n    // in this case we want to make sure we are able to get a hold to the\n    // real context instance.\n    contextVm = parent;\n    // $flow-disable-line\n    parent = parent._original;\n  }\n  var isCompiled = isTrue(options._compiled);\n  var needNormalization = !isCompiled;\n\n  this.data = data;\n  this.props = props;\n  this.children = children;\n  this.parent = parent;\n  this.listeners = data.on || emptyObject;\n  this.injections = resolveInject(options.inject, parent);\n  this.slots = function () {\n    if (!this$1.$slots) {\n      normalizeScopedSlots(\n        data.scopedSlots,\n        this$1.$slots = resolveSlots(children, parent)\n      );\n    }\n    return this$1.$slots\n  };\n\n  Object.defineProperty(this, 'scopedSlots', ({\n    enumerable: true,\n    get: function get () {\n      return normalizeScopedSlots(data.scopedSlots, this.slots())\n    }\n  }));\n\n  // support for compiled functional template\n  if (isCompiled) {\n    // exposing $options for renderStatic()\n    this.$options = options;\n    // pre-resolve slots for renderSlot()\n    this.$slots = this.slots();\n    this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n  }\n\n  if (options._scopeId) {\n    this._c = function (a, b, c, d) {\n      var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n      if (vnode && !Array.isArray(vnode)) {\n        vnode.fnScopeId = options._scopeId;\n        vnode.fnContext = parent;\n      }\n      return vnode\n    };\n  } else {\n    this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n  }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n  Ctor,\n  propsData,\n  data,\n  contextVm,\n  children\n) {\n  var options = Ctor.options;\n  var props = {};\n  var propOptions = options.props;\n  if (isDef(propOptions)) {\n    for (var key in propOptions) {\n      props[key] = validateProp(key, propOptions, propsData || emptyObject);\n    }\n  } else {\n    if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n    if (isDef(data.props)) { mergeProps(props, data.props); }\n  }\n\n  var renderContext = new FunctionalRenderContext(\n    data,\n    props,\n    children,\n    contextVm,\n    Ctor\n  );\n\n  var vnode = options.render.call(null, renderContext._c, renderContext);\n\n  if (vnode instanceof VNode) {\n    return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n  } else if (Array.isArray(vnode)) {\n    var vnodes = normalizeChildren(vnode) || [];\n    var res = new Array(vnodes.length);\n    for (var i = 0; i < vnodes.length; i++) {\n      res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n    }\n    return res\n  }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n  // #7817 clone node before setting fnContext, otherwise if the node is reused\n  // (e.g. it was from a cached normal slot) the fnContext causes named slots\n  // that should not be matched to match.\n  var clone = cloneVNode(vnode);\n  clone.fnContext = contextVm;\n  clone.fnOptions = options;\n  if (true) {\n    (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n  }\n  if (data.slot) {\n    (clone.data || (clone.data = {})).slot = data.slot;\n  }\n  return clone\n}\n\nfunction mergeProps (to, from) {\n  for (var key in from) {\n    to[camelize(key)] = from[key];\n  }\n}\n\n/*  */\n\n/*  */\n\n/*  */\n\n/*  */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n  init: function init (vnode, hydrating) {\n    if (\n      vnode.componentInstance &&\n      !vnode.componentInstance._isDestroyed &&\n      vnode.data.keepAlive\n    ) {\n      // kept-alive components, treat as a patch\n      var mountedNode = vnode; // work around flow\n      componentVNodeHooks.prepatch(mountedNode, mountedNode);\n    } else {\n      var child = vnode.componentInstance = createComponentInstanceForVnode(\n        vnode,\n        activeInstance\n      );\n      child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n    }\n  },\n\n  prepatch: function prepatch (oldVnode, vnode) {\n    var options = vnode.componentOptions;\n    var child = vnode.componentInstance = oldVnode.componentInstance;\n    updateChildComponent(\n      child,\n      options.propsData, // updated props\n      options.listeners, // updated listeners\n      vnode, // new parent vnode\n      options.children // new children\n    );\n  },\n\n  insert: function insert (vnode) {\n    var context = vnode.context;\n    var componentInstance = vnode.componentInstance;\n    if (!componentInstance._isMounted) {\n      componentInstance._isMounted = true;\n      callHook(componentInstance, 'mounted');\n    }\n    if (vnode.data.keepAlive) {\n      if (context._isMounted) {\n        // vue-router#1212\n        // During updates, a kept-alive component's child components may\n        // change, so directly walking the tree here may call activated hooks\n        // on incorrect children. Instead we push them into a queue which will\n        // be processed after the whole patch process ended.\n        queueActivatedComponent(componentInstance);\n      } else {\n        activateChildComponent(componentInstance, true /* direct */);\n      }\n    }\n  },\n\n  destroy: function destroy (vnode) {\n    var componentInstance = vnode.componentInstance;\n    if (!componentInstance._isDestroyed) {\n      if (!vnode.data.keepAlive) {\n        componentInstance.$destroy();\n      } else {\n        deactivateChildComponent(componentInstance, true /* direct */);\n      }\n    }\n  }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n  Ctor,\n  data,\n  context,\n  children,\n  tag\n) {\n  if (isUndef(Ctor)) {\n    return\n  }\n\n  var baseCtor = context.$options._base;\n\n  // plain options object: turn it into a constructor\n  if (isObject(Ctor)) {\n    Ctor = baseCtor.extend(Ctor);\n  }\n\n  // if at this stage it's not a constructor or an async component factory,\n  // reject.\n  if (typeof Ctor !== 'function') {\n    if (true) {\n      warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n    }\n    return\n  }\n\n  // async component\n  var asyncFactory;\n  if (isUndef(Ctor.cid)) {\n    asyncFactory = Ctor;\n    Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n    if (Ctor === undefined) {\n      // return a placeholder node for async component, which is rendered\n      // as a comment node but preserves all the raw information for the node.\n      // the information will be used for async server-rendering and hydration.\n      return createAsyncPlaceholder(\n        asyncFactory,\n        data,\n        context,\n        children,\n        tag\n      )\n    }\n  }\n\n  data = data || {};\n\n  // resolve constructor options in case global mixins are applied after\n  // component constructor creation\n  resolveConstructorOptions(Ctor);\n\n  // transform component v-model data into props & events\n  if (isDef(data.model)) {\n    transformModel(Ctor.options, data);\n  }\n\n  // extract props\n  var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n  // functional component\n  if (isTrue(Ctor.options.functional)) {\n    return createFunctionalComponent(Ctor, propsData, data, context, children)\n  }\n\n  // extract listeners, since these needs to be treated as\n  // child component listeners instead of DOM listeners\n  var listeners = data.on;\n  // replace with listeners with .native modifier\n  // so it gets processed during parent component patch.\n  data.on = data.nativeOn;\n\n  if (isTrue(Ctor.options.abstract)) {\n    // abstract components do not keep anything\n    // other than props & listeners & slot\n\n    // work around flow\n    var slot = data.slot;\n    data = {};\n    if (slot) {\n      data.slot = slot;\n    }\n  }\n\n  // install component management hooks onto the placeholder node\n  installComponentHooks(data);\n\n  // return a placeholder vnode\n  var name = Ctor.options.name || tag;\n  var vnode = new VNode(\n    (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n    data, undefined, undefined, undefined, context,\n    { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n    asyncFactory\n  );\n\n  return vnode\n}\n\nfunction createComponentInstanceForVnode (\n  vnode, // we know it's MountedComponentVNode but flow doesn't\n  parent // activeInstance in lifecycle state\n) {\n  var options = {\n    _isComponent: true,\n    _parentVnode: vnode,\n    parent: parent\n  };\n  // check inline-template render functions\n  var inlineTemplate = vnode.data.inlineTemplate;\n  if (isDef(inlineTemplate)) {\n    options.render = inlineTemplate.render;\n    options.staticRenderFns = inlineTemplate.staticRenderFns;\n  }\n  return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n  var hooks = data.hook || (data.hook = {});\n  for (var i = 0; i < hooksToMerge.length; i++) {\n    var key = hooksToMerge[i];\n    var existing = hooks[key];\n    var toMerge = componentVNodeHooks[key];\n    if (existing !== toMerge && !(existing && existing._merged)) {\n      hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n    }\n  }\n}\n\nfunction mergeHook$1 (f1, f2) {\n  var merged = function (a, b) {\n    // flow complains about extra args which is why we use any\n    f1(a, b);\n    f2(a, b);\n  };\n  merged._merged = true;\n  return merged\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n  var prop = (options.model && options.model.prop) || 'value';\n  var event = (options.model && options.model.event) || 'input'\n  ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n  var on = data.on || (data.on = {});\n  var existing = on[event];\n  var callback = data.model.callback;\n  if (isDef(existing)) {\n    if (\n      Array.isArray(existing)\n        ? existing.indexOf(callback) === -1\n        : existing !== callback\n    ) {\n      on[event] = [callback].concat(existing);\n    }\n  } else {\n    on[event] = callback;\n  }\n}\n\n/*  */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n  context,\n  tag,\n  data,\n  children,\n  normalizationType,\n  alwaysNormalize\n) {\n  if (Array.isArray(data) || isPrimitive(data)) {\n    normalizationType = children;\n    children = data;\n    data = undefined;\n  }\n  if (isTrue(alwaysNormalize)) {\n    normalizationType = ALWAYS_NORMALIZE;\n  }\n  return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n  context,\n  tag,\n  data,\n  children,\n  normalizationType\n) {\n  if (isDef(data) && isDef((data).__ob__)) {\n     true && warn(\n      \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n      'Always create fresh vnode data objects in each render!',\n      context\n    );\n    return createEmptyVNode()\n  }\n  // object syntax in v-bind\n  if (isDef(data) && isDef(data.is)) {\n    tag = data.is;\n  }\n  if (!tag) {\n    // in case of component :is set to falsy value\n    return createEmptyVNode()\n  }\n  // warn against non-primitive key\n  if ( true &&\n    isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n  ) {\n    {\n      warn(\n        'Avoid using non-primitive value as key, ' +\n        'use string/number value instead.',\n        context\n      );\n    }\n  }\n  // support single function children as default scoped slot\n  if (Array.isArray(children) &&\n    typeof children[0] === 'function'\n  ) {\n    data = data || {};\n    data.scopedSlots = { default: children[0] };\n    children.length = 0;\n  }\n  if (normalizationType === ALWAYS_NORMALIZE) {\n    children = normalizeChildren(children);\n  } else if (normalizationType === SIMPLE_NORMALIZE) {\n    children = simpleNormalizeChildren(children);\n  }\n  var vnode, ns;\n  if (typeof tag === 'string') {\n    var Ctor;\n    ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n    if (config.isReservedTag(tag)) {\n      // platform built-in elements\n      vnode = new VNode(\n        config.parsePlatformTagName(tag), data, children,\n        undefined, undefined, context\n      );\n    } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n      // component\n      vnode = createComponent(Ctor, data, context, children, tag);\n    } else {\n      // unknown or unlisted namespaced elements\n      // check at runtime because it may get assigned a namespace when its\n      // parent normalizes children\n      vnode = new VNode(\n        tag, data, children,\n        undefined, undefined, context\n      );\n    }\n  } else {\n    // direct component options / constructor\n    vnode = createComponent(tag, data, context, children);\n  }\n  if (Array.isArray(vnode)) {\n    return vnode\n  } else if (isDef(vnode)) {\n    if (isDef(ns)) { applyNS(vnode, ns); }\n    if (isDef(data)) { registerDeepBindings(data); }\n    return vnode\n  } else {\n    return createEmptyVNode()\n  }\n}\n\nfunction applyNS (vnode, ns, force) {\n  vnode.ns = ns;\n  if (vnode.tag === 'foreignObject') {\n    // use default namespace inside foreignObject\n    ns = undefined;\n    force = true;\n  }\n  if (isDef(vnode.children)) {\n    for (var i = 0, l = vnode.children.length; i < l; i++) {\n      var child = vnode.children[i];\n      if (isDef(child.tag) && (\n        isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n        applyNS(child, ns, force);\n      }\n    }\n  }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n  if (isObject(data.style)) {\n    traverse(data.style);\n  }\n  if (isObject(data.class)) {\n    traverse(data.class);\n  }\n}\n\n/*  */\n\nfunction initRender (vm) {\n  vm._vnode = null; // the root of the child tree\n  vm._staticTrees = null; // v-once cached trees\n  var options = vm.$options;\n  var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n  var renderContext = parentVnode && parentVnode.context;\n  vm.$slots = resolveSlots(options._renderChildren, renderContext);\n  vm.$scopedSlots = emptyObject;\n  // bind the createElement fn to this instance\n  // so that we get proper render context inside it.\n  // args order: tag, data, children, normalizationType, alwaysNormalize\n  // internal version is used by render functions compiled from templates\n  vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n  // normalization is always applied for the public version, used in\n  // user-written render functions.\n  vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n  // $attrs & $listeners are exposed for easier HOC creation.\n  // they need to be reactive so that HOCs using them are always updated\n  var parentData = parentVnode && parentVnode.data;\n\n  /* istanbul ignore else */\n  if (true) {\n    defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n      !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n    }, true);\n    defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n      !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n    }, true);\n  } else {}\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin (Vue) {\n  // install runtime convenience helpers\n  installRenderHelpers(Vue.prototype);\n\n  Vue.prototype.$nextTick = function (fn) {\n    return nextTick(fn, this)\n  };\n\n  Vue.prototype._render = function () {\n    var vm = this;\n    var ref = vm.$options;\n    var render = ref.render;\n    var _parentVnode = ref._parentVnode;\n\n    if (_parentVnode) {\n      vm.$scopedSlots = normalizeScopedSlots(\n        _parentVnode.data.scopedSlots,\n        vm.$slots,\n        vm.$scopedSlots\n      );\n    }\n\n    // set parent vnode. this allows render functions to have access\n    // to the data on the placeholder node.\n    vm.$vnode = _parentVnode;\n    // render self\n    var vnode;\n    try {\n      // There's no need to maintain a stack becaues all render fns are called\n      // separately from one another. Nested component's render fns are called\n      // when parent component is patched.\n      currentRenderingInstance = vm;\n      vnode = render.call(vm._renderProxy, vm.$createElement);\n    } catch (e) {\n      handleError(e, vm, \"render\");\n      // return error render result,\n      // or previous vnode to prevent render error causing blank component\n      /* istanbul ignore else */\n      if ( true && vm.$options.renderError) {\n        try {\n          vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n        } catch (e) {\n          handleError(e, vm, \"renderError\");\n          vnode = vm._vnode;\n        }\n      } else {\n        vnode = vm._vnode;\n      }\n    } finally {\n      currentRenderingInstance = null;\n    }\n    // if the returned array contains only a single node, allow it\n    if (Array.isArray(vnode) && vnode.length === 1) {\n      vnode = vnode[0];\n    }\n    // return empty vnode in case the render function errored out\n    if (!(vnode instanceof VNode)) {\n      if ( true && Array.isArray(vnode)) {\n        warn(\n          'Multiple root nodes returned from render function. Render function ' +\n          'should return a single root node.',\n          vm\n        );\n      }\n      vnode = createEmptyVNode();\n    }\n    // set parent\n    vnode.parent = _parentVnode;\n    return vnode\n  };\n}\n\n/*  */\n\nfunction ensureCtor (comp, base) {\n  if (\n    comp.__esModule ||\n    (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n  ) {\n    comp = comp.default;\n  }\n  return isObject(comp)\n    ? base.extend(comp)\n    : comp\n}\n\nfunction createAsyncPlaceholder (\n  factory,\n  data,\n  context,\n  children,\n  tag\n) {\n  var node = createEmptyVNode();\n  node.asyncFactory = factory;\n  node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n  return node\n}\n\nfunction resolveAsyncComponent (\n  factory,\n  baseCtor\n) {\n  if (isTrue(factory.error) && isDef(factory.errorComp)) {\n    return factory.errorComp\n  }\n\n  if (isDef(factory.resolved)) {\n    return factory.resolved\n  }\n\n  var owner = currentRenderingInstance;\n  if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n    // already pending\n    factory.owners.push(owner);\n  }\n\n  if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n    return factory.loadingComp\n  }\n\n  if (owner && !isDef(factory.owners)) {\n    var owners = factory.owners = [owner];\n    var sync = true;\n    var timerLoading = null;\n    var timerTimeout = null\n\n    ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n    var forceRender = function (renderCompleted) {\n      for (var i = 0, l = owners.length; i < l; i++) {\n        (owners[i]).$forceUpdate();\n      }\n\n      if (renderCompleted) {\n        owners.length = 0;\n        if (timerLoading !== null) {\n          clearTimeout(timerLoading);\n          timerLoading = null;\n        }\n        if (timerTimeout !== null) {\n          clearTimeout(timerTimeout);\n          timerTimeout = null;\n        }\n      }\n    };\n\n    var resolve = once(function (res) {\n      // cache resolved\n      factory.resolved = ensureCtor(res, baseCtor);\n      // invoke callbacks only if this is not a synchronous resolve\n      // (async resolves are shimmed as synchronous during SSR)\n      if (!sync) {\n        forceRender(true);\n      } else {\n        owners.length = 0;\n      }\n    });\n\n    var reject = once(function (reason) {\n       true && warn(\n        \"Failed to resolve async component: \" + (String(factory)) +\n        (reason ? (\"\\nReason: \" + reason) : '')\n      );\n      if (isDef(factory.errorComp)) {\n        factory.error = true;\n        forceRender(true);\n      }\n    });\n\n    var res = factory(resolve, reject);\n\n    if (isObject(res)) {\n      if (isPromise(res)) {\n        // () => Promise\n        if (isUndef(factory.resolved)) {\n          res.then(resolve, reject);\n        }\n      } else if (isPromise(res.component)) {\n        res.component.then(resolve, reject);\n\n        if (isDef(res.error)) {\n          factory.errorComp = ensureCtor(res.error, baseCtor);\n        }\n\n        if (isDef(res.loading)) {\n          factory.loadingComp = ensureCtor(res.loading, baseCtor);\n          if (res.delay === 0) {\n            factory.loading = true;\n          } else {\n            timerLoading = setTimeout(function () {\n              timerLoading = null;\n              if (isUndef(factory.resolved) && isUndef(factory.error)) {\n                factory.loading = true;\n                forceRender(false);\n              }\n            }, res.delay || 200);\n          }\n        }\n\n        if (isDef(res.timeout)) {\n          timerTimeout = setTimeout(function () {\n            timerTimeout = null;\n            if (isUndef(factory.resolved)) {\n              reject(\n                 true\n                  ? (\"timeout (\" + (res.timeout) + \"ms)\")\n                  : undefined\n              );\n            }\n          }, res.timeout);\n        }\n      }\n    }\n\n    sync = false;\n    // return in case resolved synchronously\n    return factory.loading\n      ? factory.loadingComp\n      : factory.resolved\n  }\n}\n\n/*  */\n\nfunction isAsyncPlaceholder (node) {\n  return node.isComment && node.asyncFactory\n}\n\n/*  */\n\nfunction getFirstComponentChild (children) {\n  if (Array.isArray(children)) {\n    for (var i = 0; i < children.length; i++) {\n      var c = children[i];\n      if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n        return c\n      }\n    }\n  }\n}\n\n/*  */\n\n/*  */\n\nfunction initEvents (vm) {\n  vm._events = Object.create(null);\n  vm._hasHookEvent = false;\n  // init parent attached events\n  var listeners = vm.$options._parentListeners;\n  if (listeners) {\n    updateComponentListeners(vm, listeners);\n  }\n}\n\nvar target;\n\nfunction add (event, fn) {\n  target.$on(event, fn);\n}\n\nfunction remove$1 (event, fn) {\n  target.$off(event, fn);\n}\n\nfunction createOnceHandler (event, fn) {\n  var _target = target;\n  return function onceHandler () {\n    var res = fn.apply(null, arguments);\n    if (res !== null) {\n      _target.$off(event, onceHandler);\n    }\n  }\n}\n\nfunction updateComponentListeners (\n  vm,\n  listeners,\n  oldListeners\n) {\n  target = vm;\n  updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n  target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n  var hookRE = /^hook:/;\n  Vue.prototype.$on = function (event, fn) {\n    var vm = this;\n    if (Array.isArray(event)) {\n      for (var i = 0, l = event.length; i < l; i++) {\n        vm.$on(event[i], fn);\n      }\n    } else {\n      (vm._events[event] || (vm._events[event] = [])).push(fn);\n      // optimize hook:event cost by using a boolean flag marked at registration\n      // instead of a hash lookup\n      if (hookRE.test(event)) {\n        vm._hasHookEvent = true;\n      }\n    }\n    return vm\n  };\n\n  Vue.prototype.$once = function (event, fn) {\n    var vm = this;\n    function on () {\n      vm.$off(event, on);\n      fn.apply(vm, arguments);\n    }\n    on.fn = fn;\n    vm.$on(event, on);\n    return vm\n  };\n\n  Vue.prototype.$off = function (event, fn) {\n    var vm = this;\n    // all\n    if (!arguments.length) {\n      vm._events = Object.create(null);\n      return vm\n    }\n    // array of events\n    if (Array.isArray(event)) {\n      for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n        vm.$off(event[i$1], fn);\n      }\n      return vm\n    }\n    // specific event\n    var cbs = vm._events[event];\n    if (!cbs) {\n      return vm\n    }\n    if (!fn) {\n      vm._events[event] = null;\n      return vm\n    }\n    // specific handler\n    var cb;\n    var i = cbs.length;\n    while (i--) {\n      cb = cbs[i];\n      if (cb === fn || cb.fn === fn) {\n        cbs.splice(i, 1);\n        break\n      }\n    }\n    return vm\n  };\n\n  Vue.prototype.$emit = function (event) {\n    var vm = this;\n    if (true) {\n      var lowerCaseEvent = event.toLowerCase();\n      if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n        tip(\n          \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n          (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n          \"Note that HTML attributes are case-insensitive and you cannot use \" +\n          \"v-on to listen to camelCase events when using in-DOM templates. \" +\n          \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n        );\n      }\n    }\n    var cbs = vm._events[event];\n    if (cbs) {\n      cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n      var args = toArray(arguments, 1);\n      var info = \"event handler for \\\"\" + event + \"\\\"\";\n      for (var i = 0, l = cbs.length; i < l; i++) {\n        invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n      }\n    }\n    return vm\n  };\n}\n\n/*  */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n  var prevActiveInstance = activeInstance;\n  activeInstance = vm;\n  return function () {\n    activeInstance = prevActiveInstance;\n  }\n}\n\nfunction initLifecycle (vm) {\n  var options = vm.$options;\n\n  // locate first non-abstract parent\n  var parent = options.parent;\n  if (parent && !options.abstract) {\n    while (parent.$options.abstract && parent.$parent) {\n      parent = parent.$parent;\n    }\n    parent.$children.push(vm);\n  }\n\n  vm.$parent = parent;\n  vm.$root = parent ? parent.$root : vm;\n\n  vm.$children = [];\n  vm.$refs = {};\n\n  vm._watcher = null;\n  vm._inactive = null;\n  vm._directInactive = false;\n  vm._isMounted = false;\n  vm._isDestroyed = false;\n  vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n  Vue.prototype._update = function (vnode, hydrating) {\n    var vm = this;\n    var prevEl = vm.$el;\n    var prevVnode = vm._vnode;\n    var restoreActiveInstance = setActiveInstance(vm);\n    vm._vnode = vnode;\n    // Vue.prototype.__patch__ is injected in entry points\n    // based on the rendering backend used.\n    if (!prevVnode) {\n      // initial render\n      vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n    } else {\n      // updates\n      vm.$el = vm.__patch__(prevVnode, vnode);\n    }\n    restoreActiveInstance();\n    // update __vue__ reference\n    if (prevEl) {\n      prevEl.__vue__ = null;\n    }\n    if (vm.$el) {\n      vm.$el.__vue__ = vm;\n    }\n    // if parent is an HOC, update its $el as well\n    if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n      vm.$parent.$el = vm.$el;\n    }\n    // updated hook is called by the scheduler to ensure that children are\n    // updated in a parent's updated hook.\n  };\n\n  Vue.prototype.$forceUpdate = function () {\n    var vm = this;\n    if (vm._watcher) {\n      vm._watcher.update();\n    }\n  };\n\n  Vue.prototype.$destroy = function () {\n    var vm = this;\n    if (vm._isBeingDestroyed) {\n      return\n    }\n    callHook(vm, 'beforeDestroy');\n    vm._isBeingDestroyed = true;\n    // remove self from parent\n    var parent = vm.$parent;\n    if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n      remove(parent.$children, vm);\n    }\n    // teardown watchers\n    if (vm._watcher) {\n      vm._watcher.teardown();\n    }\n    var i = vm._watchers.length;\n    while (i--) {\n      vm._watchers[i].teardown();\n    }\n    // remove reference from data ob\n    // frozen object may not have observer.\n    if (vm._data.__ob__) {\n      vm._data.__ob__.vmCount--;\n    }\n    // call the last hook...\n    vm._isDestroyed = true;\n    // invoke destroy hooks on current rendered tree\n    vm.__patch__(vm._vnode, null);\n    // fire destroyed hook\n    callHook(vm, 'destroyed');\n    // turn off all instance listeners.\n    vm.$off();\n    // remove __vue__ reference\n    if (vm.$el) {\n      vm.$el.__vue__ = null;\n    }\n    // release circular reference (#6759)\n    if (vm.$vnode) {\n      vm.$vnode.parent = null;\n    }\n  };\n}\n\nfunction mountComponent (\n  vm,\n  el,\n  hydrating\n) {\n  vm.$el = el;\n  if (!vm.$options.render) {\n    vm.$options.render = createEmptyVNode;\n    if (true) {\n      /* istanbul ignore if */\n      if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n        vm.$options.el || el) {\n        warn(\n          'You are using the runtime-only build of Vue where the template ' +\n          'compiler is not available. Either pre-compile the templates into ' +\n          'render functions, or use the compiler-included build.',\n          vm\n        );\n      } else {\n        warn(\n          'Failed to mount component: template or render function not defined.',\n          vm\n        );\n      }\n    }\n  }\n  callHook(vm, 'beforeMount');\n\n  var updateComponent;\n  /* istanbul ignore if */\n  if ( true && config.performance && mark) {\n    updateComponent = function () {\n      var name = vm._name;\n      var id = vm._uid;\n      var startTag = \"vue-perf-start:\" + id;\n      var endTag = \"vue-perf-end:\" + id;\n\n      mark(startTag);\n      var vnode = vm._render();\n      mark(endTag);\n      measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n      mark(startTag);\n      vm._update(vnode, hydrating);\n      mark(endTag);\n      measure((\"vue \" + name + \" patch\"), startTag, endTag);\n    };\n  } else {\n    updateComponent = function () {\n      vm._update(vm._render(), hydrating);\n    };\n  }\n\n  // we set this to vm._watcher inside the watcher's constructor\n  // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n  // component's mounted hook), which relies on vm._watcher being already defined\n  new Watcher(vm, updateComponent, noop, {\n    before: function before () {\n      if (vm._isMounted && !vm._isDestroyed) {\n        callHook(vm, 'beforeUpdate');\n      }\n    }\n  }, true /* isRenderWatcher */);\n  hydrating = false;\n\n  // manually mounted instance, call mounted on self\n  // mounted is called for render-created child components in its inserted hook\n  if (vm.$vnode == null) {\n    vm._isMounted = true;\n    callHook(vm, 'mounted');\n  }\n  return vm\n}\n\nfunction updateChildComponent (\n  vm,\n  propsData,\n  listeners,\n  parentVnode,\n  renderChildren\n) {\n  if (true) {\n    isUpdatingChildComponent = true;\n  }\n\n  // determine whether component has slot children\n  // we need to do this before overwriting $options._renderChildren.\n\n  // check if there are dynamic scopedSlots (hand-written or compiled but with\n  // dynamic slot names). Static scoped slots compiled from template has the\n  // \"$stable\" marker.\n  var newScopedSlots = parentVnode.data.scopedSlots;\n  var oldScopedSlots = vm.$scopedSlots;\n  var hasDynamicScopedSlot = !!(\n    (newScopedSlots && !newScopedSlots.$stable) ||\n    (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n    (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)\n  );\n\n  // Any static slot children from the parent may have changed during parent's\n  // update. Dynamic scoped slots may also have changed. In such cases, a forced\n  // update is necessary to ensure correctness.\n  var needsForceUpdate = !!(\n    renderChildren ||               // has new static slots\n    vm.$options._renderChildren ||  // has old static slots\n    hasDynamicScopedSlot\n  );\n\n  vm.$options._parentVnode = parentVnode;\n  vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n  if (vm._vnode) { // update child tree's parent\n    vm._vnode.parent = parentVnode;\n  }\n  vm.$options._renderChildren = renderChildren;\n\n  // update $attrs and $listeners hash\n  // these are also reactive so they may trigger child update if the child\n  // used them during render\n  vm.$attrs = parentVnode.data.attrs || emptyObject;\n  vm.$listeners = listeners || emptyObject;\n\n  // update props\n  if (propsData && vm.$options.props) {\n    toggleObserving(false);\n    var props = vm._props;\n    var propKeys = vm.$options._propKeys || [];\n    for (var i = 0; i < propKeys.length; i++) {\n      var key = propKeys[i];\n      var propOptions = vm.$options.props; // wtf flow?\n      props[key] = validateProp(key, propOptions, propsData, vm);\n    }\n    toggleObserving(true);\n    // keep a copy of raw propsData\n    vm.$options.propsData = propsData;\n  }\n\n  // update listeners\n  listeners = listeners || emptyObject;\n  var oldListeners = vm.$options._parentListeners;\n  vm.$options._parentListeners = listeners;\n  updateComponentListeners(vm, listeners, oldListeners);\n\n  // resolve slots + force update if has children\n  if (needsForceUpdate) {\n    vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n    vm.$forceUpdate();\n  }\n\n  if (true) {\n    isUpdatingChildComponent = false;\n  }\n}\n\nfunction isInInactiveTree (vm) {\n  while (vm && (vm = vm.$parent)) {\n    if (vm._inactive) { return true }\n  }\n  return false\n}\n\nfunction activateChildComponent (vm, direct) {\n  if (direct) {\n    vm._directInactive = false;\n    if (isInInactiveTree(vm)) {\n      return\n    }\n  } else if (vm._directInactive) {\n    return\n  }\n  if (vm._inactive || vm._inactive === null) {\n    vm._inactive = false;\n    for (var i = 0; i < vm.$children.length; i++) {\n      activateChildComponent(vm.$children[i]);\n    }\n    callHook(vm, 'activated');\n  }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n  if (direct) {\n    vm._directInactive = true;\n    if (isInInactiveTree(vm)) {\n      return\n    }\n  }\n  if (!vm._inactive) {\n    vm._inactive = true;\n    for (var i = 0; i < vm.$children.length; i++) {\n      deactivateChildComponent(vm.$children[i]);\n    }\n    callHook(vm, 'deactivated');\n  }\n}\n\nfunction callHook (vm, hook) {\n  // #7573 disable dep collection when invoking lifecycle hooks\n  pushTarget();\n  var handlers = vm.$options[hook];\n  var info = hook + \" hook\";\n  if (handlers) {\n    for (var i = 0, j = handlers.length; i < j; i++) {\n      invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n    }\n  }\n  if (vm._hasHookEvent) {\n    vm.$emit('hook:' + hook);\n  }\n  popTarget();\n}\n\n/*  */\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n  index = queue.length = activatedChildren.length = 0;\n  has = {};\n  if (true) {\n    circular = {};\n  }\n  waiting = flushing = false;\n}\n\n// Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\nvar currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nvar getNow = Date.now;\n\n// Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\nif (inBrowser && !isIE) {\n  var performance = window.performance;\n  if (\n    performance &&\n    typeof performance.now === 'function' &&\n    getNow() > document.createEvent('Event').timeStamp\n  ) {\n    // if the event timestamp, although evaluated AFTER the Date.now(), is\n    // smaller than it, it means the event is using a hi-res timestamp,\n    // and we need to use the hi-res version for event listener timestamps as\n    // well.\n    getNow = function () { return performance.now(); };\n  }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n  currentFlushTimestamp = getNow();\n  flushing = true;\n  var watcher, id;\n\n  // Sort queue before flush.\n  // This ensures that:\n  // 1. Components are updated from parent to child. (because parent is always\n  //    created before the child)\n  // 2. A component's user watchers are run before its render watcher (because\n  //    user watchers are created before the render watcher)\n  // 3. If a component is destroyed during a parent component's watcher run,\n  //    its watchers can be skipped.\n  queue.sort(function (a, b) { return a.id - b.id; });\n\n  // do not cache length because more watchers might be pushed\n  // as we run existing watchers\n  for (index = 0; index < queue.length; index++) {\n    watcher = queue[index];\n    if (watcher.before) {\n      watcher.before();\n    }\n    id = watcher.id;\n    has[id] = null;\n    watcher.run();\n    // in dev build, check and stop circular updates.\n    if ( true && has[id] != null) {\n      circular[id] = (circular[id] || 0) + 1;\n      if (circular[id] > MAX_UPDATE_COUNT) {\n        warn(\n          'You may have an infinite update loop ' + (\n            watcher.user\n              ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n              : \"in a component render function.\"\n          ),\n          watcher.vm\n        );\n        break\n      }\n    }\n  }\n\n  // keep copies of post queues before resetting state\n  var activatedQueue = activatedChildren.slice();\n  var updatedQueue = queue.slice();\n\n  resetSchedulerState();\n\n  // call component updated and activated hooks\n  callActivatedHooks(activatedQueue);\n  callUpdatedHooks(updatedQueue);\n\n  // devtool hook\n  /* istanbul ignore if */\n  if (devtools && config.devtools) {\n    devtools.emit('flush');\n  }\n}\n\nfunction callUpdatedHooks (queue) {\n  var i = queue.length;\n  while (i--) {\n    var watcher = queue[i];\n    var vm = watcher.vm;\n    if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n      callHook(vm, 'updated');\n    }\n  }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n  // setting _inactive to false here so that a render function can\n  // rely on checking whether it's in an inactive tree (e.g. router-view)\n  vm._inactive = false;\n  activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n  for (var i = 0; i < queue.length; i++) {\n    queue[i]._inactive = true;\n    activateChildComponent(queue[i], true /* true */);\n  }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n  var id = watcher.id;\n  if (has[id] == null) {\n    has[id] = true;\n    if (!flushing) {\n      queue.push(watcher);\n    } else {\n      // if already flushing, splice the watcher based on its id\n      // if already past its id, it will be run next immediately.\n      var i = queue.length - 1;\n      while (i > index && queue[i].id > watcher.id) {\n        i--;\n      }\n      queue.splice(i + 1, 0, watcher);\n    }\n    // queue the flush\n    if (!waiting) {\n      waiting = true;\n\n      if ( true && !config.async) {\n        flushSchedulerQueue();\n        return\n      }\n      nextTick(flushSchedulerQueue);\n    }\n  }\n}\n\n/*  */\n\n\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n  vm,\n  expOrFn,\n  cb,\n  options,\n  isRenderWatcher\n) {\n  this.vm = vm;\n  if (isRenderWatcher) {\n    vm._watcher = this;\n  }\n  vm._watchers.push(this);\n  // options\n  if (options) {\n    this.deep = !!options.deep;\n    this.user = !!options.user;\n    this.lazy = !!options.lazy;\n    this.sync = !!options.sync;\n    this.before = options.before;\n  } else {\n    this.deep = this.user = this.lazy = this.sync = false;\n  }\n  this.cb = cb;\n  this.id = ++uid$2; // uid for batching\n  this.active = true;\n  this.dirty = this.lazy; // for lazy watchers\n  this.deps = [];\n  this.newDeps = [];\n  this.depIds = new _Set();\n  this.newDepIds = new _Set();\n  this.expression =  true\n    ? expOrFn.toString()\n    : undefined;\n  // parse expression for getter\n  if (typeof expOrFn === 'function') {\n    this.getter = expOrFn;\n  } else {\n    this.getter = parsePath(expOrFn);\n    if (!this.getter) {\n      this.getter = noop;\n       true && warn(\n        \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n        'Watcher only accepts simple dot-delimited paths. ' +\n        'For full control, use a function instead.',\n        vm\n      );\n    }\n  }\n  this.value = this.lazy\n    ? undefined\n    : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n  pushTarget(this);\n  var value;\n  var vm = this.vm;\n  try {\n    value = this.getter.call(vm, vm);\n  } catch (e) {\n    if (this.user) {\n      handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n    } else {\n      throw e\n    }\n  } finally {\n    // \"touch\" every property so they are all tracked as\n    // dependencies for deep watching\n    if (this.deep) {\n      traverse(value);\n    }\n    popTarget();\n    this.cleanupDeps();\n  }\n  return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n  var id = dep.id;\n  if (!this.newDepIds.has(id)) {\n    this.newDepIds.add(id);\n    this.newDeps.push(dep);\n    if (!this.depIds.has(id)) {\n      dep.addSub(this);\n    }\n  }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n  var i = this.deps.length;\n  while (i--) {\n    var dep = this.deps[i];\n    if (!this.newDepIds.has(dep.id)) {\n      dep.removeSub(this);\n    }\n  }\n  var tmp = this.depIds;\n  this.depIds = this.newDepIds;\n  this.newDepIds = tmp;\n  this.newDepIds.clear();\n  tmp = this.deps;\n  this.deps = this.newDeps;\n  this.newDeps = tmp;\n  this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n  /* istanbul ignore else */\n  if (this.lazy) {\n    this.dirty = true;\n  } else if (this.sync) {\n    this.run();\n  } else {\n    queueWatcher(this);\n  }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n  if (this.active) {\n    var value = this.get();\n    if (\n      value !== this.value ||\n      // Deep watchers and watchers on Object/Arrays should fire even\n      // when the value is the same, because the value may\n      // have mutated.\n      isObject(value) ||\n      this.deep\n    ) {\n      // set new value\n      var oldValue = this.value;\n      this.value = value;\n      if (this.user) {\n        try {\n          this.cb.call(this.vm, value, oldValue);\n        } catch (e) {\n          handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n        }\n      } else {\n        this.cb.call(this.vm, value, oldValue);\n      }\n    }\n  }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n  this.value = this.get();\n  this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n  var i = this.deps.length;\n  while (i--) {\n    this.deps[i].depend();\n  }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n  if (this.active) {\n    // remove self from vm's watcher list\n    // this is a somewhat expensive operation so we skip it\n    // if the vm is being destroyed.\n    if (!this.vm._isBeingDestroyed) {\n      remove(this.vm._watchers, this);\n    }\n    var i = this.deps.length;\n    while (i--) {\n      this.deps[i].removeSub(this);\n    }\n    this.active = false;\n  }\n};\n\n/*  */\n\nvar sharedPropertyDefinition = {\n  enumerable: true,\n  configurable: true,\n  get: noop,\n  set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n  sharedPropertyDefinition.get = function proxyGetter () {\n    return this[sourceKey][key]\n  };\n  sharedPropertyDefinition.set = function proxySetter (val) {\n    this[sourceKey][key] = val;\n  };\n  Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n  vm._watchers = [];\n  var opts = vm.$options;\n  if (opts.props) { initProps(vm, opts.props); }\n  if (opts.methods) { initMethods(vm, opts.methods); }\n  if (opts.data) {\n    initData(vm);\n  } else {\n    observe(vm._data = {}, true /* asRootData */);\n  }\n  if (opts.computed) { initComputed(vm, opts.computed); }\n  if (opts.watch && opts.watch !== nativeWatch) {\n    initWatch(vm, opts.watch);\n  }\n}\n\nfunction initProps (vm, propsOptions) {\n  var propsData = vm.$options.propsData || {};\n  var props = vm._props = {};\n  // cache prop keys so that future props updates can iterate using Array\n  // instead of dynamic object key enumeration.\n  var keys = vm.$options._propKeys = [];\n  var isRoot = !vm.$parent;\n  // root instance props should be converted\n  if (!isRoot) {\n    toggleObserving(false);\n  }\n  var loop = function ( key ) {\n    keys.push(key);\n    var value = validateProp(key, propsOptions, propsData, vm);\n    /* istanbul ignore else */\n    if (true) {\n      var hyphenatedKey = hyphenate(key);\n      if (isReservedAttribute(hyphenatedKey) ||\n          config.isReservedAttr(hyphenatedKey)) {\n        warn(\n          (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n          vm\n        );\n      }\n      defineReactive$$1(props, key, value, function () {\n        if (!isRoot && !isUpdatingChildComponent) {\n          warn(\n            \"Avoid mutating a prop directly since the value will be \" +\n            \"overwritten whenever the parent component re-renders. \" +\n            \"Instead, use a data or computed property based on the prop's \" +\n            \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n            vm\n          );\n        }\n      });\n    } else {}\n    // static props are already proxied on the component's prototype\n    // during Vue.extend(). We only need to proxy props defined at\n    // instantiation here.\n    if (!(key in vm)) {\n      proxy(vm, \"_props\", key);\n    }\n  };\n\n  for (var key in propsOptions) loop( key );\n  toggleObserving(true);\n}\n\nfunction initData (vm) {\n  var data = vm.$options.data;\n  data = vm._data = typeof data === 'function'\n    ? getData(data, vm)\n    : data || {};\n  if (!isPlainObject(data)) {\n    data = {};\n     true && warn(\n      'data functions should return an object:\\n' +\n      'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n      vm\n    );\n  }\n  // proxy data on instance\n  var keys = Object.keys(data);\n  var props = vm.$options.props;\n  var methods = vm.$options.methods;\n  var i = keys.length;\n  while (i--) {\n    var key = keys[i];\n    if (true) {\n      if (methods && hasOwn(methods, key)) {\n        warn(\n          (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n          vm\n        );\n      }\n    }\n    if (props && hasOwn(props, key)) {\n       true && warn(\n        \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n        \"Use prop default value instead.\",\n        vm\n      );\n    } else if (!isReserved(key)) {\n      proxy(vm, \"_data\", key);\n    }\n  }\n  // observe data\n  observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n  // #7573 disable dep collection when invoking data getters\n  pushTarget();\n  try {\n    return data.call(vm, vm)\n  } catch (e) {\n    handleError(e, vm, \"data()\");\n    return {}\n  } finally {\n    popTarget();\n  }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n  // $flow-disable-line\n  var watchers = vm._computedWatchers = Object.create(null);\n  // computed properties are just getters during SSR\n  var isSSR = isServerRendering();\n\n  for (var key in computed) {\n    var userDef = computed[key];\n    var getter = typeof userDef === 'function' ? userDef : userDef.get;\n    if ( true && getter == null) {\n      warn(\n        (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n        vm\n      );\n    }\n\n    if (!isSSR) {\n      // create internal watcher for the computed property.\n      watchers[key] = new Watcher(\n        vm,\n        getter || noop,\n        noop,\n        computedWatcherOptions\n      );\n    }\n\n    // component-defined computed properties are already defined on the\n    // component prototype. We only need to define computed properties defined\n    // at instantiation here.\n    if (!(key in vm)) {\n      defineComputed(vm, key, userDef);\n    } else if (true) {\n      if (key in vm.$data) {\n        warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n      } else if (vm.$options.props && key in vm.$options.props) {\n        warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n      }\n    }\n  }\n}\n\nfunction defineComputed (\n  target,\n  key,\n  userDef\n) {\n  var shouldCache = !isServerRendering();\n  if (typeof userDef === 'function') {\n    sharedPropertyDefinition.get = shouldCache\n      ? createComputedGetter(key)\n      : createGetterInvoker(userDef);\n    sharedPropertyDefinition.set = noop;\n  } else {\n    sharedPropertyDefinition.get = userDef.get\n      ? shouldCache && userDef.cache !== false\n        ? createComputedGetter(key)\n        : createGetterInvoker(userDef.get)\n      : noop;\n    sharedPropertyDefinition.set = userDef.set || noop;\n  }\n  if ( true &&\n      sharedPropertyDefinition.set === noop) {\n    sharedPropertyDefinition.set = function () {\n      warn(\n        (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n        this\n      );\n    };\n  }\n  Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n  return function computedGetter () {\n    var watcher = this._computedWatchers && this._computedWatchers[key];\n    if (watcher) {\n      if (watcher.dirty) {\n        watcher.evaluate();\n      }\n      if (Dep.target) {\n        watcher.depend();\n      }\n      return watcher.value\n    }\n  }\n}\n\nfunction createGetterInvoker(fn) {\n  return function computedGetter () {\n    return fn.call(this, this)\n  }\n}\n\nfunction initMethods (vm, methods) {\n  var props = vm.$options.props;\n  for (var key in methods) {\n    if (true) {\n      if (typeof methods[key] !== 'function') {\n        warn(\n          \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n          \"Did you reference the function correctly?\",\n          vm\n        );\n      }\n      if (props && hasOwn(props, key)) {\n        warn(\n          (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n          vm\n        );\n      }\n      if ((key in vm) && isReserved(key)) {\n        warn(\n          \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n          \"Avoid defining component methods that start with _ or $.\"\n        );\n      }\n    }\n    vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n  }\n}\n\nfunction initWatch (vm, watch) {\n  for (var key in watch) {\n    var handler = watch[key];\n    if (Array.isArray(handler)) {\n      for (var i = 0; i < handler.length; i++) {\n        createWatcher(vm, key, handler[i]);\n      }\n    } else {\n      createWatcher(vm, key, handler);\n    }\n  }\n}\n\nfunction createWatcher (\n  vm,\n  expOrFn,\n  handler,\n  options\n) {\n  if (isPlainObject(handler)) {\n    options = handler;\n    handler = handler.handler;\n  }\n  if (typeof handler === 'string') {\n    handler = vm[handler];\n  }\n  return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n  // flow somehow has problems with directly declared definition object\n  // when using Object.defineProperty, so we have to procedurally build up\n  // the object here.\n  var dataDef = {};\n  dataDef.get = function () { return this._data };\n  var propsDef = {};\n  propsDef.get = function () { return this._props };\n  if (true) {\n    dataDef.set = function () {\n      warn(\n        'Avoid replacing instance root $data. ' +\n        'Use nested data properties instead.',\n        this\n      );\n    };\n    propsDef.set = function () {\n      warn(\"$props is readonly.\", this);\n    };\n  }\n  Object.defineProperty(Vue.prototype, '$data', dataDef);\n  Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n  Vue.prototype.$set = set;\n  Vue.prototype.$delete = del;\n\n  Vue.prototype.$watch = function (\n    expOrFn,\n    cb,\n    options\n  ) {\n    var vm = this;\n    if (isPlainObject(cb)) {\n      return createWatcher(vm, expOrFn, cb, options)\n    }\n    options = options || {};\n    options.user = true;\n    var watcher = new Watcher(vm, expOrFn, cb, options);\n    if (options.immediate) {\n      try {\n        cb.call(vm, watcher.value);\n      } catch (error) {\n        handleError(error, vm, (\"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\"));\n      }\n    }\n    return function unwatchFn () {\n      watcher.teardown();\n    }\n  };\n}\n\n/*  */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n  Vue.prototype._init = function (options) {\n    var vm = this;\n    // a uid\n    vm._uid = uid$3++;\n\n    var startTag, endTag;\n    /* istanbul ignore if */\n    if ( true && config.performance && mark) {\n      startTag = \"vue-perf-start:\" + (vm._uid);\n      endTag = \"vue-perf-end:\" + (vm._uid);\n      mark(startTag);\n    }\n\n    // a flag to avoid this being observed\n    vm._isVue = true;\n    // merge options\n    if (options && options._isComponent) {\n      // optimize internal component instantiation\n      // since dynamic options merging is pretty slow, and none of the\n      // internal component options needs special treatment.\n      initInternalComponent(vm, options);\n    } else {\n      vm.$options = mergeOptions(\n        resolveConstructorOptions(vm.constructor),\n        options || {},\n        vm\n      );\n    }\n    /* istanbul ignore else */\n    if (true) {\n      initProxy(vm);\n    } else {}\n    // expose real self\n    vm._self = vm;\n    initLifecycle(vm);\n    initEvents(vm);\n    initRender(vm);\n    callHook(vm, 'beforeCreate');\n    initInjections(vm); // resolve injections before data/props\n    initState(vm);\n    initProvide(vm); // resolve provide after data/props\n    callHook(vm, 'created');\n\n    /* istanbul ignore if */\n    if ( true && config.performance && mark) {\n      vm._name = formatComponentName(vm, false);\n      mark(endTag);\n      measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n    }\n\n    if (vm.$options.el) {\n      vm.$mount(vm.$options.el);\n    }\n  };\n}\n\nfunction initInternalComponent (vm, options) {\n  var opts = vm.$options = Object.create(vm.constructor.options);\n  // doing this because it's faster than dynamic enumeration.\n  var parentVnode = options._parentVnode;\n  opts.parent = options.parent;\n  opts._parentVnode = parentVnode;\n\n  var vnodeComponentOptions = parentVnode.componentOptions;\n  opts.propsData = vnodeComponentOptions.propsData;\n  opts._parentListeners = vnodeComponentOptions.listeners;\n  opts._renderChildren = vnodeComponentOptions.children;\n  opts._componentTag = vnodeComponentOptions.tag;\n\n  if (options.render) {\n    opts.render = options.render;\n    opts.staticRenderFns = options.staticRenderFns;\n  }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n  var options = Ctor.options;\n  if (Ctor.super) {\n    var superOptions = resolveConstructorOptions(Ctor.super);\n    var cachedSuperOptions = Ctor.superOptions;\n    if (superOptions !== cachedSuperOptions) {\n      // super option changed,\n      // need to resolve new options.\n      Ctor.superOptions = superOptions;\n      // check if there are any late-modified/attached options (#4976)\n      var modifiedOptions = resolveModifiedOptions(Ctor);\n      // update base extend options\n      if (modifiedOptions) {\n        extend(Ctor.extendOptions, modifiedOptions);\n      }\n      options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n      if (options.name) {\n        options.components[options.name] = Ctor;\n      }\n    }\n  }\n  return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n  var modified;\n  var latest = Ctor.options;\n  var sealed = Ctor.sealedOptions;\n  for (var key in latest) {\n    if (latest[key] !== sealed[key]) {\n      if (!modified) { modified = {}; }\n      modified[key] = latest[key];\n    }\n  }\n  return modified\n}\n\nfunction Vue (options) {\n  if ( true &&\n    !(this instanceof Vue)\n  ) {\n    warn('Vue is a constructor and should be called with the `new` keyword');\n  }\n  this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/*  */\n\nfunction initUse (Vue) {\n  Vue.use = function (plugin) {\n    var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n    if (installedPlugins.indexOf(plugin) > -1) {\n      return this\n    }\n\n    // additional parameters\n    var args = toArray(arguments, 1);\n    args.unshift(this);\n    if (typeof plugin.install === 'function') {\n      plugin.install.apply(plugin, args);\n    } else if (typeof plugin === 'function') {\n      plugin.apply(null, args);\n    }\n    installedPlugins.push(plugin);\n    return this\n  };\n}\n\n/*  */\n\nfunction initMixin$1 (Vue) {\n  Vue.mixin = function (mixin) {\n    this.options = mergeOptions(this.options, mixin);\n    return this\n  };\n}\n\n/*  */\n\nfunction initExtend (Vue) {\n  /**\n   * Each instance constructor, including Vue, has a unique\n   * cid. This enables us to create wrapped \"child\n   * constructors\" for prototypal inheritance and cache them.\n   */\n  Vue.cid = 0;\n  var cid = 1;\n\n  /**\n   * Class inheritance\n   */\n  Vue.extend = function (extendOptions) {\n    extendOptions = extendOptions || {};\n    var Super = this;\n    var SuperId = Super.cid;\n    var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n    if (cachedCtors[SuperId]) {\n      return cachedCtors[SuperId]\n    }\n\n    var name = extendOptions.name || Super.options.name;\n    if ( true && name) {\n      validateComponentName(name);\n    }\n\n    var Sub = function VueComponent (options) {\n      this._init(options);\n    };\n    Sub.prototype = Object.create(Super.prototype);\n    Sub.prototype.constructor = Sub;\n    Sub.cid = cid++;\n    Sub.options = mergeOptions(\n      Super.options,\n      extendOptions\n    );\n    Sub['super'] = Super;\n\n    // For props and computed properties, we define the proxy getters on\n    // the Vue instances at extension time, on the extended prototype. This\n    // avoids Object.defineProperty calls for each instance created.\n    if (Sub.options.props) {\n      initProps$1(Sub);\n    }\n    if (Sub.options.computed) {\n      initComputed$1(Sub);\n    }\n\n    // allow further extension/mixin/plugin usage\n    Sub.extend = Super.extend;\n    Sub.mixin = Super.mixin;\n    Sub.use = Super.use;\n\n    // create asset registers, so extended classes\n    // can have their private assets too.\n    ASSET_TYPES.forEach(function (type) {\n      Sub[type] = Super[type];\n    });\n    // enable recursive self-lookup\n    if (name) {\n      Sub.options.components[name] = Sub;\n    }\n\n    // keep a reference to the super options at extension time.\n    // later at instantiation we can check if Super's options have\n    // been updated.\n    Sub.superOptions = Super.options;\n    Sub.extendOptions = extendOptions;\n    Sub.sealedOptions = extend({}, Sub.options);\n\n    // cache constructor\n    cachedCtors[SuperId] = Sub;\n    return Sub\n  };\n}\n\nfunction initProps$1 (Comp) {\n  var props = Comp.options.props;\n  for (var key in props) {\n    proxy(Comp.prototype, \"_props\", key);\n  }\n}\n\nfunction initComputed$1 (Comp) {\n  var computed = Comp.options.computed;\n  for (var key in computed) {\n    defineComputed(Comp.prototype, key, computed[key]);\n  }\n}\n\n/*  */\n\nfunction initAssetRegisters (Vue) {\n  /**\n   * Create asset registration methods.\n   */\n  ASSET_TYPES.forEach(function (type) {\n    Vue[type] = function (\n      id,\n      definition\n    ) {\n      if (!definition) {\n        return this.options[type + 's'][id]\n      } else {\n        /* istanbul ignore if */\n        if ( true && type === 'component') {\n          validateComponentName(id);\n        }\n        if (type === 'component' && isPlainObject(definition)) {\n          definition.name = definition.name || id;\n          definition = this.options._base.extend(definition);\n        }\n        if (type === 'directive' && typeof definition === 'function') {\n          definition = { bind: definition, update: definition };\n        }\n        this.options[type + 's'][id] = definition;\n        return definition\n      }\n    };\n  });\n}\n\n/*  */\n\n\n\nfunction getComponentName (opts) {\n  return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n  if (Array.isArray(pattern)) {\n    return pattern.indexOf(name) > -1\n  } else if (typeof pattern === 'string') {\n    return pattern.split(',').indexOf(name) > -1\n  } else if (isRegExp(pattern)) {\n    return pattern.test(name)\n  }\n  /* istanbul ignore next */\n  return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n  var cache = keepAliveInstance.cache;\n  var keys = keepAliveInstance.keys;\n  var _vnode = keepAliveInstance._vnode;\n  for (var key in cache) {\n    var cachedNode = cache[key];\n    if (cachedNode) {\n      var name = getComponentName(cachedNode.componentOptions);\n      if (name && !filter(name)) {\n        pruneCacheEntry(cache, key, keys, _vnode);\n      }\n    }\n  }\n}\n\nfunction pruneCacheEntry (\n  cache,\n  key,\n  keys,\n  current\n) {\n  var cached$$1 = cache[key];\n  if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n    cached$$1.componentInstance.$destroy();\n  }\n  cache[key] = null;\n  remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n  name: 'keep-alive',\n  abstract: true,\n\n  props: {\n    include: patternTypes,\n    exclude: patternTypes,\n    max: [String, Number]\n  },\n\n  created: function created () {\n    this.cache = Object.create(null);\n    this.keys = [];\n  },\n\n  destroyed: function destroyed () {\n    for (var key in this.cache) {\n      pruneCacheEntry(this.cache, key, this.keys);\n    }\n  },\n\n  mounted: function mounted () {\n    var this$1 = this;\n\n    this.$watch('include', function (val) {\n      pruneCache(this$1, function (name) { return matches(val, name); });\n    });\n    this.$watch('exclude', function (val) {\n      pruneCache(this$1, function (name) { return !matches(val, name); });\n    });\n  },\n\n  render: function render () {\n    var slot = this.$slots.default;\n    var vnode = getFirstComponentChild(slot);\n    var componentOptions = vnode && vnode.componentOptions;\n    if (componentOptions) {\n      // check pattern\n      var name = getComponentName(componentOptions);\n      var ref = this;\n      var include = ref.include;\n      var exclude = ref.exclude;\n      if (\n        // not included\n        (include && (!name || !matches(include, name))) ||\n        // excluded\n        (exclude && name && matches(exclude, name))\n      ) {\n        return vnode\n      }\n\n      var ref$1 = this;\n      var cache = ref$1.cache;\n      var keys = ref$1.keys;\n      var key = vnode.key == null\n        // same constructor may get registered as different local components\n        // so cid alone is not enough (#3269)\n        ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n        : vnode.key;\n      if (cache[key]) {\n        vnode.componentInstance = cache[key].componentInstance;\n        // make current key freshest\n        remove(keys, key);\n        keys.push(key);\n      } else {\n        cache[key] = vnode;\n        keys.push(key);\n        // prune oldest entry\n        if (this.max && keys.length > parseInt(this.max)) {\n          pruneCacheEntry(cache, keys[0], keys, this._vnode);\n        }\n      }\n\n      vnode.data.keepAlive = true;\n    }\n    return vnode || (slot && slot[0])\n  }\n};\n\nvar builtInComponents = {\n  KeepAlive: KeepAlive\n};\n\n/*  */\n\nfunction initGlobalAPI (Vue) {\n  // config\n  var configDef = {};\n  configDef.get = function () { return config; };\n  if (true) {\n    configDef.set = function () {\n      warn(\n        'Do not replace the Vue.config object, set individual fields instead.'\n      );\n    };\n  }\n  Object.defineProperty(Vue, 'config', configDef);\n\n  // exposed util methods.\n  // NOTE: these are not considered part of the public API - avoid relying on\n  // them unless you are aware of the risk.\n  Vue.util = {\n    warn: warn,\n    extend: extend,\n    mergeOptions: mergeOptions,\n    defineReactive: defineReactive$$1\n  };\n\n  Vue.set = set;\n  Vue.delete = del;\n  Vue.nextTick = nextTick;\n\n  // 2.6 explicit observable API\n  Vue.observable = function (obj) {\n    observe(obj);\n    return obj\n  };\n\n  Vue.options = Object.create(null);\n  ASSET_TYPES.forEach(function (type) {\n    Vue.options[type + 's'] = Object.create(null);\n  });\n\n  // this is used to identify the \"base\" constructor to extend all plain-object\n  // components with in Weex's multi-instance scenarios.\n  Vue.options._base = Vue;\n\n  extend(Vue.options.components, builtInComponents);\n\n  initUse(Vue);\n  initMixin$1(Vue);\n  initExtend(Vue);\n  initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n  get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n  get: function get () {\n    /* istanbul ignore next */\n    return this.$vnode && this.$vnode.ssrContext\n  }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n  value: FunctionalRenderContext\n});\n\nVue.version = '2.6.10';\n\n/*  */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n  return (\n    (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n    (attr === 'selected' && tag === 'option') ||\n    (attr === 'checked' && tag === 'input') ||\n    (attr === 'muted' && tag === 'video')\n  )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\n\nvar convertEnumeratedValue = function (key, value) {\n  return isFalsyAttrValue(value) || value === 'false'\n    ? 'false'\n    // allow arbitrary string value for contenteditable\n    : key === 'contenteditable' && isValidContentEditableValue(value)\n      ? value\n      : 'true'\n};\n\nvar isBooleanAttr = makeMap(\n  'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n  'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n  'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n  'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n  'required,reversed,scoped,seamless,selected,sortable,translate,' +\n  'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n  return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n  return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n  return val == null || val === false\n};\n\n/*  */\n\nfunction genClassForVnode (vnode) {\n  var data = vnode.data;\n  var parentNode = vnode;\n  var childNode = vnode;\n  while (isDef(childNode.componentInstance)) {\n    childNode = childNode.componentInstance._vnode;\n    if (childNode && childNode.data) {\n      data = mergeClassData(childNode.data, data);\n    }\n  }\n  while (isDef(parentNode = parentNode.parent)) {\n    if (parentNode && parentNode.data) {\n      data = mergeClassData(data, parentNode.data);\n    }\n  }\n  return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n  return {\n    staticClass: concat(child.staticClass, parent.staticClass),\n    class: isDef(child.class)\n      ? [child.class, parent.class]\n      : parent.class\n  }\n}\n\nfunction renderClass (\n  staticClass,\n  dynamicClass\n) {\n  if (isDef(staticClass) || isDef(dynamicClass)) {\n    return concat(staticClass, stringifyClass(dynamicClass))\n  }\n  /* istanbul ignore next */\n  return ''\n}\n\nfunction concat (a, b) {\n  return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n  if (Array.isArray(value)) {\n    return stringifyArray(value)\n  }\n  if (isObject(value)) {\n    return stringifyObject(value)\n  }\n  if (typeof value === 'string') {\n    return value\n  }\n  /* istanbul ignore next */\n  return ''\n}\n\nfunction stringifyArray (value) {\n  var res = '';\n  var stringified;\n  for (var i = 0, l = value.length; i < l; i++) {\n    if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n      if (res) { res += ' '; }\n      res += stringified;\n    }\n  }\n  return res\n}\n\nfunction stringifyObject (value) {\n  var res = '';\n  for (var key in value) {\n    if (value[key]) {\n      if (res) { res += ' '; }\n      res += key;\n    }\n  }\n  return res\n}\n\n/*  */\n\nvar namespaceMap = {\n  svg: 'http://www.w3.org/2000/svg',\n  math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n  'html,body,base,head,link,meta,style,title,' +\n  'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n  'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n  'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n  's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n  'embed,object,param,source,canvas,script,noscript,del,ins,' +\n  'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n  'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n  'output,progress,select,textarea,' +\n  'details,dialog,menu,menuitem,summary,' +\n  'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n  'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n  'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n  'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n  true\n);\n\nvar isReservedTag = function (tag) {\n  return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n  if (isSVG(tag)) {\n    return 'svg'\n  }\n  // basic support for MathML\n  // note it doesn't support other MathML elements being component roots\n  if (tag === 'math') {\n    return 'math'\n  }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n  /* istanbul ignore if */\n  if (!inBrowser) {\n    return true\n  }\n  if (isReservedTag(tag)) {\n    return false\n  }\n  tag = tag.toLowerCase();\n  /* istanbul ignore if */\n  if (unknownElementCache[tag] != null) {\n    return unknownElementCache[tag]\n  }\n  var el = document.createElement(tag);\n  if (tag.indexOf('-') > -1) {\n    // http://stackoverflow.com/a/28210364/1070244\n    return (unknownElementCache[tag] = (\n      el.constructor === window.HTMLUnknownElement ||\n      el.constructor === window.HTMLElement\n    ))\n  } else {\n    return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n  }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/*  */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n  if (typeof el === 'string') {\n    var selected = document.querySelector(el);\n    if (!selected) {\n       true && warn(\n        'Cannot find element: ' + el\n      );\n      return document.createElement('div')\n    }\n    return selected\n  } else {\n    return el\n  }\n}\n\n/*  */\n\nfunction createElement$1 (tagName, vnode) {\n  var elm = document.createElement(tagName);\n  if (tagName !== 'select') {\n    return elm\n  }\n  // false or null will remove the attribute but undefined will not\n  if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n    elm.setAttribute('multiple', 'multiple');\n  }\n  return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n  return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n  return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n  return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n  parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n  node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n  node.appendChild(child);\n}\n\nfunction parentNode (node) {\n  return node.parentNode\n}\n\nfunction nextSibling (node) {\n  return node.nextSibling\n}\n\nfunction tagName (node) {\n  return node.tagName\n}\n\nfunction setTextContent (node, text) {\n  node.textContent = text;\n}\n\nfunction setStyleScope (node, scopeId) {\n  node.setAttribute(scopeId, '');\n}\n\nvar nodeOps = /*#__PURE__*/Object.freeze({\n  createElement: createElement$1,\n  createElementNS: createElementNS,\n  createTextNode: createTextNode,\n  createComment: createComment,\n  insertBefore: insertBefore,\n  removeChild: removeChild,\n  appendChild: appendChild,\n  parentNode: parentNode,\n  nextSibling: nextSibling,\n  tagName: tagName,\n  setTextContent: setTextContent,\n  setStyleScope: setStyleScope\n});\n\n/*  */\n\nvar ref = {\n  create: function create (_, vnode) {\n    registerRef(vnode);\n  },\n  update: function update (oldVnode, vnode) {\n    if (oldVnode.data.ref !== vnode.data.ref) {\n      registerRef(oldVnode, true);\n      registerRef(vnode);\n    }\n  },\n  destroy: function destroy (vnode) {\n    registerRef(vnode, true);\n  }\n};\n\nfunction registerRef (vnode, isRemoval) {\n  var key = vnode.data.ref;\n  if (!isDef(key)) { return }\n\n  var vm = vnode.context;\n  var ref = vnode.componentInstance || vnode.elm;\n  var refs = vm.$refs;\n  if (isRemoval) {\n    if (Array.isArray(refs[key])) {\n      remove(refs[key], ref);\n    } else if (refs[key] === ref) {\n      refs[key] = undefined;\n    }\n  } else {\n    if (vnode.data.refInFor) {\n      if (!Array.isArray(refs[key])) {\n        refs[key] = [ref];\n      } else if (refs[key].indexOf(ref) < 0) {\n        // $flow-disable-line\n        refs[key].push(ref);\n      }\n    } else {\n      refs[key] = ref;\n    }\n  }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n  return (\n    a.key === b.key && (\n      (\n        a.tag === b.tag &&\n        a.isComment === b.isComment &&\n        isDef(a.data) === isDef(b.data) &&\n        sameInputType(a, b)\n      ) || (\n        isTrue(a.isAsyncPlaceholder) &&\n        a.asyncFactory === b.asyncFactory &&\n        isUndef(b.asyncFactory.error)\n      )\n    )\n  )\n}\n\nfunction sameInputType (a, b) {\n  if (a.tag !== 'input') { return true }\n  var i;\n  var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n  var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n  return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n  var i, key;\n  var map = {};\n  for (i = beginIdx; i <= endIdx; ++i) {\n    key = children[i].key;\n    if (isDef(key)) { map[key] = i; }\n  }\n  return map\n}\n\nfunction createPatchFunction (backend) {\n  var i, j;\n  var cbs = {};\n\n  var modules = backend.modules;\n  var nodeOps = backend.nodeOps;\n\n  for (i = 0; i < hooks.length; ++i) {\n    cbs[hooks[i]] = [];\n    for (j = 0; j < modules.length; ++j) {\n      if (isDef(modules[j][hooks[i]])) {\n        cbs[hooks[i]].push(modules[j][hooks[i]]);\n      }\n    }\n  }\n\n  function emptyNodeAt (elm) {\n    return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n  }\n\n  function createRmCb (childElm, listeners) {\n    function remove$$1 () {\n      if (--remove$$1.listeners === 0) {\n        removeNode(childElm);\n      }\n    }\n    remove$$1.listeners = listeners;\n    return remove$$1\n  }\n\n  function removeNode (el) {\n    var parent = nodeOps.parentNode(el);\n    // element may have already been removed due to v-html / v-text\n    if (isDef(parent)) {\n      nodeOps.removeChild(parent, el);\n    }\n  }\n\n  function isUnknownElement$$1 (vnode, inVPre) {\n    return (\n      !inVPre &&\n      !vnode.ns &&\n      !(\n        config.ignoredElements.length &&\n        config.ignoredElements.some(function (ignore) {\n          return isRegExp(ignore)\n            ? ignore.test(vnode.tag)\n            : ignore === vnode.tag\n        })\n      ) &&\n      config.isUnknownElement(vnode.tag)\n    )\n  }\n\n  var creatingElmInVPre = 0;\n\n  function createElm (\n    vnode,\n    insertedVnodeQueue,\n    parentElm,\n    refElm,\n    nested,\n    ownerArray,\n    index\n  ) {\n    if (isDef(vnode.elm) && isDef(ownerArray)) {\n      // This vnode was used in a previous render!\n      // now it's used as a new node, overwriting its elm would cause\n      // potential patch errors down the road when it's used as an insertion\n      // reference node. Instead, we clone the node on-demand before creating\n      // associated DOM element for it.\n      vnode = ownerArray[index] = cloneVNode(vnode);\n    }\n\n    vnode.isRootInsert = !nested; // for transition enter check\n    if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n      return\n    }\n\n    var data = vnode.data;\n    var children = vnode.children;\n    var tag = vnode.tag;\n    if (isDef(tag)) {\n      if (true) {\n        if (data && data.pre) {\n          creatingElmInVPre++;\n        }\n        if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n          warn(\n            'Unknown custom element: <' + tag + '> - did you ' +\n            'register the component correctly? For recursive components, ' +\n            'make sure to provide the \"name\" option.',\n            vnode.context\n          );\n        }\n      }\n\n      vnode.elm = vnode.ns\n        ? nodeOps.createElementNS(vnode.ns, tag)\n        : nodeOps.createElement(tag, vnode);\n      setScope(vnode);\n\n      /* istanbul ignore if */\n      {\n        createChildren(vnode, children, insertedVnodeQueue);\n        if (isDef(data)) {\n          invokeCreateHooks(vnode, insertedVnodeQueue);\n        }\n        insert(parentElm, vnode.elm, refElm);\n      }\n\n      if ( true && data && data.pre) {\n        creatingElmInVPre--;\n      }\n    } else if (isTrue(vnode.isComment)) {\n      vnode.elm = nodeOps.createComment(vnode.text);\n      insert(parentElm, vnode.elm, refElm);\n    } else {\n      vnode.elm = nodeOps.createTextNode(vnode.text);\n      insert(parentElm, vnode.elm, refElm);\n    }\n  }\n\n  function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n    var i = vnode.data;\n    if (isDef(i)) {\n      var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n      if (isDef(i = i.hook) && isDef(i = i.init)) {\n        i(vnode, false /* hydrating */);\n      }\n      // after calling the init hook, if the vnode is a child component\n      // it should've created a child instance and mounted it. the child\n      // component also has set the placeholder vnode's elm.\n      // in that case we can just return the element and be done.\n      if (isDef(vnode.componentInstance)) {\n        initComponent(vnode, insertedVnodeQueue);\n        insert(parentElm, vnode.elm, refElm);\n        if (isTrue(isReactivated)) {\n          reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n        }\n        return true\n      }\n    }\n  }\n\n  function initComponent (vnode, insertedVnodeQueue) {\n    if (isDef(vnode.data.pendingInsert)) {\n      insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n      vnode.data.pendingInsert = null;\n    }\n    vnode.elm = vnode.componentInstance.$el;\n    if (isPatchable(vnode)) {\n      invokeCreateHooks(vnode, insertedVnodeQueue);\n      setScope(vnode);\n    } else {\n      // empty component root.\n      // skip all element-related modules except for ref (#3455)\n      registerRef(vnode);\n      // make sure to invoke the insert hook\n      insertedVnodeQueue.push(vnode);\n    }\n  }\n\n  function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n    var i;\n    // hack for #4339: a reactivated component with inner transition\n    // does not trigger because the inner node's created hooks are not called\n    // again. It's not ideal to involve module-specific logic in here but\n    // there doesn't seem to be a better way to do it.\n    var innerNode = vnode;\n    while (innerNode.componentInstance) {\n      innerNode = innerNode.componentInstance._vnode;\n      if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n        for (i = 0; i < cbs.activate.length; ++i) {\n          cbs.activate[i](emptyNode, innerNode);\n        }\n        insertedVnodeQueue.push(innerNode);\n        break\n      }\n    }\n    // unlike a newly created component,\n    // a reactivated keep-alive component doesn't insert itself\n    insert(parentElm, vnode.elm, refElm);\n  }\n\n  function insert (parent, elm, ref$$1) {\n    if (isDef(parent)) {\n      if (isDef(ref$$1)) {\n        if (nodeOps.parentNode(ref$$1) === parent) {\n          nodeOps.insertBefore(parent, elm, ref$$1);\n        }\n      } else {\n        nodeOps.appendChild(parent, elm);\n      }\n    }\n  }\n\n  function createChildren (vnode, children, insertedVnodeQueue) {\n    if (Array.isArray(children)) {\n      if (true) {\n        checkDuplicateKeys(children);\n      }\n      for (var i = 0; i < children.length; ++i) {\n        createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n      }\n    } else if (isPrimitive(vnode.text)) {\n      nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n    }\n  }\n\n  function isPatchable (vnode) {\n    while (vnode.componentInstance) {\n      vnode = vnode.componentInstance._vnode;\n    }\n    return isDef(vnode.tag)\n  }\n\n  function invokeCreateHooks (vnode, insertedVnodeQueue) {\n    for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n      cbs.create[i$1](emptyNode, vnode);\n    }\n    i = vnode.data.hook; // Reuse variable\n    if (isDef(i)) {\n      if (isDef(i.create)) { i.create(emptyNode, vnode); }\n      if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n    }\n  }\n\n  // set scope id attribute for scoped CSS.\n  // this is implemented as a special case to avoid the overhead\n  // of going through the normal attribute patching process.\n  function setScope (vnode) {\n    var i;\n    if (isDef(i = vnode.fnScopeId)) {\n      nodeOps.setStyleScope(vnode.elm, i);\n    } else {\n      var ancestor = vnode;\n      while (ancestor) {\n        if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n          nodeOps.setStyleScope(vnode.elm, i);\n        }\n        ancestor = ancestor.parent;\n      }\n    }\n    // for slot content they should also get the scopeId from the host instance.\n    if (isDef(i = activeInstance) &&\n      i !== vnode.context &&\n      i !== vnode.fnContext &&\n      isDef(i = i.$options._scopeId)\n    ) {\n      nodeOps.setStyleScope(vnode.elm, i);\n    }\n  }\n\n  function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n    for (; startIdx <= endIdx; ++startIdx) {\n      createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n    }\n  }\n\n  function invokeDestroyHook (vnode) {\n    var i, j;\n    var data = vnode.data;\n    if (isDef(data)) {\n      if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n      for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n    }\n    if (isDef(i = vnode.children)) {\n      for (j = 0; j < vnode.children.length; ++j) {\n        invokeDestroyHook(vnode.children[j]);\n      }\n    }\n  }\n\n  function removeVnodes (parentElm, vnodes, startIdx, endIdx) {\n    for (; startIdx <= endIdx; ++startIdx) {\n      var ch = vnodes[startIdx];\n      if (isDef(ch)) {\n        if (isDef(ch.tag)) {\n          removeAndInvokeRemoveHook(ch);\n          invokeDestroyHook(ch);\n        } else { // Text node\n          removeNode(ch.elm);\n        }\n      }\n    }\n  }\n\n  function removeAndInvokeRemoveHook (vnode, rm) {\n    if (isDef(rm) || isDef(vnode.data)) {\n      var i;\n      var listeners = cbs.remove.length + 1;\n      if (isDef(rm)) {\n        // we have a recursively passed down rm callback\n        // increase the listeners count\n        rm.listeners += listeners;\n      } else {\n        // directly removing\n        rm = createRmCb(vnode.elm, listeners);\n      }\n      // recursively invoke hooks on child component root node\n      if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n        removeAndInvokeRemoveHook(i, rm);\n      }\n      for (i = 0; i < cbs.remove.length; ++i) {\n        cbs.remove[i](vnode, rm);\n      }\n      if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n        i(vnode, rm);\n      } else {\n        rm();\n      }\n    } else {\n      removeNode(vnode.elm);\n    }\n  }\n\n  function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n    var oldStartIdx = 0;\n    var newStartIdx = 0;\n    var oldEndIdx = oldCh.length - 1;\n    var oldStartVnode = oldCh[0];\n    var oldEndVnode = oldCh[oldEndIdx];\n    var newEndIdx = newCh.length - 1;\n    var newStartVnode = newCh[0];\n    var newEndVnode = newCh[newEndIdx];\n    var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n    // removeOnly is a special flag used only by <transition-group>\n    // to ensure removed elements stay in correct relative positions\n    // during leaving transitions\n    var canMove = !removeOnly;\n\n    if (true) {\n      checkDuplicateKeys(newCh);\n    }\n\n    while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n      if (isUndef(oldStartVnode)) {\n        oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n      } else if (isUndef(oldEndVnode)) {\n        oldEndVnode = oldCh[--oldEndIdx];\n      } else if (sameVnode(oldStartVnode, newStartVnode)) {\n        patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n        oldStartVnode = oldCh[++oldStartIdx];\n        newStartVnode = newCh[++newStartIdx];\n      } else if (sameVnode(oldEndVnode, newEndVnode)) {\n        patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n        oldEndVnode = oldCh[--oldEndIdx];\n        newEndVnode = newCh[--newEndIdx];\n      } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n        patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n        canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n        oldStartVnode = oldCh[++oldStartIdx];\n        newEndVnode = newCh[--newEndIdx];\n      } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n        patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n        canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n        oldEndVnode = oldCh[--oldEndIdx];\n        newStartVnode = newCh[++newStartIdx];\n      } else {\n        if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n        idxInOld = isDef(newStartVnode.key)\n          ? oldKeyToIdx[newStartVnode.key]\n          : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n        if (isUndef(idxInOld)) { // New element\n          createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n        } else {\n          vnodeToMove = oldCh[idxInOld];\n          if (sameVnode(vnodeToMove, newStartVnode)) {\n            patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n            oldCh[idxInOld] = undefined;\n            canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n          } else {\n            // same key but different element. treat as new element\n            createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n          }\n        }\n        newStartVnode = newCh[++newStartIdx];\n      }\n    }\n    if (oldStartIdx > oldEndIdx) {\n      refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n      addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n    } else if (newStartIdx > newEndIdx) {\n      removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n    }\n  }\n\n  function checkDuplicateKeys (children) {\n    var seenKeys = {};\n    for (var i = 0; i < children.length; i++) {\n      var vnode = children[i];\n      var key = vnode.key;\n      if (isDef(key)) {\n        if (seenKeys[key]) {\n          warn(\n            (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n            vnode.context\n          );\n        } else {\n          seenKeys[key] = true;\n        }\n      }\n    }\n  }\n\n  function findIdxInOld (node, oldCh, start, end) {\n    for (var i = start; i < end; i++) {\n      var c = oldCh[i];\n      if (isDef(c) && sameVnode(node, c)) { return i }\n    }\n  }\n\n  function patchVnode (\n    oldVnode,\n    vnode,\n    insertedVnodeQueue,\n    ownerArray,\n    index,\n    removeOnly\n  ) {\n    if (oldVnode === vnode) {\n      return\n    }\n\n    if (isDef(vnode.elm) && isDef(ownerArray)) {\n      // clone reused vnode\n      vnode = ownerArray[index] = cloneVNode(vnode);\n    }\n\n    var elm = vnode.elm = oldVnode.elm;\n\n    if (isTrue(oldVnode.isAsyncPlaceholder)) {\n      if (isDef(vnode.asyncFactory.resolved)) {\n        hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n      } else {\n        vnode.isAsyncPlaceholder = true;\n      }\n      return\n    }\n\n    // reuse element for static trees.\n    // note we only do this if the vnode is cloned -\n    // if the new node is not cloned it means the render functions have been\n    // reset by the hot-reload-api and we need to do a proper re-render.\n    if (isTrue(vnode.isStatic) &&\n      isTrue(oldVnode.isStatic) &&\n      vnode.key === oldVnode.key &&\n      (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n    ) {\n      vnode.componentInstance = oldVnode.componentInstance;\n      return\n    }\n\n    var i;\n    var data = vnode.data;\n    if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n      i(oldVnode, vnode);\n    }\n\n    var oldCh = oldVnode.children;\n    var ch = vnode.children;\n    if (isDef(data) && isPatchable(vnode)) {\n      for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n      if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n    }\n    if (isUndef(vnode.text)) {\n      if (isDef(oldCh) && isDef(ch)) {\n        if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n      } else if (isDef(ch)) {\n        if (true) {\n          checkDuplicateKeys(ch);\n        }\n        if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n        addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n      } else if (isDef(oldCh)) {\n        removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n      } else if (isDef(oldVnode.text)) {\n        nodeOps.setTextContent(elm, '');\n      }\n    } else if (oldVnode.text !== vnode.text) {\n      nodeOps.setTextContent(elm, vnode.text);\n    }\n    if (isDef(data)) {\n      if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n    }\n  }\n\n  function invokeInsertHook (vnode, queue, initial) {\n    // delay insert hooks for component root nodes, invoke them after the\n    // element is really inserted\n    if (isTrue(initial) && isDef(vnode.parent)) {\n      vnode.parent.data.pendingInsert = queue;\n    } else {\n      for (var i = 0; i < queue.length; ++i) {\n        queue[i].data.hook.insert(queue[i]);\n      }\n    }\n  }\n\n  var hydrationBailed = false;\n  // list of modules that can skip create hook during hydration because they\n  // are already rendered on the client or has no need for initialization\n  // Note: style is excluded because it relies on initial clone for future\n  // deep updates (#7063).\n  var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n  // Note: this is a browser-only function so we can assume elms are DOM nodes.\n  function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n    var i;\n    var tag = vnode.tag;\n    var data = vnode.data;\n    var children = vnode.children;\n    inVPre = inVPre || (data && data.pre);\n    vnode.elm = elm;\n\n    if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n      vnode.isAsyncPlaceholder = true;\n      return true\n    }\n    // assert node match\n    if (true) {\n      if (!assertNodeMatch(elm, vnode, inVPre)) {\n        return false\n      }\n    }\n    if (isDef(data)) {\n      if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n      if (isDef(i = vnode.componentInstance)) {\n        // child component. it should have hydrated its own tree.\n        initComponent(vnode, insertedVnodeQueue);\n        return true\n      }\n    }\n    if (isDef(tag)) {\n      if (isDef(children)) {\n        // empty element, allow client to pick up and populate children\n        if (!elm.hasChildNodes()) {\n          createChildren(vnode, children, insertedVnodeQueue);\n        } else {\n          // v-html and domProps: innerHTML\n          if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n            if (i !== elm.innerHTML) {\n              /* istanbul ignore if */\n              if ( true &&\n                typeof console !== 'undefined' &&\n                !hydrationBailed\n              ) {\n                hydrationBailed = true;\n                console.warn('Parent: ', elm);\n                console.warn('server innerHTML: ', i);\n                console.warn('client innerHTML: ', elm.innerHTML);\n              }\n              return false\n            }\n          } else {\n            // iterate and compare children lists\n            var childrenMatch = true;\n            var childNode = elm.firstChild;\n            for (var i$1 = 0; i$1 < children.length; i$1++) {\n              if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n                childrenMatch = false;\n                break\n              }\n              childNode = childNode.nextSibling;\n            }\n            // if childNode is not null, it means the actual childNodes list is\n            // longer than the virtual children list.\n            if (!childrenMatch || childNode) {\n              /* istanbul ignore if */\n              if ( true &&\n                typeof console !== 'undefined' &&\n                !hydrationBailed\n              ) {\n                hydrationBailed = true;\n                console.warn('Parent: ', elm);\n                console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n              }\n              return false\n            }\n          }\n        }\n      }\n      if (isDef(data)) {\n        var fullInvoke = false;\n        for (var key in data) {\n          if (!isRenderedModule(key)) {\n            fullInvoke = true;\n            invokeCreateHooks(vnode, insertedVnodeQueue);\n            break\n          }\n        }\n        if (!fullInvoke && data['class']) {\n          // ensure collecting deps for deep class bindings for future updates\n          traverse(data['class']);\n        }\n      }\n    } else if (elm.data !== vnode.text) {\n      elm.data = vnode.text;\n    }\n    return true\n  }\n\n  function assertNodeMatch (node, vnode, inVPre) {\n    if (isDef(vnode.tag)) {\n      return vnode.tag.indexOf('vue-component') === 0 || (\n        !isUnknownElement$$1(vnode, inVPre) &&\n        vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n      )\n    } else {\n      return node.nodeType === (vnode.isComment ? 8 : 3)\n    }\n  }\n\n  return function patch (oldVnode, vnode, hydrating, removeOnly) {\n    if (isUndef(vnode)) {\n      if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n      return\n    }\n\n    var isInitialPatch = false;\n    var insertedVnodeQueue = [];\n\n    if (isUndef(oldVnode)) {\n      // empty mount (likely as component), create new root element\n      isInitialPatch = true;\n      createElm(vnode, insertedVnodeQueue);\n    } else {\n      var isRealElement = isDef(oldVnode.nodeType);\n      if (!isRealElement && sameVnode(oldVnode, vnode)) {\n        // patch existing root node\n        patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\n      } else {\n        if (isRealElement) {\n          // mounting to a real element\n          // check if this is server-rendered content and if we can perform\n          // a successful hydration.\n          if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n            oldVnode.removeAttribute(SSR_ATTR);\n            hydrating = true;\n          }\n          if (isTrue(hydrating)) {\n            if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n              invokeInsertHook(vnode, insertedVnodeQueue, true);\n              return oldVnode\n            } else if (true) {\n              warn(\n                'The client-side rendered virtual DOM tree is not matching ' +\n                'server-rendered content. This is likely caused by incorrect ' +\n                'HTML markup, for example nesting block-level elements inside ' +\n                '<p>, or missing <tbody>. Bailing hydration and performing ' +\n                'full client-side render.'\n              );\n            }\n          }\n          // either not server-rendered, or hydration failed.\n          // create an empty node and replace it\n          oldVnode = emptyNodeAt(oldVnode);\n        }\n\n        // replacing existing element\n        var oldElm = oldVnode.elm;\n        var parentElm = nodeOps.parentNode(oldElm);\n\n        // create new node\n        createElm(\n          vnode,\n          insertedVnodeQueue,\n          // extremely rare edge case: do not insert if old element is in a\n          // leaving transition. Only happens when combining transition +\n          // keep-alive + HOCs. (#4590)\n          oldElm._leaveCb ? null : parentElm,\n          nodeOps.nextSibling(oldElm)\n        );\n\n        // update parent placeholder node element, recursively\n        if (isDef(vnode.parent)) {\n          var ancestor = vnode.parent;\n          var patchable = isPatchable(vnode);\n          while (ancestor) {\n            for (var i = 0; i < cbs.destroy.length; ++i) {\n              cbs.destroy[i](ancestor);\n            }\n            ancestor.elm = vnode.elm;\n            if (patchable) {\n              for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n                cbs.create[i$1](emptyNode, ancestor);\n              }\n              // #6513\n              // invoke insert hooks that may have been merged by create hooks.\n              // e.g. for directives that uses the \"inserted\" hook.\n              var insert = ancestor.data.hook.insert;\n              if (insert.merged) {\n                // start at index 1 to avoid re-invoking component mounted hook\n                for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n                  insert.fns[i$2]();\n                }\n              }\n            } else {\n              registerRef(ancestor);\n            }\n            ancestor = ancestor.parent;\n          }\n        }\n\n        // destroy old node\n        if (isDef(parentElm)) {\n          removeVnodes(parentElm, [oldVnode], 0, 0);\n        } else if (isDef(oldVnode.tag)) {\n          invokeDestroyHook(oldVnode);\n        }\n      }\n    }\n\n    invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n    return vnode.elm\n  }\n}\n\n/*  */\n\nvar directives = {\n  create: updateDirectives,\n  update: updateDirectives,\n  destroy: function unbindDirectives (vnode) {\n    updateDirectives(vnode, emptyNode);\n  }\n};\n\nfunction updateDirectives (oldVnode, vnode) {\n  if (oldVnode.data.directives || vnode.data.directives) {\n    _update(oldVnode, vnode);\n  }\n}\n\nfunction _update (oldVnode, vnode) {\n  var isCreate = oldVnode === emptyNode;\n  var isDestroy = vnode === emptyNode;\n  var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n  var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n  var dirsWithInsert = [];\n  var dirsWithPostpatch = [];\n\n  var key, oldDir, dir;\n  for (key in newDirs) {\n    oldDir = oldDirs[key];\n    dir = newDirs[key];\n    if (!oldDir) {\n      // new directive, bind\n      callHook$1(dir, 'bind', vnode, oldVnode);\n      if (dir.def && dir.def.inserted) {\n        dirsWithInsert.push(dir);\n      }\n    } else {\n      // existing directive, update\n      dir.oldValue = oldDir.value;\n      dir.oldArg = oldDir.arg;\n      callHook$1(dir, 'update', vnode, oldVnode);\n      if (dir.def && dir.def.componentUpdated) {\n        dirsWithPostpatch.push(dir);\n      }\n    }\n  }\n\n  if (dirsWithInsert.length) {\n    var callInsert = function () {\n      for (var i = 0; i < dirsWithInsert.length; i++) {\n        callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n      }\n    };\n    if (isCreate) {\n      mergeVNodeHook(vnode, 'insert', callInsert);\n    } else {\n      callInsert();\n    }\n  }\n\n  if (dirsWithPostpatch.length) {\n    mergeVNodeHook(vnode, 'postpatch', function () {\n      for (var i = 0; i < dirsWithPostpatch.length; i++) {\n        callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n      }\n    });\n  }\n\n  if (!isCreate) {\n    for (key in oldDirs) {\n      if (!newDirs[key]) {\n        // no longer present, unbind\n        callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n      }\n    }\n  }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n  dirs,\n  vm\n) {\n  var res = Object.create(null);\n  if (!dirs) {\n    // $flow-disable-line\n    return res\n  }\n  var i, dir;\n  for (i = 0; i < dirs.length; i++) {\n    dir = dirs[i];\n    if (!dir.modifiers) {\n      // $flow-disable-line\n      dir.modifiers = emptyModifiers;\n    }\n    res[getRawDirName(dir)] = dir;\n    dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n  }\n  // $flow-disable-line\n  return res\n}\n\nfunction getRawDirName (dir) {\n  return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n  var fn = dir.def && dir.def[hook];\n  if (fn) {\n    try {\n      fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n    } catch (e) {\n      handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n    }\n  }\n}\n\nvar baseModules = [\n  ref,\n  directives\n];\n\n/*  */\n\nfunction updateAttrs (oldVnode, vnode) {\n  var opts = vnode.componentOptions;\n  if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n    return\n  }\n  if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n    return\n  }\n  var key, cur, old;\n  var elm = vnode.elm;\n  var oldAttrs = oldVnode.data.attrs || {};\n  var attrs = vnode.data.attrs || {};\n  // clone observed objects, as the user probably wants to mutate it\n  if (isDef(attrs.__ob__)) {\n    attrs = vnode.data.attrs = extend({}, attrs);\n  }\n\n  for (key in attrs) {\n    cur = attrs[key];\n    old = oldAttrs[key];\n    if (old !== cur) {\n      setAttr(elm, key, cur);\n    }\n  }\n  // #4391: in IE9, setting type can reset value for input[type=radio]\n  // #6666: IE/Edge forces progress value down to 1 before setting a max\n  /* istanbul ignore if */\n  if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n    setAttr(elm, 'value', attrs.value);\n  }\n  for (key in oldAttrs) {\n    if (isUndef(attrs[key])) {\n      if (isXlink(key)) {\n        elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n      } else if (!isEnumeratedAttr(key)) {\n        elm.removeAttribute(key);\n      }\n    }\n  }\n}\n\nfunction setAttr (el, key, value) {\n  if (el.tagName.indexOf('-') > -1) {\n    baseSetAttr(el, key, value);\n  } else if (isBooleanAttr(key)) {\n    // set attribute for blank value\n    // e.g. <option disabled>Select one</option>\n    if (isFalsyAttrValue(value)) {\n      el.removeAttribute(key);\n    } else {\n      // technically allowfullscreen is a boolean attribute for <iframe>,\n      // but Flash expects a value of \"true\" when used on <embed> tag\n      value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n        ? 'true'\n        : key;\n      el.setAttribute(key, value);\n    }\n  } else if (isEnumeratedAttr(key)) {\n    el.setAttribute(key, convertEnumeratedValue(key, value));\n  } else if (isXlink(key)) {\n    if (isFalsyAttrValue(value)) {\n      el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n    } else {\n      el.setAttributeNS(xlinkNS, key, value);\n    }\n  } else {\n    baseSetAttr(el, key, value);\n  }\n}\n\nfunction baseSetAttr (el, key, value) {\n  if (isFalsyAttrValue(value)) {\n    el.removeAttribute(key);\n  } else {\n    // #7138: IE10 & 11 fires input event when setting placeholder on\n    // <textarea>... block the first input event and remove the blocker\n    // immediately.\n    /* istanbul ignore if */\n    if (\n      isIE && !isIE9 &&\n      el.tagName === 'TEXTAREA' &&\n      key === 'placeholder' && value !== '' && !el.__ieph\n    ) {\n      var blocker = function (e) {\n        e.stopImmediatePropagation();\n        el.removeEventListener('input', blocker);\n      };\n      el.addEventListener('input', blocker);\n      // $flow-disable-line\n      el.__ieph = true; /* IE placeholder patched */\n    }\n    el.setAttribute(key, value);\n  }\n}\n\nvar attrs = {\n  create: updateAttrs,\n  update: updateAttrs\n};\n\n/*  */\n\nfunction updateClass (oldVnode, vnode) {\n  var el = vnode.elm;\n  var data = vnode.data;\n  var oldData = oldVnode.data;\n  if (\n    isUndef(data.staticClass) &&\n    isUndef(data.class) && (\n      isUndef(oldData) || (\n        isUndef(oldData.staticClass) &&\n        isUndef(oldData.class)\n      )\n    )\n  ) {\n    return\n  }\n\n  var cls = genClassForVnode(vnode);\n\n  // handle transition classes\n  var transitionClass = el._transitionClasses;\n  if (isDef(transitionClass)) {\n    cls = concat(cls, stringifyClass(transitionClass));\n  }\n\n  // set the class\n  if (cls !== el._prevClass) {\n    el.setAttribute('class', cls);\n    el._prevClass = cls;\n  }\n}\n\nvar klass = {\n  create: updateClass,\n  update: updateClass\n};\n\n/*  */\n\n/*  */\n\n/*  */\n\n/*  */\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\n/*  */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n  /* istanbul ignore if */\n  if (isDef(on[RANGE_TOKEN])) {\n    // IE input[type=range] only supports `change` event\n    var event = isIE ? 'change' : 'input';\n    on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n    delete on[RANGE_TOKEN];\n  }\n  // This was originally intended to fix #4521 but no longer necessary\n  // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n  /* istanbul ignore if */\n  if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n    on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n    delete on[CHECKBOX_RADIO_TOKEN];\n  }\n}\n\nvar target$1;\n\nfunction createOnceHandler$1 (event, handler, capture) {\n  var _target = target$1; // save current target element in closure\n  return function onceHandler () {\n    var res = handler.apply(null, arguments);\n    if (res !== null) {\n      remove$2(event, onceHandler, capture, _target);\n    }\n  }\n}\n\n// #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\n// implementation and does not fire microtasks in between event propagation, so\n// safe to exclude.\nvar useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\n\nfunction add$1 (\n  name,\n  handler,\n  capture,\n  passive\n) {\n  // async edge case #6566: inner click event triggers patch, event handler\n  // attached to outer element during patch, and triggered again. This\n  // happens because browsers fire microtask ticks between event propagation.\n  // the solution is simple: we save the timestamp when a handler is attached,\n  // and the handler would only fire if the event passed to it was fired\n  // AFTER it was attached.\n  if (useMicrotaskFix) {\n    var attachedTimestamp = currentFlushTimestamp;\n    var original = handler;\n    handler = original._wrapper = function (e) {\n      if (\n        // no bubbling, should always fire.\n        // this is just a safety net in case event.timeStamp is unreliable in\n        // certain weird environments...\n        e.target === e.currentTarget ||\n        // event is fired after handler attachment\n        e.timeStamp >= attachedTimestamp ||\n        // bail for environments that have buggy event.timeStamp implementations\n        // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\n        // #9681 QtWebEngine event.timeStamp is negative value\n        e.timeStamp <= 0 ||\n        // #9448 bail if event is fired in another document in a multi-page\n        // electron/nw.js app, since event.timeStamp will be using a different\n        // starting reference\n        e.target.ownerDocument !== document\n      ) {\n        return original.apply(this, arguments)\n      }\n    };\n  }\n  target$1.addEventListener(\n    name,\n    handler,\n    supportsPassive\n      ? { capture: capture, passive: passive }\n      : capture\n  );\n}\n\nfunction remove$2 (\n  name,\n  handler,\n  capture,\n  _target\n) {\n  (_target || target$1).removeEventListener(\n    name,\n    handler._wrapper || handler,\n    capture\n  );\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n  if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n    return\n  }\n  var on = vnode.data.on || {};\n  var oldOn = oldVnode.data.on || {};\n  target$1 = vnode.elm;\n  normalizeEvents(on);\n  updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);\n  target$1 = undefined;\n}\n\nvar events = {\n  create: updateDOMListeners,\n  update: updateDOMListeners\n};\n\n/*  */\n\nvar svgContainer;\n\nfunction updateDOMProps (oldVnode, vnode) {\n  if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n    return\n  }\n  var key, cur;\n  var elm = vnode.elm;\n  var oldProps = oldVnode.data.domProps || {};\n  var props = vnode.data.domProps || {};\n  // clone observed objects, as the user probably wants to mutate it\n  if (isDef(props.__ob__)) {\n    props = vnode.data.domProps = extend({}, props);\n  }\n\n  for (key in oldProps) {\n    if (!(key in props)) {\n      elm[key] = '';\n    }\n  }\n\n  for (key in props) {\n    cur = props[key];\n    // ignore children if the node has textContent or innerHTML,\n    // as these will throw away existing DOM nodes and cause removal errors\n    // on subsequent patches (#3360)\n    if (key === 'textContent' || key === 'innerHTML') {\n      if (vnode.children) { vnode.children.length = 0; }\n      if (cur === oldProps[key]) { continue }\n      // #6601 work around Chrome version <= 55 bug where single textNode\n      // replaced by innerHTML/textContent retains its parentNode property\n      if (elm.childNodes.length === 1) {\n        elm.removeChild(elm.childNodes[0]);\n      }\n    }\n\n    if (key === 'value' && elm.tagName !== 'PROGRESS') {\n      // store value as _value as well since\n      // non-string values will be stringified\n      elm._value = cur;\n      // avoid resetting cursor position when value is the same\n      var strCur = isUndef(cur) ? '' : String(cur);\n      if (shouldUpdateValue(elm, strCur)) {\n        elm.value = strCur;\n      }\n    } else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) {\n      // IE doesn't support innerHTML for SVG elements\n      svgContainer = svgContainer || document.createElement('div');\n      svgContainer.innerHTML = \"<svg>\" + cur + \"</svg>\";\n      var svg = svgContainer.firstChild;\n      while (elm.firstChild) {\n        elm.removeChild(elm.firstChild);\n      }\n      while (svg.firstChild) {\n        elm.appendChild(svg.firstChild);\n      }\n    } else if (\n      // skip the update if old and new VDOM state is the same.\n      // `value` is handled separately because the DOM value may be temporarily\n      // out of sync with VDOM state due to focus, composition and modifiers.\n      // This  #4521 by skipping the unnecesarry `checked` update.\n      cur !== oldProps[key]\n    ) {\n      // some property updates can throw\n      // e.g. `value` on <progress> w/ non-finite value\n      try {\n        elm[key] = cur;\n      } catch (e) {}\n    }\n  }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (elm, checkVal) {\n  return (!elm.composing && (\n    elm.tagName === 'OPTION' ||\n    isNotInFocusAndDirty(elm, checkVal) ||\n    isDirtyWithModifiers(elm, checkVal)\n  ))\n}\n\nfunction isNotInFocusAndDirty (elm, checkVal) {\n  // return true when textbox (.number and .trim) loses focus and its value is\n  // not equal to the updated value\n  var notInFocus = true;\n  // #6157\n  // work around IE bug when accessing document.activeElement in an iframe\n  try { notInFocus = document.activeElement !== elm; } catch (e) {}\n  return notInFocus && elm.value !== checkVal\n}\n\nfunction isDirtyWithModifiers (elm, newVal) {\n  var value = elm.value;\n  var modifiers = elm._vModifiers; // injected by v-model runtime\n  if (isDef(modifiers)) {\n    if (modifiers.number) {\n      return toNumber(value) !== toNumber(newVal)\n    }\n    if (modifiers.trim) {\n      return value.trim() !== newVal.trim()\n    }\n  }\n  return value !== newVal\n}\n\nvar domProps = {\n  create: updateDOMProps,\n  update: updateDOMProps\n};\n\n/*  */\n\nvar parseStyleText = cached(function (cssText) {\n  var res = {};\n  var listDelimiter = /;(?![^(]*\\))/g;\n  var propertyDelimiter = /:(.+)/;\n  cssText.split(listDelimiter).forEach(function (item) {\n    if (item) {\n      var tmp = item.split(propertyDelimiter);\n      tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n    }\n  });\n  return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n  var style = normalizeStyleBinding(data.style);\n  // static style is pre-processed into an object during compilation\n  // and is always a fresh object, so it's safe to merge into it\n  return data.staticStyle\n    ? extend(data.staticStyle, style)\n    : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n  if (Array.isArray(bindingStyle)) {\n    return toObject(bindingStyle)\n  }\n  if (typeof bindingStyle === 'string') {\n    return parseStyleText(bindingStyle)\n  }\n  return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n  var res = {};\n  var styleData;\n\n  if (checkChild) {\n    var childNode = vnode;\n    while (childNode.componentInstance) {\n      childNode = childNode.componentInstance._vnode;\n      if (\n        childNode && childNode.data &&\n        (styleData = normalizeStyleData(childNode.data))\n      ) {\n        extend(res, styleData);\n      }\n    }\n  }\n\n  if ((styleData = normalizeStyleData(vnode.data))) {\n    extend(res, styleData);\n  }\n\n  var parentNode = vnode;\n  while ((parentNode = parentNode.parent)) {\n    if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n      extend(res, styleData);\n    }\n  }\n  return res\n}\n\n/*  */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n  /* istanbul ignore if */\n  if (cssVarRE.test(name)) {\n    el.style.setProperty(name, val);\n  } else if (importantRE.test(val)) {\n    el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\n  } else {\n    var normalizedName = normalize(name);\n    if (Array.isArray(val)) {\n      // Support values array created by autoprefixer, e.g.\n      // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n      // Set them one by one, and the browser will only set those it can recognize\n      for (var i = 0, len = val.length; i < len; i++) {\n        el.style[normalizedName] = val[i];\n      }\n    } else {\n      el.style[normalizedName] = val;\n    }\n  }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n  emptyStyle = emptyStyle || document.createElement('div').style;\n  prop = camelize(prop);\n  if (prop !== 'filter' && (prop in emptyStyle)) {\n    return prop\n  }\n  var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n  for (var i = 0; i < vendorNames.length; i++) {\n    var name = vendorNames[i] + capName;\n    if (name in emptyStyle) {\n      return name\n    }\n  }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n  var data = vnode.data;\n  var oldData = oldVnode.data;\n\n  if (isUndef(data.staticStyle) && isUndef(data.style) &&\n    isUndef(oldData.staticStyle) && isUndef(oldData.style)\n  ) {\n    return\n  }\n\n  var cur, name;\n  var el = vnode.elm;\n  var oldStaticStyle = oldData.staticStyle;\n  var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n  // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n  var oldStyle = oldStaticStyle || oldStyleBinding;\n\n  var style = normalizeStyleBinding(vnode.data.style) || {};\n\n  // store normalized style under a different key for next diff\n  // make sure to clone it if it's reactive, since the user likely wants\n  // to mutate it.\n  vnode.data.normalizedStyle = isDef(style.__ob__)\n    ? extend({}, style)\n    : style;\n\n  var newStyle = getStyle(vnode, true);\n\n  for (name in oldStyle) {\n    if (isUndef(newStyle[name])) {\n      setProp(el, name, '');\n    }\n  }\n  for (name in newStyle) {\n    cur = newStyle[name];\n    if (cur !== oldStyle[name]) {\n      // ie9 setting to null has no effect, must use empty string\n      setProp(el, name, cur == null ? '' : cur);\n    }\n  }\n}\n\nvar style = {\n  create: updateStyle,\n  update: updateStyle\n};\n\n/*  */\n\nvar whitespaceRE = /\\s+/;\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n  /* istanbul ignore if */\n  if (!cls || !(cls = cls.trim())) {\n    return\n  }\n\n  /* istanbul ignore else */\n  if (el.classList) {\n    if (cls.indexOf(' ') > -1) {\n      cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });\n    } else {\n      el.classList.add(cls);\n    }\n  } else {\n    var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n    if (cur.indexOf(' ' + cls + ' ') < 0) {\n      el.setAttribute('class', (cur + cls).trim());\n    }\n  }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n  /* istanbul ignore if */\n  if (!cls || !(cls = cls.trim())) {\n    return\n  }\n\n  /* istanbul ignore else */\n  if (el.classList) {\n    if (cls.indexOf(' ') > -1) {\n      cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });\n    } else {\n      el.classList.remove(cls);\n    }\n    if (!el.classList.length) {\n      el.removeAttribute('class');\n    }\n  } else {\n    var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n    var tar = ' ' + cls + ' ';\n    while (cur.indexOf(tar) >= 0) {\n      cur = cur.replace(tar, ' ');\n    }\n    cur = cur.trim();\n    if (cur) {\n      el.setAttribute('class', cur);\n    } else {\n      el.removeAttribute('class');\n    }\n  }\n}\n\n/*  */\n\nfunction resolveTransition (def$$1) {\n  if (!def$$1) {\n    return\n  }\n  /* istanbul ignore else */\n  if (typeof def$$1 === 'object') {\n    var res = {};\n    if (def$$1.css !== false) {\n      extend(res, autoCssTransition(def$$1.name || 'v'));\n    }\n    extend(res, def$$1);\n    return res\n  } else if (typeof def$$1 === 'string') {\n    return autoCssTransition(def$$1)\n  }\n}\n\nvar autoCssTransition = cached(function (name) {\n  return {\n    enterClass: (name + \"-enter\"),\n    enterToClass: (name + \"-enter-to\"),\n    enterActiveClass: (name + \"-enter-active\"),\n    leaveClass: (name + \"-leave\"),\n    leaveToClass: (name + \"-leave-to\"),\n    leaveActiveClass: (name + \"-leave-active\")\n  }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n  /* istanbul ignore if */\n  if (window.ontransitionend === undefined &&\n    window.onwebkittransitionend !== undefined\n  ) {\n    transitionProp = 'WebkitTransition';\n    transitionEndEvent = 'webkitTransitionEnd';\n  }\n  if (window.onanimationend === undefined &&\n    window.onwebkitanimationend !== undefined\n  ) {\n    animationProp = 'WebkitAnimation';\n    animationEndEvent = 'webkitAnimationEnd';\n  }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser\n  ? window.requestAnimationFrame\n    ? window.requestAnimationFrame.bind(window)\n    : setTimeout\n  : /* istanbul ignore next */ function (fn) { return fn(); };\n\nfunction nextFrame (fn) {\n  raf(function () {\n    raf(fn);\n  });\n}\n\nfunction addTransitionClass (el, cls) {\n  var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n  if (transitionClasses.indexOf(cls) < 0) {\n    transitionClasses.push(cls);\n    addClass(el, cls);\n  }\n}\n\nfunction removeTransitionClass (el, cls) {\n  if (el._transitionClasses) {\n    remove(el._transitionClasses, cls);\n  }\n  removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n  el,\n  expectedType,\n  cb\n) {\n  var ref = getTransitionInfo(el, expectedType);\n  var type = ref.type;\n  var timeout = ref.timeout;\n  var propCount = ref.propCount;\n  if (!type) { return cb() }\n  var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n  var ended = 0;\n  var end = function () {\n    el.removeEventListener(event, onEnd);\n    cb();\n  };\n  var onEnd = function (e) {\n    if (e.target === el) {\n      if (++ended >= propCount) {\n        end();\n      }\n    }\n  };\n  setTimeout(function () {\n    if (ended < propCount) {\n      end();\n    }\n  }, timeout + 1);\n  el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n  var styles = window.getComputedStyle(el);\n  // JSDOM may return undefined for transition properties\n  var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\n  var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\n  var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n  var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\n  var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\n  var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n  var type;\n  var timeout = 0;\n  var propCount = 0;\n  /* istanbul ignore if */\n  if (expectedType === TRANSITION) {\n    if (transitionTimeout > 0) {\n      type = TRANSITION;\n      timeout = transitionTimeout;\n      propCount = transitionDurations.length;\n    }\n  } else if (expectedType === ANIMATION) {\n    if (animationTimeout > 0) {\n      type = ANIMATION;\n      timeout = animationTimeout;\n      propCount = animationDurations.length;\n    }\n  } else {\n    timeout = Math.max(transitionTimeout, animationTimeout);\n    type = timeout > 0\n      ? transitionTimeout > animationTimeout\n        ? TRANSITION\n        : ANIMATION\n      : null;\n    propCount = type\n      ? type === TRANSITION\n        ? transitionDurations.length\n        : animationDurations.length\n      : 0;\n  }\n  var hasTransform =\n    type === TRANSITION &&\n    transformRE.test(styles[transitionProp + 'Property']);\n  return {\n    type: type,\n    timeout: timeout,\n    propCount: propCount,\n    hasTransform: hasTransform\n  }\n}\n\nfunction getTimeout (delays, durations) {\n  /* istanbul ignore next */\n  while (delays.length < durations.length) {\n    delays = delays.concat(delays);\n  }\n\n  return Math.max.apply(null, durations.map(function (d, i) {\n    return toMs(d) + toMs(delays[i])\n  }))\n}\n\n// Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\n// in a locale-dependent way, using a comma instead of a dot.\n// If comma is not replaced with a dot, the input will be rounded down (i.e. acting\n// as a floor function) causing unexpected behaviors\nfunction toMs (s) {\n  return Number(s.slice(0, -1).replace(',', '.')) * 1000\n}\n\n/*  */\n\nfunction enter (vnode, toggleDisplay) {\n  var el = vnode.elm;\n\n  // call leave callback now\n  if (isDef(el._leaveCb)) {\n    el._leaveCb.cancelled = true;\n    el._leaveCb();\n  }\n\n  var data = resolveTransition(vnode.data.transition);\n  if (isUndef(data)) {\n    return\n  }\n\n  /* istanbul ignore if */\n  if (isDef(el._enterCb) || el.nodeType !== 1) {\n    return\n  }\n\n  var css = data.css;\n  var type = data.type;\n  var enterClass = data.enterClass;\n  var enterToClass = data.enterToClass;\n  var enterActiveClass = data.enterActiveClass;\n  var appearClass = data.appearClass;\n  var appearToClass = data.appearToClass;\n  var appearActiveClass = data.appearActiveClass;\n  var beforeEnter = data.beforeEnter;\n  var enter = data.enter;\n  var afterEnter = data.afterEnter;\n  var enterCancelled = data.enterCancelled;\n  var beforeAppear = data.beforeAppear;\n  var appear = data.appear;\n  var afterAppear = data.afterAppear;\n  var appearCancelled = data.appearCancelled;\n  var duration = data.duration;\n\n  // activeInstance will always be the <transition> component managing this\n  // transition. One edge case to check is when the <transition> is placed\n  // as the root node of a child component. In that case we need to check\n  // <transition>'s parent for appear check.\n  var context = activeInstance;\n  var transitionNode = activeInstance.$vnode;\n  while (transitionNode && transitionNode.parent) {\n    context = transitionNode.context;\n    transitionNode = transitionNode.parent;\n  }\n\n  var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n  if (isAppear && !appear && appear !== '') {\n    return\n  }\n\n  var startClass = isAppear && appearClass\n    ? appearClass\n    : enterClass;\n  var activeClass = isAppear && appearActiveClass\n    ? appearActiveClass\n    : enterActiveClass;\n  var toClass = isAppear && appearToClass\n    ? appearToClass\n    : enterToClass;\n\n  var beforeEnterHook = isAppear\n    ? (beforeAppear || beforeEnter)\n    : beforeEnter;\n  var enterHook = isAppear\n    ? (typeof appear === 'function' ? appear : enter)\n    : enter;\n  var afterEnterHook = isAppear\n    ? (afterAppear || afterEnter)\n    : afterEnter;\n  var enterCancelledHook = isAppear\n    ? (appearCancelled || enterCancelled)\n    : enterCancelled;\n\n  var explicitEnterDuration = toNumber(\n    isObject(duration)\n      ? duration.enter\n      : duration\n  );\n\n  if ( true && explicitEnterDuration != null) {\n    checkDuration(explicitEnterDuration, 'enter', vnode);\n  }\n\n  var expectsCSS = css !== false && !isIE9;\n  var userWantsControl = getHookArgumentsLength(enterHook);\n\n  var cb = el._enterCb = once(function () {\n    if (expectsCSS) {\n      removeTransitionClass(el, toClass);\n      removeTransitionClass(el, activeClass);\n    }\n    if (cb.cancelled) {\n      if (expectsCSS) {\n        removeTransitionClass(el, startClass);\n      }\n      enterCancelledHook && enterCancelledHook(el);\n    } else {\n      afterEnterHook && afterEnterHook(el);\n    }\n    el._enterCb = null;\n  });\n\n  if (!vnode.data.show) {\n    // remove pending leave element on enter by injecting an insert hook\n    mergeVNodeHook(vnode, 'insert', function () {\n      var parent = el.parentNode;\n      var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n      if (pendingNode &&\n        pendingNode.tag === vnode.tag &&\n        pendingNode.elm._leaveCb\n      ) {\n        pendingNode.elm._leaveCb();\n      }\n      enterHook && enterHook(el, cb);\n    });\n  }\n\n  // start enter transition\n  beforeEnterHook && beforeEnterHook(el);\n  if (expectsCSS) {\n    addTransitionClass(el, startClass);\n    addTransitionClass(el, activeClass);\n    nextFrame(function () {\n      removeTransitionClass(el, startClass);\n      if (!cb.cancelled) {\n        addTransitionClass(el, toClass);\n        if (!userWantsControl) {\n          if (isValidDuration(explicitEnterDuration)) {\n            setTimeout(cb, explicitEnterDuration);\n          } else {\n            whenTransitionEnds(el, type, cb);\n          }\n        }\n      }\n    });\n  }\n\n  if (vnode.data.show) {\n    toggleDisplay && toggleDisplay();\n    enterHook && enterHook(el, cb);\n  }\n\n  if (!expectsCSS && !userWantsControl) {\n    cb();\n  }\n}\n\nfunction leave (vnode, rm) {\n  var el = vnode.elm;\n\n  // call enter callback now\n  if (isDef(el._enterCb)) {\n    el._enterCb.cancelled = true;\n    el._enterCb();\n  }\n\n  var data = resolveTransition(vnode.data.transition);\n  if (isUndef(data) || el.nodeType !== 1) {\n    return rm()\n  }\n\n  /* istanbul ignore if */\n  if (isDef(el._leaveCb)) {\n    return\n  }\n\n  var css = data.css;\n  var type = data.type;\n  var leaveClass = data.leaveClass;\n  var leaveToClass = data.leaveToClass;\n  var leaveActiveClass = data.leaveActiveClass;\n  var beforeLeave = data.beforeLeave;\n  var leave = data.leave;\n  var afterLeave = data.afterLeave;\n  var leaveCancelled = data.leaveCancelled;\n  var delayLeave = data.delayLeave;\n  var duration = data.duration;\n\n  var expectsCSS = css !== false && !isIE9;\n  var userWantsControl = getHookArgumentsLength(leave);\n\n  var explicitLeaveDuration = toNumber(\n    isObject(duration)\n      ? duration.leave\n      : duration\n  );\n\n  if ( true && isDef(explicitLeaveDuration)) {\n    checkDuration(explicitLeaveDuration, 'leave', vnode);\n  }\n\n  var cb = el._leaveCb = once(function () {\n    if (el.parentNode && el.parentNode._pending) {\n      el.parentNode._pending[vnode.key] = null;\n    }\n    if (expectsCSS) {\n      removeTransitionClass(el, leaveToClass);\n      removeTransitionClass(el, leaveActiveClass);\n    }\n    if (cb.cancelled) {\n      if (expectsCSS) {\n        removeTransitionClass(el, leaveClass);\n      }\n      leaveCancelled && leaveCancelled(el);\n    } else {\n      rm();\n      afterLeave && afterLeave(el);\n    }\n    el._leaveCb = null;\n  });\n\n  if (delayLeave) {\n    delayLeave(performLeave);\n  } else {\n    performLeave();\n  }\n\n  function performLeave () {\n    // the delayed leave may have already been cancelled\n    if (cb.cancelled) {\n      return\n    }\n    // record leaving element\n    if (!vnode.data.show && el.parentNode) {\n      (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n    }\n    beforeLeave && beforeLeave(el);\n    if (expectsCSS) {\n      addTransitionClass(el, leaveClass);\n      addTransitionClass(el, leaveActiveClass);\n      nextFrame(function () {\n        removeTransitionClass(el, leaveClass);\n        if (!cb.cancelled) {\n          addTransitionClass(el, leaveToClass);\n          if (!userWantsControl) {\n            if (isValidDuration(explicitLeaveDuration)) {\n              setTimeout(cb, explicitLeaveDuration);\n            } else {\n              whenTransitionEnds(el, type, cb);\n            }\n          }\n        }\n      });\n    }\n    leave && leave(el, cb);\n    if (!expectsCSS && !userWantsControl) {\n      cb();\n    }\n  }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n  if (typeof val !== 'number') {\n    warn(\n      \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n      \"got \" + (JSON.stringify(val)) + \".\",\n      vnode.context\n    );\n  } else if (isNaN(val)) {\n    warn(\n      \"<transition> explicit \" + name + \" duration is NaN - \" +\n      'the duration expression might be incorrect.',\n      vnode.context\n    );\n  }\n}\n\nfunction isValidDuration (val) {\n  return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n  if (isUndef(fn)) {\n    return false\n  }\n  var invokerFns = fn.fns;\n  if (isDef(invokerFns)) {\n    // invoker\n    return getHookArgumentsLength(\n      Array.isArray(invokerFns)\n        ? invokerFns[0]\n        : invokerFns\n    )\n  } else {\n    return (fn._length || fn.length) > 1\n  }\n}\n\nfunction _enter (_, vnode) {\n  if (vnode.data.show !== true) {\n    enter(vnode);\n  }\n}\n\nvar transition = inBrowser ? {\n  create: _enter,\n  activate: _enter,\n  remove: function remove$$1 (vnode, rm) {\n    /* istanbul ignore else */\n    if (vnode.data.show !== true) {\n      leave(vnode, rm);\n    } else {\n      rm();\n    }\n  }\n} : {};\n\nvar platformModules = [\n  attrs,\n  klass,\n  events,\n  domProps,\n  style,\n  transition\n];\n\n/*  */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n  // http://www.matts411.com/post/internet-explorer-9-oninput/\n  document.addEventListener('selectionchange', function () {\n    var el = document.activeElement;\n    if (el && el.vmodel) {\n      trigger(el, 'input');\n    }\n  });\n}\n\nvar directive = {\n  inserted: function inserted (el, binding, vnode, oldVnode) {\n    if (vnode.tag === 'select') {\n      // #6903\n      if (oldVnode.elm && !oldVnode.elm._vOptions) {\n        mergeVNodeHook(vnode, 'postpatch', function () {\n          directive.componentUpdated(el, binding, vnode);\n        });\n      } else {\n        setSelected(el, binding, vnode.context);\n      }\n      el._vOptions = [].map.call(el.options, getValue);\n    } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n      el._vModifiers = binding.modifiers;\n      if (!binding.modifiers.lazy) {\n        el.addEventListener('compositionstart', onCompositionStart);\n        el.addEventListener('compositionend', onCompositionEnd);\n        // Safari < 10.2 & UIWebView doesn't fire compositionend when\n        // switching focus before confirming composition choice\n        // this also fixes the issue where some browsers e.g. iOS Chrome\n        // fires \"change\" instead of \"input\" on autocomplete.\n        el.addEventListener('change', onCompositionEnd);\n        /* istanbul ignore if */\n        if (isIE9) {\n          el.vmodel = true;\n        }\n      }\n    }\n  },\n\n  componentUpdated: function componentUpdated (el, binding, vnode) {\n    if (vnode.tag === 'select') {\n      setSelected(el, binding, vnode.context);\n      // in case the options rendered by v-for have changed,\n      // it's possible that the value is out-of-sync with the rendered options.\n      // detect such cases and filter out values that no longer has a matching\n      // option in the DOM.\n      var prevOptions = el._vOptions;\n      var curOptions = el._vOptions = [].map.call(el.options, getValue);\n      if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n        // trigger change event if\n        // no matching option found for at least one value\n        var needReset = el.multiple\n          ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n          : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n        if (needReset) {\n          trigger(el, 'change');\n        }\n      }\n    }\n  }\n};\n\nfunction setSelected (el, binding, vm) {\n  actuallySetSelected(el, binding, vm);\n  /* istanbul ignore if */\n  if (isIE || isEdge) {\n    setTimeout(function () {\n      actuallySetSelected(el, binding, vm);\n    }, 0);\n  }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n  var value = binding.value;\n  var isMultiple = el.multiple;\n  if (isMultiple && !Array.isArray(value)) {\n     true && warn(\n      \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n      \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n      vm\n    );\n    return\n  }\n  var selected, option;\n  for (var i = 0, l = el.options.length; i < l; i++) {\n    option = el.options[i];\n    if (isMultiple) {\n      selected = looseIndexOf(value, getValue(option)) > -1;\n      if (option.selected !== selected) {\n        option.selected = selected;\n      }\n    } else {\n      if (looseEqual(getValue(option), value)) {\n        if (el.selectedIndex !== i) {\n          el.selectedIndex = i;\n        }\n        return\n      }\n    }\n  }\n  if (!isMultiple) {\n    el.selectedIndex = -1;\n  }\n}\n\nfunction hasNoMatchingOption (value, options) {\n  return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n  return '_value' in option\n    ? option._value\n    : option.value\n}\n\nfunction onCompositionStart (e) {\n  e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n  // prevent triggering an input event for no reason\n  if (!e.target.composing) { return }\n  e.target.composing = false;\n  trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n  var e = document.createEvent('HTMLEvents');\n  e.initEvent(type, true, true);\n  el.dispatchEvent(e);\n}\n\n/*  */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n  return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n    ? locateNode(vnode.componentInstance._vnode)\n    : vnode\n}\n\nvar show = {\n  bind: function bind (el, ref, vnode) {\n    var value = ref.value;\n\n    vnode = locateNode(vnode);\n    var transition$$1 = vnode.data && vnode.data.transition;\n    var originalDisplay = el.__vOriginalDisplay =\n      el.style.display === 'none' ? '' : el.style.display;\n    if (value && transition$$1) {\n      vnode.data.show = true;\n      enter(vnode, function () {\n        el.style.display = originalDisplay;\n      });\n    } else {\n      el.style.display = value ? originalDisplay : 'none';\n    }\n  },\n\n  update: function update (el, ref, vnode) {\n    var value = ref.value;\n    var oldValue = ref.oldValue;\n\n    /* istanbul ignore if */\n    if (!value === !oldValue) { return }\n    vnode = locateNode(vnode);\n    var transition$$1 = vnode.data && vnode.data.transition;\n    if (transition$$1) {\n      vnode.data.show = true;\n      if (value) {\n        enter(vnode, function () {\n          el.style.display = el.__vOriginalDisplay;\n        });\n      } else {\n        leave(vnode, function () {\n          el.style.display = 'none';\n        });\n      }\n    } else {\n      el.style.display = value ? el.__vOriginalDisplay : 'none';\n    }\n  },\n\n  unbind: function unbind (\n    el,\n    binding,\n    vnode,\n    oldVnode,\n    isDestroy\n  ) {\n    if (!isDestroy) {\n      el.style.display = el.__vOriginalDisplay;\n    }\n  }\n};\n\nvar platformDirectives = {\n  model: directive,\n  show: show\n};\n\n/*  */\n\nvar transitionProps = {\n  name: String,\n  appear: Boolean,\n  css: Boolean,\n  mode: String,\n  type: String,\n  enterClass: String,\n  leaveClass: String,\n  enterToClass: String,\n  leaveToClass: String,\n  enterActiveClass: String,\n  leaveActiveClass: String,\n  appearClass: String,\n  appearActiveClass: String,\n  appearToClass: String,\n  duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n  var compOptions = vnode && vnode.componentOptions;\n  if (compOptions && compOptions.Ctor.options.abstract) {\n    return getRealChild(getFirstComponentChild(compOptions.children))\n  } else {\n    return vnode\n  }\n}\n\nfunction extractTransitionData (comp) {\n  var data = {};\n  var options = comp.$options;\n  // props\n  for (var key in options.propsData) {\n    data[key] = comp[key];\n  }\n  // events.\n  // extract listeners and pass them directly to the transition methods\n  var listeners = options._parentListeners;\n  for (var key$1 in listeners) {\n    data[camelize(key$1)] = listeners[key$1];\n  }\n  return data\n}\n\nfunction placeholder (h, rawChild) {\n  if (/\\d-keep-alive$/.test(rawChild.tag)) {\n    return h('keep-alive', {\n      props: rawChild.componentOptions.propsData\n    })\n  }\n}\n\nfunction hasParentTransition (vnode) {\n  while ((vnode = vnode.parent)) {\n    if (vnode.data.transition) {\n      return true\n    }\n  }\n}\n\nfunction isSameChild (child, oldChild) {\n  return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };\n\nvar isVShowDirective = function (d) { return d.name === 'show'; };\n\nvar Transition = {\n  name: 'transition',\n  props: transitionProps,\n  abstract: true,\n\n  render: function render (h) {\n    var this$1 = this;\n\n    var children = this.$slots.default;\n    if (!children) {\n      return\n    }\n\n    // filter out text nodes (possible whitespaces)\n    children = children.filter(isNotTextNode);\n    /* istanbul ignore if */\n    if (!children.length) {\n      return\n    }\n\n    // warn multiple elements\n    if ( true && children.length > 1) {\n      warn(\n        '<transition> can only be used on a single element. Use ' +\n        '<transition-group> for lists.',\n        this.$parent\n      );\n    }\n\n    var mode = this.mode;\n\n    // warn invalid mode\n    if ( true &&\n      mode && mode !== 'in-out' && mode !== 'out-in'\n    ) {\n      warn(\n        'invalid <transition> mode: ' + mode,\n        this.$parent\n      );\n    }\n\n    var rawChild = children[0];\n\n    // if this is a component root node and the component's\n    // parent container node also has transition, skip.\n    if (hasParentTransition(this.$vnode)) {\n      return rawChild\n    }\n\n    // apply transition data to child\n    // use getRealChild() to ignore abstract components e.g. keep-alive\n    var child = getRealChild(rawChild);\n    /* istanbul ignore if */\n    if (!child) {\n      return rawChild\n    }\n\n    if (this._leaving) {\n      return placeholder(h, rawChild)\n    }\n\n    // ensure a key that is unique to the vnode type and to this transition\n    // component instance. This key will be used to remove pending leaving nodes\n    // during entering.\n    var id = \"__transition-\" + (this._uid) + \"-\";\n    child.key = child.key == null\n      ? child.isComment\n        ? id + 'comment'\n        : id + child.tag\n      : isPrimitive(child.key)\n        ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n        : child.key;\n\n    var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n    var oldRawChild = this._vnode;\n    var oldChild = getRealChild(oldRawChild);\n\n    // mark v-show\n    // so that the transition module can hand over the control to the directive\n    if (child.data.directives && child.data.directives.some(isVShowDirective)) {\n      child.data.show = true;\n    }\n\n    if (\n      oldChild &&\n      oldChild.data &&\n      !isSameChild(child, oldChild) &&\n      !isAsyncPlaceholder(oldChild) &&\n      // #6687 component root is a comment node\n      !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\n    ) {\n      // replace old child transition data with fresh one\n      // important for dynamic transitions!\n      var oldData = oldChild.data.transition = extend({}, data);\n      // handle transition mode\n      if (mode === 'out-in') {\n        // return placeholder node and queue update when leave finishes\n        this._leaving = true;\n        mergeVNodeHook(oldData, 'afterLeave', function () {\n          this$1._leaving = false;\n          this$1.$forceUpdate();\n        });\n        return placeholder(h, rawChild)\n      } else if (mode === 'in-out') {\n        if (isAsyncPlaceholder(child)) {\n          return oldRawChild\n        }\n        var delayedLeave;\n        var performLeave = function () { delayedLeave(); };\n        mergeVNodeHook(data, 'afterEnter', performLeave);\n        mergeVNodeHook(data, 'enterCancelled', performLeave);\n        mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n      }\n    }\n\n    return rawChild\n  }\n};\n\n/*  */\n\nvar props = extend({\n  tag: String,\n  moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n  props: props,\n\n  beforeMount: function beforeMount () {\n    var this$1 = this;\n\n    var update = this._update;\n    this._update = function (vnode, hydrating) {\n      var restoreActiveInstance = setActiveInstance(this$1);\n      // force removing pass\n      this$1.__patch__(\n        this$1._vnode,\n        this$1.kept,\n        false, // hydrating\n        true // removeOnly (!important, avoids unnecessary moves)\n      );\n      this$1._vnode = this$1.kept;\n      restoreActiveInstance();\n      update.call(this$1, vnode, hydrating);\n    };\n  },\n\n  render: function render (h) {\n    var tag = this.tag || this.$vnode.data.tag || 'span';\n    var map = Object.create(null);\n    var prevChildren = this.prevChildren = this.children;\n    var rawChildren = this.$slots.default || [];\n    var children = this.children = [];\n    var transitionData = extractTransitionData(this);\n\n    for (var i = 0; i < rawChildren.length; i++) {\n      var c = rawChildren[i];\n      if (c.tag) {\n        if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n          children.push(c);\n          map[c.key] = c\n          ;(c.data || (c.data = {})).transition = transitionData;\n        } else if (true) {\n          var opts = c.componentOptions;\n          var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n          warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n        }\n      }\n    }\n\n    if (prevChildren) {\n      var kept = [];\n      var removed = [];\n      for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n        var c$1 = prevChildren[i$1];\n        c$1.data.transition = transitionData;\n        c$1.data.pos = c$1.elm.getBoundingClientRect();\n        if (map[c$1.key]) {\n          kept.push(c$1);\n        } else {\n          removed.push(c$1);\n        }\n      }\n      this.kept = h(tag, null, kept);\n      this.removed = removed;\n    }\n\n    return h(tag, null, children)\n  },\n\n  updated: function updated () {\n    var children = this.prevChildren;\n    var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n    if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n      return\n    }\n\n    // we divide the work into three loops to avoid mixing DOM reads and writes\n    // in each iteration - which helps prevent layout thrashing.\n    children.forEach(callPendingCbs);\n    children.forEach(recordPosition);\n    children.forEach(applyTranslation);\n\n    // force reflow to put everything in position\n    // assign to this to avoid being removed in tree-shaking\n    // $flow-disable-line\n    this._reflow = document.body.offsetHeight;\n\n    children.forEach(function (c) {\n      if (c.data.moved) {\n        var el = c.elm;\n        var s = el.style;\n        addTransitionClass(el, moveClass);\n        s.transform = s.WebkitTransform = s.transitionDuration = '';\n        el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n          if (e && e.target !== el) {\n            return\n          }\n          if (!e || /transform$/.test(e.propertyName)) {\n            el.removeEventListener(transitionEndEvent, cb);\n            el._moveCb = null;\n            removeTransitionClass(el, moveClass);\n          }\n        });\n      }\n    });\n  },\n\n  methods: {\n    hasMove: function hasMove (el, moveClass) {\n      /* istanbul ignore if */\n      if (!hasTransition) {\n        return false\n      }\n      /* istanbul ignore if */\n      if (this._hasMove) {\n        return this._hasMove\n      }\n      // Detect whether an element with the move class applied has\n      // CSS transitions. Since the element may be inside an entering\n      // transition at this very moment, we make a clone of it and remove\n      // all other transition classes applied to ensure only the move class\n      // is applied.\n      var clone = el.cloneNode();\n      if (el._transitionClasses) {\n        el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n      }\n      addClass(clone, moveClass);\n      clone.style.display = 'none';\n      this.$el.appendChild(clone);\n      var info = getTransitionInfo(clone);\n      this.$el.removeChild(clone);\n      return (this._hasMove = info.hasTransform)\n    }\n  }\n};\n\nfunction callPendingCbs (c) {\n  /* istanbul ignore if */\n  if (c.elm._moveCb) {\n    c.elm._moveCb();\n  }\n  /* istanbul ignore if */\n  if (c.elm._enterCb) {\n    c.elm._enterCb();\n  }\n}\n\nfunction recordPosition (c) {\n  c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n  var oldPos = c.data.pos;\n  var newPos = c.data.newPos;\n  var dx = oldPos.left - newPos.left;\n  var dy = oldPos.top - newPos.top;\n  if (dx || dy) {\n    c.data.moved = true;\n    var s = c.elm.style;\n    s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n    s.transitionDuration = '0s';\n  }\n}\n\nvar platformComponents = {\n  Transition: Transition,\n  TransitionGroup: TransitionGroup\n};\n\n/*  */\n\n// install platform specific utils\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents);\n\n// install platform patch function\nVue.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue.prototype.$mount = function (\n  el,\n  hydrating\n) {\n  el = el && inBrowser ? query(el) : undefined;\n  return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nif (inBrowser) {\n  setTimeout(function () {\n    if (config.devtools) {\n      if (devtools) {\n        devtools.emit('init', Vue);\n      } else if (\n        false\n      ) {}\n    }\n    if (false\n    ) {}\n  }, 0);\n}\n\n/*  */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Vue);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/vue/dist/vue.runtime.esm.js?");

/***/ }),

/***/ "./node_modules/vuex/dist/vuex.esm.js":
/*!********************************************!*\
  !*** ./node_modules/vuex/dist/vuex.esm.js ***!
  \********************************************/
/*! exports provided: default, Store, install, mapState, mapMutations, mapGetters, mapActions, createNamespacedHelpers */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Store\", function() { return Store; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"install\", function() { return install; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mapState\", function() { return mapState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mapMutations\", function() { return mapMutations; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mapGetters\", function() { return mapGetters; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mapActions\", function() { return mapActions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createNamespacedHelpers\", function() { return createNamespacedHelpers; });\n/**\n * vuex v3.1.0\n * (c) 2019 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n  var version = Number(Vue.version.split('.')[0]);\n\n  if (version >= 2) {\n    Vue.mixin({ beforeCreate: vuexInit });\n  } else {\n    // override init and inject vuex init procedure\n    // for 1.x backwards compatibility.\n    var _init = Vue.prototype._init;\n    Vue.prototype._init = function (options) {\n      if ( options === void 0 ) options = {};\n\n      options.init = options.init\n        ? [vuexInit].concat(options.init)\n        : vuexInit;\n      _init.call(this, options);\n    };\n  }\n\n  /**\n   * Vuex init hook, injected into each instances init hooks list.\n   */\n\n  function vuexInit () {\n    var options = this.$options;\n    // store injection\n    if (options.store) {\n      this.$store = typeof options.store === 'function'\n        ? options.store()\n        : options.store;\n    } else if (options.parent && options.parent.$store) {\n      this.$store = options.parent.$store;\n    }\n  }\n}\n\nvar devtoolHook =\n  typeof window !== 'undefined' &&\n  window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n  if (!devtoolHook) { return }\n\n  store._devtoolHook = devtoolHook;\n\n  devtoolHook.emit('vuex:init', store);\n\n  devtoolHook.on('vuex:travel-to-state', function (targetState) {\n    store.replaceState(targetState);\n  });\n\n  store.subscribe(function (mutation, state) {\n    devtoolHook.emit('vuex:mutation', mutation, state);\n  });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n  Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n  return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n  return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n  if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n  this.runtime = runtime;\n  // Store some children item\n  this._children = Object.create(null);\n  // Store the origin module object which passed by programmer\n  this._rawModule = rawModule;\n  var rawState = rawModule.state;\n\n  // Store the origin module's state\n  this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n  return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n  this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n  delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n  return this._children[key]\n};\n\nModule.prototype.update = function update (rawModule) {\n  this._rawModule.namespaced = rawModule.namespaced;\n  if (rawModule.actions) {\n    this._rawModule.actions = rawModule.actions;\n  }\n  if (rawModule.mutations) {\n    this._rawModule.mutations = rawModule.mutations;\n  }\n  if (rawModule.getters) {\n    this._rawModule.getters = rawModule.getters;\n  }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n  forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n  if (this._rawModule.getters) {\n    forEachValue(this._rawModule.getters, fn);\n  }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n  if (this._rawModule.actions) {\n    forEachValue(this._rawModule.actions, fn);\n  }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n  if (this._rawModule.mutations) {\n    forEachValue(this._rawModule.mutations, fn);\n  }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n  // register root module (Vuex.Store options)\n  this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n  return path.reduce(function (module, key) {\n    return module.getChild(key)\n  }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n  var module = this.root;\n  return path.reduce(function (namespace, key) {\n    module = module.getChild(key);\n    return namespace + (module.namespaced ? key + '/' : '')\n  }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n  update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n    var this$1 = this;\n    if ( runtime === void 0 ) runtime = true;\n\n  if (true) {\n    assertRawModule(path, rawModule);\n  }\n\n  var newModule = new Module(rawModule, runtime);\n  if (path.length === 0) {\n    this.root = newModule;\n  } else {\n    var parent = this.get(path.slice(0, -1));\n    parent.addChild(path[path.length - 1], newModule);\n  }\n\n  // register nested modules\n  if (rawModule.modules) {\n    forEachValue(rawModule.modules, function (rawChildModule, key) {\n      this$1.register(path.concat(key), rawChildModule, runtime);\n    });\n  }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n  var parent = this.get(path.slice(0, -1));\n  var key = path[path.length - 1];\n  if (!parent.getChild(key).runtime) { return }\n\n  parent.removeChild(key);\n};\n\nfunction update (path, targetModule, newModule) {\n  if (true) {\n    assertRawModule(path, newModule);\n  }\n\n  // update target module\n  targetModule.update(newModule);\n\n  // update nested modules\n  if (newModule.modules) {\n    for (var key in newModule.modules) {\n      if (!targetModule.getChild(key)) {\n        if (true) {\n          console.warn(\n            \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n            'manual reload is needed'\n          );\n        }\n        return\n      }\n      update(\n        path.concat(key),\n        targetModule.getChild(key),\n        newModule.modules[key]\n      );\n    }\n  }\n}\n\nvar functionAssert = {\n  assert: function (value) { return typeof value === 'function'; },\n  expected: 'function'\n};\n\nvar objectAssert = {\n  assert: function (value) { return typeof value === 'function' ||\n    (typeof value === 'object' && typeof value.handler === 'function'); },\n  expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n  getters: functionAssert,\n  mutations: functionAssert,\n  actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n  Object.keys(assertTypes).forEach(function (key) {\n    if (!rawModule[key]) { return }\n\n    var assertOptions = assertTypes[key];\n\n    forEachValue(rawModule[key], function (value, type) {\n      assert(\n        assertOptions.assert(value),\n        makeAssertionMessage(path, key, type, value, assertOptions.expected)\n      );\n    });\n  });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n  var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n  if (path.length > 0) {\n    buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n  }\n  buf += \" is \" + (JSON.stringify(value)) + \".\";\n  return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n  var this$1 = this;\n  if ( options === void 0 ) options = {};\n\n  // Auto install if it is not done yet and `window` has `Vue`.\n  // To allow users to avoid auto-installation in some cases,\n  // this code should be placed here. See #731\n  if (!Vue && typeof window !== 'undefined' && window.Vue) {\n    install(window.Vue);\n  }\n\n  if (true) {\n    assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n    assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n    assert(this instanceof Store, \"store must be called with the new operator.\");\n  }\n\n  var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n  var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n  // store internal state\n  this._committing = false;\n  this._actions = Object.create(null);\n  this._actionSubscribers = [];\n  this._mutations = Object.create(null);\n  this._wrappedGetters = Object.create(null);\n  this._modules = new ModuleCollection(options);\n  this._modulesNamespaceMap = Object.create(null);\n  this._subscribers = [];\n  this._watcherVM = new Vue();\n\n  // bind commit and dispatch to self\n  var store = this;\n  var ref = this;\n  var dispatch = ref.dispatch;\n  var commit = ref.commit;\n  this.dispatch = function boundDispatch (type, payload) {\n    return dispatch.call(store, type, payload)\n  };\n  this.commit = function boundCommit (type, payload, options) {\n    return commit.call(store, type, payload, options)\n  };\n\n  // strict mode\n  this.strict = strict;\n\n  var state = this._modules.root.state;\n\n  // init root module.\n  // this also recursively registers all sub-modules\n  // and collects all module getters inside this._wrappedGetters\n  installModule(this, state, [], this._modules.root);\n\n  // initialize the store vm, which is responsible for the reactivity\n  // (also registers _wrappedGetters as computed properties)\n  resetStoreVM(this, state);\n\n  // apply plugins\n  plugins.forEach(function (plugin) { return plugin(this$1); });\n\n  var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n  if (useDevtools) {\n    devtoolPlugin(this);\n  }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n  return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n  if (true) {\n    assert(false, \"use store.replaceState() to explicit replace store state.\");\n  }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n    var this$1 = this;\n\n  // check object-style commit\n  var ref = unifyObjectStyle(_type, _payload, _options);\n    var type = ref.type;\n    var payload = ref.payload;\n    var options = ref.options;\n\n  var mutation = { type: type, payload: payload };\n  var entry = this._mutations[type];\n  if (!entry) {\n    if (true) {\n      console.error((\"[vuex] unknown mutation type: \" + type));\n    }\n    return\n  }\n  this._withCommit(function () {\n    entry.forEach(function commitIterator (handler) {\n      handler(payload);\n    });\n  });\n  this._subscribers.forEach(function (sub) { return sub(mutation, this$1.state); });\n\n  if (\n     true &&\n    options && options.silent\n  ) {\n    console.warn(\n      \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n      'Use the filter functionality in the vue-devtools'\n    );\n  }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n    var this$1 = this;\n\n  // check object-style dispatch\n  var ref = unifyObjectStyle(_type, _payload);\n    var type = ref.type;\n    var payload = ref.payload;\n\n  var action = { type: type, payload: payload };\n  var entry = this._actions[type];\n  if (!entry) {\n    if (true) {\n      console.error((\"[vuex] unknown action type: \" + type));\n    }\n    return\n  }\n\n  try {\n    this._actionSubscribers\n      .filter(function (sub) { return sub.before; })\n      .forEach(function (sub) { return sub.before(action, this$1.state); });\n  } catch (e) {\n    if (true) {\n      console.warn(\"[vuex] error in before action subscribers: \");\n      console.error(e);\n    }\n  }\n\n  var result = entry.length > 1\n    ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n    : entry[0](payload);\n\n  return result.then(function (res) {\n    try {\n      this$1._actionSubscribers\n        .filter(function (sub) { return sub.after; })\n        .forEach(function (sub) { return sub.after(action, this$1.state); });\n    } catch (e) {\n      if (true) {\n        console.warn(\"[vuex] error in after action subscribers: \");\n        console.error(e);\n      }\n    }\n    return res\n  })\n};\n\nStore.prototype.subscribe = function subscribe (fn) {\n  return genericSubscribe(fn, this._subscribers)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn) {\n  var subs = typeof fn === 'function' ? { before: fn } : fn;\n  return genericSubscribe(subs, this._actionSubscribers)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n    var this$1 = this;\n\n  if (true) {\n    assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n  }\n  return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n    var this$1 = this;\n\n  this._withCommit(function () {\n    this$1._vm._data.$$state = state;\n  });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n    if ( options === void 0 ) options = {};\n\n  if (typeof path === 'string') { path = [path]; }\n\n  if (true) {\n    assert(Array.isArray(path), \"module path must be a string or an Array.\");\n    assert(path.length > 0, 'cannot register the root module by using registerModule.');\n  }\n\n  this._modules.register(path, rawModule);\n  installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n  // reset store to update getters...\n  resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n    var this$1 = this;\n\n  if (typeof path === 'string') { path = [path]; }\n\n  if (true) {\n    assert(Array.isArray(path), \"module path must be a string or an Array.\");\n  }\n\n  this._modules.unregister(path);\n  this._withCommit(function () {\n    var parentState = getNestedState(this$1.state, path.slice(0, -1));\n    Vue.delete(parentState, path[path.length - 1]);\n  });\n  resetStore(this);\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n  this._modules.update(newOptions);\n  resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n  var committing = this._committing;\n  this._committing = true;\n  fn();\n  this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs) {\n  if (subs.indexOf(fn) < 0) {\n    subs.push(fn);\n  }\n  return function () {\n    var i = subs.indexOf(fn);\n    if (i > -1) {\n      subs.splice(i, 1);\n    }\n  }\n}\n\nfunction resetStore (store, hot) {\n  store._actions = Object.create(null);\n  store._mutations = Object.create(null);\n  store._wrappedGetters = Object.create(null);\n  store._modulesNamespaceMap = Object.create(null);\n  var state = store.state;\n  // init all modules\n  installModule(store, state, [], store._modules.root, true);\n  // reset vm\n  resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n  var oldVm = store._vm;\n\n  // bind store public getters\n  store.getters = {};\n  var wrappedGetters = store._wrappedGetters;\n  var computed = {};\n  forEachValue(wrappedGetters, function (fn, key) {\n    // use computed to leverage its lazy-caching mechanism\n    computed[key] = function () { return fn(store); };\n    Object.defineProperty(store.getters, key, {\n      get: function () { return store._vm[key]; },\n      enumerable: true // for local getters\n    });\n  });\n\n  // use a Vue instance to store the state tree\n  // suppress warnings just in case the user has added\n  // some funky global mixins\n  var silent = Vue.config.silent;\n  Vue.config.silent = true;\n  store._vm = new Vue({\n    data: {\n      $$state: state\n    },\n    computed: computed\n  });\n  Vue.config.silent = silent;\n\n  // enable strict mode for new vm\n  if (store.strict) {\n    enableStrictMode(store);\n  }\n\n  if (oldVm) {\n    if (hot) {\n      // dispatch changes in all subscribed watchers\n      // to force getter re-evaluation for hot reloading.\n      store._withCommit(function () {\n        oldVm._data.$$state = null;\n      });\n    }\n    Vue.nextTick(function () { return oldVm.$destroy(); });\n  }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n  var isRoot = !path.length;\n  var namespace = store._modules.getNamespace(path);\n\n  // register in namespace map\n  if (module.namespaced) {\n    store._modulesNamespaceMap[namespace] = module;\n  }\n\n  // set state\n  if (!isRoot && !hot) {\n    var parentState = getNestedState(rootState, path.slice(0, -1));\n    var moduleName = path[path.length - 1];\n    store._withCommit(function () {\n      Vue.set(parentState, moduleName, module.state);\n    });\n  }\n\n  var local = module.context = makeLocalContext(store, namespace, path);\n\n  module.forEachMutation(function (mutation, key) {\n    var namespacedType = namespace + key;\n    registerMutation(store, namespacedType, mutation, local);\n  });\n\n  module.forEachAction(function (action, key) {\n    var type = action.root ? key : namespace + key;\n    var handler = action.handler || action;\n    registerAction(store, type, handler, local);\n  });\n\n  module.forEachGetter(function (getter, key) {\n    var namespacedType = namespace + key;\n    registerGetter(store, namespacedType, getter, local);\n  });\n\n  module.forEachChild(function (child, key) {\n    installModule(store, rootState, path.concat(key), child, hot);\n  });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n  var noNamespace = namespace === '';\n\n  var local = {\n    dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n      var args = unifyObjectStyle(_type, _payload, _options);\n      var payload = args.payload;\n      var options = args.options;\n      var type = args.type;\n\n      if (!options || !options.root) {\n        type = namespace + type;\n        if ( true && !store._actions[type]) {\n          console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n          return\n        }\n      }\n\n      return store.dispatch(type, payload)\n    },\n\n    commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n      var args = unifyObjectStyle(_type, _payload, _options);\n      var payload = args.payload;\n      var options = args.options;\n      var type = args.type;\n\n      if (!options || !options.root) {\n        type = namespace + type;\n        if ( true && !store._mutations[type]) {\n          console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n          return\n        }\n      }\n\n      store.commit(type, payload, options);\n    }\n  };\n\n  // getters and state object must be gotten lazily\n  // because they will be changed by vm update\n  Object.defineProperties(local, {\n    getters: {\n      get: noNamespace\n        ? function () { return store.getters; }\n        : function () { return makeLocalGetters(store, namespace); }\n    },\n    state: {\n      get: function () { return getNestedState(store.state, path); }\n    }\n  });\n\n  return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n  var gettersProxy = {};\n\n  var splitPos = namespace.length;\n  Object.keys(store.getters).forEach(function (type) {\n    // skip if the target getter is not match this namespace\n    if (type.slice(0, splitPos) !== namespace) { return }\n\n    // extract local getter type\n    var localType = type.slice(splitPos);\n\n    // Add a port to the getters proxy.\n    // Define as getter property because\n    // we do not want to evaluate the getters in this time.\n    Object.defineProperty(gettersProxy, localType, {\n      get: function () { return store.getters[type]; },\n      enumerable: true\n    });\n  });\n\n  return gettersProxy\n}\n\nfunction registerMutation (store, type, handler, local) {\n  var entry = store._mutations[type] || (store._mutations[type] = []);\n  entry.push(function wrappedMutationHandler (payload) {\n    handler.call(store, local.state, payload);\n  });\n}\n\nfunction registerAction (store, type, handler, local) {\n  var entry = store._actions[type] || (store._actions[type] = []);\n  entry.push(function wrappedActionHandler (payload, cb) {\n    var res = handler.call(store, {\n      dispatch: local.dispatch,\n      commit: local.commit,\n      getters: local.getters,\n      state: local.state,\n      rootGetters: store.getters,\n      rootState: store.state\n    }, payload, cb);\n    if (!isPromise(res)) {\n      res = Promise.resolve(res);\n    }\n    if (store._devtoolHook) {\n      return res.catch(function (err) {\n        store._devtoolHook.emit('vuex:error', err);\n        throw err\n      })\n    } else {\n      return res\n    }\n  });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n  if (store._wrappedGetters[type]) {\n    if (true) {\n      console.error((\"[vuex] duplicate getter key: \" + type));\n    }\n    return\n  }\n  store._wrappedGetters[type] = function wrappedGetter (store) {\n    return rawGetter(\n      local.state, // local state\n      local.getters, // local getters\n      store.state, // root state\n      store.getters // root getters\n    )\n  };\n}\n\nfunction enableStrictMode (store) {\n  store._vm.$watch(function () { return this._data.$$state }, function () {\n    if (true) {\n      assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n    }\n  }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n  return path.length\n    ? path.reduce(function (state, key) { return state[key]; }, state)\n    : state\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n  if (isObject(type) && type.type) {\n    options = payload;\n    payload = type;\n    type = type.type;\n  }\n\n  if (true) {\n    assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n  }\n\n  return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n  if (Vue && _Vue === Vue) {\n    if (true) {\n      console.error(\n        '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n      );\n    }\n    return\n  }\n  Vue = _Vue;\n  applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n  var res = {};\n  normalizeMap(states).forEach(function (ref) {\n    var key = ref.key;\n    var val = ref.val;\n\n    res[key] = function mappedState () {\n      var state = this.$store.state;\n      var getters = this.$store.getters;\n      if (namespace) {\n        var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n        if (!module) {\n          return\n        }\n        state = module.context.state;\n        getters = module.context.getters;\n      }\n      return typeof val === 'function'\n        ? val.call(this, state, getters)\n        : state[val]\n    };\n    // mark vuex getter for devtools\n    res[key].vuex = true;\n  });\n  return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept anthor params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n  var res = {};\n  normalizeMap(mutations).forEach(function (ref) {\n    var key = ref.key;\n    var val = ref.val;\n\n    res[key] = function mappedMutation () {\n      var args = [], len = arguments.length;\n      while ( len-- ) args[ len ] = arguments[ len ];\n\n      // Get the commit method from store\n      var commit = this.$store.commit;\n      if (namespace) {\n        var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n        if (!module) {\n          return\n        }\n        commit = module.context.commit;\n      }\n      return typeof val === 'function'\n        ? val.apply(this, [commit].concat(args))\n        : commit.apply(this.$store, [val].concat(args))\n    };\n  });\n  return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n  var res = {};\n  normalizeMap(getters).forEach(function (ref) {\n    var key = ref.key;\n    var val = ref.val;\n\n    // The namespace has been mutated by normalizeNamespace\n    val = namespace + val;\n    res[key] = function mappedGetter () {\n      if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n        return\n      }\n      if ( true && !(val in this.$store.getters)) {\n        console.error((\"[vuex] unknown getter: \" + val));\n        return\n      }\n      return this.$store.getters[val]\n    };\n    // mark vuex getter for devtools\n    res[key].vuex = true;\n  });\n  return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n  var res = {};\n  normalizeMap(actions).forEach(function (ref) {\n    var key = ref.key;\n    var val = ref.val;\n\n    res[key] = function mappedAction () {\n      var args = [], len = arguments.length;\n      while ( len-- ) args[ len ] = arguments[ len ];\n\n      // get dispatch function from store\n      var dispatch = this.$store.dispatch;\n      if (namespace) {\n        var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n        if (!module) {\n          return\n        }\n        dispatch = module.context.dispatch;\n      }\n      return typeof val === 'function'\n        ? val.apply(this, [dispatch].concat(args))\n        : dispatch.apply(this.$store, [val].concat(args))\n    };\n  });\n  return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n  mapState: mapState.bind(null, namespace),\n  mapGetters: mapGetters.bind(null, namespace),\n  mapMutations: mapMutations.bind(null, namespace),\n  mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n  return Array.isArray(map)\n    ? map.map(function (key) { return ({ key: key, val: key }); })\n    : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n  return function (namespace, map) {\n    if (typeof namespace !== 'string') {\n      map = namespace;\n      namespace = '';\n    } else if (namespace.charAt(namespace.length - 1) !== '/') {\n      namespace += '/';\n    }\n    return fn(namespace, map)\n  }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n  var module = store._modulesNamespaceMap[namespace];\n  if ( true && !module) {\n    console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n  }\n  return module\n}\n\nvar index_esm = {\n  Store: Store,\n  install: install,\n  version: '3.1.0',\n  mapState: mapState,\n  mapMutations: mapMutations,\n  mapGetters: mapGetters,\n  mapActions: mapActions,\n  createNamespacedHelpers: createNamespacedHelpers\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (index_esm);\n\n\n\n//# sourceURL=webpack:///./node_modules/vuex/dist/vuex.esm.js?");

/***/ }),

/***/ "./node_modules/web-streams-polyfill/dist/ponyfill.js":
/*!************************************************************!*\
  !*** ./node_modules/web-streams-polyfill/dist/ponyfill.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(global) {/**\n * @license\n * web-streams-polyfill v3.3.3\n * Copyright 2024 Mattias Buelens, Diwank Singh Tomer and other contributors.\n * This code is released under the MIT license.\n * SPDX-License-Identifier: MIT\n */\n(function (global, factory) {\n     true ? factory(exports) :\n    undefined;\n})(this, (function (exports) { 'use strict';\n\n    /// <reference lib=\"es2015.symbol\" />\n    var SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ?\n        Symbol :\n        function (description) { return \"Symbol(\".concat(description, \")\"); };\n\n    /******************************************************************************\r\n    Copyright (c) Microsoft Corporation.\r\n\r\n    Permission to use, copy, modify, and/or distribute this software for any\r\n    purpose with or without fee is hereby granted.\r\n\r\n    THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n    PERFORMANCE OF THIS SOFTWARE.\r\n    ***************************************************************************** */\r\n    /* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\n\r\n    function __generator(thisArg, body) {\r\n        var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n        return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n        function verb(n) { return function (v) { return step([n, v]); }; }\r\n        function step(op) {\r\n            if (f) throw new TypeError(\"Generator is already executing.\");\r\n            while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n                if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n                if (y = 0, t) op = [op[0] & 2, t.value];\r\n                switch (op[0]) {\r\n                    case 0: case 1: t = op; break;\r\n                    case 4: _.label++; return { value: op[1], done: false };\r\n                    case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                    case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                    default:\r\n                        if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                        if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                        if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                        if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                        if (t[2]) _.ops.pop();\r\n                        _.trys.pop(); continue;\r\n                }\r\n                op = body.call(thisArg, _);\r\n            } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n            if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n        }\r\n    }\r\n\r\n    function __values(o) {\r\n        var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n        if (m) return m.call(o);\r\n        if (o && typeof o.length === \"number\") return {\r\n            next: function () {\r\n                if (o && i >= o.length) o = void 0;\r\n                return { value: o && o[i++], done: !o };\r\n            }\r\n        };\r\n        throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n    }\r\n\r\n    function __await(v) {\r\n        return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n    }\r\n\r\n    function __asyncGenerator(thisArg, _arguments, generator) {\r\n        if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n        var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n        return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n        function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n        function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n        function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n        function fulfill(value) { resume(\"next\", value); }\r\n        function reject(value) { resume(\"throw\", value); }\r\n        function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n    }\r\n\r\n    function __asyncDelegator(o) {\r\n        var i, p;\r\n        return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n        function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n    }\r\n\r\n    function __asyncValues(o) {\r\n        if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n        var m = o[Symbol.asyncIterator], i;\r\n        return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n        function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n        function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n    }\r\n\r\n    typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n        var e = new Error(message);\r\n        return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n    };\n\n    function noop() {\n        return undefined;\n    }\n\n    function typeIsObject(x) {\n        return (typeof x === 'object' && x !== null) || typeof x === 'function';\n    }\n    var rethrowAssertionErrorRejection = noop;\n    function setFunctionName(fn, name) {\n        try {\n            Object.defineProperty(fn, 'name', {\n                value: name,\n                configurable: true\n            });\n        }\n        catch (_a) {\n            // This property is non-configurable in older browsers, so ignore if this throws.\n            // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n        }\n    }\n\n    var originalPromise = Promise;\n    var originalPromiseThen = Promise.prototype.then;\n    var originalPromiseReject = Promise.reject.bind(originalPromise);\n    // https://webidl.spec.whatwg.org/#a-new-promise\n    function newPromise(executor) {\n        return new originalPromise(executor);\n    }\n    // https://webidl.spec.whatwg.org/#a-promise-resolved-with\n    function promiseResolvedWith(value) {\n        return newPromise(function (resolve) { return resolve(value); });\n    }\n    // https://webidl.spec.whatwg.org/#a-promise-rejected-with\n    function promiseRejectedWith(reason) {\n        return originalPromiseReject(reason);\n    }\n    function PerformPromiseThen(promise, onFulfilled, onRejected) {\n        // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an\n        // approximation.\n        return originalPromiseThen.call(promise, onFulfilled, onRejected);\n    }\n    // Bluebird logs a warning when a promise is created within a fulfillment handler, but then isn't returned\n    // from that handler. To prevent this, return null instead of void from all handlers.\n    // http://bluebirdjs.com/docs/warning-explanations.html#warning-a-promise-was-created-in-a-handler-but-was-not-returned-from-it\n    function uponPromise(promise, onFulfilled, onRejected) {\n        PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\n    }\n    function uponFulfillment(promise, onFulfilled) {\n        uponPromise(promise, onFulfilled);\n    }\n    function uponRejection(promise, onRejected) {\n        uponPromise(promise, undefined, onRejected);\n    }\n    function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\n        return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\n    }\n    function setPromiseIsHandledToTrue(promise) {\n        PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\n    }\n    var _queueMicrotask = function (callback) {\n        if (typeof queueMicrotask === 'function') {\n            _queueMicrotask = queueMicrotask;\n        }\n        else {\n            var resolvedPromise_1 = promiseResolvedWith(undefined);\n            _queueMicrotask = function (cb) { return PerformPromiseThen(resolvedPromise_1, cb); };\n        }\n        return _queueMicrotask(callback);\n    };\n    function reflectCall(F, V, args) {\n        if (typeof F !== 'function') {\n            throw new TypeError('Argument is not a function');\n        }\n        return Function.prototype.apply.call(F, V, args);\n    }\n    function promiseCall(F, V, args) {\n        try {\n            return promiseResolvedWith(reflectCall(F, V, args));\n        }\n        catch (value) {\n            return promiseRejectedWith(value);\n        }\n    }\n\n    // Original from Chromium\n    // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\n    var QUEUE_MAX_ARRAY_SIZE = 16384;\n    /**\n     * Simple queue structure.\n     *\n     * Avoids scalability issues with using a packed array directly by using\n     * multiple arrays in a linked list and keeping the array size bounded.\n     */\n    var SimpleQueue = /** @class */ (function () {\n        function SimpleQueue() {\n            this._cursor = 0;\n            this._size = 0;\n            // _front and _back are always defined.\n            this._front = {\n                _elements: [],\n                _next: undefined\n            };\n            this._back = this._front;\n            // The cursor is used to avoid calling Array.shift().\n            // It contains the index of the front element of the array inside the\n            // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\n            this._cursor = 0;\n            // When there is only one node, size === elements.length - cursor.\n            this._size = 0;\n        }\n        Object.defineProperty(SimpleQueue.prototype, \"length\", {\n            get: function () {\n                return this._size;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        // For exception safety, this method is structured in order:\n        // 1. Read state\n        // 2. Calculate required state mutations\n        // 3. Perform state mutations\n        SimpleQueue.prototype.push = function (element) {\n            var oldBack = this._back;\n            var newBack = oldBack;\n            if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\n                newBack = {\n                    _elements: [],\n                    _next: undefined\n                };\n            }\n            // push() is the mutation most likely to throw an exception, so it\n            // goes first.\n            oldBack._elements.push(element);\n            if (newBack !== oldBack) {\n                this._back = newBack;\n                oldBack._next = newBack;\n            }\n            ++this._size;\n        };\n        // Like push(), shift() follows the read -> calculate -> mutate pattern for\n        // exception safety.\n        SimpleQueue.prototype.shift = function () { // must not be called on an empty queue\n            var oldFront = this._front;\n            var newFront = oldFront;\n            var oldCursor = this._cursor;\n            var newCursor = oldCursor + 1;\n            var elements = oldFront._elements;\n            var element = elements[oldCursor];\n            if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\n                newFront = oldFront._next;\n                newCursor = 0;\n            }\n            // No mutations before this point.\n            --this._size;\n            this._cursor = newCursor;\n            if (oldFront !== newFront) {\n                this._front = newFront;\n            }\n            // Permit shifted element to be garbage collected.\n            elements[oldCursor] = undefined;\n            return element;\n        };\n        // The tricky thing about forEach() is that it can be called\n        // re-entrantly. The queue may be mutated inside the callback. It is easy to\n        // see that push() within the callback has no negative effects since the end\n        // of the queue is checked for on every iteration. If shift() is called\n        // repeatedly within the callback then the next iteration may return an\n        // element that has been removed. In this case the callback will be called\n        // with undefined values until we either \"catch up\" with elements that still\n        // exist or reach the back of the queue.\n        SimpleQueue.prototype.forEach = function (callback) {\n            var i = this._cursor;\n            var node = this._front;\n            var elements = node._elements;\n            while (i !== elements.length || node._next !== undefined) {\n                if (i === elements.length) {\n                    node = node._next;\n                    elements = node._elements;\n                    i = 0;\n                    if (elements.length === 0) {\n                        break;\n                    }\n                }\n                callback(elements[i]);\n                ++i;\n            }\n        };\n        // Return the element that would be returned if shift() was called now,\n        // without modifying the queue.\n        SimpleQueue.prototype.peek = function () { // must not be called on an empty queue\n            var front = this._front;\n            var cursor = this._cursor;\n            return front._elements[cursor];\n        };\n        return SimpleQueue;\n    }());\n\n    var AbortSteps = SymbolPolyfill('[[AbortSteps]]');\n    var ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\n    var CancelSteps = SymbolPolyfill('[[CancelSteps]]');\n    var PullSteps = SymbolPolyfill('[[PullSteps]]');\n    var ReleaseSteps = SymbolPolyfill('[[ReleaseSteps]]');\n\n    function ReadableStreamReaderGenericInitialize(reader, stream) {\n        reader._ownerReadableStream = stream;\n        stream._reader = reader;\n        if (stream._state === 'readable') {\n            defaultReaderClosedPromiseInitialize(reader);\n        }\n        else if (stream._state === 'closed') {\n            defaultReaderClosedPromiseInitializeAsResolved(reader);\n        }\n        else {\n            defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n        }\n    }\n    // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n    // check.\n    function ReadableStreamReaderGenericCancel(reader, reason) {\n        var stream = reader._ownerReadableStream;\n        return ReadableStreamCancel(stream, reason);\n    }\n    function ReadableStreamReaderGenericRelease(reader) {\n        var stream = reader._ownerReadableStream;\n        if (stream._state === 'readable') {\n            defaultReaderClosedPromiseReject(reader, new TypeError(\"Reader was released and can no longer be used to monitor the stream's closedness\"));\n        }\n        else {\n            defaultReaderClosedPromiseResetToRejected(reader, new TypeError(\"Reader was released and can no longer be used to monitor the stream's closedness\"));\n        }\n        stream._readableStreamController[ReleaseSteps]();\n        stream._reader = undefined;\n        reader._ownerReadableStream = undefined;\n    }\n    // Helper functions for the readers.\n    function readerLockException(name) {\n        return new TypeError('Cannot ' + name + ' a stream using a released reader');\n    }\n    // Helper functions for the ReadableStreamDefaultReader.\n    function defaultReaderClosedPromiseInitialize(reader) {\n        reader._closedPromise = newPromise(function (resolve, reject) {\n            reader._closedPromise_resolve = resolve;\n            reader._closedPromise_reject = reject;\n        });\n    }\n    function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n        defaultReaderClosedPromiseInitialize(reader);\n        defaultReaderClosedPromiseReject(reader, reason);\n    }\n    function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n        defaultReaderClosedPromiseInitialize(reader);\n        defaultReaderClosedPromiseResolve(reader);\n    }\n    function defaultReaderClosedPromiseReject(reader, reason) {\n        if (reader._closedPromise_reject === undefined) {\n            return;\n        }\n        setPromiseIsHandledToTrue(reader._closedPromise);\n        reader._closedPromise_reject(reason);\n        reader._closedPromise_resolve = undefined;\n        reader._closedPromise_reject = undefined;\n    }\n    function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n        defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\n    }\n    function defaultReaderClosedPromiseResolve(reader) {\n        if (reader._closedPromise_resolve === undefined) {\n            return;\n        }\n        reader._closedPromise_resolve(undefined);\n        reader._closedPromise_resolve = undefined;\n        reader._closedPromise_reject = undefined;\n    }\n\n    /// <reference lib=\"es2015.core\" />\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill\n    var NumberIsFinite = Number.isFinite || function (x) {\n        return typeof x === 'number' && isFinite(x);\n    };\n\n    /// <reference lib=\"es2015.core\" />\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc#Polyfill\n    var MathTrunc = Math.trunc || function (v) {\n        return v < 0 ? Math.ceil(v) : Math.floor(v);\n    };\n\n    // https://heycam.github.io/webidl/#idl-dictionaries\n    function isDictionary(x) {\n        return typeof x === 'object' || typeof x === 'function';\n    }\n    function assertDictionary(obj, context) {\n        if (obj !== undefined && !isDictionary(obj)) {\n            throw new TypeError(\"\".concat(context, \" is not an object.\"));\n        }\n    }\n    // https://heycam.github.io/webidl/#idl-callback-functions\n    function assertFunction(x, context) {\n        if (typeof x !== 'function') {\n            throw new TypeError(\"\".concat(context, \" is not a function.\"));\n        }\n    }\n    // https://heycam.github.io/webidl/#idl-object\n    function isObject(x) {\n        return (typeof x === 'object' && x !== null) || typeof x === 'function';\n    }\n    function assertObject(x, context) {\n        if (!isObject(x)) {\n            throw new TypeError(\"\".concat(context, \" is not an object.\"));\n        }\n    }\n    function assertRequiredArgument(x, position, context) {\n        if (x === undefined) {\n            throw new TypeError(\"Parameter \".concat(position, \" is required in '\").concat(context, \"'.\"));\n        }\n    }\n    function assertRequiredField(x, field, context) {\n        if (x === undefined) {\n            throw new TypeError(\"\".concat(field, \" is required in '\").concat(context, \"'.\"));\n        }\n    }\n    // https://heycam.github.io/webidl/#idl-unrestricted-double\n    function convertUnrestrictedDouble(value) {\n        return Number(value);\n    }\n    function censorNegativeZero(x) {\n        return x === 0 ? 0 : x;\n    }\n    function integerPart(x) {\n        return censorNegativeZero(MathTrunc(x));\n    }\n    // https://heycam.github.io/webidl/#idl-unsigned-long-long\n    function convertUnsignedLongLongWithEnforceRange(value, context) {\n        var lowerBound = 0;\n        var upperBound = Number.MAX_SAFE_INTEGER;\n        var x = Number(value);\n        x = censorNegativeZero(x);\n        if (!NumberIsFinite(x)) {\n            throw new TypeError(\"\".concat(context, \" is not a finite number\"));\n        }\n        x = integerPart(x);\n        if (x < lowerBound || x > upperBound) {\n            throw new TypeError(\"\".concat(context, \" is outside the accepted range of \").concat(lowerBound, \" to \").concat(upperBound, \", inclusive\"));\n        }\n        if (!NumberIsFinite(x) || x === 0) {\n            return 0;\n        }\n        // TODO Use BigInt if supported?\n        // let xBigInt = BigInt(integerPart(x));\n        // xBigInt = BigInt.asUintN(64, xBigInt);\n        // return Number(xBigInt);\n        return x;\n    }\n\n    function assertReadableStream(x, context) {\n        if (!IsReadableStream(x)) {\n            throw new TypeError(\"\".concat(context, \" is not a ReadableStream.\"));\n        }\n    }\n\n    // Abstract operations for the ReadableStream.\n    function AcquireReadableStreamDefaultReader(stream) {\n        return new ReadableStreamDefaultReader(stream);\n    }\n    // ReadableStream API exposed for controllers.\n    function ReadableStreamAddReadRequest(stream, readRequest) {\n        stream._reader._readRequests.push(readRequest);\n    }\n    function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n        var reader = stream._reader;\n        var readRequest = reader._readRequests.shift();\n        if (done) {\n            readRequest._closeSteps();\n        }\n        else {\n            readRequest._chunkSteps(chunk);\n        }\n    }\n    function ReadableStreamGetNumReadRequests(stream) {\n        return stream._reader._readRequests.length;\n    }\n    function ReadableStreamHasDefaultReader(stream) {\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return false;\n        }\n        if (!IsReadableStreamDefaultReader(reader)) {\n            return false;\n        }\n        return true;\n    }\n    /**\n     * A default reader vended by a {@link ReadableStream}.\n     *\n     * @public\n     */\n    var ReadableStreamDefaultReader = /** @class */ (function () {\n        function ReadableStreamDefaultReader(stream) {\n            assertRequiredArgument(stream, 1, 'ReadableStreamDefaultReader');\n            assertReadableStream(stream, 'First parameter');\n            if (IsReadableStreamLocked(stream)) {\n                throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n            }\n            ReadableStreamReaderGenericInitialize(this, stream);\n            this._readRequests = new SimpleQueue();\n        }\n        Object.defineProperty(ReadableStreamDefaultReader.prototype, \"closed\", {\n            /**\n             * Returns a promise that will be fulfilled when the stream becomes closed,\n             * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing.\n             */\n            get: function () {\n                if (!IsReadableStreamDefaultReader(this)) {\n                    return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\n                }\n                return this._closedPromise;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n         */\n        ReadableStreamDefaultReader.prototype.cancel = function (reason) {\n            if (reason === void 0) { reason = undefined; }\n            if (!IsReadableStreamDefaultReader(this)) {\n                return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('cancel'));\n            }\n            return ReadableStreamReaderGenericCancel(this, reason);\n        };\n        /**\n         * Returns a promise that allows access to the next chunk from the stream's internal queue, if available.\n         *\n         * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n         */\n        ReadableStreamDefaultReader.prototype.read = function () {\n            if (!IsReadableStreamDefaultReader(this)) {\n                return promiseRejectedWith(defaultReaderBrandCheckException('read'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('read from'));\n            }\n            var resolvePromise;\n            var rejectPromise;\n            var promise = newPromise(function (resolve, reject) {\n                resolvePromise = resolve;\n                rejectPromise = reject;\n            });\n            var readRequest = {\n                _chunkSteps: function (chunk) { return resolvePromise({ value: chunk, done: false }); },\n                _closeSteps: function () { return resolvePromise({ value: undefined, done: true }); },\n                _errorSteps: function (e) { return rejectPromise(e); }\n            };\n            ReadableStreamDefaultReaderRead(this, readRequest);\n            return promise;\n        };\n        /**\n         * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n         * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n         * from now on; otherwise, the reader will appear closed.\n         *\n         * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n         * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to\n         * do so will throw a `TypeError` and leave the reader locked to the stream.\n         */\n        ReadableStreamDefaultReader.prototype.releaseLock = function () {\n            if (!IsReadableStreamDefaultReader(this)) {\n                throw defaultReaderBrandCheckException('releaseLock');\n            }\n            if (this._ownerReadableStream === undefined) {\n                return;\n            }\n            ReadableStreamDefaultReaderRelease(this);\n        };\n        return ReadableStreamDefaultReader;\n    }());\n    Object.defineProperties(ReadableStreamDefaultReader.prototype, {\n        cancel: { enumerable: true },\n        read: { enumerable: true },\n        releaseLock: { enumerable: true },\n        closed: { enumerable: true }\n    });\n    setFunctionName(ReadableStreamDefaultReader.prototype.cancel, 'cancel');\n    setFunctionName(ReadableStreamDefaultReader.prototype.read, 'read');\n    setFunctionName(ReadableStreamDefaultReader.prototype.releaseLock, 'releaseLock');\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableStreamDefaultReader.prototype, SymbolPolyfill.toStringTag, {\n            value: 'ReadableStreamDefaultReader',\n            configurable: true\n        });\n    }\n    // Abstract operations for the readers.\n    function IsReadableStreamDefaultReader(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n            return false;\n        }\n        return x instanceof ReadableStreamDefaultReader;\n    }\n    function ReadableStreamDefaultReaderRead(reader, readRequest) {\n        var stream = reader._ownerReadableStream;\n        stream._disturbed = true;\n        if (stream._state === 'closed') {\n            readRequest._closeSteps();\n        }\n        else if (stream._state === 'errored') {\n            readRequest._errorSteps(stream._storedError);\n        }\n        else {\n            stream._readableStreamController[PullSteps](readRequest);\n        }\n    }\n    function ReadableStreamDefaultReaderRelease(reader) {\n        ReadableStreamReaderGenericRelease(reader);\n        var e = new TypeError('Reader was released');\n        ReadableStreamDefaultReaderErrorReadRequests(reader, e);\n    }\n    function ReadableStreamDefaultReaderErrorReadRequests(reader, e) {\n        var readRequests = reader._readRequests;\n        reader._readRequests = new SimpleQueue();\n        readRequests.forEach(function (readRequest) {\n            readRequest._errorSteps(e);\n        });\n    }\n    // Helper functions for the ReadableStreamDefaultReader.\n    function defaultReaderBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamDefaultReader.prototype.\".concat(name, \" can only be used on a ReadableStreamDefaultReader\"));\n    }\n\n    var _a$1, _b, _c;\n    function CreateArrayFromList(elements) {\n        // We use arrays to represent lists, so this is basically a no-op.\n        // Do a slice though just in case we happen to depend on the unique-ness.\n        return elements.slice();\n    }\n    function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) {\n        new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n    }\n    var TransferArrayBuffer = function (O) {\n        if (typeof O.transfer === 'function') {\n            TransferArrayBuffer = function (buffer) { return buffer.transfer(); };\n        }\n        else if (typeof structuredClone === 'function') {\n            TransferArrayBuffer = function (buffer) { return structuredClone(buffer, { transfer: [buffer] }); };\n        }\n        else {\n            // Not implemented correctly\n            TransferArrayBuffer = function (buffer) { return buffer; };\n        }\n        return TransferArrayBuffer(O);\n    };\n    var IsDetachedBuffer = function (O) {\n        if (typeof O.detached === 'boolean') {\n            IsDetachedBuffer = function (buffer) { return buffer.detached; };\n        }\n        else {\n            // Not implemented correctly\n            IsDetachedBuffer = function (buffer) { return buffer.byteLength === 0; };\n        }\n        return IsDetachedBuffer(O);\n    };\n    function ArrayBufferSlice(buffer, begin, end) {\n        // ArrayBuffer.prototype.slice is not available on IE10\n        // https://www.caniuse.com/mdn-javascript_builtins_arraybuffer_slice\n        if (buffer.slice) {\n            return buffer.slice(begin, end);\n        }\n        var length = end - begin;\n        var slice = new ArrayBuffer(length);\n        CopyDataBlockBytes(slice, 0, buffer, begin, length);\n        return slice;\n    }\n    function GetMethod(receiver, prop) {\n        var func = receiver[prop];\n        if (func === undefined || func === null) {\n            return undefined;\n        }\n        if (typeof func !== 'function') {\n            throw new TypeError(\"\".concat(String(prop), \" is not a function\"));\n        }\n        return func;\n    }\n    function CreateAsyncFromSyncIterator(syncIteratorRecord) {\n        // Instead of re-implementing CreateAsyncFromSyncIterator and %AsyncFromSyncIteratorPrototype%,\n        // we use yield* inside an async generator function to achieve the same result.\n        var _a;\n        // Wrap the sync iterator inside a sync iterable, so we can use it with yield*.\n        var syncIterable = (_a = {},\n            _a[SymbolPolyfill.iterator] = function () { return syncIteratorRecord.iterator; },\n            _a);\n        // Create an async generator function and immediately invoke it.\n        var asyncIterator = (function () {\n            return __asyncGenerator(this, arguments, function () {\n                return __generator(this, function (_a) {\n                    switch (_a.label) {\n                        case 0: return [5 /*yield**/, __values(__asyncDelegator(__asyncValues(syncIterable)))];\n                        case 1: return [4 /*yield*/, __await.apply(void 0, [_a.sent()])];\n                        case 2: return [4 /*yield*/, __await.apply(void 0, [_a.sent()])];\n                        case 3: return [2 /*return*/, _a.sent()];\n                    }\n                });\n            });\n        }());\n        // Return as an async iterator record.\n        var nextMethod = asyncIterator.next;\n        return { iterator: asyncIterator, nextMethod: nextMethod, done: false };\n    }\n    // Aligns with core-js/modules/es.symbol.async-iterator.js\n    var SymbolAsyncIterator = (_c = (_a$1 = SymbolPolyfill.asyncIterator) !== null && _a$1 !== void 0 ? _a$1 : (_b = SymbolPolyfill.for) === null || _b === void 0 ? void 0 : _b.call(SymbolPolyfill, 'Symbol.asyncIterator')) !== null && _c !== void 0 ? _c : '@@asyncIterator';\n    function GetIterator(obj, hint, method) {\n        if (hint === void 0) { hint = 'sync'; }\n        if (method === undefined) {\n            if (hint === 'async') {\n                method = GetMethod(obj, SymbolAsyncIterator);\n                if (method === undefined) {\n                    var syncMethod = GetMethod(obj, SymbolPolyfill.iterator);\n                    var syncIteratorRecord = GetIterator(obj, 'sync', syncMethod);\n                    return CreateAsyncFromSyncIterator(syncIteratorRecord);\n                }\n            }\n            else {\n                method = GetMethod(obj, SymbolPolyfill.iterator);\n            }\n        }\n        if (method === undefined) {\n            throw new TypeError('The object is not iterable');\n        }\n        var iterator = reflectCall(method, obj, []);\n        if (!typeIsObject(iterator)) {\n            throw new TypeError('The iterator method must return an object');\n        }\n        var nextMethod = iterator.next;\n        return { iterator: iterator, nextMethod: nextMethod, done: false };\n    }\n    function IteratorNext(iteratorRecord) {\n        var result = reflectCall(iteratorRecord.nextMethod, iteratorRecord.iterator, []);\n        if (!typeIsObject(result)) {\n            throw new TypeError('The iterator.next() method must return an object');\n        }\n        return result;\n    }\n    function IteratorComplete(iterResult) {\n        return Boolean(iterResult.done);\n    }\n    function IteratorValue(iterResult) {\n        return iterResult.value;\n    }\n\n    /// <reference lib=\"es2018.asynciterable\" />\n    var _a;\n    // We cannot access %AsyncIteratorPrototype% without non-ES2018 syntax, but we can re-create it.\n    var AsyncIteratorPrototype = (_a = {},\n        // 25.1.3.1 %AsyncIteratorPrototype% [ @@asyncIterator ] ( )\n        // https://tc39.github.io/ecma262/#sec-asynciteratorprototype-asynciterator\n        _a[SymbolAsyncIterator] = function () {\n            return this;\n        },\n        _a);\n    Object.defineProperty(AsyncIteratorPrototype, SymbolAsyncIterator, { enumerable: false });\n\n    /// <reference lib=\"es2018.asynciterable\" />\n    var ReadableStreamAsyncIteratorImpl = /** @class */ (function () {\n        function ReadableStreamAsyncIteratorImpl(reader, preventCancel) {\n            this._ongoingPromise = undefined;\n            this._isFinished = false;\n            this._reader = reader;\n            this._preventCancel = preventCancel;\n        }\n        ReadableStreamAsyncIteratorImpl.prototype.next = function () {\n            var _this = this;\n            var nextSteps = function () { return _this._nextSteps(); };\n            this._ongoingPromise = this._ongoingPromise ?\n                transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) :\n                nextSteps();\n            return this._ongoingPromise;\n        };\n        ReadableStreamAsyncIteratorImpl.prototype.return = function (value) {\n            var _this = this;\n            var returnSteps = function () { return _this._returnSteps(value); };\n            return this._ongoingPromise ?\n                transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) :\n                returnSteps();\n        };\n        ReadableStreamAsyncIteratorImpl.prototype._nextSteps = function () {\n            var _this = this;\n            if (this._isFinished) {\n                return Promise.resolve({ value: undefined, done: true });\n            }\n            var reader = this._reader;\n            var resolvePromise;\n            var rejectPromise;\n            var promise = newPromise(function (resolve, reject) {\n                resolvePromise = resolve;\n                rejectPromise = reject;\n            });\n            var readRequest = {\n                _chunkSteps: function (chunk) {\n                    _this._ongoingPromise = undefined;\n                    // This needs to be delayed by one microtask, otherwise we stop pulling too early which breaks a test.\n                    // FIXME Is this a bug in the specification, or in the test?\n                    _queueMicrotask(function () { return resolvePromise({ value: chunk, done: false }); });\n                },\n                _closeSteps: function () {\n                    _this._ongoingPromise = undefined;\n                    _this._isFinished = true;\n                    ReadableStreamReaderGenericRelease(reader);\n                    resolvePromise({ value: undefined, done: true });\n                },\n                _errorSteps: function (reason) {\n                    _this._ongoingPromise = undefined;\n                    _this._isFinished = true;\n                    ReadableStreamReaderGenericRelease(reader);\n                    rejectPromise(reason);\n                }\n            };\n            ReadableStreamDefaultReaderRead(reader, readRequest);\n            return promise;\n        };\n        ReadableStreamAsyncIteratorImpl.prototype._returnSteps = function (value) {\n            if (this._isFinished) {\n                return Promise.resolve({ value: value, done: true });\n            }\n            this._isFinished = true;\n            var reader = this._reader;\n            if (!this._preventCancel) {\n                var result = ReadableStreamReaderGenericCancel(reader, value);\n                ReadableStreamReaderGenericRelease(reader);\n                return transformPromiseWith(result, function () { return ({ value: value, done: true }); });\n            }\n            ReadableStreamReaderGenericRelease(reader);\n            return promiseResolvedWith({ value: value, done: true });\n        };\n        return ReadableStreamAsyncIteratorImpl;\n    }());\n    var ReadableStreamAsyncIteratorPrototype = {\n        next: function () {\n            if (!IsReadableStreamAsyncIterator(this)) {\n                return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n            }\n            return this._asyncIteratorImpl.next();\n        },\n        return: function (value) {\n            if (!IsReadableStreamAsyncIterator(this)) {\n                return promiseRejectedWith(streamAsyncIteratorBrandCheckException('return'));\n            }\n            return this._asyncIteratorImpl.return(value);\n        }\n    };\n    Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\n    // Abstract operations for the ReadableStream.\n    function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\n        var reader = AcquireReadableStreamDefaultReader(stream);\n        var impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel);\n        var iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\n        iterator._asyncIteratorImpl = impl;\n        return iterator;\n    }\n    function IsReadableStreamAsyncIterator(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorImpl')) {\n            return false;\n        }\n        try {\n            // noinspection SuspiciousTypeOfGuard\n            return x._asyncIteratorImpl instanceof\n                ReadableStreamAsyncIteratorImpl;\n        }\n        catch (_a) {\n            return false;\n        }\n    }\n    // Helper functions for the ReadableStream.\n    function streamAsyncIteratorBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamAsyncIterator.\".concat(name, \" can only be used on a ReadableSteamAsyncIterator\"));\n    }\n\n    /// <reference lib=\"es2015.core\" />\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\n    var NumberIsNaN = Number.isNaN || function (x) {\n        // eslint-disable-next-line no-self-compare\n        return x !== x;\n    };\n\n    function IsNonNegativeNumber(v) {\n        if (typeof v !== 'number') {\n            return false;\n        }\n        if (NumberIsNaN(v)) {\n            return false;\n        }\n        if (v < 0) {\n            return false;\n        }\n        return true;\n    }\n    function CloneAsUint8Array(O) {\n        var buffer = ArrayBufferSlice(O.buffer, O.byteOffset, O.byteOffset + O.byteLength);\n        return new Uint8Array(buffer);\n    }\n\n    function DequeueValue(container) {\n        var pair = container._queue.shift();\n        container._queueTotalSize -= pair.size;\n        if (container._queueTotalSize < 0) {\n            container._queueTotalSize = 0;\n        }\n        return pair.value;\n    }\n    function EnqueueValueWithSize(container, value, size) {\n        if (!IsNonNegativeNumber(size) || size === Infinity) {\n            throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n        }\n        container._queue.push({ value: value, size: size });\n        container._queueTotalSize += size;\n    }\n    function PeekQueueValue(container) {\n        var pair = container._queue.peek();\n        return pair.value;\n    }\n    function ResetQueue(container) {\n        container._queue = new SimpleQueue();\n        container._queueTotalSize = 0;\n    }\n\n    function isDataViewConstructor(ctor) {\n        return ctor === DataView;\n    }\n    function isDataView(view) {\n        return isDataViewConstructor(view.constructor);\n    }\n    function arrayBufferViewElementSize(ctor) {\n        if (isDataViewConstructor(ctor)) {\n            return 1;\n        }\n        return ctor.BYTES_PER_ELEMENT;\n    }\n\n    /**\n     * A pull-into request in a {@link ReadableByteStreamController}.\n     *\n     * @public\n     */\n    var ReadableStreamBYOBRequest = /** @class */ (function () {\n        function ReadableStreamBYOBRequest() {\n            throw new TypeError('Illegal constructor');\n        }\n        Object.defineProperty(ReadableStreamBYOBRequest.prototype, \"view\", {\n            /**\n             * Returns the view for writing in to, or `null` if the BYOB request has already been responded to.\n             */\n            get: function () {\n                if (!IsReadableStreamBYOBRequest(this)) {\n                    throw byobRequestBrandCheckException('view');\n                }\n                return this._view;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        ReadableStreamBYOBRequest.prototype.respond = function (bytesWritten) {\n            if (!IsReadableStreamBYOBRequest(this)) {\n                throw byobRequestBrandCheckException('respond');\n            }\n            assertRequiredArgument(bytesWritten, 1, 'respond');\n            bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, 'First parameter');\n            if (this._associatedReadableByteStreamController === undefined) {\n                throw new TypeError('This BYOB request has been invalidated');\n            }\n            if (IsDetachedBuffer(this._view.buffer)) {\n                throw new TypeError(\"The BYOB request's buffer has been detached and so cannot be used as a response\");\n            }\n            ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n        };\n        ReadableStreamBYOBRequest.prototype.respondWithNewView = function (view) {\n            if (!IsReadableStreamBYOBRequest(this)) {\n                throw byobRequestBrandCheckException('respondWithNewView');\n            }\n            assertRequiredArgument(view, 1, 'respondWithNewView');\n            if (!ArrayBuffer.isView(view)) {\n                throw new TypeError('You can only respond with array buffer views');\n            }\n            if (this._associatedReadableByteStreamController === undefined) {\n                throw new TypeError('This BYOB request has been invalidated');\n            }\n            if (IsDetachedBuffer(view.buffer)) {\n                throw new TypeError('The given view\\'s buffer has been detached and so cannot be used as a response');\n            }\n            ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n        };\n        return ReadableStreamBYOBRequest;\n    }());\n    Object.defineProperties(ReadableStreamBYOBRequest.prototype, {\n        respond: { enumerable: true },\n        respondWithNewView: { enumerable: true },\n        view: { enumerable: true }\n    });\n    setFunctionName(ReadableStreamBYOBRequest.prototype.respond, 'respond');\n    setFunctionName(ReadableStreamBYOBRequest.prototype.respondWithNewView, 'respondWithNewView');\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableStreamBYOBRequest.prototype, SymbolPolyfill.toStringTag, {\n            value: 'ReadableStreamBYOBRequest',\n            configurable: true\n        });\n    }\n    /**\n     * Allows control of a {@link ReadableStream | readable byte stream}'s state and internal queue.\n     *\n     * @public\n     */\n    var ReadableByteStreamController = /** @class */ (function () {\n        function ReadableByteStreamController() {\n            throw new TypeError('Illegal constructor');\n        }\n        Object.defineProperty(ReadableByteStreamController.prototype, \"byobRequest\", {\n            /**\n             * Returns the current BYOB pull request, or `null` if there isn't one.\n             */\n            get: function () {\n                if (!IsReadableByteStreamController(this)) {\n                    throw byteStreamControllerBrandCheckException('byobRequest');\n                }\n                return ReadableByteStreamControllerGetBYOBRequest(this);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(ReadableByteStreamController.prototype, \"desiredSize\", {\n            /**\n             * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n             * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure.\n             */\n            get: function () {\n                if (!IsReadableByteStreamController(this)) {\n                    throw byteStreamControllerBrandCheckException('desiredSize');\n                }\n                return ReadableByteStreamControllerGetDesiredSize(this);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n         * the stream, but once those are read, the stream will become closed.\n         */\n        ReadableByteStreamController.prototype.close = function () {\n            if (!IsReadableByteStreamController(this)) {\n                throw byteStreamControllerBrandCheckException('close');\n            }\n            if (this._closeRequested) {\n                throw new TypeError('The stream has already been closed; do not close it again!');\n            }\n            var state = this._controlledReadableByteStream._state;\n            if (state !== 'readable') {\n                throw new TypeError(\"The stream (in \".concat(state, \" state) is not in the readable state and cannot be closed\"));\n            }\n            ReadableByteStreamControllerClose(this);\n        };\n        ReadableByteStreamController.prototype.enqueue = function (chunk) {\n            if (!IsReadableByteStreamController(this)) {\n                throw byteStreamControllerBrandCheckException('enqueue');\n            }\n            assertRequiredArgument(chunk, 1, 'enqueue');\n            if (!ArrayBuffer.isView(chunk)) {\n                throw new TypeError('chunk must be an array buffer view');\n            }\n            if (chunk.byteLength === 0) {\n                throw new TypeError('chunk must have non-zero byteLength');\n            }\n            if (chunk.buffer.byteLength === 0) {\n                throw new TypeError(\"chunk's buffer must have non-zero byteLength\");\n            }\n            if (this._closeRequested) {\n                throw new TypeError('stream is closed or draining');\n            }\n            var state = this._controlledReadableByteStream._state;\n            if (state !== 'readable') {\n                throw new TypeError(\"The stream (in \".concat(state, \" state) is not in the readable state and cannot be enqueued to\"));\n            }\n            ReadableByteStreamControllerEnqueue(this, chunk);\n        };\n        /**\n         * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n         */\n        ReadableByteStreamController.prototype.error = function (e) {\n            if (e === void 0) { e = undefined; }\n            if (!IsReadableByteStreamController(this)) {\n                throw byteStreamControllerBrandCheckException('error');\n            }\n            ReadableByteStreamControllerError(this, e);\n        };\n        /** @internal */\n        ReadableByteStreamController.prototype[CancelSteps] = function (reason) {\n            ReadableByteStreamControllerClearPendingPullIntos(this);\n            ResetQueue(this);\n            var result = this._cancelAlgorithm(reason);\n            ReadableByteStreamControllerClearAlgorithms(this);\n            return result;\n        };\n        /** @internal */\n        ReadableByteStreamController.prototype[PullSteps] = function (readRequest) {\n            var stream = this._controlledReadableByteStream;\n            if (this._queueTotalSize > 0) {\n                ReadableByteStreamControllerFillReadRequestFromQueue(this, readRequest);\n                return;\n            }\n            var autoAllocateChunkSize = this._autoAllocateChunkSize;\n            if (autoAllocateChunkSize !== undefined) {\n                var buffer = void 0;\n                try {\n                    buffer = new ArrayBuffer(autoAllocateChunkSize);\n                }\n                catch (bufferE) {\n                    readRequest._errorSteps(bufferE);\n                    return;\n                }\n                var pullIntoDescriptor = {\n                    buffer: buffer,\n                    bufferByteLength: autoAllocateChunkSize,\n                    byteOffset: 0,\n                    byteLength: autoAllocateChunkSize,\n                    bytesFilled: 0,\n                    minimumFill: 1,\n                    elementSize: 1,\n                    viewConstructor: Uint8Array,\n                    readerType: 'default'\n                };\n                this._pendingPullIntos.push(pullIntoDescriptor);\n            }\n            ReadableStreamAddReadRequest(stream, readRequest);\n            ReadableByteStreamControllerCallPullIfNeeded(this);\n        };\n        /** @internal */\n        ReadableByteStreamController.prototype[ReleaseSteps] = function () {\n            if (this._pendingPullIntos.length > 0) {\n                var firstPullInto = this._pendingPullIntos.peek();\n                firstPullInto.readerType = 'none';\n                this._pendingPullIntos = new SimpleQueue();\n                this._pendingPullIntos.push(firstPullInto);\n            }\n        };\n        return ReadableByteStreamController;\n    }());\n    Object.defineProperties(ReadableByteStreamController.prototype, {\n        close: { enumerable: true },\n        enqueue: { enumerable: true },\n        error: { enumerable: true },\n        byobRequest: { enumerable: true },\n        desiredSize: { enumerable: true }\n    });\n    setFunctionName(ReadableByteStreamController.prototype.close, 'close');\n    setFunctionName(ReadableByteStreamController.prototype.enqueue, 'enqueue');\n    setFunctionName(ReadableByteStreamController.prototype.error, 'error');\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableByteStreamController.prototype, SymbolPolyfill.toStringTag, {\n            value: 'ReadableByteStreamController',\n            configurable: true\n        });\n    }\n    // Abstract operations for the ReadableByteStreamController.\n    function IsReadableByteStreamController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\n            return false;\n        }\n        return x instanceof ReadableByteStreamController;\n    }\n    function IsReadableStreamBYOBRequest(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n            return false;\n        }\n        return x instanceof ReadableStreamBYOBRequest;\n    }\n    function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n        var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n        if (!shouldPull) {\n            return;\n        }\n        if (controller._pulling) {\n            controller._pullAgain = true;\n            return;\n        }\n        controller._pulling = true;\n        // TODO: Test controller argument\n        var pullPromise = controller._pullAlgorithm();\n        uponPromise(pullPromise, function () {\n            controller._pulling = false;\n            if (controller._pullAgain) {\n                controller._pullAgain = false;\n                ReadableByteStreamControllerCallPullIfNeeded(controller);\n            }\n            return null;\n        }, function (e) {\n            ReadableByteStreamControllerError(controller, e);\n            return null;\n        });\n    }\n    function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n        ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n        controller._pendingPullIntos = new SimpleQueue();\n    }\n    function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n        var done = false;\n        if (stream._state === 'closed') {\n            done = true;\n        }\n        var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n        if (pullIntoDescriptor.readerType === 'default') {\n            ReadableStreamFulfillReadRequest(stream, filledView, done);\n        }\n        else {\n            ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n        }\n    }\n    function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n        var bytesFilled = pullIntoDescriptor.bytesFilled;\n        var elementSize = pullIntoDescriptor.elementSize;\n        return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n    }\n    function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n        controller._queue.push({ buffer: buffer, byteOffset: byteOffset, byteLength: byteLength });\n        controller._queueTotalSize += byteLength;\n    }\n    function ReadableByteStreamControllerEnqueueClonedChunkToQueue(controller, buffer, byteOffset, byteLength) {\n        var clonedChunk;\n        try {\n            clonedChunk = ArrayBufferSlice(buffer, byteOffset, byteOffset + byteLength);\n        }\n        catch (cloneE) {\n            ReadableByteStreamControllerError(controller, cloneE);\n            throw cloneE;\n        }\n        ReadableByteStreamControllerEnqueueChunkToQueue(controller, clonedChunk, 0, byteLength);\n    }\n    function ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue(controller, firstDescriptor) {\n        if (firstDescriptor.bytesFilled > 0) {\n            ReadableByteStreamControllerEnqueueClonedChunkToQueue(controller, firstDescriptor.buffer, firstDescriptor.byteOffset, firstDescriptor.bytesFilled);\n        }\n        ReadableByteStreamControllerShiftPendingPullInto(controller);\n    }\n    function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n        var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n        var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n        var totalBytesToCopyRemaining = maxBytesToCopy;\n        var ready = false;\n        var remainderBytes = maxBytesFilled % pullIntoDescriptor.elementSize;\n        var maxAlignedBytes = maxBytesFilled - remainderBytes;\n        // A descriptor for a read() request that is not yet filled up to its minimum length will stay at the head\n        // of the queue, so the underlying source can keep filling it.\n        if (maxAlignedBytes >= pullIntoDescriptor.minimumFill) {\n            totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n            ready = true;\n        }\n        var queue = controller._queue;\n        while (totalBytesToCopyRemaining > 0) {\n            var headOfQueue = queue.peek();\n            var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n            var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n            CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n            if (headOfQueue.byteLength === bytesToCopy) {\n                queue.shift();\n            }\n            else {\n                headOfQueue.byteOffset += bytesToCopy;\n                headOfQueue.byteLength -= bytesToCopy;\n            }\n            controller._queueTotalSize -= bytesToCopy;\n            ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n            totalBytesToCopyRemaining -= bytesToCopy;\n        }\n        return ready;\n    }\n    function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n        pullIntoDescriptor.bytesFilled += size;\n    }\n    function ReadableByteStreamControllerHandleQueueDrain(controller) {\n        if (controller._queueTotalSize === 0 && controller._closeRequested) {\n            ReadableByteStreamControllerClearAlgorithms(controller);\n            ReadableStreamClose(controller._controlledReadableByteStream);\n        }\n        else {\n            ReadableByteStreamControllerCallPullIfNeeded(controller);\n        }\n    }\n    function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n        if (controller._byobRequest === null) {\n            return;\n        }\n        controller._byobRequest._associatedReadableByteStreamController = undefined;\n        controller._byobRequest._view = null;\n        controller._byobRequest = null;\n    }\n    function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n        while (controller._pendingPullIntos.length > 0) {\n            if (controller._queueTotalSize === 0) {\n                return;\n            }\n            var pullIntoDescriptor = controller._pendingPullIntos.peek();\n            if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n                ReadableByteStreamControllerShiftPendingPullInto(controller);\n                ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n            }\n        }\n    }\n    function ReadableByteStreamControllerProcessReadRequestsUsingQueue(controller) {\n        var reader = controller._controlledReadableByteStream._reader;\n        while (reader._readRequests.length > 0) {\n            if (controller._queueTotalSize === 0) {\n                return;\n            }\n            var readRequest = reader._readRequests.shift();\n            ReadableByteStreamControllerFillReadRequestFromQueue(controller, readRequest);\n        }\n    }\n    function ReadableByteStreamControllerPullInto(controller, view, min, readIntoRequest) {\n        var stream = controller._controlledReadableByteStream;\n        var ctor = view.constructor;\n        var elementSize = arrayBufferViewElementSize(ctor);\n        var byteOffset = view.byteOffset, byteLength = view.byteLength;\n        var minimumFill = min * elementSize;\n        var buffer;\n        try {\n            buffer = TransferArrayBuffer(view.buffer);\n        }\n        catch (e) {\n            readIntoRequest._errorSteps(e);\n            return;\n        }\n        var pullIntoDescriptor = {\n            buffer: buffer,\n            bufferByteLength: buffer.byteLength,\n            byteOffset: byteOffset,\n            byteLength: byteLength,\n            bytesFilled: 0,\n            minimumFill: minimumFill,\n            elementSize: elementSize,\n            viewConstructor: ctor,\n            readerType: 'byob'\n        };\n        if (controller._pendingPullIntos.length > 0) {\n            controller._pendingPullIntos.push(pullIntoDescriptor);\n            // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n            // - No change happens on desiredSize\n            // - The source has already been notified of that there's at least 1 pending read(view)\n            ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n            return;\n        }\n        if (stream._state === 'closed') {\n            var emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n            readIntoRequest._closeSteps(emptyView);\n            return;\n        }\n        if (controller._queueTotalSize > 0) {\n            if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n                var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n                ReadableByteStreamControllerHandleQueueDrain(controller);\n                readIntoRequest._chunkSteps(filledView);\n                return;\n            }\n            if (controller._closeRequested) {\n                var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n                ReadableByteStreamControllerError(controller, e);\n                readIntoRequest._errorSteps(e);\n                return;\n            }\n        }\n        controller._pendingPullIntos.push(pullIntoDescriptor);\n        ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n    }\n    function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n        if (firstDescriptor.readerType === 'none') {\n            ReadableByteStreamControllerShiftPendingPullInto(controller);\n        }\n        var stream = controller._controlledReadableByteStream;\n        if (ReadableStreamHasBYOBReader(stream)) {\n            while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n                var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n                ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n            }\n        }\n    }\n    function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n        ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n        if (pullIntoDescriptor.readerType === 'none') {\n            ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue(controller, pullIntoDescriptor);\n            ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n            return;\n        }\n        if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.minimumFill) {\n            // A descriptor for a read() request that is not yet filled up to its minimum length will stay at the head\n            // of the queue, so the underlying source can keep filling it.\n            return;\n        }\n        ReadableByteStreamControllerShiftPendingPullInto(controller);\n        var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n        if (remainderSize > 0) {\n            var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n            ReadableByteStreamControllerEnqueueClonedChunkToQueue(controller, pullIntoDescriptor.buffer, end - remainderSize, remainderSize);\n        }\n        pullIntoDescriptor.bytesFilled -= remainderSize;\n        ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n        ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n    }\n    function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n        var firstDescriptor = controller._pendingPullIntos.peek();\n        ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n        var state = controller._controlledReadableByteStream._state;\n        if (state === 'closed') {\n            ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n        }\n        else {\n            ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n        }\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n    }\n    function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n        var descriptor = controller._pendingPullIntos.shift();\n        return descriptor;\n    }\n    function ReadableByteStreamControllerShouldCallPull(controller) {\n        var stream = controller._controlledReadableByteStream;\n        if (stream._state !== 'readable') {\n            return false;\n        }\n        if (controller._closeRequested) {\n            return false;\n        }\n        if (!controller._started) {\n            return false;\n        }\n        if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n            return true;\n        }\n        if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n            return true;\n        }\n        var desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\n        if (desiredSize > 0) {\n            return true;\n        }\n        return false;\n    }\n    function ReadableByteStreamControllerClearAlgorithms(controller) {\n        controller._pullAlgorithm = undefined;\n        controller._cancelAlgorithm = undefined;\n    }\n    // A client of ReadableByteStreamController may use these functions directly to bypass state check.\n    function ReadableByteStreamControllerClose(controller) {\n        var stream = controller._controlledReadableByteStream;\n        if (controller._closeRequested || stream._state !== 'readable') {\n            return;\n        }\n        if (controller._queueTotalSize > 0) {\n            controller._closeRequested = true;\n            return;\n        }\n        if (controller._pendingPullIntos.length > 0) {\n            var firstPendingPullInto = controller._pendingPullIntos.peek();\n            if (firstPendingPullInto.bytesFilled % firstPendingPullInto.elementSize !== 0) {\n                var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n                ReadableByteStreamControllerError(controller, e);\n                throw e;\n            }\n        }\n        ReadableByteStreamControllerClearAlgorithms(controller);\n        ReadableStreamClose(stream);\n    }\n    function ReadableByteStreamControllerEnqueue(controller, chunk) {\n        var stream = controller._controlledReadableByteStream;\n        if (controller._closeRequested || stream._state !== 'readable') {\n            return;\n        }\n        var buffer = chunk.buffer, byteOffset = chunk.byteOffset, byteLength = chunk.byteLength;\n        if (IsDetachedBuffer(buffer)) {\n            throw new TypeError('chunk\\'s buffer is detached and so cannot be enqueued');\n        }\n        var transferredBuffer = TransferArrayBuffer(buffer);\n        if (controller._pendingPullIntos.length > 0) {\n            var firstPendingPullInto = controller._pendingPullIntos.peek();\n            if (IsDetachedBuffer(firstPendingPullInto.buffer)) {\n                throw new TypeError('The BYOB request\\'s buffer has been detached and so cannot be filled with an enqueued chunk');\n            }\n            ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n            firstPendingPullInto.buffer = TransferArrayBuffer(firstPendingPullInto.buffer);\n            if (firstPendingPullInto.readerType === 'none') {\n                ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue(controller, firstPendingPullInto);\n            }\n        }\n        if (ReadableStreamHasDefaultReader(stream)) {\n            ReadableByteStreamControllerProcessReadRequestsUsingQueue(controller);\n            if (ReadableStreamGetNumReadRequests(stream) === 0) {\n                ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n            }\n            else {\n                if (controller._pendingPullIntos.length > 0) {\n                    ReadableByteStreamControllerShiftPendingPullInto(controller);\n                }\n                var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n                ReadableStreamFulfillReadRequest(stream, transferredView, false);\n            }\n        }\n        else if (ReadableStreamHasBYOBReader(stream)) {\n            // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n            ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n            ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n        }\n        else {\n            ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n        }\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n    }\n    function ReadableByteStreamControllerError(controller, e) {\n        var stream = controller._controlledReadableByteStream;\n        if (stream._state !== 'readable') {\n            return;\n        }\n        ReadableByteStreamControllerClearPendingPullIntos(controller);\n        ResetQueue(controller);\n        ReadableByteStreamControllerClearAlgorithms(controller);\n        ReadableStreamError(stream, e);\n    }\n    function ReadableByteStreamControllerFillReadRequestFromQueue(controller, readRequest) {\n        var entry = controller._queue.shift();\n        controller._queueTotalSize -= entry.byteLength;\n        ReadableByteStreamControllerHandleQueueDrain(controller);\n        var view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n        readRequest._chunkSteps(view);\n    }\n    function ReadableByteStreamControllerGetBYOBRequest(controller) {\n        if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) {\n            var firstDescriptor = controller._pendingPullIntos.peek();\n            var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n            var byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\n            SetUpReadableStreamBYOBRequest(byobRequest, controller, view);\n            controller._byobRequest = byobRequest;\n        }\n        return controller._byobRequest;\n    }\n    function ReadableByteStreamControllerGetDesiredSize(controller) {\n        var state = controller._controlledReadableByteStream._state;\n        if (state === 'errored') {\n            return null;\n        }\n        if (state === 'closed') {\n            return 0;\n        }\n        return controller._strategyHWM - controller._queueTotalSize;\n    }\n    function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n        var firstDescriptor = controller._pendingPullIntos.peek();\n        var state = controller._controlledReadableByteStream._state;\n        if (state === 'closed') {\n            if (bytesWritten !== 0) {\n                throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n            }\n        }\n        else {\n            if (bytesWritten === 0) {\n                throw new TypeError('bytesWritten must be greater than 0 when calling respond() on a readable stream');\n            }\n            if (firstDescriptor.bytesFilled + bytesWritten > firstDescriptor.byteLength) {\n                throw new RangeError('bytesWritten out of range');\n            }\n        }\n        firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n        ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n    }\n    function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n        var firstDescriptor = controller._pendingPullIntos.peek();\n        var state = controller._controlledReadableByteStream._state;\n        if (state === 'closed') {\n            if (view.byteLength !== 0) {\n                throw new TypeError('The view\\'s length must be 0 when calling respondWithNewView() on a closed stream');\n            }\n        }\n        else {\n            if (view.byteLength === 0) {\n                throw new TypeError('The view\\'s length must be greater than 0 when calling respondWithNewView() on a readable stream');\n            }\n        }\n        if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n            throw new RangeError('The region specified by view does not match byobRequest');\n        }\n        if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) {\n            throw new RangeError('The buffer of view has different capacity than byobRequest');\n        }\n        if (firstDescriptor.bytesFilled + view.byteLength > firstDescriptor.byteLength) {\n            throw new RangeError('The region specified by view is larger than byobRequest');\n        }\n        var viewByteLength = view.byteLength;\n        firstDescriptor.buffer = TransferArrayBuffer(view.buffer);\n        ReadableByteStreamControllerRespondInternal(controller, viewByteLength);\n    }\n    function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\n        controller._controlledReadableByteStream = stream;\n        controller._pullAgain = false;\n        controller._pulling = false;\n        controller._byobRequest = null;\n        // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n        controller._queue = controller._queueTotalSize = undefined;\n        ResetQueue(controller);\n        controller._closeRequested = false;\n        controller._started = false;\n        controller._strategyHWM = highWaterMark;\n        controller._pullAlgorithm = pullAlgorithm;\n        controller._cancelAlgorithm = cancelAlgorithm;\n        controller._autoAllocateChunkSize = autoAllocateChunkSize;\n        controller._pendingPullIntos = new SimpleQueue();\n        stream._readableStreamController = controller;\n        var startResult = startAlgorithm();\n        uponPromise(promiseResolvedWith(startResult), function () {\n            controller._started = true;\n            ReadableByteStreamControllerCallPullIfNeeded(controller);\n            return null;\n        }, function (r) {\n            ReadableByteStreamControllerError(controller, r);\n            return null;\n        });\n    }\n    function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\n        var controller = Object.create(ReadableByteStreamController.prototype);\n        var startAlgorithm;\n        var pullAlgorithm;\n        var cancelAlgorithm;\n        if (underlyingByteSource.start !== undefined) {\n            startAlgorithm = function () { return underlyingByteSource.start(controller); };\n        }\n        else {\n            startAlgorithm = function () { return undefined; };\n        }\n        if (underlyingByteSource.pull !== undefined) {\n            pullAlgorithm = function () { return underlyingByteSource.pull(controller); };\n        }\n        else {\n            pullAlgorithm = function () { return promiseResolvedWith(undefined); };\n        }\n        if (underlyingByteSource.cancel !== undefined) {\n            cancelAlgorithm = function (reason) { return underlyingByteSource.cancel(reason); };\n        }\n        else {\n            cancelAlgorithm = function () { return promiseResolvedWith(undefined); };\n        }\n        var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n        if (autoAllocateChunkSize === 0) {\n            throw new TypeError('autoAllocateChunkSize must be greater than 0');\n        }\n        SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\n    }\n    function SetUpReadableStreamBYOBRequest(request, controller, view) {\n        request._associatedReadableByteStreamController = controller;\n        request._view = view;\n    }\n    // Helper functions for the ReadableStreamBYOBRequest.\n    function byobRequestBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamBYOBRequest.prototype.\".concat(name, \" can only be used on a ReadableStreamBYOBRequest\"));\n    }\n    // Helper functions for the ReadableByteStreamController.\n    function byteStreamControllerBrandCheckException(name) {\n        return new TypeError(\"ReadableByteStreamController.prototype.\".concat(name, \" can only be used on a ReadableByteStreamController\"));\n    }\n\n    function convertReaderOptions(options, context) {\n        assertDictionary(options, context);\n        var mode = options === null || options === void 0 ? void 0 : options.mode;\n        return {\n            mode: mode === undefined ? undefined : convertReadableStreamReaderMode(mode, \"\".concat(context, \" has member 'mode' that\"))\n        };\n    }\n    function convertReadableStreamReaderMode(mode, context) {\n        mode = \"\".concat(mode);\n        if (mode !== 'byob') {\n            throw new TypeError(\"\".concat(context, \" '\").concat(mode, \"' is not a valid enumeration value for ReadableStreamReaderMode\"));\n        }\n        return mode;\n    }\n    function convertByobReadOptions(options, context) {\n        var _a;\n        assertDictionary(options, context);\n        var min = (_a = options === null || options === void 0 ? void 0 : options.min) !== null && _a !== void 0 ? _a : 1;\n        return {\n            min: convertUnsignedLongLongWithEnforceRange(min, \"\".concat(context, \" has member 'min' that\"))\n        };\n    }\n\n    // Abstract operations for the ReadableStream.\n    function AcquireReadableStreamBYOBReader(stream) {\n        return new ReadableStreamBYOBReader(stream);\n    }\n    // ReadableStream API exposed for controllers.\n    function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) {\n        stream._reader._readIntoRequests.push(readIntoRequest);\n    }\n    function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n        var reader = stream._reader;\n        var readIntoRequest = reader._readIntoRequests.shift();\n        if (done) {\n            readIntoRequest._closeSteps(chunk);\n        }\n        else {\n            readIntoRequest._chunkSteps(chunk);\n        }\n    }\n    function ReadableStreamGetNumReadIntoRequests(stream) {\n        return stream._reader._readIntoRequests.length;\n    }\n    function ReadableStreamHasBYOBReader(stream) {\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return false;\n        }\n        if (!IsReadableStreamBYOBReader(reader)) {\n            return false;\n        }\n        return true;\n    }\n    /**\n     * A BYOB reader vended by a {@link ReadableStream}.\n     *\n     * @public\n     */\n    var ReadableStreamBYOBReader = /** @class */ (function () {\n        function ReadableStreamBYOBReader(stream) {\n            assertRequiredArgument(stream, 1, 'ReadableStreamBYOBReader');\n            assertReadableStream(stream, 'First parameter');\n            if (IsReadableStreamLocked(stream)) {\n                throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n            }\n            if (!IsReadableByteStreamController(stream._readableStreamController)) {\n                throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\n                    'source');\n            }\n            ReadableStreamReaderGenericInitialize(this, stream);\n            this._readIntoRequests = new SimpleQueue();\n        }\n        Object.defineProperty(ReadableStreamBYOBReader.prototype, \"closed\", {\n            /**\n             * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n             * the reader's lock is released before the stream finishes closing.\n             */\n            get: function () {\n                if (!IsReadableStreamBYOBReader(this)) {\n                    return promiseRejectedWith(byobReaderBrandCheckException('closed'));\n                }\n                return this._closedPromise;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n         */\n        ReadableStreamBYOBReader.prototype.cancel = function (reason) {\n            if (reason === void 0) { reason = undefined; }\n            if (!IsReadableStreamBYOBReader(this)) {\n                return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('cancel'));\n            }\n            return ReadableStreamReaderGenericCancel(this, reason);\n        };\n        ReadableStreamBYOBReader.prototype.read = function (view, rawOptions) {\n            if (rawOptions === void 0) { rawOptions = {}; }\n            if (!IsReadableStreamBYOBReader(this)) {\n                return promiseRejectedWith(byobReaderBrandCheckException('read'));\n            }\n            if (!ArrayBuffer.isView(view)) {\n                return promiseRejectedWith(new TypeError('view must be an array buffer view'));\n            }\n            if (view.byteLength === 0) {\n                return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\n            }\n            if (view.buffer.byteLength === 0) {\n                return promiseRejectedWith(new TypeError(\"view's buffer must have non-zero byteLength\"));\n            }\n            if (IsDetachedBuffer(view.buffer)) {\n                return promiseRejectedWith(new TypeError('view\\'s buffer has been detached'));\n            }\n            var options;\n            try {\n                options = convertByobReadOptions(rawOptions, 'options');\n            }\n            catch (e) {\n                return promiseRejectedWith(e);\n            }\n            var min = options.min;\n            if (min === 0) {\n                return promiseRejectedWith(new TypeError('options.min must be greater than 0'));\n            }\n            if (!isDataView(view)) {\n                if (min > view.length) {\n                    return promiseRejectedWith(new RangeError('options.min must be less than or equal to view\\'s length'));\n                }\n            }\n            else if (min > view.byteLength) {\n                return promiseRejectedWith(new RangeError('options.min must be less than or equal to view\\'s byteLength'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('read from'));\n            }\n            var resolvePromise;\n            var rejectPromise;\n            var promise = newPromise(function (resolve, reject) {\n                resolvePromise = resolve;\n                rejectPromise = reject;\n            });\n            var readIntoRequest = {\n                _chunkSteps: function (chunk) { return resolvePromise({ value: chunk, done: false }); },\n                _closeSteps: function (chunk) { return resolvePromise({ value: chunk, done: true }); },\n                _errorSteps: function (e) { return rejectPromise(e); }\n            };\n            ReadableStreamBYOBReaderRead(this, view, min, readIntoRequest);\n            return promise;\n        };\n        /**\n         * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n         * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n         * from now on; otherwise, the reader will appear closed.\n         *\n         * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n         * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to\n         * do so will throw a `TypeError` and leave the reader locked to the stream.\n         */\n        ReadableStreamBYOBReader.prototype.releaseLock = function () {\n            if (!IsReadableStreamBYOBReader(this)) {\n                throw byobReaderBrandCheckException('releaseLock');\n            }\n            if (this._ownerReadableStream === undefined) {\n                return;\n            }\n            ReadableStreamBYOBReaderRelease(this);\n        };\n        return ReadableStreamBYOBReader;\n    }());\n    Object.defineProperties(ReadableStreamBYOBReader.prototype, {\n        cancel: { enumerable: true },\n        read: { enumerable: true },\n        releaseLock: { enumerable: true },\n        closed: { enumerable: true }\n    });\n    setFunctionName(ReadableStreamBYOBReader.prototype.cancel, 'cancel');\n    setFunctionName(ReadableStreamBYOBReader.prototype.read, 'read');\n    setFunctionName(ReadableStreamBYOBReader.prototype.releaseLock, 'releaseLock');\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableStreamBYOBReader.prototype, SymbolPolyfill.toStringTag, {\n            value: 'ReadableStreamBYOBReader',\n            configurable: true\n        });\n    }\n    // Abstract operations for the readers.\n    function IsReadableStreamBYOBReader(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n            return false;\n        }\n        return x instanceof ReadableStreamBYOBReader;\n    }\n    function ReadableStreamBYOBReaderRead(reader, view, min, readIntoRequest) {\n        var stream = reader._ownerReadableStream;\n        stream._disturbed = true;\n        if (stream._state === 'errored') {\n            readIntoRequest._errorSteps(stream._storedError);\n        }\n        else {\n            ReadableByteStreamControllerPullInto(stream._readableStreamController, view, min, readIntoRequest);\n        }\n    }\n    function ReadableStreamBYOBReaderRelease(reader) {\n        ReadableStreamReaderGenericRelease(reader);\n        var e = new TypeError('Reader was released');\n        ReadableStreamBYOBReaderErrorReadIntoRequests(reader, e);\n    }\n    function ReadableStreamBYOBReaderErrorReadIntoRequests(reader, e) {\n        var readIntoRequests = reader._readIntoRequests;\n        reader._readIntoRequests = new SimpleQueue();\n        readIntoRequests.forEach(function (readIntoRequest) {\n            readIntoRequest._errorSteps(e);\n        });\n    }\n    // Helper functions for the ReadableStreamBYOBReader.\n    function byobReaderBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamBYOBReader.prototype.\".concat(name, \" can only be used on a ReadableStreamBYOBReader\"));\n    }\n\n    function ExtractHighWaterMark(strategy, defaultHWM) {\n        var highWaterMark = strategy.highWaterMark;\n        if (highWaterMark === undefined) {\n            return defaultHWM;\n        }\n        if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\n            throw new RangeError('Invalid highWaterMark');\n        }\n        return highWaterMark;\n    }\n    function ExtractSizeAlgorithm(strategy) {\n        var size = strategy.size;\n        if (!size) {\n            return function () { return 1; };\n        }\n        return size;\n    }\n\n    function convertQueuingStrategy(init, context) {\n        assertDictionary(init, context);\n        var highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n        var size = init === null || init === void 0 ? void 0 : init.size;\n        return {\n            highWaterMark: highWaterMark === undefined ? undefined : convertUnrestrictedDouble(highWaterMark),\n            size: size === undefined ? undefined : convertQueuingStrategySize(size, \"\".concat(context, \" has member 'size' that\"))\n        };\n    }\n    function convertQueuingStrategySize(fn, context) {\n        assertFunction(fn, context);\n        return function (chunk) { return convertUnrestrictedDouble(fn(chunk)); };\n    }\n\n    function convertUnderlyingSink(original, context) {\n        assertDictionary(original, context);\n        var abort = original === null || original === void 0 ? void 0 : original.abort;\n        var close = original === null || original === void 0 ? void 0 : original.close;\n        var start = original === null || original === void 0 ? void 0 : original.start;\n        var type = original === null || original === void 0 ? void 0 : original.type;\n        var write = original === null || original === void 0 ? void 0 : original.write;\n        return {\n            abort: abort === undefined ?\n                undefined :\n                convertUnderlyingSinkAbortCallback(abort, original, \"\".concat(context, \" has member 'abort' that\")),\n            close: close === undefined ?\n                undefined :\n                convertUnderlyingSinkCloseCallback(close, original, \"\".concat(context, \" has member 'close' that\")),\n            start: start === undefined ?\n                undefined :\n                convertUnderlyingSinkStartCallback(start, original, \"\".concat(context, \" has member 'start' that\")),\n            write: write === undefined ?\n                undefined :\n                convertUnderlyingSinkWriteCallback(write, original, \"\".concat(context, \" has member 'write' that\")),\n            type: type\n        };\n    }\n    function convertUnderlyingSinkAbortCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (reason) { return promiseCall(fn, original, [reason]); };\n    }\n    function convertUnderlyingSinkCloseCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function () { return promiseCall(fn, original, []); };\n    }\n    function convertUnderlyingSinkStartCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (controller) { return reflectCall(fn, original, [controller]); };\n    }\n    function convertUnderlyingSinkWriteCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (chunk, controller) { return promiseCall(fn, original, [chunk, controller]); };\n    }\n\n    function assertWritableStream(x, context) {\n        if (!IsWritableStream(x)) {\n            throw new TypeError(\"\".concat(context, \" is not a WritableStream.\"));\n        }\n    }\n\n    function isAbortSignal(value) {\n        if (typeof value !== 'object' || value === null) {\n            return false;\n        }\n        try {\n            return typeof value.aborted === 'boolean';\n        }\n        catch (_a) {\n            // AbortSignal.prototype.aborted throws if its brand check fails\n            return false;\n        }\n    }\n    var supportsAbortController = typeof AbortController === 'function';\n    /**\n     * Construct a new AbortController, if supported by the platform.\n     *\n     * @internal\n     */\n    function createAbortController() {\n        if (supportsAbortController) {\n            return new AbortController();\n        }\n        return undefined;\n    }\n\n    /**\n     * A writable stream represents a destination for data, into which you can write.\n     *\n     * @public\n     */\n    var WritableStream = /** @class */ (function () {\n        function WritableStream(rawUnderlyingSink, rawStrategy) {\n            if (rawUnderlyingSink === void 0) { rawUnderlyingSink = {}; }\n            if (rawStrategy === void 0) { rawStrategy = {}; }\n            if (rawUnderlyingSink === undefined) {\n                rawUnderlyingSink = null;\n            }\n            else {\n                assertObject(rawUnderlyingSink, 'First parameter');\n            }\n            var strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n            var underlyingSink = convertUnderlyingSink(rawUnderlyingSink, 'First parameter');\n            InitializeWritableStream(this);\n            var type = underlyingSink.type;\n            if (type !== undefined) {\n                throw new RangeError('Invalid type is specified');\n            }\n            var sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n            var highWaterMark = ExtractHighWaterMark(strategy, 1);\n            SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\n        }\n        Object.defineProperty(WritableStream.prototype, \"locked\", {\n            /**\n             * Returns whether or not the writable stream is locked to a writer.\n             */\n            get: function () {\n                if (!IsWritableStream(this)) {\n                    throw streamBrandCheckException$2('locked');\n                }\n                return IsWritableStreamLocked(this);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be\n         * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort\n         * mechanism of the underlying sink.\n         *\n         * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled\n         * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel\n         * the stream) if the stream is currently locked.\n         */\n        WritableStream.prototype.abort = function (reason) {\n            if (reason === void 0) { reason = undefined; }\n            if (!IsWritableStream(this)) {\n                return promiseRejectedWith(streamBrandCheckException$2('abort'));\n            }\n            if (IsWritableStreamLocked(this)) {\n                return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\n            }\n            return WritableStreamAbort(this, reason);\n        };\n        /**\n         * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its\n         * close behavior. During this time any further attempts to write will fail (without erroring the stream).\n         *\n         * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream\n         * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with\n         * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked.\n         */\n        WritableStream.prototype.close = function () {\n            if (!IsWritableStream(this)) {\n                return promiseRejectedWith(streamBrandCheckException$2('close'));\n            }\n            if (IsWritableStreamLocked(this)) {\n                return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\n            }\n            if (WritableStreamCloseQueuedOrInFlight(this)) {\n                return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n            }\n            return WritableStreamClose(this);\n        };\n        /**\n         * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream\n         * is locked, no other writer can be acquired until this one is released.\n         *\n         * This functionality is especially useful for creating abstractions that desire the ability to write to a stream\n         * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at\n         * the same time, which would cause the resulting written data to be unpredictable and probably useless.\n         */\n        WritableStream.prototype.getWriter = function () {\n            if (!IsWritableStream(this)) {\n                throw streamBrandCheckException$2('getWriter');\n            }\n            return AcquireWritableStreamDefaultWriter(this);\n        };\n        return WritableStream;\n    }());\n    Object.defineProperties(WritableStream.prototype, {\n        abort: { enumerable: true },\n        close: { enumerable: true },\n        getWriter: { enumerable: true },\n        locked: { enumerable: true }\n    });\n    setFunctionName(WritableStream.prototype.abort, 'abort');\n    setFunctionName(WritableStream.prototype.close, 'close');\n    setFunctionName(WritableStream.prototype.getWriter, 'getWriter');\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(WritableStream.prototype, SymbolPolyfill.toStringTag, {\n            value: 'WritableStream',\n            configurable: true\n        });\n    }\n    // Abstract operations for the WritableStream.\n    function AcquireWritableStreamDefaultWriter(stream) {\n        return new WritableStreamDefaultWriter(stream);\n    }\n    // Throws if and only if startAlgorithm throws.\n    function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n        if (highWaterMark === void 0) { highWaterMark = 1; }\n        if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\n        var stream = Object.create(WritableStream.prototype);\n        InitializeWritableStream(stream);\n        var controller = Object.create(WritableStreamDefaultController.prototype);\n        SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n        return stream;\n    }\n    function InitializeWritableStream(stream) {\n        stream._state = 'writable';\n        // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n        // 'erroring' or 'errored'. May be set to an undefined value.\n        stream._storedError = undefined;\n        stream._writer = undefined;\n        // Initialize to undefined first because the constructor of the controller checks this\n        // variable to validate the caller.\n        stream._writableStreamController = undefined;\n        // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n        // producer without waiting for the queued writes to finish.\n        stream._writeRequests = new SimpleQueue();\n        // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n        // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n        stream._inFlightWriteRequest = undefined;\n        // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n        // has been detached.\n        stream._closeRequest = undefined;\n        // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n        // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n        stream._inFlightCloseRequest = undefined;\n        // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n        stream._pendingAbortRequest = undefined;\n        // The backpressure signal set by the controller.\n        stream._backpressure = false;\n    }\n    function IsWritableStream(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n            return false;\n        }\n        return x instanceof WritableStream;\n    }\n    function IsWritableStreamLocked(stream) {\n        if (stream._writer === undefined) {\n            return false;\n        }\n        return true;\n    }\n    function WritableStreamAbort(stream, reason) {\n        var _a;\n        if (stream._state === 'closed' || stream._state === 'errored') {\n            return promiseResolvedWith(undefined);\n        }\n        stream._writableStreamController._abortReason = reason;\n        (_a = stream._writableStreamController._abortController) === null || _a === void 0 ? void 0 : _a.abort(reason);\n        // TypeScript narrows the type of `stream._state` down to 'writable' | 'erroring',\n        // but it doesn't know that signaling abort runs author code that might have changed the state.\n        // Widen the type again by casting to WritableStreamState.\n        var state = stream._state;\n        if (state === 'closed' || state === 'errored') {\n            return promiseResolvedWith(undefined);\n        }\n        if (stream._pendingAbortRequest !== undefined) {\n            return stream._pendingAbortRequest._promise;\n        }\n        var wasAlreadyErroring = false;\n        if (state === 'erroring') {\n            wasAlreadyErroring = true;\n            // reason will not be used, so don't keep a reference to it.\n            reason = undefined;\n        }\n        var promise = newPromise(function (resolve, reject) {\n            stream._pendingAbortRequest = {\n                _promise: undefined,\n                _resolve: resolve,\n                _reject: reject,\n                _reason: reason,\n                _wasAlreadyErroring: wasAlreadyErroring\n            };\n        });\n        stream._pendingAbortRequest._promise = promise;\n        if (!wasAlreadyErroring) {\n            WritableStreamStartErroring(stream, reason);\n        }\n        return promise;\n    }\n    function WritableStreamClose(stream) {\n        var state = stream._state;\n        if (state === 'closed' || state === 'errored') {\n            return promiseRejectedWith(new TypeError(\"The stream (in \".concat(state, \" state) is not in the writable state and cannot be closed\")));\n        }\n        var promise = newPromise(function (resolve, reject) {\n            var closeRequest = {\n                _resolve: resolve,\n                _reject: reject\n            };\n            stream._closeRequest = closeRequest;\n        });\n        var writer = stream._writer;\n        if (writer !== undefined && stream._backpressure && state === 'writable') {\n            defaultWriterReadyPromiseResolve(writer);\n        }\n        WritableStreamDefaultControllerClose(stream._writableStreamController);\n        return promise;\n    }\n    // WritableStream API exposed for controllers.\n    function WritableStreamAddWriteRequest(stream) {\n        var promise = newPromise(function (resolve, reject) {\n            var writeRequest = {\n                _resolve: resolve,\n                _reject: reject\n            };\n            stream._writeRequests.push(writeRequest);\n        });\n        return promise;\n    }\n    function WritableStreamDealWithRejection(stream, error) {\n        var state = stream._state;\n        if (state === 'writable') {\n            WritableStreamStartErroring(stream, error);\n            return;\n        }\n        WritableStreamFinishErroring(stream);\n    }\n    function WritableStreamStartErroring(stream, reason) {\n        var controller = stream._writableStreamController;\n        stream._state = 'erroring';\n        stream._storedError = reason;\n        var writer = stream._writer;\n        if (writer !== undefined) {\n            WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n        }\n        if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) {\n            WritableStreamFinishErroring(stream);\n        }\n    }\n    function WritableStreamFinishErroring(stream) {\n        stream._state = 'errored';\n        stream._writableStreamController[ErrorSteps]();\n        var storedError = stream._storedError;\n        stream._writeRequests.forEach(function (writeRequest) {\n            writeRequest._reject(storedError);\n        });\n        stream._writeRequests = new SimpleQueue();\n        if (stream._pendingAbortRequest === undefined) {\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n            return;\n        }\n        var abortRequest = stream._pendingAbortRequest;\n        stream._pendingAbortRequest = undefined;\n        if (abortRequest._wasAlreadyErroring) {\n            abortRequest._reject(storedError);\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n            return;\n        }\n        var promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\n        uponPromise(promise, function () {\n            abortRequest._resolve();\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n            return null;\n        }, function (reason) {\n            abortRequest._reject(reason);\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n            return null;\n        });\n    }\n    function WritableStreamFinishInFlightWrite(stream) {\n        stream._inFlightWriteRequest._resolve(undefined);\n        stream._inFlightWriteRequest = undefined;\n    }\n    function WritableStreamFinishInFlightWriteWithError(stream, error) {\n        stream._inFlightWriteRequest._reject(error);\n        stream._inFlightWriteRequest = undefined;\n        WritableStreamDealWithRejection(stream, error);\n    }\n    function WritableStreamFinishInFlightClose(stream) {\n        stream._inFlightCloseRequest._resolve(undefined);\n        stream._inFlightCloseRequest = undefined;\n        var state = stream._state;\n        if (state === 'erroring') {\n            // The error was too late to do anything, so it is ignored.\n            stream._storedError = undefined;\n            if (stream._pendingAbortRequest !== undefined) {\n                stream._pendingAbortRequest._resolve();\n                stream._pendingAbortRequest = undefined;\n            }\n        }\n        stream._state = 'closed';\n        var writer = stream._writer;\n        if (writer !== undefined) {\n            defaultWriterClosedPromiseResolve(writer);\n        }\n    }\n    function WritableStreamFinishInFlightCloseWithError(stream, error) {\n        stream._inFlightCloseRequest._reject(error);\n        stream._inFlightCloseRequest = undefined;\n        // Never execute sink abort() after sink close().\n        if (stream._pendingAbortRequest !== undefined) {\n            stream._pendingAbortRequest._reject(error);\n            stream._pendingAbortRequest = undefined;\n        }\n        WritableStreamDealWithRejection(stream, error);\n    }\n    // TODO(ricea): Fix alphabetical order.\n    function WritableStreamCloseQueuedOrInFlight(stream) {\n        if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n            return false;\n        }\n        return true;\n    }\n    function WritableStreamHasOperationMarkedInFlight(stream) {\n        if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n            return false;\n        }\n        return true;\n    }\n    function WritableStreamMarkCloseRequestInFlight(stream) {\n        stream._inFlightCloseRequest = stream._closeRequest;\n        stream._closeRequest = undefined;\n    }\n    function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n        stream._inFlightWriteRequest = stream._writeRequests.shift();\n    }\n    function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n        if (stream._closeRequest !== undefined) {\n            stream._closeRequest._reject(stream._storedError);\n            stream._closeRequest = undefined;\n        }\n        var writer = stream._writer;\n        if (writer !== undefined) {\n            defaultWriterClosedPromiseReject(writer, stream._storedError);\n        }\n    }\n    function WritableStreamUpdateBackpressure(stream, backpressure) {\n        var writer = stream._writer;\n        if (writer !== undefined && backpressure !== stream._backpressure) {\n            if (backpressure) {\n                defaultWriterReadyPromiseReset(writer);\n            }\n            else {\n                defaultWriterReadyPromiseResolve(writer);\n            }\n        }\n        stream._backpressure = backpressure;\n    }\n    /**\n     * A default writer vended by a {@link WritableStream}.\n     *\n     * @public\n     */\n    var WritableStreamDefaultWriter = /** @class */ (function () {\n        function WritableStreamDefaultWriter(stream) {\n            assertRequiredArgument(stream, 1, 'WritableStreamDefaultWriter');\n            assertWritableStream(stream, 'First parameter');\n            if (IsWritableStreamLocked(stream)) {\n                throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n            }\n            this._ownerWritableStream = stream;\n            stream._writer = this;\n            var state = stream._state;\n            if (state === 'writable') {\n                if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) {\n                    defaultWriterReadyPromiseInitialize(this);\n                }\n                else {\n                    defaultWriterReadyPromiseInitializeAsResolved(this);\n                }\n                defaultWriterClosedPromiseInitialize(this);\n            }\n            else if (state === 'erroring') {\n                defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n                defaultWriterClosedPromiseInitialize(this);\n            }\n            else if (state === 'closed') {\n                defaultWriterReadyPromiseInitializeAsResolved(this);\n                defaultWriterClosedPromiseInitializeAsResolved(this);\n            }\n            else {\n                var storedError = stream._storedError;\n                defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n                defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n            }\n        }\n        Object.defineProperty(WritableStreamDefaultWriter.prototype, \"closed\", {\n            /**\n             * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n             * the writer’s lock is released before the stream finishes closing.\n             */\n            get: function () {\n                if (!IsWritableStreamDefaultWriter(this)) {\n                    return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\n                }\n                return this._closedPromise;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(WritableStreamDefaultWriter.prototype, \"desiredSize\", {\n            /**\n             * Returns the desired size to fill the stream’s internal queue. It can be negative, if the queue is over-full.\n             * A producer can use this information to determine the right amount of data to write.\n             *\n             * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort\n             * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when\n             * the writer’s lock is released.\n             */\n            get: function () {\n                if (!IsWritableStreamDefaultWriter(this)) {\n                    throw defaultWriterBrandCheckException('desiredSize');\n                }\n                if (this._ownerWritableStream === undefined) {\n                    throw defaultWriterLockException('desiredSize');\n                }\n                return WritableStreamDefaultWriterGetDesiredSize(this);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(WritableStreamDefaultWriter.prototype, \"ready\", {\n            /**\n             * Returns a promise that will be fulfilled when the desired size to fill the stream’s internal queue transitions\n             * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips\n             * back to zero or below, the getter will return a new promise that stays pending until the next transition.\n             *\n             * If the stream becomes errored or aborted, or the writer’s lock is released, the returned promise will become\n             * rejected.\n             */\n            get: function () {\n                if (!IsWritableStreamDefaultWriter(this)) {\n                    return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\n                }\n                return this._readyPromise;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}.\n         */\n        WritableStreamDefaultWriter.prototype.abort = function (reason) {\n            if (reason === void 0) { reason = undefined; }\n            if (!IsWritableStreamDefaultWriter(this)) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\n            }\n            if (this._ownerWritableStream === undefined) {\n                return promiseRejectedWith(defaultWriterLockException('abort'));\n            }\n            return WritableStreamDefaultWriterAbort(this, reason);\n        };\n        /**\n         * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}.\n         */\n        WritableStreamDefaultWriter.prototype.close = function () {\n            if (!IsWritableStreamDefaultWriter(this)) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('close'));\n            }\n            var stream = this._ownerWritableStream;\n            if (stream === undefined) {\n                return promiseRejectedWith(defaultWriterLockException('close'));\n            }\n            if (WritableStreamCloseQueuedOrInFlight(stream)) {\n                return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n            }\n            return WritableStreamDefaultWriterClose(this);\n        };\n        /**\n         * Releases the writer’s lock on the corresponding stream. After the lock is released, the writer is no longer active.\n         * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from\n         * now on; otherwise, the writer will appear closed.\n         *\n         * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the\n         * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled).\n         * It’s not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents\n         * other producers from writing in an interleaved manner.\n         */\n        WritableStreamDefaultWriter.prototype.releaseLock = function () {\n            if (!IsWritableStreamDefaultWriter(this)) {\n                throw defaultWriterBrandCheckException('releaseLock');\n            }\n            var stream = this._ownerWritableStream;\n            if (stream === undefined) {\n                return;\n            }\n            WritableStreamDefaultWriterRelease(this);\n        };\n        WritableStreamDefaultWriter.prototype.write = function (chunk) {\n            if (chunk === void 0) { chunk = undefined; }\n            if (!IsWritableStreamDefaultWriter(this)) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('write'));\n            }\n            if (this._ownerWritableStream === undefined) {\n                return promiseRejectedWith(defaultWriterLockException('write to'));\n            }\n            return WritableStreamDefaultWriterWrite(this, chunk);\n        };\n        return WritableStreamDefaultWriter;\n    }());\n    Object.defineProperties(WritableStreamDefaultWriter.prototype, {\n        abort: { enumerable: true },\n        close: { enumerable: true },\n        releaseLock: { enumerable: true },\n        write: { enumerable: true },\n        closed: { enumerable: true },\n        desiredSize: { enumerable: true },\n        ready: { enumerable: true }\n    });\n    setFunctionName(WritableStreamDefaultWriter.prototype.abort, 'abort');\n    setFunctionName(WritableStreamDefaultWriter.prototype.close, 'close');\n    setFunctionName(WritableStreamDefaultWriter.prototype.releaseLock, 'releaseLock');\n    setFunctionName(WritableStreamDefaultWriter.prototype.write, 'write');\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(WritableStreamDefaultWriter.prototype, SymbolPolyfill.toStringTag, {\n            value: 'WritableStreamDefaultWriter',\n            configurable: true\n        });\n    }\n    // Abstract operations for the WritableStreamDefaultWriter.\n    function IsWritableStreamDefaultWriter(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n            return false;\n        }\n        return x instanceof WritableStreamDefaultWriter;\n    }\n    // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n    function WritableStreamDefaultWriterAbort(writer, reason) {\n        var stream = writer._ownerWritableStream;\n        return WritableStreamAbort(stream, reason);\n    }\n    function WritableStreamDefaultWriterClose(writer) {\n        var stream = writer._ownerWritableStream;\n        return WritableStreamClose(stream);\n    }\n    function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n        var stream = writer._ownerWritableStream;\n        var state = stream._state;\n        if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n            return promiseResolvedWith(undefined);\n        }\n        if (state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        return WritableStreamDefaultWriterClose(writer);\n    }\n    function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n        if (writer._closedPromiseState === 'pending') {\n            defaultWriterClosedPromiseReject(writer, error);\n        }\n        else {\n            defaultWriterClosedPromiseResetToRejected(writer, error);\n        }\n    }\n    function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n        if (writer._readyPromiseState === 'pending') {\n            defaultWriterReadyPromiseReject(writer, error);\n        }\n        else {\n            defaultWriterReadyPromiseResetToRejected(writer, error);\n        }\n    }\n    function WritableStreamDefaultWriterGetDesiredSize(writer) {\n        var stream = writer._ownerWritableStream;\n        var state = stream._state;\n        if (state === 'errored' || state === 'erroring') {\n            return null;\n        }\n        if (state === 'closed') {\n            return 0;\n        }\n        return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n    }\n    function WritableStreamDefaultWriterRelease(writer) {\n        var stream = writer._ownerWritableStream;\n        var releasedError = new TypeError(\"Writer was released and can no longer be used to monitor the stream's closedness\");\n        WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n        // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n        // rejected until afterwards. This means that simply testing state will not work.\n        WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n        stream._writer = undefined;\n        writer._ownerWritableStream = undefined;\n    }\n    function WritableStreamDefaultWriterWrite(writer, chunk) {\n        var stream = writer._ownerWritableStream;\n        var controller = stream._writableStreamController;\n        var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n        if (stream !== writer._ownerWritableStream) {\n            return promiseRejectedWith(defaultWriterLockException('write to'));\n        }\n        var state = stream._state;\n        if (state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n            return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\n        }\n        if (state === 'erroring') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        var promise = WritableStreamAddWriteRequest(stream);\n        WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n        return promise;\n    }\n    var closeSentinel = {};\n    /**\n     * Allows control of a {@link WritableStream | writable stream}'s state and internal queue.\n     *\n     * @public\n     */\n    var WritableStreamDefaultController = /** @class */ (function () {\n        function WritableStreamDefaultController() {\n            throw new TypeError('Illegal constructor');\n        }\n        Object.defineProperty(WritableStreamDefaultController.prototype, \"abortReason\", {\n            /**\n             * The reason which was passed to `WritableStream.abort(reason)` when the stream was aborted.\n             *\n             * @deprecated\n             *  This property has been removed from the specification, see https://github.com/whatwg/streams/pull/1177.\n             *  Use {@link WritableStreamDefaultController.signal}'s `reason` instead.\n             */\n            get: function () {\n                if (!IsWritableStreamDefaultController(this)) {\n                    throw defaultControllerBrandCheckException$2('abortReason');\n                }\n                return this._abortReason;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(WritableStreamDefaultController.prototype, \"signal\", {\n            /**\n             * An `AbortSignal` that can be used to abort the pending write or close operation when the stream is aborted.\n             */\n            get: function () {\n                if (!IsWritableStreamDefaultController(this)) {\n                    throw defaultControllerBrandCheckException$2('signal');\n                }\n                if (this._abortController === undefined) {\n                    // Older browsers or older Node versions may not support `AbortController` or `AbortSignal`.\n                    // We don't want to bundle and ship an `AbortController` polyfill together with our polyfill,\n                    // so instead we only implement support for `signal` if we find a global `AbortController` constructor.\n                    throw new TypeError('WritableStreamDefaultController.prototype.signal is not supported');\n                }\n                return this._abortController.signal;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`.\n         *\n         * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying\n         * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the\n         * normal lifecycle of interactions with the underlying sink.\n         */\n        WritableStreamDefaultController.prototype.error = function (e) {\n            if (e === void 0) { e = undefined; }\n            if (!IsWritableStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException$2('error');\n            }\n            var state = this._controlledWritableStream._state;\n            if (state !== 'writable') {\n                // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n                // just treat it as a no-op.\n                return;\n            }\n            WritableStreamDefaultControllerError(this, e);\n        };\n        /** @internal */\n        WritableStreamDefaultController.prototype[AbortSteps] = function (reason) {\n            var result = this._abortAlgorithm(reason);\n            WritableStreamDefaultControllerClearAlgorithms(this);\n            return result;\n        };\n        /** @internal */\n        WritableStreamDefaultController.prototype[ErrorSteps] = function () {\n            ResetQueue(this);\n        };\n        return WritableStreamDefaultController;\n    }());\n    Object.defineProperties(WritableStreamDefaultController.prototype, {\n        abortReason: { enumerable: true },\n        signal: { enumerable: true },\n        error: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(WritableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n            value: 'WritableStreamDefaultController',\n            configurable: true\n        });\n    }\n    // Abstract operations implementing interface required by the WritableStream.\n    function IsWritableStreamDefaultController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\n            return false;\n        }\n        return x instanceof WritableStreamDefaultController;\n    }\n    function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n        controller._controlledWritableStream = stream;\n        stream._writableStreamController = controller;\n        // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n        controller._queue = undefined;\n        controller._queueTotalSize = undefined;\n        ResetQueue(controller);\n        controller._abortReason = undefined;\n        controller._abortController = createAbortController();\n        controller._started = false;\n        controller._strategySizeAlgorithm = sizeAlgorithm;\n        controller._strategyHWM = highWaterMark;\n        controller._writeAlgorithm = writeAlgorithm;\n        controller._closeAlgorithm = closeAlgorithm;\n        controller._abortAlgorithm = abortAlgorithm;\n        var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n        WritableStreamUpdateBackpressure(stream, backpressure);\n        var startResult = startAlgorithm();\n        var startPromise = promiseResolvedWith(startResult);\n        uponPromise(startPromise, function () {\n            controller._started = true;\n            WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n            return null;\n        }, function (r) {\n            controller._started = true;\n            WritableStreamDealWithRejection(stream, r);\n            return null;\n        });\n    }\n    function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\n        var controller = Object.create(WritableStreamDefaultController.prototype);\n        var startAlgorithm;\n        var writeAlgorithm;\n        var closeAlgorithm;\n        var abortAlgorithm;\n        if (underlyingSink.start !== undefined) {\n            startAlgorithm = function () { return underlyingSink.start(controller); };\n        }\n        else {\n            startAlgorithm = function () { return undefined; };\n        }\n        if (underlyingSink.write !== undefined) {\n            writeAlgorithm = function (chunk) { return underlyingSink.write(chunk, controller); };\n        }\n        else {\n            writeAlgorithm = function () { return promiseResolvedWith(undefined); };\n        }\n        if (underlyingSink.close !== undefined) {\n            closeAlgorithm = function () { return underlyingSink.close(); };\n        }\n        else {\n            closeAlgorithm = function () { return promiseResolvedWith(undefined); };\n        }\n        if (underlyingSink.abort !== undefined) {\n            abortAlgorithm = function (reason) { return underlyingSink.abort(reason); };\n        }\n        else {\n            abortAlgorithm = function () { return promiseResolvedWith(undefined); };\n        }\n        SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n    }\n    // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\n    function WritableStreamDefaultControllerClearAlgorithms(controller) {\n        controller._writeAlgorithm = undefined;\n        controller._closeAlgorithm = undefined;\n        controller._abortAlgorithm = undefined;\n        controller._strategySizeAlgorithm = undefined;\n    }\n    function WritableStreamDefaultControllerClose(controller) {\n        EnqueueValueWithSize(controller, closeSentinel, 0);\n        WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n    }\n    function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n        try {\n            return controller._strategySizeAlgorithm(chunk);\n        }\n        catch (chunkSizeE) {\n            WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n            return 1;\n        }\n    }\n    function WritableStreamDefaultControllerGetDesiredSize(controller) {\n        return controller._strategyHWM - controller._queueTotalSize;\n    }\n    function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n        try {\n            EnqueueValueWithSize(controller, chunk, chunkSize);\n        }\n        catch (enqueueE) {\n            WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n            return;\n        }\n        var stream = controller._controlledWritableStream;\n        if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === 'writable') {\n            var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n            WritableStreamUpdateBackpressure(stream, backpressure);\n        }\n        WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n    }\n    // Abstract operations for the WritableStreamDefaultController.\n    function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n        var stream = controller._controlledWritableStream;\n        if (!controller._started) {\n            return;\n        }\n        if (stream._inFlightWriteRequest !== undefined) {\n            return;\n        }\n        var state = stream._state;\n        if (state === 'erroring') {\n            WritableStreamFinishErroring(stream);\n            return;\n        }\n        if (controller._queue.length === 0) {\n            return;\n        }\n        var value = PeekQueueValue(controller);\n        if (value === closeSentinel) {\n            WritableStreamDefaultControllerProcessClose(controller);\n        }\n        else {\n            WritableStreamDefaultControllerProcessWrite(controller, value);\n        }\n    }\n    function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n        if (controller._controlledWritableStream._state === 'writable') {\n            WritableStreamDefaultControllerError(controller, error);\n        }\n    }\n    function WritableStreamDefaultControllerProcessClose(controller) {\n        var stream = controller._controlledWritableStream;\n        WritableStreamMarkCloseRequestInFlight(stream);\n        DequeueValue(controller);\n        var sinkClosePromise = controller._closeAlgorithm();\n        WritableStreamDefaultControllerClearAlgorithms(controller);\n        uponPromise(sinkClosePromise, function () {\n            WritableStreamFinishInFlightClose(stream);\n            return null;\n        }, function (reason) {\n            WritableStreamFinishInFlightCloseWithError(stream, reason);\n            return null;\n        });\n    }\n    function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n        var stream = controller._controlledWritableStream;\n        WritableStreamMarkFirstWriteRequestInFlight(stream);\n        var sinkWritePromise = controller._writeAlgorithm(chunk);\n        uponPromise(sinkWritePromise, function () {\n            WritableStreamFinishInFlightWrite(stream);\n            var state = stream._state;\n            DequeueValue(controller);\n            if (!WritableStreamCloseQueuedOrInFlight(stream) && state === 'writable') {\n                var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n                WritableStreamUpdateBackpressure(stream, backpressure);\n            }\n            WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n            return null;\n        }, function (reason) {\n            if (stream._state === 'writable') {\n                WritableStreamDefaultControllerClearAlgorithms(controller);\n            }\n            WritableStreamFinishInFlightWriteWithError(stream, reason);\n            return null;\n        });\n    }\n    function WritableStreamDefaultControllerGetBackpressure(controller) {\n        var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n        return desiredSize <= 0;\n    }\n    // A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n    function WritableStreamDefaultControllerError(controller, error) {\n        var stream = controller._controlledWritableStream;\n        WritableStreamDefaultControllerClearAlgorithms(controller);\n        WritableStreamStartErroring(stream, error);\n    }\n    // Helper functions for the WritableStream.\n    function streamBrandCheckException$2(name) {\n        return new TypeError(\"WritableStream.prototype.\".concat(name, \" can only be used on a WritableStream\"));\n    }\n    // Helper functions for the WritableStreamDefaultController.\n    function defaultControllerBrandCheckException$2(name) {\n        return new TypeError(\"WritableStreamDefaultController.prototype.\".concat(name, \" can only be used on a WritableStreamDefaultController\"));\n    }\n    // Helper functions for the WritableStreamDefaultWriter.\n    function defaultWriterBrandCheckException(name) {\n        return new TypeError(\"WritableStreamDefaultWriter.prototype.\".concat(name, \" can only be used on a WritableStreamDefaultWriter\"));\n    }\n    function defaultWriterLockException(name) {\n        return new TypeError('Cannot ' + name + ' a stream using a released writer');\n    }\n    function defaultWriterClosedPromiseInitialize(writer) {\n        writer._closedPromise = newPromise(function (resolve, reject) {\n            writer._closedPromise_resolve = resolve;\n            writer._closedPromise_reject = reject;\n            writer._closedPromiseState = 'pending';\n        });\n    }\n    function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n        defaultWriterClosedPromiseInitialize(writer);\n        defaultWriterClosedPromiseReject(writer, reason);\n    }\n    function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n        defaultWriterClosedPromiseInitialize(writer);\n        defaultWriterClosedPromiseResolve(writer);\n    }\n    function defaultWriterClosedPromiseReject(writer, reason) {\n        if (writer._closedPromise_reject === undefined) {\n            return;\n        }\n        setPromiseIsHandledToTrue(writer._closedPromise);\n        writer._closedPromise_reject(reason);\n        writer._closedPromise_resolve = undefined;\n        writer._closedPromise_reject = undefined;\n        writer._closedPromiseState = 'rejected';\n    }\n    function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n        defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\n    }\n    function defaultWriterClosedPromiseResolve(writer) {\n        if (writer._closedPromise_resolve === undefined) {\n            return;\n        }\n        writer._closedPromise_resolve(undefined);\n        writer._closedPromise_resolve = undefined;\n        writer._closedPromise_reject = undefined;\n        writer._closedPromiseState = 'resolved';\n    }\n    function defaultWriterReadyPromiseInitialize(writer) {\n        writer._readyPromise = newPromise(function (resolve, reject) {\n            writer._readyPromise_resolve = resolve;\n            writer._readyPromise_reject = reject;\n        });\n        writer._readyPromiseState = 'pending';\n    }\n    function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n        defaultWriterReadyPromiseInitialize(writer);\n        defaultWriterReadyPromiseReject(writer, reason);\n    }\n    function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n        defaultWriterReadyPromiseInitialize(writer);\n        defaultWriterReadyPromiseResolve(writer);\n    }\n    function defaultWriterReadyPromiseReject(writer, reason) {\n        if (writer._readyPromise_reject === undefined) {\n            return;\n        }\n        setPromiseIsHandledToTrue(writer._readyPromise);\n        writer._readyPromise_reject(reason);\n        writer._readyPromise_resolve = undefined;\n        writer._readyPromise_reject = undefined;\n        writer._readyPromiseState = 'rejected';\n    }\n    function defaultWriterReadyPromiseReset(writer) {\n        defaultWriterReadyPromiseInitialize(writer);\n    }\n    function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n        defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\n    }\n    function defaultWriterReadyPromiseResolve(writer) {\n        if (writer._readyPromise_resolve === undefined) {\n            return;\n        }\n        writer._readyPromise_resolve(undefined);\n        writer._readyPromise_resolve = undefined;\n        writer._readyPromise_reject = undefined;\n        writer._readyPromiseState = 'fulfilled';\n    }\n\n    /// <reference lib=\"dom\" />\n    function getGlobals() {\n        if (typeof globalThis !== 'undefined') {\n            return globalThis;\n        }\n        else if (typeof self !== 'undefined') {\n            return self;\n        }\n        else if (typeof global !== 'undefined') {\n            return global;\n        }\n        return undefined;\n    }\n    var globals = getGlobals();\n\n    /// <reference types=\"node\" />\n    function isDOMExceptionConstructor(ctor) {\n        if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\n            return false;\n        }\n        if (ctor.name !== 'DOMException') {\n            return false;\n        }\n        try {\n            new ctor();\n            return true;\n        }\n        catch (_a) {\n            return false;\n        }\n    }\n    /**\n     * Support:\n     * - Web browsers\n     * - Node 18 and higher (https://github.com/nodejs/node/commit/e4b1fb5e6422c1ff151234bb9de792d45dd88d87)\n     */\n    function getFromGlobal() {\n        var ctor = globals === null || globals === void 0 ? void 0 : globals.DOMException;\n        return isDOMExceptionConstructor(ctor) ? ctor : undefined;\n    }\n    /**\n     * Support:\n     * - All platforms\n     */\n    function createPolyfill() {\n        // eslint-disable-next-line @typescript-eslint/no-shadow\n        var ctor = function DOMException(message, name) {\n            this.message = message || '';\n            this.name = name || 'Error';\n            if (Error.captureStackTrace) {\n                Error.captureStackTrace(this, this.constructor);\n            }\n        };\n        setFunctionName(ctor, 'DOMException');\n        ctor.prototype = Object.create(Error.prototype);\n        Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true });\n        return ctor;\n    }\n    // eslint-disable-next-line @typescript-eslint/no-redeclare\n    var DOMException = getFromGlobal() || createPolyfill();\n\n    function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\n        var reader = AcquireReadableStreamDefaultReader(source);\n        var writer = AcquireWritableStreamDefaultWriter(dest);\n        source._disturbed = true;\n        var shuttingDown = false;\n        // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n        var currentWrite = promiseResolvedWith(undefined);\n        return newPromise(function (resolve, reject) {\n            var abortAlgorithm;\n            if (signal !== undefined) {\n                abortAlgorithm = function () {\n                    var error = signal.reason !== undefined ? signal.reason : new DOMException('Aborted', 'AbortError');\n                    var actions = [];\n                    if (!preventAbort) {\n                        actions.push(function () {\n                            if (dest._state === 'writable') {\n                                return WritableStreamAbort(dest, error);\n                            }\n                            return promiseResolvedWith(undefined);\n                        });\n                    }\n                    if (!preventCancel) {\n                        actions.push(function () {\n                            if (source._state === 'readable') {\n                                return ReadableStreamCancel(source, error);\n                            }\n                            return promiseResolvedWith(undefined);\n                        });\n                    }\n                    shutdownWithAction(function () { return Promise.all(actions.map(function (action) { return action(); })); }, true, error);\n                };\n                if (signal.aborted) {\n                    abortAlgorithm();\n                    return;\n                }\n                signal.addEventListener('abort', abortAlgorithm);\n            }\n            // Using reader and writer, read all chunks from this and write them to dest\n            // - Backpressure must be enforced\n            // - Shutdown must stop all activity\n            function pipeLoop() {\n                return newPromise(function (resolveLoop, rejectLoop) {\n                    function next(done) {\n                        if (done) {\n                            resolveLoop();\n                        }\n                        else {\n                            // Use `PerformPromiseThen` instead of `uponPromise` to avoid\n                            // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers\n                            PerformPromiseThen(pipeStep(), next, rejectLoop);\n                        }\n                    }\n                    next(false);\n                });\n            }\n            function pipeStep() {\n                if (shuttingDown) {\n                    return promiseResolvedWith(true);\n                }\n                return PerformPromiseThen(writer._readyPromise, function () {\n                    return newPromise(function (resolveRead, rejectRead) {\n                        ReadableStreamDefaultReaderRead(reader, {\n                            _chunkSteps: function (chunk) {\n                                currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), undefined, noop);\n                                resolveRead(false);\n                            },\n                            _closeSteps: function () { return resolveRead(true); },\n                            _errorSteps: rejectRead\n                        });\n                    });\n                });\n            }\n            // Errors must be propagated forward\n            isOrBecomesErrored(source, reader._closedPromise, function (storedError) {\n                if (!preventAbort) {\n                    shutdownWithAction(function () { return WritableStreamAbort(dest, storedError); }, true, storedError);\n                }\n                else {\n                    shutdown(true, storedError);\n                }\n                return null;\n            });\n            // Errors must be propagated backward\n            isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n                if (!preventCancel) {\n                    shutdownWithAction(function () { return ReadableStreamCancel(source, storedError); }, true, storedError);\n                }\n                else {\n                    shutdown(true, storedError);\n                }\n                return null;\n            });\n            // Closing must be propagated forward\n            isOrBecomesClosed(source, reader._closedPromise, function () {\n                if (!preventClose) {\n                    shutdownWithAction(function () { return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); });\n                }\n                else {\n                    shutdown();\n                }\n                return null;\n            });\n            // Closing must be propagated backward\n            if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === 'closed') {\n                var destClosed_1 = new TypeError('the destination writable stream closed before all data could be piped to it');\n                if (!preventCancel) {\n                    shutdownWithAction(function () { return ReadableStreamCancel(source, destClosed_1); }, true, destClosed_1);\n                }\n                else {\n                    shutdown(true, destClosed_1);\n                }\n            }\n            setPromiseIsHandledToTrue(pipeLoop());\n            function waitForWritesToFinish() {\n                // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n                // for that too.\n                var oldCurrentWrite = currentWrite;\n                return PerformPromiseThen(currentWrite, function () { return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; });\n            }\n            function isOrBecomesErrored(stream, promise, action) {\n                if (stream._state === 'errored') {\n                    action(stream._storedError);\n                }\n                else {\n                    uponRejection(promise, action);\n                }\n            }\n            function isOrBecomesClosed(stream, promise, action) {\n                if (stream._state === 'closed') {\n                    action();\n                }\n                else {\n                    uponFulfillment(promise, action);\n                }\n            }\n            function shutdownWithAction(action, originalIsError, originalError) {\n                if (shuttingDown) {\n                    return;\n                }\n                shuttingDown = true;\n                if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n                    uponFulfillment(waitForWritesToFinish(), doTheRest);\n                }\n                else {\n                    doTheRest();\n                }\n                function doTheRest() {\n                    uponPromise(action(), function () { return finalize(originalIsError, originalError); }, function (newError) { return finalize(true, newError); });\n                    return null;\n                }\n            }\n            function shutdown(isError, error) {\n                if (shuttingDown) {\n                    return;\n                }\n                shuttingDown = true;\n                if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n                    uponFulfillment(waitForWritesToFinish(), function () { return finalize(isError, error); });\n                }\n                else {\n                    finalize(isError, error);\n                }\n            }\n            function finalize(isError, error) {\n                WritableStreamDefaultWriterRelease(writer);\n                ReadableStreamReaderGenericRelease(reader);\n                if (signal !== undefined) {\n                    signal.removeEventListener('abort', abortAlgorithm);\n                }\n                if (isError) {\n                    reject(error);\n                }\n                else {\n                    resolve(undefined);\n                }\n                return null;\n            }\n        });\n    }\n\n    /**\n     * Allows control of a {@link ReadableStream | readable stream}'s state and internal queue.\n     *\n     * @public\n     */\n    var ReadableStreamDefaultController = /** @class */ (function () {\n        function ReadableStreamDefaultController() {\n            throw new TypeError('Illegal constructor');\n        }\n        Object.defineProperty(ReadableStreamDefaultController.prototype, \"desiredSize\", {\n            /**\n             * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n             * over-full. An underlying source ought to use this information to determine when and how to apply backpressure.\n             */\n            get: function () {\n                if (!IsReadableStreamDefaultController(this)) {\n                    throw defaultControllerBrandCheckException$1('desiredSize');\n                }\n                return ReadableStreamDefaultControllerGetDesiredSize(this);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n         * the stream, but once those are read, the stream will become closed.\n         */\n        ReadableStreamDefaultController.prototype.close = function () {\n            if (!IsReadableStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException$1('close');\n            }\n            if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n                throw new TypeError('The stream is not in a state that permits close');\n            }\n            ReadableStreamDefaultControllerClose(this);\n        };\n        ReadableStreamDefaultController.prototype.enqueue = function (chunk) {\n            if (chunk === void 0) { chunk = undefined; }\n            if (!IsReadableStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException$1('enqueue');\n            }\n            if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n                throw new TypeError('The stream is not in a state that permits enqueue');\n            }\n            return ReadableStreamDefaultControllerEnqueue(this, chunk);\n        };\n        /**\n         * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n         */\n        ReadableStreamDefaultController.prototype.error = function (e) {\n            if (e === void 0) { e = undefined; }\n            if (!IsReadableStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException$1('error');\n            }\n            ReadableStreamDefaultControllerError(this, e);\n        };\n        /** @internal */\n        ReadableStreamDefaultController.prototype[CancelSteps] = function (reason) {\n            ResetQueue(this);\n            var result = this._cancelAlgorithm(reason);\n            ReadableStreamDefaultControllerClearAlgorithms(this);\n            return result;\n        };\n        /** @internal */\n        ReadableStreamDefaultController.prototype[PullSteps] = function (readRequest) {\n            var stream = this._controlledReadableStream;\n            if (this._queue.length > 0) {\n                var chunk = DequeueValue(this);\n                if (this._closeRequested && this._queue.length === 0) {\n                    ReadableStreamDefaultControllerClearAlgorithms(this);\n                    ReadableStreamClose(stream);\n                }\n                else {\n                    ReadableStreamDefaultControllerCallPullIfNeeded(this);\n                }\n                readRequest._chunkSteps(chunk);\n            }\n            else {\n                ReadableStreamAddReadRequest(stream, readRequest);\n                ReadableStreamDefaultControllerCallPullIfNeeded(this);\n            }\n        };\n        /** @internal */\n        ReadableStreamDefaultController.prototype[ReleaseSteps] = function () {\n            // Do nothing.\n        };\n        return ReadableStreamDefaultController;\n    }());\n    Object.defineProperties(ReadableStreamDefaultController.prototype, {\n        close: { enumerable: true },\n        enqueue: { enumerable: true },\n        error: { enumerable: true },\n        desiredSize: { enumerable: true }\n    });\n    setFunctionName(ReadableStreamDefaultController.prototype.close, 'close');\n    setFunctionName(ReadableStreamDefaultController.prototype.enqueue, 'enqueue');\n    setFunctionName(ReadableStreamDefaultController.prototype.error, 'error');\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n            value: 'ReadableStreamDefaultController',\n            configurable: true\n        });\n    }\n    // Abstract operations for the ReadableStreamDefaultController.\n    function IsReadableStreamDefaultController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\n            return false;\n        }\n        return x instanceof ReadableStreamDefaultController;\n    }\n    function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n        var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n        if (!shouldPull) {\n            return;\n        }\n        if (controller._pulling) {\n            controller._pullAgain = true;\n            return;\n        }\n        controller._pulling = true;\n        var pullPromise = controller._pullAlgorithm();\n        uponPromise(pullPromise, function () {\n            controller._pulling = false;\n            if (controller._pullAgain) {\n                controller._pullAgain = false;\n                ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n            }\n            return null;\n        }, function (e) {\n            ReadableStreamDefaultControllerError(controller, e);\n            return null;\n        });\n    }\n    function ReadableStreamDefaultControllerShouldCallPull(controller) {\n        var stream = controller._controlledReadableStream;\n        if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n            return false;\n        }\n        if (!controller._started) {\n            return false;\n        }\n        if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n            return true;\n        }\n        var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n        if (desiredSize > 0) {\n            return true;\n        }\n        return false;\n    }\n    function ReadableStreamDefaultControllerClearAlgorithms(controller) {\n        controller._pullAlgorithm = undefined;\n        controller._cancelAlgorithm = undefined;\n        controller._strategySizeAlgorithm = undefined;\n    }\n    // A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n    function ReadableStreamDefaultControllerClose(controller) {\n        if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n            return;\n        }\n        var stream = controller._controlledReadableStream;\n        controller._closeRequested = true;\n        if (controller._queue.length === 0) {\n            ReadableStreamDefaultControllerClearAlgorithms(controller);\n            ReadableStreamClose(stream);\n        }\n    }\n    function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n        if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n            return;\n        }\n        var stream = controller._controlledReadableStream;\n        if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n            ReadableStreamFulfillReadRequest(stream, chunk, false);\n        }\n        else {\n            var chunkSize = void 0;\n            try {\n                chunkSize = controller._strategySizeAlgorithm(chunk);\n            }\n            catch (chunkSizeE) {\n                ReadableStreamDefaultControllerError(controller, chunkSizeE);\n                throw chunkSizeE;\n            }\n            try {\n                EnqueueValueWithSize(controller, chunk, chunkSize);\n            }\n            catch (enqueueE) {\n                ReadableStreamDefaultControllerError(controller, enqueueE);\n                throw enqueueE;\n            }\n        }\n        ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n    }\n    function ReadableStreamDefaultControllerError(controller, e) {\n        var stream = controller._controlledReadableStream;\n        if (stream._state !== 'readable') {\n            return;\n        }\n        ResetQueue(controller);\n        ReadableStreamDefaultControllerClearAlgorithms(controller);\n        ReadableStreamError(stream, e);\n    }\n    function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n        var state = controller._controlledReadableStream._state;\n        if (state === 'errored') {\n            return null;\n        }\n        if (state === 'closed') {\n            return 0;\n        }\n        return controller._strategyHWM - controller._queueTotalSize;\n    }\n    // This is used in the implementation of TransformStream.\n    function ReadableStreamDefaultControllerHasBackpressure(controller) {\n        if (ReadableStreamDefaultControllerShouldCallPull(controller)) {\n            return false;\n        }\n        return true;\n    }\n    function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n        var state = controller._controlledReadableStream._state;\n        if (!controller._closeRequested && state === 'readable') {\n            return true;\n        }\n        return false;\n    }\n    function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n        controller._controlledReadableStream = stream;\n        controller._queue = undefined;\n        controller._queueTotalSize = undefined;\n        ResetQueue(controller);\n        controller._started = false;\n        controller._closeRequested = false;\n        controller._pullAgain = false;\n        controller._pulling = false;\n        controller._strategySizeAlgorithm = sizeAlgorithm;\n        controller._strategyHWM = highWaterMark;\n        controller._pullAlgorithm = pullAlgorithm;\n        controller._cancelAlgorithm = cancelAlgorithm;\n        stream._readableStreamController = controller;\n        var startResult = startAlgorithm();\n        uponPromise(promiseResolvedWith(startResult), function () {\n            controller._started = true;\n            ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n            return null;\n        }, function (r) {\n            ReadableStreamDefaultControllerError(controller, r);\n            return null;\n        });\n    }\n    function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\n        var controller = Object.create(ReadableStreamDefaultController.prototype);\n        var startAlgorithm;\n        var pullAlgorithm;\n        var cancelAlgorithm;\n        if (underlyingSource.start !== undefined) {\n            startAlgorithm = function () { return underlyingSource.start(controller); };\n        }\n        else {\n            startAlgorithm = function () { return undefined; };\n        }\n        if (underlyingSource.pull !== undefined) {\n            pullAlgorithm = function () { return underlyingSource.pull(controller); };\n        }\n        else {\n            pullAlgorithm = function () { return promiseResolvedWith(undefined); };\n        }\n        if (underlyingSource.cancel !== undefined) {\n            cancelAlgorithm = function (reason) { return underlyingSource.cancel(reason); };\n        }\n        else {\n            cancelAlgorithm = function () { return promiseResolvedWith(undefined); };\n        }\n        SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n    }\n    // Helper functions for the ReadableStreamDefaultController.\n    function defaultControllerBrandCheckException$1(name) {\n        return new TypeError(\"ReadableStreamDefaultController.prototype.\".concat(name, \" can only be used on a ReadableStreamDefaultController\"));\n    }\n\n    function ReadableStreamTee(stream, cloneForBranch2) {\n        if (IsReadableByteStreamController(stream._readableStreamController)) {\n            return ReadableByteStreamTee(stream);\n        }\n        return ReadableStreamDefaultTee(stream);\n    }\n    function ReadableStreamDefaultTee(stream, cloneForBranch2) {\n        var reader = AcquireReadableStreamDefaultReader(stream);\n        var reading = false;\n        var readAgain = false;\n        var canceled1 = false;\n        var canceled2 = false;\n        var reason1;\n        var reason2;\n        var branch1;\n        var branch2;\n        var resolveCancelPromise;\n        var cancelPromise = newPromise(function (resolve) {\n            resolveCancelPromise = resolve;\n        });\n        function pullAlgorithm() {\n            if (reading) {\n                readAgain = true;\n                return promiseResolvedWith(undefined);\n            }\n            reading = true;\n            var readRequest = {\n                _chunkSteps: function (chunk) {\n                    // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n                    // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n                    // successful synchronously-available reads get ahead of asynchronously-available errors.\n                    _queueMicrotask(function () {\n                        readAgain = false;\n                        var chunk1 = chunk;\n                        var chunk2 = chunk;\n                        // There is no way to access the cloning code right now in the reference implementation.\n                        // If we add one then we'll need an implementation for serializable objects.\n                        // if (!canceled2 && cloneForBranch2) {\n                        //   chunk2 = StructuredDeserialize(StructuredSerialize(chunk2));\n                        // }\n                        if (!canceled1) {\n                            ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, chunk1);\n                        }\n                        if (!canceled2) {\n                            ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, chunk2);\n                        }\n                        reading = false;\n                        if (readAgain) {\n                            pullAlgorithm();\n                        }\n                    });\n                },\n                _closeSteps: function () {\n                    reading = false;\n                    if (!canceled1) {\n                        ReadableStreamDefaultControllerClose(branch1._readableStreamController);\n                    }\n                    if (!canceled2) {\n                        ReadableStreamDefaultControllerClose(branch2._readableStreamController);\n                    }\n                    if (!canceled1 || !canceled2) {\n                        resolveCancelPromise(undefined);\n                    }\n                },\n                _errorSteps: function () {\n                    reading = false;\n                }\n            };\n            ReadableStreamDefaultReaderRead(reader, readRequest);\n            return promiseResolvedWith(undefined);\n        }\n        function cancel1Algorithm(reason) {\n            canceled1 = true;\n            reason1 = reason;\n            if (canceled2) {\n                var compositeReason = CreateArrayFromList([reason1, reason2]);\n                var cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function cancel2Algorithm(reason) {\n            canceled2 = true;\n            reason2 = reason;\n            if (canceled1) {\n                var compositeReason = CreateArrayFromList([reason1, reason2]);\n                var cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function startAlgorithm() {\n            // do nothing\n        }\n        branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\n        branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\n        uponRejection(reader._closedPromise, function (r) {\n            ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\n            ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\n            if (!canceled1 || !canceled2) {\n                resolveCancelPromise(undefined);\n            }\n            return null;\n        });\n        return [branch1, branch2];\n    }\n    function ReadableByteStreamTee(stream) {\n        var reader = AcquireReadableStreamDefaultReader(stream);\n        var reading = false;\n        var readAgainForBranch1 = false;\n        var readAgainForBranch2 = false;\n        var canceled1 = false;\n        var canceled2 = false;\n        var reason1;\n        var reason2;\n        var branch1;\n        var branch2;\n        var resolveCancelPromise;\n        var cancelPromise = newPromise(function (resolve) {\n            resolveCancelPromise = resolve;\n        });\n        function forwardReaderError(thisReader) {\n            uponRejection(thisReader._closedPromise, function (r) {\n                if (thisReader !== reader) {\n                    return null;\n                }\n                ReadableByteStreamControllerError(branch1._readableStreamController, r);\n                ReadableByteStreamControllerError(branch2._readableStreamController, r);\n                if (!canceled1 || !canceled2) {\n                    resolveCancelPromise(undefined);\n                }\n                return null;\n            });\n        }\n        function pullWithDefaultReader() {\n            if (IsReadableStreamBYOBReader(reader)) {\n                ReadableStreamReaderGenericRelease(reader);\n                reader = AcquireReadableStreamDefaultReader(stream);\n                forwardReaderError(reader);\n            }\n            var readRequest = {\n                _chunkSteps: function (chunk) {\n                    // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n                    // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n                    // successful synchronously-available reads get ahead of asynchronously-available errors.\n                    _queueMicrotask(function () {\n                        readAgainForBranch1 = false;\n                        readAgainForBranch2 = false;\n                        var chunk1 = chunk;\n                        var chunk2 = chunk;\n                        if (!canceled1 && !canceled2) {\n                            try {\n                                chunk2 = CloneAsUint8Array(chunk);\n                            }\n                            catch (cloneE) {\n                                ReadableByteStreamControllerError(branch1._readableStreamController, cloneE);\n                                ReadableByteStreamControllerError(branch2._readableStreamController, cloneE);\n                                resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n                                return;\n                            }\n                        }\n                        if (!canceled1) {\n                            ReadableByteStreamControllerEnqueue(branch1._readableStreamController, chunk1);\n                        }\n                        if (!canceled2) {\n                            ReadableByteStreamControllerEnqueue(branch2._readableStreamController, chunk2);\n                        }\n                        reading = false;\n                        if (readAgainForBranch1) {\n                            pull1Algorithm();\n                        }\n                        else if (readAgainForBranch2) {\n                            pull2Algorithm();\n                        }\n                    });\n                },\n                _closeSteps: function () {\n                    reading = false;\n                    if (!canceled1) {\n                        ReadableByteStreamControllerClose(branch1._readableStreamController);\n                    }\n                    if (!canceled2) {\n                        ReadableByteStreamControllerClose(branch2._readableStreamController);\n                    }\n                    if (branch1._readableStreamController._pendingPullIntos.length > 0) {\n                        ReadableByteStreamControllerRespond(branch1._readableStreamController, 0);\n                    }\n                    if (branch2._readableStreamController._pendingPullIntos.length > 0) {\n                        ReadableByteStreamControllerRespond(branch2._readableStreamController, 0);\n                    }\n                    if (!canceled1 || !canceled2) {\n                        resolveCancelPromise(undefined);\n                    }\n                },\n                _errorSteps: function () {\n                    reading = false;\n                }\n            };\n            ReadableStreamDefaultReaderRead(reader, readRequest);\n        }\n        function pullWithBYOBReader(view, forBranch2) {\n            if (IsReadableStreamDefaultReader(reader)) {\n                ReadableStreamReaderGenericRelease(reader);\n                reader = AcquireReadableStreamBYOBReader(stream);\n                forwardReaderError(reader);\n            }\n            var byobBranch = forBranch2 ? branch2 : branch1;\n            var otherBranch = forBranch2 ? branch1 : branch2;\n            var readIntoRequest = {\n                _chunkSteps: function (chunk) {\n                    // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n                    // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n                    // successful synchronously-available reads get ahead of asynchronously-available errors.\n                    _queueMicrotask(function () {\n                        readAgainForBranch1 = false;\n                        readAgainForBranch2 = false;\n                        var byobCanceled = forBranch2 ? canceled2 : canceled1;\n                        var otherCanceled = forBranch2 ? canceled1 : canceled2;\n                        if (!otherCanceled) {\n                            var clonedChunk = void 0;\n                            try {\n                                clonedChunk = CloneAsUint8Array(chunk);\n                            }\n                            catch (cloneE) {\n                                ReadableByteStreamControllerError(byobBranch._readableStreamController, cloneE);\n                                ReadableByteStreamControllerError(otherBranch._readableStreamController, cloneE);\n                                resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n                                return;\n                            }\n                            if (!byobCanceled) {\n                                ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n                            }\n                            ReadableByteStreamControllerEnqueue(otherBranch._readableStreamController, clonedChunk);\n                        }\n                        else if (!byobCanceled) {\n                            ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n                        }\n                        reading = false;\n                        if (readAgainForBranch1) {\n                            pull1Algorithm();\n                        }\n                        else if (readAgainForBranch2) {\n                            pull2Algorithm();\n                        }\n                    });\n                },\n                _closeSteps: function (chunk) {\n                    reading = false;\n                    var byobCanceled = forBranch2 ? canceled2 : canceled1;\n                    var otherCanceled = forBranch2 ? canceled1 : canceled2;\n                    if (!byobCanceled) {\n                        ReadableByteStreamControllerClose(byobBranch._readableStreamController);\n                    }\n                    if (!otherCanceled) {\n                        ReadableByteStreamControllerClose(otherBranch._readableStreamController);\n                    }\n                    if (chunk !== undefined) {\n                        if (!byobCanceled) {\n                            ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n                        }\n                        if (!otherCanceled && otherBranch._readableStreamController._pendingPullIntos.length > 0) {\n                            ReadableByteStreamControllerRespond(otherBranch._readableStreamController, 0);\n                        }\n                    }\n                    if (!byobCanceled || !otherCanceled) {\n                        resolveCancelPromise(undefined);\n                    }\n                },\n                _errorSteps: function () {\n                    reading = false;\n                }\n            };\n            ReadableStreamBYOBReaderRead(reader, view, 1, readIntoRequest);\n        }\n        function pull1Algorithm() {\n            if (reading) {\n                readAgainForBranch1 = true;\n                return promiseResolvedWith(undefined);\n            }\n            reading = true;\n            var byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch1._readableStreamController);\n            if (byobRequest === null) {\n                pullWithDefaultReader();\n            }\n            else {\n                pullWithBYOBReader(byobRequest._view, false);\n            }\n            return promiseResolvedWith(undefined);\n        }\n        function pull2Algorithm() {\n            if (reading) {\n                readAgainForBranch2 = true;\n                return promiseResolvedWith(undefined);\n            }\n            reading = true;\n            var byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch2._readableStreamController);\n            if (byobRequest === null) {\n                pullWithDefaultReader();\n            }\n            else {\n                pullWithBYOBReader(byobRequest._view, true);\n            }\n            return promiseResolvedWith(undefined);\n        }\n        function cancel1Algorithm(reason) {\n            canceled1 = true;\n            reason1 = reason;\n            if (canceled2) {\n                var compositeReason = CreateArrayFromList([reason1, reason2]);\n                var cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function cancel2Algorithm(reason) {\n            canceled2 = true;\n            reason2 = reason;\n            if (canceled1) {\n                var compositeReason = CreateArrayFromList([reason1, reason2]);\n                var cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function startAlgorithm() {\n            return;\n        }\n        branch1 = CreateReadableByteStream(startAlgorithm, pull1Algorithm, cancel1Algorithm);\n        branch2 = CreateReadableByteStream(startAlgorithm, pull2Algorithm, cancel2Algorithm);\n        forwardReaderError(reader);\n        return [branch1, branch2];\n    }\n\n    function isReadableStreamLike(stream) {\n        return typeIsObject(stream) && typeof stream.getReader !== 'undefined';\n    }\n\n    function ReadableStreamFrom(source) {\n        if (isReadableStreamLike(source)) {\n            return ReadableStreamFromDefaultReader(source.getReader());\n        }\n        return ReadableStreamFromIterable(source);\n    }\n    function ReadableStreamFromIterable(asyncIterable) {\n        var stream;\n        var iteratorRecord = GetIterator(asyncIterable, 'async');\n        var startAlgorithm = noop;\n        function pullAlgorithm() {\n            var nextResult;\n            try {\n                nextResult = IteratorNext(iteratorRecord);\n            }\n            catch (e) {\n                return promiseRejectedWith(e);\n            }\n            var nextPromise = promiseResolvedWith(nextResult);\n            return transformPromiseWith(nextPromise, function (iterResult) {\n                if (!typeIsObject(iterResult)) {\n                    throw new TypeError('The promise returned by the iterator.next() method must fulfill with an object');\n                }\n                var done = IteratorComplete(iterResult);\n                if (done) {\n                    ReadableStreamDefaultControllerClose(stream._readableStreamController);\n                }\n                else {\n                    var value = IteratorValue(iterResult);\n                    ReadableStreamDefaultControllerEnqueue(stream._readableStreamController, value);\n                }\n            });\n        }\n        function cancelAlgorithm(reason) {\n            var iterator = iteratorRecord.iterator;\n            var returnMethod;\n            try {\n                returnMethod = GetMethod(iterator, 'return');\n            }\n            catch (e) {\n                return promiseRejectedWith(e);\n            }\n            if (returnMethod === undefined) {\n                return promiseResolvedWith(undefined);\n            }\n            var returnResult;\n            try {\n                returnResult = reflectCall(returnMethod, iterator, [reason]);\n            }\n            catch (e) {\n                return promiseRejectedWith(e);\n            }\n            var returnPromise = promiseResolvedWith(returnResult);\n            return transformPromiseWith(returnPromise, function (iterResult) {\n                if (!typeIsObject(iterResult)) {\n                    throw new TypeError('The promise returned by the iterator.return() method must fulfill with an object');\n                }\n                return undefined;\n            });\n        }\n        stream = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, 0);\n        return stream;\n    }\n    function ReadableStreamFromDefaultReader(reader) {\n        var stream;\n        var startAlgorithm = noop;\n        function pullAlgorithm() {\n            var readPromise;\n            try {\n                readPromise = reader.read();\n            }\n            catch (e) {\n                return promiseRejectedWith(e);\n            }\n            return transformPromiseWith(readPromise, function (readResult) {\n                if (!typeIsObject(readResult)) {\n                    throw new TypeError('The promise returned by the reader.read() method must fulfill with an object');\n                }\n                if (readResult.done) {\n                    ReadableStreamDefaultControllerClose(stream._readableStreamController);\n                }\n                else {\n                    var value = readResult.value;\n                    ReadableStreamDefaultControllerEnqueue(stream._readableStreamController, value);\n                }\n            });\n        }\n        function cancelAlgorithm(reason) {\n            try {\n                return promiseResolvedWith(reader.cancel(reason));\n            }\n            catch (e) {\n                return promiseRejectedWith(e);\n            }\n        }\n        stream = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, 0);\n        return stream;\n    }\n\n    function convertUnderlyingDefaultOrByteSource(source, context) {\n        assertDictionary(source, context);\n        var original = source;\n        var autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize;\n        var cancel = original === null || original === void 0 ? void 0 : original.cancel;\n        var pull = original === null || original === void 0 ? void 0 : original.pull;\n        var start = original === null || original === void 0 ? void 0 : original.start;\n        var type = original === null || original === void 0 ? void 0 : original.type;\n        return {\n            autoAllocateChunkSize: autoAllocateChunkSize === undefined ?\n                undefined :\n                convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, \"\".concat(context, \" has member 'autoAllocateChunkSize' that\")),\n            cancel: cancel === undefined ?\n                undefined :\n                convertUnderlyingSourceCancelCallback(cancel, original, \"\".concat(context, \" has member 'cancel' that\")),\n            pull: pull === undefined ?\n                undefined :\n                convertUnderlyingSourcePullCallback(pull, original, \"\".concat(context, \" has member 'pull' that\")),\n            start: start === undefined ?\n                undefined :\n                convertUnderlyingSourceStartCallback(start, original, \"\".concat(context, \" has member 'start' that\")),\n            type: type === undefined ? undefined : convertReadableStreamType(type, \"\".concat(context, \" has member 'type' that\"))\n        };\n    }\n    function convertUnderlyingSourceCancelCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (reason) { return promiseCall(fn, original, [reason]); };\n    }\n    function convertUnderlyingSourcePullCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (controller) { return promiseCall(fn, original, [controller]); };\n    }\n    function convertUnderlyingSourceStartCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (controller) { return reflectCall(fn, original, [controller]); };\n    }\n    function convertReadableStreamType(type, context) {\n        type = \"\".concat(type);\n        if (type !== 'bytes') {\n            throw new TypeError(\"\".concat(context, \" '\").concat(type, \"' is not a valid enumeration value for ReadableStreamType\"));\n        }\n        return type;\n    }\n\n    function convertIteratorOptions(options, context) {\n        assertDictionary(options, context);\n        var preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n        return { preventCancel: Boolean(preventCancel) };\n    }\n\n    function convertPipeOptions(options, context) {\n        assertDictionary(options, context);\n        var preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort;\n        var preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n        var preventClose = options === null || options === void 0 ? void 0 : options.preventClose;\n        var signal = options === null || options === void 0 ? void 0 : options.signal;\n        if (signal !== undefined) {\n            assertAbortSignal(signal, \"\".concat(context, \" has member 'signal' that\"));\n        }\n        return {\n            preventAbort: Boolean(preventAbort),\n            preventCancel: Boolean(preventCancel),\n            preventClose: Boolean(preventClose),\n            signal: signal\n        };\n    }\n    function assertAbortSignal(signal, context) {\n        if (!isAbortSignal(signal)) {\n            throw new TypeError(\"\".concat(context, \" is not an AbortSignal.\"));\n        }\n    }\n\n    function convertReadableWritablePair(pair, context) {\n        assertDictionary(pair, context);\n        var readable = pair === null || pair === void 0 ? void 0 : pair.readable;\n        assertRequiredField(readable, 'readable', 'ReadableWritablePair');\n        assertReadableStream(readable, \"\".concat(context, \" has member 'readable' that\"));\n        var writable = pair === null || pair === void 0 ? void 0 : pair.writable;\n        assertRequiredField(writable, 'writable', 'ReadableWritablePair');\n        assertWritableStream(writable, \"\".concat(context, \" has member 'writable' that\"));\n        return { readable: readable, writable: writable };\n    }\n\n    /**\n     * A readable stream represents a source of data, from which you can read.\n     *\n     * @public\n     */\n    var ReadableStream = /** @class */ (function () {\n        function ReadableStream(rawUnderlyingSource, rawStrategy) {\n            if (rawUnderlyingSource === void 0) { rawUnderlyingSource = {}; }\n            if (rawStrategy === void 0) { rawStrategy = {}; }\n            if (rawUnderlyingSource === undefined) {\n                rawUnderlyingSource = null;\n            }\n            else {\n                assertObject(rawUnderlyingSource, 'First parameter');\n            }\n            var strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n            var underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, 'First parameter');\n            InitializeReadableStream(this);\n            if (underlyingSource.type === 'bytes') {\n                if (strategy.size !== undefined) {\n                    throw new RangeError('The strategy for a byte stream cannot have a size function');\n                }\n                var highWaterMark = ExtractHighWaterMark(strategy, 0);\n                SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\n            }\n            else {\n                var sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n                var highWaterMark = ExtractHighWaterMark(strategy, 1);\n                SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\n            }\n        }\n        Object.defineProperty(ReadableStream.prototype, \"locked\", {\n            /**\n             * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}.\n             */\n            get: function () {\n                if (!IsReadableStream(this)) {\n                    throw streamBrandCheckException$1('locked');\n                }\n                return IsReadableStreamLocked(this);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * Cancels the stream, signaling a loss of interest in the stream by a consumer.\n         *\n         * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()}\n         * method, which might or might not use it.\n         */\n        ReadableStream.prototype.cancel = function (reason) {\n            if (reason === void 0) { reason = undefined; }\n            if (!IsReadableStream(this)) {\n                return promiseRejectedWith(streamBrandCheckException$1('cancel'));\n            }\n            if (IsReadableStreamLocked(this)) {\n                return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\n            }\n            return ReadableStreamCancel(this, reason);\n        };\n        ReadableStream.prototype.getReader = function (rawOptions) {\n            if (rawOptions === void 0) { rawOptions = undefined; }\n            if (!IsReadableStream(this)) {\n                throw streamBrandCheckException$1('getReader');\n            }\n            var options = convertReaderOptions(rawOptions, 'First parameter');\n            if (options.mode === undefined) {\n                return AcquireReadableStreamDefaultReader(this);\n            }\n            return AcquireReadableStreamBYOBReader(this);\n        };\n        ReadableStream.prototype.pipeThrough = function (rawTransform, rawOptions) {\n            if (rawOptions === void 0) { rawOptions = {}; }\n            if (!IsReadableStream(this)) {\n                throw streamBrandCheckException$1('pipeThrough');\n            }\n            assertRequiredArgument(rawTransform, 1, 'pipeThrough');\n            var transform = convertReadableWritablePair(rawTransform, 'First parameter');\n            var options = convertPipeOptions(rawOptions, 'Second parameter');\n            if (IsReadableStreamLocked(this)) {\n                throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\n            }\n            if (IsWritableStreamLocked(transform.writable)) {\n                throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\n            }\n            var promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n            setPromiseIsHandledToTrue(promise);\n            return transform.readable;\n        };\n        ReadableStream.prototype.pipeTo = function (destination, rawOptions) {\n            if (rawOptions === void 0) { rawOptions = {}; }\n            if (!IsReadableStream(this)) {\n                return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\n            }\n            if (destination === undefined) {\n                return promiseRejectedWith(\"Parameter 1 is required in 'pipeTo'.\");\n            }\n            if (!IsWritableStream(destination)) {\n                return promiseRejectedWith(new TypeError(\"ReadableStream.prototype.pipeTo's first argument must be a WritableStream\"));\n            }\n            var options;\n            try {\n                options = convertPipeOptions(rawOptions, 'Second parameter');\n            }\n            catch (e) {\n                return promiseRejectedWith(e);\n            }\n            if (IsReadableStreamLocked(this)) {\n                return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n            }\n            if (IsWritableStreamLocked(destination)) {\n                return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n            }\n            return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n        };\n        /**\n         * Tees this readable stream, returning a two-element array containing the two resulting branches as\n         * new {@link ReadableStream} instances.\n         *\n         * Teeing a stream will lock it, preventing any other consumer from acquiring a reader.\n         * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be\n         * propagated to the stream's underlying source.\n         *\n         * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable,\n         * this could allow interference between the two branches.\n         */\n        ReadableStream.prototype.tee = function () {\n            if (!IsReadableStream(this)) {\n                throw streamBrandCheckException$1('tee');\n            }\n            var branches = ReadableStreamTee(this);\n            return CreateArrayFromList(branches);\n        };\n        ReadableStream.prototype.values = function (rawOptions) {\n            if (rawOptions === void 0) { rawOptions = undefined; }\n            if (!IsReadableStream(this)) {\n                throw streamBrandCheckException$1('values');\n            }\n            var options = convertIteratorOptions(rawOptions, 'First parameter');\n            return AcquireReadableStreamAsyncIterator(this, options.preventCancel);\n        };\n        ReadableStream.prototype[SymbolAsyncIterator] = function (options) {\n            // Stub implementation, overridden below\n            return this.values(options);\n        };\n        /**\n         * Creates a new ReadableStream wrapping the provided iterable or async iterable.\n         *\n         * This can be used to adapt various kinds of objects into a readable stream,\n         * such as an array, an async generator, or a Node.js readable stream.\n         */\n        ReadableStream.from = function (asyncIterable) {\n            return ReadableStreamFrom(asyncIterable);\n        };\n        return ReadableStream;\n    }());\n    Object.defineProperties(ReadableStream, {\n        from: { enumerable: true }\n    });\n    Object.defineProperties(ReadableStream.prototype, {\n        cancel: { enumerable: true },\n        getReader: { enumerable: true },\n        pipeThrough: { enumerable: true },\n        pipeTo: { enumerable: true },\n        tee: { enumerable: true },\n        values: { enumerable: true },\n        locked: { enumerable: true }\n    });\n    setFunctionName(ReadableStream.from, 'from');\n    setFunctionName(ReadableStream.prototype.cancel, 'cancel');\n    setFunctionName(ReadableStream.prototype.getReader, 'getReader');\n    setFunctionName(ReadableStream.prototype.pipeThrough, 'pipeThrough');\n    setFunctionName(ReadableStream.prototype.pipeTo, 'pipeTo');\n    setFunctionName(ReadableStream.prototype.tee, 'tee');\n    setFunctionName(ReadableStream.prototype.values, 'values');\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.toStringTag, {\n            value: 'ReadableStream',\n            configurable: true\n        });\n    }\n    Object.defineProperty(ReadableStream.prototype, SymbolAsyncIterator, {\n        value: ReadableStream.prototype.values,\n        writable: true,\n        configurable: true\n    });\n    // Abstract operations for the ReadableStream.\n    // Throws if and only if startAlgorithm throws.\n    function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n        if (highWaterMark === void 0) { highWaterMark = 1; }\n        if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\n        var stream = Object.create(ReadableStream.prototype);\n        InitializeReadableStream(stream);\n        var controller = Object.create(ReadableStreamDefaultController.prototype);\n        SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n        return stream;\n    }\n    // Throws if and only if startAlgorithm throws.\n    function CreateReadableByteStream(startAlgorithm, pullAlgorithm, cancelAlgorithm) {\n        var stream = Object.create(ReadableStream.prototype);\n        InitializeReadableStream(stream);\n        var controller = Object.create(ReadableByteStreamController.prototype);\n        SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, 0, undefined);\n        return stream;\n    }\n    function InitializeReadableStream(stream) {\n        stream._state = 'readable';\n        stream._reader = undefined;\n        stream._storedError = undefined;\n        stream._disturbed = false;\n    }\n    function IsReadableStream(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n            return false;\n        }\n        return x instanceof ReadableStream;\n    }\n    function IsReadableStreamLocked(stream) {\n        if (stream._reader === undefined) {\n            return false;\n        }\n        return true;\n    }\n    // ReadableStream API exposed for controllers.\n    function ReadableStreamCancel(stream, reason) {\n        stream._disturbed = true;\n        if (stream._state === 'closed') {\n            return promiseResolvedWith(undefined);\n        }\n        if (stream._state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        ReadableStreamClose(stream);\n        var reader = stream._reader;\n        if (reader !== undefined && IsReadableStreamBYOBReader(reader)) {\n            var readIntoRequests = reader._readIntoRequests;\n            reader._readIntoRequests = new SimpleQueue();\n            readIntoRequests.forEach(function (readIntoRequest) {\n                readIntoRequest._closeSteps(undefined);\n            });\n        }\n        var sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\n        return transformPromiseWith(sourceCancelPromise, noop);\n    }\n    function ReadableStreamClose(stream) {\n        stream._state = 'closed';\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return;\n        }\n        defaultReaderClosedPromiseResolve(reader);\n        if (IsReadableStreamDefaultReader(reader)) {\n            var readRequests = reader._readRequests;\n            reader._readRequests = new SimpleQueue();\n            readRequests.forEach(function (readRequest) {\n                readRequest._closeSteps();\n            });\n        }\n    }\n    function ReadableStreamError(stream, e) {\n        stream._state = 'errored';\n        stream._storedError = e;\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return;\n        }\n        defaultReaderClosedPromiseReject(reader, e);\n        if (IsReadableStreamDefaultReader(reader)) {\n            ReadableStreamDefaultReaderErrorReadRequests(reader, e);\n        }\n        else {\n            ReadableStreamBYOBReaderErrorReadIntoRequests(reader, e);\n        }\n    }\n    // Helper functions for the ReadableStream.\n    function streamBrandCheckException$1(name) {\n        return new TypeError(\"ReadableStream.prototype.\".concat(name, \" can only be used on a ReadableStream\"));\n    }\n\n    function convertQueuingStrategyInit(init, context) {\n        assertDictionary(init, context);\n        var highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n        assertRequiredField(highWaterMark, 'highWaterMark', 'QueuingStrategyInit');\n        return {\n            highWaterMark: convertUnrestrictedDouble(highWaterMark)\n        };\n    }\n\n    // The size function must not have a prototype property nor be a constructor\n    var byteLengthSizeFunction = function (chunk) {\n        return chunk.byteLength;\n    };\n    setFunctionName(byteLengthSizeFunction, 'size');\n    /**\n     * A queuing strategy that counts the number of bytes in each chunk.\n     *\n     * @public\n     */\n    var ByteLengthQueuingStrategy = /** @class */ (function () {\n        function ByteLengthQueuingStrategy(options) {\n            assertRequiredArgument(options, 1, 'ByteLengthQueuingStrategy');\n            options = convertQueuingStrategyInit(options, 'First parameter');\n            this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark;\n        }\n        Object.defineProperty(ByteLengthQueuingStrategy.prototype, \"highWaterMark\", {\n            /**\n             * Returns the high water mark provided to the constructor.\n             */\n            get: function () {\n                if (!IsByteLengthQueuingStrategy(this)) {\n                    throw byteLengthBrandCheckException('highWaterMark');\n                }\n                return this._byteLengthQueuingStrategyHighWaterMark;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(ByteLengthQueuingStrategy.prototype, \"size\", {\n            /**\n             * Measures the size of `chunk` by returning the value of its `byteLength` property.\n             */\n            get: function () {\n                if (!IsByteLengthQueuingStrategy(this)) {\n                    throw byteLengthBrandCheckException('size');\n                }\n                return byteLengthSizeFunction;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        return ByteLengthQueuingStrategy;\n    }());\n    Object.defineProperties(ByteLengthQueuingStrategy.prototype, {\n        highWaterMark: { enumerable: true },\n        size: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(ByteLengthQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n            value: 'ByteLengthQueuingStrategy',\n            configurable: true\n        });\n    }\n    // Helper functions for the ByteLengthQueuingStrategy.\n    function byteLengthBrandCheckException(name) {\n        return new TypeError(\"ByteLengthQueuingStrategy.prototype.\".concat(name, \" can only be used on a ByteLengthQueuingStrategy\"));\n    }\n    function IsByteLengthQueuingStrategy(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_byteLengthQueuingStrategyHighWaterMark')) {\n            return false;\n        }\n        return x instanceof ByteLengthQueuingStrategy;\n    }\n\n    // The size function must not have a prototype property nor be a constructor\n    var countSizeFunction = function () {\n        return 1;\n    };\n    setFunctionName(countSizeFunction, 'size');\n    /**\n     * A queuing strategy that counts the number of chunks.\n     *\n     * @public\n     */\n    var CountQueuingStrategy = /** @class */ (function () {\n        function CountQueuingStrategy(options) {\n            assertRequiredArgument(options, 1, 'CountQueuingStrategy');\n            options = convertQueuingStrategyInit(options, 'First parameter');\n            this._countQueuingStrategyHighWaterMark = options.highWaterMark;\n        }\n        Object.defineProperty(CountQueuingStrategy.prototype, \"highWaterMark\", {\n            /**\n             * Returns the high water mark provided to the constructor.\n             */\n            get: function () {\n                if (!IsCountQueuingStrategy(this)) {\n                    throw countBrandCheckException('highWaterMark');\n                }\n                return this._countQueuingStrategyHighWaterMark;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(CountQueuingStrategy.prototype, \"size\", {\n            /**\n             * Measures the size of `chunk` by always returning 1.\n             * This ensures that the total queue size is a count of the number of chunks in the queue.\n             */\n            get: function () {\n                if (!IsCountQueuingStrategy(this)) {\n                    throw countBrandCheckException('size');\n                }\n                return countSizeFunction;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        return CountQueuingStrategy;\n    }());\n    Object.defineProperties(CountQueuingStrategy.prototype, {\n        highWaterMark: { enumerable: true },\n        size: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(CountQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n            value: 'CountQueuingStrategy',\n            configurable: true\n        });\n    }\n    // Helper functions for the CountQueuingStrategy.\n    function countBrandCheckException(name) {\n        return new TypeError(\"CountQueuingStrategy.prototype.\".concat(name, \" can only be used on a CountQueuingStrategy\"));\n    }\n    function IsCountQueuingStrategy(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_countQueuingStrategyHighWaterMark')) {\n            return false;\n        }\n        return x instanceof CountQueuingStrategy;\n    }\n\n    function convertTransformer(original, context) {\n        assertDictionary(original, context);\n        var cancel = original === null || original === void 0 ? void 0 : original.cancel;\n        var flush = original === null || original === void 0 ? void 0 : original.flush;\n        var readableType = original === null || original === void 0 ? void 0 : original.readableType;\n        var start = original === null || original === void 0 ? void 0 : original.start;\n        var transform = original === null || original === void 0 ? void 0 : original.transform;\n        var writableType = original === null || original === void 0 ? void 0 : original.writableType;\n        return {\n            cancel: cancel === undefined ?\n                undefined :\n                convertTransformerCancelCallback(cancel, original, \"\".concat(context, \" has member 'cancel' that\")),\n            flush: flush === undefined ?\n                undefined :\n                convertTransformerFlushCallback(flush, original, \"\".concat(context, \" has member 'flush' that\")),\n            readableType: readableType,\n            start: start === undefined ?\n                undefined :\n                convertTransformerStartCallback(start, original, \"\".concat(context, \" has member 'start' that\")),\n            transform: transform === undefined ?\n                undefined :\n                convertTransformerTransformCallback(transform, original, \"\".concat(context, \" has member 'transform' that\")),\n            writableType: writableType\n        };\n    }\n    function convertTransformerFlushCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (controller) { return promiseCall(fn, original, [controller]); };\n    }\n    function convertTransformerStartCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (controller) { return reflectCall(fn, original, [controller]); };\n    }\n    function convertTransformerTransformCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (chunk, controller) { return promiseCall(fn, original, [chunk, controller]); };\n    }\n    function convertTransformerCancelCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (reason) { return promiseCall(fn, original, [reason]); };\n    }\n\n    // Class TransformStream\n    /**\n     * A transform stream consists of a pair of streams: a {@link WritableStream | writable stream},\n     * known as its writable side, and a {@link ReadableStream | readable stream}, known as its readable side.\n     * In a manner specific to the transform stream in question, writes to the writable side result in new data being\n     * made available for reading from the readable side.\n     *\n     * @public\n     */\n    var TransformStream = /** @class */ (function () {\n        function TransformStream(rawTransformer, rawWritableStrategy, rawReadableStrategy) {\n            if (rawTransformer === void 0) { rawTransformer = {}; }\n            if (rawWritableStrategy === void 0) { rawWritableStrategy = {}; }\n            if (rawReadableStrategy === void 0) { rawReadableStrategy = {}; }\n            if (rawTransformer === undefined) {\n                rawTransformer = null;\n            }\n            var writableStrategy = convertQueuingStrategy(rawWritableStrategy, 'Second parameter');\n            var readableStrategy = convertQueuingStrategy(rawReadableStrategy, 'Third parameter');\n            var transformer = convertTransformer(rawTransformer, 'First parameter');\n            if (transformer.readableType !== undefined) {\n                throw new RangeError('Invalid readableType specified');\n            }\n            if (transformer.writableType !== undefined) {\n                throw new RangeError('Invalid writableType specified');\n            }\n            var readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0);\n            var readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy);\n            var writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);\n            var writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);\n            var startPromise_resolve;\n            var startPromise = newPromise(function (resolve) {\n                startPromise_resolve = resolve;\n            });\n            InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n            SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\n            if (transformer.start !== undefined) {\n                startPromise_resolve(transformer.start(this._transformStreamController));\n            }\n            else {\n                startPromise_resolve(undefined);\n            }\n        }\n        Object.defineProperty(TransformStream.prototype, \"readable\", {\n            /**\n             * The readable side of the transform stream.\n             */\n            get: function () {\n                if (!IsTransformStream(this)) {\n                    throw streamBrandCheckException('readable');\n                }\n                return this._readable;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(TransformStream.prototype, \"writable\", {\n            /**\n             * The writable side of the transform stream.\n             */\n            get: function () {\n                if (!IsTransformStream(this)) {\n                    throw streamBrandCheckException('writable');\n                }\n                return this._writable;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        return TransformStream;\n    }());\n    Object.defineProperties(TransformStream.prototype, {\n        readable: { enumerable: true },\n        writable: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(TransformStream.prototype, SymbolPolyfill.toStringTag, {\n            value: 'TransformStream',\n            configurable: true\n        });\n    }\n    function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\n        function startAlgorithm() {\n            return startPromise;\n        }\n        function writeAlgorithm(chunk) {\n            return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\n        }\n        function abortAlgorithm(reason) {\n            return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\n        }\n        function closeAlgorithm() {\n            return TransformStreamDefaultSinkCloseAlgorithm(stream);\n        }\n        stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\n        function pullAlgorithm() {\n            return TransformStreamDefaultSourcePullAlgorithm(stream);\n        }\n        function cancelAlgorithm(reason) {\n            return TransformStreamDefaultSourceCancelAlgorithm(stream, reason);\n        }\n        stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n        // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\n        stream._backpressure = undefined;\n        stream._backpressureChangePromise = undefined;\n        stream._backpressureChangePromise_resolve = undefined;\n        TransformStreamSetBackpressure(stream, true);\n        stream._transformStreamController = undefined;\n    }\n    function IsTransformStream(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n            return false;\n        }\n        return x instanceof TransformStream;\n    }\n    // This is a no-op if both sides are already errored.\n    function TransformStreamError(stream, e) {\n        ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\n        TransformStreamErrorWritableAndUnblockWrite(stream, e);\n    }\n    function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\n        TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\n        WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\n        TransformStreamUnblockWrite(stream);\n    }\n    function TransformStreamUnblockWrite(stream) {\n        if (stream._backpressure) {\n            // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\n            // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\n            // _backpressure is set.\n            TransformStreamSetBackpressure(stream, false);\n        }\n    }\n    function TransformStreamSetBackpressure(stream, backpressure) {\n        // Passes also when called during construction.\n        if (stream._backpressureChangePromise !== undefined) {\n            stream._backpressureChangePromise_resolve();\n        }\n        stream._backpressureChangePromise = newPromise(function (resolve) {\n            stream._backpressureChangePromise_resolve = resolve;\n        });\n        stream._backpressure = backpressure;\n    }\n    // Class TransformStreamDefaultController\n    /**\n     * Allows control of the {@link ReadableStream} and {@link WritableStream} of the associated {@link TransformStream}.\n     *\n     * @public\n     */\n    var TransformStreamDefaultController = /** @class */ (function () {\n        function TransformStreamDefaultController() {\n            throw new TypeError('Illegal constructor');\n        }\n        Object.defineProperty(TransformStreamDefaultController.prototype, \"desiredSize\", {\n            /**\n             * Returns the desired size to fill the readable side’s internal queue. It can be negative, if the queue is over-full.\n             */\n            get: function () {\n                if (!IsTransformStreamDefaultController(this)) {\n                    throw defaultControllerBrandCheckException('desiredSize');\n                }\n                var readableController = this._controlledTransformStream._readable._readableStreamController;\n                return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        TransformStreamDefaultController.prototype.enqueue = function (chunk) {\n            if (chunk === void 0) { chunk = undefined; }\n            if (!IsTransformStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException('enqueue');\n            }\n            TransformStreamDefaultControllerEnqueue(this, chunk);\n        };\n        /**\n         * Errors both the readable side and the writable side of the controlled transform stream, making all future\n         * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded.\n         */\n        TransformStreamDefaultController.prototype.error = function (reason) {\n            if (reason === void 0) { reason = undefined; }\n            if (!IsTransformStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException('error');\n            }\n            TransformStreamDefaultControllerError(this, reason);\n        };\n        /**\n         * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the\n         * transformer only needs to consume a portion of the chunks written to the writable side.\n         */\n        TransformStreamDefaultController.prototype.terminate = function () {\n            if (!IsTransformStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException('terminate');\n            }\n            TransformStreamDefaultControllerTerminate(this);\n        };\n        return TransformStreamDefaultController;\n    }());\n    Object.defineProperties(TransformStreamDefaultController.prototype, {\n        enqueue: { enumerable: true },\n        error: { enumerable: true },\n        terminate: { enumerable: true },\n        desiredSize: { enumerable: true }\n    });\n    setFunctionName(TransformStreamDefaultController.prototype.enqueue, 'enqueue');\n    setFunctionName(TransformStreamDefaultController.prototype.error, 'error');\n    setFunctionName(TransformStreamDefaultController.prototype.terminate, 'terminate');\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(TransformStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n            value: 'TransformStreamDefaultController',\n            configurable: true\n        });\n    }\n    // Transform Stream Default Controller Abstract Operations\n    function IsTransformStreamDefaultController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n            return false;\n        }\n        return x instanceof TransformStreamDefaultController;\n    }\n    function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm, cancelAlgorithm) {\n        controller._controlledTransformStream = stream;\n        stream._transformStreamController = controller;\n        controller._transformAlgorithm = transformAlgorithm;\n        controller._flushAlgorithm = flushAlgorithm;\n        controller._cancelAlgorithm = cancelAlgorithm;\n        controller._finishPromise = undefined;\n        controller._finishPromise_resolve = undefined;\n        controller._finishPromise_reject = undefined;\n    }\n    function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\n        var controller = Object.create(TransformStreamDefaultController.prototype);\n        var transformAlgorithm;\n        var flushAlgorithm;\n        var cancelAlgorithm;\n        if (transformer.transform !== undefined) {\n            transformAlgorithm = function (chunk) { return transformer.transform(chunk, controller); };\n        }\n        else {\n            transformAlgorithm = function (chunk) {\n                try {\n                    TransformStreamDefaultControllerEnqueue(controller, chunk);\n                    return promiseResolvedWith(undefined);\n                }\n                catch (transformResultE) {\n                    return promiseRejectedWith(transformResultE);\n                }\n            };\n        }\n        if (transformer.flush !== undefined) {\n            flushAlgorithm = function () { return transformer.flush(controller); };\n        }\n        else {\n            flushAlgorithm = function () { return promiseResolvedWith(undefined); };\n        }\n        if (transformer.cancel !== undefined) {\n            cancelAlgorithm = function (reason) { return transformer.cancel(reason); };\n        }\n        else {\n            cancelAlgorithm = function () { return promiseResolvedWith(undefined); };\n        }\n        SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm, cancelAlgorithm);\n    }\n    function TransformStreamDefaultControllerClearAlgorithms(controller) {\n        controller._transformAlgorithm = undefined;\n        controller._flushAlgorithm = undefined;\n        controller._cancelAlgorithm = undefined;\n    }\n    function TransformStreamDefaultControllerEnqueue(controller, chunk) {\n        var stream = controller._controlledTransformStream;\n        var readableController = stream._readable._readableStreamController;\n        if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) {\n            throw new TypeError('Readable side is not in a state that permits enqueue');\n        }\n        // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\n        // accept TransformStreamDefaultControllerEnqueue() calls.\n        try {\n            ReadableStreamDefaultControllerEnqueue(readableController, chunk);\n        }\n        catch (e) {\n            // This happens when readableStrategy.size() throws.\n            TransformStreamErrorWritableAndUnblockWrite(stream, e);\n            throw stream._readable._storedError;\n        }\n        var backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\n        if (backpressure !== stream._backpressure) {\n            TransformStreamSetBackpressure(stream, true);\n        }\n    }\n    function TransformStreamDefaultControllerError(controller, e) {\n        TransformStreamError(controller._controlledTransformStream, e);\n    }\n    function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\n        var transformPromise = controller._transformAlgorithm(chunk);\n        return transformPromiseWith(transformPromise, undefined, function (r) {\n            TransformStreamError(controller._controlledTransformStream, r);\n            throw r;\n        });\n    }\n    function TransformStreamDefaultControllerTerminate(controller) {\n        var stream = controller._controlledTransformStream;\n        var readableController = stream._readable._readableStreamController;\n        ReadableStreamDefaultControllerClose(readableController);\n        var error = new TypeError('TransformStream terminated');\n        TransformStreamErrorWritableAndUnblockWrite(stream, error);\n    }\n    // TransformStreamDefaultSink Algorithms\n    function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\n        var controller = stream._transformStreamController;\n        if (stream._backpressure) {\n            var backpressureChangePromise = stream._backpressureChangePromise;\n            return transformPromiseWith(backpressureChangePromise, function () {\n                var writable = stream._writable;\n                var state = writable._state;\n                if (state === 'erroring') {\n                    throw writable._storedError;\n                }\n                return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n            });\n        }\n        return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n    }\n    function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\n        var controller = stream._transformStreamController;\n        if (controller._finishPromise !== undefined) {\n            return controller._finishPromise;\n        }\n        // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n        var readable = stream._readable;\n        // Assign the _finishPromise now so that if _cancelAlgorithm calls readable.cancel() internally,\n        // we don't run the _cancelAlgorithm again.\n        controller._finishPromise = newPromise(function (resolve, reject) {\n            controller._finishPromise_resolve = resolve;\n            controller._finishPromise_reject = reject;\n        });\n        var cancelPromise = controller._cancelAlgorithm(reason);\n        TransformStreamDefaultControllerClearAlgorithms(controller);\n        uponPromise(cancelPromise, function () {\n            if (readable._state === 'errored') {\n                defaultControllerFinishPromiseReject(controller, readable._storedError);\n            }\n            else {\n                ReadableStreamDefaultControllerError(readable._readableStreamController, reason);\n                defaultControllerFinishPromiseResolve(controller);\n            }\n            return null;\n        }, function (r) {\n            ReadableStreamDefaultControllerError(readable._readableStreamController, r);\n            defaultControllerFinishPromiseReject(controller, r);\n            return null;\n        });\n        return controller._finishPromise;\n    }\n    function TransformStreamDefaultSinkCloseAlgorithm(stream) {\n        var controller = stream._transformStreamController;\n        if (controller._finishPromise !== undefined) {\n            return controller._finishPromise;\n        }\n        // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n        var readable = stream._readable;\n        // Assign the _finishPromise now so that if _flushAlgorithm calls readable.cancel() internally,\n        // we don't also run the _cancelAlgorithm.\n        controller._finishPromise = newPromise(function (resolve, reject) {\n            controller._finishPromise_resolve = resolve;\n            controller._finishPromise_reject = reject;\n        });\n        var flushPromise = controller._flushAlgorithm();\n        TransformStreamDefaultControllerClearAlgorithms(controller);\n        uponPromise(flushPromise, function () {\n            if (readable._state === 'errored') {\n                defaultControllerFinishPromiseReject(controller, readable._storedError);\n            }\n            else {\n                ReadableStreamDefaultControllerClose(readable._readableStreamController);\n                defaultControllerFinishPromiseResolve(controller);\n            }\n            return null;\n        }, function (r) {\n            ReadableStreamDefaultControllerError(readable._readableStreamController, r);\n            defaultControllerFinishPromiseReject(controller, r);\n            return null;\n        });\n        return controller._finishPromise;\n    }\n    // TransformStreamDefaultSource Algorithms\n    function TransformStreamDefaultSourcePullAlgorithm(stream) {\n        // Invariant. Enforced by the promises returned by start() and pull().\n        TransformStreamSetBackpressure(stream, false);\n        // Prevent the next pull() call until there is backpressure.\n        return stream._backpressureChangePromise;\n    }\n    function TransformStreamDefaultSourceCancelAlgorithm(stream, reason) {\n        var controller = stream._transformStreamController;\n        if (controller._finishPromise !== undefined) {\n            return controller._finishPromise;\n        }\n        // stream._writable cannot change after construction, so caching it across a call to user code is safe.\n        var writable = stream._writable;\n        // Assign the _finishPromise now so that if _flushAlgorithm calls writable.abort() or\n        // writable.cancel() internally, we don't run the _cancelAlgorithm again, or also run the\n        // _flushAlgorithm.\n        controller._finishPromise = newPromise(function (resolve, reject) {\n            controller._finishPromise_resolve = resolve;\n            controller._finishPromise_reject = reject;\n        });\n        var cancelPromise = controller._cancelAlgorithm(reason);\n        TransformStreamDefaultControllerClearAlgorithms(controller);\n        uponPromise(cancelPromise, function () {\n            if (writable._state === 'errored') {\n                defaultControllerFinishPromiseReject(controller, writable._storedError);\n            }\n            else {\n                WritableStreamDefaultControllerErrorIfNeeded(writable._writableStreamController, reason);\n                TransformStreamUnblockWrite(stream);\n                defaultControllerFinishPromiseResolve(controller);\n            }\n            return null;\n        }, function (r) {\n            WritableStreamDefaultControllerErrorIfNeeded(writable._writableStreamController, r);\n            TransformStreamUnblockWrite(stream);\n            defaultControllerFinishPromiseReject(controller, r);\n            return null;\n        });\n        return controller._finishPromise;\n    }\n    // Helper functions for the TransformStreamDefaultController.\n    function defaultControllerBrandCheckException(name) {\n        return new TypeError(\"TransformStreamDefaultController.prototype.\".concat(name, \" can only be used on a TransformStreamDefaultController\"));\n    }\n    function defaultControllerFinishPromiseResolve(controller) {\n        if (controller._finishPromise_resolve === undefined) {\n            return;\n        }\n        controller._finishPromise_resolve();\n        controller._finishPromise_resolve = undefined;\n        controller._finishPromise_reject = undefined;\n    }\n    function defaultControllerFinishPromiseReject(controller, reason) {\n        if (controller._finishPromise_reject === undefined) {\n            return;\n        }\n        setPromiseIsHandledToTrue(controller._finishPromise);\n        controller._finishPromise_reject(reason);\n        controller._finishPromise_resolve = undefined;\n        controller._finishPromise_reject = undefined;\n    }\n    // Helper functions for the TransformStream.\n    function streamBrandCheckException(name) {\n        return new TypeError(\"TransformStream.prototype.\".concat(name, \" can only be used on a TransformStream\"));\n    }\n\n    exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n    exports.CountQueuingStrategy = CountQueuingStrategy;\n    exports.ReadableByteStreamController = ReadableByteStreamController;\n    exports.ReadableStream = ReadableStream;\n    exports.ReadableStreamBYOBReader = ReadableStreamBYOBReader;\n    exports.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest;\n    exports.ReadableStreamDefaultController = ReadableStreamDefaultController;\n    exports.ReadableStreamDefaultReader = ReadableStreamDefaultReader;\n    exports.TransformStream = TransformStream;\n    exports.TransformStreamDefaultController = TransformStreamDefaultController;\n    exports.WritableStream = WritableStream;\n    exports.WritableStreamDefaultController = WritableStreamDefaultController;\n    exports.WritableStreamDefaultWriter = WritableStreamDefaultWriter;\n\n}));\n//# sourceMappingURL=ponyfill.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/web-streams-polyfill/dist/ponyfill.js?");

/***/ }),

/***/ "./node_modules/webpack/buildin/amd-options.js":
/*!****************************************!*\
  !*** (webpack)/buildin/amd-options.js ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n\n/* WEBPACK VAR INJECTION */}.call(this, {}))\n\n//# sourceURL=webpack:///(webpack)/buildin/amd-options.js?");

/***/ }),

/***/ "./node_modules/webpack/buildin/global.js":
/*!***********************************!*\
  !*** (webpack)/buildin/global.js ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?");

/***/ }),

/***/ "./node_modules/webpack/buildin/module.js":
/*!***********************************!*\
  !*** (webpack)/buildin/module.js ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n//# sourceURL=webpack:///(webpack)/buildin/module.js?");

/***/ }),

/***/ "./node_modules/wow.js/dist/wow.js":
/*!*****************************************!*\
  !*** ./node_modules/wow.js/dist/wow.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n  if (true) {\n    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n  } else { var mod; }\n})(this, function (module, exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n  var _class, _temp;\n\n  function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  }\n\n  var _createClass = function () {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if (\"value\" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function (Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  }();\n\n  function isIn(needle, haystack) {\n    return haystack.indexOf(needle) >= 0;\n  }\n\n  function extend(custom, defaults) {\n    for (var key in defaults) {\n      if (custom[key] == null) {\n        var value = defaults[key];\n        custom[key] = value;\n      }\n    }\n    return custom;\n  }\n\n  function isMobile(agent) {\n    return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(agent)\n    );\n  }\n\n  function createEvent(event) {\n    var bubble = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n    var cancel = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];\n    var detail = arguments.length <= 3 || arguments[3] === undefined ? null : arguments[3];\n\n    var customEvent = void 0;\n    if (document.createEvent != null) {\n      // W3C DOM\n      customEvent = document.createEvent('CustomEvent');\n      customEvent.initCustomEvent(event, bubble, cancel, detail);\n    } else if (document.createEventObject != null) {\n      // IE DOM < 9\n      customEvent = document.createEventObject();\n      customEvent.eventType = event;\n    } else {\n      customEvent.eventName = event;\n    }\n\n    return customEvent;\n  }\n\n  function emitEvent(elem, event) {\n    if (elem.dispatchEvent != null) {\n      // W3C DOM\n      elem.dispatchEvent(event);\n    } else if (event in (elem != null)) {\n      elem[event]();\n    } else if ('on' + event in (elem != null)) {\n      elem['on' + event]();\n    }\n  }\n\n  function addEvent(elem, event, fn) {\n    if (elem.addEventListener != null) {\n      // W3C DOM\n      elem.addEventListener(event, fn, false);\n    } else if (elem.attachEvent != null) {\n      // IE DOM\n      elem.attachEvent('on' + event, fn);\n    } else {\n      // fallback\n      elem[event] = fn;\n    }\n  }\n\n  function removeEvent(elem, event, fn) {\n    if (elem.removeEventListener != null) {\n      // W3C DOM\n      elem.removeEventListener(event, fn, false);\n    } else if (elem.detachEvent != null) {\n      // IE DOM\n      elem.detachEvent('on' + event, fn);\n    } else {\n      // fallback\n      delete elem[event];\n    }\n  }\n\n  function getInnerHeight() {\n    if ('innerHeight' in window) {\n      return window.innerHeight;\n    }\n\n    return document.documentElement.clientHeight;\n  }\n\n  // Minimalistic WeakMap shim, just in case.\n  var WeakMap = window.WeakMap || window.MozWeakMap || function () {\n    function WeakMap() {\n      _classCallCheck(this, WeakMap);\n\n      this.keys = [];\n      this.values = [];\n    }\n\n    _createClass(WeakMap, [{\n      key: 'get',\n      value: function get(key) {\n        for (var i = 0; i < this.keys.length; i++) {\n          var item = this.keys[i];\n          if (item === key) {\n            return this.values[i];\n          }\n        }\n        return undefined;\n      }\n    }, {\n      key: 'set',\n      value: function set(key, value) {\n        for (var i = 0; i < this.keys.length; i++) {\n          var item = this.keys[i];\n          if (item === key) {\n            this.values[i] = value;\n            return this;\n          }\n        }\n        this.keys.push(key);\n        this.values.push(value);\n        return this;\n      }\n    }]);\n\n    return WeakMap;\n  }();\n\n  // Dummy MutationObserver, to avoid raising exceptions.\n  var MutationObserver = window.MutationObserver || window.WebkitMutationObserver || window.MozMutationObserver || (_temp = _class = function () {\n    function MutationObserver() {\n      _classCallCheck(this, MutationObserver);\n\n      if (typeof console !== 'undefined' && console !== null) {\n        console.warn('MutationObserver is not supported by your browser.');\n        console.warn('WOW.js cannot detect dom mutations, please call .sync() after loading new content.');\n      }\n    }\n\n    _createClass(MutationObserver, [{\n      key: 'observe',\n      value: function observe() {}\n    }]);\n\n    return MutationObserver;\n  }(), _class.notSupported = true, _temp);\n\n  // getComputedStyle shim, from http://stackoverflow.com/a/21797294\n  var getComputedStyle = window.getComputedStyle || function getComputedStyle(el) {\n    var getComputedStyleRX = /(\\-([a-z]){1})/g;\n    return {\n      getPropertyValue: function getPropertyValue(prop) {\n        if (prop === 'float') {\n          prop = 'styleFloat';\n        }\n        if (getComputedStyleRX.test(prop)) {\n          prop.replace(getComputedStyleRX, function (_, _char) {\n            return _char.toUpperCase();\n          });\n        }\n        var currentStyle = el.currentStyle;\n\n        return (currentStyle != null ? currentStyle[prop] : void 0) || null;\n      }\n    };\n  };\n\n  var WOW = function () {\n    function WOW() {\n      var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n      _classCallCheck(this, WOW);\n\n      this.defaults = {\n        boxClass: 'wow',\n        animateClass: 'animated',\n        offset: 0,\n        mobile: true,\n        live: true,\n        callback: null,\n        scrollContainer: null\n      };\n\n      this.animate = function animateFactory() {\n        if ('requestAnimationFrame' in window) {\n          return function (callback) {\n            return window.requestAnimationFrame(callback);\n          };\n        }\n        return function (callback) {\n          return callback();\n        };\n      }();\n\n      this.vendors = ['moz', 'webkit'];\n\n      this.start = this.start.bind(this);\n      this.resetAnimation = this.resetAnimation.bind(this);\n      this.scrollHandler = this.scrollHandler.bind(this);\n      this.scrollCallback = this.scrollCallback.bind(this);\n      this.scrolled = true;\n      this.config = extend(options, this.defaults);\n      if (options.scrollContainer != null) {\n        this.config.scrollContainer = document.querySelector(options.scrollContainer);\n      }\n      // Map of elements to animation names:\n      this.animationNameCache = new WeakMap();\n      this.wowEvent = createEvent(this.config.boxClass);\n    }\n\n    _createClass(WOW, [{\n      key: 'init',\n      value: function init() {\n        this.element = window.document.documentElement;\n        if (isIn(document.readyState, ['interactive', 'complete'])) {\n          this.start();\n        } else {\n          addEvent(document, 'DOMContentLoaded', this.start);\n        }\n        this.finished = [];\n      }\n    }, {\n      key: 'start',\n      value: function start() {\n        var _this = this;\n\n        this.stopped = false;\n        this.boxes = [].slice.call(this.element.querySelectorAll('.' + this.config.boxClass));\n        this.all = this.boxes.slice(0);\n        if (this.boxes.length) {\n          if (this.disabled()) {\n            this.resetStyle();\n          } else {\n            for (var i = 0; i < this.boxes.length; i++) {\n              var box = this.boxes[i];\n              this.applyStyle(box, true);\n            }\n          }\n        }\n        if (!this.disabled()) {\n          addEvent(this.config.scrollContainer || window, 'scroll', this.scrollHandler);\n          addEvent(window, 'resize', this.scrollHandler);\n          this.interval = setInterval(this.scrollCallback, 50);\n        }\n        if (this.config.live) {\n          var mut = new MutationObserver(function (records) {\n            for (var j = 0; j < records.length; j++) {\n              var record = records[j];\n              for (var k = 0; k < record.addedNodes.length; k++) {\n                var node = record.addedNodes[k];\n                _this.doSync(node);\n              }\n            }\n            return undefined;\n          });\n          mut.observe(document.body, {\n            childList: true,\n            subtree: true\n          });\n        }\n      }\n    }, {\n      key: 'stop',\n      value: function stop() {\n        this.stopped = true;\n        removeEvent(this.config.scrollContainer || window, 'scroll', this.scrollHandler);\n        removeEvent(window, 'resize', this.scrollHandler);\n        if (this.interval != null) {\n          clearInterval(this.interval);\n        }\n      }\n    }, {\n      key: 'sync',\n      value: function sync() {\n        if (MutationObserver.notSupported) {\n          this.doSync(this.element);\n        }\n      }\n    }, {\n      key: 'doSync',\n      value: function doSync(element) {\n        if (typeof element === 'undefined' || element === null) {\n          element = this.element;\n        }\n        if (element.nodeType !== 1) {\n          return;\n        }\n        element = element.parentNode || element;\n        var iterable = element.querySelectorAll('.' + this.config.boxClass);\n        for (var i = 0; i < iterable.length; i++) {\n          var box = iterable[i];\n          if (!isIn(box, this.all)) {\n            this.boxes.push(box);\n            this.all.push(box);\n            if (this.stopped || this.disabled()) {\n              this.resetStyle();\n            } else {\n              this.applyStyle(box, true);\n            }\n            this.scrolled = true;\n          }\n        }\n      }\n    }, {\n      key: 'show',\n      value: function show(box) {\n        this.applyStyle(box);\n        box.className = box.className + ' ' + this.config.animateClass;\n        if (this.config.callback != null) {\n          this.config.callback(box);\n        }\n        emitEvent(box, this.wowEvent);\n\n        addEvent(box, 'animationend', this.resetAnimation);\n        addEvent(box, 'oanimationend', this.resetAnimation);\n        addEvent(box, 'webkitAnimationEnd', this.resetAnimation);\n        addEvent(box, 'MSAnimationEnd', this.resetAnimation);\n\n        return box;\n      }\n    }, {\n      key: 'applyStyle',\n      value: function applyStyle(box, hidden) {\n        var _this2 = this;\n\n        var duration = box.getAttribute('data-wow-duration');\n        var delay = box.getAttribute('data-wow-delay');\n        var iteration = box.getAttribute('data-wow-iteration');\n\n        return this.animate(function () {\n          return _this2.customStyle(box, hidden, duration, delay, iteration);\n        });\n      }\n    }, {\n      key: 'resetStyle',\n      value: function resetStyle() {\n        for (var i = 0; i < this.boxes.length; i++) {\n          var box = this.boxes[i];\n          box.style.visibility = 'visible';\n        }\n        return undefined;\n      }\n    }, {\n      key: 'resetAnimation',\n      value: function resetAnimation(event) {\n        if (event.type.toLowerCase().indexOf('animationend') >= 0) {\n          var target = event.target || event.srcElement;\n          target.className = target.className.replace(this.config.animateClass, '').trim();\n        }\n      }\n    }, {\n      key: 'customStyle',\n      value: function customStyle(box, hidden, duration, delay, iteration) {\n        if (hidden) {\n          this.cacheAnimationName(box);\n        }\n        box.style.visibility = hidden ? 'hidden' : 'visible';\n\n        if (duration) {\n          this.vendorSet(box.style, { animationDuration: duration });\n        }\n        if (delay) {\n          this.vendorSet(box.style, { animationDelay: delay });\n        }\n        if (iteration) {\n          this.vendorSet(box.style, { animationIterationCount: iteration });\n        }\n        this.vendorSet(box.style, { animationName: hidden ? 'none' : this.cachedAnimationName(box) });\n\n        return box;\n      }\n    }, {\n      key: 'vendorSet',\n      value: function vendorSet(elem, properties) {\n        for (var name in properties) {\n          if (properties.hasOwnProperty(name)) {\n            var value = properties[name];\n            elem['' + name] = value;\n            for (var i = 0; i < this.vendors.length; i++) {\n              var vendor = this.vendors[i];\n              elem['' + vendor + name.charAt(0).toUpperCase() + name.substr(1)] = value;\n            }\n          }\n        }\n      }\n    }, {\n      key: 'vendorCSS',\n      value: function vendorCSS(elem, property) {\n        var style = getComputedStyle(elem);\n        var result = style.getPropertyCSSValue(property);\n        for (var i = 0; i < this.vendors.length; i++) {\n          var vendor = this.vendors[i];\n          result = result || style.getPropertyCSSValue('-' + vendor + '-' + property);\n        }\n        return result;\n      }\n    }, {\n      key: 'animationName',\n      value: function animationName(box) {\n        var aName = void 0;\n        try {\n          aName = this.vendorCSS(box, 'animation-name').cssText;\n        } catch (error) {\n          // Opera, fall back to plain property value\n          aName = getComputedStyle(box).getPropertyValue('animation-name');\n        }\n\n        if (aName === 'none') {\n          return ''; // SVG/Firefox, unable to get animation name?\n        }\n\n        return aName;\n      }\n    }, {\n      key: 'cacheAnimationName',\n      value: function cacheAnimationName(box) {\n        // https://bugzilla.mozilla.org/show_bug.cgi?id=921834\n        // box.dataset is not supported for SVG elements in Firefox\n        return this.animationNameCache.set(box, this.animationName(box));\n      }\n    }, {\n      key: 'cachedAnimationName',\n      value: function cachedAnimationName(box) {\n        return this.animationNameCache.get(box);\n      }\n    }, {\n      key: 'scrollHandler',\n      value: function scrollHandler() {\n        this.scrolled = true;\n      }\n    }, {\n      key: 'scrollCallback',\n      value: function scrollCallback() {\n        if (this.scrolled) {\n          this.scrolled = false;\n          var results = [];\n          for (var i = 0; i < this.boxes.length; i++) {\n            var box = this.boxes[i];\n            if (box) {\n              if (this.isVisible(box)) {\n                this.show(box);\n                continue;\n              }\n              results.push(box);\n            }\n          }\n          this.boxes = results;\n          if (!this.boxes.length && !this.config.live) {\n            this.stop();\n          }\n        }\n      }\n    }, {\n      key: 'offsetTop',\n      value: function offsetTop(element) {\n        // SVG elements don't have an offsetTop in Firefox.\n        // This will use their nearest parent that has an offsetTop.\n        // Also, using ('offsetTop' of element) causes an exception in Firefox.\n        while (element.offsetTop === undefined) {\n          element = element.parentNode;\n        }\n        var top = element.offsetTop;\n        while (element.offsetParent) {\n          element = element.offsetParent;\n          top += element.offsetTop;\n        }\n        return top;\n      }\n    }, {\n      key: 'isVisible',\n      value: function isVisible(box) {\n        var offset = box.getAttribute('data-wow-offset') || this.config.offset;\n        var viewTop = this.config.scrollContainer && this.config.scrollContainer.scrollTop || window.pageYOffset;\n        var viewBottom = viewTop + Math.min(this.element.clientHeight, getInnerHeight()) - offset;\n        var top = this.offsetTop(box);\n        var bottom = top + box.clientHeight;\n\n        return top <= viewBottom && bottom >= viewTop;\n      }\n    }, {\n      key: 'disabled',\n      value: function disabled() {\n        return !this.config.mobile && isMobile(navigator.userAgent);\n      }\n    }]);\n\n    return WOW;\n  }();\n\n  exports.default = WOW;\n  module.exports = exports['default'];\n});\n\n\n//# sourceURL=webpack:///./node_modules/wow.js/dist/wow.js?");

/***/ })

}]);